summaryrefslogtreecommitdiff
path: root/spec/ruby/command_line/fixtures/rubyopt.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/command_line/fixtures/rubyopt.rb')
-rw-r--r--spec/ruby/command_line/fixtures/rubyopt.rb1
1 files changed, 1 insertions, 0 deletions
diff --git a/spec/ruby/command_line/fixtures/rubyopt.rb b/spec/ruby/command_line/fixtures/rubyopt.rb
new file mode 100644
index 0000000000..48d81e1bca
--- /dev/null
+++ b/spec/ruby/command_line/fixtures/rubyopt.rb
@@ -0,0 +1 @@
+puts "rubyopt.rb required"
4251b83d460abba1e9'>.editorconfig30
-rw-r--r--.gdbinit1350
-rw-r--r--.gitattributes8
-rw-r--r--.github/CODEOWNERS10
-rw-r--r--.github/SECURITY.md9
-rw-r--r--.github/codeql/codeql-config.yml3
-rw-r--r--.github/workflows/baseruby.yml65
-rw-r--r--.github/workflows/bundled_gems.yml131
-rw-r--r--.github/workflows/check_dependencies.yml65
-rw-r--r--.github/workflows/check_misc.yml96
-rw-r--r--.github/workflows/codeql-analysis.yml61
-rw-r--r--.github/workflows/compilers.yml247
-rw-r--r--.github/workflows/mingw.yml148
-rw-r--r--.github/workflows/mjit.yml97
-rw-r--r--.github/workflows/spec_guards.yml53
-rw-r--r--.github/workflows/ubuntu.yml129
-rw-r--r--.github/workflows/windows.yml135
-rw-r--r--.github/workflows/yjit-ubuntu.yml112
-rw-r--r--.github/workflows/yjit_asm_tests.yml38
-rw-r--r--.gitignore234
-rw-r--r--.rspec_parallel2
-rw-r--r--.travis.yml236
-rw-r--r--BSDL22
-rw-r--r--CONTRIBUTING.md5
-rw-r--r--COPYING366
-rw-r--r--COPYING.ja51
-rw-r--r--ChangeLog5426
-rw-r--r--GPL339
-rw-r--r--KNOWNBUGS.rb7
-rw-r--r--LEGAL1111
-rw-r--r--MANIFEST246
-rw-r--r--Makefile.in265
-rw-r--r--NEWS.md657
-rw-r--r--README151
-rw-r--r--README.EXT993
-rw-r--r--README.EXT.ja1
-rw-r--r--README.EXT.jp1176
-rw-r--r--README.ja.md183
-rw-r--r--README.jp196
-rw-r--r--README.md186
-rw-r--r--ToDo59
-rw-r--r--addr2line.c2818
-rw-r--r--addr2line.h20
-rw-r--r--array.c8520
-rw-r--r--array.rb69
-rw-r--r--ast.c736
-rw-r--r--ast.rb190
-rwxr-xr-xautogen.sh17
-rwxr-xr-xbasictest/runner.rb33
-rwxr-xr-xbasictest/test.rb2364
-rw-r--r--benchmark/README.md72
-rw-r--r--benchmark/app_answer.rb15
-rw-r--r--benchmark/app_aobench.rb297
-rw-r--r--benchmark/app_erb.yml23
-rw-r--r--benchmark/app_factorial.rb11
-rw-r--r--benchmark/app_fib.rb10
-rw-r--r--benchmark/app_lc_fizzbuzz.rb52
-rw-r--r--benchmark/app_mandelbrot.rb23
-rw-r--r--benchmark/app_pentomino.rb130
-rw-r--r--benchmark/app_raise.rb8
-rw-r--r--benchmark/app_strconcat.rb5
-rw-r--r--benchmark/app_tak.rb13
-rw-r--r--benchmark/app_tarai.rb10
-rw-r--r--benchmark/app_uri.rb8
-rw-r--r--benchmark/array_flatten.yml19
-rw-r--r--benchmark/array_intersection.yml14
-rw-r--r--benchmark/array_max_float.yml30
-rw-r--r--benchmark/array_max_int.yml31
-rw-r--r--benchmark/array_max_str.yml30
-rw-r--r--benchmark/array_min.yml31
-rw-r--r--benchmark/array_sample.yml4
-rw-r--r--benchmark/array_sample_100k_10.rb2
-rw-r--r--benchmark/array_sample_100k_11.rb2
-rw-r--r--benchmark/array_sample_100k__100.rb2
-rw-r--r--benchmark/array_sample_100k__1k.rb2
-rw-r--r--benchmark/array_sample_100k__6k.rb2
-rw-r--r--benchmark/array_sample_100k___10k.rb2
-rw-r--r--benchmark/array_sample_100k___50k.rb2
-rw-r--r--benchmark/array_shift.rb14
-rw-r--r--benchmark/array_small_and.rb17
-rw-r--r--benchmark/array_small_diff.rb17
-rw-r--r--benchmark/array_small_or.rb17
-rw-r--r--benchmark/array_sort_block.rb2
-rw-r--r--benchmark/array_sort_float.rb2
-rw-r--r--benchmark/array_values_at_int.rb2
-rw-r--r--benchmark/array_values_at_range.rb2
-rw-r--r--benchmark/attr_accessor.yml29
-rw-r--r--benchmark/bighash.rb1
-rw-r--r--benchmark/buffer_get.yml9
-rw-r--r--benchmark/cgi_escape_html.yml40
-rw-r--r--benchmark/complex_float_add.yml7
-rw-r--r--benchmark/complex_float_div.yml7
-rw-r--r--benchmark/complex_float_mul.yml7
-rw-r--r--benchmark/complex_float_new.yml7
-rw-r--r--benchmark/complex_float_power.yml7
-rw-r--r--benchmark/complex_float_sub.yml7
-rw-r--r--benchmark/dir_empty_p.rb5
-rw-r--r--benchmark/enum_lazy_flat_map.yml16
-rw-r--r--benchmark/enum_lazy_grep_v_100.rb4
-rw-r--r--benchmark/enum_lazy_grep_v_20.rb4
-rw-r--r--benchmark/enum_lazy_grep_v_50.rb4
-rw-r--r--benchmark/enum_lazy_uniq_100.rb4
-rw-r--r--benchmark/enum_lazy_uniq_20.rb4
-rw-r--r--benchmark/enum_lazy_uniq_50.rb4
-rw-r--r--benchmark/enum_lazy_zip.yml22
-rw-r--r--benchmark/enum_tally.yml4
-rw-r--r--benchmark/erb_render.yml24
-rw-r--r--benchmark/fiber_chain.yml36
-rw-r--r--benchmark/fiber_locals.yml8
-rw-r--r--benchmark/file_chmod.rb9
-rw-r--r--benchmark/file_rename.rb11
-rw-r--r--benchmark/float_methods.yml14
-rw-r--r--benchmark/float_neg_posi.yml8
-rw-r--r--benchmark/float_to_s.yml7
-rw-r--r--benchmark/gc/aobench.rb1
-rw-r--r--benchmark/gc/binary_trees.rb1
-rw-r--r--benchmark/gc/gcbench.rb57
-rw-r--r--benchmark/gc/hash1.rb11
-rw-r--r--benchmark/gc/hash2.rb7
-rw-r--r--benchmark/gc/null.rb1
-rw-r--r--benchmark/gc/pentomino.rb1
-rw-r--r--benchmark/gc/rdoc.rb13
-rw-r--r--benchmark/gc/redblack.rb366
-rw-r--r--benchmark/gc/ring.rb29
-rw-r--r--benchmark/hash_aref_array.rb5
-rw-r--r--benchmark/hash_aref_dsym.rb4
-rw-r--r--benchmark/hash_aref_dsym_long.rb21
-rw-r--r--benchmark/hash_aref_fix.rb4
-rw-r--r--benchmark/hash_aref_flo.rb4
-rw-r--r--benchmark/hash_aref_miss.rb5
-rw-r--r--benchmark/hash_aref_str.rb4
-rw-r--r--benchmark/hash_aref_sym.rb9
-rw-r--r--benchmark/hash_aref_sym_long.rb13
-rw-r--r--benchmark/hash_defaults.yml6
-rw-r--r--benchmark/hash_dup.yml8
-rw-r--r--benchmark/hash_first.yml11
-rw-r--r--benchmark/hash_flatten.rb9
-rw-r--r--benchmark/hash_ident_flo.rb4
-rw-r--r--benchmark/hash_ident_num.rb4
-rw-r--r--benchmark/hash_ident_obj.rb4
-rw-r--r--benchmark/hash_ident_str.rb4
-rw-r--r--benchmark/hash_ident_sym.rb4
-rw-r--r--benchmark/hash_keys.rb9
-rw-r--r--benchmark/hash_literal_small2.rb3
-rw-r--r--benchmark/hash_literal_small4.rb3
-rw-r--r--benchmark/hash_literal_small8.rb3
-rw-r--r--benchmark/hash_long.rb4
-rw-r--r--benchmark/hash_shift.rb10
-rw-r--r--benchmark/hash_shift_u16.rb10
-rw-r--r--benchmark/hash_shift_u24.rb10
-rw-r--r--benchmark/hash_shift_u32.rb10
-rw-r--r--benchmark/hash_small2.rb1
-rw-r--r--benchmark/hash_small4.rb1
-rw-r--r--benchmark/hash_small8.rb1
-rw-r--r--benchmark/hash_to_proc.rb9
-rw-r--r--benchmark/hash_values.rb9
-rw-r--r--benchmark/int_quo.rb1
-rw-r--r--benchmark/io_copy_stream_write.rb24
-rw-r--r--benchmark/io_copy_stream_write_socket.rb35
-rw-r--r--benchmark/io_file_create.rb13
-rw-r--r--benchmark/io_file_read.rb15
-rw-r--r--benchmark/io_file_write.rb14
-rw-r--r--benchmark/io_nonblock_noex.rb22
-rw-r--r--benchmark/io_nonblock_noex2.rb21
-rw-r--r--benchmark/io_pipe_rw.rb13
-rw-r--r--benchmark/io_select.rb9
-rw-r--r--benchmark/io_select2.rb22
-rw-r--r--benchmark/io_select3.rb21
-rw-r--r--benchmark/irb_color.yml13
-rw-r--r--benchmark/irb_exec.yml10
-rw-r--r--benchmark/iseq_load_from_binary.yml25
-rw-r--r--benchmark/ivar_extend.yml23
-rw-r--r--benchmark/kernel_clone.yml6
-rw-r--r--benchmark/kernel_float.yml5
-rw-r--r--benchmark/kernel_tap.yml6
-rw-r--r--benchmark/kernel_then.yml6
-rw-r--r--benchmark/keyword_arguments.yml13
-rw-r--r--benchmark/lib/benchmark_driver/output/driver.rb36
-rw-r--r--benchmark/lib/benchmark_driver/runner/cstime.rb22
-rw-r--r--benchmark/lib/benchmark_driver/runner/cutime.rb22
-rw-r--r--benchmark/lib/benchmark_driver/runner/mjit.rb34
-rw-r--r--benchmark/lib/benchmark_driver/runner/mjit_exec.rb237
-rw-r--r--benchmark/lib/benchmark_driver/runner/peak.rb151
-rw-r--r--benchmark/lib/benchmark_driver/runner/ractor.rb122
-rw-r--r--benchmark/lib/benchmark_driver/runner/size.rb25
-rw-r--r--benchmark/lib/benchmark_driver/runner/stime.rb22
-rw-r--r--benchmark/lib/benchmark_driver/runner/total.rb137
-rw-r--r--benchmark/lib/benchmark_driver/runner/utime.rb22
-rw-r--r--benchmark/lib/load.rb18
-rw-r--r--benchmark/loop_for.rb3
-rw-r--r--benchmark/loop_generator.rb14
-rw-r--r--benchmark/loop_times.rb1
-rw-r--r--benchmark/loop_whileloop.rb4
-rw-r--r--benchmark/loop_whileloop2.rb4
-rw-r--r--benchmark/marshal_dump_flo.rb2
-rw-r--r--benchmark/marshal_dump_load_geniv.rb10
-rw-r--r--benchmark/marshal_dump_load_time.rb1
-rw-r--r--benchmark/masgn.yml29
-rw-r--r--benchmark/match_gt4.rb1
-rw-r--r--benchmark/match_small.rb1
-rw-r--r--benchmark/method_bind_call.yml16
-rw-r--r--benchmark/mjit_exec_jt2jt.yml6
-rw-r--r--benchmark/mjit_exec_vm2jt.yml6
-rw-r--r--benchmark/mjit_exec_vm2vm.yml6
-rw-r--r--benchmark/mjit_exivar.yml18
-rw-r--r--benchmark/mjit_integer.yml32
-rw-r--r--benchmark/mjit_kernel.yml20
-rw-r--r--benchmark/mjit_leave.yml8
-rw-r--r--benchmark/mjit_opt_cc_insns.yml27
-rw-r--r--benchmark/mjit_struct_aref.yml10
-rw-r--r--benchmark/nil_p.yml9
-rw-r--r--benchmark/nilclass.yml6
-rw-r--r--benchmark/num_zero_p.yml8
-rw-r--r--benchmark/numeric_methods.yml13
-rw-r--r--benchmark/object_allocate.yml21
-rw-r--r--benchmark/objspace_dump_all.yml13
-rw-r--r--benchmark/other-lang/ack.pl11
-rw-r--r--benchmark/other-lang/ack.py16
-rw-r--r--benchmark/other-lang/ack.rb12
-rw-r--r--benchmark/other-lang/ack.scm7
-rw-r--r--benchmark/other-lang/eval.rb66
-rw-r--r--benchmark/other-lang/fact.pl13
-rw-r--r--benchmark/other-lang/fact.py18
-rw-r--r--benchmark/other-lang/fact.rb13
-rw-r--r--benchmark/other-lang/fact.scm8
-rw-r--r--benchmark/other-lang/fib.pl11
-rw-r--r--benchmark/other-lang/fib.py7
-rw-r--r--benchmark/other-lang/fib.rb9
-rw-r--r--benchmark/other-lang/fib.scm7
-rw-r--r--benchmark/other-lang/loop.pl3
-rw-r--r--benchmark/other-lang/loop.py2
-rw-r--r--benchmark/other-lang/loop.rb4
-rw-r--r--benchmark/other-lang/loop.scm1
-rw-r--r--benchmark/other-lang/loop2.rb1
-rw-r--r--benchmark/other-lang/tak.pl11
-rw-r--r--benchmark/other-lang/tak.py8
-rw-r--r--benchmark/other-lang/tak.rb13
-rw-r--r--benchmark/other-lang/tak.scm10
-rw-r--r--benchmark/pm_array.yml19
-rw-r--r--benchmark/ractor_const.yml4
-rw-r--r--benchmark/ractor_float_to_s.yml8
-rw-r--r--benchmark/range_last.yml4
-rw-r--r--benchmark/realpath.yml30
-rw-r--r--benchmark/require.yml32
-rw-r--r--benchmark/require_thread.yml40
-rw-r--r--benchmark/securerandom.rb5
-rw-r--r--benchmark/so_ackermann.rb19
-rw-r--r--benchmark/so_array.rb23
-rw-r--r--benchmark/so_binary_trees.rb62
-rw-r--r--benchmark/so_concatenate.rb18
-rw-r--r--benchmark/so_count_words.yml65
-rw-r--r--benchmark/so_exception.rb61
-rw-r--r--benchmark/so_fannkuch.rb45
-rw-r--r--benchmark/so_fasta.rb81
-rw-r--r--benchmark/so_k_nucleotide.yml155
-rw-r--r--benchmark/so_lists.rb47
-rw-r--r--benchmark/so_mandelbrot.rb57
-rw-r--r--benchmark/so_matrix.rb48
-rw-r--r--benchmark/so_meteor_contest.rb563
-rw-r--r--benchmark/so_nbody.rb148
-rw-r--r--benchmark/so_nested_loop.rb24
-rw-r--r--benchmark/so_nsieve.rb35
-rw-r--r--benchmark/so_nsieve_bits.rb43
-rw-r--r--benchmark/so_object.rb56
-rw-r--r--benchmark/so_partial_sums.rb31
-rw-r--r--benchmark/so_pidigits.rb92
-rw-r--r--benchmark/so_random.rb20
-rw-r--r--benchmark/so_reverse_complement.yml137
-rw-r--r--benchmark/so_sieve.rb24
-rw-r--r--benchmark/so_spectralnorm.rb50
-rw-r--r--benchmark/string_capitalize.yml10
-rw-r--r--benchmark/string_casecmp.yml26
-rw-r--r--benchmark/string_casecmp_p.yml26
-rw-r--r--benchmark/string_downcase.yml18
-rw-r--r--benchmark/string_index.rb3
-rw-r--r--benchmark/string_scan_re.rb2
-rw-r--r--benchmark/string_scan_str.rb2
-rw-r--r--benchmark/string_slice.yml11
-rw-r--r--benchmark/string_split.yml22
-rw-r--r--benchmark/string_swapcase.yml18
-rw-r--r--benchmark/string_upcase.yml18
-rw-r--r--benchmark/time_at.yml7
-rw-r--r--benchmark/time_new.yml4
-rw-r--r--benchmark/time_parse.yml8
-rw-r--r--benchmark/time_strptime.yml13
-rw-r--r--benchmark/time_subsec.rb2
-rw-r--r--benchmark/vm_array.yml4
-rw-r--r--benchmark/vm_attr_ivar.yml14
-rw-r--r--benchmark/vm_attr_ivar_set.yml14
-rw-r--r--benchmark/vm_backtrace.rb22
-rw-r--r--benchmark/vm_bigarray.yml105
-rw-r--r--benchmark/vm_bighash.yml4
-rw-r--r--benchmark/vm_block.yml9
-rw-r--r--benchmark/vm_block_handler.yml27
-rw-r--r--benchmark/vm_blockparam.yml7
-rw-r--r--benchmark/vm_blockparam_call.yml8
-rw-r--r--benchmark/vm_blockparam_pass.yml12
-rw-r--r--benchmark/vm_blockparam_yield.yml8
-rw-r--r--benchmark/vm_case.yml13
-rw-r--r--benchmark/vm_case_classes.yml9
-rw-r--r--benchmark/vm_case_lit.yml23
-rw-r--r--benchmark/vm_clearmethodcache.rb8
-rw-r--r--benchmark/vm_const.yml7
-rw-r--r--benchmark/vm_cvar.yml20
-rw-r--r--benchmark/vm_defined_method.yml8
-rw-r--r--benchmark/vm_dstr.yml6
-rw-r--r--benchmark/vm_dstr_ary.rb6
-rw-r--r--benchmark/vm_dstr_bool.rb7
-rw-r--r--benchmark/vm_dstr_class_module.rb10
-rw-r--r--benchmark/vm_dstr_digit.rb7
-rw-r--r--benchmark/vm_dstr_int.rb5
-rw-r--r--benchmark/vm_dstr_nil.rb6
-rw-r--r--benchmark/vm_dstr_obj.rb6
-rw-r--r--benchmark/vm_dstr_obj_def.rb8
-rw-r--r--benchmark/vm_dstr_str.rb6
-rw-r--r--benchmark/vm_dstr_sym.rb6
-rw-r--r--benchmark/vm_ensure.yml14
-rw-r--r--benchmark/vm_eval.yml4
-rw-r--r--benchmark/vm_fiber_allocate.yml8
-rw-r--r--benchmark/vm_fiber_count.yml10
-rw-r--r--benchmark/vm_fiber_reuse.yml14
-rw-r--r--benchmark/vm_fiber_reuse_gc.yml12
-rw-r--r--benchmark/vm_fiber_switch.yml9
-rw-r--r--benchmark/vm_float_simple.yml8
-rw-r--r--benchmark/vm_freezestring.yml10
-rw-r--r--benchmark/vm_gc.rb6
-rw-r--r--benchmark/vm_gc_old_full.rb4
-rw-r--r--benchmark/vm_gc_old_immediate.rb4
-rw-r--r--benchmark/vm_gc_old_lazy.rb4
-rw-r--r--benchmark/vm_gc_short_lived.yml9
-rw-r--r--benchmark/vm_gc_short_with_complex_long.yml25
-rw-r--r--benchmark/vm_gc_short_with_long.yml13
-rw-r--r--benchmark/vm_gc_short_with_symbol.yml13
-rw-r--r--benchmark/vm_gc_wb_ary.yml12
-rw-r--r--benchmark/vm_gc_wb_ary_promoted.yml15
-rw-r--r--benchmark/vm_gc_wb_obj.yml15
-rw-r--r--benchmark/vm_gc_wb_obj_promoted.yml17
-rw-r--r--benchmark/vm_iclass_super.yml20
-rw-r--r--benchmark/vm_ivar.yml6
-rw-r--r--benchmark/vm_ivar_init.yml14
-rw-r--r--benchmark/vm_ivar_of_class.yml12
-rw-r--r--benchmark/vm_ivar_of_class_set.yml11
-rw-r--r--benchmark/vm_ivar_set.yml5
-rw-r--r--benchmark/vm_ivar_set_subclass.yml17
-rw-r--r--benchmark/vm_length.yml8
-rw-r--r--benchmark/vm_lvar_init.yml21
-rw-r--r--benchmark/vm_lvar_set.yml4
-rw-r--r--benchmark/vm_method.yml8
-rw-r--r--benchmark/vm_method_missing.yml11
-rw-r--r--benchmark/vm_method_with_block.yml8
-rw-r--r--benchmark/vm_module_ann_const_set.yml4
-rw-r--r--benchmark/vm_module_const_set.yml8
-rw-r--r--benchmark/vm_mutex.yml8
-rw-r--r--benchmark/vm_neq.yml7
-rw-r--r--benchmark/vm_newlambda.yml4
-rw-r--r--benchmark/vm_not.yml6
-rw-r--r--benchmark/vm_poly_method.yml24
-rw-r--r--benchmark/vm_poly_method_ov.yml24
-rw-r--r--benchmark/vm_poly_same_method.yml25
-rw-r--r--benchmark/vm_poly_singleton.yml18
-rw-r--r--benchmark/vm_proc.yml12
-rw-r--r--benchmark/vm_raise1.yml16
-rw-r--r--benchmark/vm_raise2.yml16
-rw-r--r--benchmark/vm_regexp.yml8
-rw-r--r--benchmark/vm_rescue.yml6
-rw-r--r--benchmark/vm_send.yml14
-rw-r--r--benchmark/vm_send_cfunc.yml3
-rw-r--r--benchmark/vm_simplereturn.yml7
-rw-r--r--benchmark/vm_string_literal.yml4
-rw-r--r--benchmark/vm_struct_big_aref_hi.yml7
-rw-r--r--benchmark/vm_struct_big_aref_lo.yml7
-rw-r--r--benchmark/vm_struct_big_aset.yml11
-rw-r--r--benchmark/vm_struct_big_href_hi.yml7
-rw-r--r--benchmark/vm_struct_big_href_lo.yml7
-rw-r--r--benchmark/vm_struct_big_hset.yml11
-rw-r--r--benchmark/vm_struct_small_aref.yml7
-rw-r--r--benchmark/vm_struct_small_aset.yml11
-rw-r--r--benchmark/vm_struct_small_href.yml7
-rw-r--r--benchmark/vm_struct_small_hset.yml7
-rw-r--r--benchmark/vm_super.yml17
-rw-r--r--benchmark/vm_swap.yml7
-rw-r--r--benchmark/vm_symbol_block_pass.rb13
-rw-r--r--benchmark/vm_thread_alive_check.yml8
-rw-r--r--benchmark/vm_thread_close.rb6
-rw-r--r--benchmark/vm_thread_condvar1.rb28
-rw-r--r--benchmark/vm_thread_condvar2.rb35
-rw-r--r--benchmark/vm_thread_create_join.rb6
-rw-r--r--benchmark/vm_thread_mutex1.rb21
-rw-r--r--benchmark/vm_thread_mutex2.rb21
-rw-r--r--benchmark/vm_thread_mutex3.rb20
-rw-r--r--benchmark/vm_thread_pass.rb15
-rw-r--r--benchmark/vm_thread_pass_flood.rb10
-rw-r--r--benchmark/vm_thread_pipe.rb17
-rw-r--r--benchmark/vm_thread_queue.rb18
-rw-r--r--benchmark/vm_thread_sized_queue.rb20
-rw-r--r--benchmark/vm_thread_sized_queue2.rb23
-rw-r--r--benchmark/vm_thread_sized_queue3.rb22
-rw-r--r--benchmark/vm_thread_sized_queue4.rb26
-rw-r--r--benchmark/vm_thread_sleep.yml4
-rw-r--r--benchmark/vm_unif1.yml7
-rw-r--r--benchmark/vm_yield.yml13
-rw-r--r--benchmark/vm_zsuper.yml18
-rw-r--r--bignum.c7628
-rwxr-xr-xbin/gem25
-rw-r--r--bootstraptest/pending.rb21
-rwxr-xr-xbootstraptest/runner.rb550
-rw-r--r--bootstraptest/test_attr.rb36
-rw-r--r--bootstraptest/test_autoload.rb70
-rw-r--r--bootstraptest/test_block.rb613
-rw-r--r--bootstraptest/test_class.rb169
-rw-r--r--bootstraptest/test_env.rb12
-rw-r--r--bootstraptest/test_eval.rb356
-rw-r--r--bootstraptest/test_exception.rb432
-rw-r--r--bootstraptest/test_fiber.rb39
-rw-r--r--bootstraptest/test_finalizer.rb8
-rw-r--r--bootstraptest/test_flip.rb1
-rw-r--r--bootstraptest/test_flow.rb601
-rw-r--r--bootstraptest/test_fork.rb77
-rw-r--r--bootstraptest/test_gc.rb34
-rw-r--r--bootstraptest/test_insns.rb440
-rw-r--r--bootstraptest/test_io.rb112
-rw-r--r--bootstraptest/test_jump.rb314
-rw-r--r--bootstraptest/test_literal.rb247
-rw-r--r--bootstraptest/test_literal_suffix.rb54
-rw-r--r--bootstraptest/test_load.rb27
-rw-r--r--bootstraptest/test_marshal.rb5
-rw-r--r--bootstraptest/test_massign.rb183
-rw-r--r--bootstraptest/test_method.rb1192
-rw-r--r--bootstraptest/test_objectspace.rb55
-rw-r--r--bootstraptest/test_proc.rb470
-rw-r--r--bootstraptest/test_ractor.rb1582
-rw-r--r--bootstraptest/test_string.rb3
-rw-r--r--bootstraptest/test_struct.rb5
-rw-r--r--bootstraptest/test_syntax.rb906
-rw-r--r--bootstraptest/test_thread.rb500
-rw-r--r--bootstraptest/test_yjit.rb2721
-rw-r--r--bootstraptest/test_yjit_30k_ifelse.rb241023
-rw-r--r--bootstraptest/test_yjit_30k_methods.rb121018
-rw-r--r--builtin.c69
-rw-r--r--builtin.h84
-rw-r--r--ccan/build_assert/build_assert.h40
-rw-r--r--ccan/check_type/check_type.h63
-rw-r--r--ccan/container_of/container_of.h142
-rw-r--r--ccan/licenses/BSD-MIT17
-rw-r--r--ccan/licenses/CC028
-rw-r--r--ccan/list/list.h788
-rw-r--r--ccan/str/str.h16
-rw-r--r--class.c2515
-rw-r--r--common.mk17704
-rw-r--r--compar.c316
-rw-r--r--compile.c12940
-rw-r--r--complex.c2439
-rw-r--r--config.guess961
-rw-r--r--config.sub969
-rw-r--r--config_h.dj71
-rw-r--r--config_s.dj56
-rw-r--r--configure5010
-rw-r--r--configure.ac4364
-rw-r--r--configure.bat24
-rw-r--r--configure.in793
-rw-r--r--constant.h55
-rw-r--r--cont.c3302
-rw-r--r--coroutine/amd64/Context.S46
-rw-r--r--coroutine/amd64/Context.h60
-rw-r--r--coroutine/arm32/Context.S33
-rw-r--r--coroutine/arm32/Context.h59
-rw-r--r--coroutine/arm64/Context.S73
-rw-r--r--coroutine/arm64/Context.h58
-rw-r--r--coroutine/emscripten/Context.c8
-rw-r--r--coroutine/emscripten/Context.h77
-rw-r--r--coroutine/ppc64le/Context.S75
-rw-r--r--coroutine/ppc64le/Context.h57
-rw-r--r--coroutine/pthread/Context.c272
-rw-r--r--coroutine/pthread/Context.h63
-rw-r--r--coroutine/riscv64/Context.S87
-rw-r--r--coroutine/riscv64/Context.h46
-rw-r--r--coroutine/ucontext/Context.c23
-rw-r--r--coroutine/ucontext/Context.h79
-rw-r--r--coroutine/universal/Context.S12
-rw-r--r--coroutine/universal/Context.h17
-rw-r--r--coroutine/win32/Context.S47
-rw-r--r--coroutine/win32/Context.asm55
-rw-r--r--coroutine/win32/Context.h65
-rw-r--r--coroutine/win64/Context.S77
-rw-r--r--coroutine/win64/Context.asm79
-rw-r--r--coroutine/win64/Context.h75
-rw-r--r--coroutine/x86/Context.S42
-rw-r--r--coroutine/x86/Context.h61
-rw-r--r--coverage/README17
-rw-r--r--cygwin/GNUmakefile.in105
-rw-r--r--darray.h198
-rw-r--r--debug.c514
-rw-r--r--debug_counter.c160
-rw-r--r--debug_counter.h469
-rw-r--r--defines.h67
-rw-r--r--defs/gmake.mk428
-rw-r--r--defs/id.def214
-rw-r--r--defs/keywords53
-rw-r--r--defs/known_errors.def157
-rw-r--r--defs/lex.c.src53
-rw-r--r--defs/opt_insn_unif.def27
-rw-r--r--defs/opt_operand.def22
-rw-r--r--defs/separated_version.mk38
-rw-r--r--defs/universal.mk5
-rw-r--r--dir.c3582
-rw-r--r--dir.rb314
-rw-r--r--dln.c1764
-rw-r--r--dln.h35
-rw-r--r--dln_find.c292
-rw-r--r--dmydln.c10
-rw-r--r--dmyenc.c10
-rw-r--r--dmyext.c2
-rw-r--r--doc/.document4
-rw-r--r--doc/ChangeLog-0.06_to_0.521147
-rw-r--r--doc/ChangeLog-0.50_to_0.60462
-rw-r--r--doc/ChangeLog-0.60_to_1.13955
-rw-r--r--doc/ChangeLog-1.8.024350
-rw-r--r--doc/ChangeLog-1.9.392772
-rw-r--r--doc/ChangeLog-2.0.024015
-rw-r--r--doc/ChangeLog-2.1.018060
-rw-r--r--doc/ChangeLog-2.2.012157
-rw-r--r--doc/ChangeLog-2.3.012187
-rw-r--r--doc/ChangeLog-2.4.09492
-rw-r--r--doc/ChangeLog-YARV6917
-rw-r--r--doc/NEWS-1.8.7669
-rw-r--r--doc/NEWS-1.9.1429
-rw-r--r--doc/NEWS-1.9.2509
-rw-r--r--doc/NEWS-1.9.3341
-rw-r--r--doc/NEWS-2.0.0529
-rw-r--r--doc/NEWS-2.1.0376
-rw-r--r--doc/NEWS-2.2.0359
-rw-r--r--doc/NEWS-2.3.0384
-rw-r--r--doc/NEWS-2.4.0399
-rw-r--r--doc/NEWS-2.5.0565
-rw-r--r--doc/NEWS-2.6.0662
-rw-r--r--doc/NEWS-2.7.0835
-rw-r--r--doc/NEWS-3.0.0.md817
-rw-r--r--doc/bsearch.rdoc120
-rw-r--r--doc/bug_triaging.rdoc79
-rw-r--r--doc/case_mapping.rdoc116
-rw-r--r--doc/contributing.rdoc402
-rw-r--r--doc/csv/arguments/io.rdoc5
-rw-r--r--doc/csv/options/common/col_sep.rdoc63
-rw-r--r--doc/csv/options/common/quote_char.rdoc42
-rw-r--r--doc/csv/options/common/row_sep.rdoc100
-rw-r--r--doc/csv/options/generating/force_quotes.rdoc17
-rw-r--r--doc/csv/options/generating/quote_empty.rdoc12
-rw-r--r--doc/csv/options/generating/write_converters.rdoc33
-rw-r--r--doc/csv/options/generating/write_empty_value.rdoc15
-rw-r--r--doc/csv/options/generating/write_headers.rdoc29
-rw-r--r--doc/csv/options/generating/write_nil_value.rdoc14
-rw-r--r--doc/csv/options/parsing/converters.rdoc46
-rw-r--r--doc/csv/options/parsing/empty_value.rdoc13
-rw-r--r--doc/csv/options/parsing/field_size_limit.rdoc39
-rw-r--r--doc/csv/options/parsing/header_converters.rdoc43
-rw-r--r--doc/csv/options/parsing/headers.rdoc63
-rw-r--r--doc/csv/options/parsing/liberal_parsing.rdoc19
-rw-r--r--doc/csv/options/parsing/nil_value.rdoc12
-rw-r--r--doc/csv/options/parsing/return_headers.rdoc22
-rw-r--r--doc/csv/options/parsing/skip_blanks.rdoc31
-rw-r--r--doc/csv/options/parsing/skip_lines.rdoc37
-rw-r--r--doc/csv/options/parsing/strip.rdoc15
-rw-r--r--doc/csv/options/parsing/unconverted_fields.rdoc27
-rw-r--r--doc/csv/recipes/filtering.rdoc156
-rw-r--r--doc/csv/recipes/generating.rdoc244
-rw-r--r--doc/csv/recipes/parsing.rdoc543
-rw-r--r--doc/csv/recipes/recipes.rdoc6
-rw-r--r--doc/dig_methods.rdoc82
-rw-r--r--doc/documentation_guide.rdoc281
-rw-r--r--doc/dtrace_probes.rdoc184
-rw-r--r--doc/extension.ja.rdoc1859
-rw-r--r--doc/extension.rdoc2228
-rw-r--r--doc/fiber.md232
-rw-r--r--doc/forwardable.rd.ja80
-rw-r--r--doc/globals.rdoc69
-rw-r--r--doc/hacking.md85
-rw-r--r--doc/images/boottime-classes.pngbin28677 -> 0 bytes-rw-r--r--doc/implicit_conversion.rdoc198
-rw-r--r--doc/irb/irb-tools.rd.ja184
-rw-r--r--doc/irb/irb.rd.ja427
-rw-r--r--doc/keywords.rdoc162
-rw-r--r--doc/maintainers.rdoc414
-rw-r--r--doc/make_cheatsheet.md124
-rw-r--r--doc/marshal.rdoc313
-rw-r--r--doc/memory_view.md167
-rw-r--r--doc/optparse/argument_converters.rdoc380
-rw-r--r--doc/optparse/creates_option.rdoc7
-rw-r--r--doc/optparse/option_params.rdoc509
-rw-r--r--doc/optparse/ruby/argument_keywords.rb6
-rw-r--r--doc/optparse/ruby/argument_strings.rb6
-rw-r--r--doc/optparse/ruby/argv.rb2
-rw-r--r--doc/optparse/ruby/array.rb6
-rw-r--r--doc/optparse/ruby/basic.rb17
-rw-r--r--doc/optparse/ruby/block.rb9
-rw-r--r--doc/optparse/ruby/collected_options.rb8
-rw-r--r--doc/optparse/ruby/custom_converter.rb9
-rw-r--r--doc/optparse/ruby/date.rb6
-rw-r--r--doc/optparse/ruby/datetime.rb6
-rw-r--r--doc/optparse/ruby/decimal_integer.rb7
-rw-r--r--doc/optparse/ruby/decimal_numeric.rb7
-rw-r--r--doc/optparse/ruby/default_values.rb8
-rw-r--r--doc/optparse/ruby/descriptions.rb15
-rw-r--r--doc/optparse/ruby/explicit_array_values.rb9
-rw-r--r--doc/optparse/ruby/explicit_hash_values.rb9
-rw-r--r--doc/optparse/ruby/false_class.rb6
-rw-r--r--doc/optparse/ruby/float.rb6
-rw-r--r--doc/optparse/ruby/help.rb18
-rw-r--r--doc/optparse/ruby/help_banner.rb7
-rw-r--r--doc/optparse/ruby/help_format.rb25
-rw-r--r--doc/optparse/ruby/help_program_name.rb7
-rw-r--r--doc/optparse/ruby/integer.rb6
-rw-r--r--doc/optparse/ruby/long_names.rb9
-rw-r--r--doc/optparse/ruby/long_optional.rb6
-rw-r--r--doc/optparse/ruby/long_required.rb6
-rw-r--r--doc/optparse/ruby/long_simple.rb9
-rw-r--r--doc/optparse/ruby/long_with_negation.rb6
-rw-r--r--doc/optparse/ruby/match_converter.rb9
-rw-r--r--doc/optparse/ruby/matched_values.rb6
-rw-r--r--doc/optparse/ruby/method.rb11
-rw-r--r--doc/optparse/ruby/missing_options.rb12
-rw-r--r--doc/optparse/ruby/mixed_names.rb12
-rw-r--r--doc/optparse/ruby/name_abbrev.rb9
-rw-r--r--doc/optparse/ruby/no_abbreviation.rb10
-rw-r--r--doc/optparse/ruby/numeric.rb6
-rw-r--r--doc/optparse/ruby/object.rb6
-rw-r--r--doc/optparse/ruby/octal_integer.rb7
-rw-r--r--doc/optparse/ruby/optional_argument.rb9
-rw-r--r--doc/optparse/ruby/parse.rb13
-rw-r--r--doc/optparse/ruby/parse_bang.rb13
-rw-r--r--doc/optparse/ruby/proc.rb13
-rw-r--r--doc/optparse/ruby/regexp.rb6
-rw-r--r--doc/optparse/ruby/required_argument.rb9
-rw-r--r--doc/optparse/ruby/shellwords.rb6
-rw-r--r--doc/optparse/ruby/short_names.rb9
-rw-r--r--doc/optparse/ruby/short_optional.rb6
-rw-r--r--doc/optparse/ruby/short_range.rb6
-rw-r--r--doc/optparse/ruby/short_required.rb6
-rw-r--r--doc/optparse/ruby/short_simple.rb9
-rw-r--r--doc/optparse/ruby/string.rb6
-rw-r--r--doc/optparse/ruby/terminator.rb6
-rw-r--r--doc/optparse/ruby/time.rb6
-rw-r--r--doc/optparse/ruby/true_class.rb6
-rw-r--r--doc/optparse/ruby/uri.rb6
-rw-r--r--doc/optparse/tutorial.rdoc835
-rw-r--r--doc/pty/README.expect.ja21
-rw-r--r--doc/pty/README.ja76
-rw-r--r--doc/ractor.md952
-rw-r--r--doc/regexp.rdoc760
-rw-r--r--doc/security.rdoc139
-rw-r--r--doc/signals.rdoc106
-rw-r--r--doc/standard_library.rdoc115
-rw-r--r--doc/syntax.rdoc39
-rw-r--r--doc/syntax/assignment.rdoc477
-rw-r--r--doc/syntax/calling_methods.rdoc429
-rw-r--r--doc/syntax/comments.rdoc253
-rw-r--r--doc/syntax/control_expressions.rdoc571
-rw-r--r--doc/syntax/exceptions.rdoc102
-rw-r--r--doc/syntax/literals.rdoc497
-rw-r--r--doc/syntax/methods.rdoc638
-rw-r--r--doc/syntax/miscellaneous.rdoc136
-rw-r--r--doc/syntax/modules_and_classes.rdoc376
-rw-r--r--doc/syntax/pattern_matching.rdoc540
-rw-r--r--doc/syntax/precedence.rdoc64
-rw-r--r--doc/syntax/refinements.rdoc284
-rw-r--r--doc/time/in.rdoc7
-rw-r--r--doc/time/mon-min.rdoc8
-rw-r--r--doc/time/msec.rdoc2
-rw-r--r--doc/time/nsec.rdoc2
-rw-r--r--doc/time/sec.rdoc2
-rw-r--r--doc/time/sec_i.rdoc1
-rw-r--r--doc/time/usec.rdoc2
-rw-r--r--doc/time/year.rdoc1
-rw-r--r--doc/time/zone_and_in.rdoc8
-rw-r--r--doc/yarvarch.en7
-rw-r--r--doc/yarvarch.ja454
-rw-r--r--doc/yjit/yjit.md233
-rw-r--r--doc/yjit/yjit_hacking.md75
-rw-r--r--enc/Makefile.in86
-rw-r--r--enc/ascii.c106
-rw-r--r--enc/big5.c376
-rw-r--r--enc/cesu_8.c454
-rw-r--r--enc/cp949.c222
-rw-r--r--enc/depend6629
-rw-r--r--enc/ebcdic.h11
-rw-r--r--enc/emacs_mule.c342
-rw-r--r--enc/encdb.c26
-rw-r--r--enc/encinit.c.erb37
-rw-r--r--enc/euc_jp.c616
-rw-r--r--enc/euc_kr.c220
-rw-r--r--enc/euc_tw.c228
-rw-r--r--enc/gb18030.c603
-rw-r--r--enc/gb2312.c11
-rw-r--r--enc/gbk.c225
-rw-r--r--enc/iso_2022_jp.h47
-rw-r--r--enc/iso_8859.h1
-rw-r--r--enc/iso_8859_1.c322
-rw-r--r--enc/iso_8859_10.c294
-rw-r--r--enc/iso_8859_11.c114
-rw-r--r--enc/iso_8859_13.c289
-rw-r--r--enc/iso_8859_14.c305
-rw-r--r--enc/iso_8859_15.c296
-rw-r--r--enc/iso_8859_16.c300
-rw-r--r--enc/iso_8859_2.c291
-rw-r--r--enc/iso_8859_3.c301
-rw-r--r--enc/iso_8859_4.c297
-rw-r--r--enc/iso_8859_5.c265
-rw-r--r--enc/iso_8859_6.c110
-rw-r--r--enc/iso_8859_7.c284
-rw-r--r--enc/iso_8859_8.c110
-rw-r--r--enc/iso_8859_9.c290
-rw-r--r--enc/jis/props.h.blt217
-rw-r--r--enc/jis/props.kwd52
-rw-r--r--enc/jis/props.src52
-rw-r--r--enc/koi8_r.c221
-rw-r--r--enc/koi8_u.c224
-rwxr-xr-xenc/make_encmake.rb159
-rw-r--r--enc/mktable.c1184
-rw-r--r--enc/shift_jis.c67
-rw-r--r--enc/shift_jis.h546
-rw-r--r--enc/trans/CP/CP932UDA%UCS.src1912
-rw-r--r--enc/trans/CP/CP932VDC@IBM%UCS.src420
-rw-r--r--enc/trans/CP/CP932VDC@NEC_IBM%UCS.src406
-rw-r--r--enc/trans/CP/UCS%CP932UDA.src1912
-rw-r--r--enc/trans/CP/UCS%CP932VDC@IBM.src420
-rw-r--r--enc/trans/CP/UCS%CP932VDC@NEC_IBM.src406
-rw-r--r--enc/trans/EMOJI/EMOJI_ISO-2022-JP-KDDI%UCS.src658
-rw-r--r--enc/trans/EMOJI/EMOJI_SHIFT_JIS-DOCOMO%UCS.src293
-rw-r--r--enc/trans/EMOJI/EMOJI_SHIFT_JIS-KDDI%UCS.src658
-rw-r--r--enc/trans/EMOJI/EMOJI_SHIFT_JIS-KDDI-UNDOC%UCS.src658
-rw-r--r--enc/trans/EMOJI/EMOJI_SHIFT_JIS-SOFTBANK%UCS.src496
-rw-r--r--enc/trans/EMOJI/UCS%EMOJI_ISO-2022-JP-KDDI-UNDOC.src658
-rw-r--r--enc/trans/EMOJI/UCS%EMOJI_ISO-2022-JP-KDDI.src658
-rw-r--r--enc/trans/EMOJI/UCS%EMOJI_SHIFT_JIS-DOCOMO.src293
-rw-r--r--enc/trans/EMOJI/UCS%EMOJI_SHIFT_JIS-KDDI-UNDOC.src658
-rw-r--r--enc/trans/EMOJI/UCS%EMOJI_SHIFT_JIS-KDDI.src658
-rw-r--r--enc/trans/EMOJI/UCS%EMOJI_SHIFT_JIS-SOFTBANK.src496
-rw-r--r--enc/trans/GB/GB12345%UCS.src7567
-rw-r--r--enc/trans/GB/GB2312%UCS.src7470
-rw-r--r--enc/trans/GB/UCS%GB12345.src7569
-rw-r--r--enc/trans/GB/UCS%GB2312.src7466
-rw-r--r--enc/trans/JIS/JISX0201-KANA%UCS.src124
-rw-r--r--enc/trans/JIS/JISX0208@1990%UCS.src6964
-rw-r--r--enc/trans/JIS/JISX0208@MS%UCS.src6893
-rw-r--r--enc/trans/JIS/JISX0208UDC%UCS.src954
-rw-r--r--enc/trans/JIS/JISX0208VDC@NEC%UCS.src97
-rw-r--r--enc/trans/JIS/JISX0212%UCS.src6159
-rw-r--r--enc/trans/JIS/JISX0212@MS%UCS.src6081
-rw-r--r--enc/trans/JIS/JISX0212UDC%UCS.src954
-rw-r--r--enc/trans/JIS/JISX0212VDC@IBM%UCS.src120
-rw-r--r--enc/trans/JIS/JISX0213-1%UCS@BMP.src1926
-rw-r--r--enc/trans/JIS/JISX0213-1%UCS@SIP.src60
-rw-r--r--enc/trans/JIS/JISX0213-2%UCS@BMP.src2193
-rw-r--r--enc/trans/JIS/JISX0213-2%UCS@SIP.src311
-rw-r--r--enc/trans/JIS/UCS%JISX0201-KANA.src125
-rw-r--r--enc/trans/JIS/UCS%JISX0208@1990.src6965
-rw-r--r--enc/trans/JIS/UCS%JISX0208@MS.src6894
-rw-r--r--enc/trans/JIS/UCS%JISX0208UDC.src955
-rw-r--r--enc/trans/JIS/UCS%JISX0208VDC@NEC.src98
-rw-r--r--enc/trans/JIS/UCS%JISX0212.src6163
-rw-r--r--enc/trans/JIS/UCS%JISX0212@MS.src6082
-rw-r--r--enc/trans/JIS/UCS%JISX0212UDC.src955
-rw-r--r--enc/trans/JIS/UCS%JISX0212VDC@IBM.src121
-rw-r--r--enc/trans/JIS/UCS@BMP%JISX0213-1.src1922
-rw-r--r--enc/trans/JIS/UCS@BMP%JISX0213-2.src2189
-rw-r--r--enc/trans/JIS/UCS@SIP%JISX0213-1.src56
-rw-r--r--enc/trans/JIS/UCS@SIP%JISX0213-2.src307
-rw-r--r--enc/trans/big5-hkscs-tbl.rb37302
-rw-r--r--enc/trans/big5-uao-tbl.rb19784
-rw-r--r--enc/trans/big5.trans32
-rw-r--r--enc/trans/cesu_8.trans85
-rw-r--r--enc/trans/chinese.trans31
-rw-r--r--enc/trans/cp850-tbl.rb130
-rw-r--r--enc/trans/cp852-tbl.rb130
-rw-r--r--enc/trans/cp855-tbl.rb130
-rw-r--r--enc/trans/cp949-tbl.rb8831
-rw-r--r--enc/trans/ebcdic.trans278
-rw-r--r--enc/trans/emoji-exchange-tbl.rb8407
-rw-r--r--enc/trans/emoji.trans36
-rw-r--r--enc/trans/emoji_iso2022_kddi.trans216
-rw-r--r--enc/trans/emoji_sjis_docomo.trans32
-rw-r--r--enc/trans/emoji_sjis_kddi.trans33
-rw-r--r--enc/trans/emoji_sjis_softbank.trans32
-rw-r--r--enc/trans/escape.trans94
-rw-r--r--enc/trans/euckr-tbl.rb8230
-rw-r--r--enc/trans/gb18030-tbl.rb63362
-rw-r--r--enc/trans/gb18030.trans183
-rw-r--r--enc/trans/gbk-tbl.rb21794
-rw-r--r--enc/trans/gbk.trans15
-rw-r--r--enc/trans/ibm437-tbl.rb130
-rw-r--r--enc/trans/ibm720-tbl.rb122
-rw-r--r--enc/trans/ibm737-tbl.rb130
-rw-r--r--enc/trans/ibm775-tbl.rb130
-rw-r--r--enc/trans/ibm852-tbl.rb130
-rw-r--r--enc/trans/ibm855-tbl.rb130
-rw-r--r--enc/trans/ibm857-tbl.rb127
-rw-r--r--enc/trans/ibm860-tbl.rb130
-rw-r--r--enc/trans/ibm861-tbl.rb130
-rw-r--r--enc/trans/ibm862-tbl.rb130
-rw-r--r--enc/trans/ibm863-tbl.rb130
-rw-r--r--enc/trans/ibm865-tbl.rb130
-rw-r--r--enc/trans/ibm866-tbl.rb130
-rw-r--r--enc/trans/ibm869-tbl.rb121
-rw-r--r--enc/trans/iso-8859-1-tbl.rb98
-rw-r--r--enc/trans/iso-8859-10-tbl.rb98
-rw-r--r--enc/trans/iso-8859-11-tbl.rb90
-rw-r--r--enc/trans/iso-8859-13-tbl.rb98
-rw-r--r--enc/trans/iso-8859-14-tbl.rb98
-rw-r--r--enc/trans/iso-8859-15-tbl.rb98
-rw-r--r--enc/trans/iso-8859-16-tbl.rb98
-rw-r--r--enc/trans/iso-8859-2-tbl.rb98
-rw-r--r--enc/trans/iso-8859-3-tbl.rb91
-rw-r--r--enc/trans/iso-8859-4-tbl.rb98
-rw-r--r--enc/trans/iso-8859-5-tbl.rb98
-rw-r--r--enc/trans/iso-8859-6-tbl.rb53
-rw-r--r--enc/trans/iso-8859-7-tbl.rb95
-rw-r--r--enc/trans/iso-8859-8-tbl.rb62
-rw-r--r--enc/trans/iso-8859-9-tbl.rb98
-rw-r--r--enc/trans/iso2022.trans567
-rw-r--r--enc/trans/japanese.trans97
-rw-r--r--enc/trans/japanese_euc.trans57
-rw-r--r--enc/trans/japanese_sjis.trans33
-rw-r--r--enc/trans/koi8-r-tbl.rb130
-rw-r--r--enc/trans/koi8-u-tbl.rb130
-rw-r--r--enc/trans/korean.trans18
-rw-r--r--enc/trans/maccroatian-tbl.rb129
-rw-r--r--enc/trans/maccyrillic-tbl.rb130
-rw-r--r--enc/trans/macgreek-tbl.rb129
-rw-r--r--enc/trans/maciceland-tbl.rb129
-rw-r--r--enc/trans/macroman-tbl.rb129
-rw-r--r--enc/trans/macromania-tbl.rb129
-rw-r--r--enc/trans/macturkish-tbl.rb128
-rw-r--r--enc/trans/macukraine-tbl.rb130
-rw-r--r--enc/trans/newline.trans135
-rw-r--r--enc/trans/single_byte.trans89
-rw-r--r--enc/trans/tis-620-tbl.rb89
-rw-r--r--enc/trans/transdb.c18
-rw-r--r--enc/trans/ucm/glibc-BIG5-2.3.3.ucm14087
-rw-r--r--enc/trans/ucm/glibc-BIG5HKSCS-2.3.3.ucm18332
-rw-r--r--enc/trans/ucm/windows-950-2000.ucm20379
-rw-r--r--enc/trans/ucm/windows-950_hkscs-2001.ucm23446
-rw-r--r--enc/trans/utf8_mac-tbl.rb23154
-rw-r--r--enc/trans/utf8_mac.trans256
-rw-r--r--enc/trans/utf_16_32.trans556
-rw-r--r--enc/trans/windows-1250-tbl.rb125
-rw-r--r--enc/trans/windows-1251-tbl.rb129
-rw-r--r--enc/trans/windows-1252-tbl.rb125
-rw-r--r--enc/trans/windows-1253-tbl.rb113
-rw-r--r--enc/trans/windows-1254-tbl.rb123
-rw-r--r--enc/trans/windows-1255-tbl.rb142
-rw-r--r--enc/trans/windows-1256-tbl.rb130
-rw-r--r--enc/trans/windows-1257-tbl.rb118
-rw-r--r--enc/trans/windows-874-tbl.rb99
-rw-r--r--enc/unicode.c820
-rw-r--r--enc/unicode/13.0.0/casefold.h7514
-rw-r--r--enc/unicode/13.0.0/name2ctype.h43007
-rw-r--r--enc/unicode/case-folding.rb418
-rw-r--r--enc/us_ascii.c41
-rw-r--r--enc/utf_16_32.h5
-rw-r--r--enc/utf_16be.c256
-rw-r--r--enc/utf_16le.c248
-rw-r--r--enc/utf_32be.c206
-rw-r--r--enc/utf_32le.c206
-rw-r--r--enc/utf_7.h5
-rw-r--r--enc/utf_8.c449
-rw-r--r--enc/windows_1250.c271
-rw-r--r--enc/windows_1251.c253
-rw-r--r--enc/windows_1252.c260
-rw-r--r--enc/windows_1253.c297
-rw-r--r--enc/windows_1254.c302
-rw-r--r--enc/windows_1257.c304
-rw-r--r--enc/windows_31j.c81
-rw-r--r--enc/x_emoji.h26
-rw-r--r--encindex.h70
-rw-r--r--encoding.c2201
-rw-r--r--enum.c4882
-rw-r--r--enumerator.c4261
-rw-r--r--env.h52
-rw-r--r--error.c3995
-rw-r--r--eval.c8434
-rw-r--r--eval_error.c514
-rw-r--r--eval_intern.h335
-rw-r--r--eval_jump.c138
-rw-r--r--ext/-test-/RUBY_ALIGNOF/c.c15
-rw-r--r--ext/-test-/RUBY_ALIGNOF/cpp.cpp9
-rw-r--r--ext/-test-/RUBY_ALIGNOF/depend161
-rw-r--r--ext/-test-/RUBY_ALIGNOF/extconf.rb6
-rw-r--r--ext/-test-/arith_seq/extract/depend160
-rw-r--r--ext/-test-/arith_seq/extract/extconf.rb2
-rw-r--r--ext/-test-/arith_seq/extract/extract.c27
-rw-r--r--ext/-test-/array/concat/depend161
-rw-r--r--ext/-test-/array/concat/extconf.rb2
-rw-r--r--ext/-test-/array/concat/to_ary_concat.c38
-rw-r--r--ext/-test-/array/resize/depend160
-rw-r--r--ext/-test-/array/resize/extconf.rb2
-rw-r--r--ext/-test-/array/resize/resize.c16
-rw-r--r--ext/-test-/auto_ext.rb11
-rw-r--r--ext/-test-/bignum/big2str.c53
-rw-r--r--ext/-test-/bignum/bigzero.c26
-rw-r--r--ext/-test-/bignum/depend1115
-rw-r--r--ext/-test-/bignum/div.c35
-rw-r--r--ext/-test-/bignum/extconf.rb3
-rw-r--r--ext/-test-/bignum/init.c11
-rw-r--r--ext/-test-/bignum/intpack.c87
-rw-r--r--ext/-test-/bignum/mul.c65
-rw-r--r--ext/-test-/bignum/str2big.c38
-rw-r--r--ext/-test-/bug-14834/bug-14384.c39
-rw-r--r--ext/-test-/bug-14834/depend161
-rw-r--r--ext/-test-/bug-14834/extconf.rb2
-rw-r--r--ext/-test-/bug-3571/bug.c23
-rw-r--r--ext/-test-/bug-3571/depend161
-rw-r--r--ext/-test-/bug-3571/extconf.rb2
-rw-r--r--ext/-test-/bug-5832/bug.c14
-rw-r--r--ext/-test-/bug-5832/depend161
-rw-r--r--ext/-test-/bug-5832/extconf.rb2
-rw-r--r--ext/-test-/bug_reporter/bug_reporter.c24
-rw-r--r--ext/-test-/bug_reporter/depend161
-rw-r--r--ext/-test-/bug_reporter/extconf.rb2
-rw-r--r--ext/-test-/class/class2name.c14
-rw-r--r--ext/-test-/class/depend319
-rw-r--r--ext/-test-/class/extconf.rb3
-rw-r--r--ext/-test-/class/init.c11
-rw-r--r--ext/-test-/cxxanyargs/cxxanyargs.cpp961
-rw-r--r--ext/-test-/cxxanyargs/depend13
-rw-r--r--ext/-test-/cxxanyargs/extconf.rb46
-rw-r--r--ext/-test-/cxxanyargs/failure.cpp13
-rw-r--r--ext/-test-/cxxanyargs/failurem1.cpp13
-rw-r--r--ext/-test-/debug/depend479
-rw-r--r--ext/-test-/debug/extconf.rb3
-rw-r--r--ext/-test-/debug/init.c11
-rw-r--r--ext/-test-/debug/inspector.c32
-rw-r--r--ext/-test-/debug/profile_frames.c43
-rw-r--r--ext/-test-/dln/empty/depend3
-rw-r--r--ext/-test-/dln/empty/empty.c4
-rw-r--r--ext/-test-/dln/empty/extconf.rb2
-rw-r--r--ext/-test-/enumerator_kw/depend161
-rw-r--r--ext/-test-/enumerator_kw/enumerator_kw.c21
-rw-r--r--ext/-test-/enumerator_kw/extconf.rb1
-rw-r--r--ext/-test-/exception/dataerror.c31
-rw-r--r--ext/-test-/exception/depend649
-rw-r--r--ext/-test-/exception/enc_raise.c15
-rw-r--r--ext/-test-/exception/ensured.c39
-rw-r--r--ext/-test-/exception/extconf.rb3
-rw-r--r--ext/-test-/exception/init.c11
-rw-r--r--ext/-test-/fatal/depend161
-rw-r--r--ext/-test-/fatal/extconf.rb2
-rw-r--r--ext/-test-/fatal/rb_fatal.c20
-rw-r--r--ext/-test-/file/depend503
-rw-r--r--ext/-test-/file/extconf.rb18
-rw-r--r--ext/-test-/file/fs.c111
-rw-r--r--ext/-test-/file/init.c11
-rw-r--r--ext/-test-/file/stat.c27
-rw-r--r--ext/-test-/float/depend324
-rw-r--r--ext/-test-/float/extconf.rb3
-rw-r--r--ext/-test-/float/init.c11
-rw-r--r--ext/-test-/float/nextafter.c36
-rw-r--r--ext/-test-/funcall/depend161
-rw-r--r--ext/-test-/funcall/extconf.rb3
-rw-r--r--ext/-test-/funcall/funcall.c72
-rw-r--r--ext/-test-/gvl/call_without_gvl/call_without_gvl.c78
-rw-r--r--ext/-test-/gvl/call_without_gvl/depend161
-rw-r--r--ext/-test-/gvl/call_without_gvl/extconf.rb2
-rw-r--r--ext/-test-/hash/delete.c16
-rw-r--r--ext/-test-/hash/depend320
-rw-r--r--ext/-test-/hash/extconf.rb3
-rw-r--r--ext/-test-/hash/init.c11
-rw-r--r--ext/-test-/integer/core_ext.c36
-rw-r--r--ext/-test-/integer/depend487
-rw-r--r--ext/-test-/integer/extconf.rb3
-rw-r--r--ext/-test-/integer/init.c11
-rw-r--r--ext/-test-/integer/my_integer.c16
-rw-r--r--ext/-test-/iseq_load/depend161
-rw-r--r--ext/-test-/iseq_load/extconf.rb2
-rw-r--r--ext/-test-/iseq_load/iseq_load.c21
-rw-r--r--ext/-test-/iter/break.c25
-rw-r--r--ext/-test-/iter/depend479
-rw-r--r--ext/-test-/iter/extconf.rb3
-rw-r--r--ext/-test-/iter/init.c11
-rw-r--r--ext/-test-/iter/yield.c16
-rw-r--r--ext/-test-/load/dot.dot/depend3
-rw-r--r--ext/-test-/load/dot.dot/dot.dot.c1
-rw-r--r--ext/-test-/load/dot.dot/extconf.rb2
-rw-r--r--ext/-test-/load/protect/depend161
-rw-r--r--ext/-test-/load/protect/extconf.rb1
-rw-r--r--ext/-test-/load/protect/protect.c19
-rw-r--r--ext/-test-/marshal/compat/depend161
-rw-r--r--ext/-test-/marshal/compat/extconf.rb2
-rw-r--r--ext/-test-/marshal/compat/usrcompat.c32
-rw-r--r--ext/-test-/marshal/internal_ivar/depend161
-rw-r--r--ext/-test-/marshal/internal_ivar/extconf.rb2
-rw-r--r--ext/-test-/marshal/internal_ivar/internal_ivar.c48
-rw-r--r--ext/-test-/marshal/usr/depend161
-rw-r--r--ext/-test-/marshal/usr/extconf.rb2
-rw-r--r--ext/-test-/marshal/usr/usrmarshal.c50
-rw-r--r--ext/-test-/memory_status/depend161
-rw-r--r--ext/-test-/memory_status/extconf.rb12
-rw-r--r--ext/-test-/memory_status/memory_status.c80
-rw-r--r--ext/-test-/memory_view/depend162
-rw-r--r--ext/-test-/memory_view/extconf.rb5
-rw-r--r--ext/-test-/memory_view/memory_view.c450
-rw-r--r--ext/-test-/method/arity.c22
-rw-r--r--ext/-test-/method/depend320
-rw-r--r--ext/-test-/method/extconf.rb3
-rw-r--r--ext/-test-/method/init.c11
-rw-r--r--ext/-test-/notimplement/bug.c18
-rw-r--r--ext/-test-/notimplement/depend161
-rw-r--r--ext/-test-/notimplement/extconf.rb2
-rw-r--r--ext/-test-/num2int/depend161
-rw-r--r--ext/-test-/num2int/extconf.rb2
-rw-r--r--ext/-test-/num2int/num2int.c136
-rw-r--r--ext/-test-/path_to_class/depend161
-rw-r--r--ext/-test-/path_to_class/extconf.rb7
-rw-r--r--ext/-test-/path_to_class/path_to_class.c15
-rw-r--r--ext/-test-/popen_deadlock/depend162
-rw-r--r--ext/-test-/popen_deadlock/extconf.rb6
-rw-r--r--ext/-test-/popen_deadlock/infinite_loop_dlsym.c50
-rw-r--r--ext/-test-/postponed_job/depend162
-rw-r--r--ext/-test-/postponed_job/extconf.rb2
-rw-r--r--ext/-test-/postponed_job/postponed_job.c100
-rw-r--r--ext/-test-/printf/depend173
-rw-r--r--ext/-test-/printf/extconf.rb2
-rw-r--r--ext/-test-/printf/printf.c109
-rw-r--r--ext/-test-/proc/depend479
-rw-r--r--ext/-test-/proc/extconf.rb3
-rw-r--r--ext/-test-/proc/init.c11
-rw-r--r--ext/-test-/proc/receiver.c21
-rw-r--r--ext/-test-/proc/super.c27
-rw-r--r--ext/-test-/random/depend320
-rw-r--r--ext/-test-/random/extconf.rb3
-rw-r--r--ext/-test-/random/init.c11
-rw-r--r--ext/-test-/random/loop.c110
-rw-r--r--ext/-test-/rational/depend177
-rw-r--r--ext/-test-/rational/extconf.rb8
-rw-r--r--ext/-test-/rational/rat.c48
-rw-r--r--ext/-test-/rb_call_super_kw/depend161
-rw-r--r--ext/-test-/rb_call_super_kw/extconf.rb1
-rw-r--r--ext/-test-/rb_call_super_kw/rb_call_super_kw.c14
-rw-r--r--ext/-test-/recursion/depend161
-rw-r--r--ext/-test-/recursion/extconf.rb3
-rw-r--r--ext/-test-/recursion/recursion.c28
-rw-r--r--ext/-test-/regexp/depend321
-rw-r--r--ext/-test-/regexp/extconf.rb3
-rw-r--r--ext/-test-/regexp/init.c11
-rw-r--r--ext/-test-/regexp/parse_depth_limit.c23
-rw-r--r--ext/-test-/scan_args/depend161
-rw-r--r--ext/-test-/scan_args/extconf.rb1
-rw-r--r--ext/-test-/scan_args/scan_args.c305
-rw-r--r--ext/-test-/st/foreach/depend161
-rw-r--r--ext/-test-/st/foreach/extconf.rb2
-rw-r--r--ext/-test-/st/foreach/foreach.c175
-rw-r--r--ext/-test-/st/numhash/depend161
-rw-r--r--ext/-test-/st/numhash/extconf.rb2
-rw-r--r--ext/-test-/st/numhash/numhash.c137
-rw-r--r--ext/-test-/st/update/depend161
-rw-r--r--ext/-test-/st/update/extconf.rb2
-rw-r--r--ext/-test-/st/update/update.c34
-rw-r--r--ext/-test-/string/capacity.c18
-rw-r--r--ext/-test-/string/coderange.c47
-rw-r--r--ext/-test-/string/cstr.c156
-rw-r--r--ext/-test-/string/depend2659
-rw-r--r--ext/-test-/string/ellipsize.c13
-rw-r--r--ext/-test-/string/enc_associate.c22
-rw-r--r--ext/-test-/string/enc_str_buf_cat.c28
-rw-r--r--ext/-test-/string/extconf.rb3
-rw-r--r--ext/-test-/string/fstring.c30
-rw-r--r--ext/-test-/string/init.c11
-rw-r--r--ext/-test-/string/modify.c22
-rw-r--r--ext/-test-/string/new.c21
-rw-r--r--ext/-test-/string/nofree.c13
-rw-r--r--ext/-test-/string/normalize.c17
-rw-r--r--ext/-test-/string/qsort.c61
-rw-r--r--ext/-test-/string/rb_interned_str.c14
-rw-r--r--ext/-test-/string/rb_str_dup.c35
-rw-r--r--ext/-test-/string/set_len.c14
-rw-r--r--ext/-test-/struct/depend638
-rw-r--r--ext/-test-/struct/duplicate.c24
-rw-r--r--ext/-test-/struct/extconf.rb3
-rw-r--r--ext/-test-/struct/init.c11
-rw-r--r--ext/-test-/struct/len.c13
-rw-r--r--ext/-test-/struct/member.c18
-rw-r--r--ext/-test-/symbol/depend320
-rw-r--r--ext/-test-/symbol/extconf.rb4
-rw-r--r--ext/-test-/symbol/init.c39
-rw-r--r--ext/-test-/symbol/type.c78
-rw-r--r--ext/-test-/thread_fd/depend160
-rw-r--r--ext/-test-/thread_fd/extconf.rb2
-rw-r--r--ext/-test-/thread_fd/thread_fd.c30
-rw-r--r--ext/-test-/time/depend484
-rw-r--r--ext/-test-/time/extconf.rb3
-rw-r--r--ext/-test-/time/init.c11
-rw-r--r--ext/-test-/time/leap_second.c15
-rw-r--r--ext/-test-/time/new.c34
-rw-r--r--ext/-test-/tracepoint/depend320
-rw-r--r--ext/-test-/tracepoint/extconf.rb2
-rw-r--r--ext/-test-/tracepoint/gc_hook.c85
-rw-r--r--ext/-test-/tracepoint/tracepoint.c96
-rw-r--r--ext/-test-/typeddata/depend161
-rw-r--r--ext/-test-/typeddata/extconf.rb2
-rw-r--r--ext/-test-/typeddata/typeddata.c44
-rw-r--r--ext/-test-/vm/at_exit.c44
-rw-r--r--ext/-test-/vm/depend161
-rw-r--r--ext/-test-/vm/extconf.rb1
-rw-r--r--ext/-test-/wait/depend173
-rw-r--r--ext/-test-/wait/extconf.rb2
-rw-r--r--ext/-test-/wait/wait.c39
-rw-r--r--ext/-test-/win32/console/attribute.c69
-rw-r--r--ext/-test-/win32/console/depend1
-rw-r--r--ext/-test-/win32/console/extconf.rb5
-rw-r--r--ext/-test-/win32/console/init.c11
-rw-r--r--ext/-test-/win32/dln/depend9
-rw-r--r--ext/-test-/win32/dln/dlntest.c17
-rw-r--r--ext/-test-/win32/dln/extconf.rb33
-rw-r--r--ext/-test-/win32/dln/libdlntest.c4
-rw-r--r--ext/-test-/win32/dln/libdlntest.def2
-rw-r--r--ext/-test-/win32/fd_setsize/depend1
-rw-r--r--ext/-test-/win32/fd_setsize/extconf.rb4
-rw-r--r--ext/-test-/win32/fd_setsize/fd_setsize.c55
-rw-r--r--ext/.document106
-rw-r--r--ext/Setup43
-rw-r--r--ext/Setup.atheos28
-rw-r--r--ext/Setup.dj14
-rw-r--r--ext/Setup.emx16
-rw-r--r--ext/Setup.nt28
-rw-r--r--ext/Setup.x6812
-rw-r--r--ext/Win32API/MANIFEST7
-rw-r--r--ext/Win32API/Win32API.c237
-rw-r--r--ext/Win32API/extconf.rb7
-rw-r--r--ext/Win32API/getch.rb5
-rw-r--r--ext/Win32API/point.rb18
-rw-r--r--ext/aix_mksym.rb33
-rw-r--r--ext/bigdecimal/bigdecimal.c7499
-rw-r--r--ext/bigdecimal/bigdecimal.gemspec38
-rw-r--r--ext/bigdecimal/bigdecimal.h297
-rw-r--r--ext/bigdecimal/bits.h141
-rw-r--r--ext/bigdecimal/depend328
-rw-r--r--ext/bigdecimal/extconf.rb91
-rw-r--r--ext/bigdecimal/feature.h68
-rw-r--r--ext/bigdecimal/lib/bigdecimal.rb1
-rw-r--r--ext/bigdecimal/lib/bigdecimal/jacobian.rb90
-rw-r--r--ext/bigdecimal/lib/bigdecimal/ludcmp.rb89
-rw-r--r--ext/bigdecimal/lib/bigdecimal/math.rb232
-rw-r--r--ext/bigdecimal/lib/bigdecimal/newton.rb80
-rw-r--r--ext/bigdecimal/lib/bigdecimal/util.rb181
-rw-r--r--ext/bigdecimal/missing.c27
-rw-r--r--ext/bigdecimal/missing.h235
-rw-r--r--ext/bigdecimal/missing/dtoa.c3462
-rw-r--r--ext/bigdecimal/sample/linear.rb74
-rw-r--r--ext/bigdecimal/sample/nlsolve.rb40
-rw-r--r--ext/bigdecimal/sample/pi.rb21
-rw-r--r--ext/bigdecimal/static_assert.h54
-rw-r--r--ext/cgi/escape/depend173
-rw-r--r--ext/cgi/escape/escape.c421
-rw-r--r--ext/cgi/escape/extconf.rb3
-rw-r--r--ext/continuation/continuation.c13
-rw-r--r--ext/continuation/depend160
-rw-r--r--ext/continuation/extconf.rb4
-rw-r--r--ext/coverage/coverage.c601
-rw-r--r--ext/coverage/depend190
-rw-r--r--ext/coverage/extconf.rb5
-rw-r--r--ext/coverage/lib/coverage.rb14
-rw-r--r--ext/curses/MANIFEST7
-rw-r--r--ext/curses/curses.c850
-rw-r--r--ext/curses/depend1
-rw-r--r--ext/curses/extconf.rb23
-rw-r--r--ext/curses/hello.rb30
-rw-r--r--ext/curses/rain.rb76
-rw-r--r--ext/curses/view.rb91
-rw-r--r--ext/date/date.gemspec26
-rw-r--r--ext/date/date_core.c9979
-rw-r--r--ext/date/date_parse.c3036
-rw-r--r--ext/date/date_strftime.c638
-rw-r--r--ext/date/date_strptime.c703
-rw-r--r--ext/date/date_tmx.h56
-rw-r--r--ext/date/depend684
-rw-r--r--ext/date/extconf.rb11
-rw-r--r--ext/date/lib/date.rb66
-rw-r--r--ext/date/prereq.mk19
-rw-r--r--ext/date/update-abbr52
-rw-r--r--ext/date/zonetab.h1562
-rw-r--r--ext/date/zonetab.list327
-rw-r--r--ext/dbm/MANIFEST4
-rw-r--r--ext/dbm/dbm.c587
-rw-r--r--ext/dbm/depend1
-rw-r--r--ext/dbm/extconf.rb12
-rw-r--r--ext/digest/bubblebabble/bubblebabble.c147
-rw-r--r--ext/digest/bubblebabble/depend162
-rw-r--r--ext/digest/bubblebabble/extconf.rb4
-rw-r--r--ext/digest/defs.h19
-rw-r--r--ext/digest/depend162
-rw-r--r--ext/digest/digest.c825
-rw-r--r--ext/digest/digest.gemspec44
-rw-r--r--ext/digest/digest.h72
-rw-r--r--ext/digest/digest_conf.rb17
-rw-r--r--ext/digest/extconf.rb11
-rw-r--r--ext/digest/lib/digest.rb123
-rw-r--r--ext/digest/lib/digest/loader.rb3
-rw-r--r--ext/digest/lib/digest/version.rb5
-rw-r--r--ext/digest/md5/depend328
-rw-r--r--ext/digest/md5/extconf.rb17
-rw-r--r--ext/digest/md5/md5.c424
-rw-r--r--ext/digest/md5/md5.h80
-rw-r--r--ext/digest/md5/md5cc.h19
-rw-r--r--ext/digest/md5/md5init.c61
-rw-r--r--ext/digest/rmd160/depend328
-rw-r--r--ext/digest/rmd160/extconf.rb21
-rw-r--r--ext/digest/rmd160/rmd160.c463
-rw-r--r--ext/digest/rmd160/rmd160.h56
-rw-r--r--ext/digest/rmd160/rmd160init.c57
-rw-r--r--ext/digest/sha1/depend328
-rw-r--r--ext/digest/sha1/extconf.rb17
-rw-r--r--ext/digest/sha1/sha1.c271
-rw-r--r--ext/digest/sha1/sha1.h39
-rw-r--r--ext/digest/sha1/sha1cc.h14
-rw-r--r--ext/digest/sha1/sha1init.c63
-rw-r--r--ext/digest/sha2/depend327
-rw-r--r--ext/digest/sha2/extconf.rb19
-rw-r--r--ext/digest/sha2/lib/sha2.rb142
-rw-r--r--ext/digest/sha2/lib/sha2/loader.rb3
-rw-r--r--ext/digest/sha2/sha2.c1081
-rw-r--r--ext/digest/sha2/sha2.h225
-rw-r--r--ext/digest/sha2/sha2cc.h31
-rw-r--r--ext/digest/sha2/sha2init.c53
-rw-r--r--ext/digest/test.sh30
-rw-r--r--ext/etc/MANIFEST6
-rw-r--r--ext/etc/depend181
-rw-r--r--ext/etc/etc.c1185
-rw-r--r--ext/etc/etc.gemspec44
-rw-r--r--ext/etc/etc.txt72
-rw-r--r--ext/etc/etc.txt.jp72
-rw-r--r--ext/etc/extconf.rb73
-rw-r--r--ext/etc/mkconstants.rb340
-rwxr-xr-xext/extmk.rb778
-rw-r--r--ext/extmk.rb.in680
-rw-r--r--ext/fcntl/MANIFEST3
-rw-r--r--ext/fcntl/depend162
-rw-r--r--ext/fcntl/extconf.rb3
-rw-r--r--ext/fcntl/fcntl.c170
-rw-r--r--ext/fcntl/fcntl.gemspec21
-rw-r--r--ext/fiddle/closure.c360
-rw-r--r--ext/fiddle/closure.h8
-rw-r--r--ext/fiddle/conversions.c330
-rw-r--r--ext/fiddle/conversions.h53
-rw-r--r--ext/fiddle/depend1388
-rw-r--r--ext/fiddle/extconf.rb267
-rw-r--r--ext/fiddle/extlibs13
-rw-r--r--ext/fiddle/fiddle.c553
-rw-r--r--ext/fiddle/fiddle.gemspec62
-rw-r--r--ext/fiddle/fiddle.h205
-rw-r--r--ext/fiddle/function.c491
-rw-r--r--ext/fiddle/function.h8
-rw-r--r--ext/fiddle/handle.c535
-rw-r--r--ext/fiddle/lib/fiddle.rb70
-rw-r--r--ext/fiddle/lib/fiddle/closure.rb49
-rw-r--r--ext/fiddle/lib/fiddle/cparser.rb264
-rw-r--r--ext/fiddle/lib/fiddle/function.rb29
-rw-r--r--ext/fiddle/lib/fiddle/import.rb320
-rw-r--r--ext/fiddle/lib/fiddle/pack.rb136
-rw-r--r--ext/fiddle/lib/fiddle/struct.rb539
-rw-r--r--ext/fiddle/lib/fiddle/types.rb73
-rw-r--r--ext/fiddle/lib/fiddle/value.rb122
-rw-r--r--ext/fiddle/lib/fiddle/version.rb3
-rw-r--r--ext/fiddle/memory_view.c321
-rw-r--r--ext/fiddle/pinned.c123
-rw-r--r--ext/fiddle/pointer.c853
-rw-r--r--ext/fiddle/win32/fficonfig.h29
-rw-r--r--ext/fiddle/win32/libffi-3.2.1-mswin.patch191
-rwxr-xr-xext/fiddle/win32/libffi-config.rb48
-rw-r--r--ext/fiddle/win32/libffi.mk.tmpl96
-rw-r--r--ext/gdbm/MANIFEST5
-rw-r--r--ext/gdbm/README1
-rw-r--r--ext/gdbm/depend1
-rw-r--r--ext/gdbm/extconf.rb7
-rw-r--r--ext/gdbm/gdbm.c601
-rwxr-xr-xext/io/console/buildgem.sh5
-rw-r--r--ext/io/console/console.c1697
-rw-r--r--ext/io/console/depend196
-rw-r--r--ext/io/console/extconf.rb38
-rw-r--r--ext/io/console/io-console.gemspec41
-rw-r--r--ext/io/console/lib/console/size.rb23
-rw-r--r--ext/io/console/win32_vk.chksum1
-rw-r--r--ext/io/console/win32_vk.inc1391
-rw-r--r--ext/io/console/win32_vk.list166
-rw-r--r--ext/io/nonblock/depend174
-rw-r--r--ext/io/nonblock/extconf.rb9
-rw-r--r--ext/io/nonblock/io-nonblock.gemspec25
-rw-r--r--ext/io/nonblock/nonblock.c140
-rw-r--r--ext/io/wait/depend175
-rw-r--r--ext/io/wait/extconf.rb20
-rw-r--r--ext/io/wait/io-wait.gemspec27
-rw-r--r--ext/io/wait/wait.c388
-rw-r--r--ext/json/VERSION1
-rw-r--r--ext/json/depend2
-rw-r--r--ext/json/extconf.rb3
-rw-r--r--ext/json/fbuffer/fbuffer.h187
-rw-r--r--ext/json/generator/depend181
-rw-r--r--ext/json/generator/extconf.rb4
-rw-r--r--ext/json/generator/generator.c1608
-rw-r--r--ext/json/generator/generator.h174
-rw-r--r--ext/json/json.gemspec67
-rw-r--r--ext/json/lib/json.rb583
-rw-r--r--ext/json/lib/json/add/bigdecimal.rb29
-rw-r--r--ext/json/lib/json/add/complex.rb28
-rw-r--r--ext/json/lib/json/add/core.rb12
-rw-r--r--ext/json/lib/json/add/date.rb34
-rw-r--r--ext/json/lib/json/add/date_time.rb50
-rw-r--r--ext/json/lib/json/add/exception.rb31
-rw-r--r--ext/json/lib/json/add/ostruct.rb31
-rw-r--r--ext/json/lib/json/add/range.rb29
-rw-r--r--ext/json/lib/json/add/rational.rb27
-rw-r--r--ext/json/lib/json/add/regexp.rb30
-rw-r--r--ext/json/lib/json/add/set.rb29
-rw-r--r--ext/json/lib/json/add/struct.rb30
-rw-r--r--ext/json/lib/json/add/symbol.rb25
-rw-r--r--ext/json/lib/json/add/time.rb38
-rw-r--r--ext/json/lib/json/common.rb703
-rw-r--r--ext/json/lib/json/ext.rb15
-rw-r--r--ext/json/lib/json/generic_object.rb71
-rw-r--r--ext/json/lib/json/version.rb9
-rw-r--r--ext/json/parser/depend179
-rw-r--r--ext/json/parser/extconf.rb32
-rw-r--r--ext/json/parser/parser.c3338
-rw-r--r--ext/json/parser/parser.h96
-rw-r--r--ext/json/parser/parser.rl977
-rw-r--r--ext/json/parser/prereq.mk13
-rw-r--r--ext/kconv/kconv.c2017
-rw-r--r--ext/md5/MANIFEST7
-rw-r--r--ext/md5/depend2
-rw-r--r--ext/md5/md5.h86
-rw-r--r--ext/md5/md5.txt38
-rw-r--r--ext/md5/md5.txt.jp37
-rw-r--r--ext/md5/md5c.c337
-rw-r--r--ext/md5/md5init.c114
-rw-r--r--ext/monitor/depend160
-rw-r--r--ext/monitor/extconf.rb2
-rw-r--r--ext/monitor/lib/monitor.rb284
-rw-r--r--ext/monitor/monitor.c225
-rw-r--r--ext/mswin32_extmk.rb41
-rw-r--r--ext/nkf/MANIFEST7
-rw-r--r--ext/nkf/depend182
-rw-r--r--ext/nkf/extconf.rb1
-rw-r--r--ext/nkf/lib/kconv.rb283
-rw-r--r--ext/nkf/nkf-utf8/config.h51
-rw-r--r--ext/nkf/nkf-utf8/nkf.c7205
-rw-r--r--ext/nkf/nkf-utf8/nkf.h189
-rw-r--r--ext/nkf/nkf-utf8/utf8tbl.c14638
-rw-r--r--ext/nkf/nkf-utf8/utf8tbl.h72
-rw-r--r--ext/nkf/nkf.c611
-rw-r--r--ext/nkf/nkf.gemspec24
-rw-r--r--ext/nkf/nkf1.7/nkf.c1900
-rw-r--r--ext/nkf/test.rb318
-rw-r--r--ext/objspace/depend557
-rw-r--r--ext/objspace/extconf.rb4
-rw-r--r--ext/objspace/lib/objspace.rb91
-rw-r--r--ext/objspace/lib/objspace/trace.rb45
-rw-r--r--ext/objspace/object_tracing.c579
-rw-r--r--ext/objspace/objspace.c1005
-rw-r--r--ext/objspace/objspace.h20
-rw-r--r--ext/objspace/objspace_dump.c657
-rw-r--r--ext/openssl/History.md571
-rw-r--r--ext/openssl/depend6183
-rw-r--r--ext/openssl/extconf.rb188
-rw-r--r--ext/openssl/lib/openssl.rb37
-rw-r--r--ext/openssl/lib/openssl/bn.rb40
-rw-r--r--ext/openssl/lib/openssl/buffering.rb487
-rw-r--r--ext/openssl/lib/openssl/cipher.rb67
-rw-r--r--ext/openssl/lib/openssl/digest.rb73
-rw-r--r--ext/openssl/lib/openssl/hmac.rb78
-rw-r--r--ext/openssl/lib/openssl/marshal.rb30
-rw-r--r--ext/openssl/lib/openssl/pkcs5.rb22
-rw-r--r--ext/openssl/lib/openssl/pkey.rb459
-rw-r--r--ext/openssl/lib/openssl/ssl.rb542
-rw-r--r--ext/openssl/lib/openssl/version.rb5
-rw-r--r--ext/openssl/lib/openssl/x509.rb391
-rw-r--r--ext/openssl/openssl.gemspec21
-rw-r--r--ext/openssl/openssl_missing.c40
-rw-r--r--ext/openssl/openssl_missing.h238
-rw-r--r--ext/openssl/ossl.c1295
-rw-r--r--ext/openssl/ossl.h195
-rw-r--r--ext/openssl/ossl_asn1.c1890
-rw-r--r--ext/openssl/ossl_asn1.h62
-rw-r--r--ext/openssl/ossl_bio.c42
-rw-r--r--ext/openssl/ossl_bio.h16
-rw-r--r--ext/openssl/ossl_bn.c1332
-rw-r--r--ext/openssl/ossl_bn.h26
-rw-r--r--ext/openssl/ossl_cipher.c1075
-rw-r--r--ext/openssl/ossl_cipher.h20
-rw-r--r--ext/openssl/ossl_config.c460
-rw-r--r--ext/openssl/ossl_config.h16
-rw-r--r--ext/openssl/ossl_digest.c425
-rw-r--r--ext/openssl/ossl_digest.h20
-rw-r--r--ext/openssl/ossl_engine.c568
-rw-r--r--ext/openssl/ossl_engine.h19
-rw-r--r--ext/openssl/ossl_hmac.c302
-rw-r--r--ext/openssl/ossl_hmac.h18
-rw-r--r--ext/openssl/ossl_kdf.c311
-rw-r--r--ext/openssl/ossl_kdf.h6
-rw-r--r--ext/openssl/ossl_ns_spki.c405
-rw-r--r--ext/openssl/ossl_ns_spki.h19
-rw-r--r--ext/openssl/ossl_ocsp.c1965
-rw-r--r--ext/openssl/ossl_ocsp.h23
-rw-r--r--ext/openssl/ossl_pkcs12.c275
-rw-r--r--ext/openssl/ossl_pkcs12.h13
-rw-r--r--ext/openssl/ossl_pkcs7.c1081
-rw-r--r--ext/openssl/ossl_pkcs7.h36
-rw-r--r--ext/openssl/ossl_pkey.c1584
-rw-r--r--ext/openssl/ossl_pkey.h204
-rw-r--r--ext/openssl/ossl_pkey_dh.c440
-rw-r--r--ext/openssl/ossl_pkey_dsa.c359
-rw-r--r--ext/openssl/ossl_pkey_ec.c1635
-rw-r--r--ext/openssl/ossl_pkey_rsa.c579
-rw-r--r--ext/openssl/ossl_rand.c200
-rw-r--r--ext/openssl/ossl_rand.h18
-rw-r--r--ext/openssl/ossl_ssl.c2981
-rw-r--r--ext/openssl/ossl_ssl.h36
-rw-r--r--ext/openssl/ossl_ssl_session.c327
-rw-r--r--ext/openssl/ossl_ts.c1539
-rw-r--r--ext/openssl/ossl_ts.h16
-rw-r--r--ext/openssl/ossl_x509.c256
-rw-r--r--ext/openssl/ossl_x509.h115
-rw-r--r--ext/openssl/ossl_x509attr.c324
-rw-r--r--ext/openssl/ossl_x509cert.c1002
-rw-r--r--ext/openssl/ossl_x509crl.c545
-rw-r--r--ext/openssl/ossl_x509ext.c490
-rw-r--r--ext/openssl/ossl_x509name.c597
-rw-r--r--ext/openssl/ossl_x509req.c444
-rw-r--r--ext/openssl/ossl_x509revoked.c300
-rw-r--r--ext/openssl/ossl_x509store.c986
-rw-r--r--ext/pathname/depend173
-rw-r--r--ext/pathname/extconf.rb4
-rw-r--r--ext/pathname/lib/pathname.rb599
-rw-r--r--ext/pathname/pathname.c1683
-rw-r--r--ext/pathname/pathname.gemspec25
-rw-r--r--ext/psych/depend884
-rw-r--r--ext/psych/extconf.rb43
-rw-r--r--ext/psych/lib/psych.rb741
-rw-r--r--ext/psych/lib/psych/class_loader.rb104
-rw-r--r--ext/psych/lib/psych/coder.rb95
-rw-r--r--ext/psych/lib/psych/core_ext.rb19
-rw-r--r--ext/psych/lib/psych/exception.rb14
-rw-r--r--ext/psych/lib/psych/handler.rb255
-rw-r--r--ext/psych/lib/psych/handlers/document_stream.rb23
-rw-r--r--ext/psych/lib/psych/handlers/recorder.rb40
-rw-r--r--ext/psych/lib/psych/json/ruby_events.rb20
-rw-r--r--ext/psych/lib/psych/json/stream.rb17
-rw-r--r--ext/psych/lib/psych/json/tree_builder.rb13
-rw-r--r--ext/psych/lib/psych/json/yaml_events.rb30
-rw-r--r--ext/psych/lib/psych/nodes.rb78
-rw-r--r--ext/psych/lib/psych/nodes/alias.rb21
-rw-r--r--ext/psych/lib/psych/nodes/document.rb63
-rw-r--r--ext/psych/lib/psych/nodes/mapping.rb59
-rw-r--r--ext/psych/lib/psych/nodes/node.rb75
-rw-r--r--ext/psych/lib/psych/nodes/scalar.rb70
-rw-r--r--ext/psych/lib/psych/nodes/sequence.rb84
-rw-r--r--ext/psych/lib/psych/nodes/stream.rb40
-rw-r--r--ext/psych/lib/psych/omap.rb5
-rw-r--r--ext/psych/lib/psych/parser.rb52
-rw-r--r--ext/psych/lib/psych/scalar_scanner.rb135
-rw-r--r--ext/psych/lib/psych/set.rb5
-rw-r--r--ext/psych/lib/psych/stream.rb38
-rw-r--r--ext/psych/lib/psych/streaming.rb28
-rw-r--r--ext/psych/lib/psych/syntax_error.rb22
-rw-r--r--ext/psych/lib/psych/tree_builder.rb137
-rw-r--r--ext/psych/lib/psych/versions.rb10
-rw-r--r--ext/psych/lib/psych/visitors.rb7
-rw-r--r--ext/psych/lib/psych/visitors/depth_first.rb27
-rw-r--r--ext/psych/lib/psych/visitors/emitter.rb52
-rw-r--r--ext/psych/lib/psych/visitors/json_tree.rb25
-rw-r--r--ext/psych/lib/psych/visitors/to_ruby.rb434
-rw-r--r--ext/psych/lib/psych/visitors/visitor.rb34
-rw-r--r--ext/psych/lib/psych/visitors/yaml_tree.rb587
-rw-r--r--ext/psych/lib/psych/y.rb10
-rw-r--r--ext/psych/psych.c37
-rw-r--r--ext/psych/psych.gemspec69
-rw-r--r--ext/psych/psych.h17
-rw-r--r--ext/psych/psych_emitter.c555
-rw-r--r--ext/psych/psych_emitter.h8
-rw-r--r--ext/psych/psych_parser.c579
-rw-r--r--ext/psych/psych_parser.h6
-rw-r--r--ext/psych/psych_to_ruby.c39
-rw-r--r--ext/psych/psych_to_ruby.h8
-rw-r--r--ext/psych/psych_yaml_tree.c12
-rw-r--r--ext/psych/psych_yaml_tree.h8
-rw-r--r--ext/psych/yaml/api.c1393
-rw-r--r--ext/psych/yaml/config.h80
-rw-r--r--ext/psych/yaml/dumper.c394
-rw-r--r--ext/psych/yaml/emitter.c2358
-rw-r--r--ext/psych/yaml/loader.c544
-rw-r--r--ext/psych/yaml/parser.c1375
-rw-r--r--ext/psych/yaml/reader.c469
-rw-r--r--ext/psych/yaml/scanner.c3598
-rw-r--r--ext/psych/yaml/writer.c141
-rw-r--r--ext/psych/yaml/yaml.h1985
-rw-r--r--ext/psych/yaml/yaml_private.h688
-rw-r--r--ext/pty/MANIFEST12
-rw-r--r--ext/pty/README93
-rw-r--r--ext/pty/README.expect22
-rw-r--r--ext/pty/README.expect.jp21
-rw-r--r--ext/pty/README.jp89
-rw-r--r--ext/pty/depend185
-rw-r--r--ext/pty/expect_sample.rb56
-rw-r--r--ext/pty/extconf.rb25
-rw-r--r--ext/pty/lib/expect.rb49
-rw-r--r--ext/pty/pty.c1011
-rw-r--r--ext/pty/script.rb38
-rw-r--r--ext/pty/shl.rb96
-rw-r--r--ext/racc/cparse/README11
-rw-r--r--ext/racc/cparse/cparse.c863
-rw-r--r--ext/racc/cparse/depend161
-rw-r--r--ext/racc/cparse/extconf.rb9
-rw-r--r--ext/rbconfig/sizeof/depend333
-rw-r--r--ext/rbconfig/sizeof/extconf.rb36
-rw-r--r--ext/readline/.gitignore1
-rw-r--r--ext/readline/MANIFEST5
-rw-r--r--ext/readline/README61
-rw-r--r--ext/readline/README.ja386
-rw-r--r--ext/readline/depend175
-rw-r--r--ext/readline/depend-gem4
-rw-r--r--ext/readline/extconf.rb115
-rw-r--r--ext/readline/readline-ext.gemspec26
-rw-r--r--ext/readline/readline.c2163
-rw-r--r--ext/ripper/README30
-rw-r--r--ext/ripper/depend267
-rw-r--r--ext/ripper/eventids2.c313
-rw-r--r--ext/ripper/extconf.rb27
-rw-r--r--ext/ripper/lib/ripper.rb74
-rw-r--r--ext/ripper/lib/ripper/core.rb74
-rw-r--r--ext/ripper/lib/ripper/filter.rb86
-rw-r--r--ext/ripper/lib/ripper/lexer.rb372
-rw-r--r--ext/ripper/lib/ripper/sexp.rb187
-rw-r--r--ext/ripper/tools/dsl.rb88
-rw-r--r--ext/ripper/tools/generate-param-macros.rb15
-rw-r--r--ext/ripper/tools/generate.rb171
-rw-r--r--ext/ripper/tools/preproc.rb107
-rw-r--r--ext/ripper/tools/strip.rb12
-rw-r--r--ext/rubyvm/depend2
-rw-r--r--ext/rubyvm/extconf.rb1
-rw-r--r--ext/rubyvm/lib/forwardable/impl.rb16
-rw-r--r--ext/sdbm/MANIFEST6
-rw-r--r--ext/sdbm/_sdbm.c977
-rw-r--r--ext/sdbm/depend2
-rw-r--r--ext/sdbm/extconf.rb3
-rw-r--r--ext/sdbm/init.c584
-rw-r--r--ext/sdbm/sdbm.h84
-rw-r--r--ext/socket/.document17
-rw-r--r--ext/socket/MANIFEST8
-rw-r--r--ext/socket/addrinfo.h59
-rw-r--r--ext/socket/ancdata.c1738
-rw-r--r--ext/socket/basicsocket.c792
-rw-r--r--ext/socket/constants.c144
-rw-r--r--ext/socket/depend2867
-rw-r--r--ext/socket/extconf.rb767
-rw-r--r--ext/socket/getaddrinfo.c147
-rw-r--r--ext/socket/getnameinfo.c93
-rw-r--r--ext/socket/ifaddr.c478
-rw-r--r--ext/socket/init.c781
-rw-r--r--ext/socket/ipsocket.c403
-rw-r--r--ext/socket/lib/socket.rb1357
-rw-r--r--ext/socket/mkconstants.rb845
-rw-r--r--ext/socket/option.c1477
-rw-r--r--ext/socket/raddrinfo.c2685
-rw-r--r--ext/socket/rubysocket.h462
-rw-r--r--ext/socket/socket.c3591
-rw-r--r--ext/socket/sockport.h117
-rw-r--r--ext/socket/sockssocket.c74
-rw-r--r--ext/socket/tcpserver.c140
-rw-r--r--ext/socket/tcpsocket.c111
-rw-r--r--ext/socket/udpsocket.c250
-rw-r--r--ext/socket/unixserver.c121
-rw-r--r--ext/socket/unixsocket.c591
-rw-r--r--ext/stringio/README.md10
-rw-r--r--ext/stringio/depend174
-rw-r--r--ext/stringio/extconf.rb4
-rw-r--r--ext/stringio/stringio.c1866
-rw-r--r--ext/stringio/stringio.gemspec31
-rw-r--r--ext/strscan/depend175
-rw-r--r--ext/strscan/extconf.rb5
-rw-r--r--ext/strscan/strscan.c1653
-rw-r--r--ext/strscan/strscan.gemspec28
-rw-r--r--ext/syslog/depend161
-rw-r--r--ext/syslog/extconf.rb13
-rw-r--r--ext/syslog/lib/syslog/logger.rb209
-rw-r--r--ext/syslog/syslog.c588
-rw-r--r--ext/syslog/syslog.gemspec23
-rw-r--r--ext/syslog/syslog.txt124
-rw-r--r--ext/tcltklib/MANIFEST15
-rw-r--r--ext/tcltklib/MANUAL.euc124
-rw-r--r--ext/tcltklib/README.euc133
-rw-r--r--ext/tcltklib/demo/lines0.tcl42
-rw-r--r--ext/tcltklib/demo/lines1.rb54
-rw-r--r--ext/tcltklib/demo/lines2.rb50
-rw-r--r--ext/tcltklib/depend1
-rw-r--r--ext/tcltklib/extconf.rb49
-rw-r--r--ext/tcltklib/lib/tcltk.rb367
-rw-r--r--ext/tcltklib/sample/batsu.gifbin0 -> 538 bytes-rw-r--r--ext/tcltklib/sample/maru.gifbin0 -> 481 bytes-rw-r--r--ext/tcltklib/sample/sample0.rb39
-rw-r--r--ext/tcltklib/sample/sample1.rb634
-rw-r--r--ext/tcltklib/sample/sample2.rb449
-rw-r--r--ext/tcltklib/tcltklib.c521
-rw-r--r--ext/tk/MANIFEST25
-rw-r--r--ext/tk/depend1
-rw-r--r--ext/tk/extconf.rb2
-rw-r--r--ext/tk/lib/tk.rb2470
-rw-r--r--ext/tk/lib/tkafter.rb296
-rw-r--r--ext/tk/lib/tkbgerror.rb17
-rw-r--r--ext/tk/lib/tkcanvas.rb814
-rw-r--r--ext/tk/lib/tkclass.rb38
-rw-r--r--ext/tk/lib/tkdialog.rb141
-rw-r--r--ext/tk/lib/tkentry.rb73
-rw-r--r--ext/tk/lib/tkfont.rb966
-rw-r--r--ext/tk/lib/tkmenubar.rb137
-rw-r--r--ext/tk/lib/tkmngfocus.rb27
-rw-r--r--ext/tk/lib/tkpalette.rb48
-rw-r--r--ext/tk/lib/tkscrollbox.rb29
-rw-r--r--ext/tk/lib/tktext.rb903
-rw-r--r--ext/tk/lib/tkvirtevent.rb66
-rw-r--r--ext/tk/sample/tkbiff.rb149
-rw-r--r--ext/tk/sample/tkbrowse.rb79
-rw-r--r--ext/tk/sample/tkdialog.rb62
-rw-r--r--ext/tk/sample/tkfrom.rb132
-rw-r--r--ext/tk/sample/tkhello.rb10
-rw-r--r--ext/tk/sample/tkline.rb45
-rw-r--r--ext/tk/sample/tktimer.rb50
-rw-r--r--ext/tk/tkutil.c45
-rw-r--r--ext/win32/depend2
-rw-r--r--ext/win32/extconf.rb4
-rw-r--r--ext/win32/lib/win32/registry.rb913
-rw-r--r--ext/win32/lib/win32/resolv.rb135
-rw-r--r--ext/win32/lib/win32/sspi.rb338
-rw-r--r--ext/win32/resolv/depend17
-rw-r--r--ext/win32/resolv/extconf.rb3
-rw-r--r--ext/win32/resolv/resolv.c65
-rw-r--r--ext/win32ole/depend12
-rw-r--r--ext/win32ole/extconf.rb45
-rw-r--r--ext/win32ole/lib/win32ole.rb33
-rw-r--r--ext/win32ole/lib/win32ole/property.rb17
-rw-r--r--ext/win32ole/sample/excel1.rb37
-rw-r--r--ext/win32ole/sample/excel2.rb31
-rw-r--r--ext/win32ole/sample/excel3.rb21
-rw-r--r--ext/win32ole/sample/ie.rb12
-rw-r--r--ext/win32ole/sample/ieconst.rb33
-rw-r--r--ext/win32ole/sample/ienavi.rb41
-rw-r--r--ext/win32ole/sample/ienavi2.rb41
-rw-r--r--ext/win32ole/sample/oledirs.rb24
-rw-r--r--ext/win32ole/sample/olegen.rb348
-rw-r--r--ext/win32ole/sample/xml.rb7307
-rw-r--r--ext/win32ole/win32ole.c4142
-rw-r--r--ext/win32ole/win32ole.gemspec22
-rw-r--r--ext/win32ole/win32ole.h155
-rw-r--r--ext/win32ole/win32ole_error.c87
-rw-r--r--ext/win32ole/win32ole_error.h9
-rw-r--r--ext/win32ole/win32ole_event.c1277
-rw-r--r--ext/win32ole/win32ole_event.h6
-rw-r--r--ext/win32ole/win32ole_method.c952
-rw-r--r--ext/win32ole/win32ole_method.h16
-rw-r--r--ext/win32ole/win32ole_param.c438
-rw-r--r--ext/win32ole/win32ole_param.h8
-rw-r--r--ext/win32ole/win32ole_record.c606
-rw-r--r--ext/win32ole/win32ole_record.h10
-rw-r--r--ext/win32ole/win32ole_type.c917
-rw-r--r--ext/win32ole/win32ole_type.h8
-rw-r--r--ext/win32ole/win32ole_typelib.c846
-rw-r--r--ext/win32ole/win32ole_typelib.h11
-rw-r--r--ext/win32ole/win32ole_variable.c382
-rw-r--r--ext/win32ole/win32ole_variable.h8
-rw-r--r--ext/win32ole/win32ole_variant.c735
-rw-r--r--ext/win32ole/win32ole_variant.h9
-rw-r--r--ext/win32ole/win32ole_variant_m.c151
-rw-r--r--ext/win32ole/win32ole_variant_m.h7
-rw-r--r--ext/zlib/.gitignore1
-rw-r--r--ext/zlib/depend175
-rw-r--r--ext/zlib/extconf.rb137
-rw-r--r--ext/zlib/win32/zlib-1.2.11-mswin.patch95
-rw-r--r--ext/zlib/zlib.c5060
-rw-r--r--ext/zlib/zlib.gemspec31
-rw-r--r--file.c6944
-rw-r--r--gc.c14129
-rw-r--r--gc.h141
-rw-r--r--gc.rb311
-rw-r--r--gem_prelude.rb19
-rw-r--r--gems/bundled_gems16
-rw-r--r--golf_prelude.rb130
-rw-r--r--goruby.c68
-rw-r--r--hash.c7753
-rw-r--r--hrtime.h168
-rw-r--r--id_table.c325
-rw-r--r--id_table.h36
-rw-r--r--include/ruby.h40
-rw-r--r--include/ruby/assert.h234
-rw-r--r--include/ruby/atomic.h890
-rw-r--r--include/ruby/backward.h71
-rw-r--r--include/ruby/backward/2/assume.h58
-rw-r--r--include/ruby/backward/2/attributes.h165
-rw-r--r--include/ruby/backward/2/bool.h36
-rw-r--r--include/ruby/backward/2/gcc_version_since.h37
-rw-r--r--include/ruby/backward/2/inttypes.h131
-rw-r--r--include/ruby/backward/2/limits.h99
-rw-r--r--include/ruby/backward/2/long_long.h73
-rw-r--r--include/ruby/backward/2/r_cast.h32
-rw-r--r--include/ruby/backward/2/rmodule.h36
-rw-r--r--include/ruby/backward/2/stdalign.h30
-rw-r--r--include/ruby/backward/2/stdarg.h69
-rw-r--r--include/ruby/backward/cxxanyargs.hpp700
-rw-r--r--include/ruby/debug.h644
-rw-r--r--include/ruby/defines.h116
-rw-r--r--include/ruby/encoding.h31
-rw-r--r--include/ruby/fiber/scheduler.h336
-rw-r--r--include/ruby/intern.h64
-rw-r--r--include/ruby/internal/anyargs.h375
-rw-r--r--include/ruby/internal/arithmetic.h38
-rw-r--r--include/ruby/internal/arithmetic/char.h81
-rw-r--r--include/ruby/internal/arithmetic/double.h72
-rw-r--r--include/ruby/internal/arithmetic/fixnum.h60
-rw-r--r--include/ruby/internal/arithmetic/gid_t.h41
-rw-r--r--include/ruby/internal/arithmetic/int.h264
-rw-r--r--include/ruby/internal/arithmetic/intptr_t.h74
-rw-r--r--include/ruby/internal/arithmetic/long.h356
-rw-r--r--include/ruby/internal/arithmetic/long_long.h135
-rw-r--r--include/ruby/internal/arithmetic/mode_t.h41
-rw-r--r--include/ruby/internal/arithmetic/off_t.h62
-rw-r--r--include/ruby/internal/arithmetic/pid_t.h41
-rw-r--r--include/ruby/internal/arithmetic/short.h113
-rw-r--r--include/ruby/internal/arithmetic/size_t.h66
-rw-r--r--include/ruby/internal/arithmetic/st_data_t.h75
-rw-r--r--include/ruby/internal/arithmetic/uid_t.h41
-rw-r--r--include/ruby/internal/assume.h90
-rw-r--r--include/ruby/internal/attr/alloc_size.h32
-rw-r--r--include/ruby/internal/attr/artificial.h46
-rw-r--r--include/ruby/internal/attr/cold.h37
-rw-r--r--include/ruby/internal/attr/const.h46
-rw-r--r--include/ruby/internal/attr/constexpr.h84
-rw-r--r--include/ruby/internal/attr/deprecated.h75
-rw-r--r--include/ruby/internal/attr/diagnose_if.h42
-rw-r--r--include/ruby/internal/attr/enum_extensibility.h32
-rw-r--r--include/ruby/internal/attr/error.h32
-rw-r--r--include/ruby/internal/attr/flag_enum.h33
-rw-r--r--include/ruby/internal/attr/forceinline.h40
-rw-r--r--include/ruby/internal/attr/format.h38
-rw-r--r--include/ruby/internal/attr/maybe_unused.h38
-rw-r--r--include/ruby/internal/attr/noalias.h69
-rw-r--r--include/ruby/internal/attr/nodiscard.h45
-rw-r--r--include/ruby/internal/attr/noexcept.h91
-rw-r--r--include/ruby/internal/attr/noinline.h35
-rw-r--r--include/ruby/internal/attr/nonnull.h34
-rw-r--r--include/ruby/internal/attr/noreturn.h48
-rw-r--r--include/ruby/internal/attr/pure.h43
-rw-r--r--include/ruby/internal/attr/restrict.h44
-rw-r--r--include/ruby/internal/attr/returns_nonnull.h37
-rw-r--r--include/ruby/internal/attr/warning.h32
-rw-r--r--include/ruby/internal/attr/weakref.h32
-rw-r--r--include/ruby/internal/cast.h50
-rw-r--r--include/ruby/internal/compiler_is.h45
-rw-r--r--include/ruby/internal/compiler_is/apple.h40
-rw-r--r--include/ruby/internal/compiler_is/clang.h37
-rw-r--r--include/ruby/internal/compiler_is/gcc.h45
-rw-r--r--include/ruby/internal/compiler_is/intel.h40
-rw-r--r--include/ruby/internal/compiler_is/msvc.h56
-rw-r--r--include/ruby/internal/compiler_is/sunpro.h54
-rw-r--r--include/ruby/internal/compiler_since.h61
-rw-r--r--include/ruby/internal/config.h153
-rw-r--r--include/ruby/internal/constant_p.h38
-rw-r--r--include/ruby/internal/core.h35
-rw-r--r--include/ruby/internal/core/rarray.h590
-rw-r--r--include/ruby/internal/core/rbasic.h158
-rw-r--r--include/ruby/internal/core/rbignum.h80
-rw-r--r--include/ruby/internal/core/rclass.h140
-rw-r--r--include/ruby/internal/core/rdata.h410
-rw-r--r--include/ruby/internal/core/rfile.h51
-rw-r--r--include/ruby/internal/core/rhash.h144
-rw-r--r--include/ruby/internal/core/rmatch.h146
-rw-r--r--include/ruby/internal/core/robject.h185
-rw-r--r--include/ruby/internal/core/rregexp.h168
-rw-r--r--include/ruby/internal/core/rstring.h577
-rw-r--r--include/ruby/internal/core/rstruct.h121
-rw-r--r--include/ruby/internal/core/rtypeddata.h604
-rw-r--r--include/ruby/internal/ctype.h545
-rw-r--r--include/ruby/internal/dllexport.h112
-rw-r--r--include/ruby/internal/dosish.h89
-rw-r--r--include/ruby/internal/encoding/coderange.h202
-rw-r--r--include/ruby/internal/encoding/ctype.h243
-rw-r--r--include/ruby/internal/encoding/encoding.h1058
-rw-r--r--include/ruby/internal/encoding/pathname.h184
-rw-r--r--include/ruby/internal/encoding/re.h46
-rw-r--r--include/ruby/internal/encoding/sprintf.h78
-rw-r--r--include/ruby/internal/encoding/string.h346
-rw-r--r--include/ruby/internal/encoding/symbol.h100
-rw-r--r--include/ruby/internal/encoding/transcode.h558
-rw-r--r--include/ruby/internal/error.h582
-rw-r--r--include/ruby/internal/eval.h373
-rw-r--r--include/ruby/internal/event.h154
-rw-r--r--include/ruby/internal/fl_type.h967
-rw-r--r--include/ruby/internal/gc.h57
-rw-r--r--include/ruby/internal/glob.h113
-rw-r--r--include/ruby/internal/globals.h209
-rw-r--r--include/ruby/internal/has/attribute.h163
-rw-r--r--include/ruby/internal/has/builtin.h119
-rw-r--r--include/ruby/internal/has/c_attribute.h38
-rw-r--r--include/ruby/internal/has/cpp_attribute.h86
-rw-r--r--include/ruby/internal/has/declspec_attribute.h47
-rw-r--r--include/ruby/internal/has/extension.h33
-rw-r--r--include/ruby/internal/has/feature.h31
-rw-r--r--include/ruby/internal/has/warning.h31
-rw-r--r--include/ruby/internal/intern/array.h657
-rw-r--r--include/ruby/internal/intern/bignum.h846
-rw-r--r--include/ruby/internal/intern/class.h382
-rw-r--r--include/ruby/internal/intern/compar.h62
-rw-r--r--include/ruby/internal/intern/complex.h253
-rw-r--r--include/ruby/internal/intern/cont.h260
-rw-r--r--include/ruby/internal/intern/dir.h42
-rw-r--r--include/ruby/internal/intern/enum.h73
-rw-r--r--include/ruby/internal/intern/enumerator.h259
-rw-r--r--include/ruby/internal/intern/error.h301
-rw-r--r--include/ruby/internal/intern/eval.h222
-rw-r--r--include/ruby/internal/intern/file.h213
-rw-r--r--include/ruby/internal/intern/gc.h392
-rw-r--r--include/ruby/internal/intern/hash.h318
-rw-r--r--include/ruby/internal/intern/io.h661
-rw-r--r--include/ruby/internal/intern/load.h218
-rw-r--r--include/ruby/internal/intern/marshal.h112
-rw-r--r--include/ruby/internal/intern/numeric.h208
-rw-r--r--include/ruby/internal/intern/object.h569
-rw-r--r--include/ruby/internal/intern/parse.h194
-rw-r--r--include/ruby/internal/intern/proc.h353
-rw-r--r--include/ruby/internal/intern/process.h273
-rw-r--r--include/ruby/internal/intern/random.h116
-rw-r--r--include/ruby/internal/intern/range.h89
-rw-r--r--include/ruby/internal/intern/rational.h172
-rw-r--r--include/ruby/internal/intern/re.h249
-rw-r--r--include/ruby/internal/intern/ruby.h77
-rw-r--r--include/ruby/internal/intern/select.h86
-rw-r--r--include/ruby/internal/intern/select/largesize.h217
-rw-r--r--include/ruby/internal/intern/select/posix.h144
-rw-r--r--include/ruby/internal/intern/select/win32.h259
-rw-r--r--include/ruby/internal/intern/signal.h152
-rw-r--r--include/ruby/internal/intern/sprintf.h159
-rw-r--r--include/ruby/internal/intern/string.h1821
-rw-r--r--include/ruby/internal/intern/struct.h203
-rw-r--r--include/ruby/internal/intern/thread.h492
-rw-r--r--include/ruby/internal/intern/time.h161
-rw-r--r--include/ruby/internal/intern/variable.h628
-rw-r--r--include/ruby/internal/intern/vm.h435
-rw-r--r--include/ruby/internal/interpreter.h304
-rw-r--r--include/ruby/internal/iterator.h513
-rw-r--r--include/ruby/internal/memory.h670
-rw-r--r--include/ruby/internal/method.h205
-rw-r--r--include/ruby/internal/module.h177
-rw-r--r--include/ruby/internal/newobj.h195
-rw-r--r--include/ruby/internal/rgengc.h443
-rw-r--r--include/ruby/internal/scan_args.h534
-rw-r--r--include/ruby/internal/special_consts.h295
-rw-r--r--include/ruby/internal/static_assert.h77
-rw-r--r--include/ruby/internal/stdalign.h135
-rw-r--r--include/ruby/internal/stdbool.h51
-rw-r--r--include/ruby/internal/symbol.h332
-rw-r--r--include/ruby/internal/value.h133
-rw-r--r--include/ruby/internal/value_type.h449
-rw-r--r--include/ruby/internal/variable.h337
-rw-r--r--include/ruby/internal/warning_push.h124
-rw-r--r--include/ruby/internal/xmalloc.h392
-rw-r--r--include/ruby/io.h976
-rw-r--r--include/ruby/io/buffer.h91
-rw-r--r--include/ruby/memory_view.h325
-rw-r--r--include/ruby/missing.h229
-rw-r--r--include/ruby/onigmo.h941
-rw-r--r--include/ruby/oniguruma.h8
-rw-r--r--include/ruby/ractor.h264
-rw-r--r--include/ruby/random.h304
-rw-r--r--include/ruby/re.h147
-rw-r--r--include/ruby/regex.h43
-rw-r--r--include/ruby/ruby.h311
-rw-r--r--include/ruby/st.h197
-rw-r--r--include/ruby/subst.h26
-rw-r--r--include/ruby/thread.h195
-rw-r--r--include/ruby/thread_native.h199
-rw-r--r--include/ruby/util.h228
-rw-r--r--include/ruby/version.h158
-rw-r--r--include/ruby/vm.h54
-rw-r--r--include/ruby/win32.h806
-rw-r--r--inits.c158
-rw-r--r--insns.def1533
-rw-r--r--install-sh (renamed from aclocal.m4)0
-rw-r--r--instruby.rb91
-rw-r--r--intern.h336
-rw-r--r--internal.h109
-rw-r--r--internal/array.h113
-rw-r--r--internal/bignum.h246
-rw-r--r--internal/bits.h565
-rw-r--r--internal/class.h196
-rw-r--r--internal/compar.h49
-rw-r--r--internal/compile.h35
-rw-r--r--internal/compilers.h107
-rw-r--r--internal/complex.h29
-rw-r--r--internal/cont.h24
-rw-r--r--internal/dir.h16
-rw-r--r--internal/enc.h19
-rw-r--r--internal/encoding.h30
-rw-r--r--internal/enum.h18
-rw-r--r--internal/enumerator.h21
-rw-r--r--internal/error.h191
-rw-r--r--internal/eval.h32
-rw-r--r--internal/file.h38
-rw-r--r--internal/fixnum.h184
-rw-r--r--internal/gc.h186
-rw-r--r--internal/hash.h243
-rw-r--r--internal/imemo.h243
-rw-r--r--internal/inits.h50
-rw-r--r--internal/io.h38
-rw-r--r--internal/load.h18
-rw-r--r--internal/loadpath.h16
-rw-r--r--internal/math.h23
-rw-r--r--internal/missing.h18
-rw-r--r--internal/numeric.h271
-rw-r--r--internal/object.h83
-rw-r--r--internal/parse.h23
-rw-r--r--internal/proc.h32
-rw-r--r--internal/process.h137
-rw-r--r--internal/random.h16
-rw-r--r--internal/range.h40
-rw-r--r--internal/rational.h72
-rw-r--r--internal/re.h30
-rw-r--r--internal/sanitizers.h190
-rw-r--r--internal/serial.h23
-rw-r--r--internal/signal.h21
-rw-r--r--internal/static_assert.h16
-rw-r--r--internal/string.h141
-rw-r--r--internal/struct.h153
-rw-r--r--internal/symbol.h41
-rw-r--r--internal/thread.h53
-rw-r--r--internal/time.h34
-rw-r--r--internal/transcode.h20
-rw-r--r--internal/util.h27
-rw-r--r--internal/variable.h83
-rw-r--r--internal/vm.h133
-rw-r--r--internal/warnings.h16
-rw-r--r--io.c15008
-rw-r--r--io.rb123
-rw-r--r--io_buffer.c2214
-rw-r--r--iseq.c3841
-rw-r--r--iseq.h322
-rw-r--r--kernel.rb178
-rw-r--r--keywords42
-rw-r--r--lex.c132
-rw-r--r--lex.c.blt303
-rw-r--r--lib/English.gemspec22
-rw-r--r--lib/English.rb160
-rw-r--r--lib/Env.rb31
-rw-r--r--lib/README48
-rw-r--r--lib/abbrev.gemspec22
-rw-r--r--lib/abbrev.rb132
-rw-r--r--lib/base64.gemspec20
-rw-r--r--lib/base64.rb129
-rw-r--r--lib/benchmark.rb582
-rw-r--r--lib/benchmark/benchmark.gemspec29
-rw-r--r--lib/benchmark/version.rb4
-rw-r--r--lib/bundler.rb703
-rw-r--r--lib/bundler/.document1
-rw-r--r--lib/bundler/build_metadata.rb43
-rw-r--r--lib/bundler/bundler.gemspec45
-rw-r--r--lib/bundler/capistrano.rb22
-rw-r--r--lib/bundler/cli.rb856
-rw-r--r--lib/bundler/cli/add.rb47
-rw-r--r--lib/bundler/cli/binstubs.rb53
-rw-r--r--lib/bundler/cli/cache.rb43
-rw-r--r--lib/bundler/cli/check.rb40
-rw-r--r--lib/bundler/cli/clean.rb25
-rw-r--r--lib/bundler/cli/common.rb128
-rw-r--r--lib/bundler/cli/config.rb194
-rw-r--r--lib/bundler/cli/console.rb43
-rw-r--r--lib/bundler/cli/doctor.rb151
-rw-r--r--lib/bundler/cli/exec.rb88
-rw-r--r--lib/bundler/cli/fund.rb36
-rw-r--r--lib/bundler/cli/gem.rb433
-rw-r--r--lib/bundler/cli/info.rb85
-rw-r--r--lib/bundler/cli/init.rb47
-rw-r--r--lib/bundler/cli/inject.rb60
-rw-r--r--lib/bundler/cli/install.rb206
-rw-r--r--lib/bundler/cli/issue.rb41
-rw-r--r--lib/bundler/cli/list.rb66
-rw-r--r--lib/bundler/cli/lock.rb67
-rw-r--r--lib/bundler/cli/open.rb29
-rw-r--r--lib/bundler/cli/outdated.rb290
-rw-r--r--lib/bundler/cli/platform.rb46
-rw-r--r--lib/bundler/cli/plugin.rb41
-rw-r--r--lib/bundler/cli/pristine.rb52
-rw-r--r--lib/bundler/cli/remove.rb17
-rw-r--r--lib/bundler/cli/show.rb75
-rw-r--r--lib/bundler/cli/update.rb118
-rw-r--r--lib/bundler/cli/viz.rb31
-rw-r--r--lib/bundler/compact_index_client.rb125
-rw-r--r--lib/bundler/compact_index_client/cache.rb110
-rw-r--r--lib/bundler/compact_index_client/gem_parser.rb28
-rw-r--r--lib/bundler/compact_index_client/updater.rb103
-rw-r--r--lib/bundler/constants.rb7
-rw-r--r--lib/bundler/current_ruby.rb96
-rw-r--r--lib/bundler/definition.rb841
-rw-r--r--lib/bundler/dep_proxy.rb55
-rw-r--r--lib/bundler/dependency.rb142
-rw-r--r--lib/bundler/deployment.rb69
-rw-r--r--lib/bundler/deprecate.rb44
-rw-r--r--lib/bundler/digest.rb71
-rw-r--r--lib/bundler/dsl.rb588
-rw-r--r--lib/bundler/endpoint_specification.rb133
-rw-r--r--lib/bundler/env.rb150
-rw-r--r--lib/bundler/environment_preserver.rb85
-rw-r--r--lib/bundler/errors.rb175
-rw-r--r--lib/bundler/feature_flag.rb55
-rw-r--r--lib/bundler/fetcher.rb314
-rw-r--r--lib/bundler/fetcher/base.rb52
-rw-r--r--lib/bundler/fetcher/compact_index.rb145
-rw-r--r--lib/bundler/fetcher/dependency.rb82
-rw-r--r--lib/bundler/fetcher/downloader.rb90
-rw-r--r--lib/bundler/fetcher/index.rb52
-rw-r--r--lib/bundler/friendly_errors.rb112
-rw-r--r--lib/bundler/gem_helper.rb238
-rw-r--r--lib/bundler/gem_helpers.rb110
-rw-r--r--lib/bundler/gem_tasks.rb7
-rw-r--r--lib/bundler/gem_version_promoter.rb190
-rw-r--r--lib/bundler/graph.rb152
-rw-r--r--lib/bundler/index.rb213
-rw-r--r--lib/bundler/injector.rb282
-rw-r--r--lib/bundler/inline.rb85
-rw-r--r--lib/bundler/installer.rb288
-rw-r--r--lib/bundler/installer/gem_installer.rb71
-rw-r--r--lib/bundler/installer/parallel_installer.rb250
-rw-r--r--lib/bundler/installer/standalone.rb72
-rw-r--r--lib/bundler/lazy_specification.rb158
-rw-r--r--lib/bundler/lockfile_generator.rb95
-rw-r--r--lib/bundler/lockfile_parser.rb220
-rw-r--r--lib/bundler/man/.document1
-rw-r--r--lib/bundler/man/bundle-add.174
-rw-r--r--lib/bundler/man/bundle-add.1.ronn52
-rw-r--r--lib/bundler/man/bundle-binstubs.142
-rw-r--r--lib/bundler/man/bundle-binstubs.1.ronn41
-rw-r--r--lib/bundler/man/bundle-cache.155
-rw-r--r--lib/bundler/man/bundle-cache.1.ronn72
-rw-r--r--lib/bundler/man/bundle-check.131
-rw-r--r--lib/bundler/man/bundle-check.1.ronn26
-rw-r--r--lib/bundler/man/bundle-clean.124
-rw-r--r--lib/bundler/man/bundle-clean.1.ronn18
-rw-r--r--lib/bundler/man/bundle-config.1496
-rw-r--r--lib/bundler/man/bundle-config.1.ronn396
-rw-r--r--lib/bundler/man/bundle-doctor.144
-rw-r--r--lib/bundler/man/bundle-doctor.1.ronn33
-rw-r--r--lib/bundler/man/bundle-exec.1165
-rw-r--r--lib/bundler/man/bundle-exec.1.ronn152
-rw-r--r--lib/bundler/man/bundle-gem.1115
-rw-r--r--lib/bundler/man/bundle-gem.1.ronn117
-rw-r--r--lib/bundler/man/bundle-info.120
-rw-r--r--lib/bundler/man/bundle-info.1.ronn17
-rw-r--r--lib/bundler/man/bundle-init.125
-rw-r--r--lib/bundler/man/bundle-init.1.ronn29
-rw-r--r--lib/bundler/man/bundle-inject.133
-rw-r--r--lib/bundler/man/bundle-inject.1.ronn22
-rw-r--r--lib/bundler/man/bundle-install.1338
-rw-r--r--lib/bundler/man/bundle-install.1.ronn405
-rw-r--r--lib/bundler/man/bundle-list.150
-rw-r--r--lib/bundler/man/bundle-list.1.ronn33
-rw-r--r--lib/bundler/man/bundle-lock.184
-rw-r--r--lib/bundler/man/bundle-lock.1.ronn94
-rw-r--r--lib/bundler/man/bundle-open.132
-rw-r--r--lib/bundler/man/bundle-open.1.ronn19
-rw-r--r--lib/bundler/man/bundle-outdated.1155
-rw-r--r--lib/bundler/man/bundle-outdated.1.ronn111
-rw-r--r--lib/bundler/man/bundle-platform.161
-rw-r--r--lib/bundler/man/bundle-platform.1.ronn42
-rw-r--r--lib/bundler/man/bundle-pristine.134
-rw-r--r--lib/bundler/man/bundle-pristine.1.ronn34
-rw-r--r--lib/bundler/man/bundle-remove.131
-rw-r--r--lib/bundler/man/bundle-remove.1.ronn23
-rw-r--r--lib/bundler/man/bundle-show.123
-rw-r--r--lib/bundler/man/bundle-show.1.ronn21
-rw-r--r--lib/bundler/man/bundle-update.1394
-rw-r--r--lib/bundler/man/bundle-update.1.ronn351
-rw-r--r--lib/bundler/man/bundle-viz.139
-rw-r--r--lib/bundler/man/bundle-viz.1.ronn30
-rw-r--r--lib/bundler/man/bundle.1136
-rw-r--r--lib/bundler/man/bundle.1.ronn111
-rw-r--r--lib/bundler/man/gemfile.5712
-rw-r--r--lib/bundler/man/gemfile.5.ronn525
-rw-r--r--lib/bundler/man/index.txt25
-rw-r--r--lib/bundler/match_platform.rb24
-rw-r--r--lib/bundler/mirror.rb223
-rw-r--r--lib/bundler/plugin.rb350
-rw-r--r--lib/bundler/plugin/api.rb81
-rw-r--r--lib/bundler/plugin/api/source.rb326
-rw-r--r--lib/bundler/plugin/dsl.rb53
-rw-r--r--lib/bundler/plugin/events.rb61
-rw-r--r--lib/bundler/plugin/index.rb185
-rw-r--r--lib/bundler/plugin/installer.rb109
-rw-r--r--lib/bundler/plugin/installer/git.rb38
-rw-r--r--lib/bundler/plugin/installer/rubygems.rb27
-rw-r--r--lib/bundler/plugin/source_list.rb31
-rw-r--r--lib/bundler/process_lock.rb24
-rw-r--r--lib/bundler/psyched_yaml.rb10
-rw-r--r--lib/bundler/remote_specification.rb115
-rw-r--r--lib/bundler/resolver.rb392
-rw-r--r--lib/bundler/resolver/spec_group.rb110
-rw-r--r--lib/bundler/retry.rb66
-rw-r--r--lib/bundler/ruby_dsl.rb18
-rw-r--r--lib/bundler/ruby_version.rb137
-rw-r--r--lib/bundler/rubygems_ext.rb236
-rw-r--r--lib/bundler/rubygems_gem_installer.rb160
-rw-r--r--lib/bundler/rubygems_integration.rb596
-rw-r--r--lib/bundler/runtime.rb312
-rw-r--r--lib/bundler/self_manager.rb76
-rw-r--r--lib/bundler/settings.rb513
-rw-r--r--lib/bundler/settings/validator.rb102
-rw-r--r--lib/bundler/setup.rb27
-rw-r--r--lib/bundler/shared_helpers.rb343
-rw-r--r--lib/bundler/similarity_detector.rb63
-rw-r--r--lib/bundler/source.rb115
-rw-r--r--lib/bundler/source/gemspec.rb18
-rw-r--r--lib/bundler/source/git.rb356
-rw-r--r--lib/bundler/source/git/git_proxy.rb263
-rw-r--r--lib/bundler/source/metadata.rb63
-rw-r--r--lib/bundler/source/path.rb260
-rw-r--r--lib/bundler/source/path/installer.rb74
-rw-r--r--lib/bundler/source/rubygems.rb555
-rw-r--r--lib/bundler/source/rubygems/remote.rb68
-rw-r--r--lib/bundler/source/rubygems_aggregate.rb68
-rw-r--r--lib/bundler/source_list.rb221
-rw-r--r--lib/bundler/source_map.rb58
-rw-r--r--lib/bundler/spec_set.rb188
-rw-r--r--lib/bundler/stub_specification.rb114
-rw-r--r--lib/bundler/templates/.document1
-rw-r--r--lib/bundler/templates/Executable29
-rw-r--r--lib/bundler/templates/Executable.bundler114
-rw-r--r--lib/bundler/templates/Executable.standalone14
-rw-r--r--lib/bundler/templates/Gemfile5
-rw-r--r--lib/bundler/templates/gems.rb5
-rw-r--r--lib/bundler/templates/newgem/CHANGELOG.md.tt5
-rw-r--r--lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt84
-rw-r--r--lib/bundler/templates/newgem/Gemfile.tt23
-rw-r--r--lib/bundler/templates/newgem/LICENSE.txt.tt21
-rw-r--r--lib/bundler/templates/newgem/README.md.tt49
-rw-r--r--lib/bundler/templates/newgem/Rakefile.tt56
-rw-r--r--lib/bundler/templates/newgem/bin/console.tt15
-rw-r--r--lib/bundler/templates/newgem/bin/setup.tt8
-rw-r--r--lib/bundler/templates/newgem/circleci/config.yml.tt13
-rw-r--r--lib/bundler/templates/newgem/exe/newgem.tt3
-rw-r--r--lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt5
-rw-r--r--lib/bundler/templates/newgem/ext/newgem/newgem.c.tt9
-rw-r--r--lib/bundler/templates/newgem/ext/newgem/newgem.h.tt6
-rw-r--r--lib/bundler/templates/newgem/github/workflows/main.yml.tt27
-rw-r--r--lib/bundler/templates/newgem/gitignore.tt20
-rw-r--r--lib/bundler/templates/newgem/gitlab-ci.yml.tt9
-rw-r--r--lib/bundler/templates/newgem/lib/newgem.rb.tt15
-rw-r--r--lib/bundler/templates/newgem/lib/newgem/version.rb.tt9
-rw-r--r--lib/bundler/templates/newgem/newgem.gemspec.tt44
-rw-r--r--lib/bundler/templates/newgem/rspec.tt3
-rw-r--r--lib/bundler/templates/newgem/rubocop.yml.tt13
-rw-r--r--lib/bundler/templates/newgem/sig/newgem.rbs.tt8
-rw-r--r--lib/bundler/templates/newgem/spec/newgem_spec.rb.tt11
-rw-r--r--lib/bundler/templates/newgem/spec/spec_helper.rb.tt15
-rw-r--r--lib/bundler/templates/newgem/standard.yml.tt2
-rw-r--r--lib/bundler/templates/newgem/test/minitest/test_helper.rb.tt6
-rw-r--r--lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt13
-rw-r--r--lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt15
-rw-r--r--lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt6
-rw-r--r--lib/bundler/templates/newgem/travis.yml.tt6
-rw-r--r--lib/bundler/ui.rb9
-rw-r--r--lib/bundler/ui/rg_proxy.rb19
-rw-r--r--lib/bundler/ui/shell.rb142
-rw-r--r--lib/bundler/ui/silent.rb69
-rw-r--r--lib/bundler/uri_credentials_filter.rb43
-rw-r--r--lib/bundler/vendor/.document1
-rw-r--r--lib/bundler/vendor/connection_pool/lib/connection_pool.rb126
-rw-r--r--lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb174
-rw-r--r--lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb3
-rw-r--r--lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb57
-rw-r--r--lib/bundler/vendor/fileutils/lib/fileutils.rb1764
-rw-r--r--lib/bundler/vendor/molinillo/lib/molinillo.rb11
-rw-r--r--lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb57
-rw-r--r--lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb88
-rw-r--r--lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb255
-rw-r--r--lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb36
-rw-r--r--lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb66
-rw-r--r--lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb62
-rw-r--r--lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb63
-rw-r--r--lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb61
-rw-r--r--lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb126
-rw-r--r--lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb46
-rw-r--r--lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb36
-rw-r--r--lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb164
-rw-r--r--lib/bundler/vendor/molinillo/lib/molinillo/errors.rb143
-rw-r--r--lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb6
-rw-r--r--lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb112
-rw-r--r--lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb67
-rw-r--r--lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb839
-rw-r--r--lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb46
-rw-r--r--lib/bundler/vendor/molinillo/lib/molinillo/state.rb58
-rw-r--r--lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb1073
-rw-r--r--lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb40
-rw-r--r--lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb53
-rw-r--r--lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb79
-rw-r--r--lib/bundler/vendor/thor/lib/thor.rb516
-rw-r--r--lib/bundler/vendor/thor/lib/thor/actions.rb340
-rw-r--r--lib/bundler/vendor/thor/lib/thor/actions/create_file.rb104
-rw-r--r--lib/bundler/vendor/thor/lib/thor/actions/create_link.rb61
-rw-r--r--lib/bundler/vendor/thor/lib/thor/actions/directory.rb108
-rw-r--r--lib/bundler/vendor/thor/lib/thor/actions/empty_directory.rb143
-rw-r--r--lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb375
-rw-r--r--lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb122
-rw-r--r--lib/bundler/vendor/thor/lib/thor/base.rb699
-rw-r--r--lib/bundler/vendor/thor/lib/thor/command.rb142
-rw-r--r--lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb103
-rw-r--r--lib/bundler/vendor/thor/lib/thor/error.rb115
-rw-r--r--lib/bundler/vendor/thor/lib/thor/group.rb281
-rw-r--r--lib/bundler/vendor/thor/lib/thor/invocation.rb178
-rw-r--r--lib/bundler/vendor/thor/lib/thor/line_editor.rb17
-rw-r--r--lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb37
-rw-r--r--lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb88
-rw-r--r--lib/bundler/vendor/thor/lib/thor/nested_context.rb29
-rw-r--r--lib/bundler/vendor/thor/lib/thor/parser.rb4
-rw-r--r--lib/bundler/vendor/thor/lib/thor/parser/argument.rb70
-rw-r--r--lib/bundler/vendor/thor/lib/thor/parser/arguments.rb179
-rw-r--r--lib/bundler/vendor/thor/lib/thor/parser/option.rb159
-rw-r--r--lib/bundler/vendor/thor/lib/thor/parser/options.rb255
-rw-r--r--lib/bundler/vendor/thor/lib/thor/rake_compat.rb72
-rw-r--r--lib/bundler/vendor/thor/lib/thor/runner.rb325
-rw-r--r--lib/bundler/vendor/thor/lib/thor/shell.rb81
-rw-r--r--lib/bundler/vendor/thor/lib/thor/shell/basic.rb512
-rw-r--r--lib/bundler/vendor/thor/lib/thor/shell/color.rb157
-rw-r--r--lib/bundler/vendor/thor/lib/thor/shell/html.rb126
-rw-r--r--lib/bundler/vendor/thor/lib/thor/util.rb284
-rw-r--r--lib/bundler/vendor/thor/lib/thor/version.rb3
-rw-r--r--lib/bundler/vendor/tmpdir/lib/tmpdir.rb154
-rw-r--r--lib/bundler/vendor/tsort/lib/tsort.rb453
-rw-r--r--lib/bundler/vendor/uri/lib/uri.rb103
-rw-r--r--lib/bundler/vendor/uri/lib/uri/common.rb681
-rw-r--r--lib/bundler/vendor/uri/lib/uri/file.rb94
-rw-r--r--lib/bundler/vendor/uri/lib/uri/ftp.rb266
-rw-r--r--lib/bundler/vendor/uri/lib/uri/generic.rb1567
-rw-r--r--lib/bundler/vendor/uri/lib/uri/http.rb87
-rw-r--r--lib/bundler/vendor/uri/lib/uri/https.rb22
-rw-r--r--lib/bundler/vendor/uri/lib/uri/ldap.rb261
-rw-r--r--lib/bundler/vendor/uri/lib/uri/ldaps.rb21
-rw-r--r--lib/bundler/vendor/uri/lib/uri/mailto.rb293
-rw-r--r--lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb533
-rw-r--r--lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb114
-rw-r--r--lib/bundler/vendor/uri/lib/uri/version.rb6
-rw-r--r--lib/bundler/vendor/uri/lib/uri/ws.rb84
-rw-r--r--lib/bundler/vendor/uri/lib/uri/wss.rb22
-rw-r--r--lib/bundler/vendored_fileutils.rb4
-rw-r--r--lib/bundler/vendored_molinillo.rb4
-rw-r--r--lib/bundler/vendored_persistent.rb47
-rw-r--r--lib/bundler/vendored_thor.rb8
-rw-r--r--lib/bundler/vendored_tmpdir.rb4
-rw-r--r--lib/bundler/vendored_tsort.rb4
-rw-r--r--lib/bundler/vendored_uri.rb4
-rw-r--r--lib/bundler/version.rb9
-rw-r--r--lib/bundler/version_ranges.rb122
-rw-r--r--lib/bundler/vlad.rb17
-rw-r--r--lib/bundler/worker.rb119
-rw-r--r--lib/bundler/yaml_serializer.rb89
-rw-r--r--lib/cgi-lib.rb272
-rw-r--r--lib/cgi.rb297
-rw-r--r--lib/cgi/cgi.gemspec31
-rw-r--r--lib/cgi/cookie.rb181
-rw-r--r--lib/cgi/core.rb889
-rw-r--r--lib/cgi/html.rb1035
-rw-r--r--lib/cgi/session.rb562
-rw-r--r--lib/cgi/session/pstore.rb88
-rw-r--r--lib/cgi/util.rb219
-rw-r--r--lib/complex.rb498
-rw-r--r--lib/csv.rb2686
-rw-r--r--lib/csv/core_ext/array.rb9
-rw-r--r--lib/csv/core_ext/string.rb9
-rw-r--r--lib/csv/csv.gemspec64
-rw-r--r--lib/csv/delete_suffix.rb18
-rw-r--r--lib/csv/fields_converter.rb88
-rw-r--r--lib/csv/input_record_separator.rb31
-rw-r--r--lib/csv/match_p.rb20
-rw-r--r--lib/csv/parser.rb1172
-rw-r--r--lib/csv/row.rb624
-rw-r--r--lib/csv/table.rb621
-rw-r--r--lib/csv/version.rb6
-rw-r--r--lib/csv/writer.rb210
-rw-r--r--lib/date.rb258
-rw-r--r--lib/date2.rb346
-rw-r--r--lib/debug.rb409
-rw-r--r--lib/delegate.rb500
-rw-r--r--lib/delegate/delegate.gemspec29
-rw-r--r--lib/did_you_mean.rb155
-rw-r--r--lib/did_you_mean/core_ext/name_error.rb32
-rw-r--r--lib/did_you_mean/did_you_mean.gemspec27
-rw-r--r--lib/did_you_mean/experimental.rb2
-rw-r--r--lib/did_you_mean/formatter.rb44
-rw-r--r--lib/did_you_mean/formatters/plain_formatter.rb4
-rw-r--r--lib/did_you_mean/formatters/verbose_formatter.rb9
-rw-r--r--lib/did_you_mean/jaro_winkler.rb87
-rw-r--r--lib/did_you_mean/levenshtein.rb57
-rw-r--r--lib/did_you_mean/spell_checker.rb46
-rw-r--r--lib/did_you_mean/spell_checkers/key_error_checker.rb20
-rw-r--r--lib/did_you_mean/spell_checkers/method_name_checker.rb72
-rw-r--r--lib/did_you_mean/spell_checkers/name_error_checkers.rb20
-rw-r--r--lib/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb49
-rw-r--r--lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb85
-rw-r--r--lib/did_you_mean/spell_checkers/null_checker.rb6
-rw-r--r--lib/did_you_mean/spell_checkers/pattern_key_name_checker.rb20
-rw-r--r--lib/did_you_mean/spell_checkers/require_path_checker.rb39
-rw-r--r--lib/did_you_mean/tree_spell_checker.rb109
-rw-r--r--lib/did_you_mean/verbose.rb2
-rw-r--r--lib/did_you_mean/version.rb3
-rw-r--r--lib/drb.rb3
-rw-r--r--lib/drb/acl.rb239
-rw-r--r--lib/drb/drb.gemspec43
-rw-r--r--lib/drb/drb.rb1937
-rw-r--r--lib/drb/eq.rb15
-rw-r--r--lib/drb/extserv.rb44
-rw-r--r--lib/drb/extservm.rb92
-rw-r--r--lib/drb/gw.rb161
-rw-r--r--lib/drb/invokemethod.rb35
-rw-r--r--lib/drb/observer.rb26
-rw-r--r--lib/drb/ssl.rb344
-rw-r--r--lib/drb/timeridconv.rb97
-rw-r--r--lib/drb/unix.rb118
-rw-r--r--lib/drb/version.rb3
-rw-r--r--lib/drb/weakidconv.rb59
-rw-r--r--lib/e2mmap.rb196
-rw-r--r--lib/erb.gemspec31
-rw-r--r--lib/erb.rb1079
-rw-r--r--lib/erb/version.rb5
-rw-r--r--lib/eregex.rb36
-rw-r--r--lib/error_highlight.rb2
-rw-r--r--lib/error_highlight/base.rb461
-rw-r--r--lib/error_highlight/core_ext.rb52
-rw-r--r--lib/error_highlight/error_highlight.gemspec27
-rw-r--r--lib/error_highlight/formatter.rb23
-rw-r--r--lib/error_highlight/version.rb3
-rw-r--r--lib/fileutils.gemspec31
-rw-r--r--lib/fileutils.rb1753
-rw-r--r--lib/final.rb41
-rw-r--r--lib/finalize.rb201
-rw-r--r--lib/find.gemspec24
-rw-r--r--lib/find.rb103
-rw-r--r--lib/forwardable.rb319
-rw-r--r--lib/forwardable/forwardable.gemspec26
-rw-r--r--lib/forwardable/impl.rb16
-rw-r--r--lib/ftools.rb182
-rw-r--r--lib/ftplib.rb639
-rw-r--r--lib/getoptlong.rb489
-rw-r--r--lib/getoptlong/getoptlong.gemspec30
-rw-r--r--lib/getopts.rb141
-rw-r--r--lib/importenv.rb32
-rw-r--r--lib/ipaddr.gemspec24
-rw-r--r--lib/ipaddr.rb778
-rw-r--r--lib/irb.rb978
-rw-r--r--lib/irb/.document1
-rw-r--r--lib/irb/cmd/chws.rb34
-rw-r--r--lib/irb/cmd/fork.rb37
-rw-r--r--lib/irb/cmd/help.rb47
-rw-r--r--lib/irb/cmd/info.rb32
-rw-r--r--lib/irb/cmd/load.rb67
-rw-r--r--lib/irb/cmd/ls.rb101
-rw-r--r--lib/irb/cmd/measure.rb43
-rw-r--r--lib/irb/cmd/nop.rb45
-rw-r--r--lib/irb/cmd/pushws.rb40
-rw-r--r--lib/irb/cmd/show_source.rb93
-rw-r--r--lib/irb/cmd/subirb.rb43
-rw-r--r--lib/irb/cmd/whereami.rb20
-rw-r--r--lib/irb/color.rb246
-rw-r--r--lib/irb/color_printer.rb47
-rw-r--r--lib/irb/completion.rb443
-rw-r--r--lib/irb/context.rb518
-rw-r--r--lib/irb/easter-egg.rb138
-rw-r--r--lib/irb/ext/change-ws.rb45
-rw-r--r--lib/irb/ext/history.rb155
-rw-r--r--lib/irb/ext/loader.rb155
-rw-r--r--lib/irb/ext/multi-irb.rb265
-rw-r--r--lib/irb/ext/save-history.rb130
-rw-r--r--lib/irb/ext/tracer.rb84
-rw-r--r--lib/irb/ext/use-loader.rb75
-rw-r--r--lib/irb/ext/workspaces.rb66
-rw-r--r--lib/irb/extend-command.rb356
-rw-r--r--lib/irb/frame.rb86
-rw-r--r--lib/irb/help.rb36
-rw-r--r--lib/irb/init.rb422
-rw-r--r--lib/irb/input-method.rb470
-rw-r--r--lib/irb/inspector.rb136
-rw-r--r--lib/irb/irb.gemspec40
-rw-r--r--lib/irb/lc/error.rb71
-rw-r--r--lib/irb/lc/help-message61
-rw-r--r--lib/irb/lc/ja/encoding_aliases.rb11
-rw-r--r--lib/irb/lc/ja/error.rb72
-rw-r--r--lib/irb/lc/ja/help-message57
-rw-r--r--lib/irb/locale.rb191
-rw-r--r--lib/irb/magic-file.rb38
-rw-r--r--lib/irb/notifier.rb236
-rw-r--r--lib/irb/output-method.rb92
-rw-r--r--lib/irb/ruby-lex.rb861
-rw-r--r--lib/irb/ruby_logo.aa37
-rw-r--r--lib/irb/src_encoding.rb7
-rw-r--r--lib/irb/version.rb17
-rw-r--r--lib/irb/workspace.rb187
-rw-r--r--lib/irb/ws-for-case-2.rb15
-rw-r--r--lib/irb/xmp.rb170
-rw-r--r--lib/jcode.rb167
-rw-r--r--lib/logger.rb588
-rw-r--r--lib/logger/errors.rb9
-rw-r--r--lib/logger/formatter.rb37
-rw-r--r--lib/logger/log_device.rb205
-rw-r--r--lib/logger/logger.gemspec27
-rw-r--r--lib/logger/period.rb47
-rw-r--r--lib/logger/severity.rb19
-rw-r--r--lib/logger/version.rb5
-rw-r--r--lib/mailread.rb48
-rw-r--r--lib/mathn.rb309
-rw-r--r--lib/matrix.rb1022
-rw-r--r--lib/mkmf.rb3111
-rw-r--r--lib/monitor.rb229
-rw-r--r--lib/mutex_m.gemspec27
-rw-r--r--lib/mutex_m.rb175
-rw-r--r--lib/net/http.rb1724
-rw-r--r--lib/net/http/backward.rb40
-rw-r--r--lib/net/http/exceptions.rb33
-rw-r--r--lib/net/http/generic_request.rb337
-rw-r--r--lib/net/http/header.rb516
-rw-r--r--lib/net/http/net-http.gemspec35
-rw-r--r--lib/net/http/proxy_delta.rb17
-rw-r--r--lib/net/http/request.rb21
-rw-r--r--lib/net/http/requests.rb123
-rw-r--r--lib/net/http/response.rb427
-rw-r--r--lib/net/http/responses.rb307
-rw-r--r--lib/net/http/status.rb83
-rw-r--r--lib/net/https.rb23
-rw-r--r--lib/net/net-protocol.gemspec36
-rw-r--r--lib/net/pop.rb419
-rw-r--r--lib/net/protocol.rb507
-rw-r--r--lib/net/session.rb632
-rw-r--r--lib/net/smtp.rb219
-rw-r--r--lib/observer.rb221
-rw-r--r--lib/observer/observer.gemspec32
-rw-r--r--lib/open-uri.gemspec25
-rw-r--r--lib/open-uri.rb811
-rw-r--r--lib/open3.rb785
-rw-r--r--lib/open3/open3.gemspec33
-rw-r--r--lib/open3/version.rb3
-rw-r--r--lib/optionparser.rb2
-rw-r--r--lib/optparse.rb2228
-rw-r--r--lib/optparse/ac.rb54
-rw-r--r--lib/optparse/date.rb18
-rw-r--r--lib/optparse/kwargs.rb22
-rw-r--r--lib/optparse/optparse.gemspec29
-rw-r--r--lib/optparse/shellwords.rb7
-rw-r--r--lib/optparse/time.rb11
-rw-r--r--lib/optparse/uri.rb7
-rw-r--r--lib/optparse/version.rb71
-rw-r--r--lib/ostruct.rb481
-rw-r--r--lib/ostruct/ostruct.gemspec29
-rw-r--r--lib/parsearg.rb83
-rw-r--r--lib/parsedate.rb93
-rw-r--r--lib/ping.rb62
-rw-r--r--lib/pp.gemspec27
-rw-r--r--lib/pp.rb631
-rw-r--r--lib/prettyprint.gemspec22
-rw-r--r--lib/prettyprint.rb556
-rw-r--r--lib/profile.rb55
-rw-r--r--lib/pstore.rb499
-rw-r--r--lib/pstore/pstore.gemspec32
-rw-r--r--lib/racc.rb6
-rw-r--r--lib/racc/compat.rb33
-rw-r--r--lib/racc/debugflags.rb60
-rw-r--r--lib/racc/exception.rb16
-rw-r--r--lib/racc/grammar.rb1118
-rw-r--r--lib/racc/grammarfileparser.rb561
-rw-r--r--lib/racc/info.rb17
-rw-r--r--lib/racc/iset.rb92
-rw-r--r--lib/racc/logfilegenerator.rb212
-rw-r--r--lib/racc/parser-text.rb637
-rw-r--r--lib/racc/parser.rb632
-rw-r--r--lib/racc/parserfilegenerator.rb468
-rw-r--r--lib/racc/racc.gemspec58
-rw-r--r--lib/racc/sourcetext.rb35
-rw-r--r--lib/racc/state.rb972
-rw-r--r--lib/racc/statetransitiontable.rb311
-rw-r--r--lib/racc/static.rb5
-rw-r--r--lib/random/formatter.rb217
-rw-r--r--lib/rational.rb390
-rw-r--r--lib/rdoc.rb201
-rw-r--r--lib/rdoc/.document2
-rw-r--r--lib/rdoc/alias.rb112
-rw-r--r--lib/rdoc/anon_class.rb11
-rw-r--r--lib/rdoc/any_method.rb364
-rw-r--r--lib/rdoc/attr.rb176
-rw-r--r--lib/rdoc/class_module.rb802
-rw-r--r--lib/rdoc/code_object.rb421
-rw-r--r--lib/rdoc/code_objects.rb6
-rw-r--r--lib/rdoc/comment.rb250
-rw-r--r--lib/rdoc/constant.rb187
-rw-r--r--lib/rdoc/context.rb1266
-rw-r--r--lib/rdoc/context/section.rb232
-rw-r--r--lib/rdoc/cross_reference.rb210
-rw-r--r--lib/rdoc/encoding.rb136
-rw-r--r--lib/rdoc/erb_partial.rb19
-rw-r--r--lib/rdoc/erbio.rb42
-rw-r--r--lib/rdoc/extend.rb10
-rw-r--r--lib/rdoc/generator.rb51
-rw-r--r--lib/rdoc/generator/darkfish.rb790
-rw-r--r--lib/rdoc/generator/json_index.rb300
-rw-r--r--lib/rdoc/generator/markup.rb160
-rw-r--r--lib/rdoc/generator/pot.rb98
-rw-r--r--lib/rdoc/generator/pot/message_extractor.rb68
-rw-r--r--lib/rdoc/generator/pot/po.rb84
-rw-r--r--lib/rdoc/generator/pot/po_entry.rb141
-rw-r--r--lib/rdoc/generator/ri.rb31
-rw-r--r--lib/rdoc/generator/template/darkfish/.document0
-rw-r--r--lib/rdoc/generator/template/darkfish/_footer.rhtml5
-rw-r--r--lib/rdoc/generator/template/darkfish/_head.rhtml20
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_VCS_info.rhtml19
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml9
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml15
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_in_files.rhtml9
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml15
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml15
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_methods.rhtml12
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_navigation.rhtml11
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml12
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_parent.rhtml11
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_search.rhtml14
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml11
-rw-r--r--lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml18
-rw-r--r--lib/rdoc/generator/template/darkfish/class.rhtml172
-rw-r--r--lib/rdoc/generator/template/darkfish/css/fonts.css167
-rw-r--r--lib/rdoc/generator/template/darkfish/css/rdoc.css639
-rw-r--r--lib/rdoc/generator/template/darkfish/fonts/Lato-Light.ttfbin94668 -> 0 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/fonts/Lato-LightItalic.ttfbin94196 -> 0 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/fonts/Lato-Regular.ttfbin96184 -> 0 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/fonts/Lato-RegularItalic.ttfbin95316 -> 0 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/fonts/SourceCodePro-Bold.ttfbin138268 -> 0 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/fonts/SourceCodePro-Regular.ttfbin138680 -> 0 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/add.pngbin733 -> 0 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/arrow_up.pngbin372 -> 0 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/brick.pngbin452 -> 0 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/brick_link.pngbin764 -> 0 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/bug.pngbin774 -> 0 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/bullet_black.pngbin211 -> 0 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/bullet_toggle_minus.pngbin207 -> 0 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/bullet_toggle_plus.pngbin209 -> 0 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/date.pngbin626 -> 0 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/delete.pngbin715 -> 0 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/find.pngbin659 -> 0 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/loadingAnimation.gifbin5886 -> 0 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/macFFBgHack.pngbin207 -> 0 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/package.pngbin853 -> 0 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/page_green.pngbin621 -> 0 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/page_white_text.pngbin342 -> 0 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/page_white_width.pngbin309 -> 0 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/plugin.pngbin591 -> 0 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/ruby.pngbin592 -> 0 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/tag_blue.pngbin1880 -> 0 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/tag_green.pngbin613 -> 0 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/transparent.pngbin97 -> 0 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/wrench.pngbin610 -> 0 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/wrench_orange.pngbin584 -> 0 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/images/zoom.pngbin692 -> 0 bytes-rw-r--r--lib/rdoc/generator/template/darkfish/index.rhtml22
-rw-r--r--lib/rdoc/generator/template/darkfish/js/darkfish.js84
-rw-r--r--lib/rdoc/generator/template/darkfish/js/search.js110
-rw-r--r--lib/rdoc/generator/template/darkfish/page.rhtml18
-rw-r--r--lib/rdoc/generator/template/darkfish/servlet_not_found.rhtml18
-rw-r--r--lib/rdoc/generator/template/darkfish/servlet_root.rhtml62
-rw-r--r--lib/rdoc/generator/template/darkfish/table_of_contents.rhtml58
-rw-r--r--lib/rdoc/generator/template/json_index/.document1
-rw-r--r--lib/rdoc/generator/template/json_index/js/navigation.js105
-rw-r--r--lib/rdoc/generator/template/json_index/js/searcher.js229
-rw-r--r--lib/rdoc/ghost_method.rb7
-rw-r--r--lib/rdoc/i18n.rb10
-rw-r--r--lib/rdoc/i18n/locale.rb102
-rw-r--r--lib/rdoc/i18n/text.rb126
-rw-r--r--lib/rdoc/include.rb10
-rw-r--r--lib/rdoc/known_classes.rb73
-rw-r--r--lib/rdoc/markdown.rb16684
-rw-r--r--lib/rdoc/markdown/entities.rb2132
-rw-r--r--lib/rdoc/markdown/literals.rb416
-rw-r--r--lib/rdoc/markup.rb867
-rw-r--r--lib/rdoc/markup/attr_changer.rb23
-rw-r--r--lib/rdoc/markup/attr_span.rb36
-rw-r--r--lib/rdoc/markup/attribute_manager.rb409
-rw-r--r--lib/rdoc/markup/attributes.rb71
-rw-r--r--lib/rdoc/markup/blank_line.rb28
-rw-r--r--lib/rdoc/markup/block_quote.rb15
-rw-r--r--lib/rdoc/markup/document.rb165
-rw-r--r--lib/rdoc/markup/formatter.rb266
-rw-r--r--lib/rdoc/markup/hard_break.rb32
-rw-r--r--lib/rdoc/markup/heading.rb79
-rw-r--r--lib/rdoc/markup/include.rb43
-rw-r--r--lib/rdoc/markup/indented_paragraph.rb48
-rw-r--r--lib/rdoc/markup/list.rb102
-rw-r--r--lib/rdoc/markup/list_item.rb100
-rw-r--r--lib/rdoc/markup/paragraph.rb29
-rw-r--r--lib/rdoc/markup/parser.rb575
-rw-r--r--lib/rdoc/markup/pre_process.rb298
-rw-r--r--lib/rdoc/markup/raw.rb70
-rw-r--r--lib/rdoc/markup/regexp_handling.rb41
-rw-r--r--lib/rdoc/markup/rule.rb21
-rw-r--r--lib/rdoc/markup/table.rb47
-rw-r--r--lib/rdoc/markup/to_ansi.rb94
-rw-r--r--lib/rdoc/markup/to_bs.rb77
-rw-r--r--lib/rdoc/markup/to_html.rb444
-rw-r--r--lib/rdoc/markup/to_html_crossref.rb176
-rw-r--r--lib/rdoc/markup/to_html_snippet.rb285
-rw-r--r--lib/rdoc/markup/to_joined_paragraph.rb47
-rw-r--r--lib/rdoc/markup/to_label.rb75
-rw-r--r--lib/rdoc/markup/to_markdown.rb192
-rw-r--r--lib/rdoc/markup/to_rdoc.rb362
-rw-r--r--lib/rdoc/markup/to_table_of_contents.rb89
-rw-r--r--lib/rdoc/markup/to_test.rb70
-rw-r--r--lib/rdoc/markup/to_tt_only.rb121
-rw-r--r--lib/rdoc/markup/verbatim.rb84
-rw-r--r--lib/rdoc/meta_method.rb7
-rw-r--r--lib/rdoc/method_attr.rb419
-rw-r--r--lib/rdoc/mixin.rb121
-rw-r--r--lib/rdoc/normal_class.rb93
-rw-r--r--lib/rdoc/normal_module.rb74
-rw-r--r--lib/rdoc/options.rb1314
-rw-r--r--lib/rdoc/parser.rb277
-rw-r--r--lib/rdoc/parser/c.rb1237
-rw-r--r--lib/rdoc/parser/changelog.rb335
-rw-r--r--lib/rdoc/parser/markdown.rb24
-rw-r--r--lib/rdoc/parser/rd.rb23
-rw-r--r--lib/rdoc/parser/ripper_state_lex.rb590
-rw-r--r--lib/rdoc/parser/ruby.rb2345
-rw-r--r--lib/rdoc/parser/ruby_tools.rb167
-rw-r--r--lib/rdoc/parser/simple.rb61
-rw-r--r--lib/rdoc/parser/text.rb12
-rw-r--r--lib/rdoc/rd.rb100
-rw-r--r--lib/rdoc/rd/block_parser.rb1056
-rw-r--r--lib/rdoc/rd/inline.rb72
-rw-r--r--lib/rdoc/rd/inline_parser.rb1208
-rw-r--r--lib/rdoc/rdoc.gemspec249
-rw-r--r--lib/rdoc/rdoc.rb551
-rw-r--r--lib/rdoc/require.rb52
-rw-r--r--lib/rdoc/ri.rb21
-rw-r--r--lib/rdoc/ri/driver.rb1579
-rw-r--r--lib/rdoc/ri/formatter.rb6
-rw-r--r--lib/rdoc/ri/paths.rb171
-rw-r--r--lib/rdoc/ri/store.rb7
-rw-r--r--lib/rdoc/ri/task.rb71
-rw-r--r--lib/rdoc/rubygems_hook.rb248
-rw-r--r--lib/rdoc/servlet.rb451
-rw-r--r--lib/rdoc/single_class.rb26
-rw-r--r--lib/rdoc/stats.rb462
-rw-r--r--lib/rdoc/stats/normal.rb58
-rw-r--r--lib/rdoc/stats/quiet.rb60
-rw-r--r--lib/rdoc/stats/verbose.rb46
-rw-r--r--lib/rdoc/store.rb979
-rw-r--r--lib/rdoc/task.rb329
-rw-r--r--lib/rdoc/text.rb312
-rw-r--r--lib/rdoc/token_stream.rb119
-rw-r--r--lib/rdoc/tom_doc.rb263
-rw-r--r--lib/rdoc/top_level.rb289
-rw-r--r--lib/rdoc/version.rb8
-rw-r--r--lib/readbytes.rb36
-rw-r--r--lib/readline.gemspec33
-rw-r--r--lib/readline.rb7
-rw-r--r--lib/reline.rb586
-rw-r--r--lib/reline/ansi.rb350
-rw-r--r--lib/reline/config.rb395
-rw-r--r--lib/reline/general_io.rb103
-rw-r--r--lib/reline/history.rb76
-rw-r--r--lib/reline/key_actor.rb7
-rw-r--r--lib/reline/key_actor/base.rb19
-rw-r--r--lib/reline/key_actor/emacs.rb517
-rw-r--r--lib/reline/key_actor/vi_command.rb518
-rw-r--r--lib/reline/key_actor/vi_insert.rb517
-rw-r--r--lib/reline/key_stroke.rb105
-rw-r--r--lib/reline/kill_ring.rb125
-rw-r--r--lib/reline/line_editor.rb3345
-rw-r--r--lib/reline/reline.gemspec25
-rw-r--r--lib/reline/terminfo.rb134
-rw-r--r--lib/reline/unicode.rb665
-rw-r--r--lib/reline/unicode/east_asian_width.rb1164
-rw-r--r--lib/reline/version.rb3
-rw-r--r--lib/reline/windows.rb497
-rw-r--r--lib/resolv-replace.gemspec22
-rw-r--r--lib/resolv-replace.rb76
-rw-r--r--lib/resolv.gemspec22
-rw-r--r--lib/resolv.rb2910
-rw-r--r--lib/rinda/rinda.gemspec28
-rw-r--r--lib/rinda/rinda.rb327
-rw-r--r--lib/rinda/ring.rb484
-rw-r--r--lib/rinda/tuplespace.rb641
-rw-r--r--lib/ruby2_keywords.gemspec23
-rw-r--r--lib/rubygems.rb1357
-rw-r--r--lib/rubygems/available_set.rb164
-rw-r--r--lib/rubygems/basic_specification.rb345
-rw-r--r--lib/rubygems/bundler_version_finder.rb77
-rw-r--r--lib/rubygems/command.rb663
-rw-r--r--lib/rubygems/command_manager.rb235
-rw-r--r--lib/rubygems/commands/build_command.rb132
-rw-r--r--lib/rubygems/commands/cert_command.rb325
-rw-r--r--lib/rubygems/commands/check_command.rb92
-rw-r--r--lib/rubygems/commands/cleanup_command.rb189
-rw-r--r--lib/rubygems/commands/contents_command.rb188
-rw-r--r--lib/rubygems/commands/dependency_command.rb217
-rw-r--r--lib/rubygems/commands/environment_command.rb174
-rw-r--r--lib/rubygems/commands/fetch_command.rb75
-rw-r--r--lib/rubygems/commands/generate_index_command.rb85
-rw-r--r--lib/rubygems/commands/help_command.rb374
-rw-r--r--lib/rubygems/commands/info_command.rb38
-rw-r--r--lib/rubygems/commands/install_command.rb276
-rw-r--r--lib/rubygems/commands/list_command.rb41
-rw-r--r--lib/rubygems/commands/lock_command.rb108
-rw-r--r--lib/rubygems/commands/mirror_command.rb25
-rw-r--r--lib/rubygems/commands/open_command.rb84
-rw-r--r--lib/rubygems/commands/outdated_command.rb32
-rw-r--r--lib/rubygems/commands/owner_command.rb118
-rw-r--r--lib/rubygems/commands/pristine_command.rb196
-rw-r--r--lib/rubygems/commands/push_command.rb109
-rw-r--r--lib/rubygems/commands/query_command.rb43
-rw-r--r--lib/rubygems/commands/rdoc_command.rb95
-rw-r--r--lib/rubygems/commands/search_command.rb40
-rw-r--r--lib/rubygems/commands/server_command.rb25
-rw-r--r--lib/rubygems/commands/setup_command.rb679
-rw-r--r--lib/rubygems/commands/signin_command.rb33
-rw-r--r--lib/rubygems/commands/signout_command.rb31
-rw-r--r--lib/rubygems/commands/sources_command.rb226
-rw-r--r--lib/rubygems/commands/specification_command.rb151
-rw-r--r--lib/rubygems/commands/stale_command.rb39
-rw-r--r--lib/rubygems/commands/uninstall_command.rb197
-rw-r--r--lib/rubygems/commands/unpack_command.rb175
-rw-r--r--lib/rubygems/commands/update_command.rb352
-rw-r--r--lib/rubygems/commands/which_command.rb87
-rw-r--r--lib/rubygems/commands/yank_command.rb98
-rw-r--r--lib/rubygems/compatibility.rb40
-rw-r--r--lib/rubygems/config_file.rb508
-rw-r--r--lib/rubygems/core_ext/kernel_gem.rb75
-rw-r--r--lib/rubygems/core_ext/kernel_require.rb175
-rw-r--r--lib/rubygems/core_ext/kernel_warn.rb54
-rw-r--r--lib/rubygems/core_ext/tcpsocket_init.rb52
-rw-r--r--lib/rubygems/defaults.rb277
-rw-r--r--lib/rubygems/dependency.rb350
-rw-r--r--lib/rubygems/dependency_installer.rb339
-rw-r--r--lib/rubygems/dependency_list.rb242
-rw-r--r--lib/rubygems/deprecate.rb164
-rw-r--r--lib/rubygems/doctor.rb131
-rw-r--r--lib/rubygems/errors.rb179
-rw-r--r--lib/rubygems/exceptions.rb291
-rw-r--r--lib/rubygems/ext.rb18
-rw-r--r--lib/rubygems/ext/build_error.rb8
-rw-r--r--lib/rubygems/ext/builder.rb215
-rw-r--r--lib/rubygems/ext/cmake_builder.rb16
-rw-r--r--lib/rubygems/ext/configure_builder.rb20
-rw-r--r--lib/rubygems/ext/ext_conf_builder.rb98
-rw-r--r--lib/rubygems/ext/rake_builder.rb32
-rw-r--r--lib/rubygems/gem_runner.rb79
-rw-r--r--lib/rubygems/gemcutter_utilities.rb287
-rw-r--r--lib/rubygems/indexer.rb425
-rw-r--r--lib/rubygems/install_default_message.rb12
-rw-r--r--lib/rubygems/install_message.rb12
-rw-r--r--lib/rubygems/install_update_options.rb199
-rw-r--r--lib/rubygems/installer.rb976
-rw-r--r--lib/rubygems/installer_uninstaller_utils.rb29
-rw-r--r--lib/rubygems/local_remote_options.rb150
-rw-r--r--lib/rubygems/mock_gem_ui.rb85
-rw-r--r--lib/rubygems/name_tuple.rb120
-rw-r--r--lib/rubygems/openssl.rb7
-rw-r--r--lib/rubygems/optparse.rb3
-rw-r--r--lib/rubygems/optparse/.document1
-rw-r--r--lib/rubygems/optparse/lib/optionparser.rb2
-rw-r--r--lib/rubygems/optparse/lib/optparse.rb2230
-rw-r--r--lib/rubygems/optparse/lib/optparse/ac.rb54
-rw-r--r--lib/rubygems/optparse/lib/optparse/date.rb18
-rw-r--r--lib/rubygems/optparse/lib/optparse/kwargs.rb22
-rw-r--r--lib/rubygems/optparse/lib/optparse/shellwords.rb7
-rw-r--r--lib/rubygems/optparse/lib/optparse/time.rb11
-rw-r--r--lib/rubygems/optparse/lib/optparse/uri.rb7
-rw-r--r--lib/rubygems/optparse/lib/optparse/version.rb71
-rw-r--r--lib/rubygems/package.rb703
-rw-r--r--lib/rubygems/package/digest_io.rb62
-rw-r--r--lib/rubygems/package/file_source.rb31
-rw-r--r--lib/rubygems/package/io_source.rb47
-rw-r--r--lib/rubygems/package/old.rb168
-rw-r--r--lib/rubygems/package/source.rb3
-rw-r--r--lib/rubygems/package/tar_header.rb243
-rw-r--r--lib/rubygems/package/tar_reader.rb124
-rw-r--r--lib/rubygems/package/tar_reader/entry.rb167
-rw-r--r--lib/rubygems/package/tar_writer.rb328
-rw-r--r--lib/rubygems/package_task.rb122
-rw-r--r--lib/rubygems/path_support.rb85
-rw-r--r--lib/rubygems/platform.rb216
-rw-r--r--lib/rubygems/psych_additions.rb10
-rw-r--r--lib/rubygems/psych_tree.rb32
-rw-r--r--lib/rubygems/query_utils.rb353
-rw-r--r--lib/rubygems/rdoc.rb12
-rw-r--r--lib/rubygems/remote_fetcher.rb333
-rw-r--r--lib/rubygems/request.rb294
-rw-r--r--lib/rubygems/request/connection_pools.rb95
-rw-r--r--lib/rubygems/request/http_pool.rb46
-rw-r--r--lib/rubygems/request/https_pool.rb9
-rw-r--r--lib/rubygems/request_set.rb466
-rw-r--r--lib/rubygems/request_set/gem_dependency_api.rb844
-rw-r--r--lib/rubygems/request_set/lockfile.rb239
-rw-r--r--lib/rubygems/request_set/lockfile/parser.rb343
-rw-r--r--lib/rubygems/request_set/lockfile/tokenizer.rb112
-rw-r--r--lib/rubygems/requirement.rb293
-rw-r--r--lib/rubygems/resolver.rb347
-rw-r--r--lib/rubygems/resolver/activation_request.rb162
-rw-r--r--lib/rubygems/resolver/api_set.rb132
-rw-r--r--lib/rubygems/resolver/api_set/gem_parser.rb20
-rw-r--r--lib/rubygems/resolver/api_specification.rb104
-rw-r--r--lib/rubygems/resolver/best_set.rb76
-rw-r--r--lib/rubygems/resolver/composed_set.rb64
-rw-r--r--lib/rubygems/resolver/conflict.rb153
-rw-r--r--lib/rubygems/resolver/current_set.rb11
-rw-r--r--lib/rubygems/resolver/dependency_request.rb118
-rw-r--r--lib/rubygems/resolver/git_set.rb120
-rw-r--r--lib/rubygems/resolver/git_specification.rb56
-rw-r--r--lib/rubygems/resolver/index_set.rb78
-rw-r--r--lib/rubygems/resolver/index_specification.rb99
-rw-r--r--lib/rubygems/resolver/installed_specification.rb56
-rw-r--r--lib/rubygems/resolver/installer_set.rb274
-rw-r--r--lib/rubygems/resolver/local_specification.rb39
-rw-r--r--lib/rubygems/resolver/lock_set.rb80
-rw-r--r--lib/rubygems/resolver/lock_specification.rb85
-rw-r--r--lib/rubygems/resolver/molinillo.rb2
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo.rb11
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb57
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb88
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb255
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb36
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb66
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb62
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb63
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb61
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb126
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb46
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb36
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb164
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb143
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb6
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb112
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb67
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb839
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb46
-rw-r--r--lib/rubygems/resolver/molinillo/lib/molinillo/state.rb58
-rw-r--r--lib/rubygems/resolver/requirement_list.rb81
-rw-r--r--lib/rubygems/resolver/set.rb54
-rw-r--r--lib/rubygems/resolver/source_set.rb45
-rw-r--r--lib/rubygems/resolver/spec_specification.rb68
-rw-r--r--lib/rubygems/resolver/specification.rb125
-rw-r--r--lib/rubygems/resolver/stats.rb45
-rw-r--r--lib/rubygems/resolver/vendor_set.rb85
-rw-r--r--lib/rubygems/resolver/vendor_specification.rb22
-rw-r--r--lib/rubygems/s3_uri_signer.rb175
-rw-r--r--lib/rubygems/safe_yaml.rb57
-rw-r--r--lib/rubygems/security.rb641
-rw-r--r--lib/rubygems/security/policies.rb115
-rw-r--r--lib/rubygems/security/policy.rb291
-rw-r--r--lib/rubygems/security/signer.rb203
-rw-r--r--lib/rubygems/security/trust_dir.rb118
-rw-r--r--lib/rubygems/security_option.rb42
-rw-r--r--lib/rubygems/source.rb248
-rw-r--r--lib/rubygems/source/git.rb240
-rw-r--r--lib/rubygems/source/installed.rb38
-rw-r--r--lib/rubygems/source/local.rb131
-rw-r--r--lib/rubygems/source/lock.rb50
-rw-r--r--lib/rubygems/source/specific_file.rb71
-rw-r--r--lib/rubygems/source/vendor.rb25
-rw-r--r--lib/rubygems/source_list.rb150
-rw-r--r--lib/rubygems/spec_fetcher.rb261
-rw-r--r--lib/rubygems/specification.rb2671
-rw-r--r--lib/rubygems/specification_policy.rb486
-rw-r--r--lib/rubygems/ssl_certs/.document1
-rw-r--r--lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA.pem21
-rw-r--r--lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem21
-rw-r--r--lib/rubygems/stub_specification.rb212
-rw-r--r--lib/rubygems/text.rb86
-rw-r--r--lib/rubygems/tsort.rb3
-rw-r--r--lib/rubygems/tsort/.document1
-rw-r--r--lib/rubygems/tsort/lib/tsort.rb454
-rw-r--r--lib/rubygems/uninstaller.rb410
-rw-r--r--lib/rubygems/unknown_command_spell_checker.rb21
-rw-r--r--lib/rubygems/uri.rb111
-rw-r--r--lib/rubygems/uri_formatter.rb47
-rw-r--r--lib/rubygems/user_interaction.rb640
-rw-r--r--lib/rubygems/util.rb119
-rw-r--r--lib/rubygems/util/licenses.rb544
-rw-r--r--lib/rubygems/util/list.rb37
-rw-r--r--lib/rubygems/validator.rb143
-rw-r--r--lib/rubygems/version.rb408
-rw-r--r--lib/rubygems/version_option.rb82
-rw-r--r--lib/securerandom.gemspec22
-rw-r--r--lib/securerandom.rb92
-rw-r--r--lib/set.rb860
-rw-r--r--lib/set/set.gemspec23
-rw-r--r--lib/set/sorted_set.rb6
-rw-r--r--lib/shellwords.gemspec22
-rw-r--r--lib/shellwords.rb264
-rw-r--r--lib/singleton.rb201
-rw-r--r--lib/singleton/singleton.gemspec30
-rw-r--r--lib/sync.rb313
-rw-r--r--lib/telnet.rb696
-rw-r--r--lib/tempfile.gemspec24
-rw-r--r--lib/tempfile.rb420
-rw-r--r--lib/thread.rb233
-rw-r--r--lib/thwait.rb133
-rw-r--r--lib/time.gemspec24
-rw-r--r--lib/time.rb724
-rw-r--r--lib/timeout.rb149
-rw-r--r--lib/timeout/timeout.gemspec30
-rw-r--r--lib/tmpdir.gemspec26
-rw-r--r--lib/tmpdir.rb154
-rw-r--r--lib/tracer.rb162
-rw-r--r--lib/tsort.gemspec22
-rw-r--r--lib/tsort.rb452
-rw-r--r--lib/un.gemspec24
-rw-r--r--lib/un.rb437
-rw-r--r--lib/unicode_normalize/normalize.rb175
-rw-r--r--lib/unicode_normalize/tables.rb9075
-rw-r--r--lib/uri.rb103
-rw-r--r--lib/uri/common.rb699
-rw-r--r--lib/uri/file.rb94
-rw-r--r--lib/uri/ftp.rb267
-rw-r--r--lib/uri/generic.rb1577
-rw-r--r--lib/uri/http.rb125
-rw-r--r--lib/uri/https.rb23
-rw-r--r--lib/uri/ldap.rb261
-rw-r--r--lib/uri/ldaps.rb22
-rw-r--r--lib/uri/mailto.rb293
-rw-r--r--lib/uri/rfc2396_parser.rb539
-rw-r--r--lib/uri/rfc3986_parser.rb120
-rw-r--r--lib/uri/uri.gemspec31
-rw-r--r--lib/uri/version.rb6
-rw-r--r--lib/uri/ws.rb83
-rw-r--r--lib/uri/wss.rb23
-rw-r--r--lib/weakref.rb100
-rw-r--r--lib/weakref/weakref.gemspec34
-rw-r--r--lib/yaml.rb61
-rw-r--r--lib/yaml/dbm.rb280
-rw-r--r--lib/yaml/store.rb86
-rw-r--r--lib/yaml/yaml.gemspec23
-rwxr-xr-xlibexec/bundle49
-rwxr-xr-xlibexec/bundler4
-rwxr-xr-xlibexec/erb174
-rwxr-xr-xlibexec/irb11
-rwxr-xr-xlibexec/racc320
-rwxr-xr-xlibexec/rdoc44
-rwxr-xr-xlibexec/ri12
-rw-r--r--load.c1407
-rw-r--r--loadpath.c91
-rw-r--r--localeinit.c138
-rw-r--r--main.c54
-rw-r--r--man/erb.1160
-rw-r--r--man/goruby.139
-rw-r--r--man/index.txt25
-rw-r--r--man/irb.1229
-rw-r--r--man/ri.1247
-rw-r--r--man/ruby.1664
-rw-r--r--marshal.c2439
-rw-r--r--marshal.rb40
-rw-r--r--math.c1005
-rw-r--r--memory_view.c872
-rw-r--r--method.h253
-rw-r--r--mini_builtin.c97
-rw-r--r--miniinit.c51
-rw-r--r--misc/README11
-rwxr-xr-xmisc/expand_tabs.rb208
-rw-r--r--misc/inf-ruby.el325
-rwxr-xr-xmisc/lldb_cruby.py718
-rw-r--r--misc/lldb_disasm.py239
-rw-r--r--misc/lldb_yjit.py47
-rw-r--r--misc/rb_optparse.bash21
-rw-r--r--misc/rb_optparse.zsh39
-rw-r--r--misc/ruby-mode.el717
-rw-r--r--misc/ruby-style.el94
-rw-r--r--misc/rubydb2x.el104
-rw-r--r--misc/rubydb3x.el115
-rw-r--r--misc/test_lldb_cruby.rb40
-rwxr-xr-xmisc/test_yjit_asm.sh10
-rw-r--r--misc/yjit_asm_tests.c443
-rw-r--r--missing/acosh.c93
-rw-r--r--missing/alloca.c18
-rw-r--r--missing/cbrt.c11
-rw-r--r--missing/close.c72
-rw-r--r--missing/crt_externs.h8
-rw-r--r--missing/crypt.c1159
-rw-r--r--missing/crypt.h247
-rw-r--r--missing/des_tables.c1616
-rw-r--r--missing/dir.h63
-rw-r--r--missing/dtoa.c3469
-rw-r--r--missing/dup2.c61
-rw-r--r--missing/erf.c74
-rw-r--r--missing/explicit_bzero.c94
-rw-r--r--missing/ffs.c49
-rw-r--r--missing/file.h36
-rw-r--r--missing/finite.c6
-rw-r--r--missing/flock.c84
-rw-r--r--missing/hypot.c17
-rw-r--r--missing/isinf.c44
-rw-r--r--missing/isnan.c16
-rw-r--r--missing/langinfo.c148
-rw-r--r--missing/lgamma_r.c80
-rw-r--r--missing/memcmp.c18
-rw-r--r--missing/memmove.c38
-rw-r--r--missing/mkdir.c104
-rw-r--r--missing/mt19937.c158
-rw-r--r--missing/nan.c28
-rw-r--r--missing/nextafter.c77
-rw-r--r--missing/os2.c111
-rw-r--r--missing/procstat_vm.c85
-rw-r--r--missing/setproctitle.c175
-rw-r--r--missing/strcasecmp.c12
-rw-r--r--missing/strchr.c57
-rw-r--r--missing/strdup.c25
-rw-r--r--missing/strerror.c13
-rw-r--r--missing/strftime.c894
-rw-r--r--missing/strlcat.c56
-rw-r--r--missing/strlcpy.c51
-rw-r--r--missing/strncasecmp.c18
-rw-r--r--missing/strstr.c82
-rw-r--r--missing/strtod.c266
-rw-r--r--missing/strtol.c84
-rw-r--r--missing/strtoul.c184
-rw-r--r--missing/tgamma.c82
-rw-r--r--missing/vsnprintf.c1128
-rw-r--r--missing/x68.c36
-rw-r--r--missing/x86_64-chkstk.S10
-rw-r--r--mjit.c1015
-rw-r--r--mjit.h231
-rw-r--r--mjit_compile.c596
-rw-r--r--mjit_worker.c1522
-rw-r--r--mkconfig.rb92
-rw-r--r--nilclass.rb25
-rw-r--r--node.c1475
-rw-r--r--node.h530
-rw-r--r--numeric.c6613
-rw-r--r--numeric.rb332
-rw-r--r--object.c4804
-rw-r--r--pack.c2018
-rw-r--r--pack.rb311
-rw-r--r--parse.y15309
-rw-r--r--prec.c81
-rw-r--r--prelude.rb22
-rw-r--r--probes.d223
-rw-r--r--probes_helper.h44
-rw-r--r--proc.c4367
-rw-r--r--process.c9430
-rw-r--r--ractor.c3261
-rw-r--r--ractor.rb838
-rw-r--r--ractor_core.h346
-rw-r--r--random.c1880
-rw-r--r--range.c2343
-rw-r--r--rational.c2847
-rw-r--r--re.c4364
-rw-r--r--re.h42
-rw-r--r--regcomp.c6764
-rw-r--r--regenc.c1012
-rw-r--r--regenc.h254
-rw-r--r--regerror.c387
-rw-r--r--regex.c4286
-rw-r--r--regex.h217
-rw-r--r--regexec.c4621
-rw-r--r--regint.h942
-rw-r--r--regparse.c6639
-rw-r--r--regparse.h370
-rw-r--r--regsyntax.c388
-rw-r--r--ruby-runner.c98
-rw-r--r--ruby.1291
-rw-r--r--ruby.c3077
-rw-r--r--ruby.h560
-rw-r--r--ruby_assert.h14
-rw-r--r--ruby_atomic.h23
-rw-r--r--rubyio.h63
-rw-r--r--rubysig.h50
-rw-r--r--rubystub.c60
-rw-r--r--rubytest.rb37
-rw-r--r--sample/README17
-rw-r--r--sample/benchmark.rb19
-rw-r--r--sample/biorhythm.rb161
-rw-r--r--sample/cal.rb263
-rw-r--r--sample/cbreak.rb12
-rw-r--r--sample/cgi-session-pstore.rb11
-rw-r--r--sample/clnt.rb12
-rw-r--r--sample/coverage.rb62
-rw-r--r--sample/dbmtest.rb14
-rw-r--r--sample/delegate.rb31
-rw-r--r--sample/dir.rb6
-rw-r--r--sample/drb/README.ja.rdoc59
-rw-r--r--sample/drb/README.rdoc56
-rw-r--r--sample/drb/acl.rb15
-rw-r--r--sample/drb/darray.rb12
-rw-r--r--sample/drb/darrayc.rb47
-rw-r--r--sample/drb/dbiff.rb51
-rw-r--r--sample/drb/dcdbiff.rb43
-rw-r--r--sample/drb/dchatc.rb41
-rw-r--r--sample/drb/dchats.rb69
-rw-r--r--sample/drb/dhasen.rb41
-rw-r--r--sample/drb/dhasenc.rb14
-rw-r--r--sample/drb/dlogc.rb16
-rw-r--r--sample/drb/dlogd.rb38
-rw-r--r--sample/drb/dqin.rb13
-rw-r--r--sample/drb/dqlib.rb14
-rw-r--r--sample/drb/dqout.rb14
-rw-r--r--sample/drb/dqueue.rb11
-rw-r--r--sample/drb/drbc.rb45
-rw-r--r--sample/drb/drbch.rb48
-rw-r--r--sample/drb/drbm.rb60
-rw-r--r--sample/drb/drbmc.rb22
-rw-r--r--sample/drb/drbs-acl.rb51
-rw-r--r--sample/drb/drbs.rb64
-rw-r--r--sample/drb/drbssl_c.rb19
-rw-r--r--sample/drb/drbssl_s.rb31
-rw-r--r--sample/drb/extserv_test.rb80
-rw-r--r--sample/drb/gw_ct.rb29
-rw-r--r--sample/drb/gw_cu.rb28
-rw-r--r--sample/drb/gw_s.rb10
-rw-r--r--sample/drb/holderc.rb22
-rw-r--r--sample/drb/holders.rb63
-rw-r--r--sample/drb/http0.rb77
-rw-r--r--sample/drb/http0serv.rb120
-rw-r--r--sample/drb/name.rb117
-rw-r--r--sample/drb/namec.rb36
-rw-r--r--sample/drb/old_tuplespace.rb212
-rw-r--r--sample/drb/rinda_ts.rb7
-rw-r--r--sample/drb/rindac.rb17
-rw-r--r--sample/drb/rindas.rb18
-rw-r--r--sample/drb/ring_echo.rb29
-rw-r--r--sample/drb/ring_inspect.rb30
-rw-r--r--sample/drb/ring_place.rb25
-rw-r--r--sample/drb/simpletuple.rb89
-rw-r--r--sample/drb/speedc.rb21
-rw-r--r--sample/drb/speeds.rb31
-rw-r--r--sample/dualstack-fetch.rb48
-rw-r--r--sample/dualstack-httpd.rb54
-rw-r--r--sample/eval.rb21
-rw-r--r--sample/export.rb2
-rw-r--r--sample/exyacc.rb34
-rw-r--r--sample/fact.rb9
-rw-r--r--sample/fib.awk8
-rw-r--r--sample/fib.pl19
-rw-r--r--sample/fib.py2
-rw-r--r--sample/fib.scm6
-rw-r--r--sample/freq.rb13
-rw-r--r--sample/from.rb161
-rw-r--r--sample/fullpath.rb16
-rw-r--r--sample/getopts.test36
-rw-r--r--sample/goodfriday.rb48
-rw-r--r--sample/iseq_loader.rb243
-rw-r--r--sample/list.rb6
-rw-r--r--sample/list2.rb2
-rw-r--r--sample/list3.rb4
-rw-r--r--sample/logger/app.rb46
-rw-r--r--sample/logger/log.rb27
-rw-r--r--sample/logger/shifting.rb26
-rw-r--r--[-rwxr-xr-x]sample/mine.rb41
-rw-r--r--sample/mkproto.rb30
-rw-r--r--sample/mpart.rb2
-rw-r--r--sample/mrshtest.rb14
-rw-r--r--sample/net-imap.rb167
-rw-r--r--sample/observ.rb11
-rw-r--r--sample/occur.pl8
-rw-r--r--sample/occur.rb6
-rw-r--r--sample/occur2.rb16
-rw-r--r--sample/open3.rb12
-rw-r--r--sample/openssl/c_rehash.rb173
-rw-r--r--sample/openssl/cert2text.rb26
-rw-r--r--sample/openssl/certstore.rb158
-rw-r--r--sample/openssl/cipher.rb54
-rw-r--r--sample/openssl/crlstore.rb122
-rw-r--r--sample/openssl/echo_cli.rb44
-rw-r--r--sample/openssl/echo_svr.rb65
-rw-r--r--sample/openssl/gen_csr.rb49
-rw-r--r--sample/openssl/smime_read.rb22
-rw-r--r--sample/openssl/smime_write.rb22
-rw-r--r--sample/openssl/wget.rb34
-rwxr-xr-xsample/optparse/opttest.rb125
-rwxr-xr-xsample/optparse/subcommand.rb19
-rw-r--r--sample/philos.rb9
-rw-r--r--sample/pi.rb2
-rw-r--r--sample/pstore.rb19
-rw-r--r--sample/pty/expect_sample.rb58
-rw-r--r--sample/pty/script.rb37
-rw-r--r--sample/pty/shl.rb93
-rw-r--r--sample/rbc.rb1015
-rw-r--r--sample/rcs.awk54
-rw-r--r--sample/rcs.rb20
-rw-r--r--sample/rdoc/markup/rdoc2latex.rb15
-rw-r--r--sample/rdoc/markup/sample.rb40
-rw-r--r--sample/regx.rb23
-rw-r--r--sample/rename.rb297
-rw-r--r--sample/rinda-ring.rb22
-rw-r--r--sample/ripper/ruby2html.rb116
-rw-r--r--sample/ripper/strip-comment.rb19
-rw-r--r--sample/sieve.rb2
-rw-r--r--sample/simple-bench.rb140
-rw-r--r--sample/svr.rb14
-rw-r--r--sample/tempfile.rb8
-rw-r--r--sample/test.rb1138
-rw-r--r--sample/time.rb16
-rw-r--r--sample/timeout.rb42
-rw-r--r--sample/trick2013/README.md15
-rw-r--r--sample/trick2013/kinaba/authors.markdown3
-rw-r--r--sample/trick2013/kinaba/entry.rb1
-rw-r--r--sample/trick2013/kinaba/remarks.markdown37
-rw-r--r--sample/trick2013/mame/authors.markdown3
-rw-r--r--sample/trick2013/mame/entry.rb97
-rw-r--r--sample/trick2013/mame/remarks.markdown47
-rw-r--r--sample/trick2013/shinh/authors.markdown2
-rw-r--r--sample/trick2013/shinh/entry.rb10
-rw-r--r--sample/trick2013/shinh/remarks.markdown4
-rw-r--r--sample/trick2013/yhara/authors.markdown3
-rw-r--r--sample/trick2013/yhara/entry.rb28
-rw-r--r--sample/trick2013/yhara/remarks.en.markdown23
-rw-r--r--sample/trick2013/yhara/remarks.markdown24
-rw-r--r--sample/trick2015/README.md16
-rw-r--r--sample/trick2015/eregon/authors.markdown3
-rw-r--r--sample/trick2015/eregon/entry.rb16
-rw-r--r--sample/trick2015/eregon/remarks.markdown70
-rw-r--r--sample/trick2015/kinaba/authors.markdown4
-rw-r--r--sample/trick2015/kinaba/entry.rb150
-rw-r--r--sample/trick2015/kinaba/remarks.markdown85
-rw-r--r--sample/trick2015/ksk_1/authors.markdown3
-rw-r--r--sample/trick2015/ksk_1/entry.rb1
-rw-r--r--sample/trick2015/ksk_1/remarks.markdown120
-rw-r--r--sample/trick2015/ksk_2/abnormal.cnf6
-rw-r--r--sample/trick2015/ksk_2/authors.markdown3
-rw-r--r--sample/trick2015/ksk_2/entry.rb1
-rw-r--r--sample/trick2015/ksk_2/quinn.cnf21
-rw-r--r--sample/trick2015/ksk_2/remarks.markdown204
-rw-r--r--sample/trick2015/ksk_2/sample.cnf9
-rw-r--r--sample/trick2015/ksk_2/uf20-01.cnf99
-rw-r--r--sample/trick2015/ksk_2/unsat.cnf11
-rw-r--r--sample/trick2015/monae/authors.markdown1
-rw-r--r--sample/trick2015/monae/entry.rb26
-rw-r--r--sample/trick2015/monae/remarks.markdown25
-rw-r--r--sample/trick2018/01-kinaba/authors.markdown3
-rw-r--r--sample/trick2018/01-kinaba/entry.rb8
-rw-r--r--sample/trick2018/01-kinaba/remarks.markdown55
-rw-r--r--sample/trick2018/02-mame/authors.markdown3
-rw-r--r--sample/trick2018/02-mame/entry.rb15
-rw-r--r--sample/trick2018/02-mame/remarks.markdown16
-rw-r--r--sample/trick2018/03-tompng/Gemfile2
-rw-r--r--sample/trick2018/03-tompng/Gemfile.lock13
-rw-r--r--sample/trick2018/03-tompng/authors.markdown3
-rw-r--r--sample/trick2018/03-tompng/entry.rb31
-rw-r--r--sample/trick2018/03-tompng/output.txt44
-rw-r--r--sample/trick2018/03-tompng/remarks.markdown19
-rw-r--r--sample/trick2018/03-tompng/trick.pngbin5661 -> 0 bytes-rw-r--r--sample/trick2018/04-colin/authors.markdown3
-rw-r--r--sample/trick2018/04-colin/entry.rb2
-rw-r--r--sample/trick2018/04-colin/remarks.markdown62
-rw-r--r--sample/trick2018/05-tompng/authors.markdown3
-rw-r--r--sample/trick2018/05-tompng/entry.rb41
-rw-r--r--sample/trick2018/05-tompng/preview_of_output.pngbin66800 -> 0 bytes-rw-r--r--sample/trick2018/05-tompng/remarks.markdown31
-rw-r--r--sample/trick2018/README.md16
-rw-r--r--sample/trojan.rb4
-rw-r--r--sample/tsvr.rb17
-rw-r--r--sample/uumerge.rb12
-rw-r--r--sample/weakref.rb9
-rw-r--r--scheduler.c316
-rw-r--r--signal.c1771
-rw-r--r--siphash.c489
-rw-r--r--siphash.h48
-rw-r--r--sparc.c40
-rw-r--r--spec/README.md130
-rw-r--r--spec/bundler/bundler/build_metadata_spec.rb49
-rw-r--r--spec/bundler/bundler/bundler_spec.rb441
-rw-r--r--spec/bundler/bundler/cli_spec.rb216
-rw-r--r--spec/bundler/bundler/compact_index_client/updater_spec.rb59
-rw-r--r--spec/bundler/bundler/definition_spec.rb299
-rw-r--r--spec/bundler/bundler/dep_proxy_spec.rb32
-rw-r--r--spec/bundler/bundler/digest_spec.rb17
-rw-r--r--spec/bundler/bundler/dsl_spec.rb300
-rw-r--r--spec/bundler/bundler/endpoint_specification_spec.rb55
-rw-r--r--spec/bundler/bundler/env_spec.rb240
-rw-r--r--spec/bundler/bundler/environment_preserver_spec.rb79
-rw-r--r--spec/bundler/bundler/fetcher/base_spec.rb76
-rw-r--r--spec/bundler/bundler/fetcher/compact_index_spec.rb109
-rw-r--r--spec/bundler/bundler/fetcher/dependency_spec.rb287
-rw-r--r--spec/bundler/bundler/fetcher/downloader_spec.rb265
-rw-r--r--spec/bundler/bundler/fetcher/index_spec.rb99
-rw-r--r--spec/bundler/bundler/fetcher_spec.rb162
-rw-r--r--spec/bundler/bundler/friendly_errors_spec.rb248
-rw-r--r--spec/bundler/bundler/gem_helper_spec.rb435
-rw-r--r--spec/bundler/bundler/gem_version_promoter_spec.rb179
-rw-r--r--spec/bundler/bundler/index_spec.rb36
-rw-r--r--spec/bundler/bundler/installer/gem_installer_spec.rb40
-rw-r--r--spec/bundler/bundler/installer/parallel_installer_spec.rb80
-rw-r--r--spec/bundler/bundler/installer/spec_installation_spec.rb66
-rw-r--r--spec/bundler/bundler/lockfile_parser_spec.rb153
-rw-r--r--spec/bundler/bundler/mirror_spec.rb331
-rw-r--r--spec/bundler/bundler/plugin/api/source_spec.rb88
-rw-r--r--spec/bundler/bundler/plugin/api_spec.rb83
-rw-r--r--spec/bundler/bundler/plugin/dsl_spec.rb38
-rw-r--r--spec/bundler/bundler/plugin/events_spec.rb22
-rw-r--r--spec/bundler/bundler/plugin/index_spec.rb204
-rw-r--r--spec/bundler/bundler/plugin/installer_spec.rb131
-rw-r--r--spec/bundler/bundler/plugin/source_list_spec.rb25
-rw-r--r--spec/bundler/bundler/plugin_spec.rb337
-rw-r--r--spec/bundler/bundler/remote_specification_spec.rb187
-rw-r--r--spec/bundler/bundler/retry_spec.rb81
-rw-r--r--spec/bundler/bundler/ruby_dsl_spec.rb95
-rw-r--r--spec/bundler/bundler/ruby_version_spec.rb528
-rw-r--r--spec/bundler/bundler/rubygems_integration_spec.rb100
-rw-r--r--spec/bundler/bundler/settings/validator_spec.rb111
-rw-r--r--spec/bundler/bundler/settings_spec.rb337
-rw-r--r--spec/bundler/bundler/shared_helpers_spec.rb497
-rw-r--r--spec/bundler/bundler/source/git/git_proxy_spec.rb171
-rw-r--r--spec/bundler/bundler/source/git_spec.rb73
-rw-r--r--spec/bundler/bundler/source/path_spec.rb31
-rw-r--r--spec/bundler/bundler/source/rubygems/remote_spec.rb172
-rw-r--r--spec/bundler/bundler/source/rubygems_spec.rb47
-rw-r--r--spec/bundler/bundler/source_list_spec.rb459
-rw-r--r--spec/bundler/bundler/source_spec.rb200
-rw-r--r--spec/bundler/bundler/spec_set_spec.rb77
-rw-r--r--spec/bundler/bundler/stub_specification_spec.rb47
-rw-r--r--spec/bundler/bundler/ui/shell_spec.rb60
-rw-r--r--spec/bundler/bundler/ui_spec.rb41
-rw-r--r--spec/bundler/bundler/uri_credentials_filter_spec.rb127
-rw-r--r--spec/bundler/bundler/vendored_persistent_spec.rb77
-rw-r--r--spec/bundler/bundler/version_ranges_spec.rb40
-rw-r--r--spec/bundler/bundler/worker_spec.rb69
-rw-r--r--spec/bundler/bundler/yaml_serializer_spec.rb194
-rw-r--r--spec/bundler/cache/cache_path_spec.rb32
-rw-r--r--spec/bundler/cache/gems_spec.rb315
-rw-r--r--spec/bundler/cache/git_spec.rb221
-rw-r--r--spec/bundler/cache/path_spec.rb169
-rw-r--r--spec/bundler/cache/platform_spec.rb49
-rw-r--r--spec/bundler/commands/add_spec.rb296
-rw-r--r--spec/bundler/commands/binstubs_spec.rb505
-rw-r--r--spec/bundler/commands/cache_spec.rb428
-rw-r--r--spec/bundler/commands/check_spec.rb491
-rw-r--r--spec/bundler/commands/clean_spec.rb916
-rw-r--r--spec/bundler/commands/config_spec.rb544
-rw-r--r--spec/bundler/commands/console_spec.rb141
-rw-r--r--spec/bundler/commands/doctor_spec.rb146
-rw-r--r--spec/bundler/commands/exec_spec.rb1227
-rw-r--r--spec/bundler/commands/fund_spec.rb82
-rw-r--r--spec/bundler/commands/help_spec.rb90
-rw-r--r--spec/bundler/commands/info_spec.rb224
-rw-r--r--spec/bundler/commands/init_spec.rb171
-rw-r--r--spec/bundler/commands/inject_spec.rb117
-rw-r--r--spec/bundler/commands/install_spec.rb961
-rw-r--r--spec/bundler/commands/issue_spec.rb16
-rw-r--r--spec/bundler/commands/licenses_spec.rb37
-rw-r--r--spec/bundler/commands/list_spec.rb195
-rw-r--r--spec/bundler/commands/lock_spec.rb562
-rw-r--r--spec/bundler/commands/newgem_spec.rb1509
-rw-r--r--spec/bundler/commands/open_spec.rb118
-rw-r--r--spec/bundler/commands/outdated_spec.rb1344
-rw-r--r--spec/bundler/commands/post_bundle_message_spec.rb205
-rw-r--r--spec/bundler/commands/pristine_spec.rb221
-rw-r--r--spec/bundler/commands/remove_spec.rb700
-rw-r--r--spec/bundler/commands/show_spec.rb224
-rw-r--r--spec/bundler/commands/update_spec.rb1331
-rw-r--r--spec/bundler/commands/version_spec.rb47
-rw-r--r--spec/bundler/commands/viz_spec.rb146
-rw-r--r--spec/bundler/install/allow_offline_install_spec.rb96
-rw-r--r--spec/bundler/install/binstubs_spec.rb51
-rw-r--r--spec/bundler/install/bundler_spec.rb239
-rw-r--r--spec/bundler/install/deploy_spec.rb473
-rw-r--r--spec/bundler/install/failure_spec.rb51
-rw-r--r--spec/bundler/install/gemfile/eval_gemfile_spec.rb122
-rw-r--r--spec/bundler/install/gemfile/gemspec_spec.rb625
-rw-r--r--spec/bundler/install/gemfile/git_spec.rb1570
-rw-r--r--spec/bundler/install/gemfile/groups_spec.rb412
-rw-r--r--spec/bundler/install/gemfile/install_if_spec.rb44
-rw-r--r--spec/bundler/install/gemfile/lockfile_spec.rb48
-rw-r--r--spec/bundler/install/gemfile/path_spec.rb893
-rw-r--r--spec/bundler/install/gemfile/platform_spec.rb531
-rw-r--r--spec/bundler/install/gemfile/ruby_spec.rb109
-rw-r--r--spec/bundler/install/gemfile/sources_spec.rb1446
-rw-r--r--spec/bundler/install/gemfile/specific_platform_spec.rb366
-rw-r--r--spec/bundler/install/gemfile_spec.rb118
-rw-r--r--spec/bundler/install/gems/compact_index_spec.rb944
-rw-r--r--spec/bundler/install/gems/dependency_api_spec.rb770
-rw-r--r--spec/bundler/install/gems/env_spec.rb107
-rw-r--r--spec/bundler/install/gems/flex_spec.rb335
-rw-r--r--spec/bundler/install/gems/fund_spec.rb137
-rw-r--r--spec/bundler/install/gems/mirror_spec.rb39
-rw-r--r--spec/bundler/install/gems/native_extensions_spec.rb184
-rw-r--r--spec/bundler/install/gems/post_install_spec.rb150
-rw-r--r--spec/bundler/install/gems/resolving_spec.rb349
-rw-r--r--spec/bundler/install/gems/standalone_spec.rb431
-rw-r--r--spec/bundler/install/gems/sudo_spec.rb205
-rw-r--r--spec/bundler/install/gems/win32_spec.rb25
-rw-r--r--spec/bundler/install/gemspecs_spec.rb160
-rw-r--r--spec/bundler/install/git_spec.rb102
-rw-r--r--spec/bundler/install/global_cache_spec.rb254
-rw-r--r--spec/bundler/install/path_spec.rb226
-rw-r--r--spec/bundler/install/prereleases_spec.rb54
-rw-r--r--spec/bundler/install/process_lock_spec.rb35
-rw-r--r--spec/bundler/install/redownload_spec.rb91
-rw-r--r--spec/bundler/install/security_policy_spec.rb72
-rw-r--r--spec/bundler/install/yanked_spec.rb104
-rw-r--r--spec/bundler/lock/git_spec.rb35
-rw-r--r--spec/bundler/lock/lockfile_spec.rb1359
-rw-r--r--spec/bundler/other/cli_dispatch_spec.rb20
-rw-r--r--spec/bundler/other/ext_spec.rb61
-rw-r--r--spec/bundler/other/major_deprecation_spec.rb650
-rw-r--r--spec/bundler/other/platform_spec.rb1288
-rw-r--r--spec/bundler/plugins/command_spec.rb78
-rw-r--r--spec/bundler/plugins/hook_spec.rb109
-rw-r--r--spec/bundler/plugins/install_spec.rb353
-rw-r--r--spec/bundler/plugins/list_spec.rb60
-rw-r--r--spec/bundler/plugins/source/example_spec.rb458
-rw-r--r--spec/bundler/plugins/source_spec.rb111
-rw-r--r--spec/bundler/plugins/uninstall_spec.rb49
-rw-r--r--spec/bundler/quality_es_spec.rb61
-rw-r--r--spec/bundler/quality_spec.rb247
-rw-r--r--spec/bundler/realworld/dependency_api_spec.rb46
-rw-r--r--spec/bundler/realworld/double_check_spec.rb40
-rw-r--r--spec/bundler/realworld/edgecases_spec.rb527
-rw-r--r--spec/bundler/realworld/ffi_spec.rb57
-rw-r--r--spec/bundler/realworld/fixtures/warbler/.gitignore1
-rw-r--r--spec/bundler/realworld/fixtures/warbler/Gemfile7
-rw-r--r--spec/bundler/realworld/fixtures/warbler/Gemfile.lock30
-rw-r--r--spec/bundler/realworld/fixtures/warbler/bin/warbler-example.rb3
-rw-r--r--spec/bundler/realworld/fixtures/warbler/demo/demo.gemspec10
-rw-r--r--spec/bundler/realworld/gemfile_source_header_spec.rb53
-rw-r--r--spec/bundler/realworld/mirror_probe_spec.rb131
-rw-r--r--spec/bundler/realworld/parallel_spec.rb66
-rw-r--r--spec/bundler/realworld/slow_perf_spec.rb22
-rw-r--r--spec/bundler/resolver/basic_spec.rb308
-rw-r--r--spec/bundler/resolver/platform_spec.rb360
-rw-r--r--spec/bundler/runtime/executable_spec.rb169
-rw-r--r--spec/bundler/runtime/gem_tasks_spec.rb106
-rw-r--r--spec/bundler/runtime/inline_spec.rb420
-rw-r--r--spec/bundler/runtime/load_spec.rb113
-rw-r--r--spec/bundler/runtime/platform_spec.rb311
-rw-r--r--spec/bundler/runtime/require_spec.rb467
-rw-r--r--spec/bundler/runtime/self_management_spec.rb132
-rw-r--r--spec/bundler/runtime/setup_spec.rb1538
-rw-r--r--spec/bundler/runtime/with_unbundled_env_spec.rb302
-rw-r--r--spec/bundler/spec_helper.rb119
-rw-r--r--spec/bundler/support/api_request_limit_hax.rb16
-rw-r--r--spec/bundler/support/artifice/compact_index.rb120
-rw-r--r--spec/bundler/support/artifice/compact_index_api_missing.rb18
-rw-r--r--spec/bundler/support/artifice/compact_index_basic_authentication.rb15
-rw-r--r--spec/bundler/support/artifice/compact_index_checksum_mismatch.rb16
-rw-r--r--spec/bundler/support/artifice/compact_index_concurrent_download.rb32
-rw-r--r--spec/bundler/support/artifice/compact_index_creds_diff_host.rb39
-rw-r--r--spec/bundler/support/artifice/compact_index_extra.rb37
-rw-r--r--spec/bundler/support/artifice/compact_index_extra_api.rb52
-rw-r--r--spec/bundler/support/artifice/compact_index_extra_api_missing.rb17
-rw-r--r--spec/bundler/support/artifice/compact_index_extra_missing.rb17
-rw-r--r--spec/bundler/support/artifice/compact_index_forbidden.rb13
-rw-r--r--spec/bundler/support/artifice/compact_index_host_redirect.rb21
-rw-r--r--spec/bundler/support/artifice/compact_index_no_gem.rb13
-rw-r--r--spec/bundler/support/artifice/compact_index_partial_update.rb38
-rw-r--r--spec/bundler/support/artifice/compact_index_partial_update_no_etag_not_incremental.rb40
-rw-r--r--spec/bundler/support/artifice/compact_index_range_not_satisfiable.rb34
-rw-r--r--spec/bundler/support/artifice/compact_index_rate_limited.rb48
-rw-r--r--spec/bundler/support/artifice/compact_index_redirects.rb21
-rw-r--r--spec/bundler/support/artifice/compact_index_strict_basic_authentication.rb20
-rw-r--r--spec/bundler/support/artifice/compact_index_wrong_dependencies.rb17
-rw-r--r--spec/bundler/support/artifice/compact_index_wrong_gem_checksum.rb20
-rw-r--r--spec/bundler/support/artifice/endpoint.rb115
-rw-r--r--spec/bundler/support/artifice/endpoint_500.rb18
-rw-r--r--spec/bundler/support/artifice/endpoint_api_forbidden.rb13
-rw-r--r--spec/bundler/support/artifice/endpoint_api_missing.rb18
-rw-r--r--spec/bundler/support/artifice/endpoint_basic_authentication.rb15
-rw-r--r--spec/bundler/support/artifice/endpoint_creds_diff_host.rb39
-rw-r--r--spec/bundler/support/artifice/endpoint_extra.rb33
-rw-r--r--spec/bundler/support/artifice/endpoint_extra_api.rb34
-rw-r--r--spec/bundler/support/artifice/endpoint_extra_missing.rb17
-rw-r--r--spec/bundler/support/artifice/endpoint_fallback.rb19
-rw-r--r--spec/bundler/support/artifice/endpoint_host_redirect.rb17
-rw-r--r--spec/bundler/support/artifice/endpoint_marshal_fail.rb13
-rw-r--r--spec/bundler/support/artifice/endpoint_marshal_fail_basic_authentication.rb15
-rw-r--r--spec/bundler/support/artifice/endpoint_mirror_source.rb15
-rw-r--r--spec/bundler/support/artifice/endpoint_redirect.rb17
-rw-r--r--spec/bundler/support/artifice/endpoint_strict_basic_authentication.rb20
-rw-r--r--spec/bundler/support/artifice/endpoint_timeout.rb15
-rw-r--r--spec/bundler/support/artifice/fail.rb34
-rw-r--r--spec/bundler/support/artifice/vcr.rb165
-rw-r--r--spec/bundler/support/artifice/windows.rb46
-rw-r--r--spec/bundler/support/build_metadata.rb49
-rw-r--r--spec/bundler/support/builders.rb683
-rw-r--r--spec/bundler/support/bundle.rb8
-rw-r--r--spec/bundler/support/command_execution.rb33
-rw-r--r--spec/bundler/support/filters.rb41
-rw-r--r--spec/bundler/support/hax.rb44
-rw-r--r--spec/bundler/support/helpers.rb579
-rw-r--r--spec/bundler/support/indexes.rb424
-rw-r--r--spec/bundler/support/matchers.rb225
-rw-r--r--spec/bundler/support/path.rb313
-rw-r--r--spec/bundler/support/permissions.rb12
-rw-r--r--spec/bundler/support/platforms.rb104
-rw-r--r--spec/bundler/support/rubygems_ext.rb159
-rw-r--r--spec/bundler/support/rubygems_version_manager.rb120
-rw-r--r--spec/bundler/support/silent_logger.rb10
-rw-r--r--spec/bundler/support/sudo.rb18
-rw-r--r--spec/bundler/support/switch_rubygems.rb4
-rw-r--r--spec/bundler/support/the_bundle.rb35
-rw-r--r--spec/bundler/update/gemfile_spec.rb47
-rw-r--r--spec/bundler/update/gems/fund_spec.rb50
-rw-r--r--spec/bundler/update/gems/post_install_spec.rb76
-rw-r--r--spec/bundler/update/git_spec.rb332
-rw-r--r--spec/bundler/update/path_spec.rb19
-rw-r--r--spec/bundler/update/redownload_spec.rb34
-rw-r--r--spec/default.mspec65
-rw-r--r--spec/mspec/.rspec1
-rw-r--r--spec/mspec/Gemfile4
-rw-r--r--spec/mspec/Gemfile.lock26
-rw-r--r--spec/mspec/LICENSE22
-rw-r--r--spec/mspec/README.md84
-rw-r--r--spec/mspec/Rakefile6
-rwxr-xr-xspec/mspec/bin/mkspec7
-rwxr-xr-xspec/mspec/bin/mkspec.bat1
-rwxr-xr-xspec/mspec/bin/mspec7
-rwxr-xr-xspec/mspec/bin/mspec-ci7
-rwxr-xr-xspec/mspec/bin/mspec-ci.bat1
-rwxr-xr-xspec/mspec/bin/mspec-run7
-rwxr-xr-xspec/mspec/bin/mspec-run.bat1
-rwxr-xr-xspec/mspec/bin/mspec-tag7
-rwxr-xr-xspec/mspec/bin/mspec-tag.bat1
-rwxr-xr-xspec/mspec/bin/mspec.bat1
-rw-r--r--spec/mspec/lib/mspec.rb8
-rwxr-xr-xspec/mspec/lib/mspec/commands/mkspec.rb155
-rw-r--r--spec/mspec/lib/mspec/commands/mspec-ci.rb79
-rw-r--r--spec/mspec/lib/mspec/commands/mspec-run.rb87
-rw-r--r--spec/mspec/lib/mspec/commands/mspec-tag.rb133
-rwxr-xr-xspec/mspec/lib/mspec/commands/mspec.rb118
-rw-r--r--spec/mspec/lib/mspec/expectations.rb2
-rw-r--r--spec/mspec/lib/mspec/expectations/expectations.rb35
-rw-r--r--spec/mspec/lib/mspec/expectations/should.rb41
-rw-r--r--spec/mspec/lib/mspec/guards.rb11
-rw-r--r--spec/mspec/lib/mspec/guards/block_device.rb16
-rw-r--r--spec/mspec/lib/mspec/guards/bug.rb29
-rw-r--r--spec/mspec/lib/mspec/guards/conflict.rb23
-rw-r--r--spec/mspec/lib/mspec/guards/endian.rb25
-rw-r--r--spec/mspec/lib/mspec/guards/feature.rb45
-rw-r--r--spec/mspec/lib/mspec/guards/guard.rb141
-rw-r--r--spec/mspec/lib/mspec/guards/platform.rb100
-rw-r--r--spec/mspec/lib/mspec/guards/quarantine.rb11
-rw-r--r--spec/mspec/lib/mspec/guards/superuser.rb15
-rw-r--r--spec/mspec/lib/mspec/guards/support.rb14
-rw-r--r--spec/mspec/lib/mspec/guards/version.rb44
-rw-r--r--spec/mspec/lib/mspec/helpers.rb13
-rw-r--r--spec/mspec/lib/mspec/helpers/argf.rb35
-rw-r--r--spec/mspec/lib/mspec/helpers/argv.rb44
-rw-r--r--spec/mspec/lib/mspec/helpers/datetime.rb47
-rw-r--r--spec/mspec/lib/mspec/helpers/fixture.rb24
-rw-r--r--spec/mspec/lib/mspec/helpers/flunk.rb3
-rw-r--r--spec/mspec/lib/mspec/helpers/fs.rb64
-rw-r--r--spec/mspec/lib/mspec/helpers/io.rb87
-rw-r--r--spec/mspec/lib/mspec/helpers/mock_to_path.rb6
-rw-r--r--spec/mspec/lib/mspec/helpers/numeric.rb78
-rw-r--r--spec/mspec/lib/mspec/helpers/ruby_exe.rb178
-rw-r--r--spec/mspec/lib/mspec/helpers/scratch.rb21
-rw-r--r--spec/mspec/lib/mspec/helpers/tmp.rb48
-rw-r--r--spec/mspec/lib/mspec/helpers/warning.rb21
-rw-r--r--spec/mspec/lib/mspec/matchers.rb37
-rw-r--r--spec/mspec/lib/mspec/matchers/base.rb61
-rw-r--r--spec/mspec/lib/mspec/matchers/be_an_instance_of.rb26
-rw-r--r--spec/mspec/lib/mspec/matchers/be_ancestor_of.rb24
-rw-r--r--spec/mspec/lib/mspec/matchers/be_close.rb29
-rw-r--r--spec/mspec/lib/mspec/matchers/be_computed_by.rb37
-rw-r--r--spec/mspec/lib/mspec/matchers/be_empty.rb20
-rw-r--r--spec/mspec/lib/mspec/matchers/be_false.rb20
-rw-r--r--spec/mspec/lib/mspec/matchers/be_kind_of.rb24
-rw-r--r--spec/mspec/lib/mspec/matchers/be_nan.rb20
-rw-r--r--spec/mspec/lib/mspec/matchers/be_nil.rb20
-rw-r--r--spec/mspec/lib/mspec/matchers/be_true.rb20
-rw-r--r--spec/mspec/lib/mspec/matchers/be_true_or_false.rb20
-rw-r--r--spec/mspec/lib/mspec/matchers/block_caller.rb37
-rw-r--r--spec/mspec/lib/mspec/matchers/complain.rb71
-rw-r--r--spec/mspec/lib/mspec/matchers/eql.rb26
-rw-r--r--spec/mspec/lib/mspec/matchers/equal.rb26
-rw-r--r--spec/mspec/lib/mspec/matchers/equal_element.rb78
-rw-r--r--spec/mspec/lib/mspec/matchers/have_class_variable.rb12
-rw-r--r--spec/mspec/lib/mspec/matchers/have_constant.rb12
-rw-r--r--spec/mspec/lib/mspec/matchers/have_instance_method.rb24
-rw-r--r--spec/mspec/lib/mspec/matchers/have_instance_variable.rb12
-rw-r--r--spec/mspec/lib/mspec/matchers/have_method.rb24
-rw-r--r--spec/mspec/lib/mspec/matchers/have_private_instance_method.rb24
-rw-r--r--spec/mspec/lib/mspec/matchers/have_private_method.rb24
-rw-r--r--spec/mspec/lib/mspec/matchers/have_protected_instance_method.rb24
-rw-r--r--spec/mspec/lib/mspec/matchers/have_public_instance_method.rb24
-rw-r--r--spec/mspec/lib/mspec/matchers/have_singleton_method.rb24
-rw-r--r--spec/mspec/lib/mspec/matchers/include.rb31
-rw-r--r--spec/mspec/lib/mspec/matchers/include_any_of.rb29
-rw-r--r--spec/mspec/lib/mspec/matchers/infinity.rb28
-rw-r--r--spec/mspec/lib/mspec/matchers/match_yaml.rb50
-rw-r--r--spec/mspec/lib/mspec/matchers/method.rb10
-rw-r--r--spec/mspec/lib/mspec/matchers/output.rb67
-rw-r--r--spec/mspec/lib/mspec/matchers/output_to_fd.rb71
-rw-r--r--spec/mspec/lib/mspec/matchers/raise_error.rb91
-rw-r--r--spec/mspec/lib/mspec/matchers/respond_to.rb24
-rw-r--r--spec/mspec/lib/mspec/matchers/signed_zero.rb28
-rw-r--r--spec/mspec/lib/mspec/matchers/skip.rb5
-rw-r--r--spec/mspec/lib/mspec/matchers/variable.rb24
-rw-r--r--spec/mspec/lib/mspec/mocks.rb3
-rw-r--r--spec/mspec/lib/mspec/mocks/mock.rb212
-rw-r--r--spec/mspec/lib/mspec/mocks/object.rb28
-rw-r--r--spec/mspec/lib/mspec/mocks/proxy.rb186
-rw-r--r--spec/mspec/lib/mspec/runner.rb12
-rw-r--r--spec/mspec/lib/mspec/runner/actions.rb6
-rw-r--r--spec/mspec/lib/mspec/runner/actions/constants_leak_checker.rb84
-rw-r--r--spec/mspec/lib/mspec/runner/actions/filter.rb40
-rw-r--r--spec/mspec/lib/mspec/runner/actions/leakchecker.rb318
-rw-r--r--spec/mspec/lib/mspec/runner/actions/profile.rb60
-rw-r--r--spec/mspec/lib/mspec/runner/actions/tag.rb133
-rw-r--r--spec/mspec/lib/mspec/runner/actions/taglist.rb56
-rw-r--r--spec/mspec/lib/mspec/runner/actions/tagpurge.rb56
-rw-r--r--spec/mspec/lib/mspec/runner/actions/tally.rb133
-rw-r--r--spec/mspec/lib/mspec/runner/actions/timeout.rb60
-rw-r--r--spec/mspec/lib/mspec/runner/actions/timer.rb22
-rw-r--r--spec/mspec/lib/mspec/runner/context.rb236
-rw-r--r--spec/mspec/lib/mspec/runner/evaluate.rb54
-rw-r--r--spec/mspec/lib/mspec/runner/example.rb34
-rw-r--r--spec/mspec/lib/mspec/runner/exception.rb54
-rw-r--r--spec/mspec/lib/mspec/runner/filters.rb4
-rw-r--r--spec/mspec/lib/mspec/runner/filters/match.rb18
-rw-r--r--spec/mspec/lib/mspec/runner/filters/profile.rb54
-rw-r--r--spec/mspec/lib/mspec/runner/filters/regexp.rb23
-rw-r--r--spec/mspec/lib/mspec/runner/filters/tag.rb29
-rw-r--r--spec/mspec/lib/mspec/runner/formatters.rb13
-rw-r--r--spec/mspec/lib/mspec/runner/formatters/base.rb128
-rw-r--r--spec/mspec/lib/mspec/runner/formatters/describe.rb23
-rw-r--r--spec/mspec/lib/mspec/runner/formatters/dotted.rb23
-rw-r--r--spec/mspec/lib/mspec/runner/formatters/file.rb24
-rw-r--r--spec/mspec/lib/mspec/runner/formatters/html.rb81
-rw-r--r--spec/mspec/lib/mspec/runner/formatters/junit.rb87
-rw-r--r--spec/mspec/lib/mspec/runner/formatters/method.rb95
-rw-r--r--spec/mspec/lib/mspec/runner/formatters/multi.rb47
-rw-r--r--spec/mspec/lib/mspec/runner/formatters/profile.rb18
-rw-r--r--spec/mspec/lib/mspec/runner/formatters/specdoc.rb41
-rw-r--r--spec/mspec/lib/mspec/runner/formatters/spinner.rb111
-rw-r--r--spec/mspec/lib/mspec/runner/formatters/stats.rb57
-rw-r--r--spec/mspec/lib/mspec/runner/formatters/summary.rb4
-rw-r--r--spec/mspec/lib/mspec/runner/formatters/unit.rb20
-rw-r--r--spec/mspec/lib/mspec/runner/formatters/yaml.rb38
-rw-r--r--spec/mspec/lib/mspec/runner/mspec.rb418
-rw-r--r--spec/mspec/lib/mspec/runner/object.rb26
-rw-r--r--spec/mspec/lib/mspec/runner/parallel.rb98
-rw-r--r--spec/mspec/lib/mspec/runner/shared.rb10
-rw-r--r--spec/mspec/lib/mspec/runner/tag.rb38
-rw-r--r--spec/mspec/lib/mspec/utils/deprecate.rb6
-rw-r--r--spec/mspec/lib/mspec/utils/format.rb24
-rw-r--r--spec/mspec/lib/mspec/utils/name_map.rb121
-rw-r--r--spec/mspec/lib/mspec/utils/options.rb491
-rw-r--r--spec/mspec/lib/mspec/utils/script.rb287
-rw-r--r--spec/mspec/lib/mspec/utils/version.rb52
-rw-r--r--spec/mspec/lib/mspec/utils/warnings.rb53
-rw-r--r--spec/mspec/lib/mspec/version.rb5
-rw-r--r--spec/mspec/spec/commands/fixtures/four.txt0
-rw-r--r--spec/mspec/spec/commands/fixtures/level2/three_spec.rb1
-rw-r--r--spec/mspec/spec/commands/fixtures/one_spec.rb1
-rw-r--r--spec/mspec/spec/commands/fixtures/three.rb1
-rw-r--r--spec/mspec/spec/commands/fixtures/two_spec.rb1
-rw-r--r--spec/mspec/spec/commands/mkspec_spec.rb363
-rw-r--r--spec/mspec/spec/commands/mspec_ci_spec.rb150
-rw-r--r--spec/mspec/spec/commands/mspec_run_spec.rb173
-rw-r--r--spec/mspec/spec/commands/mspec_spec.rb207
-rw-r--r--spec/mspec/spec/commands/mspec_tag_spec.rb414
-rw-r--r--spec/mspec/spec/expectations/expectations_spec.rb29
-rw-r--r--spec/mspec/spec/expectations/should_spec.rb61
-rw-r--r--spec/mspec/spec/fixtures/a_spec.rb15
-rw-r--r--spec/mspec/spec/fixtures/b_spec.rb7
-rw-r--r--spec/mspec/spec/fixtures/chatty_spec.rb8
-rw-r--r--spec/mspec/spec/fixtures/config.mspec8
-rw-r--r--spec/mspec/spec/fixtures/die_spec.rb7
-rwxr-xr-xspec/mspec/spec/fixtures/my_ruby4
-rw-r--r--spec/mspec/spec/fixtures/object_methods_spec.rb8
-rw-r--r--spec/mspec/spec/fixtures/print_interpreter_spec.rb4
-rw-r--r--spec/mspec/spec/fixtures/should.rb75
-rw-r--r--spec/mspec/spec/fixtures/tagging_spec.rb16
-rw-r--r--spec/mspec/spec/guards/block_device_spec.rb46
-rw-r--r--spec/mspec/spec/guards/bug_spec.rb151
-rw-r--r--spec/mspec/spec/guards/conflict_spec.rb53
-rw-r--r--spec/mspec/spec/guards/endian_spec.rb55
-rw-r--r--spec/mspec/spec/guards/feature_spec.rb120
-rw-r--r--spec/mspec/spec/guards/guard_spec.rb421
-rw-r--r--spec/mspec/spec/guards/platform_spec.rb337
-rw-r--r--spec/mspec/spec/guards/quarantine_spec.rb35
-rw-r--r--spec/mspec/spec/guards/superuser_spec.rb35
-rw-r--r--spec/mspec/spec/guards/support_spec.rb54
-rw-r--r--spec/mspec/spec/guards/user_spec.rb20
-rw-r--r--spec/mspec/spec/guards/version_spec.rb112
-rw-r--r--spec/mspec/spec/helpers/argf_spec.rb37
-rw-r--r--spec/mspec/spec/helpers/argv_spec.rb27
-rw-r--r--spec/mspec/spec/helpers/datetime_spec.rb44
-rw-r--r--spec/mspec/spec/helpers/fixture_spec.rb25
-rw-r--r--spec/mspec/spec/helpers/flunk_spec.rb20
-rw-r--r--spec/mspec/spec/helpers/fs_spec.rb195
-rw-r--r--spec/mspec/spec/helpers/io_spec.rb136
-rw-r--r--spec/mspec/spec/helpers/mock_to_path_spec.rb23
-rw-r--r--spec/mspec/spec/helpers/numeric_spec.rb25
-rw-r--r--spec/mspec/spec/helpers/ruby_exe_spec.rb256
-rw-r--r--spec/mspec/spec/helpers/scratch_spec.rb24
-rw-r--r--spec/mspec/spec/helpers/suppress_warning_spec.rb19
-rw-r--r--spec/mspec/spec/helpers/tmp_spec.rb27
-rw-r--r--spec/mspec/spec/integration/interpreter_spec.rb18
-rw-r--r--spec/mspec/spec/integration/object_methods_spec.rb18
-rw-r--r--spec/mspec/spec/integration/run_spec.rb71
-rw-r--r--spec/mspec/spec/integration/tag_spec.rb59
-rw-r--r--spec/mspec/spec/matchers/base_spec.rb228
-rw-r--r--spec/mspec/spec/matchers/be_an_instance_of_spec.rb50
-rw-r--r--spec/mspec/spec/matchers/be_ancestor_of_spec.rb28
-rw-r--r--spec/mspec/spec/matchers/be_close_spec.rb48
-rw-r--r--spec/mspec/spec/matchers/be_computed_by_spec.rb42
-rw-r--r--spec/mspec/spec/matchers/be_empty_spec.rb26
-rw-r--r--spec/mspec/spec/matchers/be_false_spec.rb28
-rw-r--r--spec/mspec/spec/matchers/be_kind_of_spec.rb31
-rw-r--r--spec/mspec/spec/matchers/be_nan_spec.rb28
-rw-r--r--spec/mspec/spec/matchers/be_nil_spec.rb27
-rw-r--r--spec/mspec/spec/matchers/be_true_or_false_spec.rb19
-rw-r--r--spec/mspec/spec/matchers/be_true_spec.rb28
-rw-r--r--spec/mspec/spec/matchers/block_caller_spec.rb13
-rw-r--r--spec/mspec/spec/matchers/complain_spec.rb102
-rw-r--r--spec/mspec/spec/matchers/eql_spec.rb33
-rw-r--r--spec/mspec/spec/matchers/equal_element_spec.rb75
-rw-r--r--spec/mspec/spec/matchers/equal_spec.rb32
-rw-r--r--spec/mspec/spec/matchers/have_class_variable_spec.rb49
-rw-r--r--spec/mspec/spec/matchers/have_constant_spec.rb37
-rw-r--r--spec/mspec/spec/matchers/have_instance_method_spec.rb53
-rw-r--r--spec/mspec/spec/matchers/have_instance_variable_spec.rb50
-rw-r--r--spec/mspec/spec/matchers/have_method_spec.rb55
-rw-r--r--spec/mspec/spec/matchers/have_private_instance_method_spec.rb57
-rw-r--r--spec/mspec/spec/matchers/have_private_method_spec.rb44
-rw-r--r--spec/mspec/spec/matchers/have_protected_instance_method_spec.rb57
-rw-r--r--spec/mspec/spec/matchers/have_public_instance_method_spec.rb53
-rw-r--r--spec/mspec/spec/matchers/have_singleton_method_spec.rb45
-rw-r--r--spec/mspec/spec/matchers/include_any_of_spec.rb42
-rw-r--r--spec/mspec/spec/matchers/include_spec.rb37
-rw-r--r--spec/mspec/spec/matchers/infinity_spec.rb34
-rw-r--r--spec/mspec/spec/matchers/match_yaml_spec.rb39
-rw-r--r--spec/mspec/spec/matchers/output_spec.rb84
-rw-r--r--spec/mspec/spec/matchers/output_to_fd_spec.rb44
-rw-r--r--spec/mspec/spec/matchers/raise_error_spec.rb183
-rw-r--r--spec/mspec/spec/matchers/respond_to_spec.rb33
-rw-r--r--spec/mspec/spec/matchers/signed_zero_spec.rb32
-rw-r--r--spec/mspec/spec/mocks/mock_spec.rb530
-rw-r--r--spec/mspec/spec/mocks/proxy_spec.rb405
-rw-r--r--spec/mspec/spec/runner/actions/filter_spec.rb84
-rw-r--r--spec/mspec/spec/runner/actions/tag_spec.rb313
-rw-r--r--spec/mspec/spec/runner/actions/taglist_spec.rb152
-rw-r--r--spec/mspec/spec/runner/actions/tagpurge_spec.rb154
-rw-r--r--spec/mspec/spec/runner/actions/tally_spec.rb355
-rw-r--r--spec/mspec/spec/runner/actions/timer_spec.rb44
-rw-r--r--spec/mspec/spec/runner/context_spec.rb1028
-rw-r--r--spec/mspec/spec/runner/example_spec.rb117
-rw-r--r--spec/mspec/spec/runner/exception_spec.rb146
-rw-r--r--spec/mspec/spec/runner/filters/a.yaml4
-rw-r--r--spec/mspec/spec/runner/filters/b.yaml11
-rw-r--r--spec/mspec/spec/runner/filters/match_spec.rb34
-rw-r--r--spec/mspec/spec/runner/filters/profile_spec.rb117
-rw-r--r--spec/mspec/spec/runner/filters/regexp_spec.rb31
-rw-r--r--spec/mspec/spec/runner/filters/tag_spec.rb92
-rw-r--r--spec/mspec/spec/runner/formatters/describe_spec.rb67
-rw-r--r--spec/mspec/spec/runner/formatters/dotted_spec.rb284
-rw-r--r--spec/mspec/spec/runner/formatters/file_spec.rb84
-rw-r--r--spec/mspec/spec/runner/formatters/html_spec.rb220
-rw-r--r--spec/mspec/spec/runner/formatters/junit_spec.rb159
-rw-r--r--spec/mspec/spec/runner/formatters/method_spec.rb177
-rw-r--r--spec/mspec/spec/runner/formatters/multi_spec.rb68
-rw-r--r--spec/mspec/spec/runner/formatters/specdoc_spec.rb106
-rw-r--r--spec/mspec/spec/runner/formatters/spinner_spec.rb83
-rw-r--r--spec/mspec/spec/runner/formatters/summary_spec.rb26
-rw-r--r--spec/mspec/spec/runner/formatters/unit_spec.rb73
-rw-r--r--spec/mspec/spec/runner/formatters/yaml_spec.rb134
-rw-r--r--spec/mspec/spec/runner/mspec_spec.rb597
-rw-r--r--spec/mspec/spec/runner/shared_spec.rb90
-rw-r--r--spec/mspec/spec/runner/tag_spec.rb123
-rw-r--r--spec/mspec/spec/runner/tags.txt4
-rw-r--r--spec/mspec/spec/spec_helper.rb68
-rw-r--r--spec/mspec/spec/utils/deprecate_spec.rb17
-rw-r--r--spec/mspec/spec/utils/name_map_spec.rb175
-rw-r--r--spec/mspec/spec/utils/options_spec.rb1302
-rw-r--r--spec/mspec/spec/utils/script_spec.rb475
-rw-r--r--spec/mspec/spec/utils/version_spec.rb45
-rwxr-xr-xspec/mspec/tool/find.rb10
-rwxr-xr-xspec/mspec/tool/pull-latest-mspec-spec26
-rw-r--r--spec/mspec/tool/remove_old_guards.rb66
-rw-r--r--spec/mspec/tool/sync/.gitignore4
-rw-r--r--spec/mspec/tool/sync/sync-rubyspec.rb254
-rwxr-xr-xspec/mspec/tool/tag_from_output.rb45
-rwxr-xr-xspec/mspec/tool/wrap_with_guard.rb28
-rw-r--r--spec/ruby/.gitignore5
-rw-r--r--spec/ruby/.mspec.constants231
-rw-r--r--spec/ruby/.rubocop.yml134
-rw-r--r--spec/ruby/.rubocop_todo.yml148
-rw-r--r--spec/ruby/CONTRIBUTING.md292
-rw-r--r--spec/ruby/LICENSE22
-rw-r--r--spec/ruby/README.md156
-rw-r--r--spec/ruby/TODO8
-rw-r--r--spec/ruby/command_line/backtrace_limit_spec.rb48
-rw-r--r--spec/ruby/command_line/dash_a_spec.rb19
-rw-r--r--spec/ruby/command_line/dash_c_spec.rb13
-rw-r--r--spec/ruby/command_line/dash_d_spec.rb22
-rw-r--r--spec/ruby/command_line/dash_e_spec.rb41
-rw-r--r--spec/ruby/command_line/dash_encoding_spec.rb36
-rw-r--r--spec/ruby/command_line/dash_external_encoding_spec.rb15
-rw-r--r--spec/ruby/command_line/dash_internal_encoding_spec.rb15
-rw-r--r--spec/ruby/command_line/dash_l_spec.rb31
-rw-r--r--spec/ruby/command_line/dash_n_spec.rb36
-rw-r--r--spec/ruby/command_line/dash_p_spec.rb19
-rw-r--r--spec/ruby/command_line/dash_r_spec.rb28
-rw-r--r--spec/ruby/command_line/dash_s_spec.rb52
-rw-r--r--spec/ruby/command_line/dash_upper_c_spec.rb6
-rw-r--r--spec/ruby/command_line/dash_upper_e_spec.rb37
-rw-r--r--spec/ruby/command_line/dash_upper_f_spec.rb13
-rw-r--r--spec/ruby/command_line/dash_upper_i_spec.rb51
-rw-r--r--spec/ruby/command_line/dash_upper_k_spec.rb65
-rw-r--r--spec/ruby/command_line/dash_upper_s_spec.rb29
-rw-r--r--spec/ruby/command_line/dash_upper_u_spec.rb45
-rw-r--r--spec/ruby/command_line/dash_upper_w_spec.rb47
-rw-r--r--spec/ruby/command_line/dash_upper_x_spec.rb6
-rw-r--r--spec/ruby/command_line/dash_v_spec.rb13
-rw-r--r--spec/ruby/command_line/dash_w_spec.rb12
-rw-r--r--spec/ruby/command_line/dash_x_spec.rb21
-rw-r--r--spec/ruby/command_line/error_message_spec.rb11
-rw-r--r--spec/ruby/command_line/feature_spec.rb69
-rw-r--r--spec/ruby/command_line/fixtures/backtrace.rb35
-rw-r--r--spec/ruby/command_line/fixtures/bad_syntax.rb1
-rw-r--r--spec/ruby/command_line/fixtures/bin/bad_embedded_ruby.txt3
-rw-r--r--spec/ruby/command_line/fixtures/bin/dash_s_fail1
-rw-r--r--spec/ruby/command_line/fixtures/bin/embedded_ruby.txt3
-rw-r--r--spec/ruby/command_line/fixtures/bin/hybrid_launcher.sh4
-rwxr-xr-xspec/ruby/command_line/fixtures/bin/launcher.rb2
-rw-r--r--spec/ruby/command_line/fixtures/change_directory_script.rb1
-rw-r--r--spec/ruby/command_line/fixtures/conditional_range.txt5
-rw-r--r--spec/ruby/command_line/fixtures/dash_s_script.rb12
-rw-r--r--spec/ruby/command_line/fixtures/debug.rb10
-rw-r--r--spec/ruby/command_line/fixtures/debug_info.rb11
-rw-r--r--spec/ruby/command_line/fixtures/freeze_flag_across_files.rb3
-rw-r--r--spec/ruby/command_line/fixtures/freeze_flag_across_files_diff_enc.rb3
-rw-r--r--spec/ruby/command_line/fixtures/freeze_flag_one_literal.rb2
-rw-r--r--spec/ruby/command_line/fixtures/freeze_flag_required.rb1
-rw-r--r--spec/ruby/command_line/fixtures/freeze_flag_required_diff_enc.rbbin121 -> 0 bytes-rw-r--r--spec/ruby/command_line/fixtures/freeze_flag_two_literals.rb1
-rw-r--r--spec/ruby/command_line/fixtures/full_names.txt3
-rw-r--r--spec/ruby/command_line/fixtures/loadpath.rb1
-rw-r--r--spec/ruby/command_line/fixtures/names.txt3
-rw-r--r--spec/ruby/command_line/fixtures/passwd_file.txt3
-rw-r--r--spec/ruby/command_line/fixtures/require.rb1
-rw-r--r--spec/ruby/command_line/fixtures/rubyopt.rb1
-rw-r--r--spec/ruby/command_line/fixtures/test_file.rb1
-rw-r--r--spec/ruby/command_line/fixtures/verbose.rb1
-rw-r--r--spec/ruby/command_line/frozen_strings_spec.rb29
-rw-r--r--spec/ruby/command_line/rubylib_spec.rb69
-rw-r--r--spec/ruby/command_line/rubyopt_spec.rb187
-rw-r--r--spec/ruby/command_line/shared/change_directory.rb21
-rw-r--r--spec/ruby/command_line/shared/verbose.rb9
-rw-r--r--spec/ruby/command_line/syntax_error_spec.rb13
-rw-r--r--spec/ruby/core/argf/argf_spec.rb11
-rw-r--r--spec/ruby/core/argf/argv_spec.rb19
-rw-r--r--spec/ruby/core/argf/binmode_spec.rb43
-rw-r--r--spec/ruby/core/argf/bytes_spec.rb16
-rw-r--r--spec/ruby/core/argf/chars_spec.rb16
-rw-r--r--spec/ruby/core/argf/close_spec.rb35
-rw-r--r--spec/ruby/core/argf/closed_spec.rb18
-rw-r--r--spec/ruby/core/argf/codepoints_spec.rb16
-rw-r--r--spec/ruby/core/argf/each_byte_spec.rb6
-rw-r--r--spec/ruby/core/argf/each_char_spec.rb6
-rw-r--r--spec/ruby/core/argf/each_codepoint_spec.rb6
-rw-r--r--spec/ruby/core/argf/each_line_spec.rb6
-rw-r--r--spec/ruby/core/argf/each_spec.rb6
-rw-r--r--spec/ruby/core/argf/eof_spec.rb10
-rw-r--r--spec/ruby/core/argf/file_spec.rb21
-rw-r--r--spec/ruby/core/argf/filename_spec.rb6
-rw-r--r--spec/ruby/core/argf/fileno_spec.rb6
-rw-r--r--spec/ruby/core/argf/fixtures/bin_file.txt2
-rw-r--r--spec/ruby/core/argf/fixtures/file1.txt2
-rw-r--r--spec/ruby/core/argf/fixtures/file2.txt2
-rw-r--r--spec/ruby/core/argf/fixtures/filename.rb3
-rw-r--r--spec/ruby/core/argf/fixtures/lineno.rb5
-rw-r--r--spec/ruby/core/argf/fixtures/rewind.rb5
-rw-r--r--spec/ruby/core/argf/fixtures/stdin.txt2
-rw-r--r--spec/ruby/core/argf/getc_spec.rb20
-rw-r--r--spec/ruby/core/argf/gets_spec.rb49
-rw-r--r--spec/ruby/core/argf/lineno_spec.rb30
-rw-r--r--spec/ruby/core/argf/lines_spec.rb16
-rw-r--r--spec/ruby/core/argf/path_spec.rb6
-rw-r--r--spec/ruby/core/argf/pos_spec.rb38
-rw-r--r--spec/ruby/core/argf/read_nonblock_spec.rb80
-rw-r--r--spec/ruby/core/argf/read_spec.rb85
-rw-r--r--spec/ruby/core/argf/readchar_spec.rb19
-rw-r--r--spec/ruby/core/argf/readline_spec.rb23
-rw-r--r--spec/ruby/core/argf/readlines_spec.rb6
-rw-r--r--spec/ruby/core/argf/readpartial_spec.rb75
-rw-r--r--spec/ruby/core/argf/rewind_spec.rb39
-rw-r--r--spec/ruby/core/argf/seek_spec.rb63
-rw-r--r--spec/ruby/core/argf/set_encoding_spec.rb41
-rw-r--r--spec/ruby/core/argf/shared/each_byte.rb58
-rw-r--r--spec/ruby/core/argf/shared/each_char.rb58
-rw-r--r--spec/ruby/core/argf/shared/each_codepoint.rb58
-rw-r--r--spec/ruby/core/argf/shared/each_line.rb62
-rw-r--r--spec/ruby/core/argf/shared/eof.rb24
-rw-r--r--spec/ruby/core/argf/shared/filename.rb28
-rw-r--r--spec/ruby/core/argf/shared/fileno.rb24
-rw-r--r--spec/ruby/core/argf/shared/getc.rb17
-rw-r--r--spec/ruby/core/argf/shared/gets.rb99
-rw-r--r--spec/ruby/core/argf/shared/pos.rb31
-rw-r--r--spec/ruby/core/argf/shared/read.rb58
-rw-r--r--spec/ruby/core/argf/shared/readlines.rb22
-rw-r--r--spec/ruby/core/argf/skip_spec.rb42
-rw-r--r--spec/ruby/core/argf/tell_spec.rb6
-rw-r--r--spec/ruby/core/argf/to_a_spec.rb6
-rw-r--r--spec/ruby/core/argf/to_i_spec.rb6
-rw-r--r--spec/ruby/core/argf/to_io_spec.rb23
-rw-r--r--spec/ruby/core/argf/to_s_spec.rb14
-rw-r--r--spec/ruby/core/array/allocate_spec.rb19
-rw-r--r--spec/ruby/core/array/any_spec.rb37
-rw-r--r--spec/ruby/core/array/append_spec.rb40
-rw-r--r--spec/ruby/core/array/array_spec.rb7
-rw-r--r--spec/ruby/core/array/assoc_spec.rb40
-rw-r--r--spec/ruby/core/array/at_spec.rb56
-rw-r--r--spec/ruby/core/array/bsearch_index_spec.rb85
-rw-r--r--spec/ruby/core/array/bsearch_spec.rb84
-rw-r--r--spec/ruby/core/array/clear_spec.rb52
-rw-r--r--spec/ruby/core/array/clone_spec.rb31
-rw-r--r--spec/ruby/core/array/collect_spec.rb11
-rw-r--r--spec/ruby/core/array/combination_spec.rb74
-rw-r--r--spec/ruby/core/array/compact_spec.rb81
-rw-r--r--spec/ruby/core/array/comparison_spec.rb97
-rw-r--r--spec/ruby/core/array/concat_spec.rb132
-rw-r--r--spec/ruby/core/array/constructor_spec.rb24
-rw-r--r--spec/ruby/core/array/count_spec.rb15
-rw-r--r--spec/ruby/core/array/cycle_spec.rb101
-rw-r--r--spec/ruby/core/array/deconstruct_spec.rb11
-rw-r--r--spec/ruby/core/array/delete_at_spec.rb63
-rw-r--r--spec/ruby/core/array/delete_if_spec.rb68
-rw-r--r--spec/ruby/core/array/delete_spec.rb68
-rw-r--r--spec/ruby/core/array/difference_spec.rb22
-rw-r--r--spec/ruby/core/array/dig_spec.rb52
-rw-r--r--spec/ruby/core/array/drop_spec.rb64
-rw-r--r--spec/ruby/core/array/drop_while_spec.rb28
-rw-r--r--spec/ruby/core/array/dup_spec.rb31
-rw-r--r--spec/ruby/core/array/each_index_spec.rb42
-rw-r--r--spec/ruby/core/array/each_spec.rb48
-rw-r--r--spec/ruby/core/array/element_reference_spec.rb50
-rw-r--r--spec/ruby/core/array/element_set_spec.rb539
-rw-r--r--spec/ruby/core/array/empty_spec.rb10
-rw-r--r--spec/ruby/core/array/eql_spec.rb19
-rw-r--r--spec/ruby/core/array/equal_value_spec.rb51
-rw-r--r--spec/ruby/core/array/fetch_spec.rb55
-rw-r--r--spec/ruby/core/array/fill_spec.rb332
-rw-r--r--spec/ruby/core/array/filter_spec.rb14
-rw-r--r--spec/ruby/core/array/find_index_spec.rb6
-rw-r--r--spec/ruby/core/array/first_spec.rb93
-rw-r--r--spec/ruby/core/array/fixtures/classes.rb522
-rw-r--r--spec/ruby/core/array/fixtures/encoded_strings.rb69
-rw-r--r--spec/ruby/core/array/flatten_spec.rb288
-rw-r--r--spec/ruby/core/array/frozen_spec.rb16
-rw-r--r--spec/ruby/core/array/hash_spec.rb83
-rw-r--r--spec/ruby/core/array/include_spec.rb33
-rw-r--r--spec/ruby/core/array/index_spec.rb6
-rw-r--r--spec/ruby/core/array/initialize_spec.rb156
-rw-r--r--spec/ruby/core/array/insert_spec.rb78
-rw-r--r--spec/ruby/core/array/inspect_spec.rb7
-rw-r--r--spec/ruby/core/array/intersect_spec.rb17
-rw-r--r--spec/ruby/core/array/intersection_spec.rb21
-rw-r--r--spec/ruby/core/array/join_spec.rb50
-rw-r--r--spec/ruby/core/array/keep_if_spec.rb10
-rw-r--r--spec/ruby/core/array/last_spec.rb87
-rw-r--r--spec/ruby/core/array/length_spec.rb7
-rw-r--r--spec/ruby/core/array/map_spec.rb11
-rw-r--r--spec/ruby/core/array/max_spec.rb116
-rw-r--r--spec/ruby/core/array/min_spec.rb121
-rw-r--r--spec/ruby/core/array/minmax_spec.rb14
-rw-r--r--spec/ruby/core/array/minus_spec.rb7
-rw-r--r--spec/ruby/core/array/multiply_spec.rb144
-rw-r--r--spec/ruby/core/array/new_spec.rb122
-rw-r--r--spec/ruby/core/array/pack/a_spec.rb62
-rw-r--r--spec/ruby/core/array/pack/at_spec.rb30
-rw-r--r--spec/ruby/core/array/pack/b_spec.rb108
-rw-r--r--spec/ruby/core/array/pack/buffer_spec.rb50
-rw-r--r--spec/ruby/core/array/pack/c_spec.rb75
-rw-r--r--spec/ruby/core/array/pack/comment_spec.rb25
-rw-r--r--spec/ruby/core/array/pack/d_spec.rb39
-rw-r--r--spec/ruby/core/array/pack/e_spec.rb25
-rw-r--r--spec/ruby/core/array/pack/empty_spec.rb11
-rw-r--r--spec/ruby/core/array/pack/f_spec.rb39
-rw-r--r--spec/ruby/core/array/pack/g_spec.rb25
-rw-r--r--spec/ruby/core/array/pack/h_spec.rb200
-rw-r--r--spec/ruby/core/array/pack/i_spec.rb133
-rw-r--r--spec/ruby/core/array/pack/j_spec.rb217
-rw-r--r--spec/ruby/core/array/pack/l_spec.rb221
-rw-r--r--spec/ruby/core/array/pack/m_spec.rb309
-rw-r--r--spec/ruby/core/array/pack/n_spec.rb25
-rw-r--r--spec/ruby/core/array/pack/p_spec.rb62
-rw-r--r--spec/ruby/core/array/pack/percent_spec.rb7
-rw-r--r--spec/ruby/core/array/pack/q_spec.rb61
-rw-r--r--spec/ruby/core/array/pack/s_spec.rb133
-rw-r--r--spec/ruby/core/array/pack/shared/basic.rb69
-rw-r--r--spec/ruby/core/array/pack/shared/encodings.rb16
-rw-r--r--spec/ruby/core/array/pack/shared/float.rb229
-rw-r--r--spec/ruby/core/array/pack/shared/integer.rb381
-rw-r--r--spec/ruby/core/array/pack/shared/numeric_basic.rb44
-rw-r--r--spec/ruby/core/array/pack/shared/string.rb48
-rw-r--r--spec/ruby/core/array/pack/shared/taint.rb35
-rw-r--r--spec/ruby/core/array/pack/shared/unicode.rb94
-rw-r--r--spec/ruby/core/array/pack/u_spec.rb130
-rw-r--r--spec/ruby/core/array/pack/v_spec.rb25
-rw-r--r--spec/ruby/core/array/pack/w_spec.rb42
-rw-r--r--spec/ruby/core/array/pack/x_spec.rb64
-rw-r--r--spec/ruby/core/array/pack/z_spec.rb34
-rw-r--r--spec/ruby/core/array/partition_spec.rb43
-rw-r--r--spec/ruby/core/array/permutation_spec.rb138
-rw-r--r--spec/ruby/core/array/plus_spec.rb59
-rw-r--r--spec/ruby/core/array/pop_spec.rb176
-rw-r--r--spec/ruby/core/array/prepend_spec.rb7
-rw-r--r--spec/ruby/core/array/product_spec.rb68
-rw-r--r--spec/ruby/core/array/push_spec.rb7
-rw-r--r--spec/ruby/core/array/rassoc_spec.rb38
-rw-r--r--spec/ruby/core/array/reject_spec.rb143
-rw-r--r--spec/ruby/core/array/repeated_combination_spec.rb84
-rw-r--r--spec/ruby/core/array/repeated_permutation_spec.rb94
-rw-r--r--spec/ruby/core/array/replace_spec.rb7
-rw-r--r--spec/ruby/core/array/reverse_each_spec.rb43
-rw-r--r--spec/ruby/core/array/reverse_spec.rb42
-rw-r--r--spec/ruby/core/array/rindex_spec.rb80
-rw-r--r--spec/ruby/core/array/rotate_spec.rb129
-rw-r--r--spec/ruby/core/array/sample_spec.rb138
-rw-r--r--spec/ruby/core/array/select_spec.rb14
-rw-r--r--spec/ruby/core/array/shared/clone.rb44
-rw-r--r--spec/ruby/core/array/shared/collect.rb140
-rw-r--r--spec/ruby/core/array/shared/delete_if.rb13
-rw-r--r--spec/ruby/core/array/shared/difference.rb78
-rw-r--r--spec/ruby/core/array/shared/enumeratorize.rb5
-rw-r--r--spec/ruby/core/array/shared/eql.rb92
-rw-r--r--spec/ruby/core/array/shared/index.rb37
-rw-r--r--spec/ruby/core/array/shared/inspect.rb133
-rw-r--r--spec/ruby/core/array/shared/intersection.rb84
-rw-r--r--spec/ruby/core/array/shared/join.rb182
-rw-r--r--spec/ruby/core/array/shared/keep_if.rb60
-rw-r--r--spec/ruby/core/array/shared/length.rb11
-rw-r--r--spec/ruby/core/array/shared/push.rb33
-rw-r--r--spec/ruby/core/array/shared/replace.rb60
-rw-r--r--spec/ruby/core/array/shared/select.rb32
-rw-r--r--spec/ruby/core/array/shared/slice.rb795
-rw-r--r--spec/ruby/core/array/shared/union.rb79
-rw-r--r--spec/ruby/core/array/shared/unshift.rb46
-rw-r--r--spec/ruby/core/array/shift_spec.rb136
-rw-r--r--spec/ruby/core/array/shuffle_spec.rb96
-rw-r--r--spec/ruby/core/array/size_spec.rb7
-rw-r--r--spec/ruby/core/array/slice_spec.rb248
-rw-r--r--spec/ruby/core/array/sort_by_spec.rb52
-rw-r--r--spec/ruby/core/array/sort_spec.rb252
-rw-r--r--spec/ruby/core/array/sum_spec.rb71
-rw-r--r--spec/ruby/core/array/take_spec.rb40
-rw-r--r--spec/ruby/core/array/take_while_spec.rb28
-rw-r--r--spec/ruby/core/array/to_a_spec.rb24
-rw-r--r--spec/ruby/core/array/to_ary_spec.rb20
-rw-r--r--spec/ruby/core/array/to_h_spec.rb79
-rw-r--r--spec/ruby/core/array/to_s_spec.rb8
-rw-r--r--spec/ruby/core/array/transpose_spec.rb53
-rw-r--r--spec/ruby/core/array/try_convert_spec.rb50
-rw-r--r--spec/ruby/core/array/union_spec.rb25
-rw-r--r--spec/ruby/core/array/uniq_spec.rb261
-rw-r--r--spec/ruby/core/array/unshift_spec.rb7
-rw-r--r--spec/ruby/core/array/values_at_spec.rb75
-rw-r--r--spec/ruby/core/array/zip_spec.rb65
-rw-r--r--spec/ruby/core/basicobject/__id__spec.rb6
-rw-r--r--spec/ruby/core/basicobject/__send___spec.rb10
-rw-r--r--spec/ruby/core/basicobject/basicobject_spec.rb91
-rw-r--r--spec/ruby/core/basicobject/equal_spec.rb52
-rw-r--r--spec/ruby/core/basicobject/equal_value_spec.rb10
-rw-r--r--spec/ruby/core/basicobject/fixtures/classes.rb33
-rw-r--r--spec/ruby/core/basicobject/fixtures/common.rb9
-rw-r--r--spec/ruby/core/basicobject/fixtures/remove_method_missing.rb9
-rw-r--r--spec/ruby/core/basicobject/fixtures/singleton_method.rb10
-rw-r--r--spec/ruby/core/basicobject/initialize_spec.rb13
-rw-r--r--spec/ruby/core/basicobject/instance_eval_spec.rb188
-rw-r--r--spec/ruby/core/basicobject/instance_exec_spec.rb107
-rw-r--r--spec/ruby/core/basicobject/method_missing_spec.rb39
-rw-r--r--spec/ruby/core/basicobject/not_equal_spec.rb53
-rw-r--r--spec/ruby/core/basicobject/not_spec.rb11
-rw-r--r--spec/ruby/core/basicobject/singleton_method_added_spec.rb145
-rw-r--r--spec/ruby/core/basicobject/singleton_method_removed_spec.rb24
-rw-r--r--spec/ruby/core/basicobject/singleton_method_undefined_spec.rb24
-rw-r--r--spec/ruby/core/binding/clone_spec.rb7
-rw-r--r--spec/ruby/core/binding/dup_spec.rb7
-rw-r--r--spec/ruby/core/binding/eval_spec.rb152
-rw-r--r--spec/ruby/core/binding/fixtures/classes.rb66
-rw-r--r--spec/ruby/core/binding/fixtures/irb.rb3
-rw-r--r--spec/ruby/core/binding/fixtures/irbrc1
-rw-r--r--spec/ruby/core/binding/fixtures/location.rb6
-rw-r--r--spec/ruby/core/binding/irb_spec.rb16
-rw-r--r--spec/ruby/core/binding/local_variable_defined_spec.rb46
-rw-r--r--spec/ruby/core/binding/local_variable_get_spec.rb56
-rw-r--r--spec/ruby/core/binding/local_variable_set_spec.rb71
-rw-r--r--spec/ruby/core/binding/local_variables_spec.rb35
-rw-r--r--spec/ruby/core/binding/receiver_spec.rb11
-rw-r--r--spec/ruby/core/binding/shared/clone.rb34
-rw-r--r--spec/ruby/core/binding/source_location_spec.rb9
-rw-r--r--spec/ruby/core/builtin_constants/builtin_constants_spec.rb63
-rw-r--r--spec/ruby/core/class/allocate_spec.rb41
-rw-r--r--spec/ruby/core/class/dup_spec.rb64
-rw-r--r--spec/ruby/core/class/fixtures/classes.rb47
-rw-r--r--spec/ruby/core/class/inherited_spec.rb101
-rw-r--r--spec/ruby/core/class/initialize_spec.rb34
-rw-r--r--spec/ruby/core/class/new_spec.rb155
-rw-r--r--spec/ruby/core/class/subclasses_spec.rb38
-rw-r--r--spec/ruby/core/class/superclass_spec.rb27
-rw-r--r--spec/ruby/core/comparable/between_spec.rb25
-rw-r--r--spec/ruby/core/comparable/clamp_spec.rb88
-rw-r--r--spec/ruby/core/comparable/equal_value_spec.rb114
-rw-r--r--spec/ruby/core/comparable/fixtures/classes.rb36
-rw-r--r--spec/ruby/core/comparable/gt_spec.rb43
-rw-r--r--spec/ruby/core/comparable/gte_spec.rb47
-rw-r--r--spec/ruby/core/comparable/lt_spec.rb49
-rw-r--r--spec/ruby/core/comparable/lte_spec.rb46
-rw-r--r--spec/ruby/core/complex/abs2_spec.rb9
-rw-r--r--spec/ruby/core/complex/abs_spec.rb6
-rw-r--r--spec/ruby/core/complex/angle_spec.rb6
-rw-r--r--spec/ruby/core/complex/arg_spec.rb6
-rw-r--r--spec/ruby/core/complex/coerce_spec.rb70
-rw-r--r--spec/ruby/core/complex/comparison_spec.rb27
-rw-r--r--spec/ruby/core/complex/conj_spec.rb6
-rw-r--r--spec/ruby/core/complex/conjugate_spec.rb6
-rw-r--r--spec/ruby/core/complex/constants_spec.rb7
-rw-r--r--spec/ruby/core/complex/denominator_spec.rb13
-rw-r--r--spec/ruby/core/complex/divide_spec.rb6
-rw-r--r--spec/ruby/core/complex/eql_spec.rb31
-rw-r--r--spec/ruby/core/complex/equal_value_spec.rb93
-rw-r--r--spec/ruby/core/complex/exponent_spec.rb61
-rw-r--r--spec/ruby/core/complex/fdiv_spec.rb129
-rw-r--r--spec/ruby/core/complex/finite_spec.rb32
-rw-r--r--spec/ruby/core/complex/hash_spec.rb16
-rw-r--r--spec/ruby/core/complex/imag_spec.rb6
-rw-r--r--spec/ruby/core/complex/imaginary_spec.rb6
-rw-r--r--spec/ruby/core/complex/infinite_spec.rb32
-rw-r--r--spec/ruby/core/complex/inspect_spec.rb16
-rw-r--r--spec/ruby/core/complex/integer_spec.rb11
-rw-r--r--spec/ruby/core/complex/magnitude_spec.rb6
-rw-r--r--spec/ruby/core/complex/marshal_dump_spec.rb11
-rw-r--r--spec/ruby/core/complex/minus_spec.rb45
-rw-r--r--spec/ruby/core/complex/multiply_spec.rb49
-rw-r--r--spec/ruby/core/complex/negative_spec.rb13
-rw-r--r--spec/ruby/core/complex/numerator_spec.rb19
-rw-r--r--spec/ruby/core/complex/phase_spec.rb6
-rw-r--r--spec/ruby/core/complex/plus_spec.rb45
-rw-r--r--spec/ruby/core/complex/polar_spec.rb27
-rw-r--r--spec/ruby/core/complex/positive_spec.rb13
-rw-r--r--spec/ruby/core/complex/quo_spec.rb6
-rw-r--r--spec/ruby/core/complex/rationalize_spec.rb31
-rw-r--r--spec/ruby/core/complex/real_spec.rb28
-rw-r--r--spec/ruby/core/complex/rect_spec.rb10
-rw-r--r--spec/ruby/core/complex/rectangular_spec.rb10
-rw-r--r--spec/ruby/core/complex/shared/abs.rb10
-rw-r--r--spec/ruby/core/complex/shared/arg.rb9
-rw-r--r--spec/ruby/core/complex/shared/conjugate.rb8
-rw-r--r--spec/ruby/core/complex/shared/divide.rb82
-rw-r--r--spec/ruby/core/complex/shared/image.rb8
-rw-r--r--spec/ruby/core/complex/shared/rect.rb94
-rw-r--r--spec/ruby/core/complex/to_c_spec.rb12
-rw-r--r--spec/ruby/core/complex/to_f_spec.rb41
-rw-r--r--spec/ruby/core/complex/to_i_spec.rb41
-rw-r--r--spec/ruby/core/complex/to_r_spec.rb41
-rw-r--r--spec/ruby/core/complex/to_s_spec.rb44
-rw-r--r--spec/ruby/core/complex/uminus_spec.rb11
-rw-r--r--spec/ruby/core/conditionvariable/broadcast_spec.rb40
-rw-r--r--spec/ruby/core/conditionvariable/marshal_dump_spec.rb9
-rw-r--r--spec/ruby/core/conditionvariable/signal_spec.rb77
-rw-r--r--spec/ruby/core/conditionvariable/wait_spec.rb175
-rw-r--r--spec/ruby/core/data/constants_spec.rb23
-rw-r--r--spec/ruby/core/dir/chdir_spec.rb124
-rw-r--r--spec/ruby/core/dir/children_spec.rb142
-rw-r--r--spec/ruby/core/dir/chroot_spec.rb47
-rw-r--r--spec/ruby/core/dir/close_spec.rb19
-rw-r--r--spec/ruby/core/dir/delete_spec.rb15
-rw-r--r--spec/ruby/core/dir/dir_spec.rb7
-rw-r--r--spec/ruby/core/dir/each_child_spec.rb113
-rw-r--r--spec/ruby/core/dir/each_spec.rb64
-rw-r--r--spec/ruby/core/dir/element_reference_spec.rb33
-rw-r--r--spec/ruby/core/dir/empty_spec.rb31
-rw-r--r--spec/ruby/core/dir/entries_spec.rb77
-rw-r--r--spec/ruby/core/dir/exist_spec.rb15
-rw-r--r--spec/ruby/core/dir/fileno_spec.rb37
-rw-r--r--spec/ruby/core/dir/fixtures/common.rb184
-rw-r--r--spec/ruby/core/dir/foreach_spec.rb68
-rw-r--r--spec/ruby/core/dir/getwd_spec.rb15
-rw-r--r--spec/ruby/core/dir/glob_spec.rb226
-rw-r--r--spec/ruby/core/dir/home_spec.rb45
-rw-r--r--spec/ruby/core/dir/initialize_spec.rb23
-rw-r--r--spec/ruby/core/dir/inspect_spec.rb24
-rw-r--r--spec/ruby/core/dir/mkdir_spec.rb91
-rw-r--r--spec/ruby/core/dir/open_spec.rb15
-rw-r--r--spec/ruby/core/dir/path_spec.rb15
-rw-r--r--spec/ruby/core/dir/pos_spec.rb40
-rw-r--r--spec/ruby/core/dir/pwd_spec.rb39
-rw-r--r--spec/ruby/core/dir/read_spec.rb43
-rw-r--r--spec/ruby/core/dir/rewind_spec.rb36
-rw-r--r--spec/ruby/core/dir/rmdir_spec.rb15
-rw-r--r--spec/ruby/core/dir/seek_spec.rb19
-rw-r--r--spec/ruby/core/dir/shared/chroot.rb41
-rw-r--r--spec/ruby/core/dir/shared/closed.rb9
-rw-r--r--spec/ruby/core/dir/shared/delete.rb63
-rw-r--r--spec/ruby/core/dir/shared/exist.rb56
-rw-r--r--spec/ruby/core/dir/shared/glob.rb490
-rw-r--r--spec/ruby/core/dir/shared/open.rb73
-rw-r--r--spec/ruby/core/dir/shared/path.rb30
-rw-r--r--spec/ruby/core/dir/shared/pos.rb51
-rw-r--r--spec/ruby/core/dir/shared/pwd.rb45
-rw-r--r--spec/ruby/core/dir/tell_spec.rb18
-rw-r--r--spec/ruby/core/dir/to_path_spec.rb15
-rw-r--r--spec/ruby/core/dir/unlink_spec.rb15
-rw-r--r--spec/ruby/core/encoding/_dump_spec.rb5
-rw-r--r--spec/ruby/core/encoding/_load_spec.rb5
-rw-r--r--spec/ruby/core/encoding/aliases_spec.rb43
-rw-r--r--spec/ruby/core/encoding/ascii_compatible_spec.rb11
-rw-r--r--spec/ruby/core/encoding/compatible_spec.rb379
-rw-r--r--spec/ruby/core/encoding/converter/asciicompat_encoding_spec.rb37
-rw-r--r--spec/ruby/core/encoding/converter/constants_spec.rb131
-rw-r--r--spec/ruby/core/encoding/converter/convert_spec.rb45
-rw-r--r--spec/ruby/core/encoding/converter/convpath_spec.rb24
-rw-r--r--spec/ruby/core/encoding/converter/destination_encoding_spec.rb11
-rw-r--r--spec/ruby/core/encoding/converter/finish_spec.rb36
-rw-r--r--spec/ruby/core/encoding/converter/insert_output_spec.rb5
-rw-r--r--spec/ruby/core/encoding/converter/inspect_spec.rb13
-rw-r--r--spec/ruby/core/encoding/converter/last_error_spec.rb91
-rw-r--r--spec/ruby/core/encoding/converter/new_spec.rb119
-rw-r--r--spec/ruby/core/encoding/converter/primitive_convert_spec.rb211
-rw-r--r--spec/ruby/core/encoding/converter/primitive_errinfo_spec.rb68
-rw-r--r--spec/ruby/core/encoding/converter/putback_spec.rb56
-rw-r--r--spec/ruby/core/encoding/converter/replacement_spec.rb72
-rw-r--r--spec/ruby/core/encoding/converter/search_convpath_spec.rb30
-rw-r--r--spec/ruby/core/encoding/converter/source_encoding_spec.rb11
-rw-r--r--spec/ruby/core/encoding/default_external_spec.rb71
-rw-r--r--spec/ruby/core/encoding/default_internal_spec.rb74
-rw-r--r--spec/ruby/core/encoding/dummy_spec.rb14
-rw-r--r--spec/ruby/core/encoding/find_spec.rb82
-rw-r--r--spec/ruby/core/encoding/fixtures/classes.rb49
-rw-r--r--spec/ruby/core/encoding/inspect_spec.rb19
-rw-r--r--spec/ruby/core/encoding/invalid_byte_sequence_error/destination_encoding_name_spec.rb18
-rw-r--r--spec/ruby/core/encoding/invalid_byte_sequence_error/destination_encoding_spec.rb18
-rw-r--r--spec/ruby/core/encoding/invalid_byte_sequence_error/error_bytes_spec.rb30
-rw-r--r--spec/ruby/core/encoding/invalid_byte_sequence_error/incomplete_input_spec.rb28
-rw-r--r--spec/ruby/core/encoding/invalid_byte_sequence_error/readagain_bytes_spec.rb30
-rw-r--r--spec/ruby/core/encoding/invalid_byte_sequence_error/source_encoding_name_spec.rb28
-rw-r--r--spec/ruby/core/encoding/invalid_byte_sequence_error/source_encoding_spec.rb33
-rw-r--r--spec/ruby/core/encoding/list_spec.rb51
-rw-r--r--spec/ruby/core/encoding/locale_charmap_spec.rb56
-rw-r--r--spec/ruby/core/encoding/name_list_spec.rb23
-rw-r--r--spec/ruby/core/encoding/name_spec.rb5
-rw-r--r--spec/ruby/core/encoding/names_spec.rb35
-rw-r--r--spec/ruby/core/encoding/replicate_spec.rb67
-rw-r--r--spec/ruby/core/encoding/shared/name.rb15
-rw-r--r--spec/ruby/core/encoding/to_s_spec.rb5
-rw-r--r--spec/ruby/core/encoding/undefined_conversion_error/destination_encoding_name_spec.rb15
-rw-r--r--spec/ruby/core/encoding/undefined_conversion_error/destination_encoding_spec.rb15
-rw-r--r--spec/ruby/core/encoding/undefined_conversion_error/error_char_spec.rb27
-rw-r--r--spec/ruby/core/encoding/undefined_conversion_error/source_encoding_name_spec.rb28
-rw-r--r--spec/ruby/core/encoding/undefined_conversion_error/source_encoding_spec.rb29
-rw-r--r--spec/ruby/core/enumerable/all_spec.rb182
-rw-r--r--spec/ruby/core/enumerable/any_spec.rb195
-rw-r--r--spec/ruby/core/enumerable/chain_spec.rb23
-rw-r--r--spec/ruby/core/enumerable/chunk_spec.rb72
-rw-r--r--spec/ruby/core/enumerable/chunk_while_spec.rb42
-rw-r--r--spec/ruby/core/enumerable/collect_concat_spec.rb7
-rw-r--r--spec/ruby/core/enumerable/collect_spec.rb7
-rw-r--r--spec/ruby/core/enumerable/count_spec.rb59
-rw-r--r--spec/ruby/core/enumerable/cycle_spec.rb104
-rw-r--r--spec/ruby/core/enumerable/detect_spec.rb7
-rw-r--r--spec/ruby/core/enumerable/drop_spec.rb43
-rw-r--r--spec/ruby/core/enumerable/drop_while_spec.rb50
-rw-r--r--spec/ruby/core/enumerable/each_cons_spec.rb99
-rw-r--r--spec/ruby/core/enumerable/each_entry_spec.rb41
-rw-r--r--spec/ruby/core/enumerable/each_slice_spec.rb101
-rw-r--r--spec/ruby/core/enumerable/each_with_index_spec.rb53
-rw-r--r--spec/ruby/core/enumerable/each_with_object_spec.rb41
-rw-r--r--spec/ruby/core/enumerable/entries_spec.rb7
-rw-r--r--spec/ruby/core/enumerable/filter_map_spec.rb26
-rw-r--r--spec/ruby/core/enumerable/filter_spec.rb7
-rw-r--r--spec/ruby/core/enumerable/find_all_spec.rb7
-rw-r--r--spec/ruby/core/enumerable/find_index_spec.rb89
-rw-r--r--spec/ruby/core/enumerable/find_spec.rb7
-rw-r--r--spec/ruby/core/enumerable/first_spec.rb28
-rw-r--r--spec/ruby/core/enumerable/fixtures/classes.rb345
-rw-r--r--spec/ruby/core/enumerable/flat_map_spec.rb7
-rw-r--r--spec/ruby/core/enumerable/grep_spec.rb102
-rw-r--r--spec/ruby/core/enumerable/grep_v_spec.rb91
-rw-r--r--spec/ruby/core/enumerable/group_by_spec.rb47
-rw-r--r--spec/ruby/core/enumerable/include_spec.rb7
-rw-r--r--spec/ruby/core/enumerable/inject_spec.rb7
-rw-r--r--spec/ruby/core/enumerable/lazy_spec.rb10
-rw-r--r--spec/ruby/core/enumerable/map_spec.rb7
-rw-r--r--spec/ruby/core/enumerable/max_by_spec.rb81
-rw-r--r--spec/ruby/core/enumerable/max_spec.rb119
-rw-r--r--spec/ruby/core/enumerable/member_spec.rb7
-rw-r--r--spec/ruby/core/enumerable/min_by_spec.rb81
-rw-r--r--spec/ruby/core/enumerable/min_spec.rb123
-rw-r--r--spec/ruby/core/enumerable/minmax_by_spec.rb44
-rw-r--r--spec/ruby/core/enumerable/minmax_spec.rb20
-rw-r--r--spec/ruby/core/enumerable/none_spec.rb148
-rw-r--r--spec/ruby/core/enumerable/one_spec.rb150
-rw-r--r--spec/ruby/core/enumerable/partition_spec.rb20
-rw-r--r--spec/ruby/core/enumerable/reduce_spec.rb7
-rw-r--r--spec/ruby/core/enumerable/reject_spec.rb25
-rw-r--r--spec/ruby/core/enumerable/reverse_each_spec.rb26
-rw-r--r--spec/ruby/core/enumerable/select_spec.rb7
-rw-r--r--spec/ruby/core/enumerable/shared/collect.rb107
-rw-r--r--spec/ruby/core/enumerable/shared/collect_concat.rb54
-rw-r--r--spec/ruby/core/enumerable/shared/entries.rb26
-rw-r--r--spec/ruby/core/enumerable/shared/enumerable_enumeratorized.rb33
-rw-r--r--spec/ruby/core/enumerable/shared/enumeratorized.rb42
-rw-r--r--spec/ruby/core/enumerable/shared/find.rb77
-rw-r--r--spec/ruby/core/enumerable/shared/find_all.rb31
-rw-r--r--spec/ruby/core/enumerable/shared/include.rb34
-rw-r--r--spec/ruby/core/enumerable/shared/inject.rb69
-rw-r--r--spec/ruby/core/enumerable/shared/take.rb63
-rw-r--r--spec/ruby/core/enumerable/slice_after_spec.rb61
-rw-r--r--spec/ruby/core/enumerable/slice_before_spec.rb64
-rw-r--r--spec/ruby/core/enumerable/slice_when_spec.rb54
-rw-r--r--spec/ruby/core/enumerable/sort_by_spec.rb43
-rw-r--r--spec/ruby/core/enumerable/sort_spec.rb54
-rw-r--r--spec/ruby/core/enumerable/sum_spec.rb37
-rw-r--r--spec/ruby/core/enumerable/take_spec.rb13
-rw-r--r--spec/ruby/core/enumerable/take_while_spec.rb51
-rw-r--r--spec/ruby/core/enumerable/tally_spec.rb82
-rw-r--r--spec/ruby/core/enumerable/to_a_spec.rb7
-rw-r--r--spec/ruby/core/enumerable/to_h_spec.rb88
-rw-r--r--spec/ruby/core/enumerable/uniq_spec.rb122
-rw-r--r--spec/ruby/core/enumerable/zip_spec.rb41
-rw-r--r--spec/ruby/core/enumerator/arithmetic_sequence/begin_spec.rb18
-rw-r--r--spec/ruby/core/enumerator/arithmetic_sequence/each_spec.rb17
-rw-r--r--spec/ruby/core/enumerator/arithmetic_sequence/end_spec.rb16
-rw-r--r--spec/ruby/core/enumerator/arithmetic_sequence/eq_spec.rb18
-rw-r--r--spec/ruby/core/enumerator/arithmetic_sequence/exclude_end_spec.rb17
-rw-r--r--spec/ruby/core/enumerator/arithmetic_sequence/first_spec.rb9
-rw-r--r--spec/ruby/core/enumerator/arithmetic_sequence/hash_spec.rb20
-rw-r--r--spec/ruby/core/enumerator/arithmetic_sequence/inspect_spec.rb20
-rw-r--r--spec/ruby/core/enumerator/arithmetic_sequence/last_spec.rb9
-rw-r--r--spec/ruby/core/enumerator/arithmetic_sequence/new_spec.rb17
-rw-r--r--spec/ruby/core/enumerator/arithmetic_sequence/size_spec.rb17
-rw-r--r--spec/ruby/core/enumerator/arithmetic_sequence/step_spec.rb11
-rw-r--r--spec/ruby/core/enumerator/chain/each_spec.rb15
-rw-r--r--spec/ruby/core/enumerator/chain/initialize_spec.rb31
-rw-r--r--spec/ruby/core/enumerator/chain/inspect_spec.rb14
-rw-r--r--spec/ruby/core/enumerator/chain/rewind_spec.rb51
-rw-r--r--spec/ruby/core/enumerator/chain/size_spec.rb22
-rw-r--r--spec/ruby/core/enumerator/each_spec.rb89
-rw-r--r--spec/ruby/core/enumerator/each_with_index_spec.rb36
-rw-r--r--spec/ruby/core/enumerator/each_with_object_spec.rb6
-rw-r--r--spec/ruby/core/enumerator/enum_for_spec.rb6
-rw-r--r--spec/ruby/core/enumerator/enumerator_spec.rb7
-rw-r--r--spec/ruby/core/enumerator/feed_spec.rb52
-rw-r--r--spec/ruby/core/enumerator/first_spec.rb7
-rw-r--r--spec/ruby/core/enumerator/fixtures/common.rb9
-rw-r--r--spec/ruby/core/enumerator/generator/each_spec.rb40
-rw-r--r--spec/ruby/core/enumerator/generator/initialize_spec.rb26
-rw-r--r--spec/ruby/core/enumerator/initialize_spec.rb65
-rw-r--r--spec/ruby/core/enumerator/inspect_spec.rb17
-rw-r--r--spec/ruby/core/enumerator/lazy/chunk_spec.rb67
-rw-r--r--spec/ruby/core/enumerator/lazy/chunk_while_spec.rb14
-rw-r--r--spec/ruby/core/enumerator/lazy/collect_concat_spec.rb8
-rw-r--r--spec/ruby/core/enumerator/lazy/collect_spec.rb8
-rw-r--r--spec/ruby/core/enumerator/lazy/drop_spec.rb58
-rw-r--r--spec/ruby/core/enumerator/lazy/drop_while_spec.rb66
-rw-r--r--spec/ruby/core/enumerator/lazy/eager_spec.rb29
-rw-r--r--spec/ruby/core/enumerator/lazy/enum_for_spec.rb8
-rw-r--r--spec/ruby/core/enumerator/lazy/filter_map_spec.rb16
-rw-r--r--spec/ruby/core/enumerator/lazy/filter_spec.rb6
-rw-r--r--spec/ruby/core/enumerator/lazy/find_all_spec.rb8
-rw-r--r--spec/ruby/core/enumerator/lazy/fixtures/classes.rb54
-rw-r--r--spec/ruby/core/enumerator/lazy/flat_map_spec.rb16
-rw-r--r--spec/ruby/core/enumerator/lazy/force_spec.rb36
-rw-r--r--spec/ruby/core/enumerator/lazy/grep_spec.rb121
-rw-r--r--spec/ruby/core/enumerator/lazy/grep_v_spec.rb123
-rw-r--r--spec/ruby/core/enumerator/lazy/initialize_spec.rb63
-rw-r--r--spec/ruby/core/enumerator/lazy/lazy_spec.rb28
-rw-r--r--spec/ruby/core/enumerator/lazy/map_spec.rb12
-rw-r--r--spec/ruby/core/enumerator/lazy/reject_spec.rb78
-rw-r--r--spec/ruby/core/enumerator/lazy/select_spec.rb47
-rw-r--r--spec/ruby/core/enumerator/lazy/shared/collect.rb62
-rw-r--r--spec/ruby/core/enumerator/lazy/shared/collect_concat.rb78
-rw-r--r--spec/ruby/core/enumerator/lazy/shared/select.rb66
-rw-r--r--spec/ruby/core/enumerator/lazy/shared/to_enum.rb55
-rw-r--r--spec/ruby/core/enumerator/lazy/slice_after_spec.rb14
-rw-r--r--spec/ruby/core/enumerator/lazy/slice_before_spec.rb14
-rw-r--r--spec/ruby/core/enumerator/lazy/slice_when_spec.rb14
-rw-r--r--spec/ruby/core/enumerator/lazy/take_spec.rb66
-rw-r--r--spec/ruby/core/enumerator/lazy/take_while_spec.rb60
-rw-r--r--spec/ruby/core/enumerator/lazy/to_enum_spec.rb8
-rw-r--r--spec/ruby/core/enumerator/lazy/uniq_spec.rb74
-rw-r--r--spec/ruby/core/enumerator/lazy/with_index_spec.rb30
-rw-r--r--spec/ruby/core/enumerator/lazy/zip_spec.rb86
-rw-r--r--spec/ruby/core/enumerator/new_spec.rb121
-rw-r--r--spec/ruby/core/enumerator/next_spec.rb38
-rw-r--r--spec/ruby/core/enumerator/next_values_spec.rb55
-rw-r--r--spec/ruby/core/enumerator/peek_spec.rb36
-rw-r--r--spec/ruby/core/enumerator/peek_values_spec.rb57
-rw-r--r--spec/ruby/core/enumerator/plus_spec.rb33
-rw-r--r--spec/ruby/core/enumerator/produce_spec.rb36
-rw-r--r--spec/ruby/core/enumerator/rewind_spec.rb70
-rw-r--r--spec/ruby/core/enumerator/size_spec.rb26
-rw-r--r--spec/ruby/core/enumerator/to_enum_spec.rb6
-rw-r--r--spec/ruby/core/enumerator/with_index_spec.rb72
-rw-r--r--spec/ruby/core/enumerator/with_object_spec.rb6
-rw-r--r--spec/ruby/core/enumerator/yielder/append_spec.rb35
-rw-r--r--spec/ruby/core/enumerator/yielder/initialize_spec.rb18
-rw-r--r--spec/ruby/core/enumerator/yielder/to_proc_spec.rb18
-rw-r--r--spec/ruby/core/enumerator/yielder/yield_spec.rb33
-rw-r--r--spec/ruby/core/env/assoc_spec.rb31
-rw-r--r--spec/ruby/core/env/clear_spec.rb20
-rw-r--r--spec/ruby/core/env/delete_if_spec.rb54
-rw-r--r--spec/ruby/core/env/delete_spec.rb49
-rw-r--r--spec/ruby/core/env/each_key_spec.rb34
-rw-r--r--spec/ruby/core/env/each_pair_spec.rb6
-rw-r--r--spec/ruby/core/env/each_spec.rb6
-rw-r--r--spec/ruby/core/env/each_value_spec.rb34
-rw-r--r--spec/ruby/core/env/element_reference_spec.rb76
-rw-r--r--spec/ruby/core/env/element_set_spec.rb6
-rw-r--r--spec/ruby/core/env/empty_spec.rb23
-rw-r--r--spec/ruby/core/env/except_spec.rb36
-rw-r--r--spec/ruby/core/env/fetch_spec.rb63
-rw-r--r--spec/ruby/core/env/filter_spec.rb13
-rw-r--r--spec/ruby/core/env/fixtures/common.rb9
-rw-r--r--spec/ruby/core/env/has_key_spec.rb6
-rw-r--r--spec/ruby/core/env/has_value_spec.rb6
-rw-r--r--spec/ruby/core/env/include_spec.rb6
-rw-r--r--spec/ruby/core/env/index_spec.rb14
-rw-r--r--spec/ruby/core/env/indexes_spec.rb1
-rw-r--r--spec/ruby/core/env/indices_spec.rb1
-rw-r--r--spec/ruby/core/env/inspect_spec.rb11
-rw-r--r--spec/ruby/core/env/invert_spec.rb16
-rw-r--r--spec/ruby/core/env/keep_if_spec.rb54
-rw-r--r--spec/ruby/core/env/key_spec.rb11
-rw-r--r--spec/ruby/core/env/keys_spec.rb14
-rw-r--r--spec/ruby/core/env/length_spec.rb6
-rw-r--r--spec/ruby/core/env/member_spec.rb6
-rw-r--r--spec/ruby/core/env/merge_spec.rb8
-rw-r--r--spec/ruby/core/env/rassoc_spec.rb42
-rw-r--r--spec/ruby/core/env/rehash_spec.rb7
-rw-r--r--spec/ruby/core/env/reject_spec.rb101
-rw-r--r--spec/ruby/core/env/replace_spec.rb51
-rw-r--r--spec/ruby/core/env/select_spec.rb13
-rw-r--r--spec/ruby/core/env/shared/each.rb65
-rw-r--r--spec/ruby/core/env/shared/include.rb23
-rw-r--r--spec/ruby/core/env/shared/key.rb31
-rw-r--r--spec/ruby/core/env/shared/length.rb13
-rw-r--r--spec/ruby/core/env/shared/select.rb61
-rw-r--r--spec/ruby/core/env/shared/store.rb60
-rw-r--r--spec/ruby/core/env/shared/to_hash.rb33
-rw-r--r--spec/ruby/core/env/shared/update.rb100
-rw-r--r--spec/ruby/core/env/shared/value.rb22
-rw-r--r--spec/ruby/core/env/shift_spec.rb47
-rw-r--r--spec/ruby/core/env/size_spec.rb6
-rw-r--r--spec/ruby/core/env/slice_spec.rb27
-rw-r--r--spec/ruby/core/env/spec_helper.rb26
-rw-r--r--spec/ruby/core/env/store_spec.rb6
-rw-r--r--spec/ruby/core/env/to_a_spec.rb18
-rw-r--r--spec/ruby/core/env/to_h_spec.rb58
-rw-r--r--spec/ruby/core/env/to_hash_spec.rb6
-rw-r--r--spec/ruby/core/env/to_s_spec.rb7
-rw-r--r--spec/ruby/core/env/update_spec.rb6
-rw-r--r--spec/ruby/core/env/value_spec.rb6
-rw-r--r--spec/ruby/core/env/values_at_spec.rb38
-rw-r--r--spec/ruby/core/env/values_spec.rb14
-rw-r--r--spec/ruby/core/exception/backtrace_locations_spec.rb39
-rw-r--r--spec/ruby/core/exception/backtrace_spec.rb93
-rw-r--r--spec/ruby/core/exception/case_compare_spec.rb39
-rw-r--r--spec/ruby/core/exception/cause_spec.rb56
-rw-r--r--spec/ruby/core/exception/dup_spec.rb74
-rw-r--r--spec/ruby/core/exception/equal_value_spec.rb68
-rw-r--r--spec/ruby/core/exception/errno_spec.rb67
-rw-r--r--spec/ruby/core/exception/exception_spec.rb69
-rw-r--r--spec/ruby/core/exception/exit_value_spec.rb13
-rw-r--r--spec/ruby/core/exception/fixtures/common.rb95
-rw-r--r--spec/ruby/core/exception/frozen_error_spec.rb26
-rw-r--r--spec/ruby/core/exception/full_message_spec.rb88
-rw-r--r--spec/ruby/core/exception/hierarchy_spec.rb62
-rw-r--r--spec/ruby/core/exception/inspect_spec.rb24
-rw-r--r--spec/ruby/core/exception/interrupt_spec.rb51
-rw-r--r--spec/ruby/core/exception/io_error_spec.rb45
-rw-r--r--spec/ruby/core/exception/key_error_spec.rb19
-rw-r--r--spec/ruby/core/exception/load_error_spec.rb21
-rw-r--r--spec/ruby/core/exception/message_spec.rb27
-rw-r--r--spec/ruby/core/exception/name_error_spec.rb28
-rw-r--r--spec/ruby/core/exception/name_spec.rb43
-rw-r--r--spec/ruby/core/exception/new_spec.rb7
-rw-r--r--spec/ruby/core/exception/no_method_error_spec.rb136
-rw-r--r--spec/ruby/core/exception/reason_spec.rb13
-rw-r--r--spec/ruby/core/exception/receiver_spec.rb58
-rw-r--r--spec/ruby/core/exception/result_spec.rb21
-rw-r--r--spec/ruby/core/exception/set_backtrace_spec.rb56
-rw-r--r--spec/ruby/core/exception/shared/new.rb18
-rw-r--r--spec/ruby/core/exception/signal_exception_spec.rb123
-rw-r--r--spec/ruby/core/exception/signm_spec.rb9
-rw-r--r--spec/ruby/core/exception/signo_spec.rb9
-rw-r--r--spec/ruby/core/exception/standard_error_spec.rb23
-rw-r--r--spec/ruby/core/exception/status_spec.rb9
-rw-r--r--spec/ruby/core/exception/success_spec.rb15
-rw-r--r--spec/ruby/core/exception/system_call_error_spec.rb143
-rw-r--r--spec/ruby/core/exception/system_exit_spec.rb17
-rw-r--r--spec/ruby/core/exception/to_s_spec.rb37
-rw-r--r--spec/ruby/core/exception/top_level_spec.rb45
-rw-r--r--spec/ruby/core/exception/uncaught_throw_error_spec.rb12
-rw-r--r--spec/ruby/core/false/and_spec.rb11
-rw-r--r--spec/ruby/core/false/dup_spec.rb7
-rw-r--r--spec/ruby/core/false/falseclass_spec.rb15
-rw-r--r--spec/ruby/core/false/inspect_spec.rb7
-rw-r--r--spec/ruby/core/false/or_spec.rb11
-rw-r--r--spec/ruby/core/false/to_s_spec.rb17
-rw-r--r--spec/ruby/core/false/xor_spec.rb11
-rw-r--r--spec/ruby/core/fiber/blocking_spec.rb62
-rw-r--r--spec/ruby/core/fiber/fixtures/classes.rb12
-rw-r--r--spec/ruby/core/fiber/new_spec.rb39
-rw-r--r--spec/ruby/core/fiber/raise_spec.rb121
-rw-r--r--spec/ruby/core/fiber/resume_spec.rb79
-rw-r--r--spec/ruby/core/fiber/shared/blocking.rb41
-rw-r--r--spec/ruby/core/fiber/yield_spec.rb49
-rw-r--r--spec/ruby/core/file/absolute_path_spec.rb96
-rw-r--r--spec/ruby/core/file/atime_spec.rb57
-rw-r--r--spec/ruby/core/file/basename_spec.rb183
-rw-r--r--spec/ruby/core/file/birthtime_spec.rb60
-rw-r--r--spec/ruby/core/file/blockdev_spec.rb6
-rw-r--r--spec/ruby/core/file/chardev_spec.rb6
-rw-r--r--spec/ruby/core/file/chmod_spec.rb185
-rw-r--r--spec/ruby/core/file/chown_spec.rb144
-rw-r--r--spec/ruby/core/file/constants/constants_spec.rb31
-rw-r--r--spec/ruby/core/file/constants_spec.rb141
-rw-r--r--spec/ruby/core/file/ctime_spec.rb51
-rw-r--r--spec/ruby/core/file/delete_spec.rb6
-rw-r--r--spec/ruby/core/file/directory_spec.rb10
-rw-r--r--spec/ruby/core/file/dirname_spec.rb124
-rw-r--r--spec/ruby/core/file/empty_spec.rb13
-rw-r--r--spec/ruby/core/file/executable_real_spec.rb7
-rw-r--r--spec/ruby/core/file/executable_spec.rb7
-rw-r--r--spec/ruby/core/file/exist_spec.rb6
-rw-r--r--spec/ruby/core/file/expand_path_spec.rb265
-rw-r--r--spec/ruby/core/file/extname_spec.rb76
-rw-r--r--spec/ruby/core/file/file_spec.rb16
-rw-r--r--spec/ruby/core/file/fixtures/common.rb22
-rw-r--r--spec/ruby/core/file/fixtures/do_not_remove1
-rw-r--r--spec/ruby/core/file/fixtures/file_types.rb66
-rw-r--r--spec/ruby/core/file/flock_spec.rb106
-rw-r--r--spec/ruby/core/file/fnmatch_spec.rb10
-rw-r--r--spec/ruby/core/file/ftype_spec.rb82
-rw-r--r--spec/ruby/core/file/grpowned_spec.rb10
-rw-r--r--spec/ruby/core/file/identical_spec.rb6
-rw-r--r--spec/ruby/core/file/initialize_spec.rb19
-rw-r--r--spec/ruby/core/file/inspect_spec.rb17
-rw-r--r--spec/ruby/core/file/join_spec.rb148
-rw-r--r--spec/ruby/core/file/lchmod_spec.rb32
-rw-r--r--spec/ruby/core/file/lchown_spec.rb59
-rw-r--r--spec/ruby/core/file/link_spec.rb39
-rw-r--r--spec/ruby/core/file/lstat_spec.rb33
-rw-r--r--spec/ruby/core/file/lutime_spec.rb38
-rw-r--r--spec/ruby/core/file/mkfifo_spec.rb51
-rw-r--r--spec/ruby/core/file/mtime_spec.rb51
-rw-r--r--spec/ruby/core/file/new_spec.rb162
-rw-r--r--spec/ruby/core/file/null_spec.rb15
-rw-r--r--spec/ruby/core/file/open_spec.rb696
-rw-r--r--spec/ruby/core/file/owned_spec.rb35
-rw-r--r--spec/ruby/core/file/path_spec.rb40
-rw-r--r--spec/ruby/core/file/pipe_spec.rb32
-rw-r--r--spec/ruby/core/file/printf_spec.rb18
-rw-r--r--spec/ruby/core/file/read_spec.rb6
-rw-r--r--spec/ruby/core/file/readable_real_spec.rb7
-rw-r--r--spec/ruby/core/file/readable_spec.rb7
-rw-r--r--spec/ruby/core/file/readlink_spec.rb86
-rw-r--r--spec/ruby/core/file/realdirpath_spec.rb104
-rw-r--r--spec/ruby/core/file/realpath_spec.rb94
-rw-r--r--spec/ruby/core/file/rename_spec.rb37
-rw-r--r--spec/ruby/core/file/reopen_spec.rb32
-rw-r--r--spec/ruby/core/file/setgid_spec.rb36
-rw-r--r--spec/ruby/core/file/setuid_spec.rb38
-rw-r--r--spec/ruby/core/file/shared/fnmatch.rb241
-rw-r--r--spec/ruby/core/file/shared/open.rb12
-rw-r--r--spec/ruby/core/file/shared/path.rb92
-rw-r--r--spec/ruby/core/file/shared/read.rb15
-rw-r--r--spec/ruby/core/file/shared/stat.rb32
-rw-r--r--spec/ruby/core/file/shared/unlink.rb61
-rw-r--r--spec/ruby/core/file/size_spec.rb119
-rw-r--r--spec/ruby/core/file/socket_spec.rb42
-rw-r--r--spec/ruby/core/file/split_spec.rb64
-rw-r--r--spec/ruby/core/file/stat/atime_spec.rb18
-rw-r--r--spec/ruby/core/file/stat/birthtime_spec.rb27
-rw-r--r--spec/ruby/core/file/stat/blksize_spec.rb27
-rw-r--r--spec/ruby/core/file/stat/blockdev_spec.rb7
-rw-r--r--spec/ruby/core/file/stat/blocks_spec.rb27
-rw-r--r--spec/ruby/core/file/stat/chardev_spec.rb7
-rw-r--r--spec/ruby/core/file/stat/comparison_spec.rb66
-rw-r--r--spec/ruby/core/file/stat/ctime_spec.rb18
-rw-r--r--spec/ruby/core/file/stat/dev_major_spec.rb23
-rw-r--r--spec/ruby/core/file/stat/dev_minor_spec.rb23
-rw-r--r--spec/ruby/core/file/stat/dev_spec.rb15
-rw-r--r--spec/ruby/core/file/stat/directory_spec.rb7
-rw-r--r--spec/ruby/core/file/stat/executable_real_spec.rb7
-rw-r--r--spec/ruby/core/file/stat/executable_spec.rb7
-rw-r--r--spec/ruby/core/file/stat/file_spec.rb7
-rw-r--r--spec/ruby/core/file/stat/fixtures/classes.rb5
-rw-r--r--spec/ruby/core/file/stat/ftype_spec.rb64
-rw-r--r--spec/ruby/core/file/stat/gid_spec.rb19
-rw-r--r--spec/ruby/core/file/stat/grpowned_spec.rb7
-rw-r--r--spec/ruby/core/file/stat/ino_spec.rb28
-rw-r--r--spec/ruby/core/file/stat/inspect_spec.rb26
-rw-r--r--spec/ruby/core/file/stat/mode_spec.rb19
-rw-r--r--spec/ruby/core/file/stat/mtime_spec.rb18
-rw-r--r--spec/ruby/core/file/stat/new_spec.rb32
-rw-r--r--spec/ruby/core/file/stat/nlink_spec.rb21
-rw-r--r--spec/ruby/core/file/stat/owned_spec.rb33
-rw-r--r--spec/ruby/core/file/stat/pipe_spec.rb32
-rw-r--r--spec/ruby/core/file/stat/rdev_major_spec.rb31
-rw-r--r--spec/ruby/core/file/stat/rdev_minor_spec.rb31
-rw-r--r--spec/ruby/core/file/stat/rdev_spec.rb15
-rw-r--r--spec/ruby/core/file/stat/readable_real_spec.rb7
-rw-r--r--spec/ruby/core/file/stat/readable_spec.rb7
-rw-r--r--spec/ruby/core/file/stat/setgid_spec.rb7
-rw-r--r--spec/ruby/core/file/stat/setuid_spec.rb7
-rw-r--r--spec/ruby/core/file/stat/size_spec.rb21
-rw-r--r--spec/ruby/core/file/stat/socket_spec.rb7
-rw-r--r--spec/ruby/core/file/stat/sticky_spec.rb7
-rw-r--r--spec/ruby/core/file/stat/symlink_spec.rb7
-rw-r--r--spec/ruby/core/file/stat/uid_spec.rb18
-rw-r--r--spec/ruby/core/file/stat/world_readable_spec.rb11
-rw-r--r--spec/ruby/core/file/stat/world_writable_spec.rb11
-rw-r--r--spec/ruby/core/file/stat/writable_real_spec.rb7
-rw-r--r--spec/ruby/core/file/stat/writable_spec.rb7
-rw-r--r--spec/ruby/core/file/stat/zero_spec.rb7
-rw-r--r--spec/ruby/core/file/stat_spec.rb55
-rw-r--r--spec/ruby/core/file/sticky_spec.rb50
-rw-r--r--spec/ruby/core/file/symlink_spec.rb57
-rw-r--r--spec/ruby/core/file/to_path_spec.rb6
-rw-r--r--spec/ruby/core/file/truncate_spec.rb177
-rw-r--r--spec/ruby/core/file/umask_spec.rb57
-rw-r--r--spec/ruby/core/file/unlink_spec.rb6
-rw-r--r--spec/ruby/core/file/utime_spec.rb96
-rw-r--r--spec/ruby/core/file/world_readable_spec.rb12
-rw-r--r--spec/ruby/core/file/world_writable_spec.rb12
-rw-r--r--spec/ruby/core/file/writable_real_spec.rb7
-rw-r--r--spec/ruby/core/file/writable_spec.rb7
-rw-r--r--spec/ruby/core/file/zero_spec.rb13
-rw-r--r--spec/ruby/core/filetest/blockdev_spec.rb6
-rw-r--r--spec/ruby/core/filetest/chardev_spec.rb6
-rw-r--r--spec/ruby/core/filetest/directory_spec.rb10
-rw-r--r--spec/ruby/core/filetest/executable_real_spec.rb7
-rw-r--r--spec/ruby/core/filetest/executable_spec.rb7
-rw-r--r--spec/ruby/core/filetest/exist_spec.rb6
-rw-r--r--spec/ruby/core/filetest/file_spec.rb10
-rw-r--r--spec/ruby/core/filetest/grpowned_spec.rb10
-rw-r--r--spec/ruby/core/filetest/identical_spec.rb6
-rw-r--r--spec/ruby/core/filetest/owned_spec.rb6
-rw-r--r--spec/ruby/core/filetest/pipe_spec.rb6
-rw-r--r--spec/ruby/core/filetest/readable_real_spec.rb7
-rw-r--r--spec/ruby/core/filetest/readable_spec.rb7
-rw-r--r--spec/ruby/core/filetest/setgid_spec.rb6
-rw-r--r--spec/ruby/core/filetest/setuid_spec.rb6
-rw-r--r--spec/ruby/core/filetest/size_spec.rb34
-rw-r--r--spec/ruby/core/filetest/socket_spec.rb6
-rw-r--r--spec/ruby/core/filetest/sticky_spec.rb7
-rw-r--r--spec/ruby/core/filetest/symlink_spec.rb10
-rw-r--r--spec/ruby/core/filetest/world_readable_spec.rb5
-rw-r--r--spec/ruby/core/filetest/world_writable_spec.rb5
-rw-r--r--spec/ruby/core/filetest/writable_real_spec.rb7
-rw-r--r--spec/ruby/core/filetest/writable_spec.rb7
-rw-r--r--spec/ruby/core/filetest/zero_spec.rb13
-rw-r--r--spec/ruby/core/float/abs_spec.rb6
-rw-r--r--spec/ruby/core/float/angle_spec.rb6
-rw-r--r--spec/ruby/core/float/arg_spec.rb6
-rw-r--r--spec/ruby/core/float/case_compare_spec.rb6
-rw-r--r--spec/ruby/core/float/ceil_spec.rb21
-rw-r--r--spec/ruby/core/float/coerce_spec.rb18
-rw-r--r--spec/ruby/core/float/comparison_spec.rb108
-rw-r--r--spec/ruby/core/float/constants_spec.rb55
-rw-r--r--spec/ruby/core/float/denominator_spec.rb29
-rw-r--r--spec/ruby/core/float/divide_spec.rb39
-rw-r--r--spec/ruby/core/float/divmod_spec.rb43
-rw-r--r--spec/ruby/core/float/dup_spec.rb8
-rw-r--r--spec/ruby/core/float/eql_spec.rb16
-rw-r--r--spec/ruby/core/float/equal_value_spec.rb6
-rw-r--r--spec/ruby/core/float/exponent_spec.rb15
-rw-r--r--spec/ruby/core/float/fdiv_spec.rb6
-rw-r--r--spec/ruby/core/float/finite_spec.rb19
-rw-r--r--spec/ruby/core/float/fixtures/classes.rb4
-rw-r--r--spec/ruby/core/float/fixtures/coerce.rb15
-rw-r--r--spec/ruby/core/float/float_spec.rb19
-rw-r--r--spec/ruby/core/float/floor_spec.rb21
-rw-r--r--spec/ruby/core/float/gt_spec.rb17
-rw-r--r--spec/ruby/core/float/gte_spec.rb17
-rw-r--r--spec/ruby/core/float/hash_spec.rb11
-rw-r--r--spec/ruby/core/float/infinite_spec.rb19
-rw-r--r--spec/ruby/core/float/inspect_spec.rb6
-rw-r--r--spec/ruby/core/float/lt_spec.rb17
-rw-r--r--spec/ruby/core/float/lte_spec.rb18
-rw-r--r--spec/ruby/core/float/magnitude_spec.rb5
-rw-r--r--spec/ruby/core/float/minus_spec.rb12
-rw-r--r--spec/ruby/core/float/modulo_spec.rb10
-rw-r--r--spec/ruby/core/float/multiply_spec.rb17
-rw-r--r--spec/ruby/core/float/nan_spec.rb9
-rw-r--r--spec/ruby/core/float/negative_spec.rb33
-rw-r--r--spec/ruby/core/float/next_float_spec.rb49
-rw-r--r--spec/ruby/core/float/numerator_spec.rb39
-rw-r--r--spec/ruby/core/float/phase_spec.rb6
-rw-r--r--spec/ruby/core/float/plus_spec.rb12
-rw-r--r--spec/ruby/core/float/positive_spec.rb33
-rw-r--r--spec/ruby/core/float/prev_float_spec.rb49
-rw-r--r--spec/ruby/core/float/quo_spec.rb6
-rw-r--r--spec/ruby/core/float/rationalize_spec.rb43
-rw-r--r--spec/ruby/core/float/round_spec.rb130
-rw-r--r--spec/ruby/core/float/shared/abs.rb21
-rw-r--r--spec/ruby/core/float/shared/arg.rb36
-rw-r--r--spec/ruby/core/float/shared/arithmetic_exception_in_coerce.rb11
-rw-r--r--spec/ruby/core/float/shared/comparison_exception_in_coerce.rb11
-rw-r--r--spec/ruby/core/float/shared/equal.rb17
-rw-r--r--spec/ruby/core/float/shared/modulo.rb48
-rw-r--r--spec/ruby/core/float/shared/quo.rb59
-rw-r--r--spec/ruby/core/float/shared/to_i.rb10
-rw-r--r--spec/ruby/core/float/shared/to_s.rb308
-rw-r--r--spec/ruby/core/float/to_f_spec.rb9
-rw-r--r--spec/ruby/core/float/to_i_spec.rb6
-rw-r--r--spec/ruby/core/float/to_int_spec.rb6
-rw-r--r--spec/ruby/core/float/to_r_spec.rb5
-rw-r--r--spec/ruby/core/float/to_s_spec.rb6
-rw-r--r--spec/ruby/core/float/truncate_spec.rb14
-rw-r--r--spec/ruby/core/float/uminus_spec.rb28
-rw-r--r--spec/ruby/core/float/uplus_spec.rb9
-rw-r--r--spec/ruby/core/float/zero_spec.rb9
-rw-r--r--spec/ruby/core/gc/auto_compact_spec.rb26
-rw-r--r--spec/ruby/core/gc/count_spec.rb17
-rw-r--r--spec/ruby/core/gc/disable_spec.rb18
-rw-r--r--spec/ruby/core/gc/enable_spec.rb13
-rw-r--r--spec/ruby/core/gc/garbage_collect_spec.rb15
-rw-r--r--spec/ruby/core/gc/measure_total_time_spec.rb19
-rw-r--r--spec/ruby/core/gc/profiler/clear_spec.rb5
-rw-r--r--spec/ruby/core/gc/profiler/disable_spec.rb16
-rw-r--r--spec/ruby/core/gc/profiler/enable_spec.rb17
-rw-r--r--spec/ruby/core/gc/profiler/enabled_spec.rb21
-rw-r--r--spec/ruby/core/gc/profiler/report_spec.rb5
-rw-r--r--spec/ruby/core/gc/profiler/result_spec.rb7
-rw-r--r--spec/ruby/core/gc/profiler/total_time_spec.rb7
-rw-r--r--spec/ruby/core/gc/start_spec.rb12
-rw-r--r--spec/ruby/core/gc/stat_spec.rb62
-rw-r--r--spec/ruby/core/gc/stress_spec.rb27
-rw-r--r--spec/ruby/core/gc/total_time_spec.rb15
-rw-r--r--spec/ruby/core/hash/allocate_spec.rb15
-rw-r--r--spec/ruby/core/hash/any_spec.rb30
-rw-r--r--spec/ruby/core/hash/assoc_spec.rb50
-rw-r--r--spec/ruby/core/hash/clear_spec.rb32
-rw-r--r--spec/ruby/core/hash/clone_spec.rb12
-rw-r--r--spec/ruby/core/hash/compact_spec.rb59
-rw-r--r--spec/ruby/core/hash/compare_by_identity_spec.rb138
-rw-r--r--spec/ruby/core/hash/constructor_spec.rb123
-rw-r--r--spec/ruby/core/hash/deconstruct_keys_spec.rb25
-rw-r--r--spec/ruby/core/hash/default_proc_spec.rb80
-rw-r--r--spec/ruby/core/hash/default_spec.rb46
-rw-r--r--spec/ruby/core/hash/delete_if_spec.rb44
-rw-r--r--spec/ruby/core/hash/delete_spec.rb44
-rw-r--r--spec/ruby/core/hash/dig_spec.rb66
-rw-r--r--spec/ruby/core/hash/each_key_spec.rb23
-rw-r--r--spec/ruby/core/hash/each_pair_spec.rb11
-rw-r--r--spec/ruby/core/hash/each_spec.rb11
-rw-r--r--spec/ruby/core/hash/each_value_spec.rb23
-rw-r--r--spec/ruby/core/hash/element_reference_spec.rb134
-rw-r--r--spec/ruby/core/hash/element_set_spec.rb7
-rw-r--r--spec/ruby/core/hash/empty_spec.rb15
-rw-r--r--spec/ruby/core/hash/eql_spec.rb9
-rw-r--r--spec/ruby/core/hash/equal_value_spec.rb18
-rw-r--r--spec/ruby/core/hash/except_spec.rb34
-rw-r--r--spec/ruby/core/hash/fetch_spec.rb44
-rw-r--r--spec/ruby/core/hash/fetch_values_spec.rb35
-rw-r--r--spec/ruby/core/hash/filter_spec.rb10
-rw-r--r--spec/ruby/core/hash/fixtures/classes.rb75
-rw-r--r--spec/ruby/core/hash/fixtures/name.rb30
-rw-r--r--spec/ruby/core/hash/flatten_spec.rb62
-rw-r--r--spec/ruby/core/hash/gt_spec.rb42
-rw-r--r--spec/ruby/core/hash/gte_spec.rb42
-rw-r--r--spec/ruby/core/hash/has_key_spec.rb7
-rw-r--r--spec/ruby/core/hash/has_value_spec.rb7
-rw-r--r--spec/ruby/core/hash/hash_spec.rb44
-rw-r--r--spec/ruby/core/hash/include_spec.rb7
-rw-r--r--spec/ruby/core/hash/index_spec.rb9
-rw-r--r--spec/ruby/core/hash/initialize_spec.rb61
-rw-r--r--spec/ruby/core/hash/inspect_spec.rb7
-rw-r--r--spec/ruby/core/hash/invert_spec.rb27
-rw-r--r--spec/ruby/core/hash/keep_if_spec.rb37
-rw-r--r--spec/ruby/core/hash/key_spec.rb12
-rw-r--r--spec/ruby/core/hash/keys_spec.rb23
-rw-r--r--spec/ruby/core/hash/length_spec.rb7
-rw-r--r--spec/ruby/core/hash/lt_spec.rb42
-rw-r--r--spec/ruby/core/hash/lte_spec.rb42
-rw-r--r--spec/ruby/core/hash/member_spec.rb7
-rw-r--r--spec/ruby/core/hash/merge_spec.rb100
-rw-r--r--spec/ruby/core/hash/new_spec.rb36
-rw-r--r--spec/ruby/core/hash/rassoc_spec.rb42
-rw-r--r--spec/ruby/core/hash/rehash_spec.rb84
-rw-r--r--spec/ruby/core/hash/reject_spec.rb102
-rw-r--r--spec/ruby/core/hash/replace_spec.rb7
-rw-r--r--spec/ruby/core/hash/ruby2_keywords_hash_spec.rb47
-rw-r--r--spec/ruby/core/hash/select_spec.rb10
-rw-r--r--spec/ruby/core/hash/shared/comparison.rb15
-rw-r--r--spec/ruby/core/hash/shared/each.rb124
-rw-r--r--spec/ruby/core/hash/shared/eql.rb250
-rw-r--r--spec/ruby/core/hash/shared/equal.rb90
-rw-r--r--spec/ruby/core/hash/shared/greater_than.rb23
-rw-r--r--spec/ruby/core/hash/shared/index.rb37
-rw-r--r--spec/ruby/core/hash/shared/iteration.rb19
-rw-r--r--spec/ruby/core/hash/shared/key.rb38
-rw-r--r--spec/ruby/core/hash/shared/length.rb12
-rw-r--r--spec/ruby/core/hash/shared/less_than.rb23
-rw-r--r--spec/ruby/core/hash/shared/replace.rb51
-rw-r--r--spec/ruby/core/hash/shared/select.rb91
-rw-r--r--spec/ruby/core/hash/shared/store.rb115
-rw-r--r--spec/ruby/core/hash/shared/to_s.rb98
-rw-r--r--spec/ruby/core/hash/shared/update.rb76
-rw-r--r--spec/ruby/core/hash/shared/value.rb14
-rw-r--r--spec/ruby/core/hash/shared/values_at.rb9
-rw-r--r--spec/ruby/core/hash/shift_spec.rb79
-rw-r--r--spec/ruby/core/hash/size_spec.rb7
-rw-r--r--spec/ruby/core/hash/slice_spec.rb53
-rw-r--r--spec/ruby/core/hash/sort_spec.rb17
-rw-r--r--spec/ruby/core/hash/store_spec.rb7
-rw-r--r--spec/ruby/core/hash/to_a_spec.rb39
-rw-r--r--spec/ruby/core/hash/to_h_spec.rb72
-rw-r--r--spec/ruby/core/hash/to_hash_spec.rb14
-rw-r--r--spec/ruby/core/hash/to_proc_spec.rb99
-rw-r--r--spec/ruby/core/hash/to_s_spec.rb7
-rw-r--r--spec/ruby/core/hash/transform_keys_spec.rb148
-rw-r--r--spec/ruby/core/hash/transform_values_spec.rb97
-rw-r--r--spec/ruby/core/hash/try_convert_spec.rb50
-rw-r--r--spec/ruby/core/hash/update_spec.rb7
-rw-r--r--spec/ruby/core/hash/value_spec.rb7
-rw-r--r--spec/ruby/core/hash/values_at_spec.rb7
-rw-r--r--spec/ruby/core/hash/values_spec.rb10
-rw-r--r--spec/ruby/core/integer/abs_spec.rb6
-rw-r--r--spec/ruby/core/integer/allbits_spec.rb37
-rw-r--r--spec/ruby/core/integer/anybits_spec.rb36
-rw-r--r--spec/ruby/core/integer/bit_and_spec.rb97
-rw-r--r--spec/ruby/core/integer/bit_length_spec.rb76
-rw-r--r--spec/ruby/core/integer/bit_or_spec.rb68
-rw-r--r--spec/ruby/core/integer/bit_xor_spec.rb72
-rw-r--r--spec/ruby/core/integer/case_compare_spec.rb6
-rw-r--r--spec/ruby/core/integer/ceil_spec.rb19
-rw-r--r--spec/ruby/core/integer/chr_spec.rb256
-rw-r--r--spec/ruby/core/integer/coerce_spec.rb104
-rw-r--r--spec/ruby/core/integer/comparison_spec.rb177
-rw-r--r--spec/ruby/core/integer/complement_spec.rb20
-rw-r--r--spec/ruby/core/integer/constants_spec.rb25
-rw-r--r--spec/ruby/core/integer/denominator_spec.rb20
-rw-r--r--spec/ruby/core/integer/digits_spec.rb41
-rw-r--r--spec/ruby/core/integer/div_spec.rb146
-rw-r--r--spec/ruby/core/integer/divide_spec.rb89
-rw-r--r--spec/ruby/core/integer/divmod_spec.rb117
-rw-r--r--spec/ruby/core/integer/downto_spec.rb69
-rw-r--r--spec/ruby/core/integer/dup_spec.rb13
-rw-r--r--spec/ruby/core/integer/element_reference_spec.rb190
-rw-r--r--spec/ruby/core/integer/equal_value_spec.rb6
-rw-r--r--spec/ruby/core/integer/even_spec.rb40
-rw-r--r--spec/ruby/core/integer/exponent_spec.rb7
-rw-r--r--spec/ruby/core/integer/fdiv_spec.rb49
-rw-r--r--spec/ruby/core/integer/fixtures/classes.rb4
-rw-r--r--spec/ruby/core/integer/floor_spec.rb19
-rw-r--r--spec/ruby/core/integer/gcd_spec.rb69
-rw-r--r--spec/ruby/core/integer/gcdlcm_spec.rb53
-rw-r--r--spec/ruby/core/integer/gt_spec.rb43
-rw-r--r--spec/ruby/core/integer/gte_spec.rb43
-rw-r--r--spec/ruby/core/integer/integer_spec.rb20
-rw-r--r--spec/ruby/core/integer/lcm_spec.rb58
-rw-r--r--spec/ruby/core/integer/left_shift_spec.rb168
-rw-r--r--spec/ruby/core/integer/lt_spec.rb45
-rw-r--r--spec/ruby/core/integer/lte_spec.rb53
-rw-r--r--spec/ruby/core/integer/magnitude_spec.rb6
-rw-r--r--spec/ruby/core/integer/minus_spec.rb43
-rw-r--r--spec/ruby/core/integer/modulo_spec.rb10
-rw-r--r--spec/ruby/core/integer/multiply_spec.rb45
-rw-r--r--spec/ruby/core/integer/next_spec.rb6
-rw-r--r--spec/ruby/core/integer/nobits_spec.rb36
-rw-r--r--spec/ruby/core/integer/numerator_spec.rb18
-rw-r--r--spec/ruby/core/integer/odd_spec.rb38
-rw-r--r--spec/ruby/core/integer/ord_spec.rb17
-rw-r--r--spec/ruby/core/integer/plus_spec.rb58
-rw-r--r--spec/ruby/core/integer/pow_spec.rb51
-rw-r--r--spec/ruby/core/integer/pred_spec.rb11
-rw-r--r--spec/ruby/core/integer/rationalize_spec.rb39
-rw-r--r--spec/ruby/core/integer/remainder_spec.rb51
-rw-r--r--spec/ruby/core/integer/right_shift_spec.rb194
-rw-r--r--spec/ruby/core/integer/round_spec.rb83
-rw-r--r--spec/ruby/core/integer/shared/abs.rb18
-rw-r--r--spec/ruby/core/integer/shared/arithmetic_coerce.rb31
-rw-r--r--spec/ruby/core/integer/shared/comparison_coerce.rb11
-rw-r--r--spec/ruby/core/integer/shared/equal.rb58
-rw-r--r--spec/ruby/core/integer/shared/exponent.rb123
-rw-r--r--spec/ruby/core/integer/shared/integer_rounding.rb19
-rw-r--r--spec/ruby/core/integer/shared/modulo.rb74
-rw-r--r--spec/ruby/core/integer/shared/next.rb25
-rw-r--r--spec/ruby/core/integer/shared/to_i.rb8
-rw-r--r--spec/ruby/core/integer/size_spec.rb34
-rw-r--r--spec/ruby/core/integer/sqrt_spec.rb31
-rw-r--r--spec/ruby/core/integer/succ_spec.rb6
-rw-r--r--spec/ruby/core/integer/times_spec.rb79
-rw-r--r--spec/ruby/core/integer/to_f_spec.rb23
-rw-r--r--spec/ruby/core/integer/to_i_spec.rb6
-rw-r--r--spec/ruby/core/integer/to_int_spec.rb6
-rw-r--r--spec/ruby/core/integer/to_r_spec.rb26
-rw-r--r--spec/ruby/core/integer/to_s_spec.rb95
-rw-r--r--spec/ruby/core/integer/truncate_spec.rb19
-rw-r--r--spec/ruby/core/integer/try_convert_spec.rb40
-rw-r--r--spec/ruby/core/integer/uminus_spec.rb30
-rw-r--r--spec/ruby/core/integer/upto_spec.rb69
-rw-r--r--spec/ruby/core/integer/zero_spec.rb21
-rw-r--r--spec/ruby/core/io/advise_spec.rb96
-rw-r--r--spec/ruby/core/io/binmode_spec.rb64
-rw-r--r--spec/ruby/core/io/binread_spec.rb47
-rw-r--r--spec/ruby/core/io/binwrite_spec.rb6
-rw-r--r--spec/ruby/core/io/bytes_spec.rb47
-rw-r--r--spec/ruby/core/io/chars_spec.rb30
-rw-r--r--spec/ruby/core/io/close_on_exec_spec.rb76
-rw-r--r--spec/ruby/core/io/close_read_spec.rb60
-rw-r--r--spec/ruby/core/io/close_spec.rb112
-rw-r--r--spec/ruby/core/io/close_write_spec.rb64
-rw-r--r--spec/ruby/core/io/closed_spec.rb20
-rw-r--r--spec/ruby/core/io/codepoints_spec.rb38
-rw-r--r--spec/ruby/core/io/constants_spec.rb19
-rw-r--r--spec/ruby/core/io/copy_stream_spec.rb322
-rw-r--r--spec/ruby/core/io/dup_spec.rb106
-rw-r--r--spec/ruby/core/io/each_byte_spec.rb57
-rw-r--r--spec/ruby/core/io/each_char_spec.rb12
-rw-r--r--spec/ruby/core/io/each_codepoint_spec.rb43
-rw-r--r--spec/ruby/core/io/each_line_spec.rb11
-rw-r--r--spec/ruby/core/io/each_spec.rb11
-rw-r--r--spec/ruby/core/io/eof_spec.rb107
-rw-r--r--spec/ruby/core/io/external_encoding_spec.rb225
-rw-r--r--spec/ruby/core/io/fcntl_spec.rb8
-rw-r--r--spec/ruby/core/io/fdatasync_spec.rb5
-rw-r--r--spec/ruby/core/io/fileno_spec.rb12
-rw-r--r--spec/ruby/core/io/fixtures/bom_UTF-16BE.txtbin20 -> 0 bytes-rw-r--r--spec/ruby/core/io/fixtures/bom_UTF-16LE.txtbin20 -> 0 bytes-rw-r--r--spec/ruby/core/io/fixtures/bom_UTF-32BE.txtbin40 -> 0 bytes-rw-r--r--spec/ruby/core/io/fixtures/bom_UTF-32LE.txtbin40 -> 0 bytes-rw-r--r--spec/ruby/core/io/fixtures/bom_UTF-8.txt1
-rw-r--r--spec/ruby/core/io/fixtures/classes.rb192
-rw-r--r--spec/ruby/core/io/fixtures/copy_in_out.rb2
-rw-r--r--spec/ruby/core/io/fixtures/copy_stream.txt6
-rw-r--r--spec/ruby/core/io/fixtures/empty.txt0
-rw-r--r--spec/ruby/core/io/fixtures/incomplete.txt1
-rw-r--r--spec/ruby/core/io/fixtures/lines.txt9
-rw-r--r--spec/ruby/core/io/fixtures/no_bom_UTF-8.txt1
-rw-r--r--spec/ruby/core/io/fixtures/numbered_lines.txt5
-rw-r--r--spec/ruby/core/io/fixtures/one_byte.txt1
-rw-r--r--spec/ruby/core/io/fixtures/read_binary.txt1
-rw-r--r--spec/ruby/core/io/fixtures/read_euc_jp.txt1
-rw-r--r--spec/ruby/core/io/fixtures/read_text.txt1
-rw-r--r--spec/ruby/core/io/fixtures/reopen_stdout.rb3
-rw-r--r--spec/ruby/core/io/flush_spec.rb37
-rw-r--r--spec/ruby/core/io/for_fd_spec.rb10
-rw-r--r--spec/ruby/core/io/foreach_spec.rb81
-rw-r--r--spec/ruby/core/io/fsync_spec.rb24
-rw-r--r--spec/ruby/core/io/getbyte_spec.rb42
-rw-r--r--spec/ruby/core/io/getc_spec.rb42
-rw-r--r--spec/ruby/core/io/gets_spec.rb327
-rw-r--r--spec/ruby/core/io/initialize_spec.rb49
-rw-r--r--spec/ruby/core/io/inspect_spec.rb23
-rw-r--r--spec/ruby/core/io/internal_encoding_spec.rb147
-rw-r--r--spec/ruby/core/io/io_spec.rb11
-rw-r--r--spec/ruby/core/io/ioctl_spec.rb32
-rw-r--r--spec/ruby/core/io/isatty_spec.rb6
-rw-r--r--spec/ruby/core/io/lineno_spec.rb131
-rw-r--r--spec/ruby/core/io/lines_spec.rb46
-rw-r--r--spec/ruby/core/io/new_spec.rb10
-rw-r--r--spec/ruby/core/io/nonblock_spec.rb70
-rw-r--r--spec/ruby/core/io/open_spec.rb86
-rw-r--r--spec/ruby/core/io/output_spec.rb27
-rw-r--r--spec/ruby/core/io/pid_spec.rb35
-rw-r--r--spec/ruby/core/io/pipe_spec.rb214
-rw-r--r--spec/ruby/core/io/popen_spec.rb271
-rw-r--r--spec/ruby/core/io/pos_spec.rb11
-rw-r--r--spec/ruby/core/io/pread_spec.rb50
-rw-r--r--spec/ruby/core/io/print_spec.rb53
-rw-r--r--spec/ruby/core/io/printf_spec.rb32
-rw-r--r--spec/ruby/core/io/putc_spec.rb11
-rw-r--r--spec/ruby/core/io/puts_spec.rb139
-rw-r--r--spec/ruby/core/io/pwrite_spec.rb43
-rw-r--r--spec/ruby/core/io/read_nonblock_spec.rb99
-rw-r--r--spec/ruby/core/io/read_spec.rb616
-rw-r--r--spec/ruby/core/io/readbyte_spec.rb24
-rw-r--r--spec/ruby/core/io/readchar_spec.rb44
-rw-r--r--spec/ruby/core/io/readline_spec.rb51
-rw-r--r--spec/ruby/core/io/readlines_spec.rb210
-rw-r--r--spec/ruby/core/io/readpartial_spec.rb96
-rw-r--r--spec/ruby/core/io/reopen_spec.rb313
-rw-r--r--spec/ruby/core/io/rewind_spec.rb38
-rw-r--r--spec/ruby/core/io/seek_spec.rb79
-rw-r--r--spec/ruby/core/io/select_spec.rb120
-rw-r--r--spec/ruby/core/io/set_encoding_by_bom_spec.rb77
-rw-r--r--spec/ruby/core/io/set_encoding_spec.rb191
-rw-r--r--spec/ruby/core/io/shared/binwrite.rb78
-rw-r--r--spec/ruby/core/io/shared/chars.rb73
-rw-r--r--spec/ruby/core/io/shared/codepoints.rb54
-rw-r--r--spec/ruby/core/io/shared/each.rb183
-rw-r--r--spec/ruby/core/io/shared/gets_ascii.rb19
-rw-r--r--spec/ruby/core/io/shared/new.rb402
-rw-r--r--spec/ruby/core/io/shared/pos.rb72
-rw-r--r--spec/ruby/core/io/shared/readlines.rb209
-rw-r--r--spec/ruby/core/io/shared/tty.rb24
-rw-r--r--spec/ruby/core/io/shared/write.rb109
-rw-r--r--spec/ruby/core/io/stat_spec.rb24
-rw-r--r--spec/ruby/core/io/sync_spec.rb64
-rw-r--r--spec/ruby/core/io/sysopen_spec.rb50
-rw-r--r--spec/ruby/core/io/sysread_spec.rb103
-rw-r--r--spec/ruby/core/io/sysseek_spec.rb49
-rw-r--r--spec/ruby/core/io/syswrite_spec.rb71
-rw-r--r--spec/ruby/core/io/tell_spec.rb7
-rw-r--r--spec/ruby/core/io/to_i_spec.rb12
-rw-r--r--spec/ruby/core/io/to_io_spec.rb21
-rw-r--r--spec/ruby/core/io/try_convert_spec.rb49
-rw-r--r--spec/ruby/core/io/tty_spec.rb6
-rw-r--r--spec/ruby/core/io/ungetbyte_spec.rb64
-rw-r--r--spec/ruby/core/io/ungetc_spec.rb148
-rw-r--r--spec/ruby/core/io/write_nonblock_spec.rb85
-rw-r--r--spec/ruby/core/io/write_spec.rb170
-rw-r--r--spec/ruby/core/kernel/Array_spec.rb97
-rw-r--r--spec/ruby/core/kernel/Complex_spec.rb185
-rw-r--r--spec/ruby/core/kernel/Float_spec.rb345
-rw-r--r--spec/ruby/core/kernel/Hash_spec.rb63
-rw-r--r--spec/ruby/core/kernel/Integer_spec.rb801
-rw-r--r--spec/ruby/core/kernel/Rational_spec.rb6
-rw-r--r--spec/ruby/core/kernel/String_spec.rb106
-rw-r--r--spec/ruby/core/kernel/__callee___spec.rb48
-rw-r--r--spec/ruby/core/kernel/__dir___spec.rb37
-rw-r--r--spec/ruby/core/kernel/__method___spec.rb40
-rw-r--r--spec/ruby/core/kernel/abort_spec.rb15
-rw-r--r--spec/ruby/core/kernel/at_exit_spec.rb70
-rw-r--r--spec/ruby/core/kernel/autoload_spec.rb175
-rw-r--r--spec/ruby/core/kernel/backtick_spec.rb84
-rw-r--r--spec/ruby/core/kernel/binding_spec.rb51
-rw-r--r--spec/ruby/core/kernel/block_given_spec.rb38
-rw-r--r--spec/ruby/core/kernel/caller_locations_spec.rb86
-rw-r--r--spec/ruby/core/kernel/caller_spec.rb72
-rw-r--r--spec/ruby/core/kernel/case_compare_spec.rb135
-rw-r--r--spec/ruby/core/kernel/catch_spec.rb127
-rw-r--r--spec/ruby/core/kernel/chomp_spec.rb65
-rw-r--r--spec/ruby/core/kernel/chop_spec.rb53
-rw-r--r--spec/ruby/core/kernel/class_spec.rb26
-rw-r--r--spec/ruby/core/kernel/clone_spec.rb216
-rw-r--r--spec/ruby/core/kernel/comparison_spec.rb31
-rw-r--r--spec/ruby/core/kernel/define_singleton_method_spec.rb99
-rw-r--r--spec/ruby/core/kernel/display_spec.rb6
-rw-r--r--spec/ruby/core/kernel/dup_spec.rb67
-rw-r--r--spec/ruby/core/kernel/enum_for_spec.rb5
-rw-r--r--spec/ruby/core/kernel/eql_spec.rb10
-rw-r--r--spec/ruby/core/kernel/equal_value_spec.rb15
-rw-r--r--spec/ruby/core/kernel/eval_spec.rb439
-rw-r--r--spec/ruby/core/kernel/exec_spec.rb18
-rw-r--r--spec/ruby/core/kernel/exit_spec.rb27
-rw-r--r--spec/ruby/core/kernel/extend_spec.rb79
-rw-r--r--spec/ruby/core/kernel/fail_spec.rb42
-rw-r--r--spec/ruby/core/kernel/fixtures/__callee__.rb34
-rw-r--r--spec/ruby/core/kernel/fixtures/__dir__.rb2
-rw-r--r--spec/ruby/core/kernel/fixtures/__method__.rb34
-rw-r--r--spec/ruby/core/kernel/fixtures/at_exit.rb3
-rw-r--r--spec/ruby/core/kernel/fixtures/autoload_b.rb5
-rw-r--r--spec/ruby/core/kernel/fixtures/autoload_d.rb5
-rw-r--r--spec/ruby/core/kernel/fixtures/autoload_from_included_module.rb9
-rw-r--r--spec/ruby/core/kernel/fixtures/autoload_from_included_module2.rb9
-rw-r--r--spec/ruby/core/kernel/fixtures/autoload_frozen.rb7
-rw-r--r--spec/ruby/core/kernel/fixtures/caller.rb7
-rw-r--r--spec/ruby/core/kernel/fixtures/caller_at_exit.rb7
-rw-r--r--spec/ruby/core/kernel/fixtures/caller_locations.rb7
-rw-r--r--spec/ruby/core/kernel/fixtures/chomp.rb4
-rw-r--r--spec/ruby/core/kernel/fixtures/chomp_f.rb4
-rw-r--r--spec/ruby/core/kernel/fixtures/chop.rb4
-rw-r--r--spec/ruby/core/kernel/fixtures/chop_f.rb4
-rw-r--r--spec/ruby/core/kernel/fixtures/classes.rb504
-rw-r--r--spec/ruby/core/kernel/fixtures/eval_locals.rb6
-rw-r--r--spec/ruby/core/kernel/fixtures/eval_return_with_lambda.rb12
-rw-r--r--spec/ruby/core/kernel/fixtures/eval_return_without_lambda.rb14
-rw-r--r--spec/ruby/core/kernel/fixtures/singleton_methods.rb13
-rw-r--r--spec/ruby/core/kernel/fixtures/test.rb362
-rw-r--r--spec/ruby/core/kernel/fixtures/warn_core_method.rb14
-rw-r--r--spec/ruby/core/kernel/fixtures/warn_require.rb1
-rw-r--r--spec/ruby/core/kernel/fixtures/warn_require_caller.rb2
-rw-r--r--spec/ruby/core/kernel/fork_spec.rb15
-rw-r--r--spec/ruby/core/kernel/format_spec.rb15
-rw-r--r--spec/ruby/core/kernel/freeze_spec.rb91
-rw-r--r--spec/ruby/core/kernel/frozen_spec.rb76
-rw-r--r--spec/ruby/core/kernel/gets_spec.rb17
-rw-r--r--spec/ruby/core/kernel/global_variables_spec.rb26
-rw-r--r--spec/ruby/core/kernel/gsub_spec.rb96
-rw-r--r--spec/ruby/core/kernel/initialize_clone_spec.rb28
-rw-r--r--spec/ruby/core/kernel/initialize_copy_spec.rb29
-rw-r--r--spec/ruby/core/kernel/initialize_dup_spec.rb20
-rw-r--r--spec/ruby/core/kernel/inspect_spec.rb41
-rw-r--r--spec/ruby/core/kernel/instance_of_spec.rb40
-rw-r--r--spec/ruby/core/kernel/instance_variable_defined_spec.rb41
-rw-r--r--spec/ruby/core/kernel/instance_variable_get_spec.rb105
-rw-r--r--spec/ruby/core/kernel/instance_variable_set_spec.rb93
-rw-r--r--spec/ruby/core/kernel/instance_variables_spec.rb40
-rw-r--r--spec/ruby/core/kernel/is_a_spec.rb6
-rw-r--r--spec/ruby/core/kernel/iterator_spec.rb14
-rw-r--r--spec/ruby/core/kernel/itself_spec.rb9
-rw-r--r--spec/ruby/core/kernel/kind_of_spec.rb6
-rw-r--r--spec/ruby/core/kernel/lambda_spec.rb150
-rw-r--r--spec/ruby/core/kernel/load_spec.rb40
-rw-r--r--spec/ruby/core/kernel/local_variables_spec.rb48
-rw-r--r--spec/ruby/core/kernel/loop_spec.rb79
-rw-r--r--spec/ruby/core/kernel/match_spec.rb22
-rw-r--r--spec/ruby/core/kernel/method_spec.rb37
-rw-r--r--spec/ruby/core/kernel/methods_spec.rb101
-rw-r--r--spec/ruby/core/kernel/nil_spec.rb12
-rw-r--r--spec/ruby/core/kernel/not_match_spec.rb21
-rw-r--r--spec/ruby/core/kernel/object_id_spec.rb6
-rw-r--r--spec/ruby/core/kernel/open_spec.rb167
-rw-r--r--spec/ruby/core/kernel/p_spec.rb87
-rw-r--r--spec/ruby/core/kernel/pp_spec.rb9
-rw-r--r--spec/ruby/core/kernel/print_spec.rb24
-rw-r--r--spec/ruby/core/kernel/printf_spec.rb63
-rw-r--r--spec/ruby/core/kernel/private_methods_spec.rb69
-rw-r--r--spec/ruby/core/kernel/proc_spec.rb66
-rw-r--r--spec/ruby/core/kernel/protected_methods_spec.rb69
-rw-r--r--spec/ruby/core/kernel/public_method_spec.rb32
-rw-r--r--spec/ruby/core/kernel/public_methods_spec.rb76
-rw-r--r--spec/ruby/core/kernel/public_send_spec.rb116
-rw-r--r--spec/ruby/core/kernel/putc_spec.rb39
-rw-r--r--spec/ruby/core/kernel/puts_spec.rb29
-rw-r--r--spec/ruby/core/kernel/raise_spec.rb57
-rw-r--r--spec/ruby/core/kernel/rand_spec.rb197
-rw-r--r--spec/ruby/core/kernel/readline_spec.rb12
-rw-r--r--spec/ruby/core/kernel/readlines_spec.rb12
-rw-r--r--spec/ruby/core/kernel/remove_instance_variable_spec.rb59
-rw-r--r--spec/ruby/core/kernel/require_relative_spec.rb437
-rw-r--r--spec/ruby/core/kernel/require_spec.rb34
-rw-r--r--spec/ruby/core/kernel/respond_to_missing_spec.rb100
-rw-r--r--spec/ruby/core/kernel/respond_to_spec.rb72
-rw-r--r--spec/ruby/core/kernel/select_spec.rb18
-rw-r--r--spec/ruby/core/kernel/send_spec.rb68
-rw-r--r--spec/ruby/core/kernel/set_trace_func_spec.rb12
-rw-r--r--spec/ruby/core/kernel/shared/dup_clone.rb115
-rw-r--r--spec/ruby/core/kernel/shared/kind_of.rb55
-rw-r--r--spec/ruby/core/kernel/shared/lambda.rb11
-rw-r--r--spec/ruby/core/kernel/shared/load.rb172
-rw-r--r--spec/ruby/core/kernel/shared/method.rb56
-rw-r--r--spec/ruby/core/kernel/shared/require.rb780
-rw-r--r--spec/ruby/core/kernel/shared/sprintf.rb930
-rw-r--r--spec/ruby/core/kernel/shared/sprintf_encoding.rb36
-rw-r--r--spec/ruby/core/kernel/shared/then.rb20
-rw-r--r--spec/ruby/core/kernel/singleton_class_spec.rb27
-rw-r--r--spec/ruby/core/kernel/singleton_method_spec.rb41
-rw-r--r--spec/ruby/core/kernel/singleton_methods_spec.rb192
-rw-r--r--spec/ruby/core/kernel/sleep_spec.rb62
-rw-r--r--spec/ruby/core/kernel/spawn_spec.rb25
-rw-r--r--spec/ruby/core/kernel/sprintf_spec.rb24
-rw-r--r--spec/ruby/core/kernel/srand_spec.rb73
-rw-r--r--spec/ruby/core/kernel/sub_spec.rb26
-rw-r--r--spec/ruby/core/kernel/syscall_spec.rb12
-rw-r--r--spec/ruby/core/kernel/system_spec.rb115
-rw-r--r--spec/ruby/core/kernel/taint_spec.rb62
-rw-r--r--spec/ruby/core/kernel/tainted_spec.rb31
-rw-r--r--spec/ruby/core/kernel/tap_spec.rb13
-rw-r--r--spec/ruby/core/kernel/test_spec.rb109
-rw-r--r--spec/ruby/core/kernel/then_spec.rb6
-rw-r--r--spec/ruby/core/kernel/throw_spec.rb80
-rw-r--r--spec/ruby/core/kernel/to_enum_spec.rb5
-rw-r--r--spec/ruby/core/kernel/to_s_spec.rb18
-rw-r--r--spec/ruby/core/kernel/trace_var_spec.rb54
-rw-r--r--spec/ruby/core/kernel/trap_spec.rb9
-rw-r--r--spec/ruby/core/kernel/trust_spec.rb43
-rw-r--r--spec/ruby/core/kernel/untaint_spec.rb43
-rw-r--r--spec/ruby/core/kernel/untrace_var_spec.rb12
-rw-r--r--spec/ruby/core/kernel/untrust_spec.rb42
-rw-r--r--spec/ruby/core/kernel/untrusted_spec.rb46
-rw-r--r--spec/ruby/core/kernel/warn_spec.rb309
-rw-r--r--spec/ruby/core/kernel/yield_self_spec.rb6
-rw-r--r--spec/ruby/core/main/define_method_spec.rb28
-rw-r--r--spec/ruby/core/main/fixtures/classes.rb26
-rw-r--r--spec/ruby/core/main/fixtures/string_refinement.rb7
-rw-r--r--spec/ruby/core/main/fixtures/string_refinement_user.rb11
-rw-r--r--spec/ruby/core/main/fixtures/wrapped_include.rb1
-rw-r--r--spec/ruby/core/main/include_spec.rb16
-rw-r--r--spec/ruby/core/main/private_spec.rb52
-rw-r--r--spec/ruby/core/main/public_spec.rb53
-rw-r--r--spec/ruby/core/main/ruby2_keywords_spec.rb11
-rw-r--r--spec/ruby/core/main/to_s_spec.rb7
-rw-r--r--spec/ruby/core/main/using_spec.rb132
-rw-r--r--spec/ruby/core/marshal/dump_spec.rb633
-rw-r--r--spec/ruby/core/marshal/fixtures/marshal_data.rb420
-rw-r--r--spec/ruby/core/marshal/fixtures/random.dumpbin2520 -> 0 bytes-rw-r--r--spec/ruby/core/marshal/float_spec.rb77
-rw-r--r--spec/ruby/core/marshal/load_spec.rb6
-rw-r--r--spec/ruby/core/marshal/major_version_spec.rb7
-rw-r--r--spec/ruby/core/marshal/minor_version_spec.rb7
-rw-r--r--spec/ruby/core/marshal/restore_spec.rb6
-rw-r--r--spec/ruby/core/marshal/shared/load.rb1059
-rw-r--r--spec/ruby/core/matchdata/allocate_spec.rb10
-rw-r--r--spec/ruby/core/matchdata/begin_spec.rb104
-rw-r--r--spec/ruby/core/matchdata/captures_spec.rb15
-rw-r--r--spec/ruby/core/matchdata/dup_spec.rb14
-rw-r--r--spec/ruby/core/matchdata/element_reference_spec.rb95
-rw-r--r--spec/ruby/core/matchdata/end_spec.rb104
-rw-r--r--spec/ruby/core/matchdata/eql_spec.rb6
-rw-r--r--spec/ruby/core/matchdata/equal_value_spec.rb6
-rw-r--r--spec/ruby/core/matchdata/fixtures/classes.rb3
-rw-r--r--spec/ruby/core/matchdata/hash_spec.rb5
-rw-r--r--spec/ruby/core/matchdata/inspect_spec.rb23
-rw-r--r--spec/ruby/core/matchdata/length_spec.rb6
-rw-r--r--spec/ruby/core/matchdata/match_length_spec.rb34
-rw-r--r--spec/ruby/core/matchdata/match_spec.rb34
-rw-r--r--spec/ruby/core/matchdata/named_captures_spec.rb15
-rw-r--r--spec/ruby/core/matchdata/names_spec.rb33
-rw-r--r--spec/ruby/core/matchdata/offset_spec.rb30
-rw-r--r--spec/ruby/core/matchdata/post_match_spec.rb44
-rw-r--r--spec/ruby/core/matchdata/pre_match_spec.rb44
-rw-r--r--spec/ruby/core/matchdata/regexp_spec.rb24
-rw-r--r--spec/ruby/core/matchdata/shared/eql.rb26
-rw-r--r--spec/ruby/core/matchdata/shared/length.rb5
-rw-r--r--spec/ruby/core/matchdata/size_spec.rb6
-rw-r--r--spec/ruby/core/matchdata/string_spec.rb25
-rw-r--r--spec/ruby/core/matchdata/to_a_spec.rb15
-rw-r--r--spec/ruby/core/matchdata/to_s_spec.rb15
-rw-r--r--spec/ruby/core/matchdata/values_at_spec.rb21
-rw-r--r--spec/ruby/core/math/acos_spec.rb56
-rw-r--r--spec/ruby/core/math/acosh_spec.rb41
-rw-r--r--spec/ruby/core/math/asin_spec.rb48
-rw-r--r--spec/ruby/core/math/asinh_spec.rb42
-rw-r--r--spec/ruby/core/math/atan2_spec.rb54
-rw-r--r--spec/ruby/core/math/atan_spec.rb40
-rw-r--r--spec/ruby/core/math/atanh_spec.rb14
-rw-r--r--spec/ruby/core/math/cbrt_spec.rb27
-rw-r--r--spec/ruby/core/math/constants_spec.rb22
-rw-r--r--spec/ruby/core/math/cos_spec.rb42
-rw-r--r--spec/ruby/core/math/cosh_spec.rb37
-rw-r--r--spec/ruby/core/math/erf_spec.rb44
-rw-r--r--spec/ruby/core/math/erfc_spec.rb43
-rw-r--r--spec/ruby/core/math/exp_spec.rb37
-rw-r--r--spec/ruby/core/math/fixtures/classes.rb28
-rw-r--r--spec/ruby/core/math/frexp_spec.rb37
-rw-r--r--spec/ruby/core/math/gamma_spec.rb69
-rw-r--r--spec/ruby/core/math/hypot_spec.rb41
-rw-r--r--spec/ruby/core/math/ldexp_spec.rb54
-rw-r--r--spec/ruby/core/math/lgamma_spec.rb54
-rw-r--r--spec/ruby/core/math/log10_spec.rb43
-rw-r--r--spec/ruby/core/math/log2_spec.rb41
-rw-r--r--spec/ruby/core/math/log_spec.rb57
-rw-r--r--spec/ruby/core/math/sin_spec.rb39
-rw-r--r--spec/ruby/core/math/sinh_spec.rb37
-rw-r--r--spec/ruby/core/math/sqrt_spec.rb36
-rw-r--r--spec/ruby/core/math/tan_spec.rb42
-rw-r--r--spec/ruby/core/math/tanh_spec.rb39
-rw-r--r--spec/ruby/core/method/arity_spec.rb222
-rw-r--r--spec/ruby/core/method/call_spec.rb7
-rw-r--r--spec/ruby/core/method/case_compare_spec.rb7
-rw-r--r--spec/ruby/core/method/clone_spec.rb14
-rw-r--r--spec/ruby/core/method/compose_spec.rb100
-rw-r--r--spec/ruby/core/method/curry_spec.rb36
-rw-r--r--spec/ruby/core/method/element_reference_spec.rb7
-rw-r--r--spec/ruby/core/method/eql_spec.rb6
-rw-r--r--spec/ruby/core/method/equal_value_spec.rb6
-rw-r--r--spec/ruby/core/method/fixtures/classes.rb216
-rw-r--r--spec/ruby/core/method/hash_spec.rb15
-rw-r--r--spec/ruby/core/method/inspect_spec.rb6
-rw-r--r--spec/ruby/core/method/name_spec.rb22
-rw-r--r--spec/ruby/core/method/original_name_spec.rb22
-rw-r--r--spec/ruby/core/method/owner_spec.rb26
-rw-r--r--spec/ruby/core/method/parameters_spec.rb261
-rw-r--r--spec/ruby/core/method/receiver_spec.rb22
-rw-r--r--spec/ruby/core/method/shared/call.rb51
-rw-r--r--spec/ruby/core/method/shared/eql.rb94
-rw-r--r--spec/ruby/core/method/shared/to_s.rb89
-rw-r--r--spec/ruby/core/method/source_location_spec.rb113
-rw-r--r--spec/ruby/core/method/super_method_spec.rb45
-rw-r--r--spec/ruby/core/method/to_proc_spec.rb104
-rw-r--r--spec/ruby/core/method/to_s_spec.rb6
-rw-r--r--spec/ruby/core/method/unbind_spec.rb46
-rw-r--r--spec/ruby/core/module/alias_method_spec.rb173
-rw-r--r--spec/ruby/core/module/ancestors_spec.rb70
-rw-r--r--spec/ruby/core/module/append_features_spec.rb75
-rw-r--r--spec/ruby/core/module/attr_accessor_spec.rb119
-rw-r--r--spec/ruby/core/module/attr_reader_spec.rb80
-rw-r--r--spec/ruby/core/module/attr_spec.rb168
-rw-r--r--spec/ruby/core/module/attr_writer_spec.rb90
-rw-r--r--spec/ruby/core/module/autoload_spec.rb986
-rw-r--r--spec/ruby/core/module/case_compare_spec.rb31
-rw-r--r--spec/ruby/core/module/class_eval_spec.rb7
-rw-r--r--spec/ruby/core/module/class_exec_spec.rb7
-rw-r--r--spec/ruby/core/module/class_variable_defined_spec.rb72
-rw-r--r--spec/ruby/core/module/class_variable_get_spec.rb76
-rw-r--r--spec/ruby/core/module/class_variable_set_spec.rb62
-rw-r--r--spec/ruby/core/module/class_variables_spec.rb26
-rw-r--r--spec/ruby/core/module/comparison_spec.rb36
-rw-r--r--spec/ruby/core/module/const_defined_spec.rb149
-rw-r--r--spec/ruby/core/module/const_get_spec.rb237
-rw-r--r--spec/ruby/core/module/const_missing_spec.rb36
-rw-r--r--spec/ruby/core/module/const_set_spec.rb142
-rw-r--r--spec/ruby/core/module/const_source_location_spec.rb220
-rw-r--r--spec/ruby/core/module/constants_spec.rb97
-rw-r--r--spec/ruby/core/module/define_method_spec.rb768
-rw-r--r--spec/ruby/core/module/define_singleton_method_spec.rb15
-rw-r--r--spec/ruby/core/module/deprecate_constant_spec.rb63
-rw-r--r--spec/ruby/core/module/eql_spec.rb7
-rw-r--r--spec/ruby/core/module/equal_spec.rb7
-rw-r--r--spec/ruby/core/module/equal_value_spec.rb7
-rw-r--r--spec/ruby/core/module/extend_object_spec.rb70
-rw-r--r--spec/ruby/core/module/extended_spec.rb44
-rw-r--r--spec/ruby/core/module/fixtures/autoload.rb1
-rw-r--r--spec/ruby/core/module/fixtures/autoload_abc.rb11
-rw-r--r--spec/ruby/core/module/fixtures/autoload_c.rb11
-rw-r--r--spec/ruby/core/module/fixtures/autoload_callback.rb2
-rw-r--r--spec/ruby/core/module/fixtures/autoload_concur.rb9
-rw-r--r--spec/ruby/core/module/fixtures/autoload_d.rb11
-rw-r--r--spec/ruby/core/module/fixtures/autoload_during_autoload.rb7
-rw-r--r--spec/ruby/core/module/fixtures/autoload_during_require.rb4
-rw-r--r--spec/ruby/core/module/fixtures/autoload_during_require_current_file.rb5
-rw-r--r--spec/ruby/core/module/fixtures/autoload_e.rb7
-rw-r--r--spec/ruby/core/module/fixtures/autoload_empty.rb1
-rw-r--r--spec/ruby/core/module/fixtures/autoload_ex1.rb16
-rw-r--r--spec/ruby/core/module/fixtures/autoload_exception.rb3
-rw-r--r--spec/ruby/core/module/fixtures/autoload_f.rb7
-rw-r--r--spec/ruby/core/module/fixtures/autoload_g.rb7
-rw-r--r--spec/ruby/core/module/fixtures/autoload_h.rb7
-rw-r--r--spec/ruby/core/module/fixtures/autoload_i.rb5
-rw-r--r--spec/ruby/core/module/fixtures/autoload_j.rb3
-rw-r--r--spec/ruby/core/module/fixtures/autoload_k.rb7
-rw-r--r--spec/ruby/core/module/fixtures/autoload_lm.rb4
-rw-r--r--spec/ruby/core/module/fixtures/autoload_location.rb3
-rw-r--r--spec/ruby/core/module/fixtures/autoload_nested.rb8
-rw-r--r--spec/ruby/core/module/fixtures/autoload_never_set.rb1
-rw-r--r--spec/ruby/core/module/fixtures/autoload_o.rb2
-rw-r--r--spec/ruby/core/module/fixtures/autoload_overridden.rb3
-rw-r--r--spec/ruby/core/module/fixtures/autoload_r.rb4
-rw-r--r--spec/ruby/core/module/fixtures/autoload_raise.rb2
-rw-r--r--spec/ruby/core/module/fixtures/autoload_required_directly.rb7
-rw-r--r--spec/ruby/core/module/fixtures/autoload_required_directly_nested.rb1
-rw-r--r--spec/ruby/core/module/fixtures/autoload_required_directly_no_constant.rb2
-rw-r--r--spec/ruby/core/module/fixtures/autoload_s.rb5
-rw-r--r--spec/ruby/core/module/fixtures/autoload_self_during_require.rb5
-rw-r--r--spec/ruby/core/module/fixtures/autoload_subclass.rb11
-rw-r--r--spec/ruby/core/module/fixtures/autoload_t.rb3
-rw-r--r--spec/ruby/core/module/fixtures/autoload_v.rb7
-rw-r--r--spec/ruby/core/module/fixtures/autoload_w.rb2
-rw-r--r--spec/ruby/core/module/fixtures/autoload_w2.rb1
-rw-r--r--spec/ruby/core/module/fixtures/autoload_x.rb3
-rw-r--r--spec/ruby/core/module/fixtures/autoload_z.rb5
-rw-r--r--spec/ruby/core/module/fixtures/classes.rb614
-rw-r--r--spec/ruby/core/module/fixtures/constant_unicode.rb5
-rw-r--r--spec/ruby/core/module/fixtures/constants_autoload.rb6
-rw-r--r--spec/ruby/core/module/fixtures/constants_autoload_a.rb2
-rw-r--r--spec/ruby/core/module/fixtures/constants_autoload_b.rb2
-rw-r--r--spec/ruby/core/module/fixtures/constants_autoload_c.rb3
-rw-r--r--spec/ruby/core/module/fixtures/constants_autoload_d.rb4
-rw-r--r--spec/ruby/core/module/fixtures/module.rb4
-rw-r--r--spec/ruby/core/module/fixtures/multi/foo.rb6
-rw-r--r--spec/ruby/core/module/fixtures/multi/foo/bar_baz.rb11
-rw-r--r--spec/ruby/core/module/fixtures/name.rb10
-rw-r--r--spec/ruby/core/module/fixtures/path1/load_path.rb9
-rw-r--r--spec/ruby/core/module/fixtures/path2/load_path.rb1
-rw-r--r--spec/ruby/core/module/fixtures/refine.rb25
-rw-r--r--spec/ruby/core/module/fixtures/repeated_concurrent_autoload.rb8
-rw-r--r--spec/ruby/core/module/freeze_spec.rb6
-rw-r--r--spec/ruby/core/module/gt_spec.rb36
-rw-r--r--spec/ruby/core/module/gte_spec.rb33
-rw-r--r--spec/ruby/core/module/include_spec.rb556
-rw-r--r--spec/ruby/core/module/included_modules_spec.rb12
-rw-r--r--spec/ruby/core/module/included_spec.rb44
-rw-r--r--spec/ruby/core/module/initialize_copy_spec.rb18
-rw-r--r--spec/ruby/core/module/initialize_spec.rb18
-rw-r--r--spec/ruby/core/module/instance_method_spec.rb85
-rw-r--r--spec/ruby/core/module/instance_methods_spec.rb61
-rw-r--r--spec/ruby/core/module/lt_spec.rb36
-rw-r--r--spec/ruby/core/module/lte_spec.rb33
-rw-r--r--spec/ruby/core/module/method_added_spec.rb83
-rw-r--r--spec/ruby/core/module/method_defined_spec.rb98
-rw-r--r--spec/ruby/core/module/method_removed_spec.rb33
-rw-r--r--spec/ruby/core/module/method_undefined_spec.rb33
-rw-r--r--spec/ruby/core/module/module_eval_spec.rb7
-rw-r--r--spec/ruby/core/module/module_exec_spec.rb7
-rw-r--r--spec/ruby/core/module/module_function_spec.rb285
-rw-r--r--spec/ruby/core/module/name_spec.rb144
-rw-r--r--spec/ruby/core/module/nesting_spec.rb31
-rw-r--r--spec/ruby/core/module/new_spec.rb31
-rw-r--r--spec/ruby/core/module/prepend_features_spec.rb78
-rw-r--r--spec/ruby/core/module/prepend_spec.rb749
-rw-r--r--spec/ruby/core/module/prepended_spec.rb25
-rw-r--r--spec/ruby/core/module/private_class_method_spec.rb93
-rw-r--r--spec/ruby/core/module/private_constant_spec.rb32
-rw-r--r--spec/ruby/core/module/private_instance_methods_spec.rb54
-rw-r--r--spec/ruby/core/module/private_method_defined_spec.rb120
-rw-r--r--spec/ruby/core/module/private_spec.rb107
-rw-r--r--spec/ruby/core/module/protected_instance_methods_spec.rb57
-rw-r--r--spec/ruby/core/module/protected_method_defined_spec.rb120
-rw-r--r--spec/ruby/core/module/protected_spec.rb69
-rw-r--r--spec/ruby/core/module/public_class_method_spec.rb96
-rw-r--r--spec/ruby/core/module/public_constant_spec.rb38
-rw-r--r--spec/ruby/core/module/public_instance_method_spec.rb65
-rw-r--r--spec/ruby/core/module/public_instance_methods_spec.rb61
-rw-r--r--spec/ruby/core/module/public_method_defined_spec.rb72
-rw-r--r--spec/ruby/core/module/public_spec.rb57
-rw-r--r--spec/ruby/core/module/refine_spec.rb1109
-rw-r--r--spec/ruby/core/module/remove_class_variable_spec.rb44
-rw-r--r--spec/ruby/core/module/remove_const_spec.rb105
-rw-r--r--spec/ruby/core/module/remove_method_spec.rb131
-rw-r--r--spec/ruby/core/module/ruby2_keywords_spec.rb112
-rw-r--r--spec/ruby/core/module/shared/class_eval.rb159
-rw-r--r--spec/ruby/core/module/shared/class_exec.rb29
-rw-r--r--spec/ruby/core/module/shared/equal_value.rb14
-rw-r--r--spec/ruby/core/module/shared/set_visibility.rb186
-rw-r--r--spec/ruby/core/module/singleton_class_spec.rb27
-rw-r--r--spec/ruby/core/module/to_s_spec.rb68
-rw-r--r--spec/ruby/core/module/undef_method_spec.rb181
-rw-r--r--spec/ruby/core/module/using_spec.rb377
-rw-r--r--spec/ruby/core/mutex/lock_spec.rb34
-rw-r--r--spec/ruby/core/mutex/locked_spec.rb36
-rw-r--r--spec/ruby/core/mutex/owned_spec.rb55
-rw-r--r--spec/ruby/core/mutex/sleep_spec.rb103
-rw-r--r--spec/ruby/core/mutex/synchronize_spec.rb66
-rw-r--r--spec/ruby/core/mutex/try_lock_spec.rb32
-rw-r--r--spec/ruby/core/mutex/unlock_spec.rb38
-rw-r--r--spec/ruby/core/nil/and_spec.rb11
-rw-r--r--spec/ruby/core/nil/case_compare_spec.rb13
-rw-r--r--spec/ruby/core/nil/dup_spec.rb7
-rw-r--r--spec/ruby/core/nil/inspect_spec.rb7
-rw-r--r--spec/ruby/core/nil/match_spec.rb21
-rw-r--r--spec/ruby/core/nil/nil_spec.rb7
-rw-r--r--spec/ruby/core/nil/nilclass_spec.rb15
-rw-r--r--spec/ruby/core/nil/or_spec.rb11
-rw-r--r--spec/ruby/core/nil/rationalize_spec.rb16
-rw-r--r--spec/ruby/core/nil/to_a_spec.rb7
-rw-r--r--spec/ruby/core/nil/to_c_spec.rb7
-rw-r--r--spec/ruby/core/nil/to_f_spec.rb11
-rw-r--r--spec/ruby/core/nil/to_h_spec.rb8
-rw-r--r--spec/ruby/core/nil/to_i_spec.rb11
-rw-r--r--spec/ruby/core/nil/to_r_spec.rb7
-rw-r--r--spec/ruby/core/nil/to_s_spec.rb17
-rw-r--r--spec/ruby/core/nil/xor_spec.rb11
-rw-r--r--spec/ruby/core/numeric/abs2_spec.rb34
-rw-r--r--spec/ruby/core/numeric/abs_spec.rb6
-rw-r--r--spec/ruby/core/numeric/angle_spec.rb6
-rw-r--r--spec/ruby/core/numeric/arg_spec.rb6
-rw-r--r--spec/ruby/core/numeric/ceil_spec.rb15
-rw-r--r--spec/ruby/core/numeric/clone_spec.rb32
-rw-r--r--spec/ruby/core/numeric/coerce_spec.rb59
-rw-r--r--spec/ruby/core/numeric/comparison_spec.rb48
-rw-r--r--spec/ruby/core/numeric/conj_spec.rb6
-rw-r--r--spec/ruby/core/numeric/conjugate_spec.rb6
-rw-r--r--spec/ruby/core/numeric/denominator_spec.rb24
-rw-r--r--spec/ruby/core/numeric/div_spec.rb22
-rw-r--r--spec/ruby/core/numeric/divmod_spec.rb15
-rw-r--r--spec/ruby/core/numeric/dup_spec.rb16
-rw-r--r--spec/ruby/core/numeric/eql_spec.rb22
-rw-r--r--spec/ruby/core/numeric/fdiv_spec.rb32
-rw-r--r--spec/ruby/core/numeric/finite_spec.rb8
-rw-r--r--spec/ruby/core/numeric/fixtures/classes.rb17
-rw-r--r--spec/ruby/core/numeric/floor_spec.rb14
-rw-r--r--spec/ruby/core/numeric/i_spec.rb15
-rw-r--r--spec/ruby/core/numeric/imag_spec.rb6
-rw-r--r--spec/ruby/core/numeric/imaginary_spec.rb6
-rw-r--r--spec/ruby/core/numeric/infinite_spec.rb8
-rw-r--r--spec/ruby/core/numeric/integer_spec.rb8
-rw-r--r--spec/ruby/core/numeric/magnitude_spec.rb5
-rw-r--r--spec/ruby/core/numeric/modulo_spec.rb24
-rw-r--r--spec/ruby/core/numeric/negative_spec.rb41
-rw-r--r--spec/ruby/core/numeric/nonzero_spec.rb18
-rw-r--r--spec/ruby/core/numeric/numerator_spec.rb33
-rw-r--r--spec/ruby/core/numeric/numeric_spec.rb7
-rw-r--r--spec/ruby/core/numeric/phase_spec.rb6
-rw-r--r--spec/ruby/core/numeric/polar_spec.rb50
-rw-r--r--spec/ruby/core/numeric/positive_spec.rb41
-rw-r--r--spec/ruby/core/numeric/quo_spec.rb64
-rw-r--r--spec/ruby/core/numeric/real_spec.rb37
-rw-r--r--spec/ruby/core/numeric/rect_spec.rb6
-rw-r--r--spec/ruby/core/numeric/rectangular_spec.rb6
-rw-r--r--spec/ruby/core/numeric/remainder_spec.rb67
-rw-r--r--spec/ruby/core/numeric/round_spec.rb14
-rw-r--r--spec/ruby/core/numeric/shared/abs.rb19
-rw-r--r--spec/ruby/core/numeric/shared/arg.rb38
-rw-r--r--spec/ruby/core/numeric/shared/conj.rb20
-rw-r--r--spec/ruby/core/numeric/shared/imag.rb26
-rw-r--r--spec/ruby/core/numeric/shared/quo.rb7
-rw-r--r--spec/ruby/core/numeric/shared/rect.rb48
-rw-r--r--spec/ruby/core/numeric/shared/step.rb417
-rw-r--r--spec/ruby/core/numeric/singleton_method_added_spec.rb41
-rw-r--r--spec/ruby/core/numeric/step_spec.rb200
-rw-r--r--spec/ruby/core/numeric/to_c_spec.rb45
-rw-r--r--spec/ruby/core/numeric/to_int_spec.rb10
-rw-r--r--spec/ruby/core/numeric/truncate_spec.rb14
-rw-r--r--spec/ruby/core/numeric/uminus_spec.rb31
-rw-r--r--spec/ruby/core/numeric/uplus_spec.rb9
-rw-r--r--spec/ruby/core/numeric/zero_spec.rb18
-rw-r--r--spec/ruby/core/objectspace/_id2ref_spec.rb52
-rw-r--r--spec/ruby/core/objectspace/add_finalizer_spec.rb5
-rw-r--r--spec/ruby/core/objectspace/call_finalizer_spec.rb5
-rw-r--r--spec/ruby/core/objectspace/count_objects_spec.rb5
-rw-r--r--spec/ruby/core/objectspace/define_finalizer_spec.rb172
-rw-r--r--spec/ruby/core/objectspace/each_object_spec.rb213
-rw-r--r--spec/ruby/core/objectspace/finalizers_spec.rb5
-rw-r--r--spec/ruby/core/objectspace/fixtures/classes.rb64
-rw-r--r--spec/ruby/core/objectspace/garbage_collect_spec.rb22
-rw-r--r--spec/ruby/core/objectspace/remove_finalizer_spec.rb5
-rw-r--r--spec/ruby/core/objectspace/undefine_finalizer_spec.rb5
-rw-r--r--spec/ruby/core/objectspace/weakmap/each_key_spec.rb11
-rw-r--r--spec/ruby/core/objectspace/weakmap/each_pair_spec.rb11
-rw-r--r--spec/ruby/core/objectspace/weakmap/each_spec.rb11
-rw-r--r--spec/ruby/core/objectspace/weakmap/each_value_spec.rb11
-rw-r--r--spec/ruby/core/objectspace/weakmap/element_reference_spec.rb24
-rw-r--r--spec/ruby/core/objectspace/weakmap/element_set_spec.rb61
-rw-r--r--spec/ruby/core/objectspace/weakmap/include_spec.rb6
-rw-r--r--spec/ruby/core/objectspace/weakmap/inspect_spec.rb25
-rw-r--r--spec/ruby/core/objectspace/weakmap/key_spec.rb6
-rw-r--r--spec/ruby/core/objectspace/weakmap/keys_spec.rb6
-rw-r--r--spec/ruby/core/objectspace/weakmap/length_spec.rb6
-rw-r--r--spec/ruby/core/objectspace/weakmap/member_spec.rb6
-rw-r--r--spec/ruby/core/objectspace/weakmap/shared/each.rb10
-rw-r--r--spec/ruby/core/objectspace/weakmap/shared/include.rb34
-rw-r--r--spec/ruby/core/objectspace/weakmap/shared/members.rb14
-rw-r--r--spec/ruby/core/objectspace/weakmap/shared/size.rb14
-rw-r--r--spec/ruby/core/objectspace/weakmap/size_spec.rb6
-rw-r--r--spec/ruby/core/objectspace/weakmap/values_spec.rb6
-rw-r--r--spec/ruby/core/objectspace/weakmap_spec.rb12
-rw-r--r--spec/ruby/core/proc/allocate_spec.rb9
-rw-r--r--spec/ruby/core/proc/arity_spec.rb640
-rw-r--r--spec/ruby/core/proc/binding_spec.rb21
-rw-r--r--spec/ruby/core/proc/block_pass_spec.rb43
-rw-r--r--spec/ruby/core/proc/call_spec.rb16
-rw-r--r--spec/ruby/core/proc/case_compare_spec.rb16
-rw-r--r--spec/ruby/core/proc/clone_spec.rb6
-rw-r--r--spec/ruby/core/proc/compose_spec.rb154
-rw-r--r--spec/ruby/core/proc/curry_spec.rb180
-rw-r--r--spec/ruby/core/proc/dup_spec.rb6
-rw-r--r--spec/ruby/core/proc/element_reference_spec.rb27
-rw-r--r--spec/ruby/core/proc/eql_spec.rb12
-rw-r--r--spec/ruby/core/proc/equal_value_spec.rb12
-rw-r--r--spec/ruby/core/proc/fixtures/common.rb51
-rw-r--r--spec/ruby/core/proc/fixtures/proc_aref.rb9
-rw-r--r--spec/ruby/core/proc/fixtures/proc_aref_frozen.rb10
-rw-r--r--spec/ruby/core/proc/fixtures/source_location.rb55
-rw-r--r--spec/ruby/core/proc/hash_spec.rb17
-rw-r--r--spec/ruby/core/proc/inspect_spec.rb6
-rw-r--r--spec/ruby/core/proc/lambda_spec.rb60
-rw-r--r--spec/ruby/core/proc/new_spec.rb238
-rw-r--r--spec/ruby/core/proc/parameters_spec.rb95
-rw-r--r--spec/ruby/core/proc/ruby2_keywords_spec.rb64
-rw-r--r--spec/ruby/core/proc/shared/call.rb99
-rw-r--r--spec/ruby/core/proc/shared/call_arguments.rb29
-rw-r--r--spec/ruby/core/proc/shared/compose.rb47
-rw-r--r--spec/ruby/core/proc/shared/dup.rb10
-rw-r--r--spec/ruby/core/proc/shared/equal.rb100
-rw-r--r--spec/ruby/core/proc/shared/to_s.rb62
-rw-r--r--spec/ruby/core/proc/source_location_spec.rb86
-rw-r--r--spec/ruby/core/proc/to_proc_spec.rb9
-rw-r--r--spec/ruby/core/proc/to_s_spec.rb6
-rw-r--r--spec/ruby/core/proc/yield_spec.rb16
-rw-r--r--spec/ruby/core/process/abort_spec.rb6
-rw-r--r--spec/ruby/core/process/clock_getres_spec.rb33
-rw-r--r--spec/ruby/core/process/clock_gettime_spec.rb137
-rw-r--r--spec/ruby/core/process/constants_spec.rb85
-rw-r--r--spec/ruby/core/process/daemon_spec.rb115
-rw-r--r--spec/ruby/core/process/detach_spec.rb46
-rw-r--r--spec/ruby/core/process/egid_spec.rb19
-rw-r--r--spec/ruby/core/process/euid_spec.rb46
-rw-r--r--spec/ruby/core/process/exec_spec.rb241
-rw-r--r--spec/ruby/core/process/exit_spec.rb10
-rw-r--r--spec/ruby/core/process/fixtures/clocks.rb18
-rw-r--r--spec/ruby/core/process/fixtures/common.rb88
-rw-r--r--spec/ruby/core/process/fixtures/daemon.rb111
-rw-r--r--spec/ruby/core/process/fixtures/in.txt1
-rw-r--r--spec/ruby/core/process/fixtures/kill.rb45
-rw-r--r--spec/ruby/core/process/fixtures/map_fd.rb9
-rw-r--r--spec/ruby/core/process/fixtures/setpriority.rb12
-rw-r--r--spec/ruby/core/process/fork_spec.rb6
-rw-r--r--spec/ruby/core/process/getpgid_spec.rb17
-rw-r--r--spec/ruby/core/process/getpgrp_spec.rb7
-rw-r--r--spec/ruby/core/process/getpriority_spec.rb23
-rw-r--r--spec/ruby/core/process/getrlimit_spec.rb100
-rw-r--r--spec/ruby/core/process/gid/change_privilege_spec.rb5
-rw-r--r--spec/ruby/core/process/gid/eid_spec.rb9
-rw-r--r--spec/ruby/core/process/gid/grant_privilege_spec.rb5
-rw-r--r--spec/ruby/core/process/gid/re_exchange_spec.rb5
-rw-r--r--spec/ruby/core/process/gid/re_exchangeable_spec.rb5
-rw-r--r--spec/ruby/core/process/gid/rid_spec.rb5
-rw-r--r--spec/ruby/core/process/gid/sid_available_spec.rb5
-rw-r--r--spec/ruby/core/process/gid/switch_spec.rb5
-rw-r--r--spec/ruby/core/process/gid_spec.rb22
-rw-r--r--spec/ruby/core/process/groups_spec.rb67
-rw-r--r--spec/ruby/core/process/initgroups_spec.rb22
-rw-r--r--spec/ruby/core/process/kill_spec.rb132
-rw-r--r--spec/ruby/core/process/last_status_spec.rb18
-rw-r--r--spec/ruby/core/process/maxgroups_spec.rb19
-rw-r--r--spec/ruby/core/process/pid_spec.rb9
-rw-r--r--spec/ruby/core/process/ppid_spec.rb9
-rw-r--r--spec/ruby/core/process/set_proctitle_spec.rb23
-rw-r--r--spec/ruby/core/process/setpgid_spec.rb29
-rw-r--r--spec/ruby/core/process/setpgrp_spec.rb37
-rw-r--r--spec/ruby/core/process/setpriority_spec.rb60
-rw-r--r--spec/ruby/core/process/setrlimit_spec.rb241
-rw-r--r--spec/ruby/core/process/setsid_spec.rb16
-rw-r--r--spec/ruby/core/process/spawn_spec.rb728
-rw-r--r--spec/ruby/core/process/status/bit_and_spec.rb5
-rw-r--r--spec/ruby/core/process/status/coredump_spec.rb5
-rw-r--r--spec/ruby/core/process/status/equal_value_spec.rb15
-rw-r--r--spec/ruby/core/process/status/exited_spec.rb32
-rw-r--r--spec/ruby/core/process/status/exitstatus_spec.rb25
-rw-r--r--spec/ruby/core/process/status/inspect_spec.rb5
-rw-r--r--spec/ruby/core/process/status/pid_spec.rb15
-rw-r--r--spec/ruby/core/process/status/right_shift_spec.rb5
-rw-r--r--spec/ruby/core/process/status/signaled_spec.rb31
-rw-r--r--spec/ruby/core/process/status/stopped_spec.rb5
-rw-r--r--spec/ruby/core/process/status/stopsig_spec.rb5
-rw-r--r--spec/ruby/core/process/status/success_spec.rb41
-rw-r--r--spec/ruby/core/process/status/termsig_spec.rb43
-rw-r--r--spec/ruby/core/process/status/to_i_spec.rb13
-rw-r--r--spec/ruby/core/process/status/to_int_spec.rb5
-rw-r--r--spec/ruby/core/process/status/to_s_spec.rb5
-rw-r--r--spec/ruby/core/process/status/wait_spec.rb102
-rw-r--r--spec/ruby/core/process/sys/getegid_spec.rb5
-rw-r--r--spec/ruby/core/process/sys/geteuid_spec.rb5
-rw-r--r--spec/ruby/core/process/sys/getgid_spec.rb5
-rw-r--r--spec/ruby/core/process/sys/getuid_spec.rb5
-rw-r--r--spec/ruby/core/process/sys/issetugid_spec.rb5
-rw-r--r--spec/ruby/core/process/sys/setegid_spec.rb5
-rw-r--r--spec/ruby/core/process/sys/seteuid_spec.rb5
-rw-r--r--spec/ruby/core/process/sys/setgid_spec.rb5
-rw-r--r--spec/ruby/core/process/sys/setregid_spec.rb5
-rw-r--r--spec/ruby/core/process/sys/setresgid_spec.rb5
-rw-r--r--spec/ruby/core/process/sys/setresuid_spec.rb5
-rw-r--r--spec/ruby/core/process/sys/setreuid_spec.rb5
-rw-r--r--spec/ruby/core/process/sys/setrgid_spec.rb5
-rw-r--r--spec/ruby/core/process/sys/setruid_spec.rb5
-rw-r--r--spec/ruby/core/process/sys/setuid_spec.rb5
-rw-r--r--spec/ruby/core/process/times_spec.rb35
-rw-r--r--spec/ruby/core/process/uid/change_privilege_spec.rb5
-rw-r--r--spec/ruby/core/process/uid/eid_spec.rb9
-rw-r--r--spec/ruby/core/process/uid/grant_privilege_spec.rb5
-rw-r--r--spec/ruby/core/process/uid/re_exchange_spec.rb5
-rw-r--r--spec/ruby/core/process/uid/re_exchangeable_spec.rb5
-rw-r--r--spec/ruby/core/process/uid/rid_spec.rb5
-rw-r--r--spec/ruby/core/process/uid/sid_available_spec.rb5
-rw-r--r--spec/ruby/core/process/uid/switch_spec.rb5
-rw-r--r--spec/ruby/core/process/uid_spec.rb57
-rw-r--r--spec/ruby/core/process/wait2_spec.rb36
-rw-r--r--spec/ruby/core/process/wait_spec.rb91
-rw-r--r--spec/ruby/core/process/waitall_spec.rb48
-rw-r--r--spec/ruby/core/process/waitpid2_spec.rb5
-rw-r--r--spec/ruby/core/process/waitpid_spec.rb13
-rw-r--r--spec/ruby/core/queue/append_spec.rb6
-rw-r--r--spec/ruby/core/queue/clear_spec.rb6
-rw-r--r--spec/ruby/core/queue/close_spec.rb6
-rw-r--r--spec/ruby/core/queue/closed_spec.rb6
-rw-r--r--spec/ruby/core/queue/deq_spec.rb6
-rw-r--r--spec/ruby/core/queue/empty_spec.rb6
-rw-r--r--spec/ruby/core/queue/enq_spec.rb6
-rw-r--r--spec/ruby/core/queue/initialize_spec.rb38
-rw-r--r--spec/ruby/core/queue/length_spec.rb6
-rw-r--r--spec/ruby/core/queue/num_waiting_spec.rb6
-rw-r--r--spec/ruby/core/queue/pop_spec.rb6
-rw-r--r--spec/ruby/core/queue/push_spec.rb6
-rw-r--r--spec/ruby/core/queue/shift_spec.rb6
-rw-r--r--spec/ruby/core/queue/size_spec.rb6
-rw-r--r--spec/ruby/core/random/bytes_spec.rb30
-rw-r--r--spec/ruby/core/random/default_spec.rb37
-rw-r--r--spec/ruby/core/random/equal_value_spec.rb37
-rw-r--r--spec/ruby/core/random/fixtures/classes.rb15
-rw-r--r--spec/ruby/core/random/new_seed_spec.rb24
-rw-r--r--spec/ruby/core/random/new_spec.rb37
-rw-r--r--spec/ruby/core/random/rand_spec.rb219
-rw-r--r--spec/ruby/core/random/random_number_spec.rb8
-rw-r--r--spec/ruby/core/random/raw_seed_spec.rb6
-rw-r--r--spec/ruby/core/random/seed_spec.rb29
-rw-r--r--spec/ruby/core/random/shared/bytes.rb17
-rw-r--r--spec/ruby/core/random/shared/rand.rb9
-rw-r--r--spec/ruby/core/random/shared/urandom.rb23
-rw-r--r--spec/ruby/core/random/srand_spec.rb39
-rw-r--r--spec/ruby/core/range/begin_spec.rb6
-rw-r--r--spec/ruby/core/range/bsearch_spec.rb438
-rw-r--r--spec/ruby/core/range/case_compare_spec.rb15
-rw-r--r--spec/ruby/core/range/count_spec.rb14
-rw-r--r--spec/ruby/core/range/cover_spec.rb10
-rw-r--r--spec/ruby/core/range/dup_spec.rb15
-rw-r--r--spec/ruby/core/range/each_spec.rb116
-rw-r--r--spec/ruby/core/range/end_spec.rb6
-rw-r--r--spec/ruby/core/range/eql_spec.rb10
-rw-r--r--spec/ruby/core/range/equal_value_spec.rb20
-rw-r--r--spec/ruby/core/range/exclude_end_spec.rb19
-rw-r--r--spec/ruby/core/range/first_spec.rb55
-rw-r--r--spec/ruby/core/range/fixtures/classes.rb90
-rw-r--r--spec/ruby/core/range/hash_spec.rb24
-rw-r--r--spec/ruby/core/range/include_spec.rb10
-rw-r--r--spec/ruby/core/range/initialize_spec.rb50
-rw-r--r--spec/ruby/core/range/inspect_spec.rb45
-rw-r--r--spec/ruby/core/range/last_spec.rb53
-rw-r--r--spec/ruby/core/range/max_spec.rb105
-rw-r--r--spec/ruby/core/range/member_spec.rb10
-rw-r--r--spec/ruby/core/range/min_spec.rb90
-rw-r--r--spec/ruby/core/range/minmax_spec.rb170
-rw-r--r--spec/ruby/core/range/new_spec.rb77
-rw-r--r--spec/ruby/core/range/percent_spec.rb16
-rw-r--r--spec/ruby/core/range/range_spec.rb7
-rw-r--r--spec/ruby/core/range/shared/begin.rb10
-rw-r--r--spec/ruby/core/range/shared/cover.rb195
-rw-r--r--spec/ruby/core/range/shared/cover_and_include.rb78
-rw-r--r--spec/ruby/core/range/shared/end.rb10
-rw-r--r--spec/ruby/core/range/shared/equal_value.rb51
-rw-r--r--spec/ruby/core/range/shared/include.rb91
-rw-r--r--spec/ruby/core/range/size_spec.rb50
-rw-r--r--spec/ruby/core/range/step_spec.rb518
-rw-r--r--spec/ruby/core/range/to_a_spec.rb41
-rw-r--r--spec/ruby/core/range/to_s_spec.rb39
-rw-r--r--spec/ruby/core/rational/abs_spec.rb5
-rw-r--r--spec/ruby/core/rational/ceil_spec.rb5
-rw-r--r--spec/ruby/core/rational/coerce_spec.rb5
-rw-r--r--spec/ruby/core/rational/comparison_spec.rb22
-rw-r--r--spec/ruby/core/rational/denominator_spec.rb5
-rw-r--r--spec/ruby/core/rational/div_spec.rb17
-rw-r--r--spec/ruby/core/rational/divide_spec.rb19
-rw-r--r--spec/ruby/core/rational/divmod_spec.rb13
-rw-r--r--spec/ruby/core/rational/equal_value_spec.rb17
-rw-r--r--spec/ruby/core/rational/exponent_spec.rb5
-rw-r--r--spec/ruby/core/rational/fdiv_spec.rb5
-rw-r--r--spec/ruby/core/rational/floor_spec.rb5
-rw-r--r--spec/ruby/core/rational/hash_spec.rb5
-rw-r--r--spec/ruby/core/rational/inspect_spec.rb5
-rw-r--r--spec/ruby/core/rational/integer_spec.rb12
-rw-r--r--spec/ruby/core/rational/magnitude_spec.rb5
-rw-r--r--spec/ruby/core/rational/marshal_dump_spec.rb11
-rw-r--r--spec/ruby/core/rational/minus_spec.rb7
-rw-r--r--spec/ruby/core/rational/modulo_spec.rb5
-rw-r--r--spec/ruby/core/rational/multiply_spec.rb19
-rw-r--r--spec/ruby/core/rational/numerator_spec.rb5
-rw-r--r--spec/ruby/core/rational/plus_spec.rb18
-rw-r--r--spec/ruby/core/rational/quo_spec.rb5
-rw-r--r--spec/ruby/core/rational/rational_spec.rb11
-rw-r--r--spec/ruby/core/rational/rationalize_spec.rb36
-rw-r--r--spec/ruby/core/rational/remainder_spec.rb5
-rw-r--r--spec/ruby/core/rational/round_spec.rb6
-rw-r--r--spec/ruby/core/rational/to_f_spec.rb5
-rw-r--r--spec/ruby/core/rational/to_i_spec.rb5
-rw-r--r--spec/ruby/core/rational/to_r_spec.rb20
-rw-r--r--spec/ruby/core/rational/to_s_spec.rb5
-rw-r--r--spec/ruby/core/rational/truncate_spec.rb5
-rw-r--r--spec/ruby/core/rational/zero_spec.rb13
-rw-r--r--spec/ruby/core/regexp/case_compare_spec.rb35
-rw-r--r--spec/ruby/core/regexp/casefold_spec.rb8
-rw-r--r--spec/ruby/core/regexp/compile_spec.rb15
-rw-r--r--spec/ruby/core/regexp/encoding_spec.rb62
-rw-r--r--spec/ruby/core/regexp/eql_spec.rb6
-rw-r--r--spec/ruby/core/regexp/equal_value_spec.rb6
-rw-r--r--spec/ruby/core/regexp/escape_spec.rb6
-rw-r--r--spec/ruby/core/regexp/fixed_encoding_spec.rb36
-rw-r--r--spec/ruby/core/regexp/hash_spec.rb20
-rw-r--r--spec/ruby/core/regexp/initialize_spec.rb23
-rw-r--r--spec/ruby/core/regexp/inspect_spec.rb44
-rw-r--r--spec/ruby/core/regexp/last_match_spec.rb56
-rw-r--r--spec/ruby/core/regexp/match_spec.rb146
-rw-r--r--spec/ruby/core/regexp/named_captures_spec.rb35
-rw-r--r--spec/ruby/core/regexp/names_spec.rb29
-rw-r--r--spec/ruby/core/regexp/new_spec.rb27
-rw-r--r--spec/ruby/core/regexp/options_spec.rb54
-rw-r--r--spec/ruby/core/regexp/quote_spec.rb6
-rw-r--r--spec/ruby/core/regexp/shared/equal_value.rb31
-rw-r--r--spec/ruby/core/regexp/shared/new.rb505
-rw-r--r--spec/ruby/core/regexp/shared/quote.rb31
-rw-r--r--spec/ruby/core/regexp/source_spec.rb29
-rw-r--r--spec/ruby/core/regexp/to_s_spec.rb62
-rw-r--r--spec/ruby/core/regexp/try_convert_spec.rb21
-rw-r--r--spec/ruby/core/regexp/union_spec.rb159
-rw-r--r--spec/ruby/core/signal/fixtures/trap_all.rb15
-rw-r--r--spec/ruby/core/signal/list_spec.rb68
-rw-r--r--spec/ruby/core/signal/signame_spec.rb22
-rw-r--r--spec/ruby/core/signal/trap_spec.rb283
-rw-r--r--spec/ruby/core/sizedqueue/append_spec.rb11
-rw-r--r--spec/ruby/core/sizedqueue/clear_spec.rb6
-rw-r--r--spec/ruby/core/sizedqueue/close_spec.rb6
-rw-r--r--spec/ruby/core/sizedqueue/closed_spec.rb6
-rw-r--r--spec/ruby/core/sizedqueue/deq_spec.rb6
-rw-r--r--spec/ruby/core/sizedqueue/empty_spec.rb6
-rw-r--r--spec/ruby/core/sizedqueue/enq_spec.rb11
-rw-r--r--spec/ruby/core/sizedqueue/length_spec.rb6
-rw-r--r--spec/ruby/core/sizedqueue/max_spec.rb10
-rw-r--r--spec/ruby/core/sizedqueue/new_spec.rb6
-rw-r--r--spec/ruby/core/sizedqueue/num_waiting_spec.rb6
-rw-r--r--spec/ruby/core/sizedqueue/pop_spec.rb6
-rw-r--r--spec/ruby/core/sizedqueue/push_spec.rb11
-rw-r--r--spec/ruby/core/sizedqueue/shift_spec.rb6
-rw-r--r--spec/ruby/core/sizedqueue/size_spec.rb6
-rw-r--r--spec/ruby/core/string/allocate_spec.rb19
-rw-r--r--spec/ruby/core/string/append_spec.rb8
-rw-r--r--spec/ruby/core/string/ascii_only_spec.rb83
-rw-r--r--spec/ruby/core/string/b_spec.rb24
-rw-r--r--spec/ruby/core/string/bytes_spec.rb55
-rw-r--r--spec/ruby/core/string/bytesize_spec.rb33
-rw-r--r--spec/ruby/core/string/byteslice_spec.rb27
-rw-r--r--spec/ruby/core/string/capitalize_spec.rb214
-rw-r--r--spec/ruby/core/string/case_compare_spec.rb8
-rw-r--r--spec/ruby/core/string/casecmp_spec.rb194
-rw-r--r--spec/ruby/core/string/center_spec.rb148
-rw-r--r--spec/ruby/core/string/chars_spec.rb10
-rw-r--r--spec/ruby/core/string/chomp_spec.rb432
-rw-r--r--spec/ruby/core/string/chop_spec.rb134
-rw-r--r--spec/ruby/core/string/chr_spec.rb42
-rw-r--r--spec/ruby/core/string/clear_spec.rb37
-rw-r--r--spec/ruby/core/string/clone_spec.rb57
-rw-r--r--spec/ruby/core/string/codepoints_spec.rb18
-rw-r--r--spec/ruby/core/string/comparison_spec.rb108
-rw-r--r--spec/ruby/core/string/concat_spec.rb26
-rw-r--r--spec/ruby/core/string/count_spec.rb105
-rw-r--r--spec/ruby/core/string/crypt_spec.rb122
-rw-r--r--spec/ruby/core/string/delete_prefix_spec.rb90
-rw-r--r--spec/ruby/core/string/delete_spec.rb129
-rw-r--r--spec/ruby/core/string/delete_suffix_spec.rb90
-rw-r--r--spec/ruby/core/string/downcase_spec.rb202
-rw-r--r--spec/ruby/core/string/dump_spec.rb410
-rw-r--r--spec/ruby/core/string/dup_spec.rb52
-rw-r--r--spec/ruby/core/string/each_byte_spec.rb61
-rw-r--r--spec/ruby/core/string/each_char_spec.rb7
-rw-r--r--spec/ruby/core/string/each_codepoint_spec.rb8
-rw-r--r--spec/ruby/core/string/each_grapheme_cluster_spec.rb17
-rw-r--r--spec/ruby/core/string/each_line_spec.rb9
-rw-r--r--spec/ruby/core/string/element_reference_spec.rb35
-rw-r--r--spec/ruby/core/string/element_set_spec.rb606
-rw-r--r--spec/ruby/core/string/empty_spec.rb12
-rw-r--r--spec/ruby/core/string/encode_spec.rb226
-rw-r--r--spec/ruby/core/string/encoding_spec.rb187
-rw-r--r--spec/ruby/core/string/end_with_spec.rb8
-rw-r--r--spec/ruby/core/string/eql_spec.rb21
-rw-r--r--spec/ruby/core/string/equal_value_spec.rb8
-rw-r--r--spec/ruby/core/string/fixtures/classes.rb60
-rw-r--r--spec/ruby/core/string/fixtures/freeze_magic_comment.rb3
-rw-r--r--spec/ruby/core/string/fixtures/iso-8859-9-encoding.rb9
-rw-r--r--spec/ruby/core/string/fixtures/utf-8-encoding.rb7
-rw-r--r--spec/ruby/core/string/force_encoding_spec.rb71
-rw-r--r--spec/ruby/core/string/freeze_spec.rb17
-rw-r--r--spec/ruby/core/string/getbyte_spec.rb69
-rw-r--r--spec/ruby/core/string/grapheme_clusters_spec.rb13
-rw-r--r--spec/ruby/core/string/gsub_spec.rb732
-rw-r--r--spec/ruby/core/string/hash_spec.rb9
-rw-r--r--spec/ruby/core/string/hex_spec.rb49
-rw-r--r--spec/ruby/core/string/include_spec.rb35
-rw-r--r--spec/ruby/core/string/index_spec.rb313
-rw-r--r--spec/ruby/core/string/initialize_spec.rb26
-rw-r--r--spec/ruby/core/string/insert_spec.rb84
-rw-r--r--spec/ruby/core/string/inspect_spec.rb512
-rw-r--r--spec/ruby/core/string/intern_spec.rb7
-rw-r--r--spec/ruby/core/string/length_spec.rb7
-rw-r--r--spec/ruby/core/string/lines_spec.rb20
-rw-r--r--spec/ruby/core/string/ljust_spec.rb131
-rw-r--r--spec/ruby/core/string/lstrip_spec.rb61
-rw-r--r--spec/ruby/core/string/match_spec.rb167
-rw-r--r--spec/ruby/core/string/modulo_spec.rb820
-rw-r--r--spec/ruby/core/string/multiply_spec.rb7
-rw-r--r--spec/ruby/core/string/new_spec.rb61
-rw-r--r--spec/ruby/core/string/next_spec.rb11
-rw-r--r--spec/ruby/core/string/oct_spec.rb88
-rw-r--r--spec/ruby/core/string/ord_spec.rb28
-rw-r--r--spec/ruby/core/string/partition_spec.rb41
-rw-r--r--spec/ruby/core/string/plus_spec.rb49
-rw-r--r--spec/ruby/core/string/prepend_spec.rb64
-rw-r--r--spec/ruby/core/string/replace_spec.rb7
-rw-r--r--spec/ruby/core/string/reverse_spec.rb65
-rw-r--r--spec/ruby/core/string/rindex_spec.rb366
-rw-r--r--spec/ruby/core/string/rjust_spec.rb131
-rw-r--r--spec/ruby/core/string/rpartition_spec.rb49
-rw-r--r--spec/ruby/core/string/rstrip_spec.rb57
-rw-r--r--spec/ruby/core/string/scan_spec.rb209
-rw-r--r--spec/ruby/core/string/scrub_spec.rb160
-rw-r--r--spec/ruby/core/string/setbyte_spec.rb105
-rw-r--r--spec/ruby/core/string/shared/chars.rb80
-rw-r--r--spec/ruby/core/string/shared/codepoints.rb62
-rw-r--r--spec/ruby/core/string/shared/concat.rb162
-rw-r--r--spec/ruby/core/string/shared/each_char_without_block.rb26
-rw-r--r--spec/ruby/core/string/shared/each_codepoint_without_block.rb33
-rw-r--r--spec/ruby/core/string/shared/each_line.rb174
-rw-r--r--spec/ruby/core/string/shared/each_line_without_block.rb17
-rw-r--r--spec/ruby/core/string/shared/encode.rb247
-rw-r--r--spec/ruby/core/string/shared/eql.rb34
-rw-r--r--spec/ruby/core/string/shared/equal_value.rb29
-rw-r--r--spec/ruby/core/string/shared/grapheme_clusters.rb16
-rw-r--r--spec/ruby/core/string/shared/length.rb55
-rw-r--r--spec/ruby/core/string/shared/partition.rb36
-rw-r--r--spec/ruby/core/string/shared/replace.rb77
-rw-r--r--spec/ruby/core/string/shared/slice.rb659
-rw-r--r--spec/ruby/core/string/shared/strip.rb20
-rw-r--r--spec/ruby/core/string/shared/succ.rb100
-rw-r--r--spec/ruby/core/string/shared/to_a.rb9
-rw-r--r--spec/ruby/core/string/shared/to_s.rb20
-rw-r--r--spec/ruby/core/string/shared/to_sym.rb63
-rw-r--r--spec/ruby/core/string/size_spec.rb7
-rw-r--r--spec/ruby/core/string/slice_spec.rb526
-rw-r--r--spec/ruby/core/string/split_spec.rb577
-rw-r--r--spec/ruby/core/string/squeeze_spec.rb123
-rw-r--r--spec/ruby/core/string/start_with_spec.rb8
-rw-r--r--spec/ruby/core/string/string_spec.rb7
-rw-r--r--spec/ruby/core/string/strip_spec.rb63
-rw-r--r--spec/ruby/core/string/sub_spec.rb594
-rw-r--r--spec/ruby/core/string/succ_spec.rb11
-rw-r--r--spec/ruby/core/string/sum_spec.rb22
-rw-r--r--spec/ruby/core/string/swapcase_spec.rb200
-rw-r--r--spec/ruby/core/string/to_c_spec.rb99
-rw-r--r--spec/ruby/core/string/to_f_spec.rb70
-rw-r--r--spec/ruby/core/string/to_i_spec.rb337
-rw-r--r--spec/ruby/core/string/to_r_spec.rb58
-rw-r--r--spec/ruby/core/string/to_s_spec.rb7
-rw-r--r--spec/ruby/core/string/to_str_spec.rb7
-rw-r--r--spec/ruby/core/string/to_sym_spec.rb7
-rw-r--r--spec/ruby/core/string/tr_s_spec.rb144
-rw-r--r--spec/ruby/core/string/tr_spec.rb139
-rw-r--r--spec/ruby/core/string/try_convert_spec.rb50
-rw-r--r--spec/ruby/core/string/uminus_spec.rb49
-rw-r--r--spec/ruby/core/string/undump_spec.rb451
-rw-r--r--spec/ruby/core/string/unicode_normalize_spec.rb115
-rw-r--r--spec/ruby/core/string/unicode_normalized_spec.rb74
-rw-r--r--spec/ruby/core/string/unpack/a_spec.rb66
-rw-r--r--spec/ruby/core/string/unpack/at_spec.rb29
-rw-r--r--spec/ruby/core/string/unpack/b_spec.rb193
-rw-r--r--spec/ruby/core/string/unpack/c_spec.rb63
-rw-r--r--spec/ruby/core/string/unpack/comment_spec.rb25
-rw-r--r--spec/ruby/core/string/unpack/d_spec.rb28
-rw-r--r--spec/ruby/core/string/unpack/e_spec.rb14
-rw-r--r--spec/ruby/core/string/unpack/f_spec.rb28
-rw-r--r--spec/ruby/core/string/unpack/g_spec.rb14
-rw-r--r--spec/ruby/core/string/unpack/h_spec.rb135
-rw-r--r--spec/ruby/core/string/unpack/i_spec.rb152
-rw-r--r--spec/ruby/core/string/unpack/j_spec.rb272
-rw-r--r--spec/ruby/core/string/unpack/l_spec.rb265
-rw-r--r--spec/ruby/core/string/unpack/m_spec.rb187
-rw-r--r--spec/ruby/core/string/unpack/n_spec.rb18
-rw-r--r--spec/ruby/core/string/unpack/p_spec.rb56
-rw-r--r--spec/ruby/core/string/unpack/percent_spec.rb7
-rw-r--r--spec/ruby/core/string/unpack/q_spec.rb64
-rw-r--r--spec/ruby/core/string/unpack/s_spec.rb152
-rw-r--r--spec/ruby/core/string/unpack/shared/basic.rb49
-rw-r--r--spec/ruby/core/string/unpack/shared/float.rb271
-rw-r--r--spec/ruby/core/string/unpack/shared/integer.rb339
-rw-r--r--spec/ruby/core/string/unpack/shared/string.rb51
-rw-r--r--spec/ruby/core/string/unpack/shared/taint.rb83
-rw-r--r--spec/ruby/core/string/unpack/shared/unicode.rb60
-rw-r--r--spec/ruby/core/string/unpack/u_spec.rb97
-rw-r--r--spec/ruby/core/string/unpack/v_spec.rb18
-rw-r--r--spec/ruby/core/string/unpack/w_spec.rb35
-rw-r--r--spec/ruby/core/string/unpack/x_spec.rb62
-rw-r--r--spec/ruby/core/string/unpack/z_spec.rb23
-rw-r--r--spec/ruby/core/string/unpack1_spec.rb30
-rw-r--r--spec/ruby/core/string/upcase_spec.rb194
-rw-r--r--spec/ruby/core/string/uplus_spec.rb22
-rw-r--r--spec/ruby/core/string/upto_spec.rb104
-rw-r--r--spec/ruby/core/string/valid_encoding_spec.rb135
-rw-r--r--spec/ruby/core/struct/clone_spec.rb7
-rw-r--r--spec/ruby/core/struct/deconstruct_keys_spec.rb78
-rw-r--r--spec/ruby/core/struct/deconstruct_spec.rb12
-rw-r--r--spec/ruby/core/struct/dig_spec.rb52
-rw-r--r--spec/ruby/core/struct/dup_spec.rb23
-rw-r--r--spec/ruby/core/struct/each_pair_spec.rb33
-rw-r--r--spec/ruby/core/struct/each_spec.rb27
-rw-r--r--spec/ruby/core/struct/element_reference_spec.rb52
-rw-r--r--spec/ruby/core/struct/element_set_spec.rb29
-rw-r--r--spec/ruby/core/struct/eql_spec.rb13
-rw-r--r--spec/ruby/core/struct/equal_value_spec.rb7
-rw-r--r--spec/ruby/core/struct/filter_spec.rb10
-rw-r--r--spec/ruby/core/struct/fixtures/classes.rb26
-rw-r--r--spec/ruby/core/struct/hash_spec.rb64
-rw-r--r--spec/ruby/core/struct/initialize_spec.rb43
-rw-r--r--spec/ruby/core/struct/inspect_spec.rb12
-rw-r--r--spec/ruby/core/struct/instance_variable_get_spec.rb16
-rw-r--r--spec/ruby/core/struct/instance_variables_spec.rb16
-rw-r--r--spec/ruby/core/struct/length_spec.rb12
-rw-r--r--spec/ruby/core/struct/members_spec.rb13
-rw-r--r--spec/ruby/core/struct/new_spec.rb222
-rw-r--r--spec/ruby/core/struct/select_spec.rb10
-rw-r--r--spec/ruby/core/struct/shared/accessor.rb7
-rw-r--r--spec/ruby/core/struct/shared/dup.rb9
-rw-r--r--spec/ruby/core/struct/shared/equal_value.rb37
-rw-r--r--spec/ruby/core/struct/shared/inspect.rb5
-rw-r--r--spec/ruby/core/struct/shared/select.rb26
-rw-r--r--spec/ruby/core/struct/size_spec.rb11
-rw-r--r--spec/ruby/core/struct/struct_spec.rb43
-rw-r--r--spec/ruby/core/struct/to_a_spec.rb12
-rw-r--r--spec/ruby/core/struct/to_h_spec.rb56
-rw-r--r--spec/ruby/core/struct/to_s_spec.rb12
-rw-r--r--spec/ruby/core/struct/values_at_spec.rb16
-rw-r--r--spec/ruby/core/struct/values_spec.rb11
-rw-r--r--spec/ruby/core/symbol/all_symbols_spec.rb19
-rw-r--r--spec/ruby/core/symbol/capitalize_spec.rb41
-rw-r--r--spec/ruby/core/symbol/case_compare_spec.rb11
-rw-r--r--spec/ruby/core/symbol/casecmp_spec.rb144
-rw-r--r--spec/ruby/core/symbol/comparison_spec.rb51
-rw-r--r--spec/ruby/core/symbol/downcase_spec.rb25
-rw-r--r--spec/ruby/core/symbol/dup_spec.rb7
-rw-r--r--spec/ruby/core/symbol/element_reference_spec.rb6
-rw-r--r--spec/ruby/core/symbol/empty_spec.rb11
-rw-r--r--spec/ruby/core/symbol/encoding_spec.rb23
-rw-r--r--spec/ruby/core/symbol/end_with_spec.rb10
-rw-r--r--spec/ruby/core/symbol/equal_value_spec.rb14
-rw-r--r--spec/ruby/core/symbol/fixtures/classes.rb3
-rw-r--r--spec/ruby/core/symbol/id2name_spec.rb6
-rw-r--r--spec/ruby/core/symbol/inspect_spec.rb105
-rw-r--r--spec/ruby/core/symbol/intern_spec.rb11
-rw-r--r--spec/ruby/core/symbol/length_spec.rb6
-rw-r--r--spec/ruby/core/symbol/match_spec.rb77
-rw-r--r--spec/ruby/core/symbol/name_spec.rb19
-rw-r--r--spec/ruby/core/symbol/next_spec.rb6
-rw-r--r--spec/ruby/core/symbol/shared/id2name.rb9
-rw-r--r--spec/ruby/core/symbol/shared/length.rb23
-rw-r--r--spec/ruby/core/symbol/shared/slice.rb282
-rw-r--r--spec/ruby/core/symbol/shared/succ.rb18
-rw-r--r--spec/ruby/core/symbol/size_spec.rb6
-rw-r--r--spec/ruby/core/symbol/slice_spec.rb6
-rw-r--r--spec/ruby/core/symbol/start_with_spec.rb10
-rw-r--r--spec/ruby/core/symbol/succ_spec.rb6
-rw-r--r--spec/ruby/core/symbol/swapcase_spec.rb29
-rw-r--r--spec/ruby/core/symbol/symbol_spec.rb19
-rw-r--r--spec/ruby/core/symbol/to_proc_spec.rb72
-rw-r--r--spec/ruby/core/symbol/to_s_spec.rb6
-rw-r--r--spec/ruby/core/symbol/to_sym_spec.rb9
-rw-r--r--spec/ruby/core/symbol/upcase_spec.rb21
-rw-r--r--spec/ruby/core/systemexit/initialize_spec.rb26
-rw-r--r--spec/ruby/core/systemexit/success_spec.rb13
-rw-r--r--spec/ruby/core/thread/abort_on_exception_spec.rb106
-rw-r--r--spec/ruby/core/thread/add_trace_func_spec.rb5
-rw-r--r--spec/ruby/core/thread/alive_spec.rb58
-rw-r--r--spec/ruby/core/thread/allocate_spec.rb9
-rw-r--r--spec/ruby/core/thread/backtrace/location/absolute_path_spec.rb93
-rw-r--r--spec/ruby/core/thread/backtrace/location/base_label_spec.rb49
-rw-r--r--spec/ruby/core/thread/backtrace/location/fixtures/absolute_path.rb4
-rw-r--r--spec/ruby/core/thread/backtrace/location/fixtures/absolute_path_main.rb2
-rw-r--r--spec/ruby/core/thread/backtrace/location/fixtures/absolute_path_method_added.rb10
-rw-r--r--spec/ruby/core/thread/backtrace/location/fixtures/classes.rb35
-rw-r--r--spec/ruby/core/thread/backtrace/location/fixtures/locations_in_main.rb5
-rw-r--r--spec/ruby/core/thread/backtrace/location/fixtures/locations_in_required.rb3
-rw-r--r--spec/ruby/core/thread/backtrace/location/fixtures/main.rb5
-rw-r--r--spec/ruby/core/thread/backtrace/location/fixtures/path.rb2
-rw-r--r--spec/ruby/core/thread/backtrace/location/inspect_spec.rb13
-rw-r--r--spec/ruby/core/thread/backtrace/location/label_spec.rb37
-rw-r--r--spec/ruby/core/thread/backtrace/location/lineno_spec.rb23
-rw-r--r--spec/ruby/core/thread/backtrace/location/path_spec.rb124
-rw-r--r--spec/ruby/core/thread/backtrace/location/to_s_spec.rb13
-rw-r--r--spec/ruby/core/thread/backtrace_locations_spec.rb81
-rw-r--r--spec/ruby/core/thread/backtrace_spec.rb69
-rw-r--r--spec/ruby/core/thread/current_spec.rb31
-rw-r--r--spec/ruby/core/thread/element_reference_spec.rb44
-rw-r--r--spec/ruby/core/thread/element_set_spec.rb51
-rw-r--r--spec/ruby/core/thread/exclusive_spec.rb49
-rw-r--r--spec/ruby/core/thread/exit_spec.rb15
-rw-r--r--spec/ruby/core/thread/fetch_spec.rb36
-rw-r--r--spec/ruby/core/thread/fixtures/classes.rb297
-rw-r--r--spec/ruby/core/thread/fork_spec.rb9
-rw-r--r--spec/ruby/core/thread/group_spec.rb5
-rw-r--r--spec/ruby/core/thread/handle_interrupt_spec.rb125
-rw-r--r--spec/ruby/core/thread/ignore_deadlock_spec.rb21
-rw-r--r--spec/ruby/core/thread/initialize_spec.rb27
-rw-r--r--spec/ruby/core/thread/inspect_spec.rb6
-rw-r--r--spec/ruby/core/thread/join_spec.rb70
-rw-r--r--spec/ruby/core/thread/key_spec.rb53
-rw-r--r--spec/ruby/core/thread/keys_spec.rb44
-rw-r--r--spec/ruby/core/thread/kill_spec.rb25
-rw-r--r--spec/ruby/core/thread/list_spec.rb55
-rw-r--r--spec/ruby/core/thread/main_spec.rb10
-rw-r--r--spec/ruby/core/thread/name_spec.rb54
-rw-r--r--spec/ruby/core/thread/new_spec.rb83
-rw-r--r--spec/ruby/core/thread/pass_spec.rb8
-rw-r--r--spec/ruby/core/thread/pending_interrupt_spec.rb32
-rw-r--r--spec/ruby/core/thread/priority_spec.rb72
-rw-r--r--spec/ruby/core/thread/raise_spec.rb208
-rw-r--r--spec/ruby/core/thread/report_on_exception_spec.rb106
-rw-r--r--spec/ruby/core/thread/run_spec.rb8
-rw-r--r--spec/ruby/core/thread/set_trace_func_spec.rb5
-rw-r--r--spec/ruby/core/thread/shared/exit.rb180
-rw-r--r--spec/ruby/core/thread/shared/start.rb41
-rw-r--r--spec/ruby/core/thread/shared/to_s.rb55
-rw-r--r--spec/ruby/core/thread/shared/wakeup.rb62
-rw-r--r--spec/ruby/core/thread/start_spec.rb9
-rw-r--r--spec/ruby/core/thread/status_spec.rb60
-rw-r--r--spec/ruby/core/thread/stop_spec.rb54
-rw-r--r--spec/ruby/core/thread/terminate_spec.rb7
-rw-r--r--spec/ruby/core/thread/thread_variable_get_spec.rb25
-rw-r--r--spec/ruby/core/thread/thread_variable_set_spec.rb26
-rw-r--r--spec/ruby/core/thread/thread_variable_spec.rb21
-rw-r--r--spec/ruby/core/thread/thread_variables_spec.rb29
-rw-r--r--spec/ruby/core/thread/to_s_spec.rb6
-rw-r--r--spec/ruby/core/thread/value_spec.rb31
-rw-r--r--spec/ruby/core/thread/wakeup_spec.rb7
-rw-r--r--spec/ruby/core/threadgroup/add_spec.rb39
-rw-r--r--spec/ruby/core/threadgroup/default_spec.rb11
-rw-r--r--spec/ruby/core/threadgroup/enclose_spec.rb24
-rw-r--r--spec/ruby/core/threadgroup/enclosed_spec.rb14
-rw-r--r--spec/ruby/core/threadgroup/list_spec.rb23
-rw-r--r--spec/ruby/core/time/_dump_spec.rb55
-rw-r--r--spec/ruby/core/time/_load_spec.rb52
-rw-r--r--spec/ruby/core/time/asctime_spec.rb6
-rw-r--r--spec/ruby/core/time/at_spec.rb270
-rw-r--r--spec/ruby/core/time/ceil_spec.rb46
-rw-r--r--spec/ruby/core/time/comparison_spec.rb104
-rw-r--r--spec/ruby/core/time/ctime_spec.rb6
-rw-r--r--spec/ruby/core/time/day_spec.rb6
-rw-r--r--spec/ruby/core/time/dst_spec.rb6
-rw-r--r--spec/ruby/core/time/dup_spec.rb46
-rw-r--r--spec/ruby/core/time/eql_spec.rb29
-rw-r--r--spec/ruby/core/time/fixtures/classes.rb106
-rw-r--r--spec/ruby/core/time/floor_spec.rb38
-rw-r--r--spec/ruby/core/time/friday_spec.rb11
-rw-r--r--spec/ruby/core/time/getgm_spec.rb6
-rw-r--r--spec/ruby/core/time/getlocal_spec.rb167
-rw-r--r--spec/ruby/core/time/getutc_spec.rb6
-rw-r--r--spec/ruby/core/time/gm_spec.rb10
-rw-r--r--spec/ruby/core/time/gmt_offset_spec.rb6
-rw-r--r--spec/ruby/core/time/gmt_spec.rb8
-rw-r--r--spec/ruby/core/time/gmtime_spec.rb6
-rw-r--r--spec/ruby/core/time/gmtoff_spec.rb6
-rw-r--r--spec/ruby/core/time/hash_spec.rb11
-rw-r--r--spec/ruby/core/time/hour_spec.rb17
-rw-r--r--spec/ruby/core/time/inspect_spec.rb35
-rw-r--r--spec/ruby/core/time/isdst_spec.rb6
-rw-r--r--spec/ruby/core/time/local_spec.rb11
-rw-r--r--spec/ruby/core/time/localtime_spec.rb140
-rw-r--r--spec/ruby/core/time/mday_spec.rb6
-rw-r--r--spec/ruby/core/time/min_spec.rb17
-rw-r--r--spec/ruby/core/time/minus_spec.rb121
-rw-r--r--spec/ruby/core/time/mktime_spec.rb11
-rw-r--r--spec/ruby/core/time/mon_spec.rb6
-rw-r--r--spec/ruby/core/time/monday_spec.rb11
-rw-r--r--spec/ruby/core/time/month_spec.rb6
-rw-r--r--spec/ruby/core/time/new_spec.rb335
-rw-r--r--spec/ruby/core/time/now_spec.rb6
-rw-r--r--spec/ruby/core/time/nsec_spec.rb31
-rw-r--r--spec/ruby/core/time/plus_spec.rb118
-rw-r--r--spec/ruby/core/time/round_spec.rb35
-rw-r--r--spec/ruby/core/time/saturday_spec.rb11
-rw-r--r--spec/ruby/core/time/sec_spec.rb7
-rw-r--r--spec/ruby/core/time/shared/asctime.rb6
-rw-r--r--spec/ruby/core/time/shared/day.rb15
-rw-r--r--spec/ruby/core/time/shared/getgm.rb9
-rw-r--r--spec/ruby/core/time/shared/gm.rb70
-rw-r--r--spec/ruby/core/time/shared/gmt_offset.rb59
-rw-r--r--spec/ruby/core/time/shared/gmtime.rb33
-rw-r--r--spec/ruby/core/time/shared/inspect.rb21
-rw-r--r--spec/ruby/core/time/shared/isdst.rb8
-rw-r--r--spec/ruby/core/time/shared/local.rb45
-rw-r--r--spec/ruby/core/time/shared/month.rb15
-rw-r--r--spec/ruby/core/time/shared/now.rb33
-rw-r--r--spec/ruby/core/time/shared/time_params.rb262
-rw-r--r--spec/ruby/core/time/shared/to_i.rb16
-rw-r--r--spec/ruby/core/time/strftime_spec.rb52
-rw-r--r--spec/ruby/core/time/subsec_spec.rb27
-rw-r--r--spec/ruby/core/time/succ_spec.rb39
-rw-r--r--spec/ruby/core/time/sunday_spec.rb11
-rw-r--r--spec/ruby/core/time/thursday_spec.rb11
-rw-r--r--spec/ruby/core/time/time_spec.rb7
-rw-r--r--spec/ruby/core/time/to_a_spec.rb12
-rw-r--r--spec/ruby/core/time/to_f_spec.rb7
-rw-r--r--spec/ruby/core/time/to_i_spec.rb6
-rw-r--r--spec/ruby/core/time/to_r_spec.rb11
-rw-r--r--spec/ruby/core/time/to_s_spec.rb6
-rw-r--r--spec/ruby/core/time/tuesday_spec.rb11
-rw-r--r--spec/ruby/core/time/tv_nsec_spec.rb5
-rw-r--r--spec/ruby/core/time/tv_sec_spec.rb6
-rw-r--r--spec/ruby/core/time/tv_usec_spec.rb5
-rw-r--r--spec/ruby/core/time/usec_spec.rb43
-rw-r--r--spec/ruby/core/time/utc_offset_spec.rb6
-rw-r--r--spec/ruby/core/time/utc_spec.rb21
-rw-r--r--spec/ruby/core/time/wday_spec.rb9
-rw-r--r--spec/ruby/core/time/wednesday_spec.rb11
-rw-r--r--spec/ruby/core/time/yday_spec.rb21
-rw-r--r--spec/ruby/core/time/year_spec.rb17
-rw-r--r--spec/ruby/core/time/zone_spec.rb90
-rw-r--r--spec/ruby/core/tracepoint/binding_spec.rb21
-rw-r--r--spec/ruby/core/tracepoint/callee_id_spec.rb18
-rw-r--r--spec/ruby/core/tracepoint/defined_class_spec.rb27
-rw-r--r--spec/ruby/core/tracepoint/disable_spec.rb76
-rw-r--r--spec/ruby/core/tracepoint/enable_spec.rb549
-rw-r--r--spec/ruby/core/tracepoint/enabled_spec.rb15
-rw-r--r--spec/ruby/core/tracepoint/eval_script_spec.rb23
-rw-r--r--spec/ruby/core/tracepoint/event_spec.rb22
-rw-r--r--spec/ruby/core/tracepoint/fixtures/classes.rb40
-rw-r--r--spec/ruby/core/tracepoint/inspect_spec.rb125
-rw-r--r--spec/ruby/core/tracepoint/lineno_spec.rb20
-rw-r--r--spec/ruby/core/tracepoint/method_id_spec.rb15
-rw-r--r--spec/ruby/core/tracepoint/new_spec.rb72
-rw-r--r--spec/ruby/core/tracepoint/parameters_spec.rb28
-rw-r--r--spec/ruby/core/tracepoint/path_spec.rb26
-rw-r--r--spec/ruby/core/tracepoint/raised_exception_spec.rb20
-rw-r--r--spec/ruby/core/tracepoint/return_value_spec.rb17
-rw-r--r--spec/ruby/core/tracepoint/self_spec.rb26
-rw-r--r--spec/ruby/core/tracepoint/trace_spec.rb10
-rw-r--r--spec/ruby/core/true/and_spec.rb11
-rw-r--r--spec/ruby/core/true/case_compare_spec.rb13
-rw-r--r--spec/ruby/core/true/dup_spec.rb7
-rw-r--r--spec/ruby/core/true/inspect_spec.rb7
-rw-r--r--spec/ruby/core/true/or_spec.rb11
-rw-r--r--spec/ruby/core/true/to_s_spec.rb17
-rw-r--r--spec/ruby/core/true/trueclass_spec.rb15
-rw-r--r--spec/ruby/core/true/xor_spec.rb11
-rw-r--r--spec/ruby/core/unboundmethod/arity_spec.rb207
-rw-r--r--spec/ruby/core/unboundmethod/bind_call_spec.rb52
-rw-r--r--spec/ruby/core/unboundmethod/bind_spec.rb61
-rw-r--r--spec/ruby/core/unboundmethod/clone_spec.rb12
-rw-r--r--spec/ruby/core/unboundmethod/eql_spec.rb5
-rw-r--r--spec/ruby/core/unboundmethod/equal_value_spec.rb101
-rw-r--r--spec/ruby/core/unboundmethod/fixtures/classes.rb87
-rw-r--r--spec/ruby/core/unboundmethod/hash_spec.rb15
-rw-r--r--spec/ruby/core/unboundmethod/inspect_spec.rb7
-rw-r--r--spec/ruby/core/unboundmethod/name_spec.rb15
-rw-r--r--spec/ruby/core/unboundmethod/original_name_spec.rb22
-rw-r--r--spec/ruby/core/unboundmethod/owner_spec.rb26
-rw-r--r--spec/ruby/core/unboundmethod/parameters_spec.rb5
-rw-r--r--spec/ruby/core/unboundmethod/shared/to_s.rb34
-rw-r--r--spec/ruby/core/unboundmethod/source_location_spec.rb52
-rw-r--r--spec/ruby/core/unboundmethod/super_method_spec.rb28
-rw-r--r--spec/ruby/core/unboundmethod/to_s_spec.rb7
-rw-r--r--spec/ruby/core/warning/element_reference_spec.rb22
-rw-r--r--spec/ruby/core/warning/element_set_spec.rb37
-rw-r--r--spec/ruby/core/warning/warn_spec.rb90
-rw-r--r--spec/ruby/default.mspec50
-rw-r--r--spec/ruby/fixtures/basicobject/method_missing.rb55
-rw-r--r--spec/ruby/fixtures/class.rb138
-rw-r--r--spec/ruby/fixtures/class_variables.rb58
-rw-r--r--spec/ruby/fixtures/code/a/load_fixture.bundle1
-rw-r--r--spec/ruby/fixtures/code/a/load_fixture.dll1
-rw-r--r--spec/ruby/fixtures/code/a/load_fixture.dylib1
-rw-r--r--spec/ruby/fixtures/code/a/load_fixture.so1
-rw-r--r--spec/ruby/fixtures/code/b/load_fixture.rb1
-rw-r--r--spec/ruby/fixtures/code/concurrent.rb12
-rw-r--r--spec/ruby/fixtures/code/concurrent2.rb8
-rw-r--r--spec/ruby/fixtures/code/concurrent3.rb2
-rw-r--r--spec/ruby/fixtures/code/file_fixture.rb1
-rw-r--r--spec/ruby/fixtures/code/gem/load_fixture.rb1
-rw-r--r--spec/ruby/fixtures/code/line_fixture.rb5
-rw-r--r--spec/ruby/fixtures/code/load_ext_fixture.rb1
-rw-r--r--spec/ruby/fixtures/code/load_fixture1
-rw-r--r--spec/ruby/fixtures/code/load_fixture.bundle1
-rw-r--r--spec/ruby/fixtures/code/load_fixture.dll1
-rw-r--r--spec/ruby/fixtures/code/load_fixture.dylib1
-rw-r--r--spec/ruby/fixtures/code/load_fixture.ext1
-rw-r--r--spec/ruby/fixtures/code/load_fixture.ext.bundle1
-rw-r--r--spec/ruby/fixtures/code/load_fixture.ext.dll1
-rw-r--r--spec/ruby/fixtures/code/load_fixture.ext.dylib1
-rw-r--r--spec/ruby/fixtures/code/load_fixture.ext.rb1
-rw-r--r--spec/ruby/fixtures/code/load_fixture.ext.so1
-rw-r--r--spec/ruby/fixtures/code/load_fixture.rb1
-rw-r--r--spec/ruby/fixtures/code/load_fixture.so1
-rw-r--r--spec/ruby/fixtures/code/load_fixture_and__FILE__.rb1
-rw-r--r--spec/ruby/fixtures/code/load_wrap_method_fixture.rb9
-rw-r--r--spec/ruby/fixtures/code/methods_fixture.rb364
-rw-r--r--spec/ruby/fixtures/code/raise_fixture.rb1
-rw-r--r--spec/ruby/fixtures/code/recursive_load_fixture.rb5
-rw-r--r--spec/ruby/fixtures/code/recursive_require_fixture.rb3
-rw-r--r--spec/ruby/fixtures/code/symlink/symlink1.rb1
-rw-r--r--spec/ruby/fixtures/code/symlink/symlink2/symlink2.rb1
-rw-r--r--spec/ruby/fixtures/code/wrap_fixture.rb9
-rw-r--r--spec/ruby/fixtures/code_loading.rb41
-rw-r--r--spec/ruby/fixtures/constants.rb302
-rw-r--r--spec/ruby/fixtures/enumerator/classes.rb15
-rw-r--r--spec/ruby/fixtures/math/common.rb3
-rw-r--r--spec/ruby/fixtures/rational.rb14
-rw-r--r--spec/ruby/fixtures/reflection.rb352
-rw-r--r--spec/ruby/language/BEGIN_spec.rb41
-rw-r--r--spec/ruby/language/END_spec.rb15
-rw-r--r--spec/ruby/language/README30
-rw-r--r--spec/ruby/language/alias_spec.rb263
-rw-r--r--spec/ruby/language/and_spec.rb80
-rw-r--r--spec/ruby/language/array_spec.rb162
-rw-r--r--spec/ruby/language/block_spec.rb1006
-rw-r--r--spec/ruby/language/break_spec.rb383
-rw-r--r--spec/ruby/language/case_spec.rb436
-rw-r--r--spec/ruby/language/class_spec.rb350
-rw-r--r--spec/ruby/language/class_variable_spec.rb116
-rw-r--r--spec/ruby/language/comment_spec.rb15
-rw-r--r--spec/ruby/language/constants_spec.rb720
-rw-r--r--spec/ruby/language/def_spec.rb815
-rw-r--r--spec/ruby/language/defined_spec.rb1157
-rw-r--r--spec/ruby/language/delegation_spec.rb68
-rw-r--r--spec/ruby/language/encoding_spec.rb36
-rw-r--r--spec/ruby/language/ensure_spec.rb331
-rw-r--r--spec/ruby/language/execution_spec.rb15
-rw-r--r--spec/ruby/language/file_spec.rb29
-rw-r--r--spec/ruby/language/fixtures/argv_encoding.rb1
-rw-r--r--spec/ruby/language/fixtures/array.rb32
-rw-r--r--spec/ruby/language/fixtures/begin_file.rb3
-rw-r--r--spec/ruby/language/fixtures/binary_symbol.rb4
-rw-r--r--spec/ruby/language/fixtures/block.rb61
-rw-r--r--spec/ruby/language/fixtures/break.rb291
-rw-r--r--spec/ruby/language/fixtures/break_lambda_toplevel.rb9
-rw-r--r--spec/ruby/language/fixtures/break_lambda_toplevel_block.rb23
-rw-r--r--spec/ruby/language/fixtures/break_lambda_toplevel_method.rb17
-rw-r--r--spec/ruby/language/fixtures/bytes_magic_comment.rb2
-rw-r--r--spec/ruby/language/fixtures/case_magic_comment.rb2
-rw-r--r--spec/ruby/language/fixtures/classes.rb31
-rw-r--r--spec/ruby/language/fixtures/coding_us_ascii.rb11
-rw-r--r--spec/ruby/language/fixtures/coding_utf_8.rb11
-rw-r--r--spec/ruby/language/fixtures/constant_visibility.rb114
-rw-r--r--spec/ruby/language/fixtures/constants_sclass.rb54
-rw-r--r--spec/ruby/language/fixtures/def.rb14
-rw-r--r--spec/ruby/language/fixtures/defined.rb303
-rw-r--r--spec/ruby/language/fixtures/delegation.rb11
-rw-r--r--spec/ruby/language/fixtures/dollar_zero.rb6
-rw-r--r--spec/ruby/language/fixtures/emacs_magic_comment.rb2
-rw-r--r--spec/ruby/language/fixtures/ensure.rb121
-rw-r--r--spec/ruby/language/fixtures/file.rb1
-rw-r--r--spec/ruby/language/fixtures/for_scope.rb15
-rw-r--r--spec/ruby/language/fixtures/freeze_magic_comment_across_files.rb5
-rw-r--r--spec/ruby/language/fixtures/freeze_magic_comment_across_files_diff_enc.rb5
-rw-r--r--spec/ruby/language/fixtures/freeze_magic_comment_across_files_no_comment.rb5
-rw-r--r--spec/ruby/language/fixtures/freeze_magic_comment_one_literal.rb4
-rw-r--r--spec/ruby/language/fixtures/freeze_magic_comment_required.rb3
-rw-r--r--spec/ruby/language/fixtures/freeze_magic_comment_required_diff_enc.rbbin181 -> 0 bytes-rw-r--r--spec/ruby/language/fixtures/freeze_magic_comment_required_no_comment.rb1
-rw-r--r--spec/ruby/language/fixtures/freeze_magic_comment_two_literals.rb3
-rw-r--r--spec/ruby/language/fixtures/hash_strings_binary.rb7
-rw-r--r--spec/ruby/language/fixtures/hash_strings_usascii.rb7
-rw-r--r--spec/ruby/language/fixtures/hash_strings_utf8.rb7
-rw-r--r--spec/ruby/language/fixtures/magic_comment.rb2
-rw-r--r--spec/ruby/language/fixtures/match_operators.rb9
-rw-r--r--spec/ruby/language/fixtures/metaclass.rb33
-rw-r--r--spec/ruby/language/fixtures/module.rb24
-rw-r--r--spec/ruby/language/fixtures/next.rb134
-rw-r--r--spec/ruby/language/fixtures/no_magic_comment.rb1
-rw-r--r--spec/ruby/language/fixtures/precedence.rb16
-rw-r--r--spec/ruby/language/fixtures/print_magic_comment_result_at_exit.rb3
-rw-r--r--spec/ruby/language/fixtures/private.rb59
-rw-r--r--spec/ruby/language/fixtures/rescue.rb67
-rw-r--r--spec/ruby/language/fixtures/rescue_captures.rb107
-rw-r--r--spec/ruby/language/fixtures/return.rb135
-rw-r--r--spec/ruby/language/fixtures/second_line_magic_comment.rb3
-rw-r--r--spec/ruby/language/fixtures/second_token_magic_comment.rb2
-rw-r--r--spec/ruby/language/fixtures/send.rb141
-rwxr-xr-xspec/ruby/language/fixtures/shebang_magic_comment.rb3
-rw-r--r--spec/ruby/language/fixtures/squiggly_heredoc.rb71
-rw-r--r--spec/ruby/language/fixtures/super.rb742
-rw-r--r--spec/ruby/language/fixtures/utf16-be-nobom.rbbin68 -> 0 bytes-rw-r--r--spec/ruby/language/fixtures/utf16-le-nobom.rbbin69 -> 0 bytes-rw-r--r--spec/ruby/language/fixtures/utf8-bom.rb2
-rw-r--r--spec/ruby/language/fixtures/utf8-nobom.rb2
-rw-r--r--spec/ruby/language/fixtures/variables.rb85
-rw-r--r--spec/ruby/language/fixtures/vim_magic_comment.rb2
-rw-r--r--spec/ruby/language/fixtures/yield.rb41
-rw-r--r--spec/ruby/language/for_spec.rb182
-rw-r--r--spec/ruby/language/hash_spec.rb267
-rw-r--r--spec/ruby/language/heredoc_spec.rb119
-rw-r--r--spec/ruby/language/if_spec.rb371
-rw-r--r--spec/ruby/language/lambda_spec.rb654
-rw-r--r--spec/ruby/language/line_spec.rb45
-rw-r--r--spec/ruby/language/loop_spec.rb67
-rw-r--r--spec/ruby/language/magic_comment_spec.rb92
-rw-r--r--spec/ruby/language/match_spec.rb81
-rw-r--r--spec/ruby/language/metaclass_spec.rb143
-rw-r--r--spec/ruby/language/method_spec.rb2018
-rw-r--r--spec/ruby/language/module_spec.rb101
-rw-r--r--spec/ruby/language/next_spec.rb410
-rw-r--r--spec/ruby/language/not_spec.rb51
-rw-r--r--spec/ruby/language/numbered_parameters_spec.rb120
-rw-r--r--spec/ruby/language/numbers_spec.rb105
-rw-r--r--spec/ruby/language/optional_assignments_spec.rb458
-rw-r--r--spec/ruby/language/or_spec.rb90
-rw-r--r--spec/ruby/language/order_spec.rb75
-rw-r--r--spec/ruby/language/pattern_matching_spec.rb1302
-rw-r--r--spec/ruby/language/precedence_spec.rb447
-rw-r--r--spec/ruby/language/predefined/data_spec.rb48
-rw-r--r--spec/ruby/language/predefined/fixtures/data1.rb4
-rw-r--r--spec/ruby/language/predefined/fixtures/data2.rb3
-rw-r--r--spec/ruby/language/predefined/fixtures/data3.rb6
-rw-r--r--spec/ruby/language/predefined/fixtures/data4.rb4
-rw-r--r--spec/ruby/language/predefined/fixtures/data5.rb5
-rw-r--r--spec/ruby/language/predefined/fixtures/data_offset.rb12
-rw-r--r--spec/ruby/language/predefined/fixtures/data_only.rb2
-rw-r--r--spec/ruby/language/predefined/fixtures/empty_data.rb3
-rw-r--r--spec/ruby/language/predefined/fixtures/print_data.rb3
-rw-r--r--spec/ruby/language/predefined/fixtures/toplevel_binding_dynamic.rb4
-rw-r--r--spec/ruby/language/predefined/fixtures/toplevel_binding_dynamic_required.rb2
-rw-r--r--spec/ruby/language/predefined/fixtures/toplevel_binding_id.rb4
-rw-r--r--spec/ruby/language/predefined/fixtures/toplevel_binding_id_required.rb1
-rw-r--r--spec/ruby/language/predefined/fixtures/toplevel_binding_required_before.rb2
-rw-r--r--spec/ruby/language/predefined/fixtures/toplevel_binding_values.rb9
-rw-r--r--spec/ruby/language/predefined/fixtures/toplevel_binding_variables.rb4
-rw-r--r--spec/ruby/language/predefined/fixtures/toplevel_binding_variables_required.rb2
-rw-r--r--spec/ruby/language/predefined/toplevel_binding_spec.rb34
-rw-r--r--spec/ruby/language/predefined_spec.rb1335
-rw-r--r--spec/ruby/language/private_spec.rb67
-rw-r--r--spec/ruby/language/proc_spec.rb246
-rw-r--r--spec/ruby/language/range_spec.rb30
-rw-r--r--spec/ruby/language/redo_spec.rb66
-rw-r--r--spec/ruby/language/regexp/anchors_spec.rb179
-rw-r--r--spec/ruby/language/regexp/back-references_spec.rb140
-rw-r--r--spec/ruby/language/regexp/character_classes_spec.rb637
-rw-r--r--spec/ruby/language/regexp/empty_checks_spec.rb135
-rw-r--r--spec/ruby/language/regexp/encoding_spec.rb148
-rw-r--r--spec/ruby/language/regexp/escapes_spec.rb97
-rw-r--r--spec/ruby/language/regexp/grouping_spec.rb63
-rw-r--r--spec/ruby/language/regexp/interpolation_spec.rb58
-rw-r--r--spec/ruby/language/regexp/modifiers_spec.rb115
-rw-r--r--spec/ruby/language/regexp/repetition_spec.rb142
-rw-r--r--spec/ruby/language/regexp/subexpression_call_spec.rb50
-rw-r--r--spec/ruby/language/regexp_spec.rb190
-rw-r--r--spec/ruby/language/rescue_spec.rb505
-rw-r--r--spec/ruby/language/retry_spec.rb52
-rw-r--r--spec/ruby/language/return_spec.rb489
-rw-r--r--spec/ruby/language/safe_navigator_spec.rb99
-rw-r--r--spec/ruby/language/safe_spec.rb119
-rw-r--r--spec/ruby/language/send_spec.rb580
-rw-r--r--spec/ruby/language/shared/__FILE__.rb23
-rw-r--r--spec/ruby/language/shared/__LINE__.rb15
-rw-r--r--spec/ruby/language/singleton_class_spec.rb293
-rw-r--r--spec/ruby/language/source_encoding_spec.rb61
-rw-r--r--spec/ruby/language/string_spec.rb321
-rw-r--r--spec/ruby/language/super_spec.rb434
-rw-r--r--spec/ruby/language/symbol_spec.rb106
-rw-r--r--spec/ruby/language/throw_spec.rb81
-rw-r--r--spec/ruby/language/undef_spec.rb72
-rw-r--r--spec/ruby/language/unless_spec.rb43
-rw-r--r--spec/ruby/language/until_spec.rb234
-rw-r--r--spec/ruby/language/variables_spec.rb853
-rw-r--r--spec/ruby/language/while_spec.rb344
-rw-r--r--spec/ruby/language/yield_spec.rb215
-rw-r--r--spec/ruby/library/English/English_spec.rb171
-rw-r--r--spec/ruby/library/English/alias_spec.rb14
-rw-r--r--spec/ruby/library/abbrev/abbrev_spec.rb31
-rw-r--r--spec/ruby/library/base64/decode64_spec.rb29
-rw-r--r--spec/ruby/library/base64/encode64_spec.rb23
-rw-r--r--spec/ruby/library/base64/strict_decode64_spec.rb41
-rw-r--r--spec/ruby/library/base64/strict_encode64_spec.rb19
-rw-r--r--spec/ruby/library/base64/urlsafe_decode64_spec.rb19
-rw-r--r--spec/ruby/library/base64/urlsafe_encode64_spec.rb20
-rw-r--r--spec/ruby/library/bigdecimal/BigDecimal_spec.rb269
-rw-r--r--spec/ruby/library/bigdecimal/abs_spec.rb50
-rw-r--r--spec/ruby/library/bigdecimal/add_spec.rb193
-rw-r--r--spec/ruby/library/bigdecimal/case_compare_spec.rb7
-rw-r--r--spec/ruby/library/bigdecimal/ceil_spec.rb104
-rw-r--r--spec/ruby/library/bigdecimal/clone_spec.rb6
-rw-r--r--spec/ruby/library/bigdecimal/coerce_spec.rb26
-rw-r--r--spec/ruby/library/bigdecimal/comparison_spec.rb81
-rw-r--r--spec/ruby/library/bigdecimal/constants_spec.rb70
-rw-r--r--spec/ruby/library/bigdecimal/div_spec.rb110
-rw-r--r--spec/ruby/library/bigdecimal/divide_spec.rb17
-rw-r--r--spec/ruby/library/bigdecimal/divmod_spec.rb180
-rw-r--r--spec/ruby/library/bigdecimal/double_fig_spec.rb9
-rw-r--r--spec/ruby/library/bigdecimal/dup_spec.rb6
-rw-r--r--spec/ruby/library/bigdecimal/eql_spec.rb6
-rw-r--r--spec/ruby/library/bigdecimal/equal_value_spec.rb7
-rw-r--r--spec/ruby/library/bigdecimal/exponent_spec.rb38
-rw-r--r--spec/ruby/library/bigdecimal/finite_spec.rb34
-rw-r--r--spec/ruby/library/bigdecimal/fix_spec.rb57
-rw-r--r--spec/ruby/library/bigdecimal/fixtures/classes.rb17
-rw-r--r--spec/ruby/library/bigdecimal/floor_spec.rb100
-rw-r--r--spec/ruby/library/bigdecimal/frac_spec.rb48
-rw-r--r--spec/ruby/library/bigdecimal/gt_spec.rb96
-rw-r--r--spec/ruby/library/bigdecimal/gte_spec.rb100
-rw-r--r--spec/ruby/library/bigdecimal/hash_spec.rb30
-rw-r--r--spec/ruby/library/bigdecimal/infinite_spec.rb32
-rw-r--r--spec/ruby/library/bigdecimal/inspect_spec.rb30
-rw-r--r--spec/ruby/library/bigdecimal/limit_spec.rb55
-rw-r--r--spec/ruby/library/bigdecimal/lt_spec.rb94
-rw-r--r--spec/ruby/library/bigdecimal/lte_spec.rb100
-rw-r--r--spec/ruby/library/bigdecimal/minus_spec.rb66
-rw-r--r--spec/ruby/library/bigdecimal/mode_spec.rb36
-rw-r--r--spec/ruby/library/bigdecimal/modulo_spec.rb12
-rw-r--r--spec/ruby/library/bigdecimal/mult_spec.rb32
-rw-r--r--spec/ruby/library/bigdecimal/multiply_spec.rb41
-rw-r--r--spec/ruby/library/bigdecimal/nan_spec.rb23
-rw-r--r--spec/ruby/library/bigdecimal/nonzero_spec.rb29
-rw-r--r--spec/ruby/library/bigdecimal/plus_spec.rb54
-rw-r--r--spec/ruby/library/bigdecimal/power_spec.rb6
-rw-r--r--spec/ruby/library/bigdecimal/precs_spec.rb55
-rw-r--r--spec/ruby/library/bigdecimal/quo_spec.rb12
-rw-r--r--spec/ruby/library/bigdecimal/remainder_spec.rb92
-rw-r--r--spec/ruby/library/bigdecimal/round_spec.rb234
-rw-r--r--spec/ruby/library/bigdecimal/shared/clone.rb13
-rw-r--r--spec/ruby/library/bigdecimal/shared/eql.rb61
-rw-r--r--spec/ruby/library/bigdecimal/shared/modulo.rb125
-rw-r--r--spec/ruby/library/bigdecimal/shared/mult.rb97
-rw-r--r--spec/ruby/library/bigdecimal/shared/power.rb72
-rw-r--r--spec/ruby/library/bigdecimal/shared/quo.rb67
-rw-r--r--spec/ruby/library/bigdecimal/shared/to_int.rb16
-rw-r--r--spec/ruby/library/bigdecimal/sign_spec.rb46
-rw-r--r--spec/ruby/library/bigdecimal/split_spec.rb86
-rw-r--r--spec/ruby/library/bigdecimal/sqrt_spec.rb112
-rw-r--r--spec/ruby/library/bigdecimal/sub_spec.rb70
-rw-r--r--spec/ruby/library/bigdecimal/to_d_spec.rb10
-rw-r--r--spec/ruby/library/bigdecimal/to_f_spec.rb54
-rw-r--r--spec/ruby/library/bigdecimal/to_i_spec.rb7
-rw-r--r--spec/ruby/library/bigdecimal/to_int_spec.rb8
-rw-r--r--spec/ruby/library/bigdecimal/to_r_spec.rb16
-rw-r--r--spec/ruby/library/bigdecimal/to_s_spec.rb97
-rw-r--r--spec/ruby/library/bigdecimal/truncate_spec.rb81
-rw-r--r--spec/ruby/library/bigdecimal/uminus_spec.rb58
-rw-r--r--spec/ruby/library/bigdecimal/uplus_spec.rb17
-rw-r--r--spec/ruby/library/bigdecimal/util_spec.rb40
-rw-r--r--spec/ruby/library/bigdecimal/zero_spec.rb27
-rw-r--r--spec/ruby/library/bigmath/log_spec.rb10
-rw-r--r--spec/ruby/library/cgi/cookie/domain_spec.rb23
-rw-r--r--spec/ruby/library/cgi/cookie/expires_spec.rb23
-rw-r--r--spec/ruby/library/cgi/cookie/initialize_spec.rb147
-rw-r--r--spec/ruby/library/cgi/cookie/name_spec.rb23
-rw-r--r--spec/ruby/library/cgi/cookie/parse_spec.rb26
-rw-r--r--spec/ruby/library/cgi/cookie/path_spec.rb23
-rw-r--r--spec/ruby/library/cgi/cookie/secure_spec.rb70
-rw-r--r--spec/ruby/library/cgi/cookie/to_s_spec.rb33
-rw-r--r--spec/ruby/library/cgi/cookie/value_spec.rb76
-rw-r--r--spec/ruby/library/cgi/escapeElement_spec.rb20
-rw-r--r--spec/ruby/library/cgi/escapeHTML_spec.rb17
-rw-r--r--spec/ruby/library/cgi/escape_spec.rb18
-rw-r--r--spec/ruby/library/cgi/htmlextension/a_spec.rb49
-rw-r--r--spec/ruby/library/cgi/htmlextension/base_spec.rb33
-rw-r--r--spec/ruby/library/cgi/htmlextension/blockquote_spec.rb33
-rw-r--r--spec/ruby/library/cgi/htmlextension/br_spec.rb22
-rw-r--r--spec/ruby/library/cgi/htmlextension/caption_spec.rb33
-rw-r--r--spec/ruby/library/cgi/htmlextension/checkbox_group_spec.rb76
-rw-r--r--spec/ruby/library/cgi/htmlextension/checkbox_spec.rb77
-rw-r--r--spec/ruby/library/cgi/htmlextension/doctype_spec.rb27
-rw-r--r--spec/ruby/library/cgi/htmlextension/file_field_spec.rb72
-rw-r--r--spec/ruby/library/cgi/htmlextension/fixtures/common.rb15
-rw-r--r--spec/ruby/library/cgi/htmlextension/form_spec.rb58
-rw-r--r--spec/ruby/library/cgi/htmlextension/frame_spec.rb14
-rw-r--r--spec/ruby/library/cgi/htmlextension/frameset_spec.rb14
-rw-r--r--spec/ruby/library/cgi/htmlextension/hidden_spec.rb59
-rw-r--r--spec/ruby/library/cgi/htmlextension/html_spec.rb66
-rw-r--r--spec/ruby/library/cgi/htmlextension/image_button_spec.rb69
-rw-r--r--spec/ruby/library/cgi/htmlextension/img_spec.rb83
-rw-r--r--spec/ruby/library/cgi/htmlextension/multipart_form_spec.rb64
-rw-r--r--spec/ruby/library/cgi/htmlextension/password_field_spec.rb84
-rw-r--r--spec/ruby/library/cgi/htmlextension/popup_menu_spec.rb8
-rw-r--r--spec/ruby/library/cgi/htmlextension/radio_button_spec.rb77
-rw-r--r--spec/ruby/library/cgi/htmlextension/radio_group_spec.rb77
-rw-r--r--spec/ruby/library/cgi/htmlextension/reset_spec.rb57
-rw-r--r--spec/ruby/library/cgi/htmlextension/scrolling_list_spec.rb8
-rw-r--r--spec/ruby/library/cgi/htmlextension/shared/popup_menu.rb94
-rw-r--r--spec/ruby/library/cgi/htmlextension/submit_spec.rb57
-rw-r--r--spec/ruby/library/cgi/htmlextension/text_field_spec.rb84
-rw-r--r--spec/ruby/library/cgi/htmlextension/textarea_spec.rb73
-rw-r--r--spec/ruby/library/cgi/http_header_spec.rb8
-rw-r--r--spec/ruby/library/cgi/initialize_spec.rb133
-rw-r--r--spec/ruby/library/cgi/out_spec.rb51
-rw-r--r--spec/ruby/library/cgi/parse_spec.rb24
-rw-r--r--spec/ruby/library/cgi/pretty_spec.rb24
-rw-r--r--spec/ruby/library/cgi/print_spec.rb26
-rw-r--r--spec/ruby/library/cgi/queryextension/accept_charset_spec.rb22
-rw-r--r--spec/ruby/library/cgi/queryextension/accept_encoding_spec.rb22
-rw-r--r--spec/ruby/library/cgi/queryextension/accept_language_spec.rb22
-rw-r--r--spec/ruby/library/cgi/queryextension/accept_spec.rb22
-rw-r--r--spec/ruby/library/cgi/queryextension/auth_type_spec.rb22
-rw-r--r--spec/ruby/library/cgi/queryextension/cache_control_spec.rb22
-rw-r--r--spec/ruby/library/cgi/queryextension/content_length_spec.rb26
-rw-r--r--spec/ruby/library/cgi/queryextension/content_type_spec.rb22
-rw-r--r--spec/ruby/library/cgi/queryextension/cookies_spec.rb10
-rw-r--r--spec/ruby/library/cgi/queryextension/element_reference_spec.rb27
-rw-r--r--spec/ruby/library/cgi/queryextension/from_spec.rb22
-rw-r--r--spec/ruby/library/cgi/queryextension/gateway_interface_spec.rb22
-rw-r--r--spec/ruby/library/cgi/queryextension/has_key_spec.rb7
-rw-r--r--spec/ruby/library/cgi/queryextension/host_spec.rb22
-rw-r--r--spec/ruby/library/cgi/queryextension/include_spec.rb7
-rw-r--r--spec/ruby/library/cgi/queryextension/key_spec.rb7
-rw-r--r--spec/ruby/library/cgi/queryextension/keys_spec.rb20
-rw-r--r--spec/ruby/library/cgi/queryextension/multipart_spec.rb40
-rw-r--r--spec/ruby/library/cgi/queryextension/negotiate_spec.rb22
-rw-r--r--spec/ruby/library/cgi/queryextension/params_spec.rb37
-rw-r--r--spec/ruby/library/cgi/queryextension/path_info_spec.rb22
-rw-r--r--spec/ruby/library/cgi/queryextension/path_translated_spec.rb22
-rw-r--r--spec/ruby/library/cgi/queryextension/pragma_spec.rb22
-rw-r--r--spec/ruby/library/cgi/queryextension/query_string_spec.rb22
-rw-r--r--spec/ruby/library/cgi/queryextension/raw_cookie2_spec.rb22
-rw-r--r--spec/ruby/library/cgi/queryextension/raw_cookie_spec.rb22
-rw-r--r--spec/ruby/library/cgi/queryextension/referer_spec.rb22
-rw-r--r--spec/ruby/library/cgi/queryextension/remote_addr_spec.rb22
-rw-r--r--spec/ruby/library/cgi/queryextension/remote_host_spec.rb22
-rw-r--r--spec/ruby/library/cgi/queryextension/remote_ident_spec.rb22
-rw-r--r--spec/ruby/library/cgi/queryextension/remote_user_spec.rb22
-rw-r--r--spec/ruby/library/cgi/queryextension/request_method_spec.rb22
-rw-r--r--spec/ruby/library/cgi/queryextension/script_name_spec.rb22
-rw-r--r--spec/ruby/library/cgi/queryextension/server_name_spec.rb22
-rw-r--r--spec/ruby/library/cgi/queryextension/server_port_spec.rb26
-rw-r--r--spec/ruby/library/cgi/queryextension/server_protocol_spec.rb22
-rw-r--r--spec/ruby/library/cgi/queryextension/server_software_spec.rb22
-rw-r--r--spec/ruby/library/cgi/queryextension/shared/has_key.rb19
-rw-r--r--spec/ruby/library/cgi/queryextension/user_agent_spec.rb22
-rw-r--r--spec/ruby/library/cgi/rfc1123_date_spec.rb10
-rw-r--r--spec/ruby/library/cgi/shared/http_header.rb112
-rw-r--r--spec/ruby/library/cgi/unescapeElement_spec.rb20
-rw-r--r--spec/ruby/library/cgi/unescapeHTML_spec.rb44
-rw-r--r--spec/ruby/library/cgi/unescape_spec.rb15
-rw-r--r--spec/ruby/library/cmath/math/acos_spec.rb18
-rw-r--r--spec/ruby/library/cmath/math/acosh_spec.rb18
-rw-r--r--spec/ruby/library/cmath/math/asin_spec.rb18
-rw-r--r--spec/ruby/library/cmath/math/asinh_spec.rb18
-rw-r--r--spec/ruby/library/cmath/math/atan2_spec.rb18
-rw-r--r--spec/ruby/library/cmath/math/atan_spec.rb18
-rw-r--r--spec/ruby/library/cmath/math/atanh_spec.rb20
-rw-r--r--spec/ruby/library/cmath/math/cos_spec.rb18
-rw-r--r--spec/ruby/library/cmath/math/cosh_spec.rb18
-rw-r--r--spec/ruby/library/cmath/math/exp_spec.rb18
-rw-r--r--spec/ruby/library/cmath/math/fixtures/classes.rb4
-rw-r--r--spec/ruby/library/cmath/math/log10_spec.rb18
-rw-r--r--spec/ruby/library/cmath/math/log_spec.rb18
-rw-r--r--spec/ruby/library/cmath/math/shared/acos.rb41
-rw-r--r--spec/ruby/library/cmath/math/shared/acosh.rb37
-rw-r--r--spec/ruby/library/cmath/math/shared/asin.rb47
-rw-r--r--spec/ruby/library/cmath/math/shared/asinh.rb32
-rw-r--r--spec/ruby/library/cmath/math/shared/atan.rb32
-rw-r--r--spec/ruby/library/cmath/math/shared/atan2.rb34
-rw-r--r--spec/ruby/library/cmath/math/shared/atanh.rb30
-rw-r--r--spec/ruby/library/cmath/math/shared/cos.rb30
-rw-r--r--spec/ruby/library/cmath/math/shared/cosh.rb28
-rw-r--r--spec/ruby/library/cmath/math/shared/exp.rb28
-rw-r--r--spec/ruby/library/cmath/math/shared/log.rb39
-rw-r--r--spec/ruby/library/cmath/math/shared/log10.rb41
-rw-r--r--spec/ruby/library/cmath/math/shared/sin.rb30
-rw-r--r--spec/ruby/library/cmath/math/shared/sinh.rb28
-rw-r--r--spec/ruby/library/cmath/math/shared/sqrt.rb34
-rw-r--r--spec/ruby/library/cmath/math/shared/tan.rb28
-rw-r--r--spec/ruby/library/cmath/math/shared/tanh.rb32
-rw-r--r--spec/ruby/library/cmath/math/sin_spec.rb18
-rw-r--r--spec/ruby/library/cmath/math/sinh_spec.rb18
-rw-r--r--spec/ruby/library/cmath/math/sqrt_spec.rb18
-rw-r--r--spec/ruby/library/cmath/math/tan_spec.rb18
-rw-r--r--spec/ruby/library/cmath/math/tanh_spec.rb18
-rw-r--r--spec/ruby/library/coverage/fixtures/eval_code.rb11
-rw-r--r--spec/ruby/library/coverage/fixtures/second_class.rb5
-rw-r--r--spec/ruby/library/coverage/fixtures/some_class.rb16
-rw-r--r--spec/ruby/library/coverage/fixtures/start_coverage.rb3
-rw-r--r--spec/ruby/library/coverage/peek_result_spec.rb64
-rw-r--r--spec/ruby/library/coverage/result_spec.rb105
-rw-r--r--spec/ruby/library/coverage/start_spec.rb6
-rw-r--r--spec/ruby/library/csv/basicwriter/close_on_terminate_spec.rb6
-rw-r--r--spec/ruby/library/csv/basicwriter/initialize_spec.rb6
-rw-r--r--spec/ruby/library/csv/basicwriter/terminate_spec.rb6
-rw-r--r--spec/ruby/library/csv/cell/data_spec.rb6
-rw-r--r--spec/ruby/library/csv/cell/initialize_spec.rb6
-rw-r--r--spec/ruby/library/csv/fixtures/one_line.csv1
-rw-r--r--spec/ruby/library/csv/foreach_spec.rb6
-rw-r--r--spec/ruby/library/csv/generate_line_spec.rb30
-rw-r--r--spec/ruby/library/csv/generate_row_spec.rb6
-rw-r--r--spec/ruby/library/csv/generate_spec.rb32
-rw-r--r--spec/ruby/library/csv/iobuf/close_spec.rb6
-rw-r--r--spec/ruby/library/csv/iobuf/initialize_spec.rb6
-rw-r--r--spec/ruby/library/csv/iobuf/read_spec.rb6
-rw-r--r--spec/ruby/library/csv/iobuf/terminate_spec.rb6
-rw-r--r--spec/ruby/library/csv/ioreader/close_on_terminate_spec.rb6
-rw-r--r--spec/ruby/library/csv/ioreader/get_row_spec.rb6
-rw-r--r--spec/ruby/library/csv/ioreader/initialize_spec.rb6
-rw-r--r--spec/ruby/library/csv/ioreader/terminate_spec.rb6
-rw-r--r--spec/ruby/library/csv/liberal_parsing_spec.rb19
-rw-r--r--spec/ruby/library/csv/open_spec.rb6
-rw-r--r--spec/ruby/library/csv/parse_spec.rb93
-rw-r--r--spec/ruby/library/csv/read_spec.rb6
-rw-r--r--spec/ruby/library/csv/readlines_spec.rb35
-rw-r--r--spec/ruby/library/csv/streambuf/add_buf_spec.rb6
-rw-r--r--spec/ruby/library/csv/streambuf/buf_size_spec.rb6
-rw-r--r--spec/ruby/library/csv/streambuf/drop_spec.rb6
-rw-r--r--spec/ruby/library/csv/streambuf/element_reference_spec.rb6
-rw-r--r--spec/ruby/library/csv/streambuf/get_spec.rb6
-rw-r--r--spec/ruby/library/csv/streambuf/idx_is_eos_spec.rb6
-rw-r--r--spec/ruby/library/csv/streambuf/initialize_spec.rb6
-rw-r--r--spec/ruby/library/csv/streambuf/is_eos_spec.rb6
-rw-r--r--spec/ruby/library/csv/streambuf/read_spec.rb6
-rw-r--r--spec/ruby/library/csv/streambuf/rel_buf_spec.rb6
-rw-r--r--spec/ruby/library/csv/streambuf/terminate_spec.rb6
-rw-r--r--spec/ruby/library/csv/stringreader/get_row_spec.rb6
-rw-r--r--spec/ruby/library/csv/stringreader/initialize_spec.rb6
-rw-r--r--spec/ruby/library/csv/writer/add_row_spec.rb6
-rw-r--r--spec/ruby/library/csv/writer/append_spec.rb6
-rw-r--r--spec/ruby/library/csv/writer/close_spec.rb6
-rw-r--r--spec/ruby/library/csv/writer/create_spec.rb6
-rw-r--r--spec/ruby/library/csv/writer/generate_spec.rb6
-rw-r--r--spec/ruby/library/csv/writer/initialize_spec.rb6
-rw-r--r--spec/ruby/library/csv/writer/terminate_spec.rb6
-rw-r--r--spec/ruby/library/date/accessor_spec.rb91
-rw-r--r--spec/ruby/library/date/add_month_spec.rb38
-rw-r--r--spec/ruby/library/date/add_spec.rb30
-rw-r--r--spec/ruby/library/date/ajd_spec.rb6
-rw-r--r--spec/ruby/library/date/ajd_to_amjd_spec.rb6
-rw-r--r--spec/ruby/library/date/ajd_to_jd_spec.rb6
-rw-r--r--spec/ruby/library/date/amjd_spec.rb6
-rw-r--r--spec/ruby/library/date/amjd_to_ajd_spec.rb6
-rw-r--r--spec/ruby/library/date/append_spec.rb6
-rw-r--r--spec/ruby/library/date/asctime_spec.rb6
-rw-r--r--spec/ruby/library/date/boat_spec.rb24
-rw-r--r--spec/ruby/library/date/case_compare_spec.rb6
-rw-r--r--spec/ruby/library/date/civil_spec.rb12
-rw-r--r--spec/ruby/library/date/commercial_spec.rb17
-rw-r--r--spec/ruby/library/date/commercial_to_jd_spec.rb6
-rw-r--r--spec/ruby/library/date/comparison_spec.rb6
-rw-r--r--spec/ruby/library/date/constants_spec.rb48
-rw-r--r--spec/ruby/library/date/conversions_spec.rb43
-rw-r--r--spec/ruby/library/date/ctime_spec.rb6
-rw-r--r--spec/ruby/library/date/cwday_spec.rb6
-rw-r--r--spec/ruby/library/date/cweek_spec.rb6
-rw-r--r--spec/ruby/library/date/cwyear_spec.rb6
-rw-r--r--spec/ruby/library/date/day_fraction_spec.rb6
-rw-r--r--spec/ruby/library/date/day_fraction_to_time_spec.rb6
-rw-r--r--spec/ruby/library/date/day_spec.rb9
-rw-r--r--spec/ruby/library/date/downto_spec.rb18
-rw-r--r--spec/ruby/library/date/england_spec.rb6
-rw-r--r--spec/ruby/library/date/eql_spec.rb12
-rw-r--r--spec/ruby/library/date/format/bag/method_missing_spec.rb6
-rw-r--r--spec/ruby/library/date/format/bag/to_hash_spec.rb6
-rw-r--r--spec/ruby/library/date/friday_spec.rb12
-rw-r--r--spec/ruby/library/date/gregorian_leap_spec.rb15
-rw-r--r--spec/ruby/library/date/gregorian_spec.rb16
-rw-r--r--spec/ruby/library/date/hash_spec.rb8
-rw-r--r--spec/ruby/library/date/infinity/abs_spec.rb6
-rw-r--r--spec/ruby/library/date/infinity/coerce_spec.rb6
-rw-r--r--spec/ruby/library/date/infinity/comparison_spec.rb6
-rw-r--r--spec/ruby/library/date/infinity/d_spec.rb6
-rw-r--r--spec/ruby/library/date/infinity/finite_spec.rb6
-rw-r--r--spec/ruby/library/date/infinity/infinite_spec.rb6
-rw-r--r--spec/ruby/library/date/infinity/nan_spec.rb6
-rw-r--r--spec/ruby/library/date/infinity/uminus_spec.rb6
-rw-r--r--spec/ruby/library/date/infinity/uplus_spec.rb6
-rw-r--r--spec/ruby/library/date/infinity/zero_spec.rb6
-rw-r--r--spec/ruby/library/date/infinity_spec.rb67
-rw-r--r--spec/ruby/library/date/inspect_spec.rb6
-rw-r--r--spec/ruby/library/date/iso8601_spec.rb44
-rw-r--r--spec/ruby/library/date/italy_spec.rb6
-rw-r--r--spec/ruby/library/date/jd_spec.rb15
-rw-r--r--spec/ruby/library/date/jd_to_ajd_spec.rb6
-rw-r--r--spec/ruby/library/date/jd_to_civil_spec.rb6
-rw-r--r--spec/ruby/library/date/jd_to_commercial_spec.rb6
-rw-r--r--spec/ruby/library/date/jd_to_ld_spec.rb6
-rw-r--r--spec/ruby/library/date/jd_to_mjd_spec.rb6
-rw-r--r--spec/ruby/library/date/jd_to_ordinal_spec.rb6
-rw-r--r--spec/ruby/library/date/jd_to_wday_spec.rb6
-rw-r--r--spec/ruby/library/date/julian_leap_spec.rb15
-rw-r--r--spec/ruby/library/date/julian_spec.rb16
-rw-r--r--spec/ruby/library/date/ld_spec.rb6
-rw-r--r--spec/ruby/library/date/ld_to_jd_spec.rb6
-rw-r--r--spec/ruby/library/date/leap_spec.rb10
-rw-r--r--spec/ruby/library/date/mday_spec.rb6
-rw-r--r--spec/ruby/library/date/minus_month_spec.rb23
-rw-r--r--spec/ruby/library/date/minus_spec.rb30
-rw-r--r--spec/ruby/library/date/mjd_spec.rb6
-rw-r--r--spec/ruby/library/date/mjd_to_jd_spec.rb6
-rw-r--r--spec/ruby/library/date/mon_spec.rb6
-rw-r--r--spec/ruby/library/date/monday_spec.rb8
-rw-r--r--spec/ruby/library/date/month_spec.rb9
-rw-r--r--spec/ruby/library/date/new_spec.rb8
-rw-r--r--spec/ruby/library/date/new_start_spec.rb6
-rw-r--r--spec/ruby/library/date/next_day_spec.rb14
-rw-r--r--spec/ruby/library/date/next_month_spec.rb29
-rw-r--r--spec/ruby/library/date/next_spec.rb6
-rw-r--r--spec/ruby/library/date/next_year_spec.rb12
-rw-r--r--spec/ruby/library/date/ordinal_spec.rb7
-rw-r--r--spec/ruby/library/date/ordinal_to_jd_spec.rb6
-rw-r--r--spec/ruby/library/date/parse_spec.rb159
-rw-r--r--spec/ruby/library/date/plus_spec.rb20
-rw-r--r--spec/ruby/library/date/prev_day_spec.rb14
-rw-r--r--spec/ruby/library/date/prev_month_spec.rb29
-rw-r--r--spec/ruby/library/date/prev_year_spec.rb12
-rw-r--r--spec/ruby/library/date/relationship_spec.rb20
-rw-r--r--spec/ruby/library/date/rfc3339_spec.rb13
-rw-r--r--spec/ruby/library/date/right_shift_spec.rb6
-rw-r--r--spec/ruby/library/date/saturday_spec.rb8
-rw-r--r--spec/ruby/library/date/shared/civil.rb57
-rw-r--r--spec/ruby/library/date/shared/commercial.rb39
-rw-r--r--spec/ruby/library/date/shared/jd.rb14
-rw-r--r--spec/ruby/library/date/shared/new_bang.rb14
-rw-r--r--spec/ruby/library/date/shared/ordinal.rb22
-rw-r--r--spec/ruby/library/date/shared/parse.rb54
-rw-r--r--spec/ruby/library/date/shared/parse_eu.rb37
-rw-r--r--spec/ruby/library/date/shared/parse_us.rb36
-rw-r--r--spec/ruby/library/date/shared/valid_civil.rb36
-rw-r--r--spec/ruby/library/date/shared/valid_commercial.rb34
-rw-r--r--spec/ruby/library/date/shared/valid_jd.rb32
-rw-r--r--spec/ruby/library/date/shared/valid_ordinal.rb26
-rw-r--r--spec/ruby/library/date/start_spec.rb6
-rw-r--r--spec/ruby/library/date/step_spec.rb56
-rw-r--r--spec/ruby/library/date/strftime_spec.rb49
-rw-r--r--spec/ruby/library/date/strptime_spec.rb149
-rw-r--r--spec/ruby/library/date/succ_spec.rb6
-rw-r--r--spec/ruby/library/date/sunday_spec.rb8
-rw-r--r--spec/ruby/library/date/thursday_spec.rb8
-rw-r--r--spec/ruby/library/date/time_to_day_fraction_spec.rb6
-rw-r--r--spec/ruby/library/date/to_s_spec.rb6
-rw-r--r--spec/ruby/library/date/today_spec.rb14
-rw-r--r--spec/ruby/library/date/tuesday_spec.rb8
-rw-r--r--spec/ruby/library/date/upto_spec.rb16
-rw-r--r--spec/ruby/library/date/valid_civil_spec.rb9
-rw-r--r--spec/ruby/library/date/valid_commercial_spec.rb8
-rw-r--r--spec/ruby/library/date/valid_date_spec.rb7
-rw-r--r--spec/ruby/library/date/valid_jd_spec.rb9
-rw-r--r--spec/ruby/library/date/valid_ordinal_spec.rb9
-rw-r--r--spec/ruby/library/date/valid_time_spec.rb6
-rw-r--r--spec/ruby/library/date/wday_spec.rb9
-rw-r--r--spec/ruby/library/date/wednesday_spec.rb8
-rw-r--r--spec/ruby/library/date/yday_spec.rb6
-rw-r--r--spec/ruby/library/date/year_spec.rb9
-rw-r--r--spec/ruby/library/date/zone_to_diff_spec.rb6
-rw-r--r--spec/ruby/library/datetime/_strptime_spec.rb6
-rw-r--r--spec/ruby/library/datetime/add_spec.rb9
-rw-r--r--spec/ruby/library/datetime/civil_spec.rb6
-rw-r--r--spec/ruby/library/datetime/commercial_spec.rb6
-rw-r--r--spec/ruby/library/datetime/hour_spec.rb47
-rw-r--r--spec/ruby/library/datetime/httpdate_spec.rb6
-rw-r--r--spec/ruby/library/datetime/iso8601_spec.rb10
-rw-r--r--spec/ruby/library/datetime/jd_spec.rb6
-rw-r--r--spec/ruby/library/datetime/jisx0301_spec.rb10
-rw-r--r--spec/ruby/library/datetime/min_spec.rb6
-rw-r--r--spec/ruby/library/datetime/minute_spec.rb6
-rw-r--r--spec/ruby/library/datetime/new_offset_spec.rb6
-rw-r--r--spec/ruby/library/datetime/new_spec.rb52
-rw-r--r--spec/ruby/library/datetime/now_spec.rb25
-rw-r--r--spec/ruby/library/datetime/offset_spec.rb6
-rw-r--r--spec/ruby/library/datetime/ordinal_spec.rb6
-rw-r--r--spec/ruby/library/datetime/parse_spec.rb127
-rw-r--r--spec/ruby/library/datetime/rfc2822_spec.rb6
-rw-r--r--spec/ruby/library/datetime/rfc3339_spec.rb10
-rw-r--r--spec/ruby/library/datetime/rfc822_spec.rb6
-rw-r--r--spec/ruby/library/datetime/sec_fraction_spec.rb6
-rw-r--r--spec/ruby/library/datetime/sec_spec.rb6
-rw-r--r--spec/ruby/library/datetime/second_fraction_spec.rb6
-rw-r--r--spec/ruby/library/datetime/second_spec.rb6
-rw-r--r--spec/ruby/library/datetime/shared/min.rb40
-rw-r--r--spec/ruby/library/datetime/shared/sec.rb45
-rw-r--r--spec/ruby/library/datetime/strftime_spec.rb61
-rw-r--r--spec/ruby/library/datetime/strptime_spec.rb6
-rw-r--r--spec/ruby/library/datetime/subtract_spec.rb19
-rw-r--r--spec/ruby/library/datetime/to_date_spec.rb37
-rw-r--r--spec/ruby/library/datetime/to_datetime_spec.rb9
-rw-r--r--spec/ruby/library/datetime/to_s_spec.rb17
-rw-r--r--spec/ruby/library/datetime/to_time_spec.rb36
-rw-r--r--spec/ruby/library/datetime/xmlschema_spec.rb10
-rw-r--r--spec/ruby/library/datetime/zone_spec.rb6
-rw-r--r--spec/ruby/library/delegate/delegate_class/instance_method_spec.rb52
-rw-r--r--spec/ruby/library/delegate/delegate_class/instance_methods_spec.rb26
-rw-r--r--spec/ruby/library/delegate/delegate_class/private_instance_methods_spec.rb23
-rw-r--r--spec/ruby/library/delegate/delegate_class/protected_instance_methods_spec.rb29
-rw-r--r--spec/ruby/library/delegate/delegate_class/public_instance_methods_spec.rb25
-rw-r--r--spec/ruby/library/delegate/delegate_class/respond_to_missing_spec.rb23
-rw-r--r--spec/ruby/library/delegate/delegator/case_compare_spec.rb11
-rw-r--r--spec/ruby/library/delegate/delegator/compare_spec.rb11
-rw-r--r--spec/ruby/library/delegate/delegator/complement_spec.rb11
-rw-r--r--spec/ruby/library/delegate/delegator/eql_spec.rb35
-rw-r--r--spec/ruby/library/delegate/delegator/equal_spec.rb13
-rw-r--r--spec/ruby/library/delegate/delegator/equal_value_spec.rb24
-rw-r--r--spec/ruby/library/delegate/delegator/frozen_spec.rb39
-rw-r--r--spec/ruby/library/delegate/delegator/hash_spec.rb11
-rw-r--r--spec/ruby/library/delegate/delegator/marshal_spec.rb21
-rw-r--r--spec/ruby/library/delegate/delegator/method_spec.rb69
-rw-r--r--spec/ruby/library/delegate/delegator/methods_spec.rb37
-rw-r--r--spec/ruby/library/delegate/delegator/not_equal_spec.rb24
-rw-r--r--spec/ruby/library/delegate/delegator/not_spec.rb11
-rw-r--r--spec/ruby/library/delegate/delegator/private_methods_spec.rb20
-rw-r--r--spec/ruby/library/delegate/delegator/protected_methods_spec.rb18
-rw-r--r--spec/ruby/library/delegate/delegator/public_methods_spec.rb18
-rw-r--r--spec/ruby/library/delegate/delegator/send_spec.rb26
-rw-r--r--spec/ruby/library/delegate/delegator/taint_spec.rb25
-rw-r--r--spec/ruby/library/delegate/delegator/tap_spec.rb16
-rw-r--r--spec/ruby/library/delegate/delegator/trust_spec.rb24
-rw-r--r--spec/ruby/library/delegate/delegator/untaint_spec.rb26
-rw-r--r--spec/ruby/library/delegate/delegator/untrust_spec.rb25
-rw-r--r--spec/ruby/library/delegate/fixtures/classes.rb60
-rw-r--r--spec/ruby/library/digest/bubblebabble_spec.rb29
-rw-r--r--spec/ruby/library/digest/hexencode_spec.rb31
-rw-r--r--spec/ruby/library/digest/instance/append_spec.rb7
-rw-r--r--spec/ruby/library/digest/instance/new_spec.rb19
-rw-r--r--spec/ruby/library/digest/instance/shared/update.rb8
-rw-r--r--spec/ruby/library/digest/instance/update_spec.rb7
-rw-r--r--spec/ruby/library/digest/md5/append_spec.rb7
-rw-r--r--spec/ruby/library/digest/md5/block_length_spec.rb11
-rw-r--r--spec/ruby/library/digest/md5/digest_bang_spec.rb13
-rw-r--r--spec/ruby/library/digest/md5/digest_length_spec.rb11
-rw-r--r--spec/ruby/library/digest/md5/digest_spec.rb32
-rw-r--r--spec/ruby/library/digest/md5/equal_spec.rb37
-rw-r--r--spec/ruby/library/digest/md5/file_spec.rb43
-rw-r--r--spec/ruby/library/digest/md5/hexdigest_bang_spec.rb14
-rw-r--r--spec/ruby/library/digest/md5/hexdigest_spec.rb32
-rw-r--r--spec/ruby/library/digest/md5/inspect_spec.rb11
-rw-r--r--spec/ruby/library/digest/md5/length_spec.rb7
-rw-r--r--spec/ruby/library/digest/md5/reset_spec.rb14
-rw-r--r--spec/ruby/library/digest/md5/shared/constants.rb17
-rw-r--r--spec/ruby/library/digest/md5/shared/length.rb8
-rw-r--r--spec/ruby/library/digest/md5/shared/sample.rb17
-rw-r--r--spec/ruby/library/digest/md5/shared/update.rb7
-rw-r--r--spec/ruby/library/digest/md5/size_spec.rb7
-rw-r--r--spec/ruby/library/digest/md5/to_s_spec.rb24
-rw-r--r--spec/ruby/library/digest/md5/update_spec.rb7
-rw-r--r--spec/ruby/library/digest/sha1/digest_spec.rb20
-rw-r--r--spec/ruby/library/digest/sha1/file_spec.rb43
-rw-r--r--spec/ruby/library/digest/sha1/shared/constants.rb18
-rw-r--r--spec/ruby/library/digest/sha2/hexdigest_spec.rb32
-rw-r--r--spec/ruby/library/digest/sha256/append_spec.rb7
-rw-r--r--spec/ruby/library/digest/sha256/block_length_spec.rb11
-rw-r--r--spec/ruby/library/digest/sha256/digest_bang_spec.rb13
-rw-r--r--spec/ruby/library/digest/sha256/digest_length_spec.rb11
-rw-r--r--spec/ruby/library/digest/sha256/digest_spec.rb32
-rw-r--r--spec/ruby/library/digest/sha256/equal_spec.rb36
-rw-r--r--spec/ruby/library/digest/sha256/file_spec.rb47
-rw-r--r--spec/ruby/library/digest/sha256/hexdigest_bang_spec.rb14
-rw-r--r--spec/ruby/library/digest/sha256/hexdigest_spec.rb32
-rw-r--r--spec/ruby/library/digest/sha256/inspect_spec.rb11
-rw-r--r--spec/ruby/library/digest/sha256/length_spec.rb7
-rw-r--r--spec/ruby/library/digest/sha256/reset_spec.rb14
-rw-r--r--spec/ruby/library/digest/sha256/shared/constants.rb18
-rw-r--r--spec/ruby/library/digest/sha256/shared/length.rb8
-rw-r--r--spec/ruby/library/digest/sha256/shared/update.rb7
-rw-r--r--spec/ruby/library/digest/sha256/size_spec.rb7
-rw-r--r--spec/ruby/library/digest/sha256/to_s_spec.rb21
-rw-r--r--spec/ruby/library/digest/sha256/update_spec.rb7
-rw-r--r--spec/ruby/library/digest/sha384/append_spec.rb7
-rw-r--r--spec/ruby/library/digest/sha384/block_length_spec.rb11
-rw-r--r--spec/ruby/library/digest/sha384/digest_bang_spec.rb13
-rw-r--r--spec/ruby/library/digest/sha384/digest_length_spec.rb11
-rw-r--r--spec/ruby/library/digest/sha384/digest_spec.rb32
-rw-r--r--spec/ruby/library/digest/sha384/equal_spec.rb36
-rw-r--r--spec/ruby/library/digest/sha384/file_spec.rb43
-rw-r--r--spec/ruby/library/digest/sha384/hexdigest_bang_spec.rb14
-rw-r--r--spec/ruby/library/digest/sha384/hexdigest_spec.rb32
-rw-r--r--spec/ruby/library/digest/sha384/inspect_spec.rb11
-rw-r--r--spec/ruby/library/digest/sha384/length_spec.rb7
-rw-r--r--spec/ruby/library/digest/sha384/reset_spec.rb14
-rw-r--r--spec/ruby/library/digest/sha384/shared/constants.rb19
-rw-r--r--spec/ruby/library/digest/sha384/shared/length.rb8
-rw-r--r--spec/ruby/library/digest/sha384/shared/update.rb7
-rw-r--r--spec/ruby/library/digest/sha384/size_spec.rb7
-rw-r--r--spec/ruby/library/digest/sha384/to_s_spec.rb21
-rw-r--r--spec/ruby/library/digest/sha384/update_spec.rb7
-rw-r--r--spec/ruby/library/digest/sha512/append_spec.rb7
-rw-r--r--spec/ruby/library/digest/sha512/block_length_spec.rb11
-rw-r--r--spec/ruby/library/digest/sha512/digest_bang_spec.rb13
-rw-r--r--spec/ruby/library/digest/sha512/digest_length_spec.rb11
-rw-r--r--spec/ruby/library/digest/sha512/digest_spec.rb32
-rw-r--r--spec/ruby/library/digest/sha512/equal_spec.rb36
-rw-r--r--spec/ruby/library/digest/sha512/file_spec.rb43
-rw-r--r--spec/ruby/library/digest/sha512/hexdigest_bang_spec.rb14
-rw-r--r--spec/ruby/library/digest/sha512/hexdigest_spec.rb32
-rw-r--r--spec/ruby/library/digest/sha512/inspect_spec.rb11
-rw-r--r--spec/ruby/library/digest/sha512/length_spec.rb7
-rw-r--r--spec/ruby/library/digest/sha512/reset_spec.rb14
-rw-r--r--spec/ruby/library/digest/sha512/shared/constants.rb18
-rw-r--r--spec/ruby/library/digest/sha512/shared/length.rb8
-rw-r--r--spec/ruby/library/digest/sha512/shared/update.rb7
-rw-r--r--spec/ruby/library/digest/sha512/size_spec.rb7
-rw-r--r--spec/ruby/library/digest/sha512/to_s_spec.rb21
-rw-r--r--spec/ruby/library/digest/sha512/update_spec.rb7
-rw-r--r--spec/ruby/library/drb/fixtures/test_server.rb8
-rw-r--r--spec/ruby/library/drb/start_service_spec.rb28
-rw-r--r--spec/ruby/library/erb/def_class_spec.rb29
-rw-r--r--spec/ruby/library/erb/def_method_spec.rb26
-rw-r--r--spec/ruby/library/erb/def_module_spec.rb27
-rw-r--r--spec/ruby/library/erb/defmethod/def_erb_method_spec.rb64
-rw-r--r--spec/ruby/library/erb/filename_spec.rb40
-rw-r--r--spec/ruby/library/erb/fixtures/classes.rb5
-rw-r--r--spec/ruby/library/erb/new_spec.rb141
-rw-r--r--spec/ruby/library/erb/result_spec.rb86
-rw-r--r--spec/ruby/library/erb/run_spec.rb96
-rw-r--r--spec/ruby/library/erb/src_spec.rb33
-rw-r--r--spec/ruby/library/erb/util/h_spec.rb7
-rw-r--r--spec/ruby/library/erb/util/html_escape_spec.rb7
-rw-r--r--spec/ruby/library/erb/util/shared/html_escape.rb42
-rw-r--r--spec/ruby/library/erb/util/shared/url_encode.rb42
-rw-r--r--spec/ruby/library/erb/util/u_spec.rb7
-rw-r--r--spec/ruby/library/erb/util/url_encode_spec.rb7
-rw-r--r--spec/ruby/library/etc/confstr_spec.rb14
-rw-r--r--spec/ruby/library/etc/endgrent_spec.rb7
-rw-r--r--spec/ruby/library/etc/endpwent_spec.rb7
-rw-r--r--spec/ruby/library/etc/getgrent_spec.rb7
-rw-r--r--spec/ruby/library/etc/getgrgid_spec.rb69
-rw-r--r--spec/ruby/library/etc/getgrnam_spec.rb30
-rw-r--r--spec/ruby/library/etc/getlogin_spec.rb43
-rw-r--r--spec/ruby/library/etc/getpwent_spec.rb7
-rw-r--r--spec/ruby/library/etc/getpwnam_spec.rb28
-rw-r--r--spec/ruby/library/etc/getpwuid_spec.rb36
-rw-r--r--spec/ruby/library/etc/group_spec.rb27
-rw-r--r--spec/ruby/library/etc/nprocessors_spec.rb9
-rw-r--r--spec/ruby/library/etc/passwd_spec.rb15
-rw-r--r--spec/ruby/library/etc/shared/windows.rb7
-rw-r--r--spec/ruby/library/etc/struct_group_spec.rb35
-rw-r--r--spec/ruby/library/etc/struct_passwd_spec.rb43
-rw-r--r--spec/ruby/library/etc/sysconf_spec.rb22
-rw-r--r--spec/ruby/library/etc/sysconfdir_spec.rb8
-rw-r--r--spec/ruby/library/etc/systmpdir_spec.rb8
-rw-r--r--spec/ruby/library/expect/expect_spec.rb62
-rw-r--r--spec/ruby/library/fiber/alive_spec.rb46
-rw-r--r--spec/ruby/library/fiber/current_spec.rb63
-rw-r--r--spec/ruby/library/fiber/resume_spec.rb35
-rw-r--r--spec/ruby/library/fiber/transfer_spec.rb128
-rw-r--r--spec/ruby/library/find/find_spec.rb30
-rw-r--r--spec/ruby/library/find/fixtures/common.rb174
-rw-r--r--spec/ruby/library/find/prune_spec.rb12
-rw-r--r--spec/ruby/library/getoptlong/each_option_spec.rb7
-rw-r--r--spec/ruby/library/getoptlong/each_spec.rb7
-rw-r--r--spec/ruby/library/getoptlong/error_message_spec.rb23
-rw-r--r--spec/ruby/library/getoptlong/get_option_spec.rb7
-rw-r--r--spec/ruby/library/getoptlong/get_spec.rb7
-rw-r--r--spec/ruby/library/getoptlong/initialize_spec.rb28
-rw-r--r--spec/ruby/library/getoptlong/ordering_spec.rb38
-rw-r--r--spec/ruby/library/getoptlong/set_options_spec.rb98
-rw-r--r--spec/ruby/library/getoptlong/shared/each.rb18
-rw-r--r--spec/ruby/library/getoptlong/shared/get.rb62
-rw-r--r--spec/ruby/library/getoptlong/terminate_spec.rb30
-rw-r--r--spec/ruby/library/getoptlong/terminated_spec.rb17
-rw-r--r--spec/ruby/library/ipaddr/hton_spec.rb30
-rw-r--r--spec/ruby/library/ipaddr/ipv4_conversion_spec.rb44
-rw-r--r--spec/ruby/library/ipaddr/new_spec.rb110
-rw-r--r--spec/ruby/library/ipaddr/operator_spec.rb82
-rw-r--r--spec/ruby/library/ipaddr/reverse_spec.rb27
-rw-r--r--spec/ruby/library/ipaddr/to_s_spec.rb20
-rw-r--r--spec/ruby/library/logger/device/close_spec.rb31
-rw-r--r--spec/ruby/library/logger/device/new_spec.rb47
-rw-r--r--spec/ruby/library/logger/device/write_spec.rb51
-rw-r--r--spec/ruby/library/logger/fixtures/common.rb9
-rw-r--r--spec/ruby/library/logger/logger/add_spec.rb81
-rw-r--r--spec/ruby/library/logger/logger/close_spec.rb20
-rw-r--r--spec/ruby/library/logger/logger/datetime_format_spec.rb60
-rw-r--r--spec/ruby/library/logger/logger/debug_spec.rb52
-rw-r--r--spec/ruby/library/logger/logger/error_spec.rb53
-rw-r--r--spec/ruby/library/logger/logger/fatal_spec.rb53
-rw-r--r--spec/ruby/library/logger/logger/info_spec.rb53
-rw-r--r--spec/ruby/library/logger/logger/new_spec.rb118
-rw-r--r--spec/ruby/library/logger/logger/unknown_spec.rb36
-rw-r--r--spec/ruby/library/logger/logger/warn_spec.rb53
-rw-r--r--spec/ruby/library/logger/severity_spec.rb13
-rw-r--r--spec/ruby/library/matrix/I_spec.rb9
-rw-r--r--spec/ruby/library/matrix/antisymmetric_spec.rb38
-rw-r--r--spec/ruby/library/matrix/build_spec.rb76
-rw-r--r--spec/ruby/library/matrix/clone_spec.rb28
-rw-r--r--spec/ruby/library/matrix/coerce_spec.rb11
-rw-r--r--spec/ruby/library/matrix/collect_spec.rb9
-rw-r--r--spec/ruby/library/matrix/column_size_spec.rb16
-rw-r--r--spec/ruby/library/matrix/column_spec.rb38
-rw-r--r--spec/ruby/library/matrix/column_vector_spec.rb28
-rw-r--r--spec/ruby/library/matrix/column_vectors_spec.rb29
-rw-r--r--spec/ruby/library/matrix/columns_spec.rb45
-rw-r--r--spec/ruby/library/matrix/conj_spec.rb9
-rw-r--r--spec/ruby/library/matrix/conjugate_spec.rb9
-rw-r--r--spec/ruby/library/matrix/constructor_spec.rb68
-rw-r--r--spec/ruby/library/matrix/det_spec.rb10
-rw-r--r--spec/ruby/library/matrix/determinant_spec.rb10
-rw-r--r--spec/ruby/library/matrix/diagonal_spec.rb75
-rw-r--r--spec/ruby/library/matrix/divide_spec.rb57
-rw-r--r--spec/ruby/library/matrix/each_spec.rb77
-rw-r--r--spec/ruby/library/matrix/each_with_index_spec.rb84
-rw-r--r--spec/ruby/library/matrix/eigenvalue_decomposition/eigenvalue_matrix_spec.rb12
-rw-r--r--spec/ruby/library/matrix/eigenvalue_decomposition/eigenvalues_spec.rb25
-rw-r--r--spec/ruby/library/matrix/eigenvalue_decomposition/eigenvector_matrix_spec.rb23
-rw-r--r--spec/ruby/library/matrix/eigenvalue_decomposition/eigenvectors_spec.rb25
-rw-r--r--spec/ruby/library/matrix/eigenvalue_decomposition/initialize_spec.rb27
-rw-r--r--spec/ruby/library/matrix/eigenvalue_decomposition/to_a_spec.rb21
-rw-r--r--spec/ruby/library/matrix/element_reference_spec.rb26
-rw-r--r--spec/ruby/library/matrix/empty_spec.rb71
-rw-r--r--spec/ruby/library/matrix/eql_spec.rb14
-rw-r--r--spec/ruby/library/matrix/equal_value_spec.rb14
-rw-r--r--spec/ruby/library/matrix/exponent_spec.rb67
-rw-r--r--spec/ruby/library/matrix/find_index_spec.rb149
-rw-r--r--spec/ruby/library/matrix/fixtures/classes.rb7
-rw-r--r--spec/ruby/library/matrix/hash_spec.rb18
-rw-r--r--spec/ruby/library/matrix/hermitian_spec.rb37
-rw-r--r--spec/ruby/library/matrix/identity_spec.rb9
-rw-r--r--spec/ruby/library/matrix/imag_spec.rb9
-rw-r--r--spec/ruby/library/matrix/imaginary_spec.rb9
-rw-r--r--spec/ruby/library/matrix/inspect_spec.rb30
-rw-r--r--spec/ruby/library/matrix/inv_spec.rb10
-rw-r--r--spec/ruby/library/matrix/inverse_from_spec.rb9
-rw-r--r--spec/ruby/library/matrix/inverse_spec.rb10
-rw-r--r--spec/ruby/library/matrix/lower_triangular_spec.rb27
-rw-r--r--spec/ruby/library/matrix/lup_decomposition/determinant_spec.rb24
-rw-r--r--spec/ruby/library/matrix/lup_decomposition/initialize_spec.rb16
-rw-r--r--spec/ruby/library/matrix/lup_decomposition/l_spec.rb21
-rw-r--r--spec/ruby/library/matrix/lup_decomposition/p_spec.rb21
-rw-r--r--spec/ruby/library/matrix/lup_decomposition/solve_spec.rb56
-rw-r--r--spec/ruby/library/matrix/lup_decomposition/to_a_spec.rb36
-rw-r--r--spec/ruby/library/matrix/lup_decomposition/u_spec.rb21
-rw-r--r--spec/ruby/library/matrix/map_spec.rb9
-rw-r--r--spec/ruby/library/matrix/minor_spec.rb88
-rw-r--r--spec/ruby/library/matrix/minus_spec.rb45
-rw-r--r--spec/ruby/library/matrix/multiply_spec.rb71
-rw-r--r--spec/ruby/library/matrix/new_spec.rb11
-rw-r--r--spec/ruby/library/matrix/normal_spec.rb29
-rw-r--r--spec/ruby/library/matrix/orthogonal_spec.rb29
-rw-r--r--spec/ruby/library/matrix/permutation_spec.rb35
-rw-r--r--spec/ruby/library/matrix/plus_spec.rb45
-rw-r--r--spec/ruby/library/matrix/rank_spec.rb22
-rw-r--r--spec/ruby/library/matrix/real_spec.rb46
-rw-r--r--spec/ruby/library/matrix/rect_spec.rb9
-rw-r--r--spec/ruby/library/matrix/rectangular_spec.rb9
-rw-r--r--spec/ruby/library/matrix/regular_spec.rb34
-rw-r--r--spec/ruby/library/matrix/round_spec.rb24
-rw-r--r--spec/ruby/library/matrix/row_size_spec.rb16
-rw-r--r--spec/ruby/library/matrix/row_spec.rb39
-rw-r--r--spec/ruby/library/matrix/row_vector_spec.rb27
-rw-r--r--spec/ruby/library/matrix/row_vectors_spec.rb29
-rw-r--r--spec/ruby/library/matrix/rows_spec.rb44
-rw-r--r--spec/ruby/library/matrix/scalar/Fail_spec.rb9
-rw-r--r--spec/ruby/library/matrix/scalar/Raise_spec.rb9
-rw-r--r--spec/ruby/library/matrix/scalar/divide_spec.rb9
-rw-r--r--spec/ruby/library/matrix/scalar/exponent_spec.rb9
-rw-r--r--spec/ruby/library/matrix/scalar/included_spec.rb9
-rw-r--r--spec/ruby/library/matrix/scalar/initialize_spec.rb9
-rw-r--r--spec/ruby/library/matrix/scalar/minus_spec.rb9
-rw-r--r--spec/ruby/library/matrix/scalar/multiply_spec.rb9
-rw-r--r--spec/ruby/library/matrix/scalar/plus_spec.rb9
-rw-r--r--spec/ruby/library/matrix/scalar_spec.rb70
-rw-r--r--spec/ruby/library/matrix/shared/collect.rb26
-rw-r--r--spec/ruby/library/matrix/shared/conjugate.rb20
-rw-r--r--spec/ruby/library/matrix/shared/determinant.rb38
-rw-r--r--spec/ruby/library/matrix/shared/equal_value.rb33
-rw-r--r--spec/ruby/library/matrix/shared/identity.rb19
-rw-r--r--spec/ruby/library/matrix/shared/imaginary.rb20
-rw-r--r--spec/ruby/library/matrix/shared/inverse.rb38
-rw-r--r--spec/ruby/library/matrix/shared/rectangular.rb18
-rw-r--r--spec/ruby/library/matrix/shared/trace.rb12
-rw-r--r--spec/ruby/library/matrix/shared/transpose.rb19
-rw-r--r--spec/ruby/library/matrix/singular_spec.rb34
-rw-r--r--spec/ruby/library/matrix/spec_helper.rb35
-rw-r--r--spec/ruby/library/matrix/square_spec.rb31
-rw-r--r--spec/ruby/library/matrix/symmetric_spec.rb32
-rw-r--r--spec/ruby/library/matrix/t_spec.rb9
-rw-r--r--spec/ruby/library/matrix/to_a_spec.rb14
-rw-r--r--spec/ruby/library/matrix/to_s_spec.rb9
-rw-r--r--spec/ruby/library/matrix/tr_spec.rb10
-rw-r--r--spec/ruby/library/matrix/trace_spec.rb10
-rw-r--r--spec/ruby/library/matrix/transpose_spec.rb9
-rw-r--r--spec/ruby/library/matrix/unit_spec.rb9
-rw-r--r--spec/ruby/library/matrix/unitary_spec.rb36
-rw-r--r--spec/ruby/library/matrix/upper_triangular_spec.rb27
-rw-r--r--spec/ruby/library/matrix/vector/cross_product_spec.rb17
-rw-r--r--spec/ruby/library/matrix/vector/each2_spec.rb52
-rw-r--r--spec/ruby/library/matrix/vector/eql_spec.rb19
-rw-r--r--spec/ruby/library/matrix/vector/inner_product_spec.rb25
-rw-r--r--spec/ruby/library/matrix/vector/normalize_spec.rb21
-rw-r--r--spec/ruby/library/matrix/zero_spec.rb55
-rw-r--r--spec/ruby/library/mkmf/mkmf_spec.rb7
-rw-r--r--spec/ruby/library/monitor/enter_spec.rb28
-rw-r--r--spec/ruby/library/monitor/mon_initialize_spec.rb31
-rw-r--r--spec/ruby/library/monitor/new_cond_spec.rb88
-rw-r--r--spec/ruby/library/monitor/synchronize_spec.rb41
-rw-r--r--spec/ruby/library/monitor/try_enter_spec.rb39
-rw-r--r--spec/ruby/library/net/FTPError_spec.rb11
-rw-r--r--spec/ruby/library/net/FTPPermError_spec.rb15
-rw-r--r--spec/ruby/library/net/FTPProtoError_spec.rb15
-rw-r--r--spec/ruby/library/net/FTPReplyError_spec.rb15
-rw-r--r--spec/ruby/library/net/FTPTempError_spec.rb15
-rw-r--r--spec/ruby/library/net/ftp/abort_spec.rb65
-rw-r--r--spec/ruby/library/net/ftp/acct_spec.rb61
-rw-r--r--spec/ruby/library/net/ftp/binary_spec.rb27
-rw-r--r--spec/ruby/library/net/ftp/chdir_spec.rb102
-rw-r--r--spec/ruby/library/net/ftp/close_spec.rb33
-rw-r--r--spec/ruby/library/net/ftp/closed_spec.rb24
-rw-r--r--spec/ruby/library/net/ftp/connect_spec.rb52
-rw-r--r--spec/ruby/library/net/ftp/debug_mode_spec.rb26
-rw-r--r--spec/ruby/library/net/ftp/default_passive_spec.rb11
-rw-r--r--spec/ruby/library/net/ftp/delete_spec.rb62
-rw-r--r--spec/ruby/library/net/ftp/dir_spec.rb11
-rw-r--r--spec/ruby/library/net/ftp/fixtures/default_passive.rb3
-rw-r--r--spec/ruby/library/net/ftp/fixtures/passive.rb2
-rw-r--r--spec/ruby/library/net/ftp/fixtures/putbinaryfile3
-rw-r--r--spec/ruby/library/net/ftp/fixtures/puttextfile3
-rw-r--r--spec/ruby/library/net/ftp/fixtures/server.rb277
-rw-r--r--spec/ruby/library/net/ftp/get_spec.rb24
-rw-r--r--spec/ruby/library/net/ftp/getbinaryfile_spec.rb11
-rw-r--r--spec/ruby/library/net/ftp/getdir_spec.rb10
-rw-r--r--spec/ruby/library/net/ftp/gettextfile_spec.rb11
-rw-r--r--spec/ruby/library/net/ftp/help_spec.rb69
-rw-r--r--spec/ruby/library/net/ftp/initialize_spec.rb408
-rw-r--r--spec/ruby/library/net/ftp/last_response_code_spec.rb11
-rw-r--r--spec/ruby/library/net/ftp/last_response_spec.rb28
-rw-r--r--spec/ruby/library/net/ftp/lastresp_spec.rb11
-rw-r--r--spec/ruby/library/net/ftp/list_spec.rb11
-rw-r--r--spec/ruby/library/net/ftp/login_spec.rb198
-rw-r--r--spec/ruby/library/net/ftp/ls_spec.rb11
-rw-r--r--spec/ruby/library/net/ftp/mdtm_spec.rb41
-rw-r--r--spec/ruby/library/net/ftp/mkdir_spec.rb64
-rw-r--r--spec/ruby/library/net/ftp/mtime_spec.rb53
-rw-r--r--spec/ruby/library/net/ftp/nlst_spec.rb95
-rw-r--r--spec/ruby/library/net/ftp/noop_spec.rb41
-rw-r--r--spec/ruby/library/net/ftp/open_spec.rb58
-rw-r--r--spec/ruby/library/net/ftp/passive_spec.rb31
-rw-r--r--spec/ruby/library/net/ftp/put_spec.rb24
-rw-r--r--spec/ruby/library/net/ftp/putbinaryfile_spec.rb11
-rw-r--r--spec/ruby/library/net/ftp/puttextfile_spec.rb11
-rw-r--r--spec/ruby/library/net/ftp/pwd_spec.rb56
-rw-r--r--spec/ruby/library/net/ftp/quit_spec.rb36
-rw-r--r--spec/ruby/library/net/ftp/rename_spec.rb97
-rw-r--r--spec/ruby/library/net/ftp/resume_spec.rb26
-rw-r--r--spec/ruby/library/net/ftp/retrbinary_spec.rb33
-rw-r--r--spec/ruby/library/net/ftp/retrlines_spec.rb37
-rw-r--r--spec/ruby/library/net/ftp/return_code_spec.rb27
-rw-r--r--spec/ruby/library/net/ftp/rmdir_spec.rb61
-rw-r--r--spec/ruby/library/net/ftp/sendcmd_spec.rb57
-rw-r--r--spec/ruby/library/net/ftp/set_socket_spec.rb11
-rw-r--r--spec/ruby/library/net/ftp/shared/getbinaryfile.rb150
-rw-r--r--spec/ruby/library/net/ftp/shared/gettextfile.rb100
-rw-r--r--spec/ruby/library/net/ftp/shared/last_response_code.rb25
-rw-r--r--spec/ruby/library/net/ftp/shared/list.rb104
-rw-r--r--spec/ruby/library/net/ftp/shared/putbinaryfile.rb167
-rw-r--r--spec/ruby/library/net/ftp/shared/puttextfile.rb120
-rw-r--r--spec/ruby/library/net/ftp/shared/pwd.rb3
-rw-r--r--spec/ruby/library/net/ftp/site_spec.rb56
-rw-r--r--spec/ruby/library/net/ftp/size_spec.rb51
-rw-r--r--spec/ruby/library/net/ftp/spec_helper.rb5
-rw-r--r--spec/ruby/library/net/ftp/status_spec.rb70
-rw-r--r--spec/ruby/library/net/ftp/storbinary_spec.rb51
-rw-r--r--spec/ruby/library/net/ftp/storlines_spec.rb46
-rw-r--r--spec/ruby/library/net/ftp/system_spec.rb51
-rw-r--r--spec/ruby/library/net/ftp/voidcmd_spec.rb57
-rw-r--r--spec/ruby/library/net/ftp/welcome_spec.rb28
-rw-r--r--spec/ruby/library/net/http/HTTPBadResponse_spec.rb8
-rw-r--r--spec/ruby/library/net/http/HTTPClientExcepton_spec.rb12
-rw-r--r--spec/ruby/library/net/http/HTTPError_spec.rb12
-rw-r--r--spec/ruby/library/net/http/HTTPFatalError_spec.rb12
-rw-r--r--spec/ruby/library/net/http/HTTPHeaderSyntaxError_spec.rb8
-rw-r--r--spec/ruby/library/net/http/HTTPRetriableError_spec.rb12
-rw-r--r--spec/ruby/library/net/http/HTTPServerException_spec.rb12
-rw-r--r--spec/ruby/library/net/http/http/Proxy_spec.rb35
-rw-r--r--spec/ruby/library/net/http/http/active_spec.rb8
-rw-r--r--spec/ruby/library/net/http/http/address_spec.rb9
-rw-r--r--spec/ruby/library/net/http/http/close_on_empty_response_spec.rb10
-rw-r--r--spec/ruby/library/net/http/http/copy_spec.rb21
-rw-r--r--spec/ruby/library/net/http/http/default_port_spec.rb8
-rw-r--r--spec/ruby/library/net/http/http/delete_spec.rb21
-rw-r--r--spec/ruby/library/net/http/http/finish_spec.rb29
-rw-r--r--spec/ruby/library/net/http/http/fixtures/http_server.rb123
-rw-r--r--spec/ruby/library/net/http/http/get2_spec.rb8
-rw-r--r--spec/ruby/library/net/http/http/get_print_spec.rb30
-rw-r--r--spec/ruby/library/net/http/http/get_response_spec.rb30
-rw-r--r--spec/ruby/library/net/http/http/get_spec.rb96
-rw-r--r--spec/ruby/library/net/http/http/head2_spec.rb8
-rw-r--r--spec/ruby/library/net/http/http/head_spec.rb25
-rw-r--r--spec/ruby/library/net/http/http/http_default_port_spec.rb8
-rw-r--r--spec/ruby/library/net/http/http/https_default_port_spec.rb8
-rw-r--r--spec/ruby/library/net/http/http/initialize_spec.rb46
-rw-r--r--spec/ruby/library/net/http/http/inspect_spec.rb24
-rw-r--r--spec/ruby/library/net/http/http/is_version_1_1_spec.rb7
-rw-r--r--spec/ruby/library/net/http/http/is_version_1_2_spec.rb7
-rw-r--r--spec/ruby/library/net/http/http/lock_spec.rb21
-rw-r--r--spec/ruby/library/net/http/http/mkcol_spec.rb21
-rw-r--r--spec/ruby/library/net/http/http/move_spec.rb25
-rw-r--r--spec/ruby/library/net/http/http/new_spec.rb86
-rw-r--r--spec/ruby/library/net/http/http/newobj_spec.rb48
-rw-r--r--spec/ruby/library/net/http/http/open_timeout_spec.rb24
-rw-r--r--spec/ruby/library/net/http/http/options_spec.rb25
-rw-r--r--spec/ruby/library/net/http/http/port_spec.rb9
-rw-r--r--spec/ruby/library/net/http/http/post2_spec.rb8
-rw-r--r--spec/ruby/library/net/http/http/post_form_spec.rb22
-rw-r--r--spec/ruby/library/net/http/http/post_spec.rb74
-rw-r--r--spec/ruby/library/net/http/http/propfind_spec.rb24
-rw-r--r--spec/ruby/library/net/http/http/proppatch_spec.rb24
-rw-r--r--spec/ruby/library/net/http/http/proxy_address_spec.rb31
-rw-r--r--spec/ruby/library/net/http/http/proxy_class_spec.rb9
-rw-r--r--spec/ruby/library/net/http/http/proxy_pass_spec.rb39
-rw-r--r--spec/ruby/library/net/http/http/proxy_port_spec.rb39
-rw-r--r--spec/ruby/library/net/http/http/proxy_user_spec.rb39
-rw-r--r--spec/ruby/library/net/http/http/put2_spec.rb8
-rw-r--r--spec/ruby/library/net/http/http/put_spec.rb24
-rw-r--r--spec/ruby/library/net/http/http/read_timeout_spec.rb24
-rw-r--r--spec/ruby/library/net/http/http/request_get_spec.rb8
-rw-r--r--spec/ruby/library/net/http/http/request_head_spec.rb8
-rw-r--r--spec/ruby/library/net/http/http/request_post_spec.rb8
-rw-r--r--spec/ruby/library/net/http/http/request_put_spec.rb8
-rw-r--r--spec/ruby/library/net/http/http/request_spec.rb109
-rw-r--r--spec/ruby/library/net/http/http/request_types_spec.rb254
-rw-r--r--spec/ruby/library/net/http/http/send_request_spec.rb61
-rw-r--r--spec/ruby/library/net/http/http/set_debug_output_spec.rb33
-rw-r--r--spec/ruby/library/net/http/http/shared/request_get.rb41
-rw-r--r--spec/ruby/library/net/http/http/shared/request_head.rb41
-rw-r--r--spec/ruby/library/net/http/http/shared/request_post.rb41
-rw-r--r--spec/ruby/library/net/http/http/shared/request_put.rb41
-rw-r--r--spec/ruby/library/net/http/http/shared/started.rb26
-rw-r--r--spec/ruby/library/net/http/http/shared/version_1_1.rb6
-rw-r--r--spec/ruby/library/net/http/http/shared/version_1_2.rb6
-rw-r--r--spec/ruby/library/net/http/http/socket_type_spec.rb8
-rw-r--r--spec/ruby/library/net/http/http/start_spec.rb111
-rw-r--r--spec/ruby/library/net/http/http/started_spec.rb8
-rw-r--r--spec/ruby/library/net/http/http/trace_spec.rb24
-rw-r--r--spec/ruby/library/net/http/http/unlock_spec.rb24
-rw-r--r--spec/ruby/library/net/http/http/use_ssl_spec.rb9
-rw-r--r--spec/ruby/library/net/http/http/version_1_1_spec.rb7
-rw-r--r--spec/ruby/library/net/http/http/version_1_2_spec.rb20
-rw-r--r--spec/ruby/library/net/http/httpexceptions/fixtures/classes.rb5
-rw-r--r--spec/ruby/library/net/http/httpexceptions/initialize_spec.rb17
-rw-r--r--spec/ruby/library/net/http/httpexceptions/response_spec.rb10
-rw-r--r--spec/ruby/library/net/http/httpgenericrequest/body_exist_spec.rb21
-rw-r--r--spec/ruby/library/net/http/httpgenericrequest/body_spec.rb30
-rw-r--r--spec/ruby/library/net/http/httpgenericrequest/body_stream_spec.rb32
-rw-r--r--spec/ruby/library/net/http/httpgenericrequest/exec_spec.rb131
-rw-r--r--spec/ruby/library/net/http/httpgenericrequest/inspect_spec.rb25
-rw-r--r--spec/ruby/library/net/http/httpgenericrequest/method_spec.rb15
-rw-r--r--spec/ruby/library/net/http/httpgenericrequest/path_spec.rb12
-rw-r--r--spec/ruby/library/net/http/httpgenericrequest/request_body_permitted_spec.rb12
-rw-r--r--spec/ruby/library/net/http/httpgenericrequest/response_body_permitted_spec.rb12
-rw-r--r--spec/ruby/library/net/http/httpgenericrequest/set_body_internal_spec.rb21
-rw-r--r--spec/ruby/library/net/http/httpheader/add_field_spec.rb31
-rw-r--r--spec/ruby/library/net/http/httpheader/basic_auth_spec.rb14
-rw-r--r--spec/ruby/library/net/http/httpheader/canonical_each_spec.rb8
-rw-r--r--spec/ruby/library/net/http/httpheader/chunked_spec.rb22
-rw-r--r--spec/ruby/library/net/http/httpheader/content_length_spec.rb54
-rw-r--r--spec/ruby/library/net/http/httpheader/content_range_spec.rb32
-rw-r--r--spec/ruby/library/net/http/httpheader/content_type_spec.rb26
-rw-r--r--spec/ruby/library/net/http/httpheader/delete_spec.rb30
-rw-r--r--spec/ruby/library/net/http/httpheader/each_capitalized_name_spec.rb35
-rw-r--r--spec/ruby/library/net/http/httpheader/each_capitalized_spec.rb8
-rw-r--r--spec/ruby/library/net/http/httpheader/each_header_spec.rb8
-rw-r--r--spec/ruby/library/net/http/httpheader/each_key_spec.rb8
-rw-r--r--spec/ruby/library/net/http/httpheader/each_name_spec.rb8
-rw-r--r--spec/ruby/library/net/http/httpheader/each_spec.rb8
-rw-r--r--spec/ruby/library/net/http/httpheader/each_value_spec.rb35
-rw-r--r--spec/ruby/library/net/http/httpheader/element_reference_spec.rb39
-rw-r--r--spec/ruby/library/net/http/httpheader/element_set_spec.rb41
-rw-r--r--spec/ruby/library/net/http/httpheader/fetch_spec.rb68
-rw-r--r--spec/ruby/library/net/http/httpheader/fixtures/classes.rb11
-rw-r--r--spec/ruby/library/net/http/httpheader/form_data_spec.rb8
-rw-r--r--spec/ruby/library/net/http/httpheader/get_fields_spec.rb39
-rw-r--r--spec/ruby/library/net/http/httpheader/initialize_http_header_spec.rb21
-rw-r--r--spec/ruby/library/net/http/httpheader/key_spec.rb21
-rw-r--r--spec/ruby/library/net/http/httpheader/length_spec.rb8
-rw-r--r--spec/ruby/library/net/http/httpheader/main_type_spec.rb24
-rw-r--r--spec/ruby/library/net/http/httpheader/proxy_basic_auth_spec.rb14
-rw-r--r--spec/ruby/library/net/http/httpheader/range_length_spec.rb32
-rw-r--r--spec/ruby/library/net/http/httpheader/range_spec.rb48
-rw-r--r--spec/ruby/library/net/http/httpheader/set_content_type_spec.rb8
-rw-r--r--spec/ruby/library/net/http/httpheader/set_form_data_spec.rb8
-rw-r--r--spec/ruby/library/net/http/httpheader/set_range_spec.rb8
-rw-r--r--spec/ruby/library/net/http/httpheader/shared/each_capitalized.rb31
-rw-r--r--spec/ruby/library/net/http/httpheader/shared/each_header.rb31
-rw-r--r--spec/ruby/library/net/http/httpheader/shared/each_name.rb31
-rw-r--r--spec/ruby/library/net/http/httpheader/shared/set_content_type.rb18
-rw-r--r--spec/ruby/library/net/http/httpheader/shared/set_form_data.rb27
-rw-r--r--spec/ruby/library/net/http/httpheader/shared/set_range.rb89
-rw-r--r--spec/ruby/library/net/http/httpheader/shared/size.rb18
-rw-r--r--spec/ruby/library/net/http/httpheader/size_spec.rb8
-rw-r--r--spec/ruby/library/net/http/httpheader/sub_type_spec.rb32
-rw-r--r--spec/ruby/library/net/http/httpheader/to_hash_spec.rb25
-rw-r--r--spec/ruby/library/net/http/httpheader/type_params_spec.rb24
-rw-r--r--spec/ruby/library/net/http/httprequest/initialize_spec.rb45
-rw-r--r--spec/ruby/library/net/http/httpresponse/body_permitted_spec.rb13
-rw-r--r--spec/ruby/library/net/http/httpresponse/body_spec.rb7
-rw-r--r--spec/ruby/library/net/http/httpresponse/code_spec.rb24
-rw-r--r--spec/ruby/library/net/http/httpresponse/code_type_spec.rb24
-rw-r--r--spec/ruby/library/net/http/httpresponse/entity_spec.rb7
-rw-r--r--spec/ruby/library/net/http/httpresponse/error_spec.rb24
-rw-r--r--spec/ruby/library/net/http/httpresponse/error_type_spec.rb24
-rw-r--r--spec/ruby/library/net/http/httpresponse/exception_type_spec.rb13
-rw-r--r--spec/ruby/library/net/http/httpresponse/header_spec.rb9
-rw-r--r--spec/ruby/library/net/http/httpresponse/http_version_spec.rb12
-rw-r--r--spec/ruby/library/net/http/httpresponse/initialize_spec.rb11
-rw-r--r--spec/ruby/library/net/http/httpresponse/inspect_spec.rb15
-rw-r--r--spec/ruby/library/net/http/httpresponse/message_spec.rb9
-rw-r--r--spec/ruby/library/net/http/httpresponse/msg_spec.rb9
-rw-r--r--spec/ruby/library/net/http/httpresponse/read_body_spec.rb86
-rw-r--r--spec/ruby/library/net/http/httpresponse/read_header_spec.rb9
-rw-r--r--spec/ruby/library/net/http/httpresponse/read_new_spec.rb23
-rw-r--r--spec/ruby/library/net/http/httpresponse/reading_body_spec.rb58
-rw-r--r--spec/ruby/library/net/http/httpresponse/response_spec.rb9
-rw-r--r--spec/ruby/library/net/http/httpresponse/shared/body.rb20
-rw-r--r--spec/ruby/library/net/http/httpresponse/value_spec.rb24
-rw-r--r--spec/ruby/library/objectspace/memsize_of_all_spec.rb22
-rw-r--r--spec/ruby/library/objectspace/memsize_of_spec.rb34
-rw-r--r--spec/ruby/library/objectspace/reachable_objects_from_spec.rb61
-rw-r--r--spec/ruby/library/objectspace/trace_object_allocations_spec.rb131
-rw-r--r--spec/ruby/library/observer/add_observer_spec.rb23
-rw-r--r--spec/ruby/library/observer/count_observers_spec.rb23
-rw-r--r--spec/ruby/library/observer/delete_observer_spec.rb19
-rw-r--r--spec/ruby/library/observer/delete_observers_spec.rb19
-rw-r--r--spec/ruby/library/observer/fixtures/classes.rb17
-rw-r--r--spec/ruby/library/observer/notify_observers_spec.rb31
-rw-r--r--spec/ruby/library/open3/capture2_spec.rb6
-rw-r--r--spec/ruby/library/open3/capture2e_spec.rb6
-rw-r--r--spec/ruby/library/open3/capture3_spec.rb6
-rw-r--r--spec/ruby/library/open3/pipeline_r_spec.rb6
-rw-r--r--spec/ruby/library/open3/pipeline_rw_spec.rb6
-rw-r--r--spec/ruby/library/open3/pipeline_spec.rb6
-rw-r--r--spec/ruby/library/open3/pipeline_start_spec.rb6
-rw-r--r--spec/ruby/library/open3/pipeline_w_spec.rb6
-rw-r--r--spec/ruby/library/open3/popen2_spec.rb6
-rw-r--r--spec/ruby/library/open3/popen2e_spec.rb6
-rw-r--r--spec/ruby/library/open3/popen3_spec.rb41
-rw-r--r--spec/ruby/library/openssl/cipher_spec.rb9
-rw-r--r--spec/ruby/library/openssl/config/freeze_spec.rb22
-rw-r--r--spec/ruby/library/openssl/digest_spec.rb63
-rw-r--r--spec/ruby/library/openssl/hmac/digest_spec.rb16
-rw-r--r--spec/ruby/library/openssl/hmac/hexdigest_spec.rb16
-rw-r--r--spec/ruby/library/openssl/random/pseudo_bytes_spec.rb8
-rw-r--r--spec/ruby/library/openssl/random/random_bytes_spec.rb6
-rw-r--r--spec/ruby/library/openssl/random/shared/random_bytes.rb29
-rw-r--r--spec/ruby/library/openssl/shared/constants.rb11
-rw-r--r--spec/ruby/library/openssl/x509/name/parse_spec.rb48
-rw-r--r--spec/ruby/library/openstruct/delete_field_spec.rb19
-rw-r--r--spec/ruby/library/openstruct/element_reference_spec.rb13
-rw-r--r--spec/ruby/library/openstruct/element_set_spec.rb13
-rw-r--r--spec/ruby/library/openstruct/equal_value_spec.rb28
-rw-r--r--spec/ruby/library/openstruct/fixtures/classes.rb4
-rw-r--r--spec/ruby/library/openstruct/frozen_spec.rb40
-rw-r--r--spec/ruby/library/openstruct/initialize_spec.rb8
-rw-r--r--spec/ruby/library/openstruct/inspect_spec.rb8
-rw-r--r--spec/ruby/library/openstruct/marshal_dump_spec.rb9
-rw-r--r--spec/ruby/library/openstruct/marshal_load_spec.rb12
-rw-r--r--spec/ruby/library/openstruct/method_missing_spec.rb26
-rw-r--r--spec/ruby/library/openstruct/new_spec.rb20
-rw-r--r--spec/ruby/library/openstruct/shared/inspect.rb20
-rw-r--r--spec/ruby/library/openstruct/to_h_spec.rb68
-rw-r--r--spec/ruby/library/openstruct/to_s_spec.rb8
-rw-r--r--spec/ruby/library/optionparser/order_spec.rb28
-rw-r--r--spec/ruby/library/optionparser/parse_spec.rb28
-rw-r--r--spec/ruby/library/pathname/absolute_spec.rb22
-rw-r--r--spec/ruby/library/pathname/divide_spec.rb6
-rw-r--r--spec/ruby/library/pathname/empty_spec.rb32
-rw-r--r--spec/ruby/library/pathname/equal_value_spec.rb14
-rw-r--r--spec/ruby/library/pathname/glob_spec.rb57
-rw-r--r--spec/ruby/library/pathname/hash_spec.rb14
-rw-r--r--spec/ruby/library/pathname/inspect_spec.rb10
-rw-r--r--spec/ruby/library/pathname/join_spec.rb40
-rw-r--r--spec/ruby/library/pathname/new_spec.rb30
-rw-r--r--spec/ruby/library/pathname/parent_spec.rb18
-rw-r--r--spec/ruby/library/pathname/pathname_spec.rb30
-rw-r--r--spec/ruby/library/pathname/plus_spec.rb6
-rw-r--r--spec/ruby/library/pathname/realdirpath_spec.rb10
-rw-r--r--spec/ruby/library/pathname/realpath_spec.rb10
-rw-r--r--spec/ruby/library/pathname/relative_path_from_spec.rb51
-rw-r--r--spec/ruby/library/pathname/relative_spec.rb22
-rw-r--r--spec/ruby/library/pathname/root_spec.rb26
-rw-r--r--spec/ruby/library/pathname/shared/plus.rb8
-rw-r--r--spec/ruby/library/pathname/sub_spec.rb15
-rw-r--r--spec/ruby/library/pp/pp_spec.rb23
-rw-r--r--spec/ruby/library/prime/each_spec.rb170
-rw-r--r--spec/ruby/library/prime/instance_spec.rb24
-rw-r--r--spec/ruby/library/prime/int_from_prime_division_spec.rb16
-rw-r--r--spec/ruby/library/prime/integer/each_prime_spec.rb16
-rw-r--r--spec/ruby/library/prime/integer/from_prime_division_spec.rb16
-rw-r--r--spec/ruby/library/prime/integer/prime_division_spec.rb22
-rw-r--r--spec/ruby/library/prime/integer/prime_spec.rb20
-rw-r--r--spec/ruby/library/prime/next_spec.rb10
-rw-r--r--spec/ruby/library/prime/prime_division_spec.rb28
-rw-r--r--spec/ruby/library/prime/prime_spec.rb20
-rw-r--r--spec/ruby/library/prime/shared/next.rb8
-rw-r--r--spec/ruby/library/prime/succ_spec.rb10
-rw-r--r--spec/ruby/library/rbconfig/rbconfig_spec.rb101
-rw-r--r--spec/ruby/library/rbconfig/sizeof/limits_spec.rb40
-rw-r--r--spec/ruby/library/rbconfig/sizeof/sizeof_spec.rb30
-rw-r--r--spec/ruby/library/rbconfig/unicode_emoji_version_spec.rb28
-rw-r--r--spec/ruby/library/rbconfig/unicode_version_spec.rb28
-rw-r--r--spec/ruby/library/readline/basic_quote_characters_spec.rb18
-rw-r--r--spec/ruby/library/readline/basic_word_break_characters_spec.rb16
-rw-r--r--spec/ruby/library/readline/completer_quote_characters_spec.rb16
-rw-r--r--spec/ruby/library/readline/completer_word_break_characters_spec.rb16
-rw-r--r--spec/ruby/library/readline/completion_append_character_spec.rb16
-rw-r--r--spec/ruby/library/readline/completion_case_fold_spec.rb18
-rw-r--r--spec/ruby/library/readline/completion_proc_spec.rb22
-rw-r--r--spec/ruby/library/readline/constants_spec.rb18
-rw-r--r--spec/ruby/library/readline/emacs_editing_mode_spec.rb11
-rw-r--r--spec/ruby/library/readline/filename_quote_characters_spec.rb18
-rw-r--r--spec/ruby/library/readline/history/append_spec.rb28
-rw-r--r--spec/ruby/library/readline/history/delete_at_spec.rb47
-rw-r--r--spec/ruby/library/readline/history/each_spec.rb31
-rw-r--r--spec/ruby/library/readline/history/element_reference_spec.rb42
-rw-r--r--spec/ruby/library/readline/history/element_set_spec.rb35
-rw-r--r--spec/ruby/library/readline/history/empty_spec.rb13
-rw-r--r--spec/ruby/library/readline/history/history_spec.rb9
-rw-r--r--spec/ruby/library/readline/history/length_spec.rb9
-rw-r--r--spec/ruby/library/readline/history/pop_spec.rb32
-rw-r--r--spec/ruby/library/readline/history/push_spec.rb26
-rw-r--r--spec/ruby/library/readline/history/shared/size.rb14
-rw-r--r--spec/ruby/library/readline/history/shift_spec.rb32
-rw-r--r--spec/ruby/library/readline/history/size_spec.rb9
-rw-r--r--spec/ruby/library/readline/history/to_s_spec.rb9
-rw-r--r--spec/ruby/library/readline/readline_spec.rb33
-rw-r--r--spec/ruby/library/readline/spec_helper.rb11
-rw-r--r--spec/ruby/library/readline/vi_editing_mode_spec.rb11
-rw-r--r--spec/ruby/library/resolv/fixtures/hosts1
-rw-r--r--spec/ruby/library/resolv/get_address_spec.rb19
-rw-r--r--spec/ruby/library/resolv/get_addresses_spec.rb12
-rw-r--r--spec/ruby/library/resolv/get_name_spec.rb18
-rw-r--r--spec/ruby/library/resolv/get_names_spec.rb11
-rw-r--r--spec/ruby/library/rexml/attribute/clone_spec.rb14
-rw-r--r--spec/ruby/library/rexml/attribute/element_spec.rb26
-rw-r--r--spec/ruby/library/rexml/attribute/equal_value_spec.rb21
-rw-r--r--spec/ruby/library/rexml/attribute/hash_spec.rb16
-rw-r--r--spec/ruby/library/rexml/attribute/initialize_spec.rb32
-rw-r--r--spec/ruby/library/rexml/attribute/inspect_spec.rb22
-rw-r--r--spec/ruby/library/rexml/attribute/namespace_spec.rb27
-rw-r--r--spec/ruby/library/rexml/attribute/node_type_spec.rb13
-rw-r--r--spec/ruby/library/rexml/attribute/prefix_spec.rb21
-rw-r--r--spec/ruby/library/rexml/attribute/remove_spec.rb23
-rw-r--r--spec/ruby/library/rexml/attribute/to_s_spec.rb17
-rw-r--r--spec/ruby/library/rexml/attribute/to_string_spec.rb17
-rw-r--r--spec/ruby/library/rexml/attribute/value_spec.rb17
-rw-r--r--spec/ruby/library/rexml/attribute/write_spec.rb26
-rw-r--r--spec/ruby/library/rexml/attribute/xpath_spec.rb22
-rw-r--r--spec/ruby/library/rexml/attributes/add_spec.rb10
-rw-r--r--spec/ruby/library/rexml/attributes/append_spec.rb10
-rw-r--r--spec/ruby/library/rexml/attributes/delete_all_spec.rb34
-rw-r--r--spec/ruby/library/rexml/attributes/delete_spec.rb30
-rw-r--r--spec/ruby/library/rexml/attributes/each_attribute_spec.rb25
-rw-r--r--spec/ruby/library/rexml/attributes/each_spec.rb26
-rw-r--r--spec/ruby/library/rexml/attributes/element_reference_spec.rb21
-rw-r--r--spec/ruby/library/rexml/attributes/element_set_spec.rb28
-rw-r--r--spec/ruby/library/rexml/attributes/get_attribute_ns_spec.rb17
-rw-r--r--spec/ruby/library/rexml/attributes/get_attribute_spec.rb32
-rw-r--r--spec/ruby/library/rexml/attributes/initialize_spec.rb21
-rw-r--r--spec/ruby/library/rexml/attributes/length_spec.rb10
-rw-r--r--spec/ruby/library/rexml/attributes/namespaces_spec.rb9
-rw-r--r--spec/ruby/library/rexml/attributes/prefixes_spec.rb27
-rw-r--r--spec/ruby/library/rexml/attributes/shared/add.rb17
-rw-r--r--spec/ruby/library/rexml/attributes/shared/length.rb13
-rw-r--r--spec/ruby/library/rexml/attributes/size_spec.rb10
-rw-r--r--spec/ruby/library/rexml/attributes/to_a_spec.rb22
-rw-r--r--spec/ruby/library/rexml/cdata/clone_spec.rb13
-rw-r--r--spec/ruby/library/rexml/cdata/initialize_spec.rb27
-rw-r--r--spec/ruby/library/rexml/cdata/shared/to_s.rb11
-rw-r--r--spec/ruby/library/rexml/cdata/to_s_spec.rb10
-rw-r--r--spec/ruby/library/rexml/cdata/value_spec.rb10
-rw-r--r--spec/ruby/library/rexml/document/add_element_spec.rb34
-rw-r--r--spec/ruby/library/rexml/document/add_spec.rb60
-rw-r--r--spec/ruby/library/rexml/document/clone_spec.rb23
-rw-r--r--spec/ruby/library/rexml/document/doctype_spec.rb18
-rw-r--r--spec/ruby/library/rexml/document/encoding_spec.rb25
-rw-r--r--spec/ruby/library/rexml/document/expanded_name_spec.rb19
-rw-r--r--spec/ruby/library/rexml/document/new_spec.rb39
-rw-r--r--spec/ruby/library/rexml/document/node_type_spec.rb11
-rw-r--r--spec/ruby/library/rexml/document/root_spec.rb15
-rw-r--r--spec/ruby/library/rexml/document/stand_alone_spec.rb22
-rw-r--r--spec/ruby/library/rexml/document/version_spec.rb17
-rw-r--r--spec/ruby/library/rexml/document/write_spec.rb38
-rw-r--r--spec/ruby/library/rexml/document/xml_decl_spec.rb18
-rw-r--r--spec/ruby/library/rexml/element/add_attribute_spec.rb44
-rw-r--r--spec/ruby/library/rexml/element/add_attributes_spec.rb25
-rw-r--r--spec/ruby/library/rexml/element/add_element_spec.rb41
-rw-r--r--spec/ruby/library/rexml/element/add_namespace_spec.rb26
-rw-r--r--spec/ruby/library/rexml/element/add_text_spec.rb27
-rw-r--r--spec/ruby/library/rexml/element/attribute_spec.rb20
-rw-r--r--spec/ruby/library/rexml/element/attributes_spec.rb22
-rw-r--r--spec/ruby/library/rexml/element/cdatas_spec.rb27
-rw-r--r--spec/ruby/library/rexml/element/clone_spec.rb32
-rw-r--r--spec/ruby/library/rexml/element/comments_spec.rb23
-rw-r--r--spec/ruby/library/rexml/element/delete_attribute_spec.rb42
-rw-r--r--spec/ruby/library/rexml/element/delete_element_spec.rb52
-rw-r--r--spec/ruby/library/rexml/element/delete_namespace_spec.rb28
-rw-r--r--spec/ruby/library/rexml/element/document_spec.rb19
-rw-r--r--spec/ruby/library/rexml/element/each_element_with_attribute_spec.rb38
-rw-r--r--spec/ruby/library/rexml/element/each_element_with_text_spec.rb34
-rw-r--r--spec/ruby/library/rexml/element/element_reference_spec.rb23
-rw-r--r--spec/ruby/library/rexml/element/get_text_spec.rb21
-rw-r--r--spec/ruby/library/rexml/element/has_attributes_spec.rb20
-rw-r--r--spec/ruby/library/rexml/element/has_elements_spec.rb21
-rw-r--r--spec/ruby/library/rexml/element/has_text_spec.rb19
-rw-r--r--spec/ruby/library/rexml/element/inspect_spec.rb30
-rw-r--r--spec/ruby/library/rexml/element/instructions_spec.rb24
-rw-r--r--spec/ruby/library/rexml/element/namespace_spec.rb30
-rw-r--r--spec/ruby/library/rexml/element/namespaces_spec.rb35
-rw-r--r--spec/ruby/library/rexml/element/new_spec.rb38
-rw-r--r--spec/ruby/library/rexml/element/next_element_spec.rb22
-rw-r--r--spec/ruby/library/rexml/element/node_type_spec.rb11
-rw-r--r--spec/ruby/library/rexml/element/prefixes_spec.rb26
-rw-r--r--spec/ruby/library/rexml/element/previous_element_spec.rb23
-rw-r--r--spec/ruby/library/rexml/element/raw_spec.rb27
-rw-r--r--spec/ruby/library/rexml/element/root_spec.rb31
-rw-r--r--spec/ruby/library/rexml/element/text_spec.rb49
-rw-r--r--spec/ruby/library/rexml/element/texts_spec.rb19
-rw-r--r--spec/ruby/library/rexml/element/whitespace_spec.rb26
-rw-r--r--spec/ruby/library/rexml/node/each_recursive_spec.rb24
-rw-r--r--spec/ruby/library/rexml/node/find_first_recursive_spec.rb28
-rw-r--r--spec/ruby/library/rexml/node/index_in_parent_spec.rb18
-rw-r--r--spec/ruby/library/rexml/node/next_sibling_node_spec.rb24
-rw-r--r--spec/ruby/library/rexml/node/parent_spec.rb23
-rw-r--r--spec/ruby/library/rexml/node/previous_sibling_node_spec.rb24
-rw-r--r--spec/ruby/library/rexml/shared/each_element.rb36
-rw-r--r--spec/ruby/library/rexml/shared/elements_to_a.rb34
-rw-r--r--spec/ruby/library/rexml/text/append_spec.rb13
-rw-r--r--spec/ruby/library/rexml/text/clone_spec.rb13
-rw-r--r--spec/ruby/library/rexml/text/comparison_spec.rb28
-rw-r--r--spec/ruby/library/rexml/text/empty_spec.rb15
-rw-r--r--spec/ruby/library/rexml/text/indent_text_spec.rb26
-rw-r--r--spec/ruby/library/rexml/text/inspect_spec.rb11
-rw-r--r--spec/ruby/library/rexml/text/new_spec.rb51
-rw-r--r--spec/ruby/library/rexml/text/node_type_spec.rb11
-rw-r--r--spec/ruby/library/rexml/text/normalize_spec.rb11
-rw-r--r--spec/ruby/library/rexml/text/read_with_substitution_spec.rb15
-rw-r--r--spec/ruby/library/rexml/text/to_s_spec.rb20
-rw-r--r--spec/ruby/library/rexml/text/unnormalize_spec.rb11
-rw-r--r--spec/ruby/library/rexml/text/value_spec.rb40
-rw-r--r--spec/ruby/library/rexml/text/wrap_spec.rb23
-rw-r--r--spec/ruby/library/rexml/text/write_with_substitution_spec.rb36
-rw-r--r--spec/ruby/library/ripper/lex_spec.rb23
-rw-r--r--spec/ruby/library/ripper/sexp_spec.rb13
-rw-r--r--spec/ruby/library/rubygems/gem/bin_path_spec.rb34
-rw-r--r--spec/ruby/library/rubygems/gem/load_path_insert_index_spec.rb10
-rw-r--r--spec/ruby/library/scanf/io/block_scanf_spec.rb10
-rw-r--r--spec/ruby/library/scanf/io/fixtures/date.txt4
-rw-r--r--spec/ruby/library/scanf/io/fixtures/helloworld.txt1
-rw-r--r--spec/ruby/library/scanf/io/scanf_spec.rb38
-rw-r--r--spec/ruby/library/scanf/io/shared/block_scanf.rb28
-rw-r--r--spec/ruby/library/scanf/string/block_scanf_spec.rb10
-rw-r--r--spec/ruby/library/scanf/string/scanf_spec.rb56
-rw-r--r--spec/ruby/library/scanf/string/shared/block_scanf.rb25
-rw-r--r--spec/ruby/library/securerandom/base64_spec.rb55
-rw-r--r--spec/ruby/library/securerandom/bytes_spec.rb8
-rw-r--r--spec/ruby/library/securerandom/hex_spec.rb54
-rw-r--r--spec/ruby/library/securerandom/random_bytes_spec.rb53
-rw-r--r--spec/ruby/library/securerandom/random_number_spec.rb97
-rw-r--r--spec/ruby/library/set/add_spec.rb27
-rw-r--r--spec/ruby/library/set/append_spec.rb7
-rw-r--r--spec/ruby/library/set/case_compare_spec.rb12
-rw-r--r--spec/ruby/library/set/case_equality_spec.rb7
-rw-r--r--spec/ruby/library/set/classify_spec.rb27
-rw-r--r--spec/ruby/library/set/clear_spec.rb17
-rw-r--r--spec/ruby/library/set/collect_spec.rb7
-rw-r--r--spec/ruby/library/set/compare_by_identity_spec.rb143
-rw-r--r--spec/ruby/library/set/comparison_spec.rb29
-rw-r--r--spec/ruby/library/set/constructor_spec.rb15
-rw-r--r--spec/ruby/library/set/delete_if_spec.rb38
-rw-r--r--spec/ruby/library/set/delete_spec.rb37
-rw-r--r--spec/ruby/library/set/difference_spec.rb7
-rw-r--r--spec/ruby/library/set/disjoint_spec.rb23
-rw-r--r--spec/ruby/library/set/divide_spec.rb34
-rw-r--r--spec/ruby/library/set/each_spec.rb26
-rw-r--r--spec/ruby/library/set/empty_spec.rb10
-rw-r--r--spec/ruby/library/set/enumerable/to_set_spec.rb21
-rw-r--r--spec/ruby/library/set/eql_spec.rb15
-rw-r--r--spec/ruby/library/set/equal_value_spec.rb33
-rw-r--r--spec/ruby/library/set/exclusion_spec.rb18
-rw-r--r--spec/ruby/library/set/filter_spec.rb6
-rw-r--r--spec/ruby/library/set/fixtures/set_like.rb31
-rw-r--r--spec/ruby/library/set/flatten_merge_spec.rb23
-rw-r--r--spec/ruby/library/set/flatten_spec.rb53
-rw-r--r--spec/ruby/library/set/hash_spec.rb13
-rw-r--r--spec/ruby/library/set/include_spec.rb7
-rw-r--r--spec/ruby/library/set/initialize_clone_spec.rb18
-rw-r--r--spec/ruby/library/set/initialize_spec.rb73
-rw-r--r--spec/ruby/library/set/inspect_spec.rb7
-rw-r--r--spec/ruby/library/set/intersect_spec.rb23
-rw-r--r--spec/ruby/library/set/intersection_spec.rb11
-rw-r--r--spec/ruby/library/set/join_spec.rb31
-rw-r--r--spec/ruby/library/set/keep_if_spec.rb38
-rw-r--r--spec/ruby/library/set/length_spec.rb7
-rw-r--r--spec/ruby/library/set/map_spec.rb7
-rw-r--r--spec/ruby/library/set/member_spec.rb7
-rw-r--r--spec/ruby/library/set/merge_spec.rb19
-rw-r--r--spec/ruby/library/set/minus_spec.rb7
-rw-r--r--spec/ruby/library/set/plus_spec.rb7
-rw-r--r--spec/ruby/library/set/pretty_print_cycle_spec.rb10
-rw-r--r--spec/ruby/library/set/pretty_print_spec.rb19
-rw-r--r--spec/ruby/library/set/proper_subset_spec.rb41
-rw-r--r--spec/ruby/library/set/proper_superset_spec.rb41
-rw-r--r--spec/ruby/library/set/reject_spec.rb42
-rw-r--r--spec/ruby/library/set/replace_spec.rb17
-rw-r--r--spec/ruby/library/set/select_spec.rb6
-rw-r--r--spec/ruby/library/set/shared/add.rb14
-rw-r--r--spec/ruby/library/set/shared/collect.rb20
-rw-r--r--spec/ruby/library/set/shared/difference.rb15
-rw-r--r--spec/ruby/library/set/shared/include.rb29
-rw-r--r--spec/ruby/library/set/shared/inspect.rb15
-rw-r--r--spec/ruby/library/set/shared/intersection.rb15
-rw-r--r--spec/ruby/library/set/shared/length.rb6
-rw-r--r--spec/ruby/library/set/shared/select.rb42
-rw-r--r--spec/ruby/library/set/shared/union.rb15
-rw-r--r--spec/ruby/library/set/size_spec.rb7
-rw-r--r--spec/ruby/library/set/sortedset/add_spec.rb42
-rw-r--r--spec/ruby/library/set/sortedset/append_spec.rb10
-rw-r--r--spec/ruby/library/set/sortedset/case_equality_spec.rb10
-rw-r--r--spec/ruby/library/set/sortedset/classify_spec.rb30
-rw-r--r--spec/ruby/library/set/sortedset/clear_spec.rb20
-rw-r--r--spec/ruby/library/set/sortedset/collect_spec.rb10
-rw-r--r--spec/ruby/library/set/sortedset/constructor_spec.rb18
-rw-r--r--spec/ruby/library/set/sortedset/delete_if_spec.rb41
-rw-r--r--spec/ruby/library/set/sortedset/delete_spec.rb40
-rw-r--r--spec/ruby/library/set/sortedset/difference_spec.rb10
-rw-r--r--spec/ruby/library/set/sortedset/divide_spec.rb37
-rw-r--r--spec/ruby/library/set/sortedset/each_spec.rb29
-rw-r--r--spec/ruby/library/set/sortedset/empty_spec.rb13
-rw-r--r--spec/ruby/library/set/sortedset/eql_spec.rb19
-rw-r--r--spec/ruby/library/set/sortedset/equal_value_spec.rb16
-rw-r--r--spec/ruby/library/set/sortedset/exclusion_spec.rb21
-rw-r--r--spec/ruby/library/set/sortedset/filter_spec.rb10
-rw-r--r--spec/ruby/library/set/sortedset/flatten_merge_spec.rb11
-rw-r--r--spec/ruby/library/set/sortedset/flatten_spec.rb47
-rw-r--r--spec/ruby/library/set/sortedset/hash_spec.rb16
-rw-r--r--spec/ruby/library/set/sortedset/include_spec.rb10
-rw-r--r--spec/ruby/library/set/sortedset/initialize_spec.rb33
-rw-r--r--spec/ruby/library/set/sortedset/inspect_spec.rb13
-rw-r--r--spec/ruby/library/set/sortedset/intersection_spec.rb14
-rw-r--r--spec/ruby/library/set/sortedset/keep_if_spec.rb34
-rw-r--r--spec/ruby/library/set/sortedset/length_spec.rb10
-rw-r--r--spec/ruby/library/set/sortedset/map_spec.rb10
-rw-r--r--spec/ruby/library/set/sortedset/member_spec.rb10
-rw-r--r--spec/ruby/library/set/sortedset/merge_spec.rb22
-rw-r--r--spec/ruby/library/set/sortedset/minus_spec.rb10
-rw-r--r--spec/ruby/library/set/sortedset/plus_spec.rb10
-rw-r--r--spec/ruby/library/set/sortedset/pretty_print_cycle_spec.rb13
-rw-r--r--spec/ruby/library/set/sortedset/pretty_print_spec.rb20
-rw-r--r--spec/ruby/library/set/sortedset/proper_subset_spec.rb36
-rw-r--r--spec/ruby/library/set/sortedset/proper_superset_spec.rb36
-rw-r--r--spec/ruby/library/set/sortedset/reject_spec.rb45
-rw-r--r--spec/ruby/library/set/sortedset/replace_spec.rb20
-rw-r--r--spec/ruby/library/set/sortedset/select_spec.rb10
-rw-r--r--spec/ruby/library/set/sortedset/shared/add.rb14
-rw-r--r--spec/ruby/library/set/sortedset/shared/collect.rb20
-rw-r--r--spec/ruby/library/set/sortedset/shared/difference.rb15
-rw-r--r--spec/ruby/library/set/sortedset/shared/include.rb7
-rw-r--r--spec/ruby/library/set/sortedset/shared/intersection.rb15
-rw-r--r--spec/ruby/library/set/sortedset/shared/length.rb6
-rw-r--r--spec/ruby/library/set/sortedset/shared/select.rb35
-rw-r--r--spec/ruby/library/set/sortedset/shared/union.rb15
-rw-r--r--spec/ruby/library/set/sortedset/size_spec.rb10
-rw-r--r--spec/ruby/library/set/sortedset/sortedset_spec.rb22
-rw-r--r--spec/ruby/library/set/sortedset/subset_spec.rb36
-rw-r--r--spec/ruby/library/set/sortedset/subtract_spec.rb20
-rw-r--r--spec/ruby/library/set/sortedset/superset_spec.rb36
-rw-r--r--spec/ruby/library/set/sortedset/to_a_spec.rb20
-rw-r--r--spec/ruby/library/set/sortedset/union_spec.rb14
-rw-r--r--spec/ruby/library/set/subset_spec.rb41
-rw-r--r--spec/ruby/library/set/subtract_spec.rb17
-rw-r--r--spec/ruby/library/set/superset_spec.rb41
-rw-r--r--spec/ruby/library/set/to_a_spec.rb8
-rw-r--r--spec/ruby/library/set/to_s_spec.rb11
-rw-r--r--spec/ruby/library/set/union_spec.rb11
-rw-r--r--spec/ruby/library/shellwords/shellwords_spec.rb34
-rw-r--r--spec/ruby/library/singleton/allocate_spec.rb8
-rw-r--r--spec/ruby/library/singleton/clone_spec.rb8
-rw-r--r--spec/ruby/library/singleton/dump_spec.rb14
-rw-r--r--spec/ruby/library/singleton/dup_spec.rb8
-rw-r--r--spec/ruby/library/singleton/fixtures/classes.rb18
-rw-r--r--spec/ruby/library/singleton/instance_spec.rb30
-rw-r--r--spec/ruby/library/singleton/load_spec.rb21
-rw-r--r--spec/ruby/library/singleton/new_spec.rb8
-rw-r--r--spec/ruby/library/socket/addrinfo/afamily_spec.rb37
-rw-r--r--spec/ruby/library/socket/addrinfo/bind_spec.rb28
-rw-r--r--spec/ruby/library/socket/addrinfo/canonname_spec.rb27
-rw-r--r--spec/ruby/library/socket/addrinfo/connect_from_spec.rb75
-rw-r--r--spec/ruby/library/socket/addrinfo/connect_spec.rb35
-rw-r--r--spec/ruby/library/socket/addrinfo/connect_to_spec.rb75
-rw-r--r--spec/ruby/library/socket/addrinfo/family_addrinfo_spec.rb115
-rw-r--r--spec/ruby/library/socket/addrinfo/foreach_spec.rb9
-rw-r--r--spec/ruby/library/socket/addrinfo/getaddrinfo_spec.rb91
-rw-r--r--spec/ruby/library/socket/addrinfo/getnameinfo_spec.rb42
-rw-r--r--spec/ruby/library/socket/addrinfo/initialize_spec.rb591
-rw-r--r--spec/ruby/library/socket/addrinfo/inspect_sockaddr_spec.rb50
-rw-r--r--spec/ruby/library/socket/addrinfo/inspect_spec.rb65
-rw-r--r--spec/ruby/library/socket/addrinfo/ip_address_spec.rb66
-rw-r--r--spec/ruby/library/socket/addrinfo/ip_port_spec.rb35
-rw-r--r--spec/ruby/library/socket/addrinfo/ip_spec.rb64
-rw-r--r--spec/ruby/library/socket/addrinfo/ip_unpack_spec.rb35
-rw-r--r--spec/ruby/library/socket/addrinfo/ipv4_loopback_spec.rb43
-rw-r--r--spec/ruby/library/socket/addrinfo/ipv4_multicast_spec.rb29
-rw-r--r--spec/ruby/library/socket/addrinfo/ipv4_private_spec.rb47
-rw-r--r--spec/ruby/library/socket/addrinfo/ipv4_spec.rb35
-rw-r--r--spec/ruby/library/socket/addrinfo/ipv6_linklocal_spec.rb23
-rw-r--r--spec/ruby/library/socket/addrinfo/ipv6_loopback_spec.rb45
-rw-r--r--spec/ruby/library/socket/addrinfo/ipv6_mc_global_spec.rb20
-rw-r--r--spec/ruby/library/socket/addrinfo/ipv6_mc_linklocal_spec.rb19
-rw-r--r--spec/ruby/library/socket/addrinfo/ipv6_mc_nodelocal_spec.rb18
-rw-r--r--spec/ruby/library/socket/addrinfo/ipv6_mc_orglocal_spec.rb18
-rw-r--r--spec/ruby/library/socket/addrinfo/ipv6_mc_sitelocal_spec.rb18
-rw-r--r--spec/ruby/library/socket/addrinfo/ipv6_multicast_spec.rb48
-rw-r--r--spec/ruby/library/socket/addrinfo/ipv6_sitelocal_spec.rb23
-rw-r--r--spec/ruby/library/socket/addrinfo/ipv6_spec.rb35
-rw-r--r--spec/ruby/library/socket/addrinfo/ipv6_to_ipv4_spec.rb71
-rw-r--r--spec/ruby/library/socket/addrinfo/ipv6_unique_local_spec.rb18
-rw-r--r--spec/ruby/library/socket/addrinfo/ipv6_unspecified_spec.rb15
-rw-r--r--spec/ruby/library/socket/addrinfo/ipv6_v4compat_spec.rb20
-rw-r--r--spec/ruby/library/socket/addrinfo/ipv6_v4mapped_spec.rb20
-rw-r--r--spec/ruby/library/socket/addrinfo/listen_spec.rb34
-rw-r--r--spec/ruby/library/socket/addrinfo/marshal_dump_spec.rb84
-rw-r--r--spec/ruby/library/socket/addrinfo/marshal_load_spec.rb35
-rw-r--r--spec/ruby/library/socket/addrinfo/pfamily_spec.rb43
-rw-r--r--spec/ruby/library/socket/addrinfo/protocol_spec.rb24
-rw-r--r--spec/ruby/library/socket/addrinfo/shared/to_sockaddr.rb51
-rw-r--r--spec/ruby/library/socket/addrinfo/socktype_spec.rb23
-rw-r--r--spec/ruby/library/socket/addrinfo/tcp_spec.rb34
-rw-r--r--spec/ruby/library/socket/addrinfo/to_s_spec.rb6
-rw-r--r--spec/ruby/library/socket/addrinfo/to_sockaddr_spec.rb6
-rw-r--r--spec/ruby/library/socket/addrinfo/udp_spec.rb36
-rw-r--r--spec/ruby/library/socket/addrinfo/unix_path_spec.rb37
-rw-r--r--spec/ruby/library/socket/addrinfo/unix_spec.rb71
-rw-r--r--spec/ruby/library/socket/ancillarydata/cmsg_is_spec.rb33
-rw-r--r--spec/ruby/library/socket/ancillarydata/data_spec.rb9
-rw-r--r--spec/ruby/library/socket/ancillarydata/family_spec.rb9
-rw-r--r--spec/ruby/library/socket/ancillarydata/initialize_spec.rb284
-rw-r--r--spec/ruby/library/socket/ancillarydata/int_spec.rb43
-rw-r--r--spec/ruby/library/socket/ancillarydata/ip_pktinfo_spec.rb145
-rw-r--r--spec/ruby/library/socket/ancillarydata/ipv6_pktinfo_addr_spec.rb11
-rw-r--r--spec/ruby/library/socket/ancillarydata/ipv6_pktinfo_ifindex_spec.rb11
-rw-r--r--spec/ruby/library/socket/ancillarydata/ipv6_pktinfo_spec.rb89
-rw-r--r--spec/ruby/library/socket/ancillarydata/level_spec.rb9
-rw-r--r--spec/ruby/library/socket/ancillarydata/type_spec.rb9
-rw-r--r--spec/ruby/library/socket/ancillarydata/unix_rights_spec.rb61
-rw-r--r--spec/ruby/library/socket/basicsocket/close_read_spec.rb43
-rw-r--r--spec/ruby/library/socket/basicsocket/close_write_spec.rb48
-rw-r--r--spec/ruby/library/socket/basicsocket/connect_address_spec.rb154
-rw-r--r--spec/ruby/library/socket/basicsocket/do_not_reverse_lookup_spec.rb103
-rw-r--r--spec/ruby/library/socket/basicsocket/for_fd_spec.rb38
-rw-r--r--spec/ruby/library/socket/basicsocket/getpeereid_spec.rb36
-rw-r--r--spec/ruby/library/socket/basicsocket/getpeername_spec.rb25
-rw-r--r--spec/ruby/library/socket/basicsocket/getsockname_spec.rb28
-rw-r--r--spec/ruby/library/socket/basicsocket/getsockopt_spec.rb188
-rw-r--r--spec/ruby/library/socket/basicsocket/ioctl_spec.rb42
-rw-r--r--spec/ruby/library/socket/basicsocket/local_address_spec.rb10
-rw-r--r--spec/ruby/library/socket/basicsocket/read_nonblock_spec.rb44
-rw-r--r--spec/ruby/library/socket/basicsocket/recv_nonblock_spec.rb91
-rw-r--r--spec/ruby/library/socket/basicsocket/recv_spec.rb159
-rw-r--r--spec/ruby/library/socket/basicsocket/recvmsg_nonblock_spec.rb224
-rw-r--r--spec/ruby/library/socket/basicsocket/recvmsg_spec.rb197
-rw-r--r--spec/ruby/library/socket/basicsocket/remote_address_spec.rb10
-rw-r--r--spec/ruby/library/socket/basicsocket/send_spec.rb220
-rw-r--r--spec/ruby/library/socket/basicsocket/sendmsg_nonblock_spec.rb118
-rw-r--r--spec/ruby/library/socket/basicsocket/sendmsg_spec.rb111
-rw-r--r--spec/ruby/library/socket/basicsocket/setsockopt_spec.rb336
-rw-r--r--spec/ruby/library/socket/basicsocket/shutdown_spec.rb155
-rw-r--r--spec/ruby/library/socket/basicsocket/write_nonblock_spec.rb43
-rw-r--r--spec/ruby/library/socket/constants/constants_spec.rb108
-rw-r--r--spec/ruby/library/socket/fixtures/classes.rb164
-rw-r--r--spec/ruby/library/socket/fixtures/send_io.txt1
-rw-r--r--spec/ruby/library/socket/ipsocket/addr_spec.rb105
-rw-r--r--spec/ruby/library/socket/ipsocket/getaddress_spec.rb25
-rw-r--r--spec/ruby/library/socket/ipsocket/peeraddr_spec.rb117
-rw-r--r--spec/ruby/library/socket/ipsocket/recvfrom_spec.rb123
-rw-r--r--spec/ruby/library/socket/option/bool_spec.rb27
-rw-r--r--spec/ruby/library/socket/option/initialize_spec.rb83
-rw-r--r--spec/ruby/library/socket/option/inspect_spec.rb19
-rw-r--r--spec/ruby/library/socket/option/int_spec.rb43
-rw-r--r--spec/ruby/library/socket/option/linger_spec.rb76
-rw-r--r--spec/ruby/library/socket/option/new_spec.rb35
-rw-r--r--spec/ruby/library/socket/shared/address.rb249
-rw-r--r--spec/ruby/library/socket/shared/pack_sockaddr.rb99
-rw-r--r--spec/ruby/library/socket/shared/partially_closable_sockets.rb13
-rw-r--r--spec/ruby/library/socket/shared/socketpair.rb138
-rw-r--r--spec/ruby/library/socket/socket/accept_loop_spec.rb84
-rw-r--r--spec/ruby/library/socket/socket/accept_nonblock_spec.rb141
-rw-r--r--spec/ruby/library/socket/socket/accept_spec.rb121
-rw-r--r--spec/ruby/library/socket/socket/bind_spec.rb150
-rw-r--r--spec/ruby/library/socket/socket/connect_nonblock_spec.rb149
-rw-r--r--spec/ruby/library/socket/socket/connect_spec.rb56
-rw-r--r--spec/ruby/library/socket/socket/for_fd_spec.rb30
-rw-r--r--spec/ruby/library/socket/socket/getaddrinfo_spec.rb373
-rw-r--r--spec/ruby/library/socket/socket/gethostbyaddr_spec.rb124
-rw-r--r--spec/ruby/library/socket/socket/gethostbyname_spec.rb135
-rw-r--r--spec/ruby/library/socket/socket/gethostname_spec.rb8
-rw-r--r--spec/ruby/library/socket/socket/getifaddrs_spec.rb117
-rw-r--r--spec/ruby/library/socket/socket/getnameinfo_spec.rb147
-rw-r--r--spec/ruby/library/socket/socket/getservbyname_spec.rb32
-rw-r--r--spec/ruby/library/socket/socket/getservbyport_spec.rb23
-rw-r--r--spec/ruby/library/socket/socket/initialize_spec.rb87
-rw-r--r--spec/ruby/library/socket/socket/ip_address_list_spec.rb50
-rw-r--r--spec/ruby/library/socket/socket/ipv6only_bang_spec.rb20
-rw-r--r--spec/ruby/library/socket/socket/listen_spec.rb66
-rw-r--r--spec/ruby/library/socket/socket/local_address_spec.rb43
-rw-r--r--spec/ruby/library/socket/socket/new_spec.rb2
-rw-r--r--spec/ruby/library/socket/socket/pack_sockaddr_in_spec.rb7
-rw-r--r--spec/ruby/library/socket/socket/pack_sockaddr_un_spec.rb7
-rw-r--r--spec/ruby/library/socket/socket/pair_spec.rb7
-rw-r--r--spec/ruby/library/socket/socket/recvfrom_nonblock_spec.rb118
-rw-r--r--spec/ruby/library/socket/socket/recvfrom_spec.rb92
-rw-r--r--spec/ruby/library/socket/socket/remote_address_spec.rb54
-rw-r--r--spec/ruby/library/socket/socket/sockaddr_in_spec.rb7
-rw-r--r--spec/ruby/library/socket/socket/sockaddr_un_spec.rb7
-rw-r--r--spec/ruby/library/socket/socket/socket_spec.rb38
-rw-r--r--spec/ruby/library/socket/socket/socketpair_spec.rb7
-rw-r--r--spec/ruby/library/socket/socket/sysaccept_spec.rb91
-rw-r--r--spec/ruby/library/socket/socket/tcp_server_loop_spec.rb54
-rw-r--r--spec/ruby/library/socket/socket/tcp_server_sockets_spec.rb39
-rw-r--r--spec/ruby/library/socket/socket/tcp_spec.rb70
-rw-r--r--spec/ruby/library/socket/socket/udp_server_loop_on_spec.rb47
-rw-r--r--spec/ruby/library/socket/socket/udp_server_loop_spec.rb59
-rw-r--r--spec/ruby/library/socket/socket/udp_server_recv_spec.rb35
-rw-r--r--spec/ruby/library/socket/socket/udp_server_sockets_spec.rb39
-rw-r--r--spec/ruby/library/socket/socket/unix_server_loop_spec.rb58
-rw-r--r--spec/ruby/library/socket/socket/unix_server_socket_spec.rb48
-rw-r--r--spec/ruby/library/socket/socket/unix_spec.rb45
-rw-r--r--spec/ruby/library/socket/socket/unpack_sockaddr_in_spec.rb46
-rw-r--r--spec/ruby/library/socket/socket/unpack_sockaddr_un_spec.rb26
-rw-r--r--spec/ruby/library/socket/spec_helper.rb13
-rw-r--r--spec/ruby/library/socket/tcpserver/accept_nonblock_spec.rb85
-rw-r--r--spec/ruby/library/socket/tcpserver/accept_spec.rb119
-rw-r--r--spec/ruby/library/socket/tcpserver/gets_spec.rb16
-rw-r--r--spec/ruby/library/socket/tcpserver/initialize_spec.rb101
-rw-r--r--spec/ruby/library/socket/tcpserver/listen_spec.rb22
-rw-r--r--spec/ruby/library/socket/tcpserver/new_spec.rb131
-rw-r--r--spec/ruby/library/socket/tcpserver/sysaccept_spec.rb66
-rw-r--r--spec/ruby/library/socket/tcpsocket/gethostbyname_spec.rb119
-rw-r--r--spec/ruby/library/socket/tcpsocket/initialize_spec.rb66
-rw-r--r--spec/ruby/library/socket/tcpsocket/local_address_spec.rb73
-rw-r--r--spec/ruby/library/socket/tcpsocket/open_spec.rb5
-rw-r--r--spec/ruby/library/socket/tcpsocket/partially_closable_spec.rb21
-rw-r--r--spec/ruby/library/socket/tcpsocket/recv_nonblock_spec.rb48
-rw-r--r--spec/ruby/library/socket/tcpsocket/recv_spec.rb28
-rw-r--r--spec/ruby/library/socket/tcpsocket/remote_address_spec.rb72
-rw-r--r--spec/ruby/library/socket/tcpsocket/setsockopt_spec.rb45
-rw-r--r--spec/ruby/library/socket/tcpsocket/shared/new.rb94
-rw-r--r--spec/ruby/library/socket/udpsocket/bind_spec.rb83
-rw-r--r--spec/ruby/library/socket/udpsocket/connect_spec.rb35
-rw-r--r--spec/ruby/library/socket/udpsocket/initialize_spec.rb40
-rw-r--r--spec/ruby/library/socket/udpsocket/inspect_spec.rb17
-rw-r--r--spec/ruby/library/socket/udpsocket/local_address_spec.rb80
-rw-r--r--spec/ruby/library/socket/udpsocket/new_spec.rb34
-rw-r--r--spec/ruby/library/socket/udpsocket/open_spec.rb13
-rw-r--r--spec/ruby/library/socket/udpsocket/recvfrom_nonblock_spec.rb102
-rw-r--r--spec/ruby/library/socket/udpsocket/remote_address_spec.rb79
-rw-r--r--spec/ruby/library/socket/udpsocket/send_spec.rb154
-rw-r--r--spec/ruby/library/socket/udpsocket/write_spec.rb21
-rw-r--r--spec/ruby/library/socket/unixserver/accept_nonblock_spec.rb92
-rw-r--r--spec/ruby/library/socket/unixserver/accept_spec.rb117
-rw-r--r--spec/ruby/library/socket/unixserver/for_fd_spec.rb23
-rw-r--r--spec/ruby/library/socket/unixserver/initialize_spec.rb28
-rw-r--r--spec/ruby/library/socket/unixserver/listen_spec.rb21
-rw-r--r--spec/ruby/library/socket/unixserver/new_spec.rb6
-rw-r--r--spec/ruby/library/socket/unixserver/open_spec.rb26
-rw-r--r--spec/ruby/library/socket/unixserver/shared/new.rb22
-rw-r--r--spec/ruby/library/socket/unixserver/sysaccept_spec.rb52
-rw-r--r--spec/ruby/library/socket/unixsocket/addr_spec.rb36
-rw-r--r--spec/ruby/library/socket/unixsocket/initialize_spec.rb38
-rw-r--r--spec/ruby/library/socket/unixsocket/inspect_spec.rb17
-rw-r--r--spec/ruby/library/socket/unixsocket/local_address_spec.rb96
-rw-r--r--spec/ruby/library/socket/unixsocket/new_spec.rb6
-rw-r--r--spec/ruby/library/socket/unixsocket/open_spec.rb28
-rw-r--r--spec/ruby/library/socket/unixsocket/pair_spec.rb39
-rw-r--r--spec/ruby/library/socket/unixsocket/partially_closable_spec.rb25
-rw-r--r--spec/ruby/library/socket/unixsocket/path_spec.rb28
-rw-r--r--spec/ruby/library/socket/unixsocket/peeraddr_spec.rb30
-rw-r--r--spec/ruby/library/socket/unixsocket/recv_io_spec.rb87
-rw-r--r--spec/ruby/library/socket/unixsocket/recvfrom_spec.rb98
-rw-r--r--spec/ruby/library/socket/unixsocket/remote_address_spec.rb45
-rw-r--r--spec/ruby/library/socket/unixsocket/send_io_spec.rb58
-rw-r--r--spec/ruby/library/socket/unixsocket/shared/new.rb24
-rw-r--r--spec/ruby/library/socket/unixsocket/socketpair_spec.rb40
-rw-r--r--spec/ruby/library/stringio/append_spec.rb88
-rw-r--r--spec/ruby/library/stringio/binmode_spec.rb23
-rw-r--r--spec/ruby/library/stringio/bytes_spec.rb29
-rw-r--r--spec/ruby/library/stringio/chars_spec.rb29
-rw-r--r--spec/ruby/library/stringio/close_read_spec.rb31
-rw-r--r--spec/ruby/library/stringio/close_spec.rb23
-rw-r--r--spec/ruby/library/stringio/close_write_spec.rb31
-rw-r--r--spec/ruby/library/stringio/closed_read_spec.rb12
-rw-r--r--spec/ruby/library/stringio/closed_spec.rb16
-rw-r--r--spec/ruby/library/stringio/closed_write_spec.rb12
-rw-r--r--spec/ruby/library/stringio/codepoints_spec.rb19
-rw-r--r--spec/ruby/library/stringio/each_byte_spec.rb11
-rw-r--r--spec/ruby/library/stringio/each_char_spec.rb11
-rw-r--r--spec/ruby/library/stringio/each_codepoint_spec.rb9
-rw-r--r--spec/ruby/library/stringio/each_line_spec.rb19
-rw-r--r--spec/ruby/library/stringio/each_spec.rb19
-rw-r--r--spec/ruby/library/stringio/eof_spec.rb11
-rw-r--r--spec/ruby/library/stringio/external_encoding_spec.rb25
-rw-r--r--spec/ruby/library/stringio/fcntl_spec.rb8
-rw-r--r--spec/ruby/library/stringio/fileno_spec.rb9
-rw-r--r--spec/ruby/library/stringio/fixtures/classes.rb15
-rw-r--r--spec/ruby/library/stringio/flush_spec.rb9
-rw-r--r--spec/ruby/library/stringio/fsync_spec.rb9
-rw-r--r--spec/ruby/library/stringio/getbyte_spec.rb19
-rw-r--r--spec/ruby/library/stringio/getc_spec.rb19
-rw-r--r--spec/ruby/library/stringio/getch_spec.rb44
-rw-r--r--spec/ruby/library/stringio/getpass_spec.rb11
-rw-r--r--spec/ruby/library/stringio/gets_spec.rb246
-rw-r--r--spec/ruby/library/stringio/initialize_spec.rb222
-rw-r--r--spec/ruby/library/stringio/inspect_spec.rb19
-rw-r--r--spec/ruby/library/stringio/internal_encoding_spec.rb10
-rw-r--r--spec/ruby/library/stringio/isatty_spec.rb7
-rw-r--r--spec/ruby/library/stringio/length_spec.rb7
-rw-r--r--spec/ruby/library/stringio/lineno_spec.rb30
-rw-r--r--spec/ruby/library/stringio/lines_spec.rb53
-rw-r--r--spec/ruby/library/stringio/open_spec.rb207
-rw-r--r--spec/ruby/library/stringio/path_spec.rb8
-rw-r--r--spec/ruby/library/stringio/pid_spec.rb8
-rw-r--r--spec/ruby/library/stringio/pos_spec.rb28
-rw-r--r--spec/ruby/library/stringio/print_spec.rb102
-rw-r--r--spec/ruby/library/stringio/printf_spec.rb70
-rw-r--r--spec/ruby/library/stringio/putc_spec.rb88
-rw-r--r--spec/ruby/library/stringio/puts_spec.rb170
-rw-r--r--spec/ruby/library/stringio/read_nonblock_spec.rb42
-rw-r--r--spec/ruby/library/stringio/read_spec.rb62
-rw-r--r--spec/ruby/library/stringio/readbyte_spec.rb20
-rw-r--r--spec/ruby/library/stringio/readchar_spec.rb20
-rw-r--r--spec/ruby/library/stringio/readline_spec.rb130
-rw-r--r--spec/ruby/library/stringio/readlines_spec.rb100
-rw-r--r--spec/ruby/library/stringio/readpartial_spec.rb80
-rw-r--r--spec/ruby/library/stringio/reopen_spec.rb298
-rw-r--r--spec/ruby/library/stringio/rewind_spec.rb24
-rw-r--r--spec/ruby/library/stringio/seek_spec.rb67
-rw-r--r--spec/ruby/library/stringio/set_encoding_spec.rb20
-rw-r--r--spec/ruby/library/stringio/shared/codepoints.rb45
-rw-r--r--spec/ruby/library/stringio/shared/each.rb115
-rw-r--r--spec/ruby/library/stringio/shared/each_byte.rb48
-rw-r--r--spec/ruby/library/stringio/shared/each_char.rb36
-rw-r--r--spec/ruby/library/stringio/shared/eof.rb24
-rw-r--r--spec/ruby/library/stringio/shared/getc.rb43
-rw-r--r--spec/ruby/library/stringio/shared/isatty.rb5
-rw-r--r--spec/ruby/library/stringio/shared/length.rb5
-rw-r--r--spec/ruby/library/stringio/shared/read.rb121
-rw-r--r--spec/ruby/library/stringio/shared/readchar.rb29
-rw-r--r--spec/ruby/library/stringio/shared/sysread.rb15
-rw-r--r--spec/ruby/library/stringio/shared/tell.rb12
-rw-r--r--spec/ruby/library/stringio/shared/write.rb91
-rw-r--r--spec/ruby/library/stringio/size_spec.rb7
-rw-r--r--spec/ruby/library/stringio/string_spec.rb50
-rw-r--r--spec/ruby/library/stringio/stringio_spec.rb8
-rw-r--r--spec/ruby/library/stringio/sync_spec.rb19
-rw-r--r--spec/ruby/library/stringio/sysread_spec.rb48
-rw-r--r--spec/ruby/library/stringio/syswrite_spec.rb19
-rw-r--r--spec/ruby/library/stringio/tell_spec.rb7
-rw-r--r--spec/ruby/library/stringio/truncate_spec.rb70
-rw-r--r--spec/ruby/library/stringio/tty_spec.rb7
-rw-r--r--spec/ruby/library/stringio/ungetbyte_spec.rb42
-rw-r--r--spec/ruby/library/stringio/ungetc_spec.rb72
-rw-r--r--spec/ruby/library/stringio/write_nonblock_spec.rb19
-rw-r--r--spec/ruby/library/stringio/write_spec.rb19
-rw-r--r--spec/ruby/library/stringscanner/append_spec.rb11
-rw-r--r--spec/ruby/library/stringscanner/beginning_of_line_spec.rb7
-rw-r--r--spec/ruby/library/stringscanner/bol_spec.rb7
-rw-r--r--spec/ruby/library/stringscanner/check_spec.rb27
-rw-r--r--spec/ruby/library/stringscanner/check_until_spec.rb21
-rw-r--r--spec/ruby/library/stringscanner/clear_spec.rb18
-rw-r--r--spec/ruby/library/stringscanner/concat_spec.rb11
-rw-r--r--spec/ruby/library/stringscanner/dup_spec.rb39
-rw-r--r--spec/ruby/library/stringscanner/element_reference_spec.rb60
-rw-r--r--spec/ruby/library/stringscanner/empty_spec.rb18
-rw-r--r--spec/ruby/library/stringscanner/eos_spec.rb7
-rw-r--r--spec/ruby/library/stringscanner/exist_spec.rb30
-rw-r--r--spec/ruby/library/stringscanner/get_byte_spec.rb7
-rw-r--r--spec/ruby/library/stringscanner/getbyte_spec.rb21
-rw-r--r--spec/ruby/library/stringscanner/getch_spec.rb35
-rw-r--r--spec/ruby/library/stringscanner/initialize_spec.rb27
-rw-r--r--spec/ruby/library/stringscanner/inspect_spec.rb20
-rw-r--r--spec/ruby/library/stringscanner/match_spec.rb28
-rw-r--r--spec/ruby/library/stringscanner/matched_size_spec.rb24
-rw-r--r--spec/ruby/library/stringscanner/matched_spec.rb41
-rw-r--r--spec/ruby/library/stringscanner/must_C_version_spec.rb8
-rw-r--r--spec/ruby/library/stringscanner/peek_spec.rb7
-rw-r--r--spec/ruby/library/stringscanner/peep_spec.rb18
-rw-r--r--spec/ruby/library/stringscanner/pointer_spec.rb11
-rw-r--r--spec/ruby/library/stringscanner/pos_spec.rb11
-rw-r--r--spec/ruby/library/stringscanner/post_match_spec.rb28
-rw-r--r--spec/ruby/library/stringscanner/pre_match_spec.rb41
-rw-r--r--spec/ruby/library/stringscanner/reset_spec.rb15
-rw-r--r--spec/ruby/library/stringscanner/rest_size_spec.rb7
-rw-r--r--spec/ruby/library/stringscanner/rest_spec.rb48
-rw-r--r--spec/ruby/library/stringscanner/restsize_spec.rb18
-rw-r--r--spec/ruby/library/stringscanner/scan_full_spec.rb30
-rw-r--r--spec/ruby/library/stringscanner/scan_spec.rb97
-rw-r--r--spec/ruby/library/stringscanner/scan_until_spec.rb29
-rw-r--r--spec/ruby/library/stringscanner/search_full_spec.rb36
-rw-r--r--spec/ruby/library/stringscanner/shared/bol.rb25
-rw-r--r--spec/ruby/library/stringscanner/shared/concat.rb30
-rw-r--r--spec/ruby/library/stringscanner/shared/eos.rb17
-rw-r--r--spec/ruby/library/stringscanner/shared/extract_range.rb24
-rw-r--r--spec/ruby/library/stringscanner/shared/extract_range_matched.rb24
-rw-r--r--spec/ruby/library/stringscanner/shared/get_byte.rb29
-rw-r--r--spec/ruby/library/stringscanner/shared/peek.rb49
-rw-r--r--spec/ruby/library/stringscanner/shared/pos.rb52
-rw-r--r--spec/ruby/library/stringscanner/shared/rest_size.rb18
-rw-r--r--spec/ruby/library/stringscanner/shared/terminate.rb8
-rw-r--r--spec/ruby/library/stringscanner/size_spec.rb17
-rw-r--r--spec/ruby/library/stringscanner/skip_spec.rb18
-rw-r--r--spec/ruby/library/stringscanner/skip_until_spec.rb24
-rw-r--r--spec/ruby/library/stringscanner/string_spec.rb40
-rw-r--r--spec/ruby/library/stringscanner/terminate_spec.rb7
-rw-r--r--spec/ruby/library/stringscanner/unscan_spec.rb28
-rw-r--r--spec/ruby/library/syslog/alert_spec.rb10
-rw-r--r--spec/ruby/library/syslog/close_spec.rb58
-rw-r--r--spec/ruby/library/syslog/constants_spec.rb41
-rw-r--r--spec/ruby/library/syslog/crit_spec.rb10
-rw-r--r--spec/ruby/library/syslog/debug_spec.rb10
-rw-r--r--spec/ruby/library/syslog/emerg_spec.rb16
-rw-r--r--spec/ruby/library/syslog/err_spec.rb10
-rw-r--r--spec/ruby/library/syslog/facility_spec.rb48
-rw-r--r--spec/ruby/library/syslog/ident_spec.rb35
-rw-r--r--spec/ruby/library/syslog/info_spec.rb10
-rw-r--r--spec/ruby/library/syslog/inspect_spec.rb39
-rw-r--r--spec/ruby/library/syslog/instance_spec.rb13
-rw-r--r--spec/ruby/library/syslog/log_spec.rb56
-rw-r--r--spec/ruby/library/syslog/mask_spec.rb113
-rw-r--r--spec/ruby/library/syslog/notice_spec.rb10
-rw-r--r--spec/ruby/library/syslog/open_spec.rb92
-rw-r--r--spec/ruby/library/syslog/opened_spec.rb39
-rw-r--r--spec/ruby/library/syslog/options_spec.rb48
-rw-r--r--spec/ruby/library/syslog/reopen_spec.rb10
-rw-r--r--spec/ruby/library/syslog/shared/log.rb39
-rw-r--r--spec/ruby/library/syslog/shared/reopen.rb40
-rw-r--r--spec/ruby/library/syslog/warning_spec.rb10
-rw-r--r--spec/ruby/library/tempfile/_close_spec.rb21
-rw-r--r--spec/ruby/library/tempfile/callback_spec.rb6
-rw-r--r--spec/ruby/library/tempfile/close_spec.rb57
-rw-r--r--spec/ruby/library/tempfile/delete_spec.rb7
-rw-r--r--spec/ruby/library/tempfile/initialize_spec.rb46
-rw-r--r--spec/ruby/library/tempfile/length_spec.rb7
-rw-r--r--spec/ruby/library/tempfile/open_spec.rb97
-rw-r--r--spec/ruby/library/tempfile/path_spec.rb26
-rw-r--r--spec/ruby/library/tempfile/shared/length.rb21
-rw-r--r--spec/ruby/library/tempfile/shared/unlink.rb12
-rw-r--r--spec/ruby/library/tempfile/size_spec.rb7
-rw-r--r--spec/ruby/library/tempfile/unlink_spec.rb7
-rw-r--r--spec/ruby/library/thread/queue_spec.rb8
-rw-r--r--spec/ruby/library/thread/sizedqueue_spec.rb8
-rw-r--r--spec/ruby/library/time/httpdate_spec.rb21
-rw-r--r--spec/ruby/library/time/iso8601_spec.rb7
-rw-r--r--spec/ruby/library/time/rfc2822_spec.rb7
-rw-r--r--spec/ruby/library/time/rfc822_spec.rb7
-rw-r--r--spec/ruby/library/time/shared/rfc2822.rb65
-rw-r--r--spec/ruby/library/time/shared/xmlschema.rb53
-rw-r--r--spec/ruby/library/time/to_date_spec.rb42
-rw-r--r--spec/ruby/library/time/to_datetime_spec.rb27
-rw-r--r--spec/ruby/library/time/to_time_spec.rb15
-rw-r--r--spec/ruby/library/time/xmlschema_spec.rb7
-rw-r--r--spec/ruby/library/timeout/error_spec.rb8
-rw-r--r--spec/ruby/library/timeout/timeout_spec.rb42
-rw-r--r--spec/ruby/library/tmpdir/dir/mktmpdir_spec.rb117
-rw-r--r--spec/ruby/library/tmpdir/dir/tmpdir_spec.rb10
-rw-r--r--spec/ruby/library/uri/decode_www_form_component_spec.rb6
-rw-r--r--spec/ruby/library/uri/decode_www_form_spec.rb6
-rw-r--r--spec/ruby/library/uri/encode_www_form_component_spec.rb6
-rw-r--r--spec/ruby/library/uri/encode_www_form_spec.rb6
-rw-r--r--spec/ruby/library/uri/eql_spec.rb10
-rw-r--r--spec/ruby/library/uri/equality_spec.rb46
-rw-r--r--spec/ruby/library/uri/escape/decode_spec.rb6
-rw-r--r--spec/ruby/library/uri/escape/encode_spec.rb6
-rw-r--r--spec/ruby/library/uri/escape/escape_spec.rb6
-rw-r--r--spec/ruby/library/uri/escape/unescape_spec.rb6
-rw-r--r--spec/ruby/library/uri/extract_spec.rb86
-rw-r--r--spec/ruby/library/uri/fixtures/classes.rb11
-rw-r--r--spec/ruby/library/uri/fixtures/normalization.rb54
-rw-r--r--spec/ruby/library/uri/ftp/build_spec.rb6
-rw-r--r--spec/ruby/library/uri/ftp/merge_spec.rb6
-rw-r--r--spec/ruby/library/uri/ftp/new2_spec.rb6
-rw-r--r--spec/ruby/library/uri/ftp/path_spec.rb26
-rw-r--r--spec/ruby/library/uri/ftp/set_typecode_spec.rb6
-rw-r--r--spec/ruby/library/uri/ftp/to_s_spec.rb15
-rw-r--r--spec/ruby/library/uri/ftp/typecode_spec.rb10
-rw-r--r--spec/ruby/library/uri/generic/absolute_spec.rb10
-rw-r--r--spec/ruby/library/uri/generic/build2_spec.rb6
-rw-r--r--spec/ruby/library/uri/generic/build_spec.rb6
-rw-r--r--spec/ruby/library/uri/generic/coerce_spec.rb6
-rw-r--r--spec/ruby/library/uri/generic/component_ary_spec.rb6
-rw-r--r--spec/ruby/library/uri/generic/component_spec.rb10
-rw-r--r--spec/ruby/library/uri/generic/default_port_spec.rb10
-rw-r--r--spec/ruby/library/uri/generic/eql_spec.rb6
-rw-r--r--spec/ruby/library/uri/generic/equal_value_spec.rb6
-rw-r--r--spec/ruby/library/uri/generic/fragment_spec.rb10
-rw-r--r--spec/ruby/library/uri/generic/hash_spec.rb6
-rw-r--r--spec/ruby/library/uri/generic/hierarchical_spec.rb6
-rw-r--r--spec/ruby/library/uri/generic/host_spec.rb10
-rw-r--r--spec/ruby/library/uri/generic/inspect_spec.rb6
-rw-r--r--spec/ruby/library/uri/generic/merge_spec.rb10
-rw-r--r--spec/ruby/library/uri/generic/minus_spec.rb6
-rw-r--r--spec/ruby/library/uri/generic/normalize_spec.rb10
-rw-r--r--spec/ruby/library/uri/generic/opaque_spec.rb10
-rw-r--r--spec/ruby/library/uri/generic/password_spec.rb10
-rw-r--r--spec/ruby/library/uri/generic/path_spec.rb10
-rw-r--r--spec/ruby/library/uri/generic/plus_spec.rb6
-rw-r--r--spec/ruby/library/uri/generic/port_spec.rb10
-rw-r--r--spec/ruby/library/uri/generic/query_spec.rb10
-rw-r--r--spec/ruby/library/uri/generic/registry_spec.rb10
-rw-r--r--spec/ruby/library/uri/generic/relative_spec.rb6
-rw-r--r--spec/ruby/library/uri/generic/route_from_spec.rb6
-rw-r--r--spec/ruby/library/uri/generic/route_to_spec.rb6
-rw-r--r--spec/ruby/library/uri/generic/scheme_spec.rb10
-rw-r--r--spec/ruby/library/uri/generic/select_spec.rb6
-rw-r--r--spec/ruby/library/uri/generic/set_fragment_spec.rb6
-rw-r--r--spec/ruby/library/uri/generic/set_host_spec.rb6
-rw-r--r--spec/ruby/library/uri/generic/set_opaque_spec.rb6
-rw-r--r--spec/ruby/library/uri/generic/set_password_spec.rb6
-rw-r--r--spec/ruby/library/uri/generic/set_path_spec.rb6
-rw-r--r--spec/ruby/library/uri/generic/set_port_spec.rb6
-rw-r--r--spec/ruby/library/uri/generic/set_query_spec.rb6
-rw-r--r--spec/ruby/library/uri/generic/set_registry_spec.rb6
-rw-r--r--spec/ruby/library/uri/generic/set_scheme_spec.rb6
-rw-r--r--spec/ruby/library/uri/generic/set_user_spec.rb6
-rw-r--r--spec/ruby/library/uri/generic/set_userinfo_spec.rb6
-rw-r--r--spec/ruby/library/uri/generic/to_s_spec.rb6
-rw-r--r--spec/ruby/library/uri/generic/use_registry_spec.rb6
-rw-r--r--spec/ruby/library/uri/generic/user_spec.rb10
-rw-r--r--spec/ruby/library/uri/generic/userinfo_spec.rb10
-rw-r--r--spec/ruby/library/uri/http/build_spec.rb6
-rw-r--r--spec/ruby/library/uri/http/request_uri_spec.rb16
-rw-r--r--spec/ruby/library/uri/join_spec.rb59
-rw-r--r--spec/ruby/library/uri/ldap/attributes_spec.rb10
-rw-r--r--spec/ruby/library/uri/ldap/build_spec.rb6
-rw-r--r--spec/ruby/library/uri/ldap/dn_spec.rb10
-rw-r--r--spec/ruby/library/uri/ldap/extensions_spec.rb10
-rw-r--r--spec/ruby/library/uri/ldap/filter_spec.rb10
-rw-r--r--spec/ruby/library/uri/ldap/hierarchical_spec.rb6
-rw-r--r--spec/ruby/library/uri/ldap/scope_spec.rb10
-rw-r--r--spec/ruby/library/uri/ldap/set_attributes_spec.rb6
-rw-r--r--spec/ruby/library/uri/ldap/set_dn_spec.rb6
-rw-r--r--spec/ruby/library/uri/ldap/set_extensions_spec.rb6
-rw-r--r--spec/ruby/library/uri/ldap/set_filter_spec.rb6
-rw-r--r--spec/ruby/library/uri/ldap/set_scope_spec.rb6
-rw-r--r--spec/ruby/library/uri/mailto/build_spec.rb92
-rw-r--r--spec/ruby/library/uri/mailto/headers_spec.rb10
-rw-r--r--spec/ruby/library/uri/mailto/set_headers_spec.rb6
-rw-r--r--spec/ruby/library/uri/mailto/set_to_spec.rb6
-rw-r--r--spec/ruby/library/uri/mailto/to_mailtext_spec.rb6
-rw-r--r--spec/ruby/library/uri/mailto/to_rfc822text_spec.rb6
-rw-r--r--spec/ruby/library/uri/mailto/to_s_spec.rb6
-rw-r--r--spec/ruby/library/uri/mailto/to_spec.rb10
-rw-r--r--spec/ruby/library/uri/merge_spec.rb20
-rw-r--r--spec/ruby/library/uri/normalize_spec.rb35
-rw-r--r--spec/ruby/library/uri/parse_spec.rb203
-rw-r--r--spec/ruby/library/uri/parser/escape_spec.rb6
-rw-r--r--spec/ruby/library/uri/parser/extract_spec.rb7
-rw-r--r--spec/ruby/library/uri/parser/inspect_spec.rb6
-rw-r--r--spec/ruby/library/uri/parser/join_spec.rb7
-rw-r--r--spec/ruby/library/uri/parser/make_regexp_spec.rb6
-rw-r--r--spec/ruby/library/uri/parser/parse_spec.rb7
-rw-r--r--spec/ruby/library/uri/parser/split_spec.rb6
-rw-r--r--spec/ruby/library/uri/parser/unescape_spec.rb6
-rw-r--r--spec/ruby/library/uri/plus_spec.rb459
-rw-r--r--spec/ruby/library/uri/regexp_spec.rb18
-rw-r--r--spec/ruby/library/uri/route_from_spec.rb23
-rw-r--r--spec/ruby/library/uri/route_to_spec.rb26
-rw-r--r--spec/ruby/library/uri/select_spec.rb27
-rw-r--r--spec/ruby/library/uri/set_component_spec.rb45
-rw-r--r--spec/ruby/library/uri/shared/eql.rb17
-rw-r--r--spec/ruby/library/uri/shared/extract.rb83
-rw-r--r--spec/ruby/library/uri/shared/join.rb56
-rw-r--r--spec/ruby/library/uri/shared/parse.rb199
-rw-r--r--spec/ruby/library/uri/split_spec.rb6
-rw-r--r--spec/ruby/library/uri/uri_spec.rb29
-rw-r--r--spec/ruby/library/uri/util/make_components_hash_spec.rb6
-rw-r--r--spec/ruby/library/weakref/__getobj___spec.rb17
-rw-r--r--spec/ruby/library/weakref/allocate_spec.rb8
-rw-r--r--spec/ruby/library/weakref/fixtures/classes.rb26
-rw-r--r--spec/ruby/library/weakref/new_spec.rb13
-rw-r--r--spec/ruby/library/weakref/send_spec.rb37
-rw-r--r--spec/ruby/library/weakref/weakref_alive_spec.rb15
-rw-r--r--spec/ruby/library/win32ole/fixtures/classes.rb22
-rw-r--r--spec/ruby/library/win32ole/fixtures/event.xml4
-rw-r--r--spec/ruby/library/win32ole/win32ole/_getproperty_spec.rb14
-rw-r--r--spec/ruby/library/win32ole/win32ole/_invoke_spec.rb21
-rw-r--r--spec/ruby/library/win32ole/win32ole/codepage_spec.rb13
-rw-r--r--spec/ruby/library/win32ole/win32ole/connect_spec.rb15
-rw-r--r--spec/ruby/library/win32ole/win32ole/const_load_spec.rb32
-rw-r--r--spec/ruby/library/win32ole/win32ole/constants_spec.rb42
-rw-r--r--spec/ruby/library/win32ole/win32ole/create_guid_spec.rb9
-rw-r--r--spec/ruby/library/win32ole/win32ole/invoke_spec.rb14
-rw-r--r--spec/ruby/library/win32ole/win32ole/locale_spec.rb29
-rw-r--r--spec/ruby/library/win32ole/win32ole/new_spec.rb25
-rw-r--r--spec/ruby/library/win32ole/win32ole/ole_func_methods_spec.rb21
-rw-r--r--spec/ruby/library/win32ole/win32ole/ole_get_methods_spec.rb16
-rw-r--r--spec/ruby/library/win32ole/win32ole/ole_method_help_spec.rb10
-rw-r--r--spec/ruby/library/win32ole/win32ole/ole_method_spec.rb10
-rw-r--r--spec/ruby/library/win32ole/win32ole/ole_methods_spec.rb21
-rw-r--r--spec/ruby/library/win32ole/win32ole/ole_obj_help_spec.rb18
-rw-r--r--spec/ruby/library/win32ole/win32ole/ole_put_methods_spec.rb21
-rw-r--r--spec/ruby/library/win32ole/win32ole/setproperty_spec.rb10
-rw-r--r--spec/ruby/library/win32ole/win32ole/shared/ole_method.rb19
-rw-r--r--spec/ruby/library/win32ole/win32ole/shared/setproperty.rb23
-rw-r--r--spec/ruby/library/win32ole/win32ole_event/new_spec.rb33
-rw-r--r--spec/ruby/library/win32ole/win32ole_event/on_event_spec.rb70
-rw-r--r--spec/ruby/library/win32ole/win32ole_method/dispid_spec.rb20
-rw-r--r--spec/ruby/library/win32ole/win32ole_method/event_interface_spec.rb28
-rw-r--r--spec/ruby/library/win32ole/win32ole_method/event_spec.rb22
-rw-r--r--spec/ruby/library/win32ole/win32ole_method/helpcontext_spec.rb26
-rw-r--r--spec/ruby/library/win32ole/win32ole_method/helpfile_spec.rb20
-rw-r--r--spec/ruby/library/win32ole/win32ole_method/helpstring_spec.rb20
-rw-r--r--spec/ruby/library/win32ole/win32ole_method/invkind_spec.rb20
-rw-r--r--spec/ruby/library/win32ole/win32ole_method/invoke_kind_spec.rb20
-rw-r--r--spec/ruby/library/win32ole/win32ole_method/name_spec.rb11
-rw-r--r--spec/ruby/library/win32ole/win32ole_method/new_spec.rb33
-rw-r--r--spec/ruby/library/win32ole/win32ole_method/offset_vtbl_spec.rb21
-rw-r--r--spec/ruby/library/win32ole/win32ole_method/params_spec.rb28
-rw-r--r--spec/ruby/library/win32ole/win32ole_method/return_type_detail_spec.rb21
-rw-r--r--spec/ruby/library/win32ole/win32ole_method/return_type_spec.rb20
-rw-r--r--spec/ruby/library/win32ole/win32ole_method/return_vtype_spec.rb20
-rw-r--r--spec/ruby/library/win32ole/win32ole_method/shared/name.rb20
-rw-r--r--spec/ruby/library/win32ole/win32ole_method/size_opt_params_spec.rb20
-rw-r--r--spec/ruby/library/win32ole/win32ole_method/size_params_spec.rb20
-rw-r--r--spec/ruby/library/win32ole/win32ole_method/to_s_spec.rb11
-rw-r--r--spec/ruby/library/win32ole/win32ole_method/visible_spec.rb20
-rw-r--r--spec/ruby/library/win32ole/win32ole_param/default_spec.rb31
-rw-r--r--spec/ruby/library/win32ole/win32ole_param/input_spec.rb21
-rw-r--r--spec/ruby/library/win32ole/win32ole_param/name_spec.rb11
-rw-r--r--spec/ruby/library/win32ole/win32ole_param/ole_type_detail_spec.rb21
-rw-r--r--spec/ruby/library/win32ole/win32ole_param/ole_type_spec.rb21
-rw-r--r--spec/ruby/library/win32ole/win32ole_param/optional_spec.rb21
-rw-r--r--spec/ruby/library/win32ole/win32ole_param/retval_spec.rb21
-rw-r--r--spec/ruby/library/win32ole/win32ole_param/shared/name.rb21
-rw-r--r--spec/ruby/library/win32ole/win32ole_param/to_s_spec.rb11
-rw-r--r--spec/ruby/library/win32ole/win32ole_type/guid_spec.rb18
-rw-r--r--spec/ruby/library/win32ole/win32ole_type/helpcontext_spec.rb18
-rw-r--r--spec/ruby/library/win32ole/win32ole_type/helpfile_spec.rb18
-rw-r--r--spec/ruby/library/win32ole/win32ole_type/helpstring_spec.rb18
-rw-r--r--spec/ruby/library/win32ole/win32ole_type/major_version_spec.rb18
-rw-r--r--spec/ruby/library/win32ole/win32ole_type/minor_version_spec.rb18
-rw-r--r--spec/ruby/library/win32ole/win32ole_type/name_spec.rb11
-rw-r--r--spec/ruby/library/win32ole/win32ole_type/new_spec.rb40
-rw-r--r--spec/ruby/library/win32ole/win32ole_type/ole_classes_spec.rb18
-rw-r--r--spec/ruby/library/win32ole/win32ole_type/ole_methods_spec.rb18
-rw-r--r--spec/ruby/library/win32ole/win32ole_type/ole_type_spec.rb18
-rw-r--r--spec/ruby/library/win32ole/win32ole_type/progid_spec.rb18
-rw-r--r--spec/ruby/library/win32ole/win32ole_type/progids_spec.rb14
-rw-r--r--spec/ruby/library/win32ole/win32ole_type/shared/name.rb19
-rw-r--r--spec/ruby/library/win32ole/win32ole_type/src_type_spec.rb18
-rw-r--r--spec/ruby/library/win32ole/win32ole_type/to_s_spec.rb11
-rw-r--r--spec/ruby/library/win32ole/win32ole_type/typekind_spec.rb18
-rw-r--r--spec/ruby/library/win32ole/win32ole_type/typelibs_spec.rb22
-rw-r--r--spec/ruby/library/win32ole/win32ole_type/variables_spec.rb18
-rw-r--r--spec/ruby/library/win32ole/win32ole_type/visible_spec.rb18
-rw-r--r--spec/ruby/library/win32ole/win32ole_variable/name_spec.rb11
-rw-r--r--spec/ruby/library/win32ole/win32ole_variable/ole_type_detail_spec.rb19
-rw-r--r--spec/ruby/library/win32ole/win32ole_variable/ole_type_spec.rb18
-rw-r--r--spec/ruby/library/win32ole/win32ole_variable/shared/name.rb18
-rw-r--r--spec/ruby/library/win32ole/win32ole_variable/to_s_spec.rb11
-rw-r--r--spec/ruby/library/win32ole/win32ole_variable/value_spec.rb19
-rw-r--r--spec/ruby/library/win32ole/win32ole_variable/variable_kind_spec.rb19
-rw-r--r--spec/ruby/library/win32ole/win32ole_variable/varkind_spec.rb19
-rw-r--r--spec/ruby/library/win32ole/win32ole_variable/visible_spec.rb18
-rw-r--r--spec/ruby/library/yaml/dump_spec.rb56
-rw-r--r--spec/ruby/library/yaml/dump_stream_spec.rb8
-rw-r--r--spec/ruby/library/yaml/fixtures/common.rb4
-rw-r--r--spec/ruby/library/yaml/fixtures/example_class.rb7
-rw-r--r--spec/ruby/library/yaml/fixtures/strings.rb36
-rw-r--r--spec/ruby/library/yaml/fixtures/test_yaml.yml2
-rw-r--r--spec/ruby/library/yaml/load_file_spec.rb13
-rw-r--r--spec/ruby/library/yaml/load_spec.rb10
-rw-r--r--spec/ruby/library/yaml/load_stream_spec.rb8
-rw-r--r--spec/ruby/library/yaml/parse_file_spec.rb8
-rw-r--r--spec/ruby/library/yaml/parse_spec.rb22
-rw-r--r--spec/ruby/library/yaml/shared/each_document.rb18
-rw-r--r--spec/ruby/library/yaml/shared/load.rb136
-rw-r--r--spec/ruby/library/yaml/to_yaml_spec.rb106
-rw-r--r--spec/ruby/library/yaml/unsafe_load_spec.rb9
-rw-r--r--spec/ruby/library/zlib/adler32_spec.rb46
-rw-r--r--spec/ruby/library/zlib/crc32_spec.rb54
-rw-r--r--spec/ruby/library/zlib/crc_table_spec.rb75
-rw-r--r--spec/ruby/library/zlib/deflate/deflate_spec.rb128
-rw-r--r--spec/ruby/library/zlib/deflate/new_spec.rb1
-rw-r--r--spec/ruby/library/zlib/deflate/params_spec.rb17
-rw-r--r--spec/ruby/library/zlib/deflate/set_dictionary_spec.rb14
-rw-r--r--spec/ruby/library/zlib/deflate_spec.rb8
-rw-r--r--spec/ruby/library/zlib/gunzip_spec.rb14
-rw-r--r--spec/ruby/library/zlib/gzip_spec.rb15
-rw-r--r--spec/ruby/library/zlib/gzipfile/close_spec.rb21
-rw-r--r--spec/ruby/library/zlib/gzipfile/closed_spec.rb16
-rw-r--r--spec/ruby/library/zlib/gzipfile/comment_spec.rb26
-rw-r--r--spec/ruby/library/zlib/gzipfile/orig_name_spec.rb26
-rw-r--r--spec/ruby/library/zlib/gzipreader/each_byte_spec.rb51
-rw-r--r--spec/ruby/library/zlib/gzipreader/each_line_spec.rb5
-rw-r--r--spec/ruby/library/zlib/gzipreader/each_spec.rb5
-rw-r--r--spec/ruby/library/zlib/gzipreader/eof_spec.rb54
-rw-r--r--spec/ruby/library/zlib/gzipreader/getc_spec.rb39
-rw-r--r--spec/ruby/library/zlib/gzipreader/gets_spec.rb22
-rw-r--r--spec/ruby/library/zlib/gzipreader/new_spec.rb1
-rw-r--r--spec/ruby/library/zlib/gzipreader/pos_spec.rb24
-rw-r--r--spec/ruby/library/zlib/gzipreader/read_spec.rb66
-rw-r--r--spec/ruby/library/zlib/gzipreader/readpartial_spec.rb17
-rw-r--r--spec/ruby/library/zlib/gzipreader/rewind_spec.rb47
-rw-r--r--spec/ruby/library/zlib/gzipreader/shared/each.rb49
-rw-r--r--spec/ruby/library/zlib/gzipreader/ungetbyte_spec.rb120
-rw-r--r--spec/ruby/library/zlib/gzipreader/ungetc_spec.rb284
-rw-r--r--spec/ruby/library/zlib/gzipwriter/append_spec.rb15
-rw-r--r--spec/ruby/library/zlib/gzipwriter/mtime_spec.rb38
-rw-r--r--spec/ruby/library/zlib/gzipwriter/write_spec.rb36
-rw-r--r--spec/ruby/library/zlib/inflate/append_spec.rb60
-rw-r--r--spec/ruby/library/zlib/inflate/finish_spec.rb28
-rw-r--r--spec/ruby/library/zlib/inflate/inflate_spec.rb152
-rw-r--r--spec/ruby/library/zlib/inflate/new_spec.rb1
-rw-r--r--spec/ruby/library/zlib/inflate/set_dictionary_spec.rb20
-rw-r--r--spec/ruby/library/zlib/inflate_spec.rb8
-rw-r--r--spec/ruby/library/zlib/zlib_version_spec.rb8
-rw-r--r--spec/ruby/library/zlib/zstream/adler_spec.rb11
-rw-r--r--spec/ruby/library/zlib/zstream/avail_in_spec.rb9
-rw-r--r--spec/ruby/library/zlib/zstream/avail_out_spec.rb9
-rw-r--r--spec/ruby/library/zlib/zstream/data_type_spec.rb9
-rw-r--r--spec/ruby/library/zlib/zstream/flush_next_out_spec.rb14
-rw-r--r--spec/ruby/optional/capi/README13
-rw-r--r--spec/ruby/optional/capi/array_spec.rb497
-rw-r--r--spec/ruby/optional/capi/basic_object_spec.rb24
-rw-r--r--spec/ruby/optional/capi/bignum_spec.rb224
-rw-r--r--spec/ruby/optional/capi/binding_spec.rb19
-rw-r--r--spec/ruby/optional/capi/boolean_spec.rb33
-rw-r--r--spec/ruby/optional/capi/class_spec.rb451
-rw-r--r--spec/ruby/optional/capi/complex_spec.rb45
-rw-r--r--spec/ruby/optional/capi/constants_spec.rb325
-rw-r--r--spec/ruby/optional/capi/data_spec.rb52
-rw-r--r--spec/ruby/optional/capi/debug_spec.rb66
-rw-r--r--spec/ruby/optional/capi/encoding_spec.rb645
-rw-r--r--spec/ruby/optional/capi/enumerator_spec.rb66
-rw-r--r--spec/ruby/optional/capi/exception_spec.rb147
-rw-r--r--spec/ruby/optional/capi/ext/.gitignore9
-rw-r--r--spec/ruby/optional/capi/ext/array_spec.c297
-rw-r--r--spec/ruby/optional/capi/ext/basic_object_spec.c19
-rw-r--r--spec/ruby/optional/capi/ext/bignum_spec.c106
-rw-r--r--spec/ruby/optional/capi/ext/binding_spec.c19
-rw-r--r--spec/ruby/optional/capi/ext/boolean_spec.c33
-rw-r--r--spec/ruby/optional/capi/ext/class_id_under_autoload_spec.c13
-rw-r--r--spec/ruby/optional/capi/ext/class_spec.c194
-rw-r--r--spec/ruby/optional/capi/ext/class_under_autoload_spec.c13
-rw-r--r--spec/ruby/optional/capi/ext/complex_spec.c45
-rw-r--r--spec/ruby/optional/capi/ext/constants_spec.c178
-rw-r--r--spec/ruby/optional/capi/ext/data_spec.c89
-rw-r--r--spec/ruby/optional/capi/ext/debug_spec.c93
-rw-r--r--spec/ruby/optional/capi/ext/encoding_spec.c370
-rw-r--r--spec/ruby/optional/capi/ext/enumerator_spec.c32
-rw-r--r--spec/ruby/optional/capi/ext/exception_spec.c59
-rw-r--r--spec/ruby/optional/capi/ext/fiber_spec.c69
-rw-r--r--spec/ruby/optional/capi/ext/file_spec.c29
-rw-r--r--spec/ruby/optional/capi/ext/fixnum_spec.c26
-rw-r--r--spec/ruby/optional/capi/ext/float_spec.c47
-rw-r--r--spec/ruby/optional/capi/ext/gc_spec.c66
-rw-r--r--spec/ruby/optional/capi/ext/globals_spec.c127
-rw-r--r--spec/ruby/optional/capi/ext/hash_spec.c160
-rw-r--r--spec/ruby/optional/capi/ext/integer_spec.c41
-rw-r--r--spec/ruby/optional/capi/ext/io_spec.c269
-rw-r--r--spec/ruby/optional/capi/ext/kernel_spec.c381
-rw-r--r--spec/ruby/optional/capi/ext/language_spec.c42
-rw-r--r--spec/ruby/optional/capi/ext/marshal_spec.c24
-rw-r--r--spec/ruby/optional/capi/ext/module_spec.c186
-rw-r--r--spec/ruby/optional/capi/ext/module_under_autoload_spec.c15
-rw-r--r--spec/ruby/optional/capi/ext/mutex_spec.c55
-rw-r--r--spec/ruby/optional/capi/ext/numeric_spec.c130
-rw-r--r--spec/ruby/optional/capi/ext/object_spec.c499
-rw-r--r--spec/ruby/optional/capi/ext/proc_spec.c73
-rw-r--r--spec/ruby/optional/capi/ext/range_spec.c50
-rw-r--r--spec/ruby/optional/capi/ext/rational_spec.c54
-rw-r--r--spec/ruby/optional/capi/ext/rbasic_spec.c100
-rw-r--r--spec/ruby/optional/capi/ext/regexp_spec.c67
-rw-r--r--spec/ruby/optional/capi/ext/rubyspec.h63
-rw-r--r--spec/ruby/optional/capi/ext/st_spec.c83
-rw-r--r--spec/ruby/optional/capi/ext/string_spec.c689
-rw-r--r--spec/ruby/optional/capi/ext/struct_spec.c85
-rw-r--r--spec/ruby/optional/capi/ext/symbol_spec.c105
-rw-r--r--spec/ruby/optional/capi/ext/thread_spec.c150
-rw-r--r--spec/ruby/optional/capi/ext/time_spec.c81
-rw-r--r--spec/ruby/optional/capi/ext/tracepoint_spec.c49
-rw-r--r--spec/ruby/optional/capi/ext/typed_data_spec.c189
-rw-r--r--spec/ruby/optional/capi/ext/util_spec.c123
-rw-r--r--spec/ruby/optional/capi/fiber_spec.rb89
-rw-r--r--spec/ruby/optional/capi/file_spec.rb89
-rw-r--r--spec/ruby/optional/capi/fixnum_spec.rb101
-rw-r--r--spec/ruby/optional/capi/fixtures/class.rb94
-rw-r--r--spec/ruby/optional/capi/fixtures/const_get.rb5
-rw-r--r--spec/ruby/optional/capi/fixtures/const_get_at.rb5
-rw-r--r--spec/ruby/optional/capi/fixtures/const_get_from.rb5
-rw-r--r--spec/ruby/optional/capi/fixtures/const_get_object.rb3
-rw-r--r--spec/ruby/optional/capi/fixtures/encoding.rb3
-rw-r--r--spec/ruby/optional/capi/fixtures/foo.rb1
-rw-r--r--spec/ruby/optional/capi/fixtures/module.rb39
-rw-r--r--spec/ruby/optional/capi/fixtures/module_autoload.rb4
-rw-r--r--spec/ruby/optional/capi/fixtures/path_to_class.rb6
-rw-r--r--spec/ruby/optional/capi/fixtures/proc.rb20
-rw-r--r--spec/ruby/optional/capi/fixtures/read.txt1
-rw-r--r--spec/ruby/optional/capi/float_spec.rb43
-rw-r--r--spec/ruby/optional/capi/gc_spec.rb87
-rw-r--r--spec/ruby/optional/capi/globals_spec.rb243
-rw-r--r--spec/ruby/optional/capi/hash_spec.rb274
-rw-r--r--spec/ruby/optional/capi/integer_spec.rb290
-rw-r--r--spec/ruby/optional/capi/io_spec.rb403
-rw-r--r--spec/ruby/optional/capi/kernel_spec.rb620
-rw-r--r--spec/ruby/optional/capi/language_spec.rb37
-rw-r--r--spec/ruby/optional/capi/marshal_spec.rb46
-rw-r--r--spec/ruby/optional/capi/module_spec.rb423
-rw-r--r--spec/ruby/optional/capi/mutex_spec.rb89
-rw-r--r--spec/ruby/optional/capi/numeric_spec.rb495
-rw-r--r--spec/ruby/optional/capi/object_spec.rb1020
-rw-r--r--spec/ruby/optional/capi/proc_spec.rb136
-rw-r--r--spec/ruby/optional/capi/rake_helper.rb22
-rw-r--r--spec/ruby/optional/capi/range_spec.rb95
-rw-r--r--spec/ruby/optional/capi/rational_spec.rb57
-rw-r--r--spec/ruby/optional/capi/rbasic_spec.rb43
-rw-r--r--spec/ruby/optional/capi/regexp_spec.rb112
-rw-r--r--spec/ruby/optional/capi/shared/rbasic.rb63
-rw-r--r--spec/ruby/optional/capi/spec_helper.rb143
-rw-r--r--spec/ruby/optional/capi/st_spec.rb41
-rw-r--r--spec/ruby/optional/capi/string_spec.rb1239
-rw-r--r--spec/ruby/optional/capi/struct_spec.rb211
-rw-r--r--spec/ruby/optional/capi/symbol_spec.rb172
-rw-r--r--spec/ruby/optional/capi/thread_spec.rb179
-rw-r--r--spec/ruby/optional/capi/time_spec.rb296
-rw-r--r--spec/ruby/optional/capi/tracepoint_spec.rb56
-rw-r--r--spec/ruby/optional/capi/typed_data_spec.rb88
-rw-r--r--spec/ruby/optional/capi/util_spec.rb326
-rw-r--r--spec/ruby/security/cve_2010_1330_spec.rb19
-rw-r--r--spec/ruby/security/cve_2011_4815_spec.rb47
-rw-r--r--spec/ruby/security/cve_2013_4164_spec.rb15
-rw-r--r--spec/ruby/security/cve_2014_8080_spec.rb34
-rw-r--r--spec/ruby/security/cve_2017_17742_spec.rb37
-rw-r--r--spec/ruby/security/cve_2018_16396_spec.rb21
-rw-r--r--spec/ruby/security/cve_2018_6914_spec.rb55
-rw-r--r--spec/ruby/security/cve_2018_8778_spec.rb10
-rw-r--r--spec/ruby/security/cve_2018_8779_spec.rb30
-rw-r--r--spec/ruby/security/cve_2018_8780_spec.rb43
-rw-r--r--spec/ruby/security/cve_2019_8321_spec.rb20
-rw-r--r--spec/ruby/security/cve_2019_8322_spec.rb21
-rw-r--r--spec/ruby/security/cve_2019_8323_spec.rb38
-rw-r--r--spec/ruby/security/cve_2019_8325_spec.rb38
-rw-r--r--spec/ruby/security/cve_2020_10663_spec.rb42
-rw-r--r--spec/ruby/shared/basicobject/method_missing.rb124
-rw-r--r--spec/ruby/shared/basicobject/send.rb128
-rw-r--r--spec/ruby/shared/enumerable/minmax.rb24
-rw-r--r--spec/ruby/shared/enumerator/enum_for.rb57
-rw-r--r--spec/ruby/shared/enumerator/with_index.rb33
-rw-r--r--spec/ruby/shared/enumerator/with_object.rb42
-rw-r--r--spec/ruby/shared/fiber/resume.rb58
-rw-r--r--spec/ruby/shared/file/blockdev.rb9
-rw-r--r--spec/ruby/shared/file/chardev.rb9
-rw-r--r--spec/ruby/shared/file/directory.rb66
-rw-r--r--spec/ruby/shared/file/executable.rb48
-rw-r--r--spec/ruby/shared/file/executable_real.rb46
-rw-r--r--spec/ruby/shared/file/exist.rb24
-rw-r--r--spec/ruby/shared/file/file.rb45
-rw-r--r--spec/ruby/shared/file/grpowned.rb39
-rw-r--r--spec/ruby/shared/file/identical.rb51
-rw-r--r--spec/ruby/shared/file/owned.rb3
-rw-r--r--spec/ruby/shared/file/pipe.rb3
-rw-r--r--spec/ruby/shared/file/readable.rb33
-rw-r--r--spec/ruby/shared/file/readable_real.rb23
-rw-r--r--spec/ruby/shared/file/setgid.rb2
-rw-r--r--spec/ruby/shared/file/setuid.rb2
-rw-r--r--spec/ruby/shared/file/size.rb124
-rw-r--r--spec/ruby/shared/file/socket.rb3
-rw-r--r--spec/ruby/shared/file/sticky.rb29
-rw-r--r--spec/ruby/shared/file/symlink.rb46
-rw-r--r--spec/ruby/shared/file/world_readable.rb49
-rw-r--r--spec/ruby/shared/file/world_writable.rb49
-rw-r--r--spec/ruby/shared/file/writable.rb28
-rw-r--r--spec/ruby/shared/file/writable_real.rb33
-rw-r--r--spec/ruby/shared/file/zero.rb68
-rw-r--r--spec/ruby/shared/hash/key_error.rb23
-rw-r--r--spec/ruby/shared/io/putc.rb57
-rw-r--r--spec/ruby/shared/kernel/equal.rb54
-rw-r--r--spec/ruby/shared/kernel/object_id.rb80
-rw-r--r--spec/ruby/shared/kernel/raise.rb119
-rw-r--r--spec/ruby/shared/math/atanh.rb44
-rw-r--r--spec/ruby/shared/process/abort.rb36
-rw-r--r--spec/ruby/shared/process/exit.rb114
-rw-r--r--spec/ruby/shared/process/fork.rb90
-rw-r--r--spec/ruby/shared/queue/clear.rb12
-rw-r--r--spec/ruby/shared/queue/close.rb14
-rw-r--r--spec/ruby/shared/queue/closed.rb12
-rw-r--r--spec/ruby/shared/queue/deque.rb85
-rw-r--r--spec/ruby/shared/queue/empty.rb12
-rw-r--r--spec/ruby/shared/queue/enque.rb18
-rw-r--r--spec/ruby/shared/queue/length.rb9
-rw-r--r--spec/ruby/shared/queue/num_waiting.rb16
-rw-r--r--spec/ruby/shared/rational/Rational.rb141
-rw-r--r--spec/ruby/shared/rational/abs.rb11
-rw-r--r--spec/ruby/shared/rational/arithmetic_exception_in_coerce.rb11
-rw-r--r--spec/ruby/shared/rational/ceil.rb45
-rw-r--r--spec/ruby/shared/rational/coerce.rb34
-rw-r--r--spec/ruby/shared/rational/comparison.rb95
-rw-r--r--spec/ruby/shared/rational/denominator.rb14
-rw-r--r--spec/ruby/shared/rational/div.rb54
-rw-r--r--spec/ruby/shared/rational/divide.rb71
-rw-r--r--spec/ruby/shared/rational/divmod.rb42
-rw-r--r--spec/ruby/shared/rational/equal_value.rb39
-rw-r--r--spec/ruby/shared/rational/exponent.rb196
-rw-r--r--spec/ruby/shared/rational/fdiv.rb5
-rw-r--r--spec/ruby/shared/rational/floor.rb45
-rw-r--r--spec/ruby/shared/rational/hash.rb9
-rw-r--r--spec/ruby/shared/rational/inspect.rb14
-rw-r--r--spec/ruby/shared/rational/marshal_dump.rb5
-rw-r--r--spec/ruby/shared/rational/marshal_load.rb5
-rw-r--r--spec/ruby/shared/rational/minus.rb48
-rw-r--r--spec/ruby/shared/rational/modulo.rb43
-rw-r--r--spec/ruby/shared/rational/multiply.rb62
-rw-r--r--spec/ruby/shared/rational/numerator.rb10
-rw-r--r--spec/ruby/shared/rational/plus.rb48
-rw-r--r--spec/ruby/shared/rational/quo.rb5
-rw-r--r--spec/ruby/shared/rational/remainder.rb5
-rw-r--r--spec/ruby/shared/rational/round.rb106
-rw-r--r--spec/ruby/shared/rational/to_f.rb10
-rw-r--r--spec/ruby/shared/rational/to_i.rb12
-rw-r--r--spec/ruby/shared/rational/to_r.rb11
-rw-r--r--spec/ruby/shared/rational/to_s.rb14
-rw-r--r--spec/ruby/shared/rational/truncate.rb45
-rw-r--r--spec/ruby/shared/sizedqueue/enque.rb50
-rw-r--r--spec/ruby/shared/sizedqueue/max.rb47
-rw-r--r--spec/ruby/shared/sizedqueue/new.rb18
-rw-r--r--spec/ruby/shared/sizedqueue/num_waiting.rb12
-rw-r--r--spec/ruby/shared/string/end_with.rb54
-rw-r--r--spec/ruby/shared/string/start_with.rb72
-rw-r--r--spec/ruby/shared/string/times.rb80
-rw-r--r--spec/ruby/shared/time/strftime_for_date.rb273
-rw-r--r--spec/ruby/shared/time/strftime_for_time.rb181
-rw-r--r--spec/ruby/spec_helper.rb32
-rw-r--r--sprintf.c1419
-rw-r--r--st.c2488
-rw-r--r--st.h46
-rw-r--r--strftime.c1280
-rw-r--r--string.c13007
-rw-r--r--struct.c1793
-rw-r--r--symbol.c1225
-rw-r--r--symbol.h119
-rw-r--r--template/Doxyfile.tmpl2686
-rw-r--r--template/GNUmakefile.in19
-rw-r--r--template/Makefile.in696
-rw-r--r--template/builtin_binary.inc.tmpl30
-rw-r--r--template/call_iseq_optimized.inc.tmpl68
-rw-r--r--template/configure-ext.mk.tmpl46
-rw-r--r--template/depend.tmpl2
-rw-r--r--template/encdb.h.tmpl101
-rw-r--r--template/extinit.c.tmpl17
-rw-r--r--template/exts.mk.tmpl172
-rw-r--r--template/fake.rb.in50
-rw-r--r--template/id.c.tmpl41
-rw-r--r--template/id.h.tmpl97
-rw-r--r--template/known_errors.inc.tmpl14
-rw-r--r--template/limits.c.tmpl97
-rw-r--r--template/prelude.c.tmpl281
-rwxr-xr-xtemplate/ruby-gdb.in6
-rwxr-xr-xtemplate/ruby-lldb.in6
-rw-r--r--template/ruby-runner.h.in9
-rw-r--r--template/ruby.pc.in59
-rw-r--r--template/sizes.c.tmpl54
-rw-r--r--template/transdb.h.tmpl60
-rw-r--r--template/unicode_norm_gen.tmpl220
-rw-r--r--template/verconf.h.tmpl63
-rw-r--r--test/-ext-/arith_seq/test_arith_seq_extract.rb40
-rw-r--r--test/-ext-/array/test_resize.rb36
-rw-r--r--test/-ext-/array/test_to_ary_concat.rb20
-rw-r--r--test/-ext-/bignum/test_big2str.rb30
-rw-r--r--test/-ext-/bignum/test_bigzero.rb20
-rw-r--r--test/-ext-/bignum/test_div.rb29
-rw-r--r--test/-ext-/bignum/test_mul.rb138
-rw-r--r--test/-ext-/bignum/test_pack.rb399
-rw-r--r--test/-ext-/bignum/test_str2big.rb38
-rw-r--r--test/-ext-/bug_reporter/test_bug_reporter.rb29
-rw-r--r--test/-ext-/class/test_class2name.rb19
-rw-r--r--test/-ext-/debug/test_debug.rb75
-rw-r--r--test/-ext-/debug/test_profile_frames.rb156
-rw-r--r--test/-ext-/exception/test_data_error.rb14
-rw-r--r--test/-ext-/exception/test_enc_raise.rb16
-rw-r--r--test/-ext-/exception/test_ensured.rb32
-rw-r--r--test/-ext-/exception/test_exception_at_throwing.rb18
-rw-r--r--test/-ext-/file/test_stat.rb15
-rw-r--r--test/-ext-/float/test_nextafter.rb65
-rw-r--r--test/-ext-/funcall/test_funcall.rb11
-rw-r--r--test/-ext-/funcall/test_passing_block.rb60
-rw-r--r--test/-ext-/gvl/test_last_thread.rb22
-rw-r--r--test/-ext-/gvl/test_ubf_async_safe.rb20
-rw-r--r--test/-ext-/hash/test_delete.rb20
-rw-r--r--test/-ext-/integer/test_integer.rb26
-rw-r--r--test/-ext-/integer/test_my_integer.rb48
-rw-r--r--test/-ext-/iseq_load/test_iseq_load.rb156
-rw-r--r--test/-ext-/iter/test_iter_break.rb16
-rw-r--r--test/-ext-/iter/test_yield_block.rb34
-rw-r--r--test/-ext-/load/script.rb2
-rw-r--r--test/-ext-/load/test_dot_dot.rb11
-rw-r--r--test/-ext-/load/test_protect.rb14
-rw-r--r--test/-ext-/marshal/test_internal_ivar.rb24
-rw-r--r--test/-ext-/marshal/test_usrmarshal.rb33
-rw-r--r--test/-ext-/method/test_arity.rb38
-rw-r--r--test/-ext-/num2int/test_num2int.rb265
-rw-r--r--test/-ext-/path_to_class/test_path_to_class.rb13
-rw-r--r--test/-ext-/popen_deadlock/test_popen_deadlock.rb36
-rw-r--r--test/-ext-/postponed_job/test_postponed_job.rb35
-rw-r--r--test/-ext-/proc/test_bmethod.rb38
-rw-r--r--test/-ext-/rational/test_rat.rb70
-rw-r--r--test/-ext-/st/test_foreach.rb16
-rw-r--r--test/-ext-/st/test_numhash.rb50
-rw-r--r--test/-ext-/st/test_update.rb51
-rw-r--r--test/-ext-/string/test_capacity.rb78
-rw-r--r--test/-ext-/string/test_coderange.rb60
-rw-r--r--test/-ext-/string/test_cstr.rb164
-rw-r--r--test/-ext-/string/test_ellipsize.rb47
-rw-r--r--test/-ext-/string/test_enc_associate.rb24
-rw-r--r--test/-ext-/string/test_enc_str_buf_cat.rb25
-rw-r--r--test/-ext-/string/test_external_new.rb17
-rw-r--r--test/-ext-/string/test_fstring.rb74
-rw-r--r--test/-ext-/string/test_interned_str.rb12
-rw-r--r--test/-ext-/string/test_modify_expand.rb26
-rw-r--r--test/-ext-/string/test_nofree.rb13
-rw-r--r--test/-ext-/string/test_normalize.rb110
-rw-r--r--test/-ext-/string/test_qsort.rb20
-rw-r--r--test/-ext-/string/test_rb_str_dup.rb18
-rw-r--r--test/-ext-/string/test_set_len.rb35
-rw-r--r--test/-ext-/struct/test_duplicate.rb22
-rw-r--r--test/-ext-/struct/test_len.rb10
-rw-r--r--test/-ext-/struct/test_member.rb14
-rw-r--r--test/-ext-/symbol/noninterned_name.rb17
-rw-r--r--test/-ext-/symbol/test_inadvertent_creation.rb493
-rw-r--r--test/-ext-/symbol/test_type.rb139
-rw-r--r--test/-ext-/test_bug-14834.rb12
-rw-r--r--test/-ext-/test_bug-3571.rb21
-rw-r--r--test/-ext-/test_bug-5832.rb22
-rw-r--r--test/-ext-/test_enumerator_kw.rb11
-rw-r--r--test/-ext-/test_notimplement.rb44
-rw-r--r--test/-ext-/test_printf.rb184
-rw-r--r--test/-ext-/test_random.rb27
-rw-r--r--test/-ext-/test_recursion.rb36
-rw-r--r--test/-ext-/test_scan_args.rb259
-rw-r--r--test/-ext-/thread_fd/test_thread_fd_close.rb25
-rw-r--r--test/-ext-/time/test_new.rb44
-rw-r--r--test/-ext-/tracepoint/test_tracepoint.rb88
-rw-r--r--test/-ext-/typeddata/test_typeddata.rb29
-rw-r--r--test/-ext-/vm/test_at_exit.rb19
-rw-r--r--test/-ext-/wait/test_wait.rb36
-rw-r--r--test/-ext-/win32/test_console_attr.rb55
-rw-r--r--test/-ext-/win32/test_dln.rb39
-rw-r--r--test/-ext-/win32/test_fd_setsize.rb25
-rw-r--r--test/base64/test_base64.rb115
-rw-r--r--test/benchmark/test_benchmark.rb167
-rw-r--r--test/bigdecimal/helper.rb39
-rw-r--r--test/bigdecimal/test_bigdecimal.rb2268
-rw-r--r--test/bigdecimal/test_bigdecimal_util.rb141
-rw-r--r--test/bigdecimal/test_bigmath.rb81
-rw-r--r--test/bigdecimal/test_ractor.rb23
-rw-r--r--test/cgi/test_cgi_cookie.rb126
-rw-r--r--test/cgi/test_cgi_core.rb307
-rw-r--r--test/cgi/test_cgi_header.rb184
-rw-r--r--test/cgi/test_cgi_modruby.rb149
-rw-r--r--test/cgi/test_cgi_multipart.rb385
-rw-r--r--test/cgi/test_cgi_session.rb169
-rw-r--r--test/cgi/test_cgi_tag_helper.rb355
-rw-r--r--test/cgi/test_cgi_util.rb237
-rw-r--r--test/cgi/testdata/file1.html10
-rw-r--r--test/cgi/testdata/large.pngbin156414 -> 0 bytes-rw-r--r--test/cgi/testdata/small.pngbin82 -> 0 bytes-rw-r--r--test/cgi/update_env.rb9
-rw-r--r--test/coverage/test_coverage.rb923
-rw-r--r--test/csv/helper.rb42
-rw-r--r--test/csv/interface/test_delegation.rb47
-rw-r--r--test/csv/interface/test_read.rb371
-rw-r--r--test/csv/interface/test_read_write.rb124
-rw-r--r--test/csv/interface/test_write.rb208
-rw-r--r--test/csv/line_endings.gzbin59 -> 0 bytes-rw-r--r--test/csv/parse/test_column_separator.rb40
-rw-r--r--test/csv/parse/test_convert.rb110
-rw-r--r--test/csv/parse/test_each.rb23
-rw-r--r--test/csv/parse/test_general.rb259
-rw-r--r--test/csv/parse/test_header.rb335
-rw-r--r--test/csv/parse/test_invalid.rb52
-rw-r--r--test/csv/parse/test_liberal_parsing.rb160
-rw-r--r--test/csv/parse/test_quote_char_nil.rb93
-rw-r--r--test/csv/parse/test_rewind.rb40
-rw-r--r--test/csv/parse/test_row_separator.rb16
-rw-r--r--test/csv/parse/test_skip_lines.rb118
-rw-r--r--test/csv/parse/test_strip.rb112
-rw-r--r--test/csv/parse/test_unconverted_fields.rb117
-rw-r--r--test/csv/test_data_converters.rb106
-rw-r--r--test/csv/test_encodings.rb372
-rw-r--r--test/csv/test_features.rb359
-rw-r--r--test/csv/test_row.rb435
-rw-r--r--test/csv/test_table.rb620
-rw-r--r--test/csv/write/test_converters.rb53
-rw-r--r--test/csv/write/test_force_quotes.rb78
-rw-r--r--test/csv/write/test_general.rb246
-rw-r--r--test/csv/write/test_quote_empty.rb70
-rw-r--r--test/date/test_date.rb178
-rw-r--r--test/date/test_date_arith.rb294
-rw-r--r--test/date/test_date_attr.rb103
-rw-r--r--test/date/test_date_compat.rb22
-rw-r--r--test/date/test_date_conv.rb171
-rw-r--r--test/date/test_date_marshal.rb59
-rw-r--r--test/date/test_date_new.rb332
-rw-r--r--test/date/test_date_parse.rb1302
-rw-r--r--test/date/test_date_ractor.rb27
-rw-r--r--test/date/test_date_strftime.rb439
-rw-r--r--test/date/test_date_strptime.rb514
-rw-r--r--test/date/test_switch_hitter.rb637
-rw-r--r--test/did_you_mean/core_ext/test_name_error_extension.rb49
-rw-r--r--test/did_you_mean/edit_distance/test_jaro_winkler.rb36
-rw-r--r--test/did_you_mean/fixtures/book.rb4
-rw-r--r--test/did_you_mean/fixtures/mini_dir.yml15
-rw-r--r--test/did_you_mean/fixtures/rspec_dir.yml112
-rw-r--r--test/did_you_mean/helper.rb33
-rw-r--r--test/did_you_mean/spell_checking/test_class_name_check.rb81
-rw-r--r--test/did_you_mean/spell_checking/test_key_name_check.rb54
-rw-r--r--test/did_you_mean/spell_checking/test_method_name_check.rb147
-rw-r--r--test/did_you_mean/spell_checking/test_pattern_key_name_check.rb20
-rw-r--r--test/did_you_mean/spell_checking/test_require_path_check.rb32
-rw-r--r--test/did_you_mean/spell_checking/test_uncorrectable_name_check.rb15
-rw-r--r--test/did_you_mean/spell_checking/test_variable_name_check.rb140
-rw-r--r--test/did_you_mean/test_spell_checker.rb78
-rw-r--r--test/did_you_mean/test_tree_spell_checker.rb170
-rw-r--r--test/did_you_mean/tree_spell/change_word.rb61
-rw-r--r--test/did_you_mean/tree_spell/human_typo.rb69
-rw-r--r--test/did_you_mean/tree_spell/test_change_word.rb38
-rw-r--r--test/did_you_mean/tree_spell/test_human_typo.rb24
-rw-r--r--test/digest/digest/foo.rb11
-rw-r--r--test/digest/test_digest.rb280
-rw-r--r--test/digest/test_digest_extend.rb159
-rw-r--r--test/digest/test_ractor.rb101
-rw-r--r--test/drb/drbtest.rb394
-rw-r--r--test/drb/ignore_test_drb.rb14
-rw-r--r--test/drb/test_acl.rb207
-rw-r--r--test/drb/test_drb.rb370
-rw-r--r--test/drb/test_drbobject.rb69
-rw-r--r--test/drb/test_drbssl.rb72
-rw-r--r--test/drb/test_drbunix.rb60
-rw-r--r--test/drb/ut_array.rb17
-rw-r--r--test/drb/ut_array_drbssl.rb39
-rw-r--r--test/drb/ut_array_drbunix.rb17
-rw-r--r--test/drb/ut_drb.rb189
-rw-r--r--test/drb/ut_drb_drbssl.rb40
-rw-r--r--test/drb/ut_drb_drbunix.rb18
-rw-r--r--test/drb/ut_eq.rb37
-rw-r--r--test/drb/ut_large.rb62
-rw-r--r--test/drb/ut_port.rb16
-rw-r--r--test/drb/ut_safe1.rb17
-rw-r--r--test/drb/ut_timerholder.rb74
-rw-r--r--test/dtrace/dummy.rb2
-rw-r--r--test/dtrace/helper.rb165
-rw-r--r--test/dtrace/test_array_create.rb36
-rw-r--r--test/dtrace/test_cmethod.rb50
-rw-r--r--test/dtrace/test_function_entry.rb89
-rw-r--r--test/dtrace/test_gc.rb27
-rw-r--r--test/dtrace/test_hash_create.rb53
-rw-r--r--test/dtrace/test_load.rb53
-rw-r--r--test/dtrace/test_method_cache.rb29
-rw-r--r--test/dtrace/test_object_create_start.rb36
-rw-r--r--test/dtrace/test_raise.rb30
-rw-r--r--test/dtrace/test_require.rb41
-rw-r--r--test/dtrace/test_singleton_function.rb57
-rw-r--r--test/dtrace/test_string.rb28
-rw-r--r--test/erb/hello.erb4
-rw-r--r--test/erb/test_erb.rb711
-rw-r--r--test/erb/test_erb_command.rb30
-rw-r--r--test/erb/test_erb_m17n.rb124
-rw-r--r--test/error_highlight/test_error_highlight.rb1197
-rw-r--r--test/etc/test_etc.rb196
-rw-r--r--test/excludes/TestArray.rb1
-rw-r--r--test/excludes/TestException.rb8
-rw-r--r--test/excludes/TestIO_Console.rb2
-rw-r--r--test/excludes/TestISeq.rb1
-rw-r--r--test/excludes/TestThread.rb2
-rw-r--r--test/excludes/_appveyor/TestArray.rb7
-rw-r--r--test/fiber/http.rb54
-rw-r--r--test/fiber/scheduler.rb358
-rw-r--r--test/fiber/test_address_resolve.rb278
-rw-r--r--test/fiber/test_backtrace.rb22
-rw-r--r--test/fiber/test_enumerator.rb51
-rw-r--r--test/fiber/test_io.rb175
-rw-r--r--test/fiber/test_io_buffer.rb125
-rw-r--r--test/fiber/test_mutex.rb220
-rw-r--r--test/fiber/test_process.rb36
-rw-r--r--test/fiber/test_ractor.rb23
-rw-r--r--test/fiber/test_scheduler.rb107
-rw-r--r--test/fiber/test_sleep.rb71
-rw-r--r--test/fiber/test_thread.rb108
-rw-r--r--test/fiber/test_timeout.rb51
-rw-r--r--test/fiddle/helper.rb178
-rw-r--r--test/fiddle/test_c_struct_builder.rb69
-rw-r--r--test/fiddle/test_c_struct_entry.rb165
-rw-r--r--test/fiddle/test_c_union_entity.rb36
-rw-r--r--test/fiddle/test_closure.rb110
-rw-r--r--test/fiddle/test_cparser.rb374
-rw-r--r--test/fiddle/test_fiddle.rb17
-rw-r--r--test/fiddle/test_func.rb139
-rw-r--r--test/fiddle/test_function.rb227
-rw-r--r--test/fiddle/test_handle.rb208
-rw-r--r--test/fiddle/test_import.rb479
-rw-r--r--test/fiddle/test_memory_view.rb143
-rw-r--r--test/fiddle/test_pinned.rb28
-rw-r--r--test/fiddle/test_pointer.rb287
-rw-r--r--test/fileutils/clobber.rb92
-rw-r--r--test/fileutils/fileasserts.rb112
-rw-r--r--test/fileutils/test_dryrun.rb18
-rw-r--r--test/fileutils/test_fileutils.rb1870
-rw-r--r--test/fileutils/test_nowrite.rb18
-rw-r--r--test/fileutils/test_verbose.rb18
-rw-r--r--test/fileutils/visibility_tests.rb42
-rw-r--r--test/fixtures/fake_sorted_set_gem/sorted_set.rb9
-rw-r--r--test/io/console/test_io_console.rb566
-rw-r--r--test/io/nonblock/test_flush.rb73
-rw-r--r--test/io/wait/test_io_wait.rb179
-rw-r--r--test/io/wait/test_io_wait_uncommon.rb78
-rw-r--r--test/io/wait/test_ractor.rb18
-rw-r--r--test/irb/test_cmd.rb558
-rw-r--r--test/irb/test_color.rb277
-rw-r--r--test/irb/test_color_printer.rb68
-rw-r--r--test/irb/test_completion.rb122
-rw-r--r--test/irb/test_context.rb626
-rw-r--r--test/irb/test_history.rb211
-rw-r--r--test/irb/test_init.rb100
-rw-r--r--test/irb/test_option.rb13
-rw-r--r--test/irb/test_raise_no_backtrace_exception.rb54
-rw-r--r--test/irb/test_ruby_lex.rb623
-rw-r--r--test/irb/test_workspace.rb128
-rw-r--r--test/irb/yamatanooroti/test_rendering.rb228
-rw-r--r--test/json/fixtures/fail10.json1
-rw-r--r--test/json/fixtures/fail11.json1
-rw-r--r--test/json/fixtures/fail12.json1
-rw-r--r--test/json/fixtures/fail13.json1
-rw-r--r--test/json/fixtures/fail14.json1
-rw-r--r--test/json/fixtures/fail18.json1
-rw-r--r--test/json/fixtures/fail19.json1
-rw-r--r--test/json/fixtures/fail2.json1
-rw-r--r--test/json/fixtures/fail20.json1
-rw-r--r--test/json/fixtures/fail21.json1
-rw-r--r--test/json/fixtures/fail22.json1
-rw-r--r--test/json/fixtures/fail23.json1
-rw-r--r--test/json/fixtures/fail24.json1
-rw-r--r--test/json/fixtures/fail25.json1
-rw-r--r--test/json/fixtures/fail27.json2
-rw-r--r--test/json/fixtures/fail28.json2
-rw-r--r--test/json/fixtures/fail29.json1
-rw-r--r--test/json/fixtures/fail3.json1
-rw-r--r--test/json/fixtures/fail30.json1
-rw-r--r--test/json/fixtures/fail31.json1
-rw-r--r--test/json/fixtures/fail32.json1
-rw-r--r--test/json/fixtures/fail4.json1
-rw-r--r--test/json/fixtures/fail5.json1
-rw-r--r--test/json/fixtures/fail6.json1
-rw-r--r--test/json/fixtures/fail7.json1
-rw-r--r--test/json/fixtures/fail8.json1
-rw-r--r--test/json/fixtures/fail9.json1
-rw-r--r--test/json/fixtures/obsolete_fail1.json1
-rw-r--r--test/json/fixtures/pass1.json56
-rw-r--r--test/json/fixtures/pass15.json1
-rw-r--r--test/json/fixtures/pass16.json1
-rw-r--r--test/json/fixtures/pass17.json1
-rw-r--r--test/json/fixtures/pass2.json1
-rw-r--r--test/json/fixtures/pass26.json1
-rw-r--r--test/json/fixtures/pass3.json6
-rw-r--r--test/json/json_addition_test.rb199
-rw-r--r--test/json/json_common_interface_test.rb169
-rw-r--r--test/json/json_encoding_test.rb107
-rw-r--r--test/json/json_ext_parser_test.rb15
-rw-r--r--test/json/json_fixtures_test.rb40
-rw-r--r--test/json/json_generator_test.rb399
-rw-r--r--test/json/json_generic_object_test.rb82
-rw-r--r--test/json/json_parser_test.rb497
-rw-r--r--test/json/json_string_matching_test.rb38
-rw-r--r--test/json/ractor_test.rb30
-rw-r--r--test/json/test_helper.rb17
-rw-r--r--test/lib/jit_support.rb94
-rw-r--r--test/lib/with_different_ofs.rb22
-rw-r--r--test/logger/test_formatter.rb35
-rw-r--r--test/logger/test_logdevice.rb858
-rw-r--r--test/logger/test_logger.rb393
-rw-r--r--test/logger/test_logperiod.rb80
-rw-r--r--test/logger/test_severity.rb26
-rw-r--r--test/mkmf/base.rb155
-rw-r--r--test/mkmf/test_config.rb17
-rw-r--r--test/mkmf/test_constant.rb38
-rw-r--r--test/mkmf/test_convertible.rb35
-rw-r--r--test/mkmf/test_egrep_cpp.rb15
-rw-r--r--test/mkmf/test_find_executable.rb58
-rw-r--r--test/mkmf/test_flags.rb57
-rw-r--r--test/mkmf/test_framework.rb49
-rw-r--r--test/mkmf/test_have_func.rb17
-rw-r--r--test/mkmf/test_have_library.rb56
-rw-r--r--test/mkmf/test_have_macro.rb36
-rw-r--r--test/mkmf/test_install.rb30
-rw-r--r--test/mkmf/test_libs.rb94
-rw-r--r--test/mkmf/test_mkmf.rb15
-rw-r--r--test/mkmf/test_signedness.rb30
-rw-r--r--test/mkmf/test_sizeof.rb48
-rw-r--r--test/monitor/test_monitor.rb355
-rw-r--r--test/net/fixtures/Makefile15
-rw-r--r--test/net/fixtures/cacert.pem24
-rw-r--r--test/net/fixtures/dhparams.pem29
-rw-r--r--test/net/fixtures/server.crt82
-rw-r--r--test/net/fixtures/server.key28
-rw-r--r--test/net/http/test_buffered_io.rb18
-rw-r--r--test/net/http/test_http.rb1296
-rw-r--r--test/net/http/test_http_request.rb93
-rw-r--r--test/net/http/test_httpheader.rb444
-rw-r--r--test/net/http/test_httpresponse.rb471
-rw-r--r--test/net/http/test_httpresponses.rb25
-rw-r--r--test/net/http/test_https.rb308
-rw-r--r--test/net/http/test_https_proxy.rb47
-rw-r--r--test/net/http/utils.rb133
-rw-r--r--test/net/protocol/test_protocol.rb122
-rw-r--r--test/nkf/test_kconv.rb82
-rw-r--r--test/nkf/test_nkf.rb23
-rw-r--r--test/objspace/test_objspace.rb635
-rw-r--r--test/open-uri/test_open-uri.rb906
-rw-r--r--test/open-uri/test_ssl.rb513
-rw-r--r--test/openssl/fixtures/pkey/certificate.derbin1325 -> 0 bytes-rw-r--r--test/openssl/fixtures/pkey/dh-1.pem13
-rw-r--r--test/openssl/fixtures/pkey/dh1024.pem5
-rw-r--r--test/openssl/fixtures/pkey/dsa1024.pem12
-rw-r--r--test/openssl/fixtures/pkey/dsa256.pem8
-rw-r--r--test/openssl/fixtures/pkey/dsa512.pem8
-rw-r--r--test/openssl/fixtures/pkey/empty.der0
-rw-r--r--test/openssl/fixtures/pkey/empty.pem0
-rw-r--r--test/openssl/fixtures/pkey/fullchain.pem56
-rw-r--r--test/openssl/fixtures/pkey/garbage.txt1
-rw-r--r--test/openssl/fixtures/pkey/p256.pem5
-rw-r--r--test/openssl/fixtures/pkey/rsa-1.pem51
-rw-r--r--test/openssl/fixtures/pkey/rsa-2.pem51
-rw-r--r--test/openssl/fixtures/pkey/rsa-3.pem51
-rw-r--r--test/openssl/fixtures/pkey/rsa1024.pem15
-rw-r--r--test/openssl/fixtures/pkey/rsa2048.pem27
-rw-r--r--test/openssl/test_asn1.rb719
-rw-r--r--test/openssl/test_bn.rb364
-rw-r--r--test/openssl/test_buffering.rb97
-rw-r--r--test/openssl/test_cipher.rb379
-rw-r--r--test/openssl/test_config.rb292
-rw-r--r--test/openssl/test_digest.rb149
-rw-r--r--test/openssl/test_engine.rb97
-rw-r--r--test/openssl/test_fips.rb30
-rw-r--r--test/openssl/test_hmac.rb68
-rw-r--r--test/openssl/test_kdf.rb183
-rw-r--r--test/openssl/test_ns_spki.rb53
-rw-r--r--test/openssl/test_ocsp.rb304
-rw-r--r--test/openssl/test_ossl.rb65
-rw-r--r--test/openssl/test_pair.rb506
-rw-r--r--test/openssl/test_pkcs12.rb314
-rw-r--r--test/openssl/test_pkcs7.rb327
-rw-r--r--test/openssl/test_pkey.rb172
-rw-r--r--test/openssl/test_pkey_dh.rb166
-rw-r--r--test/openssl/test_pkey_dsa.rb232
-rw-r--r--test/openssl/test_pkey_ec.rb442
-rw-r--r--test/openssl/test_pkey_rsa.rb544
-rw-r--r--test/openssl/test_random.rb19
-rw-r--r--test/openssl/test_ssl.rb1756
-rw-r--r--test/openssl/test_ssl_session.rb393
-rw-r--r--test/openssl/test_ts.rb680
-rw-r--r--test/openssl/test_x509attr.rb94
-rw-r--r--test/openssl/test_x509cert.rb332
-rw-r--r--test/openssl/test_x509crl.rb284
-rw-r--r--test/openssl/test_x509ext.rb104
-rw-r--r--test/openssl/test_x509name.rb469
-rw-r--r--test/openssl/test_x509req.rb170
-rw-r--r--test/openssl/test_x509store.rb373
-rw-r--r--test/openssl/ut_eof.rb137
-rw-r--r--test/openssl/utils.rb361
-rw-r--r--test/optparse/test_acceptable.rb198
-rw-r--r--test/optparse/test_autoconf.rb71
-rw-r--r--test/optparse/test_bash_completion.rb48
-rw-r--r--test/optparse/test_cclass.rb18
-rw-r--r--test/optparse/test_did_you_mean.rb40
-rw-r--r--test/optparse/test_getopts.rb35
-rw-r--r--test/optparse/test_kwargs.rb40
-rw-r--r--test/optparse/test_noarg.rb79
-rw-r--r--test/optparse/test_optarg.rb60
-rw-r--r--test/optparse/test_optparse.rb108
-rw-r--r--test/optparse/test_placearg.rb70
-rw-r--r--test/optparse/test_reqarg.rb95
-rw-r--r--test/optparse/test_summary.rb58
-rw-r--r--test/optparse/test_zsh_completion.rb23
-rw-r--r--test/ostruct/test_ostruct.rb409
-rw-r--r--test/pathname/test_pathname.rb1522
-rw-r--r--test/pathname/test_ractor.rb22
-rw-r--r--test/psych/handlers/test_recorder.rb26
-rw-r--r--test/psych/helper.rb134
-rw-r--r--test/psych/json/test_stream.rb110
-rw-r--r--test/psych/nodes/test_enumerable.rb44
-rw-r--r--test/psych/test_alias_and_anchor.rb97
-rw-r--r--test/psych/test_array.rb64
-rw-r--r--test/psych/test_boolean.rb37
-rw-r--r--test/psych/test_class.rb37
-rw-r--r--test/psych/test_coder.rb328
-rw-r--r--test/psych/test_date_time.rb70
-rw-r--r--test/psych/test_deprecated.rb91
-rw-r--r--test/psych/test_document.rb47
-rw-r--r--test/psych/test_emitter.rb112
-rw-r--r--test/psych/test_encoding.rb281
-rw-r--r--test/psych/test_exception.rb178
-rw-r--r--test/psych/test_hash.rb129
-rw-r--r--test/psych/test_json_tree.rb66
-rw-r--r--test/psych/test_marshalable.rb63
-rw-r--r--test/psych/test_merge_keys.rb191
-rw-r--r--test/psych/test_nil.rb19
-rw-r--r--test/psych/test_null.rb20
-rw-r--r--test/psych/test_numeric.rb47
-rw-r--r--test/psych/test_object.rb45
-rw-r--r--test/psych/test_object_references.rb76
-rw-r--r--test/psych/test_omap.rb76
-rw-r--r--test/psych/test_parser.rb392
-rw-r--r--test/psych/test_psych.rb441
-rw-r--r--test/psych/test_ractor.rb50
-rw-r--r--test/psych/test_safe_load.rb127
-rw-r--r--test/psych/test_scalar.rb17
-rw-r--r--test/psych/test_scalar_scanner.rb182
-rw-r--r--test/psych/test_serialize_subclasses.rb39
-rw-r--r--test/psych/test_set.rb50
-rw-r--r--test/psych/test_stream.rb110
-rw-r--r--test/psych/test_string.rb244
-rw-r--r--test/psych/test_struct.rb50
-rw-r--r--test/psych/test_symbol.rb26
-rw-r--r--test/psych/test_tree_builder.rb94
-rw-r--r--test/psych/test_yaml.rb1294
-rw-r--r--test/psych/test_yaml_special_cases.rb130
-rw-r--r--test/psych/test_yamldbm.rb193
-rw-r--r--test/psych/test_yamlstore.rb101
-rw-r--r--test/psych/visitors/test_depth_first.rb50
-rw-r--r--test/psych/visitors/test_emitter.rb145
-rw-r--r--test/psych/visitors/test_to_ruby.rb333
-rw-r--r--test/psych/visitors/test_yaml_tree.rb198
-rw-r--r--test/racc/assets/cadenza.y170
-rw-r--r--test/racc/assets/cast.y926
-rw-r--r--test/racc/assets/chk.y126
-rw-r--r--test/racc/assets/conf.y16
-rw-r--r--test/racc/assets/csspool.y729
-rw-r--r--test/racc/assets/digraph.y29
-rw-r--r--test/racc/assets/echk.y118
-rw-r--r--test/racc/assets/edtf.y583
-rw-r--r--test/racc/assets/err.y60
-rw-r--r--test/racc/assets/error_recovery.y35
-rw-r--r--test/racc/assets/expect.y7
-rw-r--r--test/racc/assets/firstline.y4
-rw-r--r--test/racc/assets/huia.y318
-rw-r--r--test/racc/assets/ichk.y102
-rw-r--r--test/racc/assets/ifelse.y14
-rw-r--r--test/racc/assets/intp.y546
-rw-r--r--test/racc/assets/journey.y47
-rw-r--r--test/racc/assets/liquor.y313
-rw-r--r--test/racc/assets/machete.y423
-rw-r--r--test/racc/assets/macruby.y2197
-rw-r--r--test/racc/assets/mailp.y437
-rw-r--r--test/racc/assets/mediacloth.y599
-rw-r--r--test/racc/assets/mof.y649
-rw-r--r--test/racc/assets/namae.y302
-rw-r--r--test/racc/assets/nasl.y626
-rw-r--r--test/racc/assets/newsyn.y25
-rw-r--r--test/racc/assets/noend.y4
-rw-r--r--test/racc/assets/nokogiri-css.y255
-rw-r--r--test/racc/assets/nonass.y41
-rw-r--r--test/racc/assets/normal.y27
-rw-r--r--test/racc/assets/norule.y4
-rw-r--r--test/racc/assets/nullbug1.y25
-rw-r--r--test/racc/assets/nullbug2.y15
-rw-r--r--test/racc/assets/opal.y1807
-rw-r--r--test/racc/assets/opt.y123
-rw-r--r--test/racc/assets/percent.y35
-rw-r--r--test/racc/assets/php_serialization.y98
-rw-r--r--test/racc/assets/recv.y97
-rw-r--r--test/racc/assets/riml.y665
-rw-r--r--test/racc/assets/rrconf.y14
-rw-r--r--test/racc/assets/ruby18.y1943
-rw-r--r--test/racc/assets/ruby19.y2174
-rw-r--r--test/racc/assets/ruby20.y2350
-rw-r--r--test/racc/assets/ruby21.y2359
-rw-r--r--test/racc/assets/ruby22.y2381
-rw-r--r--test/racc/assets/scan.y72
-rw-r--r--test/racc/assets/syntax.y50
-rw-r--r--test/racc/assets/tp_plus.y622
-rw-r--r--test/racc/assets/twowaysql.y278
-rw-r--r--test/racc/assets/unterm.y5
-rw-r--r--test/racc/assets/useless.y12
-rw-r--r--test/racc/assets/yyerr.y46
-rw-r--r--test/racc/bench.y36
-rw-r--r--test/racc/case.rb110
-rw-r--r--test/racc/infini.y8
-rw-r--r--test/racc/regress/README.txt7
-rw-r--r--test/racc/regress/cadenza796
-rw-r--r--test/racc/regress/cast3945
-rw-r--r--test/racc/regress/csspool2314
-rw-r--r--test/racc/regress/edtf1794
-rw-r--r--test/racc/regress/huia1681
-rw-r--r--test/racc/regress/journey222
-rw-r--r--test/racc/regress/liquor885
-rw-r--r--test/racc/regress/machete833
-rw-r--r--test/racc/regress/mediacloth1463
-rw-r--r--test/racc/regress/mof1368
-rw-r--r--test/racc/regress/namae634
-rw-r--r--test/racc/regress/nasl2548
-rw-r--r--test/racc/regress/nokogiri-css836
-rw-r--r--test/racc/regress/opal10107
-rw-r--r--test/racc/regress/php_serialization336
-rw-r--r--test/racc/regress/riml4037
-rw-r--r--test/racc/regress/ruby189945
-rw-r--r--test/racc/regress/ruby2211180
-rw-r--r--test/racc/regress/tp_plus1933
-rw-r--r--test/racc/regress/twowaysql556
-rw-r--r--test/racc/scandata/brace7
-rw-r--r--test/racc/scandata/gvar1
-rw-r--r--test/racc/scandata/normal4
-rw-r--r--test/racc/scandata/percent18
-rw-r--r--test/racc/scandata/slash10
-rw-r--r--test/racc/src.intp34
-rw-r--r--test/racc/start.y20
-rw-r--r--test/racc/test_chk_y.rb52
-rw-r--r--test/racc/test_grammar_file_parser.rb15
-rw-r--r--test/racc/test_racc_command.rb339
-rw-r--r--test/racc/test_scan_y.rb52
-rw-r--r--test/racc/testscanner.rb51
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Amps and angle encoding.text21
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Auto links.text13
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Backslash escapes.text120
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Blockquotes with code blocks.text11
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Code Blocks.text14
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Code Spans.text6
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Hard-wrapped paragraphs with list-like lines.text8
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Horizontal rules.text67
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Inline HTML (Advanced).text15
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Inline HTML (Simple).text69
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Inline HTML comments.text13
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Links, inline style.text12
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Links, reference style.text71
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Links, shortcut references.text20
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Literal quotes in titles.text7
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Markdown Documentation - Basics.text306
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Markdown Documentation - Syntax.text888
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Nested blockquotes.text5
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Ordered and unordered lists.text131
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Strong and em together.text7
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Tabs.text21
-rw-r--r--test/rdoc/MarkdownTest_1.0.3/Tidyness.text5
-rw-r--r--test/rdoc/README1
-rw-r--r--test/rdoc/binary.datbin1024 -> 0 bytes-rw-r--r--test/rdoc/helper.rb5
-rw-r--r--test/rdoc/hidden.zip.txt1
-rw-r--r--test/rdoc/support/formatter_test_case.rb764
-rw-r--r--test/rdoc/support/test_case.rb215
-rw-r--r--test/rdoc/support/text_formatter_test_case.rb115
-rw-r--r--test/rdoc/test.ja.largedoc3
-rw-r--r--test/rdoc/test.ja.rdoc10
-rw-r--r--test/rdoc/test.ja.txt8
-rw-r--r--test/rdoc/test.txt1
-rw-r--r--test/rdoc/test_rdoc_alias.rb14
-rw-r--r--test/rdoc/test_rdoc_any_method.rb557
-rw-r--r--test/rdoc/test_rdoc_attr.rb190
-rw-r--r--test/rdoc/test_rdoc_class_module.rb1504
-rw-r--r--test/rdoc/test_rdoc_code_object.rb440
-rw-r--r--test/rdoc/test_rdoc_comment.rb497
-rw-r--r--test/rdoc/test_rdoc_constant.rb182
-rw-r--r--test/rdoc/test_rdoc_context.rb965
-rw-r--r--test/rdoc/test_rdoc_context_section.rb147
-rw-r--r--test/rdoc/test_rdoc_cross_reference.rb216
-rw-r--r--test/rdoc/test_rdoc_encoding.rb184
-rw-r--r--test/rdoc/test_rdoc_extend.rb95
-rw-r--r--test/rdoc/test_rdoc_generator_darkfish.rb252
-rw-r--r--test/rdoc/test_rdoc_generator_json_index.rb349
-rw-r--r--test/rdoc/test_rdoc_generator_markup.rb60
-rw-r--r--test/rdoc/test_rdoc_generator_pot.rb92
-rw-r--r--test/rdoc/test_rdoc_generator_pot_po.rb52
-rw-r--r--test/rdoc/test_rdoc_generator_pot_po_entry.rb140
-rw-r--r--test/rdoc/test_rdoc_generator_ri.rb76
-rw-r--r--test/rdoc/test_rdoc_i18n_locale.rb74
-rw-r--r--test/rdoc/test_rdoc_i18n_text.rb124
-rw-r--r--test/rdoc/test_rdoc_include.rb110
-rw-r--r--test/rdoc/test_rdoc_markdown.rb1071
-rw-r--r--test/rdoc/test_rdoc_markdown_test.rb1883
-rw-r--r--test/rdoc/test_rdoc_markup.rb96
-rw-r--r--test/rdoc/test_rdoc_markup_attribute_manager.rb394
-rw-r--r--test/rdoc/test_rdoc_markup_attributes.rb40
-rw-r--r--test/rdoc/test_rdoc_markup_document.rb208
-rw-r--r--test/rdoc/test_rdoc_markup_formatter.rb175
-rw-r--r--test/rdoc/test_rdoc_markup_hard_break.rb32
-rw-r--r--test/rdoc/test_rdoc_markup_heading.rb30
-rw-r--r--test/rdoc/test_rdoc_markup_include.rb20
-rw-r--r--test/rdoc/test_rdoc_markup_indented_paragraph.rb54
-rw-r--r--test/rdoc/test_rdoc_markup_paragraph.rb33
-rw-r--r--test/rdoc/test_rdoc_markup_parser.rb1684
-rw-r--r--test/rdoc/test_rdoc_markup_pre_process.rb467
-rw-r--r--test/rdoc/test_rdoc_markup_raw.rb23
-rw-r--r--test/rdoc/test_rdoc_markup_to_ansi.rb370
-rw-r--r--test/rdoc/test_rdoc_markup_to_bs.rb352
-rw-r--r--test/rdoc/test_rdoc_markup_to_html.rb859
-rw-r--r--test/rdoc/test_rdoc_markup_to_html_crossref.rb263
-rw-r--r--test/rdoc/test_rdoc_markup_to_html_snippet.rb709
-rw-r--r--test/rdoc/test_rdoc_markup_to_joined_paragraph.rb33
-rw-r--r--test/rdoc/test_rdoc_markup_to_label.rb113
-rw-r--r--test/rdoc/test_rdoc_markup_to_markdown.rb390
-rw-r--r--test/rdoc/test_rdoc_markup_to_rdoc.rb378
-rw-r--r--test/rdoc/test_rdoc_markup_to_table_of_contents.rb127
-rw-r--r--test/rdoc/test_rdoc_markup_to_tt_only.rb247
-rw-r--r--test/rdoc/test_rdoc_markup_verbatim.rb30
-rw-r--r--test/rdoc/test_rdoc_method_attr.rb194
-rw-r--r--test/rdoc/test_rdoc_normal_class.rb48
-rw-r--r--test/rdoc/test_rdoc_normal_module.rb43
-rw-r--r--test/rdoc/test_rdoc_options.rb853
-rw-r--r--test/rdoc/test_rdoc_parser.rb323
-rw-r--r--test/rdoc/test_rdoc_parser_c.rb2011
-rw-r--r--test/rdoc/test_rdoc_parser_changelog.rb485
-rw-r--r--test/rdoc/test_rdoc_parser_markdown.rb62
-rw-r--r--test/rdoc/test_rdoc_parser_rd.rb56
-rw-r--r--test/rdoc/test_rdoc_parser_ruby.rb4348
-rw-r--r--test/rdoc/test_rdoc_parser_simple.rb116
-rw-r--r--test/rdoc/test_rdoc_rd.rb31
-rw-r--r--test/rdoc/test_rdoc_rd_block_parser.rb536
-rw-r--r--test/rdoc/test_rdoc_rd_inline.rb64
-rw-r--r--test/rdoc/test_rdoc_rd_inline_parser.rb178
-rw-r--r--test/rdoc/test_rdoc_rdoc.rb550
-rw-r--r--test/rdoc/test_rdoc_require.rb26
-rw-r--r--test/rdoc/test_rdoc_ri_driver.rb1580
-rw-r--r--test/rdoc/test_rdoc_ri_paths.rb158
-rw-r--r--test/rdoc/test_rdoc_rubygems_hook.rb287
-rw-r--r--test/rdoc/test_rdoc_servlet.rb555
-rw-r--r--test/rdoc/test_rdoc_single_class.rb21
-rw-r--r--test/rdoc/test_rdoc_stats.rb723
-rw-r--r--test/rdoc/test_rdoc_store.rb1013
-rw-r--r--test/rdoc/test_rdoc_task.rb174
-rw-r--r--test/rdoc/test_rdoc_text.rb585
-rw-r--r--test/rdoc/test_rdoc_token_stream.rb58
-rw-r--r--test/rdoc/test_rdoc_tom_doc.rb579
-rw-r--r--test/rdoc/test_rdoc_top_level.rb291
-rw-r--r--test/rdoc/xref_data.rb152
-rw-r--r--test/rdoc/xref_test_case.rb94
-rw-r--r--test/readline/helper.rb29
-rw-r--r--test/readline/test_readline.rb950
-rw-r--r--test/readline/test_readline_history.rb292
-rw-r--r--test/reline/helper.rb125
-rw-r--r--test/reline/test_config.rb389
-rw-r--r--test/reline/test_history.rb308
-rw-r--r--test/reline/test_key_actor_emacs.rb2332
-rw-r--r--test/reline/test_key_actor_vi.rb1457
-rw-r--r--test/reline/test_key_stroke.rb79
-rw-r--r--test/reline/test_kill_ring.rb268
-rw-r--r--test/reline/test_macro.rb41
-rw-r--r--test/reline/test_reline.rb392
-rw-r--r--test/reline/test_reline_key.rb53
-rw-r--r--test/reline/test_string_processing.rb81
-rw-r--r--test/reline/test_terminfo.rb32
-rw-r--r--test/reline/test_unicode.rb25
-rw-r--r--test/reline/test_within_pipe.rb78
-rw-r--r--test/reline/windows/test_key_event_record.rb41
-rwxr-xr-xtest/reline/yamatanooroti/multiline_repl211
-rw-r--r--test/reline/yamatanooroti/termination_checker.rb30
-rw-r--r--test/reline/yamatanooroti/test_rendering.rb1265
-rw-r--r--test/resolv/test_addr.rb63
-rw-r--r--test/resolv/test_dns.rb460
-rw-r--r--test/resolv/test_mdns.rb27
-rw-r--r--test/resolv/test_resource.rb26
-rw-r--r--test/rinda/test_rinda.rb894
-rw-r--r--test/rinda/test_tuplebag.rb173
-rw-r--r--test/ripper/assert_parse_files.rb32
-rw-r--r--test/ripper/dummyparser.rb288
-rw-r--r--test/ripper/test_files_ext.rb8
-rw-r--r--test/ripper/test_files_lib.rb14
-rw-r--r--test/ripper/test_files_sample.rb8
-rw-r--r--test/ripper/test_files_test.rb8
-rw-r--r--test/ripper/test_files_test_1.rb9
-rw-r--r--test/ripper/test_files_test_2.rb9
-rw-r--r--test/ripper/test_filter.rb95
-rw-r--r--test/ripper/test_lexer.rb231
-rw-r--r--test/ripper/test_parser_events.rb1658
-rw-r--r--test/ripper/test_ripper.rb161
-rw-r--r--test/ripper/test_scanner_events.rb998
-rw-r--r--test/ripper/test_sexp.rb537
-rw-r--r--test/ruby/allpairs.rb103
-rw-r--r--test/ruby/beginmainend.rb79
-rw-r--r--test/ruby/bug-11928.rb14
-rw-r--r--test/ruby/bug-13526.rb22
-rw-r--r--test/ruby/enc/test_big5.rb29
-rw-r--r--test/ruby/enc/test_case_comprehensive.rb307
-rw-r--r--test/ruby/enc/test_case_mapping.rb231
-rw-r--r--test/ruby/enc/test_case_options.rb81
-rw-r--r--test/ruby/enc/test_cesu8.rb109
-rw-r--r--test/ruby/enc/test_cp949.rb29
-rw-r--r--test/ruby/enc/test_emoji.rb443
-rw-r--r--test/ruby/enc/test_emoji_breaks.rb151
-rw-r--r--test/ruby/enc/test_euc_jp.rb25
-rw-r--r--test/ruby/enc/test_euc_kr.rb37
-rw-r--r--test/ruby/enc/test_euc_tw.rb29
-rw-r--r--test/ruby/enc/test_gb18030.rb127
-rw-r--r--test/ruby/enc/test_gbk.rb29
-rw-r--r--test/ruby/enc/test_grapheme_breaks.rb95
-rw-r--r--test/ruby/enc/test_iso_8859.rb166
-rw-r--r--test/ruby/enc/test_koi8.rb23
-rw-r--r--test/ruby/enc/test_regex_casefold.rb120
-rw-r--r--test/ruby/enc/test_shift_jis.rb28
-rw-r--r--test/ruby/enc/test_utf16.rb397
-rw-r--r--test/ruby/enc/test_utf32.rb162
-rw-r--r--test/ruby/enc/test_windows_1251.rb17
-rw-r--r--test/ruby/enc/test_windows_1252.rb26
-rw-r--r--test/ruby/lbtest.rb49
-rw-r--r--test/ruby/marshaltestlib.rb439
-rw-r--r--test/ruby/sentence.rb669
-rw-r--r--test/ruby/test_alias.rb256
-rw-r--r--test/ruby/test_argf.rb1132
-rw-r--r--test/ruby/test_arithmetic_sequence.rb491
-rw-r--r--test/ruby/test_arity.rb70
-rw-r--r--test/ruby/test_array.rb3439
-rw-r--r--test/ruby/test_assignment.rb846
-rw-r--r--test/ruby/test_ast.rb540
-rw-r--r--test/ruby/test_autoload.rb494
-rw-r--r--test/ruby/test_backtrace.rb402
-rw-r--r--test/ruby/test_basicinstructions.rb725
-rw-r--r--test/ruby/test_beginendblock.rb179
-rw-r--r--test/ruby/test_bignum.rb816
-rw-r--r--test/ruby/test_call.rb111
-rw-r--r--test/ruby/test_case.rb158
-rw-r--r--test/ruby/test_class.rb787
-rw-r--r--test/ruby/test_clone.rb64
-rw-r--r--test/ruby/test_comparable.rb145
-rw-r--r--test/ruby/test_complex.rb1150
-rw-r--r--test/ruby/test_complex2.rb736
-rw-r--r--test/ruby/test_complexrational.rb408
-rw-r--r--test/ruby/test_condition.rb17
-rw-r--r--test/ruby/test_const.rb93
-rw-r--r--test/ruby/test_continuation.rb145
-rw-r--r--test/ruby/test_default_gems.rb16
-rw-r--r--test/ruby/test_defined.rb419
-rw-r--r--test/ruby/test_dir.rb610
-rw-r--r--test/ruby/test_dir_m17n.rb428
-rw-r--r--test/ruby/test_econv.rb943
-rw-r--r--test/ruby/test_encoding.rb162
-rw-r--r--test/ruby/test_enum.rb1324
-rw-r--r--test/ruby/test_enumerator.rb909
-rw-r--r--test/ruby/test_env.rb1517
-rw-r--r--test/ruby/test_eval.rb606
-rw-r--r--test/ruby/test_exception.rb1402
-rw-r--r--test/ruby/test_fiber.rb491
-rw-r--r--test/ruby/test_file.rb515
-rw-r--r--test/ruby/test_file_exhaustive.rb1767
-rw-r--r--test/ruby/test_fixnum.rb351
-rw-r--r--test/ruby/test_flip.rb75
-rw-r--r--test/ruby/test_float.rb991
-rw-r--r--test/ruby/test_fnmatch.rb169
-rw-r--r--test/ruby/test_frozen_error.rb57
-rw-r--r--test/ruby/test_gc.rb497
-rw-r--r--test/ruby/test_gc_compact.rb174
-rw-r--r--test/ruby/test_hash.rb2181
-rw-r--r--test/ruby/test_ifunless.rb15
-rw-r--r--test/ruby/test_inlinecache.rb110
-rw-r--r--test/ruby/test_insns_leaf.rb46
-rw-r--r--test/ruby/test_integer.rb707
-rw-r--r--test/ruby/test_integer_comb.rb634
-rw-r--r--test/ruby/test_io.rb4032
-rw-r--r--test/ruby/test_io_buffer.rb330
-rw-r--r--test/ruby/test_io_m17n.rb2747
-rw-r--r--test/ruby/test_iseq.rb745
-rw-r--r--test/ruby/test_iterator.rb506
-rw-r--r--test/ruby/test_jit.rb1273
-rw-r--r--test/ruby/test_jit_debug.rb17
-rw-r--r--test/ruby/test_key_error.rb42
-rw-r--r--test/ruby/test_keyword.rb4371
-rw-r--r--test/ruby/test_lambda.rb354
-rw-r--r--test/ruby/test_lazy_enumerator.rb689
-rw-r--r--test/ruby/test_literal.rb656
-rw-r--r--test/ruby/test_m17n.rb1722
-rw-r--r--test/ruby/test_m17n_comb.rb1674
-rw-r--r--test/ruby/test_marshal.rb930
-rw-r--r--test/ruby/test_math.rb363
-rw-r--r--test/ruby/test_memory_view.rb341
-rw-r--r--test/ruby/test_metaclass.rb168
-rw-r--r--test/ruby/test_method.rb1450
-rw-r--r--test/ruby/test_method_cache.rb76
-rw-r--r--test/ruby/test_mixed_unicode_escapes.rb30
-rw-r--r--test/ruby/test_module.rb3173
-rw-r--r--test/ruby/test_name_error.rb156
-rw-r--r--test/ruby/test_nomethod_error.rb109
-rw-r--r--test/ruby/test_not.rb13
-rw-r--r--test/ruby/test_numeric.rb485
-rw-r--r--test/ruby/test_object.rb996
-rw-r--r--test/ruby/test_objectspace.rb277
-rw-r--r--test/ruby/test_optimization.rb936
-rw-r--r--test/ruby/test_pack.rb906
-rw-r--r--test/ruby/test_parse.rb1363
-rw-r--r--test/ruby/test_path.rb267
-rw-r--r--test/ruby/test_pattern_matching.rb1697
-rw-r--r--test/ruby/test_pipe.rb49
-rw-r--r--test/ruby/test_primitive.rb452
-rw-r--r--test/ruby/test_proc.rb1727
-rw-r--r--test/ruby/test_process.rb2640
-rw-r--r--test/ruby/test_rand.rb429
-rw-r--r--test/ruby/test_random_formatter.rb123
-rw-r--r--test/ruby/test_range.rb979
-rw-r--r--test/ruby/test_rational.rb1096
-rw-r--r--test/ruby/test_rational2.rb1387
-rw-r--r--test/ruby/test_readpartial.rb73
-rw-r--r--test/ruby/test_refinement.rb2680
-rw-r--r--test/ruby/test_regexp.rb1428
-rw-r--r--test/ruby/test_require.rb962
-rw-r--r--test/ruby/test_require_lib.rb27
-rw-r--r--test/ruby/test_rubyoptions.rb1139
-rw-r--r--test/ruby/test_rubyvm.rb71
-rw-r--r--test/ruby/test_rubyvm_jit.rb91
-rw-r--r--test/ruby/test_settracefunc.rb2602
-rw-r--r--test/ruby/test_signal.rb387
-rw-r--r--test/ruby/test_sleep.rb17
-rw-r--r--test/ruby/test_sprintf.rb531
-rw-r--r--test/ruby/test_sprintf_comb.rb554
-rw-r--r--test/ruby/test_stack.rb82
-rw-r--r--test/ruby/test_string.rb3242
-rw-r--r--test/ruby/test_stringchar.rb182
-rw-r--r--test/ruby/test_struct.rb547
-rw-r--r--test/ruby/test_super.rb700
-rw-r--r--test/ruby/test_symbol.rb608
-rw-r--r--test/ruby/test_syntax.rb1871
-rw-r--r--test/ruby/test_system.rb204
-rw-r--r--test/ruby/test_thread.rb1436
-rw-r--r--test/ruby/test_thread_cv.rb252
-rw-r--r--test/ruby/test_thread_queue.rb653
-rw-r--r--test/ruby/test_threadgroup.rb57
-rw-r--r--test/ruby/test_time.rb1328
-rw-r--r--test/ruby/test_time_tz.rb807
-rw-r--r--test/ruby/test_trace.rb51
-rw-r--r--test/ruby/test_transcode.rb2309
-rw-r--r--test/ruby/test_undef.rb54
-rw-r--r--test/ruby/test_unicode_escape.rb272
-rw-r--r--test/ruby/test_variable.rb302
-rw-r--r--test/ruby/test_vm_dump.rb21
-rw-r--r--test/ruby/test_weakmap.rb170
-rw-r--r--test/ruby/test_whileuntil.rb83
-rw-r--r--test/ruby/test_yield.rb425
-rw-r--r--test/ruby/test_yjit.rb687
-rw-r--r--test/ruby/ut_eof.rb129
-rw-r--r--test/rubygems/alternate_cert.pem19
-rw-r--r--test/rubygems/alternate_cert_32.pem19
-rw-r--r--test/rubygems/alternate_key.pem27
-rw-r--r--test/rubygems/bad_rake.rb2
-rw-r--r--test/rubygems/ca_cert.pem77
-rw-r--r--test/rubygems/child_cert.pem20
-rw-r--r--test/rubygems/child_cert_32.pem20
-rw-r--r--test/rubygems/child_key.pem27
-rw-r--r--test/rubygems/client.pem107
-rw-r--r--test/rubygems/data/gem-private_key.pem27
-rw-r--r--test/rubygems/data/gem-public_cert.pem20
-rw-r--r--test/rubygems/data/null-required-ruby-version.gemspec.rzbin403 -> 0 bytes-rw-r--r--test/rubygems/data/null-required-rubygems-version.gemspec.rzbin421 -> 0 bytes-rw-r--r--test/rubygems/data/null-type.gemspec.rzbin504 -> 0 bytes-rw-r--r--test/rubygems/encrypted_private_key.pem30
-rw-r--r--test/rubygems/expired_cert.pem19
-rw-r--r--test/rubygems/fake_certlib/openssl.rb8
-rw-r--r--test/rubygems/foo/discover.rb1
-rw-r--r--test/rubygems/future_cert.pem19
-rw-r--r--test/rubygems/future_cert_32.pem19
-rw-r--r--test/rubygems/good_rake.rb2
-rw-r--r--test/rubygems/grandchild_cert.pem20
-rw-r--r--test/rubygems/grandchild_cert_32.pem20
-rw-r--r--test/rubygems/grandchild_key.pem27
-rw-r--r--test/rubygems/helper.rb1609
-rw-r--r--test/rubygems/installer_test_case.rb247
-rw-r--r--test/rubygems/invalid_client.pem49
-rw-r--r--test/rubygems/invalid_issuer_cert.pem20
-rw-r--r--test/rubygems/invalid_issuer_cert_32.pem20
-rw-r--r--test/rubygems/invalid_key.pem27
-rw-r--r--test/rubygems/invalid_signer_cert.pem19
-rw-r--r--test/rubygems/invalid_signer_cert_32.pem19
-rw-r--r--test/rubygems/invalidchild_cert.pem20
-rw-r--r--test/rubygems/invalidchild_cert_32.pem20
-rw-r--r--test/rubygems/invalidchild_key.pem27
-rw-r--r--test/rubygems/package/tar_test_case.rb139
-rw-r--r--test/rubygems/packages/ascii_binder-0.1.10.1.gembin244736 -> 0 bytes-rw-r--r--test/rubygems/packages/ill-formatted-platform-1.0.0.10.gembin10240 -> 0 bytes-rw-r--r--test/rubygems/plugin/exception/rubygems_plugin.rb3
-rw-r--r--test/rubygems/plugin/load/rubygems_plugin.rb4
-rw-r--r--test/rubygems/plugin/standarderror/rubygems_plugin.rb3
-rw-r--r--test/rubygems/private3072_key.pem40
-rw-r--r--test/rubygems/private_ec_key.pem9
-rw-r--r--test/rubygems/private_key.pem27
-rw-r--r--test/rubygems/public3072_cert.pem25
-rw-r--r--test/rubygems/public_cert.pem20
-rw-r--r--test/rubygems/public_cert_32.pem19
-rw-r--r--test/rubygems/public_key.pem9
-rw-r--r--test/rubygems/rubygems/commands/crash_command.rb4
-rw-r--r--test/rubygems/rubygems_plugin.rb23
-rw-r--r--test/rubygems/sff/discover.rb1
-rw-r--r--test/rubygems/simple_gem.rb67
-rw-r--r--test/rubygems/specifications/bar-0.0.2.gemspec7
-rw-r--r--test/rubygems/specifications/foo-0.0.1-x86-mswin32.gemspecbin269 -> 0 bytes-rw-r--r--test/rubygems/specifications/rubyforge-0.0.1.gemspec12
-rw-r--r--test/rubygems/ssl_cert.pem80
-rw-r--r--test/rubygems/ssl_key.pem27
-rw-r--r--test/rubygems/test_bundled_ca.rb60
-rw-r--r--test/rubygems/test_config.rb27
-rw-r--r--test/rubygems/test_deprecate.rb157
-rw-r--r--test/rubygems/test_exit.rb11
-rw-r--r--test/rubygems/test_gem.rb2126
-rw-r--r--test/rubygems/test_gem_available_set.rb129
-rw-r--r--test/rubygems/test_gem_bundler_version_finder.rb125
-rw-r--r--test/rubygems/test_gem_command.rb400
-rw-r--r--test/rubygems/test_gem_command_manager.rb328
-rw-r--r--test/rubygems/test_gem_commands_build_command.rb727
-rw-r--r--test/rubygems/test_gem_commands_cert_command.rb867
-rw-r--r--test/rubygems/test_gem_commands_check_command.rb67
-rw-r--r--test/rubygems/test_gem_commands_cleanup_command.rb291
-rw-r--r--test/rubygems/test_gem_commands_contents_command.rb270
-rw-r--r--test/rubygems/test_gem_commands_dependency_command.rb227
-rw-r--r--test/rubygems/test_gem_commands_environment_command.rb143
-rw-r--r--test/rubygems/test_gem_commands_fetch_command.rb160
-rw-r--r--test/rubygems/test_gem_commands_generate_index_command.rb80
-rw-r--r--test/rubygems/test_gem_commands_help_command.rb93
-rw-r--r--test/rubygems/test_gem_commands_info_command.rb43
-rw-r--r--test/rubygems/test_gem_commands_install_command.rb1537
-rw-r--r--test/rubygems/test_gem_commands_list_command.rb32
-rw-r--r--test/rubygems/test_gem_commands_lock_command.rb66
-rw-r--r--test/rubygems/test_gem_commands_mirror.rb19
-rw-r--r--test/rubygems/test_gem_commands_open_command.rb97
-rw-r--r--test/rubygems/test_gem_commands_outdated_command.rb49
-rw-r--r--test/rubygems/test_gem_commands_owner_command.rb326
-rw-r--r--test/rubygems/test_gem_commands_pristine_command.rb658
-rw-r--r--test/rubygems/test_gem_commands_push_command.rb472
-rw-r--r--test/rubygems/test_gem_commands_query_command.rb857
-rw-r--r--test/rubygems/test_gem_commands_search_command.rb15
-rw-r--r--test/rubygems/test_gem_commands_server_command.rb19
-rw-r--r--test/rubygems/test_gem_commands_setup_command.rb445
-rw-r--r--test/rubygems/test_gem_commands_signin_command.rb130
-rw-r--r--test/rubygems/test_gem_commands_signout_command.rb30
-rw-r--r--test/rubygems/test_gem_commands_sources_command.rb484
-rw-r--r--test/rubygems/test_gem_commands_specification_command.rb276
-rw-r--r--test/rubygems/test_gem_commands_stale_command.rb42
-rw-r--r--test/rubygems/test_gem_commands_uninstall_command.rb504
-rw-r--r--test/rubygems/test_gem_commands_unpack_command.rb223
-rw-r--r--test/rubygems/test_gem_commands_update_command.rb724
-rw-r--r--test/rubygems/test_gem_commands_which_command.rb84
-rw-r--r--test/rubygems/test_gem_commands_yank_command.rb180
-rw-r--r--test/rubygems/test_gem_config_file.rb504
-rw-r--r--test/rubygems/test_gem_dependency.rb395
-rw-r--r--test/rubygems/test_gem_dependency_installer.rb1155
-rw-r--r--test/rubygems/test_gem_dependency_list.rb264
-rw-r--r--test/rubygems/test_gem_dependency_resolution_error.rb26
-rw-r--r--test/rubygems/test_gem_doctor.rb194
-rw-r--r--test/rubygems/test_gem_ext_builder.rb338
-rw-r--r--test/rubygems/test_gem_ext_cmake_builder.rb81
-rw-r--r--test/rubygems/test_gem_ext_configure_builder.rb79
-rw-r--r--test/rubygems/test_gem_ext_ext_conf_builder.rb230
-rw-r--r--test/rubygems/test_gem_ext_rake_builder.rb112
-rw-r--r--test/rubygems/test_gem_gem_runner.rb113
-rw-r--r--test/rubygems/test_gem_gemcutter_utilities.rb270
-rw-r--r--test/rubygems/test_gem_impossible_dependencies_error.rb59
-rw-r--r--test/rubygems/test_gem_indexer.rb357
-rw-r--r--test/rubygems/test_gem_install_update_options.rb207
-rw-r--r--test/rubygems/test_gem_installer.rb2284
-rw-r--r--test/rubygems/test_gem_local_remote_options.rb132
-rw-r--r--test/rubygems/test_gem_name_tuple.rb42
-rw-r--r--test/rubygems/test_gem_package.rb1180
-rw-r--r--test/rubygems/test_gem_package_old.rb90
-rw-r--r--test/rubygems/test_gem_package_tar_header.rb225
-rw-r--r--test/rubygems/test_gem_package_tar_reader.rb87
-rw-r--r--test/rubygems/test_gem_package_tar_reader_entry.rb152
-rw-r--r--test/rubygems/test_gem_package_tar_writer.rb330
-rw-r--r--test/rubygems/test_gem_package_task.rb117
-rw-r--r--test/rubygems/test_gem_path_support.rb138
-rw-r--r--test/rubygems/test_gem_platform.rb375
-rw-r--r--test/rubygems/test_gem_rdoc.rb136
-rw-r--r--test/rubygems/test_gem_remote_fetcher.rb1226
-rw-r--r--test/rubygems/test_gem_request.rb541
-rw-r--r--test/rubygems/test_gem_request_connection_pools.rb150
-rw-r--r--test/rubygems/test_gem_request_set.rb671
-rw-r--r--test/rubygems/test_gem_request_set_gem_dependency_api.rb847
-rw-r--r--test/rubygems/test_gem_request_set_lockfile.rb468
-rw-r--r--test/rubygems/test_gem_request_set_lockfile_parser.rb543
-rw-r--r--test/rubygems/test_gem_request_set_lockfile_tokenizer.rb306
-rw-r--r--test/rubygems/test_gem_requirement.rb498
-rw-r--r--test/rubygems/test_gem_resolver.rb791
-rw-r--r--test/rubygems/test_gem_resolver_activation_request.rb42
-rw-r--r--test/rubygems/test_gem_resolver_api_set.rb209
-rw-r--r--test/rubygems/test_gem_resolver_api_specification.rb166
-rw-r--r--test/rubygems/test_gem_resolver_best_set.rb158
-rw-r--r--test/rubygems/test_gem_resolver_composed_set.rb43
-rw-r--r--test/rubygems/test_gem_resolver_conflict.rb81
-rw-r--r--test/rubygems/test_gem_resolver_dependency_request.rb82
-rw-r--r--test/rubygems/test_gem_resolver_git_set.rb187
-rw-r--r--test/rubygems/test_gem_resolver_git_specification.rb113
-rw-r--r--test/rubygems/test_gem_resolver_index_set.rb87
-rw-r--r--test/rubygems/test_gem_resolver_index_specification.rb92
-rw-r--r--test/rubygems/test_gem_resolver_installed_specification.rb46
-rw-r--r--test/rubygems/test_gem_resolver_installer_set.rb275
-rw-r--r--test/rubygems/test_gem_resolver_local_specification.rb43
-rw-r--r--test/rubygems/test_gem_resolver_lock_set.rb61
-rw-r--r--test/rubygems/test_gem_resolver_lock_specification.rb97
-rw-r--r--test/rubygems/test_gem_resolver_requirement_list.rb18
-rw-r--r--test/rubygems/test_gem_resolver_specification.rb62
-rw-r--r--test/rubygems/test_gem_resolver_vendor_set.rb81
-rw-r--r--test/rubygems/test_gem_resolver_vendor_specification.rb81
-rw-r--r--test/rubygems/test_gem_security.rb340
-rw-r--r--test/rubygems/test_gem_security_policy.rb535
-rw-r--r--test/rubygems/test_gem_security_signer.rb217
-rw-r--r--test/rubygems/test_gem_security_trust_dir.rb98
-rw-r--r--test/rubygems/test_gem_silent_ui.rb116
-rw-r--r--test/rubygems/test_gem_source.rb253
-rw-r--r--test/rubygems/test_gem_source_fetch_problem.rb36
-rw-r--r--test/rubygems/test_gem_source_git.rb302
-rw-r--r--test/rubygems/test_gem_source_installed.rb34
-rw-r--r--test/rubygems/test_gem_source_list.rb118
-rw-r--r--test/rubygems/test_gem_source_local.rb106
-rw-r--r--test/rubygems/test_gem_source_lock.rb112
-rw-r--r--test/rubygems/test_gem_source_specific_file.rb75
-rw-r--r--test/rubygems/test_gem_source_subpath_problem.rb49
-rw-r--r--test/rubygems/test_gem_source_vendor.rb29
-rw-r--r--test/rubygems/test_gem_spec_fetcher.rb337
-rw-r--r--test/rubygems/test_gem_specification.rb3746
-rw-r--r--test/rubygems/test_gem_stream_ui.rb224
-rw-r--r--test/rubygems/test_gem_stub_specification.rb293
-rw-r--r--test/rubygems/test_gem_text.rb102
-rw-r--r--test/rubygems/test_gem_uninstaller.rb674
-rw-r--r--test/rubygems/test_gem_unsatisfiable_dependency_error.rb30
-rw-r--r--test/rubygems/test_gem_uri.rb39
-rw-r--r--test/rubygems/test_gem_uri_formatter.rb26
-rw-r--r--test/rubygems/test_gem_util.rb90
-rw-r--r--test/rubygems/test_gem_validator.rb42
-rw-r--r--test/rubygems/test_gem_version.rb291
-rw-r--r--test/rubygems/test_gem_version_option.rb164
-rw-r--r--test/rubygems/test_kernel.rb129
-rw-r--r--test/rubygems/test_project_sanity.rb20
-rw-r--r--test/rubygems/test_remote_fetch_error.rb19
-rw-r--r--test/rubygems/test_require.rb723
-rw-r--r--test/rubygems/test_rubygems.rb71
-rw-r--r--test/rubygems/utilities.rb371
-rw-r--r--test/rubygems/wrong_key_cert.pem19
-rw-r--r--test/rubygems/wrong_key_cert_32.pem19
-rw-r--r--test/runner.rb14
-rw-r--r--test/socket/test_addrinfo.rb704
-rw-r--r--test/socket/test_ancdata.rb68
-rw-r--r--test/socket/test_basicsocket.rb228
-rw-r--r--test/socket/test_nonblock.rb397
-rw-r--r--test/socket/test_socket.rb765
-rw-r--r--test/socket/test_sockopt.rb80
-rw-r--r--test/socket/test_tcp.rb143
-rw-r--r--test/socket/test_udp.rb116
-rw-r--r--test/socket/test_unix.rb721
-rw-r--r--test/stringio/test_ractor.rb23
-rw-r--r--test/stringio/test_stringio.rb886
-rw-r--r--test/strscan/test_ractor.rb28
-rw-r--r--test/strscan/test_stringscanner.rb789
-rw-r--r--test/syslog/test_syslog_logger.rb588
-rw-r--r--test/test_abbrev.rb55
-rw-r--r--test/test_delegate.rb402
-rw-r--r--test/test_extlibs.rb81
-rw-r--r--test/test_find.rb334
-rw-r--r--test/test_forwardable.rb402
-rw-r--r--test/test_getoptlong.rb163
-rw-r--r--test/test_ipaddr.rb448
-rw-r--r--test/test_mutex_m.rb58
-rw-r--r--test/test_observer.rb66
-rw-r--r--test/test_open3.rb343
-rw-r--r--test/test_pp.rb235
-rw-r--r--test/test_prettyprint.rb521
-rw-r--r--test/test_pstore.rb150
-rw-r--r--test/test_pty.rb239
-rw-r--r--test/test_rbconfig.rb63
-rw-r--r--test/test_securerandom.rb86
-rw-r--r--test/test_set.rb840
-rw-r--r--test/test_shellwords.rb131
-rw-r--r--test/test_singleton.rb104
-rw-r--r--test/test_sorted_set.rb45
-rw-r--r--test/test_syslog.rb193
-rw-r--r--test/test_tempfile.rb405
-rw-r--r--test/test_time.rb588
-rw-r--r--test/test_timeout.rb129
-rw-r--r--test/test_tmpdir.rb106
-rw-r--r--test/test_trick.rb191
-rw-r--r--test/test_tsort.rb115
-rw-r--r--test/test_unicode_normalize.rb212
-rw-r--r--test/test_weakref.rb72
-rw-r--r--test/uri/test_common.rb200
-rw-r--r--test/uri/test_file.rb67
-rw-r--r--test/uri/test_ftp.rb67
-rw-r--r--test/uri/test_generic.rb1059
-rw-r--r--test/uri/test_http.rb87
-rw-r--r--test/uri/test_ldap.rb105
-rw-r--r--test/uri/test_mailto.rb191
-rw-r--r--test/uri/test_parser.rb66
-rw-r--r--test/uri/test_ws.rb71
-rw-r--r--test/win32ole/available_ole.rb41
-rw-r--r--test/win32ole/err_in_callback.rb10
-rw-r--r--test/win32ole/orig_data.csv5
-rw-r--r--test/win32ole/test_err_in_callback.rb56
-rw-r--r--test/win32ole/test_folderitem2_invokeverb.rb66
-rw-r--r--test/win32ole/test_nil2vtempty.rb37
-rw-r--r--test/win32ole/test_ole_methods.rb35
-rw-r--r--test/win32ole/test_propertyputref.rb31
-rw-r--r--test/win32ole/test_thread.rb34
-rw-r--r--test/win32ole/test_win32ole.rb534
-rw-r--r--test/win32ole/test_win32ole_event.rb407
-rw-r--r--test/win32ole/test_win32ole_method.rb134
-rw-r--r--test/win32ole/test_win32ole_method_event.rb36
-rw-r--r--test/win32ole/test_win32ole_param.rb98
-rw-r--r--test/win32ole/test_win32ole_param_event.rb30
-rw-r--r--test/win32ole/test_win32ole_record.rb209
-rw-r--r--test/win32ole/test_win32ole_type.rb200
-rw-r--r--test/win32ole/test_win32ole_type_event.rb44
-rw-r--r--test/win32ole/test_win32ole_typelib.rb117
-rw-r--r--test/win32ole/test_win32ole_variable.rb62
-rw-r--r--test/win32ole/test_win32ole_variant.rb722
-rw-r--r--test/win32ole/test_win32ole_variant_m.rb36
-rw-r--r--test/win32ole/test_win32ole_variant_outarg.rb69
-rw-r--r--test/win32ole/test_word.rb73
-rw-r--r--test/yaml/test_store.rb180
-rw-r--r--test/zlib/test_zlib.rb1460
-rw-r--r--thread.c5853
-rw-r--r--thread_pthread.c2308
-rw-r--r--thread_pthread.h115
-rw-r--r--thread_sync.c1646
-rw-r--r--thread_win32.c874
-rw-r--r--thread_win32.h61
-rw-r--r--time.c5864
-rw-r--r--timev.h57
-rw-r--r--timev.rb312
-rw-r--r--tool/asm_parse.rb53
-rwxr-xr-xtool/bisect.sh65
-rwxr-xr-xtool/build-transcode16
-rw-r--r--tool/bundler/rubocop_gems.rb11
-rw-r--r--tool/bundler/rubocop_gems.rb.lock63
-rw-r--r--tool/bundler/standard_gems.rb11
-rw-r--r--tool/bundler/standard_gems.rb.lock69
-rw-r--r--tool/bundler/test_gems.rb12
-rw-r--r--tool/bundler/test_gems.rb.lock44
-rwxr-xr-xtool/checksum.rb72
-rw-r--r--tool/ci_functions.sh29
-rw-r--r--tool/colors3
-rwxr-xr-xtool/darwin-cc6
-rwxr-xr-xtool/disable_ipv6.sh9
-rw-r--r--tool/downloader.rb415
-rw-r--r--tool/dummy-rake-compiler/rake/extensiontask.rb9
-rw-r--r--tool/enc-emoji-citrus-gen.rb131
-rw-r--r--tool/enc-emoji4unicode.rb133
-rwxr-xr-xtool/enc-unicode.rb577
-rw-r--r--tool/eval.rb158
-rwxr-xr-xtool/expand-config.rb33
-rwxr-xr-xtool/extlibs.rb263
-rw-r--r--tool/fake.rb59
-rwxr-xr-xtool/fetch-bundled_gems.rb27
-rwxr-xr-xtool/file2lastrev.rb124
-rwxr-xr-xtool/format-release262
-rw-r--r--tool/gem-unpack.rb19
-rwxr-xr-xtool/gen-mailmap.rb47
-rwxr-xr-xtool/gen_dummy_probes.rb32
-rwxr-xr-xtool/gen_ruby_tapset.rb105
-rw-r--r--tool/generic_erb.rb61
-rwxr-xr-xtool/git-refresh46
-rw-r--r--tool/gperf.sed22
-rwxr-xr-xtool/id2token.rb26
-rwxr-xr-xtool/ifchange119
-rwxr-xr-xtool/insns2vm.rb15
-rw-r--r--tool/install-sh17
-rwxr-xr-xtool/intern_ids.rb35
-rwxr-xr-xtool/leaked-globals65
-rw-r--r--tool/lib/-test-/integer.rb14
-rw-r--r--tool/lib/colorize.rb55
-rw-r--r--tool/lib/core_assertions.rb751
-rw-r--r--tool/lib/envutil.rb367
-rw-r--r--tool/lib/find_executable.rb22
-rw-r--r--tool/lib/gc_checker.rb36
-rw-r--r--tool/lib/iseq_loader_checker.rb81
-rw-r--r--tool/lib/jisx0208.rb86
-rw-r--r--tool/lib/leakchecker.rb314
-rw-r--r--tool/lib/memory_status.rb151
-rw-r--r--tool/lib/profile_test_all.rb91
-rw-r--r--tool/lib/test/unit.rb1762
-rw-r--r--tool/lib/test/unit/assertions.rb823
-rw-r--r--tool/lib/test/unit/parallel.rb212
-rw-r--r--tool/lib/test/unit/testcase.rb296
-rw-r--r--tool/lib/tracepointchecker.rb126
-rw-r--r--tool/lib/vcs.rb733
-rw-r--r--tool/lib/vpath.rb87
-rw-r--r--tool/lib/webrick.rb232
-rw-r--r--tool/lib/webrick/.document6
-rw-r--r--tool/lib/webrick/accesslog.rb157
-rw-r--r--tool/lib/webrick/cgi.rb313
-rw-r--r--tool/lib/webrick/compat.rb36
-rw-r--r--tool/lib/webrick/config.rb158
-rw-r--r--tool/lib/webrick/cookie.rb172
-rw-r--r--tool/lib/webrick/htmlutils.rb30
-rw-r--r--tool/lib/webrick/httpauth.rb96
-rw-r--r--tool/lib/webrick/httpauth/authenticator.rb117
-rw-r--r--tool/lib/webrick/httpauth/basicauth.rb116
-rw-r--r--tool/lib/webrick/httpauth/digestauth.rb395
-rw-r--r--tool/lib/webrick/httpauth/htdigest.rb132
-rw-r--r--tool/lib/webrick/httpauth/htgroup.rb97
-rw-r--r--tool/lib/webrick/httpauth/htpasswd.rb158
-rw-r--r--tool/lib/webrick/httpauth/userdb.rb53
-rw-r--r--tool/lib/webrick/httpproxy.rb354
-rw-r--r--tool/lib/webrick/httprequest.rb636
-rw-r--r--tool/lib/webrick/httpresponse.rb564
-rw-r--r--tool/lib/webrick/https.rb152
-rw-r--r--tool/lib/webrick/httpserver.rb294
-rw-r--r--tool/lib/webrick/httpservlet.rb23
-rw-r--r--tool/lib/webrick/httpservlet/abstract.rb152
-rw-r--r--tool/lib/webrick/httpservlet/cgi_runner.rb47
-rw-r--r--tool/lib/webrick/httpservlet/cgihandler.rb126
-rw-r--r--tool/lib/webrick/httpservlet/erbhandler.rb88
-rw-r--r--tool/lib/webrick/httpservlet/filehandler.rb552
-rw-r--r--tool/lib/webrick/httpservlet/prochandler.rb47
-rw-r--r--tool/lib/webrick/httpstatus.rb194
-rw-r--r--tool/lib/webrick/httputils.rb512
-rw-r--r--tool/lib/webrick/httpversion.rb76
-rw-r--r--tool/lib/webrick/log.rb156
-rw-r--r--tool/lib/webrick/server.rb381
-rw-r--r--tool/lib/webrick/ssl.rb215
-rw-r--r--tool/lib/webrick/utils.rb265
-rw-r--r--tool/lib/webrick/version.rb18
-rw-r--r--tool/lib/zombie_hunter.rb10
-rw-r--r--tool/m4/_colorize_result_prepare.m434
-rw-r--r--tool/m4/ac_msg_result.m45
-rw-r--r--tool/m4/colorize_result.m49
-rw-r--r--tool/m4/ruby_append_option.m45
-rw-r--r--tool/m4/ruby_append_options.m47
-rw-r--r--tool/m4/ruby_check_builtin_func.m410
-rw-r--r--tool/m4/ruby_check_builtin_setjmp.m427
-rw-r--r--tool/m4/ruby_check_printf_prefix.m429
-rw-r--r--tool/m4/ruby_check_setjmp.m417
-rw-r--r--tool/m4/ruby_check_signedness.m45
-rw-r--r--tool/m4/ruby_check_sizeof.m4108
-rw-r--r--tool/m4/ruby_check_sysconf.m413
-rw-r--r--tool/m4/ruby_cppoutfile.m418
-rw-r--r--tool/m4/ruby_decl_attribute.m445
-rw-r--r--tool/m4/ruby_default_arch.m411
-rw-r--r--tool/m4/ruby_define_if.m46
-rw-r--r--tool/m4/ruby_defint.m440
-rw-r--r--tool/m4/ruby_dtrace_available.m420
-rw-r--r--tool/m4/ruby_dtrace_postprocess.m430
-rw-r--r--tool/m4/ruby_func_attribute.m47
-rw-r--r--tool/m4/ruby_mingw32.m424
-rw-r--r--tool/m4/ruby_prepend_option.m45
-rw-r--r--tool/m4/ruby_prog_gnu_ld.m410
-rw-r--r--tool/m4/ruby_replace_funcs.m413
-rw-r--r--tool/m4/ruby_replace_type.m458
-rw-r--r--tool/m4/ruby_rm_recursive.m418
-rw-r--r--tool/m4/ruby_setjmp_type.m452
-rw-r--r--tool/m4/ruby_stack_grow_direction.m430
-rw-r--r--tool/m4/ruby_thread.m433
-rw-r--r--tool/m4/ruby_try_cflags.m412
-rw-r--r--tool/m4/ruby_try_cxxflags.m417
-rw-r--r--tool/m4/ruby_try_ldflags.m415
-rw-r--r--tool/m4/ruby_type_attribute.m48
-rw-r--r--tool/m4/ruby_universal_arch.m4122
-rw-r--r--tool/m4/ruby_werror_flag.m418
-rwxr-xr-xtool/make-snapshot657
-rw-r--r--tool/make_hgraph.rb95
-rwxr-xr-xtool/mdoc2man.rb505
-rwxr-xr-xtool/merger.rb370
-rw-r--r--tool/mjit_archflag.sh40
-rw-r--r--tool/mjit_tabs.rb67
-rw-r--r--tool/mk_builtin_loader.rb370
-rwxr-xr-xtool/mkconfig.rb390
-rwxr-xr-xtool/mkrunnable.rb149
-rwxr-xr-xtool/node_name.rb8
-rw-r--r--tool/parse.rb16
-rw-r--r--tool/prereq.status44
-rw-r--r--tool/probes_to_wiki.rb16
-rwxr-xr-xtool/pure_parser.rb24
-rwxr-xr-xtool/rbinstall.rb1133
-rwxr-xr-xtool/rbuninstall.rb73
-rwxr-xr-xtool/redmine-backporter.rb598
-rwxr-xr-xtool/release.sh19
-rwxr-xr-xtool/releng/gen-mail.rb50
-rwxr-xr-xtool/releng/gen-release-note.rb36
-rwxr-xr-xtool/releng/update-www-meta.rb213
-rwxr-xr-xtool/rmdirs14
-rw-r--r--tool/ruby_vm/controllers/application_controller.rb25
-rw-r--r--tool/ruby_vm/helpers/c_escape.rb128
-rw-r--r--tool/ruby_vm/helpers/dumper.rb113
-rw-r--r--tool/ruby_vm/helpers/scanner.rb53
-rw-r--r--tool/ruby_vm/loaders/insns_def.rb100
-rw-r--r--tool/ruby_vm/loaders/opt_insn_unif_def.rb34
-rw-r--r--tool/ruby_vm/loaders/opt_operand_def.rb56
-rw-r--r--tool/ruby_vm/loaders/vm_opts_h.rb37
-rw-r--r--tool/ruby_vm/models/attribute.rb59
-rwxr-xr-xtool/ruby_vm/models/bare_instructions.rb240
-rw-r--r--tool/ruby_vm/models/c_expr.rb41
-rw-r--r--tool/ruby_vm/models/instructions.rb22
-rw-r--r--tool/ruby_vm/models/instructions_unifications.rb43
-rw-r--r--tool/ruby_vm/models/operands_unifications.rb142
-rw-r--r--tool/ruby_vm/models/trace_instructions.rb71
-rw-r--r--tool/ruby_vm/models/typemap.rb62
-rw-r--r--tool/ruby_vm/scripts/converter.rb29
-rw-r--r--tool/ruby_vm/scripts/insns2vm.rb93
-rw-r--r--tool/ruby_vm/tests/.gitkeep0
-rw-r--r--tool/ruby_vm/views/_attributes.erb35
-rw-r--r--tool/ruby_vm/views/_c_expr.erb17
-rw-r--r--tool/ruby_vm/views/_comptime_insn_stack_increase.erb62
-rw-r--r--tool/ruby_vm/views/_copyright.erb31
-rw-r--r--tool/ruby_vm/views/_insn_entry.erb76
-rw-r--r--tool/ruby_vm/views/_insn_len_info.erb28
-rw-r--r--tool/ruby_vm/views/_insn_name_info.erb44
-rw-r--r--tool/ruby_vm/views/_insn_operand_info.erb53
-rw-r--r--tool/ruby_vm/views/_insn_sp_pc_dependency.erb27
-rw-r--r--tool/ruby_vm/views/_insn_type_chars.erb13
-rw-r--r--tool/ruby_vm/views/_leaf_helpers.erb54
-rw-r--r--tool/ruby_vm/views/_mjit_compile_getinlinecache.erb31
-rw-r--r--tool/ruby_vm/views/_mjit_compile_insn.erb92
-rw-r--r--tool/ruby_vm/views/_mjit_compile_insn_body.erb129
-rw-r--r--tool/ruby_vm/views/_mjit_compile_invokebuiltin.erb29
-rw-r--r--tool/ruby_vm/views/_mjit_compile_ivar.erb101
-rw-r--r--tool/ruby_vm/views/_mjit_compile_pc_and_sp.erb38
-rw-r--r--tool/ruby_vm/views/_mjit_compile_send.erb119
-rw-r--r--tool/ruby_vm/views/_notice.erb22
-rw-r--r--tool/ruby_vm/views/_sp_inc_helpers.erb37
-rw-r--r--tool/ruby_vm/views/_trace_instruction.erb21
-rw-r--r--tool/ruby_vm/views/insns.inc.erb26
-rw-r--r--tool/ruby_vm/views/insns_info.inc.erb22
-rw-r--r--tool/ruby_vm/views/mjit_compile.inc.erb110
-rw-r--r--tool/ruby_vm/views/opt_sc.inc.erb40
-rw-r--r--tool/ruby_vm/views/optinsn.inc.erb71
-rw-r--r--tool/ruby_vm/views/optunifs.inc.erb21
-rw-r--r--tool/ruby_vm/views/vm.inc.erb30
-rw-r--r--tool/ruby_vm/views/vmtc.inc.erb21
-rw-r--r--tool/run-gcov.rb54
-rw-r--r--tool/run-lcov.rb164
-rwxr-xr-xtool/runruby.rb181
-rw-r--r--tool/search-cgvars.rb55
-rwxr-xr-xtool/strip-rdoc.rb14
-rwxr-xr-xtool/sync_default_gems.rb624
-rw-r--r--tool/test-bundled-gems.rb87
-rw-r--r--tool/test-coverage.rb118
-rw-r--r--tool/test/runner.rb23
-rw-r--r--tool/test/test_jisx0208.rb40
-rw-r--r--tool/test/testunit/metametameta.rb70
-rw-r--r--tool/test/testunit/test4test_hideskip.rb10
-rw-r--r--tool/test/testunit/test4test_redefinition.rb14
-rw-r--r--tool/test/testunit/test4test_sorting.rb18
-rw-r--r--tool/test/testunit/test_assertion.rb29
-rw-r--r--tool/test/testunit/test_hideskip.rb21
-rw-r--r--tool/test/testunit/test_minitest_unit.rb1474
-rw-r--r--tool/test/testunit/test_parallel.rb219
-rw-r--r--tool/test/testunit/test_redefinition.rb11
-rw-r--r--tool/test/testunit/test_sorting.rb75
-rw-r--r--tool/test/testunit/tests_for_parallel/ptest_first.rb8
-rw-r--r--tool/test/testunit/tests_for_parallel/ptest_forth.rb30
-rw-r--r--tool/test/testunit/tests_for_parallel/ptest_second.rb12
-rw-r--r--tool/test/testunit/tests_for_parallel/ptest_third.rb11
-rw-r--r--tool/test/testunit/tests_for_parallel/runner.rb14
-rw-r--r--tool/test/testunit/tests_for_parallel/test4test_hungup.rb15
-rw-r--r--tool/test/webrick/.htaccess1
-rw-r--r--tool/test/webrick/test_cgi.rb170
-rw-r--r--tool/test/webrick/test_config.rb17
-rw-r--r--tool/test/webrick/test_cookie.rb141
-rw-r--r--tool/test/webrick/test_do_not_reverse_lookup.rb71
-rw-r--r--tool/test/webrick/test_filehandler.rb403
-rw-r--r--tool/test/webrick/test_htgroup.rb19
-rw-r--r--tool/test/webrick/test_htmlutils.rb21
-rw-r--r--tool/test/webrick/test_httpauth.rb366
-rw-r--r--tool/test/webrick/test_httpproxy.rb467
-rw-r--r--tool/test/webrick/test_httprequest.rb488
-rw-r--r--tool/test/webrick/test_httpresponse.rb282
-rw-r--r--tool/test/webrick/test_https.rb112
-rw-r--r--tool/test/webrick/test_httpserver.rb543
-rw-r--r--tool/test/webrick/test_httpstatus.rb35
-rw-r--r--tool/test/webrick/test_httputils.rb101
-rw-r--r--tool/test/webrick/test_httpversion.rb41
-rw-r--r--tool/test/webrick/test_server.rb191
-rw-r--r--tool/test/webrick/test_ssl_server.rb67
-rw-r--r--tool/test/webrick/test_utils.rb110
-rw-r--r--tool/test/webrick/utils.rb84
-rw-r--r--tool/test/webrick/webrick.cgi38
-rw-r--r--tool/test/webrick/webrick.rhtml4
-rw-r--r--tool/test/webrick/webrick_long_filename.cgi36
-rw-r--r--tool/transcode-tblgen.rb1118
-rw-r--r--tool/transform_mjit_header.rb326
-rwxr-xr-xtool/travis_retry.sh13
-rwxr-xr-xtool/travis_wait.sh18
-rwxr-xr-xtool/update-bundled_gems.rb20
-rwxr-xr-xtool/update-deps650
-rw-r--r--tool/vtlh.rb17
-rwxr-xr-xtool/ytab.sed80
-rw-r--r--top.sed68
-rw-r--r--trace_point.rb370
-rw-r--r--transcode.c4612
-rw-r--r--transcode_data.h138
-rw-r--r--transient_heap.c991
-rw-r--r--transient_heap.h65
-rw-r--r--util.c1185
-rw-r--r--util.h50
-rw-r--r--variable.c3995
-rw-r--r--variable.h21
-rw-r--r--version.c150
-rw-r--r--version.h92
-rw-r--r--vm.c4203
-rw-r--r--vm_args.c924
-rw-r--r--vm_backtrace.c1756
-rw-r--r--vm_callinfo.h487
-rw-r--r--vm_core.h2107
-rw-r--r--vm_debug.h124
-rw-r--r--vm_dump.c1203
-rw-r--r--vm_eval.c2602
-rw-r--r--vm_exec.c197
-rw-r--r--vm_exec.h197
-rw-r--r--vm_insnhelper.c5947
-rw-r--r--vm_insnhelper.h265
-rw-r--r--vm_method.c2866
-rw-r--r--vm_opts.h73
-rw-r--r--vm_sync.c299
-rw-r--r--vm_sync.h137
-rw-r--r--vm_trace.c1752
-rw-r--r--vsnprintf.c1316
-rw-r--r--warning.rb53
-rw-r--r--win32/.document1
-rw-r--r--win32/Makefile273
-rw-r--r--win32/Makefile.sub1416
-rw-r--r--win32/README.win32149
-rw-r--r--win32/config.h53
-rw-r--r--win32/config.status65
-rwxr-xr-xwin32/configure.bat268
-rw-r--r--win32/dir.h50
-rw-r--r--win32/enc-setup.mak10
-rw-r--r--win32/file.c703
-rw-r--r--win32/file.h48
-rwxr-xr-xwin32/ifchange.bat114
-rwxr-xr-xwin32/makedirs.bat3
-rwxr-xr-xwin32/mkexports.rb181
-rwxr-xr-xwin32/ntsetup.bat8
-rwxr-xr-xwin32/resource.rb96
-rwxr-xr-xwin32/rm.bat18
-rwxr-xr-xwin32/rmdirs.bat30
-rwxr-xr-xwin32/rtname.cmd35
-rw-r--r--win32/ruby.def577
-rw-r--r--win32/ruby.manifest8
-rw-r--r--win32/setup.mak254
-rw-r--r--win32/win32.c8834
-rw-r--r--win32/win32.h395
-rw-r--r--win32/winmain.c10
-rw-r--r--x68/_dtos18.c250
-rw-r--r--x68/_round.c45
-rw-r--r--x68/fconvert.c81
-rw-r--r--x68/select.c167
-rw-r--r--yjit.c187
-rw-r--r--yjit.h73
-rw-r--r--yjit.rb279
-rw-r--r--yjit_asm.c1835
-rw-r--r--yjit_asm.h408
-rw-r--r--yjit_codegen.c5059
-rw-r--r--yjit_codegen.h23
-rw-r--r--yjit_core.c1369
-rw-r--r--yjit_core.h307
-rw-r--r--yjit_iface.c1310
-rw-r--r--yjit_iface.h38
-rw-r--r--yjit_utils.c109
10044 files changed, 97366 insertions, 2604616 deletions
diff --git a/.appveyor.yml b/.appveyor.yml
deleted file mode 100644
index 9ebe41e1c8..0000000000
--- a/.appveyor.yml
+++ /dev/null
@@ -1,104 +0,0 @@
----
-version: '{build}'
-init:
- - git config --global user.name git
- - git config --global user.email svn-admin@ruby-lang.org
- - git config --global core.autocrlf false
- - git config --global core.eol lf
- - git config --global advice.detachedHead 0
-shallow_clone: true
-clone_depth: 10
-platform:
- - x64
-skip_commits:
- message: /^\[DOC\]/
- files:
- - doc/*
- - '**/*.md'
- - '**/*.rdoc'
-environment:
- ruby_version: "24-%Platform%"
- zlib_version: "1.2.11"
- matrix:
- - build: vs
- vs: 120
- ssl: OpenSSL
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013
- GEMS_FOR_TEST: ""
- - build: vs
- vs: 140
- ssl: OpenSSL-v111
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
- GEMS_FOR_TEST: ""
- RELINE_TEST_ENCODING: "UTF-8"
-for:
--
- matrix:
- only:
- - build: vs
- install:
- - ver
- - chcp
- - SET BITS=%Platform:x86=32%
- - SET BITS=%BITS:x=%
- - SET OPENSSL_DIR=C:\%ssl%-Win%BITS%
- - CALL SET vcvars=%%^VS%VS%COMNTOOLS^%%..\..\VC\vcvarsall.bat
- - SET vcvars
- - '"%vcvars%" %Platform:x64=amd64%'
- - SET ruby_path=C:\Ruby%ruby_version:-x86=%
- - SET PATH=\usr\local\bin;%ruby_path%\bin;%PATH%;C:\msys64\mingw64\bin;C:\msys64\usr\bin
- - ruby --version
- - 'cl'
- - echo> Makefile srcdir=.
- - echo>> Makefile MSC_VER=0
- - echo>> Makefile RT=none
- - echo>> Makefile RT_VER=0
- - echo>> Makefile BUILTIN_ENCOBJS=nul
- - type win32\Makefile.sub >> Makefile
- - nmake %mflags% up VCSUP="echo Update OK"
- - nmake %mflags% extract-extlibs
- - del Makefile
- - mkdir \usr\local\bin
- - mkdir \usr\local\include
- - mkdir \usr\local\lib
- - SET ZLIB_ZIP=.downloaded-cache\zlib%zlib_version:.=%.zip
- - if not exist %ZLIB_ZIP% curl -fsSL -o %ZLIB_ZIP% --retry 10 https://zlib.net/zlib%zlib_version:.=%.zip
- - 7z x -aos -o%APPVEYOR_BUILD_FOLDER%\ext\zlib %ZLIB_ZIP%
- - for %%I in (%OPENSSL_DIR%\*.dll) do mklink /h \usr\local\bin\%%~nxI %%I
- - attrib +r /s /d
- - mkdir %Platform%-mswin_%vs%
- build_script:
- - cd %APPVEYOR_BUILD_FOLDER%
- - cd %Platform%-mswin_%vs%
- - ..\win32\configure.bat --without-ext=+,dbm,gdbm,readline --with-opt-dir=/usr/local --with-openssl-dir=%OPENSSL_DIR:\=/%
- - nmake -l
- - nmake install-nodoc
- - \usr\bin\ruby -v -e "p :locale => Encoding.find('locale'), :filesystem => Encoding.find('filesystem')"
- - if not "%GEMS_FOR_TEST%" == "" \usr\bin\gem install --no-document %GEMS_FOR_TEST%
- - \usr\bin\ruby -ropenssl -e "puts 'Build ' + OpenSSL::OPENSSL_VERSION, 'Runtime ' + OpenSSL::OPENSSL_LIBRARY_VERSION"
- test_script:
- - set /a JOBS=%NUMBER_OF_PROCESSORS%
- - nmake -l "TESTOPTS=-v -q" btest
- - nmake -l "TESTOPTS=-v -q" test-basic
- - nmake -l "TESTOPTS=-v --timeout-scale=3.0 --excludes=../test/excludes/_appveyor -j%JOBS% --exclude readline --exclude win32ole --exclude test_bignum --exclude test_syntax --exclude test_open-uri --exclude test_bundled_ca" test-all
- # separately execute tests without -j which may crash worker with -j.
- - nmake -l "TESTOPTS=-v --timeout-scale=3.0 --excludes=../test/excludes/_appveyor" test-all TESTS="../test/win32ole ../test/ruby/test_bignum.rb ../test/ruby/test_syntax.rb ../test/open-uri/test_open-uri.rb ../test/rubygems/test_bundled_ca.rb"
- - nmake -l test-spec MSPECOPT=-fs # not using `-j` because sometimes `mspec -j` silently dies on Windows
-notifications:
- - provider: Webhook
- method: POST
- url:
- secure: CcFlJNDJ/a6to7u3Z4Fnz6dScEPNx7hTha2GkSRlV+1U6dqmxY/7uBcLXYb9gR3jfQk6w+2o/HrjNAyXMNGU/JOka3s2WRI4VKitzM+lQ08owvJIh0R7LxrGH0J2e81U # ruby-lang slack: ruby/simpler-alerts-bot
- body: >-
- {{^isPullRequest}}
- {
- "ci": "AppVeyor CI",
- "env": "Visual Studio 2013 / 2015",
- "url": "{{buildUrl}}",
- "commit": "{{commitId}}",
- "branch": "{{branch}}"
- }
- {{/isPullRequest}}
- on_build_success: false
- on_build_failure: true
- on_build_status_changed: false
diff --git a/.cirrus.yml b/.cirrus.yml
deleted file mode 100644
index c8fb326c89..0000000000
--- a/.cirrus.yml
+++ /dev/null
@@ -1,64 +0,0 @@
-# This CI is used to test Arm cases. We can set the maximum 16 tasks.
-# The entire testing design is inspired from .github/workflows/compilers.yml.
-
-# By default, Cirrus mounts an empty volume to `/tmp`
-# which triggers all sorts of warnings like "system temporary path is world-writable: /tmp".
-# Lets workaround it by specifying a custom volume mount point.
-env:
- CIRRUS_VOLUME: /cirrus-ci-volume
- LANG: C.UTF-8
-
-task:
- name: Arm64 Graviton2 / $CC
- skip: "changesIncludeOnly('doc/**', '**.{md,rdoc}')"
- arm_container:
- # We use the arm64 images at http://ghcr.io/ruby/ruby-ci-image .
- image: ghcr.io/ruby/ruby-ci-image:$CC
- # Define the used cpu core in each matrix task. We can use total 16 cpu
- # cores in entire matrix. [cpu] = [total cpu: 16] / [number of tasks]
- cpu: 8
- # We can request maximum 4 GB per cpu.
- # [memory per task] = [memory per cpu: 4 GB] * [cpu]
- memory: 32G
- env:
- CIRRUS_CLONE_DEPTH: 50
- optflags: '-O1'
- debugflags: '-ggdb3'
- RUBY_PREFIX: /tmp/ruby-prefix
- RUBY_DEBUG: ci rgengc
- RUBY_TESTOPTS: >-
- -q
- --color=always
- --tty=no
- matrix:
- CC: clang-12
- CC: gcc-11
- id_script: id
- set_env_script:
- # Set `GNUMAKEFLAGS`, because the flags are GNU make specific. Note using
- # the `make` environment variable used in compilers.yml causes some rubygems
- # tests to fail.
- # https://github.com/rubygems/rubygems/issues/4921
- - echo "GNUMAKEFLAGS=-s -j$((1 + $CIRRUS_CPU))" >> $CIRRUS_ENV
- print_env_script:
- - echo "GNUMAKEFLAGS=$GNUMAKEFLAGS"
- # Arm containers are executed in AWS's EKS, and it's not yet supporting IPv6
- # See https://github.com/aws/containers-roadmap/issues/835
- disable_ipv6_script: sudo ./tool/disable_ipv6.sh
- autogen_script: ./autogen.sh
- configure_script: >-
- ./configure -C
- --enable-debug-env
- --disable-install-doc
- --with-ext=-test-/cxxanyargs,+
- --prefix="$RUBY_PREFIX"
- make_extract-extlibs_script: make extract-extlibs
- make_incs_script: make incs
- make_script: make
- make_leaked-globals_script: make leaked-globals
- make_test_script: make test
- make_install_script: make install
- install_gems_for_test_script: $RUBY_PREFIX/bin/gem install --no-doc timezone tzinfo
- make_test-tool_script: make test-tool
- make_test-all_script: make test-all
- make_test-spec_script: make test-spec
diff --git a/.cvsignore b/.cvsignore
new file mode 100644
index 0000000000..c1bdd084b3
--- /dev/null
+++ b/.cvsignore
@@ -0,0 +1,17 @@
+parse.c
+newver.rb
+ruby
+miniruby
+README.fat-patch
+config.cache
+config.h
+config.log
+config.status
+Makefile
+ppack
+archive
+*.orig
+*.rej
+*.bak
+*.sav
+*~
diff --git a/.dir-locals.el b/.dir-locals.el
deleted file mode 100644
index 8f4b96445c..0000000000
--- a/.dir-locals.el
+++ /dev/null
@@ -1,39 +0,0 @@
-;; Copyright (c) 2018 Urabe, Shyouhei. All rights reserved.
-;;
-;; This file is a part of the programming language Ruby. Permission is hereby
-;; granted, to either redistribute and/or modify this file, provided that the
-;; conditions mentioned in the file COPYING are met. Consult the file for
-;; details.
-
-((nil .
- ((indent-tabs-mode . nil)
- (require-final-newline . t)
- (tab-width . 8)
- (show-trailing-whitespace . t)
- (whitespace-line-column . 80))) ;; See also [Misc #12277]
-
- ;; (bat-mode . ((buffer-file-coding-system . utf-8-dos)))
-
- (ruby-mode . ((ruby-indent-level . 2)))
-
- (rdoc-mode . ((fill-column . 74)))
-
- (yaml-mode . ((yaml-indent-offset . 2)))
-
- (makefile-mode . ((indent-tabs-mode . t)))
-
- (c-mode . ((c-file-style . "ruby")))
-
- (c++-mode . ((c-file-style . "ruby")))
-
- (change-log-mode .
- ((buffer-file-coding-system . us-ascii)
- (indent-tabs-mode . t)
- (change-log-indent-text . 2)
- (add-log-time-format . (lambda (&optional x y)
- (let* ((time (or x (current-time)))
- (system-time-locale "C")
- (diff (+ (cadr time) 32400))
- (lo (% diff 65536))
- (hi (+ (car time) (/ diff 65536))))
- (format-time-string "%a %b %e %H:%M:%S %Y" (list hi lo) t)))))))
diff --git a/.document b/.document
deleted file mode 100644
index 6e08f42698..0000000000
--- a/.document
+++ /dev/null
@@ -1,50 +0,0 @@
-# This file determines which files in the
-# Ruby hierarchy will be processed by the RDoc
-# tool when it is given the top-level directory
-# as an argument
-
-# Process all the C source files
-*.c
-*.y
-
-# prelude
-prelude.rb
-rbconfig.rb
-
-array.rb
-ast.rb
-dir.rb
-gc.rb
-io.rb
-kernel.rb
-marshal.rb
-numeric.rb
-nilclass.rb
-pack.rb
-ractor.rb
-timev.rb
-trace_point.rb
-warning.rb
-
-# the lib/ directory (which has its own .document file)
-lib
-
-# and some of the ext/ directory (which has its own .document file)
-ext
-
-# rdoc files
-NEWS.md
-
-README.md
-README.ja.md
-
-COPYING
-COPYING.ja
-CONTRIBUTING.md
-
-LEGAL
-
-# win32/README.win32 linked from README.md
-win32
-
-doc
diff --git a/.editorconfig b/.editorconfig
deleted file mode 100644
index 4633a7acae..0000000000
--- a/.editorconfig
+++ /dev/null
@@ -1,30 +0,0 @@
-root = true
-
-[*]
-end_of_line = lf
-indent_size = 4
-indent_style = space
-insert_final_newline = true
-tab_width = 8
-trim_trailing_whitespace = true
-
-[*.bat]
-end_of_line = crlf
-
-[*.gemspec]
-indent_size = 2
-
-[*.rb]
-indent_size = 2
-
-[*.yml]
-indent_size = 2
-
-[{*[Mm]akefile*,*.mak,*.mk,depend}]
-indent_style = tab
-
-[enc/*]
-indent_size = 2
-
-[reg*.[ch]]
-indent_size = 2
diff --git a/.gdbinit b/.gdbinit
deleted file mode 100644
index 8979e8b47c..0000000000
--- a/.gdbinit
+++ /dev/null
@@ -1,1350 +0,0 @@
-set startup-with-shell off
-
-define hook-run
- set $color_type = 0
- set $color_highlite = 0
- set $color_end = 0
-end
-
-define ruby_gdb_init
- if !$color_type
- set $color_type = "\033[31m"
- end
- if !$color_highlite
- set $color_highlite = "\033[36m"
- end
- if !$color_end
- set $color_end = "\033[m"
- end
- if ruby_dummy_gdb_enums.special_consts
- end
-end
-
-# set prompt \033[36m(gdb)\033[m\040
-
-define rp
- ruby_gdb_init
- if (VALUE)($arg0) & RUBY_FIXNUM_FLAG
- printf "FIXNUM: %ld\n", (long)($arg0) >> 1
- else
- if ((VALUE)($arg0) & ~(~(VALUE)0<<RUBY_SPECIAL_SHIFT)) == RUBY_SYMBOL_FLAG
- set $id = (($arg0) >> RUBY_SPECIAL_SHIFT)
- printf "%sSYMBOL%s: ", $color_type, $color_end
- rp_id $id
- else
- if ($arg0) == RUBY_Qfalse
- echo false\n
- else
- if ($arg0) == RUBY_Qtrue
- echo true\n
- else
- if ($arg0) == RUBY_Qnil
- echo nil\n
- else
- if ($arg0) == RUBY_Qundef
- echo undef\n
- else
- if (VALUE)($arg0) & RUBY_IMMEDIATE_MASK
- if ((VALUE)($arg0) & RUBY_FLONUM_MASK) == RUBY_FLONUM_FLAG
- printf "%sFLONUM%s: %g\n", $color_type, $color_end, (double)rb_float_value($arg0)
- else
- echo immediate\n
- end
- else
- set $flags = ((struct RBasic*)($arg0))->flags
- if ($flags & RUBY_FL_PROMOTED) == RUBY_FL_PROMOTED
- printf "[PROMOTED] "
- end
- if ($flags & RUBY_T_MASK) == RUBY_T_NONE
- printf "%sT_NONE%s: ", $color_type, $color_end
- print (struct RBasic *)($arg0)
- else
- if ($flags & RUBY_T_MASK) == RUBY_T_NIL
- printf "%sT_NIL%s: ", $color_type, $color_end
- print (struct RBasic *)($arg0)
- else
- if ($flags & RUBY_T_MASK) == RUBY_T_OBJECT
- printf "%sT_OBJECT%s: ", $color_type, $color_end
- print ((struct RObject *)($arg0))->basic
- if ($flags & ROBJECT_EMBED)
- print/x *((VALUE*)((struct RObject*)($arg0))->as.ary) @ (ROBJECT_EMBED_LEN_MAX+0)
- else
- print (((struct RObject *)($arg0))->as.heap)
- if (((struct RObject*)($arg0))->as.heap.numiv) > 0
- print/x *(((struct RObject*)($arg0))->as.heap.ivptr) @ (((struct RObject*)($arg0))->as.heap.numiv)
- end
- end
- else
- if ($flags & RUBY_T_MASK) == RUBY_T_CLASS
- printf "%sT_CLASS%s%s: ", $color_type, ($flags & RUBY_FL_SINGLETON) ? "*" : "", $color_end
- rp_class $arg0
- else
- if ($flags & RUBY_T_MASK) == RUBY_T_ICLASS
- printf "%sT_ICLASS%s: ", $color_type, $color_end
- rp_class $arg0
- else
- if ($flags & RUBY_T_MASK) == RUBY_T_MODULE
- printf "%sT_MODULE%s: ", $color_type, $color_end
- rp_class $arg0
- else
- if ($flags & RUBY_T_MASK) == RUBY_T_FLOAT
- printf "%sT_FLOAT%s: %.16g ", $color_type, $color_end, (((struct RFloat*)($arg0))->float_value)
- print (struct RFloat *)($arg0)
- else
- if ($flags & RUBY_T_MASK) == RUBY_T_STRING
- printf "%sT_STRING%s: ", $color_type, $color_end
- rp_string $arg0 $flags
- else
- if ($flags & RUBY_T_MASK) == RUBY_T_REGEXP
- set $regsrc = ((struct RRegexp*)($arg0))->src
- set $rsflags = ((struct RBasic*)$regsrc)->flags
- printf "%sT_REGEXP%s: ", $color_type, $color_end
- set $len = ($rsflags & RUBY_FL_USER1) ? \
- ((struct RString*)$regsrc)->as.heap.len : \
- (($rsflags & (RUBY_FL_USER2|RUBY_FL_USER3|RUBY_FL_USER4|RUBY_FL_USER5|RUBY_FL_USER6)) >> RUBY_FL_USHIFT+2)
- set print address off
- output *(char *)(($rsflags & RUBY_FL_USER1) ? \
- ((struct RString*)$regsrc)->as.heap.ptr : \
- ((struct RString*)$regsrc)->as.ary) @ $len
- set print address on
- printf " len:%ld ", $len
- if $flags & RUBY_FL_USER6
- printf "(none) "
- end
- if $flags & RUBY_FL_USER5
- printf "(literal) "
- end
- if $flags & RUBY_FL_USER4
- printf "(fixed) "
- end
- printf "encoding:%d ", ($flags & RUBY_ENCODING_MASK) >> RUBY_ENCODING_SHIFT
- print (struct RRegexp *)($arg0)
- else
- if ($flags & RUBY_T_MASK) == RUBY_T_ARRAY
- if ($flags & RUBY_FL_USER1)
- set $len = (($flags & (RUBY_FL_USER3|RUBY_FL_USER4)) >> (RUBY_FL_USHIFT+3))
- printf "%sT_ARRAY%s: len=%ld ", $color_type, $color_end, $len
- printf "(embed) "
- if ($len == 0)
- printf "{(empty)} "
- else
- print/x *((VALUE*)((struct RArray*)($arg0))->as.ary) @ $len
- printf " "
- end
- else
- set $len = ((struct RArray*)($arg0))->as.heap.len
- printf "%sT_ARRAY%s: len=%ld ", $color_type, $color_end, $len
- if ($flags & RUBY_FL_USER2)
- printf "(shared) shared="
- output/x ((struct RArray*)($arg0))->as.heap.aux.shared_root
- printf " "
- else
- printf "(ownership) capa=%ld ", ((struct RArray*)($arg0))->as.heap.aux.capa
- end
- if ($len == 0)
- printf "{(empty)} "
- else
- print/x *((VALUE*)((struct RArray*)($arg0))->as.heap.ptr) @ $len
- printf " "
- end
- end
- print (struct RArray *)($arg0)
- else
- if ($flags & RUBY_T_MASK) == RUBY_T_FIXNUM
- printf "%sT_FIXNUM%s: ", $color_type, $color_end
- print (struct RBasic *)($arg0)
- else
- if ($flags & RUBY_T_MASK) == RUBY_T_HASH
- printf "%sT_HASH%s: ", $color_type, $color_end,
- if (((struct RHash *)($arg0))->basic.flags & RHASH_ST_TABLE_FLAG)
- printf "st len=%ld ", ((struct RHash *)($arg0))->as.st->num_entries
- else
- printf "li len=%ld bound=%ld ", \
- ((((struct RHash *)($arg0))->basic.flags & RHASH_AR_TABLE_SIZE_MASK) >> RHASH_AR_TABLE_SIZE_SHIFT), \
- ((((struct RHash *)($arg0))->basic.flags & RHASH_AR_TABLE_BOUND_MASK) >> RHASH_AR_TABLE_BOUND_SHIFT)
- end
- print (struct RHash *)($arg0)
- else
- if ($flags & RUBY_T_MASK) == RUBY_T_STRUCT
- set $len = (($flags & (RUBY_FL_USER1|RUBY_FL_USER2)) ? \
- ($flags & (RUBY_FL_USER1|RUBY_FL_USER2)) >> (RUBY_FL_USHIFT+1) : \
- ((struct RStruct *)($arg0))->as.heap.len)
- printf "%sT_STRUCT%s: len=%ld ", $color_type, $color_end, $len
- print (struct RStruct *)($arg0)
- output/x *(($flags & (RUBY_FL_USER1|RUBY_FL_USER2)) ? \
- ((struct RStruct *)($arg0))->as.ary : \
- ((struct RStruct *)($arg0))->as.heap.ptr) @ $len
- else
- if ($flags & RUBY_T_MASK) == RUBY_T_BIGNUM
- rp_bignum $arg0
- else
- if ($flags & RUBY_T_MASK) == RUBY_T_RATIONAL
- printf "%sT_RATIONAL%s: ", $color_type, $color_end
- print (struct RRational *)($arg0)
- else
- if ($flags & RUBY_T_MASK) == RUBY_T_COMPLEX
- printf "%sT_COMPLEX%s: ", $color_type, $color_end
- print (struct RComplex *)($arg0)
- else
- if ($flags & RUBY_T_MASK) == RUBY_T_FILE
- printf "%sT_FILE%s: ", $color_type, $color_end
- print (struct RFile *)($arg0)
- output *((struct RFile *)($arg0))->fptr
- printf "\n"
- else
- if ($flags & RUBY_T_MASK) == RUBY_T_TRUE
- printf "%sT_TRUE%s: ", $color_type, $color_end
- print (struct RBasic *)($arg0)
- else
- if ($flags & RUBY_T_MASK) == RUBY_T_FALSE
- printf "%sT_FALSE%s: ", $color_type, $color_end
- print (struct RBasic *)($arg0)
- else
- if ($flags & RUBY_T_MASK) == RUBY_T_DATA
- if ((struct RTypedData *)($arg0))->typed_flag == 1
- printf "%sT_DATA%s(%s): ", $color_type, $color_end, ((struct RTypedData *)($arg0))->type->wrap_struct_name
- print (struct RTypedData *)($arg0)
- else
- printf "%sT_DATA%s: ", $color_type, $color_end
- print (struct RData *)($arg0)
- end
- else
- if ($flags & RUBY_T_MASK) == RUBY_T_MATCH
- printf "%sT_MATCH%s: ", $color_type, $color_end
- print (struct RMatch *)($arg0)
- else
- if ($flags & RUBY_T_MASK) == RUBY_T_SYMBOL
- printf "%sT_SYMBOL%s: ", $color_type, $color_end
- print (struct RSymbol *)($arg0)
- set $id_type = ((struct RSymbol *)($arg0))->id & RUBY_ID_SCOPE_MASK
- if $id_type == RUBY_ID_LOCAL
- printf "l"
- else
- if $id_type == RUBY_ID_INSTANCE
- printf "i"
- else
- if $id_type == RUBY_ID_GLOBAL
- printf "G"
- else
- if $id_type == RUBY_ID_ATTRSET
- printf "a"
- else
- if $id_type == RUBY_ID_CONST
- printf "C"
- else
- if $id_type == RUBY_ID_CLASS
- printf "c"
- else
- printf "j"
- end
- end
- end
- end
- end
- end
- set $id_fstr = ((struct RSymbol *)($arg0))->fstr
- rp_string $id_fstr
- else
- if ($flags & RUBY_T_MASK) == RUBY_T_UNDEF
- printf "%sT_UNDEF%s: ", $color_type, $color_end
- print (struct RBasic *)($arg0)
- else
- if ($flags & RUBY_T_MASK) == RUBY_T_IMEMO
- printf "%sT_IMEMO%s(", $color_type, $color_end
- output (enum imemo_type)(($flags>>RUBY_FL_USHIFT)&RUBY_IMEMO_MASK)
- printf "): "
- rp_imemo $arg0
- else
- if ($flags & RUBY_T_MASK) == RUBY_T_NODE
- printf "%sT_NODE%s(", $color_type, $color_end
- output (enum node_type)(($flags&RUBY_NODE_TYPEMASK)>>RUBY_NODE_TYPESHIFT)
- printf "): "
- print *(NODE *)($arg0)
- else
- if ($flags & RUBY_T_MASK) == RUBY_T_ZOMBIE
- printf "%sT_ZOMBIE%s: ", $color_type, $color_end
- print (struct RData *)($arg0)
- else
- if ($flags & RUBY_T_MASK) == RUBY_T_MOVED
- printf "%sT_MOVED%s: ", $color_type, $color_end
- print *(struct RMoved *)$arg0
- else
- printf "%sunknown%s: ", $color_type, $color_end
- print (struct RBasic *)($arg0)
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
-end
-document rp
- Print a Ruby's VALUE.
-end
-
-define rp_id
- set $id = (ID)$arg0
- if $id == '!' || $id == '+' || $id == '-' || $id == '*' || $id == '/' || $id == '%' || $id == '<' || $id == '>' || $id == '`'
- printf "(:%c)\n", $id
- else
- if $id == idDot2
- printf "(:..)\n"
- else
- if $id == idDot3
- printf "(:...)\n"
- else
- if $id == idUPlus
- printf "(:+@)\n"
- else
- if $id == idUMinus
- printf "(:-@)\n"
- else
- if $id == idPow
- printf "(:**)\n"
- else
- if $id == idCmp
- printf "(:<=>)\n"
- else
- if $id == idLTLT
- printf "(:<<)\n"
- else
- if $id == idGTGT
- printf "(:>>)\n"
- else
- if $id == idLE
- printf "(:<=)\n"
- else
- if $id == idGE
- printf "(:>=)\n"
- else
- if $id == idEq
- printf "(:==)\n"
- else
- if $id == idEqq
- printf "(:===)\n"
- else
- if $id == idNeq
- printf "(:!=)\n"
- else
- if $id == idEqTilde
- printf "(:=~)\n"
- else
- if $id == idNeqTilde
- printf "(:!~)\n"
- else
- if $id == idAREF
- printf "(:[])\n"
- else
- if $id == idASET
- printf "(:[]=)\n"
- else
- if $id == idCOLON2
- printf "(:'::')\n"
- else
- if $id == idANDOP
- printf "(:&&)\n"
- else
- if $id == idOROP
- printf "(:||)\n"
- else
- if $id == idANDDOT
- printf "(:&.)\n"
- else
- if $id <= tLAST_OP_ID
- printf "O"
- else
- set $id_type = $id & RUBY_ID_SCOPE_MASK
- if $id_type == RUBY_ID_LOCAL
- printf "l"
- else
- if $id_type == RUBY_ID_INSTANCE
- printf "i"
- else
- if $id_type == RUBY_ID_GLOBAL
- printf "G"
- else
- if $id_type == RUBY_ID_ATTRSET
- printf "a"
- else
- if $id_type == RUBY_ID_CONST
- printf "C"
- else
- if $id_type == RUBY_ID_CLASS
- printf "c"
- else
- printf "j"
- end
- end
- end
- end
- end
- end
- end
- printf "(%ld): ", $id
- print_id $id
- echo \n
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
-end
-document rp_id
- Print an ID.
-end
-
-define output_string
- set $flags = ((struct RBasic*)($arg0))->flags
- set $len = ($flags & RUBY_FL_USER1) ? \
- ((struct RString*)($arg0))->as.heap.len : \
- (($flags & (RUBY_FL_USER2|RUBY_FL_USER3|RUBY_FL_USER4|RUBY_FL_USER5|RUBY_FL_USER6)) >> RUBY_FL_USHIFT+2)
- if $len > 0
- output *(char *)(($flags & RUBY_FL_USER1) ? \
- ((struct RString*)($arg0))->as.heap.ptr : \
- ((struct RString*)($arg0))->as.ary) @ $len
- else
- output ""
- end
-end
-
-define print_string
- set $flags = ((struct RBasic*)($arg0))->flags
- set $len = ($flags & RUBY_FL_USER1) ? \
- ((struct RString*)($arg0))->as.heap.len : \
- (($flags & (RUBY_FL_USER2|RUBY_FL_USER3|RUBY_FL_USER4|RUBY_FL_USER5|RUBY_FL_USER6)) >> RUBY_FL_USHIFT+2)
- if $len > 0
- printf "%s", *(char *)(($flags & RUBY_FL_USER1) ? \
- ((struct RString*)($arg0))->as.heap.ptr : \
- ((struct RString*)($arg0))->as.ary) @ $len
- end
-end
-
-define rp_string
- output_string $arg0
- printf " bytesize:%ld ", $len
- if !($flags & RUBY_FL_USER1)
- printf "(embed) "
- else
- if ($flags & RUBY_FL_USER2)
- printf "(shared) "
- end
- if ($flags & RUBY_FL_USER3)
- printf "(assoc) "
- end
- end
- printf "encoding:%d ", ($flags & RUBY_ENCODING_MASK) >> RUBY_ENCODING_SHIFT
- if ($flags & RUBY_ENC_CODERANGE_MASK) == 0
- printf "coderange:unknown "
- else
- if ($flags & RUBY_ENC_CODERANGE_MASK) == RUBY_ENC_CODERANGE_7BIT
- printf "coderange:7bit "
- else
- if ($flags & RUBY_ENC_CODERANGE_MASK) == RUBY_ENC_CODERANGE_VALID
- printf "coderange:valid "
- else
- printf "coderange:broken "
- end
- end
- end
- print (struct RString *)($arg0)
-end
-document rp_string
- Print the content of a String.
-end
-
-define rp_bignum
- set $flags = ((struct RBignum*)($arg0))->basic.flags
- set $len = (($flags & RUBY_FL_USER2) ? \
- ($flags & (RUBY_FL_USER5|RUBY_FL_USER4|RUBY_FL_USER3)) >> (RUBY_FL_USHIFT+3) : \
- ((struct RBignum*)($arg0))->as.heap.len)
- printf "%sT_BIGNUM%s: sign=%d len=%ld ", $color_type, $color_end, \
- (($flags & RUBY_FL_USER1) != 0), $len
- if $flags & RUBY_FL_USER2
- printf "(embed) "
- end
- print (struct RBignum *)($arg0)
- set $ptr = (($flags & RUBY_FL_USER2) ? \
- ((struct RBignum*)($arg0))->as.ary : \
- ((struct RBignum*)($arg0))->as.heap.digits)
- set $len = $len-1
- printf "0x%x", $ptr[$len]
- while $len > 0
- set $len = $len-1
- set $val = $ptr[$len]
- set $w = sizeof($ptr[0])
- printf "_"
- if $w > 8
- printf "%.32x", $val
- else
- if $w > 4
- printf "%.16x", $val
- else
- if $w > 2
- printf "%.8x", $val
- else
- if $w > 1
- printf "%.4x", $val
- else
- printf "%.2x", $val
- end
- end
- end
- end
- end
- printf "\n"
-end
-document rp_bignum
- Print the content of a Bignum.
-end
-
-define rp_class
- printf "(struct RClass *) %p", (void*)$arg0
- if ((struct RClass *)($arg0))->ptr.origin_ != $arg0
- printf " -> %p", ((struct RClass *)($arg0))->ptr.origin_
- end
- printf "\n"
- rb_classname $arg0
- print/x *(struct RClass *)($arg0)
- print *((struct RClass *)($arg0))->ptr
-end
-document rp_class
- Print the content of a Class/Module.
-end
-
-define rp_imemo
- set $flags = (enum imemo_type)((((struct RBasic *)($arg0))->flags >> RUBY_FL_USHIFT) & RUBY_IMEMO_MASK)
- if $flags == imemo_cref
- printf "(rb_cref_t *) %p\n", (void*)$arg0
- print *(rb_cref_t *)$arg0
- else
- if $flags == imemo_svar
- printf "(struct vm_svar *) %p\n", (void*)$arg0
- print *(struct vm_svar *)$arg0
- else
- if $flags == imemo_throw_data
- printf "(struct vm_throw_data *) %p\n", (void*)$arg0
- print *(struct vm_throw_data *)$arg0
- else
- if $flags == imemo_ifunc
- printf "(struct vm_ifunc *) %p\n", (void*)$arg0
- print *(struct vm_ifunc *)$arg0
- else
- if $flags == imemo_memo
- printf "(struct MEMO *) %p\n", (void*)$arg0
- print *(struct MEMO *)$arg0
- else
- if $flags == imemo_ment
- printf "(rb_method_entry_t *) %p\n", (void*)$arg0
- print *(rb_method_entry_t *)$arg0
- else
- if $flags == imemo_iseq
- printf "(rb_iseq_t *) %p\n", (void*)$arg0
- print *(rb_iseq_t *)$arg0
- else
- printf "(struct RIMemo *) %p\n", (void*)$arg0
- print *(struct RIMemo *)$arg0
- end
- end
- end
- end
- end
- end
- end
-end
-document rp_imemo
- Print the content of a memo
-end
-
-define nd_type
- print (enum node_type)((((NODE*)($arg0))->flags&RUBY_NODE_TYPEMASK)>>RUBY_NODE_TYPESHIFT)
-end
-document nd_type
- Print a Ruby' node type.
-end
-
-define nd_file
- print ((NODE*)($arg0))->nd_file
-end
-document nd_file
- Print the source file name of a node.
-end
-
-define nd_line
- print ((unsigned int)((((NODE*)($arg0))->flags>>RUBY_NODE_LSHIFT)&RUBY_NODE_LMASK))
-end
-document nd_line
- Print the source line number of a node.
-end
-
-# Print members of ruby node.
-
-define nd_head
- printf "%su1.node%s: ", $color_highlite, $color_end
- rp ($arg0).u1.node
-end
-
-define nd_alen
- printf "%su2.argc%s: ", $color_highlite, $color_end
- p ($arg0).u2.argc
-end
-
-define nd_next
- printf "%su3.node%s: ", $color_highlite, $color_end
- rp ($arg0).u3.node
-end
-
-
-define nd_cond
- printf "%su1.node%s: ", $color_highlite, $color_end
- rp ($arg0).u1.node
-end
-
-define nd_body
- printf "%su2.node%s: ", $color_highlite, $color_end
- rp ($arg0).u2.node
-end
-
-define nd_else
- printf "%su3.node%s: ", $color_highlite, $color_end
- rp ($arg0).u3.node
-end
-
-
-define nd_orig
- printf "%su3.value%s: ", $color_highlite, $color_end
- rp ($arg0).u3.value
-end
-
-
-define nd_resq
- printf "%su2.node%s: ", $color_highlite, $color_end
- rp ($arg0).u2.node
-end
-
-define nd_ensr
- printf "%su3.node%s: ", $color_highlite, $color_end
- rp ($arg0).u3.node
-end
-
-
-define nd_1st
- printf "%su1.node%s: ", $color_highlite, $color_end
- rp ($arg0).u1.node
-end
-
-define nd_2nd
- printf "%su2.node%s: ", $color_highlite, $color_end
- rp ($arg0).u2.node
-end
-
-
-define nd_stts
- printf "%su1.node%s: ", $color_highlite, $color_end
- rp ($arg0).u1.node
-end
-
-
-define nd_entry
- printf "%su3.entry%s: ", $color_highlite, $color_end
- p ($arg0).u3.entry
-end
-
-define nd_vid
- printf "%su1.id%s: ", $color_highlite, $color_end
- p ($arg0).u1.id
-end
-
-define nd_cflag
- printf "%su2.id%s: ", $color_highlite, $color_end
- p ($arg0).u2.id
-end
-
-define nd_cval
- printf "%su3.value%s: ", $color_highlite, $color_end
- rp ($arg0).u3.value
-end
-
-define nd_tbl
- printf "%su1.tbl%s: ", $color_highlite, $color_end
- p ($arg0).u1.tbl
-end
-
-
-define nd_var
- printf "%su1.node%s: ", $color_highlite, $color_end
- rp ($arg0).u1.node
-end
-
-define nd_ibdy
- printf "%su2.node%s: ", $color_highlite, $color_end
- rp ($arg0).u2.node
-end
-
-define nd_iter
- printf "%su3.node%s: ", $color_highlite, $color_end
- rp ($arg0).u3.node
-end
-
-
-define nd_value
- printf "%su2.node%s: ", $color_highlite, $color_end
- rp ($arg0).u2.node
-end
-
-define nd_aid
- printf "%su3.id%s: ", $color_highlite, $color_end
- p ($arg0).u3.id
-end
-
-
-define nd_lit
- printf "%su1.value%s: ", $color_highlite, $color_end
- rp ($arg0).u1.value
-end
-
-define nd_rest
- printf "%su2.argc%s: ", $color_highlite, $color_end
- p ($arg0).u2.argc
-end
-
-define nd_opt
- printf "%su1.node%s: ", $color_highlite, $color_end
- rp ($arg0).u1.node
-end
-
-
-define nd_recv
- printf "%su1.node%s: ", $color_highlite, $color_end
- rp ($arg0).u1.node
-end
-
-define nd_mid
- printf "%su2.id%s: ", $color_highlite, $color_end
- p ($arg0).u2.id
-end
-
-define nd_args
- printf "%su3.node%s: ", $color_highlite, $color_end
- rp ($arg0).u3.node
-end
-
-define nd_defn
- printf "%su3.node%s: ", $color_highlite, $color_end
- rp ($arg0).u3.node
-end
-
-
-define nd_old
- printf "%su1.id%s: ", $color_highlite, $color_end
- p ($arg0).u1.id
-end
-
-define nd_new
- printf "%su2.id%s: ", $color_highlite, $color_end
- p ($arg0).u2.id
-end
-
-
-define nd_cname
- printf "%su1.id%s: ", $color_highlite, $color_end
- p ($arg0).u1.id
-end
-
-define nd_super
- printf "%su3.node%s: ", $color_highlite, $color_end
- rp ($arg0).u3.node
-end
-
-
-define nd_modl
- printf "%su1.id%s: ", $color_highlite, $color_end
- p ($arg0).u1.id
-end
-
-define nd_clss
- printf "%su1.value%s: ", $color_highlite, $color_end
- rp ($arg0).u1.value
-end
-
-
-define nd_beg
- printf "%su1.node%s: ", $color_highlite, $color_end
- rp ($arg0).u1.node
-end
-
-define nd_end
- printf "%su2.node%s: ", $color_highlite, $color_end
- rp ($arg0).u2.node
-end
-
-define nd_state
- printf "%su3.state%s: ", $color_highlite, $color_end
- p ($arg0).u3.state
-end
-
-define nd_rval
- printf "%su2.value%s: ", $color_highlite, $color_end
- rp ($arg0).u2.value
-end
-
-
-define nd_nth
- printf "%su2.argc%s: ", $color_highlite, $color_end
- p ($arg0).u2.argc
-end
-
-
-define nd_tag
- printf "%su1.id%s: ", $color_highlite, $color_end
- p ($arg0).u1.id
-end
-
-define nd_tval
- printf "%su2.value%s: ", $color_highlite, $color_end
- rp ($arg0).u2.value
-end
-
-define nd_tree
- set $buf = (struct RString *)rb_str_buf_new(0)
- call dump_node((VALUE)($buf), rb_str_tmp_new(0), 0, ($arg0))
- printf "%s\n", $buf->as.heap.ptr
-end
-
-define rb_p
- call rb_p($arg0)
-end
-
-define rb_numtable_entry
- set $rb_numtable_tbl = $arg0
- set $rb_numtable_id = (st_data_t)$arg1
- set $rb_numtable_key = 0
- set $rb_numtable_rec = 0
- if $rb_numtable_tbl->entries_packed
- set $rb_numtable_p = $rb_numtable_tbl->as.packed.bins
- while $rb_numtable_p && $rb_numtable_p < $rb_numtable_tbl->as.packed.bins+$rb_numtable_tbl->num_entries
- if $rb_numtable_p.k == $rb_numtable_id
- set $rb_numtable_key = $rb_numtable_p.k
- set $rb_numtable_rec = $rb_numtable_p.v
- set $rb_numtable_p = 0
- else
- set $rb_numtable_p = $rb_numtable_p + 1
- end
- end
- else
- set $rb_numtable_p = $rb_numtable_tbl->as.big.bins[st_numhash($rb_numtable_id) % $rb_numtable_tbl->num_bins]
- while $rb_numtable_p
- if $rb_numtable_p->key == $rb_numtable_id
- set $rb_numtable_key = $rb_numtable_p->key
- set $rb_numtable_rec = $rb_numtable_p->record
- set $rb_numtable_p = 0
- else
- set $rb_numtable_p = $rb_numtable_p->next
- end
- end
- end
-end
-
-define rb_id2name
- ruby_gdb_init
- printf "%sID%s: ", $color_type, $color_end
- rp_id $arg0
-end
-document rb_id2name
- Print the name of id
-end
-
-define rb_method_entry
- set $rb_method_entry_klass = (struct RClass *)$arg0
- set $rb_method_entry_id = (ID)$arg1
- set $rb_method_entry_me = (rb_method_entry_t *)0
- while !$rb_method_entry_me && $rb_method_entry_klass
- rb_numtable_entry $rb_method_entry_klass->m_tbl_wrapper->tbl $rb_method_entry_id
- set $rb_method_entry_me = (rb_method_entry_t *)$rb_numtable_rec
- if !$rb_method_entry_me
- set $rb_method_entry_klass = (struct RClass *)RCLASS_SUPER($rb_method_entry_klass)
- end
- end
- if $rb_method_entry_me
- print *$rb_method_entry_klass
- print *$rb_method_entry_me
- else
- echo method not found\n
- end
-end
-document rb_method_entry
- Search method entry by class and id
-end
-
-define rb_classname
- # up to 128bit int
- set $rb_classname = rb_mod_name($arg0)
- if $rb_classname != RUBY_Qnil
- rp $rb_classname
- else
- echo anonymous class/module\n
- end
-end
-
-define rb_ancestors
- set $rb_ancestors_module = $arg0
- while $rb_ancestors_module
- rp_class $rb_ancestors_module
- set $rb_ancestors_module = RCLASS_SUPER($rb_ancestors_module)
- end
-end
-document rb_ancestors
- Print ancestors.
-end
-
-define rb_backtrace
- call rb_backtrace()
-end
-
-define iseq
- if ruby_dummy_gdb_enums.special_consts
- end
- if ($arg0)->type == ISEQ_ELEMENT_NONE
- echo [none]\n
- end
- if ($arg0)->type == ISEQ_ELEMENT_LABEL
- print *(LABEL*)($arg0)
- end
- if ($arg0)->type == ISEQ_ELEMENT_INSN
- print *(INSN*)($arg0)
- if ((INSN*)($arg0))->insn_id != YARVINSN_jump
- set $i = 0
- set $operand_size = ((INSN*)($arg0))->operand_size
- set $operands = ((INSN*)($arg0))->operands
- while $i < $operand_size
- rp $operands[$i++]
- end
- end
- end
- if ($arg0)->type == ISEQ_ELEMENT_ADJUST
- print *(ADJUST*)($arg0)
- end
-end
-
-define rb_ps
- rb_ps_vm ruby_current_vm_ptr
-end
-document rb_ps
-Dump all threads and their callstacks
-end
-
-define rb_ps_vm
- print $ps_vm = (rb_vm_t*)$arg0
- set $ps_thread_ln = $ps_vm->living_threads.n.next
- set $ps_thread_ln_last = $ps_vm->living_threads.n.prev
- while 1
- set $ps_thread_th = (rb_thread_t *)$ps_thread_ln
- set $ps_thread = (VALUE)($ps_thread_th->self)
- rb_ps_thread $ps_thread
- if $ps_thread_ln == $ps_thread_ln_last
- loop_break
- end
- set $ps_thread_ln = $ps_thread_ln->next
- end
-end
-document rb_ps_vm
-Dump all threads in a (rb_vm_t*) and their callstacks
-end
-
-define print_lineno
- set $cfp = $arg0
- set $iseq = $cfp->iseq
- set $pos = $cfp->pc - $iseq->body->iseq_encoded
- if $pos != 0
- set $pos = $pos - 1
- end
-
- set $index = 0
- set $size = $iseq->body->insns_info.size
- set $table = $iseq->body->insns_info.body
- set $positions = $iseq->body->insns_info.positions
- #printf "size: %d\n", $size
- if $size == 0
- else
- if $size == 1
- printf "%d", $table[0].line_no
- else
- if $positions
- # get_insn_info_linear_search
- set $index = 1
- while $index < $size
- #printf "table[%d]: position: %d, line: %d, pos: %d\n", $i, $positions[$i], $table[$i].line_no, $pos
- if $positions[$index] > $pos
- loop_break
- end
- set $index = $index + 1
- if $positions[$index] == $pos
- loop_break
- end
- end
- else
- # get_insn_info_succinct_bitvector
- set $sd = $iseq->body->insns_info.succ_index_table
- set $immediate_table_size = sizeof($sd->imm_part) / sizeof(uint64_t) * 9
- if $pos < $immediate_table_size
- set $i = $pos / 9
- set $j = $pos % 9
- set $index = ((int)($sd->imm_part[$i] >> ($j * 7))) & 0x7f
- else
- set $block_index = ($pos - $immediate_table_size) / 512
- set $block = &$sd->succ_part[$block_index]
- set $block_bit_index = ($pos - $immediate_table_size) % 512
- set $small_block_index = $block_bit_index / 64
- set $small_block_popcount = $small_block_index == 0 ? 0 : (((int)($block->small_block_ranks >> (($small_block_index - 1) * 9))) & 0x1ff)
- set $x = $block->bits[$small_block_index] << (63 - $block_bit_index % 64)
- set $x = ($x & 0x5555555555555555) + ($x >> 1 & 0x5555555555555555)
- set $x = ($x & 0x3333333333333333) + ($x >> 2 & 0x3333333333333333)
- set $x = ($x & 0x0707070707070707) + ($x >> 4 & 0x0707070707070707)
- set $x = ($x & 0x001f001f001f001f) + ($x >> 8 & 0x001f001f001f001f)
- set $x = ($x & 0x0000003f0000003f) + ($x >>16 & 0x0000003f0000003f)
- set $popcnt = ($x & 0x7f) + ($x >>32 & 0x7f)
- set $index = $block->rank + $small_block_popcount + $popcnt
- end
- end
- printf "%d", $table[$index-1].line_no
- end
- end
-end
-
-define check_method_entry
- set $imemo = (struct RBasic *)$arg0
- if $imemo != RUBY_Qfalse
- set $type = ($imemo->flags >> 12) & 0x07
- if $type == imemo_ment
- set $me = (rb_callable_method_entry_t *)$imemo
- else
- if $type == imemo_svar
- set $imemo = ((struct vm_svar *)$imemo)->cref_or_me
- check_method_entry $imemo
- end
- end
- end
-end
-
-define print_id
- set $id = $arg0
- # rb_id_to_serial
- if $id > tLAST_OP_ID
- set $serial = (rb_id_serial_t)($id >> RUBY_ID_SCOPE_SHIFT)
- else
- set $serial = (rb_id_serial_t)$id
- end
- if $serial && $serial <= ruby_global_symbols.last_id
- set $idx = $serial / ID_ENTRY_UNIT
- set $ids = (struct RArray *)ruby_global_symbols.ids
- set $flags = $ids->basic.flags
- if ($flags & RUBY_FL_USER1)
- set $idsptr = $ids->as.ary
- set $idslen = (($flags & (RUBY_FL_USER3|RUBY_FL_USER4)) >> (RUBY_FL_USHIFT+3))
- else
- set $idsptr = $ids->as.heap.ptr
- set $idslen = $ids->as.heap.len
- end
- if $idx < $idslen
- set $t = 0
- set $ary = (struct RArray *)$idsptr[$idx]
- if $ary != RUBY_Qnil
- set $flags = $ary->basic.flags
- if ($flags & RUBY_FL_USER1)
- set $aryptr = $ary->as.ary
- set $arylen = (($flags & (RUBY_FL_USER3|RUBY_FL_USER4)) >> (RUBY_FL_USHIFT+3))
- else
- set $aryptr = $ary->as.heap.ptr
- set $arylen = $ary->as.heap.len
- end
- set $result = $aryptr[($serial % ID_ENTRY_UNIT) * ID_ENTRY_SIZE + $t]
- if $result != RUBY_Qnil
- print_string $result
- else
- echo undef
- end
- end
- end
- end
-end
-
-define print_pathobj
- set $flags = ((struct RBasic*)($arg0))->flags
- if ($flags & RUBY_T_MASK) == RUBY_T_STRING
- print_string $arg0
- end
- if ($flags & RUBY_T_MASK) == RUBY_T_ARRAY
- if $flags & RUBY_FL_USER1
- set $str = ((struct RArray*)($arg0))->as.ary[0]
- else
- set $str = ((struct RArray*)($arg0))->as.heap.ptr[0]
- end
- print_string $str
- end
-end
-
-define rb_ps_thread
- set $ps_thread = (struct RTypedData*)$arg0
- set $ps_thread_th = (rb_thread_t*)$ps_thread->data
- printf "* #<Thread:%p rb_thread_t:%p native_thread:%p>\n", \
- $ps_thread, $ps_thread_th, $ps_thread_th->thread_id
- set $cfp = $ps_thread_th->ec->cfp
- set $cfpend = (rb_control_frame_t *)($ps_thread_th->ec->vm_stack + $ps_thread_th->ec->vm_stack_size)-1
- while $cfp < $cfpend
- if $cfp->iseq
- if !((VALUE)$cfp->iseq & RUBY_IMMEDIATE_MASK) && (((imemo_ifunc << RUBY_FL_USHIFT) | RUBY_T_IMEMO)==$cfp->iseq->flags & ((RUBY_IMEMO_MASK << RUBY_FL_USHIFT) | RUBY_T_MASK))
- printf "%d:ifunc ", $cfpend-$cfp
- set print symbol-filename on
- output/a $cfp->iseq.body
- set print symbol-filename off
- printf "\n"
- else
- if $cfp->pc
- set $location = $cfp->iseq->body->location
- printf "%d:", $cfpend-$cfp
- print_pathobj $location.pathobj
- printf ":"
- print_lineno $cfp
- printf ":in `"
- print_string $location.label
- printf "'\n"
- else
- printf "%d: ???.rb:???:in `???'\n", $cfpend-$cfp
- end
- end
- else
- # if VM_FRAME_TYPE($cfp->flag) == VM_FRAME_MAGIC_CFUNC
- set $ep = $cfp->ep
- if ($ep[0] & 0xffff0001) == 0x55550001
- #define VM_ENV_FLAG_LOCAL 0x02
- #define VM_ENV_PREV_EP(ep) GC_GUARDED_PTR_REF(ep[VM_ENV_DATA_INDEX_SPECVAL])
- set $me = 0
- set $env_specval = $ep[-1]
- set $env_me_cref = $ep[-2]
- while ($env_specval & 0x02) != 0
- check_method_entry $env_me_cref
- if $me != 0
- loop_break
- end
- set $ep = $ep[0]
- set $env_specval = $ep[-1]
- set $env_me_cref = $ep[-2]
- end
- if $me == 0
- check_method_entry $env_me_cref
- end
- printf "%d:", $cfpend-$cfp
- set print symbol-filename on
- output/a $me->def->body.cfunc.func
- set print symbol-filename off
- set $mid = $me->def->original_id
- printf ":in `"
- print_id $mid
- printf "'\n"
- else
- printf "%d:unknown_frame:???:in `???'\n", $cfpend-$cfp
- end
- end
- set $cfp = $cfp + 1
- end
-end
-
-define rb_count_objects
- set $objspace = ruby_current_vm_ptr->objspace
- set $counts_00 = 0
- set $counts_01 = 0
- set $counts_02 = 0
- set $counts_03 = 0
- set $counts_04 = 0
- set $counts_05 = 0
- set $counts_06 = 0
- set $counts_07 = 0
- set $counts_08 = 0
- set $counts_09 = 0
- set $counts_0a = 0
- set $counts_0b = 0
- set $counts_0c = 0
- set $counts_0d = 0
- set $counts_0e = 0
- set $counts_0f = 0
- set $counts_10 = 0
- set $counts_11 = 0
- set $counts_12 = 0
- set $counts_13 = 0
- set $counts_14 = 0
- set $counts_15 = 0
- set $counts_16 = 0
- set $counts_17 = 0
- set $counts_18 = 0
- set $counts_19 = 0
- set $counts_1a = 0
- set $counts_1b = 0
- set $counts_1c = 0
- set $counts_1d = 0
- set $counts_1e = 0
- set $counts_1f = 0
- set $total = 0
- set $i = 0
- while $i < $objspace->heap_pages.allocated_pages
- printf "\rcounting... %d/%d", $i, $objspace->heap_pages.allocated_pages
- set $page = $objspace->heap_pages.sorted[$i]
- set $p = $page->start
- set $pend = $p + $page->total_slots
- while $p < $pend
- set $flags = $p->as.basic.flags & 0x1f
- eval "set $counts_%02x = $counts_%02x + 1", $flags, $flags
- set $p = $p + 1
- end
- set $total = $total + $page->total_slots
- set $i = $i + 1
- end
- printf "\rTOTAL: %d, FREE: %d\n", $total, $counts_00
- printf "T_OBJECT: %d\n", $counts_01
- printf "T_CLASS: %d\n", $counts_02
- printf "T_MODULE: %d\n", $counts_03
- printf "T_FLOAT: %d\n", $counts_04
- printf "T_STRING: %d\n", $counts_05
- printf "T_REGEXP: %d\n", $counts_06
- printf "T_ARRAY: %d\n", $counts_07
- printf "T_HASH: %d\n", $counts_08
- printf "T_STRUCT: %d\n", $counts_09
- printf "T_BIGNUM: %d\n", $counts_0a
- printf "T_FILE: %d\n", $counts_0b
- printf "T_DATA: %d\n", $counts_0c
- printf "T_MATCH: %d\n", $counts_0d
- printf "T_COMPLEX: %d\n", $counts_0e
- printf "T_RATIONAL: %d\n", $counts_0f
- #printf "UNKNOWN_10: %d\n", $counts_10
- printf "T_NIL: %d\n", $counts_11
- printf "T_TRUE: %d\n", $counts_12
- printf "T_FALSE: %d\n", $counts_13
- printf "T_SYMBOL: %d\n", $counts_14
- printf "T_FIXNUM: %d\n", $counts_15
- printf "T_UNDEF: %d\n", $counts_16
- #printf "UNKNOWN_17: %d\n", $counts_17
- #printf "UNKNOWN_18: %d\n", $counts_18
- #printf "UNKNOWN_19: %d\n", $counts_19
- printf "T_IMEMO: %d\n", $counts_1a
- printf "T_NODE: %d\n", $counts_1b
- printf "T_ICLASS: %d\n", $counts_1c
- printf "T_ZOMBIE: %d\n", $counts_1d
- #printf "UNKNOWN_1E: %d\n", $counts_1e
- printf "T_MASK: %d\n", $counts_1f
-end
-document rb_count_objects
- Counts all objects grouped by type.
-end
-
-# Details: https://bugs.ruby-lang.org/projects/ruby-master/wiki/MachineInstructionsTraceWithGDB
-define trace_machine_instructions
- set logging on
- set height 0
- set width 0
- display/i $pc
- while !$exit_code
- info line *$pc
- si
- end
-end
-
-define SDR
- call rb_vmdebug_stack_dump_raw_current()
-end
-
-define rbi
- if ((LINK_ELEMENT*)$arg0)->type == ISEQ_ELEMENT_LABEL
- p *(LABEL*)$arg0
- else
- if ((LINK_ELEMENT*)$arg0)->type == ISEQ_ELEMENT_INSN
- p *(INSN*)$arg0
- else
- if ((LINK_ELEMENT*)$arg0)->type == ISEQ_ELEMENT_ADJUST
- p *(ADJUST*)$arg0
- else
- print *$arg0
- end
- end
- end
-end
-
-define dump_node
- set $str = rb_parser_dump_tree($arg0, 0)
- set $flags = ((struct RBasic*)($str))->flags
- printf "%s", (char *)(($flags & RUBY_FL_USER1) ? \
- ((struct RString*)$str)->as.heap.ptr : \
- ((struct RString*)$str)->as.ary)
-end
-
-define print_flags
- printf "RUBY_FL_WB_PROTECTED: %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_WB_PROTECTED ? "1" : "0"
- printf "RUBY_FL_PROMOTED0 : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_PROMOTED0 ? "1" : "0"
- printf "RUBY_FL_PROMOTED1 : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_PROMOTED1 ? "1" : "0"
- printf "RUBY_FL_FINALIZE : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_FINALIZE ? "1" : "0"
- printf "RUBY_FL_SHAREABLE : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_SHAREABLE ? "1" : "0"
- printf "RUBY_FL_EXIVAR : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_EXIVAR ? "1" : "0"
- printf "RUBY_FL_FREEZE : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_FREEZE ? "1" : "0"
-
- printf "RUBY_FL_USER0 : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_USER0 ? "1" : "0"
- printf "RUBY_FL_USER1 : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_USER1 ? "1" : "0"
- printf "RUBY_FL_USER2 : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_USER2 ? "1" : "0"
- printf "RUBY_FL_USER3 : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_USER3 ? "1" : "0"
- printf "RUBY_FL_USER4 : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_USER4 ? "1" : "0"
- printf "RUBY_FL_USER5 : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_USER5 ? "1" : "0"
- printf "RUBY_FL_USER6 : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_USER6 ? "1" : "0"
- printf "RUBY_FL_USER7 : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_USER7 ? "1" : "0"
- printf "RUBY_FL_USER8 : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_USER8 ? "1" : "0"
- printf "RUBY_FL_USER9 : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_USER9 ? "1" : "0"
- printf "RUBY_FL_USER10 : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_USER10 ? "1" : "0"
- printf "RUBY_FL_USER11 : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_USER11 ? "1" : "0"
- printf "RUBY_FL_USER12 : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_USER12 ? "1" : "0"
- printf "RUBY_FL_USER13 : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_USER13 ? "1" : "0"
- printf "RUBY_FL_USER14 : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_USER14 ? "1" : "0"
- printf "RUBY_FL_USER15 : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_USER15 ? "1" : "0"
- printf "RUBY_FL_USER16 : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_USER16 ? "1" : "0"
- printf "RUBY_FL_USER17 : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_USER17 ? "1" : "0"
- printf "RUBY_FL_USER18 : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_USER18 ? "1" : "0"
-end
diff --git a/.gitattributes b/.gitattributes
deleted file mode 100644
index d0c2d266b4..0000000000
--- a/.gitattributes
+++ /dev/null
@@ -1,8 +0,0 @@
-*.gemspec diff=ruby
-*.rb diff=ruby
-bin svn-properties=svn:ignore=ruby
-bin/* diff=ruby
-tool/update-deps diff=ruby
-tool/make-snapshot diff=ruby
-tool/format-release diff=ruby
-tool/leaked-globals diff=ruby
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
deleted file mode 100644
index 15abc79af6..0000000000
--- a/.github/CODEOWNERS
+++ /dev/null
@@ -1,10 +0,0 @@
-# Lines starting with '#' are comments.
-# Each line is a file pattern followed by one or more owners.
-# Code owners will be automatically tagged as reviewers when a pull request is opened
-
-# YJIT sources and tests
-yjit* @maximecb @xrxr @tenderlove
-doc/yjit/* @maximecb @xrxr @tenderlove
-bootstraptest/test_yjit* @maximecb @xrxr @tenderlove
-test/ruby/test_yjit* @maximecb @xrxr @tenderlove
-.github/workflows/yjit* @maximecb @xrxr @tenderlove
diff --git a/.github/SECURITY.md b/.github/SECURITY.md
deleted file mode 100644
index 56baa29942..0000000000
--- a/.github/SECURITY.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# Security Policy
-
-## Supported Versions
-
-See <https://www.ruby-lang.org/en/downloads/branches/>.
-
-## Reporting a Vulnerability
-
-See <https://www.ruby-lang.org/en/security/>.
diff --git a/.github/codeql/codeql-config.yml b/.github/codeql/codeql-config.yml
deleted file mode 100644
index 91f82b842b..0000000000
--- a/.github/codeql/codeql-config.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-name: "CodeQL config for the Ruby language"
-
-languages: cpp
diff --git a/.github/workflows/baseruby.yml b/.github/workflows/baseruby.yml
deleted file mode 100644
index cf86c2d7d7..0000000000
--- a/.github/workflows/baseruby.yml
+++ /dev/null
@@ -1,65 +0,0 @@
-name: BASERUBY Check
-
-on:
- push:
- paths-ignore:
- - 'doc/**'
- - '**.md'
- - '**.rdoc'
- pull_request:
- paths-ignore:
- - 'doc/**'
- - '**.md'
- - '**.rdoc'
-
-concurrency:
- group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
- cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}
-
-jobs:
- baseruby:
- name: BASERUBY
- runs-on: ubuntu-20.04
- if: ${{ !startsWith(github.event.head_commit.message, '[DOC]') && !contains(github.event.pull_request.labels.*.name, 'Documentation') }}
- strategy:
- matrix:
- ruby:
- - ruby-2.2
-# - ruby-2.3
-# - ruby-2.4
-# - ruby-2.5
-# - ruby-2.6
- - ruby-2.7
- - ruby-3.0
-
- steps:
- - uses: actions/checkout@v2
- - uses: actions/cache@v2
- with:
- path: .downloaded-cache
- key: downloaded-cache
- - uses: ruby/setup-ruby@v1
- with:
- ruby-version: ${{ matrix.ruby }}
- bundler: none
- - run: echo "GNUMAKEFLAGS=-j$((1 + $(nproc --all)))" >> $GITHUB_ENV
- - run: sudo apt-get install build-essential autoconf bison
- - run: ./autogen.sh
- - run: ./configure --disable-install-doc
- - run: make common-srcs
- - run: make incs
- - run: make all
- - run: make test
- - uses: k0kubun/action-slack@v2.0.0
- with:
- payload: |
- {
- "ci": "GitHub Actions",
- "env": "${{ github.workflow }} / BASERUBY @ ${{ matrix.ruby }}",
- "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
- "commit": "${{ github.sha }}",
- "branch": "${{ github.ref }}".split('/').reverse()[0]
- }
- env:
- SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
- if: ${{ failure() && github.event_name == 'push' }}
diff --git a/.github/workflows/bundled_gems.yml b/.github/workflows/bundled_gems.yml
deleted file mode 100644
index 12fb2b06e5..0000000000
--- a/.github/workflows/bundled_gems.yml
+++ /dev/null
@@ -1,131 +0,0 @@
-name: bundled_gems
-
-on:
- push:
- paths:
- - '.github/workflows/bundled_gems.yml'
- - 'gems/bundled_gems'
- pull_request:
- paths:
- - '.github/workflows/bundled_gems.yml'
- - 'gems/bundled_gems'
- schedule:
- - cron: '45 6 * * *'
-
-jobs:
- update:
- if: ${{ github.event_name != 'schedule' || github.repository == 'ruby/ruby' }}
- name: update ${{ github.workflow }}
- runs-on: ubuntu-latest
- steps:
- - name: git config
- run: |
- git config --global advice.detachedHead 0
- git config --global init.defaultBranch garbage
-
- - name: Set ENV
- run: |
- echo "GNUMAKEFLAGS=-j$((1 + $(nproc --all)))" >> $GITHUB_ENV
- echo "TODAY=$(date +%F)" >> $GITHUB_ENV
-
- - uses: actions/checkout@v2
-
- - uses: actions/cache@v2
- with:
- path: .downloaded-cache
- key: downloaded-cache-${{ github.sha }}
- restore-keys: |
- downloaded-cache
-
- - name: Download previous gems list
- run: |
- data=bundled_gems.json
- mkdir -p .downloaded-cache
- ln -s .downloaded-cache/$data .
- curl -O -R -z ./$data https://stdgems.org/$data
-
- - name: Update bundled gems list
- run: |
- ruby -i~ tool/update-bundled_gems.rb gems/bundled_gems
-
- - name: Maintain updated gems list in NEWS
- run: |
- require 'json'
- news = File.read("NEWS.md")
- prev = news[/since the \*+(\d+\.\d+\.\d+)\*+/, 1]
- prevs = [prev, prev.sub(/\.\d+\z/, '')]
- %W[bundled].each do |type|
- last = JSON.parse(File.read("#{type}_gems.json"))['gems'].filter_map do |g|
- v = g['versions'].values_at(*prevs).compact.first
- g = g['gem']
- g = 'RubyGems' if g == 'rubygems'
- [g, v] if v
- end.to_h
- changed = File.foreach("gems/#{type}_gems").filter_map do |l|
- next if l.start_with?("#")
- g, v = l.split(" ", 3)
- [g, v] unless last[g] == v
- end
- changed, added = changed.partition {|g, _| last[g]}
- news.sub!(/^\*\s+The following #{type} gems? are updated\.(\n\s+\*\s+)\K.*(?:\1.*)*/) do
- changed.map {|g, v|"#{g} #{v}"}.join($1)
- end or exit
- news.sub!(/^\*\s+The following default gems are now bundled.*(\n\s+\*\s+)\K.*(?:\1.*)*/) do
- added.map {|g, v|"#{g} #{v}"}.join($1)
- end if added
- File.write("NEWS.md", news)
- end
- shell: ruby {0}
-
- - name: Check diffs
- id: diff
- run: |
- git add -- NEWS.md
- git diff --no-ext-diff --ignore-submodules --quiet -- gems/bundled_gems
- continue-on-error: true
-
- - name: Install libraries
- run: |
- set -x
- sudo apt-get update -q || :
- sudo apt-get install --no-install-recommends -q -y build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev bison autoconf ruby
- if: ${{ steps.diff.outcome == 'failure' }}
-
- - name: Build
- run: |
- ./autogen.sh
- ./configure -C --disable-install-doc
- make
- if: ${{ steps.diff.outcome == 'failure' }}
-
- - name: Test bundled gems
- run: |
- make -s test-bundled-gems
- git add -- gems/bundled_gems
- timeout-minutes: 30
- env:
- RUBY_TESTOPTS: "-q --tty=no"
- TEST_BUNDLED_GEMS_ALLOW_FAILURES: ""
- if: ${{ steps.diff.outcome == 'failure' }}
-
- - name: Show diffs
- id: show
- run: |
- git diff --cached --color --no-ext-diff --ignore-submodules --exit-code --
- continue-on-error: true
-
- - name: Commit
- run: |
- git pull --ff-only origin ${GITHUB_REF#refs/heads/}
- message="Update bundled gems list at "
- if [ ${{ steps.diff.outcome }} = success ]; then
- git commit --message="${message}${GITHUB_SHA:0:30} [ci skip]"
- else
- git commit --message="${message}${TODAY}"
- fi
- git push origin ${GITHUB_REF#refs/heads/}
- env:
- EMAIL: svn-admin@ruby-lang.org
- GIT_AUTHOR_NAME: git
- GIT_COMMITTER_NAME: git
- if: ${{ github.repository == 'ruby/ruby' && !startsWith(github.event_name, 'pull') && steps.show.outcome == 'failure' }}
diff --git a/.github/workflows/check_dependencies.yml b/.github/workflows/check_dependencies.yml
deleted file mode 100644
index 6c7e8e5787..0000000000
--- a/.github/workflows/check_dependencies.yml
+++ /dev/null
@@ -1,65 +0,0 @@
-name: Check Dependencies
-on:
- push:
- paths-ignore:
- - 'doc/**'
- - '**.md'
- - '**.rdoc'
- pull_request:
- paths-ignore:
- - 'doc/**'
- - '**.md'
- - '**.rdoc'
-
-concurrency:
- group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
- cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}
-
-jobs:
- update-deps:
- strategy:
- matrix:
- os: [ubuntu-20.04]
- fail-fast: true
- runs-on: ${{ matrix.os }}
- if: ${{ !startsWith(github.event.head_commit.message, '[DOC]') && !contains(github.event.pull_request.labels.*.name, 'Documentation') }}
- steps:
- - name: Install libraries
- run: |
- set -x
- sudo apt-get update -q || :
- sudo apt-get install --no-install-recommends -q -y build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev bison autoconf ruby
- if: ${{ contains(matrix.os, 'ubuntu') }}
- - name: Install libraries
- run: |
- brew upgrade
- brew install gmp libffi openssl@1.1 zlib autoconf automake libtool readline
- if: ${{ contains(matrix.os, 'macos') }}
- - name: git config
- run: |
- git config --global advice.detachedHead 0
- git config --global init.defaultBranch garbage
- - uses: actions/checkout@v2
- - uses: actions/cache@v2
- with:
- path: .downloaded-cache
- key: downloaded-cache
- - run: ./autogen.sh
- - name: Run configure
- run: ./configure -C --disable-install-doc --disable-rubygems --with-gcc 'optflags=-O0' 'debugflags=-save-temps=obj -g'
- - run: make all golf
- - run: ruby tool/update-deps --fix
- - run: git diff --no-ext-diff --ignore-submodules --exit-code
- - uses: k0kubun/action-slack@v2.0.0
- with:
- payload: |
- {
- "ci": "GitHub Actions",
- "env": "${{ matrix.os }} / Dependencies need to update",
- "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
- "commit": "${{ github.sha }}",
- "branch": "${{ github.ref }}".split('/').reverse()[0]
- }
- env:
- SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
- if: ${{ failure() && github.event_name == 'push' }}
diff --git a/.github/workflows/check_misc.yml b/.github/workflows/check_misc.yml
deleted file mode 100644
index 17404746c5..0000000000
--- a/.github/workflows/check_misc.yml
+++ /dev/null
@@ -1,96 +0,0 @@
-name: Miscellaneous checks
-on: [push, pull_request]
-
-concurrency:
- group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
- cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}
-
-jobs:
- checks:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - name: Check if C-sources are US-ASCII
- run: |
- ! grep -r -n '[^ -~]' *.[chy] include internal win32/*.[ch]
- - name: Check for trailing spaces
- run: |
- ! git grep -n '[ ]$' '*.rb' '*.[chy]'
- - name: Check for header macros
- run: |
- ! for header in ruby/*.h; do \
- git grep -l -F -e $header -e HAVE_`echo $header | tr a-z./ A-Z__` -- . > /dev/null || echo $header
- done | grep -F .
- working-directory: include
-
- - uses: actions/cache@v2
- with:
- path: .downloaded-cache
- key: downloaded-cache-${{ github.sha }}
- restore-keys: |
- downloaded-cache
-
- - name: Download previous gems list
- run: |
- data=default_gems.json
- mkdir -p .downloaded-cache
- ln -s .downloaded-cache/$data .
- curl -O -R -z ./$data https://stdgems.org/$data
-
- - name: Make default gems list
- run: |
- require 'rubygems'
- $:.unshift "lib"
- rgver = File.foreach("lib/rubygems.rb") do |line|
- break $1 if /^\s*VERSION\s*=\s*"([^"]+)"/ =~ line
- end
- gems = Dir.glob("{ext,lib}/**/*.gemspec").map do |f|
- spec = Gem::Specification.load(f)
- "#{spec.name} #{spec.version}"
- end.sort
- File.open("gems/default_gems", "w") do |f|
- f.puts "RubyGems #{rgver}"
- f.puts gems
- end
- shell: ruby --disable=gems {0}
-
- - name: Maintain updated gems list in NEWS
- run: |
- require 'json'
- news = File.read("NEWS.md")
- prev = news[/since the \*+(\d+\.\d+\.\d+)\*+/, 1]
- prevs = [prev, prev.sub(/\.\d+\z/, '')]
- %W[default].each do |type|
- last = JSON.parse(File.read("#{type}_gems.json"))['gems'].filter_map do |g|
- v = g['versions'].values_at(*prevs).compact.first
- g = g['gem']
- g = 'RubyGems' if g == 'rubygems'
- [g, v] if v
- end.to_h
- changed = File.foreach("gems/#{type}_gems").filter_map do |l|
- next if l.start_with?("#")
- g, v = l.split(" ", 3)
- [g, v] unless last[g] == v
- end
- news.sub!(/^\*\s+The following #{type} gems? are updated\.(\n\s+\*\s+)\K.*(?:\1.*)*/) do
- changed.map {|g, v|"#{g} #{v}"}.join($1)
- end or exit
- File.write("NEWS.md", news)
- end
- shell: ruby {0}
-
- - name: Check diffs
- id: diff
- run: |
- git diff --color --no-ext-diff --ignore-submodules --exit-code NEWS.md
- continue-on-error: true
- - name: Commit
- run: |
- git pull --ff-only origin ${GITHUB_REF#refs/heads/}
- git commit --message="Update default gems list at ${GITHUB_SHA:0:30} [ci skip]" NEWS.md
- git push origin ${GITHUB_REF#refs/heads/}
- env:
- EMAIL: svn-admin@ruby-lang.org
- GIT_AUTHOR_NAME: git
- GIT_COMMITTER_NAME: git
- if: ${{ github.repository == 'ruby/ruby' && !startsWith(github.event_name, 'pull') && steps.diff.outcome == 'failure' }}
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
deleted file mode 100644
index f81c79902d..0000000000
--- a/.github/workflows/codeql-analysis.yml
+++ /dev/null
@@ -1,61 +0,0 @@
-name: "Code scanning - action"
-
-on:
- push:
- paths-ignore:
- - 'doc/**'
- - '**.md'
- - '**.rdoc'
- pull_request:
- paths-ignore:
- - 'doc/**'
- - '**.md'
- - '**.rdoc'
- schedule:
- - cron: '0 12 * * 4'
-
-concurrency:
- group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
- cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}
-
-jobs:
- CodeQL-Build:
-
- # CodeQL runs on ubuntu-latest and windows-latest
- runs-on: ubuntu-latest
- if: ${{ !startsWith(github.event.head_commit.message, '[DOC]') && !contains(github.event.pull_request.labels.*.name, 'Documentation') }}
-
- env:
- enable_install_doc: no
-
- steps:
- - name: Install libraries
- run: |
- set -x
- sudo apt-get update -q || :
- sudo apt-get install --no-install-recommends -q -y build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev bison autoconf ruby
-
- - name: Checkout repository
- uses: actions/checkout@v2
-
- - uses: actions/cache@v2
- with:
- path: .downloaded-cache
- key: downloaded-cache
-
- - name: Remove an obsolete rubygems vendored file
- run: sudo rm /usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb
-
- - name: Initialize CodeQL
- uses: github/codeql-action/init@v1
- with:
- config-file: ./.github/codeql/codeql-config.yml
-
- - name: Set ENV
- run: echo "GNUMAKEFLAGS=-j$((1 + $(nproc --all)))" >> $GITHUB_ENV
-
- - name: Autobuild
- uses: github/codeql-action/autobuild@v1
-
- - name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@v1
diff --git a/.github/workflows/compilers.yml b/.github/workflows/compilers.yml
deleted file mode 100644
index 2af9fa55d8..0000000000
--- a/.github/workflows/compilers.yml
+++ /dev/null
@@ -1,247 +0,0 @@
-name: Compilations
-
-on:
- push:
- paths-ignore:
- - 'doc/**'
- - '**.md'
- - '**.rdoc'
- pull_request:
- paths-ignore:
- - 'doc/**'
- - '**.md'
- - '**.rdoc'
-
-concurrency:
- group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
- cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}
-
-# Github actions does not support YAML anchors. This creative use of
-# environment variables (plus the "echo $GITHUB_ENV" hack) is to reroute that
-# restriction.
-env:
- default_cc: clang-14
- append_cc: ''
- crosshost: ''
-
- # -O1 is faster than -O3 in our tests... Majority of time are consumed trying
- # to optimize binaries. Also Github Actions run on relatively modern CPUs
- # compared to, say, GCC 4 or Clang 3. We don't specify `-march=native`
- # because compilers tend not understand what the CPU is.
- optflags: '-O1'
-
- # -g0 disables backtraces when SEGV. Do not set that.
- debugflags: '-ggdb3'
-
- default_configure: >-
- --enable-debug-env
- --disable-install-doc
- --with-ext=-test-/cxxanyargs,+
- append_configure: >-
- --without-valgrind
- --without-jemalloc
- --without-gmp
-
- UPDATE_UNICODE: >-
- UNICODE_FILES=.
- UNICODE_PROPERTY_FILES=.
- UNICODE_AUXILIARY_FILES=.
- UNICODE_EMOJI_FILES=.
- CONFIGURE_TTY: never
- GITPULLOPTIONS: --no-tags origin ${{github.ref}}
- RUBY_DEBUG: ci rgengc
- RUBY_TESTOPTS: >-
- -q
- --color=always
- --tty=no
-
-jobs:
- compile:
- strategy:
- fail-fast: false
- matrix:
- entry:
- - { key: default_cc, name: gcc-11, value: gcc-11, container: gcc-11 }
- - { key: default_cc, name: gcc-10, value: gcc-10, container: gcc-10 }
- - { key: default_cc, name: gcc-9, value: gcc-9, container: gcc-9 }
- - { key: default_cc, name: gcc-8, value: gcc-8, container: gcc-8 }
- - { key: default_cc, name: gcc-7, value: gcc-7, container: gcc-7 }
- - { key: default_cc, name: gcc-6, value: gcc-6, container: gcc-6 }
- - { key: default_cc, name: gcc-5, value: gcc-5, container: gcc-5 }
- - { key: default_cc, name: gcc-4.8, value: gcc-4.8, container: gcc-4.8 }
- - key: default_cc
- name: 'gcc-11 LTO'
- value: 'gcc-11 -O2 -flto=auto -ffat-lto-objects'
- container: gcc-11
- shared: '--disable-shared'
- # check: true
- - { key: default_cc, name: clang-14, value: clang-14, container: clang-14 }
- - { key: default_cc, name: clang-13, value: clang-13, container: clang-13 }
- - { key: default_cc, name: clang-12, value: clang-12, container: clang-12 }
- - { key: default_cc, name: clang-11, value: clang-11, container: clang-11 }
- - { key: default_cc, name: clang-10, value: clang-10, container: clang-10 }
- - { key: default_cc, name: clang-9, value: clang-9, container: clang-9 }
- - { key: default_cc, name: clang-8, value: clang-8, container: clang-8 }
- - { key: default_cc, name: clang-7, value: clang-7, container: clang-7 }
- - { key: default_cc, name: clang-6.0, value: clang-6.0, container: clang-6.0 }
- - { key: default_cc, name: clang-5.0, value: clang-5.0, container: clang-5.0 }
- - { key: default_cc, name: clang-4.0, value: clang-4.0, container: clang-4.0 }
- - { key: default_cc, name: clang-3.9, value: clang-3.9, container: clang-3.9 }
- - key: default_cc
- name: 'clang-14 LTO'
- value: 'clang-14 -O2 -flto=auto'
- container: clang-14
- shared: '--disable-shared'
- # check: true
-
- - { key: crosshost, name: aarch64-linux-gnu, value: aarch64-linux-gnu, container: crossbuild-essential-arm64 }
-# - { key: crosshost, name: arm-linux-gnueabi, value: arm-linux-gnueabi }
-# - { key: crosshost, name: arm-linux-gnueabihf, value: arm-linux-gnueabihf }
-# - { key: crosshost, name: i686-w64-mingw32, value: i686-w64-mingw32 }
-# - { key: crosshost, name: powerpc-linux-gnu, value: powerpc-linux-gnu }
- - { key: crosshost, name: powerpc64le-linux-gnu, value: powerpc64le-linux-gnu, container: crossbuild-essential-ppc64el }
- - { key: crosshost, name: s390x-linux-gnu, value: s390x-linux-gnu, container: crossbuild-essential-s390x }
- - { key: crosshost, name: x86_64-w64-mingw32, value: x86_64-w64-mingw32, container: mingw-w64 }
-
- - { key: append_cc, name: c99, value: '-std=c99 -Werror=pedantic -pedantic-errors' }
-# - { key: append_cc, name: c11, value: '-std=c11 -Werror=pedantic -pedantic-errors' }
-# - { key: append_cc, name: c17, value: '-std=c17 -Werror=pedantic -pedantic-errors' }
- - { key: append_cc, name: c2x, value: '-std=c2x -Werror=pedantic -pedantic-errors' }
- - { key: CXXFLAGS, name: c++98, value: '-std=c++98 -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' }
-# - { key: CXXFLAGS, name: c++11, value: '-std=c++11 -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' }
-# - { key: CXXFLAGS, name: c++14, value: '-std=c++14 -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' }
-# - { key: CXXFLAGS, name: c++17, value: '-std=c++17 -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' }
- - { key: CXXFLAGS, name: c++2a, value: '-std=c++2a -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' }
-
- - { key: optflags, name: '-O0', value: '-O0 -march=x86-64 -mtune=generic' }
-# - { key: optflags, name: '-O3', value: '-O3 -march=x86-64 -mtune=generic', check: true }
-
- - { key: append_configure, name: gmp, value: '--with-gmp' }
- - { key: append_configure, name: jemalloc, value: '--with-jemalloc' }
- - { key: append_configure, name: valgrind, value: '--with-valgrind' }
- - { key: append_configure, name: 'coroutine=ucontext', value: '--with-coroutine=ucontext' }
- - { key: append_configure, name: 'coroutine=pthread', value: '--with-coroutine=pthread' }
- - { key: append_configure, name: disable-jit-support, value: '--disable-jit-support' }
- - { key: append_configure, name: disable-dln, value: '--disable-dln' }
- - { key: append_configure, name: disable-rubygems, value: '--disable-rubygems' }
-
- - { key: cppflags, name: OPT_THREADED_CODE=1, value: '-DOPT_THREADED_CODE=1' }
- - { key: cppflags, name: OPT_THREADED_CODE=2, value: '-DOPT_THREADED_CODE=2' }
- - { key: cppflags, name: OPT_THREADED_CODE=3, value: '-DOPT_THREADED_CODE=3' }
-
- - { key: cppflags, name: NDEBUG, value: '-DNDEBUG' }
- - { key: cppflags, name: RUBY_DEBUG, value: '-DRUBY_DEBUG' }
-# - { key: cppflags, name: ARRAY_DEBUG, value: '-DARRAY_DEBUG' }
-# - { key: cppflags, name: BIGNUM_DEBUG, value: '-DBIGNUM_DEBUG' }
-# - { key: cppflags, name: CCAN_LIST_DEBUG, value: '-DCCAN_LIST_DEBUG' }
-# - { key: cppflags, name: CPDEBUG=-1, value: '-DCPDEBUG=-1' }
-# - { key: cppflags, name: ENC_DEBUG, value: '-DENC_DEBUG' }
-# - { key: cppflags, name: GC_DEBUG, value: '-DGC_DEBUG' }
-# - { key: cppflags, name: HASH_DEBUG, value: '-DHASH_DEBUG' }
-# - { key: cppflags, name: ID_TABLE_DEBUG, value: '-DID_TABLE_DEBUG' }
-# - { key: cppflags, name: RGENGC_DEBUG=-1, value: '-DRGENGC_DEBUG=-1' }
-# - { key: cppflags, name: SYMBOL_DEBUG, value: '-DSYMBOL_DEBUG' }
-# - { key: cppflags, name: THREAD_DEBUG=-1, value: '-DTHREAD_DEBUG=-1' }
-
-# - { key: cppflags, name: RGENGC_CHECK_MODE, value: '-DRGENGC_CHECK_MODE' }
-# - { key: cppflags, name: TRANSIENT_HEAP_CHECK_MODE, value: '-DTRANSIENT_HEAP_CHECK_MODE' }
-# - { key: cppflags, name: VM_CHECK_MODE, value: '-DVM_CHECK_MODE' }
-
- - { key: cppflags, name: USE_EMBED_CI=0, value: '-DUSE_EMBED_CI=0' }
- - { key: cppflags, name: USE_FLONUM=0, value: '-DUSE_FLONUM=0' }
-# - { key: cppflags, name: USE_GC_MALLOC_OBJ_INFO_DETAILS, value: '-DUSE_GC_MALLOC_OBJ_INFO_DETAILS' }
- - { key: cppflags, name: USE_LAZY_LOAD, value: '-DUSE_LAZY_LOAD' }
-# - { key: cppflags, name: USE_RINCGC=0, value: '-DUSE_RINCGC=0' }
-# - { key: cppflags, name: USE_SYMBOL_GC=0, value: '-DUSE_SYMBOL_GC=0' }
-# - { key: cppflags, name: USE_THREAD_CACHE=0, value: '-DUSE_THREAD_CACHE=0' }
-# - { key: cppflags, name: USE_TRANSIENT_HEAP=0, value: '-DUSE_TRANSIENT_HEAP=0' }
-# - { key: cppflags, name: USE_RUBY_DEBUG_LOG=1, value: '-DUSE_RUBY_DEBUG_LOG=1' }
-
- - { key: cppflags, name: DEBUG_FIND_TIME_NUMGUESS, value: '-DDEBUG_FIND_TIME_NUMGUESS' }
- - { key: cppflags, name: DEBUG_INTEGER_PACK, value: '-DDEBUG_INTEGER_PACK' }
-# - { key: cppflags, name: ENABLE_PATH_CHECK, value: '-DENABLE_PATH_CHECK' }
-
- - { key: cppflags, name: GC_DEBUG_STRESS_TO_CLASS, value: '-DGC_DEBUG_STRESS_TO_CLASS' }
-# - { key: cppflags, name: GC_ENABLE_LAZY_SWEEP=0, value: '-DGC_ENABLE_LAZY_SWEEP=0' }
-# - { key: cppflags, name: GC_PROFILE_DETAIL_MEMOTY, value: '-DGC_PROFILE_DETAIL_MEMOTY' }
-# - { key: cppflags, name: GC_PROFILE_MORE_DETAIL, value: '-DGC_PROFILE_MORE_DETAIL' }
-
-# - { key: cppflags, name: CALC_EXACT_MALLOC_SIZE, value: '-DCALC_EXACT_MALLOC_SIZE' }
-# - { key: cppflags, name: MALLOC_ALLOCATED_SIZE_CHECK, value: '-DMALLOC_ALLOCATED_SIZE_CHECK' }
-
-# - { key: cppflags, name: IBF_ISEQ_ENABLE_LOCAL_BUFFER, value: '-DIBF_ISEQ_ENABLE_LOCAL_BUFFER' }
-
-# - { key: cppflags, name: RGENGC_ESTIMATE_OLDMALLOC, value: '-DRGENGC_ESTIMATE_OLDMALLOC' }
-# - { key: cppflags, name: RGENGC_FORCE_MAJOR_GC, value: '-DRGENGC_FORCE_MAJOR_GC' }
-# - { key: cppflags, name: RGENGC_OBJ_INFO, value: '-DRGENGC_OBJ_INFO' }
-# - { key: cppflags, name: RGENGC_OLD_NEWOBJ_CHECK, value: '-DRGENGC_OLD_NEWOBJ_CHECK' }
-# - { key: cppflags, name: RGENGC_PROFILE, value: '-DRGENGC_PROFILE' }
-
-# - { key: cppflags, name: VM_DEBUG_BP_CHECK, value: '-DVM_DEBUG_BP_CHECK' }
-# - { key: cppflags, name: VM_DEBUG_VERIFY_METHOD_CACHE, value: '-DVM_DEBUG_VERIFY_METHOD_CACHE' }
-
- - { key: cppflags, name: MJIT_FORCE_ENABLE, value: '-DMJIT_FORCE_ENABLE' }
- - { key: cppflags, name: YJIT_FORCE_ENABLE, value: '-DYJIT_FORCE_ENABLE' }
-
- name: ${{ matrix.entry.name }}
- runs-on: ubuntu-latest
- container:
- image: ghcr.io/ruby/ruby-ci-image:${{ matrix.entry.container || 'clang-14' }}
- options: --user root
- if: ${{ !startsWith(github.event.head_commit.message, '[DOC]') && !contains(github.event.pull_request.labels.*.name, 'Documentation') }}
- steps:
- - run: id
- working-directory:
- - run: mkdir build
- working-directory:
- - name: setenv
- run: |
- echo "${{ matrix.entry.key }}=${{ matrix.entry.value }}" >> $GITHUB_ENV
- echo "GNUMAKEFLAGS=-sj$((1 + $(nproc --all)))" >> $GITHUB_ENV
- - uses: actions/checkout@v2
- with:
- path: src
- - uses: actions/cache@v2
- with:
- path: src/.downloaded-cache
- key: downloaded-cache
- - run: ./autogen.sh
- working-directory: src
- - name: Run configure
- run: >
- ../src/configure -C ${default_configure} ${append_configure}
- ${{ matrix.entry.key == 'crosshost' && '--host="${crosshost}"' || '--with-gcc="${default_cc} ${append_cc}"' }}
- ${{ matrix.entry.shared || '--enable-shared' }}
- - run: make extract-extlibs
- - run: make incs
- - run: make
- - run: make leaked-globals
- - run: make test
- - run: make install
- if: ${{ matrix.entry.check }}
- - run: make prepare-gems
- if: ${{ matrix.entry.check }}
- - run: make test-tool
- if: ${{ matrix.entry.check }}
- - run: make test-all TESTS='-- ruby -ext-'
- if: ${{ matrix.entry.check }}
- - run: make test-spec
- if: ${{ matrix.entry.check }}
-
- - uses: k0kubun/action-slack@v2.0.0
- with:
- payload: |
- {
- "ci": "GitHub Actions",
- "env": "${{ github.workflow }} / ${{ matrix.entry.name }}",
- "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
- "commit": "${{ github.sha }}",
- "branch": "${{ github.ref }}".split('/').reverse()[0]
- }
- env:
- SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
- if: ${{ failure() && github.event_name == 'push' }}
-
-defaults:
- run:
- working-directory: build
diff --git a/.github/workflows/mingw.yml b/.github/workflows/mingw.yml
deleted file mode 100644
index 0d7eef67c0..0000000000
--- a/.github/workflows/mingw.yml
+++ /dev/null
@@ -1,148 +0,0 @@
-name: MinGW
-on:
- push:
- paths-ignore:
- - 'doc/**'
- - '**.md'
- - '**.rdoc'
- pull_request:
- paths-ignore:
- - 'doc/**'
- - '**.md'
- - '**.rdoc'
-
-concurrency:
- group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
- cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}
-
-# Notes:
-# Actions console encoding causes issues, see test-all & test-spec steps
-#
-jobs:
- make:
- runs-on: windows-2022
- name: ${{ github.workflow }} (${{ matrix.msystem }})
- env:
- MSYSTEM: ${{ matrix.msystem }}
- MSYS2_ARCH: x86_64
- CHOST: "x86_64-w64-mingw32"
- CFLAGS: "-march=x86-64 -mtune=generic -O3 -pipe -fstack-protector-strong"
- CXXFLAGS: "-march=x86-64 -mtune=generic -O3 -pipe"
- CPPFLAGS: "-D_FORTIFY_SOURCE=2 -D__USE_MINGW_ANSI_STDIO=1 -DFD_SETSIZE=2048"
- LDFLAGS: "-pipe -fstack-protector-strong"
- UPDATE_UNICODE: "UNICODE_FILES=. UNICODE_PROPERTY_FILES=. UNICODE_AUXILIARY_FILES=. UNICODE_EMOJI_FILES=."
- GITPULLOPTIONS: --no-tags origin ${{github.ref}}
- strategy:
- matrix:
- include:
- - msystem: "MINGW64"
- base_ruby: 2.6
- test_task: [ "check" ] # to make job names consistent
- - msystem: "UCRT64"
- base_ruby: head
- test_task: [ "check" ] # to make job names consistent
- fail-fast: false
- if: ${{ !startsWith(github.event.head_commit.message, '[DOC]') && !contains(github.event.pull_request.labels.*.name, 'Documentation') }}
- steps:
- - run: mkdir build
- working-directory:
- - name: git config
- run: |
- git config --global core.autocrlf false
- git config --global core.eol lf
- git config --global advice.detachedHead 0
- git config --global init.defaultBranch garbage
- - uses: actions/checkout@v2
- with:
- path: src
- - uses: actions/cache@v2
- with:
- path: src/.downloaded-cache
- key: downloaded-cache
- - name: Set up Ruby & MSYS2
- uses: MSP-Greg/ruby-setup-ruby@win-ucrt-1
- with:
- ruby-version: ${{ matrix.base_ruby }}
- - name: set env
- run: |
- echo "GNUMAKEFLAGS=-j$((2 * NUMBER_OF_PROCESSORS))" >> $GITHUB_ENV
- echo "TEST_JOBS=$((15 * NUMBER_OF_PROCESSORS / 10))" >> $GITHUB_ENV
-
- - name: where check
- run: |
- # show where
- result=true
- for e in gcc.exe ragel.exe make.exe bison.exe libcrypto-1_1-x64.dll libssl-1_1-x64.dll; do
- echo '##['group']'$'\033[93m'$e$'\033[m'
- where $e || result=false
- echo '##['endgroup']'
- done
- $result
-
- - name: autogen
- run: |
- ./autogen.sh
- working-directory: src
-
- - name: configure
- run: >
- ../src/configure --disable-install-doc --prefix=/.
- --build=$CHOST --host=$CHOST --target=$CHOST
-
- - name: update
- run: |
- make incs
-
- - name: download gems
- run: |
- make update-gems
-
- - name: make all
- timeout-minutes: 20
- run: |
- make
-
- - run: make leaked-globals
-
- - name: make install
- run: |
- make DESTDIR=../install install-nodoc
-
- - name: test
- timeout-minutes: 5
- run: |
- make test
-
- - name: test-all
- timeout-minutes: 45
- run: |
- # Actions uses UTF8, causes test failures, similar to normal OS setup
- chcp.com 437
- make test-all
- env:
- RUBY_TESTOPTS: -j${{env.TEST_JOBS}} --retry --job-status=normal --show-skip --timeout-scale=1.5
- BUNDLER_VERSION:
-
- - name: test-spec
- timeout-minutes: 10
- run: |
- make test-spec
-
- - uses: k0kubun/action-slack@v2.0.0
- with:
- payload: |
- {
- "ci": "GitHub Actions",
- "env": "${{ github.workflow }} / ${{ matrix.test_task }}",
- "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
- "commit": "${{ github.sha }}",
- "branch": "${{ github.ref }}".split('/').reverse()[0]
- }
- env:
- SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
- if: ${{ failure() && github.event_name == 'push' }}
-
-defaults:
- run:
- working-directory: build
- shell: sh
diff --git a/.github/workflows/mjit.yml b/.github/workflows/mjit.yml
deleted file mode 100644
index 75e5b1088c..0000000000
--- a/.github/workflows/mjit.yml
+++ /dev/null
@@ -1,97 +0,0 @@
-name: MJIT
-on:
- push:
- paths-ignore:
- - 'doc/**'
- - '**.md'
- - '**.rdoc'
- pull_request:
- paths-ignore:
- - 'doc/**'
- - '**.md'
- - '**.rdoc'
-
-concurrency:
- group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
- cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}
-
-jobs:
- make:
- strategy:
- matrix:
- test_task: [ "check" ] # to make job names consistent
- jit_opts: [ "--mjit", "--mjit-wait" ]
- fail-fast: false
- runs-on: ubuntu-latest
- if: ${{ !startsWith(github.event.head_commit.message, '[DOC]') && !contains(github.event.pull_request.labels.*.name, 'Documentation') }}
- env:
- TESTOPTS: '-q --tty=no'
- RUN_OPTS: '--disable-gems ${{ matrix.jit_opts }} --mjit-debug=-ggdb3'
- GITPULLOPTIONS: --no-tags origin ${{github.ref}}
- steps:
- - run: mkdir build
- working-directory:
- - name: Install libraries
- run: |
- set -x
- sudo apt-get update -q || :
- sudo apt-get install --no-install-recommends -q -y build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev bison autoconf ruby
- - name: git config
- run: |
- git config --global advice.detachedHead 0
- git config --global init.defaultBranch garbage
- - uses: actions/checkout@v2
- with:
- path: src
- - uses: actions/cache@v2
- with:
- path: src/.downloaded-cache
- key: downloaded-cache
- - name: Fixed world writable dirs
- run: |
- chmod -v go-w $HOME $HOME/.config
- sudo chmod -R go-w /usr/share
- sudo bash -c 'IFS=:; for d in '"$PATH"'; do chmod -v go-w $d; done' || :
- - name: Set ENV
- run: |
- echo "GNUMAKEFLAGS=-j$((1 + $(nproc --all)))" >> $GITHUB_ENV
- - run: ./autogen.sh
- working-directory: src
- - name: Run configure
- run: ../src/configure -C --disable-install-doc cppflags=-DVM_CHECK_MODE
- - run: make incs
- - run: make
- - run: sudo make -s install
- - run: sudo apt-get install gdb # used by test / test-all failure
- - name: Run test
- run: |
- ulimit -c unlimited
- make -s test RUN_OPTS="$RUN_OPTS"
- timeout-minutes: 60
- - name: Run test-all
- run: |
- ulimit -c unlimited
- make -s test-all RUN_OPTS="$RUN_OPTS"
- timeout-minutes: 60
- - name: Run test-spec
- run: |
- ulimit -c unlimited
- make -s test-spec RUN_OPTS="$RUN_OPTS"
- timeout-minutes: 60
- - uses: k0kubun/action-slack@v2.0.0
- with:
- payload: |
- {
- "ci": "GitHub Actions",
- "env": "${{ github.workflow }} / ${{ matrix.test_task }} ${{ matrix.jit_opts }}",
- "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
- "commit": "${{ github.sha }}",
- "branch": "${{ github.ref }}".split('/').reverse()[0]
- }
- env:
- SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
- if: ${{ failure() && github.event_name == 'push' }}
-
-defaults:
- run:
- working-directory: build
diff --git a/.github/workflows/spec_guards.yml b/.github/workflows/spec_guards.yml
deleted file mode 100644
index 3f829650d5..0000000000
--- a/.github/workflows/spec_guards.yml
+++ /dev/null
@@ -1,53 +0,0 @@
-name: Rubyspec Version Guards Check
-
-on:
- push:
- paths-ignore:
- - 'doc/**'
- - '**.md'
- - '**.rdoc'
- pull_request:
- paths-ignore:
- - 'doc/**'
- - '**.md'
- - '**.rdoc'
-
-concurrency:
- group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
- cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}
-
-jobs:
- rubyspec:
- name: Rubyspec
- runs-on: ubuntu-20.04
- if: ${{ !startsWith(github.event.head_commit.message, '[DOC]') && !contains(github.event.pull_request.labels.*.name, 'Documentation') }}
- strategy:
- matrix:
- # Specs from ruby/spec should still run on all supported Ruby versions.
- # This also ensures the needed ruby_version_is guards are there, see spec/README.md.
- ruby:
- - ruby-2.7
- - ruby-3.0
-
- steps:
- - uses: actions/checkout@v2
- - uses: ruby/setup-ruby@v1
- with:
- ruby-version: ${{ matrix.ruby }}
- bundler: none
- - run: gem install webrick
- - run: ruby ../mspec/bin/mspec
- working-directory: spec/ruby
- - uses: k0kubun/action-slack@v2.0.0
- with:
- payload: |
- {
- "ci": "GitHub Actions",
- "env": "${{ github.workflow }} / rubyspec @ ${{ matrix.ruby }}",
- "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
- "commit": "${{ github.sha }}",
- "branch": "${{ github.ref }}".split('/').reverse()[0]
- }
- env:
- SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
- if: ${{ failure() && github.event_name == 'push' }}
diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml
deleted file mode 100644
index ff79dad880..0000000000
--- a/.github/workflows/ubuntu.yml
+++ /dev/null
@@ -1,129 +0,0 @@
-name: Ubuntu
-on:
- push:
- paths-ignore:
- - 'doc/**'
- - '**.md'
- - '**.rdoc'
- pull_request:
- paths-ignore:
- - 'doc/**'
- - '**.md'
- - '**.rdoc'
-
-concurrency:
- group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
- cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}
-
-jobs:
- make:
- strategy:
- matrix:
- test_task: ["check", "test-bundler-parallel", "test-bundled-gems"]
- os:
- - ubuntu-20.04
-# - ubuntu-18.04
- configure: ["", "cppflags=-DRUBY_DEBUG"]
- include:
- - test_task: "check"
- os: ubuntu-20.04
- configure: "--host=i686-$OSTYPE"
- - test_task: "test-all TESTS=--repeat-count=2"
- os: ubuntu-20.04
- configure: ""
- fail-fast: false
- env:
- GITPULLOPTIONS: --no-tags origin ${{github.ref}}
- RUBY_DEBUG: ci
- runs-on: ${{ matrix.os }}
- if: ${{ !startsWith(github.event.head_commit.message, '[DOC]') && !contains(github.event.pull_request.labels.*.name, 'Documentation') }}
- steps:
- - run: mkdir build
- working-directory:
- - name: Set ENV
- env:
- configure: ${{matrix.configure}}
- run: |
- echo "GNUMAKEFLAGS=-j$((1 + $(nproc --all)))" >> $GITHUB_ENV
- arch=`echo " $configure" | sed '/.* --host=/!d;s///;s/[- ].*//'`
- echo "SETARCH=${arch:+setarch $arch}" >> $GITHUB_ENV
- - name: Install libraries
- run: |
- set -x
- arch="${SETARCH##* }"
- arch=${arch:+:${arch/i[3-6]86/i386}}
- ${arch:+sudo dpkg --add-architecture ${arch#:}}
- sudo apt-get update -q || :
- sudo apt-get install --no-install-recommends -q -y \
- ${arch:+cross}build-essential${arch/:/-} \
- libssl-dev${arch} libyaml-dev${arch} libreadline6-dev${arch} \
- zlib1g-dev${arch} libncurses5-dev${arch} libffi-dev${arch} \
- bison autoconf ruby
- sudo apt-get install -q -y pkg-config${arch} || :
- - name: git config
- run: |
- git config --global advice.detachedHead 0
- git config --global init.defaultBranch garbage
- - uses: actions/checkout@v2
- with:
- path: src
- - uses: actions/cache@v2
- with:
- path: src/.downloaded-cache
- key: downloaded-cache
- - name: Fixed world writable dirs
- run: |
- chmod -v go-w $HOME $HOME/.config
- sudo chmod -R go-w /usr/share
- sudo bash -c 'IFS=:; for d in '"$PATH"'; do chmod -v go-w $d; done' || :
- - run: ./autogen.sh
- working-directory: src
- - name: Run configure
- env:
- arch: ${{matrix.arch}}
- run: >-
- $SETARCH ../src/configure -C --disable-install-doc ${{ matrix.configure }}
- ${arch:+--target=$arch-$OSTYPE}
- - run: $SETARCH make incs
- - run: $SETARCH make
- - run: $SETARCH make leaked-globals
- if: ${{ matrix.test_task == 'check' }}
- - run: $SETARCH make prepare-gems
- if: ${{ matrix.test_task == 'check' }}
- - name: Create dummy files in build dir
- run: |
- $SETARCH ./miniruby -e '(("a".."z").to_a+("A".."Z").to_a+("0".."9").to_a+%w[foo bar test zzz]).each{|basename|File.write("#{basename}.rb", "raise %(do not load #{basename}.rb)")}'
- if: ${{ matrix.test_task == 'check' }}
- - name: make ${{ matrix.test_task }}
- run: |
- $SETARCH make -s ${{ matrix.test_task }} ${TESTS:+TESTS=`echo "$TESTS" | sed 's| |$/ -n!/|g;s|^|-n!/|;s|$|$$/|'`}
- timeout-minutes: 40
- env:
- RUBY_TESTOPTS: "-q --tty=no"
- TESTS: ${{ matrix.test_task == 'check' && matrix.skipped_tests || '' }}
- TEST_BUNDLED_GEMS_ALLOW_FAILURES: ""
- - name: make skipped tests
- run: |
- $SETARCH make -s test-all TESTS=`echo "$TESTS" | sed 's| |$/ -n/|g;s|^|-n/|;s|$|$$/|'`
- env:
- GNUMAKEFLAGS: ""
- RUBY_TESTOPTS: "-v --tty=no"
- TESTS: ${{ matrix.skipped_tests }}
- if: ${{ matrix.test_task == 'check' && matrix.skipped_tests != '' }}
- - uses: k0kubun/action-slack@v2.0.0
- with:
- payload: |
- {
- "ci": "GitHub Actions",
- "env": "${{ matrix.os }} / ${{ matrix.test_task }}${{ matrix.configure }}",
- "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
- "commit": "${{ github.sha }}",
- "branch": "${{ github.ref }}".split('/').reverse()[0]
- }
- env:
- SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
- if: ${{ failure() && github.event_name == 'push' }}
-
-defaults:
- run:
- working-directory: build
diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml
deleted file mode 100644
index 574bfbf474..0000000000
--- a/.github/workflows/windows.yml
+++ /dev/null
@@ -1,135 +0,0 @@
-name: Windows
-on:
- push:
- paths-ignore:
- - 'doc/**'
- - '**.md'
- - '**.rdoc'
- pull_request:
- paths-ignore:
- - 'doc/**'
- - '**.md'
- - '**.rdoc'
-
-concurrency:
- group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
- cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}
-
-jobs:
- make:
- strategy:
- matrix:
- include:
- - vs: 2019
- os: windows-2019
- vcvars: '"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat"'
- # - vs: 2022
- # os: windows-2022
- # vcvars: '"C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"'
- fail-fast: false
- runs-on: ${{ matrix.os }}
- if: ${{ !startsWith(github.event.head_commit.message, '[DOC]') && !contains(github.event.pull_request.labels.*.name, 'Documentation') }}
- name: VisualStudio ${{ matrix.vs }}
- env:
- GITPULLOPTIONS: --no-tags origin ${{github.ref}}
- VCVARS: ${{ matrix.vcvars }}
- PATCH: C:\msys64\usr\bin\patch.exe
- steps:
- - run: md build
- working-directory:
- - uses: msys2/setup-msys2@v2
- id: setup-msys2
- with:
- update: true
- install: >-
- patch
- if: ${{ matrix.os != 'windows-2019' }}
- - name: patch path
- shell: msys2 {0}
- run: echo PATCH=$(cygpath -wa $(command -v patch)) >> $GITHUB_ENV
- if: ${{ steps.setup-msys2.outcome == 'success' }}
- - uses: actions/cache@v2
- with:
- path: C:\vcpkg\downloads
- key: ${{ runner.os }}-vcpkg-download-${{ matrix.os }}-${{ github.sha }}
- restore-keys: |
- ${{ runner.os }}-vcpkg-download-${{ matrix.os }}-
- ${{ runner.os }}-vcpkg-download-
- - name: Install libraries with vcpkg
- run: |
- vcpkg --triplet x64-windows install readline zlib
- - uses: actions/cache@v2
- with:
- path: C:\Users\runneradmin\AppData\Local\Temp\chocolatey
- key: ${{ runner.os }}-chocolatey-${{ matrix.os }}-${{ github.sha }}
- restore-keys: |
- ${{ runner.os }}-chocolatey-${{ matrix.os }}-
- ${{ runner.os }}-chocolatey-
- - name: Install libraries with chocolatey
- run: |
- # Using Choco-Install for retries, but it doesn't detect failures properly
- # if you pass multiple package names in a single command.
- Choco-Install -PackageName openssl
- Choco-Install -PackageName winflexbison3
- shell: pwsh
- - name: git config
- run: |
- git config --global core.autocrlf false
- git config --global core.eol lf
- git config --global advice.detachedHead 0
- git config --global init.defaultBranch garbage
- - uses: actions/checkout@v2
- with:
- path: src
- - uses: actions/cache@v2
- with:
- path: src/.downloaded-cache
- key: downloaded-cache
- - name: setup env
- # %TEMP% is inconsistent with %TMP% and test-all expects they are consistent.
- # https://github.com/actions/virtual-environments/issues/712#issuecomment-613004302
- run: |
- set | C:\msys64\usr\bin\sort > old.env
- call %VCVARS%
- set TMP=%USERPROFILE%\AppData\Local\Temp
- set TEMP=%USERPROFILE%\AppData\Local\Temp
- set /a TEST_JOBS=(15 * %NUMBER_OF_PROCESSORS% / 10) > nul
- set | C:\msys64\usr\bin\sort > new.env
- C:\msys64\usr\bin\comm -13 old.env new.env >> %GITHUB_ENV%
- del *.env
- - name: Configure
- run: |
- ../src/win32/configure.bat --disable-install-doc --enable-bundled-libffi --with-opt-dir=C:/vcpkg/installed/x64-windows --with-openssl-dir="C:/Program Files/OpenSSL-Win64"
- - run: nmake incs
- - run: nmake extract-extlibs
- - run: nmake
- env:
- YACC: win_bison
- - run: nmake test
- timeout-minutes: 5
- - run: nmake test-all
- env:
- RUBY_TESTOPTS: -j${{env.TEST_JOBS}} --job-status=normal
- timeout-minutes: 60
- continue-on-error: ${{ matrix.continue-on-error || false }}
- - run: nmake test-spec
- timeout-minutes: 10
- continue-on-error: ${{ matrix.continue-on-error || false }}
- - uses: k0kubun/action-slack@v2.0.0
- with:
- payload: |
- {
- "ci": "GitHub Actions",
- "env": "VS${{ matrix.vs }} / ${{ matrix.test_task || 'check' }}",
- "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
- "commit": "${{ github.sha }}",
- "branch": "${{ github.ref }}".split('/').reverse()[0]
- }
- env:
- SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
- if: ${{ failure() && github.event_name == 'push' }}
-
-defaults:
- run:
- working-directory: build
- shell: cmd
diff --git a/.github/workflows/yjit-ubuntu.yml b/.github/workflows/yjit-ubuntu.yml
deleted file mode 100644
index c479b8a624..0000000000
--- a/.github/workflows/yjit-ubuntu.yml
+++ /dev/null
@@ -1,112 +0,0 @@
-name: YJIT Ubuntu
-on:
- push:
- paths-ignore:
- - 'doc/**'
- - '**.md'
- - '**.rdoc'
- pull_request:
- paths-ignore:
- - 'doc/**'
- - '**.md'
- - '**.rdoc'
-
-concurrency:
- group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
- cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}
-
-jobs:
- make:
- strategy:
- matrix:
- test_task: ["check"] # "test-bundler-parallel",
- os:
- - ubuntu-20.04
-# - ubuntu-18.04
- yjit_opts: [
- "--yjit",
- "--yjit --yjit-call-threshold=1",
- ]
- configure: ["", "cppflags=-DRUBY_DEBUG"]
- include:
- - test_task: "test-all TESTS=--repeat-count=2"
- os: ubuntu-20.04
- configure: ""
- yjit_enable_env: RUBY_YJIT_ENABLE
- - test_task: "test-bundled-gems"
- os: ubuntu-20.04
- configure: "cppflags=-DRUBY_DEBUG"
- yjit_enable_env: RUBY_YJIT_ENABLE
- fail-fast: false
- env:
- GITPULLOPTIONS: --no-tags origin ${{github.ref}}
- RUN_OPTS: ${{ matrix.yjit_opts }}
- RUBY_DEBUG: ci
- runs-on: ${{ matrix.os }}
- if: ${{ !startsWith(github.event.head_commit.message, '[DOC]') && !contains(github.event.pull_request.labels.*.name, 'Documentation') }}
- steps:
- - run: mkdir build
- working-directory:
- - name: Install libraries
- run: |
- set -x
- sudo apt-get update -q || :
- sudo apt-get install --no-install-recommends -q -y build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev bison autoconf ruby
- - name: git config
- run: |
- git config --global advice.detachedHead 0
- git config --global init.defaultBranch garbage
- - uses: actions/checkout@v2
- with:
- path: src
- - uses: actions/cache@v2
- with:
- path: src/.downloaded-cache
- key: downloaded-cache
- - name: Fixed world writable dirs
- run: |
- chmod -v go-w $HOME $HOME/.config
- sudo chmod -R go-w /usr/share
- sudo bash -c 'IFS=:; for d in '"$PATH"'; do chmod -v go-w $d; done' || :
- - name: Set ENV
- run: |
- echo "GNUMAKEFLAGS=-j$((1 + $(nproc --all)))" >> $GITHUB_ENV
- - run: ./autogen.sh
- working-directory: src
- - name: Run configure
- run: ../src/configure -C --disable-install-doc ${{ matrix.configure }}
- - run: make incs
- - run: make
- - run: make leaked-globals
- if: ${{ matrix.test_task == 'check' }}
- - run: make prepare-gems
- if: ${{ matrix.test_task == 'check' }}
- - name: Create dummy files in build dir
- run: |
- ./miniruby -e '(("a".."z").to_a+("A".."Z").to_a+("0".."9").to_a+%w[foo bar test zzz]).each{|basename|File.write("#{basename}.rb", "raise %(do not load #{basename}.rb)")}'
- if: ${{ matrix.test_task == 'check' }}
- - name: Enable YJIT through ENV
- run: echo "RUBY_YJIT_ENABLE=1" >> $GITHUB_ENV
- if: ${{ matrix.yjit_enable_env }}
- - run: make -s ${{ matrix.test_task }} RUN_OPTS="$RUN_OPTS"
- timeout-minutes: 60
- env:
- RUBY_TESTOPTS: "-q --tty=no"
- TEST_BUNDLED_GEMS_ALLOW_FAILURES: ""
- - uses: k0kubun/action-slack@v2.0.0
- with:
- payload: |
- {
- "ci": "GitHub Actions",
- "env": "${{ matrix.os }} / ${{ matrix.test_task }}${{ matrix.configure }}",
- "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
- "commit": "${{ github.sha }}",
- "branch": "${{ github.ref }}".split('/').reverse()[0]
- }
- env:
- SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
- if: ${{ failure() && github.event_name == 'push' }}
-
-defaults:
- run:
- working-directory: build
diff --git a/.github/workflows/yjit_asm_tests.yml b/.github/workflows/yjit_asm_tests.yml
deleted file mode 100644
index 8a9052dd41..0000000000
--- a/.github/workflows/yjit_asm_tests.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-name: YJIT x86 assembler tests
-
-on:
- push:
- paths-ignore:
- - 'doc/**'
- - '**.md'
- - '**.rdoc'
- pull_request:
- paths-ignore:
- - 'doc/**'
- - '**.md'
- - '**.rdoc'
-
-concurrency:
- group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
- cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}
-
-jobs:
- test:
- runs-on: ubuntu-latest
- if: ${{ !startsWith(github.event.head_commit.message, '[DOC]') && !contains(github.event.pull_request.labels.*.name, 'Documentation') }}
- steps:
- - name: Install dependencies
- run: |
- set -x
- sudo apt-get update -q || :
- sudo apt-get install --no-install-recommends -q -y build-essential
- - name: git config
- run: |
- git config --global advice.detachedHead 0
- git config --global init.defaultBranch garbage
- - uses: actions/checkout@v2
- with:
- path: src
- - name: Run ASM tests
- run: ./misc/test_yjit_asm.sh
- working-directory: src
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 31bfd787a7..0000000000
--- a/.gitignore
+++ /dev/null
@@ -1,234 +0,0 @@
-*-*-*.def
-*-*-*.exp
-*-*-*.lib
-*.a
-*.bak
-*.bc
-*.bundle
-*.dSYM
-*.dmyh
-*.dylib
-*.elc
-*.i
-*.ii
-*.inc
-*.log
-*.o
-*.obj
-*.old
-*.orig
-*.pch
-*.pdb
-*.rbinc
-*.rej
-*.s
-*.sav
-*.sl
-*.so
-*.swp
-*.yarb
-*~
-.*.list
-.*.time
-.DS_Store
-.bundle
-.ccmalloc
-.ext
-.pc
-.ppack
-.svn
-.time
-.ruby-version
-Makefile
-cygruby*.def
-extconf.h
-y.output
-y.tab.c
-*.gcda
-*.gcno
-*.gcov
-*.vscode
-lcov*.info
-
-# /
-/*-fake.rb
-/*.dll
-/*.exe
-/*.res
-/*.pc
-/*.rc
-/*_prelude.c
-/.downloaded-cache
-/.top-enc.mk
-/build*/
-/COPYING.LIB
-/ChangeLog
-/Doxyfile
-/GNUmakefile
-/README.atheos
-/README.fat-patch
-/README.v6
-/TAGS
-/archive
-/autom4te*.cache
-/automake
-/benchmark/benchmark-driver
-/beos
-/bmlog-*
-/breakpoints.gdb
-/config.cache
-/config.h
-/config.h.in
-/config.status
-/config.status.lineno
-/configure
-/coverage/simplecov
-/coverage/simplecov-html
-/coverage/doclie
-/coverage/.last_run.json
-/coverage/.resultset.json*
-/coverage/assets
-/coverage/index.html
-/doc/capi
-/enc.mk
-/encdb.h
-/exts.mk
-/goruby
-/id.[ch]
-/largefile.h
-/lcov-c-out
-/lcov-rb-out
-/lcov-out
-/lex.c
-/libruby*.*
-/miniprelude.c
-/miniruby
-/newdate.rb
-/newline.c
-/newver.rb
-/parse.c
-/parse.h
-/patches
-/patches-master
-/pitest.rb
-/ppack
-/prelude.c
-/preview
-/probes.dmyh
-/probes.h
-/rbconfig.rb
-/rename2.h
-/repack
-/revision.h
-/revision.tmp
-/riscos
-/rubicon
-/ruby
-/ruby-runner
-/ruby-runner.h
-/ruby-man.rd.gz
-/run.gdb
-/sizes.c
-/static-ruby
-/test.rb
-/test-coverage.dat
-/tmp
-/transdb.h
-/uncommon.mk
-/verconf.h
-/verconf.mk
-/web
-/yasmdata.rb
-
-# /bin/
-
-/bin/*.exe
-/bin/*.dll
-
-# /benchmark/
-/benchmark/bm_require.data
-/benchmark/bmx_*.rb
-/benchmark/fasta.output.*
-/benchmark/wc.input
-
-/enc/*.def
-/enc/*.exp
-/enc/*.lib
-/enc/jis/props.h
-/enc/unicode/data
-
-# /coroutine/
-!/coroutine/**/*.s
-
-# /enc/trans/
-/enc/trans/*.c
-/enc/trans/*.def
-/enc/trans/*.exp
-/enc/trans/*.lib
-
-# /exe/
-/exe/goruby
-/exe/ruby
-
-# /ext/
-/ext/extinit.c
-/ext/configure-ext.mk
-/ext/*/exts.mk
-
-# /ext/-test-/cxxanyargs
-/ext/-test-/cxxanyargs/failure*.failed
-
-# /ext/-test-/win32/dln/
-/ext/-test-/win32/dln/dlntest.dll
-/ext/-test-/win32/dln/dlntest.exp
-/ext/-test-/win32/dln/dlntest.lib
-
-# /ext/-test-/gems
-/ext/-test-/gems
-
-# /ext/etc/
-/ext/etc/constdefs.h
-
-# /ext/fiddle/
-/ext/fiddle/libffi-*
-
-# /ext/rbconfig/
-/ext/rbconfig/sizeof/sizes.c
-/ext/rbconfig/sizeof/limits.c
-
-# /ext/ripper/
-/ext/ripper/eventids1.c
-/ext/ripper/.eventids2-check
-/ext/ripper/eventids2table.c
-/ext/ripper/ripper.*
-/ext/ripper/ids1
-/ext/ripper/ids2
-
-# /ext/socket/
-/ext/socket/constants.h
-/ext/socket/constdefs.h
-/ext/socket/constdefs.c
-
-# /gems
-/gems/*.gem
-/gems/src
-/gems/*-*
-
-# /lib/
-/lib/ruby/[1-9]*.*
-/lib/ruby/vendor_ruby
-
-# /spec/bundler
-/.rspec_status
-
-# /tool/
-/tool/config.guess
-/tool/config.sub
-
-# /win32/
-/win32/*.ico
-
-# MJIT
-/rb_mjit_header.h
-/mjit_config.h
-/include/ruby-*/*/rb_mjit_min_header-*.h
diff --git a/.rspec_parallel b/.rspec_parallel
deleted file mode 100644
index aaff198a32..0000000000
--- a/.rspec_parallel
+++ /dev/null
@@ -1,2 +0,0 @@
---format progress
---format ParallelTests::RSpec::RuntimeLogger --out tmp/parallel_runtime_rspec.log
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index f8c66f715e..0000000000
--- a/.travis.yml
+++ /dev/null
@@ -1,236 +0,0 @@
-# -*- YAML -*-
-# Copyright (C) 2011 Urabe, Shyouhei. All rights reserved.
-#
-# This file is a part of the programming language Ruby. Permission is hereby
-# granted, to either redistribute or modify this file, provided that the
-# conditions mentioned in the file COPYING are met. Consult the file for
-# details.
-
-# We only manage non-amd64 free pipelines.
-# https://docs.travis-ci.com/user/billing-overview/
-
-language: c
-
-os: linux
-
-if: commit_message !~ /^\[DOC\]/
-
-dist: focal
-
-git:
- quiet: true
-
-cache:
- ccache: true
- directories:
- - $HOME/config_2nd
- - $HOME/.downloaded-cache
-
-env:
- global:
- # The tests skipped in `make test-all`.
- - TEST_ALL_SKIPPED_TESTS=
- # The tests executed separately by `make test-all`.
- - TEST_ALL_SEPARATED_TESTS=
- # Reset timestamps early
- - _=$(touch NEWS && find . -type f -exec touch -r NEWS {} +)
- - CONFIGURE_TTY=no
- - CCACHE_COMPILERCHECK=none
- - CCACHE_NOCOMPRESS=1
- - CCACHE_MAXSIZE=512Mi
- - NPROC="`nproc`"
- # JOBS and SETARCH are overridden when necessary; see below.
- - JOBS=-j$((1+${NPROC}))
- - SETARCH=
- - RUBY_PREFIX=/tmp/ruby-prefix
- - GEMS_FOR_TEST='timezone tzinfo'
- # https://github.com/travis-ci/travis-build/blob/e411371dda21430a60f61b8f3f57943d2fe4d344/lib/travis/build/bash/travis_apt_get_options.bash#L7
- - travis_apt_get_options='--allow-downgrades --allow-remove-essential --allow-change-held-packages'
- - travis_apt_get_options="-yq --no-install-suggests --no-install-recommends $travis_apt_get_options"
- # -O1 is faster than -O3 in our tests.
- - optflags=-O1
- # -g0 disables backtraces when SEGV. Do not set that.
- - debugflags=-ggdb3
-
-.org.ruby-lang.ci.matrix-definitions:
-
- - &gcc-10
- compiler: gcc-10
- before_install:
- - tool/travis_retry.sh sudo bash -c "rm -rf '${TRAVIS_ROOT}/var/lib/apt/lists/'* && exec apt-get update -yq"
- - >-
- tool/travis_retry.sh sudo -E apt-get $travis_apt_get_options install
- ccache
- gcc-10
- g++-10
- libffi-dev
- libgdbm-dev
- libncurses-dev
- libncursesw5-dev
- libreadline-dev
- libssl-dev
- libyaml-dev
- openssl
- zlib1g-dev
-
- # --------
-
- - &arm64-linux
- name: arm64-linux
- arch: arm64
- <<: *gcc-10
-
- - &ppc64le-linux
- name: ppc64le-linux
- arch: ppc64le
- <<: *gcc-10
-
- - &s390x-linux
- name: s390x-linux
- arch: s390x
- <<: *gcc-10
-
- - &arm32-linux
- name: arm32-linux
- arch: arm64
- # https://packages.ubuntu.com/focal/crossbuild-essential-armhf
- compiler: arm-linux-gnueabihf-gcc
- env:
- - SETARCH='setarch linux32 --verbose --32bit'
- # The "TestReadline#test_interrupt_in_other_thread" started failing on arm32
- # from https://www.travis-ci.com/github/ruby/ruby/jobs/529005145
- - TEST_ALL_SKIPPED_TESTS=test_interrupt_in_other_thread
- before_install:
- - sudo dpkg --add-architecture armhf
- - tool/travis_retry.sh sudo bash -c "rm -rf '${TRAVIS_ROOT}/var/lib/apt/lists/'* && exec apt-get update -yq"
- - >-
- tool/travis_retry.sh sudo -E apt-get $travis_apt_get_options install
- ccache
- crossbuild-essential-armhf
- libc6:armhf
- libstdc++-10-dev:armhf
- libffi-dev:armhf
- libgdbm-dev:armhf
- libncurses-dev:armhf
- libncursesw5-dev:armhf
- libreadline-dev:armhf
- libssl-dev:armhf
- linux-libc-dev:armhf
- zlib1g-dev:armhf
-
-matrix:
- include:
- # Build every commit (Allowed Failures):
- - <<: *arm32-linux
- # Comment out as the 2nd arm64 pipeline is unstable.
- # - <<: *arm64-linux
- - <<: *ppc64le-linux
- - <<: *s390x-linux
- allow_failures:
- # We see multiple errors indicating errors on the Travis environment itself in a short while:
- # https://app.travis-ci.com/github/ruby/ruby/jobs/544382885
- # https://app.travis-ci.com/github/ruby/ruby/jobs/544361370
- # It's not a fault of Ruby's arm32 support but just Travis arm32 seems unsable.
- - name: arm32-linux
- # - name: arm64-linux
- # We see "Some worker was crashed." in about 40% of recent ppc64le-linux jobs
- # e.g. https://app.travis-ci.com/github/ruby/ruby/jobs/530959548
- - name: ppc64le-linux
- # Tentatively disable, because often hungs up **after** all tests
- # have finished successfully and saving caches.
- - name: s390x-linux
- fast_finish: true
-
-before_script:
- - . tool/ci_functions.sh
- - |-
- if [ -n "${TEST_ALL_SKIPPED_TESTS}" ]; then
- TEST_ALL_OPTS="${TEST_ALL_OPTS} $(ci_to_excluded_test_opts "${TEST_ALL_SKIPPED_TESTS}")"
- if [ -z "${TEST_ALL_SEPARATED_TESTS}" ]; then
- TEST_ALL_SEPARATED_TESTS="${TEST_ALL_SKIPPED_TESTS}"
- fi
- fi
- - |-
- if [ -n "${TEST_ALL_SEPARATED_TESTS}" ]; then
- TEST_ALL_OPTS_SEPARATED="$(ci_to_included_test_opts "${TEST_ALL_SEPARATED_TESTS}")"
- fi
- - echo TEST_ALL_OPTS="${TEST_ALL_OPTS}" TEST_ALL_OPTS_SEPARATED="${TEST_ALL_OPTS_SEPARATED}"
- - rm -fr .ext autom4te.cache
- - |-
- [ -d ~/.downloaded-cache ] ||
- mkdir ~/.downloaded-cache
- - ln -s ~/.downloaded-cache
- - "> config.status"
- - "> .rbconfig.time"
- - sed -f tool/prereq.status template/Makefile.in common.mk > Makefile
- - make -s $JOBS up
- - make -s $JOBS srcs
- - rm -f config.status Makefile rbconfig.rb .rbconfig.time
- - |-
- if [ -d ~/config_2nd ]; then
- cp -pr ~/config_2nd build
- else
- mkdir build
- fi
- - mkdir config_1st config_2nd
- - chmod -R a-w .
- - chmod -R u+w build config_1st config_2nd
- - cd build
- - |-
- case "$CC" in
- gcc*) CC="ccache $CC${GCC_FLAGS:+ }$GCC_FLAGS -fno-diagnostics-color";;
- clang*) CC="ccache $CC${GCC_FLAGS:+ }$GCC_FLAGS -fno-color-diagnostics";;
- esac
- - |-
- [ ! -f config.cache ] ||
- [ "$CC" = "`sed -n s/^ac_cv_prog_CC=//p config.cache`" ] ||
- (set -x; exec rm config.cache)
- - $SETARCH ../configure -C --disable-install-doc --prefix=$RUBY_PREFIX $CONFIG_FLAG
- - cp -pr config.cache config.status .ext/include ../config_1st
- - $SETARCH make reconfig
- - cp -pr config.cache config.status .ext/include ../config_2nd
- - (cd .. && exec diff -ru config_1st config_2nd)
- - chmod u+w ..
- - rm -rf ~/config_2nd
- - mv ../config_2nd ~
- - chmod u-w ..
- - $SETARCH make -s $JOBS
- - make -s install
- - |-
- [ -z "${GEMS_FOR_TEST}" ] ||
- $RUBY_PREFIX/bin/gem install --no-document $GEMS_FOR_TEST
- - echo "raise 'do not load ~/.irbrc in test'" > ~/.irbrc
-
-script:
- - $SETARCH make -s test -o showflags TESTOPTS="${TESTOPTS=$JOBS -q --tty=no}"
- - ../tool/travis_wait.sh $SETARCH make -s test-all -o exts TESTOPTS="$JOBS -q --tty=no ${TEST_ALL_OPTS}" RUBYOPT="-w"
- # Run the failing tests separately returning ok status to check if it works,
- # visualize them.
- - |
- if [ -n "${TEST_ALL_OPTS_SEPARATED}" ]; then
- $SETARCH make -s test-all -o exts TESTOPTS="$JOBS -v --tty=no ${TEST_ALL_OPTS_SEPARATED}" RUBYOPT="-w" || :
- fi
- - $SETARCH make -s test-spec MSPECOPT=-ff # not using `-j` because sometimes `mspec -j` silently dies
- - $SETARCH make -s -o showflags leaked-globals
-
-# We enable Travis on the specific branches or forked repositories here.
-if: (repo = ruby/ruby AND (branch = master OR branch =~ /^ruby_\d_\d$/)) OR repo != ruby/ruby
-
-# We want to be notified when something happens.
-notifications:
- irc:
- channels:
- - "chat.freenode.net#ruby-core"
- on_success: change # [always|never|change] # default: always
- on_failure: always # [always|never|change] # default: always
- template:
- - "%{message} by @%{author}: See %{build_url}"
-
- webhooks:
- urls:
- - secure: mRsoS/UbqDkKkW5p3AEqM27d4SZnV6Gsylo3bm8T/deltQzTsGzZwrm7OIBXZv0UFZdE68XmPlyHfZFLSP2V9QZ7apXMf9/vw0GtcSe1gchtnjpAPF6lYBn7nMCbVPPx9cS0dwL927fjdRM1vj7IKZ2bk4F0lAJ25R25S6teqdk= # ruby-lang slack: ruby/simpler-alerts-bot (travis)
- on_success: never
- on_failure: always
-
- email:
- - jaruga@ruby-lang.org
diff --git a/BSDL b/BSDL
deleted file mode 100644
index 66d93598aa..0000000000
--- a/BSDL
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (C) 1993-2013 Yukihiro Matsumoto. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
deleted file mode 100644
index 7363c106a2..0000000000
--- a/CONTRIBUTING.md
+++ /dev/null
@@ -1,5 +0,0 @@
-Please see the [official issue tracker], [doc/contributing.rdoc] and wiki [HowToContribute].
-
-[official issue tracker]: https://bugs.ruby-lang.org
-[doc/contributing.rdoc]: contributing.rdoc
-[HowToContribute]: https://bugs.ruby-lang.org/projects/ruby/wiki/HowToContribute
diff --git a/COPYING b/COPYING
index 48e5a96de7..eeb586b392 100644
--- a/COPYING
+++ b/COPYING
@@ -1,56 +1,340 @@
-Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.jp>.
-You can redistribute it and/or modify it under either the terms of the
-2-clause BSDL (see the file BSDL), or the conditions below:
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
-1. You may make and give away verbatim copies of the source form of the
- software without restriction, provided that you duplicate all of the
- original copyright notices and associated disclaimers.
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
-2. You may modify your copy of the software in any way, provided that
- you do at least ONE of the following:
+ Preamble
- a. place your modifications in the Public Domain or otherwise
- make them Freely Available, such as by posting said
- modifications to Usenet or an equivalent medium, or by allowing
- the author to include your modifications in the software.
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
- b. use the modified software only within your corporation or
- organization.
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
- c. give non-standard binaries non-standard names, with
- instructions on where to get the original software distribution.
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
- d. make other distribution arrangements with the author.
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
-3. You may distribute the software in object code or binary form,
- provided that you do at least ONE of the following:
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
- a. distribute the binaries and library files of the software,
- together with instructions (in the manual page or equivalent)
- on where to get the original distribution.
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
- b. accompany the distribution with the machine-readable source of
- the software.
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
- c. give non-standard binaries non-standard names, with
- instructions on where to get the original software distribution.
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
- d. make other distribution arrangements with the author.
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
-4. You may modify and include the part of the software into any other
- software (possibly commercial). But some files in the distribution
- are not written by the author, so that they are not under these terms.
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
- For the list of those files and their copying conditions, see the
- file LEGAL.
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
-5. The scripts and library files supplied as input to or produced as
- output from the software do not automatically fall under the
- copyright of the software, but belong to whomever generated them,
- and may be sold commercially, and may be aggregated with this
- software.
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
-6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
- IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- PURPOSE.
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) 19yy <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/COPYING.ja b/COPYING.ja
deleted file mode 100644
index 230376bc60..0000000000
--- a/COPYING.ja
+++ /dev/null
@@ -1,51 +0,0 @@
-本プログラムã¯ãƒ•リーソフトウェアã§ã™ï¼Ž2-clause BSDL
-ã¾ãŸã¯ä»¥ä¸‹ã«ç¤ºã™æ¡ä»¶ã§æœ¬ãƒ—ログラムをå†é…布ã§ãã¾ã™
-2-clause BSDLã«ã¤ã„ã¦ã¯BSDLファイルをå‚ç…§ã—ã¦ä¸‹ã•ã„.
-
-1. 複製ã¯åˆ¶é™ãªã自由ã§ã™ï¼Ž
-
-2. ä»¥ä¸‹ã®æ¡ä»¶ã®ã„ãšã‚Œã‹ã‚’満ãŸã™æ™‚ã«æœ¬ãƒ—ログラムã®ã‚½ãƒ¼ã‚¹ã‚’
- 自由ã«å¤‰æ›´ã§ãã¾ã™ï¼Ž
-
- a. ãƒãƒƒãƒˆãƒ‹ãƒ¥ãƒ¼ã‚ºã«ãƒã‚¹ãƒˆã—ãŸã‚Šï¼Œä½œè€…ã«å¤‰æ›´ã‚’é€ä»˜ã™ã‚‹
- ãªã©ã®æ–¹æ³•ã§ï¼Œå¤‰æ›´ã‚’公開ã™ã‚‹ï¼Ž
-
- b. 変更ã—ãŸæœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã‚’è‡ªåˆ†ã®æ‰€å±žã™ã‚‹çµ„織内部ã ã‘ã§
- 使ã†ï¼Ž
-
- c. 変更点を明示ã—ãŸã†ãˆï¼Œã‚½ãƒ•トウェアã®åå‰ã‚’変更ã™ã‚‹ï¼Ž
- ãã®ã‚½ãƒ•トウェアをé…布ã™ã‚‹æ™‚ã«ã¯å¤‰æ›´å‰ã®æœ¬ãƒ—ログラ
- ãƒ ã‚‚åŒæ™‚ã«é…布ã™ã‚‹ï¼Žã¾ãŸã¯å¤‰æ›´å‰ã®æœ¬ãƒ—ログラムã®ã‚½ãƒ¼
- スã®å…¥æ‰‹æ³•を明示ã™ã‚‹ï¼Ž
-
- d. ãã®ä»–ã®å¤‰æ›´æ¡ä»¶ã‚’作者ã¨åˆæ„ã™ã‚‹ï¼Ž
-
-3. ä»¥ä¸‹ã®æ¡ä»¶ã®ã„ãšã‚Œã‹ã‚’満ãŸã™æ™‚ã«æœ¬ãƒ—ログラムをコンパイ
- ルã—ãŸã‚ªãƒ–ジェクトコードや実行形å¼ã§ã‚‚é…布ã§ãã¾ã™ï¼Ž
-
- a. ãƒã‚¤ãƒŠãƒªã‚’å—ã‘å–ã£ãŸäººãŒã‚½ãƒ¼ã‚¹ã‚’入手ã§ãるよã†ã«ï¼Œ
- ソースã®å…¥æ‰‹æ³•を明示ã™ã‚‹ï¼Ž
-
- b. 機械å¯èª­ãªã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã‚’添付ã™ã‚‹ï¼Ž
-
- c. 変更を行ã£ãŸãƒã‚¤ãƒŠãƒªã¯åå‰ã‚’変更ã—ãŸã†ãˆï¼Œã‚ªãƒªã‚¸ãƒŠ
- ルã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã®å…¥æ‰‹æ³•を明示ã™ã‚‹ï¼Ž
-
- d. ãã®ä»–ã®é…布æ¡ä»¶ã‚’作者ã¨åˆæ„ã™ã‚‹ï¼Ž
-
-4. ä»–ã®ãƒ—ログラムã¸ã®å¼•用ã¯ã„ã‹ãªã‚‹ç›®çš„ã§ã‚れ自由ã§ã™ï¼ŽãŸ
- ã ã—,本プログラムã«å«ã¾ã‚Œã‚‹ä»–ã®ä½œè€…ã«ã‚ˆã‚‹ã‚³ãƒ¼ãƒ‰ã¯ï¼Œã
- れãžã‚Œã®ä½œè€…ã®æ„å‘ã«ã‚ˆã‚‹åˆ¶é™ãŒåŠ ãˆã‚‰ã‚Œã‚‹å ´åˆãŒã‚りã¾ã™ï¼Ž
-
- ãれらファイルã®ä¸€è¦§ã¨ãれãžã‚Œã®é…布æ¡ä»¶ãªã©ã«ä»˜ã„ã¦ã¯
- LEGALファイルをå‚ç…§ã—ã¦ãã ã•ã„.
-
-5. 本プログラムã¸ã®å…¥åŠ›ã¨ãªã‚‹ã‚¹ã‚¯ãƒªãƒ—トãŠã‚ˆã³ï¼Œæœ¬ãƒ—ログラ
- ムã‹ã‚‰ã®å‡ºåŠ›ã®æ¨©åˆ©ã¯æœ¬ãƒ—ログラムã®ä½œè€…ã§ã¯ãªã,ãれãž
- れã®å…¥å‡ºåŠ›ã‚’ç”Ÿæˆã—ãŸäººã«å±žã—ã¾ã™ï¼Žã¾ãŸï¼Œæœ¬ãƒ—ログラムã«
- 組ã¿è¾¼ã¾ã‚Œã‚‹ãŸã‚ã®æ‹¡å¼µãƒ©ã‚¤ãƒ–ラリã«ã¤ã„ã¦ã‚‚åŒæ§˜ã§ã™ï¼Ž
-
-6. 本プログラムã¯ç„¡ä¿è¨¼ã§ã™ï¼Žä½œè€…ã¯æœ¬ãƒ—ログラムをサãƒãƒ¼ãƒˆ
- ã™ã‚‹æ„å¿—ã¯ã‚りã¾ã™ãŒï¼Œãƒ—ログラム自身ã®ãƒã‚°ã‚ã‚‹ã„ã¯æœ¬ãƒ—
- ログラムã®å®Ÿè¡Œãªã©ã‹ã‚‰ç™ºç”Ÿã™ã‚‹ã„ã‹ãªã‚‹æå®³ã«å¯¾ã—ã¦ã‚‚責
- 任をæŒã¡ã¾ã›ã‚“.
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 0000000000..d97debfe18
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,5426 @@
+Mon Dec 6 15:55:30 1999 EGUCHI Osamu <eguchi@shizuokanet.ne.jp>
+
+ * numeric.c (fix_rshift): Fix -1 >> 32 returned 0. (-1 is true)
+
+ * numeric.c (fix_rshift): Fix 1 >> -1 returned 0. (2 is true)
+
+Mon Dec 6 11:47:23 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * sprintf.c (rb_f_sprintf): formatted string must be tainted if
+ any of parameters is tainted.
+
+ * file.c (rb_file_s_expand_path): expanded file path need not to
+ be tainted always.
+
+Sat Dec 4 01:40:22 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * bignum.c (rb_big_rand): should not use rand/random where drand48
+ may be available. RANDOM_NUMBER should be provided from outside.
+
+Fri Dec 3 09:54:59 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_f_require): should check require 'feature.o' too.
+
+Thu Dec 2 11:58:15 1999 Koji Arai <JCA02266@nifty.ne.jp>
+
+ * eval.c (rb_thread_loading): should maintain loading_tbl.
+
+Thu Dec 2 10:21:43 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_thread_loading_done): wrong parameter to st_delete().
+
+Wed Dec 1 09:47:33 1999 Kazunori NISHI <kazunori@swlab.csce.kyushu-u.ac.jp>
+
+ * string.c (rb_str_split_method): should increment end too.
+
+Tue Nov 30 01:46:18 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * re.c (rb_reg_source): generated source string must be tainted if
+ regex is tainted.
+
+ * file.c (rb_file_s_basename): basename should not be tainted
+ unless the original path is tainted.
+
+ * file.c (rb_file_s_dirname): ditto.
+
+Mon Nov 29 15:28:52 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * variable.c (rb_path2class): evaluated value from path should be
+ module or class.
+
+Fri Nov 26 18:12:49 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_exec_end_proc): should remove only end_procs defined
+ within load wrapper.
+
+ * eval.c (rb_load): save and restore ruby_wrapper around loading.
+
+ * eval.c (rb_mark_end_proc): mark end procs registered by END{} or
+ at_exit{}.
+
+ * eval.c (rb_set_end_proc): should not call rb_global_variable()
+ on heap address; it crashed mod_ruby.
+
+Fri Nov 26 18:12:49 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * enum.c (enum_grep): does not return nil.
+
+ * eval.c (rb_mark_end_proc): mark end procs registered by END{} or
+ at_exit{}.
+
+ * eval.c (rb_set_end_proc): should not call rb_global_variable()
+ on heap address; it crashed mod_ruby.
+
+Thu Nov 18 16:18:27 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * lib/pstore.rb: mutual lock by flock(2).
+
+Thu Nov 18 11:44:13 1999 Masahiro Tomita <tommy@tmtm.org>
+
+ * io.c (read_all): should check bytes too.
+
+Mon Nov 15 16:50:34 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * enum.c (enum_grep): grep with block returns collection of
+ evaluated values of block over matched elements.
+
+Mon Nov 15 04:50:33 1999 Koji Arai <JCA02266@nifty.ne.jp>
+
+ * re.c (rb_reg_source): should not call rb_reg_expr_str()
+ everytime.
+
+Fri Nov 12 23:52:19 1999 Katsuyuki Komatsu <komatsu@sarion.co.jp>
+
+ * process.c (rb_f_system): argument check for NT, __EMX__, DJGPP.
+
+Wed Nov 10 21:54:11 1999 EGUCHI Osamu <eguchi@shizuokanet.ne.jp>
+
+ * hash.c (rb_any_cmp): Fixed return without value.
+
+Tue Nov 9 13:21:04 1999 EGUCHI Osamu <eguchi@shizuokanet.ne.jp>
+
+ * configure.in: AC_MINIX move to before AC_EXEEXT and AC_OBJEXT.
+
+Mon Nov 8 19:52:29 1999 EGUCHI Osamu <eguchi@shizuokanet.ne.jp>
+
+ * configure.in: Renamed AC_CHAR_UNSIGNED to AC_C_CHAR_UNSIGNED.
+
+ * configure.in: Added default to AC_CHECK_SIZEOF().
+
+Mon Nov 8 14:28:18 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_f_eval): fake outer scope when eval() called without
+ bindings.
+
+ * eval.c (rb_f_binding): should copy last_class in the outer frame too.
+
+Sun Nov 7 18:31:04 1999 Yasuhiro Fukuma <yasuf@big.or.jp>
+
+ * eval.c (is_defined): last_class may be 0.
+
+Sat Nov 6 19:26:55 1999 EGUCHI Osamu <eguchi@shizuokanet.ne.jp>
+
+ * Makefile.in: Added depend entry make parse.@OBJEXT@ from parse.c
+ for UCB make
+
+Wed Nov 3 08:52:57 1999 Masaki Fukushima <fukusima@goto.info.waseda.ac.jp>
+
+ * io.c (Init_IO): forgot to use INT2FIX() around SEEK_SET, etc.
+
+Wed Nov 3 00:25:20 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (rb_str_split_method): use mbclen2() to handle kcode
+ option of regexp objects.
+
+Sun Oct 31 13:12:42 1999 WATANABE Hirofumi <eban@os.rim.or.jp>
+
+ * regex.c (re_compile_pattern): wrong [\W] match.
+
+Thu Oct 28 13:35:40 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (rb_str_split_method): should be mbchar aware with
+ single char separators.
+
+Wed Oct 27 12:57:21 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * random.c (rb_f_srand): random seed should be unsigned.
+
+Tue Oct 26 19:20:54 1999 Koji Arai <JCA02266@nifty.ne.jp>
+
+ * marshal.c (r_object): should register class/module objects.
+
+Sat Oct 23 15:59:39 1999 Takaaki Tateishi <ttate@jaist.ac.jp>
+
+ * process.c (rb_f_system): should require at least one argument.
+
+Thu Oct 21 16:14:19 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * dir.c (fnmatch): use eban's fnmatch; do not depend on systems's
+ fnmatch (which may have portability problem) anymore.
+
+Wed Oct 20 15:14:24 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * marshal.c (marshal_load): should protect the generated object
+ table (arg->data) from GC.
+
+Mon Oct 18 16:15:52 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ext/nkf/nkf.c (rb_nkf_kconv): output should be NUL terminated.
+
+Fri Oct 15 22:50:41 1999 WATANABE Hirofumi <eban@os.rim.or.jp>
+
+ * error.c (sys_nerr): on CYGWIN, it is _sys_nerr.
+
+Fri Oct 15 01:32:31 1999 WATANABE Hirofumi <eban@os.rim.or.jp>
+
+ * ext/Win32API/Win32API.c (Win32API_Call): need to use NUM2ULONG,
+ not NUM2INT.
+
+Tue Oct 12 22:29:04 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (block_pass): should copy block to prevent modifications.
+ tag in the structure should be updated from latest prot_tag.
+
+ * eval.c (proc_s_new): tag in struct BLOCK should not point into
+ unused stack.
+
+ * io.c (io_read): length may be 0 or negative.
+
+Tue Oct 12 13:26:27 1999 Jun-ichiro itojun Hagino <itojun@itojun.org>
+
+ * signal.c (posix_signal): RETSIGTYPE may be void.
+
+Mon Oct 11 17:42:25 1999 Nobuyoshi Nakada <nobu.nakada@nifty.ne.jp>
+
+ * parse.y (rb_intern): should generate distinct ID_ATTRSET symbols
+ for the name with multiple `='s at the end.
+
+ * Makefile.in (CPPFLAGS): separate cpp flags from CFLAGS.
+
+Mon Oct 11 07:27:05 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_eval): should not execute the `else' clause on the
+ case the exceptions are handled by the `rescue' clause.
+
+ * signal.c (Init_signal): ignore SIGPIPE by default.
+
+Mon Oct 4 12:42:32 1999 Kazuhiko Izawa <izawa@erec.che.tohoku.ac.jp>
+
+ * pack.c (pack_unpack): % in printf format should be %%.
+
+Wed Oct 6 17:13:19 1999 Nobuyoshi Nakada <nobu.nakada@nifty.ne.jp>
+
+ * ruby.c (addpath): rubylib_mangled_path() modified.
+
+Mon Oct 4 10:01:40 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * variable.c (rb_obj_instance_variables): should always return
+ array for all object can have instance variables now.
+
+Mon Oct 4 00:08:34 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * pack.c (OFF16): need to adjust pointer address to pack/unpack on
+ 64bit machines.
+
+Sun Oct 03 03:05:59 1999 WATANABE Hirofumi <eban@os.rim.or.jp>
+
+ * time.c (time_arg): mktime y2k problem.
+
+Sun Sep 26 16:54:45 1999 WATANABE Hirofumi <eban@os.rim.or.jp>
+
+ * parse.y (here_document): `\r' handling for here documents.
+
+Wed Sep 22 09:20:11 1999 Masahiro Tomita <tommy@tmtm.org>
+
+ * ext/socket/socket.c: SOCKS5 support.
+
+Wed Sep 22 00:35:30 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (rb_str_include): should return boolean value.
+
+ * regex.c (re_compile_fastmap): wrong comparison with mbc.
+
+ * eval.c (specific_eval): default sourcefile name should be
+ "(eval)" for module_eval etc.
+
+Wed Sep 22 00:06:07 1999 Katsuyuki Komatsu <komatsu@sarion.co.jp>
+
+ * win32/Makefile: update rules.
+
+ * io.c (io_fread): should not assign in char, it maybe -1.
+
+Tue Sep 21 23:57:54 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (call_trace_func): should not propagate retval in
+ trace_func.
+
+Mon Sep 20 21:35:39 1999 Katsuyuki Komatsu <komatsu@sarion.co.jp>
+
+ * win32/win32.c (myselect): assume non socket files are always
+ readable/writable.
+
+Mon Sep 20 01:08:02 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c (io_fread): should not block other threads.
+
+ * io.c (rb_io_synchronized): renamed from rb_io_unbuffered(); do
+ not call setbuf(NULL) anymore.
+
+Sat Sep 18 13:45:43 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * stable version 1.4.2 released.
+
+Fri Sep 17 23:24:17 1999 Katsuyuki Komatsu <komatsu@sarion.co.jp>
+
+ * eval.c (rb_f_missing): dumped core if no argument given.
+
+Fri Sep 17 23:21:06 1999 Katsuyuki Komatsu <komatsu@sarion.co.jp>
+
+ * win32/win32.c (myselect): translate WSAEINTR, WSAENOTSOCK into
+ UNIX errno constants.
+
+Fri Sep 17 00:52:27 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (arg): assignable() may return 0.
+
+Thu Sep 16 20:46:23 1999 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * eval.c (rb_eval): was doubly evaluating the return expression.
+
+Thu Sep 16 18:40:08 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * stable version 1.4.1 released.
+
+Thu Sep 16 11:33:22 1999 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * string.c (rb_str_match): should return nil.
+
+Wed Sep 15 22:46:37 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * re.c (rb_reg_s_quote): should quote `-' too.
+
+Tue Sep 14 15:23:22 1999 Nobuyoshi Nakada <nobu.nakada@nifty.ne.jp>
+
+ * parse.y (yylex): no need to ignore `\r' here.
+
+ * parse.y (nextc): strip `\r' from text.
+
+ * parse.y (nextc): support `__END__\r\n' type terminator.
+
+Mon Sep 13 10:49:19 1999 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * eval.c (rb_eval): needless RTEST(ruby_verbose) removed.
+
+Wed Sep 8 11:37:38 1999 Tadayoshi Funaba <tadf@kt.rim.or.jp>
+
+ * time.c (make_time_t): bit more strict comparison.
+
+Tue Sep 7 00:50:56 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * range.c (range_each): use rb_str_upto() for strings.
+
+ * string.c (rb_str_upto): set upper limit by comparing curr <= end.
+
+ * range.c (range_each): should check equality to handle magic
+ increment.
+
+Mon Sep 6 22:43:33 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_eval): break/next/redo available within -n/-p loop.
+
+Fri Sep 3 11:14:31 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * compar.c (cmp_equal): should not raise exception; protect by
+ rb_rescue().
+
+Thu Sep 2 05:23:05 1999 WATANABE Hirofumi <eban@os.rim.or.jp>
+
+ * file.c (rb_file_s_expand_path): use dirsep, instead of character
+ literal '/'.
+
+ * file.c (rb_file_s_expand_path): reduce multiple dirsep at the top.
+
+Wed Sep 1 00:28:27 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_call): call rb_undefined() if a method appears not to
+ be exist explicitly from cache.
+
+ * eval.c (rb_method_boundp): check method cache before calling
+ rb_get_method_body().
+
+ * eval.c (rb_get_method_body): store method non-existence
+ information in the cache.
+
+ * random.c (rb_f_srand): use getpid(2) to generate seed.
+
+ * regex.c (re_match): do not apply partial mbc match for
+ charset_not.
+
+ * regex.c (re_compile_pattern): put extended literal prefix (0xff)
+ only before numeric literals, not before all >0x80 char.
+
+ * regex.c (re_compile_pattern): put numeric literal in extended
+ charset region, not normal charset bits.
+
+ * regex.c (re_compile_fastmap): calculate fastmap for charset and
+ charset_not to treat numeric literal (e.g. \246) specially.
+
+Fri Aug 28 17:32:55 1999 Yasuhiro Fukuma <yasuf@big.or.jp>
+
+ * eval.c (rb_eval): should set return value (nil) explicitly if a
+ value is ommited for return statement.
+
+Thu Aug 26 15:06:11 1999 Masaki Fukushima <fukusima@goto.info.waseda.ac.jp>
+
+ * gc.c (rb_gc): local variables may be placed beyond stack_end, so
+ use an address from alloca(1) on non C_ALLOCA platforms.
+
+Thu Aug 26 01:24:17 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * sprintf.c (rb_f_sprintf): "%%" is legal, but "%3.14%" is not.
+
+Mon Aug 23 00:00:54 1999 Tsukada Takuya <tsukada@fminn.nagano.nagano.jp>
+
+ * regex.c (re_compile_fastmap): wrong macro caused memory leak.
+
+Sat Aug 21 11:30:51 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (ADJ): should not adjust addresses to data on heap.
+
+Fri Aug 20 20:50:58 1999 Kenji Nagasawa <kenn@hma.att.ne.jp>
+
+ * defines.h (PATH_SEP): path separator is ";" for OS/2.
+
+Thu Aug 19 10:50:43 1999 WATANABE Tetsuya <tetsu@jpn.hp.com>
+
+ * gc.c (rb_gc): add volatile to avoid GCC optimaize bug(?).
+
+Wed Aug 18 23:48:10 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * due to disk trouble, some change records were lost. several
+ modification made to eval.c, gc.c, io.c, pack.c,
+ ext/extmk.rb.in, and lib/mkmf.rb.
+
+Fri Aug 13 15:41:39 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * stable version 1.4.0 released.
+
+Fri Aug 13 03:16:07 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c (argf_forward): since $stdout may be non-IO, ARGF.file is
+ not granteed to be IO. check and forwarding added to every ARGF
+ method.
+
+ * io.c (set_outfile): $stdout/$stderr may not be IO now.
+
+ * io.c (set_stdin): $stdin may not be IO now.
+
+ * range.c (rb_range_beg_len): round `end' to length as documented.
+
+ * io.c (Init_IO): preserve original stdin/stdout/stderr.
+
+Thu Aug 12 13:44:33 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (Init_load): require receives 1 argument.
+
+ * eval.c (frame_dup): should clear tmp to avoid dangling
+ references.
+
+Wed Aug 11 13:33:13 1999 Katsuyuki Komatsu <komatsu@sarion.co.jp>
+
+ * eval.c (rb_eval): no automatic aggregate initialization.
+
+ * eval.c (module_setup): ditto.
+
+Wed Aug 11 18:18:41 1999 WATANABE Tetsuya <tetsu@jpn.hp.com>
+
+ * eval.c (yield_under_i): automatic aggregate initialization is an
+ ANSI feature.
+
+Wed Aug 11 10:10:02 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (yylex): parse `[].length==0' as `([].length)==0', not
+ `([].length=)=0'
+
+ * parse.y (yylex): parse `[].length!=0' as `([].length)!=0', not
+ `([].length!)=0'
+
+ * parse.y (peek): peek-in lexical buffer.
+
+Wed Aug 11 00:34:05 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (re_match): bug on backward jump adjustment concerning
+ stop_paren.
+
+Tue Aug 10 14:54:25 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ext/nkf/nkf.c (rb_nkf_guess): binary detection was wrong.
+
+Tue Aug 10 00:07:36 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c (rb_io_clone): should use CLONESETUP().
+
+Mon Aug 9 23:57:07 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ruby.h (CLONESETUP): should have copied generic instance
+ variables too.
+
+Mon Aug 9 10:46:54 1999 Katsuyuki Komatsu <komatsu@sarion.co.jp>
+
+ * ext/socket/extconf.rb: add check for <arpa/nameser.h> and
+ <resolv.h>.
+
+Sat Aug 7 13:19:06 1999 EGUCHI Osamu <eguchi@shizuokanet.ne.jp>
+
+ * numeric.c (flo_cmp): comparing NaN should not return value.
+ raises FloatDomainError.
+
+Sat Aug 7 03:09:08 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (blk_free): free copied frames too.
+
+ * eval.c (frame_dup): should copy previous frames from stack to
+ heap to preserve frame information.
+
+Fri Aug 6 15:01:07 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.3.7 - version 1.4 beta
+
+ * ext/socket/socket.c (s_recv): UDPsocket#recvfrom now returns
+ IPsocket#addr information.
+
+ * array.c (rb_ary_subary): ary[-3,3] should not return nil.
+
+Thu Aug 5 10:58:01 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (thread_mark): protect old ruby_frame from GC during it
+ replaced by eval().
+
+ * eval.c (eval): do not modify frame.prev; binding should preserve
+ information about calling() too.
+
+ * eval.c (rb_yield_0): no arity check for mere yield; but only for
+ Proc#call.
+
+Tue Aug 3 22:07:13 1999 Kazuhiro HIWADA <hiwada@kuee.kyoto-u.ac.jp>
+
+ * object.c (rb_mod_clone): should check if iv_tbl, m_tbl are
+ initialized.
+
+Tue Aug 3 19:03:02 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * hash.c (rb_any_cmp): use rb_with_disable_interrupt() to ensure
+ clearance of rb_prohibit_interrupt even on failure.
+
+ * eval.c (rb_with_disable_interrupt): new function added.
+
+Sat Jul 31 23:23:44 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_thread_create_0): set THREAD_RAISED flag on thread
+ termination by exception.
+
+ * eval.c (rb_thread_join): `$!' may not be nil for the threads
+ created in rescue clause.
+
+ * eval.c (rb_thread_status): ditto.
+
+ * eval.c (rb_thread_join): should re-raise exception for already
+ dead threads too.
+
+Fri Jul 30 17:56:54 1999 GOTO Kentaro <gotoken@math.sci.hokudai.ac.jp>
+
+ * object.c (rb_mod_ge): wrong comparison.
+
+Fri Jul 30 12:15:44 1999 Katsuyuki Komatsu <komatsu@sarion.co.jp>
+
+ * ext/tcltklib/extconf.rb: win32 support.
+
+ * lib/mkmf.rb: use append_library().
+
+ * ext/extmk.rb.in: ditto.
+
+Fri Jul 30 02:11:48 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * array.c (rb_ary_delete): should return nil for deleting non
+ existing item.
+
+ * io.c (rb_io_close): call rb_sys_wait() on explicit close.
+
+ * io.c (rb_io_fptr_close): do not call rb_sys_wait() on finalize.
+
+ * eval.c (yield_under_i): cbase context should be maintaind for
+ Module#module_eval(). suggested by <inaba@st.rim.or.jp>.
+
+Wed Jul 28 01:18:28 1999 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * Makefile.in: add -I$(hdrdir)/lib to install using ftools.
+
+ * util.c: use HAVE_FCNTL_H, not HAVE_FCNTL
+
+Wed Jul 28 18:24:45 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.3.6 - version 1.4 alpha
+
+Tue Jul 27 09:38:08 1999 EGUCHI Osamu <eguchi@shizuokanet.ne.jp>
+
+ * eval.c (rb_eval): reduce recursive rb_eval() calls by
+ NODE_BLOCKs.
+
+Tue Jul 27 01:20:40 1999 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * file.c (rb_file_s_expand_path): drive letter patch.
+
+Mon Jul 26 02:36:31 1999 Shugo Maeda <shugo@netlab.co.jp>
+
+ * eval.c (rb_load): should clear ruby_nerr.
+
+ * eval.c (rb_thread_join): oldbt should not be empty to unshift.
+
+Sun Jul 25 12:09:16 1999 Koji Arai <JCA02266@nifty.ne.jp>
+
+ * dir.c (push_braces): should treat nested braces.
+
+Fri Jul 23 02:49:49 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * hash.c (rb_hash_clear): dummy argument added; suggested by
+ <eguchi@shizuokanet.ne.jp>. thanks.
+
+Thu Jul 22 19:37:22 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_thread_join): get_backtrace() may retrun Qnil.
+ typecheck added.
+
+Tue Jul 20 14:36:43 1999 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * range.c (range_each): do not treat String specially (for future
+ override).
+
+Tue Jul 20 02:28:34 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c (rb_gets): $_ should be nil, when get returns nil.
+
+ * io.c (rb_f_gets): ditto.
+
+Mon Jul 19 17:13:09 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (re_compile_fastmap): should continue fastmap compile
+ for anychar_repeat, for it's repeat anyway.
+
+Mon Jul 26 13:33:45 1999 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * lib/jcode.rb: replaced by faster code.
+
+Mon Jul 19 01:57:28 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * lib/mkmf.rb: no longer use install program.
+
+ * ext/extmk.rb.in: use miniruby to install programs.
+
+Sat Jul 17 00:06:21 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ext/socket/socket.c (ipaddr): don't do reverse lookup if
+ attribute do_not_reverse_lookup is set for socket classes.
+ Experimental. Note this is a global attribute.
+
+Fri Jul 16 22:18:29 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c (rb_io_eof): use feof() to check EOF already met.
+
+ * io.c (read_all): should return nil at EOF.
+
+Fri Jul 16 13:39:42 1999 Wakou Aoyama <wakou@fsinet.or.jp>
+
+ * lib/telnet.rb: version 0.231.
+
+Fri Jul 16 10:58:22 1999 WATANABE Tetsuya <tetsu@jpn.hp.com>
+
+ * regex.c (re_match): debug print removed.
+
+Fri Jul 16 09:58:15 1999 Katsuyuki Komatsu <komatsu@sarion.co.jp>
+
+ * many files: clean up unsed variables found by gcc -Wall.
+
+ * lib/mkmf.rb: better cygwin support etc.
+
+ * ext/extmk.rb.in: ditto.
+
+ * instruby.rb: ditto.
+
+Fri Jul 16 01:37:50 1999 Koji Arai <JCA02266@nifty.ne.jp>
+
+ * string.c (rb_str_squeeze_bang): the type of local variable `c'
+ should be int, not char.
+
+ * string.c (rb_str_reverse): should always return copy.
+
+Thu Jul 15 23:25:57 1999 NAKAMURA Hiroshi <nakahiro@sarion.co.jp>
+
+ * lib/debug.rb: better display & frame treatment.
+
+Thu Jul 15 21:16:41 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * array.c (rb_ary_each): returns self for normal termination;
+ returns nil for break.
+
+ * string.c: non bang methods (e.g. String#sub) should always
+ return copy of the receiver.
+
+Thu Jul 15 21:09:15 1999 Masaki Fukushima <fukusima@goto.info.waseda.ac.jp>
+
+ * eval.c (find_file): do not add empty string to the path.
+
+ * configure.in (with-search-path): should not add empty string if
+ the option is not supplied.
+
+Thu Jul 15 17:49:08 1999 Ryo HAYASAKA <hayasaka@univ21.u-aizu.ac.jp>
+
+ * ext/tcltklib/tcltklib.c: move `#include "ruby.h"' forward.
+
+Thu Jul 15 16:54:16 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.3.5 - version 1.4 alpha
+
+Wed Jul 14 23:45:33 1999 Katsuyuki Komatsu <komatsu@sarion.co.jp>
+
+ * eval.c (ruby_init): initialize for the first time only.
+
+Tue Jul 13 00:15:19 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * hash.c (rb_hash_index): re-defined; method to retrieve a key
+ from the value.
+
+ * hash.c (Init_Hash): member? should be re-defined for Hash.
+
+Tue Jul 12 13:54:51 1999 EGUCHI Osamu <eguchi@shizuokanet.ne.jp>
+
+ * io.c (rb_file_sysopen): wrong number of argument.
+
+Mon Jul 12 11:52:35 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_f_missing): class name included in message.
+
+ * eval.c (print_undef): better error message.
+
+Sun Jul 11 05:36:17 1999 NAKAMURA, Hiroshi <nakahiro@sarion.co.jp>
+
+ * lib/debug.rb: patch to show proper position.
+
+Fri Jul 9 23:56:14 1999 WATANABE Hirofumi <eban@os.rim.or.jp>
+
+ * dln.c (dln_find_1): path conv. moved to conv_to_posix_path.
+
+ * dln.c (conv_to_posix_path): path conv. should be done.
+
+Fri Jul 9 10:26:47 1999 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * random.c (RANDOM_NUMBER): should place parentheses.
+
+Fri Jul 8 11:00:51 1999 Shugo Maeda <shugo@netlab.co.jp>
+
+ * numeric.c (fix_div): division may be out of fixnum range.
+
+ * bignum.c (bigdivmod): proper sign calculation to result.
+
+Wed Jul 7 18:27:41 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * st.c (st_delete_safe): was modifying wrong slot.
+
+Mon Jul 5 13:17:46 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * gc.c (rb_gc_call_finalizer_at_exit): close all files at exit.
+
+Fri Jul 2 18:00:21 1999 Minero Aoki <aamine@dp.u-netsurf.ne.jp>
+
+ * lib/Mail/README: Mail-0.3.0 added to the distribution.
+
+Fri Jul 2 01:45:32 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (re_compile_fastmap): avoid allocation of register
+ variables for each invocation of re_match(). Suggested by
+ Zasukhin Ruslan <ruslan@paradigmasoft.com>. Thanks.
+
+Tue Jun 29 20:39:24 1999 Koji Arai <JCA02266@nifty.ne.jp>
+
+ * ext/tk/lib/tk.rb (TkVariable): bug fix; should value type check
+ be added?
+
+ * string.c (rb_str_each_line): a bug in paragraph mode.
+
+ * ruby.c (load_file): shifted too much to skip #!.
+
+Tue Jun 29 06:50:21 1999 Wakou Aoyama <wakou@fsinet.or.jp>
+
+ * lib/CGI.rb: 0.30 - cleanup release, incompatible.
+
+ * lib/telnet.rb: 0.22 - timeout added.
+
+Tue Jun 29 10:49:25 1999 SHIROYAMA Takayuki <psi@fortune.nest.or.jp>
+
+ * configure.in: better Rhapsody support.
+
+ * lib/mkmf.rb: Rhapsody/NEXTSTEP support.
+
+Tue Jun 29 01:42:13 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ext/pty/pty.c (chld_changed): should use POSIX.1 style wait.
+
+Mon Jun 28 21:07:36 1999 KIMURA Koichi <kbk@kt.rim.or.jp>
+
+ * ext/extmk.rb.nt: wrong result for have_library().
+
+Mon Jun 28 15:24:05 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * missing/isinf.c: OSF/1 raises SIGFPE on one()/zero().
+
+ * regex.c (re_search): should search til EOS, for patterns may
+ match beyond the end of range.
+
+Mon Jun 28 12:49:12 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c (rb_f_select): should not accept Time objects as an
+ argument for it is time interval.
+
+ * process.c (rb_f_sleep): ditto.
+
+ * file.c (test_s): should return nil for false condition.
+
+Mon Jun 28 12:23:52 1999 Katsuyuki Komatsu <komatsu@sarion.co.jp>
+
+ * bignum.c (rb_dbl2big): typo.
+
+ * file.c (rb_f_test): ditto.
+
+ * string.c (rb_str_crypt): wrong message.
+
+Sun Jun 27 19:50:11 1999 Tadayoshi Funaba <tadf@kt.rim.or.jp>
+
+ * eval.c (rb_f_exit): should have treat signed integer status, not
+ VALUE.
+
+ * process.c (rb_f_exit_bang): should work like exit().
+
+Sun Jun 27 16:21:32 1999 WATANABE Hirofumi <eban@os.rim.or.jp>
+
+ * string.c (rb_str_rindex): wrong position to search.
+
+Sat Jun 26 04:05:30 1999 Takaaki Tateishi <ttate@jaist.ac.jp>
+
+ * configure.in (configure_args): --with-search-path to specify
+ additional ruby search path.
+
+ * ruby.c (ruby_prog_init): additional search path.
+
+Fri Jun 25 13:09:12 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * pack.c (pack_unpack): needed to initialize natint.
+
+ * regex.c (re_compile_pattern): add start_paren to avoid too much
+ finalization on maybe_finalize_jump.
+
+Fri Jun 25 13:07:20 1999 Koji Oda <oda@bsd1.qnes.nec.co.jp>
+
+ * missing/isinf.c: include "config.h" added.
+
+Fri Jun 25 07:25:05 1999 Katsuyuki Komatsu <komatsu@sarion.co.jp>
+
+ * lib/mkmf.rb: initialize $(topdir).
+
+ * ext/extmk.rb.in (install_rb): install lib/*.rb properly.
+
+ * configure.in (linux): specifies -rpath on --enable-shared.
+
+ * configure.in (aix): ruby.imp must reside in $(topdir).
+
+Thu Jun 24 19:11:29 1999 Yoshida Masato <yoshidam@yoshidam.net>
+
+ * parse.y (rb_str_extend): multi-byte identifier in expression
+ interpolation in strings.
+
+ * parse.y (yylex): support multi-byte char identifiers.
+
+Thu Jun 24 15:27:13 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (f_arg): check duplicate argument names.
+
+ * gc.c (rb_gc_mark): marking wrong member for NODE_ARGS.
+
+ * string.c (rb_str_rindex): POSITION specifies start point, not
+ end point.
+
+Thu Jun 24 13:00:17 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (print_mbc): wrong boundary.
+
+ * pack.c (uv_to_utf8): raises ArgError for too big value.
+
+Thu Jun 24 11:02:51 1999 Yoshida Masato <yoshidam@yoshidam.net>
+
+ * pack.c (uv_to_utf8): mask needed.
+
+Wed Jun 23 21:03:56 1999 Tadayoshi Funaba <tadf@kt.rim.or.jp>
+
+ * ruby.h (struct RFile): remove iv_tbl from struct. instance
+ variables are handled as generic ivs.
+
+Wed Jun 23 22:06:26 1999 Tadayoshi Funaba <tadf@kt.rim.or.jp>
+
+ * pack.c (utf8_to_uv): pack to 7 bytes sequence.
+
+ * pack.c (uv_to_utf8): wrong boundary.
+
+ * pack.c (pack_unpack): should treat as unsigned long.
+
+Wed Jun 23 15:10:11 1999 Inaba Hiroto <inaba@sdd.tokyo-sc.toshiba.co.jp>
+
+ * parse.y (parse_string): failed to parse nested braces.
+
+ * parse.y (parse_regx): nested braces within #{} available.
+
+Wed Jun 23 11:18:38 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (slow_search): wrong shift width for mbcs.
+
+ * eval.c (rb_thread_save_context): should not clear th->locals.
+
+Wed Jun 23 02:06:14 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (yylex): UMINUS binds too tight with digits. changed so
+ that -2**2 => -4.
+
+ * parse.y (close_paren): `do' for expr termination now works it
+ used to be.
+
+Wed Jun 22 18:26:42 1999 Koji Arai <JCA02266@nifty.ne.jp>
+
+ * pack.c (pack_pack): should initialize local variable `j'.
+
+Wed Jun 22 15:24:59 1999 Koji Arai <JCA02266@nifty.ne.jp>
+
+ * parse.y (here_document): a bug for multiline heredoc.
+
+Tue Jun 22 15:06:36 1999 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * ext/socket/socket.c (ruby_socket): forgot to return fd
+ explicitly.
+
+Tue Jun 22 13:34:12 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * rubyio.h (MakeOpenFile): should initialize member `iv_tbl'.
+
+Wed Jun 22 10:35:51 1999 Katsuyuki Komatsu <komatsu@sarion.co.jp>
+
+ * io.c (rb_io_gets_internal): getc(3) may not set errno on
+ interrupt.
+
+Mon Jun 21 22:39:28 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (call_required_libraries): ruby_sourceline should be
+ cleared before loading libraries.
+
+ * io.c (set_stdin): do not use reopen(), so that we don't need to
+ dup original stdin before assigning $stdin.
+
+Mon Jun 21 18:04:27 1999 Ryo HAYASAKA <hayasaka@univ21.u-aizu.ac.jp>
+
+ * ext/dbm/dbm.c: include <cdefs.h> for solaris 2.6.
+
+Mon Jun 21 15:59:47 1999 Nobuyoshi Nakada <nobu.nokada@softhome.net>
+
+ * ext/socket/socket.c (ip_addrsetup): forgot to put `else'.
+
+Mon Jun 21 15:38:37 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c (fptr_finalize): remove rb_syswait() invocation to avoid
+ wait4(2) within GC. rb_syswait() moved to rb_io_fptr_close().
+
+Mon Jun 21 12:05:59 1999 Tadayoshi Funaba <tadf@kt.rim.or.jp>
+
+ * dir.c (dir_s_glob): remove MAXPATHLEN restriction.
+
+ * ext/md5/md5init.c (md5_hexdigest): should have used "%02x".
+
+Sun Jun 20 19:50:38 1999 Minero Aoki <aamine@dp.u-netsurf.ne.jp>
+
+ * string.c (rb_str_each_line): should have checked string
+ boundary.
+
+Sat Jun 19 22:24:12 1999 Kenji Nagasawa <kenn@hma.att.ne.jp>
+
+ * OS/2 patch improved.
+
+Fri Jun 18 08:30:17 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * marshal.c (r_byte): add data length check.
+
+ * ext/tcltklib/tcltklib.c (_timer_for_tcl): was doing busy-wait.
+
+Tue Jun 15 10:01:21 1999 Katsuyuki Komatsu <komatsu@sarion.co.jp>
+
+ * configure.in: remove trailing slash from interpreter embedded
+ shared library path.
+
+ * configure.in (INSTALL_DLLIB): install shared lib with 0555.
+
+ * instruby.rb: changed mode for shared library into 0555.
+
+Fri Jun 11 23:27:00 1999 Tadayoshi Funaba <tadf@kt.rim.or.jp>
+
+ * ext/etc/etc.c (etc_passwd): should return nil, not exception for
+ call after last passwd entry.
+
+Fri Jun 11 15:21:21 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * gc.c (rb_gc_mark_locations): add safty margin 1.
+
+ * eval.c (ruby_run): should protect toplevel node tree.
+
+ * ext/etc/etc.c (etc_group): dumps core if there's no more group.
+
+Fri Jun 11 01:50:25 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (ruby_run): Init_stack() was called too late; local
+ variables happend to be higher (or lower) than stack_start.
+
+Thu Jun 10 16:41:48 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c: do not call `initialize' for IO objects. So with Array,
+ Hash, Range, and Time objects.
+
+ * ext/curses/curses.c (curses_getch): made thread aware using
+ rb_read_check().
+
+ * ext/curses/curses.c (window_getch): ditto.
+
+ * ext/curses/curses.c (curses_getstr): made (partially) thread
+ aware using rb_read_check().
+
+ * ext/curses/curses.c (window_getstr): ditto.
+
+ * io.c (rb_read_check): new function to help making something
+ (like extension libraries) thread aware.
+
+ * eval.c (is_defined): `defined? super' should be true even for
+ private superclass methods.
+
+Fri Jun 10 13:42:10 1999 Koji Arai <JCA02266@nifty.ne.jp>
+
+ * pack.c (pack_pack): template `Z' should be allowed.
+
+Wed Jun 9 13:26:38 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_thread_loading): modified to avoid nested race
+ condition of require().
+
+ * ext/tcltklib/tcltklib.c (ip_invoke): queue invocation on non
+ main threads.
+
+ * ext/tcltklib/tcltklib.c (lib_mainloop): flush invocation
+ queues periodically.
+
+ * version.c (ruby_show_version): now print the message to stdout.
+
+ * version.c (ruby_show_copyright): ditto.
+
+Tue Jun 8 00:00:34 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * pack.c (pack_unpack): append sentinel (NUL) to the string.
+
+ * ext/md5/md5init.c (md5_hexdigest): new method to obtain
+ printable hash string.
+
+ * ext/md5/md5init.c (md5_update): should return self.
+
+ * pack.c (pack_pack): undocumented template 'U' for UTF8.
+
+ * pack.c (pack_unpack): ditto.
+
+ * marshal.c (r_byte): should replace getc() with rb_getc().
+
+ * io.c (rb_getc): getc() replacement uses READ_DATA_PENDING() and
+ rb_thread_wait_fd().
+
+Mon Jun 7 23:23:38 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * object.c (rb_mod_clone): should call CLOSESETUP().
+
+ * eval.c (bind_clone): should call CLONESETUP() for new clone.
+
+Sat Jun 5 10:32:40 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (rb_str_oct): binary (e.g. 0b10111) support.
+
+ * variable.c (rb_const_set): raise warning, not exception.
+
+ * parse.y (yycompile): initialize parser internal variables.
+
+ * parse.y (close_paren): set lex_state to EXPR_PAREN after closing
+ parenthesis.
+
+ * parse.y (yylex): returns kDO for `do' right after method_call.
+
+Thu Jun 3 11:05:30 1999 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * regex.c (read_backslash): should decode \b within class.
+
+Thu Jun 3 01:06:18 1999 Katsuyuki Komatsu <komatsu@sarion.co.jp>
+
+ * dln.c (dln_load): AIX improvement (aix_findmain removed).
+
+Wed Jun 2 00:41:31 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * pack.c (pack_unpack): new undocumented template Z which strips
+ stuff after first null.
+
+ * pack.c (pack_pack): should preserve specified length of the
+ resulting string.
+
+Tue Jun 1 15:29:33 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ext/socket/socket.c (ruby_socket): retry after GC, if socket(2)
+ failed on EMFILE or ENFILE.
+
+ * ext/socket/socket.c (sock_s_socketpair): ditto.
+
+ * eval.c (module_setup): need to add PUSH_VAR/POP_VAR to clear
+ dyna vars link list.
+
+ * version.h (RUBY_RELEASE_CODE): integer macro contant for source
+ version detection.
+
+Sun May 30 22:19:12 1999 Kenji Nagasawa <kenn@tcp-ip.or.jp>
+
+ * ext/socket/socket.c: emx/gcc 0.9d now fixes things about
+ AF_UNIX.
+
+ * process.c: OS/2 EMX kludge.
+
+ * Makefile.in (strncasecmp.o): added dependency.
+
+Mon May 31 16:06:28 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.3.4 - preliminary release for 1.4
+
+Mon May 31 15:57:41 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c (rb_io_fptr_close): close on IO which main_thread is
+ waiting cause serious exception, that vanishes the actual fd
+ closing. Invocation of rb_thread_fd_close() is deferred
+ a little.
+
+Sat May 29 18:27:13 1999 Koji Arai <JCA02266@nifty.ne.jp>
+
+ * regex.c (re_match): stack boundary check needed.
+
+Sat May 29 12:27:00 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ext/tcltklib/tcltklib.c (ip_invoke): proper ref count management
+ to avoid leak. I HATE REF COUNTING!!
+
+ * eval.c (ruby_run): moved ruby_require_libraries() to handle `-r'
+ from ruby_options() to avoid stack corruption for threads
+ created in libraries.
+
+Sat May 29 02:22:12 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_yield_0): when `for' appeared in blocks, it
+ introduced new scope for local variables.
+
+Fri May 28 17:16:49 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (rb_str_squeeze_bang): squeeze AND of the arguments.
+ UNDOCUMENTED.
+
+ * string.c (rb_str_count): new UNDOCUMENTED method.
+
+ * string.c (rb_str_delete_bang): delete AND of the arg ranges.
+ UNDOCUMENTED FEATURE for 1.3.x.
+
+ * ext/socket/socket.c (setipaddr): re-wrote using ip_addrsetup().
+
+ * ext/sockt/socket.c (ip_addrsetup): decode symbolic address
+ <broadcast>.
+
+Thu May 27 12:27:42 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (tr_trans): should handle NUL (\0) within strings.
+
+Tue May 25 16:45:11 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c (rb_f_syscall): syscall may return values other than zero
+ on success.
+
+ * regex.c (re_match): handle empty loop properly (hopefully).
+
+ * regex.c (re_match): remove empty group check, because it does
+ not help non-grouping parentheses (?:..).
+
+ * regex.c (re_compile_fastmap): treating try_next, finalize_push
+ wrong way.
+
+ * regex.c: remove some obsolete functions such as
+ group_match_null_string_p().
+
+Mon May 24 14:47:54 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (read_backslash): read backslash by regex.
+
+Sun May 23 19:44:58 1999 WATANABE Hirofumi <eban@os.rim.or.jp>
+
+ * ext/pty/pty.c (getDevice): portability patch.
+
+Fri May 21 23:01:26 1999 Katsuyuki Komatsu <komatsu@sarion.co.jp>
+
+ * ext/socket/getaddrinfo.c (GET_AI): should set error code.
+
+Thu May 20 03:43:44 1999 Jun-ichiro itojun Hagino <itojun@itojun.org>
+
+ * ext/socket/socket.c: you should use sockaddr_storage to handle
+ IPv6 addresses.
+
+ * ext/socket/getaddrinfo.c (getaddrinfo): prevent retrieving
+ AF_INET6 address if hints.ai_flags == AI_PASSIVE.
+
+Wed May 19 12:27:07 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (exec_end_proc): should protect exceptions.
+
+ * gc.c (run_final): ditto.
+
+ * parse.y (f_rest_arg): allow just * for rest arg.
+
+ * parse.y (mlhs_basic): allow * without formal argument.
+
+ * regex.c (re_match): the variable `part' should be initialized.
+
+Tue May 18 15:25:45 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (re_search): a bug in range adjustment.
+
+Tue May 18 11:35:59 1999 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * dln.c (conv_to_posix_path): path_len argument added.
+
+Mon May 17 12:26:31 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * numeric.c (fix_rev): should treat Fixnum as signed long.
+
+ * eval.c (massign): add strict number check for yield (and call).
+
+ * eval.c (proc_arity): new method to return number of arguments.
+
+ * eval.c (method_arity): new method to return number of arguments.
+
+ * parse.y (read_escape): char may be unsigned.
+
+ * string.c (rb_str_succ): ditto.
+
+ * string.c (tr_trans): ditto.
+
+ * object.c (Init_Object): methods `&', `|', `^' are added to nil.
+
+ * range.c (rb_range_beg_len): it should be OK for [0..-len-1].
+
+ * regex.c (re_search): search for byte literal within mbcs.
+
+ * regex.c (is_in_list): parsh
+
+ * regex.c (re_compile_fastmap): should have not alter the loop
+ variable `j' if TRASLATE_P().
+
+ * regex.c (re_compile_pattern): escaped characters should be read
+ by PATFETCH_RAW(c).
+
+Sat May 15 11:23:51 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (re_match): endline2 (\Z) should not match at the point
+ between a newline and end-of-line, like endline ($).
+
+ * class.c (include_class_new): should initialize iv_tbl to share
+ between module and iclass.
+
+Fri May 14 08:50:27 1999 Akira Endo <akendo@t3.rim.or.jp>
+
+ * regex.c (re_compile_fastmap): it should be k != 0 to skip.
+
+Fri May 14 12:46:56 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * time.c (time_load): a bug in old marshal format support.
+
+ * instruby.rb: make site_ruby directory.
+
+Fri May 14 10:18:02 1999 WATANABE Tetsuya <tetsu@jpn.hp.com>
+
+ * regex.c (re_match): a bug in inline `.*' etc.
+
+Fri May 14 09:58:46 1999 Minero Aoki <aamine@dp.u-netsurf.ne.jp>
+
+ * ruby.c (addpath): should have specified string length.
+
+Thu May 13 10:40:44 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_eval_string_wrap): new function.
+
+ * regex.c (re_compile_pattern): POSIX line match should alter
+ behavior for `^' and `$' to begbuf and endbuf2 respectively.
+
+ * ext/pty/pty.c: un-ANSI-fy function arguments.
+
+Wed May 12 14:19:38 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * struct.c (iv_get): in case of inheritance of generated struct
+ class, __member__ and __size__ should also be inherited.
+ Thanks for Pros Yeboah <yeboah@tu-harburg.de>.
+
+ * io.c (rb_f_gets_internal): should check number of arguments
+ before checking rb_rs == rb_default_rs. Thanks for Koji Arai
+ <JCA02266@nifty.ne.jp>.
+
+Tue May 11 08:29:28 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (re_compile_pattern): .?, .+ did not work.
+
+Mon May 10 00:59:33 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * lib/jcode.rb: forgot to squeeze on reverse (complement) case.
+
+ * string.c (tr_squeeze): should not set modify flag to be honest,
+ if the string is not modified.
+
+ * signal.c (Init_signal): SIGTERM should not be handled.
+
+ * regex.c (re_match): seeking for longest match is now optional,
+ which can be set using RE_OPTION_POSIXMATCH. This satisfies
+ POSIX longest match as much as Emacs's posix-* functions, which
+ are known to be incomplete.
+
+Sun May 9 13:04:01 1999 Katsuyuki Komatsu <komatsu@sarion.co.jp>
+
+ * ext/socket/socket.c (sock_s_getaddrinfo): conversion from
+ Fixnums to C integers needed.
+
+Sun May 9 11:51:43 1999 Koji Arai <JCA02266@nifty.ne.jp>
+
+ * range.c (range_eqq): reverse condition.
+
+ * range.c (range_s_new): default should be end inclusive.
+
+Sat May 8 03:27:51 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ext/socket/socket.c (thread_connect): replace nasty
+ rb_thread_fd_writable() with rb_thread_select().
+
+Fri May 7 20:49:00 1999 Katsuyuki Komatsu <komatsu@sarion.co.jp>
+
+ * ext/socket/getaddrinfo.c (inet_pton): wrong parameter to
+ inet_aton().
+
+ * ext/socket/addrinfo.h (__P): silly cut and paste typo.
+
+Fri May 7 17:03:57 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * dir.c (glob): removed GPL'ed glob.c completely.
+
+Fri May 7 08:17:19 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ext/sdbm/extconf.rb: sdbm extension added to the distribution.
+
+Fri May 7 01:42:20 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ext/socket/socket.c (tcp_s_gethostbyname): aboid using struct
+ sockaddr_storage.
+
+Thu May 6 13:21:41 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * array.c (rb_ary_indexes): should not use rb_ary_concat().
+
+Thu May 4 12:34:18 1999 Koji Arai <JCA02266@nifty.ne.jp>
+
+ * parse.y (parse_string): there shuould be newline escape by
+ backslashes in strings.
+
+ * parse.y (parse_qstring): ditto.
+
+Mon May 3 04:37:20 1999 Koji Arai <JCA02266@nifty.ne.jp>
+
+ * ext/tcltklib/extconf.rb: better search for libX11.
+
+ * range.c (range_s_new): embarrassing =/== typo.
+
+ * re.c (Init_Regexp): failed to set default kcode.
+
+Mon May 3 02:39:55 1999 WATANABE Tetsuya <tetsu@jpn.hp.com>
+
+ * ext/socket/socket.c (open_inet): typo (res and res0).
+
+Tue May 4 02:07:49 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * mkconfig.rb: leave undefined $(VARIABLE) unexpanded in the
+ Config::CONFIG hash table.
+
+Mon May 3 09:37:22 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (re_compile_pattern): expand exactn{n} at compile time.
+ handles stop_paren specially.
+
+ * regex.c (re_compile_pattern): expand x{n} at compile time.
+
+ * regex.c (re_search): posix line match should be checked.
+
+ * regex.c (re_search): a bug in anchor condition.
+
+Fri Apr 30 18:57:41 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.3.3
+
+ * string.c (rb_str_rindex): position should be END point, not
+ START point.
+
+ * re.c (rb_reg_search): pos means end point on reverse now.
+
+ * array.c (rb_ary_s_create): should clear ary->ptr to avoid
+ potential gc crash.
+
+Fri Apr 30 15:24:58 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ext/socket/addrinfo.h: compatibility hack for ipv4.
+
+ * ext/socket/socket.c: itojun's ipv6 patches applied.
+
+ * ext/socket/extconf.rb: detect ipv6 features based on itojun's
+ ipv6 patches.
+
+ * ext/extmk.rb.in (enable_config): can handle --enable-xxx now.
+
+ * lib/mkmf.rb (enable_config): ditto.
+
+Fri Apr 30 05:22:23 1999 Shugo Maeda <shugo@netlab.co.jp>
+
+ * string.c (rb_str_aset): last index should not append.
+
+Thu Apr 29 18:55:31 1999 WATANABE Hirofumi <eban@os.rim.or.jp>
+
+ * dln.c (conv_to_posix_path): remove const from args.
+
+ * ruby.c (rubylib_mangle): remove Fatal(), the obsolete function.
+
+Tue Apr 27 14:11:45 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (fname): lazy workaround for keywords did not work well.
+
+ * ext/extmk.rb.in: `--with-xxx=yyy' argument configuration.
+
+ * lib/mkmf.rb: ditto.
+
+ * misc/ruby-mode.el: forgot to handle $`.
+
+ * ext/extmk.rb.in: better AIX link support proposed by
+ <komatsu@sarion.co.jp>.
+
+Mon Apr 26 16:46:59 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ext/extmk.rb.in: AIX shared library support modified.
+
+ * ext/aix_mksym.rb: ditto.
+
+ * configure.in: ditto.
+
+ * sprintf.c (rb_f_sprintf): should allocate proper sized buffer
+ for float numbers.
+
+Sat Apr 24 00:00:16 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (operation): syntax like `a.[]=(1,2)' is allowed.
+
+Fri Apr 23 23:54:09 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c (argf_binmode): binmode method added to ARGF.
+
+Fri Apr 23 13:55:22 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (rb_f_chomp): should assign the result to $_. or maybe
+ sub/gsub/chop/chomp should NOT assign $_ altogether.
+
+Thu Apr 22 16:50:54 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_callcc): call scope_dup() for all scopes in
+ the interpreter stack.
+
+Tue Apr 20 11:24:18 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (rb_str_dump): `#' should be escaped.
+
+Tue Apr 20 02:32:42 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (parse_regx): option /p for posix match added.
+
+ * re.c (rb_reg_desc): did not print options properly.
+
+ * io.c (rb_file_s_open): intialize was called twice.
+
+Mon Apr 19 18:56:21 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * configure.in (DEFAULT_KCODE): can specify default code for
+ $KCODE by --with-default-kcode=(euc|sjis|utf8|none).
+
+ * regex.c (IS_A_LETTER): a byte sequence shorter than mbc should
+ not match with \w etc.
+
+Mon Apr 19 13:49:11 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (eval): should restore ruby_dyna_vars.
+
+Fri Apr 16 21:40:43 1999 Nobuyoshi Nakada <gea02117@nifty.ne.jp>
+
+ * io.c (f_backquote): pipe_open may return nil.
+
+ * io.c (f_open): rb_io_open may return nil.
+
+ * io.c (io_s_foreach): ditto.
+
+ * io.c (io_s_readlines): ditto.
+
+ * io.c (io_defset): wrong message.
+
+Fri Apr 16 15:09:20 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * bignum.c (rb_str2inum): strtoul() returns long, not int.
+
+ * eval.c (rb_load): size of VALUE and ID may be different.
+
+ * util.c (mmprepare): int is too small to cast from pointers.
+
+ * config.guess: avoid 'linux-gnu' for alpha-unknown-linux.
+
+Thu Apr 15 23:46:20 1999 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * ruby.c (rubylib_mangle): mangle path by RUBYLIB_PREFIX.
+
+Wed Apr 14 23:52:51 1999 SHIROYAMA Takayuki <psi@fortune.nest.or.jp>
+
+ * node.h (NODE_LMASK): should be long to avoid overflow.
+
+Wed Apr 14 13:14:35 1999 Katsuyuki Komatsu <komatsu@sarion.co.jp>
+
+ * dln.c: AIX dynamic link.
+
+ * ext/aix_ld.rb: ditto.
+
+Wed Apr 14 12:19:09 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * lib/thread.rb: Queue#{enq,deq} added.
+
+Tue Apr 13 17:43:56 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * hash.c (rb_hash_s_create): Hash::[] acts more like casting.
+
+Tue Apr 13 00:33:52 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c (rb_io_stdio_set): warning for assignment to the variables
+ $std{in,out,err}.
+
+Mon Apr 12 23:12:32 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c (rb_io_reopen): check for reopening same IO.
+
+Fri Apr 9 17:45:11 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (rb_compile_string): bug for nested eval().
+
+ * regex.c (re_match): should pop non-greedy stack items on
+ failure, after best_regs are fixed.
+
+Thu Apr 8 17:30:40 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * pack.c (PACK_LENGTH_ADJUST): need to adjust for `*' length.
+
+Tue Apr 6 23:28:44 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (void_check): add void context checks.
+
+Mon Apr 5 12:23:42 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * time.c (time_s_at): should copy gmt-mode.
+
+ * eval.c (eval_node): preserve ruby_eval_tree.
+
+Fri Apr 2 14:00:34 1999 NAKAMURA, Hiroshi <nakahiro@sarion.co.jp>
+
+ * lib/debug.rb: wrong command interpreting.
+
+Fri Apr 2 11:46:22 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.3.2
+
+Fri Apr 2 10:40:04 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c (rb_io_s_pipe): forgot to define IO::pipe.
+
+Thu Apr 1 14:40:46 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (assign): modified for rhs change.
+
+ * parse.y (stmt): unparenthesisized method calls can be right hand
+ side expression of the assignment.
+
+Sat Mar 27 22:42:47 1999 Koji Arai <JCA02266@nifty.ne.jp>
+
+ * ext/nkf/nkf.c (rb_nkf_kconv): check size output_ctr before
+ decrement.
+
+Thu Mar 25 09:11:03 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * time.c (time_s_at): preserve gmt-mode for result.
+
+ * parse.y (rb_compile_string): do not use cur_mid, use
+ compile_for_eval instead.
+
+ * st.c (PTR_NOT_EQUAL): wrong logical condition.
+
+Wed Mar 24 13:06:43 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (yycompile): should clear cur_mid after compilation.
+
+ * io.c (next_argv): need to check type for ARGV.shift.
+
+ * eval.c (blk_copy_prev): need to preverse outer scope as well as
+ outer frames.
+
+ * parse.y (rb_compile_string): return can appear within eval().
+
+Tue Mar 23 10:15:07 1999 EGUCHI Osamu <eguchi@shizuokanet.ne.jp>
+
+ * configure.in: AC_C_CONST check added.
+
+Tue Mar 23 02:07:35 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * time.c (time_plus): preserve gmt-mode for result.
+
+Mon Mar 22 01:32:37 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_eval): adjust line numbers before expression
+ interpolation within strings.
+
+ * eval.c (rb_eval): defined? returns nil for false condition.
+
+ * numeric.c (num_nonzero_p): returns nil for false condition.
+
+Sat Mar 20 13:07:43 1999 Keiju Ishitsuka <keiju@rational.com>
+
+ * lib/weakref.rb: avoid leak for two weakrefs for one object.
+
+Fri Mar 19 11:26:45 1999 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * eval.c (ruby_run): needed to eval END{} on exit.
+
+ * eval.c (rb_exit): ditto.
+
+Fri Mar 19 02:17:27 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * signal.c (Init_signal): handles terminating signals HUP, TERM,
+ QUIT, PIPE, etc.
+
+Thu Mar 18 15:47:18 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * bignum.c (rb_big_and): bug in sign calculation.
+
+ * bignum.c (rb_big_or): ditto.
+
+ * io.c (rb_f_select): forgot to use to_io to retrieve IO, after
+ calling select(2).
+
+Tue Mar 16 19:54:31 1999 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * ext/extmk.rb.in: static linking cause infinite make loop.
+
+Tue Mar 16 18:50:04 1999 Yoshida Masato <yoshidam@yoshidam.net>
+
+ * ext/socket/socket.c (tcp_s_gethostbyname): typo, not NUM2INT(),
+ but INT2NUM().
+
+ * ext/socket/socket.c (mkhostent): ditto.
+
+Tue Mar 16 12:31:44 1999 Ryo HAYASAKA <hayasaka@cheer.u-aizu.ac.jp>
+
+ * file.c (utime_internal): suppress warning by const.
+
+ * time.c (time_gmtime): ditto.
+
+Tue Mar 16 10:23:05 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * time.c (time_clone): Time object can be cloned.
+
+Tue Mar 16 03:13:10 1999 Koji Arai <JCA02266@nifty.ne.jp>
+
+ * ruby.c (load_file): argv[argc] should be NULL.
+
+Mon Mar 15 22:12:08 1999 Tadayoshi Funaba <tadf@kt.rim.or.jp>
+
+ * sprintf.c (rb_f_sprintf): typo in arg_num check at exit.
+
+Mon Mar 15 16:42:22 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * array.c (rb_ary_dup): dup2 should copy class too.
+
+Mon Mar 15 15:12:53 1999 Yasuhiro Fukuma <yasuf@big.or.jp>
+
+ * lib/mkmf.rb: install program relative path check.
+
+Mon Mar 15 14:05:25 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * re.c (rb_reg_s_new): 2nd argument is now option.
+ Regexp::EXTENDED can be specified.
+
+Fri Mar 12 10:47:49 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (rb_str_index): str.index("") should always match at
+ offset point.
+
+ * string.c (rb_str_upto): can specify end point exclusion.
+
+ * string.c (rb_str_index): negative offset.
+
+ * regex.c (re_match): begline should not match at the point
+ between a newline and end-of-string. endline neither.
+
+ * regex.c (re_compile_pattern): context_indep_anchors .
+
+ * parse.y (parse_regx): need not to push backslashes before
+ escaped characters.
+
+ * eval.c (rb_thread_join): re-raises exception within target.
+
+Fri Mar 12 01:09:36 1999 Koji Arai <JCA02266@nifty.ne.jp>
+
+ * ext/readline/readline.c (readline_s_vi_editing_mode): wrong
+ number of arguments.
+
+Fri Mar 12 02:12:50 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * pack.c (PACK_ITEM_ADJUST): "a".unpack("C3") => [97, nil, nil]
+
+Thu Mar 11 18:23:50 1999 WATANABE Tetsuya <tetsu@jpn.hp.com>
+
+ * ext/socket/socket.c (Init_socket): UDPsocket was ommited.
+
+Thu Mar 11 16:43:30 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * pack.c (PACK_LENGTH_ADJUST): push fixed number of items per
+ template to result array.
+
+ * pack.c (pack_unpack): I/N/C etc. push nil in the array for "".
+
+Tue Mar 9 00:19:21 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * hash.c (ruby_unsetenv): use ruby_setenv(name, 0).
+
+ * hash.c (env_delete): ditto.
+
+ * string.c (rb_str_upto): do not check `beg<end' to generate
+ strings for the pattern like "a".upto("#a").
+
+ * range.c (range_each): treat strings as special case.
+
+ * range.c (range_each): no longer use upto for generic cases.
+
+Sun Mar 7 14:21:32 1999 IKARASHI Akira <ikarashi@itlb.te.noda.sut.ac.jp>
+
+ * string.c (rb_str_index): wrong end point calculation.
+
+Sat Mar 6 02:19:12 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * re.c (match_index): MatchingData#index(n) added.
+
+ * array.c (rb_ary_subseq): ary[n..-1] returns an sub-array unless
+ n is too small negative index.
+
+ * re.c (rb_reg_match_method): Regexp#match(str) added.
+
+ * array.c (rb_ary_indexes): understands ranges as indexes.
+
+ * re.c (match_size): MatchingData#size added.
+
+Fri Mar 5 01:04:57 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * array.c (rb_ary_fill): modified for range.
+
+ * array.c (rb_ary_aset): a[n..m] revisited.
+
+Thu Mar 4 14:23:29 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (rb_str_subseq): a[n..m] revisited.
+
+ * parse.y (method_call): allow Const::method{}.
+
+ * array.c (rb_ary_replace_method): should replace original array.
+
+Thu Mar 4 02:30:22 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * configure.in: remove --disable-thread, thread feature is no
+ longer optional.
+
+Thu Mar 4 00:32:17 1999 Yasuhiro Fukuma <yasuf@big.or.jp>
+
+ * parse.y (read_escape): wrong arguments for scan_oct,scan_hex.
+
+Wed Mar 3 11:51:53 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ext/socket/socket.c (Init_socket): rename class names as
+ TCPsocket -> TCPSocket etc.
+
+Tue Mar 2 19:46:42 1999 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * configure.in (LDSHARED): use gcc -Wl,-G for solaris with gcc.
+
+Tue Mar 2 17:04:19 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (yylex): backslashes do not concatenate comment lines
+ anymore.
+
+Mon Mar 1 14:05:12 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_call0): adjust argv for optional arguments. super
+ without arguments emit superclasse method with the value from
+ optinal arguments. enabled as experiment.
+
+Sun Feb 28 14:04:07 1999 WATANABE Hirofumi <eban@os.rim.or.jp>
+
+ * parse.y (nextc): backslash at the eof cause infinite loop
+
+Sun Feb 28 11:01:26 1999 Tadayoshi Funaba <tadf@kt.rim.or.jp>
+
+ * time.c (make_time_t): month range check added.
+
+Sat Feb 27 02:36:05 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * re.c (Init_Regexp): add escape as alias of quote.
+
+ * re.c (rb_reg_s_quote): char-code can be specified now.
+
+Fri Feb 26 18:45:36 1999 Yasuhiro Fukuma <yasuf@big.or.jp>
+
+ * eval.c (error_print): bug for error message with newlines.
+
+Fri Feb 26 12:00:04 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * time.c (make_time_t): future check modified to allow 1969-12-31
+ at certain timezone.
+
+ * time.c (time_arg): year >= 1000 should be past.
+
+ * version.c (Init_version): constant RELEASE_DATE added.
+
+Fri Feb 26 01:08:30 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (rb_str_substr): returns nil for out-of-range access.
+
+ * array.c (rb_ary_subseq): returns nil for out-of-range access.
+
+ * array.c (rb_ary_store): negative index message has changed.
+
+ * string.c (rb_str_aset): reallocation needed.
+
+ * string.c (rb_str_aset): allow char append to the string.
+
+Thu Feb 25 23:30:17 1999 Tadayoshi Funaba <tadf@kt.rim.or.jp>
+
+ * time.c (time_load): tm_year should be packed in 17 bits, not 18.
+
+Thu Feb 25 12:50:25 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * missing/dup2.c: replaced by public domain version.
+
+ * time.c (make_time_t): add `future check' in loops.
+
+ * object.c (rb_num2dbl): forbid implicit conversion from nil, or
+ strings. thus `Time.now + str' should raise error.
+
+ * object.c (rb_Float): convert nil into 0.0.
+
+ * object.c (rb_Integer): conversion method improved.
+
+Thu Feb 25 03:27:50 1999 Shugo Maeda <shugo@netlab.co.jp>
+
+ * eval.c (rb_call): should handle T_ICLASS properly.
+
+Thu Feb 25 00:04:00 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * error.c (Init_Exception): global function Exception() removed.
+
+ * variable.c (rb_class2name): returns "nil"/"true"/"false" for them.
+
+ * time.c (time_dump): time marshaling format compressed size from
+ 11 bytes to 8 bytes. thanx to tadf@kt.rim.or.jp.
+
+ * eval.c (rb_obj_call_init): should specify arguments explicitly.
+
+Wed Feb 24 15:43:28 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (yylex): comment concatenation requires preceding space
+ before backslash at the end of line.
+
+ * io.c (rb_f_pipe): global pipe is obsolete now.
+
+ * object.c (Init_Object): remove true.to_i, false.to_i.
+
+Tue Feb 23 14:21:41 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (yylex): warn if identifier! immediately followed by `='.
+
+Tue Feb 23 12:32:41 1999 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * eval.c (rb_load): tilde expandion moved to find_file.
+
+ * eval.c (find_file): tilde expandion added.
+
+Tue Feb 23 10:50:20 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (require_method): require can handle multiple fnames.
+
+ * hash.c (rb_hash_foreach_iter): hash key may be nil.
+
+Mon Feb 22 17:44:02 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (re_match): should not pop failure point on success for
+ non-greedy matches.
+
+ * io.c (Init_IO): remove global_functions getc, readchar, ungetc,
+ seek, tell, rewind.
+
+Sat Feb 20 22:54:26 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * numeric.c (rb_num2long): no implicit conversion from boolean.
+
+Sat Feb 20 09:58:42 1999 EGUCHI Osamu <eguchi@shizuokanet.ne.jp>
+
+ * numeric.c (flo_to_s): portable Infinity and NaN support.
+
+Sat Feb 20 07:13:31 1999 WATANABE Tetsuya <tetsu@jpn.hp.com>
+
+ * io.c (rb_file_sysopen): forgot to initialize a local variable.
+
+Fri Feb 19 23:05:07 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (rb_str_subseq): range check changed.
+
+ * marshal.c: increment MARSHAL_MINOR for Time format change.
+
+ * time.c (time_old_load): support old marshal format.
+
+ * time.c (time_load): changed for new format Y/M/D/h/m/s/usec.
+
+ * time.c (time_dump): marshal dump format has changed.
+
+Fri Feb 19 00:25:57 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * time.c (time_arg): should reject "sep\0" and such.
+
+ * time.c (time_plus): Time#+ should not receive Time object
+ operand.
+
+ * string.c (rb_str_substr): nagative length raises exception now.
+
+ * array.c (beg_len): if end == -1, it points end of the array.
+
+ * array.c (rb_ary_subseq): nagative length raises exception now.
+
+Thu Feb 18 20:57:04 1999 Tadayoshi Funaba <tadf@kt.rim.or.jp>
+
+ * time.c (rb_strftime): strftime() may return 0 on success too.
+
+ * time.c (time_strftime): `\0' within format string shoule not be
+ ommited in the result.
+
+ * time.c (rb_strftime): zero length format.
+
+ * time.c (time_to_a): yday start with 1 now.
+
+ * time.c (time_zone): support for long timezone name.
+
+ * time.c (time_yday): yday start with 1 now.
+
+ * time.c (time_minus): minus calculation was wrong.
+
+ * time.c (time_minus): sec, usec should be at least `long', maybe
+ they should be `time_t'.
+
+ * time.c (time_plus): addition with float was wrong.
+
+ * time.c (time_to_s): support for long timezone name.
+
+ * time.c (time_gm_or_local): too far future check moved.
+
+ * time.c (time_arg): treat 2 digit year as 69-99 => 1969-1999,
+ 00-68 => 2000-2068
+
+Thu Feb 18 03:56:47 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * missing/fnmatch.c: moved to missing directory.
+
+Wed Feb 17 16:22:26 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * struct.c (rb_struct_alloc): actual initialization now be done in
+ `initialize'.
+
+Wed Feb 17 09:47:15 1999 okabe katsuyuki <hgc02147@nifty.ne.jp>
+
+ * regex.c (re_search): use mbclen() instead of ismbchar().
+
+ * re.c (rb_reg_s_quote): should handle mbchars properly.
+
+Wed Feb 17 01:25:26 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (yylex): stop comment concatenation by backslash follows
+ after >= 0x80 char. may cause problem with Latin chars.
+
+ * eval.c (error_print): exception in rb_obj_as_string() caused
+ SEGV. protect it by PUSH_TAG/POP_TAG.
+
+ * error.c (exc_exception): `Exception#exception' should return self.
+
+Wed Feb 17 01:12:22 1999 Hirotaka Ichikawa <hirotaka.ichikawa@tosmec.toshiba.co.jp>
+
+ * configure.in: BeOS patch.
+
+Tue Feb 16 14:25:00 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (re_compile_pattern): should reallocate mbc space for
+ character class unless current_mbctype is ASCII.
+
+Mon Feb 15 15:48:30 1999 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * configure.in: specify `-Wl,-E' only for GNU ld.
+
+Mon Feb 15 11:43:22 1999 GOTO Kentaro <gotoken@math.sci.hokudai.ac.jp>
+
+ * array.c (rb_inspecting_p): should return Qfalse.
+
+Sun Feb 14 22:36:40 1999 EGUCHI Osamu <eguchi@shizuokanet.ne.jp>
+
+ * sprintf.c (rb_f_sprintf): `%G' was ommited.
+
+Sun Feb 14 12:47:48 1999 EGUCHI Osamu <eguchi@shizuokanet.ne.jp>
+
+ * numeric.c (Init_Numeric): allow divide by zero on FreeBSD.
+
+ * numeric.c (Init_Numeric): FloatDomainError added.
+
+ * configure.in (AC_REPLACE_FUNCS): add checks for functions
+ insinf, isnan, and finite.
+
+Sat Feb 13 01:24:16 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_thread_create_0): should protect th->thread.
+
+Fri Feb 12 16:16:47 1999 Yasuhiro Fukuma <yasuf@big.or.jp>
+
+ * string.c (rb_str_inspect): wrong mbc position.
+
+Fri Feb 12 16:21:17 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_thread_fd_close):
+
+ * io.c (rb_io_fptr_close): tell scheduler that fd is closed.
+
+ * io.c (rb_io_reopen): ditto.
+
+ * io.c (READ_CHECK): check if closed after thread context switch.
+
+ * ext/socket/socket.c (bsock_close_read): do not check
+ the return value from shutdown(2).
+
+ * ext/socket/socket.c (bsock_close_write): ditto.
+
+ * ext/socket/socket.c (sock_new): need to dup(fd) for close_read
+ and close_write.
+
+ * parse.y (here_document): handle newlines within #{}.
+
+ * regex.h: should replace symbols for ruby.
+
+Fri Feb 12 00:46:28 1999 Shugo Maeda <shugo@netlab.co.jp>
+
+ * marshal.c (r_object): should update the method name in message.
+
+ * marshal.c (w_object): limit should be converted into Fixnum.
+
+Wed Feb 10 15:20:03 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (re_match): empty pattern should not cause infinite
+ pattern match loop.
+
+ * regex.c (re_compile_pattern): RE_OPTIMIZE_ANCHOR for /.*/, not
+ for /(.|\n)/.
+
+ * numeric.c (fix_pow): `fixnum**nil' should raise TypeError.
+
+ * bignum.c (rb_big_pow): need to normalize results.
+
+Wed Feb 10 01:42:41 1999 EGUCHI Osamu <eguchi@shizuokanet.ne.jp>
+
+ * numeric.c (fix_pow): `(5**1).type' should be Integer.
+
+Tue Feb 9 01:22:49 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (yylex): do not ignore newlines in mbchars.
+
+ * io.c (rb_file_s_open): mode can be specified by flags like
+ open(2), e.g. File::open(path, File::CREAT|File::WRONLY).
+
+ * io.c (rb_f_open): bit-wise mode flags for pipes
+
+ * io.c (Init_IO): bit flags for open.
+
+Sat Feb 6 22:56:21 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (rb_str_sub_bang): should not overwrite match data by
+ regexp match within the block.
+
+ * string.c (rb_str_gsub_bang): ditto.
+
+Sat Feb 6 03:06:17 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * re.c (match_getter): accessng $~ without matching caused SEGV.
+
+Fri Feb 5 22:11:08 1999 EGUCHI Osamu <eguchi@shizuokanet.ne.jp>
+
+ * parse.y (yylex): binary literal support, like 0b01001.
+
+ * parse.y (yylex): octal numbers can contain `_'s.
+
+ * parse.y (yylex): warns if non-octal number follows immediately
+ after octal literal.
+
+ * parse.y (yylex): now need at least one digit after prefix such
+ as 0x, or 0b.
+
+ * bignum.c (rb_str2inum): recognize binary numbers like 0b0101.
+
+Fri Feb 5 03:26:56 1999 Yasuhiro Fukuma <yasuf@big.or.jp>
+
+ * ruby.c (proc_options): -e without program prints error.
+
+Fri Feb 5 00:01:50 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (terms): needed to clear heredoc_end.
+
+ * numeric.c (flo_div): allow float division by zero.
+
+Thu Feb 4 11:56:24 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * missing/strtod.c: for compatibility.
+
+ * configure.in (strtod): add strtod compatible check.
+
+ * numeric.c (rb_num2long): missing/vsnprintf.c does not supprt
+ floating points.
+
+ * numeric.c (flo_to_s): ditto.
+
+Wed Feb 3 23:02:12 1999 Yoshida Masato <yoshidam@yoshidam.net>
+
+ * regex.c (re_compile_pattern): use ismbchar() to get next char.
+
+ * regex.c (re_search): wrong mbchar shift.
+
+ * re.c (rb_reg_search): needed to reset $KCODE after match.
+
+ * regex.c (re_compile_fastmap): mbchars should match with \w.
+
+Wed Feb 3 22:35:12 1999 EGUCHI Osamu <eguchi@shizuokanet.ne.jp>
+
+ * parse.y (yylex): too big float raise warning, not error.
+
+Tue Feb 2 23:41:42 1999 Yoshida Masato <yoshidam@yoshidam.net>
+
+ * regex.c (re_match): wrong boundary.
+
+ * regex.c (IS_A_LETTER): re_mbctab[c] may not be 1 for mbc.
+
+ * regex.c (re_search): mbchar support for shifting ranges.
+
+ * regex.c (MBC2WC): wrong conversion.
+
+Wed Feb 3 15:03:16 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (parse_regx): need to escape parens if terminators are
+ not any kind of parenthesis.
+
+ * parse.y (parse_qstring): ditto.
+
+ * parse.y (parse_string): ditto.
+
+Tue Feb 2 17:11:26 1999 WATANABE Tetsuya <tetsu@jpn.hp.com>
+
+ * string.c (rb_str_gsub_bang): too small realoc condition.
+
+Mon Feb 1 10:01:17 1999 EGUCHI Osamu <eguchi@shizuokanet.ne.jp>
+
+ * parse.y (yylex): range check for the float literal.
+
+Sat Jan 30 18:34:16 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ruby.c (usage): -h option to show brief command description.
+
+Sat Jan 30 08:45:16 1999 IKARASHI Akira <ikarashi@itlb.te.noda.sut.ac.jp>
+
+ * lib/cgi-lib.rb: cookie support added.
+
+Sat Jan 30 13:38:24 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (re_compile_pattern): mbchars should match with \w
+ within character classs. Was matching with \W.
+
+ * regex.c (re_match): \w should match with multi byte characters,
+ not its first byte.
+
+Sat Jan 30 10:06:41 1999 Yoshida Masato <yoshidam@yoshidam.net>
+
+ * re.c (rb_reg_s_new): UTF-8 flag handle (/u, /U).
+
+ * re.c (rb_kcode): $KCODE handle for UTF-8.
+
+Sat Jan 30 01:51:16 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * array.c (rb_ary_delete_if): RTEST() missing.
+
+ * hash.c (delete_if_i): ditto.
+
+ * enum.c (Init_Enumerable): select (=find_all), detect (=find)
+ added as aliases.
+
+Fri Jan 29 21:32:19 1999 WATANABE Tetsuya <tetsu@jpn.hp.com>
+
+ * hash.c (rb_f_setenv): SEGV caused by small typo.
+
+Fri Jan 29 00:15:58 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * lib/parsedate.rb (parsedate): support date format like
+ 23-Feb-93, which is required by HTTP/1.1.
+
+ * variable.c (find_class_path): avoid calling rb_iv_set().
+
+ * eval.c (backtrace): do not need to modify $SAFE internally.
+
+ * variable.c (classname): inline __classid__ access.
+
+ * eval.c (THREAD_ALLOC): needed to initialize wrapper.
+
+ * lib/ftools.rb (makedirs): allows slash at the end of the path.
+
+ * numeric.c (rb_fix_induced_from): ensure result to be Fixnum.
+
+Thu Jan 28 17:31:43 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * numeric.c (flo_to_s): float format changed to "%16.10g".
+
+Thu Jan 28 02:13:11 1999 Yoshinori Toki <toki@freedom.ne.jp>
+
+ * array.c (rb_ary_store): expand allocated buffer by 3/2.
+
+Wed Jan 27 17:50:02 1999 Kazuhiro HIWADA <hiwada@kuee.kyoto-u.ac.jp>
+
+ * bignum.c (dbl2big): raised error if double is too big to cast
+ into long. check added.
+
+Wed Jan 27 03:16:18 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * variable.c (rb_mod_const_at): can't list constants of the
+ untainted objects in safe mode.
+
+ * class.c (method_list): can't list methods of untainted objects
+ in safe mode.
+
+Tue Jan 26 02:40:41 1999 GOTO Kentaro <gotoken@math.sci.hokudai.ac.jp>
+
+ * prec.c: Precision support for numbers.
+
+Thu Jan 21 19:08:14 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_f_raise): calls `exception' method, not `new'.
+
+ * error.c (exc_exception): renamed from `new'.
+
+Wed Jan 20 03:39:48 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (yycompile): rb_in_compile renamed to ruby_in_compile.
+
+ * ruby.c (load_file): define DATA iff __END__ appeared in script.
+
+Tue Jan 19 14:57:51 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (here_document): need to protect lex_lastline.
+
+ * parse.y (yylex): disable %//, %'', %``.
+
+Tue Jan 19 05:01:16 1999 Koji Arai <JCA02266@nifty.ne.jp>
+
+ * array.c (beg_len): round range value too much.
+
+Mon Jan 18 13:02:27 1999 Kuroda Jun <jkuro@dwe.co.jp>
+
+ * hash.c (env_keys): strchr() may return NULL.
+
+Mon Jan 18 17:51:47 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * instruby.rb (wdir): install libruby.a in archdir.
+
+ * lib/ftools.rb (install): removes file before installing.
+
+Mon Jan 18 16:55:31 1999 MAEDA shugo <shugo@aianet.ne.jp>
+
+ * eval.c (rb_callcc): experimental continuation support.
+
+Sun Jan 17 19:45:37 1999 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * pack.c (pack_pack): nil packing caused SEGV.
+
+Sat Jan 16 13:18:03 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (rb_str_concat): character (fixnum) can be append to
+ strings
+
+ * array.c (rb_ary_unshift): unshift returns array.
+
+Sat Jan 16 01:39:19 1999 Yoshida Masato <yoshidam@tau.bekkoame.ne.jp>
+
+ * string.c (rb_str_split_method): UTF-8 support.
+
+ * regex.c: UTF-8 support.
+
+Thu Jan 14 00:42:55 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (rb_str_gsub_bang): forget to add offset for null match.
+
+ * eval.c (rb_thread_local_aset): can't modify in tainted mode.
+
+ * hash.c (env_each_key): avoid generating temporary array.
+
+Wed Jan 13 23:58:50 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * hash.c (rb_f_setenv): name and value can be tainted.
+
+Wed Jan 6 02:42:08 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * bignum.c (Init_Bignum): forgot to define Bignum#===.
+
+ * gc.c (gc_sweep): if add_heap() is called during GC, objects on
+ allocated heap page(s) are not marked, should not be recycled.
+
+ * gc.c (gc_sweep): should refer latest freelist.
+
+ * gc.c (id2ref): modified to support performance patch.
+
+ * object.c (rb_obj_id): performance patch (no bignum for id).
+
+Tue Jan 5 01:56:18 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * config.guess: merge up-to-date from autoconf 2.12.
+
+ * array.c (rb_ary_join): avoid calling rb_protect_inspect() till
+ it is really needed.
+
+ * object.c (rb_obj_inspect): show detailed information for the
+ instance variables (infinite loop can avoid now).
+
+ * struct.c (rb_struct_inspect): avoid infinite loop.
+
+Sun Jan 3 01:37:58 1999 Takao KAWAMURA <kawamura@ike.tottori-u.ac.jp>
+
+ * misc/ruby-mode.el (ruby-end-of-defun): moved too much.
+
+ * misc/ruby-mode.el (ruby-mode-variables): set paragraph-separator
+ for the mode.
+
+ * misc/ruby-mode.el: proper font-lock for `def' and `nil' etc.
+
+Sat Jan 2 17:09:06 1999 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_jump_tag): new api to invoke JUMP_TAG. tag values
+ can obtained from rb_eval_string_protect()/rb_load_protect().
+
+ * eval.c (rb_rescue): now catches all exceptions but SystemExit.
+
+ * eval.c (rb_eval_string_protect): eval string with protection.
+
+ * eval.c (rb_load_protect): load file with protection.
+
+ * io.c (rb_io_puts): avoid infinite loop for cyclic arrays.
+
+ * eval.c (rb_thread_local_aref): thread local hash tables.
+
+ * object.c (rb_equal): check exact equal before calling `=='.
+
+Thu Dec 31 22:28:53 1998 MAEDA shugo <shugo@aianet.ne.jp>
+
+ * eval.c (rb_f_require): feature names should be provided with
+ DLEXT extension.
+
+ * marshal.c (Init_marshal): need to provide `marshal.so'.
+
+Wed Dec 30 02:29:16 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * variable.c (classname): do not call rb_ivar_set().
+
+ * eval.c (ruby_run): finalizers were called too early.
+
+Fri Dec 25 12:19:30 1998 Fukuda Masaki <fukuda@wni.co.jp>
+
+ * gc.c (rb_gc_mark): should not return on FL_EXIVAR.
+
+Fri Dec 25 11:56:51 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * gc.c (gc_mark): proper scanning for temporary region.
+
+ * eval.c (TMP_ALLOC): protection for C_ALLOCA was broken.
+
+Thu Dec 24 18:26:04 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * development version 1.3 released.
+
+Thu Dec 24 00:17:00 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_load): top self should be set properly.
+
+ * variable.c (classname): check __classpath__ iff it is defined.
+
+ * variable.c (classname): invalid warning at -v with static linked
+ ruby interpreter.
+
+ * eval.c (is_defined): modified for expr::Const support.
+
+ * eval.c (rb_eval): invoke method expr::Const if expr is not class
+ nor module.
+
+ * parse.y (primary): enable expr::identifier as method
+ invocation.
+
+Wed Dec 23 03:04:36 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (re_match): avoid too many loop pops for (?:..).
+
+Tue Dec 22 18:01:08 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * experimental version 1.1d1 released.
+
+Mon Dec 21 01:33:03 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (TMP_PROTECT): add volatile to ensure GC protection.
+
+ * string.c (rb_str_gsub_bang): calculate buffer size properly.
+
+ * parse.y (lex_get_str): needed to return Qnil at EOS.
+
+ * eval.c (find_file): check policy modified, raise exception
+ immediately for tainted load_path.
+
+ * hash.c (rb_f_setenv): do not depend on setenv() nor putenv().
+
+Thu Dec 17 06:29:23 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ext/tk/tkutil.c (tk_s_new): use rb_obj_instance_eval(), instead
+ of rb_yield_0().
+
+ * eval.c (rb_f_require): forgot to call find_file in some cases.
+
+ * eval.c (rb_f_require): `require "feature.so"' to load dynamic
+ libraries. old `require "feature.o"' is still OK.
+
+ * eval.c (rb_eval): yield without value dumped core.
+
+Wed Dec 16 16:28:31 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * experimental version 1.1d0 (pre1.2) released.
+
+Wed Dec 16 10:43:34 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (re_search): bound check before calling re_match().
+
+Tue Dec 15 13:59:01 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * error.c (exc_to_s): returns class name for unset mesg.
+
+ * error.c (exc_initialize): do not initialize @mesg by "".
+
+ * parse.y (nextc): __END__ should handle CR+LF newlines.
+
+Wed Dec 9 13:37:12 1998 MAEDA shugo <shugo@aianet.ne.jp>
+
+ * pack.c (encodes): use buffering for B-encoding.
+
+ * pack.c (pack_pack): Q-encoding by 'M'.
+
+Tue Dec 8 14:10:00 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * variable.c (generic_ivar_get): any object can have instance
+ variables now. great improvement.
+
+ * variable.c (rb_name_class): do not set __classpath__ by default,
+ use __classid__ instead.
+
+Mon Dec 7 22:08:22 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ruby.h (struct RFile): IO objects can have instance variables now.
+
+ * parse.y (primary): allows `def obj::foo; .. end'.
+
+Mon Dec 7 18:24:50 1998 WATANABE Tetsuya <tetsu@jpn.hp.com>
+
+ * ruby.c (set_arg0): $0 supprt for HP-UX.
+
+Mon Dec 7 01:30:28 1998 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * dln.c (dln_strerror): better error messages on win32.
+
+Sat Dec 5 23:27:23 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (here_document): indentable here-doc delimiter by
+ `<<-'. Proposed by Clemens <c.hintze@gmx.net>. Thanks.
+
+Thu Dec 3 16:50:17 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ext/extmk.rb.in (realclean): trouble on install.
+
+Sun Nov 29 22:25:39 1998 Takaaki Tateishi <ttate@jaist.ac.jp>
+
+ * process.c (f_exec): check number of argument.
+
+Thu Nov 26 17:27:30 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.1c9 released.
+
+Wed Nov 25 13:07:12 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (rb_str_dup): do not copy additional data (STR_NO_ORIG).
+
+ * parse.y (yycompile): reduce known memory leak (hard to remove).
+
+Wed Nov 25 03:41:21 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * st.c (st_init_table_with_size): round size up to prime number.
+
+Sat Nov 21 23:27:23 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * hash.c (rb_hash_aset): reduce copying key strings.
+
+ * gc.c (looks_pointerp): declare as inline function if possible.
+
+ * st.c (PTR_NOT_EQUAL): compare hash values first before calling
+ comparing function.
+
+ * st.c (ADD_DIRECT): save hash value in entries to reduce hash
+ calculation.
+
+ * string.c (rb_str_gsub_bang): avoid rb_scan_args() to speed-up.
+
+ * string.c (rb_str_sub_bang): ditto.
+
+Sat Nov 21 18:44:06 1998 Masaki Fukushima <fukusima@goto.info.waseda.ac.jp>
+
+ * time.c (time_s_now): had memory leak.
+
+ * ext/md5/md5init.c (md5_new): had memory leak.
+
+ * ext/md5/md5init.c (md5_clone): ditto.
+
+Fri Nov 20 23:23:23 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * lib/delegate.rb: do not propagate hash and eql?.
+
+Thu Nov 19 01:40:52 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * sample/ruby-mode.el (ruby-expr-beg): failed to find reserved
+ word boundary.
+
+ * eval.c (rb_eval): avoid calling `concat' method. calls
+ rb_ary_concat() directly for efficiency.
+
+ * eval.c (rb_eval): actual rest arguments extended arrays too much.
+
+Wed Nov 18 14:30:24 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * class.c (rb_define_global_function): global functions now be
+ module function of the Kernel.
+
+Wed Nov 18 10:48:09 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c (read_all): SEGV on large files.
+
+Tue Nov 17 18:11:20 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.1c8 released.
+
+Tue Nov 17 16:58:47 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (arg): assignment to attribute name start with capital
+ should be allowed.
+
+ * eval.c (thread_alloc): needed to mark terminated threads too.
+
+Tue Nov 17 12:33:48 1998 Motoyuki Kasahara <m-kasahr@sra.co.jp>
+
+ * ext/extmk.rb.in (create_makefile): Set `libdir' to `@libdir@',
+ Set `pkglibdir' to `$libdir/$(RUBY_INSTALL_NAME)'.
+
+Tue Nov 17 10:30:46 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * sprintf.c (f_sprintf): %l%%c -> %%l%c
+
+Tue Nov 17 01:08:50 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (ret_args): distinguish `a' and `*a' for the arguments
+ of yield and return.
+
+ * eval.c (rb_eval): flip3 should work like sed.
+
+ * eval.c (rb_eval): flip{2,3} now have independent state for each
+ scope to work fine with thread.
+
+Mon Nov 16 23:26:29 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (primary): exec else clause if no exception raised.
+
+Sun Nov 15 15:44:07 1998 Tadayoshi Funaba <tadf@kt.rim.or.jp>
+
+ * ext/extmk.rb.in (install): bug in target.
+
+Sat Nov 14 11:02:05 1998 Motoyuki Kasahara <m-kasahr@sra.co.jp>
+
+ * Makefile.in (install): Give the argument `$(DESTDIR)' to
+ `instruby.rb'.
+ * instruby.rb: Recognize ARG[0] as `destdir'.
+ * instruby.rb: Give the argument `destdir' to `extmk.rb'.
+ * ext/extmk.rb.in: Recognize ARG[1] as `$destdir'.
+
+ * instruby.rb: Create the installation directories (bindir, libdir,
+ archdir, pkglibdir, archdir, and mandir) under `destdir', and
+ install all files under there.
+ * ext/extmk.rb.in: Likewise.
+
+Sat Nov 14 10:56:55 1998 Motoyuki Kasahara <m-kasahr@sra.co.jp>
+
+ * instruby.rb: Add the variable `pkglibdir'.
+ * instruby.rb: Set the variable `libdir' to `$(libdir)', not
+ `$(libdir)/$(ruby_install_name)'. `libruby.so' and `libruby.so.LIB'
+ are installed at `libdir'.
+ * instruby.rb: Set the variable `archdir' to `$(pkglibdir)/$(arch)'.
+
+Fri Nov 13 19:43:29 1998 KIMURA Koichi <kbk@kt.rim.or.jp>
+
+ * missing/nt.c (SafeFree): wrong free offset.
+
+Thu Nov 12 20:11:53 1998 Koji Arai <JCA02266@nifty.ne.jp>
+
+ * sample/ruby-mode.el: wrong highlight.
+
+ * parse.y (parse_regx): newline in regexp was ignored.
+
+Wed Nov 11 10:54:57 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (here_document): <<'FOO' should not escape anything.
+
+ * parse.y (here_document): bare << here-doc available, even though
+ it's deprecated.
+
+ * file.c (rb_file_s_readlink): return value should be tainted.
+
+ * ext/etc/etc.c (setup_passwd): information (eg. GCOS name) should
+ be tainted (modified at Perl Conference).
+
+Tue Nov 10 00:22:11 1998 EGUCHI Osamu <eguchi@shizuokanet.ne.jp>
+
+ * configure.in: elf supprt for FreeBSD 3.x
+
+Tue Nov 10 00:05:43 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (yylex): here document available in eval.
+
+Mon Nov 9 17:55:19 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.1c7 released.
+
+Fri Nov 6 19:25:27 1998 Takao KAWAMURA <kawamura@ike.tottori-u.ac.jp>
+
+ * sample/ruby-mode.el: font-lock patch.
+
+Thu Nov 5 15:42:22 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * sample/README, lib/README: simple description for each file.
+
+Wed Nov 4 18:14:19 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (assign): attribute assignment should be called as public.
+
+Tue Nov 3 23:36:39 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (rb_str_dump): dumps core for negative char value.
+
+ * regex.c (re_compile_pattern): out of boundary access for empty
+ regexp.
+
+Mon Nov 2 22:54:01 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (rb_str_aset): `str[str]' replaces first match.
+
+Mon Nov 2 18:24:33 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (thread_create): was accessing modified status.
+
+Sun Nov 1 01:18:52 1998 EGUCHI Osamu <eguchi@shizuokanet.ne.jp>
+
+ * gc.c (xrealloc): size 0 needs round up to 1.
+
+Sat Oct 31 23:18:34 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (rb_str_split_method): negative LIMIT means number of
+ splitted fields are unlimited, as in perl.
+
+ * string.c (rb_str_split_method): if LIMIT is unspecified,
+ trailing null fields are stripped.
+
+Sat Oct 31 04:16:14 1998 Inaba Hiroto <inaba@st.rim.or.jp>
+
+ * string.c (str_aref): regexp index SEGVed.
+
+Fri Oct 30 14:33:47 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * re.c (reg_match): returns nil for unmatch.
+
+ * dir.c (dir_entries): new method.
+
+ * eval.c (block_pass): do not push block, substitute it.
+
+Fri Oct 30 01:28:52 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * range.c (range_check): avoid <=> check for Fixnums.
+
+ * array.c (rb_ary_aset): accept negative index.
+
+Wed Oct 28 22:00:54 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (re_match): access out of boundary fixed.
+
+Wed Oct 28 11:37:42 1998 TAMITO <tommy@valley.ne.jp>
+
+ * io.c (f_select): fd number comparison bug.
+
+Tue Oct 27 23:07:11 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * sample/ruby-mode.el (ruby-parse-region): forgot to support %w()
+ style array literal.
+
+ * eval.c (rb_eval): unused block raises warning.
+
+Mon Oct 26 09:37:53 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (dvar_asgn_push): dvar pushed too many times if
+ variable-in-block first appear in loops.
+
+Sun Oct 25 22:59:27 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (set_list_bits): was using wrong offset.
+
+Thu Oct 22 00:07:11 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_obj_method): method retrieved from tainted object
+ should be tainted too.
+
+ * eval.c (method_call): safe_level should be restored during
+ Method#call.
+
+Wed Oct 21 14:21:06 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c (Init_IO): new constants IO::SEEK_{SET,CUR,END}.
+
+ * io.c (rb_f_ungetc): ungetc pushes a char back into STDIN.
+
+Mon Oct 19 11:50:00 1998 Motoyuki Kasahara <m-kasahr@sra.co.jp>
+
+ * ext/extmk.rb: Load '@top_srcdir@/lib/find.rb', not
+ '../lib/find.rb'.
+ * ext/extmk.rb: Distinguish between `top_srcdir' and `topdir'.
+ * Makefile.in (CFLAGS): Add `-I.'.
+ * Makefile.in (lex.c): Give `@srcdir@/keywords' to gperf, not
+ `keywords'.
+ * instruby.rb: Use `CONFIG["bindir"]', instead of `prefix + "/bin"'.
+ * instruby.rb: Use `CONFIG["libdir"]', instead of `prefix + "/lib"'.
+ * instruby.rb Use `CONFIG["mandir"]', instead of `prefix + "/man"'.
+ * instruby.rb (wdir): Add the variable to preserve the current
+ working directory.
+ * instruby.rb: Chdir to wdir before install `config.h' and
+ `rbconfig.rb'.
+
+Mon Oct 19 10:07:01 1998 EGUCHI Osamu <eguchi@shizuokanet.ne.jp>
+
+ * eval.c (rb_eval): reduce recursive calls to rb_eval().
+
+Fri Oct 16 15:31:45 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * time.c (time_new_internal): timeval must be positive.
+
+Thu Oct 15 13:54:48 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (arg): local variabls can be accessed within right side
+ expression in assignment, notably in blocks.
+
+Wed Oct 14 00:18:33 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * array.c (Init_Array): Array#=== is now for equal check, not
+ inclusion check.
+
+ * parse.y (when_args): `when a, *b' style new syntax for array
+ expansion in `case'.
+
+Tue Oct 13 14:30:32 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * object.c (rb_obj_untaint): taint marks can be unset.
+
+ * eval.c (rb_eval): taint propagation for embedded strings.
+
+Mon Oct 12 13:27:15 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_call0): check stack depth more frequently.
+
+Mon Oct 12 08:08:30 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c (rb_p): can print even in secure mode.
+
+Sun Oct 11 22:50:13 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * variable.c (rb_const_set): taint check for modification.
+
+ * variable.c (rb_ivar_set): taint check for modification.
+
+ * string.c (rb_str_modify): taint check for modification.
+
+ * hash.c (rb_hash_modify): taint check for modification.
+
+ * array.c (rb_ary_modify): taint check for modification.
+
+ * ruby.h (FL_TAINT): taint for all objects, not only strings.
+
+Fri Oct 9 17:01:14 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c (read_all): read() returns "" at immediate EOF.
+
+ * io.c (io_read): read(nil) read all until EOF.
+
+Thu Oct 8 13:32:13 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * time.c (time_dump): marshal can dump Time object now.
+
+ * marshal.c (Init_marshal): rename marshal methods `_dump_to' to
+ `_dump', `_load_from' to `_load'.
+
+ * parse.y (rb_intern): "+=".intern generates proper symbol.
+
+Mon Oct 5 18:31:53 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.1c6 released.
+
+Fri Oct 2 14:22:33 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (re_search): `/\s*(--)$/ =~ "- --"' did not match,
+ because of wrong optimize condition.
+
+Mon Oct 1 01:55:16 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (rb_intern): should not raise exceptions.
+
+ * parse.y (yylex): symbol like `:foo?=' should not be allowed.
+
+ * ext/extmk.rb.in: makes *.a for static link modules.
+
+Wed Sep 30 14:13:06 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_thread_start): supports making a subclass of the
+ Thread class.
+
+Tue Sep 29 17:46:01 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_thread_join): join is now an instance method.
+
+Fri Sep 25 12:01:19 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (yylex): `@foo!' should be an error.
+
+Thu Sep 24 14:55:06 1998 WATANABE Tetsuya <tetsu@jpn.hp.com>
+
+ * ext/etc/etc.c (Init_etc): wrong field definition.
+
+Thu Sep 17 17:09:05 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c (io_reopen): was creating FILE* for wrong fd.
+
+Tue Sep 15 05:28:11 1998 Koji Arai <JCA02266@nifty.ne.jp>
+
+ * regex.c (re_compile_pattern): forgot to fixup for the pattern
+ like (?=(A)|(B)).
+
+Tue Sep 15 01:06:08 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c (rb_io_gets_internal): do not set $_ by default, only
+ gets/readline set the variable.
+
+ * eval.c (rb_f_load): load toplevel class is set to anonymous
+ module if safe_level >= 5, to encapsulate modification.
+
+ * eval.c (rb_f_load): set frame properly.
+
+ * string.c (rb_str_each_line): do not set $_.
+
+Mon Sep 14 14:42:27 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (re_match): beginning and end of the string, do not
+ automatically match `\b'.
+
+ * string.c (scan_once): comsume at leaset on character.
+
+ * regex.c (re_search): wrong behavior for negative range.
+
+Sat Sep 12 21:21:26 1998 Koji Arai <JCA02266@nifty.ne.jp>
+
+ * regex.c (re_search): range value should be maintained.
+
+Thu Sep 10 10:55:00 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (backref_error): yyerror does not understand formats.
+
+Tue Sep 8 18:05:33 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.1c5 released.
+
+Tue Sep 8 10:03:39 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (str_each_line): wrong line splitting with newline at
+ top of the string.
+
+ * string.c: non bang methods return copied string.
+
+ * eval.c (f_END): needed to initialize frame->argc;
+
+Fri Sep 4 11:27:40 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * bignum.c (bigadd): proper sign combination.
+
+ * regex.c (re_search): wrong return value for \A.
+
+Thu Sep 3 14:08:14 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.1c4 released.
+
+Tue Sep 1 10:47:16 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (slow_search): do not compare llen and blen. llen may
+ be longer than blen, if little contains 0xff.
+
+ * regex.c (mbctab_euc): set 0x8e as multibyte character.
+
+ * string.c (str_inspect): mask character for octal output.
+
+Mon Aug 31 15:32:41 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (re_search): use calculated offset if exactn is the
+ first opcode in the compiled regexp.
+
+ * regex.c (bm_search): use Boyer-Moore search for simple search.
+
+ * regex.c (must_instr): wrong length check if pattern includes
+ byte escape by 0xff.
+
+ * regex.c (re_compile_pattern): need not to check current_mbctype.
+
+Sat Aug 29 16:31:40 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_check_safe_str): avoid calling rb_id2name() in normal
+ cases to speed-up.
+
+ * eval.c (thread_raise): do not save context of terminated thread.
+
+ * regex.c (re_compile_pattern): mask \nnn over 256.
+
+Sat Aug 29 02:09:46 1998 Koji Arai <JCA02266@nifty.ne.jp>
+
+ * sprintf.c (f_sprintf): wrong buffer size check.
+
+Fri Aug 28 01:57:04 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (re_compile_pattern): accepts (?ix-ix) and (?ix-ix:...).
+
+Fri Aug 28 12:25:33 1998 Hiroshi Igarashi <igarashi@ueda.info.waseda.ac.jp>
+
+ * ruby.c (ruby_require_modules): load modules in appearing order.
+
+Fri Aug 28 01:57:04 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (re_compile_pattern): accepts (?ix-ix) and (?ix-ix:...).
+
+Thu Aug 27 12:54:28 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.1c3 released.
+
+Wed Aug 26 14:40:56 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_eval): check whether ruby_class is properly set,
+ before accessing it.
+
+ * eval.c (rb_obj_instance_eval): ruby_class should be Qnil for
+ special objects like Fixnums.
+
+ * ext/tkutil/tkutil.c (Init_tkutil): removes calls to
+ rb_yield_0(). used instance_eval() instead in the tk.rb.
+
+Wed Aug 26 11:47:00 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (re_match): pop non-greedy stack elements on success.
+
+Wed Aug 26 09:25:35 1998 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * ruby.h: add #define environ for cygwin32.
+
+Tue Aug 25 08:57:41 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * array.c (rb_ary_sort_bang): temporarily freeze sorting array.
+
+Mon Aug 24 18:46:44 1998 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * dln.c (dln_find_1): path check was too strict.
+
+Mon Aug 24 15:28:11 1998 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * parse.y (f_arglist): opt_nl added after f_args.
+
+Fri Aug 21 01:06:01 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ext/socket/socket.c: grand renaming on socket.c.
+
+ * ext/socket/socket.c (inet_aton): supply inet_aton for those
+ systems that do not have it.
+
+ * ext/socket/socket.c (setipaddr): use inet_aton instead of
+ inet_addr.
+
+ * ext/socket/socket.c (tcp_s_gethostbyname): new method: works
+ like Socket.gethostbyname but returning array contains ip-addrs
+ as octet decimal string format like "127.0.0.1".
+
+ * ext/socket/socket.c (mkhostent): return format changed to
+ [host, aliases, type, ipaddr..] as documented.
+
+Wed Aug 19 00:31:09 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c (io_ctl): forgot to place TRAP_END at right position.
+
+Fri Aug 14 11:01:47 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (call_trace_func): save __FILE__, __LINE__ before
+ executing trace_func, since trace function should not corrupt
+ line number information.
+
+Thu Aug 13 15:09:02 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * array.c (ary_s_new): was marking unallocated region on GC.
+
+Tue Aug 11 11:57:35 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.1c2 released.
+
+Mon Aug 10 14:05:30 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * process.c (f_system): removed fflush(stdin).
+
+Fri Aug 7 17:44:44 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * error.c (err_snprintf): replace sprintf for fixed sized buffer,
+ with snprintf to avoid buffer over-run. For systems which does
+ dot provide snprintf, missing/snprintf.c added.
+
+Wed Aug 5 00:47:35 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * re.c (rb_reg_search): recycle match object.
+
+Mon Aug 3 09:17:55 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (rb_str_gsub_bang): do not allocate temporary string.
+
+ * string.c (rb_str_sub_bang): use inline replace.
+
+Wed Jul 29 00:36:08 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * hash.c (hash_s_new): the default value can be specified.
+
+ * hash.c (hash_default): method to set the default value.
+
+ * hash.c (hash_aref): now returns the default value.
+
+Tue Jul 28 13:03:25 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * array.c (ary_s_new): argument to specify initial value is added.
+
+ * array.c (ary_s_new): specifies size, not capacity.
+
+Mon Jul 27 12:39:34 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (str_replace): zero fill for expansion gap.
+
+ * regex.c (mbctab_euc): set flags on for 0xA1-0xFE. suggested by
+ <inaba@st.rim.or.jp>.
+
+ * string.c (str_inspect): consider current_mbctype.
+
+Sun Jul 26 15:37:11 1998 Tadayoshi Funaba <tadf@kt.rim.or.jp>
+
+ * array.c (ary_s_new): Array.new(1<<30) dumps core.
+
+Fri Jul 24 13:40:19 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.1c1 released.
+
+Fri Jul 24 02:10:22 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * marshal.c (r_bytes2): allocated buffer size was too short.
+
+ * marshal.c (w_object): saves all options, not only casefold flag.
+
+ * re.c (reg_clone): now copies options properly.
+
+ * re.c (reg_get_kcode): code number was wrong.
+
+Thu Jul 23 13:11:32 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_attr): argument should be symbol or string.
+
+Wed Jul 22 11:59:34 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (calculate_must_string): wrong offset added.
+
+Wed Jul 22 11:59:59 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * st.c (rehash): still had a GC problem. fixed.
+
+Tue Jul 21 13:19:30 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (gc_mark_threads): crashed on GC before thread allocation.
+
+ * st.c (rehash): GC during rehash caused SEGV.
+
+Tue Jul 21 01:25:10 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * sprintf.c (f_sprintf): integer formatter totally re-written.
+
+ * sprintf.c (remove_sign_bits): support uppercase hexadecimal.
+
+Sat Jul 18 00:14:13 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * sprintf.c (f_sprintf): proper sign position for %X and %O.
+
+Fri Jul 17 14:10:20 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.1c0 released.
+
+Fri Jul 17 08:01:49 1998 Tadayoshi Funaba <tadf@kt.rim.or.jp>
+
+ * process.c (f_exec): Check_SafeStr() added.
+
+ * process.c (f_system): Check_SafeStr() moved before fork().
+
+Thu Jul 16 22:58:48 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (scan_once): substrings to the block should not be
+ tainted. use reg_nth_match(), not str_substr().
+
+ * string.c (str_substr): needed to transfer taint.
+
+Thu Jul 16 16:15:57 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * gc.c (xmalloc): object allocation count added to GC trigger.
+
+ * eval.c (thread_save_context): avoid marking uninitialized stack
+ in thread_mark. GC may be triggered by REALLOC_N().
+
+Wed Jul 15 15:11:57 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * experimental release 1.1b9_31.
+
+Wed Jul 15 15:05:27 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (thread_create): exit() and abort() in threads now
+ forwarded to main_thread.
+
+Tue Jul 14 14:03:47 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * variable.c (obj_instance_variables): list names that is not
+ instance variables.
+
+ * gc.c (GC_MALLOC_LIMIT): choose smaller limit value.
+
+Mon Jul 13 12:39:38 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * object.c (str2cstr): should not return NULL.
+
+Fri Jul 10 11:51:46 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (gettable): needed to add dyna_in_block() check.
+
+Thu Jul 9 17:38:23 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * experimental release 1.1b9_30.
+
+Thu Jul 9 16:01:48 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * sprintf.c (fmt_setup): format specifier for long needed.
+
+ * sprintf.c (f_sprintf): ditto.
+
+ * numeric.c (fix2str): ditto.
+
+ * eval.c (thread_create): no more ITIMER_REAL.
+
+ * eval.c (thread_create): thread finalization needed before
+ aborting thread if thread_abort is set.
+
+Wed Jul 8 18:17:33 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * bignum.c (big_pow): abandon power by bignum (too big).
+
+Tue Jul 7 13:58:43 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_catch): add C level catch/throw feature.
+
+Mon Jul 6 15:18:09 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (arg): proper return values for `||=' and `&&='.
+
+Fri Jul 3 16:05:11 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * experimental release 1.1b9_29.
+
+Fri Jul 3 11:20:46 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * marshal.c (r_byte): byte should not extend sign bit.
+
+ * numeric.c (fix_mul): use FIX2LONG() instead of FIX2INT() for
+ 64bit architectures.
+
+ * marshal.c (r_bytes): remove weird casting bwetween pointer and int.
+
+ * process.c (proc_setsid): new method Process#setsid().
+
+Thu Jul 2 12:49:21 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * marshal.c (w_object): remove `write_bignum' label for 64bit
+ architectures.
+
+ * marshal.c (r_bytes): needs int, not long.
+
+Wed Jul 1 14:21:06 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * numeric.c (flo_plus): should not allow addition with strings.
+
+Wed Jul 1 13:09:01 1998 Keiju ISHITSUKA <keiju@rational.com>
+
+ * numeric.c (num_uminus): wrong coerce direction.
+
+Tue Jun 30 10:13:44 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c (f_p): accepts arbitrary number of arguments.
+
+ * eval.c (rb_yield_0): there's some case that iterator_p() returns
+ true even if the_block was not set. check added.
+
+Tue Jun 30 01:05:20 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (BEGIN_CALLARGS): adjust the_block before evaluating the
+ receiver's value and the arguments.
+
+Fri Jun 26 18:02:50 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * experimental release 1.1b9_28.
+
+Fri Jun 26 11:01:26 1998 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * string.c (str_aset_method): needed to convert to string.
+
+Thu Jun 25 02:05:50 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (re_search): optimize for `.*' at beginning of the
+ pattern.
+
+ * regex.c (re_search): optimize for character class repeat at
+ beginning of the pattern.
+
+ * regex.c (re_compile_pattern): detect optimization potential for
+ the compiled patterns.
+
+Thu Jun 25 00:02:26 1998 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * re.c (reg_s_new): flag value was wrong.
+
+Wed Jun 24 23:45:06 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (re_search): wrong anchor handling for reverse search.
+
+Wed Jun 24 02:18:57 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (mlhs): `((a,b)),c = [[1,2]],3' assigns a=1,b=2,c=3.
+
+Tue Jun 23 11:46:16 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (yylex): `&&=' and `||=' added.
+
+Sat Jun 20 02:53:50 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (assignable): nesting local variables should have higher
+ priority than normal local variables for assignment too.
+
+Fri Jun 19 18:28:19 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * experimental release 1.1b9_27.
+
+Fri Jun 19 14:34:49 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (assign): support hack for nested multiple assignment.
+
+ * parse.y (mlhs): nested multiple assignment.
+
+ * eval.c (rb_eval): in-block variables now honors static scope.
+
+ * configure.in: RSHIFT check moved to configure.
+
+Thu Jun 18 16:46:04 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * experimental release 1.1b9_26.
+
+Thu Jun 18 13:37:19 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * file.c (file_s_ftype): uses lstat(2) instead of stat(2).
+
+ * dir.c (dir_s_glob): there can be buffer overrun, check added.
+
+ * eval.c (f_binding): handles in-block variables declared after
+ binding's generation.
+
+ * numeric.c (flo_floor): floor, ceil, round added to Float.
+
+Wed Jun 17 11:20:00 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (gettable): nesting local variables should have higher
+ priority than normal local variables.
+
+Tue Jun 16 12:30:46 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * bignum.c (str2inum): handles `+ddd'.
+
+ * struct.c (make_struct): name parameter can be nil for unnamed
+ structures.
+
+Mon Jun 15 16:30:10 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * object.c (class_s_inherited): prohibiting to make subclass of
+ class Class.
+
+ * object.c (module_s_new): support for making subclass of Module.
+
+ * parse.y (yycompile): clear eval_tree before compiling.
+
+Fri Jun 12 17:58:18 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (eval): write back the_dyna_var into the block.
+
+Thu Jun 11 18:19:18 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * experimental release 1.1b9_25.
+
+ * eval.c (dvar_add_compiling): register dyna_var at compile time.
+
+ * regex.c (re_compile_pattern): RE_DUP_MAX iteration is too big.
+
+Wed Jun 10 15:12:04 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c (io_eof): do not block other threads.
+
+ * signal.c (trap): reserve SIGALRM for thread.
+
+ * eval.c (thread_create): use ITIMER_REAL also to avoid system
+ call blocking.
+
+ * io.c (f_syscall): add TRAP_BEG, TRAP_END around system calls.
+
+ * io.c (io_ctl): add TRAP_BEG, TRAP_END around system calls.
+
+ * enum.c (enum_collect): did not collect false values.
+
+ * array.c (ary_new2): forgot to initialize capa field.
+
+Tue Jun 9 18:36:15 1998 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * string.c (str_split_method): split dumped core for "\xff".
+
+Tue Jun 9 16:22:12 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * experimental release 1.1b9_24.
+
+Tue Jun 9 16:04:07 1998 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * ext/kconv/kconv.c (kconv_guess): more precise decision for EUC,
+ using jless algorithm (3 sequential EUC hiragana characters).
+
+Tue Jun 9 15:12:44 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ext/kconv/kconv.c (kconv_guess): wrong guess for EUC as SJIS in
+ some cases (0xe0 - 0xef).
+
+ * gc.c (xmalloc): insert size check for big (negative in signed)
+ allocation size.
+
+Tue Jun 9 02:54:51 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * lib/parsedate.rb: wday moved to the last in the return values.
+
+Mon Jun 8 10:40:16 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (str_split_method): split dumped core for "\0".
+
+Sat Jun 6 22:50:52 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (calculate_must_string): wrong condition for
+ {start,stop}_nowidth.
+
+ * regex.c (re_match): various features imported from GNU regex.c
+ 0.12, such as nested grouping, avoiding infinite loop with empty
+ match, etc.
+
+ * regex.c (register_info_type): now use union.
+
+ * regex.c (re_search): more precise anchor(^) check.
+
+Wed Jun 3 18:07:54 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * re.c (reg_raise): check rb_in_compile, not rb_in_eval.
+
+Mon Jun 1 05:26:06 1998 WATANABE Tetsuya <tetsu@jpn.hp.com>
+
+ * string.c (trnext): casting to signed char* needed.
+
+Tue Jun 2 16:00:12 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ext/socket/socket.c (udp_addrsetup): error check enhanced.
+
+ * ext/socket/socket.c (sock_s_getservbyaname): use strtoul(), if
+ possible.
+
+Sat May 30 07:10:02 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * re.c (reg_prepare_re): no more needless regular expression
+ recompile on casefold conditions.
+
+Thu May 28 18:02:55 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * object.c (nil_plus): no more `+' method for nil.
+
+Wed May 27 17:33:46 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * hash.c (hash_fetch): new method.
+
+ * regex.c (re_search): check whether translate table is set.
+
+Tue May 26 11:39:50 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * experimental release 1.1b9_23.
+
+ * parse.y (yylex): no UPLUS/UMINUS for 1st argument if
+ parenthesises are omitted.
+
+Tue May 26 01:09:55 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (re_compile_pattern): (?XI) for turns off the
+ corresponding option.
+
+Mon May 25 12:38:56 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (re_compile_pattern): inline i option (?i).
+
+ * regex.c (re_compile_pattern): inline x option (?x).
+
+ * regex.c (re_compile_pattern): x option for regexp.
+
+ * dir.c (dir_s_open): returns block's evaluated value.
+
+ * io.c (f_open): returns block's evaluated value.
+
+ * ext/curses/curses.c (curses_addstr): nil argument caused SEGV.
+
+Fri May 22 11:52:45 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (re_compile_pattern): push mark on (?:), so that
+ laststart check for {a,b} can be done.
+
+Thu May 21 17:31:16 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (re_match): wrong match (too non-greedy) for `{a,b}?'.
+
+ * io.c (io_lineno): new method IO#lineno, IO#lineno=.
+
+Wed May 20 06:04:43 1998 MAEDA shugo <shugo@aianet.ne.jp>
+
+ * BeOS patch.
+
+Wed May 20 16:32:19 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * bignum.c (BIGDN): use RSHIFT(), instead of mere `>>'.
+
+Tue May 19 16:36:26 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * experimental release 1.1b9_22.
+
+Tue May 19 16:31:57 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (assignable): specification changed for in-block
+ variable definition.
+
+ * eval.c (dyna_var_asgn): error in in-block variables' compile
+ time definition.
+
+ * parse.y (str_extend): wrong nesting detection.
+
+Tue May 19 09:47:55 1998 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * numeric.c (num2int): re-defined (extensions may use this).
+
+Mon May 18 16:40:50 1998 MAEDA shugo <shugo@aianet.ne.jp>
+
+ * error.c (get_syserr): BeOS support.
+
+ * configure.in: modified for BeOS.
+
+ * string.c (str_dump): do not call isascii().
+
+ * sprintf.c (remove_sign_bits): forgot to initialize end pointer.
+
+ * glob.c: #include <alloca.h> added.
+
+Mon May 18 14:52:21 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * experimental release 1.1b9_21.
+
+Mon May 18 03:27:57 1998 MAEDA shugo <shugo@aianet.ne.jp>
+
+ * file.c (file_s_expand_path): optional second argument
+ `default_directory' added.
+
+Sat May 16 22:06:52 1998 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * error.c (RAISE_ERROR): wrong error message
+
+Fri May 15 14:43:25 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * experimental release 1.1b9_20.
+
+Thu May 14 14:44:21 1998 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * sun4 cc patches for intern.h and regex.h.
+
+Thu May 14 14:03:16 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * random.c (RANDOM_MAX): guessing proper maximum value for random
+ numbers.
+
+ * random.c (f_rand): use drand48 if possible.
+
+Wed May 13 19:05:20 1998 MAEDA shugo <shugo@aianet.ne.jp>
+
+ * BeOS patches for io.c, error.c and config.guess.
+
+Wed May 13 14:56:23 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * experimental release 1.1b9_19.
+
+ * most of the Mac and BeOS patches merged, except path separators.
+
+ * error.c (err_append): generated SyntaxError was String.
+
+ * ruby.h: xxx2INT, xxx2UINT checks values as int, not long.
+
+ * ruby.h: remove typedef's. INT, UINT, UCHAR, USHORT.
+
+Tue May 12 17:38:00 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * experimental release 1.1b9_18.
+
+Tue May 12 11:38:08 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * error.c (syserr_errno): returns errno of the SystemCallError.
+
+ * error.c (rb_sys_fail): saves errno in the Exception.
+
+ * error.c (set_syserr): no need to protect syserr_list.
+
+ * error.c (rb_sys_fail): no more bufsize limit.
+
+ * error.c (set_syserr): integer value of errno can be accessed by
+ Errno::EXXX::Errno.
+
+Sun May 10 03:10:33 1998 WATANABE Tetsuya <tetsu@jpn.hp.com>
+
+ * io.c (io_tell etc.): moved from File class to IO class.
+
+Fri May 8 12:26:37 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * pack.c (pack_unpack): should be unsigned int (was signed int).
+
+Thu May 7 16:34:10 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * pack.c (pack_pack): `V', `N' uses newly created NUM2UINT().
+
+ * ruby.h (NUM2UINT): new macro.
+
+ * bignum.c (big2uint): try to convert bignum into UINT.
+
+ * re.c (reg_match): needed to return false for match with nil.
+
+ * gc.c (obj_free): wrong condition to free string.
+
+Wed May 6 21:08:08 1998 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * ruby.c (ruby_process_options): modified for DJGPP.
+
+Wed May 6 15:48:03 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * experimental release 1.1b9_17.
+
+Wed May 6 01:37:39 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c: remove global variable `errat'.
+
+ * eval.c (rb_longjmp): embed error position information in the
+ exception object.
+
+Sat May 2 12:20:02 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * re.c (reg_search): supports reverse search.
+
+ * string.c (str_index_method): does update $~ etc.
+
+ * eval.c (f_load): needed to clear the_dyna_vars.
+
+ * eval.c (dyna_var_asgn): do not push dyna_var, which is id == 0.
+
+ * error.c (Init_Exception): NotImplementError is no longer
+ StandardError, which is not handled by default rescue.
+
+Fri May 1 00:35:51 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ruby.c (proc_options): `-d' turns on verbose flag too.
+
+ * error.c (exception): last argument may be the superclass of the
+ defining exception(s).
+
+ * io.c (Init_IO): EOFError is now subclass of the IOError.
+
+ * io.c (Init_IO): forgot to define IOError.
+
+ * error.c (Init_Exception): old Exception class renamed to
+ StandardError. Exception now replaces old GlobalExit.
+
+ * error.c (Init_Exception): Exception is now the root of the
+ Global Exits. There's no longer GlobalExit class.
+
+ * util.c (ruby_mktemp): check TMP, TMPDIR first.
+
+Thu Apr 30 01:08:35 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * lib/tk.rb: call 'unknown', if proc not defined.
+
+ * eval.c (handle_rescue): default rescue handles `Exceptional' not
+ only the instance of the `Exception's.
+
+ * eval.c (f_raise): exception can be any object.
+
+ * time.c (time_gm_or_local): call time_gmtime or time_localtime.
+
+ * eval.c (f_raise): raises TypeError if the class which is not a
+ subclass of String is specified (checked in exc_new()).
+
+ * error.c (exc_new): need to check whether invalid class (not a
+ subclass of String) is specified.
+
+Wed Apr 29 21:05:44 1998 WATANABE Hirofumi <eban@os.rim.or.jp>
+
+ * ruby.c (proc_options): option '-e' via tempfile.
+
+Tue Apr 28 15:27:58 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * experimental release 1.1b9_16.
+
+Tue Apr 28 00:07:38 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (obj_is_proc): type check predicate.
+
+ * eval.c (obj_is_block): ditto.
+
+Mon Apr 27 16:59:17 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ext/gtk/gtk.c (Init_gtk): use timeout, not idle to avoid
+ comsuming CPU too much.
+
+ * lib/tk.rb: use tcltklib#_invoke instead of `_eval'.
+
+Mon Apr 27 16:59:17 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * array.c (ary_sort): use dup, not clone.
+
+Mon Apr 27 13:46:27 1998 Tadahiro Maebashi <maebashi@iij.ad.jp>
+
+ * ext/tcltklib/tcltklib.c (ip_invoke): invoke tcl command
+ directly. need not worry about escaping tcl characters.
+
+Mon Apr 27 12:04:43 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * random.c (f_rand): do not call srand() implicitly.
+
+Fri Apr 24 14:35:45 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * experimental release 1.1b9_15.
+
+ * parse.y (assignable): dyna_var_asgn actually defines nested
+ local variables in outer context.
+
+ * random.c (f_rand): call srand(), if it has not called yet.
+
+ * random.c (f_srand): use tv_usec as the default seed.
+
+ * eval.c (rb_eval): values of nested local variables should be
+ independent.
+
+ * eval.c (rb_yield_0): local variables wrong nested conditions.
+
+Wed Apr 22 23:27:17 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c (select_get_io): get IO object by `to_io'.
+
+ * io.c (io_to_io): method to retrieve IO object, from delegating
+ object for example.
+
+Wed Apr 22 16:52:37 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * experimental release 1.1b9_14.
+
+ * string.c (str_modify): check for embedded pointer reference.
+
+ * gc.c (obj_free): ditto.
+
+ * pack.c (pack_pack): p/P template to embed pointers.
+
+Wed Apr 22 00:07:10 1998 Tadayoshi Funaba <tadf@kt.rim.or.jp>
+
+ * array.c (ary_rindex): embarrassing typo.
+
+Tue Apr 21 12:31:48 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * experimental release 1.1b9_13.
+
+ * configure.in (RUBY_LIB): supports --program-{prefix,suffix}.
+
+ * array.c (ary_rindex): new method.
+
+ * io.c (io_binmode): should return self.
+
+Tue Apr 21 08:23:04 1998 Tadayoshi Funaba <tadf@kt.rim.or.jp>
+
+ * parse.y (here_document): calling parse_string with wrong
+ arguments.
+
+ * struct.c (struct_aset): problem member assignment with name.
+
+Mon Apr 20 14:47:49 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * experimental release 1.1b9_12.
+
+ * time.c (time_arg): args may be string (support for reduced
+ implicit type conversion).
+
+ * lib/base64.rb: changed to use pack/unpack with `m' template.
+
+Mon Apr 20 06:23:20 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * variable.c (mod_remove_const): new method.
+
+Sat Apr 18 03:53:27 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * hash.c (hash_each_with_index): removed. use Enumerable's
+ each_with_index instead.
+
+ * class.c (rb_include_module): check for super modules, since
+ module's included modules may be changed.
+
+Fri Apr 17 21:50:47 1998 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * marshal.c (r_long): r_byte() may return signed byte.
+
+Fri Apr 17 11:58:30 1998 NAGAI Hidetoshi <nagai@dumbo.ai.kyutech.ac.jp>
+
+ * ext/tcltklib/tcltklib.c (lib_mainloop): thread and interrupt check.
+
+Fri Apr 17 11:06:30 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (find_file): try to fopen() to check whether file exists.
+
+ * ruby.c (load_file): ditto.
+
+ * struct.c (struct_aset): struct member can be set by member name.
+
+Fri Apr 17 00:47:19 1998 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * ext/extmk.rb.in: added m68k-human support
+
+ * file.c (LOCK_SH): defines moved.
+
+ * array.c (ary_flatten_bang): simplified loop.
+
+Thu Apr 16 16:52:01 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * experimental release 1.1b9_11.
+
+ * lib/tk.rb: thread support (experimental - maybe slow).
+
+ * eval.c (rb_longjmp): trace event on exception in raising
+ context, just before raising exception.
+
+ * struct.c (struct_s_members): forgot to check singletons.
+
+ * struct.c (struct_aref): members can be accessed by names too.
+
+ * array.c (ary_flatten): new method.
+
+ * eval.c (rb_longjmp): prints exception information with `-d'.
+
+ * object.c (any_to_s): remove class name restriction.
+
+Thu Apr 16 01:38:02 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * file.c (thread_flock): do not block other threads.
+
+ * eval.c (thread_trap_eval): signals are now delivered to the
+ current thread again. In case that the current thread is dead,
+ signals are forwarded to the main thread.
+
+ * string.c (str_new4): need not to duplicate frozen strings.
+
+Wed Apr 15 08:33:47 1998 Tadayoshi Funaba <tadf@kt.rim.or.jp>
+
+ * struct.c (struct_inspect): remove restriction for struct names.
+
+Wed Apr 15 02:55:02 1998 Kazuya 'Sharl' Masuda <sharl@www.ufo.co.jp>
+
+ * x68 patches to config.sub, ext/extmk.rb.in
+
+Wed Apr 15 01:22:56 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (str_dup_frozen): do not duplicate frozen strings.
+
+ * parse.y (yylex): allow nested parenthesises.
+
+ * io.c (obj_displayln): prints newline after `display'ing the
+ receiver.
+
+ * io.c (io_puts): avoid generating "\n" each time. use RS_default
+ instead.
+
+ * io.c (f_p): ditto.
+
+Tue Apr 14 22:18:17 1998 Tadayoshi Funaba <tadf@kt.rim.or.jp>
+
+ * struct.c (struct_aref): should not subtract negative index.
+
+Tue Apr 14 11:34:50 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * experimental release 1.1b9_10.
+
+ * parse.y: token names prefixed by `t'.
+
+ * struct.c (struct_s_def): supports subclassing of Struct.
+
+ * io.c (io_s_new): supports subclassing of IO.
+
+Mon Apr 13 11:07:39 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (f_binding): need to restore method name.
+
+ * eval.c (rb_call0): raises SystemStackError, not Fatal.
+
+ * io.c (obj_display): same as `print self'.
+
+ * io.c (f_p): can now be called in the method form.
+
+ * re.c (reg_regsub): needed to be mbchar aware.
+
+Mon Apr 13 13:18:32 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (thread_trap_eval): all signals delivered to main_thread.
+
+Mon Apr 13 12:47:03 1998 TAKAHASHI Masayoshi <maki@inac.co.jp>
+
+ * re.c (kcode_set_option): did not set SJIS on SJIS condition.
+
+Sun Apr 12 22:14:07 1998 Kazunori NISHI <kazunori@swlab.csce.kyushu-u.ac.jp>
+
+ * array.c (ary_uniq_bang): should be `==', not `='. embarrassing.
+
+Sat Apr 11 02:13:30 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * array.c (ary_subseq): SEGVed for `[][1,1]'.
+
+Fri Apr 10 21:29:06 1998 Tadayoshi Funaba <tadf@kt.rim.or.jp>
+
+ * array.c (ary_subseq): add check for beg larger than array length.
+
+Wed Apr 8 17:24:11 1998 MAEDA shugo <shugo@po.aianet.ne.jp>
+
+ * dir.c (dir_s_open): can be called with block (like IO#open).
+
+ * dir.c (dir_s_chdir): print directory path on error.
+
+ * dir.c (dir_s_chroot): ditto
+
+ * dir.c (Init_Dir): needed to override `new'.
+
+Thu Apr 9 18:24:58 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * experimental release 1.1b9_09.
+
+ * string.c (str_cmp): do not depend on sentinel at the end of the
+ strings.
+
+ * string.c (str_chomp_bang): forgot to set the sentinel.
+
+Wed Apr 8 00:59:13 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * bignum.c (big2int): converted int may be too big to fit in
+ signed int.
+
+ * parse.y (arg): `foo += 1' should not cause an error.
+
+ * variable.c (rb_const_defined): returned false even if the
+ constant is defined at the top level.
+
+ * eval.c (f_local_variables): dyna_var->id may be null. should
+ have checked before calling str_new2().
+
+Tue Apr 7 01:15:15 1998 Kaneko Naoshi <wbs01621@mail.wbs.or.jp>
+
+ * re.c (reg_regsub): need to check string boundary.
+
+Tue Apr 7 19:19:12 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (str_cmp): returns either 1, 0, -1.
+
+ * array.c (ary_cmp): should check array length, too
+
+Tue Apr 7 18:50:16 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * experimental release 1.1b9_08.
+
+Tue Apr 7 18:31:27 1998 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * instruby.rb (mandir): dll installation for cygwin32
+
+Tue Apr 7 01:16:45 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * config.sub (maybe_os): TOWNS support?
+
+ * config.guess: too strict check for libc versions on linuxes.
+
+ * experimental release 1.1b9_07.
+
+ * array.c (ary_cmp): compare each element using `<=>'.
+
+ * hash.c (hash_each_with_index): yields [value, key] pair.
+
+ * class.c (class_protected_instance_methods): list protected
+ method names.
+
+ * class.c (ins_methods_i): exclude protected methods.
+
+ * eval.c (PUSH_BLOCK): dynamic variables can be accessed from
+ eval() with bindings.
+
+Mon Apr 6 14:49:06 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (thread_yield): must return evaluated value.
+
+Fri Apr 3 13:07:29 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (thread_schedule): context switch bypassed on wrong
+ conditions.
+
+ * variable.c (rb_name_class): set classname by id before String
+ class is initialized (1.0 behavior restored).
+
+Fri Apr 3 11:25:45 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * numeric.c (num2int): no implicit conversion from string.
+
+ * numeric.c (num2int): check whether `to_i' returns an Integer.
+
+ * numeric.c (num_zero_p): new method.
+
+ * numeric.c (num_nonzero_p): new method. returns the receiver if
+ it's not zero.
+
+ * eval.c (obj_instance_eval): the_class should be the object's
+ singleton class.
+
+ * error.c (exc_s_new): message is converted into a string.
+
+Thu Apr 2 18:31:46 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (obj_call_init): every object call `initialize'.
+
+Wed Apr 1 08:51:53 1998 Tadayoshi Funaba <tadf@kt.rim.or.jp>
+
+ * parse.y (stmt): UNTIL_MOD should be for stmt, not only for expr.
+
+Wed Apr 1 01:20:31 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * object.c (true_and): boolean operators &, | and ^.
+
+Tue Mar 31 13:23:58 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * array.c (ary_compact_bang): returns nil, if it does not modify
+ the array like String's bang methods.
+
+ * array.c (ary_uniq_bang): new method to remove duplicate items.
+
+ * eval.c (bind_s_new): new method.
+
+ * numeric.c (num2int): raise exception if Fixnums too big to
+ convert into `int' in case that sizeof(int) < sizeof(INT).
+
+ * string.c (str_center): SEGV on negative width.
+
+ * eval.c (eval): forgot to set sourcefile.
+
+Mon Mar 30 11:12:29 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * file.c (f_test): raises exception for unkown command.
+
+ * eval.c (Init_eval): `class_eval': alias to the module_eval.
+
+Mon Mar 30 18:50:42 1998 Tadayoshi Funaba <tadf@kt.rim.or.jp>
+
+ * string.c (str_capitalize_bang): did not check string modification.
+
+ * string.c (str_delete_bang): wrong conversion.
+
+ * string.c (str_intern): typo in error message.
+
+Mon Mar 30 01:44:13 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (obj_instance_eval): accepts block as evaluation body.
+ No compilation needed each time.
+
+ * eval.c (mod_module_eval): ditto
+
+ * file.c (file_s_umask): umask did not return old values, if no
+ argument given.
+
+Sun Mar 29 00:54:23 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (f_throw): nil returned always.
+
+Sat Mar 28 20:40:12 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * experimental release 1.1b9_06.
+
+Sat Mar 28 16:07:11 1998 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * io.c (io_closed): should not cause exception for closed IO.
+
+ * string.c (str_tr): returned nil for success.
+
+Sat Mar 28 00:47:19 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (f_local_variables): new method to return an array of
+ local variable names.
+
+ * variable.c (obj_instance_variables): now returns an array of
+ variable names, as described in the reference.
+
+ * eval.c (rb_attr): honors default method visibility of the
+ current scope.
+
+Fri Mar 27 13:49:27 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * experimental release 1.1b9_05.
+
+ * ruby.c (ruby_prog_init): `site_ruby' added to load_path.
+
+ * ruby.c (ruby_prog_init): load-path order changed. Paths in
+ the RUBYLIB environment variable comes first in non-tainted
+ mode.
+
+Thu Mar 26 11:51:09 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_call): new feature: `protected' methods.
+
+ * string.c (str_dump): new method.
+
+ * eval.c (block_pass): block argument can be nil, which means no
+ block is supplied for the method.
+
+Wed Mar 25 21:20:13 1998 Tadayoshi Funaba <tadf@kt.rim.or.jp>
+
+ * string.c (str_reverse_bang): string copied to wrong place.
+
+Wed Mar 25 08:12:07 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * numeric.c (flo_modulo): caused SEGV if left operand is not a
+ float value.
+
+ * eval.c (f_eval): optional third and fourth argument to specify
+ file-name and line-number.
+
+ * eval.c (eval): file-name and line-number set properly.
+
+ * parse.y (assign_in_cond): literal assignment is now warning, not
+ compile error.
+
+ * error.c (Warn): Warn() always print message, OTOH Waring()
+ prints when verbose flag is set.
+
+Tue Mar 24 12:50:06 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ruby.c (ruby_prog_init): `.' should come last in the load-path.
+
+ * eval.c (Init_eval): `__send__', alias for `send'.
+
+Mon Mar 23 12:44:12 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (str_chomp_bang): now takes `rs' as an argument.
+
+ * eval.c (thread_free): main_thread should not be freed.
+
+Fri Mar 20 16:40:34 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (str_chomp_bang): chomp! (and other ! methods) returns
+ nil if it does not modify the string.
+
+ * string.c (str_sub_iter_s): should check last pattern since it
+ may be matched to null.
+
+Thu Mar 19 13:48:55 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * experimental release 1.1b9_04.
+
+ * parse.y (yylex): `10e0.9' should cause syntax error.
+
+Wed Mar 18 17:46:31 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ruby.c (load_file): new file object constant DATA. Only
+ available for the script from the file.
+
+ * regex.c (re_match): forwading failure point popped too much.
+
+Tue Mar 17 18:23:06 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * math.c (math_frexp): newly added.
+
+ * math.c (math_ldexp): ditto.
+
+ * bignum.c (bigdivmod): calculates modulo.
+
+ * numeric.c (fix_remainder): returns reminder, formerly introduced
+ as modulo.
+
+ * numeric.c (fix_modulo): calculates proper `modulo'.
+
+ * bignum.c (bigdivmod): wrong sign for reminder.
+
+Mon Mar 16 17:07:28 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * experimental release 1.1b9_03.
+
+Mon Mar 16 16:33:53 1998 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * io.c (pipe_finalize): needed to add pipe_finalize to pipes on
+ cygwin32.
+
+Mon Mar 16 14:11:06 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * class.c (ins_methods_i): needed to consider NOEX_UNDEF.
+
+Mon Mar 16 13:23:53 1998 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * io.c (io_check_closed): check for `fptr->f2 == NULL'.
+
+ * io.c (io_fptr_close): ditto.
+
+Mon Mar 16 11:49:25 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c (pipe_atexit): free()ing referencing pipe_list.
+
+ * range.c (range_length): returns zero, if the first is greater
+ than the last.
+
+ * signal.c (trap_restore_mask): restore signal mask before raising
+ exceptions and throws.
+
+Fri Mar 13 13:49:24 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * experimental release 1.1b9_02.
+
+ * object.c (mod_clone): need to dups constants and instance
+ variables.
+
+ * eval.c (rb_eval): forgot to initialize body for NODE_DEFS.
+
+ * eval.c (rb_eval): retrieve self from calling frame, since self
+ changes sometimes.
+
+ * env.h (FRAME): need to save self in the calling frame.
+
+ * io.c (f_gets_method): rs should be initialized by RS.
+
+Thu Mar 12 15:33:57 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * experimental release 1.1b9_01.
+
+ * range.c (range_s_new): check values by `first <= last'.
+
+ * parse.y (lastline_set): fixed offset for $_ and $~ in the local
+ variable space.
+
+Wed Mar 11 02:14:17 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c (io_gets): handle normal case specially for speed.
+
+ * eval.c (rb_disable_super): function to disable superclass's
+ method explicitly.
+
+ * eval.c (rb_eval): inherits previous method definition's
+ NOEX_UNDEF-ness, if exists.
+
+ * class.c (rb_define_method): disables superclass's overriding
+ method by default.
+
+Wed Mar 11 01:40:48 1998 MAEDA shugo <shugo@po.aianet.ne.jp>
+
+ * numeric.c (flo_gt,etc.): do not depend on `<=>', to handle NaN.
+
+Tue Mar 10 00:03:24 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ruby.c (load_file): understands multiple options in #! line.
+
+ * regex.c (re_compile_pattern): support for [:alpha:] etc.
+
+Mon Mar 9 16:53:51 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.h (GetOpenFile): embed io_check_closed in GetOpenFile.
+
+ * sprintf.c (f_sprintf): zero padding failed for negative
+ integers.
+
+ * sprintf.c (remove_sign_bits): failed to remove some bits.
+
+Sat Mar 7 21:51:46 1998 MAEDA shugo <shugo@po.aianet.ne.jp>
+
+ * class.c (ins_methods_i): body may be NULL for some case.
+
+Fri Mar 6 17:23:07 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (mbcinit): table driven mbchar detection.
+
+ * object.c (obj_alloc): check for allocating instance for the
+ primitive classes (mostly perfect).
+
+ * ext/curses/curses.c (curses_finalize): restore original state at
+ interpreter temination.
+
+ * ext/curses/curses.c (curses_addstr): forgot to check argument
+ type (caused SEGV). now uses STR2CSTR() macro.
+
+Thu Mar 5 13:47:39 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (block_pass): accepts method object as block args.
+
+ * eval.c (f_missing): use any_to_s() for stringify.
+
+Wed Mar 4 01:39:52 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (block_arg): new syntax - block argument in the
+ calling arglist.
+
+ * eval.c (rb_call): no module search. simplified a lot.
+
+ * eval.c (rb_eval): block arg support.
+
+ * parse.y (f_block_arg): new syntax - block argument in the
+ formal arglist.
+
+Tue Mar 3 14:20:15 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (obj_method): returns bound method object.
+
+ * eval.c (rb_call): argument check for empty methods.
+
+ * ruby.h (NUM2CHR): new macro, originally from curses module.
+
+Tue Mar 3 13:03:35 1998 MAEDA shugo <shugo@po.aianet.ne.jp>
+
+ * io.c (io_putc): new method.
+
+Tue Mar 3 11:21:28 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (str_inspect): more strict charcode detection.
+
+ * eval.c (thread_stop): stopping only thread raises ThreadError
+ exception.
+
+Tue Mar 3 08:04:56 1998 Tadayoshi Funaba <tadf@kt.rim.or.jp>
+
+ * struct.c (struct_alloc): imcomplete struct initialization made
+ GC to access unallocated addresses.
+
+Mon Mar 2 16:28:27 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (thread_stop_method): remove Thread#stop.
+
+Fri Feb 27 18:16:26 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.1b9 released.
+
+Fri Feb 27 09:36:35 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * hash.c (hash_delete_nil): needed to compare value to nil, since
+ nil is the valid key for hashes.
+
+ * hash.c (hash_foreach_iter): rehashing causes IndexError.
+
+ * hash.c (hash_foreach_iter): rehash check by pointer comparison.
+
+Thu Feb 26 17:22:13 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (fname): convert reswords into symbols.
+
+ * parse.y (reswords): reserved words are now embedded in the
+ syntax (sigh).
+
+ * parse.y: now reserved words can be method names safely.
+
+Wed Feb 25 15:50:07 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (mod_module_eval): clear the_scope's PRIVATE flag before
+ calling eval().
+
+ * gc.c (gc_call_finalizer_at_exit): run finalizers before any data
+ object being freed.
+
+ * eval.c (rb_eval): needed to keep prot_tag->retval before
+ evaluating the ensure clause.
+
+Tue Feb 24 11:16:32 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (yylex): reserved words can be appear as method names at
+ right after 'def' and `.'(dot), like foo.next.
+
+ * eval.c (return_check): checks for return out of thread (formerly
+ done in return_value).
+
+ * eval.c (POP_TAG): copy retval to outer level.
+
+ * eval.c (return_value): just set retval, no check, no unwinding.
+
+ * parse.y (nextc): line continuation by backslash at end of line.
+
+ * regex.c (re_compile_pattern): forgot to clear pending_exact on
+ closing parentheses.
+
+ * parse.y (assignable): should not assign dyna_var to true, if it
+ is already defined.
+
+Mon Feb 23 14:35:03 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * object.c (obj_is_kind_of): no longer accepts true/false/nil.
+
+ * object.c ({true,false,nil}_to_i): can be converted into integers.
+
+Mon Feb 23 12:11:51 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * re.c (reg_s_quote): needed to be mbchar aware.
+
+ * eval.c (proc_s_new): wrong iter mark.
+
+Sat Feb 21 22:59:30 1998 MAEDA shugo <shugo@po.aianet.ne.jp>
+
+ * io.c (f_syscall): no argument check.
+
+Fri Feb 20 10:17:51 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.1b8 released.
+
+ * ext/kconv/kconv.c (kconv_kconv): default output code now be
+ determined according to the value of $KCODE.
+
+ * re.c (rb_get_kcode): can retrieve $KCODE from C code.
+
+ * parse.y (stmt): if/unless modifiers returns nil, if condition is
+ not established.
+
+Thu Feb 19 11:06:47 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ext/kconv/kconv.c (kconv_kconv): charcode can be specified by
+ code name (JIS, SJIS, EUC like value of $KCODE).
+
+ * regex.c (re_compile_pattern): forgot to fixup_jump for (?:..).
+
+ * regex.c (re_compile_pattern): needed to clear pending_exact on
+ non-registering grouping (?:...).
+
+Wed Feb 18 19:54:21 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (here_document): needed to set lex_state to EXPR_END.
+
+Wed Feb 18 18:45:10 1998 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * patches for cygwin32 applied.
+
+Wed Feb 18 00:41:31 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (str_sub_s): needed to be mbchar aware to increment one
+ character.
+
+ * regex.c (re_match): \Z matches newline just before the end of
+ the string.
+
+Tue Feb 17 00:04:32 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * time.c (time_arg): Time.gm and Time.local now understands
+ Time#to_a format.
+
+ * string.c (str_sub_s): replace happened twice for null pattern.
+
+ * regex.c (re_search): null pattern should not match after newline
+ at the end of string.
+
+ * time.c (time_isdst): now returns boolean value.
+
+ * error.c (rb_check_type): treat special constants in messages.
+
+ * parse.y (yylex): new form `::Const' to see toplevel constants.
+
+ * parse.y (cond): SEGV on `if ()'.
+
+ * gc.c (obj_free): some data needed explicit free().
+
+Mon Feb 16 23:55:40 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (blk_free): release duplicated block informations.
+
+ * eval.c (blk_copy_prev): duplicate outer block information into
+ the heap, when proc/binding created.
+
+Mon Feb 16 14:38:25 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * time.c (time_mon): now 1 for January and so on.
+
+ * time.c (time_year): year in 19xx (no + 1900 needed anymore).
+
+Mon Feb 16 13:28:33 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (re_compile_pattern): need to fetch mbchar's second byte
+ without translation.
+
+Mon Feb 16 12:29:27 1998 MAEDA shugo <shugo@po.aianet.ne.jp>
+
+ * eval.c (f_pass_block): pass iterator block to other method.
+
+Fri Feb 13 08:16:11 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (parse_regx): handle \s before read_escape().
+
+ * parse.y (read_escape): `\s' in strings as space.
+
+Tue Feb 10 17:29:08 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.1b7 released.
+
+ * string.c (str_aset): string insertion by `str[n] = str2'.
+
+ * string.c (str_oct): does recognize `0x'.
+
+ * sprintf.c (f_sprintf): use baes 10 for conversion from string to
+ integer.
+
+Mon Feb 9 14:51:56 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * numeric.c (do_coerce): proper error message.
+
+ * string.c (str_sum): bug - masked by wrong value. (sigh..)
+
+Sat Feb 7 15:11:14 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (str_empty): new method
+
+Fri Feb 6 01:42:15 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * time.c (time_asctime): use asctime(3), not strftime(3).
+
+Thu Feb 5 18:58:46 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c (io_fptr_close): do not free path on close().
+
+ * array.c (ary_filter): new method.
+
+ * enum.c (enum_each_with_index): new method.
+
+Thu Feb 5 14:10:35 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (primary): singleton class def can be appeared inside
+ method bodies.
+
+ * hash.c (hash_replace): replace content.
+
+ * string.c (str_replace_method): replace content.
+
+ * array.c (ary_replace_method): replace elements.
+
+ * string.c (str_succ_bang): String#succ!
+
+Thu Feb 5 18:20:30 1998 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * string.c (str_upcase_bang): multi byte character support.
+
+Wed Feb 4 13:55:26 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * array.c (ary_reverse): SEGV on empty array reverse.
+
+Tue Feb 3 12:24:07 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * re.c (match_to_a): non matching element should be nil.
+
+ * ruby.c (ruby_load_script): load script after all initialization.
+
+ * bignum.c (str2inum): need to interpret prefix `0' of `0x'.
+
+Tue Feb 3 10:00:18 1998 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * numeric.c (fix_rshift): use `sizeof(INT)*8' instead of 32.
+
+Mon Feb 2 14:09:24 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ruby.c (set_arg0): grab environment region too.
+
+Thu Jan 29 18:36:25 1998 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * process.c (rb_proc_exec): check `sh' to be exist.
+
+Thu Jan 29 18:18:19 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c (io_stdio_set): assignment to $stdin or $stdout does
+ reopen() as well as $stderr.
+
+Thu Jan 29 14:18:40 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * class.c (mod_ancestors): should not include singleton classes.
+
+ * object.c (obj_type): should not return internal class.
+
+ * io.c (io_reopen): unwillingly closes stdio streams.
+
+Thu Jan 29 11:50:35 1998 Toshihiko SHIMOKAWA <toshi@csce.kyushu-u.ac.jp>
+
+ * ext/socket/socket.c (udp_addrsetup): forgot to use htons().
+
+Tue Jan 27 23:15:24 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * keywords: __FILE__, __LINE__ are available again.
+
+Fri Jan 23 14:19:28 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.1b6 released.
+
+ * object.c (mod_to_s): need to duplicate classpath.
+
+ * error.c (exc_inspect): need to duplicate classpath.
+
+Thu Jan 22 00:37:47 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ruby.h (STR2CSTR): new macro to retrieve char*.
+
+ * class.c (rb_define_method): `initialize' should always be
+ private, even if it defined by C extensions.
+
+ * eval.c (rb_eval): `initialize' should always be private.
+
+Thu Jan 22 16:21:08 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_eval): some singleton class def cause SEGV.
+
+ * eval.c (TMP_ALLOC): replace ALLOCA_N, where thread context
+ switch may happen.
+
+Wed Jan 21 01:43:42 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (PUSH_FRAME): do not use ALLOCA_N(). crash on some
+ platforms that use missing/alloca.c.
+
+ * regex.c (re_compile_pattern): too many pops for non register
+ subexpr.
+
+ * parse.y (yylex): open parentheses after identifiers are argument
+ list, even if whitespaces have seen.
+
+Tue Jan 20 15:19:59 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (terms): quoted word list by %w(a b c).
+
+ * ext/tcltklib/extconf.rb: more accurate check for tcl/tk libs.
+
+ * file.c (rb_stat): most of the FileTest methods (and function
+ `test') accept File objects as the argument.
+
+Tue Jan 19 18:19:24 1998 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * ext/extmk.rb.in (install): there should be no newline after install:
+
+ * re.c (MIN): renamed from min(). there's a local variable named
+ min in the file, so that some cpp will raise an error.
+
+Mon Jan 19 16:30:05 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.1b5 released.
+
+ * process.c (rb_syswait): no exception raised.
+
+Fri Jan 16 00:43:43 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ruby.h (CLONESETUP): copies its singleton classes too.
+
+ * class.c (singleton_class_attached): saves binded object in the
+ singleton classes.
+
+ * eval.c (rb_eval): calls singleton_method_added even in the
+ singleton class clauses.
+
+Fri Jan 15 23:22:43 1998 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * ruby.c (proc_options): -S does not recognize PATH.
+
+Thu Jan 15 02:03:12 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_clear_cache_by_id): clear only affected cache
+ entries.
+
+Wed Jan 14 02:14:48 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ext/socket/socket.c: new UDP/IP socket classes.
+
+Tue Jan 13 10:00:18 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (str_cmp): ignorecase($=) works wrong.
+
+Fri Jan 9 13:19:55 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.1b4 released.
+
+ * eval.c (f_missing): class name omitted from the error message.
+
+ * error.c (exc_inspect): description changed.
+
+ * string.c (Init_String): GlobalExit's superclass did not filled,
+ since GlobalExit created earlier than String.
+
+Thu Jan 8 12:10:09 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (aryset): expr in the brackets can be null.
+
+Wed Jan 7 21:13:56 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c (io_reopen): keep stderr unclosed.
+
+ * io.c (io_errset): keep stderr unclosed.
+
+Tue Jan 6 00:27:43 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y: syntax modified for `while expr do .. end' etc.
+
+ * process.c (f_exec,f_system): can supply arbitrary name for the
+ new process.
+
+Mon Jan 5 16:59:13 1998 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * file.c (file_s_basename): removes any extention by ".*".
+
+Sun Jan 4 19:36:22 1998 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * parse.y (yylex): needed to update lex_p (reading point).
+
+Sat Jan 3 19:14:14 1998 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * class.c,object.c: duplicate defines mKernel and cFinxnum.
+
+Fri Jan 2 20:38:59 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ext/curses/curses.c (NUM2CHAR): uses the first character for
+ string arguments.
+
+ * array.c (ary_fill): did not extend array for ranges.
+
+ * array.c (beg_len): did not return end pos bigger than size.
+
+Fri Jan 2 02:09:16 1998 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * dir.c (dir_s_chdir): bug in nil check.
+
+ * array.c (ary_fill): bug in nil check.
+
+Tue Dec 30 11:46:23 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * hash.c (env_path_tainted): checks directories in PATH
+ environment variable are not world writable.
+
+ * ruby.c (load_file): invoke specified interpreter if the #! line
+ does not contain the word `ruby'.
+
+Fri Dec 26 03:26:41 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (uscore_get): type information included in the error
+ message.
+
+ * variable.c (f_untrace_var): does not free trace-data within
+ trace procedure.
+
+Thu Dec 25 02:50:29 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.1b3 released.
+
+ * ruby.h: inlining some functions on gcc 2.x
+
+Tue Dec 23 02:47:33 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_eval): public/private information kept in the current
+ scope, to remove undesired state from the class/module.
+
+ * time.c (time_strftime): remove hidden limit of 100 bytes of
+ result string, using malloc'ed buffer.
+
+ * hash.c (hash_update): merges the contents of another hash,
+ overriding existing keys.
+
+ * regex.c (must_instr): totally re-written.
+
+ * io.c (read_all): try to allocate proper sized buffer using
+ fstat(2) for speedup.
+
+Sat Dec 20 00:27:28 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (must_instr): need to skip 2 bytes for mbchars.
+
+Fri Dec 19 01:18:29 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.1b2 released.
+
+ * eval.c (check_errat): check and convert (if necessary) traceback
+ information before assigning to the variable $@.
+
+ * eval.c (f_raise): optional third argument to specify traceback
+ information.
+
+ * io.c (f_open): prevent infinite recursive call.
+
+Thu Dec 18 19:33:47 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (str_rindex): now accepts regexp as index.
+
+Thu Dec 18 18:42:50 1997 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * ext/socket/extconf.rb: modified to detect win32 socket lib.
+
+Thu Dec 18 00:25:03 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * re.c (reg_equal): checks for source and casefold and kcode matching.
+
+ * marshal.c: became built-in module.
+
+ * ext/marshal/marshal.c (r_object): displays struct name for
+ non-compatible struct.
+
+ * string.c (str_index_method): now searches character (fixnum) in
+ the string.
+
+ * string.c (str_include): redefine `include?'.
+
+ * regex.c (re_match): start_nowidth saves current stack position
+ to stop_nowidth.
+
+ * regex.c (re_compile_pattern): add space to stop_nowidth to save
+ runtime stack position.
+
+Tue Dec 16 14:57:43 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (scan_once): wrong exception for regexp that match with
+ null string (use substr instead of subseq).
+
+Sat Dec 13 00:13:32 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (expr): remove bare assocs from expr rule.
+
+ * rbconfig.rb: renamed from config.rb (it was too generic name).
+
+Fri Dec 12 00:50:25 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (expr): warns if BEGIN or END appear in the method
+ bodies.
+
+ * string.c (str_match): calls y =~ x if y is neither String nor
+ Regexp so that eregex.rb works.
+
+ * eval.c (f_at_exit): to register end proc.
+
+ * class.c (rb_define_module_function): define 'function' method
+ for the Module, not private method.
+
+ * class.c (rb_define_function): function to define `function' method.
+
+ * eval.c (rb_eval): inherit visibility from superclass's method
+ except when it is set to `function'
+
+ * eval.c (rb_eval): new visibility status `function'.
+
+ * parse.y (yycompile): do not clear eval_tree. thus enable multipe
+ command line script by option `-e'.
+
+ * eval.c (rb_eval): END execute just once.
+
+ * parse.y (expr): BEGIN/END built in the syntax.
+
+Thu Dec 11 13:14:35 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * object.c (mod_le): Module (or Class) comparison.
+
+ * eval.c (rb_remove_method): raises NameError if named method does
+ not exist.
+
+ * ext/curses/curses.c: remove CHECK macro for BSD curses.
+
+Thu Dec 11 12:44:01 1997 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * pack.c: sun4 cc patch
+
+Wed Dec 10 15:21:36 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ext/marshal/marshal.c (marshal_load): can supply evolution proc
+ object as optional second argument.
+
+ * re.c (reg_source): get source string of the regular expression.
+
+Tue Dec 9 10:05:17 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.1b1 released.
+
+ * parse.y (tokadd): token buffer overrun.
+
+ * ruby.c (ruby_prog_init): forgot to protect rb_argv0 from gc.
+
+ * eval.c (ruby_run): call finalizers at process termination.
+
+ * gc.c (gc_call_finalizer_at_exit): call free proc for every Data
+ Wrapper, and finalizer for specified objects at termination.
+
+ * version.c (show_version): version format changed.
+
+ * regex.c (re_match): wrong match with non-greedy if they appear
+ more than once in regular expressions.
+
+ * sample/ruby-mode.el (ruby-expr-beg): forgot to handle modifiers.
+
+Mon Dec 8 19:00:15 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c (io_puts): just put a newline if no argument given.
+
+ * ext/tcltklib/tcltklib.c (lib_mainloop): thread-aware tk handle
+ when $tk_thread_safe is set.
+
+ * ext/tcltklib/tcltklib.c (lib_mainloop): use Tcl_DoOneEvent()
+ instead of Tk_MainLoop().
+
+Mon Dec 6 07:11:16 1997 MAEDA shugo <shugo@po.aianet.ne.jp>
+
+ * io.c (io_puts): core dumped without any argument.
+
+Fri Dec 5 18:17:17 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (mod_remove_method): remove (not undef) a method from the
+ class/module.
+
+ * variable.c (obj_remove_instance_variable): method to remove
+ instance variables.
+
+Thu Dec 4 13:50:29 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.1b0 released.
+
+ * string.c (str_aref): called str_index for regexp.
+
+Mon Dec 1 15:24:41 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * compar.c (cmp_between): wrong comparison made.
+
+Wed Nov 26 18:18:05 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * lib/mkmf.rb: generate Makefile for extention modules out of ruby
+ source tree. use like `ruby -r mkmf extconf.rb'.
+
+ * numeric.c (fix2str): enlarge buffer to prevent overflow on some
+ machines.
+
+ * parse.y (here_document): wrong line number generated after here-doc.
+
+Fri Nov 21 13:17:12 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (yylex): skip multibyte characters in comments.
+
+Wed Nov 19 17:19:20 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * object.c (nil_to_a): nil.to_a => [].
+
+ * parse.y (call_args): wrong node generation.
+
+Tue Nov 18 10:13:08 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * array.c (Init_Array): Array#=== works as Array#include?
+
+ * regex.c (re_compile_pattern): insert initialize code for jump_n,
+ before entering loops.
+
+ * re.c (reg_search): does not save registers unless $& etc appear
+ in the script.
+
+Mon Nov 17 13:01:43 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (is_defined): add defined? check for receivers and
+ arguments for calls.
+
+ * re.c (reg_search): cache last match object.
+
+ * re.c (match_aref): $[0] etc. are available.
+
+Sat Nov 15 00:11:36 1997 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * io.c (io_s_popen): "rb" detection
+
+Fri Nov 14 18:28:40 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (scan_once): returns whole match if the pattern does
+ not contain any parentheses.
+
+Thu Nov 13 14:39:06 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (str_sub): returns copy of the receiver string, even if
+ any substitution occurred.
+
+ * regex.c (re_compile_pattern): no-width match by (?=..), (?!..).
+
+Wed Nov 12 13:44:47 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * time.c: remove coerce from Time class.
+
+ * regex.c (re_match): non-greedy match by ??, *? +?, {n,m}?.
+
+Mon Nov 10 11:24:51 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (re_compile_pattern): non-resitering parens (?:..).
+
+ * regex.c (re_compile_pattern): new meta character \< (wordbeg)
+ and \> (wordend).
+
+ * regex.c (re_compile_pattern): embedded comment for regular
+ expression by (?#...).
+
+Fri Nov 7 16:58:24 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * regex.c (re_compile_pattern): perl5 regxp \A and \Z available.
+
+ * regex.c (re_compile_pattern): can expand compile stack dynamically.
+
+ * regex.c (PUSH_FAILURE_POINT): wrong compare condition.
+
+Wed Nov 2 16:00:00 1997 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * string.c (str_sub_s): "".sub! "", "" => "\000"
+
+Fri Oct 31 15:52:10 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (assoc): keyword assoc like {fg->"black"}.
+
+Thu Oct 30 17:33:38 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c (io_println): print with newline, which is not affected by
+ the values of $/ and $\.
+
+Thu Oct 30 16:54:01 1997 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * string.c (str_chop_bang): "".chop caused SEGV.
+
+ * string.c (str_chomp_bang): method to chop out last newline.
+
+Mon Oct 27 13:49:13 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ext/extmk.rb.in: library may have pathname contains `.'
+
+ * eval.c (rb_rescue): should not protect SystemError.
+
+Fri Oct 24 10:58:53 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c (io_s_with_open_stream): ensures to close stream.
+
+Thu Oct 23 11:17:44 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c (io_errset): value of $stderr can be changed (to any IO
+ object).
+
+ * io.c (next_argv): $< can be anything that responds to `write'.
+
+ * file.c (file_s_with_open_file): ensures to close file.
+
+ * error.c (exception): create error under the current class/module.
+
+ * range.c (range_eqq): fixnum check for last needed too.
+
+Wed Oct 22 12:52:30 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ext/socket/socket.c: Socket::Constants added.
+
+ * file.c: File::Constants added for inclusion.
+
+ * array.c (ary_join): call ary_join() recursively for the 1st
+ array element.
+
+Mon Oct 20 12:18:29 1997 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * ruby.c (load_file): wrong condition for #! check with -x.
+
+ * file.c (file_s_dirname): did return "" for "/a".
+
+Fri Oct 17 14:29:09 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ruby.c: now works on alpha-linux.
+
+ * bignum.c (bigadd): some undefined side effect order assumed.
+
+Wed Oct 15 17:49:24 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * intern.h: function prototypes added.
+
+Mon Oct 13 16:54:18 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * class.c (rb_define_class_id): call superclass's `inherited'
+ method when making subclasses.
+
+ * parse.y (nextc): clear lex_lastline at the end of file.
+
+ * object.c (Init_Object): need to undef Class#append_features.
+
+ * eval.c (rb_eval): no warning on extending classes or modules.
+
+Thu Oct 9 11:17:50 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (error_print): the exception name follows after the error
+ message.
+
+ * eval.c (compile_error): error message slightly changed.
+
+ * parse.y (nextc): script parsing will be terminated by __END__ at
+ beginning of line.
+
+ * eval.c (compile_error): `__END__' is no longer a keyword.
+
+ * parse.y (nextc): protect lastline read from script stream.
+
+Tue Oct 7 14:06:06 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.1 alpha9 released.
+
+ * eval.c (mod_append_features): renamed from extend_class.
+
+ * eval.c (rb_eval): defining method calls `method_added'.
+
+ * eval.c (ruby_options): exception while processing options must
+ terminate the interpreter.
+
+ * error.c (Init_Exception): wrong method configuration. `new'
+ should have been a singleton method.
+
+Mon Oct 6 18:55:38 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ext/kconv/kconv.c (kconv_guess): code to guess character code
+ from string.
+
+Mon Oct 6 18:38:17 1997 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * pack.c: now encode/decode base64 by `m' template.
+
+Fri Oct 3 10:51:10 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * MANIFEST: needed to include lex.c in the distribution.
+
+ * eval.c (ruby_options): f_require() called too early.
+
+ * eval.c (rb_provide): module extentions should always be `.o'.
+
+Thu Oct 2 11:38:31 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.1 alpha8 released.
+
+ * ext/marshal/marshal.c (r_object): remove temporal regist for
+ structs. (caused problem if structs form cycles.)
+
+ * parse.y (match_gen): static binding for match(=~) calls
+ with regexp literals.
+
+Wed Oct 1 15:26:55 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c: protect retval in struct tag from GC for C_ALLOCA.
+
+ * eval.c: no more pointer value from setjmp/longjmp.
+
+Wed Oct 1 14:01:49 1997 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * ext/marshal/marshal.c (w_byte): argument must be char.
+
+Wed Oct 1 10:30:22 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * variable.c (mod_const_at): global constants now belongs to the
+ class Object.
+
+ * object.c (Init_Object): new global constant NIL.
+
+ * ext/marshal/marshal.c (marshal_dump): try to set binmode.
+
+ * ext/marshal/marshal.c (r_object): forgot to re-regist structs in
+ the object table.
+
+ * eval.c (ruby_options): call Init_ext() before any require()
+ calls by `-r'.
+
+Fri Sep 30 14:29:22 1997 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * ext/marshal/marshal.c (w_object): marshal dumped core.
+
+Tue Sep 30 10:27:39 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * sample/test.rb: bignum test suits added.
+
+ * eval.c (rb_eval): new pseudo variable `true' and `false'.
+
+ * parse.y: new keywords `true' and `false' added.
+
+Mon Sep 29 13:37:58 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ruby.c (forbid_setid): forbid some options in suid mode.
+
+ * ruby.h (NUM2DBL): new macro to convert into doubles.
+
+Mon Sep 27 09:53:48 1997 EGUCHI Osamu <eguchi@shizuokanet.or.jp>
+
+ * bignum.c: modified for speeding.
+
+Fri Sep 26 18:27:59 1997 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * sample/from.rb: some extensions.
+
+Mon Sep 29 13:15:56 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (lhs): no more syntax error on `obj.CONSTANT = value'.
+
+Fri Sep 26 14:41:46 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (ruby_run): deferred calling Init_ext() just before eval_node.
+
+Fri Sep 26 13:27:24 1997 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * io.c (io_isatty): forgot to return TRUE value.
+
+Fri Sep 25 11:10:58 1997 EGUCHI Osamu <eguchi@shizuokanet.or.jp>
+
+ * eval.c: use _setjmp/_longjmp instead of setjmp/longjmp on some
+ platforms.
+
+Wed Sep 24 17:43:13 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * string.c (Init_String): String#taint and String#taint? added.
+
+ * class.c (mod_ancestors): ancestors include the class itself.
+
+Wed Sep 24 00:57:00 1997 Katsuyuki Okabe <HGC02147@niftyserve.or.jp>
+
+ * X68000 patch.
+
+Tue Sep 23 20:42:30 1997 EGUCHI Osamu <eguchi@shizuokanet.or.jp>
+
+ * parse.y (node_newnode): SEGV on null node setup.
+
+Mon Sep 22 11:22:46 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ruby.c (ruby_prog_init): wrong safe condition check.
+
+Sun Sep 21 14:46:02 1997 MAEDA shugo <shugo@po.aianet.ne.jp>
+
+ * error.c (exc_inspect): garbage added to classpath.
+
+Fri Sep 19 11:49:23 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (newtok): forgot to adjust buffer size when shrinking
+ the token buffer.
+
+ * enum.c (enum_find): rb_eval_cmd() does not return value.
+
+ * io.c (pipe_open): close fds on pipe exec. fcntl(fd, F_SETFD, 1)
+ no longer used.
+
+Tue Sep 16 17:54:25 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * file.c (f_test): problem if wrong command specified.
+
+ * ruby.c (ruby_prog_init): close stdaux and stdprn for MSDOS.
+
+ * ruby.c (ruby_prog_init): should not add path from environment
+ variable, if ruby is running under seuid.
+
+ * process.c (init_ids): check suid check for setuid/seteuid etc.
+
+Mon Sep 15 00:42:04 1997 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * regex.c (re_compile_pattern): \w{3} and \W{3} did not work.
+
+Thu Sep 11 10:31:48 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.1 alpha7 released.
+
+ * ext/socket/socket.c (sock_new): no setbuf() for NT.
+
+ * io.c (rb_fopen,rb_fdopen): set close-on-exec for every fd.
+
+Wed Sep 10 15:55:31 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ext/marshal/marshal.c (r_bytes0): extra big length check.
+
+Tue Sep 9 16:27:14 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c (pipe_fptr_atexit): clean up popen()'ed fptr.
+
+ * error.c (set_syserr): some system has error code that is bigger
+ than sys_nerr. grrr.
+
+Mon Sep 8 18:33:33 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * io.c (io_s_new): dereferenced nil for optional mode.
+
+Fri Sep 5 10:26:03 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * class.c (class_instance_methods): do not include methods which
+ are changed to private in subclasses.
+
+Thu Sep 4 12:38:53 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * variable.c (f_global_variables): list name of the global
+ variables.
+
+ * object.c (obj_id): returns unique integer.
+
+Wed Sep 3 14:05:16 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.1 alpha6 released.
+
+ * eval.c (mod_s_constants): context sensitive constant list.
+
+ * variable.c (mod_constants): no more `all' option.
+
+ * variable.c (mod_const_of): the values for autoload classes are
+ their name strings.
+
+ * class.c (class_instance_methods): no special treatment for
+ singleton classes.
+
+ * object.c (obj_singleton_methods): returns list of singleton
+ method names.
+
+ * parse.y (yylex): no here document after `class' keyword.
+
+ * eval.c (f_load): expand path if fname begins with `~'.
+
+Tue Sep 2 13:19:48 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * class.c (ins_methods_i): do not list undef'ed methods.
+
+Mon Sep 1 13:42:48 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.1 alpha5 released.
+
+ * object.c (mod_attr_reader): create methods to define attribute
+ reader/write/accessor.
+
+ * class.c (rb_define_attr): always defines accessors.
+
+ * eval.c (rb_call): alias occured in the module body caused SEGV.
+
+ * parse.y: did not generate here document strings properly.
+
+Mon Sep 1 11:43:57 1997 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * parse.y (yylex): heredoc dropped an extra character.
+
+Fri Aug 29 11:10:21 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * class.c (class_instance_methods): same method names should not
+ appear more than once.
+
+ * parse.y (yylex): spaces can follow =begin/=end.
+
+ * variable.c (find_class_path): look for class_tbl also for
+ unnamed fundamental classes, such as Object, String, etc.
+
+ * variable.c (rb_name_class): can't name class before String class
+ is initilialized.
+
+ * inits.c (rb_call_inits): unrecognized dependency from GC to
+ Array.
+
+ * variable.c (find_class_path): could not find class if Object's
+ iv_tbl is NULL.
+
+Thu Aug 28 13:12:05 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.1 alpha4 released.
+
+ * variable.c (mod_constants): wrong condition for singleton
+ class.
+
+ * parse.y (yylex): revised `=begin' skip code.
+
+ * parse.y (here_document): forgot to free(eos).
+
+ * parse.y (yylex): spaces after `<<' prohibited for here
+ documents to avoid confusing with operator `<<'.
+
+ * eval.c (is_defined): separated from rb_eval().
+
+Wed Aug 27 11:32:42 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.1 alpha3 released.
+
+ * variable.c (mod_name): returns name of the class/module.
+
+ * parse.y (here_document): finally here document available now.
+
+ * variable.c (fc_i): some classes/modules does not have iv_tbl.
+
+ * variable.c (find_class_path): avoid inifinite loop.
+
+Tue Aug 26 13:43:47 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (rb_eval): undef'ing non-existing method will raise
+ NameError exception.
+
+ * object.c (class_s_new): needed to create metaclass too.
+
+ * eval.c (error_print): no class name print for anonymous class.
+
+ * eval.c (rb_longjmp): proper exception raised if raise() called
+ without arguments, with $! or $@ set.
+
+ * object.c (Init_Object): superclass()'s method argument setting
+ was wrong again.
+
+ * class.c (mod_anscestors): list superclasses and included modules
+ in priority order.
+
+Mon Aug 25 11:53:11 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.1 alpha2 released.
+
+ * sample/ruby-mode.el (ruby-parse-region): auto-indent now
+ supports "\\" in the strings.
+
+ * struct.c (struct_getmember): new API to get member value from C
+ language side.
+
+Sat Aug 23 21:39:05 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * parse.y (asignable): remove unnecessary local variable
+ initialize by nil.
+
+Fri Aug 22 14:26:40 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (error_print): modified exception print format.
+
+Thu Aug 21 16:10:58 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * sample/ruby-mode.el (ruby-calculate-indent): wrong indent level
+ calculated with keyword operators.
+
+Thu Aug 21 11:36:58 1997 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * parse.y (arg): ary[0] += 1 cause SEGV
+
+Wed Aug 20 17:28:50 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * ruby.c (ruby_process_options): require() all modules after
+ processing all options
+
+ * process.c (rb_proc_exec): more security checks added.
+
+ * process.c (rb_proc_exec): insecure path on exec.
+
+ * hash.c (f_getenv): PATH modification security check.
+
+Tue Aug 19 00:15:38 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.1 alpha1 released.
+
+ * eval.c (mod_eval): work as normal eval() if second binding
+ argument given.
+
+ * eval.c (rb_call): did not raise ArgumentError if too many
+ arguments more than optional arguments (without rest arg).
+
+ * eval.c (rb_eval): did not work well for op_asgn2 (attribute
+ self assignment).
+
+ * eval.c (Init_Thread): returns main thread.
+
+Mon Aug 18 09:25:56 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * object.c (inspect_i): did not display T_DATA instance variables.
+
+ * parse.y: provides more accurate line number information.
+
+ * eval.c (thread_value): include value's backtrace information in
+ the variable `$@'.
+
+ * eval.c (f_abort): print backtrace and exit.
+
+Sat Aug 16 00:17:44 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (class_new_instance): do not make instance from virtual
+ classes.
+
+ * object.c (class_s_new): do not make subclass of singleton class.
+
+Fri Aug 15 15:49:46 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * eval.c (call_trace_func): block context switch in the trace
+ function.
+
+ * eval.c (rb_eval): clear method cache at class extention.
+
+ * object.c (obj_type): returns object's class even if it defines
+ singleton methods.
+
+Fri Aug 15 19:40:43 1997 WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
+
+ * ext/socket/socket.c (Init_socket): small typo caused SEGV.
+
+Wed Aug 13 17:51:46 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
+
+ * version 1.1 alpha0 released.
+
diff --git a/GPL b/GPL
deleted file mode 100644
index d159169d10..0000000000
--- a/GPL
+++ /dev/null
@@ -1,339 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License along
- with this program; if not, write to the Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) year name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.
diff --git a/KNOWNBUGS.rb b/KNOWNBUGS.rb
deleted file mode 100644
index 35a8e75876..0000000000
--- a/KNOWNBUGS.rb
+++ /dev/null
@@ -1,7 +0,0 @@
-#
-# IMPORTANT: Always keep the first 7 lines (comments),
-# even if this file is otherwise empty.
-#
-# This test file includes tests which point out known bugs.
-# So all tests will cause failure.
-#
diff --git a/LEGAL b/LEGAL
deleted file mode 100644
index 9645728efe..0000000000
--- a/LEGAL
+++ /dev/null
@@ -1,1111 +0,0 @@
-# -*- rdoc -*-
-
-= LEGAL NOTICE INFORMATION
---------------------------
-
-All the files in this distribution are covered under either the Ruby's
-license (see the file COPYING) or public-domain except some files
-mentioned below.
-
-[addr2line.c]
-
- A part of this file is from FreeBSD.
-
- >>>
- Copyright (c) 1986, 1988, 1991, 1993::
- The Regents of the University of California. All rights reserved.
-
- (c) UNIX System Laboratories, Inc.
-
- All or some portions of this file are derived from material licensed
- to the University of California by American Telephone and Telegraph
- Co. or Unix System Laboratories, Inc. and are reproduced herein with
- the permission of UNIX System Laboratories, Inc.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 4. Neither the name of the University nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
-
- @(#)subr_prf.c 8.3 (Berkeley) 1/21/94
-
-
-[ccan/build_assert/build_assert.h]
-[ccan/check_type/check_type.h]
-[ccan/container_of/container_of.h]
-[ccan/str/str.h]
-
- These files are licensed under the {CC0}[https://creativecommons.org/choose/zero/].
-
-[ccan/list/list.h]
-
- This file is licensed under the {MIT License}[rdoc-label:label-MIT+License].
-
-[coroutine]
-
- Unless otherwise specified, these files are licensed under the
- {MIT License}[rdoc-label:label-MIT+License].
-
-[include/ruby/onigmo.h]
-[include/ruby/oniguruma.h]
-[regcomp.c]
-[regenc.c]
-[regenc.h]
-[regerror.c]
-[regexec.c]
-[regint.h]
-[regparse.c]
-[regparse.h]
-[enc/ascii.c]
-[enc/big5.c]
-[enc/cp949.c]
-[enc/emacs_mule.c]
-[enc/encdb.c]
-[enc/euc_jp.c]
-[enc/euc_kr.c]
-[enc/euc_tw.c]
-[enc/gb18030.c]
-[enc/gb2312.c]
-[enc/gbk.c]
-[enc/iso_8859_1.c]
-[enc/iso_8859_10.c]
-[enc/iso_8859_11.c]
-[enc/iso_8859_13.c]
-[enc/iso_8859_14.c]
-[enc/iso_8859_15.c]
-[enc/iso_8859_16.c]
-[enc/iso_8859_2.c]
-[enc/iso_8859_3.c]
-[enc/iso_8859_4.c]
-[enc/iso_8859_5.c]
-[enc/iso_8859_6.c]
-[enc/iso_8859_7.c]
-[enc/iso_8859_8.c]
-[enc/iso_8859_9.c]
-[enc/koi8_r.c]
-[enc/koi8_u.c]
-[enc/shift_jis.c]
-[enc/unicode.c]
-[enc/us_ascii.c]
-[enc/utf_16be.c]
-[enc/utf_16le.c]
-[enc/utf_32be.c]
-[enc/utf_32le.c]
-[enc/utf_8.c]
-[enc/windows_1251.c]
-[enc/windows_31j.c]
-
- Onigmo (Oniguruma-mod) LICENSE
-
- >>>
- Copyright (c) 2002-2009:: K.Kosako <sndgk393 AT ybb DOT ne DOT jp>
- Copyright (c) 2011-2014:: K.Takata <kentkt AT csc DOT jp>
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
-
- Oniguruma LICENSE
-
- >>>
- Copyright (c) 2002-2009:: K.Kosako <sndgk393 AT ybb DOT ne DOT jp>
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
-
- * https://github.com/k-takata/Onigmo/
- * https://github.com/kkos/oniguruma
- * https://svnweb.freebsd.org/ports/head/devel/oniguruma/
-
- When this software is partly used or it is distributed with Ruby,
- this of Ruby follows the license of Ruby.
-
-[enc/windows_1250.c]
-[enc/windows_1252.c]
-
- >>>
- Copyright (c) 2006-2007:: Byte <byte AT mail DOT kna DOT ru>
- K.Kosako <sndgk393 AT ybb DOT ne DOT jp>
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
-
-[enc/cesu_8.c]
-[enc/windows_1253.c]
-[enc/windows_1254.c]
-[enc/windows_1257.c]
-
- >>>
- Copyright (c) 2002-2007:: K.Kosako <sndgk393 AT ybb DOT ne DOT jp>
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
-
-[enc/trans/GB/GB12345%UCS.src]
-[enc/trans/GB/UCS%GB12345.src]
-[enc/trans/GB/GB2312%UCS.src]
-[enc/trans/GB/UCS%GB2312.src]
-
- These files have this explanatory texts.
-
- >>>
- This mapping data was created from files provided by Unicode, Inc.
- (The Unicode Consortium). The files were used to create a product supporting
- Unicode, as explicitly permitted in the files' copyright notices.
- Please note that Unicode, Inc. never made any claims as to fitness of these
- files for any particular purpose, and has ceased to publish the files many
- years ago.
-
-[enc/trans/JIS/JISX0201-KANA%UCS.src]
-[enc/trans/JIS/JISX0208\@1990%UCS.src]
-[enc/trans/JIS/JISX0212%UCS.src]
-[enc/trans/JIS/UCS%JISX0201-KANA.src]
-[enc/trans/JIS/UCS%JISX0208@1990.src]
-[enc/trans/JIS/UCS%JISX0212.src]
-
- These files are copyrighted as the following.
-
- >>>
- © 2015 Unicode®, Inc.
-
- For terms of use, see http://www.unicode.org/terms_of_use.html
-
-[enc/trans/JIS/JISX0213-1%UCS@BMP.src]
-[enc/trans/JIS/JISX0213-1%UCS@SIP.src]
-[enc/trans/JIS/JISX0213-2%UCS@BMP.src]
-[enc/trans/JIS/JISX0213-2%UCS@SIP.src]
-
- These files are copyrighted as the following.
-
- >>>
- Copyright (C) 2001:: earthian@tama.or.jp, All Rights Reserved.
- Copyright (C) 2001:: I'O, All Rights Reserved.
- Copyright (C) 2006:: Project X0213, All Rights Reserved.
- You can use, modify, distribute this table freely.
-
-[enc/trans/JIS/UCS@BMP%JISX0213-1.src]
-[enc/trans/JIS/UCS@BMP%JISX0213-2.src]
-[enc/trans/JIS/UCS@SIP%JISX0213-1.src]
-[enc/trans/JIS/UCS@SIP%JISX0213-2.src]
-
- These files are copyrighted as the following.
-
- >>>
- Copyright (C) 2001:: earthian@tama.or.jp, All Rights Reserved.
- Copyright (C) 2001:: I'O, All Rights Reserved.
- You can use, modify, distribute this table freely.
-
-[enc/trans/ucm/glibc-BIG5-2.3.3.ucm]
-[enc/trans/ucm/glibc-BIG5HKSCS-2.3.3.ucm]
-
- >>>
- Copyright (C) 2001-2005:: International Business Machines
- Corporation and others. All Rights Reserved.
-
-[enc/trans/ucm/windows-950-2000.ucm]
-[enc/trans/ucm/windows-950_hkscs-2001.ucm]
-
- >>>
- Copyright (C) 2001-2002:: International Business Machines
- Corporation and others. All Rights Reserved.
-
-
-[configure]
-
- This file is free software.
-
- >>>
- Copyright (C) 1992-1996, 1998-2012:: Free Software Foundation, Inc.
-
- This configure script is free software; the Free Software Foundation
- gives unlimited permission to copy, distribute and modify it.
-
-[tool/config.guess]
-[tool/config.sub]
-
- As long as you distribute these files with the file configure, they
- are covered under the Ruby's license.
-
- >>>
- Copyright 1992-2018:: Free Software Foundation, Inc.
-
- This file is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, see <https://www.gnu.org/licenses/>.
-
- As a special exception to the GNU General Public License, if you
- distribute this file as part of a program that contains a
- configuration script generated by Autoconf, you may include it under
- the same distribution terms that you use for the rest of that
- program. This Exception is an additional permission under section 7
- of the GNU General Public License, version 3 ("GPLv3").
-
-[tool/lib/test/*]
-[tool/lib/core_assertions.rb]
-
- Some of methods on these files are based on MiniTest 4. MiniTest 4 is
- distributed under the MIT License.
-
- >>>
- Copyright (c) Ryan Davis, seattle.rb
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- 'Software'), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be
- included in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-[parse.c]
-[parse.h]
-
- These files are licensed under the GPL, but are incorporated into Ruby and
- redistributed under the terms of the Ruby license, as permitted by the
- exception to the GPL below.
-
- >>>
- Copyright (C) 1984, 1989-1990, 2000-2015, 2018:: Free Software Foundation, Inc.
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
- As a special exception, you may create a larger work that contains
- part or all of the Bison parser skeleton and distribute that work
- under terms of your choice, so long as that work isn't itself a
- parser generator using the skeleton or a modified version thereof
- as a parser skeleton. Alternatively, if you modify or redistribute
- the parser skeleton itself, you may (at your option) remove this
- special exception, which will cause the skeleton and the resulting
- Bison output files to be licensed under the GNU General Public
- License without this special exception.
-
- This special exception was added by the Free Software Foundation in
- version 2.2 of Bison.
-
-[missing/dtoa.c]
-
- This file is under these licenses.
-
- >>>
- Copyright (c) 1991, 2000, 2001:: by Lucent Technologies.
-
- Permission to use, copy, modify, and distribute this software for any
- purpose without fee is hereby granted, provided that this entire notice
- is included in all copies of any software which is or includes a copy
- or modification of this software and in all copies of the supporting
- documentation for such software.
-
- THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
- WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR LUCENT MAKES ANY
- REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
- OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
-
- >>>
- Copyright (c) 2004-2008:: David Schultz <das@FreeBSD.ORG>
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
-
-[win32/win32.c]
-[include/ruby/win32.h]
-
- You can apply the Artistic License to these files. (or GPL,
- alternatively)
-
- >>>
- Copyright (c) 1993:: Intergraph Corporation
-
- You may distribute under the terms of either the GNU General Public
- License or the Artistic License, as specified in the perl README file.
-
-[missing/mt19937.c]
-
- This file is under the new-style BSD license.
-
- >>>
- A C-program for MT19937, with initialization improved 2002/2/10.::
- Coded by Takuji Nishimura and Makoto Matsumoto.
-
- This is a faster version by taking Shawn Cokus's optimization,
- Matthe Bellew's simplification, Isaku Wada's real version.
-
- Before using, initialize the state by using init_genrand(seed)
- or init_by_array(init_key, key_length).
-
- Copyright (C) 1997 - 2002:: Makoto Matsumoto and Takuji Nishimura,
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
-
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- 3. The names of its contributors may not be used to endorse or promote
- products derived from this software without specific prior written
- permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
- Any feedback is very welcome.
- http://www.math.keio.ac.jp/matumoto/emt.html
- email: matumoto@math.keio.ac.jp
-
- The Wayback Machine url: http://web.archive.org/web/19990429082237/http://www.math.keio.ac.jp/matumoto/emt.html
-
-[missing/procstat_vm.c]
-
- This file is under the new-style BSD license.
-
- >>>
- Copyright (c) 2007:: Robert N. M. Watson
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
-
- $FreeBSD: head/usr.bin/procstat/procstat_vm.c 261780 2014-02-11 21:57:37Z jhb $
-
-[vsnprintf.c]
-
- This file is under the {old-style BSD license}[rdoc-label:label-Old-style+BSD+license].
-
- >>>
- Copyright (c) 1990, 1993::
- The Regents of the University of California. All rights reserved.
-
- This code is derived from software contributed to Berkeley by
- Chris Torek.
-
-[st.c]
-[strftime.c]
-[include/ruby/st.h]
-[missing/acosh.c]
-[missing/alloca.c]
-[missing/erf.c]
-[missing/hypot.c]
-[missing/lgamma_r.c]
-[missing/memcmp.c]
-[missing/memmove.c]
-[missing/strchr.c]
-[missing/strerror.c]
-[missing/strstr.c]
-[missing/tgamma.c]
-[ext/date/date_strftime.c]
-[ext/digest/sha1/sha1.c]
-[ext/digest/sha1/sha1.h]
-
- These files are all under public domain.
-
-[missing/crypt.c]
-
- This file is under the {old-style BSD license}[rdoc-label:label-Old-style+BSD+license].
-
- >>>
- Copyright (c) 1989, 1993::
- The Regents of the University of California. All rights reserved.
-
- This code is derived from software contributed to Berkeley by
- Tom Truscott.
-
-[missing/setproctitle.c]
-
- This file is under the {old-style BSD license}[rdoc-label:label-Old-style+BSD+license].
-
- >>>
- Copyright 2003:: Damien Miller
- Copyright (c) 1983, 1995-1997:: Eric P. Allman
- Copyright (c) 1988, 1993::
- The Regents of the University of California. All rights reserved.
-
-[missing/strlcat.c]
-[missing/strlcpy.c]
-
- These files are under an ISC-style license.
-
- >>>
- Copyright (c) 1998, 2015:: Todd C. Miller <Todd.Miller@courtesan.com>
-
- Permission to use, copy, modify, and distribute this software for any
- purpose with or without fee is hereby granted, provided that the above
- copyright notice and this permission notice appear in all copies.
-
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-[missing/langinfo.c]
-
- This file is from http://www.cl.cam.ac.uk/~mgk25/ucs/langinfo.c.
- Ruby uses a modified version. The file contains the following
- author/copyright notice:
-
- >>>
- Markus.Kuhn@cl.cam.ac.uk -- 2002-03-11::
- Permission to use, copy, modify, and distribute this software
- for any purpose and without fee is hereby granted. The author
- disclaims all warranties with regard to this software.
-
-[ext/digest/md5/md5.c]
-[ext/digest/md5/md5.h]
-
- These files are under the following license. Ruby uses modified
- versions of them.
-
- >>>
- Copyright (C) 1999, 2000:: Aladdin Enterprises. All rights reserved.
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-
- L. Peter Deutsch
- ghost@aladdin.com
-
-[ext/digest/rmd160/rmd160.c]
-[ext/digest/rmd160/rmd160.h]
-
- These files have the following copyright information, and by the
- author we are allowed to use it under the new-style BSD license.
-
- >>>
- AUTHOR:: Antoon Bosselaers, ESAT-COSIC
- (Arranged for libc by Todd C. Miller)
- DATE:: 1 March 1996
-
- Copyright (c):: Katholieke Universiteit Leuven
- 1996, All Rights Reserved
-
-[ext/digest/sha2/sha2.c]
-[ext/digest/sha2/sha2.h]
-
- These files are under the new-style BSD license.
-
- >>>
- Copyright 2000:: Aaron D. Gifford. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 3. Neither the name of the copyright holder nor the names of contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) AND CONTRIBUTOR(S) ``AS IS'' AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR(S) OR CONTRIBUTOR(S) BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
-
-[ext/json/generator/generator.c]
-
- The file contains the following copyright notice.
-
- >>>
- Copyright 2001-2004:: Unicode, Inc.
-
- Disclaimer::
-
- This source code is provided as is by Unicode, Inc. No claims are
- made as to fitness for any particular purpose. No warranties of any
- kind are expressed or implied. The recipient agrees to determine
- applicability of information provided. If this file has been
- purchased on magnetic or optical media from Unicode, Inc., the
- sole remedy for any claim will be exchange of defective media
- within 90 days of receipt.
-
- Limitations on Rights to Redistribute This Code::
-
- Unicode, Inc. hereby grants the right to freely use the information
- supplied in this file in the creation of products supporting the
- Unicode Standard, and to make copies of this file in any form
- for internal or external distribution as long as this notice
- remains attached.
-
-[ext/nkf/nkf-utf8/config.h]
-[ext/nkf/nkf-utf8/nkf.c]
-[ext/nkf/nkf-utf8/utf8tbl.c]
-
- These files are under the following license. So to speak, it is
- copyrighted semi-public-domain software.
-
- >>>
- Copyright (C) 1987:: Fujitsu LTD. (Itaru ICHIKAWA)
-
- Everyone is permitted to do anything on this program
- including copying, modifying, improving,
- as long as you don't try to pretend that you wrote it.
- i.e., the above copyright notice has to appear in all copies.
- Binary distribution requires original version messages.
- You don't have to ask before copying, redistribution or publishing.
- THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE.
-
-[ext/psych]
-[test/psych]
-
- The files under these directories are under the following license, except for
- ext/psych/yaml.
-
- >>>
- Copyright 2009:: Aaron Patterson, et al.
-
- Permission is hereby granted, free of charge, to any person obtaining a copy of
- this software and associated documentation files (the 'Software'), to deal in
- the Software without restriction, including without limitation the rights to
- use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
- of the Software, and to permit persons to whom the Software is furnished to do
- so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE.
-
-[ext/psych/yaml]
-
- The files under this directory are under the following license.
-
- >>>
- Copyright (c) 2006:: Kirill Simonov
-
- Permission is hereby granted, free of charge, to any person obtaining a copy of
- this software and associated documentation files (the "Software"), to deal in
- the Software without restriction, including without limitation the rights to
- use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
- of the Software, and to permit persons to whom the Software is furnished to do
- so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE.
-
-[ext/pty/pty.c]
-
- >>>
- C) Copyright 1998:: by Akinori Ito.
-
- This software may be redistributed freely for this purpose, in full
- or in part, provided that this entire copyright notice is included
- on any copies of this software and applications and derivations thereof.
-
- This software is provided on an "as is" basis, without warranty of any
- kind, either expressed or implied, as to any matter including, but not
- limited to warranty of fitness of purpose, or merchantability, or
- results obtained from use of this software.
-
-[ext/socket/addrinfo.h]
-[ext/socket/getaddrinfo.c]
-[ext/socket/getnameinfo.c]
-
- These files are under the new-style BSD license.
-
- >>>
- Copyright (C) 1995, 1996, 1997, 1998, and 1999:: WIDE Project.
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 3. Neither the name of the project nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
-
-[ext/win32ole/win32ole.c]
-
- You can apply the Artistic License to this file. (or GPL,
- alternatively)
-
- >>>
- (c) 1995:: Microsoft Corporation. All rights reserved.
- Developed by ActiveWare Internet Corp., http://www.ActiveWare.com
-
- Other modifications Copyright (c) 1997, 1998:: by Gurusamy Sarathy
- <gsar@umich.edu> and Jan Dubois <jan.dubois@ibm.net>
-
- You may distribute under the terms of either the GNU General Public
- License or the Artistic License, as specified in the README file
- of the Perl distribution.
-
- The Wayback Machine url: http://web.archive.org/web/19970607104352/http://www.activeware.com:80/
-
-[lib/rdoc/generator/template/darkfish/css/fonts.css]
-
- This file is licensed under the {SIL Open Font License}[http://scripts.sil.org/OFL].
-
-[spec/mspec]
-[spec/ruby]
-
- The files under these directories are under the following license.
-
- >>>
- Copyright (c) 2008:: Engine Yard, Inc. All rights reserved.
-
- Permission is hereby granted, free of charge, to any person
- obtaining a copy of this software and associated documentation
- files (the "Software"), to deal in the Software without
- restriction, including without limitation the rights to use,
- copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the
- Software is furnished to do so, subject to the following
- conditions:
-
- The above copyright notice and this permission notice shall be
- included in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
-
-[lib/rubygems.rb]
-[lib/rubygems]
-[test/rubygems]
-
- RubyGems is under the following license.
-
- >>>
- RubyGems is copyrighted free software by Chad Fowler, Rich Kilmer, Jim
- Weirich and others. You can redistribute it and/or modify it under
- either the terms of the {MIT license}[rdoc-label:label-MIT+License], or the conditions
- below:
-
- 1. You may make and give away verbatim copies of the source form of the
- software without restriction, provided that you duplicate all of the
- original copyright notices and associated disclaimers.
-
- 2. You may modify your copy of the software in any way, provided that
- you do at least ONE of the following:
-
- a. place your modifications in the Public Domain or otherwise
- make them Freely Available, such as by posting said
- modifications to Usenet or an equivalent medium, or by allowing
- the author to include your modifications in the software.
-
- b. use the modified software only within your corporation or
- organization.
-
- c. give non-standard executables non-standard names, with
- instructions on where to get the original software distribution.
-
- d. make other distribution arrangements with the author.
-
- 3. You may distribute the software in object code or executable
- form, provided that you do at least ONE of the following:
-
- a. distribute the executables and library files of the software,
- together with instructions (in the manual page or equivalent)
- on where to get the original distribution.
-
- b. accompany the distribution with the machine-readable source of
- the software.
-
- c. give non-standard executables non-standard names, with
- instructions on where to get the original software distribution.
-
- d. make other distribution arrangements with the author.
-
- 4. You may modify and include the part of the software into any other
- software (possibly commercial).
-
- 5. The scripts and library files supplied as input to or produced as
- output from the software do not automatically fall under the
- copyright of the software, but belong to whomever generated them,
- and may be sold commercially, and may be aggregated with this
- software.
-
- 6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
- IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- PURPOSE.
-
-[lib/bundler]
-[lib/bundler.rb]
-[spec/bundler]
-
- Bundler is under the following license.
-
- >>>
- Portions copyright (c) 2010:: Andre Arko
- Portions copyright (c) 2009:: Engine Yard
-
- {MIT License}[rdoc-label:label-MIT+License]
-
-[lib/bundler/vendor/thor]
-
- Thor is under the following license.
-
- >>>
- Copyright (c) 2008 Yehuda Katz, Eric Hodel, et al.
-
- {MIT License}[rdoc-label:label-MIT+License]
-
-[lib/rubygems/resolver/molinillo]
-[lib/bundler/vendor/molinillo]
-
- molinillo is under the following license.
-
- >>>
- Copyright (c) 2014 Samuel E. Giddins segiddins@segiddins.me
-
- {MIT License}[rdoc-label:label-MIT+License]
-
-[lib/bundler/vendor/connection_pool]
-
- connection_pool is under the following license.
-
- >>>
- Copyright (c) 2011 Mike Perham
-
- {MIT License}[rdoc-label:label-MIT+License]
-
-[lib/bundler/vendor/net-http-persistent]
-
- net-http-persistent is under the following license.
-
- >>>
- Copyright (c) Eric Hodel, Aaron Patterson
-
- {MIT License}[rdoc-label:label-MIT+License]
-
-[lib/did_you_mean]
-[lib/did_you_mean.rb]
-[test/did_you_mean]
-
- did_you_mean is under the following license.
-
- >>>
- Copyright (c) 2014-2016 Yuki Nishijima
-
- {MIT License}[rdoc-label:label-MIT+License]
-
-[lib/error_highlight]
-[lib/error_highlight.rb]
-[test/error_highlight]
-
- error_highlight is under the following license.
-
- >>>
- Copyright (c) 2021 Yusuke Endoh
-
- {MIT License}[rdoc-label:label-MIT+License]
-
-[benchmark/so_ackermann.rb]
-[benchmark/so_array.rb]
-[benchmark/so_binary_trees.rb]
-[benchmark/so_concatenate.rb]
-[benchmark/so_count_words.yml]
-[benchmark/so_exception.rb]
-[benchmark/so_fannkuch.rb]
-[benchmark/so_fasta.rb]
-[benchmark/so_k_nucleotide.yml]
-[benchmark/so_lists.rb]
-[benchmark/so_mandelbrot.rb]
-[benchmark/so_matrix.rb]
-[benchmark/so_meteor_contest.rb]
-[benchmark/so_nbody.rb]
-[benchmark/so_nested_loop.rb]
-[benchmark/so_nsieve.rb]
-[benchmark/so_nsieve_bits.rb]
-[benchmark/so_object.rb]
-[benchmark/so_partial_sums.rb]
-[benchmark/so_pidigits.rb]
-[benchmark/so_random.rb]
-[benchmark/so_reverse_complement.yml]
-[benchmark/so_sieve.rb]
-[benchmark/so_spectralnorm.rb]
-
- These files are very old copy of then-called "The Great Computer Language
- Shootout". LEGAL SITUATION OF THESE FILES ARE UNCLEAR because the original
- site has been lost. Upstream diverged to delete several benchmarks listed
- above.
-
-== MIT License
->>>
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- "Software"), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be
- included in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-== Old-style BSD license
->>>
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 3. Neither the name of the University nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
-
- IMPORTANT NOTE::
-
- From ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
- paragraph 3 above is now null and void.
diff --git a/MANIFEST b/MANIFEST
new file mode 100644
index 0000000000..67ccf3f46a
--- /dev/null
+++ b/MANIFEST
@@ -0,0 +1,246 @@
+COPYING
+COPYING.LIB
+ChangeLog
+MANIFEST
+Makefile.in
+README
+README.jp
+README.EXT
+README.EXT.jp
+ToDo
+array.c
+bignum.c
+class.c
+compar.c
+configure
+configure.bat
+configure.in
+config_h.dj
+config_s.dj
+config.guess
+config.sub
+defines.h
+dir.c
+dln.c
+dln.h
+dmyext.c
+enum.c
+env.h
+error.c
+eval.c
+file.c
+gc.c
+hash.c
+inits.c
+install-sh
+instruby.rb
+intern.h
+io.c
+keywords
+lex.c
+main.c
+marshal.c
+math.c
+mkconfig.rb
+node.h
+numeric.c
+object.c
+pack.c
+parse.c
+parse.y
+prec.c
+process.c
+random.c
+range.c
+re.c
+re.h
+regex.c
+regex.h
+ruby.1
+ruby.c
+ruby.h
+rubyio.h
+rubysig.h
+rubytest.rb
+signal.c
+sprintf.c
+st.c
+st.h
+string.c
+struct.c
+time.c
+top.sed
+util.h
+util.c
+variable.c
+version.c
+version.h
+cygwin/GNUmakefile.in
+ext/Setup
+ext/Setup.dj
+ext/Setup.emx
+ext/Setup.x68
+ext/aix_mksym.rb
+ext/mswin32_extmk.rb
+ext/extmk.rb.in
+lib/English.rb
+lib/Env.rb
+lib/README
+lib/base64.rb
+lib/cgi.rb
+lib/cgi/session.rb
+lib/cgi-lib.rb
+lib/complex.rb
+lib/date.rb
+lib/date2.rb
+lib/debug.rb
+lib/delegate.rb
+lib/e2mmap.rb
+lib/eregex.rb
+lib/find.rb
+lib/final.rb
+lib/finalize.rb
+lib/ftplib.rb
+lib/ftools.rb
+lib/getopts.rb
+lib/getoptlong.rb
+lib/importenv.rb
+lib/irb/completion.rb
+lib/irb/frame.rb
+lib/irb/input-method.rb
+lib/irb/loader.rb
+lib/irb/main.rb
+lib/irb/multi-irb.rb
+lib/irb/ruby-lex.rb
+lib/irb/ruby-token.rb
+lib/irb/slex.rb
+lib/irb/version.rb
+lib/irb/workspace-binding-2.rb
+lib/irb/workspace-binding.rb
+lib/irb/xmp.rb
+lib/jcode.rb
+lib/mailread.rb
+lib/mathn.rb
+lib/matrix.rb
+lib/mkmf.rb
+lib/monitor.rb
+lib/mutex_m.rb
+lib/net/pop.rb
+lib/net/session.rb
+lib/net/smtp.rb
+lib/observer.rb
+lib/open3.rb
+lib/ostruct.rb
+lib/parsearg.rb
+lib/parsedate.rb
+lib/ping.rb
+lib/profile.rb
+lib/pstore.rb
+lib/rational.rb
+lib/readbytes.rb
+lib/shellwords.rb
+lib/singleton.rb
+lib/sync.rb
+lib/telnet.rb
+lib/tempfile.rb
+lib/thread.rb
+lib/thwait.rb
+lib/timeout.rb
+lib/tracer.rb
+lib/weakref.rb
+misc/README
+misc/inf-ruby.el
+misc/ruby-mode.el
+misc/rubydb2x.el
+misc/rubydb3x.el
+missing/alloca.c
+missing/crypt.c
+missing/dir.h
+missing/dup2.c
+missing/file.h
+missing/finite.c
+missing/flock.c
+missing/fnmatch.c
+missing/fnmatch.h
+missing/isinf.c
+missing/isnan.c
+missing/memcmp.c
+missing/memmove.c
+missing/mkdir.c
+missing/os2.c
+missing/strcasecmp.c
+missing/strncasecmp.c
+missing/strchr.c
+missing/strdup.c
+missing/strerror.c
+missing/strftime.c
+missing/strstr.c
+missing/strtod.c
+missing/strtol.c
+missing/strtoul.c
+missing/vsnprintf.c
+missing/x68.c
+sample/README
+sample/biorhythm.rb
+sample/cal.rb
+sample/cbreak.rb
+sample/clnt.rb
+sample/dbmtest.rb
+sample/dir.rb
+sample/dualstack-fetch.rb
+sample/dualstack-httpd.rb
+sample/eval.rb
+sample/export.rb
+sample/exyacc.rb
+sample/fact.rb
+sample/fib.awk
+sample/fib.pl
+sample/fib.py
+sample/fib.rb
+sample/fib.scm
+sample/freq.rb
+sample/from.rb
+sample/fullpath.rb
+sample/getopts.test
+sample/goodfriday.rb
+sample/irb.rb
+sample/less.rb
+sample/list.rb
+sample/list2.rb
+sample/list3.rb
+sample/mine.rb
+sample/mkproto.rb
+sample/mpart.rb
+sample/mrshtest.rb
+sample/observ.rb
+sample/occur.pl
+sample/occur.rb
+sample/occur2.rb
+sample/philos.rb
+sample/pi.rb
+sample/rename.rb
+sample/rcs.awk
+sample/rcs.dat
+sample/rcs.rb
+sample/rd2html.rb
+sample/regx.rb
+sample/sieve.rb
+sample/svr.rb
+sample/test.rb
+sample/time.rb
+sample/trojan.rb
+sample/tsvr.rb
+sample/uumerge.rb
+win32/Makefile
+win32/config.h
+win32/config.status
+win32/ntsetup.bat
+win32/ruby.def
+win32/sdbm.c
+win32/sdbm.h
+win32/win32.c
+win32/win32.h
+x68/fconvert.c
+x68/select.c
+x68/_dtos18.c
+x68/_round.c
diff --git a/Makefile.in b/Makefile.in
new file mode 100644
index 0000000000..5b66caa96b
--- /dev/null
+++ b/Makefile.in
@@ -0,0 +1,265 @@
+SHELL = /bin/sh
+
+#### Start of system configuration section. ####
+
+srcdir = @srcdir@
+VPATH = @srcdir@:@srcdir@/missing
+
+CC = @CC@
+YACC = @YACC@
+PURIFY =
+AUTOCONF = autoconf
+@SET_MAKE@
+
+prefix = @prefix@
+CFLAGS = @CFLAGS@
+CPPFLAGS = -I. -I@srcdir@ -I@includedir@
+LDFLAGS = @STATIC@ $(CFLAGS) @LDFLAGS@
+XLDFLAGS = @XLDFLAGS@
+EXTLIBS =
+LIBS = @LIBS@ $(EXTLIBS)
+MISSING = @LIBOBJS@ @ALLOCA@
+LDSHARED = @LIBRUBY_LDSHARED@
+DLDFLAGS = @LIBRUBY_DLDFLAGS@
+SOLIBS = @SOLIBS@
+
+RUBY_INSTALL_NAME=@RUBY_INSTALL_NAME@
+EXEEXT = @EXEEXT@
+PROGRAM=$(RUBY_INSTALL_NAME)$(EXEEXT)
+
+#### End of system configuration section. ####
+
+MAJOR= @MAJOR@
+MINOR= @MINOR@
+TEENY= @TEENY@
+
+LIBRUBY_A = @LIBRUBY_A@
+LIBRUBY_SO = @LIBRUBY_SO@
+LIBRUBY_ALIASES= @LIBRUBY_ALIASES@
+LIBRUBY = @LIBRUBY@
+LIBRUBYARG = @LIBRUBYARG@
+
+EXTOBJS =
+
+MAINOBJ = main.@OBJEXT@
+
+OBJS = array.@OBJEXT@ \
+ bignum.@OBJEXT@ \
+ class.@OBJEXT@ \
+ compar.@OBJEXT@ \
+ dir.@OBJEXT@ \
+ dln.@OBJEXT@ \
+ enum.@OBJEXT@ \
+ error.@OBJEXT@ \
+ eval.@OBJEXT@ \
+ file.@OBJEXT@ \
+ gc.@OBJEXT@ \
+ hash.@OBJEXT@ \
+ inits.@OBJEXT@ \
+ io.@OBJEXT@ \
+ marshal.@OBJEXT@ \
+ math.@OBJEXT@ \
+ numeric.@OBJEXT@ \
+ object.@OBJEXT@ \
+ pack.@OBJEXT@ \
+ parse.@OBJEXT@ \
+ process.@OBJEXT@ \
+ prec.@OBJEXT@ \
+ random.@OBJEXT@ \
+ range.@OBJEXT@ \
+ re.@OBJEXT@ \
+ regex.@OBJEXT@ \
+ ruby.@OBJEXT@ \
+ signal.@OBJEXT@ \
+ sprintf.@OBJEXT@ \
+ st.@OBJEXT@ \
+ string.@OBJEXT@ \
+ struct.@OBJEXT@ \
+ time.@OBJEXT@ \
+ util.@OBJEXT@ \
+ variable.@OBJEXT@ \
+ version.@OBJEXT@ \
+ $(MISSING)
+
+all: miniruby$(EXEEXT) rbconfig.rb
+ @./miniruby$(EXEEXT) -Xext extmk.rb @EXTSTATIC@
+
+miniruby$(EXEEXT): config.status $(LIBRUBY_A) $(MAINOBJ) dmyext.@OBJEXT@
+ @rm -f $@
+ $(PURIFY) $(CC) $(LDFLAGS) $(MAINOBJ) dmyext.@OBJEXT@ $(LIBRUBY_A) $(LIBS) -o $@
+
+$(PROGRAM): $(LIBRUBY) $(MAINOBJ) $(EXTOBJS)
+ @rm -f $@
+ $(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(MAINOBJ) $(EXTOBJS) $(LIBRUBYARG) $(LIBS) -o $@
+
+$(LIBRUBY_A): $(OBJS) dmyext.@OBJEXT@
+ @AR@ rcu $@ $(OBJS) dmyext.@OBJEXT@
+ @-@RANLIB@ $@ 2> /dev/null || true
+
+$(LIBRUBY_SO): $(OBJS) dmyext.@OBJEXT@
+ $(LDSHARED) $(DLDFLAGS) $(SOLIBS) $(OBJS) dmyext.@OBJEXT@ -o $@
+ @-./miniruby -e 'ARGV.each{|link| File.delete link if File.exist? link; \
+ File.symlink "$(LIBRUBY_SO)", link}' \
+ $(LIBRUBY_ALIASES) || true
+
+install: rbconfig.rb
+ ./miniruby$(EXEEXT) $(srcdir)/instruby.rb $(DESTDIR)
+
+clean:; @rm -f $(OBJS) $(LIBRUBY_A) $(LIBRUBY_SO) $(LIBRUBY_ALIASES) $(MAINOBJ) rbconfig.rb
+ @rm -f ext/extinit.c ext/extinit.@OBJEXT@ dmyext.@OBJEXT@
+ @-./miniruby$(EXEEXT) -Xext extmk.rb clean 2> /dev/null || true
+ @rm -f $(PROGRAM) miniruby$(EXEEXT)
+
+distclean: clean
+ @rm -f Makefile ext/extmk.rb config.h
+ @rm -f ext/config.cache config.cache config.log config.status
+ @rm -f *~ core *.core gmon.out y.tab.c y.output ruby.imp
+
+realclean: distclean
+ @rm -f parse.c
+ @rm -f lex.c
+
+test: miniruby$(EXEEXT)
+ @./miniruby$(EXEEXT) $(srcdir)/rubytest.rb
+
+rbconfig.rb: miniruby$(EXEEXT)
+ @./miniruby$(EXEEXT) $(srcdir)/mkconfig.rb rbconfig.rb
+
+config.status: $(srcdir)/configure
+ $(SHELL) ./config.status --recheck
+
+$(srcdir)/configure: $(srcdir)/configure.in
+ cd $(srcdir) && $(AUTOCONF)
+
+.c.@OBJEXT@:
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c $<
+
+lex.c: keywords
+ gperf -p -j1 -i 1 -g -o -t -N rb_reserved_word -k1,3,$$ @srcdir@/keywords > lex.c
+
+parse.c: parse.y
+ $(YACC) $<
+ mv -f y.tab.c parse.c
+
+parse.@OBJEXT@: parse.c
+
+alloca.@OBJEXT@: @srcdir@/missing/alloca.c
+ $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/alloca.c
+
+crypt.@OBJEXT@: @srcdir@/missing/crypt.c
+ $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/crypt.c
+
+dup2.@OBJEXT@: @srcdir@/missing/dup2.c
+ $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/dup2.c
+
+finite.@OBJEXT@: @srcdir@/missing/finite.c
+ $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/finite.c
+
+flock.@OBJEXT@: @srcdir@/missing/flock.c
+ $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/flock.c
+
+isinf.@OBJEXT@: @srcdir@/missing/isinf.c
+ $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/isinf.c
+
+isnan.@OBJEXT@: @srcdir@/missing/isnan.c
+ $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/isnan.c
+
+fnmatch.@OBJEXT@: @srcdir@/missing/fnmatch.c
+ $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/fnmatch.c
+
+memcmp.@OBJEXT@: @srcdir@/missing/memcmp.c
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/memcmp.c
+
+memmove.@OBJEXT@: @srcdir@/missing/memmove.c
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/memmove.c
+
+mkdir.@OBJEXT@: @srcdir@/missing/mkdir.c
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/mkdir.c
+
+vsnprintf.@OBJEXT@: @srcdir@/missing/vsnprintf.c
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/vsnprintf.c
+
+strcasecmp.@OBJEXT@: @srcdir@/missing/strcasecmp.c
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/strcasecmp.c
+
+strncasecmp.@OBJEXT@: @srcdir@/missing/strncasecmp.c
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/strncasecmp.c
+
+strchr.@OBJEXT@: @srcdir@/missing/strchr.c
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/strchr.c
+
+strdup.@OBJEXT@: @srcdir@/missing/strdup.c
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/strdup.c
+
+strerror.@OBJEXT@: @srcdir@/missing/strerror.c
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/strerror.c
+
+strftime.@OBJEXT@: @srcdir@/missing/strftime.c
+ $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/strftime.c
+
+strstr.@OBJEXT@: @srcdir@/missing/strstr.c
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/strstr.c
+
+strtod.@OBJEXT@: @srcdir@/missing/strtod.c
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/strtod.c
+
+strtol.@OBJEXT@: @srcdir@/missing/strtol.c
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/strtol.c
+
+strtoul.@OBJEXT@: @srcdir@/missing/strtoul.c
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/strtoul.c
+
+nt.@OBJEXT@: @srcdir@/missing/nt.c
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/nt.c
+
+x68.@OBJEXT@: @srcdir@/missing/x68.c
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/x68.c
+
+os2.@OBJEXT@: @srcdir@/missing/os2.c
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/os2.c
+
+dl_os2.@OBJEXT@: @srcdir@/missing/dl_os2.c
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/dl_os2.c
+
+# Prevent GNU make v3 from overflowing arg limit on SysV.
+.NOEXPORT:
+###
+parse.@OBJEXT@: parse.y ruby.h config.h defines.h intern.h env.h node.h st.h regex.h util.h lex.c
+###
+array.@OBJEXT@: array.c ruby.h config.h defines.h intern.h
+bignum.@OBJEXT@: bignum.c ruby.h config.h defines.h intern.h
+class.@OBJEXT@: class.c ruby.h config.h defines.h intern.h node.h st.h
+compar.@OBJEXT@: compar.c ruby.h config.h defines.h intern.h
+dir.@OBJEXT@: dir.c ruby.h config.h defines.h intern.h
+dln.@OBJEXT@: dln.c config.h defines.h dln.h
+dmyext.@OBJEXT@: dmyext.c
+enum.@OBJEXT@: enum.c ruby.h config.h defines.h intern.h
+error.@OBJEXT@: error.c ruby.h config.h defines.h intern.h env.h
+eval.@OBJEXT@: eval.c ruby.h config.h defines.h intern.h node.h env.h rubysig.h st.h dln.h
+file.@OBJEXT@: file.c ruby.h config.h defines.h intern.h rubyio.h rubysig.h
+gc.@OBJEXT@: gc.c ruby.h config.h defines.h intern.h rubysig.h st.h node.h env.h re.h regex.h
+hash.@OBJEXT@: hash.c ruby.h config.h defines.h intern.h st.h rubysig.h util.h
+inits.@OBJEXT@: inits.c ruby.h config.h defines.h intern.h
+io.@OBJEXT@: io.c ruby.h config.h defines.h intern.h rubyio.h rubysig.h env.h
+main.@OBJEXT@: main.c ruby.h config.h defines.h intern.h
+marshal.@OBJEXT@: marshal.c ruby.h config.h defines.h intern.h rubyio.h st.h
+prec.@OBJEXT@: prec.c ruby.h config.h defines.h intern.h
+math.@OBJEXT@: math.c ruby.h config.h defines.h intern.h
+numeric.@OBJEXT@: numeric.c ruby.h config.h defines.h intern.h
+object.@OBJEXT@: object.c ruby.h config.h defines.h intern.h st.h
+pack.@OBJEXT@: pack.c ruby.h config.h defines.h intern.h
+process.@OBJEXT@: process.c ruby.h config.h defines.h intern.h rubysig.h st.h
+random.@OBJEXT@: random.c ruby.h config.h defines.h intern.h
+range.@OBJEXT@: range.c ruby.h config.h defines.h intern.h
+re.@OBJEXT@: re.c ruby.h config.h defines.h intern.h re.h regex.h
+regex.@OBJEXT@: regex.c config.h regex.h util.h
+ruby.@OBJEXT@: ruby.c ruby.h config.h defines.h intern.h dln.h util.h
+signal.@OBJEXT@: signal.c ruby.h config.h defines.h intern.h rubysig.h
+sprintf.@OBJEXT@: sprintf.c ruby.h config.h defines.h intern.h
+st.@OBJEXT@: st.c config.h st.h
+string.@OBJEXT@: string.c ruby.h config.h defines.h intern.h re.h regex.h
+struct.@OBJEXT@: struct.c ruby.h config.h defines.h intern.h
+time.@OBJEXT@: time.c ruby.h config.h defines.h intern.h
+util.@OBJEXT@: util.c ruby.h config.h defines.h intern.h util.h
+variable.@OBJEXT@: variable.c ruby.h config.h defines.h intern.h env.h node.h st.h
+version.@OBJEXT@: version.c ruby.h config.h defines.h intern.h version.h
diff --git a/NEWS.md b/NEWS.md
deleted file mode 100644
index d5a14175e3..0000000000
--- a/NEWS.md
+++ /dev/null
@@ -1,657 +0,0 @@
-# NEWS for Ruby 3.1.0
-
-This document is a list of user-visible feature changes
-since the **3.0.0** release, except for bug fixes.
-
-Note that each entry is kept to a minimum, see links for details.
-
-## Language changes
-
-* The block argument can now be anonymous if the block will
- only be passed to another method. [[Feature #11256]]
-
- ```ruby
- def foo(&)
- bar(&)
- end
- ```
-
-* Pin operator now takes an expression. [[Feature #17411]]
-
- ```ruby
- Prime.each_cons(2).lazy.find_all{_1 in [n, ^(n + 2)]}.take(3).to_a
- #=> [[3, 5], [5, 7], [11, 13]]
- ```
-
-* Pin operator now supports instance, class, and global variables.
- [[Feature #17724]]
-
- ```ruby
- @n = 5
- Prime.each_cons(2).lazy.find{_1 in [n, ^@n]}
- #=> [3, 5]
- ```
-
-* One-line pattern matching is no longer experimental.
-
-* Parentheses can be omitted in one-line pattern matching.
- [[Feature #16182]]
-
- ```ruby
- [0, 1] => _, x
- {y: 2} => y:
- x #=> 1
- y #=> 2
- ```
-
-* Multiple assignment evaluation order has been made consistent with
- single assignment evaluation order. With single assignment, Ruby
- uses a left-to-right evaluation order. With this code:
-
- ```ruby
- foo[0] = bar
- ```
-
- The following evaluation order is used:
-
- 1. `foo`
- 2. `bar`
- 3. `[]=` called on the result of `foo`
-
- In Ruby before 3.1.0, multiple assignment did not follow this
- evaluation order. With this code:
-
- ```ruby
- foo[0], bar.baz = a, b
- ```
-
- Versions of Ruby before 3.1.0 would evaluate in the following
- order
-
- 1. `a`
- 2. `b`
- 3. `foo`
- 4. `[]=` called on the result of `foo`
- 5. `bar`
- 6. `baz=` called on the result of `bar`
-
- Starting in Ruby 3.1.0, the evaluation order is now consistent with
- single assignment, with the left-hand side being evaluated before
- the right-hand side:
-
- 1. `foo`
- 2. `bar`
- 3. `a`
- 4. `b`
- 5. `[]=` called on the result of `foo`
- 6. `baz=` called on the result of `bar`
-
- [[Bug #4443]]
-
-* Values in Hash literals and keyword arguments can be omitted.
- [[Feature #14579]]
-
- For example,
-
- * `{x:, y:}` is a syntax sugar of `{x: x, y: y}`.
- * `foo(x:, y:)` is a syntax sugar of `foo(x: x, y: y)`.
-
- Constant names, local variable names, and method names are allowed as
- key names. Note that a reserved word is considered as a local
- variable or method name even if it's a pseudo variable name such as
- `self`.
-
-* Non main-Ractors can get instance variables (ivars) of classes/modules
- if ivars refer to shareable objects.
- [[Feature #17592]]
-
-* A command syntax is allowed in endless method definitions, i.e.,
- you can now write `def foo = puts "Hello"`.
- Note that `private def foo = puts "Hello"` does not parse.
- [[Feature #17398]]
-
-## Command line options
-
-* `--disable-gems` is now explicitly declared as "just for debugging".
- Never use it in any real-world codebase.
- [[Feature #17684]]
-
-## Core classes updates
-
-Note: We're only listing outstanding class updates.
-
-* Array
-
- * Array#intersect? is added. [[Feature #15198]]
-
-* Class
-
- * Class#subclasses, which returns an array of classes
- directly inheriting from the receiver, not
- including singleton classes.
- [[Feature #18273]]
-
- ```ruby
- class A; end
- class B < A; end
- class C < B; end
- class D < A; end
- A.subclasses #=> [D, B]
- B.subclasses #=> [C]
- C.subclasses #=> []
- ```
-
-* Enumerable
-
- * Enumerable#compact is added. [[Feature #17312]]
-
- * Enumerable#tally now accepts an optional hash to count. [[Feature #17744]]
-
- * Enumerable#each_cons and each_slice to return a receiver. [[GH-1509]]
-
- ```ruby
- [1, 2, 3].each_cons(2){}
- # 3.0 => nil
- # 3.1 => [1, 2, 3]
-
- [1, 2, 3].each_slice(2){}
- # 3.0 => nil
- # 3.1 => [1, 2, 3]
- ```
-
-* Enumerator::Lazy
-
- * Enumerator::Lazy#compact is added. [[Feature #17312]]
-
-* File
-
- * File.dirname now accepts an optional argument for the level to
- strip path components. [[Feature #12194]]
-
-* GC
-
- * "GC.measure_total_time = true" enables the measurement of GC.
- Measurement can introduce overhead. It is enabled by default.
- GC.measure_total_time returns the current setting.
- GC.stat[:time] or GC.stat(:time) returns measured time
- in milli-seconds. [[[Feature #10917]]]
-
- * GC.total_time returns measured time in nano-seconds. [[[Feature #10917]]]
-
-* Integer
-
- * Integer.try_convert is added. [[Feature #15211]]
-
-* Kernel
-
-
- * Kernel#load now accepts a module as the second argument,
- and will load the file using the given module as the
- top-level module. [[Feature #6210]]
-
-* Marshal
-
- * Marshal.load now accepts a `freeze: true` option.
- All returned objects are frozen except for `Class` and
- `Module` instances. Strings are deduplicated. [[Feature #18148]]
-
-* MatchData
-
- * MatchData#match is added [[Feature #18172]]
-
- * MatchData#match_length is added [[Feature #18172]]
-
-* Method / UnboundMethod
-
- * Method#public?, Method#private?, Method#protected?,
- UnboundMethod#public?, UnboundMethod#private?,
- UnboundMethod#protected? have been added. [[Feature #11689]]
-
-* Module
-
- * Module#prepend now modifies the ancestor chain if the receiver
- already includes the argument. Module#prepend still does not
- modify the ancestor chain if the receiver has already prepended
- the argument. [[Bug #17423]]
-
- * Module#private, #public, #protected, and #module_function will
- now return their arguments. If a single argument is given, it
- is returned. If no arguments are given, nil is returned. If
- multiple arguments are given, they are returned as an array.
- [[Feature #12495]]
-
-* Process
-
- * Process.\_fork is added. This is a core method for fork(2).
- Do not call this method directly; it is called by existing
- fork methods: Kernel.#fork, Process.fork, and IO.popen("-").
- Application monitoring libraries can overwrite this method to
- hook fork events. [[Feature #17795]]
-
-* Struct
-
- * Passing only keyword arguments to Struct#initialize is warned.
- You need to use a Hash literal to set a Hash to a first member.
- [[Feature #16806]]
-
- * StructClass#keyword_init? is added [[Feature #18008]]
-
-* String
-
- * Update Unicode version to 13.0.0 [[Feature #17750]]
- and Emoji version to 13.0 [[Feature #18029]]
-
- * String#unpack and String#unpack1 now accept an `offset:` keyword
- argument to start the unpacking after an arbitrary number of bytes
- have been skipped. If `offset` is outside of the string bounds
- `ArgumentError` is raised. [[Feature #18254]]
-
-* Thread
-
- * Thread#native_thread_id is added. [[Feature #17853]]
-
-* Thread::Backtrace
-
- * Thread::Backtrace.limit, which returns the value to limit backtrace
- length set by `--backtrace-limit` command line option, is added.
- [[Feature #17479]]
-
-* Thread::Queue
-
- * Thread::Queue.new now accepts an Enumerable of initial values.
- [[Feature #17327]]
-
-* Time
-
- * Time.new now accepts optional `in:` keyword argument for the
- timezone, as well as `Time.at` and `Time.now`, so that is now
- you can omit minor arguments to `Time.new`. [[Feature #17485]]
-
- ```ruby
- Time.new(2021, 12, 25, in: "+07:00")
- #=> 2021-12-25 00:00:00 +0700
- ```
-
- At the same time, time component strings are converted to
- integers more strictly now.
-
- ```ruby
- Time.new(2021, 12, 25, "+07:30")
- #=> invalid value for Integer(): "+07:30" (ArgumentError)
- ```
-
- Ruby 3.0 or earlier returned probably unexpected result
- `2021-12-25 07:00:00`, not `2021-12-25 07:30:00` nor
- `2021-12-25 00:00:00 +07:30`.
-
- * Time#strftime supports RFC 3339 UTC for unknown offset local
- time, `-0000`, as `%-z`. [[Feature #17544]]
-
-* TracePoint
-
- * TracePoint.allow_reentry is added to allow reenter while TracePoint
- callback.
- [[Feature #15912]]
-
-* $LOAD_PATH
-
- * $LOAD_PATH.resolve_feature_path does not raise. [[Feature #16043]]
-
-* Fiber Scheduler
-
- * Add support for `Addrinfo.getaddrinfo` using `address_resolve` hook.
- [[Feature #17370]]
-
- * Introduce non-blocking `Timeout.timeout` using `timeout_after` hook.
- [[Feature #17470]]
-
- * Introduce new scheduler hooks `io_read` and `io_write` along with a
- low level `IO::Buffer` for zero-copy read/write. [[Feature #18020]]
-
- * IO hooks `io_wait`, `io_read`, `io_write`, receive the original IO object
- where possible. [[Bug #18003]]
-
- * Make `Monitor` fiber-safe. [[Bug #17827]]
-
- * Replace copy coroutine with pthread implementation. [[Feature #18015]]
-
-* Refinement
-
- * New class which represents a module created by Module#refine.
- `include` and `prepend` are deprecated, and `import_methods` is added
- instead. [[Bug #17429]]
-
-## Stdlib updates
-
-* The following default gem are updated.
- * RubyGems 3.3.3
- * base64 0.1.1
- * benchmark 0.2.0
- * bigdecimal 3.1.1
- * bundler 2.3.3
- * cgi 0.3.1
- * csv 3.2.2
- * date 3.2.2
- * did_you_mean 1.6.1
- * digest 3.1.0
- * drb 2.1.0
- * erb 2.2.3
- * error_highlight 0.3.0
- * etc 1.3.0
- * fcntl 1.0.1
- * fiddle 1.1.0
- * fileutils 1.6.0
- * find 0.1.1
- * io-console 0.5.10
- * io-wait 0.2.1
- * ipaddr 1.2.3
- * irb 1.4.1
- * json 2.6.1
- * logger 1.5.0
- * net-http 0.2.0
- * net-protocol 0.1.2
- * nkf 0.1.1
- * open-uri 0.2.0
- * openssl 3.0.0
- * optparse 0.2.0
- * ostruct 0.5.2
- * pathname 0.2.0
- * pp 0.3.0
- * prettyprint 0.1.1
- * psych 4.0.3
- * racc 1.6.0
- * rdoc 6.4.0
- * readline 0.0.3
- * readline-ext 0.1.4
- * reline 0.3.0
- * resolv 0.2.1
- * rinda 0.1.1
- * ruby2_keywords 0.0.5
- * securerandom 0.1.1
- * set 1.0.2
- * stringio 3.0.1
- * strscan 3.0.1
- * tempfile 0.1.2
- * time 0.2.0
- * timeout 0.2.0
- * tmpdir 0.1.2
- * un 0.2.0
- * uri 0.11.0
- * yaml 0.2.0
- * zlib 2.1.1
-* The following bundled gems are updated.
- * minitest 5.15.0
- * power_assert 2.0.1
- * rake 13.0.6
- * test-unit 3.5.3
- * rexml 3.2.5
- * rbs 2.0.0
- * typeprof 0.21.1
-* The following default gems are now bundled gems.
- * net-ftp 0.1.3
- * net-imap 0.2.2
- * net-pop 0.1.1
- * net-smtp 0.3.1
- * matrix 0.4.2
- * prime 0.1.2
- * debug 1.4.0
-
-* Coverage measurement now supports suspension. You can use `Coverage.suspend`
- to stop the measurement temporarily, and `Coverage.resume` to restart it.
- See [[Feature #18176]] in detail.
-
-* Random::Formatter is moved to random/formatter.rb, so that you can
- use `Random#hex`, `Random#base64`, and so on without SecureRandom.
- [[Feature #18190]]
-
-## Compatibility issues
-
-Note: Excluding feature bug fixes.
-
-* `rb_io_wait_readable`, `rb_io_wait_writable` and `rb_wait_for_single_fd` are
- deprecated in favour of `rb_io_maybe_wait_readable`,
- `rb_io_maybe_wait_writable` and `rb_io_maybe_wait` respectively.
- `rb_thread_wait_fd` and `rb_thread_fd_writable` are deprecated. [[Bug #18003]]
-
-## Stdlib compatibility issues
-
-* `ERB#initialize` warns `safe_level` and later arguments even without -w.
- [[Feature #14256]]
-
-* `lib/debug.rb` is replaced with `debug.gem`
-
-* `Kernel#pp` in `lib/pp.rb` uses the width of `IO#winsize` by default.
- This means that the output width is automatically changed depending on
- your terminal size. [[Feature #12913]]
-
-* Psych 4.0 changes `Psych.load` as `safe_load` by the default.
- You may need to use Psych 3.3.2 for migrating to this behavior.
- [[Bug #17866]]
-
-## C API updates
-
-* Documented. [[GH-4815]]
-
-* `rb_gc_force_recycle` is deprecated and has been changed to a no-op.
- [[Feature #18290]]
-
-## Implementation improvements
-
-* Inline cache mechanism is introduced for reading class variables.
- [[Feature #17763]]
-
-* `instance_eval` and `instance_exec` now only allocate a singleton class when
- required, avoiding extra objects and improving performance. [[GH-5146]]
-
-* The performance of `Struct` accessors is improved. [[GH-5131]]
-
-* `mandatory_only?` builtin special form to improve performance on
- builtin methods. [[GH-5112]]
-
-* Experimental feature Variable Width Allocation in the garbage collector.
- This feature is turned off by default and can be enabled by compiling Ruby
- with flag `USE_RVARGC=1` set. [[Feature #18045]] [[Feature #18239]]
-
-## JIT
-
-* Rename Ruby 3.0's `--jit` to `--mjit`, and alias `--jit` to `--yjit`
- on non-Windows x86-64 platforms and to `--mjit` on others.
-
-### MJIT
-
-* The default `--mjit-max-cache` is changed from 100 to 10000.
-
-* JIT-ed code is no longer cancelled when a TracePoint for class events
- is enabled.
-
-* The JIT compiler no longer skips compilation of methods longer than
- 1000 instructions.
-
-* `--mjit-verbose` and `--mjit-warning` output "JIT cancel" when JIT-ed
- code is disabled because TracePoint or GC.compact is used.
-
-### YJIT: New experimental in-process JIT compiler
-
-New JIT compiler available as an experimental feature. [[Feature #18229]]
-
-See [this blog post](https://shopify.engineering/yjit-just-in-time-compiler-cruby
-) introducing the project.
-
-* Disabled by default, use `--yjit` command-line option to enable YJIT.
-
-* Performance improvements on benchmarks based on real-world software,
- up to 22% on railsbench, 39% on liquid-render.
-
-* Fast warm-up times.
-
-* Limited to Unix-like x86-64 platforms for now.
-
-## Static analysis
-
-### RBS
-
-* Generics type parameters can be bounded ([PR](https://github.com/ruby/rbs/pull/844)).
-
- ```rbs
- # `T` must be compatible with the `_Output` interface.
- # `PrettyPrint[String]` is ok, but `PrettyPrint[Integer]` is a type error.
- class PrettyPrint[T < _Output]
- interface _Output
- def <<: (String) -> void
- end
-
- attr_reader output: T
-
- def initialize: (T output) -> void
- end
- ```
-
-* Type aliases can be generic. ([PR](https://github.com/ruby/rbs/pull/823))
-
- ```rbs
- # Defines a generic type `list`.
- type list[T] = [ T, list[T] ]
- | nil
-
- type str_list = list[String]
- type int_list = list[Integer]
- ```
-
-* [rbs collection](https://github.com/ruby/rbs/blob/master/docs/collection.md) has been introduced to manage gems’ RBSs.
-
-* Many signatures for built-in and standard libraries have been added/updated.
-
-* It includes many bug fixes and performance improvements too.
-
-See the [CHANGELOG.md](https://github.com/ruby/rbs/blob/master/CHANGELOG.md) for more information.
-
-### TypeProf
-
-* [Experimental IDE support](https://github.com/ruby/typeprof/blob/master/doc/ide.md) has been implemented.
-* Many bug fixes and performance improvements since Ruby 3.0.0.
-
-## Debugger
-
-* A new debugger [debug.gem](https://github.com/ruby/debug) is bundled.
- debug.gem is a fast debugger implementation, and it provides many features
- like remote debugging, colorful REPL, IDE (VSCode) integration, and more.
- It replaces `lib/debug.rb` standard library.
-
-* `rdbg` command is also installed into `bin/` directory to start and control
- debugging execution.
-
-## error_highlight
-
-A built-in gem called error_highlight has been introduced.
-It shows fine-grained error locations in the backtrace.
-
-Example: `title = json[:article][:title]`
-
-If `json` is nil, it shows:
-
-```
-$ ruby test.rb
-test.rb:2:in `<main>': undefined method `[]' for nil:NilClass (NoMethodError)
-
-title = json[:article][:title]
- ^^^^^^^^^^
-```
-
-If `json[:article]` returns nil, it shows:
-
-```
-$ ruby test.rb
-test.rb:2:in `<main>': undefined method `[]' for nil:NilClass (NoMethodError)
-
-title = json[:article][:title]
- ^^^^^^^^
-```
-
-This feature is enabled by default.
-You can disable it by using a command-line option `--disable-error_highlight`.
-See [the repository](https://github.com/ruby/error_highlight) in detail.
-
-## IRB Autocomplete and Document Display
-
-The IRB now has an autocomplete feature, where you can just type in the code, and the completion candidates dialog will appear. You can use Tab and Shift+Tab to move up and down.
-
-If documents are installed when you select a completion candidate, the documentation dialog will appear next to the completion candidates dialog, showing part of the content. You can read the full document by pressing Alt+d.
-
-## Miscellaneous changes
-
-* lib/objspace/trace.rb is added, which is a tool for tracing the object
- allocation. Just by requiring this file, tracing is started *immediately*.
- Just by `Kernel#p`, you can investigate where an object was created.
- Note that just requiring this file brings a large performance overhead.
- This is only for debugging purposes. Do not use this in production.
- [[Feature #17762]]
-
-* Now exceptions raised in finalizers will be printed to `STDERR`, unless
- `$VERBOSE` is `nil`. [[Feature #17798]]
-
-* `ruby -run -e httpd` displays URLs to access. [[Feature #17847]]
-
-* Add `ruby -run -e colorize` to colorize Ruby code using
- `IRB::Color.colorize_code`.
-
-[Bug #4443]: https://bugs.ruby-lang.org/issues/4443
-[Feature #6210]: https://bugs.ruby-lang.org/issues/6210
-[Feature #10917]: https://bugs.ruby-lang.org/issues/10917
-[Feature #11256]: https://bugs.ruby-lang.org/issues/11256
-[Feature #11689]: https://bugs.ruby-lang.org/issues/11689
-[Feature #12194]: https://bugs.ruby-lang.org/issues/12194
-[Feature #12495]: https://bugs.ruby-lang.org/issues/12495
-[Feature #12913]: https://bugs.ruby-lang.org/issues/12913
-[Feature #14256]: https://bugs.ruby-lang.org/issues/14256
-[Feature #14579]: https://bugs.ruby-lang.org/issues/14579
-[Feature #15198]: https://bugs.ruby-lang.org/issues/15198
-[Feature #15211]: https://bugs.ruby-lang.org/issues/15211
-[Feature #15912]: https://bugs.ruby-lang.org/issues/15912
-[Feature #16043]: https://bugs.ruby-lang.org/issues/16043
-[Feature #16182]: https://bugs.ruby-lang.org/issues/16182
-[Feature #16806]: https://bugs.ruby-lang.org/issues/16806
-[Feature #17312]: https://bugs.ruby-lang.org/issues/17312
-[Feature #17327]: https://bugs.ruby-lang.org/issues/17327
-[Feature #17370]: https://bugs.ruby-lang.org/issues/17370
-[Feature #17398]: https://bugs.ruby-lang.org/issues/17398
-[Feature #17411]: https://bugs.ruby-lang.org/issues/17411
-[Bug #17423]: https://bugs.ruby-lang.org/issues/17423
-[Bug #17429]: https://bugs.ruby-lang.org/issues/17429
-[Feature #17470]: https://bugs.ruby-lang.org/issues/17470
-[Feature #17479]: https://bugs.ruby-lang.org/issues/17479
-[Feature #17485]: https://bugs.ruby-lang.org/issues/17485
-[Feature #17544]: https://bugs.ruby-lang.org/issues/17544
-[Feature #17592]: https://bugs.ruby-lang.org/issues/17592
-[Feature #17684]: https://bugs.ruby-lang.org/issues/17684
-[Feature #17724]: https://bugs.ruby-lang.org/issues/17724
-[Feature #17744]: https://bugs.ruby-lang.org/issues/17744
-[Feature #17750]: https://bugs.ruby-lang.org/issues/17750
-[Feature #17762]: https://bugs.ruby-lang.org/issues/17762
-[Feature #17763]: https://bugs.ruby-lang.org/issues/17763
-[Feature #17795]: https://bugs.ruby-lang.org/issues/17795
-[Feature #17798]: https://bugs.ruby-lang.org/issues/17798
-[Bug #17827]: https://bugs.ruby-lang.org/issues/17827
-[Feature #17847]: https://bugs.ruby-lang.org/issues/17847
-[Feature #17853]: https://bugs.ruby-lang.org/issues/17853
-[Bug #17866]: https://bugs.ruby-lang.org/issues/17866
-[Bug #18003]: https://bugs.ruby-lang.org/issues/18003
-[Feature #18008]: https://bugs.ruby-lang.org/issues/18008
-[Feature #18015]: https://bugs.ruby-lang.org/issues/18015
-[Feature #18020]: https://bugs.ruby-lang.org/issues/18020
-[Feature #18029]: https://bugs.ruby-lang.org/issues/18029
-[Feature #18045]: https://bugs.ruby-lang.org/issues/18045
-[Feature #18148]: https://bugs.ruby-lang.org/issues/18148
-[Feature #18172]: https://bugs.ruby-lang.org/issues/18172
-[Feature #18176]: https://bugs.ruby-lang.org/issues/18176
-[Feature #18190]: https://bugs.ruby-lang.org/issues/18190
-[Feature #18229]: https://bugs.ruby-lang.org/issues/18229
-[Feature #18239]: https://bugs.ruby-lang.org/issues/18239
-[Feature #18254]: https://bugs.ruby-lang.org/issues/18254
-[Feature #18273]: https://bugs.ruby-lang.org/issues/18273
-[Feature #18290]: https://bugs.ruby-lang.org/issues/18290
-
-[GH-1509]: https://github.com/ruby/ruby/pull/1509
-[GH-4815]: https://github.com/ruby/ruby/pull/4815
-[GH-5112]: https://github.com/ruby/ruby/pull/5112
-[GH-5131]: https://github.com/ruby/ruby/pull/5131
-[GH-5146]: https://github.com/ruby/ruby/pull/5146
diff --git a/README b/README
new file mode 100644
index 0000000000..2953cc98da
--- /dev/null
+++ b/README
@@ -0,0 +1,151 @@
+* What's Ruby
+
+Ruby is the interpreted scripting language for quick and
+easy object-oriented programming. It has many features to
+process text files and to do system management tasks (as in
+Perl). It is simple, straight-forward, and extensible.
+
+* Features of Ruby
+
+ + Simple Syntax
+ + *Normal* Object-Oriented features(ex. class, method calls)
+ + *Advanced* Object-Oriented features(ex. Mix-in, Singleton-method)
+ + Operator Overloading
+ + Exception Handling
+ + Iterators and Closures
+ + Garbage Collection
+ + Dynamic Loading of Object files(on some architecture)
+ + Highly Portable(works on many UNIX machines, and on DOS,
+ Windows, Mac, BeOS etc.)
+
+* How to get Ruby
+
+The Ruby distribution can be found on:
+
+ ftp://ftp.netlab.co.jp/pub/lang/ruby/
+
+You can get it by anonymous CVS. How to check out is:
+
+ $ cvs -d :pserver:anonymous@cvs.netlab.co.jp:/home/cvs login
+ (Logging in to anonymous@cvs.netlab.co.jp)
+ CVS password: guest
+ $ cvs -d :pserver:anonymous@cvs.netlab.co.jp:/home/cvs checkout ruby
+
+* Mailing list
+
+There is a mailing list to talk about Ruby.
+To subscribe this list, please send the following phrase
+
+ subscribe YourFirstName YourFamilyName
+e.g.
+ subscribe Joseph Smith
+
+in the mail body (not subject) to the address <ruby-talk-ctl@netlab.co.jp>.
+
+* How to compile and install
+
+This is what you need to do to compile and install Ruby:
+
+ 1. Run ./configure, which will generate config.h and Makefile.
+
+ 2. Edit defines.h if you need. Probably this step will not need.
+
+ 3. Remove comment mark(#) before the module names from ext/Setup (or
+ add module names if not present), if you want to link modules
+ statically.
+
+ If you don't want to compile non static extension modules
+ (probably on architectures which does not allow dynamic loading),
+ remove comment mark from the line "#option nodynamic" in
+ ext/Setup.
+
+ 4. Run make.
+
+ 5. Optionally, run 'make test' to check whether the compiled Ruby
+ interpreter works well. If you see the message "test succeeded",
+ your ruby works as it should (hopefully).
+
+ 6. Run 'make install'
+
+ You may have to be a super user to install ruby.
+
+If you fail to compile ruby, please send the detailed error report with
+the error log and machine/OS type, to help others.
+
+* Copying
+
+Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.co.jp>.
+You can redistribute it and/or modify it under either the terms of the GPL
+(see COPYING file), or the conditions below:
+
+ 1. You may make and give away verbatim copies of the source form of the
+ software without restriction, provided that you duplicate all of the
+ original copyright notices and associated disclaimers.
+
+ 2. You may modify your copy of the software in any way, provided that
+ you do at least ONE of the following:
+
+ a) place your modifications in the Public Domain or otherwise
+ make them Freely Available, such as by posting said
+ modifications to Usenet or an equivalent medium, or by allowing
+ the author to include your modifications in the software.
+
+ b) use the modified software only within your corporation or
+ organization.
+
+ c) rename any non-standard executables so the names do not conflict
+ with standard executables, which must also be provided.
+
+ d) make other distribution arrangements with the author.
+
+ 3. You may distribute the software in object code or executable
+ form, provided that you do at least ONE of the following:
+
+ a) distribute the executables and library files of the software,
+ together with instructions (in the manual page or equivalent)
+ on where to get the original distribution.
+
+ b) accompany the distribution with the machine-readable source of
+ the software.
+
+ c) give non-standard executables non-standard names, with
+ instructions on where to get the original software distribution.
+
+ d) make other distribution arrangements with the author.
+
+ 4. You may modify and include the part of the software into any other
+ software (possibly commercial). But some files in the distribution
+ are not written by the author, so that they are not under this terms.
+ They are gc.c(partly), utils.c(partly), regex.[ch], st.[ch] and some
+ files under the ./missing directory. See each file for the copying
+ condition.
+
+ 5. The scripts and library files supplied as input to or produced as
+ output from the software do not automatically fall under the
+ copyright of the software, but belong to whomever generated them,
+ and may be sold commercially, and may be aggregated with this
+ software.
+
+ 6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE.
+
+* Ruby home-page
+
+The URL of the Ruby home-page is:
+
+ http://www.netlab.co.jp/ruby/
+
+* The Author
+
+Feel free to send comments and bug reports to the author. Here is the
+author's latest mail address:
+
+ matz@netlab.co.jp
+
+-------------------------------------------------------
+created at: Thu Aug 3 11:57:36 JST 1995
+Local variables:
+mode: indented-text
+end:
diff --git a/README.EXT b/README.EXT
index 48b8d964c4..68726b793d 100644
--- a/README.EXT
+++ b/README.EXT
@@ -1 +1,992 @@
-Moved to doc/extension.rdoc
+.\" README.EXT - -*- Text -*- created at: Mon Aug 7 16:45:54 JST 1995
+
+This document explains how to make extension libraries for Ruby.
+
+1. Basic knowledge
+
+In C, variables have types and data do not have types. In contrast,
+Ruby variables do not have static type and data themselves have
+types. So, data need to be converted across the languages.
+
+Data in Ruby represented C type `VALUE'. Each VALUE data have its
+data-type.
+
+To retrieve an C data from the VALUE, you need to:
+
+ (1) Identify VALUE's data type
+ (2) Convert VALUE into C data
+
+Converting to wrong data type may cause serious problems.
+
+
+1.1 Data-types
+
+Ruby interpreter has data-types as below:
+
+ T_NIL nil
+ T_OBJECT ordinary object
+ T_CLASS class
+ T_MODULE module
+ T_FLOAT floating point number
+ T_STRING string
+ T_REGEXP regular expression
+ T_ARRAY array
+ T_FIXNUM Fixnum(31bit integer)
+ T_HASH associative array
+ T_STRUCT (Ruby) structure
+ T_BIGNUM multi precision integer
+ T_TRUE true
+ T_FALSE false
+ T_DATA data
+
+Otherwise, there are several other types used internally:
+
+ T_ICLASS
+ T_MATCH
+ T_VARMAP
+ T_SCOPE
+ T_NODE
+
+Most of the types are represented by C structures.
+
+1.2 Check Data Type of the VALUE
+
+The macro TYPE() defined in ruby.h shows data-type of the VALUE.
+TYPE() returns the constant number T_XXXX described above. To handle
+data-types, the code will be like:
+
+ switch (TYPE(obj)) {
+ case T_FIXNUM:
+ /* process Fixnum */
+ break;
+ case T_STRING:
+ /* process String */
+ break;
+ case T_ARRAY:
+ /* process Array */
+ break;
+ default:
+ /* raise exception */
+ Fail("not valid value");
+ break;
+ }
+
+There is the data-type check function.
+
+ void Check_Type(VALUE value, int type)
+
+It raises an exception, if the VALUE does not have the type specified.
+
+There are faster check-macros for fixnums and nil.
+
+ FIXNUM_P(obj)
+ NIL_P(obj)
+
+1.3 Convert VALUE into C data
+
+The data for type T_NIL, T_FALSE, T_TRUE are nil, true, false
+respectively. They are singletons for the data type.
+
+The T_FIXNUM data is the 31bit length fixed integer (63bit length on
+some machines), which can be convert to the C integer by using
+FIX2INT() macro. There also be NUM2INT() which converts any Ruby
+numbers into C integer. The NUM2INT() macro includes type check, so
+the exception will be raised if conversion failed.
+
+Other data types have corresponding C structures, e.g. struct RArray
+for T_ARRAY etc. VALUE of the type which has corresponding structure
+can be cast to retrieve the pointer to the struct. The casting macro
+RXXXX for each data type like RARRAY(obj). see "ruby.h".
+
+For example, `RSTRING(size)->len' is the way to get the size of the
+Ruby String object. The allocated region can be accessed by
+`RSTRING(str)->ptr'. For arrays, `RARRAY(ary)->len' and
+`RARRAY(ary)->ptr' respectively.
+
+Notice: Do not change the value of the structure directly, unless you
+are responsible about the result. It will be the cause of interesting
+bugs.
+
+1.4 Convert C data into VALUE
+
+To convert C data to the values of Ruby:
+
+ * FIXNUM
+
+ left shift 1 bit, and turn on LSB.
+
+ * Other pointer values
+
+ cast to VALUE.
+
+You can determine whether VALUE is pointer or not, by checking LSB.
+
+Notice Ruby does not allow arbitrary pointer value to be VALUE. They
+should be pointers to the structures which Ruby knows. The known
+structures are defined in <ruby.h>.
+
+To convert C numbers to Ruby value, use these macros.
+
+ INT2FIX() for integers within 31bits.
+ INT2NUM() for arbitrary sized integer.
+
+INT2NUM() converts integers into Bignums, if it is out of FIXNUM
+range, but bit slower.
+
+1.5 Manipulate Ruby data
+
+As I already told, it is not recommended to modify object's internal
+structure. To manipulate objects, use functions supplied by Ruby
+interpreter. Useful functions are listed below (not all):
+
+ String functions
+
+ rb_str_new(char *ptr, int len)
+
+ Creates a new Ruby string.
+
+ rb_str_new2(char *ptr)
+
+ Creates a new Ruby string from C string. This is equivalent to
+ rb_str_new(ptr, strlen(ptr)).
+
+ rb_str_cat(VALUE str, char *ptr, int len)
+
+ Appends len bytes data from ptr to the Ruby string.
+
+ Array functions
+
+ rb_ary_new()
+
+ Creates an array with no element.
+
+ rb_ary_new2(int len)
+
+ Creates an array with no element, with allocating internal buffer
+ for len elements.
+
+ rb_ary_new3(int n, ...)
+
+ Creates an n-elements array from arguments.
+
+ rb_ary_new4(int n, VALUE *elts)
+
+ Creates an n-elements array from C array.
+
+ rb_ary_push(VALUE ary, VALUE val)
+ rb_ary_pop(VALUE ary)
+ rb_ary_shift(VALUE ary)
+ rb_ary_unshift(VALUE ary, VALUE val)
+ rb_ary_entry(VALUE ary, int idx)
+
+ Array operations. The first argument to each functions must be an
+ array. They may dump core if other types given.
+
+2. Extend Ruby with C
+
+2.1 Add new features to Ruby
+
+You can add new features (classes, methods, etc.) to the Ruby
+interpreter. Ruby provides the API to define things below:
+
+ * Classes, Modules
+ * Methods, Singleton Methods
+ * Constants
+
+2.1.1 Class/module definition
+
+To define class or module, use functions below:
+
+ VALUE rb_define_class(char *name, VALUE super)
+ VALUE rb_define_module(char *name)
+
+These functions return the newly created class or module. You may
+want to save this reference into the variable to use later.
+
+2.1.2 Method/singleton method definition
+
+To define methods or singleton methods, use functions below:
+
+ void rb_define_method(VALUE klass, char *name,
+ VALUE (*func)(), int argc)
+
+ void rb_define_singleton_method(VALUE object, char *name,
+ VALUE (*func)(), int argc)
+
+The `argc' represents the number of the arguments to the C function,
+which must be less than 17. But I believe you don't need that much. :-)
+
+If `argc' is negative, it specifies calling sequence, not number of
+the arguments.
+
+If argc is -1, the function will be called like:
+
+ VALUE func(int argc, VALUE *argv, VALUE obj)
+
+where argc is the actual number of arguments, argv is the C array of
+the arguments, and obj is the receiver.
+
+if argc is -2, the arguments are passed in Ruby array. The function
+will be called like:
+
+ VALUE func(VALUE obj, VALUE args)
+
+where obj is the receiver, and args is the Ruby array containing
+actual arguments.
+
+There're two more functions to define method. One is to define
+private method:
+
+ void rb_define_private_method(VALUE klass, char *name,
+ VALUE (*func)(), int argc)
+
+The other is to define module function, which is private AND singleton
+method of the module. For example, sqrt is the module function
+defined in Math module. It can be call in the form like:
+
+ Math.sqrt(4)
+
+or
+
+ include Math
+ sqrt(4)
+
+To define module function
+
+ void rb_define_module_function(VALUE module, char *name,
+ VALUE (*func)(), int argc)
+
+Oh, in addition, function-like method, which is private method defined
+in Kernel module, can be defined using:
+
+ void rb_define_global_function(char *name, VALUE (*func)(), int argc)
+
+
+2.1.3 Constant definition
+
+We have 2 functions to define constants:
+
+ void rb_define_const(VALUE klass, char *name, VALUE val)
+ void rb_define_global_const(char *name, VALUE val)
+
+The former is to define constant under specified class/module. The
+latter is to define global constant.
+
+2.2 Use Ruby features from C
+
+There are several ways to invoke Ruby's features from C code.
+
+2.2.1 Evaluate Ruby Program in String
+
+Easiest way to call Ruby's function from C program is to evaluate the
+string as Ruby program. This function will do the job.
+
+ VALUE rb_eval_string(char *str)
+
+Evaluation is done under current context, thus current local variables
+of the innermost method (which is defined by Ruby) can be accessed.
+
+2.2.2 ID or Symbol
+
+You can invoke methods directly, without parsing the string. First I
+need to explain about symbols (which data type is ID). ID is the
+integer number to represent Ruby's identifiers such as variable names.
+It can be accessed from Ruby in the form like:
+
+ :Identifier
+
+You can get the symbol value from string within C code, by using
+
+ rb_intern(char *name)
+
+In addition, the symbols for one character operators (e.g +) is the
+code for that character.
+
+2.2.3 Invoke Ruby method from C
+
+To invoke methods directly, you can use the function below
+
+ VALUE rb_funcall(VALUE recv, ID mid, int argc, ...)
+
+This function invokes the method of the recv, which name is specified
+by the symbol mid.
+
+2.2.4 Accessing the variables and constants
+
+You can access class variables, and instance variables using access
+functions. Also, global variables can be shared between both worlds.
+There's no way to access Ruby's local variables.
+
+The functions to access/modify instance variables are below:
+
+ VALUE rb_ivar_get(VALUE obj, ID id)
+ VALUE rb_ivar_set(VALUE obj, ID id, VALUE val)
+
+id must be the symbol, which can be retrieved by rb_intern().
+
+To access the constants of the class/module:
+
+ VALUE rb_const_get(VALUE obj, ID id)
+
+See 2.1.3 for defining new constant.
+
+3. Information sharing between Ruby and C
+
+3.1 Ruby constant that C can be accessed from C
+
+Following Ruby constants can be referred from C.
+
+ Qtrue
+ Qfalse
+
+Boolean values. Qfalse is false in the C also (i.e. 0).
+
+ Qnil
+
+Ruby nil in C scope.
+
+3.2 Global variables shared between C and Ruby
+
+Information can be shared between two worlds, using shared global
+variables. To define them, you can use functions listed below:
+
+ void rb_define_variable(char *name, VALUE *var)
+
+This function defines the variable which is shared by the both world.
+The value of the global variable pointed by `var', can be accessed
+through Ruby's global variable named `name'.
+
+You can define read-only (from Ruby, of course) variable by the
+function below.
+
+ void rb_define_readonly_variable(char *name, VALUE *var)
+
+You can defined hooked variables. The accessor functions (getter and
+setter) are called on access to the hooked variables.
+
+ void rb_define_hooked_variable(char *name, VALUE *var,
+ VALUE (*getter)(), VALUE (*setter)())
+
+If you need to supply either setter or getter, just supply 0 for the
+hook you don't need. If both hooks are 0, rb_define_hooked_variable()
+works just like rb_define_variable().
+
+ void rb_define_virtual_variable(char *name,
+ VALUE (*getter)(), VALUE (*setter)())
+
+This function defines the Ruby global variable without corresponding C
+variable. The value of the variable will be set/get only by hooks.
+
+The prototypes of the getter and setter functions are as following:
+
+ (*getter)(ID id, void *data, struct global_entry* entry);
+ (*setter)(VALUE val, ID id, void *data, struct global_entry* entry);
+
+3.3 Encapsulate C data into Ruby object
+
+To wrapping and objectify the C pointer as Ruby object (so called
+DATA), use Data_Wrap_Struct().
+
+ Data_Wrap_Struct(klass,mark,free,ptr)
+
+Data_Wrap_Struct() returns a created DATA object. The class argument
+is the class for the DATA object. The mark argument is the function
+to mark Ruby objects pointed by this data. The free argument is the
+function to free the pointer allocation. The functions, mark and
+free, will be called from garbage collector.
+
+You can allocate and wrap the structure in one step.
+
+ Data_Make_Struct(klass, type, mark, free, sval)
+
+This macro returns an allocated Data object, wrapping the pointer to
+the structure, which is also allocated. This macro works like:
+
+ (sval = ALLOC(type), Data_Wrap_Struct(klass, mark, free, sval))
+
+Arguments, klass, mark, free, works like their counterpart of
+Data_Wrap_Struct(). The pointer to allocated structure will be
+assigned to sval, which should be the pointer to the type specified.
+
+To retrieve the C pointer from the Data object, use the macro
+Data_Get_Struct().
+
+ Data_Get_Struct(obj, type, sval)
+
+The pointer to the structure will be assigned to the variable sval.
+
+See example below for detail.
+
+4. Example - Creating dbm extension
+
+OK, here's the example to make extension library. This is the
+extension to access dbm. The full source is included in ext/
+directory in the Ruby's source tree.
+
+(1) make the directory
+
+ % mkdir ext/dbm
+
+Make a directory for the extension library under ext directory.
+
+(2) create MANIFEST file
+
+ % cd ext/dbm
+ % touch MANIFEST
+
+There should be MANIFEST file in the directory for the extension
+library. Make empty file now.
+
+(3) design the library
+
+You need to design the library features, before making it.
+
+(4) write C code.
+
+You need to write C code for your extension library. If your library
+has only one source file, choosing ``LIBRARY.c'' as a file name is
+preferred. On the other hand, in case your library has plural source
+files, avoid choosing ``LIBRARY.c'' for a file name. It may conflict
+with intermediate file ``LIBRARY.o'' on some platforms.
+
+Ruby will execute the initializing function named ``Init_LIBRARY'' in
+the library. For example, ``Init_dbm()'' will be executed when loading
+the library.
+
+Here's the example of an initializing function.
+
+--
+Init_dbm()
+{
+ /* define DBM class */
+ cDBM = rb_define_class("DBM", rb_cObject);
+ /* DBM includes Enumerate module */
+ rb_include_module(cDBM, rb_mEnumerable);
+
+ /* DBM has class method open(): arguments are received as C array */
+ rb_define_singleton_method(cDBM, "open", fdbm_s_open, -1);
+
+ /* DBM instance method close(): no args */
+ rb_define_method(cDBM, "close", fdbm_close, 0);
+ /* DBM instance method []: 1 argument */
+ rb_define_method(cDBM, "[]", fdbm_fetch, 1);
+ :
+
+}
+--
+
+The dbm extension wrap dbm struct in C world using Data_Make_Struct.
+
+--
+struct dbmdata {
+ int di_size;
+ DBM *di_dbm;
+};
+
+
+obj = Data_Make_Struct(klass,struct dbmdata,0,free_dbm,dbmp);
+--
+
+This code wraps dbmdata structure into Ruby object. We avoid wrapping
+DBM* directly, because we want to cache size information.
+
+To retrieve dbmdata structure from Ruby object, we define the macro below:
+
+--
+#define GetDBM(obj, dbmp) {\
+ Data_Get_Struct(obj, struct dbmdata, dbmp);\
+ if (dbmp->di_dbm == 0) closed_dbm();\
+}
+--
+
+This sort of complicated macro do the retrieving and close check for
+the DBM.
+
+There are three kind of way to receiving method arguments. First, the
+methods with fixed number of arguments receives arguments like this:
+
+--
+static VALUE
+fdbm_delete(obj, keystr)
+ VALUE obj, keystr;
+{
+ :
+}
+--
+
+The first argument of the C function is the self, the rest are the
+arguments to the method.
+
+Second, the methods with arbitrary number of arguments receives
+arguments like this:
+
+--
+static VALUE
+fdbm_s_open(argc, argv, klass)
+ int argc;
+ VALUE *argv;
+ VALUE klass;
+{
+ :
+ if (rb_scan_args(argc, argv, "11", &file, &vmode) == 1) {
+ mode = 0666; /* default value */
+ }
+ :
+}
+--
+
+The first argument is the number of method arguments. the second
+argument is the C array of the method arguments. And the third
+argument is the receiver of the method.
+
+You can use the function rb_scan_args() to check and retrieve the
+arguments. For example "11" means, the method requires at least one
+argument, and at most receives two arguments.
+
+The methods with arbitrary number of arguments can receives arguments
+by Ruby's array, like this:
+
+--
+static VALUE
+fdbm_indexes(obj, args)
+ VALUE obj, args;
+{
+ :
+}
+--
+
+The first argument is the receiver, the second one is the Ruby array
+which contains the arguments to the method.
+
+** Notice
+
+GC should know about global variables which refers Ruby's objects, but
+not exported to the Ruby world. You need to protect them by
+
+ void rb_global_variable(VALUE *var)
+
+(5) prepare extconf.rb
+
+If there exists the file named extconf.rb, it will be executed to
+generate Makefile. If not, compilation scheme try to generate
+Makefile anyway.
+
+The extconf.rb is the file to check compilation condition etc. You
+need to put
+
+ require 'mkmf'
+
+at the top of the file. You can use the functions below to check the
+condition.
+
+ have_library(lib, func): check whether library containing function exists.
+ have_func(func): check whether function exists
+ have_header(header): check whether header file exists
+ create_makefile(target): generate Makefile
+
+The value of variables below will affect Makefile.
+
+ $CFLAGS: included in CFLAGS make variable (such as -I)
+ $LDFLAGS: included in LDFLAGS make variable (such as -L)
+
+If compilation condition is not fulfilled, you do not call
+``create_makefile''. Makefile will not generated, compilation will
+not be done.
+
+(6) prepare depend (optional)
+
+If the file named depend exists, Makefile will include that file to
+check dependency. You can make this file by invoking
+
+ % gcc -MM *.c > depend
+
+It's no harm. Prepare it.
+
+(7) put file names into MANIFEST (optional)
+
+ % find * -type f -print > MANIFEST
+ % vi MANIFEST
+
+Append file names into MANIFEST. The compilation scheme requires
+MANIFEST only to be exist. But, you'd better take this step to
+distinguish required files.
+
+(8) generate Makefile
+
+Try generate Makefile by:
+
+ ruby extconf.rb
+
+You don't need this step, if you put extension library under ext
+directory of the ruby source tree. In that case, compilation of the
+interpreter will do this step for you.
+
+(9) make
+
+Type
+
+ make
+
+to compile your extension. You don't need this step neither, if you
+put extension library under ext directory of the ruby source tree.
+
+(9) debug
+
+You may need to rb_debug the extension. The extensions can be linked
+statically by adding directory name in the ext/Setup file, so that you
+can inspect the extension with the debugger.
+
+(10) done, now you have the extension library
+
+You can do anything you want with your library. The author of Ruby
+will not claim any restriction about your code depending Ruby API.
+Feel free to use, modify, distribute or sell your program.
+
+Appendix A. Ruby source files overview
+
+ruby language core
+
+ class.c
+ error.c
+ eval.c
+ gc.c
+ object.c
+ parse.y
+ variable.c
+
+utility functions
+
+ dln.c
+ fnmatch.c
+ glob.c
+ regex.c
+ st.c
+ util.c
+
+ruby interpreter implementation
+
+ dmyext.c
+ inits.c
+ main.c
+ ruby.c
+ version.c
+
+class library
+
+ array.c
+ bignum.c
+ compar.c
+ dir.c
+ enum.c
+ file.c
+ hash.c
+ io.c
+ math.c
+ numeric.c
+ pack.c
+ process.c
+ random.c
+ range.c
+ re.c
+ signal.c
+ sprintf.c
+ string.c
+ struct.c
+ time.c
+
+Appendix B. Ruby extension API reference
+
+** Types
+
+ VALUE
+
+The type for Ruby object. Actual structures are defined in ruby.h,
+such as struct RString, etc. To refer the values in structures, use
+casting macros like RSTRING(obj).
+
+** Variables and constants
+
+ Qnil
+
+const: nil object
+
+ Qtrue
+
+const: true object(default true value)
+
+ Qfalse
+
+const: false object
+
+** C pointer wrapping
+
+ Data_Wrap_Struct(VALUE klass, void (*mark)(), void (*free)(), void *sval)
+
+Wrap C pointer into Ruby object. If object has references to other
+Ruby object, they should be marked by using mark function during GC
+process. Otherwise, mark should be 0. When this object is no longer
+referred by anywhere, the pointer will be discarded by free function.
+
+ Data_Make_Struct(klass, type, mark, free, sval)
+
+This macro allocates memory using malloc(), assigns it to the variable
+sval, and returns the DATA encapsulating the pointer to memory region.
+
+ Data_Get_Struct(data, type, sval)
+
+This macro retrieves the pointer value from DATA, and assigns it to
+the variable sval.
+
+** defining class/module
+
+ VALUE rb_define_class(char *name, VALUE super)
+
+Defines new Ruby class as subclass of super.
+
+ VALUE rb_define_class_under(VALUE module, char *name, VALUE super)
+
+Creates new Ruby class as subclass of super, under the module's
+namespace.
+
+ VALUE rb_define_module(char *name)
+
+Defines new Ruby module.
+
+ VALUE rb_define_module_under(VALUE module, char *name, VALUE super)
+
+Defines new Ruby module, under the module's namespace.
+
+ void rb_include_module(VALUE klass, VALUE module)
+
+Includes module into class. If class already includes it, just
+ignore.
+
+ void rb_extend_object(VALUE object, VALUE module)
+
+Extend the object with module's attribute.
+
+** Defining Global Variables
+
+ void rb_define_variable(char *name, VALUE *var)
+
+Defines a global variable which is shared between C and Ruby. If name
+contains the character which is not allowed to be part of the symbol,
+it can't be seen from Ruby programs.
+
+ void rb_define_readonly_variable(char *name, VALUE *var)
+
+Defines a read-only global variable. Works just like
+rb_define_variable(), except defined variable is read-only.
+
+ void rb_define_virtual_variable(char *name,
+ VALUE (*getter)(), VALUE (*setter)())
+
+Defines a virtual variable, whose behavior is defined by pair of C
+functions. The getter function is called when the variable is
+referred. The setter function is called when the value is set to the
+variable. The prototype for getter/setter functions are:
+
+ VALUE getter(ID id)
+ void setter(VALUE val, ID id)
+
+The getter function must return the value for the access.
+
+ void rb_define_hooked_variable(char *name, VALUE *var,
+ VALUE (*getter)(), VALUE (*setter)())
+
+Defines hooked variable. It's virtual variable with C variable. The
+getter is called as
+
+ VALUE getter(ID id, VALUE *var)
+
+returning new value. The setter is called as
+
+ void setter(VALUE val, ID id, VALUE *var)
+
+GC requires to mark the C global variables which hold Ruby values.
+
+ void rb_global_variable(VALUE *var)
+
+Tells GC to protect these variables.
+
+** Constant Definition
+
+ void rb_define_const(VALUE klass, char *name, VALUE val)
+
+Defines a new constant under the class/module.
+
+ void rb_define_global_const(char *name, VALUE val)
+
+Defines global constant. This is just work as
+
+ rb_define_const(cKernal, name, val)
+
+** Method Definition
+
+ rb_define_method(VALUE klass, char *name, VALUE (*func)(), int argc)
+
+Defines a method for the class. func is the function pointer. argc
+is the number of arguments. if argc is -1, the function will receive
+3 arguments argc, argv, and self. if argc is -2, the function will
+receive 2 arguments, self and args, where args is the Ruby array of
+the method arguments.
+
+ rb_define_private_method(VALUE klass, char *name, VALUE (*func)(), int argc)
+
+Defines a private method for the class. Arguments are same as
+rb_define_method().
+
+ rb_define_singleton_method(VALUE klass, char *name, VALUE (*func)(), int argc)
+
+Defines a singleton method. Arguments are same as rb_define_method().
+
+ rb_scan_args(int argc, VALUE *argv, char *fmt, ...)
+
+Retrieve argument from argc, argv. The fmt is the format string for
+the arguments, such as "12" for 1 non-optional argument, 2 optional
+arguments. If `*' appears at the end of fmt, it means the rest of
+the arguments are assigned to corresponding variable, packed in
+array.
+
+** Invoking Ruby method
+
+ VALUE rb_funcall(VALUE recv, ID mid, int narg, ...)
+
+Invokes the method. To retrieve mid from method name, use rb_intern().
+
+ VALUE rb_funcall2(VALUE recv, ID mid, int argc, VALUE *argv)
+
+Invokes method, passing arguments by array of values.
+
+ VALUE rb_eval_string(char *str)
+
+Compiles and executes the string as Ruby program.
+
+ ID rb_intern(char *name)
+
+Returns ID corresponding the name.
+
+ char *rb_id2name(ID id)
+
+Returns the name corresponding ID.
+
+ char *rb_class2name(VALUE klass)
+
+Returns the name of the class.
+
+ int rb_respond_to(VALUE object, ID id)
+
+Returns true if the object reponds to the message specified by id.
+
+** Instance Variables
+
+ VALUE rb_iv_get(VALUE obj, char *name)
+
+Retrieve the value of the instance variable. If the name is not
+prefixed by `@', that variable shall be inaccessible from Ruby.
+
+ VALUE rb_iv_set(VALUE obj, char *name, VALUE val)
+
+Sets the value of the instance variable.
+
+** Control Structure
+
+ VALUE rb_iterate(VALUE (*func1)(), void *arg1, VALUE (*func2)(), void *arg2)
+
+Calls the function func1, supplying func2 as the block. func1 will be
+called with the argument arg1. func2 receives the value from yield as
+the first argument, arg2 as the second argument.
+
+ VALUE rb_yield(VALUE val)
+
+Evaluates the block with value val.
+
+ VALUE rb_rescue(VALUE (*func1)(), void *arg1, VALUE (*func2)(), void *arg2)
+
+Calls the function func1, with arg1 as the argument. If exception
+occurs during func1, it calls func2 with arg2 as the argument. The
+return value of rb_rescue() is the return value from func1 if no
+exception occurs, from func2 otherwise.
+
+ VALUE rb_ensure(VALUE (*func1)(), void *arg1, void (*func2)(), void *arg2)
+
+Calls the function func1 with arg1 as the argument, then calls func2
+with arg2, whenever execution terminated. The return value from
+rb_ensure() is that of func1.
+
+** Exceptions and Errors
+
+ void rb_warn(char *fmt, ...)
+
+Prints warning message according to the printf-like format.
+
+ void rb_warning(char *fmt, ...)
+
+Prints warning message according to the printf-like format, if
+$VERBOSE is true.
+
+ void rb_raise(VALUE exception, char *fmt, ...)
+
+Raises an exception of class exception. The fmt is the format string
+just like printf().
+
+ void rb_fatal(char *fmt, ...)
+
+Raises fatal error, terminates the interpreter. No exception handling
+will be done for fatal error, but ensure blocks will be executed.
+
+ void rb_bug(char *fmt, ...)
+
+Terminates the interpreter immediately. This function should be
+called under the situation caused by the bug in the interpreter. No
+exception handling nor ensure execution will be done.
+
+** Initialize and Starts the Interpreter
+
+The embedding API are below (not needed for extension libraries):
+
+ void ruby_init()
+
+Initializes the interpreter.
+
+ void ruby_options(int argc, char **argv)
+
+Process command line arguments for the interpreter.
+
+ void ruby_run()
+
+Starts execution of the interpreter.
+
+ void ruby_script(char *name)
+
+Specifies the name of the script ($0).
+
+Appendix B. Functions Available in extconf.rb
+
+These functions are available in extconf.rb:
+
+ have_library(lib, func)
+
+Checks whether library which contains specified function exists.
+Returns true if the library exists.
+
+ have_func(func)
+
+Checks whether func exists. Returns true if the function exists. To
+check functions in the additional library, you need to check that
+library first using have_library().
+
+ have_header(header)
+
+Checks for the header files. Returns true if the header file exists.
+
+ create_makefile(target)
+
+Generates the Makefile for the extension library. If you don't invoke
+this method, the compilation will not be done.
+
+/*
+ * Local variables:
+ * fill-column: 70
+ * end:
+ */
diff --git a/README.EXT.ja b/README.EXT.ja
deleted file mode 100644
index f884ecbb0e..0000000000
--- a/README.EXT.ja
+++ /dev/null
@@ -1 +0,0 @@
-doc/extension.ja.rdocã«ç§»å‹•ã—ã¾ã—ãŸ
diff --git a/README.EXT.jp b/README.EXT.jp
new file mode 100644
index 0000000000..6a049d0222
--- /dev/null
+++ b/README.EXT.jp
@@ -0,0 +1,1176 @@
+.\" README.EXT - -*- Text -*- created at: Mon Aug 7 16:45:54 JST 1995
+
+Ruby¤Î³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤Îºî¤êÊý¤òÀâÌÀ¤·¤Þ¤¹¡¥
+
+1¡¥´ðÁÃÃμ±
+
+C¤ÎÊÑ¿ô¤Ë¤Ï·¿¤¬¤¢¤ê¡¤¥Ç¡¼¥¿¤Ë¤Ï·¿¤¬¤¢¤ê¤Þ¤»¤ó¡¥¤Ç¤¹¤«¤é¡¤¤¿
+¤È¤¨¤Ð¥Ý¥¤¥ó¥¿¤òint¤ÎÊÑ¿ô¤ËÂåÆþ¤¹¤ë¤È¡¤¤½¤ÎÃͤÏÀ°¿ô¤È¤·¤Æ¼è
+¤ê°·¤ï¤ì¤Þ¤¹¡¥µÕ¤ËRuby¤ÎÊÑ¿ô¤Ë¤Ï·¿¤¬¤Ê¤¯¡¤¥Ç¡¼¥¿¤Ë·¿¤¬¤¢¤ê¤Þ
+¤¹¡¥¤³¤Î°ã¤¤¤Î¤¿¤á¡¤C¤ÈRuby¤ÏÁê¸ß¤ËÊÑ´¹¤·¤Ê¤±¤ì¤Ð¡¤¤ª¸ß¤¤¤Î
+¥Ç¡¼¥¿¤ò¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤»¤ó¡¥
+
+Ruby¤Î¥Ç¡¼¥¿¤ÏVALUE¤È¤¤¤¦C¤Î·¿¤Çɽ¸½¤µ¤ì¤Þ¤¹¡¥VALUE·¿¤Î¥Ç¡¼
+¥¿¤Ï¤½¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤ò¼«Ê¬¤ÇÃΤäƤ¤¤Þ¤¹¡¥¤³¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤È
+¤¤¤¦¤Î¤Ï¥Ç¡¼¥¿(¥ª¥Ö¥¸¥§¥¯¥È)¤Î¼ÂºÝ¤Î¹½Â¤¤ò°ÕÌ£¤·¤Æ¤¤¤Æ¡¤Ruby
+¤Î¥¯¥é¥¹¤È¤Ï¤Þ¤¿°ã¤Ã¤¿¤â¤Î¤Ç¤¹¡¥
+
+VALUE¤«¤éC¤Ë¤È¤Ã¤Æ°ÕÌ£¤Î¤¢¤ë¥Ç¡¼¥¿¤ò¼è¤ê½Ð¤¹¤¿¤á¤Ë¤Ï
+
+ (1) VALUE¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤òÃΤë
+ (2) VALUE¤òC¤Î¥Ç¡¼¥¿¤ËÊÑ´¹¤¹¤ë
+
+¤ÎξÊý¤¬É¬ÍפǤ¹¡¥(1)¤ò˺¤ì¤ë¤È´Ö°ã¤Ã¤¿¥Ç¡¼¥¿¤ÎÊÑ´¹¤¬¹Ô¤ï¤ì
+¤Æ¡¤ºÇ°­¥×¥í¥°¥é¥à¤¬core dump¤·¤Þ¤¹¡¥
+
+1.1 ¥Ç¡¼¥¿¥¿¥¤¥×
+
+Ruby¤Ë¤Ï¥æ¡¼¥¶¤¬»È¤¦²ÄǽÀ­¤Î¤¢¤ë°Ê²¼¤Î¥¿¥¤¥×¤¬¤¢¤ê¤Þ¤¹¡¥
+
+ T_NIL nil
+ T_OBJECT Ä̾ï¤Î¥ª¥Ö¥¸¥§¥¯¥È
+ T_CLASS ¥¯¥é¥¹
+ T_MODULE ¥â¥¸¥å¡¼¥ë
+ T_FLOAT ÉâÆ°¾®¿ôÅÀ¿ô
+ T_STRING ʸ»úÎó
+ T_REGEXP Àµµ¬É½¸½
+ T_ARRAY ÇÛÎó
+ T_FIXNUM Fixnum(31bitĹÀ°¿ô)
+ T_HASH Ï¢ÁÛÇÛÎó
+ T_STRUCT (Ruby¤Î)¹½Â¤ÂÎ
+ T_BIGNUM ¿ÇÜĹÀ°¿ô
+ T_FILE Æþ½ÐÎÏ
+ T_TRUE ¿¿
+ T_FALSE µ¶
+ T_DATA ¥Ç¡¼¥¿
+
+¤½¤Î¾¤ËÆâÉô¤ÇÍøÍѤµ¤ì¤Æ¤¤¤ë°Ê²¼¤Î¥¿¥¤¥×¤¬¤¢¤ê¤Þ¤¹¡¥
+
+ T_ICLASS
+ T_MATCH
+ T_VARMAP
+ T_SCOPE
+ T_NODE
+
+¤Û¤È¤ó¤É¤Î¥¿¥¤¥×¤ÏC¤Î¹½Â¤ÂΤǼÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥
+
+1.2 VALUE¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤ò¥Á¥§¥Ã¥¯¤¹¤ë
+
+ruby.h¤Ç¤ÏTYPE()¤È¤¤¤¦¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Æ¡¤VALUE¤Î¥Ç¡¼¥¿
+¥¿¥¤¥×¤òÃΤ뤳¤È¤¬½ÐÍè¤Þ¤¹¡¥TYPE()¥Þ¥¯¥í¤Ï¾å¤Ç¾Ò²ð¤·¤¿T_XXXX
+¤Î·Á¼°¤ÎÄê¿ô¤òÊÖ¤·¤Þ¤¹¡¥VALUE¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤Ë±þ¤¸¤Æ½èÍý¤¹¤ë
+¾ì¹ç¤Ë¤Ï¡¤TYPE()¤ÎÃͤÇʬ´ô¤¹¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡¥
+
+ switch (TYPE(obj)) {
+ case T_FIXNUM:
+ /* FIXNUM¤Î½èÍý */
+ break;
+ case T_STRING:
+ /* ʸ»úÎó¤Î½èÍý */
+ break;
+ case T_ARRAY:
+ /* ÇÛÎó¤Î½èÍý */
+ break;
+ default:
+ /* Îã³°¤òȯÀ¸¤µ¤»¤ë */
+ TypeError("not valid value");
+ break;
+ }
+
+¤½¤ì¤È¥Ç¡¼¥¿¥¿¥¤¥×¤ò¥Á¥§¥Ã¥¯¤·¤Æ¡¤Àµ¤·¤¯¤Ê¤±¤ì¤ÐÎã³°¤òȯÀ¸¤¹
+¤ë´Ø¿ô¤¬ÍѰդµ¤ì¤Æ¤¤¤Þ¤¹¡¥
+
+ void Check_Type(VALUE value, int type)
+
+¤³¤Î´Ø¿ô¤Ïvalue¤¬type¤Ç̵¤±¤ì¤Ð¡¤Îã³°¤òȯÀ¸¤µ¤»¤Þ¤¹¡¥°ú¿ô¤È
+¤·¤ÆÍ¿¤¨¤é¤ì¤¿VALUE¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤¬Àµ¤·¤¤¤«¤É¤¦¤«¥Á¥§¥Ã¥¯¤¹
+¤ë¤¿¤á¤Ë¤Ï¡¤¤³¤Î´Ø¿ô¤ò»È¤¤¤Þ¤¹¡¥
+
+FIXNUM¤ÈNIL¤Ë´Ø¤·¤Æ¤Ï¤è¤ê¹â®¤ÊȽÊÌ¥Þ¥¯¥í¤¬ÍѰդµ¤ì¤Æ¤¤¤Þ¤¹¡¥
+
+ FIXNUM_P(obj)
+ NIL_P(obj)
+
+1.3 VALUE¤òC¤Î¥Ç¡¼¥¿¤ËÊÑ´¹¤¹¤ë
+
+¥Ç¡¼¥¿¥¿¥¤¥×¤¬T_NIL, T_FALSE, T_TRUE¤Ç¤¢¤ë»þ¡¤¥Ç¡¼¥¿¤Ï¤½¤ì¤¾
+¤ìnil, false, true¤Ç¤¹¡¥¤³¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ï¤Ò¤È
+¤Ä¤º¤Ä¤·¤«Â¸ºß¤·¤Þ¤»¤ó¡¥
+
+¥Ç¡¼¥¿¥¿¥¤¥×¤¬T_FIXNUM¤Î»þ¡¤¤³¤ì¤Ï31bit¤Î¥µ¥¤¥º¤ò»ý¤ÄÀ°¿ô¤Ç
+¤¹¡¥FIXNUM¤òC¤ÎÀ°¿ô¤ËÊÑ´¹¤¹¤ë¤¿¤á¤Ë¤Ï¥Þ¥¯¥í¡ÖFIX2INT()¡×¤ò»È
+¤¤¤Þ¤¹¡¥¤½¤ì¤«¤é¡¤FIXNUM¤Ë¸Â¤é¤ºRuby¤Î¥Ç¡¼¥¿¤òÀ°¿ô¤ËÊÑ´¹¤¹¤ë
+¡ÖNUM2INT()¡×¤È¤¤¤¦¥Þ¥¯¥í¤¬¤¢¤ê¤Þ¤¹¡¥¤³¤Î¥Þ¥¯¥í¤Ï¥Ç¡¼¥¿¥¿¥¤
+¥×¤Î¥Á¥§¥Ã¥¯Ìµ¤·¤Ç»È¤¨¤Þ¤¹(À°¿ô¤ËÊÑ´¹¤Ç¤­¤Ê¤¤¾ì¹ç¤Ë¤ÏÎã³°¤¬
+ȯÀ¸¤¹¤ë)¡¥
+
+ƱÍͤ˥Á¥§¥Ã¥¯Ìµ¤·¤Ç»È¤¨¤ëÊÑ´¹¥Þ¥¯¥í¤Ïdouble¤ò¼è¤ê½Ð¤¹
+¡ÖNUM2DBL()¡×¤Èchar*¤ò¼è¤ê½Ð¤¹¡ÖSTR2CSTR()¡×¤¬¤¢¤ê¤Þ¤¹¡¥
+
+¤½¤ì°Ê³°¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤ÏÂбþ¤¹¤ëC¤Î¹½Â¤ÂΤ¬¤¢¤ê¤Þ¤¹¡¥Âбþ¤¹
+¤ë¹½Â¤ÂΤΤ¢¤ëVALUE¤Ï¤½¤Î¤Þ¤Þ¥­¥ã¥¹¥È(·¿ÊÑ´¹)¤¹¤ì¤Ð¹½Â¤ÂΤÎ
+¥Ý¥¤¥ó¥¿¤ËÊÑ´¹¤Ç¤­¤Þ¤¹¡¥
+
+¹½Â¤ÂΤϡÖstruct RXxxxx¡×¤È¤¤¤¦Ì¾Á°¤Çruby.h¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ
+¤¹¡¥Î㤨¤Ðʸ»úÎó¤Ï¡Östruct RString¡×¤Ç¤¹¡¥¼ÂºÝ¤Ë»È¤¦²ÄǽÀ­¤¬
+¤¢¤ë¤Î¤Ïʸ»úÎó¤ÈÇÛÎ󤯤餤¤À¤È»×¤¤¤Þ¤¹¡¥
+
+ruby.h¤Ç¤Ï¹½Â¤ÂΤإ­¥ã¥¹¥È¤¹¤ë¥Þ¥¯¥í¤â¡ÖRXXXXX()¡×(Á´ÉôÂçʸ
+»ú¤Ë¤·¤¿¤â¤Î)¤È¤¤¤¦Ì¾Á°¤ÇÄ󶡤µ¤ì¤Æ¤¤¤Þ¤¹(Îã: RSTRING())¡¥
+
+Î㤨¤Ð¡¤Ê¸»úÎóstr¤ÎŤµ¤òÆÀ¤ë¤¿¤á¤Ë¤Ï¡ÖRSTRING(str)->len¡×¤È
+¤·¡¤Ê¸»úÎóstr¤òchar*¤È¤·¤ÆÆÀ¤ë¤¿¤á¤Ë¤Ï¡ÖRSTRING(str)->ptr¡×
+¤È¤·¤Þ¤¹¡¥ÇÛÎó¤Î¾ì¹ç¤Ë¤Ï¡¤¤½¤ì¤¾¤ì¡ÖRARRAY(ary)->len¡×¡¤
+¡ÖRARRAY(ary)->ptr¡×¤È¤Ê¤ê¤Þ¤¹¡¥
+
+Ruby¤Î¹½Â¤ÂΤòľÀÜ¥¢¥¯¥»¥¹¤¹¤ë»þ¤Ëµ¤¤ò¤Ä¤±¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³
+¤È¤Ï¡¤ÇÛÎó¤äʸ»úÎó¤Î¹½Â¤ÂΤÎÃæ¿È¤Ï»²¾È¤¹¤ë¤À¤±¤Ç¡¤Ä¾ÀÜÊѹ¹¤·
+¤Ê¤¤¤³¤È¤Ç¤¹¡¥Ä¾ÀÜÊѹ¹¤·¤¿¾ì¹ç¡¤¥ª¥Ö¥¸¥§¥¯¥È¤ÎÆâÍÆ¤ÎÀ°¹çÀ­¤¬
+¤È¤ì¤Ê¤¯¤Ê¤Ã¤Æ¡¤»×¤ï¤Ì¥Ð¥°¤Î¸¶°ø¤Ë¤Ê¤ê¤Þ¤¹¡¥
+
+1.4 C¤Î¥Ç¡¼¥¿¤òVALUE¤ËÊÑ´¹¤¹¤ë
+
+VALUE¤Î¼ÂºÝ¤Î¹½Â¤¤Ï
+
+ * FIXNUM¤Î¾ì¹ç
+
+ 1bitº¸¥·¥Õ¥È¤·¤Æ¡¤LSB¤òΩ¤Æ¤ë¡¥
+
+ * ¤½¤Î¾¤Î¥Ý¥¤¥ó¥¿¤Î¾ì¹ç
+
+ ¤½¤Î¤Þ¤ÞVALUE¤Ë¥­¥ã¥¹¥È¤¹¤ë¡¥
+
+¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡¥¤è¤Ã¤Æ¡¤LSB¤ò¥Á¥§¥Ã¥¯¤¹¤ì¤ÐVALUE¤¬FIXNUM¤«¤É
+¤¦¤«¤ï¤«¤ë¤ï¤±¤Ç¤¹(¥Ý¥¤¥ó¥¿¤ÎLSB¤¬Î©¤Ã¤Æ¤¤¤Ê¤¤¤³¤È¤ò²¾Äꤷ¤Æ
+¤¤¤ë)¡¥
+
+¤Ç¤¹¤«¤é¡¤FIXNUM°Ê³°¤ÎRuby¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Î¹½Â¤ÂΤÏñ¤ËVALUE
+¤Ë¥­¥ã¥¹¥È¤¹¤ë¤À¤±¤ÇVALUE¤ËÊÑ´¹½ÐÍè¤Þ¤¹¡¥¤¿¤À¤·¡¤Ç¤°Õ¤Î¹½Â¤
+ÂΤ¬VALUE¤Ë¥­¥ã¥¹¥È½ÐÍè¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡¥¥­¥ã¥¹¥È¤¹¤ë¤Î
+¤ÏRuby¤ÎÃΤäƤ¤¤ë¹½Â¤ÂÎ(ruby.h¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëstruct RXxxx
+¤Î¤â¤Î)¤À¤±¤Ç¤¹¡¥
+
+FIXNUM¤Ë´Ø¤·¤Æ¤ÏÊÑ´¹¥Þ¥¯¥í¤ò·Ðͳ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥C¤ÎÀ°¿ô
+¤«¤éVALUE¤ËÊÑ´¹¤¹¤ë¥Þ¥¯¥í¤Ï°Ê²¼¤Î¤â¤Î¤¬¤¢¤ê¤Þ¤¹¡¥É¬Íפ˱þ¤¸
+¤Æ»È¤¤Ê¬¤±¤Æ¤¯¤À¤µ¤¤¡¥
+
+ INT2FIX() ¤â¤È¤ÎÀ°¿ô¤¬31bit°ÊÆâ¤Ë¼ý¤Þ¤ë¼«¿®¤¬¤¢¤ë»þ
+ INT2NUM() Ǥ°Õ¤ÎÀ°¿ô¤«¤éVALUE¤Ø
+
+INT2NUM()¤ÏÀ°¿ô¤¬FIXNUM¤ÎÈϰϤ˼ý¤Þ¤é¤Ê¤¤¾ì¹ç¡¤Bignum¤ËÊÑ´¹
+¤·¤Æ¤¯¤ì¤Þ¤¹(¤¬¡¤¾¯¤·ÃÙ¤¤)¡¥
+
+1.5 Ruby¤Î¥Ç¡¼¥¿¤òÁàºî¤¹¤ë
+
+ÀèÄø¤â½Ò¤Ù¤¿Ä̤ꡤRuby¤Î¹½Â¤ÂΤò¥¢¥¯¥»¥¹¤¹¤ë»þ¤ËÆâÍÆ¤Î¹¹¿·¤ò
+¹Ô¤¦¤³¤È¤Ï´«¤á¤é¤ì¤Þ¤»¤ó¡¥¤Ç¡¤Ruby¤Î¥Ç¡¼¥¿¤òÁàºî¤¹¤ë»þ¤Ë¤Ï
+Ruby¤¬ÍѰդ·¤Æ¤¤¤ë´Ø¿ô¤òÍѤ¤¤Æ¤¯¤À¤µ¤¤¡¥
+
+¤³¤³¤Ç¤Ï¤â¤Ã¤È¤â»È¤ï¤ì¤ë¤Ç¤¢¤í¤¦Ê¸»úÎó¤ÈÇÛÎó¤ÎÀ¸À®/Áàºî¤ò¹Ô
+¤¤´Ø¿ô¤ò¤¢¤²¤Þ¤¹(Á´Éô¤Ç¤Ï¤Ê¤¤¤Ç¤¹)¡¥
+
+ ʸ»úÎó¤ËÂФ¹¤ë´Ø¿ô
+
+ rb_str_new(char *ptr, int len)
+
+ ¿·¤·¤¤Ruby¤Îʸ»úÎó¤òÀ¸À®¤¹¤ë¡¥
+
+ rb_str_new2(char *ptr)
+
+ C¤Îʸ»úÎ󤫤éRuby¤Îʸ»úÎó¤òÀ¸À®¤¹¤ë¡¥¤³¤Î´Ø¿ô¤Îµ¡Ç½¤Ï
+ rb_str_new(ptr, strlen(ptr))¤ÈƱÅù¤Ç¤¢¤ë¡¥
+
+ rb_str_cat(VALUE str, char *ptr, int len)
+
+ Ruby¤Îʸ»úÎóstr¤Ëlen¥Ð¥¤¥È¤Îʸ»úÎóptr¤òÄɲ乤롥
+
+ ÇÛÎó¤ËÂФ¹¤ë´Ø¿ô
+
+ rb_ary_new()
+
+ Í×ÁǤ¬0¤ÎÇÛÎó¤òÀ¸À®¤¹¤ë¡¥
+
+ rb_ary_new2(int len)
+
+ Í×ÁǤ¬0¤ÎÇÛÎó¤òÀ¸À®¤¹¤ë¡¥lenÍ×ÁÇʬ¤ÎÎΰè¤ò¤¢¤é¤«¤¸¤á³ä¤ê
+ Åö¤Æ¤Æ¤ª¤¯¡¥
+
+ rb_ary_new3(int n, ...)
+
+ °ú¿ô¤Ç»ØÄꤷ¤¿nÍ×ÁǤò´Þ¤àÇÛÎó¤òÀ¸À®¤¹¤ë¡¥
+
+ rb_ary_new4(int n, VALUE *elts)
+
+ ÇÛÎó¤ÇÍ¿¤¨¤¿nÍ×ÁǤÎÇÛÎó¤òÀ¸À®¤¹¤ë¡¥
+
+ rb_ary_push(VALUE ary, VALUE val)
+ rb_ary_pop(VALUE ary)
+ rb_ary_shift(VALUE ary)
+ rb_ary_unshift(VALUE ary, VALUE val)
+ rb_ary_entry(VALUE ary, int idx)
+
+ Array¤ÎƱ̾¤Î¥á¥½¥Ã¥É¤ÈƱ¤¸Æ¯¤­¤ò¤¹¤ë´Ø¿ô¡¥Âè1°ú¿ô¤Ïɬ¤º
+ ÇÛÎó¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡¥
+
+2¡¥Ruby¤Îµ¡Ç½¤ò»È¤¦
+
+¸¶ÍýŪ¤ËRuby¤Ç½ñ¤±¤ë¤³¤È¤ÏC¤Ç¤â½ñ¤±¤Þ¤¹¡¥Ruby¤½¤Î¤â¤Î¤¬C¤Çµ­
+½Ò¤µ¤ì¤Æ¤¤¤ë¤ó¤Ç¤¹¤«¤é¡¤ÅöÁ³¤È¤¤¤¨¤ÐÅöÁ³¤Ê¤ó¤Ç¤¹¤±¤É¡¥¤³¤³¤Ç
+¤ÏRuby¤Î³ÈÄ¥¤Ë»È¤¦¤³¤È¤¬Â¿¤¤¤À¤í¤¦¤Èͽ¬¤µ¤ì¤ëµ¡Ç½¤òÃæ¿´¤Ë¾Ò
+²ð¤·¤Þ¤¹¡¥
+
+2.1 Ruby¤Ëµ¡Ç½¤òÄɲ乤ë
+
+Ruby¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë´Ø¿ô¤ò»È¤¨¤ÐRuby¥¤¥ó¥¿¥×¥ê¥¿¤Ë¿·¤·¤¤µ¡Ç½
+¤òÄɲ乤뤳¤È¤¬¤Ç¤­¤Þ¤¹¡¥Ruby¤Ç¤Ï°Ê²¼¤Îµ¡Ç½¤òÄɲä¹¤ë´Ø¿ô¤¬
+Ä󶡤µ¤ì¤Æ¤¤¤Þ¤¹¡¥
+
+ * ¥¯¥é¥¹¡¤¥â¥¸¥å¡¼¥ë
+ * ¥á¥½¥Ã¥É¡¤ÆÃ°Û¥á¥½¥Ã¥É¤Ê¤É
+ * Äê¿ô
+
+¤Ç¤Ï½ç¤Ë¾Ò²ð¤·¤Þ¤¹¡¥
+
+2.1.1 ¥¯¥é¥¹/¥â¥¸¥å¡¼¥ëÄêµÁ
+
+¥¯¥é¥¹¤ä¥â¥¸¥å¡¼¥ë¤òÄêµÁ¤¹¤ë¤¿¤á¤Ë¤Ï¡¤°Ê²¼¤Î´Ø¿ô¤ò»È¤¤¤Þ¤¹¡¥
+
+ VALUE rb_define_class(char *name, VALUE super)
+ VALUE rb_define_module(char *name)
+
+¤³¤ì¤é¤Î´Ø¿ô¤Ï¿·¤·¤¯ÄêµÁ¤µ¤ì¤¿¥¯¥é¥¹¤ä¥â¥¸¥å¡¼¥ë¤òÊÖ¤·¤Þ¤¹¡¥
+¥á¥½¥Ã¥É¤äÄê¿ô¤ÎÄêµÁ¤Ë¤³¤ì¤é¤ÎÃͤ¬É¬ÍפʤΤǡ¤¤Û¤È¤ó¤É¤Î¾ì¹ç
+¤ÏÌá¤êÃͤòÊÑ¿ô¤Ë³ÊǼ¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë¤Ç¤·¤ç¤¦¡¥
+
+¥¯¥é¥¹¤ä¥â¥¸¥å¡¼¥ë¤ò¾¤Î¥¯¥é¥¹¤ÎÆâÉô¤Ë¥Í¥¹¥È¤·¤ÆÄêµÁ¤¹¤ë»þ¤Ë
+¤Ï°Ê²¼¤Î´Ø¿ô¤ò»È¤¤¤Þ¤¹¡¥
+
+ VALUE rb_define_class_under(VALUE outer, char *name, VALUE super)
+ VALUE rb_define_module_under(VALUE outer, char *name)
+
+2.1.2 ¥á¥½¥Ã¥É/ÆÃ°Û¥á¥½¥Ã¥ÉÄêµÁ
+
+¥á¥½¥Ã¥É¤äÆÃ°Û¥á¥½¥Ã¥É¤òÄêµÁ¤¹¤ë¤Ë¤Ï°Ê²¼¤Î´Ø¿ô¤ò»È¤¤¤Þ¤¹¡¥
+
+ void rb_define_method(VALUE class, char *name,
+ VALUE (*func)(), int argc)
+
+ void rb_define_singleton_method(VALUE object, char *name,
+ VALUE (*func)(), int argc)
+
+
+ǰ¤Î¤¿¤áÀâÌÀ¤¹¤ë¤È¡ÖÆÃ°Û¥á¥½¥Ã¥É¡×¤È¤Ï¡¤¤½¤ÎÆÃÄê¤Î¥ª¥Ö¥¸¥§¥¯
+¥È¤ËÂФ·¤Æ¤À¤±Í­¸ú¤Ê¥á¥½¥Ã¥É¤Ç¤¹¡¥Ruby¤Ç¤Ï¤è¤¯Smalltalk¤Ë¤ª
+¤±¤ë¥¯¥é¥¹¥á¥½¥Ã¥É¤È¤·¤Æ¡¤¥¯¥é¥¹¤ËÂФ¹¤ëÆÃ°Û¥á¥½¥Ã¥É¤¬»È¤ï¤ì
+¤Þ¤¹¡¥
+
+¤³¤ì¤é¤Î´Ø¿ô¤Î argc¤È¤¤¤¦°ú¿ô¤ÏC¤Î´Ø¿ô¤ØÅϤµ¤ì¤ë°ú¿ô¤Î¿ô(¤È
+·Á¼°)¤ò·è¤á¤Þ¤¹¡¥argc¤¬0°Ê¾å¤Î»þ¤Ï´Ø¿ô¤Ë°ú¤­ÅϤ¹°ú¿ô¤Î¿ô¤ò°Õ
+Ì£¤·¤Þ¤¹¡¥16¸Ä°Ê¾å¤Î°ú¿ô¤Ï»È¤¨¤Þ¤»¤ó(¤¬¡¤Íפê¤Þ¤»¤ó¤è¤Í¡¤¤½
+¤ó¤Ê¤Ë)¡¥¼ÂºÝ¤Î´Ø¿ô¤Ë¤ÏÀèÆ¬¤Î°ú¿ô¤È¤·¤Æself¤¬Í¿¤¨¤é¤ì¤Þ¤¹¤Î
+¤Ç¡¤»ØÄꤷ¤¿¿ô¤è¤ê1¿¤¤°ú¿ô¤ò»ý¤Ä¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡¥
+
+argc¤¬Éé¤Î»þ¤Ï°ú¿ô¤Î¿ô¤Ç¤Ï¤Ê¤¯¡¤·Á¼°¤ò»ØÄꤷ¤¿¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡¥
+argc¤¬-1¤Î»þ¤Ï°ú¿ô¤òÇÛÎó¤ËÆþ¤ì¤ÆÅϤµ¤ì¤Þ¤¹¡¥argc¤¬-2¤Î»þ¤Ï°ú
+¿ô¤ÏRuby¤ÎÇÛÎó¤È¤·¤ÆÅϤµ¤ì¤Þ¤¹¡¥
+
+¥á¥½¥Ã¥É¤òÄêµÁ¤¹¤ë´Ø¿ô¤Ï¤â¤¦Æó¤Ä¤¢¤ê¤Þ¤¹¡¥¤Ò¤È¤Ä¤Ïprivate¥á
+¥½¥Ã¥É¤òÄêµÁ¤¹¤ë´Ø¿ô¤Ç¡¤°ú¿ô¤Ïrb_define_method()¤ÈƱ¤¸¤Ç¤¹¡¥
+
+ void rb_define_private_method(VALUE class, char *name,
+ VALUE (*func)(), int argc)
+
+private¥á¥½¥Ã¥É¤È¤Ï´Ø¿ô·Á¼°¤Ç¤·¤«¸Æ¤Ó½Ð¤¹¤³¤È¤Î½ÐÍè¤Ê¤¤¥á¥½¥Ã
+¥É¤Ç¤¹¡¥
+
+¤â¤¦¤Ò¤È¤Ä¤Ï¥â¥¸¥å¡¼¥ë´Ø¿ô¤òÄêµÁ¤¹¤ë¤â¤Î¤Ç¤¹¡¥¥â¥¸¥å¡¼¥ë´Ø¿ô
+¤È¤Ï¥â¥¸¥å¡¼¥ë¤ÎÆÃ°Û¥á¥½¥Ã¥É¤Ç¤¢¤ê¡¤Æ±»þ¤Ëprivate¥á¥½¥Ã¥É¤Ç
+¤â¤¢¤ë¤â¤Î¤Ç¤¹¡¥Îã¤ò¤¢¤²¤ë¤ÈMath¥â¥¸¥å¡¼¥ë¤Îsqrt()¤Ê¤É¤¬¤¢¤²
+¤é¤ì¤Þ¤¹¡¥¤³¤Î¥á¥½¥Ã¥É¤Ï
+
+ Math.sqrt(4)
+
+¤È¤¤¤¦·Á¼°¤Ç¤â
+
+ include Math
+ sqrt(4)
+
+¤È¤¤¤¦·Á¼°¤Ç¤â»È¤¨¤Þ¤¹¡¥¥â¥¸¥å¡¼¥ë´Ø¿ô¤òÄêµÁ¤¹¤ë´Ø¿ô¤Ï°Ê²¼¤Î
+Ä̤ê¤Ç¤¹¡¥
+
+ void rb_define_module_function(VALUE module, char *name,
+ VALUE (*func)(), int argc)
+
+´Ø¿ôŪ¥á¥½¥Ã¥É(Kernel¥â¥¸¥å¡¼¥ë¤Îprivate method)¤òÄêµÁ¤¹¤ë¤¿
+¤á¤Î´Ø¿ô¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡¥
+
+ void rb_define_global_function(char *name, VALUE (*func)(), int argc)
+
+
+2.1.3 Äê¿ôÄêµÁ
+
+³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤¬É¬ÍפÊÄê¿ô¤Ï¤¢¤é¤«¤¸¤áÄêµÁ¤·¤Æ¤ª¤¤¤¿Êý¤¬Îɤ¤
+¤Ç¤·¤ç¤¦¡¥Äê¿ô¤òÄêµÁ¤¹¤ë´Ø¿ô¤ÏÆó¤Ä¤¢¤ê¤Þ¤¹¡¥
+
+ void rb_define_const(VALUE class, char *name, VALUE val)
+ void rb_define_global_const(char *name, VALUE val)
+
+Á°¼Ô¤ÏÆÃÄê¤Î¥¯¥é¥¹/¥â¥¸¥å¡¼¥ë¤Ë°¤¹¤ëÄê¿ô¤òÄêµÁ¤¹¤ë¤â¤Î¡¤¸å
+¼Ô¤Ï¥°¥í¡¼¥Ð¥ë¤ÊÄê¿ô¤òÄêµÁ¤¹¤ë¤â¤Î¤Ç¤¹¡¥
+
+2.2 Ruby¤Îµ¡Ç½¤òC¤«¤é¸Æ¤Ó½Ð¤¹
+
+´û¤Ë¡Ø1.5 Ruby¤Î¥Ç¡¼¥¿¤òÁàºî¤¹¤ë¡Ù¤Ç°ìÉô¾Ò²ð¤·¤¿¤è¤¦¤Ê´Ø¿ô¤ò
+»È¤¨¤Ð¡¤Ruby¤Îµ¡Ç½¤ò¼Â¸½¤·¤Æ¤¤¤ë´Ø¿ô¤òľÀܸƤӽФ¹¤³¤È¤¬½ÐÍè
+¤Þ¤¹¡¥
+
+# ¤³¤Î¤è¤¦¤Ê´Ø¿ô¤Î°ìÍ÷ɽ¤Ï¤¤¤Þ¤Î¤È¤³¤í¤¢¤ê¤Þ¤»¤ó¡¥¥½¡¼¥¹¤ò¸«
+# ¤ë¤·¤«¤Ê¤¤¤Ç¤¹¤Í¡¥
+
+¤½¤ì°Ê³°¤Ë¤âRuby¤Îµ¡Ç½¤ò¸Æ¤Ó½Ð¤¹ÊýË¡¤Ï¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤¹¡¥
+
+2.2.1 Ruby¤Î¥×¥í¥°¥é¥à¤òeval¤¹¤ë
+
+C¤«¤éRuby¤Îµ¡Ç½¤ò¸Æ¤Ó½Ð¤¹¤â¤Ã¤È¤â´Êñ¤ÊÊýË¡¤È¤·¤Æ¡¤Ê¸»úÎó¤Ç
+Í¿¤¨¤é¤ì¤¿Ruby¤Î¥×¥í¥°¥é¥à¤òɾ²Á¤¹¤ë°Ê²¼¤Î´Ø¿ô¤¬¤¢¤ê¤Þ¤¹¡¥
+
+ VALUE rb_eval_string(char *str)
+
+¤³¤Îɾ²Á¤Ï¸½ºß¤Î´Ä¶­¤Ç¹Ô¤ï¤ì¤Þ¤¹¡¥¤Ä¤Þ¤ê¡¤¸½ºß¤Î¥í¡¼¥«¥ëÊÑ¿ô
+¤Ê¤É¤ò¼õ¤±·Ñ¤®¤Þ¤¹¡¥
+
+2.2.2 ID¤Þ¤¿¤Ï¥·¥ó¥Ü¥ë
+
+C¤«¤éʸ»úÎó¤ò·Ðͳ¤»¤º¤ËRuby¤Î¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤â¤Ç¤­¤Þ
+¤¹¡¥¤½¤ÎÁ°¤Ë¡¤Ruby¥¤¥ó¥¿¥×¥ê¥¿Æâ¤Ç¥á¥½¥Ã¥É¤äÊÑ¿ô̾¤ò»ØÄꤹ¤ë
+»þ¤Ë»È¤ï¤ì¤Æ¤¤¤ëID¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤ª¤­¤Þ¤·¤ç¤¦¡¥
+
+ID¤È¤ÏÊÑ¿ô̾¡¤¥á¥½¥Ã¥É̾¤òɽ¤¹À°¿ô¤Ç¤¹¡¥Ruby¤ÎÃæ¤Ç¤Ï
+
+ :¼±ÊÌ»Ò
+
+¤Ç¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤¹¡¥C¤«¤é¤³¤ÎÀ°¿ô¤òÆÀ¤ë¤¿¤á¤Ë¤Ï´Ø¿ô
+
+ rb_intern(char *name)
+
+¤ò»È¤¤¤Þ¤¹¡¥¤Þ¤¿°ìʸ»ú¤Î±é»»»Ò¤Ï¤½¤Îʸ»ú¥³¡¼¥É¤¬¤½¤Î¤Þ¤Þ¥·¥ó
+¥Ü¥ë¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡¥Ruby¤«¤é°ú¿ô¤È¤·¤ÆÍ¿¤¨¤é¤ì¤¿¥·¥ó¥Ü¥ë(¤Þ
+¤¿¤Ïʸ»úÎó)¤òID¤ËÊÑ´¹¤¹¤ë¤Ë¤Ï°Ê²¼¤Î´Ø¿ô¤ò»È¤¤¤Þ¤¹¡¥
+
+ rb_to_id(VALUE symbol)
+
+2.2.3 C¤«¤éRuby¤Î¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤¹
+
+C¤«¤éʸ»úÎó¤ò·Ðͳ¤»¤º¤ËRuby¤Î¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤¹¤¿¤á¤Ë¤Ï°Ê²¼
+¤Î´Ø¿ô¤ò»È¤¤¤Þ¤¹¡¥
+
+ VALUE rb_funcall(VALUE recv, ID mid, int argc, ...)
+
+¤³¤Î´Ø¿ô¤Ï¥ª¥Ö¥¸¥§¥¯¥Èrecv¤Îmid¤Ç»ØÄꤵ¤ì¤ë¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð
+¤·¤Þ¤¹¡¥¤½¤Î¾¤Ë°ú¿ô¤Î»ØÄê¤Î»ÅÊý¤¬°ã¤¦°Ê²¼¤Î´Ø¿ô¤â¤¢¤ê¤Þ¤¹¡¥
+
+ VALUE rb_funcall2(VALUE recv, ID mid, int argc, VALUE *argv)
+ VALUE rb_apply(VALUE recv, ID mid, VALUE args)
+
+apply¤Ë¤Ï°ú¿ô¤È¤·¤ÆRuby¤ÎÇÛÎó¤òÍ¿¤¨¤Þ¤¹¡¥
+
+2.2.4 ÊÑ¿ô/Äê¿ô¤ò»²¾È/¹¹¿·¤¹¤ë
+
+C¤«¤é´Ø¿ô¤ò»È¤Ã¤Æ»²¾È¡¦¹¹¿·¤Ç¤­¤ë¤Î¤Ï¡¤Äê¿ô¡¤¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ
+¿ô¤Ç¤¹¡¥Âç°èÊÑ¿ô¤Ï°ìÉô¤Î¤â¤Î¤ÏC¤ÎÂç°èÊÑ¿ô¤È¤·¤Æ¥¢¥¯¥»¥¹¤Ç¤­
+¤Þ¤¹¡¥¥í¡¼¥«¥ëÊÑ¿ô¤ò»²¾È¤¹¤ëÊýË¡¤Ï¸ø³«¤·¤Æ¤¤¤Þ¤»¤ó¡¥
+
+¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô¤ò»²¾È¡¦¹¹¿·¤¹¤ë´Ø¿ô¤Ï°Ê²¼¤ÎÄÌ
+¤ê¤Ç¤¹¡¥
+
+ VALUE rb_ivar_get(VALUE obj, ID id)
+ VALUE rb_ivar_set(VALUE obj, ID id, VALUE val)
+
+id¤Ïrb_intern()¤ÇÆÀ¤é¤ì¤ë¤â¤Î¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤¡¥
+
+Äê¿ô¤ò»²¾È¤¹¤ë¤Ë¤Ï°Ê²¼¤Î´Ø¿ô¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤¡¥
+
+ VALUE rb_const_get(VALUE obj, ID id)
+
+Äê¿ô¤ò¿·¤·¤¯ÄêµÁ¤¹¤ë¤¿¤á¤Ë¤Ï¡Ø2.1.3 Äê¿ôÄêµÁ¡Ù¤Ç¾Ò²ð¤µ
+¤ì¤Æ¤¤¤ë´Ø¿ô¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤¡¥
+
+3¡¥Ruby¤ÈC¤È¤Î¾ðÊó¶¦Í­
+
+C¸À¸ì¤ÈRuby¤Î´Ö¤Ç¾ðÊó¤ò¶¦Í­¤¹¤ëÊýË¡¤Ë¤Ä¤¤¤Æ²òÀ⤷¤Þ¤¹¡¥
+
+3.1 C¤«¤é»²¾È¤Ç¤­¤ëRuby¤ÎÄê¿ô
+
+°Ê²¼¤ÎRuby¤ÎÄê¿ô¤ÏC¤Î¥ì¥Ù¥ë¤«¤é»²¾È¤Ç¤­¤Þ¤¹¡¥
+
+ Qtrue
+ Qfalse
+
+ ¿¿µ¶ÃÍ¡¥Qfalse¤ÏC¸À¸ì¤Ç¤âµ¶¤È¤ß¤Ê¤µ¤ì¤Þ¤¹(¤Ä¤Þ¤ê0)¡¥
+
+ Qnil
+
+ C¸À¸ì¤«¤é¸«¤¿¡Önil¡×¡¥
+
+3.2 C¤ÈRuby¤Ç¶¦Í­¤µ¤ì¤ëÂç°èÊÑ¿ô
+
+C¤ÈRuby¤ÇÂç°èÊÑ¿ô¤ò»È¤Ã¤Æ¾ðÊó¤ò¶¦Í­¤Ç¤­¤Þ¤¹¡¥¶¦Í­¤Ç¤­¤ëÂç°è
+ÊÑ¿ô¤Ë¤Ï¤¤¤¯¤Ä¤«¤Î¼ïÎब¤¢¤ê¤Þ¤¹¡¥¤½¤Î¤Ê¤«¤Ç¤â¤Ã¤È¤âÎɤ¯»È¤ï
+¤ì¤ë¤È»×¤ï¤ì¤ë¤Î¤Ïrb_define_variable()¤Ç¤¹¡¥
+
+ void rb_define_variable(char *name, VALUE *var)
+
+¤³¤Î´Ø¿ô¤ÏRuby¤ÈC¤È¤Ç¶¦Í­¤¹¤ëÂç°èÊÑ¿ô¤òÄêµÁ¤·¤Þ¤¹¡¥ÊÑ¿ô̾¤¬
+`$'¤Ç»Ï¤Þ¤é¤Ê¤¤»þ¤Ë¤Ï¼«Æ°Åª¤ËÄɲ䵤ì¤Þ¤¹¡¥¤³¤ÎÊÑ¿ô¤ÎÃͤòÊÑ
+¹¹¤¹¤ë¤È¼«Æ°Åª¤ËRuby¤ÎÂбþ¤¹¤ëÊÑ¿ô¤ÎÃͤâÊѤï¤ê¤Þ¤¹¡¥
+
+¤Þ¤¿Ruby¦¤«¤é¤Ï¹¹¿·¤Ç¤­¤Ê¤¤ÊÑ¿ô¤â¤¢¤ê¤Þ¤¹¡¥¤³¤Îread only¤Î
+ÊÑ¿ô¤Ï°Ê²¼¤Î´Ø¿ô¤ÇÄêµÁ¤·¤Þ¤¹¡¥
+
+ void rb_define_readonly_variable(char *name, VALUE *var)
+
+¤³¤ì¤éÊÑ¿ô¤Î¾¤Ëhook¤ò¤Ä¤±¤¿Âç°èÊÑ¿ô¤òÄêµÁ¤Ç¤­¤Þ¤¹¡¥hookÉÕ¤­
+¤ÎÂç°èÊÑ¿ô¤Ï°Ê²¼¤Î´Ø¿ô¤òÍѤ¤¤ÆÄêµÁ¤·¤Þ¤¹¡¥hookÉÕ¤­Âç°èÊÑ¿ô¤Î
+Ãͤλ²¾È¤äÀßÄê¤Ïhook¤Ç¹Ô¤¦É¬Íפ¬¤¢¤ê¤Þ¤¹¡¥
+
+ void rb_define_hooked_variable(char *name, VALUE *var,
+ VALUE (*getter)(), VALUE (*setter)())
+
+¤³¤Î´Ø¿ô¤ÏC¤Î´Ø¿ô¤Ë¤è¤Ã¤Æhook¤Î¤Ä¤±¤é¤ì¤¿Âç°èÊÑ¿ô¤òÄêµÁ¤·¤Þ
+¤¹¡¥ÊÑ¿ô¤¬»²¾È¤µ¤ì¤¿»þ¤Ë¤Ï´Ø¿ôgetter¤¬¡¤ÊÑ¿ô¤ËÃͤ¬¥»¥Ã¥È¤µ¤ì
+¤¿»þ¤Ë¤Ï´Ø¿ôsetter¤¬¸Æ¤Ð¤ì¤ë¡¥hook¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¤Ïgetter¤ä
+setter¤Ë0¤ò»ØÄꤷ¤Þ¤¹¡¥
+
+# getter¤âsetter¤â0¤Ê¤é¤Ðrb_define_variable()¤ÈƱ¤¸¤Ë¤Ê¤ë¡¥
+
+¤½¤ì¤«¤é¡¤C¤Î´Ø¿ô¤Ë¤è¤Ã¤Æ¼Â¸½¤µ¤ì¤ëRuby¤ÎÂç°èÊÑ¿ô¤òÄêµÁ¤¹¤ë
+´Ø¿ô¤¬¤¢¤ê¤Þ¤¹¡¥
+
+ void rb_define_virtual_variable(char *name,
+ VALUE (*getter)(), VALUE (*setter)())
+
+¤³¤Î´Ø¿ô¤Ë¤è¤Ã¤ÆÄêµÁ¤µ¤ì¤¿Ruby¤ÎÂç°èÊÑ¿ô¤¬»²¾È¤µ¤ì¤¿»þ¤Ë¤Ï
+getter¤¬¡¤ÊÑ¿ô¤ËÃͤ¬¥»¥Ã¥È¤µ¤ì¤¿»þ¤Ë¤Ïsetter¤¬¸Æ¤Ð¤ì¤Þ¤¹¡¥
+
+getter¤Èsetter¤Î»ÅÍͤϰʲ¼¤ÎÄ̤ê¤Ç¤¹¡¥
+
+ (*getter)(ID id, void *data, struct global_entry* entry);
+ (*setter)(VALUE val, ID id, void *data, struct global_entry* entry);
+
+3.3 C¤Î¥Ç¡¼¥¿¤òRuby¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤¹¤ë
+
+C¤ÎÀ¤³¦¤ÇÄêµÁ¤µ¤ì¤¿¥Ç¡¼¥¿(¹½Â¤ÂÎ)¤òRuby¤Î¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤Æ
+¼è¤ê°·¤¤¤¿¤¤¾ì¹ç¤¬¤¢¤ê¤¨¤Þ¤¹¡¥¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï¡¤Data¤È¤¤¤¦
+Ruby¥ª¥Ö¥¸¥§¥¯¥È¤ËC¤Î¹½Â¤ÂÎ(¤Ø¤Î¥Ý¥¤¥ó¥¿)¤ò¤¯¤ë¤à¤³¤È¤ÇRuby
+¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤Æ¼è¤ê°·¤¨¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡¥
+
+Data¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤·¤Æ¹½Â¤ÂΤòRuby¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥«¥×¥»¥ë
+²½¤¹¤ë¤¿¤á¤Ë¤Ï¡¤°Ê²¼¤Î¥Þ¥¯¥í¤ò»È¤¤¤Þ¤¹¡¥
+
+ Data_Wrap_Struct(class,mark,free,ptr)
+
+¤³¤Î¥Þ¥¯¥í¤ÎÌá¤êÃͤÏÀ¸À®¤µ¤ì¤¿Data¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¹¡¥
+
+class¤Ï¤³¤ÎData¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¯¥é¥¹¤Ç¤¹¡¥ptr¤Ï¥«¥×¥»¥ë²½¤¹¤ë
+C¤Î¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¹¡¥mark¤Ï¤³¤Î¹½Â¤ÂΤ¬Ruby¤Î¥ª¥Ö¥¸¥§
+¥¯¥È¤Ø¤Î»²¾È¤¬¤¢¤ë»þ¤Ë»È¤¦´Ø¿ô¤Ç¤¹¡¥¤½¤Î¤è¤¦¤Ê»²¾È¤ò´Þ¤Þ¤Ê¤¤
+»þ¤Ë¤Ï0¤ò»ØÄꤷ¤Þ¤¹¡¥
+
+# ¤½¤Î¤è¤¦¤Ê»²¾È¤Ï´«¤á¤é¤ì¤Þ¤»¤ó¡¥
+
+free¤Ï¤³¤Î¹½Â¤ÂΤ¬¤â¤¦ÉÔÍפˤʤä¿»þ¤Ë¸Æ¤Ð¤ì¤ë´Ø¿ô¤Ç¤¹¡¥¤³¤Î
+´Ø¿ô¤¬¥¬¡¼¥Ù¡¼¥¸¥³¥ì¥¯¥¿¤«¤é¸Æ¤Ð¤ì¤Þ¤¹¡¥
+
+C¤Î¹½Â¤ÂΤγäÅö¤ÈData¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀ¸À®¤òƱ»þ¤Ë¹Ô¤¦¥Þ¥¯¥í¤È
+¤·¤Æ°Ê²¼¤Î¤â¤Î¤¬Ä󶡤µ¤ì¤Æ¤¤¤Þ¤¹¡¥
+
+ Data_Make_Struct(class, type, mark, free, sval)
+
+¤³¤Î¥Þ¥¯¥í¤ÎÌá¤êÃͤÏÀ¸À®¤µ¤ì¤¿Data¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¹¡¥
+
+class, mark, free¤ÏData_Wrap_Struct¤ÈƱ¤¸Æ¯¤­¤ò¤·¤Þ¤¹¡¥type
+¤Ï³ä¤êÅö¤Æ¤ëC¹½Â¤ÂΤη¿¤Ç¤¹¡¥³ä¤êÅö¤Æ¤é¤ì¤¿¹½Â¤ÂΤÏÊÑ¿ôsval
+¤ËÂåÆþ¤µ¤ì¤Þ¤¹¡¥¤³¤ÎÊÑ¿ô¤Î·¿¤Ï (type*) ¤Ç¤¢¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥
+
+Data¥ª¥Ö¥¸¥§¥¯¥È¤«¤é¥Ý¥¤¥ó¥¿¤ò¼è¤ê½Ð¤¹¤Î¤Ï°Ê²¼¤Î¥Þ¥¯¥í¤òÍѤ¤
+¤Þ¤¹¡¥
+
+ Data_Get_Struct(obj, type, sval)
+
+C¤Î¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤ÏÊÑ¿ôsval¤ËÂåÆþ¤µ¤ì¤Þ¤¹¡¥
+
+¤³¤ì¤é¤ÎData¤Î»È¤¤Êý¤Ï¤Á¤ç¤Ã¤Èʬ¤«¤ê¤Ë¤¯¤¤¤Î¤Ç¡¤¸å¤ÇÀâÌÀ¤¹¤ë
+ÎãÂê¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡¥
+
+4¡¥ÎãÂê - dbm¥Ñ¥Ã¥±¡¼¥¸¤òºî¤ë
+
+¤³¤³¤Þ¤Ç¤ÎÀâÌÀ¤Ç¤È¤ê¤¢¤¨¤º³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤Ïºî¤ì¤ë¤Ï¤º¤Ç¤¹¡¥
+Ruby¤Îext¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¹¤Ç¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ëdbm¥é¥¤¥Ö¥é¥ê¤òÎã¤Ë
+¤·¤ÆÃʳ¬Åª¤ËÀâÌÀ¤·¤Þ¤¹¡¥
+
+(1) ¥Ç¥£¥ì¥¯¥È¥ê¤òºî¤ë
+
+ % mkdir ext/dbm
+
+Ruby 1.1¤«¤é¤ÏǤ°Õ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ç¥À¥¤¥Ê¥ß¥Ã¥¯¥é¥¤¥Ö¥é¥ê¤òºî
+¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡¥Ruby¤ËÀÅŪ¤Ë¥ê¥ó¥¯¤¹¤ë¾ì¹ç¤Ë
+¤ÏRuby¤òŸ³«¤·¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Î²¼¡¤ext¥Ç¥£¥ì¥¯¥È¥ê¤ÎÃæ¤Ë³ÈÄ¥
+¥é¥¤¥Ö¥é¥êÍѤΥǥ£¥ì¥¯¥È¥ê¤òºî¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥Ì¾Á°¤ÏŬÅö¤Ë
+Áª¤ó¤Ç¹½¤¤¤Þ¤»¤ó¡¥
+
+(2) MANIFEST¥Õ¥¡¥¤¥ë¤òºî¤ë
+
+ % cd ext/dbm
+ % touch MANIFEST
+
+³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î²¼¤Ë¤ÏMANIFEST¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬
+ɬÍפʤΤǡ¤¤È¤ê¤¢¤¨¤º¶õ¤Î¥Õ¥¡¥¤¥ë¤òºî¤Ã¤Æ¤ª¤­¤Þ¤¹¡¥¸å¤Ç¤³¤Î
+¥Õ¥¡¥¤¥ë¤Ë¤ÏɬÍפʥե¡¥¤¥ë°ìÍ÷¤¬Æþ¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡¥
+
+MANIFEST¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤Ï¡¤ÀÅŪ¥ê¥ó¥¯¤Îmake¤Î»þ¤Ë¥Ç¥£¥ì¥¯¥È¥ê
+¤¬³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤ò´Þ¤ó¤Ç¤¤¤ë¤«¤É¤¦¤«È½Äꤹ¤ë¤¿¤á¤Ë»È¤ï¤ì¤ì¤Æ
+¤¤¤Þ¤¹¡¥¥À¥¤¥Ê¥ß¥Ã¥¯¥é¥¤¥Ö¥é¥ê¤òºî¤ë¾ì¹ç¤Ë¤Ïɬ¤º¤·¤âɬÍפǤÏ
+¤¢¤ê¤Þ¤»¤ó¡¥
+
+(3) À߷פ¹¤ë
+
+¤Þ¤¢¡¤ÅöÁ³¤Ê¤ó¤Ç¤¹¤±¤É¡¤¤É¤¦¤¤¤¦µ¡Ç½¤ò¼Â¸½¤¹¤ë¤«¤É¤¦¤«¤Þ¤ºÀß
+·×¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥¤É¤ó¤Ê¥¯¥é¥¹¤ò¤Ä¤¯¤ë¤«¡¤¤½¤Î¥¯¥é¥¹¤Ë¤Ï
+¤É¤ó¤Ê¥á¥½¥Ã¥É¤¬¤¢¤ë¤«¡¤¥¯¥é¥¹¤¬Ä󶡤¹¤ëÄê¿ô¤Ê¤É¤Ë¤Ä¤¤¤ÆÀß·×
+¤·¤Þ¤¹¡¥dbm¥¯¥é¥¹¤Ë¤Ä¤¤¤Æ¤Ïext/dbm.doc¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡¥
+
+(4) C¥³¡¼¥É¤ò½ñ¤¯
+
+³ÈÄ¥¥é¥¤¥Ö¥é¥êËÜÂΤȤʤëC¸À¸ì¤Î¥½¡¼¥¹¤ò½ñ¤­¤Þ¤¹¡¥C¸À¸ì¤Î¥½¡¼
+¥¹¤¬¤Ò¤È¤Ä¤Î»þ¤Ë¤Ï¡Ö¥é¥¤¥Ö¥é¥ê̾.c¡×¤òÁª¤Ö¤ÈÎɤ¤¤Ç¤·¤ç¤¦¡¥C
+¸À¸ì¤Î¥½¡¼¥¹¤¬Ê£¿ô¤Î¾ì¹ç¤Ë¤ÏµÕ¤Ë¡Ö¥é¥¤¥Ö¥é¥ê̾.c¡×¤È¤¤¤¦¥Õ¥¡
+¥¤¥ë̾¤ÏÈò¤±¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤È¥â¥¸¥å¡¼
+¥ëÀ¸À®»þ¤ËÃæ´ÖŪ¤ËÀ¸À®¤µ¤ì¤ë¡Ö¥é¥¤¥Ö¥é¥ê̾.o¡×¤È¤¤¤¦¥Õ¥¡¥¤¥ë
+¤È¤¬¾×ÆÍ¤¹¤ë¤«¤é¤Ç¤¹¡¥
+
+Ruby¤Ï³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤ò¥í¡¼¥É¤¹¤ë»þ¤Ë¡ÖInit_¥é¥¤¥Ö¥é¥ê̾¡×¤È
+¤¤¤¦´Ø¿ô¤ò¼«Æ°Åª¤Ë¼Â¹Ô¤·¤Þ¤¹¡¥dbm¥é¥¤¥Ö¥é¥ê¤Î¾ì¹ç¡ÖInit_dbm¡×
+¤Ç¤¹¡¥¤³¤Î´Ø¿ô¤ÎÃæ¤Ç¥¯¥é¥¹¡¤¥â¥¸¥å¡¼¥ë¡¤¥á¥½¥Ã¥É¡¤Äê¿ô¤Ê¤É¤Î
+ÄêµÁ¤ò¹Ô¤¤¤Þ¤¹¡¥dbm.c¤«¤é°ìÉô°úÍѤ·¤Þ¤¹¡¥
+
+--
+Init_dbm()
+{
+ /* DBM¥¯¥é¥¹¤òÄêµÁ¤¹¤ë */
+ cDBM = rb_define_class("DBM", rb_cObject);
+ /* DBM¤ÏEnumerate¥â¥¸¥å¡¼¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë */
+ rb_include_module(cDBM, rb_mEnumerable);
+
+ /* DBM¥¯¥é¥¹¤Î¥¯¥é¥¹¥á¥½¥Ã¥Éopen(): °ú¿ô¤ÏC¤ÎÇÛÎó¤Ç¼õ¤±¤ë */
+ rb_define_singleton_method(cDBM, "open", fdbm_s_open, -1);
+
+ /* DBM¥¯¥é¥¹¤Î¥á¥½¥Ã¥Éclose(): °ú¿ô¤Ï¤Ê¤· */
+ rb_define_method(cDBM, "close", fdbm_close, 0);
+ /* DBM¥¯¥é¥¹¤Î¥á¥½¥Ã¥É[]: °ú¿ô¤Ï1¸Ä */
+ rb_define_method(cDBM, "[]", fdbm_fetch, 1);
+ :
+
+ /* DBM¥Ç¡¼¥¿¤ò³ÊǼ¤¹¤ë¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô̾¤Î¤¿¤á¤ÎID */
+ id_dbm = rb_intern("dbm");
+}
+--
+
+DBM¥é¥¤¥Ö¥é¥ê¤Ïdbm¤Î¥Ç¡¼¥¿¤ÈÂбþ¤¹¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ê¤ë¤Ï¤º¤Ç
+¤¹¤«¤é¡¤C¤ÎÀ¤³¦¤Îdbm¤òRuby¤ÎÀ¤³¦¤Ë¼è¤ê¹þ¤àɬÍפ¬¤¢¤ê¤Þ¤¹¡¥
+
+
+dbm.c¤Ç¤ÏData_Make_Struct¤ò°Ê²¼¤Î¤è¤¦¤Ë»È¤Ã¤Æ¤¤¤Þ¤¹¡¥
+
+--
+struct dbmdata {
+ int di_size;
+ DBM *di_dbm;
+};
+
+
+obj = Data_Make_Struct(class,struct dbmdata,0,free_dbm,dbmp);
+--
+
+¤³¤³¤Ç¤Ïdbmstruct¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤òData¤Ë¥«¥×¥»¥ë²½¤·¤Æ¤¤
+¤Þ¤¹¡¥DBM*¤òľÀÜ¥«¥×¥»¥ë²½¤·¤Ê¤¤¤Î¤Ïclose()¤·¤¿»þ¤Î½èÍý¤ò¹Í
+¤¨¤Æ¤Î¤³¤È¤Ç¤¹¡¥
+
+Data¥ª¥Ö¥¸¥§¥¯¥È¤«¤édbmstruct¹½Â¤ÂΤΥݥ¤¥ó¥¿¤ò¼è¤ê½Ð¤¹¤¿¤á
+¤Ë°Ê²¼¤Î¥Þ¥¯¥í¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡¥
+
+--
+#define GetDBM(obj, dbmp) {\
+ Data_Get_Struct(obj, struct dbmdata, dbmp);\
+ if (dbmp->di_dbm == 0) closed_dbm();\
+}
+--
+
+¤Á¤ç¤Ã¤ÈÊ£»¨¤Ê¥Þ¥¯¥í¤Ç¤¹¤¬¡¤Íפ¹¤ë¤Ëdbmdata¹½Â¤ÂΤΥݥ¤¥ó¥¿
+¤Î¼è¤ê½Ð¤·¤È¡¤close¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤Î¥Á¥§¥Ã¥¯¤ò¤Þ¤È¤á¤Æ¤¤
+¤ë¤À¤±¤Ç¤¹¡¥
+
+DBM¥¯¥é¥¹¤Ë¤Ï¤¿¤¯¤µ¤ó¥á¥½¥Ã¥É¤¬¤¢¤ê¤Þ¤¹¤¬¡¤Ê¬Îह¤ë¤È3¼ïÎà¤Î
+°ú¿ô¤Î¼õ¤±Êý¤¬¤¢¤ê¤Þ¤¹¡¥¤Ò¤È¤Ä¤Ï°ú¿ô¤Î¿ô¤¬¸ÇÄê¤Î¤â¤Î¤Ç¡¤Îã¤È
+¤·¤Æ¤Ïdelete¥á¥½¥Ã¥É¤¬¤¢¤ê¤Þ¤¹¡¥delete¥á¥½¥Ã¥É¤ò¼ÂÁõ¤·¤Æ¤¤¤ë
+fdbm_delete()¤Ï¤³¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡¥
+
+--
+static VALUE
+fdbm_delete(obj, keystr)
+ VALUE obj, keystr;
+{
+ :
+}
+--
+
+°ú¿ô¤Î¿ô¤¬¸ÇÄê¤Î¥¿¥¤¥×¤ÏÂè1°ú¿ô¤¬self¡¤Âè2°ú¿ô°Ê¹ß¤¬¥á¥½¥Ã¥É
+¤Î°ú¿ô¤È¤Ê¤ê¤Þ¤¹¡¥
+
+°ú¿ô¤Î¿ô¤¬ÉÔÄê¤Î¤â¤Î¤ÏC¤ÎÇÛÎó¤Ç¼õ¤±¤ë¤â¤Î¤ÈRuby¤ÎÇÛÎó¤Ç¼õ¤±
+¤ë¤â¤Î¤È¤¬¤¢¤ê¤Þ¤¹¡¥dbm¥é¥¤¥Ö¥é¥ê¤ÎÃæ¤Ç¡¤C¤ÎÇÛÎó¤Ç¼õ¤±¤ë¤â¤Î
+¤ÏDBM¤Î¥¯¥é¥¹¥á¥½¥Ã¥É¤Ç¤¢¤ëopen()¤Ç¤¹¡¥¤³¤ì¤ò¼ÂÁõ¤·¤Æ¤¤¤ë´Ø
+¿ôfdbm_s_open()¤Ï¤³¤¦¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡¥
+
+--
+static VALUE
+fdbm_s_open(argc, argv, class)
+ int argc;
+ VALUE *argv;
+ VALUE class;
+{
+ :
+ if (rb_scan_args(argc, argv, "11", &file, &vmode) == 1) {
+ mode = 0666; /* default value */
+ }
+ :
+}
+--
+
+¤³¤Î¥¿¥¤¥×¤Î´Ø¿ô¤ÏÂè1°ú¿ô¤¬Í¿¤¨¤é¤ì¤¿°ú¿ô¤Î¿ô¡¤Âè2°ú¿ô¤¬Í¿¤¨
+¤é¤ì¤¿°ú¿ô¤ÎÆþ¤Ã¤Æ¤¤¤ëÇÛÎó¤Ë¤Ê¤ê¤Þ¤¹¡¥self¤ÏÂè3°ú¿ô¤È¤·¤ÆÍ¿
+¤¨¤é¤ì¤Þ¤¹¡¥
+
+¤³¤ÎÇÛÎó¤ÇÍ¿¤¨¤é¤ì¤¿°ú¿ô¤ò²òÀϤ¹¤ë¤¿¤á¤Î´Ø¿ô¤¬open()¤Ç¤â»È¤ï
+¤ì¤Æ¤¤¤ërb_scan_args()¤Ç¤¹¡¥Âè3°ú¿ô¤Ë»ØÄꤷ¤¿¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë
+½¾¤¤¡¤Âè4ÊÑ¿ô°Ê¹ß¤Ë»ØÄꤷ¤¿ÊÑ¿ô¤ËÃͤòÂåÆþ¤·¤Æ¤¯¤ì¤Þ¤¹¡¥¤³¤Î
+¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡¤Âè1ʸ»úÌܤ¬¾Êά¤Ç¤­¤Ê¤¤°ú¿ô¤Î¿ô¡¤Âè2ʸ»úÌܤ¬
+¾Êά¤Ç¤­¤ë°ú¿ô¤Î¿ô¡¤Âè3ʸ»úÌܤ¬Âбþ¤¹¤ëÁê¼ê¤¬Ìµ¤¤¤¢¤Þ¤ê¤Î°ú
+¿ô¤¬¤¢¤ë¤«¤É¤¦¤«¤ò¼¨¤¹"*"¤Ç¤¹¡¥2ʸ»úÌܤÈ3ʸ»úÌܤϾÊά¤Ç¤­¤Þ
+¤¹¡¥dbm.c¤ÎÎã¤Ç¤Ï¡¤¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï"11"¤Ç¤¹¤«¤é¡¤°ú¿ô¤ÏºÇÄã1¤Ä
+¤Ç¡¤2¤Ä¤Þ¤Çµö¤µ¤ì¤ë¤È¤¤¤¦°ÕÌ£¤Ë¤Ê¤ê¤Þ¤¹¡¥¾Êά¤µ¤ì¤Æ¤¤¤ë»þ¤Î
+ÊÑ¿ô¤ÎÃͤÏnil(C¸À¸ì¤Î¥ì¥Ù¥ë¤Ç¤ÏQnil)¤Ë¤Ê¤ê¤Þ¤¹¡¥
+
+Ruby¤ÎÇÛÎó¤Ç°ú¿ô¤ò¼õ¤±¼è¤ë¤â¤Î¤Ïindexes¤¬¤¢¤ê¤Þ¤¹¡¥¼ÂÁõ¤Ï¤³
+¤¦¤Ç¤¹¡¥
+
+--
+static VALUE
+fdbm_indexes(obj, args)
+ VALUE obj, args;
+{
+ :
+}
+--
+
+Âè1°ú¿ô¤Ïself¡¤Âè2°ú¿ô¤ÏRuby¤ÎÇÛÎó¤Ç¤¹¡¥
+
+** Ãí°Õ»ö¹à
+
+Ruby¤È¶¦Í­¤Ï¤·¤Ê¤¤¤¬Ruby¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò³ÊǼ¤¹¤ë²ÄǽÀ­¤Î¤¢¤ë
+C¤ÎÂç°èÊÑ¿ô¤Ï°Ê²¼¤Î´Ø¿ô¤ò»È¤Ã¤ÆRuby¥¤¥ó¥¿¥×¥ê¥¿¤ËÊÑ¿ô¤Î¸ºß
+¤ò¶µ¤¨¤Æ¤¢¤²¤Æ¤¯¤À¤µ¤¤¡¥¤Ç¤Ê¤¤¤ÈGC¤Ç¥È¥é¥Ö¥ë¤òµ¯¤³¤·¤Þ¤¹¡¥
+
+ void rb_global_variable(VALUE *var)
+
+(5) extconf.rb¤òÍѰդ¹¤ë
+
+Makefile¤òºî¤ë¾ì¹ç¤Î¿÷·¿¤Ë¤Ê¤ëextconf.rb¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤òºî¤ê
+¤Þ¤¹¡¥extconf.rb¤Ï¥é¥¤¥Ö¥é¥ê¤Î¥³¥ó¥Ñ¥¤¥ë¤ËɬÍפʾò·ï¤Î¥Á¥§¥Ã
+¥¯¤Ê¤É¤ò¹Ô¤¦¤³¤È¤¬ÌÜŪ¤Ç¤¹¡¥¤Þ¤º¡¤
+
+ require 'mkmf'
+
+¤òextconf.rb¤ÎÀèÆ¬¤ËÃÖ¤­¤Þ¤¹¡¥extconf.rb¤ÎÃæ¤Ç¤Ï°Ê²¼¤ÎRuby´Ø
+¿ô¤ò»È¤¦¤³¤È¤¬½ÐÍè¤Þ¤¹¡¥
+
+ have_library(lib, func): ¥é¥¤¥Ö¥é¥ê¤Î¸ºß¥Á¥§¥Ã¥¯
+ have_func(func): ´Ø¿ô¤Î¸ºß¥Á¥§¥Ã¥¯
+ have_header(header): ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Î¸ºß¥Á¥§¥Ã¥¯
+ create_makefile(target): Makefile¤ÎÀ¸À®
+
+°Ê²¼¤ÎÊÑ¿ô¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥
+
+ $CFLAGS: ¥³¥ó¥Ñ¥¤¥ë»þ¤ËÄɲÃŪ¤Ë»ØÄꤹ¤ë¥Õ¥é¥°(-I¤Ê¤É)
+ $LDFLAGS: ¥ê¥ó¥¯»þ¤ËÄɲÃŪ¤Ë»ØÄꤹ¤ë¥Õ¥é¥°(-L¤Ê¤É)
+
+¥é¥¤¥Ö¥é¥ê¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¾ò·ï¤¬Â·¤ï¤º¡¤¤½¤Î¥é¥¤¥Ö¥é¥ê¤ò¥³¥ó
+¥Ñ¥¤¥ë¤·¤Ê¤¤»þ¤Ë¤Ïcreate_makefile¤ò¸Æ¤Ð¤Ê¤±¤ì¤ÐMakefile¤ÏÀ¸
+À®¤µ¤ì¤º¡¤¥³¥ó¥Ñ¥¤¥ë¤â¹Ô¤ï¤ì¤Þ¤»¤ó¡¥
+
+(6) depend¤òÍѰդ¹¤ë
+
+¤â¤·¡¤¥Ç¥£¥ì¥¯¥È¥ê¤Ëdepend¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ì¤Ð¡¤
+Makefile¤¬°Í¸´Ø·¸¤ò¥Á¥§¥Ã¥¯¤·¤Æ¤¯¤ì¤Þ¤¹¡¥
+
+ % gcc -MM *.c > depend
+
+¤Ê¤É¤Çºî¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡¥¤¢¤Ã¤ÆÂ»¤Ï̵¤¤¤Ç¤·¤ç¤¦¡¥
+
+(7) MANIFEST¥Õ¥¡¥¤¥ë¤Ë¥Õ¥¡¥¤¥ë̾¤òÆþ¤ì¤ë
+
+ % find * -type f -print > MANIFEST
+ % vi MANIFEST
+
+*.o, *~¤Ê¤ÉÉÔɬÍפʥե¡¥¤¥ë°Ê³°¤ÏMANIFEST¤ËÄɲ䷤Ƥª¤­¤Þ¤¹¡¥
+make»þ¤Ë¤ÏMANIFEST¤ÎÆâÍÆ¤Ï»²¾È¤·¤Þ¤»¤ó¤Î¤Ç¡¤¶õ¤Î¤Þ¤Þ¤Ç¤âÌäÂê
+¤Ïµ¯¤­¤Þ¤»¤ó¤¬¡¤¥Ñ¥Ã¥±¡¼¥¸¥ó¥°¤Î»þ¤Ë»²¾È¤¹¤ë¤³¤È¤¬¤¢¤ë¤Î¤È¡¤
+ɬÍפʥե¡¥¤¥ë¤ò¶èÊ̤Ǥ­¤ë¤Î¤Ç¡¤ÍѰդ·¤Æ¤ª¤¤¤¿Êý¤¬Îɤ¤¤Ç¤·¤ç
+¤¦¡¥
+
+(8) Makefile¤òÀ¸À®¤¹¤ë
+
+Makefile¤ò¼ÂºÝ¤ËÀ¸À®¤¹¤ë¤¿¤á¤Ë¤Ï
+
+ ruby extconf.rb
+
+¤È¤·¤Þ¤¹¡¥extconf.rb¤Ë require 'mkmf' ¤Î¹Ô¤¬¤Ê¤¤¾ì¹ç¤Ë¤Ï¥¨¥é¡¼
+¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¤°ú¿ô¤òÄɲä·¤Æ
+
+ ruby -r mkmf extconf.rb
+
+¤È¤·¤Æ¤¯¤À¤µ¤¤¡¥
+
+¥Ç¥£¥ì¥¯¥È¥ê¤òext°Ê²¼¤ËÍѰդ·¤¿¾ì¹ç¤Ë¤ÏRubyÁ´ÂΤÎmake¤Î»þ¤Ë
+¼«Æ°Åª¤ËMakefile¤¬À¸À®¤µ¤ì¤Þ¤¹¤Î¤Ç¡¤¤³¤Î¥¹¥Æ¥Ã¥×¤ÏÉÔÍפǤ¹¡¥
+
+(9) make¤¹¤ë
+
+ưŪ¥ê¥ó¥¯¥é¥¤¥Ö¥é¥ê¤òÀ¸À®¤¹¤ë¾ì¹ç¤Ë¤Ï¤½¤Î¾ì¤Çmake¤·¤Æ¤¯¤À¤µ
+¤¤¡¥É¬ÍפǤ¢¤ì¤Ð make install ¤Ç¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤¹¡¥
+
+ext°Ê²¼¤Ë¥Ç¥£¥ì¥¯¥È¥ê¤òÍѰդ·¤¿¾ì¹ç¤Ï¡¤Ruby¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ç
+make¤ò¼Â¹Ô¤¹¤ë¤ÈMakefile¤òÀ¸À®¤«¤émake¡¤É¬Íפˤè¤Ã¤Æ¤Ï¤½¤Î¥â
+¥¸¥å¡¼¥ë¤ÎRuby¤Ø¤Î¥ê¥ó¥¯¤Þ¤Ç¼«Æ°Åª¤Ë¼Â¹Ô¤·¤Æ¤¯¤ì¤Þ¤¹¡¥
+extconf.rb¤ò½ñ¤­´¹¤¨¤ë¤Ê¤É¤·¤ÆMakefile¤ÎºÆÀ¸À®¤¬É¬Íפʻþ¤Ï¤Þ
+¤¿Ruby¥Ç¥£¥ì¥¯¥È¥ê¤Çmake¤·¤Æ¤¯¤À¤µ¤¤¡¥
+
+³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤Ïmake install¤ÇRuby¥é¥¤¥Ö¥é¥ê¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î
+²¼¤Ë¥³¥Ô¡¼¤µ¤ì¤Þ¤¹¡¥¤â¤·³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤È¶¨Ä´¤·¤Æ»È¤¦Ruby¤Çµ­
+½Ò¤µ¤ì¤¿¥×¥í¥°¥é¥à¤¬¤¢¤ê¡¤Ruby¥é¥¤¥Ö¥é¥ê¤ËÃÖ¤­¤¿¤¤¾ì¹ç¤Ë¤Ï¡¤
+³ÈÄ¥¥é¥¤¥Ö¥é¥êÍѤΥǥ£¥ì¥¯¥È¥ê¤Î²¼¤Ë lib ¤È¤¤¤¦¥Ç¥£¥ì¥¯¥È¥ê
+¤òºî¤ê¡¤¤½¤³¤Ë ³ÈÄ¥»Ò .rb ¤Î¥Õ¥¡¥¤¥ë¤òÃÖ¤¤¤Æ¤ª¤±¤ÐƱ»þ¤Ë¥¤¥ó
+¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤¹¡¥
+
+(10) ¥Ç¥Ð¥Ã¥°
+
+¤Þ¤¢¡¤¥Ç¥Ð¥Ã¥°¤·¤Ê¤¤¤Èư¤«¤Ê¤¤¤Ç¤·¤ç¤¦¤Í¡¥ext/Setup¤Ë¥Ç¥£¥ì
+¥¯¥È¥ê̾¤ò½ñ¤¯¤ÈÀÅŪ¤Ë¥ê¥ó¥¯¤¹¤ë¤Î¤Ç¥Ç¥Ð¥Ã¥¬¤¬»È¤¨¤ë¤è¤¦¤Ë¤Ê
+¤ê¤Þ¤¹¡¥¤½¤Îʬ¥³¥ó¥Ñ¥¤¥ë¤¬ÃÙ¤¯¤Ê¤ê¤Þ¤¹¤±¤É¡¥
+
+(11) ¤Ç¤­¤¢¤¬¤ê
+
+¸å¤Ï¤³¤Ã¤½¤ê»È¤¦¤Ê¤ê¡¤¹­¤¯¸ø³«¤¹¤ë¤Ê¤ê¡¤Çä¤ë¤Ê¤ê¡¤¤´¼«Í³¤Ë¤ª
+»È¤¤¤¯¤À¤µ¤¤¡¥Ruby¤Îºî¼Ô¤Ï³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤Ë´Ø¤·¤Æ°ìÀڤθ¢Íø¤ò
+¼çÄ¥¤·¤Þ¤»¤ó¡¥
+
+Appendix A. Ruby¤Î¥½¡¼¥¹¥³¡¼¥É¤ÎʬÎà
+
+Ruby¤Î¥½¡¼¥¹¤Ï¤¤¤¯¤Ä¤«¤ËʬÎह¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡¥¤³¤Î¤¦¤Á¥¯¥é
+¥¹¥é¥¤¥Ö¥é¥ê¤ÎÉôʬ¤Ï´ðËÜŪ¤Ë³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤ÈƱ¤¸ºî¤êÊý¤Ë¤Ê¤Ã
+¤Æ¤¤¤Þ¤¹¡¥¤³¤ì¤é¤Î¥½¡¼¥¹¤Ïº£¤Þ¤Ç¤ÎÀâÌÀ¤Ç¤Û¤È¤ó¤ÉÍý²ò¤Ç¤­¤ë¤È
+»×¤¤¤Þ¤¹¡¥
+
+Ruby¸À¸ì¤Î¥³¥¢
+
+ class.c
+ error.c
+ eval.c
+ gc.c
+ object.c
+ parse.y
+ variable.c
+
+¥æ¡¼¥Æ¥£¥ê¥Æ¥£´Ø¿ô
+
+ dln.c
+ fnmatch.c
+ glob.c
+ regex.c
+ st.c
+ util.c
+
+Ruby¥³¥Þ¥ó¥É¤Î¼ÂÁõ
+
+ dmyext.c
+ inits.c
+ main.c
+ ruby.c
+ version.c
+
+¥¯¥é¥¹¥é¥¤¥Ö¥é¥ê
+
+ array.c
+ bignum.c
+ compar.c
+ dir.c
+ enum.c
+ file.c
+ hash.c
+ io.c
+ marshal.c
+ math.c
+ numeric.c
+ pack.c
+ process.c
+ random.c
+ range.c
+ re.c
+ signal.c
+ sprintf.c
+ string.c
+ struct.c
+ time.c
+
+Appendix B. ³ÈÄ¥ÍÑ´Ø¿ô¥ê¥Õ¥¡¥ì¥ó¥¹
+
+C¸À¸ì¤«¤éRuby¤Îµ¡Ç½¤òÍøÍѤ¹¤ëAPI¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡¥
+
+** ·¿
+
+VALUE
+
+ Ruby¥ª¥Ö¥¸¥§¥¯¥È¤òɽ¸½¤¹¤ë·¿¡¥É¬Íפ˱þ¤¸¤Æ¥­¥ã¥¹¥È¤·¤ÆÍѤ¤¤ë¡¥
+ ÁȤ߹þ¤ß·¿¤òɽ¸½¤¹¤ëC¤Î·¿¤Ïruby.h¤Ëµ­½Ò¤·¤Æ¤¢¤ëR¤Ç»Ï¤Þ¤ë¹½Â¤
+ ÂΤǤ¢¤ë¡¥VALUE·¿¤ò¤³¤ì¤é¤Ë¥­¥ã¥¹¥È¤¹¤ë¤¿¤á¤ËR¤Ç»Ï¤Þ¤ë¹½Â¤ÂÎ
+ ̾¤òÁ´¤ÆÂçʸ»ú¤Ë¤·¤¿Ì¾Á°¤Î¥Þ¥¯¥í¤¬ÍѰդµ¤ì¤Æ¤¤¤ë¡¥
+
+** ÊÑ¿ô¡¦Äê¿ô
+
+Qnil
+
+ Äê¿ô: nil¥ª¥Ö¥¸¥§¥¯¥È
+
+Qtrue
+
+ Äê¿ô: true¥ª¥Ö¥¸¥§¥¯¥È(¿¿¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ)
+
+Qfalse
+
+ Äê¿ô: false¥ª¥Ö¥¸¥§¥¯¥È
+
+** C¥Ç¡¼¥¿¤Î¥«¥×¥»¥ë²½
+
+Data_Wrap_Struct(VALUE class, void (*mark)(), void (*free)(), void *sval)
+
+ C¤ÎǤ°Õ¤Î¥Ý¥¤¥ó¥¿¤ò¥«¥×¥»¥ë²½¤·¤¿Ruby¥ª¥Ö¥¸¥§¥¯¥È¤òÊÖ¤¹¡¥¤³
+ ¤Î¥Ý¥¤¥ó¥¿¤¬Ruby¤«¤é¥¢¥¯¥»¥¹¤µ¤ì¤Ê¤¯¤Ê¤Ã¤¿»þ¡¤free¤Ç»ØÄꤷ¤¿
+ ´Ø¿ô¤¬¸Æ¤Ð¤ì¤ë¡¥¤Þ¤¿¡¤¤³¤Î¥Ý¥¤¥ó¥¿¤Î»Ø¤¹¥Ç¡¼¥¿¤¬Â¾¤ÎRuby¥ª¥Ö
+ ¥¸¥§¥¯¥È¤ò»Ø¤·¤Æ¤¤¤ë¾ì¹ç¡¤mark¤Ë»ØÄꤹ¤ë´Ø¿ô¤Ç¥Þ¡¼¥¯¤¹¤ëɬÍ×
+ ¤¬¤¢¤ë¡¥
+
+Data_Make_Struct(class, type, mark, free, sval)
+
+ type·¿¤Î¥á¥â¥ê¤òmalloc¤·¡¤ÊÑ¿ôsval¤ËÂåÆþ¤·¤¿¸å¡¤¤½¤ì¤ò¥«¥×¥»
+ ¥ë²½¤·¤¿¥Ç¡¼¥¿¤òÊÖ¤¹¥Þ¥¯¥í¡¥
+
+Data_Get_Struct(data, type, sval)
+
+ data¤«¤étype·¿¤Î¥Ý¥¤¥ó¥¿¤ò¼è¤ê½Ð¤·ÊÑ¿ôsval¤ËÂåÆþ¤¹¤ë¥Þ¥¯¥í¡¥
+
+** ·¿¥Á¥§¥Ã¥¯
+
+TYPE(value)
+FIXNUM_P(value)
+NIL_P(value)
+void Check_Type(VALUE value, int type)
+void Check_SafeStr(VALUE value)
+
+** ·¿ÊÑ´¹
+
+FIX2INT(value)
+INT2FIX(i)
+NUM2INT(value)
+INT2NUM(i)
+NUM2DBL(value)
+rb_float_new(f)
+STR2CSTR(value)
+rb_str_new2(s)
+
+** ¥¯¥é¥¹/¥â¥¸¥å¡¼¥ëÄêµÁ
+
+VALUE rb_define_class(char *name, VALUE super)
+
+ super¤Î¥µ¥Ö¥¯¥é¥¹¤È¤·¤Æ¿·¤·¤¤Ruby¥¯¥é¥¹¤òÄêµÁ¤¹¤ë¡¥
+
+VALUE rb_define_class_under(VALUE module, char *name, VALUE super)
+
+ super¤Î¥µ¥Ö¥¯¥é¥¹¤È¤·¤Æ¿·¤·¤¤Ruby¥¯¥é¥¹¤òÄêµÁ¤·¡¤module¤Î
+ Äê¿ô¤È¤·¤ÆÄêµÁ¤¹¤ë¡¥
+
+VALUE rb_define_module(char *name)
+
+ ¿·¤·¤¤Ruby¥â¥¸¥å¡¼¥ë¤òÄêµÁ¤¹¤ë¡¥
+
+VALUE rb_define_module_under(VALUE module, char *name, VALUE super)
+
+ ¿·¤·¤¤Ruby¥â¥¸¥å¡¼¥ë¤òÄêµÁ¤·¡¤module¤ÎÄê¿ô¤È¤·¤ÆÄêµÁ¤¹¤ë¡¥
+
+void rb_include_module(VALUE class, VALUE module)
+
+ ¥â¥¸¥å¡¼¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¡¥class¤¬¤¹¤Ç¤Ëmodule¤ò¥¤¥ó¥¯
+ ¥ë¡¼¥É¤·¤Æ¤¤¤ë»þ¤Ë¤Ï²¿¤â¤·¤Ê¤¤(¿½Å¥¤¥ó¥¯¥ë¡¼¥É¤Î¶Ø»ß)¡¥
+
+void rb_extend_object(VALUE object, VALUE module)
+
+ ¥ª¥Ö¥¸¥§¥¯¥È¤ò¥â¥¸¥å¡¼¥ë(¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥á¥½¥Ã¥É)¤Ç³ÈÄ¥¤¹¤ë¡¥
+
+** Âç°èÊÑ¿ôÄêµÁ
+
+void rb_define_variable(char *name, VALUE *var)
+
+ Ruby¤ÈC¤È¤Ç¶¦Í­¤¹¤ë¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤òÄêµÁ¤¹¤ë¡¥ÊÑ¿ô̾¤¬`$'¤Ç
+ »Ï¤Þ¤é¤Ê¤¤»þ¤Ë¤Ï¼«Æ°Åª¤ËÄɲ䵤ì¤ë¡¥name¤È¤·¤ÆRuby¤Î¼±ÊÌ»Ò
+ ¤È¤·¤Æµö¤µ¤ì¤Ê¤¤Ê¸»ú(Î㤨¤Ð` ')¤ò´Þ¤à¾ì¹ç¤Ë¤ÏRuby¥×¥í¥°¥é
+ ¥à¤«¤é¤Ï¸«¤¨¤Ê¤¯¤Ê¤ë¡¥
+
+void rb_define_readonly_variable(char *name, VALUE *var)
+
+ Ruby¤ÈC¤È¤Ç¶¦Í­¤¹¤ëread only¤Î¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤òÄêµÁ¤¹¤ë¡¥
+ read only¤Ç¤¢¤ë¤³¤È°Ê³°¤Ïrb_define_variable()¤ÈƱ¤¸¡¥
+
+void rb_define_virtual_variable(char *name,
+ VALUE (*getter)(), VALUE (*setter)())
+
+ ´Ø¿ô¤Ë¤è¤Ã¤Æ¼Â¸½¤µ¤ì¤ëRubyÊÑ¿ô¤òÄêµÁ¤¹¤ë¡¥ÊÑ¿ô¤¬»²¾È¤µ¤ì¤¿
+ »þ¤Ë¤Ïgetter¤¬¡¤ÊÑ¿ô¤ËÃͤ¬¥»¥Ã¥È¤µ¤ì¤¿»þ¤Ë¤Ïsetter¤¬¸Æ¤Ð¤ì
+ ¤ë¡¥
+
+void rb_define_hooked_variable(char *name, VALUE *var,
+ VALUE (*getter)(), VALUE (*setter)())
+
+ ´Ø¿ô¤Ë¤è¤Ã¤Æhook¤Î¤Ä¤±¤é¤ì¤¿¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤òÄêµÁ¤¹¤ë¡¥ÊÑ¿ô
+ ¤¬»²¾È¤µ¤ì¤¿»þ¤Ë¤Ïgetter¤¬¡¤´Ø¿ô¤ËÃͤ¬¥»¥Ã¥È¤µ¤ì¤¿»þ¤Ë¤Ï
+ setter¤¬¸Æ¤Ð¤ì¤ë¡¥getter¤äsetter¤Ë0¤ò»ØÄꤷ¤¿»þ¤Ë¤Ïhook¤ò
+ »ØÄꤷ¤Ê¤¤¤Î¤ÈƱ¤¸»ö¤Ë¤Ê¤ë¡¥
+
+void rb_global_variable(VALUE *var)
+
+ GC¤Î¤¿¤á¡¤Ruby¥×¥í¥°¥é¥à¤«¤é¤Ï¥¢¥¯¥»¥¹¤µ¤ì¤Ê¤¤¤¬, Ruby¥ª¥Ö
+ ¥¸¥§¥¯¥È¤ò´Þ¤àÂç°èÊÑ¿ô¤ò¥Þ¡¼¥¯¤¹¤ë¡¥
+
+** Äê¿ô
+
+void rb_define_const(VALUE klass, char *name, VALUE val)
+
+ Äê¿ô¤òÄêµÁ¤¹¤ë¡¥
+
+void rb_define_global_const(char *name, VALUE val)
+
+ Âç°èÄê¿ô¤òÄêµÁ¤¹¤ë¡¥
+
+ rb_define_const(cKernal, name, val)
+
+ ¤ÈƱ¤¸°ÕÌ£¡¥
+
+** ¥á¥½¥Ã¥ÉÄêµÁ
+
+rb_define_method(VALUE class, char *name, VALUE (*func)(), int argc)
+
+ ¥á¥½¥Ã¥É¤òÄêµÁ¤¹¤ë¡¥argc¤Ïself¤ò½ü¤¯°ú¿ô¤Î¿ô¡¥argc¤¬-1¤Î»þ,
+ ´Ø¿ô¤Ë¤Ï°ú¿ô¤Î¿ô(self¤ò´Þ¤Þ¤Ê¤¤)¤òÂè1°ú¿ô, °ú¿ô¤ÎÇÛÎó¤òÂè2
+ °ú¿ô¤È¤¹¤ë·Á¼°¤ÇÍ¿¤¨¤é¤ì¤ë(Âè3°ú¿ô¤Ïself)¡¥argc¤¬-2¤Î»þ,
+ Âè1°ú¿ô¤¬self, Âè2°ú¿ô¤¬args(args¤Ï°ú¿ô¤ò´Þ¤àRuby¤ÎÇÛÎó)¤È
+ ¤¤¤¦·Á¼°¤ÇÍ¿¤¨¤é¤ì¤ë¡¥
+
+rb_define_private_method(VALUE class, char *name, VALUE (*func)(), int argc)
+
+ private¥á¥½¥Ã¥É¤òÄêµÁ¤¹¤ë¡¥°ú¿ô¤Ïrb_define_method()¤ÈƱ¤¸¡¥
+
+rb_define_singleton_method(VALUE class, char *name, VALUE (*func)(), int argc)
+
+ ÆÃ°Û¥á¥½¥Ã¥É¤òÄêµÁ¤¹¤ë¡¥°ú¿ô¤Ïrb_define_method()¤ÈƱ¤¸¡¥
+
+rb_scan_args(int argc, VALUE *argv, char *fmt, ...)
+
+ argc,argv·Á¼°¤ÇÍ¿¤¨¤é¤ì¤¿°ú¿ô¤òʬ²ò¤¹¤ë¡¥fmt¤Ïɬ¿Ü°ú¿ô¤Î¿ô,
+ Éղðú¿ô¤Î¿ô, »Ä¤ê¤Î°ú¿ô¤¬¤¢¤ë¤«¤ò»ØÄꤹ¤ëʸ»úÎó¤Ç, "¿ô»ú
+ ¿ô»ú*"¤È¤¤¤¦·Á¼°¤Ç¤¢¤ë¡¥ 2 ÈÖÌܤοô»ú¤È"*"¤Ï¤½¤ì¤¾¤ì¾Êά²Ä
+ ǽ¤Ç¤¢¤ë¡¥É¬¿Ü°ú¿ô¤¬°ì¤Ä¤â¤Ê¤¤¾ì¹ç¤Ï0¤ò»ØÄꤹ¤ë¡¥Âè3°ú¿ô°Ê
+ ¹ß¤ÏÊÑ¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç, ³ºÅö¤¹¤ëÍ×ÁǤ¬¤½¤ÎÊÑ¿ô¤Ë³ÊǼ¤µ¤ì¤ë¡¥
+ Éղðú¿ô¤ËÂбþ¤¹¤ë°ú¿ô¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤ÏÊÑ¿ô¤ËQnil¤¬
+ ÂåÆþ¤µ¤ì¤ë¡¥
+
+** Ruby¥á¥½¥Ã¥É¸Æ¤Ó½Ð¤·
+
+VALUE rb_funcall(VALUE recv, ID mid, int narg, ...)
+
+ ¥á¥½¥Ã¥É¸Æ¤Ó½Ð¤·¡¥Ê¸»úÎ󤫤émid¤òÆÀ¤ë¤¿¤á¤Ë¤Ïrb_intern()¤ò
+ »È¤¦¡¥
+
+VALUE rb_funcall2(VALUE recv, ID mid, int argc, VALUE *argv)
+
+ ¥á¥½¥Ã¥É¸Æ¤Ó½Ð¤·¡¥°ú¿ô¤òargc,argv·Á¼°¤ÇÅϤ¹¡¥
+
+VALUE rb_eval_string(char *str)
+
+ ʸ»úÎó¤òRuby¥¹¥¯¥ê¥×¥È¤È¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¡¦¼Â¹Ô¤¹¤ë¡¥
+
+ID rb_intern(char *name)
+
+ ʸ»úÎó¤ËÂбþ¤¹¤ëID¤òÊÖ¤¹¡¥
+
+char *rb_id2name(ID id)
+
+ ID¤ËÂбþ¤¹¤ëʸ»úÎó¤òÊÖ¤¹(¥Ç¥Ð¥Ã¥°ÍÑ)¡¥
+
+char *rb_class2name(VALUE class)
+
+ class¤Î̾Á°¤òÊÖ¤¹(¥Ç¥Ð¥Ã¥°ÍÑ)¡¥class¤¬Ì¾Á°¤ò»ý¤¿¤Ê¤¤»þ¤Ë¤Ï,
+ ÁÄÀè¤òÁ̤äÆÌ¾Á°¤ò»ý¤Ä¥¯¥é¥¹¤Î̾Á°¤òÊÖ¤¹¡¥
+
+int rb_respond_to(VALUE obj, ID id)
+
+ obj¤¬id¤Ç¼¨¤µ¤ì¤ë¥á¥½¥Ã¥É¤ò»ý¤Ä¤«¤É¤¦¤«¤òÊÖ¤¹¡£
+
+** ¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô
+
+VALUE rb_iv_get(VALUE obj, char *name)
+
+ obj¤Î¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô¤ÎÃͤòÆÀ¤ë¡¥`@'¤Ç»Ï¤Þ¤é¤Ê¤¤¥¤¥ó¥¹¥¿¥ó
+ ¥¹ÊÑ¿ô¤Ï Ruby¥×¥í¥°¥é¥à¤«¤é¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¤¡Ö±£¤ì¤¿¡×¥¤¥ó
+ ¥¹¥¿¥ó¥¹ÊÑ¿ô¤Ë¤Ê¤ë¡¥Äê¿ô¤ÏÂçʸ»ú¤Î̾Á°¤ò»ý¤Ä¥¯¥é¥¹(¤Þ¤¿¤Ï
+ ¥â¥¸¥å¡¼¥ë)¤Î¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡¥
+
+VALUE rb_iv_set(VALUE obj, char *name, VALUE val)
+
+ obj¤Î¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô¤òval¤Ë¥»¥Ã¥È¤¹¤ë¡¥
+
+** À©¸æ¹½Â¤
+
+VALUE rb_iterate(VALUE (*func1)(), void *arg1, VALUE (*func2)(), void *arg2)
+
+ func2¤ò¥Ö¥í¥Ã¥¯¤È¤·¤ÆÀßÄꤷ, func1¤ò¥¤¥Æ¥ì¡¼¥¿¤È¤·¤Æ¸Æ¤Ö¡¥
+ func1¤Ë¤Ï arg1¤¬°ú¿ô¤È¤·¤ÆÅϤµ¤ì, func2¤Ë¤ÏÂè1°ú¿ô¤Ë¥¤¥Æ¥ì¡¼
+ ¥¿¤«¤éÍ¿¤¨¤é¤ì¤¿ÃÍ, Âè2°ú¿ô¤Ëarg2¤¬ÅϤµ¤ì¤ë¡¥
+
+VALUE rb_yield(VALUE val)
+
+ val¤òÃͤȤ·¤Æ¥¤¥Æ¥ì¡¼¥¿¥Ö¥í¥Ã¥¯¤ò¸Æ¤Ó½Ð¤¹¡¥
+
+VALUE rb_rescue(VALUE (*func1)(), void *arg1, VALUE (*func2)(), void *arg2)
+
+ ´Ø¿ôfunc1¤òarg1¤ò°ú¿ô¤Ë¸Æ¤Ó½Ð¤¹¡¥func1¤Î¼Â¹ÔÃæ¤ËÎã³°¤¬È¯À¸
+ ¤·¤¿»þ¤Ë¤Ï func2¤òarg2¤ò°ú¿ô¤È¤·¤Æ¸Æ¤Ö¡¥Ìá¤êÃͤÏÎã³°¤¬È¯À¸
+ ¤·¤Ê¤«¤Ã¤¿»þ¤Ïfunc1¤ÎÌá¤êÃÍ, Îã³°¤¬È¯À¸¤·¤¿»þ¤Ë¤Ïfunc2¤ÎÌá
+ ¤êÃͤǤ¢¤ë¡¥
+
+VALUE rb_ensure(VALUE (*func1)(), void *arg1, void (*func2)(), void *arg2)
+
+ ´Ø¿ôfunc1¤òarg1¤ò°ú¿ô¤È¤·¤Æ¼Â¹Ô¤·, ¼Â¹Ô½ªÎ»¸å(¤¿¤È¤¨Îã³°¤¬
+ ȯÀ¸¤·¤Æ¤â) func2¤òarg2¤ò°ú¿ô¤È¤·¤Æ¼Â¹Ô¤¹¤ë¡¥Ìá¤êÃͤÏfunc1
+ ¤ÎÌá¤êÃͤǤ¢¤ë(Îã³°¤¬È¯À¸¤·¤¿»þ¤ÏÌá¤é¤Ê¤¤)¡¥
+
+** Îã³°¡¦¥¨¥é¡¼
+
+void rb_warning(char *fmt, ...)
+
+ rb_verbose»þ¤Ëɸ½à¥¨¥é¡¼½ÐÎϤ˷ٹð¾ðÊó¤òɽ¼¨¤¹¤ë¡¥°ú¿ô¤Ï
+ printf()¤ÈƱ¤¸¡¥
+
+void rb_raise(rb_eRuntimeError, char *fmt, ...)
+
+ RuntimeErrorÎã³°¤òȯÀ¸¤µ¤»¤ë¡¥°ú¿ô¤Ïprintf()¤ÈƱ¤¸¡¥
+
+void rb_raise(VALUE exception, char *fmt, ...)
+
+ exception¤Ç»ØÄꤷ¤¿Îã³°¤òȯÀ¸¤µ¤»¤ë¡¥fmt°Ê²¼¤Î°ú¿ô¤Ï
+ printf()¤ÈƱ¤¸¡¥
+
+void rb_fatal(char *fmt, ...)
+
+ Ã×̿ŪÎã³°¤òȯÀ¸¤µ¤»¤ë¡¥Ä̾ï¤ÎÎã³°½èÍý¤Ï¹Ô¤Ê¤ï¤ì¤º, ¥¤¥ó¥¿¡¼
+ ¥×¥ê¥¿¤¬½ªÎ»¤¹¤ë(¤¿¤À¤·ensure¤Ç»ØÄꤵ¤ì¤¿¥³¡¼¥É¤Ï½ªÎ»Á°¤Ë
+ ¼Â¹Ô¤µ¤ì¤ë)¡¥
+
+void rb_bug(char *fmt, ...)
+
+ ¥¤¥ó¥¿¡¼¥×¥ê¥¿¤Ê¤É¥×¥í¥°¥é¥à¤Î¥Ð¥°¤Ç¤·¤«È¯À¸¤¹¤ë¤Ï¤º¤Î¤Ê¤¤
+ ¾õ¶·¤Î»þ¸Æ¤Ö¡¥¥¤¥ó¥¿¡¼¥×¥ê¥¿¤Ï¥³¥¢¥À¥ó¥×¤·Ä¾¤Á¤Ë½ªÎ»¤¹¤ë¡¥
+ Îã³°½èÍý¤Ï°ìÀڹԤʤï¤ì¤Ê¤¤¡¥
+
+** Ruby¤Î½é´ü²½¡¦¼Â¹Ô
+
+Ruby¤ò¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ËËä¤á¹þ¤à¾ì¹ç¤Ë¤Ï°Ê²¼¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹
+¤ò»È¤¦¡¥Ä̾ï¤Î³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤Ë¤ÏɬÍפʤ¤¡¥
+
+void ruby_init()
+
+ Ruby¥¤¥ó¥¿¥×¥ê¥¿¤Î½é´ü²½¤ò¹Ô¤Ê¤¦¡¥
+
+void ruby_options(int argc, char **argv)
+
+ Ruby¥¤¥ó¥¿¥×¥ê¥¿¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¿ô¤Î½èÍý¤ò¹Ô¤Ê¤¦¡¥
+
+void ruby_run()
+
+ Ruby¥¤¥ó¥¿¥×¥ê¥¿¤ò¼Â¹Ô¤¹¤ë¡¥
+
+void ruby_script(char *name)
+
+ Ruby¤Î¥¹¥¯¥ê¥×¥È̾($0)¤òÀßÄꤹ¤ë¡¥
+
+
+Appendix B. extconf.rb¤Ç»È¤¨¤ë´Ø¿ô¤¿¤Á
+
+extconf.rb¤ÎÃæ¤Ç¤ÏÍøÍѲÄǽ¤Ê¥³¥ó¥Ñ¥¤¥ë¾ò·ï¥Á¥§¥Ã¥¯¤Î´Ø¿ô¤Ï°Ê
+²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡¥
+
+have_library(lib, func)
+
+ ´Ø¿ôfunc¤òÄêµÁ¤·¤Æ¤¤¤ë¥é¥¤¥Ö¥é¥êlib¤Î¸ºß¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡¥
+ ¥é¥¤¥Ö¥é¥ê¤¬Â¸ºß¤¹¤ë»þ¡¤true¤òÊÖ¤¹¡¥
+
+find_library(lib, func, path...)
+
+ ´Ø¿ôfunc¤òÄêµÁ¤·¤Æ¤¤¤ë¥é¥¤¥Ö¥é¥êlib¤Î¸ºß¤ò -Lpath ¤òÄɲÃ
+ ¤·¤Ê¤¬¤é¥Á¥§¥Ã¥¯¤¹¤ë¡¥¥é¥¤¥Ö¥é¥ê¤¬¸«ÉÕ¤«¤Ã¤¿»þ¡¤true¤òÊÖ¤¹¡¥
+ ·ë²Ì¤ò¥­¥ã¥Ã¥·¥å¤·¤Ê¤¤¡¥
+
+have_func(func)
+
+ ´Ø¿ôfunc¤Î¸ºß¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡¥func¤¬É¸½à¤Ç¤Ï¥ê¥ó¥¯¤µ¤ì¤Ê¤¤
+ ¥é¥¤¥Ö¥é¥êÆâ¤Î¤â¤Î¤Ç¤¢¤ë»þ¤Ë¤ÏÀè¤Ëhave_library¤Ç¤½¤Î¥é¥¤¥Ö
+ ¥é¥ê¤ò¥Á¥§¥Ã¥¯¤·¤Æ¤ª¤¯»ö¡¥´Ø¿ô¤¬Â¸ºß¤¹¤ë»þtrue¤òÊÖ¤¹¡¥
+
+have_header(header)
+
+ ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Î¸ºß¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡¥¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹
+ ¤ë»þtrue¤òÊÖ¤¹¡¥
+
+find_header(header)
+
+ ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Î¸ºß¤ò -Ipath ¤òÄɲ䷤ʤ¬¤é¥Á¥§¥Ã¥¯¤¹¤ë¡¥
+ ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬¸«ÉÕ¤«¤Ã¤¿»þtrue¤òÊÖ¤¹¡¥·ë²Ì¤ò¥­¥ã¥Ã¥·¥å¤·
+ ¤Ê¤¤¡¥
+
+create_makefile(target)
+
+ ³ÈÄ¥¥é¥¤¥Ö¥é¥êÍѤÎMakefile¤òÀ¸À®¤¹¤ë¡¥¤³¤Î´Ø¿ô¤ò¸Æ¤Ð¤Ê¤±¤ì
+ ¤Ð¤½¤Î¥é¥¤¥Ö¥é¥ê¤Ï¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Ê¤¤¡¥target¤Ï¥â¥¸¥å¡¼¥ë̾
+ ¤òɽ¤¹¡¥
+
+with_config(withval[, default=nil])
+
+ --with-<withval>¤Ç»ØÄꤵ¤ì¤¿¥ª¥×¥·¥ç¥óÃͤòÆÀ¤ë¡¥
+
+dir_config(target)
+
+ --with-<target>-dir, --with-<target>-include, --with-<target>-lib
+ ¤Î¤¤¤º¤ì¤«¤Ç»ØÄꤵ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ò $CFLAGS ¤ä $LDFLAGS
+ ¤ËÄɲ乤롥
+
+/*
+ * Local variables:
+ * fill-column: 60
+ * end:
+ */
diff --git a/README.ja.md b/README.ja.md
deleted file mode 100644
index bb69c09055..0000000000
--- a/README.ja.md
+++ /dev/null
@@ -1,183 +0,0 @@
-[![Actions Status: MinGW](https://github.com/ruby/ruby/workflows/MinGW/badge.svg)](https://github.com/ruby/ruby/actions?query=workflow%3A"MinGW")
-[![Actions Status: MJIT](https://github.com/ruby/ruby/workflows/MJIT/badge.svg)](https://github.com/ruby/ruby/actions?query=workflow%3A"MJIT")
-[![Actions Status: Ubuntu](https://github.com/ruby/ruby/workflows/Ubuntu/badge.svg)](https://github.com/ruby/ruby/actions?query=workflow%3A"Ubuntu")
-[![Actions Status: Windows](https://github.com/ruby/ruby/workflows/Windows/badge.svg)](https://github.com/ruby/ruby/actions?query=workflow%3A"Windows")
-[![AppVeyor status](https://ci.appveyor.com/api/projects/status/0sy8rrxut4o0k960/branch/master?svg=true)](https://ci.appveyor.com/project/ruby/ruby/branch/master)
-[![Travis Status](https://app.travis-ci.com/ruby/ruby.svg?branch=master)](https://app.travis-ci.com/ruby/ruby)
-[![Cirrus Status](https://api.cirrus-ci.com/github/ruby/ruby.svg)](https://cirrus-ci.com/github/ruby/ruby/master)
-
-# Rubyã¨ã¯
-
-Rubyã¯ã‚·ãƒ³ãƒ—ルã‹ã¤å¼·åŠ›ãªã‚ªãƒ–ジェクト指å‘スクリプト言語ã§ã™ï¼Ž Rubyã¯ç´”粋ãªã‚ªãƒ–ジェクト指å‘言語ã¨ã—ã¦è¨­è¨ˆã•れã¦ã„ã‚‹ã®ã§ï¼Œ
-オブジェクト指å‘プログラミングを手軽ã«è¡Œã†äº‹ãŒå‡ºæ¥ã¾ã™ï¼Žã‚‚ã¡ã‚ã‚“æ™®é€šã®æ‰‹ç¶šãåž‹ã®ãƒ—ログラミングもå¯èƒ½ã§ã™ï¼Ž
-
-Rubyã¯ãƒ†ã‚­ã‚¹ãƒˆå‡¦ç†é–¢ä¿‚ã®èƒ½åŠ›ãªã©ã«å„ªã‚Œï¼ŒPerlã¨åŒã˜ãらã„強力ã§ã™ï¼Žã•らã«ã‚·ãƒ³ãƒ—ãƒ«ãªæ–‡æ³•ã¨ï¼Œ
-例外処ç†ã‚„イテレータãªã©ã®æ©Ÿæ§‹ã«ã‚ˆã£ã¦ï¼Œã‚ˆã‚Šåˆ†ã‹ã‚Šã‚„ã™ã„プログラミングãŒå‡ºæ¥ã¾ã™ï¼Ž
-
-## Rubyã®ç‰¹é•·
-
-* ã‚·ãƒ³ãƒ—ãƒ«ãªæ–‡æ³•
-* 普通ã®ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆæŒ‡å‘æ©Ÿèƒ½(クラス,メソッドコールãªã©)
-* 特殊ãªã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆæŒ‡å‘æ©Ÿèƒ½(Mixin,特異メソッドãªã©)
-* 演算å­ã‚ªãƒ¼ãƒãƒ¼ãƒ­ãƒ¼ãƒ‰
-* ä¾‹å¤–å‡¦ç†æ©Ÿèƒ½
-* イテレータã¨ã‚¯ãƒ­ãƒ¼ã‚¸ãƒ£
-* ガーベージコレクタ
-* ダイナミックローディング (アーキテクãƒãƒ£ã«ã‚ˆã‚‹)
-* ç§»æ¤æ€§ãŒé«˜ã„.多ãã®Unix-like/POSIX互æ›ãƒ—ラットフォーム上ã§å‹•ãã ã‘ã§ãªã,Windows, macOS,
- Haikuãªã©ã®ä¸Šã§ã‚‚å‹•ã cf.
- https://github.com/ruby/ruby/blob/master/doc/contributing.rdoc#platform-maintainers
-
-
-## 入手法
-
-サードパーティーツールを使ã£ãŸæ–¹æ³•ã‚’å«ã‚€Rubyã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«æ–¹æ³•ã®ä¸€è¦§ã¯
-
-https://www.ruby-lang.org/ja/downloads/
-
-ã‚’å‚ç…§ã—ã¦ãã ã•ã„.
-
-### Git
-
-ミラーをGitHubã«å…¬é–‹ã—ã¦ã„ã¾ã™ï¼Ž 以下ã®ã‚³ãƒžãƒ³ãƒ‰ã§ãƒªãƒã‚¸ãƒˆãƒªã‚’å–å¾—ã§ãã¾ã™ï¼Ž
-
- $ git clone https://github.com/ruby/ruby.git
-
-ä»–ã®ãƒ–ランãƒã®ä¸€è¦§ã¯æ¬¡ã®ã‚³ãƒžãƒ³ãƒ‰ã§è¦‹ã‚‰ã‚Œã¾ã™ï¼Ž
-
- $ git ls-remote https://github.com/ruby/ruby.git
-
-Rubyリãƒã‚¸ãƒˆãƒªã®æœ¬æ¥ã®master㯠https://git.ruby-lang.org/ruby.git ã«ã‚りã¾ã™ï¼Ž
-コミッタã¯ã“ã¡ã‚‰ã‚’使ã„ã¾ã™ï¼Ž
-
-### Subversion
-
-å¤ã„Rubyã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã¯æ¬¡ã®ã‚³ãƒžãƒ³ãƒ‰ã§ã‚‚å–å¾—ã§ãã¾ã™ï¼Ž
-
- $ svn co https://svn.ruby-lang.org/repos/ruby/branches/ruby_2_6/ ruby
-
-ä»–ã®ãƒ–ランãƒã®ä¸€è¦§ã¯æ¬¡ã®ã‚³ãƒžãƒ³ãƒ‰ã§è¦‹ã‚‰ã‚Œã¾ã™ï¼Ž
-
- $ svn ls https://svn.ruby-lang.org/repos/ruby/branches/
-
-
-## ホームページ
-
-Rubyã®ãƒ›ãƒ¼ãƒ ãƒšãƒ¼ã‚¸ã®URLã¯
-
-https://www.ruby-lang.org/
-
-ã§ã™ï¼Ž
-
-## メーリングリスト
-
-Rubyã®ãƒ¡ãƒ¼ãƒªãƒ³ã‚°ãƒªã‚¹ãƒˆãŒã‚りã¾ã™ï¼Žå‚åŠ å¸Œæœ›ã®æ–¹ã¯ [ruby-list-request@ruby-lang.org] ã¾ã§æœ¬æ–‡ã«
-
- subscribe
-
-ã¨æ›¸ã„ã¦é€ã£ã¦ä¸‹ã•ã„.
-
-Ruby開発者å‘ã‘メーリングリストもã‚りã¾ã™ï¼Žã“ã¡ã‚‰ã§ã¯rubyã®ãƒã‚°ï¼Œå°†æ¥ã®ä»•様拡張ãªã©å®Ÿè£…上ã®å•題ã«ã¤ã„ã¦è­°è«–ã•れã¦ã„ã¾ã™ï¼Ž
-å‚åŠ å¸Œæœ›ã®æ–¹ã¯ [ruby-dev-request@ruby-lang.org] ã¾ã§ruby-listã¨åŒæ§˜ã®æ–¹æ³•ã§ãƒ¡ãƒ¼ãƒ«ã—ã¦ãã ã•ã„.
-
-Ruby拡張モジュールã«ã¤ã„ã¦è©±ã—åˆã†ruby-extãƒ¡ãƒ¼ãƒªãƒ³ã‚°ãƒªã‚¹ãƒˆã¨æ•°å­¦é–¢ä¿‚ã®è©±é¡Œã«ã¤ã„ã¦è©±ã—åˆã†ruby-mathメーリングリストã¨
-英語ã§rubyã«ã¤ã„ã¦è©±ã—åˆã†ruby-talkメーリングリストもã‚りã¾ã™ï¼Žå‚加方法ã¯ã©ã‚Œã‚‚åŒã˜ã§ã™ï¼Ž
-
-[ruby-list-request@ruby-lang.org]: mailto:ruby-list-request@ruby-lang.org?subject=Join%20Ruby%20Mailing%20List&body=subscribe
-[ruby-dev-request@ruby-lang.org]: mailto:ruby-dev-request@ruby-lang.org?subject=Join%20Ruby%20Mailing%20List&body=subscribe
-
-## コンパイル・インストール
-
-ä»¥ä¸‹ã®æ‰‹é †ã§è¡Œã£ã¦ãã ã•ã„.
-
-1. (Gitリãƒã‚¸ãƒˆãƒªã‹ã‚‰å–å¾—ã—ãŸã‚½ãƒ¼ã‚¹ã‚’ビルドã™ã‚‹å ´åˆ) `./autogen.sh` を実行ã—ã¦æ–°ã—ã `configure` を生æˆã™ã‚‹
-
-2. `configure` を実行ã—㦠`Makefile` ãªã©ã‚’生æˆã™ã‚‹
-
- 環境ã«ã‚ˆã£ã¦ã¯ãƒ‡ãƒ•ォルトã®Cコンパイラ用オプションãŒä»˜ãã¾ã™ï¼Ž `configure` オプション㧠`optflags=..`
- `warnflags=..` ç­‰ã§ä¸Šæ›¸ãã§ãã¾ã™ï¼Ž
-
-3. (å¿…è¦ãªã‚‰ã°)`include/ruby/defines.h` を編集ã™ã‚‹
-
- 多分,必è¦ç„¡ã„ã¨æ€ã„ã¾ã™ï¼Ž
-
-4. (å¿…è¦ãªã‚‰ã°)`ext/Setup` ã«é™çš„ã«ãƒªãƒ³ã‚¯ã™ã‚‹æ‹¡å¼µãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’指定ã™ã‚‹
-
- `ext/Setup` ã«è¨˜è¿°ã—ãŸãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã¯é™çš„ã«ãƒªãƒ³ã‚¯ã•れã¾ã™ï¼Ž
-
- ダイナミックローディングをサãƒãƒ¼ãƒˆã—ã¦ã„ãªã„アーキテクãƒãƒ£ã§ã¯ `Setup` ã®1行目ã®ã€Œ`option nodynamic`ã€ã¨ã„ã†è¡Œã®ã‚³
- メントを外ã™å¿…è¦ãŒã‚りã¾ã™ï¼Ž
- ã¾ãŸï¼Œã“ã®ã‚¢ãƒ¼ã‚­ãƒ†ã‚¯ãƒãƒ£ã§æ‹¡å¼µãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’利用ã™ã‚‹ãŸã‚ã«ã¯ï¼Œã‚らã‹ã˜ã‚é™çš„ã«ãƒªãƒ³ã‚¯ã‚’ã—ã¦ãŠãå¿…è¦ãŒã‚りã¾ã™ï¼Ž
-
-5. `make` を実行ã—ã¦ã‚³ãƒ³ãƒ‘イルã™ã‚‹
-
-6. `make check`ã§ãƒ†ã‚¹ãƒˆã‚’行ã†ï¼Ž
-
- 「`check succeeded`ã€ã¨è¡¨ç¤ºã•ã‚Œã‚Œã°æˆåŠŸã§ã™ï¼ŽãŸã ã—ãƒ†ã‚¹ãƒˆã«æˆåŠŸã—ã¦ã‚‚完璧ã ã¨ä¿è¨¼ã•れã¦ã„る訳ã§ã¯ã‚りã¾ã›ã‚“.
-
-7. `make install`
-
- 以下ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’作ã£ã¦ï¼Œãã“ã«ãƒ•ァイルをインストー ルã—ã¾ã™ï¼Ž
-
- * `${DESTDIR}${prefix}/bin`
- * `${DESTDIR}${prefix}/include/ruby-${MAJOR}.${MINOR}.${TEENY}`
- * `${DESTDIR}${prefix}/include/ruby-${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}`
- * `${DESTDIR}${prefix}/lib`
- * `${DESTDIR}${prefix}/lib/ruby`
- * `${DESTDIR}${prefix}/lib/ruby/${MAJOR}.${MINOR}.${TEENY}`
- * `${DESTDIR}${prefix}/lib/ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}`
- * `${DESTDIR}${prefix}/lib/ruby/site_ruby`
- * `${DESTDIR}${prefix}/lib/ruby/site_ruby/${MAJOR}.${MINOR}.${TEENY}`
- * `${DESTDIR}${prefix}/lib/ruby/site_ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}`
- * `${DESTDIR}${prefix}/lib/ruby/vendor_ruby`
- * `${DESTDIR}${prefix}/lib/ruby/vendor_ruby/${MAJOR}.${MINOR}.${TEENY}`
- * `${DESTDIR}${prefix}/lib/ruby/vendor_ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}`
- * `${DESTDIR}${prefix}/lib/ruby/gems/${MAJOR}.${MINOR}.${TEENY}`
- * `${DESTDIR}${prefix}/share/man/man1`
- * `${DESTDIR}${prefix}/share/ri/${MAJOR}.${MINOR}.${TEENY}/system`
-
-
- Rubyã®APIãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŒ'*x.y.z*'ã§ã‚れã°ï¼Œ`${MAJOR}`ã¯
- '*x*'ã§ï¼Œ`${MINOR}`ã¯'*y*',`${TEENY}`ã¯'*z*'ã§ã™ï¼Ž
-
- **注æ„**: APIãƒãƒ¼ã‚¸ãƒ§ãƒ³ã® `teeny` ã¯ï¼ŒRubyプログラムã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã¨ã¯ç•°ãªã‚‹ã“ã¨ãŒã‚りã¾ã™ï¼Ž
-
- `root` ã§ä½œæ¥­ã™ã‚‹å¿…è¦ãŒã‚ã‚‹ã‹ã‚‚ã—れã¾ã›ã‚“.
-
-
-ã‚‚ã—,コンパイル時ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸå ´åˆã«ã¯ã‚¨ãƒ©ãƒ¼ã®ãƒ­ã‚°ã¨ãƒžã‚·ãƒ³ï¼ŒOSã®ç¨®é¡žã‚’å«ã‚€ã§ãã‚‹ã ã‘詳ã—ã„レãƒãƒ¼ãƒˆã‚’作者ã«é€ã£ã¦ä¸‹ã•ã‚‹ã¨ä»–ã®æ–¹ã®ãŸã‚ã«ã‚‚ãªã‚Šã¾ã™ï¼Ž
-
-## ç§»æ¤
-
-UNIXã§ã‚れ㰠`configure` ãŒã»ã¨ã‚“ã©ã®å·®ç•°ã‚’å¸åŽã—ã¦ãれるã¯ãšã§ã™ãŒï¼Œæ€ã‚ã¬è¦‹è½ã¨ã—ãŒã‚ã£ãŸå ´åˆ(ã‚る事ãŒå¤šã„),作者ã«ãã®
-ã“ã¨ã‚’報告ã™ã‚Œã°ï¼Œè§£æ±ºã§ãã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ï¼Ž
-
-アーキテクãƒãƒ£ã«ã‚‚ã£ã¨ã‚‚ä¾å­˜ã™ã‚‹ã®ã¯GC部ã§ã™ï¼ŽRubyã®GCã¯å¯¾è±¡
-ã®ã‚¢ãƒ¼ã‚­ãƒ†ã‚¯ãƒãƒ£ãŒ`setjmp()`ã¾ãŸã¯`getcontext()`ã«ã‚ˆã£ã¦å…¨ã¦ã®ãƒ¬ã‚¸ã‚¹ã‚¿ã‚’ `jmp_buf` ã‚„ `ucontext_t`
-ã«æ ¼ç´ã™ã‚‹ã“ã¨ã¨ï¼Œ `jmp_buf` ã‚„ `ucontext_t` ã¨ã‚¹ã‚¿ãƒƒã‚¯ãŒ32bitアラインメントã•れã¦ã„ã‚‹ã“ã¨ã‚’仮定
-ã—ã¦ã„ã¾ã™ï¼Žç‰¹ã«å‰è€…ãŒæˆç«‹ã—ãªã„å ´åˆã®å¯¾å¿œã¯éžå¸¸ã«å›°é›£ã§ã—ょã†ï¼Ž 後者ã®è§£æ±ºã¯æ¯”較的簡å˜ã§ï¼Œ `gc.c` ã§ã‚¹ã‚¿ãƒƒã‚¯ã‚’マークã—ã¦ã„ã‚‹
-部分ã«ã‚¢ãƒ©ã‚¤ãƒ³ãƒ¡ãƒ³ãƒˆã®ãƒã‚¤ãƒˆæ•°ã ã‘ãšã‚‰ã—ã¦ãƒžãƒ¼ã‚¯ã™ã‚‹ã‚³ãƒ¼ãƒ‰ã‚’追加ã™ã‚‹ã ã‘ã§æ¸ˆã¿ã¾ã™ï¼Ž`defined(__mc68000__)`ã§æ‹¬ã‚‰ã‚Œã¦ã„
-る部分をå‚考ã«ã—ã¦ãã ã•ã„.
-
-レジスタウィンドウをæŒã¤CPUã§ã¯ï¼Œãƒ¬ã‚¸ã‚¹ã‚¿ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’スタックã«ãƒ•ラッシュã™ã‚‹ã‚¢ã‚»ãƒ³ãƒ–ラコードを追加ã™ã‚‹å¿…è¦ãŒã‚ã‚‹ã‹ã‚‚ã—れã¾ã›ã‚“.
-
-## é…布æ¡ä»¶
-
-[COPYING.ja](COPYING.ja) ファイルをå‚ç…§ã—ã¦ãã ã•ã„.
-
-## フィードãƒãƒƒã‚¯
-
-Rubyã«é–¢ã™ã‚‹è³ªå•㯠[Ruby-Talk](英語)や [Ruby-List](日本語)や,
-[stackoverflow] ãªã©ã®Webã‚µã‚¤ãƒˆã«æŠ•ç¨¿ã—ã¦ãã ã•ã„.
-
-ãƒã‚°å ±å‘Šã¯ https://bugs.ruby-lang.org ã§å—ã‘付ã‘ã¦ã„ã¾ã™ï¼Ž
-
-[Ruby-Talk]: https://www.ruby-lang.org/en/community/mailing-lists
-[Ruby-List]: https://www.ruby-lang.org/ja/community/mailing-lists
-[stackoverflow]: https://ja.stackoverflow.com/
-
-## 著者
-
-Rubyã®ã‚ªãƒªã‚¸ãƒŠãƒ«ç‰ˆã¯ï¼Œ1995å¹´ã«ã¾ã¤ã‚‚ã¨ã‚†ãã²ã‚æ°ã«ã‚ˆã£ã¦è¨­è¨ˆãƒ»é–‹ç™ºã•れã¾ã—ãŸï¼Ž
-
-<mailto:matz@ruby-lang.org>
diff --git a/README.jp b/README.jp
new file mode 100644
index 0000000000..19e5e0c896
--- /dev/null
+++ b/README.jp
@@ -0,0 +1,196 @@
+* Ruby¤È¤Ï
+
+Ruby¤Ï¥·¥ó¥×¥ë¤«¤Ä¶¯ÎϤʥª¥Ö¥¸¥§¥¯¥È»Ø¸þ¥¹¥¯¥ê¥×¥È¸À¸ì¤Ç¤¹¡¥
+Ruby¤ÏºÇ½é¤«¤é½ã¿è¤Ê¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¸À¸ì¤È¤·¤ÆÀ߷פµ¤ì¤Æ¤¤¤Þ
+¤¹¤«¤é¡¤¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¥×¥í¥°¥é¥ß¥ó¥°¤ò¼ê·Ú¤Ë¹Ô¤¦»ö¤¬½ÐÍè¤Þ
+¤¹¡¥¤â¤Á¤í¤óÄ̾ï¤Î¼ê³¤­·¿¤Î¥×¥í¥°¥é¥ß¥ó¥°¤â²Äǽ¤Ç¤¹¡¥
+
+Ruby¤Ï¥Æ¥­¥¹¥È½èÍý´Ø·¸¤ÎǽÎϤʤɤËÍ¥¤ì¡¤Perl¤ÈƱ¤¸¤¯¤é¤¤¶¯ÎÏ
+¤Ç¤¹¡¥¤µ¤é¤Ë¥·¥ó¥×¥ë¤Êʸˡ¤È¡¤Îã³°½èÍý¤ä¥¤¥Æ¥ì¡¼¥¿¤Ê¤É¤Îµ¡¹½
+¤Ë¤è¤Ã¤Æ¡¤¤è¤êʬ¤«¤ê¤ä¤¹¤¤¥×¥í¥°¥é¥ß¥ó¥°¤¬½ÐÍè¤Þ¤¹¡¥
+
+
+* Ruby¤ÎÆÃĹ¡¥
+
+ + ¥·¥ó¥×¥ë¤Êʸˡ
+ + ÉáÄ̤Υª¥Ö¥¸¥§¥¯¥È»Ø¸þµ¡Ç½(¥¯¥é¥¹¡¤¥á¥½¥Ã¥É¥³¡¼¥ë¤Ê¤É)
+ + ÆÃ¼ì¤Ê¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þµ¡Ç½(Mixin, ÆÃ°Û¥á¥½¥Ã¥É¤Ê¤É)
+ + ±é»»»Ò¥ª¡¼¥Ð¡¼¥í¡¼¥É
+ + Îã³°½èÍýµ¡Ç½
+ + ¥¤¥Æ¥ì¡¼¥¿¤È¥¯¥í¡¼¥¸¥ã
+ + ¥¬¡¼¥Ù¡¼¥¸¥³¥ì¥¯¥¿
+ + ¥À¥¤¥Ê¥ß¥Ã¥¯¥í¡¼¥Ç¥£¥ó¥° (¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤è¤ë)
+ + °Ü¿¢À­¤¬¹â¤¤¡¥Â¿¤¯¤ÎUNIX¾å¤Çư¤¯¤À¤±¤Ç¤Ê¤¯¡¤DOS¤äWindows¡¤
+ Mac¡¤BeOS¤Ê¤É¤Î¾å¤Ç¤âư¤¯
+
+
+* Æþ¼êË¡
+
+** ftp¤Ç
+
+°Ê²¼¤Î¾ì½ê¤Ë¤ª¤¤¤Æ¤¢¤ê¤Þ¤¹¡¥
+
+ ftp://ftp.netlab.co.jp/pub/lang/ruby/
+
+** CVS¤Ç
+
+ $ cvs -d :pserver:anonymous@cvs.netlab.co.jp:/home/cvs login
+ (Logging in to anonymous@cvs.netlab.co.jp)
+ CVS password: guest
+ $ cvs -d :pserver:anonymous@cvs.netlab.co.jp:/home/cvs checkout ruby
+
+
+* ¥Û¡¼¥à¥Ú¡¼¥¸
+
+Ruby¤Î¥Û¡¼¥à¥Ú¡¼¥¸¤ÎURL¤Ï
+
+ http://www.netlab.co.jp/ruby/jp/
+
+¤Ç¤¹¡¥
+
+
+* ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È
+
+Ruby¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤¬¤¢¤ê¤Þ¤¹¡£»²²Ã´õ˾¤ÎÊý¤Ï
+
+ ruby-list-ctl@netlab.co.jp
+
+¤Þ¤ÇËÜʸ¤Ë
+
+ subscribe YourFirstName YourFamilyName
+
+¤È½ñ¤¤¤ÆÁ÷¤Ã¤Æ²¼¤µ¤¤¡£
+
+Ruby³«È¯¼Ô¸þ¤±¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤â¤¢¤ê¤Þ¤¹¡£¤³¤Á¤é¤Ç¤Ïruby¤Î¥Ð
+¥°¡¢¾­Íè¤Î»ÅÍͳÈÄ¥¤Ê¤É¼ÂÁõ¾å¤ÎÌäÂê¤Ë¤Ä¤¤¤ÆµÄÏÀ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
+»²²Ã´õ˾¤ÎÊý¤Ï
+
+ ruby-dev-ctl@netlab.co.jp
+
+¤Þ¤Çruby-list¤ÈƱÍͤÎÊýË¡¤Ç¥á¡¼¥ë¤·¤Æ¤¯¤À¤µ¤¤¡£
+
+Ruby³ÈÄ¥¥â¥¸¥å¡¼¥ë¤Ë¤Ä¤¤¤ÆÏ䷹礦ruby-ext¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤È
+±Ñ¸ì¤ÇÏ䷹礦ruby-talk¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤â¤¢¤ê¤Þ¤¹¡£»²²ÃÊýË¡
+¤Ï¤É¤ì¤âƱ¤¸¤Ç¤¹¡£
+
+
+* ¥³¥ó¥Ñ¥¤¥ë¡¦¥¤¥ó¥¹¥È¡¼¥ë
+
+°Ê²¼¤Î¼ê½ç¤Ç¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡¥
+
+ 1. configure¤ò¼Â¹Ô¤·¤ÆMakefile¤Ê¤É¤òÀ¸À®¤¹¤ë
+
+ 2. (ɬÍפʤé¤Ð)defines.h¤òÊÔ½¸¤¹¤ë
+
+ ¿ʬ¡¤É¬Í×̵¤¤¤È»×¤¤¤Þ¤¹¡¥
+
+ 3. (ɬÍפʤé¤Ð)ext/Setup¤ËÀÅŪ¤Ë¥ê¥ó¥¯¤¹¤ë³ÈÄ¥¥â¥¸¥å¡¼¥ë¤ò
+ »ØÄꤹ¤ë
+
+ ext/Setup¤Ëµ­½Ò¤·¤¿¥â¥¸¥å¡¼¥ë¤ÏÀÅŪ¤Ë¥ê¥ó¥¯¤µ¤ì¤Þ¤¹¡¥
+
+ ¥À¥¤¥Ê¥ß¥Ã¥¯¥í¡¼¥Ç¥£¥ó¥°¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¥¢¡¼¥­¥Æ¥¯
+ ¥Á¥ã¤Ç¤ÏSetup¤Î1¹ÔÌܤΡÖoption nodynamic¡×¤È¤¤¤¦¹Ô¤Î¥³
+ ¥á¥ó¥È¤ò³°¤¹É¬Íפ¬¤¢¤ê¤Þ¤¹¡¥¤Þ¤¿¡¤¤³¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç
+ ³ÈÄ¥¥â¥¸¥å¡¼¥ë¤òÍøÍѤ¹¤ë¤¿¤á¤Ë¤Ï¡¤¤¢¤é¤«¤¸¤áÀÅŪ¤Ë¥ê¥ó
+ ¥¯¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡¥
+
+ 4. make¤ò¼Â¹Ô¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë
+
+ 5. make test¤Ç¥Æ¥¹¥È¤ò¹Ô¤¦¡¥
+
+ ¡Ötest succeeded¡×¤Èɽ¼¨¤µ¤ì¤ì¤ÐÀ®¸ù¤Ç¤¹¡¥¤¿¤À¤·¥Æ¥¹¥È
+ ¤ËÀ®¸ù¤·¤Æ¤â´°àú¤À¤ÈÊݾڤµ¤ì¤Æ¤¤¤ëÌõ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡¥
+
+ 6. make install
+
+ root¤Çºî¶È¤¹¤ëɬÍפ¬¤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡¥
+
+¤â¤·¡¤¥³¥ó¥Ñ¥¤¥ë»þ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ë¤Ï¥¨¥é¡¼¤Î¥í¥°¤È¥Þ
+¥·¥ó¡¤OS¤Î¼ïÎà¤ò´Þ¤à¤Ç¤­¤ë¤À¤±¾Ü¤·¤¤¥ì¥Ý¡¼¥È¤òºî¼Ô¤ËÁ÷¤Ã¤Æ¤¯
+¤À¤µ¤ë¤È¾¤ÎÊý¤Î¤¿¤á¤Ë¤â¤Ê¤ê¤Þ¤¹¡¥
+
+
+* °Ü¿¢
+
+UNIX¤Ç¤¢¤ì¤Ðconfigure¤¬¤Û¤È¤ó¤É¤Îº¹°Û¤òµÛ¼ý¤·¤Æ¤¯¤ì¤ë¤Ï¤º¤Ç
+¤¹¤¬¡¤»×¤ï¤Ì¸«Íî¤È¤·¤¬¤¢¤Ã¤¿¾ì¹ç(¤¢¤ë¤Ë°ã¤¤¤Ê¤¤)¡¤ºî¼Ô¤Ë¤½¤Î
+¤³¤È¤ò¥ì¥Ý¡¼¥È¤¹¤ì¤Ð¡¤²ò·è¤Ç¤­¤ë¤«¤âÃΤì¤Þ¤»¤ó¡¥
+
+¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤â¤Ã¤È¤â°Í¸¤¹¤ë¤Î¤ÏGCÉô¤Ç¤¹¡¥Ruby¤ÎGC¤ÏÂоÝ
+¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤¬setjmp()¤Ë¤è¤Ã¤ÆÁ´¤Æ¤Î¥ì¥¸¥¹¥¿¤ò jmp_buf¤Ë
+³ÊǼ¤¹¤ë¤³¤È¤È¡¤jmp_buf¤È¥¹¥¿¥Ã¥¯¤¬32bit¥¢¥é¥¤¥ó¥á¥ó¥È¤µ¤ì¤Æ
+¤¤¤ë¤³¤È¤ò²¾Äꤷ¤Æ¤¤¤Þ¤¹¡¥ÆÃ¤ËÁ°¼Ô¤¬À®Î©¤·¤Ê¤¤¾ì¹ç¤ÎÂбþ¤ÏÈó
+¾ï¤Ëº¤Æñ¤Ç¤·¤ç¤¦¡¥¸å¼Ô¤Î²ò·è¤ÏÈæ³ÓŪ´Êñ¤Ç¡¤gc.c¤Ç¥¹¥¿¥Ã¥¯¤ò
+¥Þ¡¼¥¯¤·¤Æ¤¤¤ëÉôʬ¤Ë¥¢¥é¥¤¥ó¥á¥ó¥È¤Î¥Ð¥¤¥È¿ô¤À¤±¤º¤é¤·¤Æ¥Þ¡¼
+¥¯¤¹¤ë¥³¡¼¥É¤òÄɲ乤ë¤À¤±¤ÇºÑ¤ß¤Þ¤¹¡¥¡Ödefined(THINK_C)¡×¤Ç
+³ç¤é¤ì¤Æ¤¤¤ëÉôʬ¤ò»²¹Í¤Ë¤·¤Æ¤¯¤À¤µ¤¤
+
+# ¼ÂºÝ¤Ë¤ÏRuby¤ÏThink C¤Ç¤Ï¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Þ¤»¤ó¡¥
+
+¥ì¥¸¥¹¥¿¥¦¥£¥ó¥É¥¦¤ò»ý¤ÄCPU¤Ç¤Ï¡¤¥ì¥¸¥¹¥¿¥¦¥£¥ó¥É¥¦¤ò¥¹¥¿¥Ã
+¥¯¤Ë¥Õ¥é¥Ã¥·¥å¤¹¤ë¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤òÄɲ乤ëɬÍפ¬¤¢¤ë¤«¤âÃÎ
+¤ì¤Þ¤»¤ó¡¥
+
+
+* ÇÛÉÛ¾ò·ï
+
+Ruby¤Ï¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢¤Ç¤¹¡¥GPL(the GNU General Public
+License)¤Þ¤¿¤Ï°Ê²¼¤Ë¼¨¤¹¾ò·ï¤ÇRuby¤òºÆÇÛÉۤǤ­¤Þ¤¹¡¥GPL¤Ë¤Ä
+¤¤¤Æ¤ÏCOPYING¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ²¼¤µ¤¤¡¥
+
+ 1. Ê£À½¤ÏÀ©¸Â¤Ê¤¯¼«Í³¤Ç¤¹¡¥
+
+ 2. °Ê²¼¤Î¾ò·ï¤Î¤¤¤º¤ì¤«¤òËþ¤¿¤¹»þ¤Ë¼ê¸µ¤ÎRuby¤Î¥½¡¼¥¹¤ò¼«
+ ͳ¤ËÊѹ¹¤Ç¤­¤Þ¤¹¡¥
+
+ (a) ¥Í¥Ã¥È¥Ë¥å¡¼¥º¤Ë¥Ý¥¹¥È¤·¤¿¤ê¡¤ºî¼Ô¤ËÊѹ¹¤òÁ÷ÉÕ¤¹¤ë
+ ¤Ê¤É¤ÎÊýË¡¤Ç¡¤Êѹ¹¤ò¸ø³«¤¹¤ë¡¥
+
+ (b) Êѹ¹¤·¤¿Ruby¤ò¼«Ê¬¤Î½ê°¤¹¤ëÁÈ¿¥ÆâÉô¤À¤±¤Ç»È¤¦¡¥
+
+ (c) Êѹ¹ÅÀ¤òÌÀ¼¨¤·¤¿¤¦¤¨¡¤¥½¥Õ¥È¥¦¥§¥¢¤Î̾Á°¤òÊѹ¹¤¹¤ë¡¥
+ ¤½¤Î¥½¥Õ¥È¥¦¥§¥¢¤òÇÛÉÛ¤¹¤ë»þ¤Ë¤ÏÊѹ¹Á°¤ÎRuby¤âƱ»þ
+ ¤ËÇÛÉÛ¤¹¤ë¡¥¤Þ¤¿¤ÏÊѹ¹Á°¤ÎRuby¤Î¥½¡¼¥¹¤ÎÆþ¼êË¡¤òÌÀ
+ ¼¨¤¹¤ë¡¥
+
+ (d) ¤½¤Î¾¤ÎÊѹ¹¾ò·ï¤òºî¼Ô¤È¹ç°Õ¤¹¤ë¡¥
+
+ 3. °Ê²¼¤Î¾ò·ï¤Î¤¤¤º¤ì¤«¤òËþ¤¿¤¹»þ¤ËRuby¤ò¥ª¥Ö¥¸¥§¥¯¥È¥³¡¼
+ ¥É¤ä¼Â¹Ô·Á¼°¤Ç¤âÇÛÉۤǤ­¤Þ¤¹¡¥
+
+ (a) ¥Ð¥¤¥Ê¥ê¤ò¼õ¤±¼è¤Ã¤¿¿Í¤¬¥½¡¼¥¹¤òÆþ¼ê¤Ç¤­¤ë¤è¤¦¤Ë¡¤
+ ¥½¡¼¥¹¤ÎÆþ¼êË¡¤òÌÀ¼¨¤¹¤ë¡¥
+
+ (b) µ¡³£²ÄÆÉ¤Ê¥½¡¼¥¹¥³¡¼¥É¤òźÉÕ¤¹¤ë¡¥
+
+ (c) Êѹ¹¤ò¹Ô¤Ã¤¿¥Ð¥¤¥Ê¥ê¤Ï̾Á°¤òÊѹ¹¤·¤¿¤¦¤¨¡¤¥ª¥ê¥¸¥Ê
+ ¥ë¤Î¥½¡¼¥¹¥³¡¼¥É¤ÎÆþ¼êË¡¤òÌÀ¼¨¤¹¤ë¡¥
+
+ (d) ¤½¤Î¾¤ÎÇÛÉÛ¾ò·ï¤òºî¼Ô¤È¹ç°Õ¤¹¤ë¡¥
+
+ 4. ¾¤Î¥×¥í¥°¥é¥à¤Ø¤Î°úÍѤϤ¤¤«¤Ê¤ëÌÜŪ¤Ç¤¢¤ì¼«Í³¤Ç¤¹¡¥¤¿
+ ¤À¤·¡¤Ruby¤Ë´Þ¤Þ¤ì¤ë¾¤Îºî¼Ô¤Ë¤è¤ë¥³¡¼¥É¤Ï¡¤¤½¤ì¤¾¤ì¤Î
+ ºî¼Ô¤Î°Õ¸þ¤Ë¤è¤ëÀ©¸Â¤¬²Ã¤¨¤é¤ì¤Þ¤¹¡¥¶ñÂÎŪ¤Ë¤Ïgc.c(°ìÉô)¡¤
+ util.c(°ìÉô)¡¤st.[ch]¡¤regex.[ch] ¤ª¤è¤Ó ./missing¥Ç¥£
+ ¥ì¥¯¥È¥ê²¼¤Î¥Õ¥¡¥¤¥ë·²¤¬³ºÅö¤·¤Þ¤¹¡¥¤½¤ì¤¾¤ì¤ÎÇÛÉÛ¾ò·ï
+ ¤Ê¤É¤ËÉÕ¤¤¤Æ¤Ï³Æ¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡¥
+
+ 5. Ruby¤Ø¤ÎÆþÎϤȤʤ륹¥¯¥ê¥×¥È¤ª¤è¤Ó¡¤Ruby¤«¤é¤Î½ÐÎϤθ¢
+ Íø¤ÏRuby¤Îºî¼Ô¤Ç¤Ï¤Ê¤¯¡¤¤½¤ì¤¾¤ì¤ÎÆþ½ÐÎϤòÀ¸À®¤·¤¿¿Í¤Ë
+ °¤·¤Þ¤¹¡¥¤Þ¤¿¡¤Ruby¤ËÁȤ߹þ¤à¤¿¤á¤Î³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤Ë¤Ä
+ ¤¤¤Æ¤âƱÍͤǤ¹¡¥
+
+ 6. Ruby¤Ï̵ÊݾڤǤ¹¡¥ºî¼Ô¤ÏRuby¤ò¥µ¥Ý¡¼¥È¤¹¤ë°Õ»Ö¤Ï¤¢¤ê¤Þ
+ ¤¹¤¬¡¤Ruby¼«¿È¤Î¥Ð¥°¤¢¤ë¤¤¤ÏRuby¥¹¥¯¥ê¥×¥È¤Î¥Ð¥°¤Ê¤É¤«
+ ¤éȯÀ¸¤¹¤ë¤¤¤«¤Ê¤ë»³²¤ËÂФ·¤Æ¤âÀÕǤ¤ò»ý¤Á¤Þ¤»¤ó¡¥
+
+
+* Ãø¼Ô
+
+¥³¥á¥ó¥È¡¤¥Ð¥°¥ì¥Ý¡¼¥È¤½¤Î¾¤Ï matz@netlab.co.jp ¤Þ¤Ç¡¥
+-------------------------------------------------------
+created at: Thu Aug 3 11:57:36 JST 1995
+Local variables:
+mode: indented-text
+end:
diff --git a/README.md b/README.md
deleted file mode 100644
index 9b5a553ffb..0000000000
--- a/README.md
+++ /dev/null
@@ -1,186 +0,0 @@
-[![Actions Status: MinGW](https://github.com/ruby/ruby/workflows/MinGW/badge.svg)](https://github.com/ruby/ruby/actions?query=workflow%3A"MinGW")
-[![Actions Status: MJIT](https://github.com/ruby/ruby/workflows/MJIT/badge.svg)](https://github.com/ruby/ruby/actions?query=workflow%3A"MJIT")
-[![Actions Status: Ubuntu](https://github.com/ruby/ruby/workflows/Ubuntu/badge.svg)](https://github.com/ruby/ruby/actions?query=workflow%3A"Ubuntu")
-[![Actions Status: Windows](https://github.com/ruby/ruby/workflows/Windows/badge.svg)](https://github.com/ruby/ruby/actions?query=workflow%3A"Windows")
-[![AppVeyor status](https://ci.appveyor.com/api/projects/status/0sy8rrxut4o0k960/branch/master?svg=true)](https://ci.appveyor.com/project/ruby/ruby/branch/master)
-[![Travis Status](https://app.travis-ci.com/ruby/ruby.svg?branch=master)](https://app.travis-ci.com/ruby/ruby)
-[![Cirrus Status](https://api.cirrus-ci.com/github/ruby/ruby.svg)](https://cirrus-ci.com/github/ruby/ruby/master)
-
-# What's Ruby
-
-Ruby is an interpreted object-oriented programming language often
-used for web development. It also offers many scripting features
-to process plain text and serialized files, or manage system tasks.
-It is simple, straightforward, and extensible.
-
-## Features of Ruby
-
-* Simple Syntax
-* **Normal** Object-oriented Features (e.g. class, method calls)
-* **Advanced** Object-oriented Features (e.g. mix-in, singleton-method)
-* Operator Overloading
-* Exception Handling
-* Iterators and Closures
-* Garbage Collection
-* Dynamic Loading of Object Files (on some architectures)
-* Highly Portable (works on many Unix-like/POSIX compatible platforms as
- well as Windows, macOS, etc.) cf.
- https://github.com/ruby/ruby/blob/master/doc/maintainers.rdoc#label-Platform+Maintainers
-
-
-## How to get Ruby
-
-For a complete list of ways to install Ruby, including using third-party tools
-like rvm, see:
-
-https://www.ruby-lang.org/en/downloads/
-
-### Git
-
-The mirror of the Ruby source tree can be checked out with the following command:
-
- $ git clone https://github.com/ruby/ruby.git
-
-There are some other branches under development. Try the following command
-to see the list of branches:
-
- $ git ls-remote https://github.com/ruby/ruby.git
-
-You may also want to use https://git.ruby-lang.org/ruby.git (actual master of Ruby source)
-if you are a committer.
-
-### Subversion
-
-Stable branches for older Ruby versions can be checked out with also the
-following command:
-
- $ svn co https://svn.ruby-lang.org/repos/ruby/branches/ruby_2_6/ ruby
-
-Try the following command to see the list of branches:
-
- $ svn ls https://svn.ruby-lang.org/repos/ruby/branches/
-
-
-## Ruby home page
-
-https://www.ruby-lang.org/
-
-## Mailing list
-
-There is a mailing list to discuss Ruby. To subscribe to this list, please
-send the following phrase:
-
- subscribe
-
-in the mail body (not subject) to the address [ruby-talk-request@ruby-lang.org].
-
-[ruby-talk-request@ruby-lang.org]: mailto:ruby-talk-request@ruby-lang.org?subject=Join%20Ruby%20Mailing%20List&body=subscribe
-
-## Requirements to build from repository
-
-1. GNU or BSD make
-2. C99 compiler
-3. autoconf 2.67 or higher
-4. automake 1.15 or higher
-5. bison 2.3 or higher
-6. Ruby 2.2 or higher
-
-When building from a released version, only a C99 compiler and GNU or BSD make
-is required.
-
-## How to compile and install
-
-1. If you want to use Microsoft Visual C++ to compile Ruby, read
- [win32/README.win32](rdoc-ref:win32/README.win32) instead of this document.
-
-2. Run `./autogen.sh` to generate configure, when you build the source checked
- out from the Git repository.
-
-3. Run `./configure`, which will generate `config.h` and `Makefile`.
-
- Some C compiler flags may be added by default depending on your
- environment. Specify `optflags=..` and `warnflags=..` as necessary to
- override them.
-
-4. Edit `include/ruby/defines.h` if you need. Usually this step will not be needed.
-
-5. Optional: Remove comment mark(`#`) before the module names from `ext/Setup`.
-
- This step is only necessary if you want to link modules statically.
-
- If you don't want to compile dynamic extensions (probably on architectures
- which do not allow dynamic loading), remove comment mark from the line
- "`#option nodynamic`" in `ext/Setup`.
-
- Usually this step will not be needed.
-
-6. Run `make`.
-
- * On Mac, set RUBY\_CODESIGN environment variable with a signing identity.
- It uses the identity to sign `ruby` binary. See also codesign(1).
-
-7. Optionally, run '`make check`' to check whether the compiled Ruby
- interpreter works well. If you see the message "`check succeeded`", your
- Ruby works as it should (hopefully).
-
-8. Run '`make install`'.
-
- This command will create the following directories and install files into
- them.
-
- * `${DESTDIR}${prefix}/bin`
- * `${DESTDIR}${prefix}/include/ruby-${MAJOR}.${MINOR}.${TEENY}`
- * `${DESTDIR}${prefix}/include/ruby-${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}`
- * `${DESTDIR}${prefix}/lib`
- * `${DESTDIR}${prefix}/lib/ruby`
- * `${DESTDIR}${prefix}/lib/ruby/${MAJOR}.${MINOR}.${TEENY}`
- * `${DESTDIR}${prefix}/lib/ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}`
- * `${DESTDIR}${prefix}/lib/ruby/site_ruby`
- * `${DESTDIR}${prefix}/lib/ruby/site_ruby/${MAJOR}.${MINOR}.${TEENY}`
- * `${DESTDIR}${prefix}/lib/ruby/site_ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}`
- * `${DESTDIR}${prefix}/lib/ruby/vendor_ruby`
- * `${DESTDIR}${prefix}/lib/ruby/vendor_ruby/${MAJOR}.${MINOR}.${TEENY}`
- * `${DESTDIR}${prefix}/lib/ruby/vendor_ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}`
- * `${DESTDIR}${prefix}/lib/ruby/gems/${MAJOR}.${MINOR}.${TEENY}`
- * `${DESTDIR}${prefix}/share/man/man1`
- * `${DESTDIR}${prefix}/share/ri/${MAJOR}.${MINOR}.${TEENY}/system`
-
-
- If Ruby's API version is '*x.y.z*', the `${MAJOR}` is '*x*', the
- `${MINOR}` is '*y*', and the `${TEENY}` is '*z*'.
-
- **NOTE**: teeny of the API version may be different from one of Ruby's
- program version
-
- You may have to be a super user to install Ruby.
-
-If you fail to compile Ruby, please send the detailed error report with the
-error log and machine/OS type, to help others.
-
-Some extension libraries may not get compiled because of lack of necessary
-external libraries and/or headers, then you will need to run '`make distclean-ext`'
-to remove old configuration after installing them in such case.
-
-## Copying
-
-See the file [COPYING](rdoc-ref:COPYING).
-
-## Feedback
-
-Questions about the Ruby language can be asked on the [Ruby-Talk] mailing list
-or on websites like https://stackoverflow.com.
-
-Bugs should be reported at https://bugs.ruby-lang.org. Read [HowToReport] for more information.
-
-[Ruby-Talk]: https://www.ruby-lang.org/en/community/mailing-lists
-[HowToReport]: https://bugs.ruby-lang.org/projects/ruby/wiki/HowToReport
-
-## Contributing
-
-See the file [CONTRIBUTING.md](rdoc-ref:CONTRIBUTING)
-
-## The Author
-
-Ruby was originally designed and developed by Yukihiro Matsumoto (Matz) in 1995.
-
-<matz@ruby-lang.org>
diff --git a/ToDo b/ToDo
new file mode 100644
index 0000000000..45b463f34d
--- /dev/null
+++ b/ToDo
@@ -0,0 +1,59 @@
+Language Spec.
+
+* compile time string concatenation, "hello" "world" => "helloworld"
+* ../... outside condition invokes operator method too.
+* %w(a\ b\ c abc) => ["a b c", "abc"]
+* package or access control for global variables
+* class variable (prefix?)
+* named arguments like foo(nation:="german") or foo(nation: "german").
+* method to retrieve argument information (need new C API)
+* multiple return values, yield values. maybe incompatible ???
+* cascading method invocation ???
+* def Class#method .. end ??
+* class Foo::Bar<Baz .. end, module Boo::Bar .. end
+* def Foo::Bar::baz() .. end ??
+
+Hacking Interpreter
+
+* hash[key] = nil may not remove entry; hashes may have nil as the value.
+* RUBYOPT environment variable
+* non-blocking open (e.g. named pipe) for thread
+* avoid blocking with gethostbyname/gethostbyaddr
+* objectify interpreters
+* remove rb_eval() recursions
+* syntax tree -> bytecode ???
+* scrambled script, or script filter
+* setuid ruby
+
+Standard Libraries
+
+* Array#{first,last,at}
+* Struct::new([name,]member,...) ??
+* String#scanf(?)
+* Object#fmt(?)
+* Time::strptime
+* Integer[num], Float[num]; Fixnum[num]?
+* method to detect non-number trailer for to_i/to_f.
+* Stream or Port, abstract superclass of IO ?
+* String#{pred,prev}, String#downto
+* optional stepsize argument for succ()
+* Dir.glob(pat){|f|...}
+
+Extension Libraries
+
+* FastCGI ruby
+* ptk.rb pTk wrapper that is compatible to tk.rb
+
+Ruby Libraries
+
+* httplib.rb, urllib.rb, nttplib.rb, etc.
+* format like perl's
+
+Tools
+
+* extension library maker like XS or SWIG
+* freeze or undump to bundle everything
+
+Misc
+
+* publish Ruby books
diff --git a/addr2line.c b/addr2line.c
deleted file mode 100644
index f660be9129..0000000000
--- a/addr2line.c
+++ /dev/null
@@ -1,2818 +0,0 @@
-/**********************************************************************
-
- addr2line.c -
-
- $Author$
-
- Copyright (C) 2010 Shinichiro Hamaji
-
-**********************************************************************/
-
-#if defined(__clang__)
-#pragma clang diagnostic ignored "-Wgnu-empty-initializer"
-#pragma clang diagnostic ignored "-Wgcc-compat"
-#endif
-
-#include "ruby/internal/config.h"
-#include "ruby/defines.h"
-#include "ruby/missing.h"
-#include "addr2line.h"
-
-#include <stdio.h>
-#include <errno.h>
-
-#ifdef HAVE_LIBPROC_H
-#include <libproc.h>
-#endif
-
-#include "ruby/internal/stdbool.h"
-
-#if defined(USE_ELF) || defined(HAVE_MACH_O_LOADER_H)
-
-#include <fcntl.h>
-#include <limits.h>
-#include <stdio.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/mman.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <unistd.h>
-
-/* Make alloca work the best possible way. */
-#ifdef __GNUC__
-# ifndef alloca
-# define alloca __builtin_alloca
-# endif
-#else
-# ifdef HAVE_ALLOCA_H
-# include <alloca.h>
-# else
-# ifdef _AIX
-#pragma alloca
-# else
-# ifndef alloca /* predefined by HP cc +Olibcalls */
-void *alloca();
-# endif
-# endif /* AIX */
-# endif /* HAVE_ALLOCA_H */
-#endif /* __GNUC__ */
-
-#ifdef HAVE_DLADDR
-# include <dlfcn.h>
-#endif
-
-#ifdef HAVE_MACH_O_LOADER_H
-# include <crt_externs.h>
-# include <mach-o/fat.h>
-# include <mach-o/loader.h>
-# include <mach-o/nlist.h>
-# include <mach-o/stab.h>
-#endif
-
-#ifdef USE_ELF
-# ifdef __OpenBSD__
-# include <elf_abi.h>
-# else
-# include <elf.h>
-# endif
-
-#ifndef ElfW
-# if SIZEOF_VOIDP == 8
-# define ElfW(x) Elf64##_##x
-# else
-# define ElfW(x) Elf32##_##x
-# endif
-#endif
-#ifndef ELF_ST_TYPE
-# if SIZEOF_VOIDP == 8
-# define ELF_ST_TYPE ELF64_ST_TYPE
-# else
-# define ELF_ST_TYPE ELF32_ST_TYPE
-# endif
-#endif
-#endif
-
-#ifdef SHF_COMPRESSED
-# if defined(ELFCOMPRESS_ZLIB) && defined(HAVE_LIBZ)
- /* FreeBSD 11.0 lacks ELFCOMPRESS_ZLIB */
-# include <zlib.h>
-# define SUPPORT_COMPRESSED_DEBUG_LINE
-# endif
-#else /* compatibility with glibc < 2.22 */
-# define SHF_COMPRESSED 0
-#endif
-
-#ifndef PATH_MAX
-#define PATH_MAX 4096
-#endif
-
-#define DW_LNS_copy 0x01
-#define DW_LNS_advance_pc 0x02
-#define DW_LNS_advance_line 0x03
-#define DW_LNS_set_file 0x04
-#define DW_LNS_set_column 0x05
-#define DW_LNS_negate_stmt 0x06
-#define DW_LNS_set_basic_block 0x07
-#define DW_LNS_const_add_pc 0x08
-#define DW_LNS_fixed_advance_pc 0x09
-#define DW_LNS_set_prologue_end 0x0a /* DWARF3 */
-#define DW_LNS_set_epilogue_begin 0x0b /* DWARF3 */
-#define DW_LNS_set_isa 0x0c /* DWARF3 */
-
-/* Line number extended opcode name. */
-#define DW_LNE_end_sequence 0x01
-#define DW_LNE_set_address 0x02
-#define DW_LNE_define_file 0x03
-#define DW_LNE_set_discriminator 0x04 /* DWARF4 */
-
-PRINTF_ARGS(static int kprintf(const char *fmt, ...), 1, 2);
-
-typedef struct line_info {
- const char *dirname;
- const char *filename;
- const char *path; /* object path */
- int line;
-
- uintptr_t base_addr;
- uintptr_t saddr;
- const char *sname; /* function name */
-
- struct line_info *next;
-} line_info_t;
-
-struct dwarf_section {
- char *ptr;
- size_t size;
- uint64_t flags;
-};
-
-typedef struct obj_info {
- const char *path; /* object path */
- char *mapped;
- size_t mapped_size;
- void *uncompressed;
- uintptr_t base_addr;
- uintptr_t vmaddr;
- struct dwarf_section debug_abbrev;
- struct dwarf_section debug_info;
- struct dwarf_section debug_line;
- struct dwarf_section debug_ranges;
- struct dwarf_section debug_rnglists;
- struct dwarf_section debug_str;
- struct obj_info *next;
-} obj_info_t;
-
-#define DWARF_SECTION_COUNT 6
-
-static struct dwarf_section *
-obj_dwarf_section_at(obj_info_t *obj, int n)
-{
- struct dwarf_section *ary[] = {
- &obj->debug_abbrev,
- &obj->debug_info,
- &obj->debug_line,
- &obj->debug_ranges,
- &obj->debug_rnglists,
- &obj->debug_str
- };
- if (n < 0 || DWARF_SECTION_COUNT <= n) {
- abort();
- }
- return ary[n];
-}
-
-struct debug_section_definition {
- const char *name;
- struct dwarf_section *dwarf;
-};
-
-/* Avoid consuming stack as this module may be used from signal handler */
-static char binary_filename[PATH_MAX + 1];
-
-static unsigned long
-uleb128(const char **p)
-{
- unsigned long r = 0;
- int s = 0;
- for (;;) {
- unsigned char b = (unsigned char)*(*p)++;
- if (b < 0x80) {
- r += (unsigned long)b << s;
- break;
- }
- r += (b & 0x7f) << s;
- s += 7;
- }
- return r;
-}
-
-static long
-sleb128(const char **p)
-{
- long r = 0;
- int s = 0;
- for (;;) {
- unsigned char b = (unsigned char)*(*p)++;
- if (b < 0x80) {
- if (b & 0x40) {
- r -= (0x80 - b) << s;
- }
- else {
- r += (b & 0x3f) << s;
- }
- break;
- }
- r += (b & 0x7f) << s;
- s += 7;
- }
- return r;
-}
-
-static const char *
-get_nth_dirname(unsigned long dir, const char *p)
-{
- if (!dir--) {
- return "";
- }
- while (dir--) {
- while (*p) p++;
- p++;
- if (!*p) {
- kprintf("Unexpected directory number %lu in %s\n",
- dir, binary_filename);
- return "";
- }
- }
- return p;
-}
-
-static void
-fill_filename(int file, const char *include_directories, const char *filenames, line_info_t *line, obj_info_t *obj)
-{
- int i;
- const char *p = filenames;
- const char *filename;
- unsigned long dir;
- for (i = 1; i <= file; i++) {
- filename = p;
- if (!*p) {
- /* Need to output binary file name? */
- kprintf("Unexpected file number %d in %s at %tx\n",
- file, binary_filename, filenames - obj->mapped);
- return;
- }
- while (*p) p++;
- p++;
- dir = uleb128(&p);
- /* last modified. */
- uleb128(&p);
- /* size of the file. */
- uleb128(&p);
-
- if (i == file) {
- line->filename = filename;
- line->dirname = get_nth_dirname(dir, include_directories);
- }
- }
-}
-
-static void
-fill_line(int num_traces, void **traces, uintptr_t addr, int file, int line,
- const char *include_directories, const char *filenames,
- obj_info_t *obj, line_info_t *lines, int offset)
-{
- int i;
- addr += obj->base_addr - obj->vmaddr;
- for (i = offset; i < num_traces; i++) {
- uintptr_t a = (uintptr_t)traces[i];
- /* We assume one line code doesn't result >100 bytes of native code.
- We may want more reliable way eventually... */
- if (addr < a && a < addr + 100) {
- fill_filename(file, include_directories, filenames, &lines[i], obj);
- lines[i].line = line;
- }
- }
-}
-
-struct LineNumberProgramHeader {
- uint64_t unit_length;
- uint16_t version;
- uint8_t format; /* 4 or 8 */
- uint64_t header_length;
- uint8_t minimum_instruction_length;
- uint8_t maximum_operations_per_instruction;
- uint8_t default_is_stmt;
- int8_t line_base;
- uint8_t line_range;
- uint8_t opcode_base;
- /* uint8_t standard_opcode_lengths[opcode_base-1]; */
- const char *include_directories;
- const char *filenames;
- const char *cu_start;
- const char *cu_end;
-};
-
-static int
-parse_debug_line_header(const char **pp, struct LineNumberProgramHeader *header)
-{
- const char *p = *pp;
- header->unit_length = *(uint32_t *)p;
- p += sizeof(uint32_t);
-
- header->format = 4;
- if (header->unit_length == 0xffffffff) {
- header->unit_length = *(uint64_t *)p;
- p += sizeof(uint64_t);
- header->format = 8;
- }
-
- header->cu_end = p + header->unit_length;
-
- header->version = *(uint16_t *)p;
- p += sizeof(uint16_t);
- if (header->version > 4) return -1;
-
- header->header_length = header->format == 4 ? *(uint32_t *)p : *(uint64_t *)p;
- p += header->format;
- header->cu_start = p + header->header_length;
-
- header->minimum_instruction_length = *(uint8_t *)p++;
-
- if (header->version >= 4) {
- /* maximum_operations_per_instruction = *(uint8_t *)p; */
- if (*p != 1) return -1; /* For non-VLIW architectures, this field is 1 */
- p++;
- }
-
- header->default_is_stmt = *(uint8_t *)p++;
- header->line_base = *(int8_t *)p++;
- header->line_range = *(uint8_t *)p++;
- header->opcode_base = *(uint8_t *)p++;
- /* header->standard_opcode_lengths = (uint8_t *)p - 1; */
- p += header->opcode_base - 1;
-
- header->include_directories = p;
-
- /* temporary measure for compress-debug-sections */
- if (p >= header->cu_end) return -1;
-
- /* skip include directories */
- while (*p) {
- p = memchr(p, '\0', header->cu_end - p);
- if (!p) return -1;
- p++;
- }
- p++;
-
- header->filenames = p;
-
- *pp = header->cu_start;
-
- return 0;
-}
-
-static int
-parse_debug_line_cu(int num_traces, void **traces, const char **debug_line,
- obj_info_t *obj, line_info_t *lines, int offset)
-{
- const char *p = (const char *)*debug_line;
- struct LineNumberProgramHeader header;
-
- /* The registers. */
- unsigned long addr = 0;
- unsigned int file = 1;
- unsigned int line = 1;
- /* unsigned int column = 0; */
- int is_stmt;
- /* int basic_block = 0; */
- /* int end_sequence = 0; */
- /* int prologue_end = 0; */
- /* int epilogue_begin = 0; */
- /* unsigned int isa = 0; */
-
- if (parse_debug_line_header(&p, &header))
- return -1;
- is_stmt = header.default_is_stmt;
-
-#define FILL_LINE() \
- do { \
- fill_line(num_traces, traces, addr, file, line, \
- header.include_directories, \
- header.filenames, \
- obj, lines, offset); \
- /*basic_block = prologue_end = epilogue_begin = 0;*/ \
- } while (0)
-
- while (p < header.cu_end) {
- unsigned long a;
- unsigned char op = *p++;
- switch (op) {
- case DW_LNS_copy:
- FILL_LINE();
- break;
- case DW_LNS_advance_pc:
- a = uleb128(&p) * header.minimum_instruction_length;
- addr += a;
- break;
- case DW_LNS_advance_line: {
- long a = sleb128(&p);
- line += a;
- break;
- }
- case DW_LNS_set_file:
- file = (unsigned int)uleb128(&p);
- break;
- case DW_LNS_set_column:
- /*column = (unsigned int)*/(void)uleb128(&p);
- break;
- case DW_LNS_negate_stmt:
- is_stmt = !is_stmt;
- break;
- case DW_LNS_set_basic_block:
- /*basic_block = 1; */
- break;
- case DW_LNS_const_add_pc:
- a = ((255UL - header.opcode_base) / header.line_range) *
- header.minimum_instruction_length;
- addr += a;
- break;
- case DW_LNS_fixed_advance_pc:
- a = *(uint16_t *)p;
- p += sizeof(uint16_t);
- addr += a;
- break;
- case DW_LNS_set_prologue_end:
- /* prologue_end = 1; */
- break;
- case DW_LNS_set_epilogue_begin:
- /* epilogue_begin = 1; */
- break;
- case DW_LNS_set_isa:
- /* isa = (unsigned int)*/(void)uleb128(&p);
- break;
- case 0:
- a = uleb128(&p);
- op = *p++;
- switch (op) {
- case DW_LNE_end_sequence:
- /* end_sequence = 1; */
- FILL_LINE();
- addr = 0;
- file = 1;
- line = 1;
- /* column = 0; */
- is_stmt = header.default_is_stmt;
- /* end_sequence = 0; */
- /* isa = 0; */
- break;
- case DW_LNE_set_address:
- addr = *(unsigned long *)p;
- p += sizeof(unsigned long);
- break;
- case DW_LNE_define_file:
- kprintf("Unsupported operation in %s\n",
- binary_filename);
- break;
- case DW_LNE_set_discriminator:
- /* TODO:currently ignore */
- uleb128(&p);
- break;
- default:
- kprintf("Unknown extended opcode: %d in %s\n",
- op, binary_filename);
- }
- break;
- default: {
- uint8_t adjusted_opcode = op - header.opcode_base;
- uint8_t operation_advance = adjusted_opcode / header.line_range;
- /* NOTE: this code doesn't support VLIW */
- addr += operation_advance * header.minimum_instruction_length;
- line += header.line_base + (adjusted_opcode % header.line_range);
- FILL_LINE();
- }
- }
- }
- *debug_line = (char *)p;
- return 0;
-}
-
-static int
-parse_debug_line(int num_traces, void **traces,
- const char *debug_line, unsigned long size,
- obj_info_t *obj, line_info_t *lines, int offset)
-{
- const char *debug_line_end = debug_line + size;
- while (debug_line < debug_line_end) {
- if (parse_debug_line_cu(num_traces, traces, &debug_line, obj, lines, offset))
- return -1;
- }
- if (debug_line != debug_line_end) {
- kprintf("Unexpected size of .debug_line in %s\n",
- binary_filename);
- }
- return 0;
-}
-
-/* read file and fill lines */
-static uintptr_t
-fill_lines(int num_traces, void **traces, int check_debuglink,
- obj_info_t **objp, line_info_t *lines, int offset);
-
-static void
-append_obj(obj_info_t **objp)
-{
- obj_info_t *newobj = calloc(1, sizeof(obj_info_t));
- if (*objp) (*objp)->next = newobj;
- *objp = newobj;
-}
-
-#ifdef USE_ELF
-/* Ideally we should check 4 paths to follow gnu_debuglink:
- *
- * - /usr/lib/debug/.build-id/ab/cdef1234.debug
- * - /usr/bin/ruby.debug
- * - /usr/bin/.debug/ruby.debug
- * - /usr/lib/debug/usr/bin/ruby.debug.
- *
- * but we handle only two cases for now as the two formats are
- * used by some linux distributions.
- *
- * See GDB's info for detail.
- * https://sourceware.org/gdb/onlinedocs/gdb/Separate-Debug-Files.html
- */
-
-// check the path pattern of "/usr/lib/debug/usr/bin/ruby.debug"
-static void
-follow_debuglink(const char *debuglink, int num_traces, void **traces,
- obj_info_t **objp, line_info_t *lines, int offset)
-{
- static const char global_debug_dir[] = "/usr/lib/debug";
- const size_t global_debug_dir_len = sizeof(global_debug_dir) - 1;
- char *p;
- obj_info_t *o1 = *objp, *o2;
- size_t len;
-
- p = strrchr(binary_filename, '/');
- if (!p) {
- return;
- }
- p[1] = '\0';
-
- len = strlen(binary_filename);
- if (len >= PATH_MAX - global_debug_dir_len)
- len = PATH_MAX - global_debug_dir_len - 1;
- memmove(binary_filename + global_debug_dir_len, binary_filename, len);
- memcpy(binary_filename, global_debug_dir, global_debug_dir_len);
- len += global_debug_dir_len;
- strlcpy(binary_filename + len, debuglink, PATH_MAX - len);
-
- append_obj(objp);
- o2 = *objp;
- o2->base_addr = o1->base_addr;
- o2->path = o1->path;
- fill_lines(num_traces, traces, 0, objp, lines, offset);
-}
-
-// check the path pattern of "/usr/lib/debug/.build-id/ab/cdef1234.debug"
-static void
-follow_debuglink_build_id(const char *build_id, size_t build_id_size, int num_traces, void **traces,
- obj_info_t **objp, line_info_t *lines, int offset)
-{
- static const char global_debug_dir[] = "/usr/lib/debug/.build-id/";
- const size_t global_debug_dir_len = sizeof(global_debug_dir) - 1;
- char *p;
- obj_info_t *o1 = *objp, *o2;
- size_t i;
-
- if (PATH_MAX < global_debug_dir_len + 1 + build_id_size * 2 + 6) return;
-
- memcpy(binary_filename, global_debug_dir, global_debug_dir_len);
- p = binary_filename + global_debug_dir_len;
- for (i = 0; i < build_id_size; i++) {
- static const char tbl[] = "0123456789abcdef";
- unsigned char n = build_id[i];
- *p++ = tbl[n / 16];
- *p++ = tbl[n % 16];
- if (i == 0) *p++ = '/';
- }
- strcpy(p, ".debug");
-
- append_obj(objp);
- o2 = *objp;
- o2->base_addr = o1->base_addr;
- o2->path = o1->path;
- fill_lines(num_traces, traces, 0, objp, lines, offset);
-}
-#endif
-
-enum
-{
- DW_TAG_compile_unit = 0x11,
- DW_TAG_inlined_subroutine = 0x1d,
- DW_TAG_subprogram = 0x2e,
-};
-
-/* Attributes encodings */
-enum
-{
- DW_AT_sibling = 0x01,
- DW_AT_location = 0x02,
- DW_AT_name = 0x03,
- /* Reserved 0x04 */
- /* Reserved 0x05 */
- /* Reserved 0x06 */
- /* Reserved 0x07 */
- /* Reserved 0x08 */
- DW_AT_ordering = 0x09,
- /* Reserved 0x0a */
- DW_AT_byte_size = 0x0b,
- /* Reserved 0x0c */
- DW_AT_bit_size = 0x0d,
- /* Reserved 0x0e */
- /* Reserved 0x0f */
- DW_AT_stmt_list = 0x10,
- DW_AT_low_pc = 0x11,
- DW_AT_high_pc = 0x12,
- DW_AT_language = 0x13,
- /* Reserved 0x14 */
- DW_AT_discr = 0x15,
- DW_AT_discr_value = 0x16,
- DW_AT_visibility = 0x17,
- DW_AT_import = 0x18,
- DW_AT_string_length = 0x19,
- DW_AT_common_reference = 0x1a,
- DW_AT_comp_dir = 0x1b,
- DW_AT_const_value = 0x1c,
- DW_AT_containing_type = 0x1d,
- DW_AT_default_value = 0x1e,
- /* Reserved 0x1f */
- DW_AT_inline = 0x20,
- DW_AT_is_optional = 0x21,
- DW_AT_lower_bound = 0x22,
- /* Reserved 0x23 */
- /* Reserved 0x24 */
- DW_AT_producer = 0x25,
- /* Reserved 0x26 */
- DW_AT_prototyped = 0x27,
- /* Reserved 0x28 */
- /* Reserved 0x29 */
- DW_AT_return_addr = 0x2a,
- /* Reserved 0x2b */
- DW_AT_start_scope = 0x2c,
- /* Reserved 0x2d */
- DW_AT_bit_stride = 0x2e,
- DW_AT_upper_bound = 0x2f,
- /* Reserved 0x30 */
- DW_AT_abstract_origin = 0x31,
- DW_AT_accessibility = 0x32,
- DW_AT_address_class = 0x33,
- DW_AT_artificial = 0x34,
- DW_AT_base_types = 0x35,
- DW_AT_calling_convention = 0x36,
- DW_AT_count = 0x37,
- DW_AT_data_member_location = 0x38,
- DW_AT_decl_column = 0x39,
- DW_AT_decl_file = 0x3a,
- DW_AT_decl_line = 0x3b,
- DW_AT_declaration = 0x3c,
- DW_AT_discr_list = 0x3d,
- DW_AT_encoding = 0x3e,
- DW_AT_external = 0x3f,
- DW_AT_frame_base = 0x40,
- DW_AT_friend = 0x41,
- DW_AT_identifier_case = 0x42,
- /* Reserved 0x43 */
- DW_AT_namelist_item = 0x44,
- DW_AT_priority = 0x45,
- DW_AT_segment = 0x46,
- DW_AT_specification = 0x47,
- DW_AT_static_link = 0x48,
- DW_AT_type = 0x49,
- DW_AT_use_location = 0x4a,
- DW_AT_variable_parameter = 0x4b,
- DW_AT_virtuality = 0x4c,
- DW_AT_vtable_elem_location = 0x4d,
- DW_AT_allocated = 0x4e,
- DW_AT_associated = 0x4f,
- DW_AT_data_location = 0x50,
- DW_AT_byte_stride = 0x51,
- DW_AT_entry_pc = 0x52,
- DW_AT_use_UTF8 = 0x53,
- DW_AT_extension = 0x54,
- DW_AT_ranges = 0x55,
- DW_AT_trampoline = 0x56,
- DW_AT_call_column = 0x57,
- DW_AT_call_file = 0x58,
- DW_AT_call_line = 0x59,
- DW_AT_description = 0x5a,
- DW_AT_binary_scale = 0x5b,
- DW_AT_decimal_scale = 0x5c,
- DW_AT_small = 0x5d,
- DW_AT_decimal_sign = 0x5e,
- DW_AT_digit_count = 0x5f,
- DW_AT_picture_string = 0x60,
- DW_AT_mutable = 0x61,
- DW_AT_threads_scaled = 0x62,
- DW_AT_explicit = 0x63,
- DW_AT_object_pointer = 0x64,
- DW_AT_endianity = 0x65,
- DW_AT_elemental = 0x66,
- DW_AT_pure = 0x67,
- DW_AT_recursive = 0x68,
- DW_AT_signature = 0x69,
- DW_AT_main_subprogram = 0x6a,
- DW_AT_data_bit_offset = 0x6b,
- DW_AT_const_expr = 0x6c,
- DW_AT_enum_class = 0x6d,
- DW_AT_linkage_name = 0x6e,
- DW_AT_string_length_bit_size = 0x6f,
- DW_AT_string_length_byte_size = 0x70,
- DW_AT_rank = 0x71,
- DW_AT_str_offsets_base = 0x72,
- DW_AT_addr_base = 0x73,
- DW_AT_rnglists_base = 0x74,
- /* Reserved 0x75 */
- DW_AT_dwo_name = 0x76,
- DW_AT_reference = 0x77,
- DW_AT_rvalue_reference = 0x78,
- DW_AT_macros = 0x79,
- DW_AT_call_all_calls = 0x7a,
- DW_AT_call_all_source_calls = 0x7b,
- DW_AT_call_all_tail_calls = 0x7c,
- DW_AT_call_return_pc = 0x7d,
- DW_AT_call_value = 0x7e,
- DW_AT_call_origin = 0x7f,
- DW_AT_call_parameter = 0x80,
- DW_AT_call_pc = 0x81,
- DW_AT_call_tail_call = 0x82,
- DW_AT_call_target = 0x83,
- DW_AT_call_target_clobbered = 0x84,
- DW_AT_call_data_location = 0x85,
- DW_AT_call_data_value = 0x86,
- DW_AT_noreturn = 0x87,
- DW_AT_alignment = 0x88,
- DW_AT_export_symbols = 0x89,
- DW_AT_deleted = 0x8a,
- DW_AT_defaulted = 0x8b,
- DW_AT_loclists_base = 0x8c,
- DW_AT_lo_user = 0x2000,
- DW_AT_hi_user = 0x3fff
-};
-
-/* Attribute form encodings */
-enum
-{
- DW_FORM_addr = 0x01,
- /* Reserved 0x02 */
- DW_FORM_block2 = 0x03,
- DW_FORM_block4 = 0x04,
- DW_FORM_data2 = 0x05,
- DW_FORM_data4 = 0x06,
- DW_FORM_data8 = 0x07,
- DW_FORM_string = 0x08,
- DW_FORM_block = 0x09,
- DW_FORM_block1 = 0x0a,
- DW_FORM_data1 = 0x0b,
- DW_FORM_flag = 0x0c,
- DW_FORM_sdata = 0x0d,
- DW_FORM_strp = 0x0e,
- DW_FORM_udata = 0x0f,
- DW_FORM_ref_addr = 0x10,
- DW_FORM_ref1 = 0x11,
- DW_FORM_ref2 = 0x12,
- DW_FORM_ref4 = 0x13,
- DW_FORM_ref8 = 0x14,
- DW_FORM_ref_udata = 0x15,
- DW_FORM_indirect = 0x16,
- DW_FORM_sec_offset = 0x17,
- DW_FORM_exprloc = 0x18,
- DW_FORM_flag_present = 0x19,
- DW_FORM_strx = 0x1a,
- DW_FORM_addrx = 0x1b,
- DW_FORM_ref_sup4 = 0x1c,
- DW_FORM_strp_sup = 0x1d,
- DW_FORM_data16 = 0x1e,
- DW_FORM_line_strp = 0x1f,
- DW_FORM_ref_sig8 = 0x20,
- DW_FORM_implicit_const = 0x21,
- DW_FORM_loclistx = 0x22,
- DW_FORM_rnglistx = 0x23,
- DW_FORM_ref_sup8 = 0x24,
- DW_FORM_strx1 = 0x25,
- DW_FORM_strx2 = 0x26,
- DW_FORM_strx3 = 0x27,
- DW_FORM_strx4 = 0x28,
- DW_FORM_addrx1 = 0x29,
- DW_FORM_addrx2 = 0x2a,
- DW_FORM_addrx3 = 0x2b,
- DW_FORM_addrx4 = 0x2c
-};
-
-/* Range list entry encodings */
-enum {
- DW_RLE_end_of_list = 0x00,
- DW_RLE_base_addressx = 0x01,
- DW_RLE_startx_endx = 0x02,
- DW_RLE_startx_length = 0x03,
- DW_RLE_offset_pair = 0x04,
- DW_RLE_base_address = 0x05,
- DW_RLE_start_end = 0x06,
- DW_RLE_start_length = 0x07
-};
-
-enum {
- VAL_none = 0,
- VAL_cstr = 1,
- VAL_data = 2,
- VAL_uint = 3,
- VAL_int = 4
-};
-
-# define ABBREV_TABLE_SIZE 256
-typedef struct {
- obj_info_t *obj;
- const char *file;
- const char *current_cu;
- uint64_t current_low_pc;
- const char *debug_line_cu_end;
- const char *debug_line_files;
- const char *debug_line_directories;
- const char *p;
- const char *cu_end;
- const char *pend;
- const char *q0;
- const char *q;
- int format; // 4 or 8
- uint8_t address_size;
- int level;
- const char *abbrev_table[ABBREV_TABLE_SIZE];
-} DebugInfoReader;
-
-typedef struct {
- ptrdiff_t pos;
- int tag;
- int has_children;
-} DIE;
-
-typedef struct {
- union {
- const char *ptr;
- uint64_t uint64;
- int64_t int64;
- } as;
- uint64_t off;
- uint64_t at;
- uint64_t form;
- size_t size;
- int type;
-} DebugInfoValue;
-
-/* TODO: Big Endian */
-#define MERGE_2INTS(a,b,sz) (((uint64_t)(b)<<sz)|(a))
-
-static uint16_t
-get_uint16(const uint8_t *p)
-{
- return (uint16_t)MERGE_2INTS(p[0],p[1],8);
-}
-
-static uint32_t
-get_uint32(const uint8_t *p)
-{
- return (uint32_t)MERGE_2INTS(get_uint16(p),get_uint16(p+2),16);
-}
-
-static uint64_t
-get_uint64(const uint8_t *p)
-{
- return MERGE_2INTS(get_uint32(p),get_uint32(p+4),32);
-}
-
-static uint8_t
-read_uint8(const char **ptr)
-{
- const char *p = *ptr;
- *ptr = (p + 1);
- return (uint8_t)*p;
-}
-
-static uint16_t
-read_uint16(const char **ptr)
-{
- const char *p = *ptr;
- *ptr = (p + 2);
- return get_uint16((const uint8_t *)p);
-}
-
-static uint32_t
-read_uint24(const char **ptr)
-{
- const char *p = *ptr;
- *ptr = (p + 3);
- return ((uint8_t)*p << 16) | get_uint16((const uint8_t *)p+1);
-}
-
-static uint32_t
-read_uint32(const char **ptr)
-{
- const char *p = *ptr;
- *ptr = (p + 4);
- return get_uint32((const uint8_t *)p);
-}
-
-static uint64_t
-read_uint64(const char **ptr)
-{
- const unsigned char *p = (const unsigned char *)*ptr;
- *ptr = (char *)(p + 8);
- return get_uint64(p);
-}
-
-static uintptr_t
-read_uintptr(const char **ptr)
-{
- const unsigned char *p = (const unsigned char *)*ptr;
- *ptr = (char *)(p + SIZEOF_VOIDP);
-#if SIZEOF_VOIDP == 8
- return get_uint64(p);
-#else
- return get_uint32(p);
-#endif
-}
-
-static uint64_t
-read_uint(DebugInfoReader *reader)
-{
- if (reader->format == 4) {
- return read_uint32(&reader->p);
- } else { /* 64 bit */
- return read_uint64(&reader->p);
- }
-}
-
-static uint64_t
-read_uleb128(DebugInfoReader *reader)
-{
- return uleb128(&reader->p);
-}
-
-static int64_t
-read_sleb128(DebugInfoReader *reader)
-{
- return sleb128(&reader->p);
-}
-
-static void
-debug_info_reader_init(DebugInfoReader *reader, obj_info_t *obj)
-{
- reader->file = obj->mapped;
- reader->obj = obj;
- reader->p = obj->debug_info.ptr;
- reader->pend = obj->debug_info.ptr + obj->debug_info.size;
- reader->debug_line_cu_end = obj->debug_line.ptr;
- reader->current_low_pc = 0;
-}
-
-static void
-di_skip_die_attributes(const char **p)
-{
- for (;;) {
- uint64_t at = uleb128(p);
- uint64_t form = uleb128(p);
- if (!at && !form) break;
- switch (form) {
- default:
- break;
- case DW_FORM_implicit_const:
- sleb128(p);
- break;
- }
- }
-}
-
-static void
-di_read_debug_abbrev_cu(DebugInfoReader *reader)
-{
- uint64_t prev = 0;
- const char *p = reader->q0;
- for (;;) {
- uint64_t abbrev_number = uleb128(&p);
- if (abbrev_number <= prev) break;
- if (abbrev_number < ABBREV_TABLE_SIZE) {
- reader->abbrev_table[abbrev_number] = p;
- }
- prev = abbrev_number;
- uleb128(&p); /* tag */
- p++; /* has_children */
- di_skip_die_attributes(&p);
- }
-}
-
-static int
-di_read_debug_line_cu(DebugInfoReader *reader)
-{
- const char *p;
- struct LineNumberProgramHeader header;
-
- p = (const char *)reader->debug_line_cu_end;
- if (parse_debug_line_header(&p, &header))
- return -1;
-
- reader->debug_line_cu_end = (char *)header.cu_end;
- reader->debug_line_directories = (char *)header.include_directories;
- reader->debug_line_files = (char *)header.filenames;
-
- return 0;
-}
-
-static void
-set_uint_value(DebugInfoValue *v, uint64_t n)
-{
- v->as.uint64 = n;
- v->type = VAL_uint;
-}
-
-static void
-set_int_value(DebugInfoValue *v, int64_t n)
-{
- v->as.int64 = n;
- v->type = VAL_int;
-}
-
-static void
-set_cstr_value(DebugInfoValue *v, const char *s)
-{
- v->as.ptr = s;
- v->off = 0;
- v->type = VAL_cstr;
-}
-
-static void
-set_cstrp_value(DebugInfoValue *v, const char *s, uint64_t off)
-{
- v->as.ptr = s;
- v->off = off;
- v->type = VAL_cstr;
-}
-
-static void
-set_data_value(DebugInfoValue *v, const char *s)
-{
- v->as.ptr = s;
- v->type = VAL_data;
-}
-
-static const char *
-get_cstr_value(DebugInfoValue *v)
-{
- if (v->as.ptr) {
- return v->as.ptr + v->off;
- } else {
- return NULL;
- }
-}
-
-static void
-debug_info_reader_read_value(DebugInfoReader *reader, uint64_t form, DebugInfoValue *v)
-{
- switch (form) {
- case DW_FORM_addr:
- if (reader->address_size == 4) {
- set_uint_value(v, read_uint32(&reader->p));
- } else if (reader->address_size == 8) {
- set_uint_value(v, read_uint64(&reader->p));
- } else {
- fprintf(stderr,"unknown address_size:%d", reader->address_size);
- abort();
- }
- break;
- case DW_FORM_block2:
- v->size = read_uint16(&reader->p);
- set_data_value(v, reader->p);
- reader->p += v->size;
- break;
- case DW_FORM_block4:
- v->size = read_uint32(&reader->p);
- set_data_value(v, reader->p);
- reader->p += v->size;
- break;
- case DW_FORM_data2:
- set_uint_value(v, read_uint16(&reader->p));
- break;
- case DW_FORM_data4:
- set_uint_value(v, read_uint32(&reader->p));
- break;
- case DW_FORM_data8:
- set_uint_value(v, read_uint64(&reader->p));
- break;
- case DW_FORM_string:
- v->size = strlen(reader->p);
- set_cstr_value(v, reader->p);
- reader->p += v->size + 1;
- break;
- case DW_FORM_block:
- v->size = uleb128(&reader->p);
- set_data_value(v, reader->p);
- reader->p += v->size;
- break;
- case DW_FORM_block1:
- v->size = read_uint8(&reader->p);
- set_data_value(v, reader->p);
- reader->p += v->size;
- break;
- case DW_FORM_data1:
- set_uint_value(v, read_uint8(&reader->p));
- break;
- case DW_FORM_flag:
- set_uint_value(v, read_uint8(&reader->p));
- break;
- case DW_FORM_sdata:
- set_int_value(v, read_sleb128(reader));
- break;
- case DW_FORM_strp:
- set_cstrp_value(v, reader->obj->debug_str.ptr, read_uint(reader));
- break;
- case DW_FORM_udata:
- set_uint_value(v, read_uleb128(reader));
- break;
- case DW_FORM_ref_addr:
- if (reader->format == 4) {
- set_uint_value(v, read_uint32(&reader->p));
- } else if (reader->format == 8) {
- set_uint_value(v, read_uint64(&reader->p));
- } else {
- fprintf(stderr,"unknown format:%d", reader->format);
- abort();
- }
- break;
- case DW_FORM_ref1:
- set_uint_value(v, read_uint8(&reader->p));
- break;
- case DW_FORM_ref2:
- set_uint_value(v, read_uint16(&reader->p));
- break;
- case DW_FORM_ref4:
- set_uint_value(v, read_uint32(&reader->p));
- break;
- case DW_FORM_ref8:
- set_uint_value(v, read_uint64(&reader->p));
- break;
- case DW_FORM_ref_udata:
- set_uint_value(v, uleb128(&reader->p));
- break;
- case DW_FORM_indirect:
- /* TODO: read the referred value */
- set_uint_value(v, uleb128(&reader->p));
- break;
- case DW_FORM_sec_offset:
- set_uint_value(v, read_uint(reader)); /* offset */
- /* addrptr: debug_addr */
- /* lineptr: debug_line */
- /* loclist: debug_loclists */
- /* loclistptr: debug_loclists */
- /* macptr: debug_macro */
- /* rnglist: debug_rnglists */
- /* rnglistptr: debug_rnglists */
- /* stroffsetsptr: debug_str_offsets */
- break;
- case DW_FORM_exprloc:
- v->size = (size_t)read_uleb128(reader);
- set_data_value(v, reader->p);
- reader->p += v->size;
- break;
- case DW_FORM_flag_present:
- set_uint_value(v, 1);
- break;
- case DW_FORM_strx:
- set_uint_value(v, uleb128(&reader->p));
- break;
- case DW_FORM_addrx:
- /* TODO: read .debug_addr */
- set_uint_value(v, uleb128(&reader->p));
- break;
- case DW_FORM_ref_sup4:
- set_uint_value(v, read_uint32(&reader->p));
- break;
- case DW_FORM_strp_sup:
- set_uint_value(v, read_uint(reader));
- /* *p = reader->sup_file + reader->sup_str->sh_offset + ret; */
- break;
- case DW_FORM_data16:
- v->size = 16;
- set_data_value(v, reader->p);
- reader->p += v->size;
- break;
- case DW_FORM_line_strp:
- set_uint_value(v, read_uint(reader));
- /* *p = reader->file + reader->line->sh_offset + ret; */
- break;
- case DW_FORM_ref_sig8:
- set_uint_value(v, read_uint64(&reader->p));
- break;
- case DW_FORM_implicit_const:
- set_int_value(v, sleb128(&reader->q));
- break;
- case DW_FORM_loclistx:
- set_uint_value(v, read_uleb128(reader));
- break;
- case DW_FORM_rnglistx:
- set_uint_value(v, read_uleb128(reader));
- break;
- case DW_FORM_ref_sup8:
- set_uint_value(v, read_uint64(&reader->p));
- break;
- case DW_FORM_strx1:
- set_uint_value(v, read_uint8(&reader->p));
- break;
- case DW_FORM_strx2:
- set_uint_value(v, read_uint16(&reader->p));
- break;
- case DW_FORM_strx3:
- set_uint_value(v, read_uint24(&reader->p));
- break;
- case DW_FORM_strx4:
- set_uint_value(v, read_uint32(&reader->p));
- break;
- case DW_FORM_addrx1:
- set_uint_value(v, read_uint8(&reader->p));
- break;
- case DW_FORM_addrx2:
- set_uint_value(v, read_uint16(&reader->p));
- break;
- case DW_FORM_addrx3:
- set_uint_value(v, read_uint24(&reader->p));
- break;
- case DW_FORM_addrx4:
- set_uint_value(v, read_uint32(&reader->p));
- break;
- case 0:
- goto fail;
- break;
- }
- return;
-
- fail:
- fprintf(stderr, "%d: unsupported form: %#"PRIx64"\n", __LINE__, form);
- exit(1);
-}
-
-/* find abbrev in current compilation unit */
-static const char *
-di_find_abbrev(DebugInfoReader *reader, uint64_t abbrev_number)
-{
- const char *p;
- if (abbrev_number < ABBREV_TABLE_SIZE) {
- return reader->abbrev_table[abbrev_number];
- }
- p = reader->abbrev_table[ABBREV_TABLE_SIZE-1];
- /* skip 255th record */
- uleb128(&p); /* tag */
- p++; /* has_children */
- di_skip_die_attributes(&p);
- for (uint64_t n = uleb128(&p); abbrev_number != n; n = uleb128(&p)) {
- if (n == 0) {
- fprintf(stderr,"%d: Abbrev Number %"PRId64" not found\n",__LINE__, abbrev_number);
- exit(1);
- }
- uleb128(&p); /* tag */
- p++; /* has_children */
- di_skip_die_attributes(&p);
- }
- return p;
-}
-
-#if 0
-static void
-hexdump0(const unsigned char *p, size_t n)
-{
- size_t i;
- fprintf(stderr, " 0 1 2 3 4 5 6 7 8 9 A B C D E F\n");
- for (i=0; i < n; i++){
- switch (i & 15) {
- case 0:
- fprintf(stderr, "%02zd: %02X ", i/16, p[i]);
- break;
- case 15:
- fprintf(stderr, "%02X\n", p[i]);
- break;
- default:
- fprintf(stderr, "%02X ", p[i]);
- break;
- }
- }
- if ((i & 15) != 15) {
- fprintf(stderr, "\n");
- }
-}
-#define hexdump(p,n) hexdump0((const unsigned char *)p, n)
-
-static void
-div_inspect(DebugInfoValue *v)
-{
- switch (v->type) {
- case VAL_uint:
- fprintf(stderr,"%d: type:%d size:%zx v:%"PRIx64"\n",__LINE__,v->type,v->size,v->as.uint64);
- break;
- case VAL_int:
- fprintf(stderr,"%d: type:%d size:%zx v:%"PRId64"\n",__LINE__,v->type,v->size,(int64_t)v->as.uint64);
- break;
- case VAL_cstr:
- fprintf(stderr,"%d: type:%d size:%zx v:'%s'\n",__LINE__,v->type,v->size,v->as.ptr);
- break;
- case VAL_data:
- fprintf(stderr,"%d: type:%d size:%zx v:\n",__LINE__,v->type,v->size);
- hexdump(v->as.ptr, 16);
- break;
- }
-}
-#endif
-
-static DIE *
-di_read_die(DebugInfoReader *reader, DIE *die)
-{
- uint64_t abbrev_number = uleb128(&reader->p);
- if (abbrev_number == 0) {
- reader->level--;
- return NULL;
- }
-
- reader->q = di_find_abbrev(reader, abbrev_number);
-
- die->pos = reader->p - reader->obj->debug_info.ptr - 1;
- die->tag = (int)uleb128(&reader->q); /* tag */
- die->has_children = *reader->q++; /* has_children */
- if (die->has_children) {
- reader->level++;
- }
- return die;
-}
-
-static DebugInfoValue *
-di_read_record(DebugInfoReader *reader, DebugInfoValue *vp)
-{
- uint64_t at = uleb128(&reader->q);
- uint64_t form = uleb128(&reader->q);
- if (!at || !form) return NULL;
- vp->at = at;
- vp->form = form;
- debug_info_reader_read_value(reader, form, vp);
- return vp;
-}
-
-static void
-di_skip_records(DebugInfoReader *reader)
-{
- for (;;) {
- DebugInfoValue v = {{}};
- uint64_t at = uleb128(&reader->q);
- uint64_t form = uleb128(&reader->q);
- if (!at || !form) return;
- debug_info_reader_read_value(reader, form, &v);
- }
-}
-
-typedef struct {
- uint64_t low_pc;
- uint64_t high_pc;
- uint64_t ranges;
- bool low_pc_set;
- bool high_pc_set;
- bool ranges_set;
-} ranges_t;
-
-static void
-ranges_set(ranges_t *ptr, DebugInfoValue *v)
-{
- switch (v->at) {
- case DW_AT_low_pc:
- ptr->low_pc = v->as.uint64;
- ptr->low_pc_set = true;
- break;
- case DW_AT_high_pc:
- if (v->form == DW_FORM_addr) {
- ptr->high_pc = v->as.uint64;
- }
- else {
- ptr->high_pc = ptr->low_pc + v->as.uint64;
- }
- ptr->high_pc_set = true;
- break;
- case DW_AT_ranges:
- ptr->ranges = v->as.uint64;
- ptr->ranges_set = true;
- break;
- }
-}
-
-static uint64_t
-read_dw_form_addr(DebugInfoReader *reader, const char **ptr)
-{
- const char *p = *ptr;
- *ptr = p + reader->address_size;
- if (reader->address_size == 4) {
- return read_uint32(&p);
- } else if (reader->address_size == 8) {
- return read_uint64(&p);
- } else {
- fprintf(stderr,"unknown address_size:%d", reader->address_size);
- abort();
- }
-}
-
-static uintptr_t
-ranges_include(DebugInfoReader *reader, ranges_t *ptr, uint64_t addr)
-{
- if (ptr->high_pc_set) {
- if (ptr->ranges_set || !ptr->low_pc_set) {
- exit(1);
- }
- if (ptr->low_pc <= addr && addr <= ptr->high_pc) {
- return (uintptr_t)ptr->low_pc;
- }
- }
- else if (ptr->ranges_set) {
- /* TODO: support base address selection entry */
- const char *p;
- uint64_t base = ptr->low_pc_set ? ptr->low_pc : reader->current_low_pc;
- bool base_valid = true;
- if (reader->obj->debug_rnglists.ptr) {
- p = reader->obj->debug_rnglists.ptr + ptr->ranges;
- for (;;) {
- uint8_t rle = read_uint8(&p);
- uintptr_t from = 0, to = 0;
- if (rle == DW_RLE_end_of_list) break;
- switch (rle) {
- case DW_RLE_base_addressx:
- uleb128(&p);
- base_valid = false; /* not supported yet */
- break;
- case DW_RLE_startx_endx:
- uleb128(&p);
- uleb128(&p);
- break;
- case DW_RLE_startx_length:
- uleb128(&p);
- uleb128(&p);
- break;
- case DW_RLE_offset_pair:
- if (!base_valid) break;
- from = (uintptr_t)base + uleb128(&p);
- to = (uintptr_t)base + uleb128(&p);
- break;
- case DW_RLE_base_address:
- base = read_dw_form_addr(reader, &p);
- base_valid = true;
- break;
- case DW_RLE_start_end:
- from = (uintptr_t)read_dw_form_addr(reader, &p);
- to = (uintptr_t)read_dw_form_addr(reader, &p);
- break;
- case DW_RLE_start_length:
- from = (uintptr_t)read_dw_form_addr(reader, &p);
- to = from + uleb128(&p);
- break;
- }
- if (from <= addr && addr < to) {
- return from;
- }
- }
- return false;
- }
- p = reader->obj->debug_ranges.ptr + ptr->ranges;
- for (;;) {
- uintptr_t from = read_uintptr(&p);
- uintptr_t to = read_uintptr(&p);
- if (!from && !to) break;
- if (from == UINTPTR_MAX) {
- /* base address selection entry */
- base = to;
- }
- else if (base + from <= addr && addr < base + to) {
- return (uintptr_t)base + from;
- }
- }
- }
- else if (ptr->low_pc_set) {
- if (ptr->low_pc == addr) {
- return (uintptr_t)ptr->low_pc;
- }
- }
- return false;
-}
-
-#if 0
-static void
-ranges_inspect(DebugInfoReader *reader, ranges_t *ptr)
-{
- if (ptr->high_pc_set) {
- if (ptr->ranges_set || !ptr->low_pc_set) {
- fprintf(stderr,"low_pc_set:%d high_pc_set:%d ranges_set:%d\n",ptr->low_pc_set,ptr->high_pc_set,ptr->ranges_set);
- exit(1);
- }
- fprintf(stderr,"low_pc:%"PRIx64" high_pc:%"PRIx64"\n",ptr->low_pc,ptr->high_pc);
- }
- else if (ptr->ranges_set) {
- char *p = reader->obj->debug_ranges.ptr + ptr->ranges;
- fprintf(stderr,"low_pc:%"PRIx64" ranges:%"PRIx64" %lx ",ptr->low_pc,ptr->ranges, p-reader->obj->mapped);
- for (;;) {
- uintptr_t from = read_uintptr(&p);
- uintptr_t to = read_uintptr(&p);
- if (!from && !to) break;
- fprintf(stderr,"%"PRIx64"-%"PRIx64" ",ptr->low_pc+from,ptr->low_pc+to);
- }
- fprintf(stderr,"\n");
- }
- else if (ptr->low_pc_set) {
- fprintf(stderr,"low_pc:%"PRIx64"\n",ptr->low_pc);
- }
- else {
- fprintf(stderr,"empty\n");
- }
-}
-#endif
-
-static int
-di_read_cu(DebugInfoReader *reader)
-{
- uint64_t unit_length;
- uint16_t version;
- uint64_t debug_abbrev_offset;
- reader->format = 4;
- reader->current_cu = reader->p;
- unit_length = read_uint32(&reader->p);
- if (unit_length == 0xffffffff) {
- unit_length = read_uint64(&reader->p);
- reader->format = 8;
- }
- reader->cu_end = reader->p + unit_length;
- version = read_uint16(&reader->p);
- if (version > 5) {
- return -1;
- }
- else if (version == 5) {
- /* unit_type = */ read_uint8(&reader->p);
- reader->address_size = read_uint8(&reader->p);
- debug_abbrev_offset = read_uint(reader);
- }
- else {
- debug_abbrev_offset = read_uint(reader);
- reader->address_size = read_uint8(&reader->p);
- }
- reader->q0 = reader->obj->debug_abbrev.ptr + debug_abbrev_offset;
-
- reader->level = 0;
- di_read_debug_abbrev_cu(reader);
- if (di_read_debug_line_cu(reader)) return -1;
-
-#if defined(__GNUC__) && !defined(__clang__) && !defined(__INTEL_COMPILER_BUILD_DATE)
- /* Though DWARF specifies "the applicable base address defaults to the base
- address of the compilation unit", but GCC seems to use zero as default */
-#else
- do {
- DIE die;
-
- if (!di_read_die(reader, &die)) continue;
-
- if (die.tag != DW_TAG_compile_unit) {
- di_skip_records(reader);
- break;
- }
-
- /* enumerate abbrev */
- for (;;) {
- DebugInfoValue v = {{}};
- if (!di_read_record(reader, &v)) break;
- switch (v.at) {
- case DW_AT_low_pc:
- reader->current_low_pc = v.as.uint64;
- break;
- }
- }
- } while (0);
-#endif
- return 0;
-}
-
-static void
-read_abstract_origin(DebugInfoReader *reader, uint64_t form, uint64_t abstract_origin, line_info_t *line)
-{
- const char *p = reader->p;
- const char *q = reader->q;
- int level = reader->level;
- DIE die;
-
- switch (form) {
- case DW_FORM_ref1:
- case DW_FORM_ref2:
- case DW_FORM_ref4:
- case DW_FORM_ref8:
- case DW_FORM_ref_udata:
- reader->p = reader->current_cu + abstract_origin;
- break;
- case DW_FORM_ref_addr:
- goto finish; /* not supported yet */
- case DW_FORM_ref_sig8:
- goto finish; /* not supported yet */
- case DW_FORM_ref_sup4:
- case DW_FORM_ref_sup8:
- goto finish; /* not supported yet */
- default:
- goto finish;
- }
- if (!di_read_die(reader, &die)) goto finish;
-
- /* enumerate abbrev */
- for (;;) {
- DebugInfoValue v = {{}};
- if (!di_read_record(reader, &v)) break;
- switch (v.at) {
- case DW_AT_name:
- line->sname = get_cstr_value(&v);
- break;
- }
- }
-
- finish:
- reader->p = p;
- reader->q = q;
- reader->level = level;
-}
-
-static void
-debug_info_read(DebugInfoReader *reader, int num_traces, void **traces,
- line_info_t *lines, int offset) {
- while (reader->p < reader->cu_end) {
- DIE die;
- ranges_t ranges = {};
- line_info_t line = {};
-
- if (!di_read_die(reader, &die)) continue;
- /* fprintf(stderr,"%d:%tx: <%d>\n",__LINE__,die.pos,reader->level,die.tag); */
-
- if (die.tag != DW_TAG_subprogram && die.tag != DW_TAG_inlined_subroutine) {
- skip_die:
- di_skip_records(reader);
- continue;
- }
-
- /* enumerate abbrev */
- for (;;) {
- DebugInfoValue v = {{}};
- /* ptrdiff_t pos = reader->p - reader->p0; */
- if (!di_read_record(reader, &v)) break;
- /* fprintf(stderr,"\n%d:%tx: AT:%lx FORM:%lx\n",__LINE__,pos,v.at,v.form); */
- /* div_inspect(&v); */
- switch (v.at) {
- case DW_AT_name:
- line.sname = get_cstr_value(&v);
- break;
- case DW_AT_call_file:
- fill_filename((int)v.as.uint64, reader->debug_line_directories, reader->debug_line_files, &line, reader->obj);
- break;
- case DW_AT_call_line:
- line.line = (int)v.as.uint64;
- break;
- case DW_AT_low_pc:
- case DW_AT_high_pc:
- case DW_AT_ranges:
- ranges_set(&ranges, &v);
- break;
- case DW_AT_declaration:
- goto skip_die;
- case DW_AT_inline:
- /* 1 or 3 */
- break; /* goto skip_die; */
- case DW_AT_abstract_origin:
- read_abstract_origin(reader, v.form, v.as.uint64, &line);
- break; /* goto skip_die; */
- }
- }
- /* ranges_inspect(reader, &ranges); */
- /* fprintf(stderr,"%d:%tx: %x ",__LINE__,diepos,die.tag); */
- for (int i=offset; i < num_traces; i++) {
- uintptr_t addr = (uintptr_t)traces[i];
- uintptr_t offset = addr - reader->obj->base_addr + reader->obj->vmaddr;
- uintptr_t saddr = ranges_include(reader, &ranges, offset);
- if (saddr) {
- /* fprintf(stderr, "%d:%tx: %d %lx->%lx %x %s: %s/%s %d %s %s %s\n",__LINE__,die.pos, i,addr,offset, die.tag,line.sname,line.dirname,line.filename,line.line,reader->obj->path,line.sname,lines[i].sname); */
- if (lines[i].sname) {
- line_info_t *lp = malloc(sizeof(line_info_t));
- memcpy(lp, &lines[i], sizeof(line_info_t));
- lines[i].next = lp;
- lp->dirname = line.dirname;
- lp->filename = line.filename;
- lp->line = line.line;
- lp->saddr = 0;
- }
- lines[i].path = reader->obj->path;
- lines[i].base_addr = line.base_addr;
- lines[i].sname = line.sname;
- lines[i].saddr = saddr + reader->obj->base_addr - reader->obj->vmaddr;
- }
- }
- }
-}
-
-#ifdef USE_ELF
-static unsigned long
-uncompress_debug_section(ElfW(Shdr) *shdr, char *file, char **ptr)
-{
- *ptr = NULL;
-#ifdef SUPPORT_COMPRESSED_DEBUG_LINE
- ElfW(Chdr) *chdr = (ElfW(Chdr) *)(file + shdr->sh_offset);
- unsigned long destsize = chdr->ch_size;
- int ret = 0;
-
- if (chdr->ch_type != ELFCOMPRESS_ZLIB) {
- /* unsupported compression type */
- return 0;
- }
-
- *ptr = malloc(destsize);
- if (!*ptr) return 0;
- ret = uncompress((Bytef *)*ptr, &destsize,
- (const Bytef*)chdr + sizeof(ElfW(Chdr)),
- shdr->sh_size - sizeof(ElfW(Chdr)));
- if (ret != Z_OK) goto fail;
- return destsize;
-
-fail:
- free(*ptr);
- *ptr = NULL;
-#endif
- return 0;
-}
-
-/* read file and fill lines */
-static uintptr_t
-fill_lines(int num_traces, void **traces, int check_debuglink,
- obj_info_t **objp, line_info_t *lines, int offset)
-{
- int i, j;
- char *shstr;
- ElfW(Ehdr) *ehdr;
- ElfW(Shdr) *shdr, *shstr_shdr;
- ElfW(Shdr) *gnu_debuglink_shdr = NULL;
- ElfW(Shdr) *note_gnu_build_id = NULL;
- int fd;
- off_t filesize;
- char *file;
- ElfW(Shdr) *symtab_shdr = NULL, *strtab_shdr = NULL;
- ElfW(Shdr) *dynsym_shdr = NULL, *dynstr_shdr = NULL;
- obj_info_t *obj = *objp;
- uintptr_t dladdr_fbase = 0;
-
- fd = open(binary_filename, O_RDONLY);
- if (fd < 0) {
- goto fail;
- }
- filesize = lseek(fd, 0, SEEK_END);
- if (filesize < 0) {
- int e = errno;
- close(fd);
- kprintf("lseek: %s\n", strerror(e));
- goto fail;
- }
-#if SIZEOF_OFF_T > SIZEOF_SIZE_T
- if (filesize > (off_t)SIZE_MAX) {
- close(fd);
- kprintf("Too large file %s\n", binary_filename);
- goto fail;
- }
-#endif
- lseek(fd, 0, SEEK_SET);
- /* async-signal unsafe */
- file = (char *)mmap(NULL, (size_t)filesize, PROT_READ, MAP_SHARED, fd, 0);
- if (file == MAP_FAILED) {
- int e = errno;
- close(fd);
- kprintf("mmap: %s\n", strerror(e));
- goto fail;
- }
- close(fd);
-
- ehdr = (ElfW(Ehdr) *)file;
- if (memcmp(ehdr->e_ident, "\177ELF", 4) != 0) {
- /*
- * Huh? Maybe filename was overridden by setproctitle() and
- * it match non-elf file.
- */
- goto fail;
- }
- obj->mapped = file;
- obj->mapped_size = (size_t)filesize;
-
- shdr = (ElfW(Shdr) *)(file + ehdr->e_shoff);
-
- shstr_shdr = shdr + ehdr->e_shstrndx;
- shstr = file + shstr_shdr->sh_offset;
-
- for (i = 0; i < ehdr->e_shnum; i++) {
- char *section_name = shstr + shdr[i].sh_name;
- switch (shdr[i].sh_type) {
- case SHT_STRTAB:
- if (!strcmp(section_name, ".strtab")) {
- strtab_shdr = shdr + i;
- }
- else if (!strcmp(section_name, ".dynstr")) {
- dynstr_shdr = shdr + i;
- }
- break;
- case SHT_SYMTAB:
- /* if (!strcmp(section_name, ".symtab")) */
- symtab_shdr = shdr + i;
- break;
- case SHT_DYNSYM:
- /* if (!strcmp(section_name, ".dynsym")) */
- dynsym_shdr = shdr + i;
- break;
- case SHT_NOTE:
- if (!strcmp(section_name, ".note.gnu.build-id")) {
- note_gnu_build_id = shdr + i;
- }
- break;
- case SHT_PROGBITS:
- if (!strcmp(section_name, ".gnu_debuglink")) {
- gnu_debuglink_shdr = shdr + i;
- }
- else {
- const char *debug_section_names[] = {
- ".debug_abbrev",
- ".debug_info",
- ".debug_line",
- ".debug_ranges",
- ".debug_rnglists",
- ".debug_str"
- };
-
- for (j=0; j < DWARF_SECTION_COUNT; j++) {
- struct dwarf_section *s = obj_dwarf_section_at(obj, j);
-
- if (strcmp(section_name, debug_section_names[j]) != 0)
- continue;
-
- s->ptr = file + shdr[i].sh_offset;
- s->size = shdr[i].sh_size;
- s->flags = shdr[i].sh_flags;
- if (s->flags & SHF_COMPRESSED) {
- s->size = uncompress_debug_section(&shdr[i], file, &s->ptr);
- if (!s->size) goto fail;
- }
- break;
- }
- }
- break;
- }
- }
-
- if (offset == -1) {
- /* main executable */
- offset = 0;
- if (dynsym_shdr && dynstr_shdr) {
- char *strtab = file + dynstr_shdr->sh_offset;
- ElfW(Sym) *symtab = (ElfW(Sym) *)(file + dynsym_shdr->sh_offset);
- int symtab_count = (int)(dynsym_shdr->sh_size / sizeof(ElfW(Sym)));
- void *handle = dlopen(NULL, RTLD_NOW|RTLD_LOCAL);
- if (handle) {
- for (j = 0; j < symtab_count; j++) {
- ElfW(Sym) *sym = &symtab[j];
- Dl_info info;
- void *s;
- if (ELF_ST_TYPE(sym->st_info) != STT_FUNC || sym->st_size == 0) continue;
- s = dlsym(handle, strtab + sym->st_name);
- if (s && dladdr(s, &info)) {
- obj->base_addr = dladdr_fbase;
- dladdr_fbase = (uintptr_t)info.dli_fbase;
- break;
- }
- }
- dlclose(handle);
- }
- if (ehdr->e_type == ET_EXEC) {
- obj->base_addr = 0;
- }
- else {
- /* PIE (position-independent executable) */
- obj->base_addr = dladdr_fbase;
- }
- }
- }
-
- if (obj->debug_info.ptr && obj->debug_abbrev.ptr) {
- DebugInfoReader reader;
- debug_info_reader_init(&reader, obj);
- i = 0;
- while (reader.p < reader.pend) {
- /* fprintf(stderr, "%d:%tx: CU[%d]\n", __LINE__, reader.p - reader.obj->debug_info.ptr, i++); */
- if (di_read_cu(&reader)) goto use_symtab;
- debug_info_read(&reader, num_traces, traces, lines, offset);
- }
- }
- else {
- /* This file doesn't have dwarf, use symtab or dynsym */
-use_symtab:
- if (!symtab_shdr) {
- /* This file doesn't have symtab, use dynsym instead */
- symtab_shdr = dynsym_shdr;
- strtab_shdr = dynstr_shdr;
- }
-
- if (symtab_shdr && strtab_shdr) {
- char *strtab = file + strtab_shdr->sh_offset;
- ElfW(Sym) *symtab = (ElfW(Sym) *)(file + symtab_shdr->sh_offset);
- int symtab_count = (int)(symtab_shdr->sh_size / sizeof(ElfW(Sym)));
- for (j = 0; j < symtab_count; j++) {
- ElfW(Sym) *sym = &symtab[j];
- uintptr_t saddr = (uintptr_t)sym->st_value + obj->base_addr;
- if (ELF_ST_TYPE(sym->st_info) != STT_FUNC) continue;
- for (i = offset; i < num_traces; i++) {
- uintptr_t d = (uintptr_t)traces[i] - saddr;
- if (lines[i].line > 0 || d > (uintptr_t)sym->st_size)
- continue;
- /* fill symbol name and addr from .symtab */
- if (!lines[i].sname) lines[i].sname = strtab + sym->st_name;
- lines[i].saddr = saddr;
- lines[i].path = obj->path;
- lines[i].base_addr = obj->base_addr;
- }
- }
- }
- }
-
- if (!obj->debug_line.ptr) {
- /* This file doesn't have .debug_line section,
- let's check .gnu_debuglink section instead. */
- if (gnu_debuglink_shdr && check_debuglink) {
- follow_debuglink(file + gnu_debuglink_shdr->sh_offset,
- num_traces, traces,
- objp, lines, offset);
- }
- if (note_gnu_build_id && check_debuglink) {
- ElfW(Nhdr) *nhdr = (ElfW(Nhdr)*) (file + note_gnu_build_id->sh_offset);
- const char *build_id = (char *)(nhdr + 1) + nhdr->n_namesz;
- follow_debuglink_build_id(build_id, nhdr->n_descsz,
- num_traces, traces,
- objp, lines, offset);
- }
- goto finish;
- }
-
- if (parse_debug_line(num_traces, traces,
- obj->debug_line.ptr,
- obj->debug_line.size,
- obj, lines, offset) == -1)
- goto fail;
-
-finish:
- return dladdr_fbase;
-fail:
- return (uintptr_t)-1;
-}
-#else /* Mach-O */
-/* read file and fill lines */
-static uintptr_t
-fill_lines(int num_traces, void **traces, int check_debuglink,
- obj_info_t **objp, line_info_t *lines, int offset)
-{
-# ifdef __LP64__
-# define LP(x) x##_64
-# else
-# define LP(x) x
-# endif
- int fd;
- off_t filesize;
- char *file, *p = NULL;
- obj_info_t *obj = *objp;
- struct LP(mach_header) *header;
- uintptr_t dladdr_fbase = 0;
-
- {
- char *s = binary_filename;
- char *base = strrchr(binary_filename, '/')+1;
- size_t max = PATH_MAX;
- size_t size = strlen(binary_filename);
- size_t basesize = size - (base - binary_filename);
- s += size;
- max -= size;
- p = s;
- size = strlcpy(s, ".dSYM/Contents/Resources/DWARF/", max);
- if (size == 0) goto fail;
- s += size;
- max -= size;
- if (max <= basesize) goto fail;
- memcpy(s, base, basesize);
- s[basesize] = 0;
-
- fd = open(binary_filename, O_RDONLY);
- if (fd < 0) {
- *p = 0; /* binary_filename becomes original file name */
- fd = open(binary_filename, O_RDONLY);
- if (fd < 0) {
- goto fail;
- }
- }
- }
-
- filesize = lseek(fd, 0, SEEK_END);
- if (filesize < 0) {
- int e = errno;
- close(fd);
- kprintf("lseek: %s\n", strerror(e));
- goto fail;
- }
-#if SIZEOF_OFF_T > SIZEOF_SIZE_T
- if (filesize > (off_t)SIZE_MAX) {
- close(fd);
- kprintf("Too large file %s\n", binary_filename);
- goto fail;
- }
-#endif
- lseek(fd, 0, SEEK_SET);
- /* async-signal unsafe */
- file = (char *)mmap(NULL, (size_t)filesize, PROT_READ, MAP_SHARED, fd, 0);
- if (file == MAP_FAILED) {
- int e = errno;
- close(fd);
- kprintf("mmap: %s\n", strerror(e));
- goto fail;
- }
- close(fd);
-
- obj->mapped = file;
- obj->mapped_size = (size_t)filesize;
-
- header = (struct LP(mach_header) *)file;
- if (header->magic == LP(MH_MAGIC)) {
- /* non universal binary */
- p = file;
- }
- else if (header->magic == FAT_CIGAM) {
- struct LP(mach_header) *mhp = _NSGetMachExecuteHeader();
- struct fat_header *fat = (struct fat_header *)file;
- char *q = file + sizeof(*fat);
- uint32_t nfat_arch = __builtin_bswap32(fat->nfat_arch);
- /* fprintf(stderr,"%d: fat:%s %d\n",__LINE__, binary_filename,nfat_arch); */
- for (uint32_t i = 0; i < nfat_arch; i++) {
- struct fat_arch *arch = (struct fat_arch *)q;
- cpu_type_t cputype = __builtin_bswap32(arch->cputype);
- cpu_subtype_t cpusubtype = __builtin_bswap32(arch->cpusubtype);
- uint32_t offset = __builtin_bswap32(arch->offset);
- /* fprintf(stderr,"%d: fat %d %x/%x %x/%x\n",__LINE__, i, mhp->cputype,mhp->cpusubtype, cputype,cpusubtype); */
- if (mhp->cputype == cputype &&
- (cpu_subtype_t)(mhp->cpusubtype & ~CPU_SUBTYPE_MASK) == cpusubtype) {
- p = file + offset;
- file = p;
- header = (struct LP(mach_header) *)p;
- if (header->magic == LP(MH_MAGIC)) {
- goto found_mach_header;
- }
- break;
- }
- q += sizeof(*arch);
- }
- kprintf("'%s' is not a Mach-O universal binary file!\n",binary_filename);
- close(fd);
- goto fail;
- }
- else {
- kprintf("'%s' is not a "
-# ifdef __LP64__
- "64"
-# else
- "32"
-# endif
- "-bit Mach-O file!\n",binary_filename);
- close(fd);
- goto fail;
- }
-found_mach_header:
- p += sizeof(*header);
-
- for (uint32_t i = 0; i < (uint32_t)header->ncmds; i++) {
- struct load_command *lcmd = (struct load_command *)p;
- switch (lcmd->cmd) {
- case LP(LC_SEGMENT):
- {
- static const char *debug_section_names[] = {
- "__debug_abbrev",
- "__debug_info",
- "__debug_line",
- "__debug_ranges",
- "__debug_rnglists",
- "__debug_str"
- };
- struct LP(segment_command) *scmd = (struct LP(segment_command) *)lcmd;
- if (strcmp(scmd->segname, "__TEXT") == 0) {
- obj->vmaddr = scmd->vmaddr;
- }
- else if (strcmp(scmd->segname, "__DWARF") == 0) {
- p += sizeof(struct LP(segment_command));
- for (uint64_t i = 0; i < scmd->nsects; i++) {
- struct LP(section) *sect = (struct LP(section) *)p;
- p += sizeof(struct LP(section));
- for (int j=0; j < DWARF_SECTION_COUNT; j++) {
- struct dwarf_section *s = obj_dwarf_section_at(obj, j);
-
- if (strcmp(sect->sectname, debug_section_names[j]) != 0)
- continue;
-
- s->ptr = file + sect->offset;
- s->size = sect->size;
- s->flags = sect->flags;
- if (s->flags & SHF_COMPRESSED) {
- goto fail;
- }
- break;
- }
- }
- }
- }
- break;
-
- case LC_SYMTAB:
- {
- struct symtab_command *cmd = (struct symtab_command *)lcmd;
- struct LP(nlist) *nl = (struct LP(nlist) *)(file + cmd->symoff);
- char *strtab = file + cmd->stroff, *sname = 0;
- uint32_t j;
- uintptr_t saddr = 0;
- /* kprintf("[%2d]: %x/symtab %p\n", i, cmd->cmd, (void *)p); */
- for (j = 0; j < cmd->nsyms; j++) {
- uintptr_t symsize, d;
- struct LP(nlist) *e = &nl[j];
- /* kprintf("[%2d][%4d]: %02x/%x/%x: %s %llx\n", i, j, e->n_type,e->n_sect,e->n_desc,strtab+e->n_un.n_strx,e->n_value); */
- if (e->n_type != N_FUN) continue;
- if (e->n_sect) {
- saddr = (uintptr_t)e->n_value + obj->base_addr - obj->vmaddr;
- sname = strtab + e->n_un.n_strx;
- /* kprintf("[%2d][%4d]: %02x/%x/%x: %s %llx\n", i, j, e->n_type,e->n_sect,e->n_desc,strtab+e->n_un.n_strx,e->n_value); */
- continue;
- }
- for (int k = offset; k < num_traces; k++) {
- d = (uintptr_t)traces[k] - saddr;
- symsize = e->n_value;
- /* kprintf("%lx %lx %lx\n",saddr,symsize,traces[k]); */
- if (lines[k].line > 0 || d > (uintptr_t)symsize)
- continue;
- /* fill symbol name and addr from .symtab */
- if (!lines[k].sname) lines[k].sname = sname;
- lines[k].saddr = saddr;
- lines[k].path = obj->path;
- lines[k].base_addr = obj->base_addr;
- }
- }
- }
- }
- p += lcmd->cmdsize;
- }
-
- if (obj->debug_info.ptr && obj->debug_abbrev.ptr) {
- DebugInfoReader reader;
- debug_info_reader_init(&reader, obj);
- while (reader.p < reader.pend) {
- if (di_read_cu(&reader)) goto fail;
- debug_info_read(&reader, num_traces, traces, lines, offset);
- }
- }
-
- if (parse_debug_line(num_traces, traces,
- obj->debug_line.ptr,
- obj->debug_line.size,
- obj, lines, offset) == -1)
- goto fail;
-
- return dladdr_fbase;
-fail:
- return (uintptr_t)-1;
-}
-#endif
-
-#define HAVE_MAIN_EXE_PATH
-#if defined(__FreeBSD__) || defined(__DragonFly__)
-# include <sys/sysctl.h>
-#endif
-/* ssize_t main_exe_path(void)
- *
- * store the path of the main executable to `binary_filename`,
- * and returns strlen(binary_filename).
- * it is NUL terminated.
- */
-#if defined(__linux__) || defined(__NetBSD__)
-static ssize_t
-main_exe_path(void)
-{
-# if defined(__linux__)
-# define PROC_SELF_EXE "/proc/self/exe"
-# elif defined(__NetBSD__)
-# define PROC_SELF_EXE "/proc/curproc/exe"
-# endif
- ssize_t len = readlink(PROC_SELF_EXE, binary_filename, PATH_MAX);
- if (len < 0) return 0;
- binary_filename[len] = 0;
- return len;
-}
-#elif defined(__FreeBSD__) || defined(__DragonFly__)
-static ssize_t
-main_exe_path(void)
-{
- int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1};
- size_t len = PATH_MAX;
- int err = sysctl(mib, 4, binary_filename, &len, NULL, 0);
- if (err) {
- kprintf("Can't get the path of ruby");
- return -1;
- }
- len--; /* sysctl sets strlen+1 */
- return len;
-}
-#elif defined(HAVE_LIBPROC_H)
-static ssize_t
-main_exe_path(void)
-{
- int len = proc_pidpath(getpid(), binary_filename, PATH_MAX);
- if (len == 0) return 0;
- binary_filename[len] = 0;
- return len;
-}
-#else
-#undef HAVE_MAIN_EXE_PATH
-#endif
-
-static void
-print_line0(line_info_t *line, void *address)
-{
- uintptr_t addr = (uintptr_t)address;
- uintptr_t d = addr - line->saddr;
- if (!address) {
- /* inlined */
- if (line->dirname && line->dirname[0]) {
- kprintf("%s(%s) %s/%s:%d\n", line->path, line->sname, line->dirname, line->filename, line->line);
- }
- else {
- kprintf("%s(%s) %s:%d\n", line->path, line->sname, line->filename, line->line);
- }
- }
- else if (!line->path) {
- kprintf("[0x%"PRIxPTR"]\n", addr);
- }
- else if (!line->saddr || !line->sname) {
- kprintf("%s(0x%"PRIxPTR") [0x%"PRIxPTR"]\n", line->path, addr-line->base_addr, addr);
- }
- else if (line->line <= 0) {
- kprintf("%s(%s+0x%"PRIxPTR") [0x%"PRIxPTR"]\n", line->path, line->sname,
- d, addr);
- }
- else if (!line->filename) {
- kprintf("%s(%s+0x%"PRIxPTR") [0x%"PRIxPTR"] ???:%d\n", line->path, line->sname,
- d, addr, line->line);
- }
- else if (line->dirname && line->dirname[0]) {
- kprintf("%s(%s+0x%"PRIxPTR") [0x%"PRIxPTR"] %s/%s:%d\n", line->path, line->sname,
- d, addr, line->dirname, line->filename, line->line);
- }
- else {
- kprintf("%s(%s+0x%"PRIxPTR") [0x%"PRIxPTR"] %s:%d\n", line->path, line->sname,
- d, addr, line->filename, line->line);
- }
-}
-
-static void
-print_line(line_info_t *line, void *address)
-{
- print_line0(line, address);
- if (line->next) {
- print_line(line->next, NULL);
- }
-}
-
-void
-rb_dump_backtrace_with_lines(int num_traces, void **traces)
-{
- int i;
- /* async-signal unsafe */
- line_info_t *lines = (line_info_t *)calloc(num_traces, sizeof(line_info_t));
- obj_info_t *obj = NULL;
- /* 2 is NULL + main executable */
- void **dladdr_fbases = (void **)calloc(num_traces+2, sizeof(void *));
-#ifdef HAVE_MAIN_EXE_PATH
- char *main_path = NULL; /* used on printing backtrace */
- ssize_t len;
- if ((len = main_exe_path()) > 0) {
- main_path = (char *)alloca(len + 1);
- if (main_path) {
- uintptr_t addr;
- memcpy(main_path, binary_filename, len+1);
- append_obj(&obj);
- obj->path = main_path;
- addr = fill_lines(num_traces, traces, 1, &obj, lines, -1);
- if (addr != (uintptr_t)-1) {
- dladdr_fbases[0] = (void *)addr;
- }
- }
- }
-#endif
-
- /* fill source lines by reading dwarf */
- for (i = 0; i < num_traces; i++) {
- Dl_info info;
- if (lines[i].line) continue;
- if (dladdr(traces[i], &info)) {
- const char *path;
- void **p;
-
- /* skip symbols which is in already checked objects */
- /* if the binary is strip-ed, this may effect */
- for (p=dladdr_fbases; *p; p++) {
- if (*p == info.dli_fbase) {
- lines[i].path = info.dli_fname;
- lines[i].sname = info.dli_sname;
- goto next_line;
- }
- }
- *p = info.dli_fbase;
-
- append_obj(&obj);
- obj->base_addr = (uintptr_t)info.dli_fbase;
- path = info.dli_fname;
- obj->path = path;
- lines[i].path = path;
- lines[i].sname = info.dli_sname;
- lines[i].saddr = (uintptr_t)info.dli_saddr;
- strlcpy(binary_filename, path, PATH_MAX);
- if (fill_lines(num_traces, traces, 1, &obj, lines, i) == (uintptr_t)-1)
- break;
- }
-next_line:
- continue;
- }
-
- /* output */
- for (i = 0; i < num_traces; i++) {
- print_line(&lines[i], traces[i]);
-
- /* FreeBSD's backtrace may show _start and so on */
- if (lines[i].sname && strcmp("main", lines[i].sname) == 0)
- break;
- }
-
- /* free */
- while (obj) {
- obj_info_t *o = obj;
- for (i=0; i < DWARF_SECTION_COUNT; i++) {
- struct dwarf_section *s = obj_dwarf_section_at(obj, i);
- if (s->flags & SHF_COMPRESSED) {
- free(s->ptr);
- }
- }
- if (obj->mapped_size) {
- munmap(obj->mapped, obj->mapped_size);
- }
- obj = o->next;
- free(o);
- }
- for (i = 0; i < num_traces; i++) {
- line_info_t *line = lines[i].next;
- while (line) {
- line_info_t *l = line;
- line = line->next;
- free(l);
- }
- }
- free(lines);
- free(dladdr_fbases);
-}
-
-/* From FreeBSD's lib/libstand/printf.c */
-/*-
- * Copyright (c) 1986, 1988, 1991, 1993
- * The Regents of the University of California. All rights reserved.
- * (c) UNIX System Laboratories, Inc.
- * All or some portions of this file are derived from material licensed
- * to the University of California by American Telephone and Telegraph
- * Co. or Unix System Laboratories, Inc. and are reproduced herein with
- * the permission of UNIX System Laboratories, Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)subr_prf.c 8.3 (Berkeley) 1/21/94
- */
-
-#include <stdarg.h>
-#define MAXNBUF (sizeof(intmax_t) * CHAR_BIT + 1)
-static inline int toupper(int c) { return ('A' <= c && c <= 'Z') ? (c&0x5f) : c; }
-#define hex2ascii(hex) (hex2ascii_data[hex])
-static const char hex2ascii_data[] = "0123456789abcdefghijklmnopqrstuvwxyz";
-static inline int imax(int a, int b) { return (a > b ? a : b); }
-static int kvprintf(char const *fmt, void (*func)(int), void *arg, int radix, va_list ap);
-
-static void putce(int c)
-{
- char s[1];
- ssize_t ret;
-
- s[0] = (char)c;
- ret = write(2, s, 1);
- (void)ret;
-}
-
-static int
-kprintf(const char *fmt, ...)
-{
- va_list ap;
- int retval;
-
- va_start(ap, fmt);
- retval = kvprintf(fmt, putce, NULL, 10, ap);
- va_end(ap);
- return retval;
-}
-
-/*
- * Put a NUL-terminated ASCII number (base <= 36) in a buffer in reverse
- * order; return an optional length and a pointer to the last character
- * written in the buffer (i.e., the first character of the string).
- * The buffer pointed to by `nbuf' must have length >= MAXNBUF.
- */
-static char *
-ksprintn(char *nbuf, uintmax_t num, int base, int *lenp, int upper)
-{
- char *p, c;
-
- p = nbuf;
- *p = '\0';
- do {
- c = hex2ascii(num % base);
- *++p = upper ? toupper(c) : c;
- } while (num /= base);
- if (lenp)
- *lenp = (int)(p - nbuf);
- return (p);
-}
-
-/*
- * Scaled down version of printf(3).
- *
- * Two additional formats:
- *
- * The format %b is supported to decode error registers.
- * Its usage is:
- *
- * printf("reg=%b\n", regval, "<base><arg>*");
- *
- * where <base> is the output base expressed as a control character, e.g.
- * \10 gives octal; \20 gives hex. Each arg is a sequence of characters,
- * the first of which gives the bit number to be inspected (origin 1), and
- * the next characters (up to a control character, i.e. a character <= 32),
- * give the name of the register. Thus:
- *
- * kvprintf("reg=%b\n", 3, "\10\2BITTWO\1BITONE\n");
- *
- * would produce output:
- *
- * reg=3<BITTWO,BITONE>
- *
- * XXX: %D -- Hexdump, takes pointer and separator string:
- * ("%6D", ptr, ":") -> XX:XX:XX:XX:XX:XX
- * ("%*D", len, ptr, " " -> XX XX XX XX ...
- */
-static int
-kvprintf(char const *fmt, void (*func)(int), void *arg, int radix, va_list ap)
-{
-#define PCHAR(c) {int cc=(c); if (func) (*func)(cc); else *d++ = cc; retval++; }
- char nbuf[MAXNBUF];
- char *d;
- const char *p, *percent, *q;
- unsigned char *up;
- int ch, n;
- uintmax_t num;
- int base, lflag, qflag, tmp, width, ladjust, sharpflag, neg, sign, dot;
- int cflag, hflag, jflag, tflag, zflag;
- int dwidth, upper;
- char padc;
- int stop = 0, retval = 0;
-
- num = 0;
- if (!func)
- d = (char *) arg;
- else
- d = NULL;
-
- if (fmt == NULL)
- fmt = "(fmt null)\n";
-
- if (radix < 2 || radix > 36)
- radix = 10;
-
- for (;;) {
- padc = ' ';
- width = 0;
- while ((ch = (unsigned char)*fmt++) != '%' || stop) {
- if (ch == '\0')
- return (retval);
- PCHAR(ch);
- }
- percent = fmt - 1;
- qflag = 0; lflag = 0; ladjust = 0; sharpflag = 0; neg = 0;
- sign = 0; dot = 0; dwidth = 0; upper = 0;
- cflag = 0; hflag = 0; jflag = 0; tflag = 0; zflag = 0;
-reswitch: switch (ch = (unsigned char)*fmt++) {
- case '.':
- dot = 1;
- goto reswitch;
- case '#':
- sharpflag = 1;
- goto reswitch;
- case '+':
- sign = 1;
- goto reswitch;
- case '-':
- ladjust = 1;
- goto reswitch;
- case '%':
- PCHAR(ch);
- break;
- case '*':
- if (!dot) {
- width = va_arg(ap, int);
- if (width < 0) {
- ladjust = !ladjust;
- width = -width;
- }
- } else {
- dwidth = va_arg(ap, int);
- }
- goto reswitch;
- case '0':
- if (!dot) {
- padc = '0';
- goto reswitch;
- }
- case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- for (n = 0;; ++fmt) {
- n = n * 10 + ch - '0';
- ch = *fmt;
- if (ch < '0' || ch > '9')
- break;
- }
- if (dot)
- dwidth = n;
- else
- width = n;
- goto reswitch;
- case 'b':
- num = (unsigned int)va_arg(ap, int);
- p = va_arg(ap, char *);
- for (q = ksprintn(nbuf, num, *p++, NULL, 0); *q;)
- PCHAR(*q--);
-
- if (num == 0)
- break;
-
- for (tmp = 0; *p;) {
- n = *p++;
- if (num & (1 << (n - 1))) {
- PCHAR(tmp ? ',' : '<');
- for (; (n = *p) > ' '; ++p)
- PCHAR(n);
- tmp = 1;
- } else
- for (; *p > ' '; ++p)
- continue;
- }
- if (tmp)
- PCHAR('>');
- break;
- case 'c':
- PCHAR(va_arg(ap, int));
- break;
- case 'D':
- up = va_arg(ap, unsigned char *);
- p = va_arg(ap, char *);
- if (!width)
- width = 16;
- while(width--) {
- PCHAR(hex2ascii(*up >> 4));
- PCHAR(hex2ascii(*up & 0x0f));
- up++;
- if (width)
- for (q=p;*q;q++)
- PCHAR(*q);
- }
- break;
- case 'd':
- case 'i':
- base = 10;
- sign = 1;
- goto handle_sign;
- case 'h':
- if (hflag) {
- hflag = 0;
- cflag = 1;
- } else
- hflag = 1;
- goto reswitch;
- case 'j':
- jflag = 1;
- goto reswitch;
- case 'l':
- if (lflag) {
- lflag = 0;
- qflag = 1;
- } else
- lflag = 1;
- goto reswitch;
- case 'n':
- if (jflag)
- *(va_arg(ap, intmax_t *)) = retval;
- else if (qflag)
- *(va_arg(ap, int64_t *)) = retval;
- else if (lflag)
- *(va_arg(ap, long *)) = retval;
- else if (zflag)
- *(va_arg(ap, size_t *)) = retval;
- else if (hflag)
- *(va_arg(ap, short *)) = retval;
- else if (cflag)
- *(va_arg(ap, char *)) = retval;
- else
- *(va_arg(ap, int *)) = retval;
- break;
- case 'o':
- base = 8;
- goto handle_nosign;
- case 'p':
- base = 16;
- sharpflag = (width == 0);
- sign = 0;
- num = (uintptr_t)va_arg(ap, void *);
- goto number;
- case 'q':
- qflag = 1;
- goto reswitch;
- case 'r':
- base = radix;
- if (sign)
- goto handle_sign;
- goto handle_nosign;
- case 's':
- p = va_arg(ap, char *);
- if (p == NULL)
- p = "(null)";
- if (!dot)
- n = (int)strlen (p);
- else
- for (n = 0; n < dwidth && p[n]; n++)
- continue;
-
- width -= n;
-
- if (!ladjust && width > 0)
- while (width--)
- PCHAR(padc);
- while (n--)
- PCHAR(*p++);
- if (ladjust && width > 0)
- while (width--)
- PCHAR(padc);
- break;
- case 't':
- tflag = 1;
- goto reswitch;
- case 'u':
- base = 10;
- goto handle_nosign;
- case 'X':
- upper = 1;
- case 'x':
- base = 16;
- goto handle_nosign;
- case 'y':
- base = 16;
- sign = 1;
- goto handle_sign;
- case 'z':
- zflag = 1;
- goto reswitch;
-handle_nosign:
- sign = 0;
- if (jflag)
- num = va_arg(ap, uintmax_t);
- else if (qflag)
- num = va_arg(ap, uint64_t);
- else if (tflag)
- num = va_arg(ap, ptrdiff_t);
- else if (lflag)
- num = va_arg(ap, unsigned long);
- else if (zflag)
- num = va_arg(ap, size_t);
- else if (hflag)
- num = (unsigned short)va_arg(ap, int);
- else if (cflag)
- num = (unsigned char)va_arg(ap, int);
- else
- num = va_arg(ap, unsigned int);
- goto number;
-handle_sign:
- if (jflag)
- num = va_arg(ap, intmax_t);
- else if (qflag)
- num = va_arg(ap, int64_t);
- else if (tflag)
- num = va_arg(ap, ptrdiff_t);
- else if (lflag)
- num = va_arg(ap, long);
- else if (zflag)
- num = va_arg(ap, ssize_t);
- else if (hflag)
- num = (short)va_arg(ap, int);
- else if (cflag)
- num = (char)va_arg(ap, int);
- else
- num = va_arg(ap, int);
-number:
- if (sign && (intmax_t)num < 0) {
- neg = 1;
- num = -(intmax_t)num;
- }
- p = ksprintn(nbuf, num, base, &n, upper);
- tmp = 0;
- if (sharpflag && num != 0) {
- if (base == 8)
- tmp++;
- else if (base == 16)
- tmp += 2;
- }
- if (neg)
- tmp++;
-
- if (!ladjust && padc == '0')
- dwidth = width - tmp;
- width -= tmp + imax(dwidth, n);
- dwidth -= n;
- if (!ladjust)
- while (width-- > 0)
- PCHAR(' ');
- if (neg)
- PCHAR('-');
- if (sharpflag && num != 0) {
- if (base == 8) {
- PCHAR('0');
- } else if (base == 16) {
- PCHAR('0');
- PCHAR('x');
- }
- }
- while (dwidth-- > 0)
- PCHAR('0');
-
- while (*p)
- PCHAR(*p--);
-
- if (ladjust)
- while (width-- > 0)
- PCHAR(' ');
-
- break;
- default:
- while (percent < fmt)
- PCHAR(*percent++);
- /*
- * Since we ignore an formatting argument it is no
- * longer safe to obey the remaining formatting
- * arguments as the arguments will no longer match
- * the format specs.
- */
- stop = 1;
- break;
- }
- }
-#undef PCHAR
-}
-#else /* defined(USE_ELF) */
-#error not supported
-#endif
diff --git a/addr2line.h b/addr2line.h
deleted file mode 100644
index f09b665800..0000000000
--- a/addr2line.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef RUBY_ADDR2LINE_H
-#define RUBY_ADDR2LINE_H
-/**********************************************************************
-
- addr2line.h -
-
- $Author$
-
- Copyright (C) 2010 Shinichiro Hamaji
-
-**********************************************************************/
-
-#if (defined(USE_ELF) || defined(HAVE_MACH_O_LOADER_H))
-
-void
-rb_dump_backtrace_with_lines(int num_traces, void **traces);
-
-#endif /* USE_ELF */
-
-#endif /* RUBY_ADDR2LINE_H */
diff --git a/array.c b/array.c
index 8becdbbc91..f3bd553872 100644
--- a/array.c
+++ b/array.c
@@ -1,263 +1,26 @@
-/**********************************************************************
+/************************************************
array.c -
$Author$
+ $Date$
created at: Fri Aug 6 09:46:12 JST 1993
- Copyright (C) 1993-2007 Yukihiro Matsumoto
- Copyright (C) 2000 Network Applied Communication Laboratory, Inc.
- Copyright (C) 2000 Information-technology Promotion Agency, Japan
-
-**********************************************************************/
-
-#include "debug_counter.h"
-#include "id.h"
-#include "internal.h"
-#include "internal/array.h"
-#include "internal/compar.h"
-#include "internal/enum.h"
-#include "internal/gc.h"
-#include "internal/hash.h"
-#include "internal/numeric.h"
-#include "internal/object.h"
-#include "internal/proc.h"
-#include "internal/rational.h"
-#include "internal/vm.h"
-#include "probes.h"
-#include "ruby/encoding.h"
-#include "ruby/st.h"
-#include "ruby/util.h"
-#include "transient_heap.h"
-#include "builtin.h"
-
-#if !ARRAY_DEBUG
-# undef NDEBUG
-# define NDEBUG
-#endif
-#include "ruby_assert.h"
-
-VALUE rb_cArray;
-
-/* for OPTIMIZED_CMP: */
-#define id_cmp idCmp
-
-#define ARY_DEFAULT_SIZE 16
-#define ARY_MAX_SIZE (LONG_MAX / (int)sizeof(VALUE))
-#define SMALL_ARRAY_LEN 16
-
-RBIMPL_ATTR_MAYBE_UNUSED()
-static int
-should_be_T_ARRAY(VALUE ary)
-{
- return RB_TYPE_P(ary, T_ARRAY);
-}
-
-RBIMPL_ATTR_MAYBE_UNUSED()
-static int
-should_not_be_shared_and_embedded(VALUE ary)
-{
- return !FL_TEST((ary), ELTS_SHARED) || !FL_TEST((ary), RARRAY_EMBED_FLAG);
-}
-
-#define ARY_SHARED_P(ary) \
- (assert(should_be_T_ARRAY((VALUE)(ary))), \
- assert(should_not_be_shared_and_embedded((VALUE)ary)), \
- FL_TEST_RAW((ary),ELTS_SHARED)!=0)
-
-#define ARY_EMBED_P(ary) \
- (assert(should_be_T_ARRAY((VALUE)(ary))), \
- assert(should_not_be_shared_and_embedded((VALUE)ary)), \
- FL_TEST_RAW((ary), RARRAY_EMBED_FLAG) != 0)
-
-#define ARY_HEAP_PTR(a) (assert(!ARY_EMBED_P(a)), RARRAY(a)->as.heap.ptr)
-#define ARY_HEAP_LEN(a) (assert(!ARY_EMBED_P(a)), RARRAY(a)->as.heap.len)
-#define ARY_HEAP_CAPA(a) (assert(!ARY_EMBED_P(a)), assert(!ARY_SHARED_ROOT_P(a)), \
- RARRAY(a)->as.heap.aux.capa)
-
-#define ARY_EMBED_PTR(a) (assert(ARY_EMBED_P(a)), RARRAY(a)->as.ary)
-#define ARY_EMBED_LEN(a) \
- (assert(ARY_EMBED_P(a)), \
- (long)((RBASIC(a)->flags >> RARRAY_EMBED_LEN_SHIFT) & \
- (RARRAY_EMBED_LEN_MASK >> RARRAY_EMBED_LEN_SHIFT)))
-#define ARY_HEAP_SIZE(a) (assert(!ARY_EMBED_P(a)), assert(ARY_OWNS_HEAP_P(a)), ARY_CAPA(a) * sizeof(VALUE))
-
-#define ARY_OWNS_HEAP_P(a) (assert(should_be_T_ARRAY((VALUE)(a))), \
- !FL_TEST_RAW((a), ELTS_SHARED|RARRAY_EMBED_FLAG))
-
-#define FL_SET_EMBED(a) do { \
- assert(!ARY_SHARED_P(a)); \
- FL_SET((a), RARRAY_EMBED_FLAG); \
- RARY_TRANSIENT_UNSET(a); \
- ary_verify(a); \
-} while (0)
-
-#define FL_UNSET_EMBED(ary) FL_UNSET((ary), RARRAY_EMBED_FLAG|RARRAY_EMBED_LEN_MASK)
-#define FL_SET_SHARED(ary) do { \
- assert(!ARY_EMBED_P(ary)); \
- FL_SET((ary), ELTS_SHARED); \
-} while (0)
-#define FL_UNSET_SHARED(ary) FL_UNSET((ary), ELTS_SHARED)
-
-#define ARY_SET_PTR(ary, p) do { \
- assert(!ARY_EMBED_P(ary)); \
- assert(!OBJ_FROZEN(ary)); \
- RARRAY(ary)->as.heap.ptr = (p); \
-} while (0)
-#define ARY_SET_EMBED_LEN(ary, n) do { \
- long tmp_n = (n); \
- assert(ARY_EMBED_P(ary)); \
- assert(!OBJ_FROZEN(ary)); \
- RBASIC(ary)->flags &= ~RARRAY_EMBED_LEN_MASK; \
- RBASIC(ary)->flags |= (tmp_n) << RARRAY_EMBED_LEN_SHIFT; \
-} while (0)
-#define ARY_SET_HEAP_LEN(ary, n) do { \
- assert(!ARY_EMBED_P(ary)); \
- RARRAY(ary)->as.heap.len = (n); \
-} while (0)
-#define ARY_SET_LEN(ary, n) do { \
- if (ARY_EMBED_P(ary)) { \
- ARY_SET_EMBED_LEN((ary), (n)); \
- } \
- else { \
- ARY_SET_HEAP_LEN((ary), (n)); \
- } \
- assert(RARRAY_LEN(ary) == (n)); \
-} while (0)
-#define ARY_INCREASE_PTR(ary, n) do { \
- assert(!ARY_EMBED_P(ary)); \
- assert(!OBJ_FROZEN(ary)); \
- RARRAY(ary)->as.heap.ptr += (n); \
-} while (0)
-#define ARY_INCREASE_LEN(ary, n) do { \
- assert(!OBJ_FROZEN(ary)); \
- if (ARY_EMBED_P(ary)) { \
- ARY_SET_EMBED_LEN((ary), RARRAY_LEN(ary)+(n)); \
- } \
- else { \
- RARRAY(ary)->as.heap.len += (n); \
- } \
-} while (0)
-
-#define ARY_CAPA(ary) (ARY_EMBED_P(ary) ? RARRAY_EMBED_LEN_MAX : \
- ARY_SHARED_ROOT_P(ary) ? RARRAY_LEN(ary) : ARY_HEAP_CAPA(ary))
-#define ARY_SET_CAPA(ary, n) do { \
- assert(!ARY_EMBED_P(ary)); \
- assert(!ARY_SHARED_P(ary)); \
- assert(!OBJ_FROZEN(ary)); \
- RARRAY(ary)->as.heap.aux.capa = (n); \
-} while (0)
-
-#define ARY_SHARED_ROOT(ary) (assert(ARY_SHARED_P(ary)), RARRAY(ary)->as.heap.aux.shared_root)
-#define ARY_SET_SHARED(ary, value) do { \
- const VALUE _ary_ = (ary); \
- const VALUE _value_ = (value); \
- assert(!ARY_EMBED_P(_ary_)); \
- assert(ARY_SHARED_P(_ary_)); \
- assert(ARY_SHARED_ROOT_P(_value_)); \
- RB_OBJ_WRITE(_ary_, &RARRAY(_ary_)->as.heap.aux.shared_root, _value_); \
-} while (0)
-#define RARRAY_SHARED_ROOT_FLAG FL_USER5
-#define ARY_SHARED_ROOT_P(ary) (assert(should_be_T_ARRAY((VALUE)(ary))), \
- FL_TEST_RAW((ary), RARRAY_SHARED_ROOT_FLAG))
-#define ARY_SHARED_ROOT_REFCNT(ary) \
- (assert(ARY_SHARED_ROOT_P(ary)), RARRAY(ary)->as.heap.aux.capa)
-#define ARY_SHARED_ROOT_OCCUPIED(ary) (ARY_SHARED_ROOT_REFCNT(ary) == 1)
-#define ARY_SET_SHARED_ROOT_REFCNT(ary, value) do { \
- assert(ARY_SHARED_ROOT_P(ary)); \
- RARRAY(ary)->as.heap.aux.capa = (value); \
-} while (0)
-#define FL_SET_SHARED_ROOT(ary) do { \
- assert(!ARY_EMBED_P(ary)); \
- assert(!RARRAY_TRANSIENT_P(ary)); \
- FL_SET((ary), RARRAY_SHARED_ROOT_FLAG); \
-} while (0)
-
-static inline void
-ARY_SET(VALUE a, long i, VALUE v)
-{
- assert(!ARY_SHARED_P(a));
- assert(!OBJ_FROZEN(a));
-
- RARRAY_ASET(a, i, v);
-}
-#undef RARRAY_ASET
+ Copyright (C) 1993-1999 Yukihiro Matsumoto
+************************************************/
-#if ARRAY_DEBUG
-#define ary_verify(ary) ary_verify_(ary, __FILE__, __LINE__)
-
-static VALUE
-ary_verify_(VALUE ary, const char *file, int line)
-{
- assert(RB_TYPE_P(ary, T_ARRAY));
-
- if (FL_TEST(ary, ELTS_SHARED)) {
- VALUE root = RARRAY(ary)->as.heap.aux.shared_root;
- const VALUE *ptr = ARY_HEAP_PTR(ary);
- const VALUE *root_ptr = RARRAY_CONST_PTR_TRANSIENT(root);
- long len = ARY_HEAP_LEN(ary), root_len = RARRAY_LEN(root);
- assert(FL_TEST(root, RARRAY_SHARED_ROOT_FLAG));
- assert(root_ptr <= ptr && ptr + len <= root_ptr + root_len);
- ary_verify(root);
- }
- else if (ARY_EMBED_P(ary)) {
- assert(!RARRAY_TRANSIENT_P(ary));
- assert(!ARY_SHARED_P(ary));
- assert(RARRAY_LEN(ary) <= RARRAY_EMBED_LEN_MAX);
- }
- else {
-#if 1
- const VALUE *ptr = RARRAY_CONST_PTR_TRANSIENT(ary);
- long i, len = RARRAY_LEN(ary);
- volatile VALUE v;
- if (len > 1) len = 1; /* check only HEAD */
- for (i=0; i<len; i++) {
- v = ptr[i]; /* access check */
- }
- v = v;
-#endif
- }
+#include "ruby.h"
+#include "util.h"
-#if USE_TRANSIENT_HEAP
- if (RARRAY_TRANSIENT_P(ary)) {
- assert(rb_transient_heap_managed_ptr_p(RARRAY_CONST_PTR_TRANSIENT(ary)));
- }
-#endif
-
- rb_transient_heap_verify();
-
- return ary;
-}
-
-void
-rb_ary_verify(VALUE ary)
-{
- ary_verify(ary);
-}
-#else
-#define ary_verify(ary) ((void)0)
-#endif
-
-VALUE *
-rb_ary_ptr_use_start(VALUE ary)
-{
-#if ARRAY_DEBUG
- FL_SET_RAW(ary, RARRAY_PTR_IN_USE_FLAG);
-#endif
- return (VALUE *)RARRAY_CONST_PTR_TRANSIENT(ary);
-}
+VALUE rb_cArray;
-void
-rb_ary_ptr_use_end(VALUE ary)
-{
-#if ARRAY_DEBUG
- FL_UNSET_RAW(ary, RARRAY_PTR_IN_USE_FLAG);
-#endif
-}
+#define ARY_DEFAULT_SIZE 16
void
-rb_mem_clear(VALUE *mem, long size)
+rb_mem_clear(mem, size)
+ register VALUE *mem;
+ register size_t size;
{
while (size--) {
*mem++ = Qnil;
@@ -265,4818 +28,1196 @@ rb_mem_clear(VALUE *mem, long size)
}
static void
-ary_mem_clear(VALUE ary, long beg, long size)
-{
- RARRAY_PTR_USE_TRANSIENT(ary, ptr, {
- rb_mem_clear(ptr + beg, size);
- });
-}
-
-static inline void
-memfill(register VALUE *mem, register long size, register VALUE val)
+memfill(mem, size, val)
+ register VALUE *mem;
+ register size_t size;
+ register VALUE val;
{
while (size--) {
*mem++ = val;
}
}
-static void
-ary_memfill(VALUE ary, long beg, long size, VALUE val)
-{
- RARRAY_PTR_USE_TRANSIENT(ary, ptr, {
- memfill(ptr + beg, size, val);
- RB_OBJ_WRITTEN(ary, Qundef, val);
- });
-}
-
-static void
-ary_memcpy0(VALUE ary, long beg, long argc, const VALUE *argv, VALUE buff_owner_ary)
-{
- assert(!ARY_SHARED_P(buff_owner_ary));
-
- if (argc > (int)(128/sizeof(VALUE)) /* is magic number (cache line size) */) {
- rb_gc_writebarrier_remember(buff_owner_ary);
- RARRAY_PTR_USE_TRANSIENT(ary, ptr, {
- MEMCPY(ptr+beg, argv, VALUE, argc);
- });
- }
- else {
- int i;
- RARRAY_PTR_USE_TRANSIENT(ary, ptr, {
- for (i=0; i<argc; i++) {
- RB_OBJ_WRITE(buff_owner_ary, &ptr[i+beg], argv[i]);
- }
- });
- }
-}
-
-static void
-ary_memcpy(VALUE ary, long beg, long argc, const VALUE *argv)
-{
- ary_memcpy0(ary, beg, argc, argv, ary);
-}
-
-static VALUE *
-ary_heap_alloc(VALUE ary, size_t capa)
-{
- VALUE *ptr = rb_transient_heap_alloc(ary, sizeof(VALUE) * capa);
-
- if (ptr != NULL) {
- RARY_TRANSIENT_SET(ary);
- }
- else {
- RARY_TRANSIENT_UNSET(ary);
- ptr = ALLOC_N(VALUE, capa);
- }
-
- return ptr;
-}
-
-static void
-ary_heap_free_ptr(VALUE ary, const VALUE *ptr, long size)
-{
- if (RARRAY_TRANSIENT_P(ary)) {
- /* ignore it */
- }
- else {
- ruby_sized_xfree((void *)ptr, size);
- }
-}
-
-static void
-ary_heap_free(VALUE ary)
-{
- if (RARRAY_TRANSIENT_P(ary)) {
- RARY_TRANSIENT_UNSET(ary);
- }
- else {
- ary_heap_free_ptr(ary, ARY_HEAP_PTR(ary), ARY_HEAP_SIZE(ary));
- }
-}
-
-static size_t
-ary_heap_realloc(VALUE ary, size_t new_capa)
-{
- size_t alloc_capa = new_capa;
- size_t old_capa = ARY_HEAP_CAPA(ary);
-
- if (RARRAY_TRANSIENT_P(ary)) {
- if (new_capa <= old_capa) {
- /* do nothing */
- alloc_capa = old_capa;
- }
- else {
- VALUE *new_ptr = rb_transient_heap_alloc(ary, sizeof(VALUE) * new_capa);
-
- if (new_ptr == NULL) {
- new_ptr = ALLOC_N(VALUE, new_capa);
- RARY_TRANSIENT_UNSET(ary);
- }
-
- MEMCPY(new_ptr, ARY_HEAP_PTR(ary), VALUE, old_capa);
- ARY_SET_PTR(ary, new_ptr);
- }
- }
- else {
- SIZED_REALLOC_N(RARRAY(ary)->as.heap.ptr, VALUE, new_capa, old_capa);
- }
- ary_verify(ary);
-
- return alloc_capa;
-}
-
-#if USE_TRANSIENT_HEAP
-static inline void
-rb_ary_transient_heap_evacuate_(VALUE ary, int transient, int promote)
-{
- if (transient) {
- VALUE *new_ptr;
- const VALUE *old_ptr = ARY_HEAP_PTR(ary);
- long capa = ARY_HEAP_CAPA(ary);
- long len = ARY_HEAP_LEN(ary);
-
- if (ARY_SHARED_ROOT_P(ary)) {
- capa = len;
- }
-
- assert(ARY_OWNS_HEAP_P(ary));
- assert(RARRAY_TRANSIENT_P(ary));
- assert(!ARY_PTR_USING_P(ary));
-
- if (promote) {
- new_ptr = ALLOC_N(VALUE, capa);
- RARY_TRANSIENT_UNSET(ary);
- }
- else {
- new_ptr = ary_heap_alloc(ary, capa);
- }
-
- MEMCPY(new_ptr, old_ptr, VALUE, capa);
- /* do not use ARY_SET_PTR() because they assert !frozen */
- RARRAY(ary)->as.heap.ptr = new_ptr;
- }
-
- ary_verify(ary);
-}
-
-void
-rb_ary_transient_heap_evacuate(VALUE ary, int promote)
-{
- rb_ary_transient_heap_evacuate_(ary, RARRAY_TRANSIENT_P(ary), promote);
-}
-
-void
-rb_ary_detransient(VALUE ary)
-{
- assert(RARRAY_TRANSIENT_P(ary));
- rb_ary_transient_heap_evacuate_(ary, TRUE, TRUE);
-}
-#else
-void
-rb_ary_detransient(VALUE ary)
-{
- /* do nothing */
-}
-#endif
-
-static void
-ary_resize_capa(VALUE ary, long capacity)
-{
- assert(RARRAY_LEN(ary) <= capacity);
- assert(!OBJ_FROZEN(ary));
- assert(!ARY_SHARED_P(ary));
-
- if (capacity > RARRAY_EMBED_LEN_MAX) {
- size_t new_capa = capacity;
- if (ARY_EMBED_P(ary)) {
- long len = ARY_EMBED_LEN(ary);
- VALUE *ptr = ary_heap_alloc(ary, capacity);
-
- MEMCPY(ptr, ARY_EMBED_PTR(ary), VALUE, len);
- FL_UNSET_EMBED(ary);
- ARY_SET_PTR(ary, ptr);
- ARY_SET_HEAP_LEN(ary, len);
- }
- else {
- new_capa = ary_heap_realloc(ary, capacity);
- }
- ARY_SET_CAPA(ary, new_capa);
- }
- else {
- if (!ARY_EMBED_P(ary)) {
- long len = ARY_HEAP_LEN(ary);
- long old_capa = ARY_HEAP_CAPA(ary);
- const VALUE *ptr = ARY_HEAP_PTR(ary);
-
- if (len > capacity) len = capacity;
- MEMCPY((VALUE *)RARRAY(ary)->as.ary, ptr, VALUE, len);
- ary_heap_free_ptr(ary, ptr, old_capa);
-
- FL_SET_EMBED(ary);
- ARY_SET_LEN(ary, len);
- }
- }
-
- ary_verify(ary);
-}
-
-static inline void
-ary_shrink_capa(VALUE ary)
-{
- long capacity = ARY_HEAP_LEN(ary);
- long old_capa = ARY_HEAP_CAPA(ary);
- assert(!ARY_SHARED_P(ary));
- assert(old_capa >= capacity);
- if (old_capa > capacity) ary_heap_realloc(ary, capacity);
-
- ary_verify(ary);
-}
-
-static void
-ary_double_capa(VALUE ary, long min)
-{
- long new_capa = ARY_CAPA(ary) / 2;
-
- if (new_capa < ARY_DEFAULT_SIZE) {
- new_capa = ARY_DEFAULT_SIZE;
- }
- if (new_capa >= ARY_MAX_SIZE - min) {
- new_capa = (ARY_MAX_SIZE - min) / 2;
- }
- new_capa += min;
- ary_resize_capa(ary, new_capa);
-
- ary_verify(ary);
-}
-
-static void
-rb_ary_decrement_share(VALUE shared_root)
-{
- if (shared_root) {
- long num = ARY_SHARED_ROOT_REFCNT(shared_root) - 1;
- if (num > 0) {
- ARY_SET_SHARED_ROOT_REFCNT(shared_root, num);
- }
- }
-}
+#define ARY_FREEZE FL_USER1
+#define ARY_TMPLOCK FL_USER2
static void
-rb_ary_unshare(VALUE ary)
-{
- VALUE shared_root = RARRAY(ary)->as.heap.aux.shared_root;
- rb_ary_decrement_share(shared_root);
- FL_UNSET_SHARED(ary);
-}
-
-static inline void
-rb_ary_unshare_safe(VALUE ary)
-{
- if (ARY_SHARED_P(ary) && !ARY_EMBED_P(ary)) {
- rb_ary_unshare(ary);
- }
-}
-
-static VALUE
-rb_ary_increment_share(VALUE shared_root)
-{
- long num = ARY_SHARED_ROOT_REFCNT(shared_root);
- if (num >= 0) {
- ARY_SET_SHARED_ROOT_REFCNT(shared_root, num + 1);
- }
- return shared_root;
-}
-
-static void
-rb_ary_set_shared(VALUE ary, VALUE shared_root)
-{
- rb_ary_increment_share(shared_root);
- FL_SET_SHARED(ary);
- RB_DEBUG_COUNTER_INC(obj_ary_shared_create);
- ARY_SET_SHARED(ary, shared_root);
-}
-
-static inline void
-rb_ary_modify_check(VALUE ary)
-{
- rb_check_frozen(ary);
- ary_verify(ary);
-}
-
-void
-rb_ary_cancel_sharing(VALUE ary)
-{
- if (ARY_SHARED_P(ary)) {
- long shared_len, len = RARRAY_LEN(ary);
- VALUE shared_root = ARY_SHARED_ROOT(ary);
-
- ary_verify(shared_root);
-
- if (len <= RARRAY_EMBED_LEN_MAX) {
- const VALUE *ptr = ARY_HEAP_PTR(ary);
- FL_UNSET_SHARED(ary);
- FL_SET_EMBED(ary);
- MEMCPY((VALUE *)ARY_EMBED_PTR(ary), ptr, VALUE, len);
- rb_ary_decrement_share(shared_root);
- ARY_SET_EMBED_LEN(ary, len);
- }
- else if (ARY_SHARED_ROOT_OCCUPIED(shared_root) && len > ((shared_len = RARRAY_LEN(shared_root))>>1)) {
- long shift = RARRAY_CONST_PTR_TRANSIENT(ary) - RARRAY_CONST_PTR_TRANSIENT(shared_root);
- FL_UNSET_SHARED(ary);
- ARY_SET_PTR(ary, RARRAY_CONST_PTR_TRANSIENT(shared_root));
- ARY_SET_CAPA(ary, shared_len);
- RARRAY_PTR_USE_TRANSIENT(ary, ptr, {
- MEMMOVE(ptr, ptr+shift, VALUE, len);
- });
- FL_SET_EMBED(shared_root);
- rb_ary_decrement_share(shared_root);
- }
- else {
- VALUE *ptr = ary_heap_alloc(ary, len);
- MEMCPY(ptr, ARY_HEAP_PTR(ary), VALUE, len);
- rb_ary_unshare(ary);
- ARY_SET_CAPA(ary, len);
- ARY_SET_PTR(ary, ptr);
- }
-
- rb_gc_writebarrier_remember(ary);
- }
- ary_verify(ary);
-}
-
-void
-rb_ary_modify(VALUE ary)
-{
- rb_ary_modify_check(ary);
- rb_ary_cancel_sharing(ary);
-}
-
-static VALUE
-ary_ensure_room_for_push(VALUE ary, long add_len)
+rb_ary_modify(ary)
+ VALUE ary;
{
- long old_len = RARRAY_LEN(ary);
- long new_len = old_len + add_len;
- long capa;
-
- if (old_len > ARY_MAX_SIZE - add_len) {
- rb_raise(rb_eIndexError, "index %ld too big", new_len);
- }
- if (ARY_SHARED_P(ary)) {
- if (new_len > RARRAY_EMBED_LEN_MAX) {
- VALUE shared_root = ARY_SHARED_ROOT(ary);
- if (ARY_SHARED_ROOT_OCCUPIED(shared_root)) {
- if (ARY_HEAP_PTR(ary) - RARRAY_CONST_PTR_TRANSIENT(shared_root) + new_len <= RARRAY_LEN(shared_root)) {
- rb_ary_modify_check(ary);
-
- ary_verify(ary);
- ary_verify(shared_root);
- return shared_root;
- }
- else {
- /* if array is shared, then it is likely it participate in push/shift pattern */
- rb_ary_modify(ary);
- capa = ARY_CAPA(ary);
- if (new_len > capa - (capa >> 6)) {
- ary_double_capa(ary, new_len);
- }
- ary_verify(ary);
- return ary;
- }
- }
- }
- ary_verify(ary);
- rb_ary_modify(ary);
- }
- else {
- rb_ary_modify_check(ary);
- }
- capa = ARY_CAPA(ary);
- if (new_len > capa) {
- ary_double_capa(ary, new_len);
- }
-
- ary_verify(ary);
- return ary;
+ if (FL_TEST(ary, ARY_FREEZE))
+ rb_raise(rb_eTypeError, "can't modify frozen array");
+ if (FL_TEST(ary, ARY_TMPLOCK))
+ rb_raise(rb_eTypeError, "can't modify array during sort");
+ if (!FL_TEST(ary, FL_TAINT) && rb_safe_level() >= 4)
+ rb_raise(rb_eSecurityError, "Insecure: can't modify array");
}
-/*
- * call-seq:
- * array.freeze -> self
- *
- * Freezes +self+; returns +self+:
- * a = []
- * a.frozen? # => false
- * a.freeze
- * a.frozen? # => true
- *
- * An attempt to modify a frozen \Array raises FrozenError.
- */
-
VALUE
-rb_ary_freeze(VALUE ary)
+rb_ary_freeze(ary)
+ VALUE ary;
{
- return rb_obj_freeze(ary);
+ FL_SET(ary, ARY_FREEZE);
+ return ary;
}
-/* This can be used to take a snapshot of an array (with
- e.g. rb_ary_replace) and check later whether the array has been
- modified from the snapshot. The snapshot is cheap, though if
- something does modify the array it will pay the cost of copying
- it. If Array#pop or Array#shift has been called, the array will
- be still shared with the snapshot, but the array length will
- differ. */
-VALUE
-rb_ary_shared_with_p(VALUE ary1, VALUE ary2)
+static VALUE
+rb_ary_frozen_p(ary)
+ VALUE ary;
{
- if (!ARY_EMBED_P(ary1) && ARY_SHARED_P(ary1) &&
- !ARY_EMBED_P(ary2) && ARY_SHARED_P(ary2) &&
- RARRAY(ary1)->as.heap.aux.shared_root == RARRAY(ary2)->as.heap.aux.shared_root &&
- RARRAY(ary1)->as.heap.len == RARRAY(ary2)->as.heap.len) {
+ if (FL_TEST(ary, ARY_FREEZE|ARY_TMPLOCK))
return Qtrue;
- }
return Qfalse;
}
-static VALUE
-ary_alloc(VALUE klass)
-{
- NEWOBJ_OF(ary, struct RArray, klass, T_ARRAY | RARRAY_EMBED_FLAG | (RGENGC_WB_PROTECTED_ARRAY ? FL_WB_PROTECTED : 0));
- /* Created array is:
- * FL_SET_EMBED((VALUE)ary);
- * ARY_SET_EMBED_LEN((VALUE)ary, 0);
- */
- return (VALUE)ary;
-}
-
-static VALUE
-empty_ary_alloc(VALUE klass)
-{
- RUBY_DTRACE_CREATE_HOOK(ARRAY, 0);
- return ary_alloc(klass);
-}
-
-static VALUE
-ary_new(VALUE klass, long capa)
+VALUE
+rb_ary_new2(len)
+ long len;
{
- VALUE ary,*ptr;
+ NEWOBJ(ary, struct RArray);
+ OBJSETUP(ary, rb_cArray, T_ARRAY);
- if (capa < 0) {
+ if (len < 0) {
rb_raise(rb_eArgError, "negative array size (or size too big)");
}
- if (capa > ARY_MAX_SIZE) {
+ if (len > 0 && len*sizeof(VALUE) <= 0) {
rb_raise(rb_eArgError, "array size too big");
}
+ ary->len = 0;
+ ary->capa = len;
+ ary->ptr = 0;
+ if (len == 0) len++;
+ ary->ptr = ALLOC_N(VALUE, len);
- RUBY_DTRACE_CREATE_HOOK(ARRAY, capa);
-
- ary = ary_alloc(klass);
- if (capa > RARRAY_EMBED_LEN_MAX) {
- ptr = ary_heap_alloc(ary, capa);
- FL_UNSET_EMBED(ary);
- ARY_SET_PTR(ary, ptr);
- ARY_SET_CAPA(ary, capa);
- ARY_SET_HEAP_LEN(ary, 0);
- }
-
- return ary;
+ return (VALUE)ary;
}
VALUE
-rb_ary_new_capa(long capa)
+rb_ary_new()
{
- return ary_new(rb_cArray, capa);
+ return rb_ary_new2(ARY_DEFAULT_SIZE);
}
-VALUE
-rb_ary_new(void)
-{
- return rb_ary_new2(RARRAY_EMBED_LEN_MAX);
-}
+#ifdef HAVE_STDARG_PROTOTYPES
+#include <stdarg.h>
+#define va_init_list(a,b) va_start(a,b)
+#else
+#include <varargs.h>
+#define va_init_list(a,b) va_start(a)
+#endif
VALUE
-(rb_ary_new_from_args)(long n, ...)
+#ifdef HAVE_STDARG_PROTOTYPES
+rb_ary_new3(long n, ...)
+#else
+rb_ary_new3(n, va_alist)
+ long n;
+ va_dcl
+#endif
{
va_list ar;
VALUE ary;
long i;
- ary = rb_ary_new2(n);
+ if (n < 0) {
+ rb_raise(rb_eIndexError, "negative number of items(%d)", n);
+ }
+ ary = rb_ary_new2(n<ARY_DEFAULT_SIZE?ARY_DEFAULT_SIZE:n);
- va_start(ar, n);
+ va_init_list(ar, n);
for (i=0; i<n; i++) {
- ARY_SET(ary, i, va_arg(ar, VALUE));
+ RARRAY(ary)->ptr[i] = va_arg(ar, VALUE);
}
va_end(ar);
- ARY_SET_LEN(ary, n);
- return ary;
-}
-
-MJIT_FUNC_EXPORTED VALUE
-rb_ary_tmp_new_from_values(VALUE klass, long n, const VALUE *elts)
-{
- VALUE ary;
-
- ary = ary_new(klass, n);
- if (n > 0 && elts) {
- ary_memcpy(ary, 0, n, elts);
- ARY_SET_LEN(ary, n);
- }
-
+ RARRAY(ary)->len = n;
return ary;
}
VALUE
-rb_ary_new_from_values(long n, const VALUE *elts)
-{
- return rb_ary_tmp_new_from_values(rb_cArray, n, elts);
-}
-
-static VALUE
-ec_ary_alloc(rb_execution_context_t *ec, VALUE klass)
-{
- RB_EC_NEWOBJ_OF(ec, ary, struct RArray, klass, T_ARRAY | RARRAY_EMBED_FLAG | (RGENGC_WB_PROTECTED_ARRAY ? FL_WB_PROTECTED : 0));
- /* Created array is:
- * FL_SET_EMBED((VALUE)ary);
- * ARY_SET_EMBED_LEN((VALUE)ary, 0);
- */
- return (VALUE)ary;
-}
-
-static VALUE
-ec_ary_new(rb_execution_context_t *ec, VALUE klass, long capa)
+rb_ary_new4(n, elts)
+ long n;
+ VALUE *elts;
{
- VALUE ary,*ptr;
-
- if (capa < 0) {
- rb_raise(rb_eArgError, "negative array size (or size too big)");
- }
- if (capa > ARY_MAX_SIZE) {
- rb_raise(rb_eArgError, "array size too big");
- }
-
- RUBY_DTRACE_CREATE_HOOK(ARRAY, capa);
-
- ary = ec_ary_alloc(ec, klass);
+ VALUE ary;
- if (capa > RARRAY_EMBED_LEN_MAX) {
- ptr = ary_heap_alloc(ary, capa);
- FL_UNSET_EMBED(ary);
- ARY_SET_PTR(ary, ptr);
- ARY_SET_CAPA(ary, capa);
- ARY_SET_HEAP_LEN(ary, 0);
+ ary = rb_ary_new2(n);
+ if (elts) {
+ MEMCPY(RARRAY(ary)->ptr, elts, VALUE, n);
}
+ RARRAY(ary)->len = n;
return ary;
}
VALUE
-rb_ec_ary_new_from_values(rb_execution_context_t *ec, long n, const VALUE *elts)
+rb_assoc_new(car, cdr)
+ VALUE car, cdr;
{
VALUE ary;
- ary = ec_ary_new(ec, rb_cArray, n);
- if (n > 0 && elts) {
- ary_memcpy(ary, 0, n, elts);
- ARY_SET_LEN(ary, n);
- }
+ ary = rb_ary_new2(2);
+ RARRAY(ary)->ptr[0] = car;
+ RARRAY(ary)->ptr[1] = cdr;
+ RARRAY(ary)->len = 2;
return ary;
}
-VALUE
-rb_ary_tmp_new(long capa)
-{
- VALUE ary = ary_new(0, capa);
- rb_ary_transient_heap_evacuate(ary, TRUE);
- return ary;
-}
-
-VALUE
-rb_ary_tmp_new_fill(long capa)
-{
- VALUE ary = ary_new(0, capa);
- ary_memfill(ary, 0, capa, Qnil);
- ARY_SET_LEN(ary, capa);
- rb_ary_transient_heap_evacuate(ary, TRUE);
- return ary;
-}
-
-void
-rb_ary_free(VALUE ary)
-{
- if (ARY_OWNS_HEAP_P(ary)) {
- if (USE_DEBUG_COUNTER &&
- !ARY_SHARED_ROOT_P(ary) &&
- ARY_HEAP_CAPA(ary) > RARRAY_LEN(ary)) {
- RB_DEBUG_COUNTER_INC(obj_ary_extracapa);
- }
-
- if (RARRAY_TRANSIENT_P(ary)) {
- RB_DEBUG_COUNTER_INC(obj_ary_transient);
- }
- else {
- RB_DEBUG_COUNTER_INC(obj_ary_ptr);
- ary_heap_free(ary);
- }
- }
- else {
- RB_DEBUG_COUNTER_INC(obj_ary_embed);
- }
-
- if (ARY_SHARED_P(ary)) {
- RB_DEBUG_COUNTER_INC(obj_ary_shared);
- }
- if (ARY_SHARED_ROOT_P(ary) && ARY_SHARED_ROOT_OCCUPIED(ary)) {
- RB_DEBUG_COUNTER_INC(obj_ary_shared_root_occupied);
- }
-}
-
-RUBY_FUNC_EXPORTED size_t
-rb_ary_memsize(VALUE ary)
-{
- if (ARY_OWNS_HEAP_P(ary)) {
- return ARY_CAPA(ary) * sizeof(VALUE);
- }
- else {
- return 0;
- }
-}
-
-static inline void
-ary_discard(VALUE ary)
-{
- rb_ary_free(ary);
- RBASIC(ary)->flags |= RARRAY_EMBED_FLAG;
- RBASIC(ary)->flags &= ~(RARRAY_EMBED_LEN_MASK | RARRAY_TRANSIENT_FLAG);
-}
-
static VALUE
-ary_make_shared(VALUE ary)
+rb_ary_s_new(argc, argv, klass)
+ int argc;
+ VALUE *argv;
+ VALUE klass;
{
- assert(!ARY_EMBED_P(ary));
- ary_verify(ary);
+ long len = 0;
+ VALUE size, val;
+ NEWOBJ(ary, struct RArray);
+ OBJSETUP(ary, klass, T_ARRAY);
- if (ARY_SHARED_P(ary)) {
- return ARY_SHARED_ROOT(ary);
- }
- else if (ARY_SHARED_ROOT_P(ary)) {
- return ary;
- }
- else if (OBJ_FROZEN(ary)) {
- rb_ary_transient_heap_evacuate(ary, TRUE);
- ary_shrink_capa(ary);
- FL_SET_SHARED_ROOT(ary);
- ARY_SET_SHARED_ROOT_REFCNT(ary, 1);
- return ary;
+ ary->len = 0;
+ ary->ptr = 0;
+ if (rb_scan_args(argc, argv, "02", &size, &val) == 0) {
+ ary->capa = ARY_DEFAULT_SIZE;
}
else {
- long capa = ARY_CAPA(ary), len = RARRAY_LEN(ary);
- const VALUE *ptr;
- NEWOBJ_OF(shared, struct RArray, 0, T_ARRAY | (RGENGC_WB_PROTECTED_ARRAY ? FL_WB_PROTECTED : 0));
- VALUE vshared = (VALUE)shared;
-
- rb_ary_transient_heap_evacuate(ary, TRUE);
- ptr = ARY_HEAP_PTR(ary);
-
- FL_UNSET_EMBED(vshared);
- ARY_SET_LEN(vshared, capa);
- ARY_SET_PTR(vshared, ptr);
- ary_mem_clear(vshared, len, capa - len);
- FL_SET_SHARED_ROOT(vshared);
- ARY_SET_SHARED_ROOT_REFCNT(vshared, 1);
- FL_SET_SHARED(ary);
- RB_DEBUG_COUNTER_INC(obj_ary_shared_create);
- ARY_SET_SHARED(ary, vshared);
- OBJ_FREEZE(vshared);
-
- ary_verify(vshared);
- ary_verify(ary);
-
- return vshared;
- }
-}
+ long capa = NUM2LONG(size);
-static VALUE
-ary_make_substitution(VALUE ary)
-{
- long len = RARRAY_LEN(ary);
-
- if (len <= RARRAY_EMBED_LEN_MAX) {
- VALUE subst = rb_ary_new2(len);
- ary_memcpy(subst, 0, len, RARRAY_CONST_PTR_TRANSIENT(ary));
- ARY_SET_EMBED_LEN(subst, len);
- return subst;
- }
- else {
- return rb_ary_increment_share(ary_make_shared(ary));
+ if (capa < 0) {
+ rb_raise(rb_eArgError, "negative array size");
+ }
+ if (capa > 0 && capa*sizeof(VALUE) <= 0) {
+ rb_raise(rb_eArgError, "array size too big");
+ }
+ ary->capa = capa;
+ len = capa;
}
-}
-
-VALUE
-rb_assoc_new(VALUE car, VALUE cdr)
-{
- return rb_ary_new3(2, car, cdr);
-}
+ ary->ptr = ALLOC_N(VALUE, ary->capa);
+ memfill(ary->ptr, len, val);
+ ary->len = len;
-VALUE
-rb_to_array_type(VALUE ary)
-{
- return rb_convert_type_with_id(ary, T_ARRAY, "Array", idTo_ary);
-}
-#define to_ary rb_to_array_type
-
-VALUE
-rb_check_array_type(VALUE ary)
-{
- return rb_check_convert_type_with_id(ary, T_ARRAY, "Array", idTo_ary);
-}
-
-MJIT_FUNC_EXPORTED VALUE
-rb_check_to_array(VALUE ary)
-{
- return rb_check_convert_type_with_id(ary, T_ARRAY, "Array", idTo_a);
-}
-
-VALUE
-rb_to_array(VALUE ary)
-{
- return rb_convert_type_with_id(ary, T_ARRAY, "Array", idTo_a);
-}
-
-/*
- * call-seq:
- * Array.try_convert(object) -> object, new_array, or nil
- *
- * If +object+ is an \Array object, returns +object+.
- *
- * Otherwise if +object+ responds to <tt>:to_ary</tt>,
- * calls <tt>object.to_ary</tt> and returns the result.
- *
- * Returns +nil+ if +object+ does not respond to <tt>:to_ary</tt>
- *
- * Raises an exception unless <tt>object.to_ary</tt> returns an \Array object.
- */
-
-static VALUE
-rb_ary_s_try_convert(VALUE dummy, VALUE ary)
-{
- return rb_check_array_type(ary);
+ return (VALUE)ary;
}
-/*
- * call-seq:
- * Array.new -> new_empty_array
- * Array.new(array) -> new_array
- * Array.new(size) -> new_array
- * Array.new(size, default_value) -> new_array
- * Array.new(size) {|index| ... } -> new_array
- *
- * Returns a new \Array.
- *
- * With no block and no arguments, returns a new empty \Array object.
- *
- * With no block and a single \Array argument +array+,
- * returns a new \Array formed from +array+:
- * a = Array.new([:foo, 'bar', 2])
- * a.class # => Array
- * a # => [:foo, "bar", 2]
- *
- * With no block and a single \Integer argument +size+,
- * returns a new \Array of the given size
- * whose elements are all +nil+:
- * a = Array.new(3)
- * a # => [nil, nil, nil]
- *
- * With no block and arguments +size+ and +default_value+,
- * returns an \Array of the given size;
- * each element is that same +default_value+:
- * a = Array.new(3, 'x')
- * a # => ['x', 'x', 'x']
- *
- * With a block and argument +size+,
- * returns an \Array of the given size;
- * the block is called with each successive integer +index+;
- * the element for that +index+ is the return value from the block:
- * a = Array.new(3) {|index| "Element #{index}" }
- * a # => ["Element 0", "Element 1", "Element 2"]
- *
- * Raises ArgumentError if +size+ is negative.
- *
- * With a block and no argument,
- * or a single argument +0+,
- * ignores the block and returns a new empty \Array.
- */
-
static VALUE
-rb_ary_initialize(int argc, VALUE *argv, VALUE ary)
+rb_ary_s_create(argc, argv, klass)
+ int argc;
+ VALUE *argv;
+ VALUE klass;
{
- long len;
- VALUE size, val;
+ NEWOBJ(ary, struct RArray);
+ OBJSETUP(ary, klass, T_ARRAY);
- rb_ary_modify(ary);
+ ary->len = ary->capa = 0;
if (argc == 0) {
- if (ARY_OWNS_HEAP_P(ary) && ARY_HEAP_PTR(ary) != NULL) {
- ary_heap_free(ary);
- }
- rb_ary_unshare_safe(ary);
- FL_SET_EMBED(ary);
- ARY_SET_EMBED_LEN(ary, 0);
- if (rb_block_given_p()) {
- rb_warning("given block not used");
- }
- return ary;
- }
- rb_scan_args(argc, argv, "02", &size, &val);
- if (argc == 1 && !FIXNUM_P(size)) {
- val = rb_check_array_type(size);
- if (!NIL_P(val)) {
- rb_ary_replace(ary, val);
- return ary;
- }
- }
-
- len = NUM2LONG(size);
- /* NUM2LONG() may call size.to_int, ary can be frozen, modified, etc */
- if (len < 0) {
- rb_raise(rb_eArgError, "negative array size");
- }
- if (len > ARY_MAX_SIZE) {
- rb_raise(rb_eArgError, "array size too big");
- }
- /* recheck after argument conversion */
- rb_ary_modify(ary);
- ary_resize_capa(ary, len);
- if (rb_block_given_p()) {
- long i;
-
- if (argc == 2) {
- rb_warn("block supersedes default value argument");
- }
- for (i=0; i<len; i++) {
- rb_ary_store(ary, i, rb_yield(LONG2NUM(i)));
- ARY_SET_LEN(ary, i + 1);
- }
+ ary->ptr = 0;
}
else {
- ary_memfill(ary, 0, len, val);
- ARY_SET_LEN(ary, len);
- }
- return ary;
-}
-
-/*
- * Returns a new array populated with the given objects.
- *
- * Array.[]( 1, 'a', /^A/) # => [1, "a", /^A/]
- * Array[ 1, 'a', /^A/ ] # => [1, "a", /^A/]
- * [ 1, 'a', /^A/ ] # => [1, "a", /^A/]
- */
-
-static VALUE
-rb_ary_s_create(int argc, VALUE *argv, VALUE klass)
-{
- VALUE ary = ary_new(klass, argc);
- if (argc > 0 && argv) {
- ary_memcpy(ary, 0, argc, argv);
- ARY_SET_LEN(ary, argc);
+ ary->ptr = ALLOC_N(VALUE, argc);
+ MEMCPY(ary->ptr, argv, VALUE, argc);
}
+ ary->len = ary->capa = argc;
- return ary;
+ return (VALUE)ary;
}
void
-rb_ary_store(VALUE ary, long idx, VALUE val)
+rb_ary_store(ary, idx, val)
+ VALUE ary;
+ long idx;
+ VALUE val;
{
- long len = RARRAY_LEN(ary);
-
+ rb_ary_modify(ary);
if (idx < 0) {
- idx += len;
+ idx += RARRAY(ary)->len;
if (idx < 0) {
- rb_raise(rb_eIndexError, "index %ld too small for array; minimum: %ld",
- idx - len, -len);
+ rb_raise(rb_eIndexError, "index %d out of array",
+ idx - RARRAY(ary)->len);
}
}
- else if (idx >= ARY_MAX_SIZE) {
- rb_raise(rb_eIndexError, "index %ld too big", idx);
- }
-
- rb_ary_modify(ary);
- if (idx >= ARY_CAPA(ary)) {
- ary_double_capa(ary, idx);
- }
- if (idx > len) {
- ary_mem_clear(ary, len, idx - len + 1);
- }
- if (idx >= len) {
- ARY_SET_LEN(ary, idx + 1);
+ if (idx >= RARRAY(ary)->capa) {
+ long capa_inc = RARRAY(ary)->capa / 2;
+ if (capa_inc < ARY_DEFAULT_SIZE) {
+ capa_inc = ARY_DEFAULT_SIZE;
+ }
+ RARRAY(ary)->capa = idx + capa_inc;
+ REALLOC_N(RARRAY(ary)->ptr, VALUE, RARRAY(ary)->capa);
}
- ARY_SET(ary, idx, val);
-}
-
-static VALUE
-ary_make_partial(VALUE ary, VALUE klass, long offset, long len)
-{
- assert(offset >= 0);
- assert(len >= 0);
- assert(offset+len <= RARRAY_LEN(ary));
-
- if (len <= RARRAY_EMBED_LEN_MAX) {
- VALUE result = ary_alloc(klass);
- ary_memcpy(result, 0, len, RARRAY_CONST_PTR_TRANSIENT(ary) + offset);
- ARY_SET_EMBED_LEN(result, len);
- return result;
+ if (idx > RARRAY(ary)->len) {
+ rb_mem_clear(RARRAY(ary)->ptr+RARRAY(ary)->len,
+ idx-RARRAY(ary)->len+1);
}
- else {
- VALUE shared, result = ary_alloc(klass);
- FL_UNSET_EMBED(result);
-
- shared = ary_make_shared(ary);
- ARY_SET_PTR(result, RARRAY_CONST_PTR_TRANSIENT(ary));
- ARY_SET_LEN(result, RARRAY_LEN(ary));
- rb_ary_set_shared(result, shared);
- ARY_INCREASE_PTR(result, offset);
- ARY_SET_LEN(result, len);
-
- ary_verify(shared);
- ary_verify(result);
- return result;
+ if (idx >= RARRAY(ary)->len) {
+ RARRAY(ary)->len = idx + 1;
}
+ RARRAY(ary)->ptr[idx] = val;
}
-static VALUE
-ary_make_partial_step(VALUE ary, VALUE klass, long offset, long len, long step)
-{
- assert(offset >= 0);
- assert(len >= 0);
- assert(offset+len <= RARRAY_LEN(ary));
- assert(step != 0);
-
- const VALUE *values = RARRAY_CONST_PTR_TRANSIENT(ary);
- const long orig_len = len;
-
- if ((step > 0 && step >= len) || (step < 0 && (step < -len))) {
- VALUE result = ary_new(klass, 1);
- VALUE *ptr = (VALUE *)ARY_EMBED_PTR(result);
- RB_OBJ_WRITE(result, ptr, values[offset]);
- ARY_SET_EMBED_LEN(result, 1);
- return result;
- }
-
- long ustep = (step < 0) ? -step : step;
- len = (len + ustep - 1) / ustep;
-
- long i;
- long j = offset + ((step > 0) ? 0 : (orig_len - 1));
- VALUE result = ary_new(klass, len);
- if (len <= RARRAY_EMBED_LEN_MAX) {
- VALUE *ptr = (VALUE *)ARY_EMBED_PTR(result);
- for (i = 0; i < len; ++i) {
- RB_OBJ_WRITE(result, ptr+i, values[j]);
- j += step;
- }
- ARY_SET_EMBED_LEN(result, len);
- }
- else {
- RARRAY_PTR_USE_TRANSIENT(result, ptr, {
- for (i = 0; i < len; ++i) {
- RB_OBJ_WRITE(result, ptr+i, values[j]);
- j += step;
- }
- });
- ARY_SET_LEN(result, len);
- }
-
- return result;
-}
-
-static VALUE
-ary_make_shared_copy(VALUE ary)
+VALUE
+rb_ary_push(ary, item)
+ VALUE ary;
+ VALUE item;
{
- return ary_make_partial(ary, rb_cArray, 0, RARRAY_LEN(ary));
+ rb_ary_store(ary, RARRAY(ary)->len, item);
+ return ary;
}
-enum ary_take_pos_flags
-{
- ARY_TAKE_FIRST = 0,
- ARY_TAKE_LAST = 1
-};
-
static VALUE
-ary_take_first_or_last(int argc, const VALUE *argv, VALUE ary, enum ary_take_pos_flags last)
+rb_ary_push_method(argc, argv, ary)
+ int argc;
+ VALUE *argv;
+ VALUE ary;
{
- long n;
- long len;
- long offset = 0;
-
- argc = rb_check_arity(argc, 0, 1);
- /* the case optional argument is omitted should be handled in
- * callers of this function. if another arity case is added,
- * this arity check needs to rewrite. */
- RUBY_ASSERT_ALWAYS(argc == 1);
-
- n = NUM2LONG(argv[0]);
- len = RARRAY_LEN(ary);
- if (n > len) {
- n = len;
- }
- else if (n < 0) {
- rb_raise(rb_eArgError, "negative array size");
- }
- if (last) {
- offset = len - n;
+ while (argc--) {
+ rb_ary_store(ary, RARRAY(ary)->len, *argv++);
}
- return ary_make_partial(ary, rb_cArray, offset, n);
-}
-
-/*
- * call-seq:
- * array << object -> self
- *
- * Appends +object+ to +self+; returns +self+:
- * a = [:foo, 'bar', 2]
- * a << :baz # => [:foo, "bar", 2, :baz]
- *
- * Appends +object+ as one element, even if it is another \Array:
- * a = [:foo, 'bar', 2]
- * a1 = a << [3, 4]
- * a1 # => [:foo, "bar", 2, [3, 4]]
- */
-
-VALUE
-rb_ary_push(VALUE ary, VALUE item)
-{
- long idx = RARRAY_LEN((ary_verify(ary), ary));
- VALUE target_ary = ary_ensure_room_for_push(ary, 1);
- RARRAY_PTR_USE_TRANSIENT(ary, ptr, {
- RB_OBJ_WRITE(target_ary, &ptr[idx], item);
- });
- ARY_SET_LEN(ary, idx + 1);
- ary_verify(ary);
return ary;
}
VALUE
-rb_ary_cat(VALUE ary, const VALUE *argv, long len)
-{
- long oldlen = RARRAY_LEN(ary);
- VALUE target_ary = ary_ensure_room_for_push(ary, len);
- ary_memcpy0(ary, oldlen, len, argv, target_ary);
- ARY_SET_LEN(ary, oldlen + len);
- return ary;
-}
-
-/*
- * call-seq:
- * array.push(*objects) -> self
- *
- * Appends trailing elements.
- *
- * Appends each argument in +objects+ to +self+; returns +self+:
- * a = [:foo, 'bar', 2]
- * a.push(:baz, :bat) # => [:foo, "bar", 2, :baz, :bat]
- *
- * Appends each argument as one element, even if it is another \Array:
- * a = [:foo, 'bar', 2]
- * a1 = a.push([:baz, :bat], [:bam, :bad])
- * a1 # => [:foo, "bar", 2, [:baz, :bat], [:bam, :bad]]
- *
- * Array#append is an alias for \Array#push.
- *
- * Related: #pop, #shift, #unshift.
- */
-
-static VALUE
-rb_ary_push_m(int argc, VALUE *argv, VALUE ary)
+rb_ary_pop(ary)
+ VALUE ary;
{
- return rb_ary_cat(ary, argv, argc);
+ rb_ary_modify(ary);
+ if (RARRAY(ary)->len == 0) return Qnil;
+ if (RARRAY(ary)->len * 10 < RARRAY(ary)->capa && RARRAY(ary)->capa > ARY_DEFAULT_SIZE) {
+ RARRAY(ary)->capa = RARRAY(ary)->len * 2;
+ REALLOC_N(RARRAY(ary)->ptr, VALUE, RARRAY(ary)->capa);
+ }
+ return RARRAY(ary)->ptr[--RARRAY(ary)->len];
}
VALUE
-rb_ary_pop(VALUE ary)
+rb_ary_shift(ary)
+ VALUE ary;
{
- long n;
- rb_ary_modify_check(ary);
- n = RARRAY_LEN(ary);
- if (n == 0) return Qnil;
- if (ARY_OWNS_HEAP_P(ary) &&
- n * 3 < ARY_CAPA(ary) &&
- ARY_CAPA(ary) > ARY_DEFAULT_SIZE)
- {
- ary_resize_capa(ary, n * 2);
- }
- --n;
- ARY_SET_LEN(ary, n);
- ary_verify(ary);
- return RARRAY_AREF(ary, n);
-}
+ VALUE top;
-/*
- * call-seq:
- * array.pop -> object or nil
- * array.pop(n) -> new_array
- *
- * Removes and returns trailing elements.
- *
- * When no argument is given and +self+ is not empty,
- * removes and returns the last element:
- * a = [:foo, 'bar', 2]
- * a.pop # => 2
- * a # => [:foo, "bar"]
- *
- * Returns +nil+ if the array is empty.
- *
- * When a non-negative \Integer argument +n+ is given and is in range,
- * removes and returns the last +n+ elements in a new \Array:
- * a = [:foo, 'bar', 2]
- * a.pop(2) # => ["bar", 2]
- *
- * If +n+ is positive and out of range,
- * removes and returns all elements:
- * a = [:foo, 'bar', 2]
- * a.pop(50) # => [:foo, "bar", 2]
- *
- * Related: #push, #shift, #unshift.
- */
+ rb_ary_modify(ary);
+ if (RARRAY(ary)->len == 0) return Qnil;
-static VALUE
-rb_ary_pop_m(int argc, VALUE *argv, VALUE ary)
-{
- VALUE result;
+ top = RARRAY(ary)->ptr[0];
+ RARRAY(ary)->len--;
- if (argc == 0) {
- return rb_ary_pop(ary);
+ /* sliding items */
+ MEMMOVE(RARRAY(ary)->ptr, RARRAY(ary)->ptr+1, VALUE, RARRAY(ary)->len);
+ if (RARRAY(ary)->len * 10 < RARRAY(ary)->capa && RARRAY(ary)->capa > ARY_DEFAULT_SIZE) {
+ RARRAY(ary)->capa = RARRAY(ary)->len * 2;
+ REALLOC_N(RARRAY(ary)->ptr, VALUE, RARRAY(ary)->capa);
}
- rb_ary_modify_check(ary);
- result = ary_take_first_or_last(argc, argv, ary, ARY_TAKE_LAST);
- ARY_INCREASE_LEN(ary, -RARRAY_LEN(result));
- ary_verify(ary);
- return result;
+ return top;
}
VALUE
-rb_ary_shift(VALUE ary)
+rb_ary_unshift(ary, item)
+ VALUE ary, item;
{
- VALUE top;
- long len = RARRAY_LEN(ary);
-
- rb_ary_modify_check(ary);
- if (len == 0) return Qnil;
- top = RARRAY_AREF(ary, 0);
- if (!ARY_SHARED_P(ary)) {
- if (len < ARY_DEFAULT_SIZE) {
- RARRAY_PTR_USE_TRANSIENT(ary, ptr, {
- MEMMOVE(ptr, ptr+1, VALUE, len-1);
- }); /* WB: no new reference */
- ARY_INCREASE_LEN(ary, -1);
- ary_verify(ary);
- return top;
+ rb_ary_modify(ary);
+ if (RARRAY(ary)->len >= RARRAY(ary)->capa) {
+ long capa_inc = RARRAY(ary)->capa / 2;
+ if (capa_inc < ARY_DEFAULT_SIZE) {
+ capa_inc = ARY_DEFAULT_SIZE;
}
- assert(!ARY_EMBED_P(ary)); /* ARY_EMBED_LEN_MAX < ARY_DEFAULT_SIZE */
-
- ARY_SET(ary, 0, Qnil);
- ary_make_shared(ary);
- }
- else if (ARY_SHARED_ROOT_OCCUPIED(ARY_SHARED_ROOT(ary))) {
- RARRAY_PTR_USE_TRANSIENT(ary, ptr, ptr[0] = Qnil);
+ RARRAY(ary)->capa+=capa_inc;
+ REALLOC_N(RARRAY(ary)->ptr, VALUE, RARRAY(ary)->capa);
}
- ARY_INCREASE_PTR(ary, 1); /* shift ptr */
- ARY_INCREASE_LEN(ary, -1);
- ary_verify(ary);
+ /* sliding items */
+ MEMMOVE(RARRAY(ary)->ptr+1, RARRAY(ary)->ptr, VALUE, RARRAY(ary)->len);
- return top;
-}
+ RARRAY(ary)->len++;
+ RARRAY(ary)->ptr[0] = item;
-/*
- * call-seq:
- * array.shift -> object or nil
- * array.shift(n) -> new_array
- *
- * Removes and returns leading elements.
- *
- * When no argument is given, removes and returns the first element:
- * a = [:foo, 'bar', 2]
- * a.shift # => :foo
- * a # => ['bar', 2]
- *
- * Returns +nil+ if +self+ is empty.
- *
- * When positive \Integer argument +n+ is given, removes the first +n+ elements;
- * returns those elements in a new \Array:
- * a = [:foo, 'bar', 2]
- * a.shift(2) # => [:foo, 'bar']
- * a # => [2]
- *
- * If +n+ is as large as or larger than <tt>self.length</tt>,
- * removes all elements; returns those elements in a new \Array:
- * a = [:foo, 'bar', 2]
- * a.shift(3) # => [:foo, 'bar', 2]
- *
- * If +n+ is zero, returns a new empty \Array; +self+ is unmodified.
- *
- * Related: #push, #pop, #unshift.
- */
-
-static VALUE
-rb_ary_shift_m(int argc, VALUE *argv, VALUE ary)
-{
- VALUE result;
- long n;
-
- if (argc == 0) {
- return rb_ary_shift(ary);
- }
-
- rb_ary_modify_check(ary);
- result = ary_take_first_or_last(argc, argv, ary, ARY_TAKE_FIRST);
- n = RARRAY_LEN(result);
- rb_ary_behead(ary,n);
-
- return result;
-}
-
-static VALUE
-behead_shared(VALUE ary, long n)
-{
- assert(ARY_SHARED_P(ary));
- rb_ary_modify_check(ary);
- if (ARY_SHARED_ROOT_OCCUPIED(ARY_SHARED_ROOT(ary))) {
- ary_mem_clear(ary, 0, n);
- }
- ARY_INCREASE_PTR(ary, n);
- ARY_INCREASE_LEN(ary, -n);
- ary_verify(ary);
return ary;
}
-static VALUE
-behead_transient(VALUE ary, long n)
-{
- rb_ary_modify_check(ary);
- RARRAY_PTR_USE_TRANSIENT(ary, ptr, {
- MEMMOVE(ptr, ptr+n, VALUE, RARRAY_LEN(ary)-n);
- }); /* WB: no new reference */
- ARY_INCREASE_LEN(ary, -n);
- ary_verify(ary);
- return ary;
-}
-
-MJIT_FUNC_EXPORTED VALUE
-rb_ary_behead(VALUE ary, long n)
-{
- if (n <= 0) {
- return ary;
- }
- else if (ARY_SHARED_P(ary)) {
- return behead_shared(ary, n);
- }
- else if (RARRAY_LEN(ary) >= ARY_DEFAULT_SIZE) {
- ary_make_shared(ary);
- return behead_shared(ary, n);
- }
- else {
- return behead_transient(ary, n);
- }
-}
-
-static VALUE
-make_room_for_unshift(VALUE ary, const VALUE *head, VALUE *sharedp, int argc, long capa, long len)
-{
- if (head - sharedp < argc) {
- long room = capa - len - argc;
-
- room -= room >> 4;
- MEMMOVE((VALUE *)sharedp + argc + room, head, VALUE, len);
- head = sharedp + argc + room;
- }
- ARY_SET_PTR(ary, head - argc);
- assert(ARY_SHARED_ROOT_OCCUPIED(ARY_SHARED_ROOT(ary)));
-
- ary_verify(ary);
- return ARY_SHARED_ROOT(ary);
-}
-
-static VALUE
-ary_modify_for_unshift(VALUE ary, int argc)
+VALUE
+rb_ary_entry(ary, offset)
+ VALUE ary;
+ long offset;
{
- long len = RARRAY_LEN(ary);
- long new_len = len + argc;
- long capa;
- const VALUE *head, *sharedp;
+ if (RARRAY(ary)->len == 0) return Qnil;
- rb_ary_modify(ary);
- capa = ARY_CAPA(ary);
- if (capa - (capa >> 6) <= new_len) {
- ary_double_capa(ary, new_len);
+ if (offset < 0) {
+ offset = RARRAY(ary)->len + offset;
}
-
- /* use shared array for big "queues" */
- if (new_len > ARY_DEFAULT_SIZE * 4) {
- ary_verify(ary);
-
- /* make a room for unshifted items */
- capa = ARY_CAPA(ary);
- ary_make_shared(ary);
-
- head = sharedp = RARRAY_CONST_PTR_TRANSIENT(ary);
- return make_room_for_unshift(ary, head, (void *)sharedp, argc, capa, len);
+ if (offset < 0 || RARRAY(ary)->len <= offset) {
+ return Qnil;
}
- else {
- /* sliding items */
- RARRAY_PTR_USE_TRANSIENT(ary, ptr, {
- MEMMOVE(ptr + argc, ptr, VALUE, len);
- });
- ary_verify(ary);
- return ary;
- }
+ return RARRAY(ary)->ptr[offset];
}
static VALUE
-ary_ensure_room_for_unshift(VALUE ary, int argc)
+rb_ary_subary(ary, beg, len)
+ VALUE ary;
+ long beg, len;
{
- long len = RARRAY_LEN(ary);
- long new_len = len + argc;
+ VALUE ary2;
- if (len > ARY_MAX_SIZE - argc) {
- rb_raise(rb_eIndexError, "index %ld too big", new_len);
- }
- else if (! ARY_SHARED_P(ary)) {
- return ary_modify_for_unshift(ary, argc);
+ if (beg > RARRAY(ary)->len) return Qnil;
+ if (beg < 0) {
+ len += beg;
+ beg = 0;
}
- else {
- VALUE shared_root = ARY_SHARED_ROOT(ary);
- long capa = RARRAY_LEN(shared_root);
-
- if (! ARY_SHARED_ROOT_OCCUPIED(shared_root)) {
- return ary_modify_for_unshift(ary, argc);
- }
- else if (new_len > capa) {
- return ary_modify_for_unshift(ary, argc);
- }
- else {
- const VALUE * head = RARRAY_CONST_PTR_TRANSIENT(ary);
- void *sharedp = (void *)RARRAY_CONST_PTR_TRANSIENT(shared_root);
-
- rb_ary_modify_check(ary);
- return make_room_for_unshift(ary, head, sharedp, argc, capa, len);
- }
+ if (len < 0) return Qnil;
+ if (beg + len > RARRAY(ary)->len) {
+ len = RARRAY(ary)->len - beg;
}
-}
-
-/*
- * call-seq:
- * array.unshift(*objects) -> self
- *
- * Prepends the given +objects+ to +self+:
- * a = [:foo, 'bar', 2]
- * a.unshift(:bam, :bat) # => [:bam, :bat, :foo, "bar", 2]
- *
- * Array#prepend is an alias for Array#unshift.
- *
- * Related: #push, #pop, #shift.
- */
-
-static VALUE
-rb_ary_unshift_m(int argc, VALUE *argv, VALUE ary)
-{
- long len = RARRAY_LEN(ary);
- VALUE target_ary;
-
- if (argc == 0) {
- rb_ary_modify_check(ary);
- return ary;
+ if (len < 0) {
+ len = 0;
}
+ if (len == 0) return rb_ary_new2(0);
- target_ary = ary_ensure_room_for_unshift(ary, argc);
- ary_memcpy0(ary, 0, argc, argv, target_ary);
- ARY_SET_LEN(ary, len + argc);
- return ary;
-}
-
-VALUE
-rb_ary_unshift(VALUE ary, VALUE item)
-{
- return rb_ary_unshift_m(1,&item,ary);
-}
-
-/* faster version - use this if you don't need to treat negative offset */
-static inline VALUE
-rb_ary_elt(VALUE ary, long offset)
-{
- long len = RARRAY_LEN(ary);
- if (len == 0) return Qnil;
- if (offset < 0 || len <= offset) {
- return Qnil;
- }
- return RARRAY_AREF(ary, offset);
-}
+ ary2 = rb_ary_new2(len);
+ MEMCPY(RARRAY(ary2)->ptr, RARRAY(ary)->ptr+beg, VALUE, len);
+ RARRAY(ary2)->len = len;
-VALUE
-rb_ary_entry(VALUE ary, long offset)
-{
- return rb_ary_entry_internal(ary, offset);
-}
-
-VALUE
-rb_ary_subseq_step(VALUE ary, long beg, long len, long step)
-{
- VALUE klass;
- long alen = RARRAY_LEN(ary);
-
- if (beg > alen) return Qnil;
- if (beg < 0 || len < 0) return Qnil;
-
- if (alen < len || alen < beg + len) {
- len = alen - beg;
- }
- klass = rb_cArray;
- if (len == 0) return ary_new(klass, 0);
- if (step == 0)
- rb_raise(rb_eArgError, "slice step cannot be zero");
- if (step == 1)
- return ary_make_partial(ary, klass, beg, len);
- else
- return ary_make_partial_step(ary, klass, beg, len, step);
-}
-
-VALUE
-rb_ary_subseq(VALUE ary, long beg, long len)
-{
- return rb_ary_subseq_step(ary, beg, len, 1);
+ return ary2;
}
-static VALUE rb_ary_aref2(VALUE ary, VALUE b, VALUE e);
-
-/*
- * call-seq:
- * array[index] -> object or nil
- * array[start, length] -> object or nil
- * array[range] -> object or nil
- * array[aseq] -> object or nil
- * array.slice(index) -> object or nil
- * array.slice(start, length) -> object or nil
- * array.slice(range) -> object or nil
- * array.slice(aseq) -> object or nil
- *
- * Returns elements from +self+; does not modify +self+.
- *
- * When a single \Integer argument +index+ is given, returns the element at offset +index+:
- * a = [:foo, 'bar', 2]
- * a[0] # => :foo
- * a[2] # => 2
- * a # => [:foo, "bar", 2]
- *
- * If +index+ is negative, counts relative to the end of +self+:
- * a = [:foo, 'bar', 2]
- * a[-1] # => 2
- * a[-2] # => "bar"
- *
- * If +index+ is out of range, returns +nil+.
- *
- * When two \Integer arguments +start+ and +length+ are given,
- * returns a new \Array of size +length+ containing successive elements beginning at offset +start+:
- * a = [:foo, 'bar', 2]
- * a[0, 2] # => [:foo, "bar"]
- * a[1, 2] # => ["bar", 2]
- *
- * If <tt>start + length</tt> is greater than <tt>self.length</tt>,
- * returns all elements from offset +start+ to the end:
- * a = [:foo, 'bar', 2]
- * a[0, 4] # => [:foo, "bar", 2]
- * a[1, 3] # => ["bar", 2]
- * a[2, 2] # => [2]
- *
- * If <tt>start == self.size</tt> and <tt>length >= 0</tt>,
- * returns a new empty \Array.
- *
- * If +length+ is negative, returns +nil+.
- *
- * When a single \Range argument +range+ is given,
- * treats <tt>range.min</tt> as +start+ above
- * and <tt>range.size</tt> as +length+ above:
- * a = [:foo, 'bar', 2]
- * a[0..1] # => [:foo, "bar"]
- * a[1..2] # => ["bar", 2]
- *
- * Special case: If <tt>range.start == a.size</tt>, returns a new empty \Array.
- *
- * If <tt>range.end</tt> is negative, calculates the end index from the end:
- * a = [:foo, 'bar', 2]
- * a[0..-1] # => [:foo, "bar", 2]
- * a[0..-2] # => [:foo, "bar"]
- * a[0..-3] # => [:foo]
- *
- * If <tt>range.start</tt> is negative, calculates the start index from the end:
- * a = [:foo, 'bar', 2]
- * a[-1..2] # => [2]
- * a[-2..2] # => ["bar", 2]
- * a[-3..2] # => [:foo, "bar", 2]
- *
- * If <tt>range.start</tt> is larger than the array size, returns +nil+.
- * a = [:foo, 'bar', 2]
- * a[4..1] # => nil
- * a[4..0] # => nil
- * a[4..-1] # => nil
- *
- * When a single Enumerator::ArithmeticSequence argument +aseq+ is given,
- * returns an Array of elements corresponding to the indexes produced by
- * the sequence.
- * a = ['--', 'data1', '--', 'data2', '--', 'data3']
- * a[(1..).step(2)] # => ["data1", "data2", "data3"]
- *
- * Unlike slicing with range, if the start or the end of the arithmetic sequence
- * is larger than array size, throws RangeError.
- * a = ['--', 'data1', '--', 'data2', '--', 'data3']
- * a[(1..11).step(2)]
- * # RangeError (((1..11).step(2)) out of range)
- * a[(7..).step(2)]
- * # RangeError (((7..).step(2)) out of range)
- *
- * If given a single argument, and its type is not one of the listed, tries to
- * convert it to Integer, and raises if it is impossible:
- * a = [:foo, 'bar', 2]
- * # Raises TypeError (no implicit conversion of Symbol into Integer):
- * a[:foo]
- *
- * Array#slice is an alias for Array#[].
- */
-
VALUE
-rb_ary_aref(int argc, const VALUE *argv, VALUE ary)
+rb_ary_aref(argc, argv, ary)
+ int argc;
+ VALUE *argv;
+ VALUE ary;
{
- rb_check_arity(argc, 1, 2);
- if (argc == 2) {
- return rb_ary_aref2(ary, argv[0], argv[1]);
- }
- return rb_ary_aref1(ary, argv[0]);
-}
+ VALUE arg1, arg2;
+ long beg, len;
-static VALUE
-rb_ary_aref2(VALUE ary, VALUE b, VALUE e)
-{
- long beg = NUM2LONG(b);
- long len = NUM2LONG(e);
- if (beg < 0) {
- beg += RARRAY_LEN(ary);
+ if (rb_scan_args(argc, argv, "11", &arg1, &arg2) == 2) {
+ beg = NUM2LONG(arg1);
+ len = NUM2LONG(arg2);
+ if (beg < 0) {
+ beg = RARRAY(ary)->len + beg;
+ }
+ return rb_ary_subary(ary, beg, len);
}
- return rb_ary_subseq(ary, beg, len);
-}
-
-MJIT_FUNC_EXPORTED VALUE
-rb_ary_aref1(VALUE ary, VALUE arg)
-{
- long beg, len, step;
/* special case - speeding up */
- if (FIXNUM_P(arg)) {
- return rb_ary_entry(ary, FIX2LONG(arg));
- }
- /* check if idx is Range or ArithmeticSequence */
- switch (rb_arithmetic_sequence_beg_len_step(arg, &beg, &len, &step, RARRAY_LEN(ary), 0)) {
- case Qfalse:
- break;
- case Qnil:
- return Qnil;
- default:
- return rb_ary_subseq_step(ary, beg, len, step);
+ if (FIXNUM_P(arg1)) {
+ return rb_ary_entry(ary, FIX2LONG(arg1));
}
-
- return rb_ary_entry(ary, NUM2LONG(arg));
-}
-
-/*
- * call-seq:
- * array.at(index) -> object
- *
- * Returns the element at \Integer offset +index+; does not modify +self+.
- * a = [:foo, 'bar', 2]
- * a.at(0) # => :foo
- * a.at(2) # => 2
- */
-
-VALUE
-rb_ary_at(VALUE ary, VALUE pos)
-{
- return rb_ary_entry(ary, NUM2LONG(pos));
-}
-
-/*
- * call-seq:
- * array.first -> object or nil
- * array.first(n) -> new_array
- *
- * Returns elements from +self+; does not modify +self+.
- *
- * When no argument is given, returns the first element:
- * a = [:foo, 'bar', 2]
- * a.first # => :foo
- * a # => [:foo, "bar", 2]
- *
- * If +self+ is empty, returns +nil+.
- *
- * When non-negative \Integer argument +n+ is given,
- * returns the first +n+ elements in a new \Array:
- * a = [:foo, 'bar', 2]
- * a.first(2) # => [:foo, "bar"]
- *
- * If <tt>n >= array.size</tt>, returns all elements:
- * a = [:foo, 'bar', 2]
- * a.first(50) # => [:foo, "bar", 2]
- *
- * If <tt>n == 0</tt> returns an new empty \Array:
- * a = [:foo, 'bar', 2]
- * a.first(0) # []
- *
- * Related: #last.
- */
-static VALUE
-rb_ary_first(int argc, VALUE *argv, VALUE ary)
-{
- if (argc == 0) {
- if (RARRAY_LEN(ary) == 0) return Qnil;
- return RARRAY_AREF(ary, 0);
+ else if (TYPE(arg1) == T_BIGNUM) {
+ rb_raise(rb_eIndexError, "index too big");
}
else {
- return ary_take_first_or_last(argc, argv, ary, ARY_TAKE_FIRST);
- }
-}
-
-/*
- * call-seq:
- * array.last -> object or nil
- * array.last(n) -> new_array
- *
- * Returns elements from +self+; +self+ is not modified.
- *
- * When no argument is given, returns the last element:
- * a = [:foo, 'bar', 2]
- * a.last # => 2
- * a # => [:foo, "bar", 2]
- *
- * If +self+ is empty, returns +nil+.
- *
- * When non-negative \Innteger argument +n+ is given,
- * returns the last +n+ elements in a new \Array:
- * a = [:foo, 'bar', 2]
- * a.last(2) # => ["bar", 2]
- *
- * If <tt>n >= array.size</tt>, returns all elements:
- * a = [:foo, 'bar', 2]
- * a.last(50) # => [:foo, "bar", 2]
- *
- * If <tt>n == 0</tt>, returns an new empty \Array:
- * a = [:foo, 'bar', 2]
- * a.last(0) # []
- *
- * Related: #first.
- */
-
-VALUE
-rb_ary_last(int argc, const VALUE *argv, VALUE ary)
-{
- if (argc == 0) {
- long len = RARRAY_LEN(ary);
- if (len == 0) return Qnil;
- return RARRAY_AREF(ary, len-1);
- }
- else {
- return ary_take_first_or_last(argc, argv, ary, ARY_TAKE_LAST);
- }
-}
-
-/*
- * call-seq:
- * array.fetch(index) -> element
- * array.fetch(index, default_value) -> element
- * array.fetch(index) {|index| ... } -> element
- *
- * Returns the element at offset +index+.
- *
- * With the single \Integer argument +index+,
- * returns the element at offset +index+:
- * a = [:foo, 'bar', 2]
- * a.fetch(1) # => "bar"
- *
- * If +index+ is negative, counts from the end of the array:
- * a = [:foo, 'bar', 2]
- * a.fetch(-1) # => 2
- * a.fetch(-2) # => "bar"
- *
- * With arguments +index+ and +default_value+,
- * returns the element at offset +index+ if index is in range,
- * otherwise returns +default_value+:
- * a = [:foo, 'bar', 2]
- * a.fetch(1, nil) # => "bar"
- *
- * With argument +index+ and a block,
- * returns the element at offset +index+ if index is in range
- * (and the block is not called); otherwise calls the block with index and returns its return value:
- *
- * a = [:foo, 'bar', 2]
- * a.fetch(1) {|index| raise 'Cannot happen' } # => "bar"
- * a.fetch(50) {|index| "Value for #{index}" } # => "Value for 50"
- */
-
-static VALUE
-rb_ary_fetch(int argc, VALUE *argv, VALUE ary)
-{
- VALUE pos, ifnone;
- long block_given;
- long idx;
-
- rb_scan_args(argc, argv, "11", &pos, &ifnone);
- block_given = rb_block_given_p();
- if (block_given && argc == 2) {
- rb_warn("block supersedes default value argument");
- }
- idx = NUM2LONG(pos);
-
- if (idx < 0) {
- idx += RARRAY_LEN(ary);
- }
- if (idx < 0 || RARRAY_LEN(ary) <= idx) {
- if (block_given) return rb_yield(pos);
- if (argc == 1) {
- rb_raise(rb_eIndexError, "index %ld outside of array bounds: %ld...%ld",
- idx - (idx < 0 ? RARRAY_LEN(ary) : 0), -RARRAY_LEN(ary), RARRAY_LEN(ary));
+ /* check if idx is Range */
+ switch (rb_range_beg_len(arg1, &beg, &len, RARRAY(ary)->len, 0)) {
+ case Qfalse:
+ break;
+ case Qnil:
+ return Qnil;
+ default:
+ return rb_ary_subary(ary, beg, len);
}
- return ifnone;
}
- return RARRAY_AREF(ary, idx);
+ return rb_ary_entry(ary, NUM2LONG(arg1));
}
-/*
- * call-seq:
- * array.index(object) -> integer or nil
- * array.index {|element| ... } -> integer or nil
- * array.index -> new_enumerator
- *
- * Returns the index of a specified element.
- *
- * When argument +object+ is given but no block,
- * returns the index of the first element +element+
- * for which <tt>object == element</tt>:
- * a = [:foo, 'bar', 2, 'bar']
- * a.index('bar') # => 1
- *
- * Returns +nil+ if no such element found.
- *
- * When both argument +object+ and a block are given,
- * calls the block with each successive element;
- * returns the index of the first element for which the block returns a truthy value:
- * a = [:foo, 'bar', 2, 'bar']
- * a.index {|element| element == 'bar' } # => 1
- *
- * Returns +nil+ if the block never returns a truthy value.
- *
- * When neither an argument nor a block is given, returns a new Enumerator:
- * a = [:foo, 'bar', 2]
- * e = a.index
- * e # => #<Enumerator: [:foo, "bar", 2]:index>
- * e.each {|element| element == 'bar' } # => 1
- *
- * Array#find_index is an alias for Array#index.
- *
- * Related: #rindex.
- */
-
static VALUE
-rb_ary_index(int argc, VALUE *argv, VALUE ary)
-{
+rb_ary_index(ary, val)
+ VALUE ary;
VALUE val;
+{
long i;
- if (argc == 0) {
- RETURN_ENUMERATOR(ary, 0, 0);
- for (i=0; i<RARRAY_LEN(ary); i++) {
- if (RTEST(rb_yield(RARRAY_AREF(ary, i)))) {
- return LONG2NUM(i);
- }
- }
- return Qnil;
- }
- rb_check_arity(argc, 0, 1);
- val = argv[0];
- if (rb_block_given_p())
- rb_warn("given block not used");
- for (i=0; i<RARRAY_LEN(ary); i++) {
- VALUE e = RARRAY_AREF(ary, i);
- if (rb_equal(e, val)) {
- return LONG2NUM(i);
- }
+ for (i=0; i<RARRAY(ary)->len; i++) {
+ if (rb_equal(RARRAY(ary)->ptr[i], val))
+ return INT2NUM(i);
}
return Qnil;
}
-/*
- * call-seq:
- * array.rindex(object) -> integer or nil
- * array.rindex {|element| ... } -> integer or nil
- * array.rindex -> new_enumerator
- *
- * Returns the index of the last element for which <tt>object == element</tt>.
- *
- * When argument +object+ is given but no block, returns the index of the last such element found:
- * a = [:foo, 'bar', 2, 'bar']
- * a.rindex('bar') # => 3
- *
- * Returns +nil+ if no such object found.
- *
- * When a block is given but no argument, calls the block with each successive element;
- * returns the index of the last element for which the block returns a truthy value:
- * a = [:foo, 'bar', 2, 'bar']
- * a.rindex {|element| element == 'bar' } # => 3
- *
- * Returns +nil+ if the block never returns a truthy value.
- *
- * When neither an argument nor a block is given, returns a new \Enumerator:
- *
- * a = [:foo, 'bar', 2, 'bar']
- * e = a.rindex
- * e # => #<Enumerator: [:foo, "bar", 2, "bar"]:rindex>
- * e.each {|element| element == 'bar' } # => 3
- *
- * Related: #index.
- */
-
static VALUE
-rb_ary_rindex(int argc, VALUE *argv, VALUE ary)
-{
+rb_ary_rindex(ary, val)
+ VALUE ary;
VALUE val;
- long i = RARRAY_LEN(ary), len;
+{
+ long i = RARRAY(ary)->len;
- if (argc == 0) {
- RETURN_ENUMERATOR(ary, 0, 0);
- while (i--) {
- if (RTEST(rb_yield(RARRAY_AREF(ary, i))))
- return LONG2NUM(i);
- if (i > (len = RARRAY_LEN(ary))) {
- i = len;
- }
- }
- return Qnil;
- }
- rb_check_arity(argc, 0, 1);
- val = argv[0];
- if (rb_block_given_p())
- rb_warn("given block not used");
while (i--) {
- VALUE e = RARRAY_AREF(ary, i);
- if (rb_equal(e, val)) {
- return LONG2NUM(i);
- }
- if (i > RARRAY_LEN(ary)) {
- break;
- }
+ if (rb_equal(RARRAY(ary)->ptr[i], val))
+ return INT2NUM(i);
}
return Qnil;
}
-VALUE
-rb_ary_to_ary(VALUE obj)
+static VALUE
+rb_ary_indexes(argc, argv, ary)
+ int argc;
+ VALUE *argv;
+ VALUE ary;
{
- VALUE tmp = rb_check_array_type(obj);
+ VALUE new_ary;
+ long i;
- if (!NIL_P(tmp)) return tmp;
- return rb_ary_new3(1, obj);
+ new_ary = rb_ary_new2(argc);
+ for (i=0; i<argc; i++) {
+ rb_ary_push(new_ary, rb_ary_aref(1, argv+i, ary));
+ }
+
+ return new_ary;
}
static void
-rb_ary_splice(VALUE ary, long beg, long len, const VALUE *rptr, long rlen)
+rb_ary_replace(ary, beg, len, rpl)
+ VALUE ary, rpl;
+ long beg, len;
{
- long olen;
- long rofs;
-
- if (len < 0) rb_raise(rb_eIndexError, "negative length (%ld)", len);
- olen = RARRAY_LEN(ary);
+ if (len < 0) rb_raise(rb_eIndexError, "negative length %d", len);
if (beg < 0) {
- beg += olen;
- if (beg < 0) {
- rb_raise(rb_eIndexError, "index %ld too small for array; minimum: %ld",
- beg - olen, -olen);
- }
+ beg += RARRAY(ary)->len;
}
- if (olen < len || olen < beg + len) {
- len = olen - beg;
+ if (beg < 0) {
+ beg -= RARRAY(ary)->len;
+ rb_raise(rb_eIndexError, "index %d out of array", beg);
+ }
+ if (beg + len > RARRAY(ary)->len) {
+ len = RARRAY(ary)->len - beg;
}
- {
- const VALUE *optr = RARRAY_CONST_PTR_TRANSIENT(ary);
- rofs = (rptr >= optr && rptr < optr + olen) ? rptr - optr : -1;
+ if (TYPE(rpl) != T_ARRAY) {
+ rpl = rb_Array(rpl);
}
- if (beg >= olen) {
- VALUE target_ary;
- if (beg > ARY_MAX_SIZE - rlen) {
- rb_raise(rb_eIndexError, "index %ld too big", beg);
- }
- target_ary = ary_ensure_room_for_push(ary, rlen-len); /* len is 0 or negative */
- len = beg + rlen;
- ary_mem_clear(ary, olen, beg - olen);
- if (rlen > 0) {
- if (rofs != -1) rptr = RARRAY_CONST_PTR_TRANSIENT(ary) + rofs;
- ary_memcpy0(ary, beg, rlen, rptr, target_ary);
+ rb_ary_modify(ary);
+ if (beg >= RARRAY(ary)->len) {
+ len = beg + RARRAY(rpl)->len;
+ if (len >= RARRAY(ary)->capa) {
+ RARRAY(ary)->capa=len;
+ REALLOC_N(RARRAY(ary)->ptr, VALUE, RARRAY(ary)->capa);
}
- ARY_SET_LEN(ary, len);
+ rb_mem_clear(RARRAY(ary)->ptr+RARRAY(ary)->len, beg-RARRAY(ary)->len);
+ MEMCPY(RARRAY(ary)->ptr+beg, RARRAY(rpl)->ptr, VALUE, RARRAY(rpl)->len);
+ RARRAY(ary)->len = len;
}
else {
long alen;
- if (olen - len > ARY_MAX_SIZE - rlen) {
- rb_raise(rb_eIndexError, "index %ld too big", olen + rlen - len);
- }
- rb_ary_modify(ary);
- alen = olen + rlen - len;
- if (alen >= ARY_CAPA(ary)) {
- ary_double_capa(ary, alen);
+ if (beg + len > RARRAY(ary)->len) {
+ len = RARRAY(ary)->len - beg;
}
- if (len != rlen) {
- RARRAY_PTR_USE_TRANSIENT(ary, ptr,
- MEMMOVE(ptr + beg + rlen, ptr + beg + len,
- VALUE, olen - (beg + len)));
- ARY_SET_LEN(ary, alen);
- }
- if (rlen > 0) {
- if (rofs != -1) rptr = RARRAY_CONST_PTR_TRANSIENT(ary) + rofs;
- /* give up wb-protected ary */
- RB_OBJ_WB_UNPROTECT_FOR(ARRAY, ary);
-
- /* do not use RARRAY_PTR() because it can causes GC.
- * ary can contain T_NONE object because it is not cleared.
- */
- RARRAY_PTR_USE_TRANSIENT(ary, ptr,
- MEMMOVE(ptr + beg, rptr, VALUE, rlen));
+ alen = RARRAY(ary)->len + RARRAY(rpl)->len - len;
+ if (alen >= RARRAY(ary)->capa) {
+ RARRAY(ary)->capa=alen;
+ REALLOC_N(RARRAY(ary)->ptr, VALUE, RARRAY(ary)->capa);
}
- }
-}
-
-void
-rb_ary_set_len(VALUE ary, long len)
-{
- long capa;
- rb_ary_modify_check(ary);
- if (ARY_SHARED_P(ary)) {
- rb_raise(rb_eRuntimeError, "can't set length of shared ");
- }
- if (len > (capa = (long)ARY_CAPA(ary))) {
- rb_bug("probable buffer overflow: %ld for %ld", len, capa);
- }
- ARY_SET_LEN(ary, len);
-}
-
-VALUE
-rb_ary_resize(VALUE ary, long len)
-{
- long olen;
-
- rb_ary_modify(ary);
- olen = RARRAY_LEN(ary);
- if (len == olen) return ary;
- if (len > ARY_MAX_SIZE) {
- rb_raise(rb_eIndexError, "index %ld too big", len);
- }
- if (len > olen) {
- if (len >= ARY_CAPA(ary)) {
- ary_double_capa(ary, len);
+ if (len != RARRAY(rpl)->len) {
+ MEMMOVE(RARRAY(ary)->ptr+beg+RARRAY(rpl)->len, RARRAY(ary)->ptr+beg+len,
+ VALUE, RARRAY(ary)->len-(beg+len));
+ RARRAY(ary)->len = alen;
}
- ary_mem_clear(ary, olen, len - olen);
- ARY_SET_LEN(ary, len);
- }
- else if (ARY_EMBED_P(ary)) {
- ARY_SET_EMBED_LEN(ary, len);
+ MEMCPY(RARRAY(ary)->ptr+beg, RARRAY(rpl)->ptr, VALUE, RARRAY(rpl)->len);
}
- else if (len <= RARRAY_EMBED_LEN_MAX) {
- VALUE tmp[RARRAY_EMBED_LEN_MAX];
- MEMCPY(tmp, ARY_HEAP_PTR(ary), VALUE, len);
- ary_discard(ary);
- MEMCPY((VALUE *)ARY_EMBED_PTR(ary), tmp, VALUE, len); /* WB: no new reference */
- ARY_SET_EMBED_LEN(ary, len);
- }
- else {
- if (olen > len + ARY_DEFAULT_SIZE) {
- size_t new_capa = ary_heap_realloc(ary, len);
- ARY_SET_CAPA(ary, new_capa);
- }
- ARY_SET_HEAP_LEN(ary, len);
- }
- ary_verify(ary);
- return ary;
-}
-
-static VALUE
-ary_aset_by_rb_ary_store(VALUE ary, long key, VALUE val)
-{
- rb_ary_store(ary, key, val);
- return val;
-}
-
-static VALUE
-ary_aset_by_rb_ary_splice(VALUE ary, long beg, long len, VALUE val)
-{
- VALUE rpl = rb_ary_to_ary(val);
- rb_ary_splice(ary, beg, len, RARRAY_CONST_PTR_TRANSIENT(rpl), RARRAY_LEN(rpl));
- RB_GC_GUARD(rpl);
- return val;
}
-/*
- * call-seq:
- * array[index] = object -> object
- * array[start, length] = object -> object
- * array[range] = object -> object
- *
- * Assigns elements in +self+; returns the given +object+.
- *
- * When \Integer argument +index+ is given, assigns +object+ to an element in +self+.
- *
- * If +index+ is non-negative, assigns +object+ the element at offset +index+:
- * a = [:foo, 'bar', 2]
- * a[0] = 'foo' # => "foo"
- * a # => ["foo", "bar", 2]
- *
- * If +index+ is greater than <tt>self.length</tt>, extends the array:
- * a = [:foo, 'bar', 2]
- * a[7] = 'foo' # => "foo"
- * a # => [:foo, "bar", 2, nil, nil, nil, nil, "foo"]
- *
- * If +index+ is negative, counts backwards from the end of the array:
- * a = [:foo, 'bar', 2]
- * a[-1] = 'two' # => "two"
- * a # => [:foo, "bar", "two"]
- *
- * When \Integer arguments +start+ and +length+ are given and +object+ is not an \Array,
- * removes <tt>length - 1</tt> elements beginning at offset +start+,
- * and assigns +object+ at offset +start+:
- * a = [:foo, 'bar', 2]
- * a[0, 2] = 'foo' # => "foo"
- * a # => ["foo", 2]
- *
- * If +start+ is negative, counts backwards from the end of the array:
- * a = [:foo, 'bar', 2]
- * a[-2, 2] = 'foo' # => "foo"
- * a # => [:foo, "foo"]
- *
- * If +start+ is non-negative and outside the array (<tt> >= self.size</tt>),
- * extends the array with +nil+, assigns +object+ at offset +start+,
- * and ignores +length+:
- * a = [:foo, 'bar', 2]
- * a[6, 50] = 'foo' # => "foo"
- * a # => [:foo, "bar", 2, nil, nil, nil, "foo"]
- *
- * If +length+ is zero, shifts elements at and following offset +start+
- * and assigns +object+ at offset +start+:
- * a = [:foo, 'bar', 2]
- * a[1, 0] = 'foo' # => "foo"
- * a # => [:foo, "foo", "bar", 2]
- *
- * If +length+ is too large for the existing array, does not extend the array:
- * a = [:foo, 'bar', 2]
- * a[1, 5] = 'foo' # => "foo"
- * a # => [:foo, "foo"]
- *
- * When \Range argument +range+ is given and +object+ is an \Array,
- * removes <tt>length - 1</tt> elements beginning at offset +start+,
- * and assigns +object+ at offset +start+:
- * a = [:foo, 'bar', 2]
- * a[0..1] = 'foo' # => "foo"
- * a # => ["foo", 2]
- *
- * if <tt>range.begin</tt> is negative, counts backwards from the end of the array:
- * a = [:foo, 'bar', 2]
- * a[-2..2] = 'foo' # => "foo"
- * a # => [:foo, "foo"]
- *
- * If the array length is less than <tt>range.begin</tt>,
- * assigns +object+ at offset <tt>range.begin</tt>, and ignores +length+:
- * a = [:foo, 'bar', 2]
- * a[6..50] = 'foo' # => "foo"
- * a # => [:foo, "bar", 2, nil, nil, nil, "foo"]
- *
- * If <tt>range.end</tt> is zero, shifts elements at and following offset +start+
- * and assigns +object+ at offset +start+:
- * a = [:foo, 'bar', 2]
- * a[1..0] = 'foo' # => "foo"
- * a # => [:foo, "foo", "bar", 2]
- *
- * If <tt>range.end</tt> is negative, assigns +object+ at offset +start+,
- * retains <tt>range.end.abs -1</tt> elements past that, and removes those beyond:
- * a = [:foo, 'bar', 2]
- * a[1..-1] = 'foo' # => "foo"
- * a # => [:foo, "foo"]
- * a = [:foo, 'bar', 2]
- * a[1..-2] = 'foo' # => "foo"
- * a # => [:foo, "foo", 2]
- * a = [:foo, 'bar', 2]
- * a[1..-3] = 'foo' # => "foo"
- * a # => [:foo, "foo", "bar", 2]
- * a = [:foo, 'bar', 2]
- *
- * If <tt>range.end</tt> is too large for the existing array,
- * replaces array elements, but does not extend the array with +nil+ values:
- * a = [:foo, 'bar', 2]
- * a[1..5] = 'foo' # => "foo"
- * a # => [:foo, "foo"]
- */
-
static VALUE
-rb_ary_aset(int argc, VALUE *argv, VALUE ary)
+rb_ary_aset(argc, argv, ary)
+ int argc;
+ VALUE *argv;
+ VALUE ary;
{
+ VALUE arg1, arg2, arg3;
long offset, beg, len;
- rb_check_arity(argc, 2, 3);
- rb_ary_modify_check(ary);
- if (argc == 3) {
- beg = NUM2LONG(argv[0]);
- len = NUM2LONG(argv[1]);
- return ary_aset_by_rb_ary_splice(ary, beg, len, argv[2]);
+ if (rb_scan_args(argc, argv, "21", &arg1, &arg2, &arg3) == 3) {
+ rb_ary_replace(ary, NUM2LONG(arg1), NUM2LONG(arg2), arg3);
+ return arg3;
}
- if (FIXNUM_P(argv[0])) {
- offset = FIX2LONG(argv[0]);
- return ary_aset_by_rb_ary_store(ary, offset, argv[1]);
+ else if (FIXNUM_P(arg1)) {
+ offset = FIX2LONG(arg1);
+ goto fixnum;
}
- if (rb_range_beg_len(argv[0], &beg, &len, RARRAY_LEN(ary), 1)) {
+ else if (rb_range_beg_len(arg1, &beg, &len, RARRAY(ary)->len, 1)) {
/* check if idx is Range */
- return ary_aset_by_rb_ary_splice(ary, beg, len, argv[1]);
- }
-
- offset = NUM2LONG(argv[0]);
- return ary_aset_by_rb_ary_store(ary, offset, argv[1]);
-}
-
-/*
- * call-seq:
- * array.insert(index, *objects) -> self
- *
- * Inserts given +objects+ before or after the element at \Integer index +offset+;
- * returns +self+.
- *
- * When +index+ is non-negative, inserts all given +objects+
- * before the element at offset +index+:
- * a = [:foo, 'bar', 2]
- * a.insert(1, :bat, :bam) # => [:foo, :bat, :bam, "bar", 2]
- *
- * Extends the array if +index+ is beyond the array (<tt>index >= self.size</tt>):
- * a = [:foo, 'bar', 2]
- * a.insert(5, :bat, :bam)
- * a # => [:foo, "bar", 2, nil, nil, :bat, :bam]
- *
- * Does nothing if no objects given:
- * a = [:foo, 'bar', 2]
- * a.insert(1)
- * a.insert(50)
- * a.insert(-50)
- * a # => [:foo, "bar", 2]
- *
- * When +index+ is negative, inserts all given +objects+
- * _after_ the element at offset <tt>index+self.size</tt>:
- * a = [:foo, 'bar', 2]
- * a.insert(-2, :bat, :bam)
- * a # => [:foo, "bar", :bat, :bam, 2]
- */
-
-static VALUE
-rb_ary_insert(int argc, VALUE *argv, VALUE ary)
-{
- long pos;
-
- rb_check_arity(argc, 1, UNLIMITED_ARGUMENTS);
- rb_ary_modify_check(ary);
- pos = NUM2LONG(argv[0]);
- if (argc == 1) return ary;
- if (pos == -1) {
- pos = RARRAY_LEN(ary);
+ rb_ary_replace(ary, beg, len, arg2);
+ return arg2;
}
- else if (pos < 0) {
- long minpos = -RARRAY_LEN(ary) - 1;
- if (pos < minpos) {
- rb_raise(rb_eIndexError, "index %ld too small for array; minimum: %ld",
- pos, minpos);
- }
- pos++;
+ if (TYPE(arg1) == T_BIGNUM) {
+ rb_raise(rb_eIndexError, "index too big");
}
- rb_ary_splice(ary, pos, 0, argv + 1, argc - 1);
- return ary;
-}
-
-static VALUE
-rb_ary_length(VALUE ary);
-static VALUE
-ary_enum_length(VALUE ary, VALUE args, VALUE eobj)
-{
- return rb_ary_length(ary);
+ offset = NUM2LONG(arg1);
+ fixnum:
+ rb_ary_store(ary, offset, arg2);
+ return arg2;
}
-/*
- * call-seq:
- * array.each {|element| ... } -> self
- * array.each -> Enumerator
- *
- * Iterates over array elements.
- *
- * When a block given, passes each successive array element to the block;
- * returns +self+:
- * a = [:foo, 'bar', 2]
- * a.each {|element| puts "#{element.class} #{element}" }
- *
- * Output:
- * Symbol foo
- * String bar
- * Integer 2
- *
- * Allows the array to be modified during iteration:
- * a = [:foo, 'bar', 2]
- * a.each {|element| puts element; a.clear if element.to_s.start_with?('b') }
- *
- * Output:
- * foo
- * bar
- *
- * When no block given, returns a new \Enumerator:
- * a = [:foo, 'bar', 2]
- * e = a.each
- * e # => #<Enumerator: [:foo, "bar", 2]:each>
- * a1 = e.each {|element| puts "#{element.class} #{element}" }
- *
- * Output:
- * Symbol foo
- * String bar
- * Integer 2
- *
- * Related: #each_index, #reverse_each.
- */
-
VALUE
-rb_ary_each(VALUE ary)
+rb_ary_each(ary)
+ VALUE ary;
{
long i;
- ary_verify(ary);
- RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);
- for (i=0; i<RARRAY_LEN(ary); i++) {
- rb_yield(RARRAY_AREF(ary, i));
+
+ for (i=0; i<RARRAY(ary)->len; i++) {
+ rb_yield(RARRAY(ary)->ptr[i]);
}
return ary;
}
-/*
- * call-seq:
- * array.each_index {|index| ... } -> self
- * array.each_index -> Enumerator
- *
- * Iterates over array indexes.
- *
- * When a block given, passes each successive array index to the block;
- * returns +self+:
- * a = [:foo, 'bar', 2]
- * a.each_index {|index| puts "#{index} #{a[index]}" }
- *
- * Output:
- * 0 foo
- * 1 bar
- * 2 2
- *
- * Allows the array to be modified during iteration:
- * a = [:foo, 'bar', 2]
- * a.each_index {|index| puts index; a.clear if index > 0 }
- *
- * Output:
- * 0
- * 1
- *
- * When no block given, returns a new \Enumerator:
- * a = [:foo, 'bar', 2]
- * e = a.each_index
- * e # => #<Enumerator: [:foo, "bar", 2]:each_index>
- * a1 = e.each {|index| puts "#{index} #{a[index]}"}
- *
- * Output:
- * 0 foo
- * 1 bar
- * 2 2
- *
- * Related: #each, #reverse_each.
- */
-
static VALUE
-rb_ary_each_index(VALUE ary)
+rb_ary_each_index(ary)
+ VALUE ary;
{
long i;
- RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);
- for (i=0; i<RARRAY_LEN(ary); i++) {
- rb_yield(LONG2NUM(i));
+ for (i=0; i<RARRAY(ary)->len; i++) {
+ rb_yield(INT2NUM(i));
}
return ary;
}
-/*
- * call-seq:
- * array.reverse_each {|element| ... } -> self
- * array.reverse_each -> Enumerator
- *
- * Iterates backwards over array elements.
- *
- * When a block given, passes, in reverse order, each element to the block;
- * returns +self+:
- * a = [:foo, 'bar', 2]
- * a.reverse_each {|element| puts "#{element.class} #{element}" }
- *
- * Output:
- * Integer 2
- * String bar
- * Symbol foo
- *
- * Allows the array to be modified during iteration:
- * a = [:foo, 'bar', 2]
- * a.reverse_each {|element| puts element; a.clear if element.to_s.start_with?('b') }
- *
- * Output:
- * 2
- * bar
- *
- * When no block given, returns a new \Enumerator:
- * a = [:foo, 'bar', 2]
- * e = a.reverse_each
- * e # => #<Enumerator: [:foo, "bar", 2]:reverse_each>
- * a1 = e.each {|element| puts "#{element.class} #{element}" }
- * Output:
- * Integer 2
- * String bar
- * Symbol foo
- *
- * Related: #each, #each_index.
- */
-
static VALUE
-rb_ary_reverse_each(VALUE ary)
+rb_ary_reverse_each(ary)
+ VALUE ary;
{
- long len;
+ long len = RARRAY(ary)->len;
- RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);
- len = RARRAY_LEN(ary);
while (len--) {
- long nlen;
- rb_yield(RARRAY_AREF(ary, len));
- nlen = RARRAY_LEN(ary);
- if (nlen < len) {
- len = nlen;
- }
+ rb_yield(RARRAY(ary)->ptr[len]);
}
return ary;
}
-/*
- * call-seq:
- * array.length -> an_integer
- *
- * Returns the count of elements in +self+.
- */
-
static VALUE
-rb_ary_length(VALUE ary)
+rb_ary_length(ary)
+ VALUE ary;
{
- long len = RARRAY_LEN(ary);
- return LONG2NUM(len);
+ return INT2NUM(RARRAY(ary)->len);
}
-/*
- * call-seq:
- * array.empty? -> true or false
- *
- * Returns +true+ if the count of elements in +self+ is zero,
- * +false+ otherwise.
- */
-
static VALUE
-rb_ary_empty_p(VALUE ary)
+rb_ary_empty_p(ary)
+ VALUE ary;
{
- return RBOOL(RARRAY_LEN(ary) == 0);
+ if (RARRAY(ary)->len == 0)
+ return Qtrue;
+ return Qfalse;
}
-VALUE
-rb_ary_dup(VALUE ary)
+static VALUE
+rb_ary_clone(ary)
+ VALUE ary;
{
- long len = RARRAY_LEN(ary);
- VALUE dup = rb_ary_new2(len);
- ary_memcpy(dup, 0, len, RARRAY_CONST_PTR_TRANSIENT(ary));
- ARY_SET_LEN(dup, len);
-
- ary_verify(ary);
- ary_verify(dup);
- return dup;
-}
+ VALUE ary2 = rb_ary_new2(RARRAY(ary)->len);
-VALUE
-rb_ary_resurrect(VALUE ary)
-{
- return ary_make_partial(ary, rb_cArray, 0, RARRAY_LEN(ary));
+ CLONESETUP(ary2, ary);
+ MEMCPY(RARRAY(ary2)->ptr, RARRAY(ary)->ptr, VALUE, RARRAY(ary)->len);
+ RARRAY(ary2)->len = RARRAY(ary)->len;
+ return ary2;
}
-extern VALUE rb_output_fs;
-
-static void ary_join_1(VALUE obj, VALUE ary, VALUE sep, long i, VALUE result, int *first);
-
static VALUE
-recursive_join(VALUE obj, VALUE argp, int recur)
+rb_ary_dup(ary)
+ VALUE ary;
{
- VALUE *arg = (VALUE *)argp;
- VALUE ary = arg[0];
- VALUE sep = arg[1];
- VALUE result = arg[2];
- int *first = (int *)arg[3];
-
- if (recur) {
- rb_raise(rb_eArgError, "recursive array join");
- }
- else {
- ary_join_1(obj, ary, sep, 0, result, first);
- }
- return Qnil;
+ return rb_ary_s_create(RARRAY(ary)->len, RARRAY(ary)->ptr, CLASS_OF(ary));
}
-static long
-ary_join_0(VALUE ary, VALUE sep, long max, VALUE result)
+static VALUE
+to_ary(ary)
+ VALUE ary;
{
- long i;
- VALUE val;
-
- if (max > 0) rb_enc_copy(result, RARRAY_AREF(ary, 0));
- for (i=0; i<max; i++) {
- val = RARRAY_AREF(ary, i);
- if (!RB_TYPE_P(val, T_STRING)) break;
- if (i > 0 && !NIL_P(sep))
- rb_str_buf_append(result, sep);
- rb_str_buf_append(result, val);
- }
- return i;
+ return rb_convert_type(ary, T_ARRAY, "Array", "to_ary");
}
-static void
-ary_join_1_str(VALUE dst, VALUE src, int *first)
-{
- rb_str_buf_append(dst, src);
- if (*first) {
- rb_enc_copy(dst, src);
- *first = FALSE;
- }
-}
+extern VALUE rb_output_fs;
-static void
-ary_join_1_ary(VALUE obj, VALUE ary, VALUE sep, VALUE result, VALUE val, int *first)
+static VALUE
+inspect_join(ary, arg)
+ VALUE ary;
+ VALUE *arg;
{
- if (val == ary) {
- rb_raise(rb_eArgError, "recursive array join");
- }
- else {
- VALUE args[4];
-
- *first = FALSE;
- args[0] = val;
- args[1] = sep;
- args[2] = result;
- args[3] = (VALUE)first;
- rb_exec_recursive(recursive_join, obj, (VALUE)args);
- }
+ return rb_ary_join(arg[0], arg[1]);
}
-static void
-ary_join_1(VALUE obj, VALUE ary, VALUE sep, long i, VALUE result, int *first)
+VALUE
+rb_ary_join(ary, sep)
+ VALUE ary, sep;
{
- VALUE val, tmp;
-
- for (; i<RARRAY_LEN(ary); i++) {
- if (i > 0 && !NIL_P(sep))
- rb_str_buf_append(result, sep);
+ long i;
+ VALUE result, tmp;
+ if (RARRAY(ary)->len == 0) return rb_str_new(0, 0);
- val = RARRAY_AREF(ary, i);
- if (RB_TYPE_P(val, T_STRING)) {
- ary_join_1_str(result, val, first);
- }
- else if (RB_TYPE_P(val, T_ARRAY)) {
- ary_join_1_ary(val, ary, sep, result, val, first);
+ tmp = RARRAY(ary)->ptr[0];
+ switch (TYPE(tmp)) {
+ case T_STRING:
+ result = rb_str_dup(tmp);
+ break;
+ case T_ARRAY:
+ if (rb_inspecting_p(tmp)) {
+ result = rb_str_new2("[...]");
}
- else if (!NIL_P(tmp = rb_check_string_type(val))) {
- ary_join_1_str(result, tmp, first);
- }
- else if (!NIL_P(tmp = rb_check_array_type(val))) {
- ary_join_1_ary(val, ary, sep, result, tmp, first);
- }
- else {
- ary_join_1_str(result, rb_obj_as_string(val), first);
+ else {
+ VALUE args[2];
+
+ args[0] = tmp;
+ args[1] = sep;
+ result = rb_protect_inspect(inspect_join, ary, (VALUE)args);
}
+ break;
+ default:
+ result = rb_obj_as_string(tmp);
+ break;
}
-}
-VALUE
-rb_ary_join(VALUE ary, VALUE sep)
-{
- long len = 1, i;
- VALUE val, tmp, result;
-
- if (RARRAY_LEN(ary) == 0) return rb_usascii_str_new(0, 0);
+ for (i=1; i<RARRAY(ary)->len; i++) {
+ tmp = RARRAY(ary)->ptr[i];
+ switch (TYPE(tmp)) {
+ case T_STRING:
+ break;
+ case T_ARRAY:
+ if (rb_inspecting_p(tmp)) {
+ tmp = rb_str_new2("[...]");
+ }
+ else {
+ VALUE args[2];
- if (!NIL_P(sep)) {
- StringValue(sep);
- len += RSTRING_LEN(sep) * (RARRAY_LEN(ary) - 1);
- }
- for (i=0; i<RARRAY_LEN(ary); i++) {
- val = RARRAY_AREF(ary, i);
- tmp = rb_check_string_type(val);
-
- if (NIL_P(tmp) || tmp != val) {
- int first;
- long n = RARRAY_LEN(ary);
- if (i > n) i = n;
- result = rb_str_buf_new(len + (n-i)*10);
- rb_enc_associate(result, rb_usascii_encoding());
- i = ary_join_0(ary, sep, i, result);
- first = i == 0;
- ary_join_1(ary, ary, sep, i, result, &first);
- return result;
+ args[0] = tmp;
+ args[1] = sep;
+ tmp = rb_protect_inspect(inspect_join, ary, (VALUE)args);
+ }
+ break;
+ default:
+ tmp = rb_obj_as_string(tmp);
}
-
- len += RSTRING_LEN(tmp);
+ if (!NIL_P(sep)) rb_str_concat(result, sep);
+ rb_str_cat(result, RSTRING(tmp)->ptr, RSTRING(tmp)->len);
+ if (OBJ_TAINTED(tmp)) OBJ_TAINT(result);
}
- result = rb_str_new(0, len);
- rb_str_set_len(result, 0);
-
- ary_join_0(ary, sep, RARRAY_LEN(ary), result);
-
return result;
}
-/*
- * call-seq:
- * array.join ->new_string
- * array.join(separator = $,) -> new_string
- *
- * Returns the new \String formed by joining the array elements after conversion.
- * For each element +element+
- * - Uses <tt>element.to_s</tt> if +element+ is not a <tt>kind_of?(Array)</tt>.
- * - Uses recursive <tt>element.join(separator)</tt> if +element+ is a <tt>kind_of?(Array)</tt>.
- *
- * With no argument, joins using the output field separator, <tt>$,</tt>:
- * a = [:foo, 'bar', 2]
- * $, # => nil
- * a.join # => "foobar2"
- *
- * With \string argument +separator+, joins using that separator:
- * a = [:foo, 'bar', 2]
- * a.join("\n") # => "foo\nbar\n2"
- *
- * Joins recursively for nested Arrays:
- * a = [:foo, [:bar, [:baz, :bat]]]
- * a.join # => "foobarbazbat"
- */
static VALUE
-rb_ary_join_m(int argc, VALUE *argv, VALUE ary)
+rb_ary_join_method(argc, argv, ary)
+ int argc;
+ VALUE *argv;
+ VALUE ary;
{
VALUE sep;
- if (rb_check_arity(argc, 0, 1) == 0 || NIL_P(sep = argv[0])) {
- sep = rb_output_fs;
- if (!NIL_P(sep)) {
- rb_category_warn(RB_WARN_CATEGORY_DEPRECATED, "$, is set to non-nil value");
- }
- }
-
+ rb_scan_args(argc, argv, "01", &sep);
+ if (NIL_P(sep)) sep = rb_output_fs;
return rb_ary_join(ary, sep);
}
-static VALUE
-inspect_ary(VALUE ary, VALUE dummy, int recur)
+VALUE
+rb_ary_to_s(ary)
+ VALUE ary;
{
- long i;
- VALUE s, str;
+ VALUE str;
- if (recur) return rb_usascii_str_new_cstr("[...]");
- str = rb_str_buf_new2("[");
- for (i=0; i<RARRAY_LEN(ary); i++) {
- s = rb_inspect(RARRAY_AREF(ary, i));
- if (i > 0) rb_str_buf_cat2(str, ", ");
- else rb_enc_copy(str, s);
- rb_str_buf_append(str, s);
- }
- rb_str_buf_cat2(str, "]");
+ if (RARRAY(ary)->len == 0) return rb_str_new(0, 0);
+ str = rb_ary_join(ary, rb_output_fs);
+ if (NIL_P(str)) return rb_str_new(0, 0);
return str;
}
-/*
- * call-seq:
- * array.inspect -> new_string
- *
- * Returns the new \String formed by calling method <tt>#inspect</tt>
- * on each array element:
- * a = [:foo, 'bar', 2]
- * a.inspect # => "[:foo, \"bar\", 2]"
- *
- * Array#to_s is an alias for Array#inspect.
- */
+static ID inspect_key;
-static VALUE
-rb_ary_inspect(VALUE ary)
-{
- if (RARRAY_LEN(ary) == 0) return rb_usascii_str_new2("[]");
- return rb_exec_recursive(inspect_ary, ary, 0);
-}
+struct inspect_arg {
+ VALUE (*func)();
+ VALUE arg1, arg2;
+};
VALUE
-rb_ary_to_s(VALUE ary)
-{
- return rb_ary_inspect(ary);
-}
-
-/*
- * call-seq:
- * to_a -> self or new_array
- *
- * When +self+ is an instance of \Array, returns +self+:
- * a = [:foo, 'bar', 2]
- * a.to_a # => [:foo, "bar", 2]
- *
- * Otherwise, returns a new \Array containing the elements of +self+:
- * class MyArray < Array; end
- * a = MyArray.new(['foo', 'bar', 'two'])
- * a.instance_of?(Array) # => false
- * a.kind_of?(Array) # => true
- * a1 = a.to_a
- * a1 # => ["foo", "bar", "two"]
- * a1.class # => Array # Not MyArray
- */
-
-static VALUE
-rb_ary_to_a(VALUE ary)
-{
- if (rb_obj_class(ary) != rb_cArray) {
- VALUE dup = rb_ary_new2(RARRAY_LEN(ary));
- rb_ary_replace(dup, ary);
- return dup;
- }
- return ary;
-}
-
-/*
- * call-seq:
- * array.to_h -> new_hash
- * array.to_h {|item| ... } -> new_hash
- *
- * Returns a new \Hash formed from +self+.
- *
- * When a block is given, calls the block with each array element;
- * the block must return a 2-element \Array whose two elements
- * form a key-value pair in the returned \Hash:
- * a = ['foo', :bar, 1, [2, 3], {baz: 4}]
- * h = a.to_h {|item| [item, item] }
- * h # => {"foo"=>"foo", :bar=>:bar, 1=>1, [2, 3]=>[2, 3], {:baz=>4}=>{:baz=>4}}
- *
- * When no block is given, +self+ must be an \Array of 2-element sub-arrays,
- * each sub-array is formed into a key-value pair in the new \Hash:
- * [].to_h # => {}
- * a = [['foo', 'zero'], ['bar', 'one'], ['baz', 'two']]
- * h = a.to_h
- * h # => {"foo"=>"zero", "bar"=>"one", "baz"=>"two"}
- */
-
-static VALUE
-rb_ary_to_h(VALUE ary)
+inspect_call(arg)
+ struct inspect_arg *arg;
{
- long i;
- VALUE hash = rb_hash_new_with_size(RARRAY_LEN(ary));
- int block_given = rb_block_given_p();
-
- for (i=0; i<RARRAY_LEN(ary); i++) {
- const VALUE e = rb_ary_elt(ary, i);
- const VALUE elt = block_given ? rb_yield_force_blockarg(e) : e;
- const VALUE key_value_pair = rb_check_array_type(elt);
- if (NIL_P(key_value_pair)) {
- rb_raise(rb_eTypeError, "wrong element type %"PRIsVALUE" at %ld (expected array)",
- rb_obj_class(elt), i);
- }
- if (RARRAY_LEN(key_value_pair) != 2) {
- rb_raise(rb_eArgError, "wrong array length at %ld (expected 2, was %ld)",
- i, RARRAY_LEN(key_value_pair));
- }
- rb_hash_aset(hash, RARRAY_AREF(key_value_pair, 0), RARRAY_AREF(key_value_pair, 1));
- }
- return hash;
+ return (*arg->func)(arg->arg1, arg->arg2);
}
-/*
- * call-seq:
- * array.to_ary -> self
- *
- * Returns +self+.
- */
-
static VALUE
-rb_ary_to_ary_m(VALUE ary)
+inspect_ensure(obj)
+ VALUE obj;
{
- return ary;
-}
+ VALUE inspect_tbl;
-static void
-ary_reverse(VALUE *p1, VALUE *p2)
-{
- while (p1 < p2) {
- VALUE tmp = *p1;
- *p1++ = *p2;
- *p2-- = tmp;
- }
+ inspect_tbl = rb_thread_local_aref(rb_thread_current(), inspect_key);
+ rb_ary_pop(inspect_tbl);
+ return 0;
}
VALUE
-rb_ary_reverse(VALUE ary)
+rb_protect_inspect(func, obj, arg)
+ VALUE (*func)();
+ VALUE obj, arg;
{
- VALUE *p2;
- long len = RARRAY_LEN(ary);
+ struct inspect_arg iarg;
- rb_ary_modify(ary);
- if (len > 1) {
- RARRAY_PTR_USE_TRANSIENT(ary, p1, {
- p2 = p1 + len - 1; /* points last item */
- ary_reverse(p1, p2);
- }); /* WB: no new reference */
- }
- return ary;
-}
+ VALUE inspect_tbl;
-/*
- * call-seq:
- * array.reverse! -> self
- *
- * Reverses +self+ in place:
- * a = ['foo', 'bar', 'two']
- * a.reverse! # => ["two", "bar", "foo"]
- */
-
-static VALUE
-rb_ary_reverse_bang(VALUE ary)
-{
- return rb_ary_reverse(ary);
-}
-
-/*
- * call-seq:
- * array.reverse -> new_array
- *
- * Returns a new \Array with the elements of +self+ in reverse order.
- * a = ['foo', 'bar', 'two']
- * a1 = a.reverse
- * a1 # => ["two", "bar", "foo"]
- */
-
-static VALUE
-rb_ary_reverse_m(VALUE ary)
-{
- long len = RARRAY_LEN(ary);
- VALUE dup = rb_ary_new2(len);
-
- if (len > 0) {
- const VALUE *p1 = RARRAY_CONST_PTR_TRANSIENT(ary);
- VALUE *p2 = (VALUE *)RARRAY_CONST_PTR_TRANSIENT(dup) + len - 1;
- do *p2-- = *p1++; while (--len > 0);
- }
- ARY_SET_LEN(dup, RARRAY_LEN(ary));
- return dup;
-}
-
-static inline long
-rotate_count(long cnt, long len)
-{
- return (cnt < 0) ? (len - (~cnt % len) - 1) : (cnt % len);
-}
-
-static void
-ary_rotate_ptr(VALUE *ptr, long len, long cnt)
-{
- if (cnt == 1) {
- VALUE tmp = *ptr;
- memmove(ptr, ptr + 1, sizeof(VALUE)*(len - 1));
- *(ptr + len - 1) = tmp;
+ if (!inspect_key) {
+ inspect_key = rb_intern("__inspect_key__");
}
- else if (cnt == len - 1) {
- VALUE tmp = *(ptr + len - 1);
- memmove(ptr + 1, ptr, sizeof(VALUE)*(len - 1));
- *ptr = tmp;
- }
- else {
- --len;
- if (cnt < len) ary_reverse(ptr + cnt, ptr + len);
- if (--cnt > 0) ary_reverse(ptr, ptr + cnt);
- if (len > 0) ary_reverse(ptr, ptr + len);
+ inspect_tbl = rb_thread_local_aref(rb_thread_current(), inspect_key);
+ if (NIL_P(inspect_tbl)) {
+ inspect_tbl = rb_ary_new();
+ rb_thread_local_aset(rb_thread_current(), inspect_key, inspect_tbl);
}
+ rb_ary_push(inspect_tbl, obj);
+ iarg.func = func;
+ iarg.arg1 = obj;
+ iarg.arg2 = arg;
+ return rb_ensure(inspect_call, (VALUE)&iarg, inspect_ensure, obj);
}
VALUE
-rb_ary_rotate(VALUE ary, long cnt)
+rb_inspecting_p(obj)
+ VALUE obj;
{
- rb_ary_modify(ary);
+ VALUE inspect_tbl;
- if (cnt != 0) {
- long len = RARRAY_LEN(ary);
- if (len > 1 && (cnt = rotate_count(cnt, len)) > 0) {
- RARRAY_PTR_USE_TRANSIENT(ary, ptr, ary_rotate_ptr(ptr, len, cnt));
- return ary;
- }
- }
- return Qnil;
+ if (!inspect_key) return Qfalse;
+ inspect_tbl = rb_thread_local_aref(rb_thread_current(), inspect_key);
+ if (NIL_P(inspect_tbl)) return Qfalse;
+ return rb_ary_includes(inspect_tbl, obj);
}
-/*
- * call-seq:
- * array.rotate! -> self
- * array.rotate!(count) -> self
- *
- * Rotates +self+ in place by moving elements from one end to the other; returns +self+.
- *
- * When no argument given, rotates the first element to the last position:
- * a = [:foo, 'bar', 2, 'bar']
- * a.rotate! # => ["bar", 2, "bar", :foo]
- *
- * When given a non-negative \Integer +count+,
- * rotates +count+ elements from the beginning to the end:
- * a = [:foo, 'bar', 2]
- * a.rotate!(2)
- * a # => [2, :foo, "bar"]
- *
- * If +count+ is large, uses <tt>count % array.size</tt> as the count:
- * a = [:foo, 'bar', 2]
- * a.rotate!(20)
- * a # => [2, :foo, "bar"]
- *
- * If +count+ is zero, returns +self+ unmodified:
- * a = [:foo, 'bar', 2]
- * a.rotate!(0)
- * a # => [:foo, "bar", 2]
- *
- * When given a negative Integer +count+, rotates in the opposite direction,
- * from end to beginning:
- * a = [:foo, 'bar', 2]
- * a.rotate!(-2)
- * a # => ["bar", 2, :foo]
- *
- * If +count+ is small (far from zero), uses <tt>count % array.size</tt> as the count:
- * a = [:foo, 'bar', 2]
- * a.rotate!(-5)
- * a # => ["bar", 2, :foo]
- */
-
static VALUE
-rb_ary_rotate_bang(int argc, VALUE *argv, VALUE ary)
-{
- long n = (rb_check_arity(argc, 0, 1) ? NUM2LONG(argv[0]) : 1);
- rb_ary_rotate(ary, n);
- return ary;
-}
-
-/*
- * call-seq:
- * array.rotate -> new_array
- * array.rotate(count) -> new_array
- *
- * Returns a new \Array formed from +self+ with elements
- * rotated from one end to the other.
- *
- * When no argument given, returns a new \Array that is like +self+,
- * except that the first element has been rotated to the last position:
- * a = [:foo, 'bar', 2, 'bar']
- * a1 = a.rotate
- * a1 # => ["bar", 2, "bar", :foo]
- *
- * When given a non-negative \Integer +count+,
- * returns a new \Array with +count+ elements rotated from the beginning to the end:
- * a = [:foo, 'bar', 2]
- * a1 = a.rotate(2)
- * a1 # => [2, :foo, "bar"]
- *
- * If +count+ is large, uses <tt>count % array.size</tt> as the count:
- * a = [:foo, 'bar', 2]
- * a1 = a.rotate(20)
- * a1 # => [2, :foo, "bar"]
- *
- * If +count+ is zero, returns a copy of +self+, unmodified:
- * a = [:foo, 'bar', 2]
- * a1 = a.rotate(0)
- * a1 # => [:foo, "bar", 2]
- *
- * When given a negative \Integer +count+, rotates in the opposite direction,
- * from end to beginning:
- * a = [:foo, 'bar', 2]
- * a1 = a.rotate(-2)
- * a1 # => ["bar", 2, :foo]
- *
- * If +count+ is small (far from zero), uses <tt>count % array.size</tt> as the count:
- * a = [:foo, 'bar', 2]
- * a1 = a.rotate(-5)
- * a1 # => ["bar", 2, :foo]
- */
-
-static VALUE
-rb_ary_rotate_m(int argc, VALUE *argv, VALUE ary)
-{
- VALUE rotated;
- const VALUE *ptr;
- long len;
- long cnt = (rb_check_arity(argc, 0, 1) ? NUM2LONG(argv[0]) : 1);
-
- len = RARRAY_LEN(ary);
- rotated = rb_ary_new2(len);
- if (len > 0) {
- cnt = rotate_count(cnt, len);
- ptr = RARRAY_CONST_PTR_TRANSIENT(ary);
- len -= cnt;
- ary_memcpy(rotated, 0, len, ptr + cnt);
- ary_memcpy(rotated, len, cnt, ptr);
- }
- ARY_SET_LEN(rotated, RARRAY_LEN(ary));
- return rotated;
-}
-
-struct ary_sort_data {
+inspect_ary(ary)
VALUE ary;
- VALUE receiver;
- struct cmp_opt_data cmp_opt;
-};
-
-static VALUE
-sort_reentered(VALUE ary)
{
- if (RBASIC(ary)->klass) {
- rb_raise(rb_eRuntimeError, "sort reentered");
- }
- return Qnil;
-}
-
-static void
-sort_returned(struct ary_sort_data *data)
-{
- if (rb_obj_frozen_p(data->receiver)) {
- rb_raise(rb_eFrozenError, "array frozen during sort");
- }
- sort_reentered(data->ary);
-}
+ long i = 0;
+ VALUE s, str;
-static int
-sort_1(const void *ap, const void *bp, void *dummy)
-{
- struct ary_sort_data *data = dummy;
- VALUE retval = sort_reentered(data->ary);
- VALUE a = *(const VALUE *)ap, b = *(const VALUE *)bp;
- VALUE args[2];
- int n;
-
- args[0] = a;
- args[1] = b;
- retval = rb_yield_values2(2, args);
- n = rb_cmpint(retval, a, b);
- sort_returned(data);
- return n;
-}
+ str = rb_str_new2("[");
-static int
-sort_2(const void *ap, const void *bp, void *dummy)
-{
- struct ary_sort_data *data = dummy;
- VALUE retval = sort_reentered(data->ary);
- VALUE a = *(const VALUE *)ap, b = *(const VALUE *)bp;
- int n;
-
- if (FIXNUM_P(a) && FIXNUM_P(b) && CMP_OPTIMIZABLE(data->cmp_opt, Integer)) {
- if ((long)a > (long)b) return 1;
- if ((long)a < (long)b) return -1;
- return 0;
- }
- if (STRING_P(a) && STRING_P(b) && CMP_OPTIMIZABLE(data->cmp_opt, String)) {
- return rb_str_cmp(a, b);
- }
- if (RB_FLOAT_TYPE_P(a) && CMP_OPTIMIZABLE(data->cmp_opt, Float)) {
- return rb_float_cmp(a, b);
+ for (i=0; i<RARRAY(ary)->len; i++) {
+ s = rb_inspect(RARRAY(ary)->ptr[i]);
+ if (i > 0) rb_str_cat(str, ", ", 2);
+ rb_str_cat(str, RSTRING(s)->ptr, RSTRING(s)->len);
}
+ rb_str_cat(str, "]", 1);
- retval = rb_funcallv(a, id_cmp, 1, &b);
- n = rb_cmpint(retval, a, b);
- sort_returned(data);
-
- return n;
+ return str;
}
-/*
- * call-seq:
- * array.sort! -> self
- * array.sort! {|a, b| ... } -> self
- *
- * Returns +self+ with its elements sorted in place.
- *
- * With no block, compares elements using operator <tt><=></tt>
- * (see Comparable):
- * a = 'abcde'.split('').shuffle
- * a # => ["e", "b", "d", "a", "c"]
- * a.sort!
- * a # => ["a", "b", "c", "d", "e"]
- *
- * With a block, calls the block with each element pair;
- * for each element pair +a+ and +b+, the block should return an integer:
- * - Negative when +b+ is to follow +a+.
- * - Zero when +a+ and +b+ are equivalent.
- * - Positive when +a+ is to follow +b+.
- *
- * Example:
- * a = 'abcde'.split('').shuffle
- * a # => ["e", "b", "d", "a", "c"]
- * a.sort! {|a, b| a <=> b }
- * a # => ["a", "b", "c", "d", "e"]
- * a.sort! {|a, b| b <=> a }
- * a # => ["e", "d", "c", "b", "a"]
- *
- * When the block returns zero, the order for +a+ and +b+ is indeterminate,
- * and may be unstable:
- * a = 'abcde'.split('').shuffle
- * a # => ["e", "b", "d", "a", "c"]
- * a.sort! {|a, b| 0 }
- * a # => ["d", "e", "c", "a", "b"]
- */
-
-VALUE
-rb_ary_sort_bang(VALUE ary)
+static VALUE
+rb_ary_inspect(ary)
+ VALUE ary;
{
- rb_ary_modify(ary);
- assert(!ARY_SHARED_P(ary));
- if (RARRAY_LEN(ary) > 1) {
- VALUE tmp = ary_make_substitution(ary); /* only ary refers tmp */
- struct ary_sort_data data;
- long len = RARRAY_LEN(ary);
- RBASIC_CLEAR_CLASS(tmp);
- data.ary = tmp;
- data.receiver = ary;
- data.cmp_opt.opt_methods = 0;
- data.cmp_opt.opt_inited = 0;
- RARRAY_PTR_USE(tmp, ptr, {
- ruby_qsort(ptr, len, sizeof(VALUE),
- rb_block_given_p()?sort_1:sort_2, &data);
- }); /* WB: no new reference */
- rb_ary_modify(ary);
- if (ARY_EMBED_P(tmp)) {
- if (ARY_SHARED_P(ary)) { /* ary might be destructively operated in the given block */
- rb_ary_unshare(ary);
- FL_SET_EMBED(ary);
- }
- ary_memcpy(ary, 0, ARY_EMBED_LEN(tmp), ARY_EMBED_PTR(tmp));
- ARY_SET_LEN(ary, ARY_EMBED_LEN(tmp));
- }
- else {
- if (!ARY_EMBED_P(ary) && ARY_HEAP_PTR(ary) == ARY_HEAP_PTR(tmp)) {
- FL_UNSET_SHARED(ary);
- ARY_SET_CAPA(ary, RARRAY_LEN(tmp));
- }
- else {
- assert(!ARY_SHARED_P(tmp));
- if (ARY_EMBED_P(ary)) {
- FL_UNSET_EMBED(ary);
- }
- else if (ARY_SHARED_P(ary)) {
- /* ary might be destructively operated in the given block */
- rb_ary_unshare(ary);
- }
- else {
- ary_heap_free(ary);
- }
- ARY_SET_PTR(ary, ARY_HEAP_PTR(tmp));
- ARY_SET_HEAP_LEN(ary, len);
- ARY_SET_CAPA(ary, ARY_HEAP_LEN(tmp));
- }
- /* tmp was lost ownership for the ptr */
- FL_UNSET(tmp, FL_FREEZE);
- FL_SET_EMBED(tmp);
- ARY_SET_EMBED_LEN(tmp, 0);
- FL_SET(tmp, FL_FREEZE);
- }
- /* tmp will be GC'ed. */
- RBASIC_SET_CLASS_RAW(tmp, rb_cArray); /* rb_cArray must be marked */
- }
- ary_verify(ary);
- return ary;
+ if (RARRAY(ary)->len == 0) return rb_str_new2("[]");
+ if (rb_inspecting_p(ary)) return rb_str_new2("[...]");
+ return rb_protect_inspect(inspect_ary, ary, 0);
}
-/*
- * call-seq:
- * array.sort -> new_array
- * array.sort {|a, b| ... } -> new_array
- *
- * Returns a new \Array whose elements are those from +self+, sorted.
- *
- * With no block, compares elements using operator <tt><=></tt>
- * (see Comparable):
- * a = 'abcde'.split('').shuffle
- * a # => ["e", "b", "d", "a", "c"]
- * a1 = a.sort
- * a1 # => ["a", "b", "c", "d", "e"]
- *
- * With a block, calls the block with each element pair;
- * for each element pair +a+ and +b+, the block should return an integer:
- * - Negative when +b+ is to follow +a+.
- * - Zero when +a+ and +b+ are equivalent.
- * - Positive when +a+ is to follow +b+.
- *
- * Example:
- * a = 'abcde'.split('').shuffle
- * a # => ["e", "b", "d", "a", "c"]
- * a1 = a.sort {|a, b| a <=> b }
- * a1 # => ["a", "b", "c", "d", "e"]
- * a2 = a.sort {|a, b| b <=> a }
- * a2 # => ["e", "d", "c", "b", "a"]
- *
- * When the block returns zero, the order for +a+ and +b+ is indeterminate,
- * and may be unstable:
- * a = 'abcde'.split('').shuffle
- * a # => ["e", "b", "d", "a", "c"]
- * a1 = a.sort {|a, b| 0 }
- * a1 # => ["c", "e", "b", "d", "a"]
- *
- * Related: Enumerable#sort_by.
- */
-
-VALUE
-rb_ary_sort(VALUE ary)
+static VALUE
+rb_ary_to_a(ary)
+ VALUE ary;
{
- ary = rb_ary_dup(ary);
- rb_ary_sort_bang(ary);
return ary;
}
-static VALUE rb_ary_bsearch_index(VALUE ary);
-
-/*
- * call-seq:
- * array.bsearch {|element| ... } -> object
- * array.bsearch -> new_enumerator
- *
- * Returns an element from +self+ selected by a binary search.
- *
- * See {Binary Searching}[rdoc-ref:bsearch.rdoc].
- */
-
-static VALUE
-rb_ary_bsearch(VALUE ary)
+VALUE
+rb_ary_reverse(ary)
+ VALUE ary;
{
- VALUE index_result = rb_ary_bsearch_index(ary);
+ VALUE *p1, *p2;
+ VALUE tmp;
- if (FIXNUM_P(index_result)) {
- return rb_ary_entry(ary, FIX2LONG(index_result));
- }
- return index_result;
-}
+ rb_ary_modify(ary);
+ if (RARRAY(ary)->len == 0) return ary;
-/*
- * call-seq:
- * array.bsearch_index {|element| ... } -> integer or nil
- * array.bsearch_index -> new_enumerator
- *
- * Searches +self+ as described at method #bsearch,
- * but returns the _index_ of the found element instead of the element itself.
- */
+ p1 = RARRAY(ary)->ptr;
+ p2 = p1 + RARRAY(ary)->len - 1; /* points last item */
-static VALUE
-rb_ary_bsearch_index(VALUE ary)
-{
- long low = 0, high = RARRAY_LEN(ary), mid;
- int smaller = 0, satisfied = 0;
- VALUE v, val;
-
- RETURN_ENUMERATOR(ary, 0, 0);
- while (low < high) {
- mid = low + ((high - low) / 2);
- val = rb_ary_entry(ary, mid);
- v = rb_yield(val);
- if (FIXNUM_P(v)) {
- if (v == INT2FIX(0)) return INT2FIX(mid);
- smaller = (SIGNED_VALUE)v < 0; /* Fixnum preserves its sign-bit */
- }
- else if (v == Qtrue) {
- satisfied = 1;
- smaller = 1;
- }
- else if (!RTEST(v)) {
- smaller = 0;
- }
- else if (rb_obj_is_kind_of(v, rb_cNumeric)) {
- const VALUE zero = INT2FIX(0);
- switch (rb_cmpint(rb_funcallv(v, id_cmp, 1, &zero), v, zero)) {
- case 0: return INT2FIX(mid);
- case 1: smaller = 1; break;
- case -1: smaller = 0;
- }
- }
- else {
- rb_raise(rb_eTypeError, "wrong argument type %"PRIsVALUE
- " (must be numeric, true, false or nil)",
- rb_obj_class(v));
- }
- if (smaller) {
- high = mid;
- }
- else {
- low = mid + 1;
- }
+ while (p1 < p2) {
+ tmp = *p1;
+ *p1 = *p2;
+ *p2 = tmp;
+ p1++; p2--;
}
- if (!satisfied) return Qnil;
- return INT2FIX(low);
-}
-
-
-static VALUE
-sort_by_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, dummy))
-{
- return rb_yield(i);
-}
-
-/*
- * call-seq:
- * array.sort_by! {|element| ... } -> self
- * array.sort_by! -> new_enumerator
- *
- * Sorts the elements of +self+ in place,
- * using an ordering determined by the block; returns self.
- *
- * Calls the block with each successive element;
- * sorts elements based on the values returned from the block.
- *
- * For duplicates returned by the block, the ordering is indeterminate, and may be unstable.
- *
- * This example sorts strings based on their sizes:
- * a = ['aaaa', 'bbb', 'cc', 'd']
- * a.sort_by! {|element| element.size }
- * a # => ["d", "cc", "bbb", "aaaa"]
- *
- * Returns a new \Enumerator if no block given:
- *
- * a = ['aaaa', 'bbb', 'cc', 'd']
- * a.sort_by! # => #<Enumerator: ["aaaa", "bbb", "cc", "d"]:sort_by!>
- */
-static VALUE
-rb_ary_sort_by_bang(VALUE ary)
-{
- VALUE sorted;
-
- RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);
- rb_ary_modify(ary);
- sorted = rb_block_call(ary, rb_intern("sort_by"), 0, 0, sort_by_i, 0);
- rb_ary_replace(ary, sorted);
return ary;
}
-
-/*
- * call-seq:
- * array.map {|element| ... } -> new_array
- * array.map -> new_enumerator
- *
- * Calls the block, if given, with each element of +self+;
- * returns a new \Array whose elements are the return values from the block:
- * a = [:foo, 'bar', 2]
- * a1 = a.map {|element| element.class }
- * a1 # => [Symbol, String, Integer]
- *
- * Returns a new \Enumerator if no block given:
- * a = [:foo, 'bar', 2]
- * a1 = a.map
- * a1 # => #<Enumerator: [:foo, "bar", 2]:map>
- *
- * Array#collect is an alias for Array#map.
- */
-
static VALUE
-rb_ary_collect(VALUE ary)
+rb_ary_reverse_method(ary)
+ VALUE ary;
{
- long i;
- VALUE collect;
-
- RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);
- collect = rb_ary_new2(RARRAY_LEN(ary));
- for (i = 0; i < RARRAY_LEN(ary); i++) {
- rb_ary_push(collect, rb_yield(RARRAY_AREF(ary, i)));
- }
- return collect;
+ return rb_ary_reverse(rb_ary_dup(ary));
}
+static ID cmp;
-/*
- * call-seq:
- * array.map! {|element| ... } -> self
- * array.map! -> new_enumerator
- *
- * Calls the block, if given, with each element;
- * replaces the element with the block's return value:
- * a = [:foo, 'bar', 2]
- * a.map! { |element| element.class } # => [Symbol, String, Integer]
- *
- * Returns a new \Enumerator if no block given:
- * a = [:foo, 'bar', 2]
- * a1 = a.map!
- * a1 # => #<Enumerator: [:foo, "bar", 2]:map!>
- *
- * Array#collect! is an alias for Array#map!.
- */
-
-static VALUE
-rb_ary_collect_bang(VALUE ary)
+static int
+sort_1(a, b)
+ VALUE *a, *b;
{
- long i;
-
- RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);
- rb_ary_modify(ary);
- for (i = 0; i < RARRAY_LEN(ary); i++) {
- rb_ary_store(ary, i, rb_yield(RARRAY_AREF(ary, i)));
- }
- return ary;
+ VALUE retval = rb_yield(rb_assoc_new(*a, *b));
+ return NUM2INT(retval);
}
-VALUE
-rb_get_values_at(VALUE obj, long olen, int argc, const VALUE *argv, VALUE (*func) (VALUE, long))
+static int
+sort_2(a, b)
+ VALUE *a, *b;
{
- VALUE result = rb_ary_new2(argc);
- long beg, len, i, j;
+ VALUE retval;
- for (i=0; i<argc; i++) {
- if (FIXNUM_P(argv[i])) {
- rb_ary_push(result, (*func)(obj, FIX2LONG(argv[i])));
- continue;
- }
- /* check if idx is Range */
- if (rb_range_beg_len(argv[i], &beg, &len, olen, 1)) {
- long end = olen < beg+len ? olen : beg+len;
- for (j = beg; j < end; j++) {
- rb_ary_push(result, (*func)(obj, j));
- }
- if (beg + len > j)
- rb_ary_resize(result, RARRAY_LEN(result) + (beg + len) - j);
- continue;
- }
- rb_ary_push(result, (*func)(obj, NUM2LONG(argv[i])));
+ if (FIXNUM_P(*a)) {
+ if (FIXNUM_P(*b)) return *a - *b;
}
- return result;
-}
-
-static VALUE
-append_values_at_single(VALUE result, VALUE ary, long olen, VALUE idx)
-{
- long beg, len;
- if (FIXNUM_P(idx)) {
- beg = FIX2LONG(idx);
+ else if (TYPE(*a) == T_STRING && TYPE(*b) == T_STRING) {
+ return rb_str_cmp(*a, *b);
}
- /* check if idx is Range */
- else if (rb_range_beg_len(idx, &beg, &len, olen, 1)) {
- if (len > 0) {
- const VALUE *const src = RARRAY_CONST_PTR_TRANSIENT(ary);
- const long end = beg + len;
- const long prevlen = RARRAY_LEN(result);
- if (beg < olen) {
- rb_ary_cat(result, src + beg, end > olen ? olen-beg : len);
- }
- if (end > olen) {
- rb_ary_store(result, prevlen + len - 1, Qnil);
- }
- }
- return result;
- }
- else {
- beg = NUM2LONG(idx);
- }
- return rb_ary_push(result, rb_ary_entry(ary, beg));
-}
-
-/*
- * call-seq:
- * array.values_at(*indexes) -> new_array
- *
- * Returns a new \Array whose elements are the elements
- * of +self+ at the given \Integer or \Range +indexes+.
- *
- * For each positive +index+, returns the element at offset +index+:
- * a = [:foo, 'bar', 2]
- * a.values_at(0, 2) # => [:foo, 2]
- * a.values_at(0..1) # => [:foo, "bar"]
- *
- * The given +indexes+ may be in any order, and may repeat:
- * a = [:foo, 'bar', 2]
- * a.values_at(2, 0, 1, 0, 2) # => [2, :foo, "bar", :foo, 2]
- * a.values_at(1, 0..2) # => ["bar", :foo, "bar", 2]
- *
- * Assigns +nil+ for an +index+ that is too large:
- * a = [:foo, 'bar', 2]
- * a.values_at(0, 3, 1, 3) # => [:foo, nil, "bar", nil]
- *
- * Returns a new empty \Array if no arguments given.
- *
- * For each negative +index+, counts backward from the end of the array:
- * a = [:foo, 'bar', 2]
- * a.values_at(-1, -3) # => [2, :foo]
- *
- * Assigns +nil+ for an +index+ that is too small:
- * a = [:foo, 'bar', 2]
- * a.values_at(0, -5, 1, -6, 2) # => [:foo, nil, "bar", nil, 2]
- *
- * The given +indexes+ may have a mixture of signs:
- * a = [:foo, 'bar', 2]
- * a.values_at(0, -2, 1, -1) # => [:foo, "bar", "bar", 2]
- */
-static VALUE
-rb_ary_values_at(int argc, VALUE *argv, VALUE ary)
-{
- long i, olen = RARRAY_LEN(ary);
- VALUE result = rb_ary_new_capa(argc);
- for (i = 0; i < argc; ++i) {
- append_values_at_single(result, ary, olen, argv[i]);
- }
- RB_GC_GUARD(ary);
- return result;
+ retval = rb_funcall(*a, cmp, 1, *b);
+ return NUM2INT(retval);
}
-
-/*
- * call-seq:
- * array.select {|element| ... } -> new_array
- * array.select -> new_enumerator
- *
- * Calls the block, if given, with each element of +self+;
- * returns a new \Array containing those elements of +self+
- * for which the block returns a truthy value:
- * a = [:foo, 'bar', 2, :bam]
- * a1 = a.select {|element| element.to_s.start_with?('b') }
- * a1 # => ["bar", :bam]
- *
- * Returns a new \Enumerator if no block given:
- * a = [:foo, 'bar', 2, :bam]
- * a.select # => #<Enumerator: [:foo, "bar", 2, :bam]:select>
- *
- * Array#filter is an alias for Array#select.
- */
-
static VALUE
-rb_ary_select(VALUE ary)
-{
- VALUE result;
- long i;
-
- RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);
- result = rb_ary_new2(RARRAY_LEN(ary));
- for (i = 0; i < RARRAY_LEN(ary); i++) {
- if (RTEST(rb_yield(RARRAY_AREF(ary, i)))) {
- rb_ary_push(result, rb_ary_elt(ary, i));
- }
- }
- return result;
-}
-
-struct select_bang_arg {
+sort_internal(ary)
VALUE ary;
- long len[2];
-};
-
-static VALUE
-select_bang_i(VALUE a)
{
- volatile struct select_bang_arg *arg = (void *)a;
- VALUE ary = arg->ary;
- long i1, i2;
-
- for (i1 = i2 = 0; i1 < RARRAY_LEN(ary); arg->len[0] = ++i1) {
- VALUE v = RARRAY_AREF(ary, i1);
- if (!RTEST(rb_yield(v))) continue;
- if (i1 != i2) {
- rb_ary_store(ary, i2, v);
- }
- arg->len[1] = ++i2;
- }
- return (i1 == i2) ? Qnil : ary;
+ qsort(RARRAY(ary)->ptr, RARRAY(ary)->len, sizeof(VALUE),
+ rb_iterator_p()?sort_1:sort_2);
+ return ary;
}
static VALUE
-select_bang_ensure(VALUE a)
+sort_unlock(ary)
+ VALUE ary;
{
- volatile struct select_bang_arg *arg = (void *)a;
- VALUE ary = arg->ary;
- long len = RARRAY_LEN(ary);
- long i1 = arg->len[0], i2 = arg->len[1];
-
- if (i2 < len && i2 < i1) {
- long tail = 0;
- rb_ary_modify(ary);
- if (i1 < len) {
- tail = len - i1;
- RARRAY_PTR_USE_TRANSIENT(ary, ptr, {
- MEMMOVE(ptr + i2, ptr + i1, VALUE, tail);
- });
- }
- ARY_SET_LEN(ary, i2 + tail);
- }
+ FL_UNSET(ary, ARY_TMPLOCK);
return ary;
}
-/*
- * call-seq:
- * array.select! {|element| ... } -> self or nil
- * array.select! -> new_enumerator
- *
- * Calls the block, if given with each element of +self+;
- * removes from +self+ those elements for which the block returns +false+ or +nil+.
- *
- * Returns +self+ if any elements were removed:
- * a = [:foo, 'bar', 2, :bam]
- * a.select! {|element| element.to_s.start_with?('b') } # => ["bar", :bam]
- *
- * Returns +nil+ if no elements were removed.
- *
- * Returns a new \Enumerator if no block given:
- * a = [:foo, 'bar', 2, :bam]
- * a.select! # => #<Enumerator: [:foo, "bar", 2, :bam]:select!>
- *
- * Array#filter! is an alias for Array#select!.
- */
-
-static VALUE
-rb_ary_select_bang(VALUE ary)
+VALUE
+rb_ary_sort_bang(ary)
+ VALUE ary;
{
- struct select_bang_arg args;
+ if (RARRAY(ary)->len <= 1) return ary;
- RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);
rb_ary_modify(ary);
-
- args.ary = ary;
- args.len[0] = args.len[1] = 0;
- return rb_ensure(select_bang_i, (VALUE)&args, select_bang_ensure, (VALUE)&args);
-}
-
-/*
- * call-seq:
- * array.keep_if {|element| ... } -> self
- * array.keep_if -> new_enumeration
- *
- * Retains those elements for which the block returns a truthy value;
- * deletes all other elements; returns +self+:
- * a = [:foo, 'bar', 2, :bam]
- * a.keep_if {|element| element.to_s.start_with?('b') } # => ["bar", :bam]
- *
- * Returns a new \Enumerator if no block given:
- * a = [:foo, 'bar', 2, :bam]
- * a.keep_if # => #<Enumerator: [:foo, "bar", 2, :bam]:keep_if>
- */
-
-static VALUE
-rb_ary_keep_if(VALUE ary)
-{
- RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);
- rb_ary_select_bang(ary);
+ FL_SET(ary, ARY_TMPLOCK); /* prohibit modification during sort */
+ rb_ensure(sort_internal, ary, sort_unlock, ary);
return ary;
}
-static void
-ary_resize_smaller(VALUE ary, long len)
+VALUE
+rb_ary_sort(ary)
+ VALUE ary;
{
- rb_ary_modify(ary);
- if (RARRAY_LEN(ary) > len) {
- ARY_SET_LEN(ary, len);
- if (len * 2 < ARY_CAPA(ary) &&
- ARY_CAPA(ary) > ARY_DEFAULT_SIZE) {
- ary_resize_capa(ary, len * 2);
- }
- }
+ if (RARRAY(ary)->len == 0) return ary;
+ return rb_ary_sort_bang(rb_ary_dup(ary));
}
-/*
- * call-seq:
- * array.delete(obj) -> deleted_object
- * array.delete(obj) {|nosuch| ... } -> deleted_object or block_return
- *
- * Removes zero or more elements from +self+; returns +self+.
- *
- * When no block is given,
- * removes from +self+ each element +ele+ such that <tt>ele == obj</tt>;
- * returns the last deleted element:
- * s1 = 'bar'; s2 = 'bar'
- * a = [:foo, s1, 2, s2]
- * a.delete('bar') # => "bar"
- * a # => [:foo, 2]
- *
- * Returns +nil+ if no elements removed.
- *
- * When a block is given,
- * removes from +self+ each element +ele+ such that <tt>ele == obj</tt>.
- *
- * If any such elements are found, ignores the block
- * and returns the last deleted element:
- * s1 = 'bar'; s2 = 'bar'
- * a = [:foo, s1, 2, s2]
- * deleted_obj = a.delete('bar') {|obj| fail 'Cannot happen' }
- * a # => [:foo, 2]
- *
- * If no such elements are found, returns the block's return value:
- * a = [:foo, 'bar', 2]
- * a.delete(:nosuch) {|obj| "#{obj} not found" } # => "nosuch not found"
- */
-
VALUE
-rb_ary_delete(VALUE ary, VALUE item)
+rb_ary_delete(ary, item)
+ VALUE ary;
+ VALUE item;
{
- VALUE v = item;
long i1, i2;
- for (i1 = i2 = 0; i1 < RARRAY_LEN(ary); i1++) {
- VALUE e = RARRAY_AREF(ary, i1);
-
- if (rb_equal(e, item)) {
- v = e;
- continue;
- }
+ rb_ary_modify(ary);
+ for (i1 = i2 = 0; i1 < RARRAY(ary)->len; i1++) {
+ if (rb_equal(RARRAY(ary)->ptr[i1], item)) continue;
if (i1 != i2) {
- rb_ary_store(ary, i2, e);
+ RARRAY(ary)->ptr[i2] = RARRAY(ary)->ptr[i1];
}
i2++;
}
- if (RARRAY_LEN(ary) == i2) {
- if (rb_block_given_p()) {
+ if (RARRAY(ary)->len == i2) {
+ if (rb_iterator_p()) {
return rb_yield(item);
}
return Qnil;
}
-
- ary_resize_smaller(ary, i2);
-
- ary_verify(ary);
- return v;
-}
-
-void
-rb_ary_delete_same(VALUE ary, VALUE item)
-{
- long i1, i2;
-
- for (i1 = i2 = 0; i1 < RARRAY_LEN(ary); i1++) {
- VALUE e = RARRAY_AREF(ary, i1);
-
- if (e == item) {
- continue;
- }
- if (i1 != i2) {
- rb_ary_store(ary, i2, e);
- }
- i2++;
- }
- if (RARRAY_LEN(ary) == i2) {
- return;
+ else {
+ RARRAY(ary)->len = i2;
}
- ary_resize_smaller(ary, i2);
+ return item;
}
VALUE
-rb_ary_delete_at(VALUE ary, long pos)
+rb_ary_delete_at(ary, at)
+ VALUE ary;
+ VALUE at;
{
- long len = RARRAY_LEN(ary);
- VALUE del;
-
- if (pos >= len) return Qnil;
- if (pos < 0) {
- pos += len;
- if (pos < 0) return Qnil;
- }
+ long i, pos = NUM2LONG(at), len = RARRAY(ary)->len;
+ VALUE del = Qnil;
rb_ary_modify(ary);
- del = RARRAY_AREF(ary, pos);
- RARRAY_PTR_USE_TRANSIENT(ary, ptr, {
- MEMMOVE(ptr+pos, ptr+pos+1, VALUE, len-pos-1);
- });
- ARY_INCREASE_LEN(ary, -1);
- ary_verify(ary);
- return del;
-}
-
-/*
- * call-seq:
- * array.delete_at(index) -> deleted_object or nil
- *
- * Deletes an element from +self+, per the given \Integer +index+.
- *
- * When +index+ is non-negative, deletes the element at offset +index+:
- * a = [:foo, 'bar', 2]
- * a.delete_at(1) # => "bar"
- * a # => [:foo, 2]
- *
- * If index is too large, returns +nil+.
- *
- * When +index+ is negative, counts backward from the end of the array:
- * a = [:foo, 'bar', 2]
- * a.delete_at(-2) # => "bar"
- * a # => [:foo, 2]
- *
- * If +index+ is too small (far from zero), returns nil.
- */
-
-static VALUE
-rb_ary_delete_at_m(VALUE ary, VALUE pos)
-{
- return rb_ary_delete_at(ary, NUM2LONG(pos));
-}
-
-static VALUE
-ary_slice_bang_by_rb_ary_splice(VALUE ary, long pos, long len)
-{
- const long orig_len = RARRAY_LEN(ary);
-
- if (len < 0) {
- return Qnil;
- }
- else if (pos < -orig_len) {
- return Qnil;
- }
- else if (pos < 0) {
- pos += orig_len;
- }
- else if (orig_len < pos) {
- return Qnil;
- }
- if (orig_len < pos + len) {
- len = orig_len - pos;
- }
- if (len == 0) {
- return rb_ary_new2(0);
- }
- else {
- VALUE arg2 = rb_ary_new4(len, RARRAY_CONST_PTR_TRANSIENT(ary)+pos);
- rb_ary_splice(ary, pos, len, 0, 0);
- return arg2;
- }
-}
-
-/*
- * call-seq:
- * array.slice!(n) -> object or nil
- * array.slice!(start, length) -> new_array or nil
- * array.slice!(range) -> new_array or nil
- *
- * Removes and returns elements from +self+.
- *
- * When the only argument is an \Integer +n+,
- * removes and returns the _nth_ element in +self+:
- * a = [:foo, 'bar', 2]
- * a.slice!(1) # => "bar"
- * a # => [:foo, 2]
- *
- * If +n+ is negative, counts backwards from the end of +self+:
- * a = [:foo, 'bar', 2]
- * a.slice!(-1) # => 2
- * a # => [:foo, "bar"]
- *
- * If +n+ is out of range, returns +nil+.
- *
- * When the only arguments are Integers +start+ and +length+,
- * removes +length+ elements from +self+ beginning at offset +start+;
- * returns the deleted objects in a new Array:
- * a = [:foo, 'bar', 2]
- * a.slice!(0, 2) # => [:foo, "bar"]
- * a # => [2]
- *
- * If <tt>start + length</tt> exceeds the array size,
- * removes and returns all elements from offset +start+ to the end:
- * a = [:foo, 'bar', 2]
- * a.slice!(1, 50) # => ["bar", 2]
- * a # => [:foo]
- *
- * If <tt>start == a.size</tt> and +length+ is non-negative,
- * returns a new empty \Array.
- *
- * If +length+ is negative, returns +nil+.
- *
- * When the only argument is a \Range object +range+,
- * treats <tt>range.min</tt> as +start+ above and <tt>range.size</tt> as +length+ above:
- * a = [:foo, 'bar', 2]
- * a.slice!(1..2) # => ["bar", 2]
- * a # => [:foo]
- *
- * If <tt>range.start == a.size</tt>, returns a new empty \Array.
- *
- * If <tt>range.start</tt> is larger than the array size, returns +nil+.
- *
- * If <tt>range.end</tt> is negative, counts backwards from the end of the array:
- * a = [:foo, 'bar', 2]
- * a.slice!(0..-2) # => [:foo, "bar"]
- * a # => [2]
- *
- * If <tt>range.start</tt> is negative,
- * calculates the start index backwards from the end of the array:
- * a = [:foo, 'bar', 2]
- * a.slice!(-2..2) # => ["bar", 2]
- * a # => [:foo]
- */
-
-static VALUE
-rb_ary_slice_bang(int argc, VALUE *argv, VALUE ary)
-{
- VALUE arg1;
- long pos, len;
-
- rb_ary_modify_check(ary);
- rb_check_arity(argc, 1, 2);
- arg1 = argv[0];
-
- if (argc == 2) {
- pos = NUM2LONG(argv[0]);
- len = NUM2LONG(argv[1]);
- return ary_slice_bang_by_rb_ary_splice(ary, pos, len);
- }
+ if (pos >= len) return Qnil;
+ if (pos < 0) pos += len;
+ if (pos < 0) return Qnil;
- if (!FIXNUM_P(arg1)) {
- switch (rb_range_beg_len(arg1, &pos, &len, RARRAY_LEN(ary), 0)) {
- case Qtrue:
- /* valid range */
- return ary_slice_bang_by_rb_ary_splice(ary, pos, len);
- case Qnil:
- /* invalid range */
- return Qnil;
- default:
- /* not a range */
- break;
- }
+ del = RARRAY(ary)->ptr[pos];
+ for (i = pos + 1; i < len; i++, pos++) {
+ RARRAY(ary)->ptr[pos] = RARRAY(ary)->ptr[i];
}
+ RARRAY(ary)->len = pos;
- return rb_ary_delete_at(ary, NUM2LONG(arg1));
-}
-
-static VALUE
-ary_reject(VALUE orig, VALUE result)
-{
- long i;
-
- for (i = 0; i < RARRAY_LEN(orig); i++) {
- VALUE v = RARRAY_AREF(orig, i);
-
- if (!RTEST(rb_yield(v))) {
- rb_ary_push(result, v);
- }
- }
- return result;
+ return del;
}
static VALUE
-reject_bang_i(VALUE a)
+rb_ary_delete_if(ary)
+ VALUE ary;
{
- volatile struct select_bang_arg *arg = (void *)a;
- VALUE ary = arg->ary;
long i1, i2;
- for (i1 = i2 = 0; i1 < RARRAY_LEN(ary); arg->len[0] = ++i1) {
- VALUE v = RARRAY_AREF(ary, i1);
- if (RTEST(rb_yield(v))) continue;
+ rb_ary_modify(ary);
+ for (i1 = i2 = 0; i1 < RARRAY(ary)->len; i1++) {
+ if (RTEST(rb_yield(RARRAY(ary)->ptr[i1]))) continue;
if (i1 != i2) {
- rb_ary_store(ary, i2, v);
+ RARRAY(ary)->ptr[i2] = RARRAY(ary)->ptr[i1];
}
- arg->len[1] = ++i2;
+ i2++;
}
- return (i1 == i2) ? Qnil : ary;
-}
+ RARRAY(ary)->len = i2;
-static VALUE
-ary_reject_bang(VALUE ary)
-{
- struct select_bang_arg args;
- rb_ary_modify_check(ary);
- args.ary = ary;
- args.len[0] = args.len[1] = 0;
- return rb_ensure(reject_bang_i, (VALUE)&args, select_bang_ensure, (VALUE)&args);
-}
-
-/*
- * call-seq:
- * array.reject! {|element| ... } -> self or nil
- * array.reject! -> new_enumerator
- *
- * Removes each element for which the block returns a truthy value.
- *
- * Returns +self+ if any elements removed:
- * a = [:foo, 'bar', 2, 'bat']
- * a.reject! {|element| element.to_s.start_with?('b') } # => [:foo, 2]
- *
- * Returns +nil+ if no elements removed.
- *
- * Returns a new \Enumerator if no block given:
- * a = [:foo, 'bar', 2]
- * a.reject! # => #<Enumerator: [:foo, "bar", 2]:reject!>
- */
-
-static VALUE
-rb_ary_reject_bang(VALUE ary)
-{
- RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);
- rb_ary_modify(ary);
- return ary_reject_bang(ary);
-}
-
-/*
- * call-seq:
- * array.reject {|element| ... } -> new_array
- * array.reject -> new_enumerator
- *
- * Returns a new \Array whose elements are all those from +self+
- * for which the block returns +false+ or +nil+:
- * a = [:foo, 'bar', 2, 'bat']
- * a1 = a.reject {|element| element.to_s.start_with?('b') }
- * a1 # => [:foo, 2]
- *
- * Returns a new \Enumerator if no block given:
- * a = [:foo, 'bar', 2]
- * a.reject # => #<Enumerator: [:foo, "bar", 2]:reject>
- */
-
-static VALUE
-rb_ary_reject(VALUE ary)
-{
- VALUE rejected_ary;
-
- RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);
- rejected_ary = rb_ary_new();
- ary_reject(ary, rejected_ary);
- return rejected_ary;
-}
-
-/*
- * call-seq:
- * array.delete_if {|element| ... } -> self
- * array.delete_if -> Enumerator
- *
- * Removes each element in +self+ for which the block returns a truthy value;
- * returns +self+:
- * a = [:foo, 'bar', 2, 'bat']
- * a.delete_if {|element| element.to_s.start_with?('b') } # => [:foo, 2]
- *
- * Returns a new \Enumerator if no block given:
- * a = [:foo, 'bar', 2]
- * a.delete_if # => #<Enumerator: [:foo, "bar", 2]:delete_if>
- */
-
-static VALUE
-rb_ary_delete_if(VALUE ary)
-{
- ary_verify(ary);
- RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);
- ary_reject_bang(ary);
return ary;
}
static VALUE
-take_i(RB_BLOCK_CALL_FUNC_ARGLIST(val, cbarg))
-{
- VALUE *args = (VALUE *)cbarg;
- if (argc > 1) val = rb_ary_new4(argc, argv);
- rb_ary_push(args[0], val);
- if (--args[1] == 0) rb_iter_break();
- return Qnil;
-}
-
-static VALUE
-take_items(VALUE obj, long n)
-{
- VALUE result = rb_check_array_type(obj);
- VALUE args[2];
-
- if (n == 0) return result;
- if (!NIL_P(result)) return rb_ary_subseq(result, 0, n);
- result = rb_ary_new2(n);
- args[0] = result; args[1] = (VALUE)n;
- if (rb_check_block_call(obj, idEach, 0, 0, take_i, (VALUE)args) == Qundef)
- rb_raise(rb_eTypeError, "wrong argument type %"PRIsVALUE" (must respond to :each)",
- rb_obj_class(obj));
- return result;
-}
-
-
-/*
- * call-seq:
- * array.zip(*other_arrays) -> new_array
- * array.zip(*other_arrays) {|other_array| ... } -> nil
- *
- * When no block given, returns a new \Array +new_array+ of size <tt>self.size</tt>
- * whose elements are Arrays.
- *
- * Each nested array <tt>new_array[n]</tt> is of size <tt>other_arrays.size+1</tt>,
- * and contains:
- * - The _nth_ element of +self+.
- * - The _nth_ element of each of the +other_arrays+.
- *
- * If all +other_arrays+ and +self+ are the same size:
- * a = [:a0, :a1, :a2, :a3]
- * b = [:b0, :b1, :b2, :b3]
- * c = [:c0, :c1, :c2, :c3]
- * d = a.zip(b, c)
- * d # => [[:a0, :b0, :c0], [:a1, :b1, :c1], [:a2, :b2, :c2], [:a3, :b3, :c3]]
- *
- * If any array in +other_arrays+ is smaller than +self+,
- * fills to <tt>self.size</tt> with +nil+:
- * a = [:a0, :a1, :a2, :a3]
- * b = [:b0, :b1, :b2]
- * c = [:c0, :c1]
- * d = a.zip(b, c)
- * d # => [[:a0, :b0, :c0], [:a1, :b1, :c1], [:a2, :b2, nil], [:a3, nil, nil]]
- *
- * If any array in +other_arrays+ is larger than +self+,
- * its trailing elements are ignored:
- * a = [:a0, :a1, :a2, :a3]
- * b = [:b0, :b1, :b2, :b3, :b4]
- * c = [:c0, :c1, :c2, :c3, :c4, :c5]
- * d = a.zip(b, c)
- * d # => [[:a0, :b0, :c0], [:a1, :b1, :c1], [:a2, :b2, :c2], [:a3, :b3, :c3]]
- *
- * When a block is given, calls the block with each of the sub-arrays (formed as above); returns nil
- * a = [:a0, :a1, :a2, :a3]
- * b = [:b0, :b1, :b2, :b3]
- * c = [:c0, :c1, :c2, :c3]
- * a.zip(b, c) {|sub_array| p sub_array} # => nil
- *
- * Output:
- * [:a0, :b0, :c0]
- * [:a1, :b1, :c1]
- * [:a2, :b2, :c2]
- * [:a3, :b3, :c3]
- */
-
-static VALUE
-rb_ary_zip(int argc, VALUE *argv, VALUE ary)
+rb_ary_filter(ary)
+ VALUE ary;
{
- int i, j;
- long len = RARRAY_LEN(ary);
- VALUE result = Qnil;
-
- for (i=0; i<argc; i++) {
- argv[i] = take_items(argv[i], len);
- }
-
- if (rb_block_given_p()) {
- int arity = rb_block_arity();
-
- if (arity > 1) {
- VALUE work, *tmp;
-
- tmp = ALLOCV_N(VALUE, work, argc+1);
-
- for (i=0; i<RARRAY_LEN(ary); i++) {
- tmp[0] = RARRAY_AREF(ary, i);
- for (j=0; j<argc; j++) {
- tmp[j+1] = rb_ary_elt(argv[j], i);
- }
- rb_yield_values2(argc+1, tmp);
- }
-
- if (work) ALLOCV_END(work);
- }
- else {
- for (i=0; i<RARRAY_LEN(ary); i++) {
- VALUE tmp = rb_ary_new2(argc+1);
-
- rb_ary_push(tmp, RARRAY_AREF(ary, i));
- for (j=0; j<argc; j++) {
- rb_ary_push(tmp, rb_ary_elt(argv[j], i));
- }
- rb_yield(tmp);
- }
- }
- }
- else {
- result = rb_ary_new_capa(len);
-
- for (i=0; i<len; i++) {
- VALUE tmp = rb_ary_new_capa(argc+1);
+ long i;
- rb_ary_push(tmp, RARRAY_AREF(ary, i));
- for (j=0; j<argc; j++) {
- rb_ary_push(tmp, rb_ary_elt(argv[j], i));
- }
- rb_ary_push(result, tmp);
- }
+ rb_ary_modify(ary);
+ for (i = 0; i < RARRAY(ary)->len; i++) {
+ RARRAY(ary)->ptr[i] = rb_yield(RARRAY(ary)->ptr[i]);
}
-
- return result;
+ return ary;
}
-/*
- * call-seq:
- * array.transpose -> new_array
- *
- * Transposes the rows and columns in an \Array of Arrays;
- * the nested Arrays must all be the same size:
- * a = [[:a0, :a1], [:b0, :b1], [:c0, :c1]]
- * a.transpose # => [[:a0, :b0, :c0], [:a1, :b1, :c1]]
- */
-
static VALUE
-rb_ary_transpose(VALUE ary)
-{
- long elen = -1, alen, i, j;
- VALUE tmp, result = 0;
-
- alen = RARRAY_LEN(ary);
- if (alen == 0) return rb_ary_dup(ary);
- for (i=0; i<alen; i++) {
- tmp = to_ary(rb_ary_elt(ary, i));
- if (elen < 0) { /* first element */
- elen = RARRAY_LEN(tmp);
- result = rb_ary_new2(elen);
- for (j=0; j<elen; j++) {
- rb_ary_store(result, j, rb_ary_new2(alen));
- }
- }
- else if (elen != RARRAY_LEN(tmp)) {
- rb_raise(rb_eIndexError, "element size differs (%ld should be %ld)",
- RARRAY_LEN(tmp), elen);
- }
- for (j=0; j<elen; j++) {
- rb_ary_store(rb_ary_elt(result, j), i, rb_ary_elt(tmp, j));
- }
- }
- return result;
-}
-
-/*
- * call-seq:
- * array.replace(other_array) -> self
- *
- * Replaces the content of +self+ with the content of +other_array+; returns +self+:
- * a = [:foo, 'bar', 2]
- * a.replace(['foo', :bar, 3]) # => ["foo", :bar, 3]
- */
-
-VALUE
-rb_ary_replace(VALUE copy, VALUE orig)
+rb_ary_replace_method(ary, ary2)
+ VALUE ary, ary2;
{
- rb_ary_modify_check(copy);
- orig = to_ary(orig);
- if (copy == orig) return copy;
-
- if (RARRAY_LEN(orig) <= RARRAY_EMBED_LEN_MAX) {
- VALUE shared_root = 0;
-
- if (ARY_OWNS_HEAP_P(copy)) {
- ary_heap_free(copy);
- }
- else if (ARY_SHARED_P(copy)) {
- shared_root = ARY_SHARED_ROOT(copy);
- FL_UNSET_SHARED(copy);
- }
- FL_SET_EMBED(copy);
- ary_memcpy(copy, 0, RARRAY_LEN(orig), RARRAY_CONST_PTR_TRANSIENT(orig));
- if (shared_root) {
- rb_ary_decrement_share(shared_root);
- }
- ARY_SET_LEN(copy, RARRAY_LEN(orig));
- }
- else {
- VALUE shared_root = ary_make_shared(orig);
- if (ARY_OWNS_HEAP_P(copy)) {
- ary_heap_free(copy);
- }
- else {
- rb_ary_unshare_safe(copy);
- }
- FL_UNSET_EMBED(copy);
- ARY_SET_PTR(copy, ARY_HEAP_PTR(orig));
- ARY_SET_LEN(copy, ARY_HEAP_LEN(orig));
- rb_ary_set_shared(copy, shared_root);
- }
- ary_verify(copy);
- return copy;
+ ary2 = to_ary(ary2);
+ rb_ary_replace(ary, 0, RARRAY(ary)->len, ary2);
+ return ary;
}
-/*
- * call-seq:
- * array.clear -> self
- *
- * Removes all elements from +self+:
- * a = [:foo, 'bar', 2]
- * a.clear # => []
- */
-
-VALUE
-rb_ary_clear(VALUE ary)
+static VALUE
+rb_ary_clear(ary)
+ VALUE ary;
{
- rb_ary_modify_check(ary);
- if (ARY_SHARED_P(ary)) {
- if (!ARY_EMBED_P(ary)) {
- rb_ary_unshare(ary);
- FL_SET_EMBED(ary);
- ARY_SET_EMBED_LEN(ary, 0);
- }
- }
- else {
- ARY_SET_LEN(ary, 0);
- if (ARY_DEFAULT_SIZE * 2 < ARY_CAPA(ary)) {
- ary_resize_capa(ary, ARY_DEFAULT_SIZE * 2);
- }
+ rb_ary_modify(ary);
+ RARRAY(ary)->len = 0;
+ if (ARY_DEFAULT_SIZE*3 < RARRAY(ary)->capa) {
+ RARRAY(ary)->capa = ARY_DEFAULT_SIZE * 2;
+ REALLOC_N(RARRAY(ary)->ptr, VALUE, RARRAY(ary)->capa);
}
- ary_verify(ary);
return ary;
}
-/*
- * call-seq:
- * array.fill(obj) -> self
- * array.fill(obj, start) -> self
- * array.fill(obj, start, length) -> self
- * array.fill(obj, range) -> self
- * array.fill {|index| ... } -> self
- * array.fill(start) {|index| ... } -> self
- * array.fill(start, length) {|index| ... } -> self
- * array.fill(range) {|index| ... } -> self
- *
- * Replaces specified elements in +self+ with specified objects; returns +self+.
- *
- * With argument +obj+ and no block given, replaces all elements with that one object:
- * a = ['a', 'b', 'c', 'd']
- * a # => ["a", "b", "c", "d"]
- * a.fill(:X) # => [:X, :X, :X, :X]
- *
- * With arguments +obj+ and \Integer +start+, and no block given,
- * replaces elements based on the given start.
- *
- * If +start+ is in range (<tt>0 <= start < array.size</tt>),
- * replaces all elements from offset +start+ through the end:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(:X, 2) # => ["a", "b", :X, :X]
- *
- * If +start+ is too large (<tt>start >= array.size</tt>), does nothing:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(:X, 4) # => ["a", "b", "c", "d"]
- * a = ['a', 'b', 'c', 'd']
- * a.fill(:X, 5) # => ["a", "b", "c", "d"]
- *
- * If +start+ is negative, counts from the end (starting index is <tt>start + array.size</tt>):
- * a = ['a', 'b', 'c', 'd']
- * a.fill(:X, -2) # => ["a", "b", :X, :X]
- *
- * If +start+ is too small (less than and far from zero), replaces all elements:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(:X, -6) # => [:X, :X, :X, :X]
- * a = ['a', 'b', 'c', 'd']
- * a.fill(:X, -50) # => [:X, :X, :X, :X]
- *
- * With arguments +obj+, \Integer +start+, and \Integer +length+, and no block given,
- * replaces elements based on the given +start+ and +length+.
- *
- * If +start+ is in range, replaces +length+ elements beginning at offset +start+:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(:X, 1, 1) # => ["a", :X, "c", "d"]
- *
- * If +start+ is negative, counts from the end:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(:X, -2, 1) # => ["a", "b", :X, "d"]
- *
- * If +start+ is large (<tt>start >= array.size</tt>), extends +self+ with +nil+:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(:X, 5, 0) # => ["a", "b", "c", "d", nil]
- * a = ['a', 'b', 'c', 'd']
- * a.fill(:X, 5, 2) # => ["a", "b", "c", "d", nil, :X, :X]
- *
- * If +length+ is zero or negative, replaces no elements:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(:X, 1, 0) # => ["a", "b", "c", "d"]
- * a.fill(:X, 1, -1) # => ["a", "b", "c", "d"]
- *
- * With arguments +obj+ and \Range +range+, and no block given,
- * replaces elements based on the given range.
- *
- * If the range is positive and ascending (<tt>0 < range.begin <= range.end</tt>),
- * replaces elements from <tt>range.begin</tt> to <tt>range.end</tt>:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(:X, (1..1)) # => ["a", :X, "c", "d"]
- *
- * If <tt>range.first</tt> is negative, replaces no elements:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(:X, (-1..1)) # => ["a", "b", "c", "d"]
- *
- * If <tt>range.last</tt> is negative, counts from the end:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(:X, (0..-2)) # => [:X, :X, :X, "d"]
- * a = ['a', 'b', 'c', 'd']
- * a.fill(:X, (1..-2)) # => ["a", :X, :X, "d"]
- *
- * If <tt>range.last</tt> and <tt>range.last</tt> are both negative,
- * both count from the end of the array:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(:X, (-1..-1)) # => ["a", "b", "c", :X]
- * a = ['a', 'b', 'c', 'd']
- * a.fill(:X, (-2..-2)) # => ["a", "b", :X, "d"]
- *
- * With no arguments and a block given, calls the block with each index;
- * replaces the corresponding element with the block's return value:
- * a = ['a', 'b', 'c', 'd']
- * a.fill { |index| "new_#{index}" } # => ["new_0", "new_1", "new_2", "new_3"]
- *
- * With argument +start+ and a block given, calls the block with each index
- * from offset +start+ to the end; replaces the corresponding element
- * with the block's return value:
- *
- * If start is in range (<tt>0 <= start < array.size</tt>),
- * replaces from offset +start+ to the end:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(1) { |index| "new_#{index}" } # => ["a", "new_1", "new_2", "new_3"]
- *
- * If +start+ is too large(<tt>start >= array.size</tt>), does nothing:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(4) { |index| fail 'Cannot happen' } # => ["a", "b", "c", "d"]
- * a = ['a', 'b', 'c', 'd']
- * a.fill(4) { |index| fail 'Cannot happen' } # => ["a", "b", "c", "d"]
- *
- * If +start+ is negative, counts from the end:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(-2) { |index| "new_#{index}" } # => ["a", "b", "new_2", "new_3"]
- *
- * If start is too small (<tt>start <= -array.size</tt>, replaces all elements:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(-6) { |index| "new_#{index}" } # => ["new_0", "new_1", "new_2", "new_3"]
- * a = ['a', 'b', 'c', 'd']
- * a.fill(-50) { |index| "new_#{index}" } # => ["new_0", "new_1", "new_2", "new_3"]
- *
- * With arguments +start+ and +length+, and a block given,
- * calls the block for each index specified by start length;
- * replaces the corresponding element with the block's return value.
- *
- * If +start+ is in range, replaces +length+ elements beginning at offset +start+:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(1, 1) { |index| "new_#{index}" } # => ["a", "new_1", "c", "d"]
- *
- * If start is negative, counts from the end:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(-2, 1) { |index| "new_#{index}" } # => ["a", "b", "new_2", "d"]
- *
- * If +start+ is large (<tt>start >= array.size</tt>), extends +self+ with +nil+:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(5, 0) { |index| "new_#{index}" } # => ["a", "b", "c", "d", nil]
- * a = ['a', 'b', 'c', 'd']
- * a.fill(5, 2) { |index| "new_#{index}" } # => ["a", "b", "c", "d", nil, "new_5", "new_6"]
- *
- * If +length+ is zero or less, replaces no elements:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(1, 0) { |index| "new_#{index}" } # => ["a", "b", "c", "d"]
- * a.fill(1, -1) { |index| "new_#{index}" } # => ["a", "b", "c", "d"]
- *
- * With arguments +obj+ and +range+, and a block given,
- * calls the block with each index in the given range;
- * replaces the corresponding element with the block's return value.
- *
- * If the range is positive and ascending (<tt>range 0 < range.begin <= range.end</tt>,
- * replaces elements from <tt>range.begin</tt> to <tt>range.end</tt>:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(1..1) { |index| "new_#{index}" } # => ["a", "new_1", "c", "d"]
- *
- * If +range.first+ is negative, does nothing:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(-1..1) { |index| fail 'Cannot happen' } # => ["a", "b", "c", "d"]
- *
- * If <tt>range.last</tt> is negative, counts from the end:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(0..-2) { |index| "new_#{index}" } # => ["new_0", "new_1", "new_2", "d"]
- * a = ['a', 'b', 'c', 'd']
- * a.fill(1..-2) { |index| "new_#{index}" } # => ["a", "new_1", "new_2", "d"]
- *
- * If <tt>range.first</tt> and <tt>range.last</tt> are both negative,
- * both count from the end:
- * a = ['a', 'b', 'c', 'd']
- * a.fill(-1..-1) { |index| "new_#{index}" } # => ["a", "b", "c", "new_3"]
- * a = ['a', 'b', 'c', 'd']
- * a.fill(-2..-2) { |index| "new_#{index}" } # => ["a", "b", "new_2", "d"]
- */
-
static VALUE
-rb_ary_fill(int argc, VALUE *argv, VALUE ary)
+rb_ary_fill(argc, argv, ary)
+ int argc;
+ VALUE *argv;
+ VALUE ary;
{
- VALUE item = Qundef, arg1, arg2;
- long beg = 0, end = 0, len = 0;
+ VALUE item, arg1, arg2;
+ long beg, end, len;
+ VALUE *p, *pend;
- if (rb_block_given_p()) {
- rb_scan_args(argc, argv, "02", &arg1, &arg2);
- argc += 1; /* hackish */
- }
- else {
- rb_scan_args(argc, argv, "12", &item, &arg1, &arg2);
- }
+ rb_scan_args(argc, argv, "12", &item, &arg1, &arg2);
switch (argc) {
case 1:
beg = 0;
- len = RARRAY_LEN(ary);
+ len = RARRAY(ary)->len - beg;
break;
case 2:
- if (rb_range_beg_len(arg1, &beg, &len, RARRAY_LEN(ary), 1)) {
+ if (rb_range_beg_len(arg1, &beg, &len, RARRAY(ary)->len, 1)) {
break;
}
/* fall through */
case 3:
- beg = NIL_P(arg1) ? 0 : NUM2LONG(arg1);
+ beg = NIL_P(arg1)?0:NUM2LONG(arg1);
if (beg < 0) {
- beg = RARRAY_LEN(ary) + beg;
+ beg = RARRAY(ary)->len + beg;
if (beg < 0) beg = 0;
}
- len = NIL_P(arg2) ? RARRAY_LEN(ary) - beg : NUM2LONG(arg2);
+ len = NIL_P(arg2)?RARRAY(ary)->len - beg:NUM2LONG(arg2);
break;
}
rb_ary_modify(ary);
- if (len < 0) {
- return ary;
- }
- if (beg >= ARY_MAX_SIZE || len > ARY_MAX_SIZE - beg) {
- rb_raise(rb_eArgError, "argument too big");
- }
end = beg + len;
- if (RARRAY_LEN(ary) < end) {
- if (end >= ARY_CAPA(ary)) {
- ary_resize_capa(ary, end);
+ if (end > RARRAY(ary)->len) {
+ if (end >= RARRAY(ary)->capa) {
+ RARRAY(ary)->capa=end;
+ REALLOC_N(RARRAY(ary)->ptr, VALUE, RARRAY(ary)->capa);
}
- ary_mem_clear(ary, RARRAY_LEN(ary), end - RARRAY_LEN(ary));
- ARY_SET_LEN(ary, end);
- }
-
- if (item == Qundef) {
- VALUE v;
- long i;
-
- for (i=beg; i<end; i++) {
- v = rb_yield(LONG2NUM(i));
- if (i>=RARRAY_LEN(ary)) break;
- ARY_SET(ary, i, v);
+ if (beg > RARRAY(ary)->len) {
+ rb_mem_clear(RARRAY(ary)->ptr+RARRAY(ary)->len,end-RARRAY(ary)->len);
}
+ RARRAY(ary)->len = end;
}
- else {
- ary_memfill(ary, beg, len, item);
+ p = RARRAY(ary)->ptr + beg; pend = p + len;
+
+ while (p < pend) {
+ *p++ = item;
}
return ary;
}
-/*
- * call-seq:
- * array + other_array -> new_array
- *
- * Returns a new \Array containing all elements of +array+
- * followed by all elements of +other_array+:
- * a = [0, 1] + [2, 3]
- * a # => [0, 1, 2, 3]
- *
- * Related: #concat.
- */
-
VALUE
-rb_ary_plus(VALUE x, VALUE y)
+rb_ary_plus(x, y)
+ VALUE x, y;
{
VALUE z;
- long len, xlen, ylen;
- y = to_ary(y);
- xlen = RARRAY_LEN(x);
- ylen = RARRAY_LEN(y);
- len = xlen + ylen;
- z = rb_ary_new2(len);
+ if (TYPE(y) != T_ARRAY) {
+ return rb_ary_plus(x, rb_Array(y));
+ }
- ary_memcpy(z, 0, xlen, RARRAY_CONST_PTR_TRANSIENT(x));
- ary_memcpy(z, xlen, ylen, RARRAY_CONST_PTR_TRANSIENT(y));
- ARY_SET_LEN(z, len);
+ z = rb_ary_new2(RARRAY(x)->len + RARRAY(y)->len);
+ MEMCPY(RARRAY(z)->ptr, RARRAY(x)->ptr, VALUE, RARRAY(x)->len);
+ MEMCPY(RARRAY(z)->ptr+RARRAY(x)->len, RARRAY(y)->ptr, VALUE, RARRAY(y)->len);
+ RARRAY(z)->len = RARRAY(x)->len + RARRAY(y)->len;
return z;
}
-static VALUE
-ary_append(VALUE x, VALUE y)
-{
- long n = RARRAY_LEN(y);
- if (n > 0) {
- rb_ary_splice(x, RARRAY_LEN(x), 0, RARRAY_CONST_PTR_TRANSIENT(y), n);
- }
- RB_GC_GUARD(y);
- return x;
-}
-
-/*
- * call-seq:
- * array.concat(*other_arrays) -> self
- *
- * Adds to +array+ all elements from each \Array in +other_arrays+; returns +self+:
- * a = [0, 1]
- * a.concat([2, 3], [4, 5]) # => [0, 1, 2, 3, 4, 5]
- */
-
-static VALUE
-rb_ary_concat_multi(int argc, VALUE *argv, VALUE ary)
+VALUE
+rb_ary_concat(x, y)
+ VALUE x, y;
{
- rb_ary_modify_check(ary);
+ VALUE *p, *pend;
- if (argc == 1) {
- rb_ary_concat(ary, argv[0]);
+ if (TYPE(y) != T_ARRAY) {
+ return rb_ary_concat(x, rb_Array(y));
}
- else if (argc > 1) {
- int i;
- VALUE args = rb_ary_tmp_new(argc);
- for (i = 0; i < argc; i++) {
- rb_ary_concat(args, argv[i]);
- }
- ary_append(ary, args);
- }
-
- ary_verify(ary);
- return ary;
-}
-VALUE
-rb_ary_concat(VALUE x, VALUE y)
-{
- return ary_append(x, to_ary(y));
+ p = RARRAY(y)->ptr;
+ pend = p + RARRAY(y)->len;
+ while (p < pend) {
+ rb_ary_store(x, RARRAY(x)->len, *p);
+ p++;
+ }
+ return x;
}
-/*
- * call-seq:
- * array * n -> new_array
- * array * string_separator -> new_string
- *
- * When non-negative argument \Integer +n+ is given,
- * returns a new \Array built by concatenating the +n+ copies of +self+:
- * a = ['x', 'y']
- * a * 3 # => ["x", "y", "x", "y", "x", "y"]
- *
- * When \String argument +string_separator+ is given,
- * equivalent to <tt>array.join(string_separator)</tt>:
- * [0, [0, 1], {foo: 0}] * ', ' # => "0, 0, 1, {:foo=>0}"
- */
-
static VALUE
-rb_ary_times(VALUE ary, VALUE times)
+rb_ary_times(ary, times)
+ VALUE ary;
+ VALUE times;
{
- VALUE ary2, tmp;
- const VALUE *ptr;
- long t, len;
+ VALUE ary2;
+ long i, len;
- tmp = rb_check_string_type(times);
- if (!NIL_P(tmp)) {
- return rb_ary_join(ary, tmp);
+ if (TYPE(times) == T_STRING) {
+ return rb_ary_join(ary, times);
}
len = NUM2LONG(times);
- if (len == 0) {
- ary2 = ary_new(rb_cArray, 0);
- goto out;
- }
if (len < 0) {
rb_raise(rb_eArgError, "negative argument");
}
- if (ARY_MAX_SIZE/len < RARRAY_LEN(ary)) {
- rb_raise(rb_eArgError, "argument too big");
- }
- len *= RARRAY_LEN(ary);
-
- ary2 = ary_new(rb_cArray, len);
- ARY_SET_LEN(ary2, len);
-
- ptr = RARRAY_CONST_PTR_TRANSIENT(ary);
- t = RARRAY_LEN(ary);
- if (0 < t) {
- ary_memcpy(ary2, 0, t, ptr);
- while (t <= len/2) {
- ary_memcpy(ary2, t, t, RARRAY_CONST_PTR_TRANSIENT(ary2));
- t *= 2;
- }
- if (t < len) {
- ary_memcpy(ary2, t, len-t, RARRAY_CONST_PTR_TRANSIENT(ary2));
- }
+ len *= RARRAY(ary)->len;
+
+ ary2 = rb_ary_new2(len);
+ RARRAY(ary2)->len = len;
+
+ for (i=0; i<len; i+=RARRAY(ary)->len) {
+ MEMCPY(RARRAY(ary2)->ptr+i, RARRAY(ary)->ptr, VALUE, RARRAY(ary)->len);
}
- out:
+
return ary2;
}
-/*
- * call-seq:
- * array.assoc(obj) -> found_array or nil
- *
- * Returns the first element in +self+ that is an \Array
- * whose first element <tt>==</tt> +obj+:
- * a = [{foo: 0}, [2, 4], [4, 5, 6], [4, 5]]
- * a.assoc(4) # => [4, 5, 6]
- *
- * Returns +nil+ if no such element is found.
- *
- * Related: #rassoc.
- */
-
VALUE
-rb_ary_assoc(VALUE ary, VALUE key)
+rb_ary_assoc(ary, key)
+ VALUE ary;
+ VALUE key;
{
- long i;
- VALUE v;
+ VALUE *p, *pend;
- for (i = 0; i < RARRAY_LEN(ary); ++i) {
- v = rb_check_array_type(RARRAY_AREF(ary, i));
- if (!NIL_P(v) && RARRAY_LEN(v) > 0 &&
- rb_equal(RARRAY_AREF(v, 0), key))
- return v;
+ p = RARRAY(ary)->ptr; pend = p + RARRAY(ary)->len;
+ while (p < pend) {
+ if (TYPE(*p) == T_ARRAY
+ && RARRAY(*p)->len > 1
+ && rb_equal(RARRAY(*p)->ptr[0], key))
+ return *p;
+ p++;
}
return Qnil;
}
-/*
- * call-seq:
- * array.rassoc(obj) -> found_array or nil
- *
- * Returns the first element in +self+ that is an \Array
- * whose second element <tt>==</tt> +obj+:
- * a = [{foo: 0}, [2, 4], [4, 5, 6], [4, 5]]
- * a.rassoc(4) # => [2, 4]
- *
- * Returns +nil+ if no such element is found.
- *
- * Related: #assoc.
- */
-
VALUE
-rb_ary_rassoc(VALUE ary, VALUE value)
+rb_ary_rassoc(ary, value)
+ VALUE ary;
+ VALUE value;
{
- long i;
- VALUE v;
+ VALUE *p, *pend;
- for (i = 0; i < RARRAY_LEN(ary); ++i) {
- v = RARRAY_AREF(ary, i);
- if (RB_TYPE_P(v, T_ARRAY) &&
- RARRAY_LEN(v) > 1 &&
- rb_equal(RARRAY_AREF(v, 1), value))
- return v;
+ p = RARRAY(ary)->ptr; pend = p + RARRAY(ary)->len;
+ while (p < pend) {
+ if (TYPE(*p) == T_ARRAY
+ && RARRAY(*p)->len > 1
+ && rb_equal(RARRAY(*p)->ptr[1], value))
+ return *p;
+ p++;
}
return Qnil;
}
static VALUE
-recursive_equal(VALUE ary1, VALUE ary2, int recur)
+rb_ary_equal(ary1, ary2)
+ VALUE ary1, ary2;
{
- long i, len1;
- const VALUE *p1, *p2;
-
- if (recur) return Qtrue; /* Subtle! */
-
- /* rb_equal() can evacuate ptrs */
- p1 = RARRAY_CONST_PTR(ary1);
- p2 = RARRAY_CONST_PTR(ary2);
- len1 = RARRAY_LEN(ary1);
-
- for (i = 0; i < len1; i++) {
- if (*p1 != *p2) {
- if (rb_equal(*p1, *p2)) {
- len1 = RARRAY_LEN(ary1);
- if (len1 != RARRAY_LEN(ary2))
- return Qfalse;
- if (len1 < i)
- return Qtrue;
- p1 = RARRAY_CONST_PTR(ary1) + i;
- p2 = RARRAY_CONST_PTR(ary2) + i;
- }
- else {
- return Qfalse;
- }
- }
- p1++;
- p2++;
- }
- return Qtrue;
-}
-
-/*
- * call-seq:
- * array == other_array -> true or false
- *
- * Returns +true+ if both <tt>array.size == other_array.size</tt>
- * and for each index +i+ in +array+, <tt>array[i] == other_array[i]</tt>:
- * a0 = [:foo, 'bar', 2]
- * a1 = [:foo, 'bar', 2.0]
- * a1 == a0 # => true
- * [] == [] # => true
- *
- * Otherwise, returns +false+.
- *
- * This method is different from method Array#eql?,
- * which compares elements using <tt>Object#eql?</tt>.
- */
+ long i;
-static VALUE
-rb_ary_equal(VALUE ary1, VALUE ary2)
-{
- if (ary1 == ary2) return Qtrue;
- if (!RB_TYPE_P(ary2, T_ARRAY)) {
- if (!rb_respond_to(ary2, idTo_ary)) {
+ if (TYPE(ary2) != T_ARRAY) return Qfalse;
+ if (RARRAY(ary1)->len != RARRAY(ary2)->len) return Qfalse;
+ for (i=0; i<RARRAY(ary1)->len; i++) {
+ if (!rb_equal(RARRAY(ary1)->ptr[i], RARRAY(ary2)->ptr[i]))
return Qfalse;
- }
- return rb_equal(ary2, ary1);
}
- if (RARRAY_LEN(ary1) != RARRAY_LEN(ary2)) return Qfalse;
- if (RARRAY_CONST_PTR_TRANSIENT(ary1) == RARRAY_CONST_PTR_TRANSIENT(ary2)) return Qtrue;
- return rb_exec_recursive_paired(recursive_equal, ary1, ary2, ary2);
+ return Qtrue;
}
static VALUE
-recursive_eql(VALUE ary1, VALUE ary2, int recur)
+rb_ary_eql(ary1, ary2)
+ VALUE ary1, ary2;
{
long i;
- if (recur) return Qtrue; /* Subtle! */
- for (i=0; i<RARRAY_LEN(ary1); i++) {
- if (!rb_eql(rb_ary_elt(ary1, i), rb_ary_elt(ary2, i)))
+ if (TYPE(ary2) != T_ARRAY) return Qfalse;
+ if (RARRAY(ary1)->len != RARRAY(ary2)->len)
+ return Qfalse;
+ for (i=0; i<RARRAY(ary1)->len; i++) {
+ if (!rb_eql(RARRAY(ary1)->ptr[i], RARRAY(ary2)->ptr[i]))
return Qfalse;
}
return Qtrue;
}
-/*
- * call-seq:
- * array.eql? other_array -> true or false
- *
- * Returns +true+ if +self+ and +other_array+ are the same size,
- * and if, for each index +i+ in +self+, <tt>self[i].eql? other_array[i]</tt>:
- * a0 = [:foo, 'bar', 2]
- * a1 = [:foo, 'bar', 2]
- * a1.eql?(a0) # => true
- *
- * Otherwise, returns +false+.
- *
- * This method is different from method {Array#==}[#method-i-3D-3D],
- * which compares using method <tt>Object#==</tt>.
- */
-
static VALUE
-rb_ary_eql(VALUE ary1, VALUE ary2)
-{
- if (ary1 == ary2) return Qtrue;
- if (!RB_TYPE_P(ary2, T_ARRAY)) return Qfalse;
- if (RARRAY_LEN(ary1) != RARRAY_LEN(ary2)) return Qfalse;
- if (RARRAY_CONST_PTR_TRANSIENT(ary1) == RARRAY_CONST_PTR_TRANSIENT(ary2)) return Qtrue;
- return rb_exec_recursive_paired(recursive_eql, ary1, ary2, ary2);
-}
-
-/*
- * call-seq:
- * array.hash -> integer
- *
- * Returns the integer hash value for +self+.
- *
- * Two arrays with the same content will have the same hash code (and will compare using eql?):
- * [0, 1, 2].hash == [0, 1, 2].hash # => true
- * [0, 1, 2].hash == [0, 1, 3].hash # => false
- */
-
-static VALUE
-rb_ary_hash(VALUE ary)
-{
- long i;
- st_index_t h;
- VALUE n;
-
- h = rb_hash_start(RARRAY_LEN(ary));
- h = rb_hash_uint(h, (st_index_t)rb_ary_hash);
- for (i=0; i<RARRAY_LEN(ary); i++) {
- n = rb_hash(RARRAY_AREF(ary, i));
- h = rb_hash_uint(h, NUM2LONG(n));
- }
- h = rb_hash_end(h);
- return ST2FIX(h);
-}
-
-/*
- * call-seq:
- * array.include?(obj) -> true or false
- *
- * Returns +true+ if for some index +i+ in +self+, <tt>obj == self[i]</tt>;
- * otherwise +false+:
- * [0, 1, 2].include?(2) # => true
- * [0, 1, 2].include?(3) # => false
- */
-
-VALUE
-rb_ary_includes(VALUE ary, VALUE item)
+rb_ary_hash(ary)
+ VALUE ary;
{
long i;
- VALUE e;
+ int h;
- for (i=0; i<RARRAY_LEN(ary); i++) {
- e = RARRAY_AREF(ary, i);
- if (rb_equal(e, item)) {
- return Qtrue;
- }
+ h = RARRAY(ary)->len;
+ for (i=0; i<RARRAY(ary)->len; i++) {
+ int n = rb_hash(RARRAY(ary)->ptr[i]);
+ h ^= NUM2LONG(n);
}
- return Qfalse;
+ return INT2FIX(h);
}
-static VALUE
-rb_ary_includes_by_eql(VALUE ary, VALUE item)
+VALUE
+rb_ary_includes(ary, item)
+ VALUE ary;
+ VALUE item;
{
long i;
- VALUE e;
-
- for (i=0; i<RARRAY_LEN(ary); i++) {
- e = RARRAY_AREF(ary, i);
- if (rb_eql(item, e)) {
+ for (i=0; i<RARRAY(ary)->len; i++) {
+ if (rb_equal(RARRAY(ary)->ptr[i], item)) {
return Qtrue;
}
}
@@ -5084,3263 +1225,261 @@ rb_ary_includes_by_eql(VALUE ary, VALUE item)
}
static VALUE
-recursive_cmp(VALUE ary1, VALUE ary2, int recur)
+rb_ary_cmp(ary, ary2)
+ VALUE ary;
+ VALUE ary2;
{
long i, len;
- if (recur) return Qundef; /* Subtle! */
- len = RARRAY_LEN(ary1);
- if (len > RARRAY_LEN(ary2)) {
- len = RARRAY_LEN(ary2);
+ ary2 = to_ary(ary2);
+ len = RARRAY(ary)->len;
+ if (len > RARRAY(ary2)->len) {
+ len = RARRAY(ary2)->len;
}
for (i=0; i<len; i++) {
- VALUE e1 = rb_ary_elt(ary1, i), e2 = rb_ary_elt(ary2, i);
- VALUE v = rb_funcallv(e1, id_cmp, 1, &e2);
+ VALUE v = rb_funcall(RARRAY(ary)->ptr[i],cmp,1,RARRAY(ary2)->ptr[i]);
if (v != INT2FIX(0)) {
return v;
}
}
- return Qundef;
-}
-
-/*
- * call-seq:
- * array <=> other_array -> -1, 0, or 1
- *
- * Returns -1, 0, or 1 as +self+ is less than, equal to, or greater than +other_array+.
- * For each index +i+ in +self+, evaluates <tt>result = self[i] <=> other_array[i]</tt>.
- *
- * Returns -1 if any result is -1:
- * [0, 1, 2] <=> [0, 1, 3] # => -1
- *
- * Returns 1 if any result is 1:
- * [0, 1, 2] <=> [0, 1, 1] # => 1
- *
- * When all results are zero:
- * - Returns -1 if +array+ is smaller than +other_array+:
- * [0, 1, 2] <=> [0, 1, 2, 3] # => -1
- * - Returns 1 if +array+ is larger than +other_array+:
- * [0, 1, 2] <=> [0, 1] # => 1
- * - Returns 0 if +array+ and +other_array+ are the same size:
- * [0, 1, 2] <=> [0, 1, 2] # => 0
- */
-
-VALUE
-rb_ary_cmp(VALUE ary1, VALUE ary2)
-{
- long len;
- VALUE v;
-
- ary2 = rb_check_array_type(ary2);
- if (NIL_P(ary2)) return Qnil;
- if (ary1 == ary2) return INT2FIX(0);
- v = rb_exec_recursive_paired(recursive_cmp, ary1, ary2, ary2);
- if (v != Qundef) return v;
- len = RARRAY_LEN(ary1) - RARRAY_LEN(ary2);
+ len = RARRAY(ary)->len - RARRAY(ary2)->len;
if (len == 0) return INT2FIX(0);
if (len > 0) return INT2FIX(1);
return INT2FIX(-1);
}
static VALUE
-ary_add_hash(VALUE hash, VALUE ary)
-{
- long i;
-
- for (i=0; i<RARRAY_LEN(ary); i++) {
- VALUE elt = RARRAY_AREF(ary, i);
- rb_hash_add_new_element(hash, elt, elt);
- }
- return hash;
-}
-
-static inline VALUE
-ary_tmp_hash_new(VALUE ary)
-{
- long size = RARRAY_LEN(ary);
- VALUE hash = rb_hash_new_with_size(size);
-
- RBASIC_CLEAR_CLASS(hash);
- return hash;
-}
-
-static VALUE
-ary_make_hash(VALUE ary)
-{
- VALUE hash = ary_tmp_hash_new(ary);
- return ary_add_hash(hash, ary);
-}
-
-static VALUE
-ary_add_hash_by(VALUE hash, VALUE ary)
-{
- long i;
-
- for (i = 0; i < RARRAY_LEN(ary); ++i) {
- VALUE v = rb_ary_elt(ary, i), k = rb_yield(v);
- rb_hash_add_new_element(hash, k, v);
- }
- return hash;
-}
-
-static VALUE
-ary_make_hash_by(VALUE ary)
-{
- VALUE hash = ary_tmp_hash_new(ary);
- return ary_add_hash_by(hash, ary);
-}
-
-static inline void
-ary_recycle_hash(VALUE hash)
-{
- assert(RBASIC_CLASS(hash) == 0);
- if (RHASH_ST_TABLE_P(hash)) {
- st_table *tbl = RHASH_ST_TABLE(hash);
- st_free_table(tbl);
- RHASH_ST_CLEAR(hash);
- }
-}
-
-/*
- * call-seq:
- * array - other_array -> new_array
- *
- * Returns a new \Array containing only those elements from +array+
- * that are not found in \Array +other_array+;
- * items are compared using <tt>eql?</tt>;
- * the order from +array+ is preserved:
- * [0, 1, 1, 2, 1, 1, 3, 1, 1] - [1] # => [0, 2, 3]
- * [0, 1, 2, 3] - [3, 0] # => [1, 2]
- * [0, 1, 2] - [4] # => [0, 1, 2]
- *
- * Related: Array#difference.
- */
-
-static VALUE
-rb_ary_diff(VALUE ary1, VALUE ary2)
+rb_ary_diff(ary1, ary2)
+ VALUE ary1, ary2;
{
VALUE ary3;
- VALUE hash;
long i;
ary2 = to_ary(ary2);
- if (RARRAY_LEN(ary2) == 0) { return ary_make_shared_copy(ary1); }
ary3 = rb_ary_new();
-
- if (RARRAY_LEN(ary1) <= SMALL_ARRAY_LEN || RARRAY_LEN(ary2) <= SMALL_ARRAY_LEN) {
- for (i=0; i<RARRAY_LEN(ary1); i++) {
- VALUE elt = rb_ary_elt(ary1, i);
- if (rb_ary_includes_by_eql(ary2, elt)) continue;
- rb_ary_push(ary3, elt);
- }
- return ary3;
+ for (i=0; i<RARRAY(ary1)->len; i++) {
+ if (rb_ary_includes(ary2, RARRAY(ary1)->ptr[i])) continue;
+ if (rb_ary_includes(ary3, RARRAY(ary1)->ptr[i])) continue;
+ rb_ary_push(ary3, RARRAY(ary1)->ptr[i]);
}
-
- hash = ary_make_hash(ary2);
- for (i=0; i<RARRAY_LEN(ary1); i++) {
- if (rb_hash_stlike_lookup(hash, RARRAY_AREF(ary1, i), NULL)) continue;
- rb_ary_push(ary3, rb_ary_elt(ary1, i));
- }
- ary_recycle_hash(hash);
return ary3;
}
-/*
- * call-seq:
- * array.difference(*other_arrays) -> new_array
- *
- * Returns a new \Array containing only those elements from +self+
- * that are not found in any of the Arrays +other_arrays+;
- * items are compared using <tt>eql?</tt>; order from +self+ is preserved:
- * [0, 1, 1, 2, 1, 1, 3, 1, 1].difference([1]) # => [0, 2, 3]
- * [0, 1, 2, 3].difference([3, 0], [1, 3]) # => [2]
- * [0, 1, 2].difference([4]) # => [0, 1, 2]
- *
- * Returns a copy of +self+ if no arguments given.
- *
- * Related: Array#-.
- */
-
-static VALUE
-rb_ary_difference_multi(int argc, VALUE *argv, VALUE ary)
-{
- VALUE ary_diff;
- long i, length;
- volatile VALUE t0;
- bool *is_hash = ALLOCV_N(bool, t0, argc);
- ary_diff = rb_ary_new();
- length = RARRAY_LEN(ary);
-
- for (i = 0; i < argc; i++) {
- argv[i] = to_ary(argv[i]);
- is_hash[i] = (length > SMALL_ARRAY_LEN && RARRAY_LEN(argv[i]) > SMALL_ARRAY_LEN);
- if (is_hash[i]) argv[i] = ary_make_hash(argv[i]);
- }
-
- for (i = 0; i < RARRAY_LEN(ary); i++) {
- int j;
- VALUE elt = rb_ary_elt(ary, i);
- for (j = 0; j < argc; j++) {
- if (is_hash[j]) {
- if (rb_hash_stlike_lookup(argv[j], RARRAY_AREF(ary, i), NULL))
- break;
- }
- else {
- if (rb_ary_includes_by_eql(argv[j], elt)) break;
- }
- }
- if (j == argc) rb_ary_push(ary_diff, elt);
- }
-
- ALLOCV_END(t0);
-
- return ary_diff;
-}
-
-
-/*
- * call-seq:
- * array & other_array -> new_array
- *
- * Returns a new \Array containing each element found in both +array+ and \Array +other_array+;
- * duplicates are omitted; items are compared using <tt>eql?</tt>:
- * [0, 1, 2, 3] & [1, 2] # => [1, 2]
- * [0, 1, 0, 1] & [0, 1] # => [0, 1]
- *
- * Preserves order from +array+:
- * [0, 1, 2] & [3, 2, 1, 0] # => [0, 1, 2]
- *
- * Related: Array#intersection.
- */
-
-
static VALUE
-rb_ary_and(VALUE ary1, VALUE ary2)
+rb_ary_and(ary1, ary2)
+ VALUE ary1, ary2;
{
- VALUE hash, ary3, v;
- st_data_t vv;
+ VALUE ary3;
long i;
ary2 = to_ary(ary2);
ary3 = rb_ary_new();
- if (RARRAY_LEN(ary1) == 0 || RARRAY_LEN(ary2) == 0) return ary3;
-
- if (RARRAY_LEN(ary1) <= SMALL_ARRAY_LEN && RARRAY_LEN(ary2) <= SMALL_ARRAY_LEN) {
- for (i=0; i<RARRAY_LEN(ary1); i++) {
- v = RARRAY_AREF(ary1, i);
- if (!rb_ary_includes_by_eql(ary2, v)) continue;
- if (rb_ary_includes_by_eql(ary3, v)) continue;
- rb_ary_push(ary3, v);
+ for (i=0; i<RARRAY(ary1)->len; i++) {
+ if (rb_ary_includes(ary2, RARRAY(ary1)->ptr[i])
+ && !rb_ary_includes(ary3, RARRAY(ary1)->ptr[i])) {
+ rb_ary_push(ary3, RARRAY(ary1)->ptr[i]);
}
- return ary3;
}
-
- hash = ary_make_hash(ary2);
-
- for (i=0; i<RARRAY_LEN(ary1); i++) {
- v = RARRAY_AREF(ary1, i);
- vv = (st_data_t)v;
- if (rb_hash_stlike_delete(hash, &vv, 0)) {
- rb_ary_push(ary3, v);
- }
- }
- ary_recycle_hash(hash);
-
return ary3;
}
-/*
- * call-seq:
- * array.intersection(*other_arrays) -> new_array
- *
- * Returns a new \Array containing each element found both in +self+
- * and in all of the given Arrays +other_arrays+;
- * duplicates are omitted; items are compared using <tt>eql?</tt>:
- * [0, 1, 2, 3].intersection([0, 1, 2], [0, 1, 3]) # => [0, 1]
- * [0, 0, 1, 1, 2, 3].intersection([0, 1, 2], [0, 1, 3]) # => [0, 1]
- *
- * Preserves order from +self+:
- * [0, 1, 2].intersection([2, 1, 0]) # => [0, 1, 2]
- *
- * Returns a copy of +self+ if no arguments given.
- *
- * Related: Array#&.
- */
-
-static VALUE
-rb_ary_intersection_multi(int argc, VALUE *argv, VALUE ary)
-{
- VALUE result = rb_ary_dup(ary);
- int i;
-
- for (i = 0; i < argc; i++) {
- result = rb_ary_and(result, argv[i]);
- }
-
- return result;
-}
-
-static int
-ary_hash_orset(st_data_t *key, st_data_t *value, st_data_t arg, int existing)
-{
- if (existing) return ST_STOP;
- *key = *value = (VALUE)arg;
- return ST_CONTINUE;
-}
-
-static void
-rb_ary_union(VALUE ary_union, VALUE ary)
-{
- long i;
- for (i = 0; i < RARRAY_LEN(ary); i++) {
- VALUE elt = rb_ary_elt(ary, i);
- if (rb_ary_includes_by_eql(ary_union, elt)) continue;
- rb_ary_push(ary_union, elt);
- }
-}
-
-static void
-rb_ary_union_hash(VALUE hash, VALUE ary2)
-{
- long i;
- for (i = 0; i < RARRAY_LEN(ary2); i++) {
- VALUE elt = RARRAY_AREF(ary2, i);
- if (!rb_hash_stlike_update(hash, (st_data_t)elt, ary_hash_orset, (st_data_t)elt)) {
- RB_OBJ_WRITTEN(hash, Qundef, elt);
- }
- }
-}
-
-/*
- * call-seq:
- * array | other_array -> new_array
- *
- * Returns the union of +array+ and \Array +other_array+;
- * duplicates are removed; order is preserved;
- * items are compared using <tt>eql?</tt>:
- * [0, 1] | [2, 3] # => [0, 1, 2, 3]
- * [0, 1, 1] | [2, 2, 3] # => [0, 1, 2, 3]
- * [0, 1, 2] | [3, 2, 1, 0] # => [0, 1, 2, 3]
- *
- * Related: Array#union.
- */
-
-static VALUE
-rb_ary_or(VALUE ary1, VALUE ary2)
-{
- VALUE hash, ary3;
-
- ary2 = to_ary(ary2);
- if (RARRAY_LEN(ary1) + RARRAY_LEN(ary2) <= SMALL_ARRAY_LEN) {
- ary3 = rb_ary_new();
- rb_ary_union(ary3, ary1);
- rb_ary_union(ary3, ary2);
- return ary3;
- }
-
- hash = ary_make_hash(ary1);
- rb_ary_union_hash(hash, ary2);
-
- ary3 = rb_hash_values(hash);
- ary_recycle_hash(hash);
- return ary3;
-}
-
-/*
- * call-seq:
- * array.union(*other_arrays) -> new_array
- *
- * Returns a new \Array that is the union of +self+ and all given Arrays +other_arrays+;
- * duplicates are removed; order is preserved; items are compared using <tt>eql?</tt>:
- * [0, 1, 2, 3].union([4, 5], [6, 7]) # => [0, 1, 2, 3, 4, 5, 6, 7]
- * [0, 1, 1].union([2, 1], [3, 1]) # => [0, 1, 2, 3]
- * [0, 1, 2, 3].union([3, 2], [1, 0]) # => [0, 1, 2, 3]
- *
- * Returns a copy of +self+ if no arguments given.
- *
- * Related: Array#|.
- */
-
-static VALUE
-rb_ary_union_multi(int argc, VALUE *argv, VALUE ary)
-{
- int i;
- long sum;
- VALUE hash, ary_union;
-
- sum = RARRAY_LEN(ary);
- for (i = 0; i < argc; i++) {
- argv[i] = to_ary(argv[i]);
- sum += RARRAY_LEN(argv[i]);
- }
-
- if (sum <= SMALL_ARRAY_LEN) {
- ary_union = rb_ary_new();
-
- rb_ary_union(ary_union, ary);
- for (i = 0; i < argc; i++) rb_ary_union(ary_union, argv[i]);
-
- return ary_union;
- }
-
- hash = ary_make_hash(ary);
- for (i = 0; i < argc; i++) rb_ary_union_hash(hash, argv[i]);
-
- ary_union = rb_hash_values(hash);
- ary_recycle_hash(hash);
- return ary_union;
-}
-
-/*
- * call-seq:
- * ary.intersect?(other_ary) -> true or false
- *
- * Returns +true+ if the array and +other_ary+ have at least one element in
- * common, otherwise returns +false+.
- *
- * a = [ 1, 2, 3 ]
- * b = [ 3, 4, 5 ]
- * c = [ 5, 6, 7 ]
- * a.intersect?(b) #=> true
- * a.intersect?(c) #=> false
- */
-
static VALUE
-rb_ary_intersect_p(VALUE ary1, VALUE ary2)
+rb_ary_or(ary1, ary2)
+ VALUE ary1, ary2;
{
- VALUE hash, v, result, shorter, longer;
- st_data_t vv;
+ VALUE ary3;
long i;
- ary2 = to_ary(ary2);
- if (RARRAY_LEN(ary1) == 0 || RARRAY_LEN(ary2) == 0) return Qfalse;
-
- if (RARRAY_LEN(ary1) <= SMALL_ARRAY_LEN && RARRAY_LEN(ary2) <= SMALL_ARRAY_LEN) {
- for (i=0; i<RARRAY_LEN(ary1); i++) {
- v = RARRAY_AREF(ary1, i);
- if (rb_ary_includes_by_eql(ary2, v)) return Qtrue;
- }
- return Qfalse;
- }
-
- shorter = ary1;
- longer = ary2;
- if (RARRAY_LEN(ary1) > RARRAY_LEN(ary2)) {
- longer = ary1;
- shorter = ary2;
- }
-
- hash = ary_make_hash(shorter);
- result = Qfalse;
-
- for (i=0; i<RARRAY_LEN(longer); i++) {
- v = RARRAY_AREF(longer, i);
- vv = (st_data_t)v;
- if (rb_hash_stlike_lookup(hash, vv, 0)) {
- result = Qtrue;
- break;
- }
- }
- ary_recycle_hash(hash);
-
- return result;
-}
-
-static VALUE
-ary_max_generic(VALUE ary, long i, VALUE vmax)
-{
- RUBY_ASSERT(i > 0 && i < RARRAY_LEN(ary));
-
- VALUE v;
- for (; i < RARRAY_LEN(ary); ++i) {
- v = RARRAY_AREF(ary, i);
-
- if (rb_cmpint(rb_funcallv(vmax, id_cmp, 1, &v), vmax, v) < 0) {
- vmax = v;
- }
+ if (TYPE(ary2) != T_ARRAY) {
+ if (rb_ary_includes(ary1, ary2)) return ary1;
+ else return rb_ary_plus(ary1, ary2);
}
- return vmax;
-}
-
-static VALUE
-ary_max_opt_fixnum(VALUE ary, long i, VALUE vmax)
-{
- const long n = RARRAY_LEN(ary);
- RUBY_ASSERT(i > 0 && i < n);
- RUBY_ASSERT(FIXNUM_P(vmax));
-
- VALUE v;
- for (; i < n; ++i) {
- v = RARRAY_AREF(ary, i);
-
- if (FIXNUM_P(v)) {
- if ((long)vmax < (long)v) {
- vmax = v;
- }
- }
- else {
- return ary_max_generic(ary, i, vmax);
- }
- }
-
- return vmax;
-}
-
-static VALUE
-ary_max_opt_float(VALUE ary, long i, VALUE vmax)
-{
- const long n = RARRAY_LEN(ary);
- RUBY_ASSERT(i > 0 && i < n);
- RUBY_ASSERT(RB_FLOAT_TYPE_P(vmax));
-
- VALUE v;
- for (; i < n; ++i) {
- v = RARRAY_AREF(ary, i);
-
- if (RB_FLOAT_TYPE_P(v)) {
- if (rb_float_cmp(vmax, v) < 0) {
- vmax = v;
- }
- }
- else {
- return ary_max_generic(ary, i, vmax);
- }
- }
-
- return vmax;
-}
-
-static VALUE
-ary_max_opt_string(VALUE ary, long i, VALUE vmax)
-{
- const long n = RARRAY_LEN(ary);
- RUBY_ASSERT(i > 0 && i < n);
- RUBY_ASSERT(STRING_P(vmax));
-
- VALUE v;
- for (; i < n; ++i) {
- v = RARRAY_AREF(ary, i);
-
- if (STRING_P(v)) {
- if (rb_str_cmp(vmax, v) < 0) {
- vmax = v;
- }
- }
- else {
- return ary_max_generic(ary, i, vmax);
- }
- }
-
- return vmax;
-}
-
-/*
- * call-seq:
- * array.max -> element
- * array.max {|a, b| ... } -> element
- * array.max(n) -> new_array
- * array.max(n) {|a, b| ... } -> new_array
- *
- * Returns one of the following:
- * - The maximum-valued element from +self+.
- * - A new \Array of maximum-valued elements selected from +self+.
- *
- * When no block is given, each element in +self+ must respond to method <tt><=></tt>
- * with an \Integer.
- *
- * With no argument and no block, returns the element in +self+
- * having the maximum value per method <tt><=></tt>:
- * [0, 1, 2].max # => 2
- *
- * With an argument \Integer +n+ and no block, returns a new \Array with at most +n+ elements,
- * in descending order per method <tt><=></tt>:
- * [0, 1, 2, 3].max(3) # => [3, 2, 1]
- * [0, 1, 2, 3].max(6) # => [3, 2, 1, 0]
- *
- * When a block is given, the block must return an \Integer.
- *
- * With a block and no argument, calls the block <tt>self.size-1</tt> times to compare elements;
- * returns the element having the maximum value per the block:
- * ['0', '00', '000'].max {|a, b| a.size <=> b.size } # => "000"
- *
- * With an argument +n+ and a block, returns a new \Array with at most +n+ elements,
- * in descending order per the block:
- * ['0', '00', '000'].max(2) {|a, b| a.size <=> b.size } # => ["000", "00"]
- */
-static VALUE
-rb_ary_max(int argc, VALUE *argv, VALUE ary)
-{
- struct cmp_opt_data cmp_opt = { 0, 0 };
- VALUE result = Qundef, v;
- VALUE num;
- long i;
-
- if (rb_check_arity(argc, 0, 1) && !NIL_P(num = argv[0]))
- return rb_nmin_run(ary, num, 0, 1, 1);
-
- const long n = RARRAY_LEN(ary);
- if (rb_block_given_p()) {
- for (i = 0; i < RARRAY_LEN(ary); i++) {
- v = RARRAY_AREF(ary, i);
- if (result == Qundef || rb_cmpint(rb_yield_values(2, v, result), v, result) > 0) {
- result = v;
- }
- }
+ ary3 = rb_ary_new();
+ for (i=0; i<RARRAY(ary1)->len; i++) {
+ if (!rb_ary_includes(ary3, RARRAY(ary1)->ptr[i]))
+ rb_ary_push(ary3, RARRAY(ary1)->ptr[i]);
}
- else if (n > 0) {
- result = RARRAY_AREF(ary, 0);
- if (n > 1) {
- if (FIXNUM_P(result) && CMP_OPTIMIZABLE(cmp_opt, Integer)) {
- return ary_max_opt_fixnum(ary, 1, result);
- }
- else if (STRING_P(result) && CMP_OPTIMIZABLE(cmp_opt, String)) {
- return ary_max_opt_string(ary, 1, result);
- }
- else if (RB_FLOAT_TYPE_P(result) && CMP_OPTIMIZABLE(cmp_opt, Float)) {
- return ary_max_opt_float(ary, 1, result);
- }
- else {
- return ary_max_generic(ary, 1, result);
- }
- }
+ for (i=0; i<RARRAY(ary2)->len; i++) {
+ if (!rb_ary_includes(ary3, RARRAY(ary2)->ptr[i]))
+ rb_ary_push(ary3, RARRAY(ary2)->ptr[i]);
}
- if (result == Qundef) return Qnil;
- return result;
+ return ary3;
}
static VALUE
-ary_min_generic(VALUE ary, long i, VALUE vmin)
+rb_ary_uniq_bang(ary)
+ VALUE ary;
{
- RUBY_ASSERT(i > 0 && i < RARRAY_LEN(ary));
-
+ VALUE *p, *q, *t, *end;
VALUE v;
- for (; i < RARRAY_LEN(ary); ++i) {
- v = RARRAY_AREF(ary, i);
-
- if (rb_cmpint(rb_funcallv(vmin, id_cmp, 1, &v), vmin, v) > 0) {
- vmin = v;
- }
- }
-
- return vmin;
-}
-
-static VALUE
-ary_min_opt_fixnum(VALUE ary, long i, VALUE vmin)
-{
- const long n = RARRAY_LEN(ary);
- RUBY_ASSERT(i > 0 && i < n);
- RUBY_ASSERT(FIXNUM_P(vmin));
-
- VALUE a;
- for (; i < n; ++i) {
- a = RARRAY_AREF(ary, i);
-
- if (FIXNUM_P(a)) {
- if ((long)vmin > (long)a) {
- vmin = a;
- }
- }
- else {
- return ary_min_generic(ary, i, vmin);
- }
- }
-
- return vmin;
-}
-
-static VALUE
-ary_min_opt_float(VALUE ary, long i, VALUE vmin)
-{
- const long n = RARRAY_LEN(ary);
- RUBY_ASSERT(i > 0 && i < n);
- RUBY_ASSERT(RB_FLOAT_TYPE_P(vmin));
-
- VALUE a;
- for (; i < n; ++i) {
- a = RARRAY_AREF(ary, i);
-
- if (RB_FLOAT_TYPE_P(a)) {
- if (rb_float_cmp(vmin, a) > 0) {
- vmin = a;
- }
- }
- else {
- return ary_min_generic(ary, i, vmin);
- }
- }
-
- return vmin;
-}
-static VALUE
-ary_min_opt_string(VALUE ary, long i, VALUE vmin)
-{
- const long n = RARRAY_LEN(ary);
- RUBY_ASSERT(i > 0 && i < n);
- RUBY_ASSERT(STRING_P(vmin));
-
- VALUE a;
- for (; i < n; ++i) {
- a = RARRAY_AREF(ary, i);
-
- if (STRING_P(a)) {
- if (rb_str_cmp(vmin, a) > 0) {
- vmin = a;
- }
- }
- else {
- return ary_min_generic(ary, i, vmin);
- }
- }
-
- return vmin;
-}
-
-/*
- * call-seq:
- * array.min -> element
- * array.min { |a, b| ... } -> element
- * array.min(n) -> new_array
- * array.min(n) { |a, b| ... } -> new_array
- *
- * Returns one of the following:
- * - The minimum-valued element from +self+.
- * - A new \Array of minimum-valued elements selected from +self+.
- *
- * When no block is given, each element in +self+ must respond to method <tt><=></tt>
- * with an \Integer.
- *
- * With no argument and no block, returns the element in +self+
- * having the minimum value per method <tt><=></tt>:
- * [0, 1, 2].min # => 0
- *
- * With \Integer argument +n+ and no block, returns a new \Array with at most +n+ elements,
- * in ascending order per method <tt><=></tt>:
- * [0, 1, 2, 3].min(3) # => [0, 1, 2]
- * [0, 1, 2, 3].min(6) # => [0, 1, 2, 3]
- *
- * When a block is given, the block must return an Integer.
- *
- * With a block and no argument, calls the block <tt>self.size-1</tt> times to compare elements;
- * returns the element having the minimum value per the block:
- * ['0', '00', '000'].min { |a, b| a.size <=> b.size } # => "0"
- *
- * With an argument +n+ and a block, returns a new \Array with at most +n+ elements,
- * in ascending order per the block:
- * ['0', '00', '000'].min(2) {|a, b| a.size <=> b.size } # => ["0", "00"]
- */
-static VALUE
-rb_ary_min(int argc, VALUE *argv, VALUE ary)
-{
- struct cmp_opt_data cmp_opt = { 0, 0 };
- VALUE result = Qundef, v;
- VALUE num;
- long i;
-
- if (rb_check_arity(argc, 0, 1) && !NIL_P(num = argv[0]))
- return rb_nmin_run(ary, num, 0, 0, 1);
+ rb_ary_modify(ary);
+ p = RARRAY(ary)->ptr;
+ end = p + RARRAY(ary)->len;
- const long n = RARRAY_LEN(ary);
- if (rb_block_given_p()) {
- for (i = 0; i < RARRAY_LEN(ary); i++) {
- v = RARRAY_AREF(ary, i);
- if (result == Qundef || rb_cmpint(rb_yield_values(2, v, result), v, result) < 0) {
- result = v;
- }
+ while (p < end) {
+ v = *p++;
+ q = t = p;
+ while (q < end) {
+ if (rb_equal(*q, v)) q++;
+ else *t++ = *q++;
}
+ end = t;
}
- else if (n > 0) {
- result = RARRAY_AREF(ary, 0);
- if (n > 1) {
- if (FIXNUM_P(result) && CMP_OPTIMIZABLE(cmp_opt, Integer)) {
- return ary_min_opt_fixnum(ary, 1, result);
- }
- else if (STRING_P(result) && CMP_OPTIMIZABLE(cmp_opt, String)) {
- return ary_min_opt_string(ary, 1, result);
- }
- else if (RB_FLOAT_TYPE_P(result) && CMP_OPTIMIZABLE(cmp_opt, Float)) {
- return ary_min_opt_float(ary, 1, result);
- }
- else {
- return ary_min_generic(ary, 1, result);
- }
- }
- }
- if (result == Qundef) return Qnil;
- return result;
-}
-
-/*
- * call-seq:
- * array.minmax -> [min_val, max_val]
- * array.minmax {|a, b| ... } -> [min_val, max_val]
- *
- * Returns a new 2-element \Array containing the minimum and maximum values
- * from +self+, either per method <tt><=></tt> or per a given block:.
- *
- * When no block is given, each element in +self+ must respond to method <tt><=></tt>
- * with an \Integer;
- * returns a new 2-element \Array containing the minimum and maximum values
- * from +self+, per method <tt><=></tt>:
- * [0, 1, 2].minmax # => [0, 2]
- *
- * When a block is given, the block must return an \Integer;
- * the block is called <tt>self.size-1</tt> times to compare elements;
- * returns a new 2-element \Array containing the minimum and maximum values
- * from +self+, per the block:
- * ['0', '00', '000'].minmax {|a, b| a.size <=> b.size } # => ["0", "000"]
- */
-static VALUE
-rb_ary_minmax(VALUE ary)
-{
- if (rb_block_given_p()) {
- return rb_call_super(0, NULL);
- }
- return rb_assoc_new(rb_ary_min(0, 0, ary), rb_ary_max(0, 0, ary));
-}
-
-static int
-push_value(st_data_t key, st_data_t val, st_data_t ary)
-{
- rb_ary_push((VALUE)ary, (VALUE)val);
- return ST_CONTINUE;
-}
-
-/*
- * call-seq:
- * array.uniq! -> self or nil
- * array.uniq! {|element| ... } -> self or nil
- *
- * Removes duplicate elements from +self+, the first occurrence always being retained;
- * returns +self+ if any elements removed, +nil+ otherwise.
- *
- * With no block given, identifies and removes elements using method <tt>eql?</tt>
- * to compare.
- *
- * Returns +self+ if any elements removed:
- * a = [0, 0, 1, 1, 2, 2]
- * a.uniq! # => [0, 1, 2]
- *
- * Returns +nil+ if no elements removed.
- *
- * With a block given, calls the block for each element;
- * identifies (using method <tt>eql?</tt>) and removes
- * elements for which the block returns duplicate values.
- *
- * Returns +self+ if any elements removed:
- * a = ['a', 'aa', 'aaa', 'b', 'bb', 'bbb']
- * a.uniq! {|element| element.size } # => ['a', 'aa', 'aaa']
- *
- * Returns +nil+ if no elements removed.
- */
-static VALUE
-rb_ary_uniq_bang(VALUE ary)
-{
- VALUE hash;
- long hash_size;
-
- rb_ary_modify_check(ary);
- if (RARRAY_LEN(ary) <= 1)
- return Qnil;
- if (rb_block_given_p())
- hash = ary_make_hash_by(ary);
- else
- hash = ary_make_hash(ary);
-
- hash_size = RHASH_SIZE(hash);
- if (RARRAY_LEN(ary) == hash_size) {
+ if (RARRAY(ary)->len == (end - RARRAY(ary)->ptr)) {
return Qnil;
}
- rb_ary_modify_check(ary);
- ARY_SET_LEN(ary, 0);
- if (ARY_SHARED_P(ary) && !ARY_EMBED_P(ary)) {
- rb_ary_unshare(ary);
- FL_SET_EMBED(ary);
- }
- ary_resize_capa(ary, hash_size);
- rb_hash_foreach(hash, push_value, ary);
- ary_recycle_hash(hash);
+
+ RARRAY(ary)->len = (end - RARRAY(ary)->ptr);
return ary;
}
-/*
- * call-seq:
- * array.uniq -> new_array
- * array.uniq {|element| ... } -> new_array
- *
- * Returns a new \Array containing those elements from +self+ that are not duplicates,
- * the first occurrence always being retained.
- *
- * With no block given, identifies and omits duplicates using method <tt>eql?</tt>
- * to compare.
- * a = [0, 0, 1, 1, 2, 2]
- * a.uniq # => [0, 1, 2]
- *
- * With a block given, calls the block for each element;
- * identifies (using method <tt>eql?</tt>) and omits duplicate values,
- * that is, those elements for which the block returns the same value:
- * a = ['a', 'aa', 'aaa', 'b', 'bb', 'bbb']
- * a.uniq {|element| element.size } # => ["a", "aa", "aaa"]
- */
-
static VALUE
-rb_ary_uniq(VALUE ary)
+rb_ary_uniq(ary)
+ VALUE ary;
{
- VALUE hash, uniq;
-
- if (RARRAY_LEN(ary) <= 1) {
- hash = 0;
- uniq = rb_ary_dup(ary);
- }
- else if (rb_block_given_p()) {
- hash = ary_make_hash_by(ary);
- uniq = rb_hash_values(hash);
- }
- else {
- hash = ary_make_hash(ary);
- uniq = rb_hash_values(hash);
- }
- if (hash) {
- ary_recycle_hash(hash);
- }
+ VALUE v = rb_ary_uniq_bang(rb_ary_dup(ary));
- return uniq;
+ if (NIL_P(v)) return ary;
+ return v;
}
-/*
- * call-seq:
- * array.compact! -> self or nil
- *
- * Removes all +nil+ elements from +self+.
- *
- * Returns +self+ if any elements removed, otherwise +nil+.
- */
-
static VALUE
-rb_ary_compact_bang(VALUE ary)
+rb_ary_compact_bang(ary)
+ VALUE ary;
{
VALUE *p, *t, *end;
- long n;
rb_ary_modify(ary);
- p = t = (VALUE *)RARRAY_CONST_PTR_TRANSIENT(ary); /* WB: no new reference */
- end = p + RARRAY_LEN(ary);
-
+ p = t = RARRAY(ary)->ptr;
+ end = p + RARRAY(ary)->len;
while (t < end) {
if (NIL_P(*t)) t++;
else *p++ = *t++;
}
- n = p - RARRAY_CONST_PTR_TRANSIENT(ary);
- if (RARRAY_LEN(ary) == n) {
- return Qnil;
- }
- ary_resize_smaller(ary, n);
-
- return ary;
-}
-
-/*
- * call-seq:
- * array.compact -> new_array
- *
- * Returns a new \Array containing all non-+nil+ elements from +self+:
- * a = [nil, 0, nil, 1, nil, 2, nil]
- * a.compact # => [0, 1, 2]
- */
-
-static VALUE
-rb_ary_compact(VALUE ary)
-{
- ary = rb_ary_dup(ary);
- rb_ary_compact_bang(ary);
- return ary;
-}
-
-/*
- * call-seq:
- * array.count -> an_integer
- * array.count(obj) -> an_integer
- * array.count {|element| ... } -> an_integer
- *
- * Returns a count of specified elements.
- *
- * With no argument and no block, returns the count of all elements:
- * [0, 1, 2].count # => 3
- * [].count # => 0
- *
- * With argument +obj+, returns the count of elements <tt>==</tt> to +obj+:
- * [0, 1, 2, 0.0].count(0) # => 2
- * [0, 1, 2].count(3) # => 0
- *
- * With no argument and a block given, calls the block with each element;
- * returns the count of elements for which the block returns a truthy value:
- * [0, 1, 2, 3].count {|element| element > 1} # => 2
- *
- * With argument +obj+ and a block given, issues a warning, ignores the block,
- * and returns the count of elements <tt>==</tt> to +obj+:
- */
-
-static VALUE
-rb_ary_count(int argc, VALUE *argv, VALUE ary)
-{
- long i, n = 0;
-
- if (rb_check_arity(argc, 0, 1) == 0) {
- VALUE v;
-
- if (!rb_block_given_p())
- return LONG2NUM(RARRAY_LEN(ary));
-
- for (i = 0; i < RARRAY_LEN(ary); i++) {
- v = RARRAY_AREF(ary, i);
- if (RTEST(rb_yield(v))) n++;
- }
- }
- else {
- VALUE obj = argv[0];
-
- if (rb_block_given_p()) {
- rb_warn("given block not used");
- }
- for (i = 0; i < RARRAY_LEN(ary); i++) {
- if (rb_equal(RARRAY_AREF(ary, i), obj)) n++;
- }
- }
-
- return LONG2NUM(n);
-}
-
-static VALUE
-flatten(VALUE ary, int level)
-{
- long i;
- VALUE stack, result, tmp = 0, elt, vmemo;
- st_table *memo = 0;
- st_data_t id;
-
- for (i = 0; i < RARRAY_LEN(ary); i++) {
- elt = RARRAY_AREF(ary, i);
- tmp = rb_check_array_type(elt);
- if (!NIL_P(tmp)) {
- break;
- }
- }
- if (i == RARRAY_LEN(ary)) {
- return ary;
- }
-
- result = ary_new(0, RARRAY_LEN(ary));
- ary_memcpy(result, 0, i, RARRAY_CONST_PTR_TRANSIENT(ary));
- ARY_SET_LEN(result, i);
-
- stack = ary_new(0, ARY_DEFAULT_SIZE);
- rb_ary_push(stack, ary);
- rb_ary_push(stack, LONG2NUM(i + 1));
-
- if (level < 0) {
- vmemo = rb_hash_new();
- RBASIC_CLEAR_CLASS(vmemo);
- memo = st_init_numtable();
- rb_hash_st_table_set(vmemo, memo);
- st_insert(memo, (st_data_t)ary, (st_data_t)Qtrue);
- st_insert(memo, (st_data_t)tmp, (st_data_t)Qtrue);
- }
-
- ary = tmp;
- i = 0;
-
- while (1) {
- while (i < RARRAY_LEN(ary)) {
- elt = RARRAY_AREF(ary, i++);
- if (level >= 0 && RARRAY_LEN(stack) / 2 >= level) {
- rb_ary_push(result, elt);
- continue;
- }
- tmp = rb_check_array_type(elt);
- if (RBASIC(result)->klass) {
- if (memo) {
- RB_GC_GUARD(vmemo);
- st_clear(memo);
- }
- rb_raise(rb_eRuntimeError, "flatten reentered");
- }
- if (NIL_P(tmp)) {
- rb_ary_push(result, elt);
- }
- else {
- if (memo) {
- id = (st_data_t)tmp;
- if (st_is_member(memo, id)) {
- st_clear(memo);
- rb_raise(rb_eArgError, "tried to flatten recursive array");
- }
- st_insert(memo, id, (st_data_t)Qtrue);
- }
- rb_ary_push(stack, ary);
- rb_ary_push(stack, LONG2NUM(i));
- ary = tmp;
- i = 0;
- }
- }
- if (RARRAY_LEN(stack) == 0) {
- break;
- }
- if (memo) {
- id = (st_data_t)ary;
- st_delete(memo, &id, 0);
- }
- tmp = rb_ary_pop(stack);
- i = NUM2LONG(tmp);
- ary = rb_ary_pop(stack);
- }
-
- if (memo) {
- st_clear(memo);
- }
-
- RBASIC_SET_CLASS(result, rb_cArray);
- return result;
-}
-
-/*
- * call-seq:
- * array.flatten! -> self or nil
- * array.flatten!(level) -> self or nil
- *
- * Replaces each nested \Array in +self+ with the elements from that \Array;
- * returns +self+ if any changes, +nil+ otherwise.
- *
- * With non-negative \Integer argument +level+, flattens recursively through +level+ levels:
- * a = [ 0, [ 1, [2, 3], 4 ], 5 ]
- * a.flatten!(1) # => [0, 1, [2, 3], 4, 5]
- * a = [ 0, [ 1, [2, 3], 4 ], 5 ]
- * a.flatten!(2) # => [0, 1, 2, 3, 4, 5]
- * a = [ 0, [ 1, [2, 3], 4 ], 5 ]
- * a.flatten!(3) # => [0, 1, 2, 3, 4, 5]
- * [0, 1, 2].flatten!(1) # => nil
- *
- * With no argument, a +nil+ argument, or with negative argument +level+, flattens all levels:
- * a = [ 0, [ 1, [2, 3], 4 ], 5 ]
- * a.flatten! # => [0, 1, 2, 3, 4, 5]
- * [0, 1, 2].flatten! # => nil
- * a = [ 0, [ 1, [2, 3], 4 ], 5 ]
- * a.flatten!(-1) # => [0, 1, 2, 3, 4, 5]
- * a = [ 0, [ 1, [2, 3], 4 ], 5 ]
- * a.flatten!(-2) # => [0, 1, 2, 3, 4, 5]
- * [0, 1, 2].flatten!(-1) # => nil
- */
-
-static VALUE
-rb_ary_flatten_bang(int argc, VALUE *argv, VALUE ary)
-{
- int mod = 0, level = -1;
- VALUE result, lv;
-
- lv = (rb_check_arity(argc, 0, 1) ? argv[0] : Qnil);
- rb_ary_modify_check(ary);
- if (!NIL_P(lv)) level = NUM2INT(lv);
- if (level == 0) return Qnil;
-
- result = flatten(ary, level);
- if (result == ary) {
+ if (RARRAY(ary)->len == (p - RARRAY(ary)->ptr)) {
return Qnil;
}
- if (!(mod = ARY_EMBED_P(result))) rb_obj_freeze(result);
- rb_ary_replace(ary, result);
- if (mod) ARY_SET_EMBED_LEN(result, 0);
+ RARRAY(ary)->len = RARRAY(ary)->capa = (p - RARRAY(ary)->ptr);
+ REALLOC_N(RARRAY(ary)->ptr, VALUE, RARRAY(ary)->len);
return ary;
}
-/*
- * call-seq:
- * array.flatten -> new_array
- * array.flatten(level) -> new_array
- *
- * Returns a new \Array that is a recursive flattening of +self+:
- * - Each non-Array element is unchanged.
- * - Each \Array is replaced by its individual elements.
- *
- * With non-negative \Integer argument +level+, flattens recursively through +level+ levels:
- * a = [ 0, [ 1, [2, 3], 4 ], 5 ]
- * a.flatten(0) # => [0, [1, [2, 3], 4], 5]
- * a = [ 0, [ 1, [2, 3], 4 ], 5 ]
- * a.flatten(1) # => [0, 1, [2, 3], 4, 5]
- * a = [ 0, [ 1, [2, 3], 4 ], 5 ]
- * a.flatten(2) # => [0, 1, 2, 3, 4, 5]
- * a = [ 0, [ 1, [2, 3], 4 ], 5 ]
- * a.flatten(3) # => [0, 1, 2, 3, 4, 5]
- *
- * With no argument, a +nil+ argument, or with negative argument +level+, flattens all levels:
- * a = [ 0, [ 1, [2, 3], 4 ], 5 ]
- * a.flatten # => [0, 1, 2, 3, 4, 5]
- * [0, 1, 2].flatten # => [0, 1, 2]
- * a = [ 0, [ 1, [2, 3], 4 ], 5 ]
- * a.flatten(-1) # => [0, 1, 2, 3, 4, 5]
- * a = [ 0, [ 1, [2, 3], 4 ], 5 ]
- * a.flatten(-2) # => [0, 1, 2, 3, 4, 5]
- * [0, 1, 2].flatten(-1) # => [0, 1, 2]
- */
-
-static VALUE
-rb_ary_flatten(int argc, VALUE *argv, VALUE ary)
-{
- int level = -1;
- VALUE result;
-
- if (rb_check_arity(argc, 0, 1) && !NIL_P(argv[0])) {
- level = NUM2INT(argv[0]);
- if (level == 0) return ary_make_shared_copy(ary);
- }
-
- result = flatten(ary, level);
- if (result == ary) {
- result = ary_make_shared_copy(ary);
- }
-
- return result;
-}
-
-#define RAND_UPTO(max) (long)rb_random_ulong_limited((randgen), (max)-1)
-
-static VALUE
-rb_ary_shuffle_bang(rb_execution_context_t *ec, VALUE ary, VALUE randgen)
-{
- long i, len;
-
- rb_ary_modify(ary);
- i = len = RARRAY_LEN(ary);
- RARRAY_PTR_USE(ary, ptr, {
- while (i) {
- long j = RAND_UPTO(i);
- VALUE tmp;
- if (len != RARRAY_LEN(ary) || ptr != RARRAY_CONST_PTR_TRANSIENT(ary)) {
- rb_raise(rb_eRuntimeError, "modified during shuffle");
- }
- tmp = ptr[--i];
- ptr[i] = ptr[j];
- ptr[j] = tmp;
- }
- }); /* WB: no new reference */
- return ary;
-}
-
-static VALUE
-rb_ary_shuffle(rb_execution_context_t *ec, VALUE ary, VALUE randgen)
-{
- ary = rb_ary_dup(ary);
- rb_ary_shuffle_bang(ec, ary, randgen);
- return ary;
-}
-
-static VALUE
-ary_sample(rb_execution_context_t *ec, VALUE ary, VALUE randgen, VALUE nv, VALUE to_array)
-{
- VALUE result;
- long n, len, i, j, k, idx[10];
- long rnds[numberof(idx)];
- long memo_threshold;
-
- len = RARRAY_LEN(ary);
- if (!to_array) {
- if (len < 2)
- i = 0;
- else
- i = RAND_UPTO(len);
-
- return rb_ary_elt(ary, i);
- }
- n = NUM2LONG(nv);
- if (n < 0) rb_raise(rb_eArgError, "negative sample number");
- if (n > len) n = len;
- if (n <= numberof(idx)) {
- for (i = 0; i < n; ++i) {
- rnds[i] = RAND_UPTO(len - i);
- }
- }
- k = len;
- len = RARRAY_LEN(ary);
- if (len < k && n <= numberof(idx)) {
- for (i = 0; i < n; ++i) {
- if (rnds[i] >= len) return rb_ary_new_capa(0);
- }
- }
- if (n > len) n = len;
- switch (n) {
- case 0:
- return rb_ary_new_capa(0);
- case 1:
- i = rnds[0];
- return rb_ary_new_from_args(1, RARRAY_AREF(ary, i));
- case 2:
- i = rnds[0];
- j = rnds[1];
- if (j >= i) j++;
- return rb_ary_new_from_args(2, RARRAY_AREF(ary, i), RARRAY_AREF(ary, j));
- case 3:
- i = rnds[0];
- j = rnds[1];
- k = rnds[2];
- {
- long l = j, g = i;
- if (j >= i) l = i, g = ++j;
- if (k >= l && (++k >= g)) ++k;
- }
- return rb_ary_new_from_args(3, RARRAY_AREF(ary, i), RARRAY_AREF(ary, j), RARRAY_AREF(ary, k));
- }
- memo_threshold =
- len < 2560 ? len / 128 :
- len < 5120 ? len / 64 :
- len < 10240 ? len / 32 :
- len / 16;
- if (n <= numberof(idx)) {
- long sorted[numberof(idx)];
- sorted[0] = idx[0] = rnds[0];
- for (i=1; i<n; i++) {
- k = rnds[i];
- for (j = 0; j < i; ++j) {
- if (k < sorted[j]) break;
- ++k;
- }
- memmove(&sorted[j+1], &sorted[j], sizeof(sorted[0])*(i-j));
- sorted[j] = idx[i] = k;
- }
- result = rb_ary_new_capa(n);
- RARRAY_PTR_USE_TRANSIENT(result, ptr_result, {
- for (i=0; i<n; i++) {
- ptr_result[i] = RARRAY_AREF(ary, idx[i]);
- }
- });
- }
- else if (n <= memo_threshold / 2) {
- long max_idx = 0;
-#undef RUBY_UNTYPED_DATA_WARNING
-#define RUBY_UNTYPED_DATA_WARNING 0
- VALUE vmemo = Data_Wrap_Struct(0, 0, st_free_table, 0);
- st_table *memo = st_init_numtable_with_size(n);
- DATA_PTR(vmemo) = memo;
- result = rb_ary_new_capa(n);
- RARRAY_PTR_USE(result, ptr_result, {
- for (i=0; i<n; i++) {
- long r = RAND_UPTO(len-i) + i;
- ptr_result[i] = r;
- if (r > max_idx) max_idx = r;
- }
- len = RARRAY_LEN(ary);
- if (len <= max_idx) n = 0;
- else if (n > len) n = len;
- RARRAY_PTR_USE_TRANSIENT(ary, ptr_ary, {
- for (i=0; i<n; i++) {
- long j2 = j = ptr_result[i];
- long i2 = i;
- st_data_t value;
- if (st_lookup(memo, (st_data_t)i, &value)) i2 = (long)value;
- if (st_lookup(memo, (st_data_t)j, &value)) j2 = (long)value;
- st_insert(memo, (st_data_t)j, (st_data_t)i2);
- ptr_result[i] = ptr_ary[j2];
- }
- });
- });
- DATA_PTR(vmemo) = 0;
- st_free_table(memo);
- }
- else {
- result = rb_ary_dup(ary);
- RBASIC_CLEAR_CLASS(result);
- RB_GC_GUARD(ary);
- RARRAY_PTR_USE(result, ptr_result, {
- for (i=0; i<n; i++) {
- j = RAND_UPTO(len-i) + i;
- nv = ptr_result[j];
- ptr_result[j] = ptr_result[i];
- ptr_result[i] = nv;
- }
- });
- RBASIC_SET_CLASS_RAW(result, rb_cArray);
- }
- ARY_SET_LEN(result, n);
-
- return result;
-}
-
static VALUE
-ary_sample0(rb_execution_context_t *ec, VALUE ary)
+rb_ary_compact(ary)
+ VALUE ary;
{
- return ary_sample(ec, ary, rb_cRandom, Qfalse, Qfalse);
-}
+ VALUE v = rb_ary_compact_bang(rb_ary_dup(ary));
-static VALUE
-rb_ary_cycle_size(VALUE self, VALUE args, VALUE eobj)
-{
- long mul;
- VALUE n = Qnil;
- if (args && (RARRAY_LEN(args) > 0)) {
- n = RARRAY_AREF(args, 0);
- }
- if (RARRAY_LEN(self) == 0) return INT2FIX(0);
- if (NIL_P(n)) return DBL2NUM(HUGE_VAL);
- mul = NUM2LONG(n);
- if (mul <= 0) return INT2FIX(0);
- n = LONG2FIX(mul);
- return rb_fix_mul_fix(rb_ary_length(self), n);
+ if (NIL_P(v)) return ary;
+ return v;
}
-/*
- * call-seq:
- * array.cycle {|element| ... } -> nil
- * array.cycle(count) {|element| ... } -> nil
- * array.cycle -> new_enumerator
- * array.cycle(count) -> new_enumerator
- *
- * When called with positive \Integer argument +count+ and a block,
- * calls the block with each element, then does so again,
- * until it has done so +count+ times; returns +nil+:
- * output = []
- * [0, 1].cycle(2) {|element| output.push(element) } # => nil
- * output # => [0, 1, 0, 1]
- *
- * If +count+ is zero or negative, does not call the block:
- * [0, 1].cycle(0) {|element| fail 'Cannot happen' } # => nil
- * [0, 1].cycle(-1) {|element| fail 'Cannot happen' } # => nil
- *
- * When a block is given, and argument is omitted or +nil+, cycles forever:
- * # Prints 0 and 1 forever.
- * [0, 1].cycle {|element| puts element }
- * [0, 1].cycle(nil) {|element| puts element }
- *
- * When no block is given, returns a new \Enumerator:
- *
- * [0, 1].cycle(2) # => #<Enumerator: [0, 1]:cycle(2)>
- * [0, 1].cycle # => # => #<Enumerator: [0, 1]:cycle>
- * [0, 1].cycle.first(5) # => [0, 1, 0, 1, 0]
- */
static VALUE
-rb_ary_cycle(int argc, VALUE *argv, VALUE ary)
-{
- long n, i;
-
- rb_check_arity(argc, 0, 1);
-
- RETURN_SIZED_ENUMERATOR(ary, argc, argv, rb_ary_cycle_size);
- if (argc == 0 || NIL_P(argv[0])) {
- n = -1;
- }
- else {
- n = NUM2LONG(argv[0]);
- if (n <= 0) return Qnil;
- }
-
- while (RARRAY_LEN(ary) > 0 && (n < 0 || 0 < n--)) {
- for (i=0; i<RARRAY_LEN(ary); i++) {
- rb_yield(RARRAY_AREF(ary, i));
- }
- }
- return Qnil;
-}
-
-#define tmpary(n) rb_ary_tmp_new(n)
-#define tmpary_discard(a) (ary_discard(a), RBASIC_SET_CLASS_RAW(a, rb_cArray))
-
-/*
- * Build a ruby array of the corresponding values and yield it to the
- * associated block.
- * Return the class of +values+ for reentry check.
- */
-static int
-yield_indexed_values(const VALUE values, const long r, const long *const p)
-{
- const VALUE result = rb_ary_new2(r);
- long i;
-
- for (i = 0; i < r; i++) ARY_SET(result, i, RARRAY_AREF(values, p[i]));
- ARY_SET_LEN(result, r);
- rb_yield(result);
- return !RBASIC(values)->klass;
-}
-
-/*
- * Compute permutations of +r+ elements of the set <code>[0..n-1]</code>.
- *
- * When we have a complete permutation of array indices, copy the values
- * at those indices into a new array and yield that array.
- *
- * n: the size of the set
- * r: the number of elements in each permutation
- * p: the array (of size r) that we're filling in
- * used: an array of booleans: whether a given index is already used
- * values: the Ruby array that holds the actual values to permute
- */
-static void
-permute0(const long n, const long r, long *const p, char *const used, const VALUE values)
+rb_ary_nitems(ary)
+ VALUE ary;
{
- long i = 0, index = 0;
-
- for (;;) {
- const char *const unused = memchr(&used[i], 0, n-i);
- if (!unused) {
- if (!index) break;
- i = p[--index]; /* pop index */
- used[i++] = 0; /* index unused */
- }
- else {
- i = unused - used;
- p[index] = i;
- used[i] = 1; /* mark index used */
- ++index;
- if (index < r-1) { /* if not done yet */
- p[index] = i = 0;
- continue;
- }
- for (i = 0; i < n; ++i) {
- if (used[i]) continue;
- p[index] = i;
- if (!yield_indexed_values(values, r, p)) {
- rb_raise(rb_eRuntimeError, "permute reentered");
- }
- }
- i = p[--index]; /* pop index */
- used[i] = 0; /* index unused */
- p[index] = ++i;
- }
- }
-}
+ long n = 0;
+ VALUE *p, *pend;
-/*
- * Returns the product of from, from-1, ..., from - how_many + 1.
- * https://en.wikipedia.org/wiki/Pochhammer_symbol
- */
-static VALUE
-descending_factorial(long from, long how_many)
-{
- VALUE cnt;
- if (how_many > 0) {
- cnt = LONG2FIX(from);
- while (--how_many > 0) {
- long v = --from;
- cnt = rb_int_mul(cnt, LONG2FIX(v));
- }
- }
- else {
- cnt = LONG2FIX(how_many == 0);
+ p = RARRAY(ary)->ptr;
+ pend = p + RARRAY(ary)->len;
+ while (p < pend) {
+ if (!NIL_P(*p)) n++;
+ p++;
}
- return cnt;
+ return INT2NUM(n);
}
static VALUE
-binomial_coefficient(long comb, long size)
+rb_ary_flatten_bang(ary)
+ VALUE ary;
{
- VALUE r;
long i;
- if (comb > size-comb) {
- comb = size-comb;
- }
- if (comb < 0) {
- return LONG2FIX(0);
- }
- else if (comb == 0) {
- return LONG2FIX(1);
- }
- r = LONG2FIX(size);
- for (i = 1; i < comb; ++i) {
- r = rb_int_mul(r, LONG2FIX(size - i));
- r = rb_int_idiv(r, LONG2FIX(i + 1));
- }
- return r;
-}
-
-static VALUE
-rb_ary_permutation_size(VALUE ary, VALUE args, VALUE eobj)
-{
- long n = RARRAY_LEN(ary);
- long k = (args && (RARRAY_LEN(args) > 0)) ? NUM2LONG(RARRAY_AREF(args, 0)) : n;
+ int mod = 0;
- return descending_factorial(n, k);
-}
-
-/*
- * call-seq:
- * array.permutation {|element| ... } -> self
- * array.permutation(n) {|element| ... } -> self
- * array.permutation -> new_enumerator
- * array.permutation(n) -> new_enumerator
- *
- * When invoked with a block, yield all permutations of elements of +self+; returns +self+.
- * The order of permutations is indeterminate.
- *
- * When a block and an in-range positive \Integer argument +n+ (<tt>0 < n <= self.size</tt>)
- * are given, calls the block with all +n+-tuple permutations of +self+.
- *
- * Example:
- * a = [0, 1, 2]
- * a.permutation(2) {|permutation| p permutation }
- * Output:
- * [0, 1]
- * [0, 2]
- * [1, 0]
- * [1, 2]
- * [2, 0]
- * [2, 1]
- * Another example:
- * a = [0, 1, 2]
- * a.permutation(3) {|permutation| p permutation }
- * Output:
- * [0, 1, 2]
- * [0, 2, 1]
- * [1, 0, 2]
- * [1, 2, 0]
- * [2, 0, 1]
- * [2, 1, 0]
- *
- * When +n+ is zero, calls the block once with a new empty \Array:
- * a = [0, 1, 2]
- * a.permutation(0) {|permutation| p permutation }
- * Output:
- * []
- *
- * When +n+ is out of range (negative or larger than <tt>self.size</tt>),
- * does not call the block:
- * a = [0, 1, 2]
- * a.permutation(-1) {|permutation| fail 'Cannot happen' }
- * a.permutation(4) {|permutation| fail 'Cannot happen' }
- *
- * When a block given but no argument,
- * behaves the same as <tt>a.permutation(a.size)</tt>:
- * a = [0, 1, 2]
- * a.permutation {|permutation| p permutation }
- * Output:
- * [0, 1, 2]
- * [0, 2, 1]
- * [1, 0, 2]
- * [1, 2, 0]
- * [2, 0, 1]
- * [2, 1, 0]
- *
- * Returns a new \Enumerator if no block given:
- * a = [0, 1, 2]
- * a.permutation # => #<Enumerator: [0, 1, 2]:permutation>
- * a.permutation(2) # => #<Enumerator: [0, 1, 2]:permutation(2)>
- */
-
-static VALUE
-rb_ary_permutation(int argc, VALUE *argv, VALUE ary)
-{
- long r, n, i;
-
- n = RARRAY_LEN(ary); /* Array length */
- RETURN_SIZED_ENUMERATOR(ary, argc, argv, rb_ary_permutation_size); /* Return enumerator if no block */
- r = n;
- if (rb_check_arity(argc, 0, 1) && !NIL_P(argv[0]))
- r = NUM2LONG(argv[0]); /* Permutation size from argument */
-
- if (r < 0 || n < r) {
- /* no permutations: yield nothing */
- }
- else if (r == 0) { /* exactly one permutation: the zero-length array */
- rb_yield(rb_ary_new2(0));
- }
- else if (r == 1) { /* this is a special, easy case */
- for (i = 0; i < RARRAY_LEN(ary); i++) {
- rb_yield(rb_ary_new3(1, RARRAY_AREF(ary, i)));
- }
- }
- else { /* this is the general case */
- volatile VALUE t0;
- long *p = ALLOCV_N(long, t0, r+roomof(n, sizeof(long)));
- char *used = (char*)(p + r);
- VALUE ary0 = ary_make_shared_copy(ary); /* private defensive copy of ary */
- RBASIC_CLEAR_CLASS(ary0);
-
- MEMZERO(used, char, n); /* initialize array */
-
- permute0(n, r, p, used, ary0); /* compute and yield permutations */
- ALLOCV_END(t0);
- RBASIC_SET_CLASS_RAW(ary0, rb_cArray);
- }
- return ary;
-}
-
-static void
-combinate0(const long len, const long n, long *const stack, const VALUE values)
-{
- long lev = 0;
-
- MEMZERO(stack+1, long, n);
- stack[0] = -1;
- for (;;) {
- for (lev++; lev < n; lev++) {
- stack[lev+1] = stack[lev]+1;
- }
- if (!yield_indexed_values(values, n, stack+1)) {
- rb_raise(rb_eRuntimeError, "combination reentered");
- }
- do {
- if (lev == 0) return;
- stack[lev--]++;
- } while (stack[lev+1]+n == len+lev+1);
- }
-}
-
-static VALUE
-rb_ary_combination_size(VALUE ary, VALUE args, VALUE eobj)
-{
- long n = RARRAY_LEN(ary);
- long k = NUM2LONG(RARRAY_AREF(args, 0));
-
- return binomial_coefficient(k, n);
-}
-
-/*
- * call-seq:
- * array.combination(n) {|element| ... } -> self
- * array.combination(n) -> new_enumerator
- *
- * Calls the block, if given, with combinations of elements of +self+;
- * returns +self+. The order of combinations is indeterminate.
- *
- * When a block and an in-range positive \Integer argument +n+ (<tt>0 < n <= self.size</tt>)
- * are given, calls the block with all +n+-tuple combinations of +self+.
- *
- * Example:
- * a = [0, 1, 2]
- * a.combination(2) {|combination| p combination }
- * Output:
- * [0, 1]
- * [0, 2]
- * [1, 2]
- *
- * Another example:
- * a = [0, 1, 2]
- * a.combination(3) {|combination| p combination }
- * Output:
- * [0, 1, 2]
- *
- * When +n+ is zero, calls the block once with a new empty \Array:
- * a = [0, 1, 2]
- * a1 = a.combination(0) {|combination| p combination }
- * Output:
- * []
- *
- * When +n+ is out of range (negative or larger than <tt>self.size</tt>),
- * does not call the block:
- * a = [0, 1, 2]
- * a.combination(-1) {|combination| fail 'Cannot happen' }
- * a.combination(4) {|combination| fail 'Cannot happen' }
- *
- * Returns a new \Enumerator if no block given:
- * a = [0, 1, 2]
- * a.combination(2) # => #<Enumerator: [0, 1, 2]:combination(2)>
- */
-
-static VALUE
-rb_ary_combination(VALUE ary, VALUE num)
-{
- long i, n, len;
-
- n = NUM2LONG(num);
- RETURN_SIZED_ENUMERATOR(ary, 1, &num, rb_ary_combination_size);
- len = RARRAY_LEN(ary);
- if (n < 0 || len < n) {
- /* yield nothing */
- }
- else if (n == 0) {
- rb_yield(rb_ary_new2(0));
- }
- else if (n == 1) {
- for (i = 0; i < RARRAY_LEN(ary); i++) {
- rb_yield(rb_ary_new3(1, RARRAY_AREF(ary, i)));
- }
- }
- else {
- VALUE ary0 = ary_make_shared_copy(ary); /* private defensive copy of ary */
- volatile VALUE t0;
- long *stack = ALLOCV_N(long, t0, n+1);
-
- RBASIC_CLEAR_CLASS(ary0);
- combinate0(len, n, stack, ary0);
- ALLOCV_END(t0);
- RBASIC_SET_CLASS_RAW(ary0, rb_cArray);
- }
- return ary;
-}
-
-/*
- * Compute repeated permutations of +r+ elements of the set
- * <code>[0..n-1]</code>.
- *
- * When we have a complete repeated permutation of array indices, copy the
- * values at those indices into a new array and yield that array.
- *
- * n: the size of the set
- * r: the number of elements in each permutation
- * p: the array (of size r) that we're filling in
- * values: the Ruby array that holds the actual values to permute
- */
-static void
-rpermute0(const long n, const long r, long *const p, const VALUE values)
-{
- long i = 0, index = 0;
-
- p[index] = i;
- for (;;) {
- if (++index < r-1) {
- p[index] = i = 0;
- continue;
- }
- for (i = 0; i < n; ++i) {
- p[index] = i;
- if (!yield_indexed_values(values, r, p)) {
- rb_raise(rb_eRuntimeError, "repeated permute reentered");
- }
- }
- do {
- if (index <= 0) return;
- } while ((i = ++p[--index]) >= n);
- }
-}
-
-static VALUE
-rb_ary_repeated_permutation_size(VALUE ary, VALUE args, VALUE eobj)
-{
- long n = RARRAY_LEN(ary);
- long k = NUM2LONG(RARRAY_AREF(args, 0));
-
- if (k < 0) {
- return LONG2FIX(0);
- }
- if (n <= 0) {
- return LONG2FIX(!k);
- }
- return rb_int_positive_pow(n, (unsigned long)k);
-}
-
-/*
- * call-seq:
- * array.repeated_permutation(n) {|permutation| ... } -> self
- * array.repeated_permutation(n) -> new_enumerator
- *
- * Calls the block with each repeated permutation of length +n+ of the elements of +self+;
- * each permutation is an \Array;
- * returns +self+. The order of the permutations is indeterminate.
- *
- * When a block and a positive \Integer argument +n+ are given, calls the block with each
- * +n+-tuple repeated permutation of the elements of +self+.
- * The number of permutations is <tt>self.size**n</tt>.
- *
- * +n+ = 1:
- * a = [0, 1, 2]
- * a.repeated_permutation(1) {|permutation| p permutation }
- * Output:
- * [0]
- * [1]
- * [2]
- *
- * +n+ = 2:
- * a.repeated_permutation(2) {|permutation| p permutation }
- * Output:
- * [0, 0]
- * [0, 1]
- * [0, 2]
- * [1, 0]
- * [1, 1]
- * [1, 2]
- * [2, 0]
- * [2, 1]
- * [2, 2]
- *
- * If +n+ is zero, calls the block once with an empty \Array.
- *
- * If +n+ is negative, does not call the block:
- * a.repeated_permutation(-1) {|permutation| fail 'Cannot happen' }
- *
- * Returns a new \Enumerator if no block given:
- * a = [0, 1, 2]
- * a.repeated_permutation(2) # => #<Enumerator: [0, 1, 2]:permutation(2)>
- *
- * Using Enumerators, it's convenient to show the permutations and counts
- * for some values of +n+:
- * e = a.repeated_permutation(0)
- * e.size # => 1
- * e.to_a # => [[]]
- * e = a.repeated_permutation(1)
- * e.size # => 3
- * e.to_a # => [[0], [1], [2]]
- * e = a.repeated_permutation(2)
- * e.size # => 9
- * e.to_a # => [[0, 0], [0, 1], [0, 2], [1, 0], [1, 1], [1, 2], [2, 0], [2, 1], [2, 2]]
- */
-static VALUE
-rb_ary_repeated_permutation(VALUE ary, VALUE num)
-{
- long r, n, i;
-
- n = RARRAY_LEN(ary); /* Array length */
- RETURN_SIZED_ENUMERATOR(ary, 1, &num, rb_ary_repeated_permutation_size); /* Return Enumerator if no block */
- r = NUM2LONG(num); /* Permutation size from argument */
-
- if (r < 0) {
- /* no permutations: yield nothing */
- }
- else if (r == 0) { /* exactly one permutation: the zero-length array */
- rb_yield(rb_ary_new2(0));
- }
- else if (r == 1) { /* this is a special, easy case */
- for (i = 0; i < RARRAY_LEN(ary); i++) {
- rb_yield(rb_ary_new3(1, RARRAY_AREF(ary, i)));
- }
- }
- else { /* this is the general case */
- volatile VALUE t0;
- long *p = ALLOCV_N(long, t0, r);
- VALUE ary0 = ary_make_shared_copy(ary); /* private defensive copy of ary */
- RBASIC_CLEAR_CLASS(ary0);
-
- rpermute0(n, r, p, ary0); /* compute and yield repeated permutations */
- ALLOCV_END(t0);
- RBASIC_SET_CLASS_RAW(ary0, rb_cArray);
- }
- return ary;
-}
-
-static void
-rcombinate0(const long n, const long r, long *const p, const long rest, const VALUE values)
-{
- long i = 0, index = 0;
-
- p[index] = i;
- for (;;) {
- if (++index < r-1) {
- p[index] = i;
- continue;
- }
- for (; i < n; ++i) {
- p[index] = i;
- if (!yield_indexed_values(values, r, p)) {
- rb_raise(rb_eRuntimeError, "repeated combination reentered");
- }
- }
- do {
- if (index <= 0) return;
- } while ((i = ++p[--index]) >= n);
- }
-}
-
-static VALUE
-rb_ary_repeated_combination_size(VALUE ary, VALUE args, VALUE eobj)
-{
- long n = RARRAY_LEN(ary);
- long k = NUM2LONG(RARRAY_AREF(args, 0));
- if (k == 0) {
- return LONG2FIX(1);
- }
- return binomial_coefficient(k, n + k - 1);
-}
-
-/*
- * call-seq:
- * array.repeated_combination(n) {|combination| ... } -> self
- * array.repeated_combination(n) -> new_enumerator
- *
- * Calls the block with each repeated combination of length +n+ of the elements of +self+;
- * each combination is an \Array;
- * returns +self+. The order of the combinations is indeterminate.
- *
- * When a block and a positive \Integer argument +n+ are given, calls the block with each
- * +n+-tuple repeated combination of the elements of +self+.
- * The number of combinations is <tt>(n+1)(n+2)/2</tt>.
- *
- * +n+ = 1:
- * a = [0, 1, 2]
- * a.repeated_combination(1) {|combination| p combination }
- * Output:
- * [0]
- * [1]
- * [2]
- *
- * +n+ = 2:
- * a.repeated_combination(2) {|combination| p combination }
- * Output:
- * [0, 0]
- * [0, 1]
- * [0, 2]
- * [1, 1]
- * [1, 2]
- * [2, 2]
- *
- * If +n+ is zero, calls the block once with an empty \Array.
- *
- * If +n+ is negative, does not call the block:
- * a.repeated_combination(-1) {|combination| fail 'Cannot happen' }
- *
- * Returns a new \Enumerator if no block given:
- * a = [0, 1, 2]
- * a.repeated_combination(2) # => #<Enumerator: [0, 1, 2]:combination(2)>
- *
- * Using Enumerators, it's convenient to show the combinations and counts
- * for some values of +n+:
- * e = a.repeated_combination(0)
- * e.size # => 1
- * e.to_a # => [[]]
- * e = a.repeated_combination(1)
- * e.size # => 3
- * e.to_a # => [[0], [1], [2]]
- * e = a.repeated_combination(2)
- * e.size # => 6
- * e.to_a # => [[0, 0], [0, 1], [0, 2], [1, 1], [1, 2], [2, 2]]
- */
-
-static VALUE
-rb_ary_repeated_combination(VALUE ary, VALUE num)
-{
- long n, i, len;
-
- n = NUM2LONG(num); /* Combination size from argument */
- RETURN_SIZED_ENUMERATOR(ary, 1, &num, rb_ary_repeated_combination_size); /* Return enumerator if no block */
- len = RARRAY_LEN(ary);
- if (n < 0) {
- /* yield nothing */
- }
- else if (n == 0) {
- rb_yield(rb_ary_new2(0));
- }
- else if (n == 1) {
- for (i = 0; i < RARRAY_LEN(ary); i++) {
- rb_yield(rb_ary_new3(1, RARRAY_AREF(ary, i)));
+ rb_ary_modify(ary);
+ for (i=0; i<RARRAY(ary)->len; i++) {
+ VALUE ary2 = RARRAY(ary)->ptr[i];
+ if (TYPE(ary2) == T_ARRAY) {
+ rb_ary_replace(ary, i--, 1, ary2);
+ mod = 1;
}
}
- else if (len == 0) {
- /* yield nothing */
- }
- else {
- volatile VALUE t0;
- long *p = ALLOCV_N(long, t0, n);
- VALUE ary0 = ary_make_shared_copy(ary); /* private defensive copy of ary */
- RBASIC_CLEAR_CLASS(ary0);
-
- rcombinate0(len, n, p, n, ary0); /* compute and yield repeated combinations */
- ALLOCV_END(t0);
- RBASIC_SET_CLASS_RAW(ary0, rb_cArray);
- }
+ if (mod == 0) return Qnil;
return ary;
}
-/*
- * call-seq:
- * array.product(*other_arrays) -> new_array
- * array.product(*other_arrays) {|combination| ... } -> self
- *
- * Computes and returns or yields all combinations of elements from all the Arrays,
- * including both +self+ and +other_arrays+.
- * - The number of combinations is the product of the sizes of all the arrays,
- * including both +self+ and +other_arrays+.
- * - The order of the returned combinations is indeterminate.
- *
- * When no block is given, returns the combinations as an \Array of Arrays:
- * a = [0, 1, 2]
- * a1 = [3, 4]
- * a2 = [5, 6]
- * p = a.product(a1)
- * p.size # => 6 # a.size * a1.size
- * p # => [[0, 3], [0, 4], [1, 3], [1, 4], [2, 3], [2, 4]]
- * p = a.product(a1, a2)
- * p.size # => 12 # a.size * a1.size * a2.size
- * p # => [[0, 3, 5], [0, 3, 6], [0, 4, 5], [0, 4, 6], [1, 3, 5], [1, 3, 6], [1, 4, 5], [1, 4, 6], [2, 3, 5], [2, 3, 6], [2, 4, 5], [2, 4, 6]]
- *
- * If any argument is an empty \Array, returns an empty \Array.
- *
- * If no argument is given, returns an \Array of 1-element Arrays,
- * each containing an element of +self+:
- * a.product # => [[0], [1], [2]]
- *
- * When a block is given, yields each combination as an \Array; returns +self+:
- * a.product(a1) {|combination| p combination }
- * Output:
- * [0, 3]
- * [0, 4]
- * [1, 3]
- * [1, 4]
- * [2, 3]
- * [2, 4]
- *
- * If any argument is an empty \Array, does not call the block:
- * a.product(a1, a2, []) {|combination| fail 'Cannot happen' }
- *
- * If no argument is given, yields each element of +self+ as a 1-element \Array:
- * a.product {|combination| p combination }
- * Output:
- * [0]
- * [1]
- * [2]
- */
-
static VALUE
-rb_ary_product(int argc, VALUE *argv, VALUE ary)
-{
- int n = argc+1; /* How many arrays we're operating on */
- volatile VALUE t0 = tmpary(n);
- volatile VALUE t1 = Qundef;
- VALUE *arrays = RARRAY_PTR(t0); /* The arrays we're computing the product of */
- int *counters = ALLOCV_N(int, t1, n); /* The current position in each one */
- VALUE result = Qnil; /* The array we'll be returning, when no block given */
- long i,j;
- long resultlen = 1;
-
- RBASIC_CLEAR_CLASS(t0);
-
- /* initialize the arrays of arrays */
- ARY_SET_LEN(t0, n);
- arrays[0] = ary;
- for (i = 1; i < n; i++) arrays[i] = Qnil;
- for (i = 1; i < n; i++) arrays[i] = to_ary(argv[i-1]);
-
- /* initialize the counters for the arrays */
- for (i = 0; i < n; i++) counters[i] = 0;
-
- /* Otherwise, allocate and fill in an array of results */
- if (rb_block_given_p()) {
- /* Make defensive copies of arrays; exit if any is empty */
- for (i = 0; i < n; i++) {
- if (RARRAY_LEN(arrays[i]) == 0) goto done;
- arrays[i] = ary_make_shared_copy(arrays[i]);
- }
- }
- else {
- /* Compute the length of the result array; return [] if any is empty */
- for (i = 0; i < n; i++) {
- long k = RARRAY_LEN(arrays[i]);
- if (k == 0) {
- result = rb_ary_new2(0);
- goto done;
- }
- if (MUL_OVERFLOW_LONG_P(resultlen, k))
- rb_raise(rb_eRangeError, "too big to product");
- resultlen *= k;
- }
- result = rb_ary_new2(resultlen);
- }
- for (;;) {
- int m;
- /* fill in one subarray */
- VALUE subarray = rb_ary_new2(n);
- for (j = 0; j < n; j++) {
- rb_ary_push(subarray, rb_ary_entry(arrays[j], counters[j]));
- }
-
- /* put it on the result array */
- if (NIL_P(result)) {
- FL_SET(t0, FL_USER5);
- rb_yield(subarray);
- if (! FL_TEST(t0, FL_USER5)) {
- rb_raise(rb_eRuntimeError, "product reentered");
- }
- else {
- FL_UNSET(t0, FL_USER5);
- }
- }
- else {
- rb_ary_push(result, subarray);
- }
-
- /*
- * Increment the last counter. If it overflows, reset to 0
- * and increment the one before it.
- */
- m = n-1;
- counters[m]++;
- while (counters[m] == RARRAY_LEN(arrays[m])) {
- counters[m] = 0;
- /* If the first counter overflows, we are done */
- if (--m < 0) goto done;
- counters[m]++;
- }
- }
-done:
- tmpary_discard(t0);
- ALLOCV_END(t1);
-
- return NIL_P(result) ? ary : result;
-}
-
-/*
- * call-seq:
- * array.take(n) -> new_array
- *
- * Returns a new \Array containing the first +n+ element of +self+,
- * where +n+ is a non-negative \Integer;
- * does not modify +self+.
- *
- * Examples:
- * a = [0, 1, 2, 3, 4, 5]
- * a.take(1) # => [0]
- * a.take(2) # => [0, 1]
- * a.take(50) # => [0, 1, 2, 3, 4, 5]
- * a # => [0, 1, 2, 3, 4, 5]
- */
-
-static VALUE
-rb_ary_take(VALUE obj, VALUE n)
-{
- long len = NUM2LONG(n);
- if (len < 0) {
- rb_raise(rb_eArgError, "attempt to take negative size");
- }
- return rb_ary_subseq(obj, 0, len);
-}
-
-/*
- * call-seq:
- * array.take_while {|element| ... } -> new_array
- * array.take_while -> new_enumerator
- *
- * Returns a new \Array containing zero or more leading elements of +self+;
- * does not modify +self+.
- *
- * With a block given, calls the block with each successive element of +self+;
- * stops if the block returns +false+ or +nil+;
- * returns a new Array containing those elements for which the block returned a truthy value:
- * a = [0, 1, 2, 3, 4, 5]
- * a.take_while {|element| element < 3 } # => [0, 1, 2]
- * a.take_while {|element| true } # => [0, 1, 2, 3, 4, 5]
- * a # => [0, 1, 2, 3, 4, 5]
- *
- * With no block given, returns a new \Enumerator:
- * [0, 1].take_while # => #<Enumerator: [0, 1]:take_while>
- */
-
-static VALUE
-rb_ary_take_while(VALUE ary)
-{
- long i;
-
- RETURN_ENUMERATOR(ary, 0, 0);
- for (i = 0; i < RARRAY_LEN(ary); i++) {
- if (!RTEST(rb_yield(RARRAY_AREF(ary, i)))) break;
- }
- return rb_ary_take(ary, LONG2FIX(i));
-}
-
-/*
- * call-seq:
- * array.drop(n) -> new_array
- *
- * Returns a new \Array containing all but the first +n+ element of +self+,
- * where +n+ is a non-negative \Integer;
- * does not modify +self+.
- *
- * Examples:
- * a = [0, 1, 2, 3, 4, 5]
- * a.drop(0) # => [0, 1, 2, 3, 4, 5]
- * a.drop(1) # => [1, 2, 3, 4, 5]
- * a.drop(2) # => [2, 3, 4, 5]
- */
-
-static VALUE
-rb_ary_drop(VALUE ary, VALUE n)
-{
- VALUE result;
- long pos = NUM2LONG(n);
- if (pos < 0) {
- rb_raise(rb_eArgError, "attempt to drop negative size");
- }
-
- result = rb_ary_subseq(ary, pos, RARRAY_LEN(ary));
- if (NIL_P(result)) result = rb_ary_new();
- return result;
-}
-
-/*
- * call-seq:
- * array.drop_while {|element| ... } -> new_array
- * array.drop_while -> new_enumerator
-
- * Returns a new \Array containing zero or more trailing elements of +self+;
- * does not modify +self+.
- *
- * With a block given, calls the block with each successive element of +self+;
- * stops if the block returns +false+ or +nil+;
- * returns a new Array _omitting_ those elements for which the block returned a truthy value:
- * a = [0, 1, 2, 3, 4, 5]
- * a.drop_while {|element| element < 3 } # => [3, 4, 5]
- *
- * With no block given, returns a new \Enumerator:
- * [0, 1].drop_while # => # => #<Enumerator: [0, 1]:drop_while>
- */
-
-static VALUE
-rb_ary_drop_while(VALUE ary)
-{
- long i;
-
- RETURN_ENUMERATOR(ary, 0, 0);
- for (i = 0; i < RARRAY_LEN(ary); i++) {
- if (!RTEST(rb_yield(RARRAY_AREF(ary, i)))) break;
- }
- return rb_ary_drop(ary, LONG2FIX(i));
-}
-
-/*
- * call-seq:
- * array.any? -> true or false
- * array.any? {|element| ... } -> true or false
- * array.any?(obj) -> true or false
- *
- * Returns +true+ if any element of +self+ meets a given criterion.
- *
- * With no block given and no argument, returns +true+ if +self+ has any truthy element,
- * +false+ otherwise:
- * [nil, 0, false].any? # => true
- * [nil, false].any? # => false
- * [].any? # => false
- *
- * With a block given and no argument, calls the block with each element in +self+;
- * returns +true+ if the block returns any truthy value, +false+ otherwise:
- * [0, 1, 2].any? {|element| element > 1 } # => true
- * [0, 1, 2].any? {|element| element > 2 } # => false
- *
- * If argument +obj+ is given, returns +true+ if +obj+.<tt>===</tt> any element,
- * +false+ otherwise:
- * ['food', 'drink'].any?(/foo/) # => true
- * ['food', 'drink'].any?(/bar/) # => false
- * [].any?(/foo/) # => false
- * [0, 1, 2].any?(1) # => true
- * [0, 1, 2].any?(3) # => false
- *
- * Related: Enumerable#any?
- */
-
-static VALUE
-rb_ary_any_p(int argc, VALUE *argv, VALUE ary)
-{
- long i, len = RARRAY_LEN(ary);
-
- rb_check_arity(argc, 0, 1);
- if (!len) return Qfalse;
- if (argc) {
- if (rb_block_given_p()) {
- rb_warn("given block not used");
- }
- for (i = 0; i < RARRAY_LEN(ary); ++i) {
- if (RTEST(rb_funcall(argv[0], idEqq, 1, RARRAY_AREF(ary, i)))) return Qtrue;
- }
- }
- else if (!rb_block_given_p()) {
- for (i = 0; i < len; ++i) {
- if (RTEST(RARRAY_AREF(ary, i))) return Qtrue;
- }
- }
- else {
- for (i = 0; i < RARRAY_LEN(ary); ++i) {
- if (RTEST(rb_yield(RARRAY_AREF(ary, i)))) return Qtrue;
- }
- }
- return Qfalse;
-}
-
-/*
- * call-seq:
- * array.all? -> true or false
- * array.all? {|element| ... } -> true or false
- * array.all?(obj) -> true or false
- *
- * Returns +true+ if all elements of +self+ meet a given criterion.
- *
- * With no block given and no argument, returns +true+ if +self+ contains only truthy elements,
- * +false+ otherwise:
- * [0, 1, :foo].all? # => true
- * [0, nil, 2].all? # => false
- * [].all? # => true
- *
- * With a block given and no argument, calls the block with each element in +self+;
- * returns +true+ if the block returns only truthy values, +false+ otherwise:
- * [0, 1, 2].all? { |element| element < 3 } # => true
- * [0, 1, 2].all? { |element| element < 2 } # => false
- *
- * If argument +obj+ is given, returns +true+ if <tt>obj.===</tt> every element, +false+ otherwise:
- * ['food', 'fool', 'foot'].all?(/foo/) # => true
- * ['food', 'drink'].all?(/bar/) # => false
- * [].all?(/foo/) # => true
- * [0, 0, 0].all?(0) # => true
- * [0, 1, 2].all?(1) # => false
- *
- * Related: Enumerable#all?
- */
-
-static VALUE
-rb_ary_all_p(int argc, VALUE *argv, VALUE ary)
-{
- long i, len = RARRAY_LEN(ary);
-
- rb_check_arity(argc, 0, 1);
- if (!len) return Qtrue;
- if (argc) {
- if (rb_block_given_p()) {
- rb_warn("given block not used");
- }
- for (i = 0; i < RARRAY_LEN(ary); ++i) {
- if (!RTEST(rb_funcall(argv[0], idEqq, 1, RARRAY_AREF(ary, i)))) return Qfalse;
- }
- }
- else if (!rb_block_given_p()) {
- for (i = 0; i < len; ++i) {
- if (!RTEST(RARRAY_AREF(ary, i))) return Qfalse;
- }
- }
- else {
- for (i = 0; i < RARRAY_LEN(ary); ++i) {
- if (!RTEST(rb_yield(RARRAY_AREF(ary, i)))) return Qfalse;
- }
- }
- return Qtrue;
-}
-
-/*
- * call-seq:
- * array.none? -> true or false
- * array.none? {|element| ... } -> true or false
- * array.none?(obj) -> true or false
- *
- * Returns +true+ if no element of +self+ meet a given criterion.
- *
- * With no block given and no argument, returns +true+ if +self+ has no truthy elements,
- * +false+ otherwise:
- * [nil, false].none? # => true
- * [nil, 0, false].none? # => false
- * [].none? # => true
- *
- * With a block given and no argument, calls the block with each element in +self+;
- * returns +true+ if the block returns no truthy value, +false+ otherwise:
- * [0, 1, 2].none? {|element| element > 3 } # => true
- * [0, 1, 2].none? {|element| element > 1 } # => false
- *
- * If argument +obj+ is given, returns +true+ if <tt>obj.===</tt> no element, +false+ otherwise:
- * ['food', 'drink'].none?(/bar/) # => true
- * ['food', 'drink'].none?(/foo/) # => false
- * [].none?(/foo/) # => true
- * [0, 1, 2].none?(3) # => true
- * [0, 1, 2].none?(1) # => false
- *
- * Related: Enumerable#none?
- */
-
-static VALUE
-rb_ary_none_p(int argc, VALUE *argv, VALUE ary)
-{
- long i, len = RARRAY_LEN(ary);
-
- rb_check_arity(argc, 0, 1);
- if (!len) return Qtrue;
- if (argc) {
- if (rb_block_given_p()) {
- rb_warn("given block not used");
- }
- for (i = 0; i < RARRAY_LEN(ary); ++i) {
- if (RTEST(rb_funcall(argv[0], idEqq, 1, RARRAY_AREF(ary, i)))) return Qfalse;
- }
- }
- else if (!rb_block_given_p()) {
- for (i = 0; i < len; ++i) {
- if (RTEST(RARRAY_AREF(ary, i))) return Qfalse;
- }
- }
- else {
- for (i = 0; i < RARRAY_LEN(ary); ++i) {
- if (RTEST(rb_yield(RARRAY_AREF(ary, i)))) return Qfalse;
- }
- }
- return Qtrue;
-}
-
-/*
- * call-seq:
- * array.one? -> true or false
- * array.one? {|element| ... } -> true or false
- * array.one?(obj) -> true or false
- *
- * Returns +true+ if exactly one element of +self+ meets a given criterion.
- *
- * With no block given and no argument, returns +true+ if +self+ has exactly one truthy element,
- * +false+ otherwise:
- * [nil, 0].one? # => true
- * [0, 0].one? # => false
- * [nil, nil].one? # => false
- * [].one? # => false
- *
- * With a block given and no argument, calls the block with each element in +self+;
- * returns +true+ if the block a truthy value for exactly one element, +false+ otherwise:
- * [0, 1, 2].one? {|element| element > 0 } # => false
- * [0, 1, 2].one? {|element| element > 1 } # => true
- * [0, 1, 2].one? {|element| element > 2 } # => false
- *
- * If argument +obj+ is given, returns +true+ if <tt>obj.===</tt> exactly one element,
- * +false+ otherwise:
- * [0, 1, 2].one?(0) # => true
- * [0, 0, 1].one?(0) # => false
- * [1, 1, 2].one?(0) # => false
- * ['food', 'drink'].one?(/bar/) # => false
- * ['food', 'drink'].one?(/foo/) # => true
- * [].one?(/foo/) # => false
- *
- * Related: Enumerable#one?
- */
-
-static VALUE
-rb_ary_one_p(int argc, VALUE *argv, VALUE ary)
-{
- long i, len = RARRAY_LEN(ary);
- VALUE result = Qfalse;
-
- rb_check_arity(argc, 0, 1);
- if (!len) return Qfalse;
- if (argc) {
- if (rb_block_given_p()) {
- rb_warn("given block not used");
- }
- for (i = 0; i < RARRAY_LEN(ary); ++i) {
- if (RTEST(rb_funcall(argv[0], idEqq, 1, RARRAY_AREF(ary, i)))) {
- if (result) return Qfalse;
- result = Qtrue;
- }
- }
- }
- else if (!rb_block_given_p()) {
- for (i = 0; i < len; ++i) {
- if (RTEST(RARRAY_AREF(ary, i))) {
- if (result) return Qfalse;
- result = Qtrue;
- }
- }
- }
- else {
- for (i = 0; i < RARRAY_LEN(ary); ++i) {
- if (RTEST(rb_yield(RARRAY_AREF(ary, i)))) {
- if (result) return Qfalse;
- result = Qtrue;
- }
- }
- }
- return result;
-}
-
-/*
- * call-seq:
- * array.dig(index, *identifiers) -> object
- *
- * Finds and returns the object in nested objects
- * that is specified by +index+ and +identifiers+.
- * The nested objects may be instances of various classes.
- * See {Dig Methods}[rdoc-ref:dig_methods.rdoc].
- *
- * Examples:
- * a = [:foo, [:bar, :baz, [:bat, :bam]]]
- * a.dig(1) # => [:bar, :baz, [:bat, :bam]]
- * a.dig(1, 2) # => [:bat, :bam]
- * a.dig(1, 2, 0) # => :bat
- * a.dig(1, 2, 3) # => nil
- */
-
-static VALUE
-rb_ary_dig(int argc, VALUE *argv, VALUE self)
-{
- rb_check_arity(argc, 1, UNLIMITED_ARGUMENTS);
- self = rb_ary_at(self, *argv);
- if (!--argc) return self;
- ++argv;
- return rb_obj_dig(argc, argv, self, Qnil);
-}
-
-static inline VALUE
-finish_exact_sum(long n, VALUE r, VALUE v, int z)
+rb_ary_flatten(ary)
+ VALUE ary;
{
- if (n != 0)
- v = rb_fix_plus(LONG2FIX(n), v);
- if (r != Qundef) {
- v = rb_rational_plus(r, v);
- }
- else if (!n && z) {
- v = rb_fix_plus(LONG2FIX(0), v);
- }
- return v;
-}
-
-/*
- * call-seq:
- * array.sum(init = 0) -> object
- * array.sum(init = 0) {|element| ... } -> object
- *
- * When no block is given, returns the object equivalent to:
- * sum = init
- * array.each {|element| sum += element }
- * sum
- * For example, <tt>[e1, e2, e3].sum</tt> returns <tt>init + e1 + e2 + e3</tt>.
- *
- * Examples:
- * a = [0, 1, 2, 3]
- * a.sum # => 6
- * a.sum(100) # => 106
- *
- * The elements need not be numeric, but must be <tt>+</tt>-compatible
- * with each other and with +init+:
- * a = ['abc', 'def', 'ghi']
- * a.sum('jkl') # => "jklabcdefghi"
- *
- * When a block is given, it is called with each element
- * and the block's return value (instead of the element itself) is used as the addend:
- * a = ['zero', 1, :two]
- * s = a.sum('Coerced and concatenated: ') {|element| element.to_s }
- * s # => "Coerced and concatenated: zero1two"
- *
- * Notes:
- * - Array#join and Array#flatten may be faster than Array#sum
- * for an \Array of Strings or an \Array of Arrays.
- * - Array#sum method may not respect method redefinition of "+" methods such as Integer#+.
- */
+ VALUE v = rb_ary_flatten_bang(rb_ary_dup(ary));
-static VALUE
-rb_ary_sum(int argc, VALUE *argv, VALUE ary)
-{
- VALUE e, v, r;
- long i, n;
- int block_given;
-
- v = (rb_check_arity(argc, 0, 1) ? argv[0] : LONG2FIX(0));
-
- block_given = rb_block_given_p();
-
- if (RARRAY_LEN(ary) == 0)
- return v;
-
- n = 0;
- r = Qundef;
- for (i = 0; i < RARRAY_LEN(ary); i++) {
- e = RARRAY_AREF(ary, i);
- if (block_given)
- e = rb_yield(e);
- if (FIXNUM_P(e)) {
- n += FIX2LONG(e); /* should not overflow long type */
- if (!FIXABLE(n)) {
- v = rb_big_plus(LONG2NUM(n), v);
- n = 0;
- }
- }
- else if (RB_BIGNUM_TYPE_P(e))
- v = rb_big_plus(e, v);
- else if (RB_TYPE_P(e, T_RATIONAL)) {
- if (r == Qundef)
- r = e;
- else
- r = rb_rational_plus(r, e);
- }
- else
- goto not_exact;
- }
- v = finish_exact_sum(n, r, v, argc!=0);
- return v;
-
- not_exact:
- v = finish_exact_sum(n, r, v, i!=0);
-
- if (RB_FLOAT_TYPE_P(e)) {
- /*
- * Kahan-Babuska balancing compensated summation algorithm
- * See https://link.springer.com/article/10.1007/s00607-005-0139-x
- */
- double f, c;
- double x, t;
-
- f = NUM2DBL(v);
- c = 0.0;
- goto has_float_value;
- for (; i < RARRAY_LEN(ary); i++) {
- e = RARRAY_AREF(ary, i);
- if (block_given)
- e = rb_yield(e);
- if (RB_FLOAT_TYPE_P(e))
- has_float_value:
- x = RFLOAT_VALUE(e);
- else if (FIXNUM_P(e))
- x = FIX2LONG(e);
- else if (RB_BIGNUM_TYPE_P(e))
- x = rb_big2dbl(e);
- else if (RB_TYPE_P(e, T_RATIONAL))
- x = rb_num2dbl(e);
- else
- goto not_float;
-
- if (isnan(f)) continue;
- if (isnan(x)) {
- f = x;
- continue;
- }
- if (isinf(x)) {
- if (isinf(f) && signbit(x) != signbit(f))
- f = NAN;
- else
- f = x;
- continue;
- }
- if (isinf(f)) continue;
-
- t = f + x;
- if (fabs(f) >= fabs(x))
- c += ((f - t) + x);
- else
- c += ((x - t) + f);
- f = t;
- }
- f += c;
- return DBL2NUM(f);
-
- not_float:
- v = DBL2NUM(f);
- }
-
- goto has_some_value;
- for (; i < RARRAY_LEN(ary); i++) {
- e = RARRAY_AREF(ary, i);
- if (block_given)
- e = rb_yield(e);
- has_some_value:
- v = rb_funcall(v, idPLUS, 1, e);
- }
+ if (NIL_P(v)) return ary;
return v;
}
-static VALUE
-rb_ary_deconstruct(VALUE ary)
-{
- return ary;
-}
-
-/*
- * An \Array is an ordered, integer-indexed collection of objects,
- * called _elements_. Any object may be an \Array element.
- *
- * == \Array Indexes
- *
- * \Array indexing starts at 0, as in C or Java.
- *
- * A positive index is an offset from the first element:
- * - Index 0 indicates the first element.
- * - Index 1 indicates the second element.
- * - ...
- *
- * A negative index is an offset, backwards, from the end of the array:
- * - Index -1 indicates the last element.
- * - Index -2 indicates the next-to-last element.
- * - ...
- *
- * A non-negative index is <i>in range</i> if it is smaller than
- * the size of the array. For a 3-element array:
- * - Indexes 0 through 2 are in range.
- * - Index 3 is out of range.
- *
- * A negative index is <i>in range</i> if its absolute value is
- * not larger than the size of the array. For a 3-element array:
- * - Indexes -1 through -3 are in range.
- * - Index -4 is out of range.
- *
- * == Creating Arrays
- *
- * You can create an \Array object explicitly with:
- *
- * - An {array literal}[doc/syntax/literals_rdoc.html#label-Array+Literals].
- *
- * You can convert certain objects to Arrays with:
- *
- * - \Method {Array}[Kernel.html#method-i-Array].
- *
- * An \Array can contain different types of objects. For
- * example, the array below contains an Integer, a String and a Float:
- *
- * ary = [1, "two", 3.0] #=> [1, "two", 3.0]
- *
- * An array can also be created by calling Array.new with zero, one
- * (the initial size of the Array) or two arguments (the initial size and a
- * default object).
- *
- * ary = Array.new #=> []
- * Array.new(3) #=> [nil, nil, nil]
- * Array.new(3, true) #=> [true, true, true]
- *
- * Note that the second argument populates the array with references to the
- * same object. Therefore, it is only recommended in cases when you need to
- * instantiate arrays with natively immutable objects such as Symbols,
- * numbers, true or false.
- *
- * To create an array with separate objects a block can be passed instead.
- * This method is safe to use with mutable objects such as hashes, strings or
- * other arrays:
- *
- * Array.new(4) {Hash.new} #=> [{}, {}, {}, {}]
- * Array.new(4) {|i| i.to_s } #=> ["0", "1", "2", "3"]
- *
- * This is also a quick way to build up multi-dimensional arrays:
- *
- * empty_table = Array.new(3) {Array.new(3)}
- * #=> [[nil, nil, nil], [nil, nil, nil], [nil, nil, nil]]
- *
- * An array can also be created by using the Array() method, provided by
- * Kernel, which tries to call #to_ary, then #to_a on its argument.
- *
- * Array({:a => "a", :b => "b"}) #=> [[:a, "a"], [:b, "b"]]
- *
- * == Example Usage
- *
- * In addition to the methods it mixes in through the Enumerable module, the
- * Array class has proprietary methods for accessing, searching and otherwise
- * manipulating arrays.
- *
- * Some of the more common ones are illustrated below.
- *
- * == Accessing Elements
- *
- * Elements in an array can be retrieved using the Array#[] method. It can
- * take a single integer argument (a numeric index), a pair of arguments
- * (start and length) or a range. Negative indices start counting from the end,
- * with -1 being the last element.
- *
- * arr = [1, 2, 3, 4, 5, 6]
- * arr[2] #=> 3
- * arr[100] #=> nil
- * arr[-3] #=> 4
- * arr[2, 3] #=> [3, 4, 5]
- * arr[1..4] #=> [2, 3, 4, 5]
- * arr[1..-3] #=> [2, 3, 4]
- *
- * Another way to access a particular array element is by using the #at method
- *
- * arr.at(0) #=> 1
- *
- * The #slice method works in an identical manner to Array#[].
- *
- * To raise an error for indices outside of the array bounds or else to
- * provide a default value when that happens, you can use #fetch.
- *
- * arr = ['a', 'b', 'c', 'd', 'e', 'f']
- * arr.fetch(100) #=> IndexError: index 100 outside of array bounds: -6...6
- * arr.fetch(100, "oops") #=> "oops"
- *
- * The special methods #first and #last will return the first and last
- * elements of an array, respectively.
- *
- * arr.first #=> 1
- * arr.last #=> 6
- *
- * To return the first +n+ elements of an array, use #take
- *
- * arr.take(3) #=> [1, 2, 3]
- *
- * #drop does the opposite of #take, by returning the elements after +n+
- * elements have been dropped:
- *
- * arr.drop(3) #=> [4, 5, 6]
- *
- * == Obtaining Information about an Array
- *
- * Arrays keep track of their own length at all times. To query an array
- * about the number of elements it contains, use #length, #count or #size.
- *
- * browsers = ['Chrome', 'Firefox', 'Safari', 'Opera', 'IE']
- * browsers.length #=> 5
- * browsers.count #=> 5
- *
- * To check whether an array contains any elements at all
- *
- * browsers.empty? #=> false
- *
- * To check whether a particular item is included in the array
- *
- * browsers.include?('Konqueror') #=> false
- *
- * == Adding Items to Arrays
- *
- * Items can be added to the end of an array by using either #push or #<<
- *
- * arr = [1, 2, 3, 4]
- * arr.push(5) #=> [1, 2, 3, 4, 5]
- * arr << 6 #=> [1, 2, 3, 4, 5, 6]
- *
- * #unshift will add a new item to the beginning of an array.
- *
- * arr.unshift(0) #=> [0, 1, 2, 3, 4, 5, 6]
- *
- * With #insert you can add a new element to an array at any position.
- *
- * arr.insert(3, 'apple') #=> [0, 1, 2, 'apple', 3, 4, 5, 6]
- *
- * Using the #insert method, you can also insert multiple values at once:
- *
- * arr.insert(3, 'orange', 'pear', 'grapefruit')
- * #=> [0, 1, 2, "orange", "pear", "grapefruit", "apple", 3, 4, 5, 6]
- *
- * == Removing Items from an Array
- *
- * The method #pop removes the last element in an array and returns it:
- *
- * arr = [1, 2, 3, 4, 5, 6]
- * arr.pop #=> 6
- * arr #=> [1, 2, 3, 4, 5]
- *
- * To retrieve and at the same time remove the first item, use #shift:
- *
- * arr.shift #=> 1
- * arr #=> [2, 3, 4, 5]
- *
- * To delete an element at a particular index:
- *
- * arr.delete_at(2) #=> 4
- * arr #=> [2, 3, 5]
- *
- * To delete a particular element anywhere in an array, use #delete:
- *
- * arr = [1, 2, 2, 3]
- * arr.delete(2) #=> 2
- * arr #=> [1,3]
- *
- * A useful method if you need to remove +nil+ values from an array is
- * #compact:
- *
- * arr = ['foo', 0, nil, 'bar', 7, 'baz', nil]
- * arr.compact #=> ['foo', 0, 'bar', 7, 'baz']
- * arr #=> ['foo', 0, nil, 'bar', 7, 'baz', nil]
- * arr.compact! #=> ['foo', 0, 'bar', 7, 'baz']
- * arr #=> ['foo', 0, 'bar', 7, 'baz']
- *
- * Another common need is to remove duplicate elements from an array.
- *
- * It has the non-destructive #uniq, and destructive method #uniq!
- *
- * arr = [2, 5, 6, 556, 6, 6, 8, 9, 0, 123, 556]
- * arr.uniq #=> [2, 5, 6, 556, 8, 9, 0, 123]
- *
- * == Iterating over Arrays
- *
- * Like all classes that include the Enumerable module, Array has an each
- * method, which defines what elements should be iterated over and how. In
- * case of Array's #each, all elements in the Array instance are yielded to
- * the supplied block in sequence.
- *
- * Note that this operation leaves the array unchanged.
- *
- * arr = [1, 2, 3, 4, 5]
- * arr.each {|a| print a -= 10, " "}
- * # prints: -9 -8 -7 -6 -5
- * #=> [1, 2, 3, 4, 5]
- *
- * Another sometimes useful iterator is #reverse_each which will iterate over
- * the elements in the array in reverse order.
- *
- * words = %w[first second third fourth fifth sixth]
- * str = ""
- * words.reverse_each {|word| str += "#{word} "}
- * p str #=> "sixth fifth fourth third second first "
- *
- * The #map method can be used to create a new array based on the original
- * array, but with the values modified by the supplied block:
- *
- * arr.map {|a| 2*a} #=> [2, 4, 6, 8, 10]
- * arr #=> [1, 2, 3, 4, 5]
- * arr.map! {|a| a**2} #=> [1, 4, 9, 16, 25]
- * arr #=> [1, 4, 9, 16, 25]
- *
- * == Selecting Items from an Array
- *
- * Elements can be selected from an array according to criteria defined in a
- * block. The selection can happen in a destructive or a non-destructive
- * manner. While the destructive operations will modify the array they were
- * called on, the non-destructive methods usually return a new array with the
- * selected elements, but leave the original array unchanged.
- *
- * === Non-destructive Selection
- *
- * arr = [1, 2, 3, 4, 5, 6]
- * arr.select {|a| a > 3} #=> [4, 5, 6]
- * arr.reject {|a| a < 3} #=> [3, 4, 5, 6]
- * arr.drop_while {|a| a < 4} #=> [4, 5, 6]
- * arr #=> [1, 2, 3, 4, 5, 6]
- *
- * === Destructive Selection
- *
- * #select! and #reject! are the corresponding destructive methods to #select
- * and #reject
- *
- * Similar to #select vs. #reject, #delete_if and #keep_if have the exact
- * opposite result when supplied with the same block:
- *
- * arr.delete_if {|a| a < 4} #=> [4, 5, 6]
- * arr #=> [4, 5, 6]
- *
- * arr = [1, 2, 3, 4, 5, 6]
- * arr.keep_if {|a| a < 4} #=> [1, 2, 3]
- * arr #=> [1, 2, 3]
- *
- * == What's Here
- *
- * First, what's elsewhere. \Class \Array:
- *
- * - Inherits from {class Object}[Object.html#class-Object-label-What-27s+Here].
- * - Includes {module Enumerable}[Enumerable.html#module-Enumerable-label-What-27s+Here],
- * which provides dozens of additional methods.
- *
- * Here, class \Array provides methods that are useful for:
- *
- * - {Creating an Array}[#class-Array-label-Methods+for+Creating+an+Array]
- * - {Querying}[#class-Array-label-Methods+for+Querying]
- * - {Comparing}[#class-Array-label-Methods+for+Comparing]
- * - {Fetching}[#class-Array-label-Methods+for+Fetching]
- * - {Assigning}[#class-Array-label-Methods+for+Assigning]
- * - {Deleting}[#class-Array-label-Methods+for+Deleting]
- * - {Combining}[#class-Array-label-Methods+for+Combining]
- * - {Iterating}[#class-Array-label-Methods+for+Iterating]
- * - {Converting}[#class-Array-label-Methods+for+Converting]
- * - {And more....}[#class-Array-label-Other+Methods]
- *
- * === Methods for Creating an Array
- *
- * ::[]:: Returns a new array populated with given objects.
- * ::new:: Returns a new array.
- * ::try_convert:: Returns a new array created from a given object.
- *
- * === Methods for Querying
- *
- * #length, #size:: Returns the count of elements.
- * #include?:: Returns whether any element <tt>==</tt> a given object.
- * #empty?:: Returns whether there are no elements.
- * #all?:: Returns whether all elements meet a given criterion.
- * #any?:: Returns whether any element meets a given criterion.
- * #none?:: Returns whether no element <tt>==</tt> a given object.
- * #one?:: Returns whether exactly one element <tt>==</tt> a given object.
- * #count:: Returns the count of elements that meet a given criterion.
- * #find_index, #index:: Returns the index of the first element that meets a given criterion.
- * #rindex:: Returns the index of the last element that meets a given criterion.
- * #hash:: Returns the integer hash code.
- *
- * === Methods for Comparing
- * {#<=>}[#method-i-3C-3D-3E]:: Returns -1, 0, or 1
- * as +self+ is less than, equal to, or greater than a given object.
- * {#==}[#method-i-3D-3D]:: Returns whether each element in +self+ is <tt>==</tt> to the
- * corresponding element in a given object.
- * #eql?:: Returns whether each element in +self+ is <tt>eql?</tt> to the corresponding
- * element in a given object.
-
- * === Methods for Fetching
- *
- * These methods do not modify +self+.
- *
- * #[]:: Returns one or more elements.
- * #fetch:: Returns the element at a given offset.
- * #first:: Returns one or more leading elements.
- * #last:: Returns one or more trailing elements.
- * #max:: Returns one or more maximum-valued elements,
- * as determined by <tt><=></tt> or a given block.
- * #max:: Returns one or more minimum-valued elements,
- * as determined by <tt><=></tt> or a given block.
- * #minmax:: Returns the minimum-valued and maximum-valued elements,
- * as determined by <tt><=></tt> or a given block.
- * #assoc:: Returns the first element that is an array
- * whose first element <tt>==</tt> a given object.
- * #rassoc:: Returns the first element that is an array
- * whose second element <tt>==</tt> a given object.
- * #at:: Returns the element at a given offset.
- * #values_at:: Returns the elements at given offsets.
- * #dig:: Returns the object in nested objects
- * that is specified by a given index and additional arguments.
- * #drop:: Returns trailing elements as determined by a given index.
- * #take:: Returns leading elements as determined by a given index.
- * #drop_while:: Returns trailing elements as determined by a given block.
- * #take_while:: Returns leading elements as determined by a given block.
- * #slice:: Returns consecutive elements as determined by a given argument.
- * #sort:: Returns all elements in an order determined by <tt><=></tt> or a given block.
- * #reverse:: Returns all elements in reverse order.
- * #compact:: Returns an array containing all non-+nil+ elements.
- * #select, #filter:: Returns an array containing elements selected by a given block.
- * #uniq:: Returns an array containing non-duplicate elements.
- * #rotate:: Returns all elements with some rotated from one end to the other.
- * #bsearch:: Returns an element selected via a binary search
- * as determined by a given block.
- * #bsearch_index:: Returns the index of an element selected via a binary search
- * as determined by a given block.
- * #sample:: Returns one or more random elements.
- * #shuffle:: Returns elements in a random order.
- *
- * === Methods for Assigning
- *
- * These methods add, replace, or reorder elements in +self+.
- *
- * #[]=:: Assigns specified elements with a given object.
- * #push, #append, #<<:: Appends trailing elements.
- * #unshift, #prepend:: Prepends leading elements.
- * #insert:: Inserts given objects at a given offset; does not replace elements.
- * #concat:: Appends all elements from given arrays.
- * #fill:: Replaces specified elements with specified objects.
- * #replace:: Replaces the content of +self+ with the content of a given array.
- * #reverse!:: Replaces +self+ with its elements reversed.
- * #rotate!:: Replaces +self+ with its elements rotated.
- * #shuffle!:: Replaces +self+ with its elements in random order.
- * #sort!:: Replaces +self+ with its elements sorted,
- * as determined by <tt><=></tt> or a given block.
- * #sort_by!:: Replaces +self+ with its elements sorted, as determined by a given block.
- *
- * === Methods for Deleting
- *
- * Each of these methods removes elements from +self+:
- *
- * #pop:: Removes and returns the last element.
- * #shift:: Removes and returns the first element.
- * #compact!:: Removes all non-+nil+ elements.
- * #delete:: Removes elements equal to a given object.
- * #delete_at:: Removes the element at a given offset.
- * #delete_if:: Removes elements specified by a given block.
- * #keep_if:: Removes elements not specified by a given block.
- * #reject!:: Removes elements specified by a given block.
- * #select!, #filter!:: Removes elements not specified by a given block.
- * #slice!:: Removes and returns a sequence of elements.
- * #uniq!:: Removes duplicates.
- *
- * === Methods for Combining
- *
- * {#&}[#method-i-26]:: Returns an array containing elements found both in +self+ and a given array.
- * #intersection:: Returns an array containing elements found both in +self+
- * and in each given array.
- * #+:: Returns an array containing all elements of +self+ followed by all elements of a given array.
- * #-:: Returns an array containiing all elements of +self+ that are not found in a given array.
- * {#|}[#method-i-7C]:: Returns an array containing all elements of +self+ and all elements of a given array,
- * duplicates removed.
- * #union:: Returns an array containing all elements of +self+ and all elements of given arrays,
- * duplicates removed.
- * #difference:: Returns an array containing all elements of +self+ that are not found
- * in any of the given arrays..
- * #product:: Returns or yields all combinations of elements from +self+ and given arrays.
- *
- * === Methods for Iterating
- *
- * #each:: Passes each element to a given block.
- * #reverse_each:: Passes each element, in reverse order, to a given block.
- * #each_index:: Passes each element index to a given block.
- * #cycle:: Calls a given block with each element, then does so again,
- * for a specified number of times, or forever.
- * #combination:: Calls a given block with combinations of elements of +self+;
- * a combination does not use the same element more than once.
- * #permutation:: Calls a given block with permutations of elements of +self+;
- * a permutation does not use the same element more than once.
- * #repeated_combination:: Calls a given block with combinations of elements of +self+;
- * a combination may use the same element more than once.
- * #repeated_permutation:: Calls a given block with permutations of elements of +self+;
- * a permutation may use the same element more than once.
- *
- * === Methods for Converting
- *
- * #map, #collect:: Returns an array containing the block return-value for each element.
- * #map!, #collect!:: Replaces each element with a block return-value.
- * #flatten:: Returns an array that is a recursive flattening of +self+.
- * #flatten!:: Replaces each nested array in +self+ with the elements from that array.
- * #inspect, #to_s:: Returns a new String containing the elements.
- * #join:: Returns a newsString containing the elements joined by the field separator.
- * #to_a:: Returns +self+ or a new array containing all elements.
- * #to_ary:: Returns +self+.
- * #to_h:: Returns a new hash formed from the elements.
- * #transpose:: Transposes +self+, which must be an array of arrays.
- * #zip:: Returns a new array of arrays containing +self+ and given arrays;
- * follow the link for details.
- *
- * === Other Methods
- *
- * #*:: Returns one of the following:
- * - With integer argument +n+, a new array that is the concatenation
- * of +n+ copies of +self+.
- * - With string argument +field_separator+, a new string that is equivalent to
- * <tt>join(field_separator)</tt>.
- * #abbrev:: Returns a hash of unambiguous abbreviations for elements.
- * #pack:: Packs the elements into a binary sequence.
- * #sum:: Returns a sum of elements according to either <tt>+</tt> or a given block.
- */
-
void
-Init_Array(void)
+Init_Array()
{
rb_cArray = rb_define_class("Array", rb_cObject);
rb_include_module(rb_cArray, rb_mEnumerable);
- rb_define_alloc_func(rb_cArray, empty_ary_alloc);
+ rb_define_singleton_method(rb_cArray, "new", rb_ary_s_new, -1);
rb_define_singleton_method(rb_cArray, "[]", rb_ary_s_create, -1);
- rb_define_singleton_method(rb_cArray, "try_convert", rb_ary_s_try_convert, 1);
- rb_define_method(rb_cArray, "initialize", rb_ary_initialize, -1);
- rb_define_method(rb_cArray, "initialize_copy", rb_ary_replace, 1);
-
+ rb_define_method(rb_cArray, "to_s", rb_ary_to_s, 0);
rb_define_method(rb_cArray, "inspect", rb_ary_inspect, 0);
- rb_define_alias(rb_cArray, "to_s", "inspect");
rb_define_method(rb_cArray, "to_a", rb_ary_to_a, 0);
- rb_define_method(rb_cArray, "to_h", rb_ary_to_h, 0);
- rb_define_method(rb_cArray, "to_ary", rb_ary_to_ary_m, 0);
+ rb_define_method(rb_cArray, "to_ary", rb_ary_to_a, 0);
+
+ rb_define_method(rb_cArray, "freeze", rb_ary_freeze, 0);
+ rb_define_method(rb_cArray, "frozen?", rb_ary_frozen_p, 0);
rb_define_method(rb_cArray, "==", rb_ary_equal, 1);
rb_define_method(rb_cArray, "eql?", rb_ary_eql, 1);
rb_define_method(rb_cArray, "hash", rb_ary_hash, 0);
+ rb_define_method(rb_cArray, "===", rb_ary_equal, 1);
rb_define_method(rb_cArray, "[]", rb_ary_aref, -1);
rb_define_method(rb_cArray, "[]=", rb_ary_aset, -1);
- rb_define_method(rb_cArray, "at", rb_ary_at, 1);
- rb_define_method(rb_cArray, "fetch", rb_ary_fetch, -1);
- rb_define_method(rb_cArray, "first", rb_ary_first, -1);
- rb_define_method(rb_cArray, "last", rb_ary_last, -1);
- rb_define_method(rb_cArray, "concat", rb_ary_concat_multi, -1);
- rb_define_method(rb_cArray, "union", rb_ary_union_multi, -1);
- rb_define_method(rb_cArray, "difference", rb_ary_difference_multi, -1);
- rb_define_method(rb_cArray, "intersection", rb_ary_intersection_multi, -1);
- rb_define_method(rb_cArray, "intersect?", rb_ary_intersect_p, 1);
+ rb_define_method(rb_cArray, "concat", rb_ary_concat, 1);
rb_define_method(rb_cArray, "<<", rb_ary_push, 1);
- rb_define_method(rb_cArray, "push", rb_ary_push_m, -1);
- rb_define_alias(rb_cArray, "append", "push");
- rb_define_method(rb_cArray, "pop", rb_ary_pop_m, -1);
- rb_define_method(rb_cArray, "shift", rb_ary_shift_m, -1);
- rb_define_method(rb_cArray, "unshift", rb_ary_unshift_m, -1);
- rb_define_alias(rb_cArray, "prepend", "unshift");
- rb_define_method(rb_cArray, "insert", rb_ary_insert, -1);
+ rb_define_method(rb_cArray, "push", rb_ary_push_method, -1);
+ rb_define_method(rb_cArray, "pop", rb_ary_pop, 0);
+ rb_define_method(rb_cArray, "shift", rb_ary_shift, 0);
+ rb_define_method(rb_cArray, "unshift", rb_ary_unshift, 1);
rb_define_method(rb_cArray, "each", rb_ary_each, 0);
rb_define_method(rb_cArray, "each_index", rb_ary_each_index, 0);
rb_define_method(rb_cArray, "reverse_each", rb_ary_reverse_each, 0);
rb_define_method(rb_cArray, "length", rb_ary_length, 0);
- rb_define_method(rb_cArray, "size", rb_ary_length, 0);
+ rb_define_alias(rb_cArray, "size", "length");
rb_define_method(rb_cArray, "empty?", rb_ary_empty_p, 0);
- rb_define_method(rb_cArray, "find_index", rb_ary_index, -1);
- rb_define_method(rb_cArray, "index", rb_ary_index, -1);
- rb_define_method(rb_cArray, "rindex", rb_ary_rindex, -1);
- rb_define_method(rb_cArray, "join", rb_ary_join_m, -1);
- rb_define_method(rb_cArray, "reverse", rb_ary_reverse_m, 0);
- rb_define_method(rb_cArray, "reverse!", rb_ary_reverse_bang, 0);
- rb_define_method(rb_cArray, "rotate", rb_ary_rotate_m, -1);
- rb_define_method(rb_cArray, "rotate!", rb_ary_rotate_bang, -1);
+ rb_define_method(rb_cArray, "index", rb_ary_index, 1);
+ rb_define_method(rb_cArray, "rindex", rb_ary_rindex, 1);
+ rb_define_method(rb_cArray, "indexes", rb_ary_indexes, -1);
+ rb_define_method(rb_cArray, "indices", rb_ary_indexes, -1);
+ rb_define_method(rb_cArray, "clone", rb_ary_clone, 0);
+ rb_define_method(rb_cArray, "dup", rb_ary_dup, 0);
+ rb_define_method(rb_cArray, "join", rb_ary_join_method, -1);
+ rb_define_method(rb_cArray, "reverse", rb_ary_reverse_method, 0);
+ rb_define_method(rb_cArray, "reverse!", rb_ary_reverse, 0);
rb_define_method(rb_cArray, "sort", rb_ary_sort, 0);
rb_define_method(rb_cArray, "sort!", rb_ary_sort_bang, 0);
- rb_define_method(rb_cArray, "sort_by!", rb_ary_sort_by_bang, 0);
- rb_define_method(rb_cArray, "collect", rb_ary_collect, 0);
- rb_define_method(rb_cArray, "collect!", rb_ary_collect_bang, 0);
- rb_define_method(rb_cArray, "map", rb_ary_collect, 0);
- rb_define_method(rb_cArray, "map!", rb_ary_collect_bang, 0);
- rb_define_method(rb_cArray, "select", rb_ary_select, 0);
- rb_define_method(rb_cArray, "select!", rb_ary_select_bang, 0);
- rb_define_method(rb_cArray, "filter", rb_ary_select, 0);
- rb_define_method(rb_cArray, "filter!", rb_ary_select_bang, 0);
- rb_define_method(rb_cArray, "keep_if", rb_ary_keep_if, 0);
- rb_define_method(rb_cArray, "values_at", rb_ary_values_at, -1);
rb_define_method(rb_cArray, "delete", rb_ary_delete, 1);
- rb_define_method(rb_cArray, "delete_at", rb_ary_delete_at_m, 1);
+ rb_define_method(rb_cArray, "delete_at", rb_ary_delete_at, 1);
rb_define_method(rb_cArray, "delete_if", rb_ary_delete_if, 0);
- rb_define_method(rb_cArray, "reject", rb_ary_reject, 0);
- rb_define_method(rb_cArray, "reject!", rb_ary_reject_bang, 0);
- rb_define_method(rb_cArray, "zip", rb_ary_zip, -1);
- rb_define_method(rb_cArray, "transpose", rb_ary_transpose, 0);
- rb_define_method(rb_cArray, "replace", rb_ary_replace, 1);
+ rb_define_method(rb_cArray, "reject!", rb_ary_delete_if, 0);
+ rb_define_method(rb_cArray, "filter", rb_ary_filter, 0);
+ rb_define_method(rb_cArray, "replace", rb_ary_replace_method, 1);
rb_define_method(rb_cArray, "clear", rb_ary_clear, 0);
rb_define_method(rb_cArray, "fill", rb_ary_fill, -1);
rb_define_method(rb_cArray, "include?", rb_ary_includes, 1);
rb_define_method(rb_cArray, "<=>", rb_ary_cmp, 1);
- rb_define_method(rb_cArray, "slice", rb_ary_aref, -1);
- rb_define_method(rb_cArray, "slice!", rb_ary_slice_bang, -1);
-
rb_define_method(rb_cArray, "assoc", rb_ary_assoc, 1);
rb_define_method(rb_cArray, "rassoc", rb_ary_rassoc, 1);
@@ -8351,38 +1490,13 @@ Init_Array(void)
rb_define_method(rb_cArray, "&", rb_ary_and, 1);
rb_define_method(rb_cArray, "|", rb_ary_or, 1);
- rb_define_method(rb_cArray, "max", rb_ary_max, -1);
- rb_define_method(rb_cArray, "min", rb_ary_min, -1);
- rb_define_method(rb_cArray, "minmax", rb_ary_minmax, 0);
-
rb_define_method(rb_cArray, "uniq", rb_ary_uniq, 0);
rb_define_method(rb_cArray, "uniq!", rb_ary_uniq_bang, 0);
rb_define_method(rb_cArray, "compact", rb_ary_compact, 0);
rb_define_method(rb_cArray, "compact!", rb_ary_compact_bang, 0);
- rb_define_method(rb_cArray, "flatten", rb_ary_flatten, -1);
- rb_define_method(rb_cArray, "flatten!", rb_ary_flatten_bang, -1);
- rb_define_method(rb_cArray, "count", rb_ary_count, -1);
- rb_define_method(rb_cArray, "cycle", rb_ary_cycle, -1);
- rb_define_method(rb_cArray, "permutation", rb_ary_permutation, -1);
- rb_define_method(rb_cArray, "combination", rb_ary_combination, 1);
- rb_define_method(rb_cArray, "repeated_permutation", rb_ary_repeated_permutation, 1);
- rb_define_method(rb_cArray, "repeated_combination", rb_ary_repeated_combination, 1);
- rb_define_method(rb_cArray, "product", rb_ary_product, -1);
-
- rb_define_method(rb_cArray, "take", rb_ary_take, 1);
- rb_define_method(rb_cArray, "take_while", rb_ary_take_while, 0);
- rb_define_method(rb_cArray, "drop", rb_ary_drop, 1);
- rb_define_method(rb_cArray, "drop_while", rb_ary_drop_while, 0);
- rb_define_method(rb_cArray, "bsearch", rb_ary_bsearch, 0);
- rb_define_method(rb_cArray, "bsearch_index", rb_ary_bsearch_index, 0);
- rb_define_method(rb_cArray, "any?", rb_ary_any_p, -1);
- rb_define_method(rb_cArray, "all?", rb_ary_all_p, -1);
- rb_define_method(rb_cArray, "none?", rb_ary_none_p, -1);
- rb_define_method(rb_cArray, "one?", rb_ary_one_p, -1);
- rb_define_method(rb_cArray, "dig", rb_ary_dig, -1);
- rb_define_method(rb_cArray, "sum", rb_ary_sum, -1);
-
- rb_define_method(rb_cArray, "deconstruct", rb_ary_deconstruct, 0);
-}
+ rb_define_method(rb_cArray, "flatten", rb_ary_flatten, 0);
+ rb_define_method(rb_cArray, "flatten!", rb_ary_flatten_bang, 0);
+ rb_define_method(rb_cArray, "nitems", rb_ary_nitems, 0);
-#include "array.rbinc"
+ cmp = rb_intern("<=>");
+}
diff --git a/array.rb b/array.rb
deleted file mode 100644
index b9fa9844e6..0000000000
--- a/array.rb
+++ /dev/null
@@ -1,69 +0,0 @@
-class Array
- # call-seq:
- # array.shuffle!(random: Random) -> array
- #
- # Shuffles the elements of +self+ in place.
- # a = [1, 2, 3] #=> [1, 2, 3]
- # a.shuffle! #=> [2, 3, 1]
- # a #=> [2, 3, 1]
- #
- # The optional +random+ argument will be used as the random number generator:
- # a.shuffle!(random: Random.new(1)) #=> [1, 3, 2]
- def shuffle!(random: Random)
- Primitive.rb_ary_shuffle_bang(random)
- end
-
- # call-seq:
- # array.shuffle(random: Random) -> new_ary
- #
- # Returns a new array with elements of +self+ shuffled.
- # a = [1, 2, 3] #=> [1, 2, 3]
- # a.shuffle #=> [2, 3, 1]
- # a #=> [1, 2, 3]
- #
- # The optional +random+ argument will be used as the random number generator:
- # a.shuffle(random: Random.new(1)) #=> [1, 3, 2]
- def shuffle(random: Random)
- Primitive.rb_ary_shuffle(random)
- end
-
- # call-seq:
- # array.sample(random: Random) -> object
- # array.sample(n, random: Random) -> new_ary
- #
- # Returns random elements from +self+.
- #
- # When no arguments are given, returns a random element from +self+:
- # a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
- # a.sample # => 3
- # a.sample # => 8
- # If +self+ is empty, returns +nil+.
- #
- # When argument +n+ is given, returns a new \Array containing +n+ random
- # elements from +self+:
- # a.sample(3) # => [8, 9, 2]
- # a.sample(6) # => [9, 6, 10, 3, 1, 4]
- # Returns no more than <tt>a.size</tt> elements
- # (because no new duplicates are introduced):
- # a.sample(a.size * 2) # => [6, 4, 1, 8, 5, 9, 10, 2, 3, 7]
- # But +self+ may contain duplicates:
- # a = [1, 1, 1, 2, 2, 3]
- # a.sample(a.size * 2) # => [1, 1, 3, 2, 1, 2]
- # The argument +n+ must be a non-negative numeric value.
- # The order of the result array is unrelated to the order of +self+.
- # Returns a new empty \Array if +self+ is empty.
- #
- # The optional +random+ argument will be used as the random number generator:
- # a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
- # a.sample(random: Random.new(1)) #=> 6
- # a.sample(4, random: Random.new(1)) #=> [6, 10, 9, 2]
- def sample(n = (ary = false), random: Random)
- if Primitive.mandatory_only?
- # Primitive.cexpr! %{ rb_ary_sample(self, rb_cRandom, Qfalse, Qfalse) }
- Primitive.ary_sample0
- else
- # Primitive.cexpr! %{ rb_ary_sample(self, random, n, ary) }
- Primitive.ary_sample(random, n, ary)
- end
- end
-end
diff --git a/ast.c b/ast.c
deleted file mode 100644
index 466e7a6a2e..0000000000
--- a/ast.c
+++ /dev/null
@@ -1,736 +0,0 @@
-/* indent-tabs-mode: nil */
-#include "internal.h"
-#include "internal/parse.h"
-#include "internal/symbol.h"
-#include "internal/warnings.h"
-#include "iseq.h"
-#include "node.h"
-#include "ruby.h"
-#include "ruby/encoding.h"
-#include "ruby/util.h"
-#include "vm_core.h"
-
-#include "builtin.h"
-
-static VALUE rb_mAST;
-static VALUE rb_cNode;
-
-struct ASTNodeData {
- rb_ast_t *ast;
- const NODE *node;
-};
-
-static void
-node_gc_mark(void *ptr)
-{
- struct ASTNodeData *data = (struct ASTNodeData *)ptr;
- rb_gc_mark((VALUE)data->ast);
-}
-
-static size_t
-node_memsize(const void *ptr)
-{
- struct ASTNodeData *data = (struct ASTNodeData *)ptr;
- return rb_ast_memsize(data->ast);
-}
-
-static const rb_data_type_t rb_node_type = {
- "AST/node",
- {node_gc_mark, RUBY_TYPED_DEFAULT_FREE, node_memsize,},
- 0, 0,
- RUBY_TYPED_FREE_IMMEDIATELY,
-};
-
-static VALUE rb_ast_node_alloc(VALUE klass);
-
-static void
-setup_node(VALUE obj, rb_ast_t *ast, const NODE *node)
-{
- struct ASTNodeData *data;
-
- TypedData_Get_Struct(obj, struct ASTNodeData, &rb_node_type, data);
- data->ast = ast;
- data->node = node;
-}
-
-static VALUE
-ast_new_internal(rb_ast_t *ast, const NODE *node)
-{
- VALUE obj;
-
- obj = rb_ast_node_alloc(rb_cNode);
- setup_node(obj, ast, node);
-
- return obj;
-}
-
-static VALUE rb_ast_parse_str(VALUE str, VALUE keep_script_lines);
-static VALUE rb_ast_parse_file(VALUE path, VALUE keep_script_lines);
-
-static VALUE
-ast_parse_new(void)
-{
- return rb_parser_set_context(rb_parser_new(), NULL, 0);
-}
-
-static VALUE
-ast_parse_done(rb_ast_t *ast)
-{
- if (!ast->body.root) {
- rb_ast_dispose(ast);
- rb_exc_raise(GET_EC()->errinfo);
- }
-
- return ast_new_internal(ast, (NODE *)ast->body.root);
-}
-
-static VALUE
-ast_s_parse(rb_execution_context_t *ec, VALUE module, VALUE str, VALUE keep_script_lines)
-{
- return rb_ast_parse_str(str, keep_script_lines);
-}
-
-static VALUE
-rb_ast_parse_str(VALUE str, VALUE keep_script_lines)
-{
- rb_ast_t *ast = 0;
-
- StringValue(str);
- VALUE vparser = ast_parse_new();
- if (RTEST(keep_script_lines)) rb_parser_keep_script_lines(vparser);
- ast = rb_parser_compile_string_path(vparser, Qnil, str, 1);
- return ast_parse_done(ast);
-}
-
-static VALUE
-ast_s_parse_file(rb_execution_context_t *ec, VALUE module, VALUE path, VALUE keep_script_lines)
-{
- return rb_ast_parse_file(path, keep_script_lines);
-}
-
-static VALUE
-rb_ast_parse_file(VALUE path, VALUE keep_script_lines)
-{
- VALUE f;
- rb_ast_t *ast = 0;
- rb_encoding *enc = rb_utf8_encoding();
-
- FilePathValue(path);
- f = rb_file_open_str(path, "r");
- rb_funcall(f, rb_intern("set_encoding"), 2, rb_enc_from_encoding(enc), rb_str_new_cstr("-"));
- VALUE vparser = ast_parse_new();
- if (RTEST(keep_script_lines)) rb_parser_keep_script_lines(vparser);
- ast = rb_parser_compile_file_path(vparser, Qnil, f, 1);
- rb_io_close(f);
- return ast_parse_done(ast);
-}
-
-static VALUE
-lex_array(VALUE array, int index)
-{
- VALUE str = rb_ary_entry(array, index);
- if (!NIL_P(str)) {
- StringValue(str);
- if (!rb_enc_asciicompat(rb_enc_get(str))) {
- rb_raise(rb_eArgError, "invalid source encoding");
- }
- }
- return str;
-}
-
-static VALUE
-rb_ast_parse_array(VALUE array, VALUE keep_script_lines)
-{
- rb_ast_t *ast = 0;
-
- array = rb_check_array_type(array);
- VALUE vparser = ast_parse_new();
- if (RTEST(keep_script_lines)) rb_parser_keep_script_lines(vparser);
- ast = rb_parser_compile_generic(vparser, lex_array, Qnil, array, 1);
- return ast_parse_done(ast);
-}
-
-static VALUE node_children(rb_ast_t*, const NODE*);
-
-static VALUE
-node_find(VALUE self, const int node_id)
-{
- VALUE ary;
- long i;
- struct ASTNodeData *data;
- TypedData_Get_Struct(self, struct ASTNodeData, &rb_node_type, data);
-
- if (nd_node_id(data->node) == node_id) return self;
-
- ary = node_children(data->ast, data->node);
-
- for (i = 0; i < RARRAY_LEN(ary); i++) {
- VALUE child = RARRAY_AREF(ary, i);
-
- if (CLASS_OF(child) == rb_cNode) {
- VALUE result = node_find(child, node_id);
- if (RTEST(result)) return result;
- }
- }
-
- return Qnil;
-}
-
-extern VALUE rb_e_script;
-
-static VALUE
-script_lines(VALUE path)
-{
- VALUE hash, lines;
- ID script_lines;
- CONST_ID(script_lines, "SCRIPT_LINES__");
- if (!rb_const_defined_at(rb_cObject, script_lines)) return Qnil;
- hash = rb_const_get_at(rb_cObject, script_lines);
- if (!RB_TYPE_P(hash, T_HASH)) return Qnil;
- lines = rb_hash_lookup(hash, path);
- if (!RB_TYPE_P(lines, T_ARRAY)) return Qnil;
- return lines;
-}
-
-static VALUE
-ast_s_of(rb_execution_context_t *ec, VALUE module, VALUE body, VALUE keep_script_lines)
-{
- VALUE path, node, lines = Qnil;
- const rb_iseq_t *iseq;
- int node_id;
-
- if (rb_frame_info_p(body)) {
- iseq = rb_get_iseq_from_frame_info(body);
- node_id = rb_get_node_id_from_frame_info(body);
- }
- else {
- iseq = NULL;
-
- if (rb_obj_is_proc(body)) {
- iseq = vm_proc_iseq(body);
-
- if (!rb_obj_is_iseq((VALUE)iseq)) return Qnil;
- }
- else {
- iseq = rb_method_iseq(body);
- }
- if (iseq) {
- node_id = iseq->body->location.node_id;
- }
- }
-
- if (!iseq) {
- return Qnil;
- }
- lines = iseq->body->variable.script_lines;
- if (NIL_P(lines) && rb_iseq_from_eval_p(iseq)) {
- rb_raise(rb_eArgError, "cannot get AST for method defined in eval");
- }
- path = rb_iseq_path(iseq);
-
- if (!NIL_P(lines) || !NIL_P(lines = script_lines(path))) {
- node = rb_ast_parse_array(lines, keep_script_lines);
- }
- else if (RSTRING_LEN(path) == 2 && memcmp(RSTRING_PTR(path), "-e", 2) == 0) {
- node = rb_ast_parse_str(rb_e_script, keep_script_lines);
- }
- else {
- node = rb_ast_parse_file(path, keep_script_lines);
- }
-
- return node_find(node, node_id);
-}
-
-static VALUE
-rb_ast_node_alloc(VALUE klass)
-{
- struct ASTNodeData *data;
- VALUE obj = TypedData_Make_Struct(klass, struct ASTNodeData, &rb_node_type, data);
-
- return obj;
-}
-
-static const char*
-node_type_to_str(const NODE *node)
-{
- return (ruby_node_name(nd_type(node)) + rb_strlen_lit("NODE_"));
-}
-
-static VALUE
-ast_node_type(rb_execution_context_t *ec, VALUE self)
-{
- struct ASTNodeData *data;
- TypedData_Get_Struct(self, struct ASTNodeData, &rb_node_type, data);
-
- return rb_sym_intern_ascii_cstr(node_type_to_str(data->node));
-}
-
-static VALUE
-ast_node_node_id(rb_execution_context_t *ec, VALUE self)
-{
- struct ASTNodeData *data;
- TypedData_Get_Struct(self, struct ASTNodeData, &rb_node_type, data);
-
- return INT2FIX(nd_node_id(data->node));
-}
-
-#define NEW_CHILD(ast, node) node ? ast_new_internal(ast, node) : Qnil
-
-static VALUE
-rb_ary_new_from_node_args(rb_ast_t *ast, long n, ...)
-{
- va_list ar;
- VALUE ary;
- long i;
-
- ary = rb_ary_new2(n);
-
- va_start(ar, n);
- for (i=0; i<n; i++) {
- NODE *node;
- node = va_arg(ar, NODE *);
- rb_ary_push(ary, NEW_CHILD(ast, node));
- }
- va_end(ar);
- return ary;
-}
-
-static VALUE
-dump_block(rb_ast_t *ast, const NODE *node)
-{
- VALUE ary = rb_ary_new();
- do {
- rb_ary_push(ary, NEW_CHILD(ast, node->nd_head));
- } while (node->nd_next &&
- nd_type_p(node->nd_next, NODE_BLOCK) &&
- (node = node->nd_next, 1));
- if (node->nd_next) {
- rb_ary_push(ary, NEW_CHILD(ast, node->nd_next));
- }
-
- return ary;
-}
-
-static VALUE
-dump_array(rb_ast_t *ast, const NODE *node)
-{
- VALUE ary = rb_ary_new();
- rb_ary_push(ary, NEW_CHILD(ast, node->nd_head));
-
- while (node->nd_next && nd_type_p(node->nd_next, NODE_LIST)) {
- node = node->nd_next;
- rb_ary_push(ary, NEW_CHILD(ast, node->nd_head));
- }
- rb_ary_push(ary, NEW_CHILD(ast, node->nd_next));
-
- return ary;
-}
-
-static VALUE
-var_name(ID id)
-{
- if (!id) return Qnil;
- if (!rb_id2str(id)) return Qnil;
- return ID2SYM(id);
-}
-
-static VALUE
-no_name_rest(void)
-{
- ID rest;
- CONST_ID(rest, "NODE_SPECIAL_NO_NAME_REST");
- return ID2SYM(rest);
-}
-
-static VALUE
-rest_arg(rb_ast_t *ast, const NODE *rest_arg)
-{
- return NODE_NAMED_REST_P(rest_arg) ? NEW_CHILD(ast, rest_arg) : no_name_rest();
-}
-
-static VALUE
-node_children(rb_ast_t *ast, const NODE *node)
-{
- char name[DECIMAL_SIZE_OF_BITS(sizeof(long) * CHAR_BIT) + 2]; /* including '$' */
-
- enum node_type type = nd_type(node);
- switch (type) {
- case NODE_BLOCK:
- return dump_block(ast, node);
- case NODE_IF:
- return rb_ary_new_from_node_args(ast, 3, node->nd_cond, node->nd_body, node->nd_else);
- case NODE_UNLESS:
- return rb_ary_new_from_node_args(ast, 3, node->nd_cond, node->nd_body, node->nd_else);
- case NODE_CASE:
- return rb_ary_new_from_node_args(ast, 2, node->nd_head, node->nd_body);
- case NODE_CASE2:
- return rb_ary_new_from_node_args(ast, 2, node->nd_head, node->nd_body);
- case NODE_CASE3:
- return rb_ary_new_from_node_args(ast, 2, node->nd_head, node->nd_body);
- case NODE_WHEN:
- return rb_ary_new_from_node_args(ast, 3, node->nd_head, node->nd_body, node->nd_next);
- case NODE_IN:
- return rb_ary_new_from_node_args(ast, 3, node->nd_head, node->nd_body, node->nd_next);
- case NODE_WHILE:
- case NODE_UNTIL:
- return rb_ary_push(rb_ary_new_from_node_args(ast, 2, node->nd_cond, node->nd_body),
- RBOOL(node->nd_state));
- case NODE_ITER:
- case NODE_FOR:
- return rb_ary_new_from_node_args(ast, 2, node->nd_iter, node->nd_body);
- case NODE_FOR_MASGN:
- return rb_ary_new_from_node_args(ast, 1, node->nd_var);
- case NODE_BREAK:
- case NODE_NEXT:
- case NODE_RETURN:
- return rb_ary_new_from_node_args(ast, 1, node->nd_stts);
- case NODE_REDO:
- return rb_ary_new_from_node_args(ast, 0);
- case NODE_RETRY:
- return rb_ary_new_from_node_args(ast, 0);
- case NODE_BEGIN:
- return rb_ary_new_from_node_args(ast, 1, node->nd_body);
- case NODE_RESCUE:
- return rb_ary_new_from_node_args(ast, 3, node->nd_head, node->nd_resq, node->nd_else);
- case NODE_RESBODY:
- return rb_ary_new_from_node_args(ast, 3, node->nd_args, node->nd_body, node->nd_head);
- case NODE_ENSURE:
- return rb_ary_new_from_node_args(ast, 2, node->nd_head, node->nd_ensr);
- case NODE_AND:
- case NODE_OR:
- {
- VALUE ary = rb_ary_new();
-
- while (1) {
- rb_ary_push(ary, NEW_CHILD(ast, node->nd_1st));
- if (!node->nd_2nd || !nd_type_p(node->nd_2nd, type))
- break;
- node = node->nd_2nd;
- }
- rb_ary_push(ary, NEW_CHILD(ast, node->nd_2nd));
- return ary;
- }
- case NODE_MASGN:
- if (NODE_NAMED_REST_P(node->nd_args)) {
- return rb_ary_new_from_node_args(ast, 3, node->nd_value, node->nd_head, node->nd_args);
- }
- else {
- return rb_ary_new_from_args(3, NEW_CHILD(ast, node->nd_value),
- NEW_CHILD(ast, node->nd_head),
- no_name_rest());
- }
- case NODE_LASGN:
- case NODE_DASGN:
- case NODE_IASGN:
- case NODE_CVASGN:
- case NODE_GASGN:
- if (NODE_REQUIRED_KEYWORD_P(node)) {
- return rb_ary_new_from_args(2, var_name(node->nd_vid), ID2SYM(rb_intern("NODE_SPECIAL_REQUIRED_KEYWORD")));
- }
- return rb_ary_new_from_args(2, var_name(node->nd_vid), NEW_CHILD(ast, node->nd_value));
- case NODE_CDECL:
- if (node->nd_vid) {
- return rb_ary_new_from_args(2, ID2SYM(node->nd_vid), NEW_CHILD(ast, node->nd_value));
- }
- return rb_ary_new_from_args(3, NEW_CHILD(ast, node->nd_else), ID2SYM(node->nd_else->nd_mid), NEW_CHILD(ast, node->nd_value));
- case NODE_OP_ASGN1:
- return rb_ary_new_from_args(4, NEW_CHILD(ast, node->nd_recv),
- ID2SYM(node->nd_mid),
- NEW_CHILD(ast, node->nd_args->nd_head),
- NEW_CHILD(ast, node->nd_args->nd_body));
- case NODE_OP_ASGN2:
- return rb_ary_new_from_args(5, NEW_CHILD(ast, node->nd_recv),
- RBOOL(node->nd_next->nd_aid),
- ID2SYM(node->nd_next->nd_vid),
- ID2SYM(node->nd_next->nd_mid),
- NEW_CHILD(ast, node->nd_value));
- case NODE_OP_ASGN_AND:
- return rb_ary_new_from_args(3, NEW_CHILD(ast, node->nd_head), ID2SYM(idANDOP),
- NEW_CHILD(ast, node->nd_value));
- case NODE_OP_ASGN_OR:
- return rb_ary_new_from_args(3, NEW_CHILD(ast, node->nd_head), ID2SYM(idOROP),
- NEW_CHILD(ast, node->nd_value));
- case NODE_OP_CDECL:
- return rb_ary_new_from_args(3, NEW_CHILD(ast, node->nd_head),
- ID2SYM(node->nd_aid),
- NEW_CHILD(ast, node->nd_value));
- case NODE_CALL:
- case NODE_OPCALL:
- case NODE_QCALL:
- return rb_ary_new_from_args(3, NEW_CHILD(ast, node->nd_recv),
- ID2SYM(node->nd_mid),
- NEW_CHILD(ast, node->nd_args));
- case NODE_FCALL:
- return rb_ary_new_from_args(2, ID2SYM(node->nd_mid),
- NEW_CHILD(ast, node->nd_args));
- case NODE_VCALL:
- return rb_ary_new_from_args(1, ID2SYM(node->nd_mid));
- case NODE_SUPER:
- return rb_ary_new_from_node_args(ast, 1, node->nd_args);
- case NODE_ZSUPER:
- return rb_ary_new_from_node_args(ast, 0);
- case NODE_LIST:
- case NODE_VALUES:
- return dump_array(ast, node);
- case NODE_ZLIST:
- return rb_ary_new_from_node_args(ast, 0);
- case NODE_HASH:
- return rb_ary_new_from_node_args(ast, 1, node->nd_head);
- case NODE_YIELD:
- return rb_ary_new_from_node_args(ast, 1, node->nd_head);
- case NODE_LVAR:
- case NODE_DVAR:
- return rb_ary_new_from_args(1, var_name(node->nd_vid));
- case NODE_IVAR:
- case NODE_CONST:
- case NODE_CVAR:
- case NODE_GVAR:
- return rb_ary_new_from_args(1, ID2SYM(node->nd_vid));
- case NODE_NTH_REF:
- snprintf(name, sizeof(name), "$%ld", node->nd_nth);
- return rb_ary_new_from_args(1, ID2SYM(rb_intern(name)));
- case NODE_BACK_REF:
- name[0] = '$';
- name[1] = (char)node->nd_nth;
- name[2] = '\0';
- return rb_ary_new_from_args(1, ID2SYM(rb_intern(name)));
- case NODE_MATCH2:
- if (node->nd_args) {
- return rb_ary_new_from_node_args(ast, 3, node->nd_recv, node->nd_value, node->nd_args);
- }
- return rb_ary_new_from_node_args(ast, 2, node->nd_recv, node->nd_value);
- case NODE_MATCH3:
- return rb_ary_new_from_node_args(ast, 2, node->nd_recv, node->nd_value);
- case NODE_MATCH:
- case NODE_LIT:
- case NODE_STR:
- case NODE_XSTR:
- return rb_ary_new_from_args(1, node->nd_lit);
- case NODE_ONCE:
- return rb_ary_new_from_node_args(ast, 1, node->nd_body);
- case NODE_DSTR:
- case NODE_DXSTR:
- case NODE_DREGX:
- case NODE_DSYM:
- {
- NODE *n = node->nd_next;
- VALUE head = Qnil, next = Qnil;
- if (n) {
- head = NEW_CHILD(ast, n->nd_head);
- next = NEW_CHILD(ast, n->nd_next);
- }
- return rb_ary_new_from_args(3, node->nd_lit, head, next);
- }
- case NODE_EVSTR:
- return rb_ary_new_from_node_args(ast, 1, node->nd_body);
- case NODE_ARGSCAT:
- return rb_ary_new_from_node_args(ast, 2, node->nd_head, node->nd_body);
- case NODE_ARGSPUSH:
- return rb_ary_new_from_node_args(ast, 2, node->nd_head, node->nd_body);
- case NODE_SPLAT:
- return rb_ary_new_from_node_args(ast, 1, node->nd_head);
- case NODE_BLOCK_PASS:
- return rb_ary_new_from_node_args(ast, 2, node->nd_head, node->nd_body);
- case NODE_DEFN:
- return rb_ary_new_from_args(2, ID2SYM(node->nd_mid), NEW_CHILD(ast, node->nd_defn));
- case NODE_DEFS:
- return rb_ary_new_from_args(3, NEW_CHILD(ast, node->nd_recv), ID2SYM(node->nd_mid), NEW_CHILD(ast, node->nd_defn));
- case NODE_ALIAS:
- return rb_ary_new_from_node_args(ast, 2, node->nd_1st, node->nd_2nd);
- case NODE_VALIAS:
- return rb_ary_new_from_args(2, ID2SYM(node->nd_alias), ID2SYM(node->nd_orig));
- case NODE_UNDEF:
- return rb_ary_new_from_node_args(ast, 1, node->nd_undef);
- case NODE_CLASS:
- return rb_ary_new_from_node_args(ast, 3, node->nd_cpath, node->nd_super, node->nd_body);
- case NODE_MODULE:
- return rb_ary_new_from_node_args(ast, 2, node->nd_cpath, node->nd_body);
- case NODE_SCLASS:
- return rb_ary_new_from_node_args(ast, 2, node->nd_recv, node->nd_body);
- case NODE_COLON2:
- return rb_ary_new_from_args(2, NEW_CHILD(ast, node->nd_head), ID2SYM(node->nd_mid));
- case NODE_COLON3:
- return rb_ary_new_from_args(1, ID2SYM(node->nd_mid));
- case NODE_DOT2:
- case NODE_DOT3:
- case NODE_FLIP2:
- case NODE_FLIP3:
- return rb_ary_new_from_node_args(ast, 2, node->nd_beg, node->nd_end);
- case NODE_SELF:
- return rb_ary_new_from_node_args(ast, 0);
- case NODE_NIL:
- return rb_ary_new_from_node_args(ast, 0);
- case NODE_TRUE:
- return rb_ary_new_from_node_args(ast, 0);
- case NODE_FALSE:
- return rb_ary_new_from_node_args(ast, 0);
- case NODE_ERRINFO:
- return rb_ary_new_from_node_args(ast, 0);
- case NODE_DEFINED:
- return rb_ary_new_from_node_args(ast, 1, node->nd_head);
- case NODE_POSTEXE:
- return rb_ary_new_from_node_args(ast, 1, node->nd_body);
- case NODE_ATTRASGN:
- return rb_ary_new_from_args(3, NEW_CHILD(ast, node->nd_recv), ID2SYM(node->nd_mid), NEW_CHILD(ast, node->nd_args));
- case NODE_LAMBDA:
- return rb_ary_new_from_node_args(ast, 1, node->nd_body);
- case NODE_OPT_ARG:
- return rb_ary_new_from_node_args(ast, 2, node->nd_body, node->nd_next);
- case NODE_KW_ARG:
- return rb_ary_new_from_node_args(ast, 2, node->nd_body, node->nd_next);
- case NODE_POSTARG:
- if (NODE_NAMED_REST_P(node->nd_1st)) {
- return rb_ary_new_from_node_args(ast, 2, node->nd_1st, node->nd_2nd);
- }
- return rb_ary_new_from_args(2, no_name_rest(),
- NEW_CHILD(ast, node->nd_2nd));
- case NODE_ARGS:
- {
- struct rb_args_info *ainfo = node->nd_ainfo;
- return rb_ary_new_from_args(10,
- INT2NUM(ainfo->pre_args_num),
- NEW_CHILD(ast, ainfo->pre_init),
- NEW_CHILD(ast, ainfo->opt_args),
- var_name(ainfo->first_post_arg),
- INT2NUM(ainfo->post_args_num),
- NEW_CHILD(ast, ainfo->post_init),
- (ainfo->rest_arg == NODE_SPECIAL_EXCESSIVE_COMMA
- ? ID2SYM(rb_intern("NODE_SPECIAL_EXCESSIVE_COMMA"))
- : var_name(ainfo->rest_arg)),
- (ainfo->no_kwarg ? Qfalse : NEW_CHILD(ast, ainfo->kw_args)),
- (ainfo->no_kwarg ? Qfalse : NEW_CHILD(ast, ainfo->kw_rest_arg)),
- var_name(ainfo->block_arg));
- }
- case NODE_SCOPE:
- {
- rb_ast_id_table_t *tbl = node->nd_tbl;
- int i, size = tbl ? tbl->size : 0;
- VALUE locals = rb_ary_new_capa(size);
- for (i = 0; i < size; i++) {
- rb_ary_push(locals, var_name(tbl->ids[i]));
- }
- return rb_ary_new_from_args(3, locals, NEW_CHILD(ast, node->nd_args), NEW_CHILD(ast, node->nd_body));
- }
- case NODE_ARYPTN:
- {
- struct rb_ary_pattern_info *apinfo = node->nd_apinfo;
- VALUE rest = rest_arg(ast, apinfo->rest_arg);
- return rb_ary_new_from_args(4,
- NEW_CHILD(ast, node->nd_pconst),
- NEW_CHILD(ast, apinfo->pre_args),
- rest,
- NEW_CHILD(ast, apinfo->post_args));
- }
- case NODE_FNDPTN:
- {
- struct rb_fnd_pattern_info *fpinfo = node->nd_fpinfo;
- VALUE pre_rest = rest_arg(ast, fpinfo->pre_rest_arg);
- VALUE post_rest = rest_arg(ast, fpinfo->post_rest_arg);
- return rb_ary_new_from_args(4,
- NEW_CHILD(ast, node->nd_pconst),
- pre_rest,
- NEW_CHILD(ast, fpinfo->args),
- post_rest);
- }
- case NODE_HSHPTN:
- {
- VALUE kwrest = node->nd_pkwrestarg == NODE_SPECIAL_NO_REST_KEYWORD ? ID2SYM(rb_intern("NODE_SPECIAL_NO_REST_KEYWORD")) :
- NEW_CHILD(ast, node->nd_pkwrestarg);
-
- return rb_ary_new_from_args(3,
- NEW_CHILD(ast, node->nd_pconst),
- NEW_CHILD(ast, node->nd_pkwargs),
- kwrest);
- }
- case NODE_ARGS_AUX:
- case NODE_LAST:
- break;
- }
-
- rb_bug("node_children: unknown node: %s", ruby_node_name(type));
-}
-
-static VALUE
-ast_node_children(rb_execution_context_t *ec, VALUE self)
-{
- struct ASTNodeData *data;
- TypedData_Get_Struct(self, struct ASTNodeData, &rb_node_type, data);
-
- return node_children(data->ast, data->node);
-}
-
-static VALUE
-ast_node_first_lineno(rb_execution_context_t *ec, VALUE self)
-{
- struct ASTNodeData *data;
- TypedData_Get_Struct(self, struct ASTNodeData, &rb_node_type, data);
-
- return INT2NUM(nd_first_lineno(data->node));
-}
-
-static VALUE
-ast_node_first_column(rb_execution_context_t *ec, VALUE self)
-{
- struct ASTNodeData *data;
- TypedData_Get_Struct(self, struct ASTNodeData, &rb_node_type, data);
-
- return INT2NUM(nd_first_column(data->node));
-}
-
-static VALUE
-ast_node_last_lineno(rb_execution_context_t *ec, VALUE self)
-{
- struct ASTNodeData *data;
- TypedData_Get_Struct(self, struct ASTNodeData, &rb_node_type, data);
-
- return INT2NUM(nd_last_lineno(data->node));
-}
-
-static VALUE
-ast_node_last_column(rb_execution_context_t *ec, VALUE self)
-{
- struct ASTNodeData *data;
- TypedData_Get_Struct(self, struct ASTNodeData, &rb_node_type, data);
-
- return INT2NUM(nd_last_column(data->node));
-}
-
-static VALUE
-ast_node_inspect(rb_execution_context_t *ec, VALUE self)
-{
- VALUE str;
- VALUE cname;
- struct ASTNodeData *data;
- TypedData_Get_Struct(self, struct ASTNodeData, &rb_node_type, data);
-
- cname = rb_class_path(rb_obj_class(self));
- str = rb_str_new2("#<");
-
- rb_str_append(str, cname);
- rb_str_catf(str, ":%s@%d:%d-%d:%d>",
- node_type_to_str(data->node),
- nd_first_lineno(data->node), nd_first_column(data->node),
- nd_last_lineno(data->node), nd_last_column(data->node));
-
- return str;
-}
-
-static VALUE
-ast_node_script_lines(rb_execution_context_t *ec, VALUE self)
-{
- struct ASTNodeData *data;
- TypedData_Get_Struct(self, struct ASTNodeData, &rb_node_type, data);
- VALUE ret = data->ast->body.script_lines;
- if (!RB_TYPE_P(ret, T_ARRAY)) return Qnil;
- return ret;
-}
-
-#include "ast.rbinc"
-
-void
-Init_ast(void)
-{
- rb_mAST = rb_define_module_under(rb_cRubyVM, "AbstractSyntaxTree");
- rb_cNode = rb_define_class_under(rb_mAST, "Node", rb_cObject);
- rb_undef_alloc_func(rb_cNode);
-}
diff --git a/ast.rb b/ast.rb
deleted file mode 100644
index f866bd23e5..0000000000
--- a/ast.rb
+++ /dev/null
@@ -1,190 +0,0 @@
-# for ast.c
-
-# AbstractSyntaxTree provides methods to parse Ruby code into
-# abstract syntax trees. The nodes in the tree
-# are instances of RubyVM::AbstractSyntaxTree::Node.
-#
-# This module is MRI specific as it exposes implementation details
-# of the MRI abstract syntax tree.
-#
-# This module is experimental and its API is not stable, therefore it might
-# change without notice. As examples, the order of children nodes is not
-# guaranteed, the number of children nodes might change, there is no way to
-# access children nodes by name, etc.
-#
-# If you are looking for a stable API or an API working under multiple Ruby
-# implementations, consider using the _parser_ gem or Ripper. If you would
-# like to make RubyVM::AbstractSyntaxTree stable, please join the discussion
-# at https://bugs.ruby-lang.org/issues/14844.
-#
-module RubyVM::AbstractSyntaxTree
-
- # call-seq:
- # RubyVM::AbstractSyntaxTree.parse(string) -> RubyVM::AbstractSyntaxTree::Node
- #
- # Parses the given _string_ into an abstract syntax tree,
- # returning the root node of that tree.
- #
- # SyntaxError is raised if the given _string_ is invalid syntax.
- #
- # RubyVM::AbstractSyntaxTree.parse("x = 1 + 2")
- # # => #<RubyVM::AbstractSyntaxTree::Node:SCOPE@1:0-1:9>
- def self.parse string, keep_script_lines: false
- Primitive.ast_s_parse string, keep_script_lines
- end
-
- # call-seq:
- # RubyVM::AbstractSyntaxTree.parse_file(pathname) -> RubyVM::AbstractSyntaxTree::Node
- #
- # Reads the file from _pathname_, then parses it like ::parse,
- # returning the root node of the abstract syntax tree.
- #
- # SyntaxError is raised if _pathname_'s contents are not
- # valid Ruby syntax.
- #
- # RubyVM::AbstractSyntaxTree.parse_file("my-app/app.rb")
- # # => #<RubyVM::AbstractSyntaxTree::Node:SCOPE@1:0-31:3>
- def self.parse_file pathname, keep_script_lines: false
- Primitive.ast_s_parse_file pathname, keep_script_lines
- end
-
- # call-seq:
- # RubyVM::AbstractSyntaxTree.of(proc) -> RubyVM::AbstractSyntaxTree::Node
- # RubyVM::AbstractSyntaxTree.of(method) -> RubyVM::AbstractSyntaxTree::Node
- #
- # Returns AST nodes of the given _proc_ or _method_.
- #
- # RubyVM::AbstractSyntaxTree.of(proc {1 + 2})
- # # => #<RubyVM::AbstractSyntaxTree::Node:SCOPE@1:35-1:42>
- #
- # def hello
- # puts "hello, world"
- # end
- #
- # RubyVM::AbstractSyntaxTree.of(method(:hello))
- # # => #<RubyVM::AbstractSyntaxTree::Node:SCOPE@1:0-3:3>
- def self.of body, keep_script_lines: false
- Primitive.ast_s_of body, keep_script_lines
- end
-
- # RubyVM::AbstractSyntaxTree::Node instances are created by parse methods in
- # RubyVM::AbstractSyntaxTree.
- #
- # This class is MRI specific.
- #
- class Node
-
- # call-seq:
- # node.type -> symbol
- #
- # Returns the type of this node as a symbol.
- #
- # root = RubyVM::AbstractSyntaxTree.parse("x = 1 + 2")
- # root.type # => :SCOPE
- # lasgn = root.children[2]
- # lasgn.type # => :LASGN
- # call = lasgn.children[1]
- # call.type # => :OPCALL
- def type
- Primitive.ast_node_type
- end
-
- # call-seq:
- # node.first_lineno -> integer
- #
- # The line number in the source code where this AST's text began.
- def first_lineno
- Primitive.ast_node_first_lineno
- end
-
- # call-seq:
- # node.first_column -> integer
- #
- # The column number in the source code where this AST's text began.
- def first_column
- Primitive.ast_node_first_column
- end
-
- # call-seq:
- # node.last_lineno -> integer
- #
- # The line number in the source code where this AST's text ended.
- def last_lineno
- Primitive.ast_node_last_lineno
- end
-
- # call-seq:
- # node.last_column -> integer
- #
- # The column number in the source code where this AST's text ended.
- def last_column
- Primitive.ast_node_last_column
- end
-
- # call-seq:
- # node.children -> array
- #
- # Returns AST nodes under this one. Each kind of node
- # has different children, depending on what kind of node it is.
- #
- # The returned array may contain other nodes or <code>nil</code>.
- def children
- Primitive.ast_node_children
- end
-
- # call-seq:
- # node.inspect -> string
- #
- # Returns debugging information about this node as a string.
- def inspect
- Primitive.ast_node_inspect
- end
-
- # call-seq:
- # node.node_id -> integer
- #
- # Returns an internal node_id number.
- # Note that this is an API for ruby internal use, debugging,
- # and research. Do not use this for any other purpose.
- # The compatibility is not guaranteed.
- def node_id
- Primitive.ast_node_node_id
- end
-
- # call-seq:
- # node.script_lines -> array
- #
- # Returns the original source code as an array of lines.
- #
- # Note that this is an API for ruby internal use, debugging,
- # and research. Do not use this for any other purpose.
- # The compatibility is not guaranteed.
- def script_lines
- Primitive.ast_node_script_lines
- end
-
- # call-seq:
- # node.source -> string
- #
- # Returns the code fragment that corresponds to this AST.
- #
- # Note that this is an API for ruby internal use, debugging,
- # and research. Do not use this for any other purpose.
- # The compatibility is not guaranteed.
- #
- # Also note that this API may return an incomplete code fragment
- # that does not parse; for example, a here document following
- # an expression may be dropped.
- def source
- lines = script_lines
- if lines
- lines = lines[first_lineno - 1 .. last_lineno - 1]
- lines[-1] = lines[-1][0...last_column]
- lines[0] = lines[0][first_column..-1]
- lines.join
- else
- nil
- end
- end
- end
-end
diff --git a/autogen.sh b/autogen.sh
deleted file mode 100755
index f8cdf3c0c1..0000000000
--- a/autogen.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/sh
-
-PWD=
-case "$0" in
-*/*) srcdir=`dirname $0`;;
-*) srcdir="";;
-esac
-
-symlink='--install --symlink'
-case " $* " in
- *" -i "*|*" --install "*)
- # reset to copy missing standard auxiliary files, instead of symlinks
- symlink=
- ;;
-esac
-
-exec ${AUTORECONF:-autoreconf} ${symlink} "$@" ${srcdir:+"$srcdir"}
diff --git a/basictest/runner.rb b/basictest/runner.rb
deleted file mode 100755
index 0f398e7acc..0000000000
--- a/basictest/runner.rb
+++ /dev/null
@@ -1,33 +0,0 @@
-#! ./miniruby
-
-exit if defined?(CROSS_COMPILING) and CROSS_COMPILING
-ruby = ENV["RUBY"]
-unless ruby
- load './rbconfig.rb'
- ruby = "./#{RbConfig::CONFIG['ruby_install_name']}#{RbConfig::CONFIG['EXEEXT']}"
-end
-unless File.exist? ruby
- print "#{ruby} is not found.\n"
- print "Try `make' first, then `make test', please.\n"
- exit false
-end
-ARGV[0] and opt = ARGV[0][/\A--run-opt=(.*)/, 1] and ARGV.shift
-
-$stderr.reopen($stdout)
-error = ''
-
-srcdir = File.expand_path('..', File.dirname(__FILE__))
-if env = ENV["RUBYOPT"]
- ENV["RUBYOPT"] = env + " -W1"
-end
-`#{ruby} #{opt} -W1 #{srcdir}/basictest/test.rb #{ARGV.join(' ')}`.each_line do |line|
- if line =~ /^end of test/
- print "\ntest succeeded\n"
- exit true
- end
- error << line if %r:^(basictest/test.rb|not): =~ line
-end
-puts
-print error
-print "test failed\n"
-exit false
diff --git a/basictest/test.rb b/basictest/test.rb
deleted file mode 100755
index 52008b78db..0000000000
--- a/basictest/test.rb
+++ /dev/null
@@ -1,2364 +0,0 @@
-#! /usr/bin/env ruby
-# -*- coding: us-ascii -*-
-
-$testnum=0
-$ntest=0
-$failed = 0
-class Progress
- def initialize
- @color = nil
- @tty = nil
- @quiet = nil
- @verbose = nil
- ARGV.each do |arg|
- case arg
- when /\A--color(?:=(?:always|(auto)|(never)|(.*)))?\z/
- warn "unknown --color argument: #$3" if $3
- @color = $1 ? nil : !$2
- when /\A--tty(=(?:yes|(no)|(.*)))?\z/
- warn "unknown --tty argument: #$3" if $3
- @tty = !$1 || !$2
- true
- when /\A-(q|-quiet)\z/
- @quiet = true
- when /\A-(v|-verbose)\z/
- @verbose = true
- end
- end
- @tty = STDERR.tty? && !STDOUT.tty? && /dumb/ !~ ENV["TERM"] if @tty.nil?
- @eol = @tty && !@verbose ? "\r\e[K\r" : "\n"
- case @color
- when nil
- @color = @tty
- end
- if @color
- # dircolors-like style
- colors = (colors = ENV['TEST_COLORS']) ? Hash[colors.scan(/(\w+)=([^:\n]*)/)] : {}
- begin
- File.read(File.join(__dir__, "../tool/colors")).scan(/(\w+)=([^:\n]*)/) do |n, c|
- colors[n] ||= c
- end
- rescue
- end
- @passed = "\e[;#{colors["pass"] || "32"}m"
- @failed = "\e[;#{colors["fail"] || "31"}m"
- @reset = "\e[m"
- else
- @passed = @failed = @reset = ""
- end
- extend(Rotator) if @tty
- end
-
- def passed_string
- "."
- end
- def failed_string
- "#{@failed}F#{@reset}"
- end
- def init_string
- end
- def finish_string
- if @quiet
- @eol
- else
- "#{@passed}#{@ok ? 'OK' : ''} #{$testnum}#{@reset}#{@eol}"
- end
- end
- def pass
- STDERR.print passed_string
- end
- def fail
- @ok = false
- STDERR.print failed_string
- end
- def init
- @ok = true
- STDERR.print init_string
- end
- def finish
- STDERR.print finish_string
- end
-
- module Rotator
- ROTATOR = %w[- \\ | /]
- BS = "\b" * ROTATOR[0].size
- def passed_string
- "#{BS}#{ROTATOR[(@count += 1) % ROTATOR.size]}"
- end
- def failed_string
- "#{BS}#{super}#{ROTATOR[@count % ROTATOR.size]}"
- end
- def init_string
- @count = 0
- " "
- end
- def finish_string
- s = "#{BS}#{' ' * BS.size}#{BS}#{super}"
- s.gsub!(/\n/, "\r\e[2K\r") if @quiet
- s
- end
- end
-end
-PROGRESS = Progress.new
-
-def test_check(what)
- unless $ntest.zero?
- PROGRESS.finish
- end
- STDERR.print "#{$0}:#{what} "
- PROGRESS.init
- $what = what
- $testnum = 0
-end
-
-def test_ok(cond,n=1)
- $testnum+=1
- $ntest+=1
- where = (st = caller(n)) ? st[0] : "caller error! (n=#{n}, trace=#{caller(0).join(', ')}"
- if cond
- PROGRESS.pass
- printf "ok %d (%s)\n", $testnum, where
- else
- PROGRESS.fail
- printf "not ok %s %d -- %s\n", $what, $testnum, where
- $failed+=1
- end
- STDOUT.flush
- STDERR.flush
-end
-
-# make sure conditional operators work
-
-test_check "assignment"
-
-a=[]; a[0] ||= "bar";
-test_ok(a[0] == "bar")
-h={}; h["foo"] ||= "bar";
-test_ok(h["foo"] == "bar")
-
-aa = 5
-aa ||= 25
-test_ok(aa == 5)
-bb ||= 25
-test_ok(bb == 25)
-cc &&=33
-test_ok(cc == nil)
-cc = 5
-cc &&=44
-test_ok(cc == 44)
-
-a = nil; test_ok(a == nil)
-a = 1; test_ok(a == 1)
-a = []; test_ok(a == [])
-a = [1]; test_ok(a == [1])
-a = [nil]; test_ok(a == [nil])
-a = [[]]; test_ok(a == [[]])
-a = [1,2]; test_ok(a == [1,2])
-a = [*[]]; test_ok(a == [])
-a = [*[1]]; test_ok(a == [1])
-a = [*[1,2]]; test_ok(a == [1,2])
-
-a = *[]; test_ok(a == [])
-a = *[1]; test_ok(a == [1])
-a = *[nil]; test_ok(a == [nil])
-a = *[[]]; test_ok(a == [[]])
-a = *[1,2]; test_ok(a == [1,2])
-a = *[*[]]; test_ok(a == [])
-a = *[*[1]]; test_ok(a == [1])
-a = *[*[1,2]]; test_ok(a == [1,2])
-
-a, = nil; test_ok(a == nil)
-a, = 1; test_ok(a == 1)
-a, = []; test_ok(a == nil)
-a, = [1]; test_ok(a == 1)
-a, = [nil]; test_ok(a == nil)
-a, = [[]]; test_ok(a == [])
-a, = 1,2; test_ok(a == 1)
-a, = [1,2]; test_ok(a == 1)
-a, = [*[]]; test_ok(a == nil)
-a, = [*[1]]; test_ok(a == 1)
-a, = *[1,2]; test_ok(a == 1)
-a, = [*[1,2]]; test_ok(a == 1)
-
-a, = *[]; test_ok(a == nil)
-a, = *[1]; test_ok(a == 1)
-a, = *[nil]; test_ok(a == nil)
-a, = *[[]]; test_ok(a == [])
-a, = *[1,2]; test_ok(a == 1)
-a, = *[*[]]; test_ok(a == nil)
-a, = *[*[1]]; test_ok(a == 1)
-a, = *[*[1,2]]; test_ok(a == 1)
-
-*a = nil; test_ok(a == [nil])
-*a = 1; test_ok(a == [1])
-*a = []; test_ok(a == [])
-*a = [1]; test_ok(a == [1])
-*a = [nil]; test_ok(a == [nil])
-*a = [[]]; test_ok(a == [[]])
-*a = [1,2]; test_ok(a == [1,2])
-*a = [*[]]; test_ok(a == [])
-*a = [*[1]]; test_ok(a == [1])
-*a = [*[1,2]]; test_ok(a == [1,2])
-
-*a = *[]; test_ok(a == [])
-*a = *[1]; test_ok(a == [1])
-*a = *[nil]; test_ok(a == [nil])
-*a = *[[]]; test_ok(a == [[]])
-*a = *[1,2]; test_ok(a == [1,2])
-*a = *[*[]]; test_ok(a == [])
-*a = *[*[1]]; test_ok(a == [1])
-*a = *[*[1,2]]; test_ok(a == [1,2])
-
-a,b,*c = nil; test_ok([a,b,c] == [nil,nil,[]])
-a,b,*c = 1; test_ok([a,b,c] == [1,nil,[]])
-a,b,*c = []; test_ok([a,b,c] == [nil,nil,[]])
-a,b,*c = [1]; test_ok([a,b,c] == [1,nil,[]])
-a,b,*c = [nil]; test_ok([a,b,c] == [nil,nil,[]])
-a,b,*c = [[]]; test_ok([a,b,c] == [[],nil,[]])
-a,b,*c = [1,2]; test_ok([a,b,c] == [1,2,[]])
-a,b,*c = [*[]]; test_ok([a,b,c] == [nil,nil,[]])
-a,b,*c = [*[1]]; test_ok([a,b,c] == [1,nil,[]])
-a,b,*c = [*[1,2]]; test_ok([a,b,c] == [1,2,[]])
-
-a,b,*c = *[]; test_ok([a,b,c] == [nil,nil,[]])
-a,b,*c = *[1]; test_ok([a,b,c] == [1,nil,[]])
-a,b,*c = *[nil]; test_ok([a,b,c] == [nil,nil,[]])
-a,b,*c = *[[]]; test_ok([a,b,c] == [[],nil,[]])
-a,b,*c = *[1,2]; test_ok([a,b,c] == [1,2,[]])
-a,b,*c = *[*[]]; test_ok([a,b,c] == [nil,nil,[]])
-a,b,*c = *[*[1]]; test_ok([a,b,c] == [1,nil,[]])
-a,b,*c = *[*[1,2]]; test_ok([a,b,c] == [1,2,[]])
-
-def f; yield nil; end; f {|a| test_ok(a == nil)}
-def f; yield 1; end; f {|a| test_ok(a == 1)}
-def f; yield []; end; f {|a| test_ok(a == [])}
-def f; yield [1]; end; f {|a| test_ok(a == [1])}
-def f; yield [nil]; end; f {|a| test_ok(a == [nil])}
-def f; yield [[]]; end; f {|a| test_ok(a == [[]])}
-def f; yield [*[]]; end; f {|a| test_ok(a == [])}
-def f; yield [*[1]]; end; f {|a| test_ok(a == [1])}
-def f; yield [*[1,2]]; end; f {|a| test_ok(a == [1,2])}
-def f; yield *[]; end; f {|a| test_ok(a == nil)}
-def f; yield *[1]; end; f {|a| test_ok(a == 1)}
-def f; yield *[nil]; end; f {|a| test_ok(a == nil)}
-def f; yield *[[]]; end; f {|a| test_ok(a == [])}
-def f; yield *[*[]]; end; f {|a| test_ok(a == nil)}
-def f; yield *[*[1]]; end; f {|a| test_ok(a == 1)}
-def f; yield *[*[1,2]]; end; f {|a| test_ok(a == 1)}
-
-def f; yield; end; f {|a,| test_ok(a == nil)}
-def f; yield nil; end; f {|a,| test_ok(a == nil)}
-def f; yield 1; end; f {|a,| test_ok(a == 1)}
-def f; yield []; end; f {|a,| test_ok(a == nil)}
-def f; yield [1]; end; f {|a,| test_ok(a == 1)}
-def f; yield [nil]; end; f {|a,| test_ok(a == nil)}
-def f; yield [[]]; end; f {|a,| test_ok(a == [])}
-def f; yield [*[]]; end; f {|a,| test_ok(a == nil)}
-def f; yield [*[1]]; end; f {|a,| test_ok(a == 1)}
-def f; yield [*[1,2]]; end; f {|a,| test_ok(a == 1)}
-
-def f; yield *[]; end; f {|a,| test_ok(a == nil)}
-def f; yield *[1]; end; f {|a,| test_ok(a == 1)}
-def f; yield *[nil]; end; f {|a,| test_ok(a == nil)}
-def f; yield *[[]]; end; f {|a,| test_ok(a == nil)}
-def f; yield *[*[]]; end; f {|a,| test_ok(a == nil)}
-def f; yield *[*[1]]; end; f {|a,| test_ok(a == 1)}
-def f; yield *[*[1,2]]; end; f {|a,| test_ok(a == 1)}
-
-def f; yield; end; f {|*a| test_ok(a == [])}
-def f; yield nil; end; f {|*a| test_ok(a == [nil])}
-def f; yield 1; end; f {|*a| test_ok(a == [1])}
-def f; yield []; end; f {|*a| test_ok(a == [[]])}
-def f; yield [1]; end; f {|*a| test_ok(a == [[1]])}
-def f; yield [nil]; end; f {|*a| test_ok(a == [[nil]])}
-def f; yield [[]]; end; f {|*a| test_ok(a == [[[]]])}
-def f; yield [1,2]; end; f {|*a| test_ok(a == [[1,2]])}
-def f; yield [*[]]; end; f {|*a| test_ok(a == [[]])}
-def f; yield [*[1]]; end; f {|*a| test_ok(a == [[1]])}
-def f; yield [*[1,2]]; end; f {|*a| test_ok(a == [[1,2]])}
-
-def f; yield *[]; end; f {|*a| test_ok(a == [])}
-def f; yield *[1]; end; f {|*a| test_ok(a == [1])}
-def f; yield *[nil]; end; f {|*a| test_ok(a == [nil])}
-def f; yield *[[]]; end; f {|*a| test_ok(a == [[]])}
-def f; yield *[*[]]; end; f {|*a| test_ok(a == [])}
-def f; yield *[*[1]]; end; f {|*a| test_ok(a == [1])}
-def f; yield *[*[1,2]]; end; f {|*a| test_ok(a == [1,2])}
-
-def f; yield; end; f {|a,b,*c| test_ok([a,b,c] == [nil,nil,[]])}
-def f; yield nil; end; f {|a,b,*c| test_ok([a,b,c] == [nil,nil,[]])}
-def f; yield 1; end; f {|a,b,*c| test_ok([a,b,c] == [1,nil,[]])}
-def f; yield []; end; f {|a,b,*c| test_ok([a,b,c] == [nil,nil,[]])}
-def f; yield [1]; end; f {|a,b,*c| test_ok([a,b,c] == [1,nil,[]])}
-def f; yield [nil]; end; f {|a,b,*c| test_ok([a,b,c] == [nil,nil,[]])}
-def f; yield [[]]; end; f {|a,b,*c| test_ok([a,b,c] == [[],nil,[]])}
-def f; yield [*[]]; end; f {|a,b,*c| test_ok([a,b,c] == [nil,nil,[]])}
-def f; yield [*[1]]; end; f {|a,b,*c| test_ok([a,b,c] == [1,nil,[]])}
-def f; yield [*[1,2]]; end; f {|a,b,*c| test_ok([a,b,c] == [1,2,[]])}
-
-def f; yield *[]; end; f {|a,b,*c| test_ok([a,b,c] == [nil,nil,[]])}
-def f; yield *[1]; end; f {|a,b,*c| test_ok([a,b,c] == [1,nil,[]])}
-def f; yield *[nil]; end; f {|a,b,*c| test_ok([a,b,c] == [nil,nil,[]])}
-def f; yield *[[]]; end; f {|a,b,*c| test_ok([a,b,c] == [nil,nil,[]])}
-def f; yield *[*[]]; end; f {|a,b,*c| test_ok([a,b,c] == [nil,nil,[]])}
-def f; yield *[*[1]]; end; f {|a,b,*c| test_ok([a,b,c] == [1,nil,[]])}
-def f; yield *[*[1,2]]; end; f {|a,b,*c| test_ok([a,b,c] == [1,2,[]])}
-
-def r; return; end; a = r(); test_ok(a == nil)
-def r; return nil; end; a = r(); test_ok(a == nil)
-def r; return 1; end; a = r(); test_ok(a == 1)
-def r; return []; end; a = r(); test_ok(a == [])
-def r; return [1]; end; a = r(); test_ok(a == [1])
-def r; return [nil]; end; a = r(); test_ok(a == [nil])
-def r; return [[]]; end; a = r(); test_ok(a == [[]])
-def r; return [*[]]; end; a = r(); test_ok(a == [])
-def r; return [*[1]]; end; a = r(); test_ok(a == [1])
-def r; return [*[1,2]]; end; a = r(); test_ok(a == [1,2])
-
-def r; return *[]; end; a = r(); test_ok(a == [])
-def r; return *[1]; end; a = r(); test_ok(a == [1])
-def r; return *[nil]; end; a = r(); test_ok(a == [nil])
-def r; return *[[]]; end; a = r(); test_ok(a == [[]])
-def r; return *[*[]]; end; a = r(); test_ok(a == [])
-def r; return *[*[1]]; end; a = r(); test_ok(a == [1])
-def r; return *[*[1,2]]; end; a = r(); test_ok(a == [1,2])
-
-def r; return *[[]]; end; a = *r(); test_ok(a == [[]])
-def r; return *[*[1,2]]; end; a = *r(); test_ok(a == [1,2])
-
-def r; return; end; *a = r(); test_ok(a == [nil])
-def r; return nil; end; *a = r(); test_ok(a == [nil])
-def r; return 1; end; *a = r(); test_ok(a == [1])
-def r; return []; end; *a = r(); test_ok(a == [])
-def r; return [1]; end; *a = r(); test_ok(a == [1])
-def r; return [nil]; end; *a = r(); test_ok(a == [nil])
-def r; return [[]]; end; *a = r(); test_ok(a == [[]])
-def r; return [1,2]; end; *a = r(); test_ok(a == [1,2])
-def r; return [*[]]; end; *a = r(); test_ok(a == [])
-def r; return [*[1]]; end; *a = r(); test_ok(a == [1])
-def r; return [*[1,2]]; end; *a = r(); test_ok(a == [1,2])
-
-def r; return *[]; end; *a = r(); test_ok(a == [])
-def r; return *[1]; end; *a = r(); test_ok(a == [1])
-def r; return *[nil]; end; *a = r(); test_ok(a == [nil])
-def r; return *[[]]; end; *a = r(); test_ok(a == [[]])
-def r; return *[1,2]; end; *a = r(); test_ok(a == [1,2])
-def r; return *[*[]]; end; *a = r(); test_ok(a == [])
-def r; return *[*[1]]; end; *a = r(); test_ok(a == [1])
-def r; return *[*[1,2]]; end; *a = r(); test_ok(a == [1,2])
-
-def r; return *[[]]; end; *a = *r(); test_ok(a == [[]])
-def r; return *[1,2]; end; *a = *r(); test_ok(a == [1,2])
-def r; return *[*[1,2]]; end; *a = *r(); test_ok(a == [1,2])
-
-def r; return; end; a,b,*c = r(); test_ok([a,b,c] == [nil,nil,[]])
-def r; return nil; end; a,b,*c = r(); test_ok([a,b,c] == [nil,nil,[]])
-def r; return 1; end; a,b,*c = r(); test_ok([a,b,c] == [1,nil,[]])
-def r; return []; end; a,b,*c = r(); test_ok([a,b,c] == [nil,nil,[]])
-def r; return [1]; end; a,b,*c = r(); test_ok([a,b,c] == [1,nil,[]])
-def r; return [nil]; end; a,b,*c = r(); test_ok([a,b,c] == [nil,nil,[]])
-def r; return [[]]; end; a,b,*c = r(); test_ok([a,b,c] == [[],nil,[]])
-def r; return [1,2]; end; a,b,*c = r(); test_ok([a,b,c] == [1,2,[]])
-def r; return [*[]]; end; a,b,*c = r(); test_ok([a,b,c] == [nil,nil,[]])
-def r; return [*[1]]; end; a,b,*c = r(); test_ok([a,b,c] == [1,nil,[]])
-def r; return [*[1,2]]; end; a,b,*c = r(); test_ok([a,b,c] == [1,2,[]])
-
-def r; return *[]; end; a,b,*c = r(); test_ok([a,b,c] == [nil,nil,[]])
-def r; return *[1]; end; a,b,*c = r(); test_ok([a,b,c] == [1,nil,[]])
-def r; return *[nil]; end; a,b,*c = r(); test_ok([a,b,c] == [nil,nil,[]])
-def r; return *[[]]; end; a,b,*c = r(); test_ok([a,b,c] == [[],nil,[]])
-def r; return *[1,2]; end; a,b,*c = r(); test_ok([a,b,c] == [1,2,[]])
-def r; return *[*[]]; end; a,b,*c = r(); test_ok([a,b,c] == [nil,nil,[]])
-def r; return *[*[1]]; end; a,b,*c = r(); test_ok([a,b,c] == [1,nil,[]])
-def r; return *[*[1,2]]; end; a,b,*c = r(); test_ok([a,b,c] == [1,2,[]])
-
-f = lambda {|r,| test_ok([] == r)}
-f.call([], *[])
-
-f = lambda {|r,*l| test_ok([] == r); test_ok([1] == l)}
-f.call([], *[1])
-
-f = lambda{|x| x}
-test_ok(f.call(42) == 42)
-test_ok(f.call([42]) == [42])
-test_ok(f.call([[42]]) == [[42]])
-test_ok(f.call([42,55]) == [42,55])
-
-f = lambda{|x,| x}
-test_ok(f.call(42) == 42)
-test_ok(f.call([42]) == [42])
-test_ok(f.call([[42]]) == [[42]])
-test_ok(f.call([42,55]) == [42,55])
-
-f = lambda{|*x| x}
-test_ok(f.call(42) == [42])
-test_ok(f.call([42]) == [[42]])
-test_ok(f.call([[42]]) == [[[42]]])
-test_ok(f.call([42,55]) == [[42,55]])
-test_ok(f.call(42,55) == [42,55])
-
-f = lambda { |a, b=42, *c| [a,b,c] }
-test_ok(f.call(1 ) == [1,42,[ ]] )
-test_ok(f.call(1,43 ) == [1,43,[ ]] )
-test_ok(f.call(1,43,44) == [1,43,[44]] )
-
-f = lambda { |a, b=(a|16), *c, &block| [a,b,c,block&&block[]] }
-test_ok(f.call(8 ) == [8,24,[ ],nil] )
-test_ok(f.call(8,43 ) == [8,43,[ ],nil] )
-test_ok(f.call(8,43,44) == [8,43,[44],nil] )
-test_ok(f.call(8 ){45} == [8,24,[ ],45 ] )
-test_ok(f.call(8,43 ){45} == [8,43,[ ],45 ] )
-test_ok(f.call(8,43,44){45} == [8,43,[44],45 ] )
-
-f = lambda { |a, b=42, *c, d| [a,b,c,d] }
-test_ok(f.call(1 ,99) == [1,42,[ ],99] )
-test_ok(f.call(1,43 ,99) == [1,43,[ ],99] )
-test_ok(f.call(1,43,44,99) == [1,43,[44],99] )
-
-f = lambda { |a, b=(a|16), &block| [a,b,block&&block[]] }
-test_ok(f.call(8 ) == [8,24,nil] )
-test_ok(f.call(8,43) == [8,43,nil] )
-test_ok(f.call(8,43) == [8,43,nil] )
-test_ok(f.call(8 ){45} == [8,24,45 ] )
-test_ok(f.call(8,43){45} == [8,43,45 ] )
-test_ok(f.call(8,43){45} == [8,43,45 ] )
-
-f = lambda { |a, b=42, d| [a,b,d] }
-test_ok(f.call(1 ,99) == [1,42,99] )
-test_ok(f.call(1,43,99) == [1,43,99] )
-test_ok(f.call(1,43,99) == [1,43,99] )
-
-f = lambda { |b=42, *c, &block| [b,c,block&&block[]] }
-test_ok(f.call( ) == [42,[ ],nil] )
-test_ok(f.call(43 ) == [43,[ ],nil] )
-test_ok(f.call(43,44) == [43,[44],nil] )
-test_ok(f.call( ){45} == [42,[ ],45 ] )
-test_ok(f.call(43 ){45} == [43,[ ],45 ] )
-test_ok(f.call(43,44){45} == [43,[44],45 ] )
-
-f = lambda { |b=42, *c, d| [b,c,d] }
-test_ok(f.call( 99) == [42,[ ],99] )
-test_ok(f.call(43 ,99) == [43,[ ],99] )
-test_ok(f.call(43,44,99) == [43,[44],99] )
-
-f = lambda { |b=42, &block| [b,block&&block[]] }
-test_ok(f.call( ) == [42,nil] )
-test_ok(f.call(43) == [43,nil] )
-test_ok(f.call(43) == [43,nil] )
-test_ok(f.call( ){45} == [42,45 ] )
-test_ok(f.call(43){45} == [43,45 ] )
-test_ok(f.call(43){45} == [43,45 ] )
-
-f = lambda { |b=42, d| [b,d] }
-test_ok(f.call( 99) == [42,99] )
-test_ok(f.call(43,99) == [43,99] )
-test_ok(f.call(43,99) == [43,99] )
-
-
-a,=*[1]
-test_ok(a == 1)
-a,=*[[1]]
-test_ok(a == [1])
-a,=*[[[1]]]
-test_ok(a == [[1]])
-
-x, (y, z) = 1, 2, 3
-test_ok([1,2,nil] == [x,y,z])
-x, (y, z) = 1, [2,3]
-test_ok([1,2,3] == [x,y,z])
-x, (y, z) = 1, [2]
-test_ok([1,2,nil] == [x,y,z])
-
-a = loop do break; end; test_ok(a == nil)
-a = loop do break nil; end; test_ok(a == nil)
-a = loop do break 1; end; test_ok(a == 1)
-a = loop do break []; end; test_ok(a == [])
-a = loop do break [1]; end; test_ok(a == [1])
-a = loop do break [nil]; end; test_ok(a == [nil])
-a = loop do break [[]]; end; test_ok(a == [[]])
-a = loop do break [*[]]; end; test_ok(a == [])
-a = loop do break [*[1]]; end; test_ok(a == [1])
-a = loop do break [*[1,2]]; end; test_ok(a == [1,2])
-
-a = loop do break *[]; end; test_ok(a == [])
-a = loop do break *[1]; end; test_ok(a == [1])
-a = loop do break *[nil]; end; test_ok(a == [nil])
-a = loop do break *[[]]; end; test_ok(a == [[]])
-a = loop do break *[*[]]; end; test_ok(a == [])
-a = loop do break *[*[1]]; end; test_ok(a == [1])
-a = loop do break *[*[1,2]]; end; test_ok(a == [1,2])
-
-*a = loop do break; end; test_ok(a == [nil])
-*a = loop do break nil; end; test_ok(a == [nil])
-*a = loop do break 1; end; test_ok(a == [1])
-*a = loop do break []; end; test_ok(a == [])
-*a = loop do break [1]; end; test_ok(a == [1])
-*a = loop do break [nil]; end; test_ok(a == [nil])
-*a = loop do break [[]]; end; test_ok(a == [[]])
-*a = loop do break [1,2]; end; test_ok(a == [1,2])
-*a = loop do break [*[]]; end; test_ok(a == [])
-*a = loop do break [*[1]]; end; test_ok(a == [1])
-*a = loop do break [*[1,2]]; end; test_ok(a == [1,2])
-
-*a = loop do break *[]; end; test_ok(a == [])
-*a = loop do break *[1]; end; test_ok(a == [1])
-*a = loop do break *[nil]; end; test_ok(a == [nil])
-*a = loop do break *[[]]; end; test_ok(a == [[]])
-*a = loop do break *[1,2]; end; test_ok(a == [1,2])
-*a = loop do break *[*[]]; end; test_ok(a == [])
-*a = loop do break *[*[1]]; end; test_ok(a == [1])
-*a = loop do break *[*[1,2]]; end; test_ok(a == [1,2])
-
-*a = *loop do break *[[]]; end; test_ok(a == [[]])
-*a = *loop do break *[1,2]; end; test_ok(a == [1,2])
-*a = *loop do break *[*[1,2]]; end; test_ok(a == [1,2])
-
-a,b,*c = loop do break; end; test_ok([a,b,c] == [nil,nil,[]])
-a,b,*c = loop do break nil; end; test_ok([a,b,c] == [nil,nil,[]])
-a,b,*c = loop do break 1; end; test_ok([a,b,c] == [1,nil,[]])
-a,b,*c = loop do break []; end; test_ok([a,b,c] == [nil,nil,[]])
-a,b,*c = loop do break [1]; end; test_ok([a,b,c] == [1,nil,[]])
-a,b,*c = loop do break [nil]; end; test_ok([a,b,c] == [nil,nil,[]])
-a,b,*c = loop do break [[]]; end; test_ok([a,b,c] == [[],nil,[]])
-a,b,*c = loop do break [1,2]; end; test_ok([a,b,c] == [1,2,[]])
-a,b,*c = loop do break [*[]]; end; test_ok([a,b,c] == [nil,nil,[]])
-a,b,*c = loop do break [*[1]]; end; test_ok([a,b,c] == [1,nil,[]])
-a,b,*c = loop do break [*[1,2]]; end; test_ok([a,b,c] == [1,2,[]])
-
-a,b,*c = loop do break *[]; end; test_ok([a,b,c] == [nil,nil,[]])
-a,b,*c = loop do break *[1]; end; test_ok([a,b,c] == [1,nil,[]])
-a,b,*c = loop do break *[nil]; end; test_ok([a,b,c] == [nil,nil,[]])
-a,b,*c = loop do break *[[]]; end; test_ok([a,b,c] == [[],nil,[]])
-a,b,*c = loop do break *[1,2]; end; test_ok([a,b,c] == [1,2,[]])
-a,b,*c = loop do break *[*[]]; end; test_ok([a,b,c] == [nil,nil,[]])
-a,b,*c = loop do break *[*[1]]; end; test_ok([a,b,c] == [1,nil,[]])
-a,b,*c = loop do break *[*[1,2]]; end; test_ok([a,b,c] == [1,2,[]])
-
-def r(val); a = yield(); test_ok(a == val, 2); end
-r(nil){next}
-r(nil){next nil}
-r(1){next 1}
-r([]){next []}
-r([1]){next [1]}
-r([nil]){next [nil]}
-r([[]]){next [[]]}
-r([]){next [*[]]}
-r([1]){next [*[1]]}
-r([1,2]){next [*[1,2]]}
-
-r([]){next *[]}
-r([1]){next *[1]}
-r([nil]){next *[nil]}
-r([[]]){next *[[]]}
-r([]){next *[*[]]}
-r([1]){next *[*[1]]}
-r([1,2]){next *[*[1,2]]}
-
-def r(val); *a = yield(); test_ok(a == val, 2); end
-r([nil]){next}
-r([nil]){next nil}
-r([1]){next 1}
-r([]){next []}
-r([1]){next [1]}
-r([nil]){next [nil]}
-r([[]]){next [[]]}
-r([1,2]){next [1,2]}
-r([]){next [*[]]}
-r([1]){next [*[1]]}
-r([1,2]){next [*[1,2]]}
-
-def r(val); *a = *yield(); test_ok(a == val, 2); end
-r([[]]){next *[[]]}
-r([1,2]){next *[1,2]}
-r([1,2]){next *[*[1,2]]}
-
-def r(val); a,b,*c = yield(); test_ok([a,b,c] == val, 2); end
-r([nil,nil,[]]){next}
-r([nil,nil,[]]){next nil}
-r([1,nil,[]]){next 1}
-r([nil,nil,[]]){next []}
-r([1,nil,[]]){next [1]}
-r([nil,nil,[]]){next [nil]}
-r([[],nil,[]]){next [[]]}
-r([1,2,[]]){next [1,2]}
-r([nil,nil,[]]){next [*[]]}
-r([1,nil,[]]){next [*[1]]}
-r([1,2,[]]){next [*[1,2]]}
-
-def r(val); a,b,*c = *yield(); test_ok([a,b,c] == val, 2); end
-r([[],nil,[]]){next *[[]]}
-r([1,2,[]]){next *[1,2]}
-r([1,2,[]]){next *[*[1,2]]}
-
-test_check "condition"
-
-$x = '0';
-
-$x == $x && test_ok(true)
-$x != $x && test_ok(false)
-$x == $x || test_ok(false)
-$x != $x || test_ok(true)
-
-# first test to see if we can run the tests.
-
-test_check "if/unless";
-
-$x = 'test';
-test_ok(if $x == $x then true else false end)
-$bad = false
-unless $x == $x
- $bad = true
-end
-test_ok(!$bad)
-test_ok(unless $x != $x then true else false end)
-
-test_check "case"
-
-case 5
-when 1, 2, 3, 4, 6, 7, 8
- test_ok(false)
-when 5
- test_ok(true)
-end
-
-case 5
-when 5
- test_ok(true)
-when 1..10
- test_ok(false)
-end
-
-case 5
-when 1..10
- test_ok(true)
-else
- test_ok(false)
-end
-
-case 5
-when 5
- test_ok(true)
-else
- test_ok(false)
-end
-
-case "foobar"
-when /^f.*r$/
- test_ok(true)
-else
- test_ok(false)
-end
-
-test_check "while/until";
-
-while_tmp = "while_tmp.#{$$}"
-tmp = open(while_tmp, "w")
-tmp.print "tvi925\n";
-tmp.print "tvi920\n";
-tmp.print "vt100\n";
-tmp.print "Amiga\n";
-tmp.print "paper\n";
-tmp.close
-
-# test break
-
-tmp = open(while_tmp, "r")
-test_ok(tmp.kind_of?(File))
-
-while line = tmp.gets()
- break if /vt100/ =~ line
-end
-
-test_ok(!tmp.eof? && /vt100/ =~ line)
-tmp.close
-
-# test next
-$bad = false
-tmp = open(while_tmp, "r")
-while line = tmp.gets()
- next if /vt100/ =~ line
- $bad = 1 if /vt100/ =~ line
-end
-test_ok(!(!tmp.eof? || /vt100/ =~ line || $bad))
-tmp.close
-
-# test redo
-$bad = false
-tmp = open(while_tmp, "r")
-while line = tmp.gets()
- lastline = line
- line = line.gsub(/vt100/, 'VT100')
- if lastline != line
- line.gsub!('VT100', 'Vt100')
- redo
- end
- $bad = 1 if /vt100/ =~ line
- $bad = 1 if /VT100/ =~ line
-end
-test_ok(tmp.eof? && !$bad)
-tmp.close
-
-sum=0
-for i in 1..10
- sum += i
- i -= 1
- if i > 0
- redo
- end
-end
-test_ok(sum == 220)
-
-# test interval
-$bad = false
-tmp = open(while_tmp, "r")
-while line = tmp.gets()
- break if 3
- case line
- when /vt100/, /Amiga/, /paper/
- $bad = true
- end
-end
-test_ok(!$bad)
-tmp.close
-
-File.unlink while_tmp or `/bin/rm -f "#{while_tmp}"`
-test_ok(!File.exist?(while_tmp))
-
-i = 0
-until i>4
- i+=1
-end
-test_ok(i>4)
-
-
-# exception handling
-test_check "exception";
-
-begin
- raise "this must be handled"
- test_ok(false)
-rescue
- test_ok(true)
-end
-
-$bad = true
-begin
- raise "this must be handled no.2"
-rescue
- if $bad
- $bad = false
- retry
- test_ok(false)
- end
-end
-test_ok(true)
-
-# exception in rescue clause
-$string = "this must be handled no.3"
-begin
- begin
- raise "exception in rescue clause"
- rescue
- raise $string
- end
- test_ok(false)
-rescue => e
- test_ok($! == e)
- test_ok(e.message == $string)
- test_ok(e != $string)
-end
-
-# exception in ensure clause
-begin
- begin
- raise "this must be handled no.4"
- ensure
- raise "exception in ensure clause"
- end
- test_ok(false)
-rescue
- test_ok(true)
-end
-
-$bad = true
-begin
- begin
- raise "this must be handled no.5"
- ensure
- $bad = false
- end
-rescue
-end
-test_ok(!$bad)
-
-$bad = true
-begin
- begin
- raise "this must be handled no.6"
- ensure
- $bad = false
- end
-rescue
-end
-test_ok(!$bad)
-
-$bad = true
-while true
- begin
- break
- ensure
- $bad = false
- end
-end
-test_ok(!$bad)
-
-test_ok(catch(:foo) {
- loop do
- loop do
- throw :foo, true
- break
- end
- break
- test_ok(false) # should not reach here
- end
- false
- })
-
-test_check "array"
-test_ok([1, 2] + [3, 4] == [1, 2, 3, 4])
-test_ok([1, 2] * 2 == [1, 2, 1, 2])
-test_ok([1, 2] * ":" == "1:2")
-
-test_ok([1, 2].hash == [1, 2].hash)
-
-test_ok([1,2,3] & [2,3,4] == [2,3])
-test_ok([1,2,3] | [2,3,4] == [1,2,3,4])
-test_ok([1,2,3] - [2,3] == [1])
-
-$x = [0, 1, 2, 3, 4, 5]
-test_ok($x[2] == 2)
-test_ok($x[1..3] == [1, 2, 3])
-test_ok($x[1,3] == [1, 2, 3])
-
-$x[0, 2] = 10
-test_ok($x[0] == 10 && $x[1] == 2)
-
-$x[0, 0] = -1
-test_ok($x[0] == -1 && $x[1] == 10)
-
-$x[-1, 1] = 20
-test_ok($x[-1] == 20 && $x.pop == 20)
-
-# array and/or
-test_ok(([1,2,3]&[2,4,6]) == [2])
-test_ok(([1,2,3]|[2,4,6]) == [1,2,3,4,6])
-
-# compact
-$x = [nil, 1, nil, nil, 5, nil, nil]
-$x.compact!
-test_ok($x == [1, 5])
-
-# uniq
-$x = [1, 1, 4, 2, 5, 4, 5, 1, 2]
-$x.uniq!
-test_ok($x == [1, 4, 2, 5])
-
-# empty?
-test_ok(!$x.empty?)
-$x = []
-test_ok($x.empty?)
-
-# sort
-$x = ["it", "came", "to", "pass", "that", "..."]
-$x = $x.sort.join(" ")
-test_ok($x == "... came it pass that to")
-$x = [2,5,3,1,7]
-$x.sort!{|a,b| a<=>b} # sort with condition
-test_ok($x == [1,2,3,5,7])
-$x.sort!{|a,b| b-a} # reverse sort
-test_ok($x == [7,5,3,2,1])
-
-# split test
-$x = "The Book of Mormon"
-test_ok($x.split(//).reverse!.join == $x.reverse)
-test_ok($x.reverse == $x.reverse!)
-test_ok("1 byte string".split(//).reverse.join(":") == "g:n:i:r:t:s: :e:t:y:b: :1")
-$x = "a b c d"
-test_ok($x.split == ['a', 'b', 'c', 'd'])
-test_ok($x.split(' ') == ['a', 'b', 'c', 'd'])
-test_ok(defined? "a".chomp)
-test_ok("abc".scan(/./) == ["a", "b", "c"])
-test_ok("1a2b3c".scan(/(\d.)/) == [["1a"], ["2b"], ["3c"]])
-# non-greedy match
-test_ok("a=12;b=22".scan(/(.*?)=(\d*);?/) == [["a", "12"], ["b", "22"]])
-
-$x = [1]
-test_ok(($x * 5).join(":") == '1:1:1:1:1')
-test_ok(($x * 1).join(":") == '1')
-test_ok(($x * 0).join(":") == '')
-
-*$x = *(1..7).to_a
-test_ok($x.size == 7)
-test_ok($x == [1, 2, 3, 4, 5, 6, 7])
-
-$x = [1,2,3]
-$x[1,0] = $x
-test_ok($x == [1,1,2,3,2,3])
-
-$x = [1,2,3]
-$x[-1,0] = $x
-test_ok($x == [1,2,1,2,3,3])
-
-$x = [1,2,3]
-$x.concat($x)
-test_ok($x == [1,2,3,1,2,3])
-
-test_check "hash"
-$x = {1=>2, 2=>4, 3=>6}
-
-test_ok($x[1] == 2)
-
-test_ok(begin
- for k,v in $x
- raise if k*2 != v
- end
- true
- rescue
- false
- end)
-
-test_ok($x.length == 3)
-test_ok($x.has_key?(1))
-test_ok($x.has_value?(4))
-test_ok($x.values_at(2,3) == [4,6])
-test_ok($x == {1=>2, 2=>4, 3=>6})
-
-$z = $x.keys.sort.join(":")
-test_ok($z == "1:2:3")
-
-$z = $x.values.sort.join(":")
-test_ok($z == "2:4:6")
-test_ok($x == $x)
-
-$x.shift
-test_ok($x.length == 2)
-
-$z = [1,2]
-$x[$z] = 256
-test_ok($x[$z] == 256)
-
-$x = Hash.new(0)
-$x[1] = 1
-test_ok($x[1] == 1)
-test_ok($x[2] == 0)
-
-$x = Hash.new([])
-test_ok($x[22] == [])
-test_ok($x[22].equal?($x[22]))
-
-$x = Hash.new{[]}
-test_ok($x[22] == [])
-test_ok(!$x[22].equal?($x[22]))
-
-$x = Hash.new{|h,k| $z = k; h[k] = k*2}
-$z = 0
-test_ok($x[22] == 44)
-test_ok($z == 22)
-$z = 0
-test_ok($x[22] == 44)
-test_ok($z == 0)
-$x.default = 5
-test_ok($x[23] == 5)
-
-$x = Hash.new
-def $x.default(k)
- $z = k
- self[k] = k*2
-end
-$z = 0
-test_ok($x[22] == 44)
-test_ok($z == 22)
-$z = 0
-test_ok($x[22] == 44)
-test_ok($z == 0)
-
-test_check "iterator"
-
-# yield at top level
-test_ok(!defined?(yield))
-
-$x = [1, 2, 3, 4]
-$y = []
-
-# iterator over array
-for i in $x
- $y.push i
-end
-test_ok($x == $y)
-
-# nested iterator
-def tt
- 1.upto(10) {|i|
- yield i
- }
-end
-
-i=0
-tt{|i| break if i == 5}
-test_ok(i == 0)
-
-def tt2(dummy)
- yield 1
-end
-
-def tt3(&block)
- tt2(raise(ArgumentError,""),&block)
-end
-
-$x = false
-begin
- tt3{}
-rescue ArgumentError
- $x = true
-rescue Exception
-end
-test_ok($x)
-
-def tt4 &block
- tt2(raise(ArgumentError,""),&block)
-end
-$x = false
-begin
- tt4{}
-rescue ArgumentError
- $x = true
-rescue Exception
-end
-test_ok($x)
-
-# iterator break/redo/next/retry
-done = true
-loop{
- break
- done = false # should not reach here
-}
-test_ok(done)
-
-done = false
-$bad = false
-loop {
- break if done
- done = true
- next
- $bad = true # should not reach here
-}
-test_ok(!$bad)
-
-done = false
-$bad = false
-loop {
- break if done
- done = true
- redo
- $bad = true # should not reach here
-}
-test_ok(!$bad)
-
-$x = []
-for i in 1 .. 7
- $x.push i
-end
-test_ok($x.size == 7)
-test_ok($x == [1, 2, 3, 4, 5, 6, 7])
-
-# append method to built-in class
-class Array
- def iter_test1
- collect{|e| [e, yield(e)]}.sort{|a,b|a[1]<=>b[1]}
- end
- def iter_test2
- a = collect{|e| [e, yield(e)]}
- a.sort{|a,b|a[1]<=>b[1]}
- end
-end
-$x = [[1,2],[3,4],[5,6]]
-test_ok($x.iter_test1{|x|x} == $x.iter_test2{|x|x})
-
-class IterTest
- def initialize(e); @body = e; end
-
- def each0(&block); @body.each(&block); end
- def each1(&block); @body.each {|*x| block.call(*x) } end
- def each2(&block); @body.each {|*x| block.call(x) } end
- def each3(&block); @body.each {|x| block.call(*x) } end
- def each4(&block); @body.each {|x| block.call(x) } end
- def each5; @body.each {|*x| yield(*x) } end
- def each6; @body.each {|*x| yield(x) } end
- def each7; @body.each {|x| yield(*x) } end
- def each8; @body.each {|x| yield(x) } end
-
- def f(a)
- a
- end
-end
-test_ok(IterTest.new(nil).method(:f).to_proc.call([1]) == [1])
-m = /\w+/.match("abc")
-test_ok(IterTest.new(nil).method(:f).to_proc.call([m]) == [m])
-
-IterTest.new([0]).each0 {|x| test_ok(x == 0)}
-IterTest.new([1]).each1 {|x| test_ok(x == 1)}
-IterTest.new([2]).each2 {|x| test_ok(x == [2])}
-#IterTest.new([3]).each3 {|x| test_ok(x == 3)}
-IterTest.new([4]).each4 {|x| test_ok(x == 4)}
-IterTest.new([5]).each5 {|x| test_ok(x == 5)}
-IterTest.new([6]).each6 {|x| test_ok(x == [6])}
-#IterTest.new([7]).each7 {|x| test_ok(x == 7)}
-IterTest.new([8]).each8 {|x| test_ok(x == 8)}
-
-IterTest.new([[0]]).each0 {|x| test_ok(x == [0])}
-IterTest.new([[1]]).each1 {|x| test_ok(x == [1])}
-IterTest.new([[2]]).each2 {|x| test_ok(x == [[2]])}
-IterTest.new([[3]]).each3 {|x| test_ok(x == 3)}
-IterTest.new([[4]]).each4 {|x| test_ok(x == [4])}
-IterTest.new([[5]]).each5 {|x| test_ok(x == [5])}
-IterTest.new([[6]]).each6 {|x| test_ok(x == [[6]])}
-IterTest.new([[7]]).each7 {|x| test_ok(x == 7)}
-IterTest.new([[8]]).each8 {|x| test_ok(x == [8])}
-
-IterTest.new([[0,0]]).each0 {|*x| test_ok(x == [[0,0]])}
-IterTest.new([[8,8]]).each8 {|*x| test_ok(x == [[8,8]])}
-
-def m0(v)
- v
-end
-
-def m1
- m0(block_given?)
-end
-test_ok(m1{p 'test'})
-test_ok(!m1)
-
-def m
- m0(block_given?,&Proc.new{})
-end
-test_ok(m1{p 'test'})
-test_ok(!m1)
-
-class C
- include Enumerable
- def initialize
- @a = [1,2,3]
- end
- def each(&block)
- @a.each(&block)
- end
-end
-
-test_ok(C.new.collect{|n| n} == [1,2,3])
-
-test_ok(Proc == lambda{}.class)
-test_ok(Proc == Proc.new{}.class)
-lambda{|a|test_ok(a==1)}.call(1)
-def block_test(klass, &block)
- test_ok(klass === block)
-end
-
-block_test(NilClass)
-block_test(Proc){}
-
-def call_argument_test(state, proc, *args)
- x = state
- begin
- proc.call(*args)
- rescue ArgumentError
- x = !x
- end
- test_ok(x,2)
-end
-
-call_argument_test(true, lambda{||})
-call_argument_test(false, lambda{||}, 1)
-call_argument_test(true, lambda{|a,|}, 1)
-call_argument_test(false, lambda{|a,|})
-call_argument_test(false, lambda{|a,|}, 1,2)
-
-call_argument_test(true, Proc.new{||})
-call_argument_test(true, Proc.new{||}, 1)
-call_argument_test(true, Proc.new{|a,|}, 1)
-call_argument_test(true, Proc.new{|a,|})
-call_argument_test(true, Proc.new{|a,|}, 1,2)
-
-def block_get(&block)
- block
-end
-
-test_ok(Proc == block_get{}.class)
-call_argument_test(true, block_get{||})
-call_argument_test(true, block_get{||}, 1)
-call_argument_test(true, block_get{|a,|}, 1)
-call_argument_test(true, block_get{|a,|})
-call_argument_test(true, block_get{|a,|}, 1,2)
-
-call_argument_test(true, block_get(&lambda{||}))
-call_argument_test(false, block_get(&lambda{||}),1)
-call_argument_test(true, block_get(&lambda{|a,|}),1)
-call_argument_test(false, block_get(&lambda{|a,|}),1,2)
-
-blk = block_get{11}
-test_ok(blk.class == Proc)
-test_ok(blk.to_proc.class == Proc)
-test_ok(blk.clone.call == 11)
-test_ok(block_get(&blk).class == Proc)
-
-lmd = lambda{44}
-test_ok(lmd.class == Proc)
-test_ok(lmd.to_proc.class == Proc)
-test_ok(lmd.clone.call == 44)
-test_ok(block_get(&lmd).class == Proc)
-
-test_ok(Proc.new{|a,| a}.yield(1,2,3) == 1)
-call_argument_test(true, Proc.new{|a,|}, 1,2)
-
-test_ok(Proc.new{|&b| b.call(10)}.call {|x| x} == 10)
-test_ok(Proc.new{|a,&b| b.call(a)}.call(12) {|x| x} == 12)
-
-def test_return1
- Proc.new {
- return 55
- }.yield + 5
-end
-test_ok(test_return1() == 55)
-def test_return2
- lambda {
- return 55
- }.call + 5
-end
-test_ok(test_return2() == 60)
-
-def proc_call(&b)
- b.call
-end
-def proc_yield()
- yield
-end
-def proc_return1
- lambda{return 42}.call+1
-end
-test_ok(proc_return1() == 43)
-def proc_return2
- ->{return 42}.call+1
-end
-test_ok(proc_return2() == 43)
-def proc_return3
- proc_call{return 42}+1
-end
-test_ok(proc_return3() == 42)
-def proc_return4
- proc_yield{return 42}+1
-end
-test_ok(proc_return4() == 42)
-
-def ljump_test(state, proc, *args)
- x = state
- begin
- proc.call(*args)
- rescue LocalJumpError
- x = !x
- end
- test_ok(x,2)
-end
-
-ljump_test(false, block_get{break})
-ljump_test(true, lambda{break})
-
-def exit_value_test(&block)
- block.call
-rescue LocalJumpError
- $!.exit_value
-end
-
-test_ok(45 == exit_value_test{break 45})
-
-test_ok(55 == begin
- block_get{break 55}.call
- rescue LocalJumpError
- $!.exit_value
- end)
-
-def block_call(&block)
- block.call
-end
-
-def test_b1
- block_call{break 11}
-end
-test_ok(test_b1() == 11)
-
-def ljump_rescue(r)
- begin
- yield
- rescue LocalJumpError => e
- r if /from proc-closure/ =~ e.message
- end
-end
-
-def test_b2
- ljump_rescue(22) do
- block_get{break 21}.call
- end
-end
-test_ok(test_b2() == 22)
-
-def test_b3
- ljump_rescue(33) do
- Proc.new{break 31}.yield
- end
-end
-test_ok(test_b3() == 33)
-
-def test_b4
- lambda{break 44}.call
-end
-test_ok(test_b4() == 44)
-
-def test_b5
- ljump_rescue(55) do
- b = block_get{break 54}
- block_call(&b)
- end
-end
-test_ok(test_b5() == 55)
-
-def test_b6
- b = lambda{break 67}
- block_call(&b)
- 66
-end
-test_ok(test_b6() == 66)
-
-def util_r7
- block_get{break 78}
-end
-
-def test_b7
- b = util_r7()
- ljump_rescue(77) do
- block_call(&b)
- end
-end
-test_ok(test_b7() == 77)
-
-def util_b8(&block)
- block_call(&block)
-end
-
-def test_b8
- util_b8{break 88}
-end
-test_ok(test_b8() == 88)
-
-def util_b9(&block)
- lambda{block.call; 98}.call
-end
-
-def test_b9
- util_b9{break 99}
-end
-test_ok(test_b9() == 99)
-
-def util_b10
- util_b9{break 100}
-end
-
-def test_b10
- util_b10()
-end
-test_ok(test_b10() == 100)
-
-def test_b11
- ljump_rescue(111) do
- loop do
- Proc.new{break 110}.yield
- break 112
- end
- end
-end
-test_ok(test_b11() == 111)
-
-def test_b12
- loop do
- break lambda{break 122}.call
- break 121
- end
-end
-test_ok(test_b12() == 122)
-
-def test_b13
- ljump_rescue(133) do
- while true
- Proc.new{break 130}.yield
- break 131
- end
- end
-end
-test_ok(test_b13() == 133)
-
-def test_b14
- while true
- break lambda{break 144}.call
- break 143
- end
-end
-test_ok(test_b14() == 144)
-
-def test_b15
- [0].each {|c| yield 1 }
- 156
-end
-test_ok(test_b15{|e| break 155 } == 155)
-
-def marity_test(m)
- method = method(m)
- test_ok(method.arity == method.to_proc.arity, 2)
-end
-marity_test(:test_ok)
-marity_test(:marity_test)
-marity_test(:p)
-
-class ITER_TEST1
- def a
- block_given?
- end
-end
-
-class ITER_TEST2 < ITER_TEST1
- def a
- test_ok(super)
- super
- end
-end
-test_ok(ITER_TEST2.new.a {})
-
-class ITER_TEST3
- def foo x
- return yield if block_given?
- x
- end
-end
-
-class ITER_TEST4 < ITER_TEST3
- def foo x
- test_ok(super == yield)
- test_ok(super(x, &nil) == x)
- end
-end
-
-ITER_TEST4.new.foo(44){55}
-
-class ITER_TEST5
- def tt(aa)
- aa
- end
-
- def uu(a)
- class << self
- define_method(:tt) do |sym|
- super(sym)
- end
- end
- end
-
- def xx(*x)
- x.size
- end
-end
-
-a = ITER_TEST5.new
-a.uu(12)
-test_ok(a.tt(1) == 1)
-
-class ITER_TEST6 < ITER_TEST5
- def xx(*a)
- a << 12
- super
- end
-end
-
-test_ok(ITER_TEST6.new.xx([24]) == 2)
-
-test_check "float"
-test_ok(2.6.floor == 2)
-test_ok((-2.6).floor == -3)
-test_ok(2.6.ceil == 3)
-test_ok((-2.6).ceil == -2)
-test_ok(2.6.truncate == 2)
-test_ok((-2.6).truncate == -2)
-test_ok(2.6.round == 3)
-test_ok((-2.4).truncate == -2)
-test_ok((13.4 % 1 - 0.4).abs < 0.0001)
-nan = 0.0/0
-def nan_test(x,y)
- test_ok(x != y)
- test_ok((x < y) == false)
- test_ok((x > y) == false)
- test_ok((x <= y) == false)
- test_ok((x >= y) == false)
-end
-nan_test(nan, nan)
-nan_test(nan, 0)
-nan_test(nan, 1)
-nan_test(nan, -1)
-nan_test(nan, 1000)
-nan_test(nan, -1000)
-nan_test(nan, 1_000_000_000_000)
-nan_test(nan, -1_000_000_000_000)
-nan_test(nan, 100.0);
-nan_test(nan, -100.0);
-nan_test(nan, 0.001);
-nan_test(nan, -0.001);
-nan_test(nan, 1.0/0);
-nan_test(nan, -1.0/0);
-
-#s = "3.7517675036461267e+17"
-#test_ok(s == sprintf("%.16e", s.to_f))
-f = 3.7517675036461267e+17
-test_ok(f == sprintf("%.16e", f).to_f)
-
-
-test_check "bignum"
-def fact(n)
- return 1 if n == 0
- f = 1
- while n>0
- f *= n
- n -= 1
- end
- return f
-end
-$x = fact(40)
-test_ok($x == $x)
-test_ok($x == fact(40))
-test_ok($x < $x+2)
-test_ok($x > $x-2)
-test_ok($x == 815915283247897734345611269596115894272000000000)
-test_ok($x != 815915283247897734345611269596115894272000000001)
-test_ok($x+1 == 815915283247897734345611269596115894272000000001)
-test_ok($x/fact(20) == 335367096786357081410764800000)
-$x = -$x
-test_ok($x == -815915283247897734345611269596115894272000000000)
-test_ok(2-(2**32) == -(2**32-2))
-test_ok(2**32 - 5 == (2**32-3)-2)
-
-$good = true;
-for i in 1000..1014
- $good = false if ((1 << i) != (2**i))
-end
-test_ok($good)
-
-$good = true;
-n1= 1 << 1000
-for i in 1000..1014
- $good = false if ((1 << i) != n1)
- n1 *= 2
-end
-test_ok($good)
-
-$good = true;
-n2=n1
-for i in 1..10
- n1 = n1 / 2
- n2 = n2 >> 1
- $good = false if (n1 != n2)
-end
-test_ok($good)
-
-$good = true;
-for i in 4000..4096
- n1 = 1 << i;
- if (n1**2-1) / (n1+1) != (n1-1)
- $good = false
- end
-end
-test_ok($good)
-
-b = 10**80
-a = b * 9 + 7
-test_ok(7 == a.modulo(b))
-test_ok(-b + 7 == a.modulo(-b))
-test_ok(b + -7 == (-a).modulo(b))
-test_ok(-7 == (-a).modulo(-b))
-test_ok(7 == a.remainder(b))
-test_ok(7 == a.remainder(-b))
-test_ok(-7 == (-a).remainder(b))
-test_ok(-7 == (-a).remainder(-b))
-
-test_ok(10**40+10**20 == 10000000000000000000100000000000000000000)
-test_ok(10**40/10**20 == 100000000000000000000)
-
-a = 677330545177305025495135714080
-b = 14269972710765292560
-test_ok(a % b == 0)
-test_ok(-a % b == 0)
-
-def shift_test(a)
- b = a / (2 ** 32)
- c = a >> 32
- test_ok(b == c)
-
- b = a * (2 ** 32)
- c = a << 32
- test_ok(b == c)
-end
-
-shift_test(-4518325415524767873)
-shift_test(-0xfffffffffffffffff)
-
-test_check "string & char"
-
-test_ok("abcd" == "abcd")
-test_ok("abcd" =~ /abcd/)
-test_ok("abcd" === "abcd")
-# compile time string concatenation
-test_ok("ab" "cd" == "abcd")
-test_ok("#{22}aa" "cd#{44}" == "22aacd44")
-test_ok("#{22}aa" "cd#{44}" "55" "#{66}" == "22aacd445566")
-test_ok("abc" !~ /^$/)
-test_ok("abc\n" !~ /^$/)
-test_ok("abc" !~ /^d*$/)
-test_ok(("abc" =~ /d*$/) == 3)
-test_ok("" =~ /^$/)
-test_ok("\n" =~ /^$/)
-test_ok("a\n\n" =~ /^$/)
-test_ok("abcabc" =~ /.*a/ && $& == "abca")
-test_ok("abcabc" =~ /.*c/ && $& == "abcabc")
-test_ok("abcabc" =~ /.*?a/ && $& == "a")
-test_ok("abcabc" =~ /.*?c/ && $& == "abc")
-test_ok(/(.|\n)*?\n(b|\n)/ =~ "a\nb\n\n" && $& == "a\nb")
-
-test_ok(/^(ab+)+b/ =~ "ababb" && $& == "ababb")
-test_ok(/^(?:ab+)+b/ =~ "ababb" && $& == "ababb")
-test_ok(/^(ab+)+/ =~ "ababb" && $& == "ababb")
-test_ok(/^(?:ab+)+/ =~ "ababb" && $& == "ababb")
-
-test_ok(/(\s+\d+){2}/ =~ " 1 2" && $& == " 1 2")
-test_ok(/(?:\s+\d+){2}/ =~ " 1 2" && $& == " 1 2")
-
-$x = <<END;
-ABCD
-ABCD
-END
-$x.gsub!(/((.|\n)*?)B((.|\n)*?)D/, '\1\3')
-test_ok($x == "AC\nAC\n")
-
-test_ok("foobar" =~ /foo(?=(bar)|(baz))/)
-test_ok("foobaz" =~ /foo(?=(bar)|(baz))/)
-
-$foo = "abc"
-test_ok("#$foo = abc" == "abc = abc")
-test_ok("#{$foo} = abc" == "abc = abc")
-
-foo = "abc"
-test_ok("#{foo} = abc" == "abc = abc")
-
-test_ok('-' * 5 == '-----')
-test_ok('-' * 1 == '-')
-test_ok('-' * 0 == '')
-
-foo = '-'
-test_ok(foo * 5 == '-----')
-test_ok(foo * 1 == '-')
-test_ok(foo * 0 == '')
-
-$x = "a.gif"
-test_ok($x.sub(/.*\.([^\.]+)$/, '\1') == "gif")
-test_ok($x.sub(/.*\.([^\.]+)$/, 'b.\1') == "b.gif")
-test_ok($x.sub(/.*\.([^\.]+)$/, '\2') == "")
-test_ok($x.sub(/.*\.([^\.]+)$/, 'a\2b') == "ab")
-test_ok($x.sub(/.*\.([^\.]+)$/, '<\&>') == "<a.gif>")
-
-# character constants(assumes ASCII)
-test_ok("a"[0] == ?a)
-test_ok(?a == ?a)
-test_ok(?\C-a == "\1")
-test_ok(?\M-a == "\341")
-test_ok(?\M-\C-a == "\201")
-test_ok("a".upcase![0] == ?A)
-test_ok("A".downcase![0] == ?a)
-test_ok("abc".tr!("a-z", "A-Z") == "ABC")
-test_ok("aabbcccc".tr_s!("a-z", "A-Z") == "ABC")
-test_ok("abcc".squeeze!("a-z") == "abc")
-test_ok("abcd".delete!("bc") == "ad")
-
-$x = "abcdef"
-$y = [ ?a, ?b, ?c, ?d, ?e, ?f ]
-$bad = false
-$x.each_byte {|i|
- if i.chr != $y.shift
- $bad = true
- break
- end
-}
-test_ok(!$bad)
-
-s = "a string"
-s[0..s.size]="another string"
-test_ok(s == "another string")
-
-s = <<EOS
-#{
-[1,2,3].join(",")
-}
-EOS
-test_ok(s == "1,2,3\n")
-test_ok("Just".to_i(36) == 926381)
-test_ok("-another".to_i(36) == -23200231779)
-test_ok(1299022.to_s(36) == "ruby")
-test_ok(-1045307475.to_s(36) == "-hacker")
-test_ok("Just_another_Ruby_hacker".to_i(36) == 265419172580680477752431643787347)
-test_ok(-265419172580680477752431643787347.to_s(36) == "-justanotherrubyhacker")
-
-a = []
-(0..255).each {|n|
- ch = [n].pack("C")
- a.push ch if /a#{Regexp.quote ch}b/x =~ "ab"
-}
-test_ok(a.size == 0)
-
-test_check "assignment"
-a = nil
-test_ok(defined?(a))
-test_ok(a == nil)
-
-# multiple assignment
-a, b = 1, 2
-test_ok(a == 1 && b == 2)
-
-a, b = b, a
-test_ok(a == 2 && b == 1)
-
-a, = 1,2
-test_ok(a == 1)
-
-a, *b = 1, 2, 3
-test_ok(a == 1 && b == [2, 3])
-
-a, (b, c), d = 1, [2, 3], 4
-test_ok(a == 1 && b == 2 && c == 3 && d == 4)
-
-*a = 1, 2, 3
-test_ok(a == [1, 2, 3])
-
-*a = 4
-test_ok(a == [4])
-
-*a = nil
-test_ok(a == [nil])
-
-test_check "call"
-def aaa(a, b=100, *rest)
- res = [a, b]
- res += rest if rest
- return res
-end
-
-# not enough argument
-begin
- aaa() # need at least 1 arg
- test_ok(false)
-rescue
- test_ok(true)
-end
-
-begin
- aaa # no arg given (exception raised)
- test_ok(false)
-rescue
- test_ok(true)
-end
-
-test_ok(aaa(1) == [1, 100])
-test_ok(aaa(1, 2) == [1, 2])
-test_ok(aaa(1, 2, 3, 4) == [1, 2, 3, 4])
-test_ok(aaa(1, *[2, 3, 4]) == [1, 2, 3, 4])
-
-test_check "proc"
-$proc = Proc.new{|i| i}
-test_ok($proc.call(2) == 2)
-test_ok($proc.call(3) == 3)
-
-$proc = Proc.new{|i| i*2}
-test_ok($proc.call(2) == 4)
-test_ok($proc.call(3) == 6)
-
-Proc.new{
- iii=5 # nested local variable
- $proc = Proc.new{|i|
- iii = i
- }
- $proc2 = Proc.new {
- $x = iii # nested variables shared by procs
- }
- # scope of nested variables
- test_ok(defined?(iii))
-}.call
-test_ok(!defined?(iii)) # out of scope
-
-loop{iii=5; test_ok(eval("defined? iii")); break}
-loop {
- iii = 10
- def dyna_var_check
- loop {
- test_ok(!defined?(iii))
- break
- }
- end
- dyna_var_check
- break
-}
-$x=0
-$proc.call(5)
-$proc2.call
-test_ok($x == 5)
-
-if defined? Process.kill
- test_check "signal"
-
- $x = 0
- trap "SIGINT", Proc.new{|sig| $x = 2}
- Process.kill "SIGINT", $$
- 100.times {
- sleep 0.1
- break if $x != 0
- }
- test_ok($x == 2)
-
- trap "SIGINT", Proc.new{raise "Interrupt"}
-
- x = false
- begin
- Process.kill "SIGINT", $$
- sleep 0.1
- rescue
- x = $!
- end
- test_ok(x && /Interrupt/ =~ x.message)
-end
-
-test_check "eval"
-test_ok(eval("") == nil)
-$bad=false
-eval 'while false; $bad = true; print "foo\n" end'
-test_ok(!$bad)
-
-test_ok(eval('Object'))
-test_ok(eval('true'))
-test_ok(!eval('nil'))
-test_ok(!eval('false'))
-
-$foo = 'test_ok(true)'
-begin
- eval $foo
-rescue
- test_ok(false)
-end
-
-test_ok(eval("$foo") == 'test_ok(true)')
-test_ok(eval("true") == true)
-i = 5
-test_ok(eval("i == 5"))
-test_ok(eval("i") == 5)
-test_ok(eval("defined? i"))
-
-# eval with binding
-def test_ev
- local1 = "local1"
- lambda {
- local2 = "local2"
- return binding
- }.call
-end
-
-$x = test_ev
-test_ok(eval("local1", $x) == "local1") # normal local var
-test_ok(eval("local2", $x) == "local2") # nested local var
-$bad = true
-begin
- p eval("local1")
-rescue NameError # must raise error
- $bad = false
-end
-test_ok(!$bad)
-
-module EvTest
- EVTEST1 = 25
- evtest2 = 125
- $x = binding
-end
-test_ok(eval("EVTEST1", $x) == 25) # constant in module
-test_ok(eval("evtest2", $x) == 125) # local var in module
-$bad = true
-begin
- eval("EVTEST1")
-rescue NameError # must raise error
- $bad = false
-end
-test_ok(!$bad)
-
-x = binding #! YARV Limitation: Proc.new{}
-eval "i4 = 1", x
-test_ok(eval("i4", x) == 1)
-x = Proc.new{binding}.call #! YARV Limitation: Proc.new{Proc.new{}}.call
-eval "i4 = 22", x
-test_ok(eval("i4", x) == 22)
-$x = []
-x = Proc.new{binding}.call #! YARV Limitation: Proc.new{Proc.new{}}.call
-eval "(0..9).each{|i5| $x[i5] = Proc.new{i5*2}}", x
-test_ok($x[4].call == 8)
-
-x = binding
-eval "i = 1", x
-test_ok(eval("i", x) == 1)
-x = Proc.new{binding}.call
-eval "i = 22", x
-test_ok(eval("i", x) == 22)
-$x = []
-x = Proc.new{binding}.call
-eval "(0..9).each{|i5| $x[i5] = Proc.new{i5*2}}", x
-test_ok($x[4].call == 8)
-x = Proc.new{binding}.call
-eval "for i6 in 1..1; j6=i6; end", x
-test_ok(eval("defined? i6", x))
-test_ok(eval("defined? j6", x))
-
-Proc.new {
- p = binding
- eval "foo11 = 1", p
- foo22 = 5
- Proc.new{foo11=22}.call
- Proc.new{foo22=55}.call
- test_ok(eval("foo11", p) == eval("foo11"))
- test_ok(eval("foo11") == 1)
- test_ok(eval("foo22", p) == eval("foo22"))
- test_ok(eval("foo22") == 55)
-}.call if false #! YARV Limitation
-
-#! YARV Limitation: p1 = Proc.new{i7 = 0; Proc.new{i7}}.call
-p1 = Proc.new{i7 = 0; binding}.call
-#! YARV Limitation: test_ok(p1.call == 0)
-eval "i7=5", p1
-#! YARV Limitation: test_ok(p1.call == 5)
-test_ok(!defined?(i7))
-
-if false #! YARV Limitation
-p1 = Proc.new{i7 = 0; Proc.new{i7}}.call
-i7 = nil
-test_ok(p1.call == 0)
-eval "i7=1", p1
-test_ok(p1.call == 1)
-eval "i7=5", p1
-test_ok(p1.call == 5)
-test_ok(i7 == nil)
-end
-
-test_check "system"
-test_ok(`echo foobar` == "foobar\n")
-test_ok(`./miniruby -e 'print "foobar"'` == 'foobar')
-
-script_tmp = "script_tmp.#{$$}"
-tmp = open(script_tmp, "w")
-tmp.print "print $zzz\n";
-tmp.close
-
-test_ok(`./miniruby -s #{script_tmp} -zzz` == 'true')
-test_ok(`./miniruby -s #{script_tmp} -zzz=555` == '555')
-
-tmp = open(script_tmp, "w")
-tmp.print "#! /usr/local/bin/ruby -s\n";
-tmp.print "print $zzz\n";
-tmp.close
-
-test_ok(`./miniruby #{script_tmp} -zzz=678` == '678')
-
-tmp = open(script_tmp, "w")
-tmp.print "this is a leading junk\n";
-tmp.print "#! /usr/local/bin/ruby -s\n";
-tmp.print "print $zzz\n";
-tmp.print "__END__\n";
-tmp.print "this is a trailing junk\n";
-tmp.close
-
-test_ok(`./miniruby -x #{script_tmp}` == '')
-test_ok(`./miniruby -x #{script_tmp} -zzz=555` == '555')
-
-tmp = open(script_tmp, "w")
-for i in 1..5
- tmp.print i, "\n"
-end
-tmp.close
-
-`./miniruby -i.bak -pe '$_.sub!(/^[0-9]+$/){$&.to_i * 5}' #{script_tmp}`
-done = true
-tmp = open(script_tmp, "r")
-while tmp.gets
- if $_.to_i % 5 != 0
- done = false
- break
- end
-end
-tmp.close
-test_ok(done)
-
-File.unlink script_tmp or `/bin/rm -f "#{script_tmp}"`
-File.unlink "#{script_tmp}.bak" or `/bin/rm -f "#{script_tmp}.bak"`
-
-test_check "const"
-TEST1 = 1
-TEST2 = 2
-
-module Const
- TEST3 = 3
- TEST4 = 4
-end
-
-module Const2
- TEST3 = 6
- TEST4 = 8
-end
-
-include Const
-
-test_ok([TEST1,TEST2,TEST3,TEST4] == [1,2,3,4])
-
-include Const2
-STDERR.print "intentionally redefines TEST3, TEST4\n" if $VERBOSE
-test_ok([TEST1,TEST2,TEST3,TEST4] == [1,2,6,8])
-
-
-test_ok((String <=> Object) == -1)
-test_ok((Object <=> String) == 1)
-test_ok((Array <=> String) == nil)
-
-test_check "clone"
-foo = Object.new
-def foo.test
- "test"
-end
-bar = foo.clone
-def bar.test2
- "test2"
-end
-
-test_ok(bar.test2 == "test2")
-test_ok(bar.test == "test")
-test_ok(foo.test == "test")
-
-begin
- foo.test2
- test_ok false
-rescue NoMethodError
- test_ok true
-end
-
-module M001; end
-module M002; end
-module M003; include M002; end
-module M002; include M001; end
-module M003; include M002; end
-
-test_ok(M003.ancestors == [M003, M002, M001])
-
-test_check "marshal"
-$x = [1,2,3,[4,5,"foo"],{1=>"bar"},2.5,fact(30)]
-$y = Marshal.dump($x)
-test_ok($x == Marshal.load($y))
-
-StrClone=String.clone;
-test_ok(Marshal.load(Marshal.dump(StrClone.new("abc"))).class == StrClone)
-
-[[1,2,3,4], [81, 2, 118, 3146]].each { |w,x,y,z|
- a = (x.to_f + y.to_f / z.to_f) * Math.exp(w.to_f / (x.to_f + y.to_f / z.to_f))
- ma = Marshal.dump(a)
- b = Marshal.load(ma)
- test_ok(a == b)
-}
-
-test_check "pack"
-
-$format = "c2x5CCxsdils_l_a6";
-# Need the expression in here to force ary[5] to be numeric. This avoids
-# test2 failing because ary2 goes str->numeric->str and ary does not.
-ary = [1,-100,127,128,32767,987.654321098 / 100.0,12345,123456,-32767,-123456,"abcdef"]
-$x = ary.pack($format)
-ary2 = $x.unpack($format)
-
-test_ok(ary.length == ary2.length)
-test_ok(ary.join(':') == ary2.join(':'))
-test_ok($x =~ /def/)
-
-$x = [-1073741825]
-test_ok($x.pack("q").unpack("q") == $x)
-
-test_check "math"
-test_ok(Math.sqrt(4) == 2)
-
-include Math
-test_ok(sqrt(4) == 2)
-
-test_check "struct"
-struct_test = Struct.new("Test", :foo, :bar)
-test_ok(struct_test == Struct::Test)
-
-test = struct_test.new(1, 2)
-test_ok(test.foo == 1 && test.bar == 2)
-test_ok(test[0] == 1 && test[1] == 2)
-
-a, b = test.to_a
-test_ok(a == 1 && b == 2)
-
-test[0] = 22
-test_ok(test.foo == 22)
-
-test.bar = 47
-test_ok(test.bar == 47)
-
-test_check "variable"
-test_ok($$.instance_of?(Integer))
-
-# read-only variable
-begin
- $$ = 5
- test_ok false
-rescue NameError
- test_ok true
-end
-
-foobar = "foobar"
-$_ = foobar
-test_ok($_ == foobar)
-
-class Gods
- @@rule = "Uranus"
- def ruler0
- @@rule
- end
-
- def self.ruler1 # <= per method definition style
- @@rule
- end
- class << self # <= multiple method definition style
- def ruler2
- @@rule
- end
- end
-end
-
-module Olympians
- @@rule ="Zeus"
- def ruler3
- @@rule
- end
-end
-
-class Titans < Gods
- @@rule = "Cronus" # modifies @@rule in Gods
- include Olympians
- def ruler4
- @@rule
- end
-end
-
-test_ok(Gods.new.ruler0 == "Cronus")
-test_ok(Gods.ruler1 == "Cronus")
-test_ok(Gods.ruler2 == "Cronus")
-test_ok(Titans.ruler1 == "Cronus")
-test_ok(Titans.ruler2 == "Cronus")
-atlas = Titans.new
-test_ok(atlas.ruler0 == "Cronus")
-test_ok(atlas.ruler3 == "Zeus")
-begin
- atlas.ruler4
-rescue RuntimeError => e
- test_ok(e.message.include?("class variable @@rule of Olympians is overtaken by Gods"))
-else
- test_ok(false)
-end
-test_ok(atlas.ruler3 == "Zeus")
-
-test_check "trace"
-$x = 1234
-$y = 0
-trace_var :$x, Proc.new{$y = $x}
-$x = 40414
-test_ok($y == $x)
-
-untrace_var :$x
-$x = 19660208
-test_ok($y != $x)
-
-trace_var :$x, Proc.new{$x *= 2}
-$x = 5
-test_ok($x == 10)
-
-untrace_var :$x
-
-test_check "defined?"
-
-test_ok(defined?($x)) # global variable
-test_ok(defined?($x) == 'global-variable')# returns description
-
-foo=5
-test_ok(defined?(foo)) # local variable
-
-test_ok(defined?(Array)) # constant
-test_ok(defined?(Object.new)) # method
-test_ok(!defined?(Object.print))# private method
-test_ok(defined?(1 == 2)) # operator expression
-
-class Foo
- def foo
- p :foo
- end
- protected :foo
- def bar(f)
- test_ok(defined?(self.foo))
- test_ok(defined?(f.foo))
- end
-end
-f = Foo.new
-test_ok(defined?(f.foo) == nil)
-f.bar(f)
-
-def defined_test
- return !defined?(yield)
-end
-
-test_ok(defined_test) # not iterator
-test_ok(!defined_test{}) # called as iterator
-
-test_check "alias"
-class Alias0
- def foo; "foo" end
-end
-class Alias1 < Alias0
- alias bar foo
- def foo; "foo+" + super end
-end
-class Alias2 < Alias1
- alias baz foo
- undef foo
-end
-
-x = Alias2.new
-test_ok(x.bar == "foo")
-test_ok(x.baz == "foo+foo")
-
-# test_check for cache
-test_ok(x.baz == "foo+foo")
-
-class Alias3 < Alias2
- def foo
- defined? super
- end
- def bar
- defined? super
- end
- def quux
- defined? super
- end
-end
-x = Alias3.new
-test_ok(!x.foo)
-test_ok(x.bar)
-test_ok(!x.quux)
-
-test_check "path"
-test_ok(File.basename("a") == "a")
-test_ok(File.basename("a/b") == "b")
-test_ok(File.basename("a/b/") == "b")
-test_ok(File.basename("/") == "/")
-test_ok(File.basename("//") == "/")
-test_ok(File.basename("///") == "/")
-test_ok(File.basename("a/b////") == "b")
-test_ok(File.basename("a.rb", ".rb") == "a")
-test_ok(File.basename("a.rb///", ".rb") == "a")
-test_ok(File.basename("a.rb///", ".*") == "a")
-test_ok(File.basename("a.rb///", ".c") == "a.rb")
-test_ok(File.dirname("a") == ".")
-test_ok(File.dirname("/") == "/")
-test_ok(File.dirname("/a") == "/")
-test_ok(File.dirname("a/b") == "a")
-test_ok(File.dirname("a/b/c") == "a/b")
-test_ok(File.dirname("/a/b/c") == "/a/b")
-test_ok(File.dirname("/a/b/") == "/a")
-test_ok(File.dirname("/a/b///") == "/a")
-case Dir.pwd
-when %r'\A\w:'
- test_ok(/\A\w:\/\z/ =~ File.expand_path(".", "/"))
- test_ok(/\A\w:\/a\z/ =~ File.expand_path("a", "/"))
- dosish = true
-when %r'\A//'
- test_ok(%r'\A//[^/]+/[^/]+\z' =~ File.expand_path(".", "/"))
- test_ok(%r'\A//[^/]+/[^/]+/a\z' =~ File.expand_path(".", "/"))
- dosish = true
-else
- test_ok(File.expand_path(".", "/") == "/")
- test_ok(File.expand_path("sub", "/") == "/sub")
-end
-if dosish
- test_ok(File.expand_path("/", "//machine/share/sub") == "//machine/share")
- test_ok(File.expand_path("/dir", "//machine/share/sub") == "//machine/share/dir")
- test_ok(File.expand_path("/", "z:/sub") == "z:/")
- test_ok(File.expand_path("/dir", "z:/sub") == "z:/dir")
-end
-test_ok(File.expand_path(".", "//") == "//")
-test_ok(File.expand_path("sub", "//") == "//sub")
-
-# test_check "Proc#binding"
-ObjectSpace.each_object(Proc){|o|
- begin
- b = o.binding
- eval 'self', b
- rescue ArgumentError
- end
-}
-
-test_check "gc"
-begin
- 1.upto(10000) {
- tmp = [0,1,2,3,4,5,6,7,8,9]
- }
- tmp = nil
- test_ok true
-rescue
- test_ok false
-end
-class S
- def initialize(a)
- @a = a
- end
-end
-l=nil
-100000.times {
- l = S.new(l)
-}
-GC.start
-test_ok true # reach here or dumps core
-l = []
-100000.times {
- l.push([l])
-}
-GC.start
-test_ok true # reach here or dumps core
-
-ObjectSpace.each_object{|o|
- o.class.name
-}
-
-test_ok true # reach here or dumps core
-
-PROGRESS.finish
-if $failed > 0
- printf "not ok/test: %d failed %d\n", $ntest, $failed
-else
- printf "end of test(test: %d)\n", $ntest
-end
diff --git a/benchmark/README.md b/benchmark/README.md
deleted file mode 100644
index c222164be3..0000000000
--- a/benchmark/README.md
+++ /dev/null
@@ -1,72 +0,0 @@
-# ruby/benchmark
-
-This directory has benchmark definitions to be run with
-[benchmark\_driver.gem](https://github.com/benchmark-driver/benchmark-driver).
-
-## Normal usage
-
-Execute `gem install benchmark_driver` and run a command like:
-
-```bash
-# Run a benchmark script with the ruby in the $PATH
-benchmark-driver benchmark/app_fib.rb
-
-# Run benchmark scripts with multiple Ruby executables or options
-benchmark-driver benchmark/*.rb -e /path/to/ruby -e '/path/to/ruby --jit'
-
-# Or compare Ruby versions managed by rbenv
-benchmark-driver benchmark/*.rb --rbenv '2.5.1;2.6.0-preview2 --jit'
-
-# You can collect many metrics in many ways
-benchmark-driver benchmark/*.rb --runner memory --output markdown
-
-# Some are defined with YAML for complex setup or accurate measurement
-benchmark-driver benchmark/*.yml
-```
-
-See also:
-
-```console
-Usage: benchmark-driver [options] RUBY|YAML...
- -r, --runner TYPE Specify runner type: ips, time, memory, once (default: ips)
- -o, --output TYPE Specify output type: compare, simple, markdown, record (default: compare)
- -e, --executables EXECS Ruby executables (e1::path1 arg1; e2::path2 arg2;...)
- --rbenv VERSIONS Ruby executables in rbenv (x.x.x arg1;y.y.y arg2;...)
- --repeat-count NUM Try benchmark NUM times and use the fastest result or the worst memory usage
- --repeat-result TYPE Yield "best", "average" or "worst" result with --repeat-count (default: best)
- --bundler Install and use gems specified in Gemfile
- --filter REGEXP Filter out benchmarks with given regexp
- --run-duration SECONDS Warmup estimates loop_count to run for this duration (default: 3)
- -v, --verbose Verbose mode. Multiple -v options increase visibility (max: 2)
-```
-
-## make benchmark
-
-Using `make benchmark`, `make update-benchmark-driver` automatically downloads
-the supported version of benchmark\_driver, and it runs benchmarks with the downloaded
-benchmark\_driver.
-
-```bash
-# Run all benchmarks with the ruby in the $PATH and the built ruby
-make benchmark
-
-# Or compare with specific ruby binary
-make benchmark COMPARE_RUBY="/path/to/ruby --jit"
-
-# Run vm benchmarks
-make benchmark ITEM=vm
-
-# Run some limited benchmarks in ITEM-matched files
-make benchmark ITEM=vm OPTS=--filter=block
-
-# You can specify the benchmark by an exact filename instead of using the default argument:
-# ARGS = $$(find $(srcdir)/benchmark -maxdepth 1 -name '*$(ITEM)*.yml' -o -name '*$(ITEM)*.rb')
-make benchmark ARGS=benchmark/erb_render.yml
-
-# You can specify any option via $OPTS
-make benchmark OPTS="--help"
-
-# With `make benchmark`, some special runner plugins are available:
-# -r peak, -r size, -r total, -r utime, -r stime, -r cutime, -r cstime
-make benchmark ITEM=vm_bigarray OPTS="-r peak"
-```
diff --git a/benchmark/app_answer.rb b/benchmark/app_answer.rb
deleted file mode 100644
index 3cd8a8fd37..0000000000
--- a/benchmark/app_answer.rb
+++ /dev/null
@@ -1,15 +0,0 @@
-def ack(m, n)
- if m == 0 then
- n + 1
- elsif n == 0 then
- ack(m - 1, 1)
- else
- ack(m - 1, ack(m, n - 1))
- end
-end
-
-def the_answer_to_life_the_universe_and_everything
- (ack(3,7).to_s.split(//).inject(0){|s,x| s+x.to_i}.to_s + "2" ).to_i
-end
-
-answer = the_answer_to_life_the_universe_and_everything
diff --git a/benchmark/app_aobench.rb b/benchmark/app_aobench.rb
deleted file mode 100644
index 16296af12b..0000000000
--- a/benchmark/app_aobench.rb
+++ /dev/null
@@ -1,297 +0,0 @@
-# coding: US-ASCII
-
-# AO render benchmark
-# Original program (C) Syoyo Fujita in Javascript (and other languages)
-# https://code.google.com/p/aobench/
-# Ruby(yarv2llvm) version by Hideki Miura
-#
-
-IMAGE_WIDTH = 256
-IMAGE_HEIGHT = 256
-NSUBSAMPLES = 2
-NAO_SAMPLES = 8
-
-srand(0)
-
-class Vec
- def initialize(x, y, z)
- @x = x
- @y = y
- @z = z
- end
-
- attr_accessor :x, :y, :z
-
- def vadd(b)
- Vec.new(@x + b.x, @y + b.y, @z + b.z)
- end
-
- def vsub(b)
- Vec.new(@x - b.x, @y - b.y, @z - b.z)
- end
-
- def vcross(b)
- Vec.new(@y * b.z - @z * b.y,
- @z * b.x - @x * b.z,
- @x * b.y - @y * b.x)
- end
-
- def vdot(b)
- @x * b.x + @y * b.y + @z * b.z
- end
-
- def vlength
- Math.sqrt(@x * @x + @y * @y + @z * @z)
- end
-
- def vnormalize
- len = vlength
- v = Vec.new(@x, @y, @z)
- if len > 1.0e-17 then
- v.x = v.x / len
- v.y = v.y / len
- v.z = v.z / len
- end
- v
- end
-end
-
-
-class Sphere
- def initialize(center, radius)
- @center = center
- @radius = radius
- end
-
- attr_reader :center, :radius
-
- def intersect(ray, isect)
- rs = ray.org.vsub(@center)
- b = rs.vdot(ray.dir)
- c = rs.vdot(rs) - (@radius * @radius)
- d = b * b - c
- if d > 0.0 then
- t = - b - Math.sqrt(d)
-
- if t > 0.0 and t < isect.t then
- isect.t = t
- isect.hit = true
- isect.pl = Vec.new(ray.org.x + ray.dir.x * t,
- ray.org.y + ray.dir.y * t,
- ray.org.z + ray.dir.z * t)
- n = isect.pl.vsub(@center)
- isect.n = n.vnormalize
- else
- 0.0
- end
- end
- nil
- end
-end
-
-class Plane
- def initialize(p, n)
- @p = p
- @n = n
- end
-
- def intersect(ray, isect)
- d = -@p.vdot(@n)
- v = ray.dir.vdot(@n)
- v0 = v
- if v < 0.0 then
- v0 = -v
- end
- if v0 < 1.0e-17 then
- return
- end
-
- t = -(ray.org.vdot(@n) + d) / v
-
- if t > 0.0 and t < isect.t then
- isect.hit = true
- isect.t = t
- isect.n = @n
- isect.pl = Vec.new(ray.org.x + t * ray.dir.x,
- ray.org.y + t * ray.dir.y,
- ray.org.z + t * ray.dir.z)
- end
- nil
- end
-end
-
-class Ray
- def initialize(org, dir)
- @org = org
- @dir = dir
- end
-
- attr_accessor :org, :dir
-end
-
-class Isect
- def initialize
- @t = 10000000.0
- @hit = false
- @pl = Vec.new(0.0, 0.0, 0.0)
- @n = Vec.new(0.0, 0.0, 0.0)
- end
-
- attr_accessor :t, :hit, :pl, :n
-end
-
-def clamp(f)
- i = f * 255.5
- if i > 255.0 then
- i = 255.0
- end
- if i < 0.0 then
- i = 0.0
- end
- i.to_i
-end
-
-def otherBasis(basis, n)
- basis[2] = Vec.new(n.x, n.y, n.z)
- basis[1] = Vec.new(0.0, 0.0, 0.0)
-
- if n.x < 0.6 and n.x > -0.6 then
- basis[1].x = 1.0
- elsif n.y < 0.6 and n.y > -0.6 then
- basis[1].y = 1.0
- elsif n.z < 0.6 and n.z > -0.6 then
- basis[1].z = 1.0
- else
- basis[1].x = 1.0
- end
-
- basis[0] = basis[1].vcross(basis[2])
- basis[0] = basis[0].vnormalize
-
- basis[1] = basis[2].vcross(basis[0])
- basis[1] = basis[1].vnormalize
-end
-
-class Scene
- def initialize
- @spheres = Array.new
- @spheres[0] = Sphere.new(Vec.new(-2.0, 0.0, -3.5), 0.5)
- @spheres[1] = Sphere.new(Vec.new(-0.5, 0.0, -3.0), 0.5)
- @spheres[2] = Sphere.new(Vec.new(1.0, 0.0, -2.2), 0.5)
- @plane = Plane.new(Vec.new(0.0, -0.5, 0.0), Vec.new(0.0, 1.0, 0.0))
- end
-
- def ambient_occlusion(isect)
- basis = Array.new
- otherBasis(basis, isect.n)
-
- ntheta = NAO_SAMPLES
- nphi = NAO_SAMPLES
- eps = 0.0001
- occlusion = 0.0
-
- p0 = Vec.new(isect.pl.x + eps * isect.n.x,
- isect.pl.y + eps * isect.n.y,
- isect.pl.z + eps * isect.n.z)
- nphi.times do |j|
- ntheta.times do |i|
- r = rand
- phi = 2.0 * 3.14159265 * rand
- x = Math.cos(phi) * Math.sqrt(1.0 - r)
- y = Math.sin(phi) * Math.sqrt(1.0 - r)
- z = Math.sqrt(r)
-
- rx = x * basis[0].x + y * basis[1].x + z * basis[2].x
- ry = x * basis[0].y + y * basis[1].y + z * basis[2].y
- rz = x * basis[0].z + y * basis[1].z + z * basis[2].z
-
- raydir = Vec.new(rx, ry, rz)
- ray = Ray.new(p0, raydir)
-
- occisect = Isect.new
- @spheres[0].intersect(ray, occisect)
- @spheres[1].intersect(ray, occisect)
- @spheres[2].intersect(ray, occisect)
- @plane.intersect(ray, occisect)
- if occisect.hit then
- occlusion = occlusion + 1.0
- else
- 0.0
- end
- end
- end
-
- occlusion = (ntheta.to_f * nphi.to_f - occlusion) / (ntheta.to_f * nphi.to_f)
-
- Vec.new(occlusion, occlusion, occlusion)
- end
-
- def render(w, h, nsubsamples)
- cnt = 0
- nsf = nsubsamples.to_f
- h.times do |y|
- w.times do |x|
- rad = Vec.new(0.0, 0.0, 0.0)
-
- # Subsampling
- nsubsamples.times do |v|
- nsubsamples.times do |u|
-
- cnt = cnt + 1
- wf = w.to_f
- hf = h.to_f
- xf = x.to_f
- yf = y.to_f
- uf = u.to_f
- vf = v.to_f
-
- px = (xf + (uf / nsf) - (wf / 2.0)) / (wf / 2.0)
- py = -(yf + (vf / nsf) - (hf / 2.0)) / (hf / 2.0)
-
- eye = Vec.new(px, py, -1.0).vnormalize
-
- ray = Ray.new(Vec.new(0.0, 0.0, 0.0), eye)
-
- isect = Isect.new
- @spheres[0].intersect(ray, isect)
- @spheres[1].intersect(ray, isect)
- @spheres[2].intersect(ray, isect)
- @plane.intersect(ray, isect)
- if isect.hit then
- col = ambient_occlusion(isect)
- rad.x = rad.x + col.x
- rad.y = rad.y + col.y
- rad.z = rad.z + col.z
- end
- end
- end
-
- r = rad.x / (nsf * nsf)
- g = rad.y / (nsf * nsf)
- b = rad.z / (nsf * nsf)
- printf("%c", clamp(r))
- printf("%c", clamp(g))
- printf("%c", clamp(b))
- end
- nil
- end
-
- nil
- end
-end
-
-alias printf_orig printf
-def printf *args
- # $fp.printf(*args)
-end
-
-# File.open("ao.ppm", "w") do |fp|
- # $fp = fp
- printf("P6\n")
- printf("%d %d\n", IMAGE_WIDTH, IMAGE_HEIGHT)
- printf("255\n")
- Scene.new.render(IMAGE_WIDTH, IMAGE_HEIGHT, NSUBSAMPLES)
-# end
-
-undef printf
-alias printf printf_orig
diff --git a/benchmark/app_erb.yml b/benchmark/app_erb.yml
deleted file mode 100644
index 31e29b7644..0000000000
--- a/benchmark/app_erb.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# Create many HTML strings with ERB.
-#
-prelude: |
- require 'erb'
-
- data = <<erb
- <html>
- <head> <%= title %> </head>
- <body>
- <h1> <%= title %> </h1>
- <p>
- <%= content %>
- </p>
- </body>
- </html>
- erb
-
- title = "hello world!"
- content = "hello world!\n" * 10
-benchmark:
- app_erb: ERB.new(data).result(binding)
-loop_count: 15000
diff --git a/benchmark/app_factorial.rb b/benchmark/app_factorial.rb
deleted file mode 100644
index 45f471dfdb..0000000000
--- a/benchmark/app_factorial.rb
+++ /dev/null
@@ -1,11 +0,0 @@
-def fact(n)
- if(n > 1)
- n * fact(n-1)
- else
- 1
- end
-end
-
-100.times {
- fact(5000)
-}
diff --git a/benchmark/app_fib.rb b/benchmark/app_fib.rb
deleted file mode 100644
index 34a7b2e725..0000000000
--- a/benchmark/app_fib.rb
+++ /dev/null
@@ -1,10 +0,0 @@
-def fib n
- if n < 3
- 1
- else
- fib(n-1) + fib(n-2)
- end
-end
-
-fib(34)
-
diff --git a/benchmark/app_lc_fizzbuzz.rb b/benchmark/app_lc_fizzbuzz.rb
deleted file mode 100644
index f09574bbeb..0000000000
--- a/benchmark/app_lc_fizzbuzz.rb
+++ /dev/null
@@ -1,52 +0,0 @@
-#
-# FizzBuzz program using only lambda calculus
-#
-# This program is quoted from
-# "Understanding Computation" by Tom Stuart
-# http://computationbook.com/
-#
-# You can understand why this program works fine by reading this book.
-#
-
-solution = -> k { -> f { -> f { -> x { f[-> y { x[x][y] }] }[-> x { f[-> y { x[x][y] }] }] }[-> f { -> l { -> x { -> g { -> b { b }[-> p { p[-> x { -> y { x } }] }[l]][x][-> y { g[f[-> l { -> p { p[-> x { -> y { y } }] }[-> p { p[-> x { -> y { y } }] }[l]] }[l]][x][g]][-> l { -> p { p[-> x { -> y { x } }] }[-> p { p[-> x { -> y { y } }] }[l]] }[l]][y] }] } } } }][k][-> x { -> y { -> f { f[x][y] } } }[-> x { -> y { x } }][-> x { -> y { x } }]][-> l { -> x { -> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[l][f[x]] } }] } }[-> f { -> x { f[-> y { x[x][y] }] }[-> x { f[-> y { x[x][y] }] }] }[-> f { -> m { -> n { -> b { b }[-> m { -> n { -> n { n[-> x { -> x { -> y { y } } }][-> x { -> y { x } }] }[-> m { -> n { n[-> n { -> p { p[-> x { -> y { x } }] }[n[-> p { -> x { -> y { -> f { f[x][y] } } }[-> p { p[-> x { -> y { y } }] }[p]][-> n { -> p { -> x { p[n[p][x]] } } }[-> p { p[-> x { -> y { y } }] }[p]]] }][-> x { -> y { -> f { f[x][y] } } }[-> p { -> x { x } }][-> p { -> x { x } }]]] }][m] } }[m][n]] } }[m][n]][-> x { -> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[f[-> n { -> p { -> x { p[n[p][x]] } } }[m]][n]][m][x] }][-> x { -> y { -> f { f[x][y] } } }[-> x { -> y { x } }][-> x { -> y { x } }]] } } }][-> p { -> x { p[x] } }][-> p { -> x { p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[x]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] } }]][-> n { -> b { b }[-> n { n[-> x { -> x { -> y { y } } }][-> x { -> y { x } }] }[-> f { -> x { f[-> y { x[x][y] }] }[-> x { f[-> y { x[x][y] }] }] }[-> f { -> m { -> n { -> b { b }[-> m { -> n { -> n { n[-> x { -> x { -> y { y } } }][-> x { -> y { x } }] }[-> m { -> n { n[-> n { -> p { p[-> x { -> y { x } }] }[n[-> p { -> x { -> y { -> f { f[x][y] } } }[-> p { p[-> x { -> y { y } }] }[p]][-> n { -> p { -> x { p[n[p][x]] } } }[-> p { p[-> x { -> y { y } }] }[p]]] }][-> x { -> y { -> f { f[x][y] } } }[-> p { -> x { x } }][-> p { -> x { x } }]]] }][m] } }[m][n]] } }[n][m]][-> x { f[-> m { -> n { n[-> n { -> p { p[-> x { -> y { x } }] }[n[-> p { -> x { -> y { -> f { f[x][y] } } }[-> p { p[-> x { -> y { y } }] }[p]][-> n { -> p { -> x { p[n[p][x]] } } }[-> p { p[-> x { -> y { y } }] }[p]]] }][-> x { -> y { -> f { f[x][y] } } }[-> p { -> x { x } }][-> p { -> x { x } }]]] }][m] } }[m][n]][n][x] }][m] } } }][n][-> p { -> x { p[p[p[p[p[p[p[p[p[p[p[p[p[p[p[x]]]]]]]]]]]]]]] } }]]][-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[-> x { -> y { -> f { f[x][y] } } }[-> x { -> y { x } }][-> x { -> y { x } }]][-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]]]]]][-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]]]]]][-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]]]]][-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]][-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]]]]]][-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]]]]]][-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]]]][-> n { -> p { -> x { p[n[p][x]] } } }[-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]]][-> b { b }[-> n { n[-> x { -> x { -> y { y } } }][-> x { -> y { x } }] }[-> f { -> x { f[-> y { x[x][y] }] }[-> x { f[-> y { x[x][y] }] }] }[-> f { -> m { -> n { -> b { b }[-> m { -> n { -> n { n[-> x { -> x { -> y { y } } }][-> x { -> y { x } }] }[-> m { -> n { n[-> n { -> p { p[-> x { -> y { x } }] }[n[-> p { -> x { -> y { -> f { f[x][y] } } }[-> p { p[-> x { -> y { y } }] }[p]][-> n { -> p { -> x { p[n[p][x]] } } }[-> p { p[-> x { -> y { y } }] }[p]]] }][-> x { -> y { -> f { f[x][y] } } }[-> p { -> x { x } }][-> p { -> x { x } }]]] }][m] } }[m][n]] } }[n][m]][-> x { f[-> m { -> n { n[-> n { -> p { p[-> x { -> y { x } }] }[n[-> p { -> x { -> y { -> f { f[x][y] } } }[-> p { p[-> x { -> y { y } }] }[p]][-> n { -> p { -> x { p[n[p][x]] } } }[-> p { p[-> x { -> y { y } }] }[p]]] }][-> x { -> y { -> f { f[x][y] } } }[-> p { -> x { x } }][-> p { -> x { x } }]]] }][m] } }[m][n]][n][x] }][m] } } }][n][-> p { -> x { p[p[p[x]]] } }]]][-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[-> x { -> y { -> f { f[x][y] } } }[-> x { -> y { x } }][-> x { -> y { x } }]][-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]]]]]][-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]]]]]][-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]]]][-> n { -> p { -> x { p[n[p][x]] } } }[-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]]][-> b { b }[-> n { n[-> x { -> x { -> y { y } } }][-> x { -> y { x } }] }[-> f { -> x { f[-> y { x[x][y] }] }[-> x { f[-> y { x[x][y] }] }] }[-> f { -> m { -> n { -> b { b }[-> m { -> n { -> n { n[-> x { -> x { -> y { y } } }][-> x { -> y { x } }] }[-> m { -> n { n[-> n { -> p { p[-> x { -> y { x } }] }[n[-> p { -> x { -> y { -> f { f[x][y] } } }[-> p { p[-> x { -> y { y } }] }[p]][-> n { -> p { -> x { p[n[p][x]] } } }[-> p { p[-> x { -> y { y } }] }[p]]] }][-> x { -> y { -> f { f[x][y] } } }[-> p { -> x { x } }][-> p { -> x { x } }]]] }][m] } }[m][n]] } }[n][m]][-> x { f[-> m { -> n { n[-> n { -> p { p[-> x { -> y { x } }] }[n[-> p { -> x { -> y { -> f { f[x][y] } } }[-> p { p[-> x { -> y { y } }] }[p]][-> n { -> p { -> x { p[n[p][x]] } } }[-> p { p[-> x { -> y { y } }] }[p]]] }][-> x { -> y { -> f { f[x][y] } } }[-> p { -> x { x } }][-> p { -> x { x } }]]] }][m] } }[m][n]][n][x] }][m] } } }][n][-> p { -> x { p[p[p[p[p[x]]]]] } }]]][-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[-> x { -> y { -> f { f[x][y] } } }[-> x { -> y { x } }][-> x { -> y { x } }]][-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]]]]]][-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]]]]]][-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> n { -> p { -> x { p[n[p][x]] } } }[-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]]]]][-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]][-> f { -> x { f[-> y { x[x][y] }] }[-> x { f[-> y { x[x][y] }] }] }[-> f { -> n { -> l { -> x { -> f { -> x { f[-> y { x[x][y] }] }[-> x { f[-> y { x[x][y] }] }] }[-> f { -> l { -> x { -> g { -> b { b }[-> p { p[-> x { -> y { x } }] }[l]][x][-> y { g[f[-> l { -> p { p[-> x { -> y { y } }] }[-> p { p[-> x { -> y { y } }] }[l]] }[l]][x][g]][-> l { -> p { p[-> x { -> y { x } }] }[-> p { p[-> x { -> y { y } }] }[l]] }[l]][y] }] } } } }][l][-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }[-> x { -> y { -> f { f[x][y] } } }[-> x { -> y { x } }][-> x { -> y { x } }]][x]][-> l { -> x { -> x { -> y { -> f { f[x][y] } } }[-> x { -> y { y } }][-> x { -> y { -> f { f[x][y] } } }[x][l]] } }] } }[-> b { b }[-> m { -> n { -> n { n[-> x { -> x { -> y { y } } }][-> x { -> y { x } }] }[-> m { -> n { n[-> n { -> p { p[-> x { -> y { x } }] }[n[-> p { -> x { -> y { -> f { f[x][y] } } }[-> p { p[-> x { -> y { y } }] }[p]][-> n { -> p { -> x { p[n[p][x]] } } }[-> p { p[-> x { -> y { y } }] }[p]]] }][-> x { -> y { -> f { f[x][y] } } }[-> p { -> x { x } }][-> p { -> x { x } }]]] }][m] } }[m][n]] } }[n][-> n { -> p { p[-> x { -> y { x } }] }[n[-> p { -> x { -> y { -> f { f[x][y] } } }[-> p { p[-> x { -> y { y } }] }[p]][-> n { -> p { -> x { p[n[p][x]] } } }[-> p { p[-> x { -> y { y } }] }[p]]] }][-> x { -> y { -> f { f[x][y] } } }[-> p { -> x { x } }][-> p { -> x { x } }]]] }[-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]]][-> x { -> y { -> f { f[x][y] } } }[-> x { -> y { x } }][-> x { -> y { x } }]][-> x { f[-> f { -> x { f[-> y { x[x][y] }] }[-> x { f[-> y { x[x][y] }] }] }[-> f { -> m { -> n { -> b { b }[-> m { -> n { -> n { n[-> x { -> x { -> y { y } } }][-> x { -> y { x } }] }[-> m { -> n { n[-> n { -> p { p[-> x { -> y { x } }] }[n[-> p { -> x { -> y { -> f { f[x][y] } } }[-> p { p[-> x { -> y { y } }] }[p]][-> n { -> p { -> x { p[n[p][x]] } } }[-> p { p[-> x { -> y { y } }] }[p]]] }][-> x { -> y { -> f { f[x][y] } } }[-> p { -> x { x } }][-> p { -> x { x } }]]] }][m] } }[m][n]] } }[n][m]][-> x { -> n { -> p { -> x { p[n[p][x]] } } }[f[-> m { -> n { n[-> n { -> p { p[-> x { -> y { x } }] }[n[-> p { -> x { -> y { -> f { f[x][y] } } }[-> p { p[-> x { -> y { y } }] }[p]][-> n { -> p { -> x { p[n[p][x]] } } }[-> p { p[-> x { -> y { y } }] }[p]]] }][-> x { -> y { -> f { f[x][y] } } }[-> p { -> x { x } }][-> p { -> x { x } }]]] }][m] } }[m][n]][n]][x] }][-> p { -> x { x } }] } } }][n][-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]][x] }]][-> f { -> x { f[-> y { x[x][y] }] }[-> x { f[-> y { x[x][y] }] }] }[-> f { -> m { -> n { -> b { b }[-> m { -> n { -> n { n[-> x { -> x { -> y { y } } }][-> x { -> y { x } }] }[-> m { -> n { n[-> n { -> p { p[-> x { -> y { x } }] }[n[-> p { -> x { -> y { -> f { f[x][y] } } }[-> p { p[-> x { -> y { y } }] }[p]][-> n { -> p { -> x { p[n[p][x]] } } }[-> p { p[-> x { -> y { y } }] }[p]]] }][-> x { -> y { -> f { f[x][y] } } }[-> p { -> x { x } }][-> p { -> x { x } }]]] }][m] } }[m][n]] } }[n][m]][-> x { f[-> m { -> n { n[-> n { -> p { p[-> x { -> y { x } }] }[n[-> p { -> x { -> y { -> f { f[x][y] } } }[-> p { p[-> x { -> y { y } }] }[p]][-> n { -> p { -> x { p[n[p][x]] } } }[-> p { p[-> x { -> y { y } }] }[p]]] }][-> x { -> y { -> f { f[x][y] } } }[-> p { -> x { x } }][-> p { -> x { x } }]]] }][m] } }[m][n]][n][x] }][m] } } }][n][-> m { -> n { n[-> m { -> n { n[-> n { -> p { -> x { p[n[p][x]] } } }][m] } }[m]][-> p { -> x { x } }] } }[-> p { -> x { p[p[x]] } }][-> p { -> x { p[p[p[p[p[x]]]]] } }]]] } }][n]]]] }]
-
-FIRST = -> l { LEFT[RIGHT[l]] }
-IF = -> b { b }
-LEFT = -> p { p[-> x { -> y { x } } ] }
-RIGHT = -> p { p[-> x { -> y { y } } ] }
-IS_EMPTY = LEFT
-REST = -> l { RIGHT[RIGHT[l]] }
-
-def to_integer(proc)
- proc[-> n { n + 1 }][0]
-end
-
-def to_boolean(proc)
- IF[proc][true][false]
-end
-
-def to_array(proc)
- array = []
-
- until to_boolean(IS_EMPTY[proc])
- array.push(FIRST[proc])
- proc = REST[proc]
- end
-
- array
-end
-
-def to_char(c)
- '0123456789BFiuz'.slice(to_integer(c))
-end
-
-def to_string(s)
- to_array(s).map { |c| to_char(c) }.join
-end
-
-answer = to_array(solution).map do |p|
- to_string(p)
-end
-
-answer_ary = answer.to_a
-# puts answer_ary
diff --git a/benchmark/app_mandelbrot.rb b/benchmark/app_mandelbrot.rb
deleted file mode 100644
index 801b75e8e2..0000000000
--- a/benchmark/app_mandelbrot.rb
+++ /dev/null
@@ -1,23 +0,0 @@
-require 'complex'
-
-def mandelbrot? z
- i = 0
- while i<100
- i += 1
- z = z * z
- return false if z.abs > 2
- end
- true
-end
-
-ary = []
-
-(0..1000).each{|dx|
- (0..1000).each{|dy|
- x = dx / 50.0
- y = dy / 50.0
- c = Complex(x, y)
- ary << c if mandelbrot?(c)
- }
-}
-
diff --git a/benchmark/app_pentomino.rb b/benchmark/app_pentomino.rb
deleted file mode 100644
index 47be7b203f..0000000000
--- a/benchmark/app_pentomino.rb
+++ /dev/null
@@ -1,130 +0,0 @@
-#!/usr/local/bin/ruby
-# This program is contributed by Shin Nishiyama
-
-
-# modified by K.Sasada
-
-NP = 5
-ROW = 8 + NP
-COL = 8
-
-$p = []
-$b = []
-$no = 0
-
-def piece(n, a, nb)
- nb.each{|x|
- a[n] = x
- if n == NP-1
- $p << [a.sort]
- else
- nbc=nb.dup
- [-ROW, -1, 1, ROW].each{|d|
- if x+d > 0 and not a.include?(x+d) and not nbc.include?(x+d)
- nbc << x+d
- end
- }
- nbc.delete x
- piece(n+1,a[0..n],nbc)
- end
- }
-end
-
-def kikaku(a)
- a.collect {|x| x - a[0]}
-end
-def ud(a)
- kikaku(a.collect {|x| ((x+NP)%ROW)-ROW*((x+NP)/ROW) }.sort)
-end
-def rl(a)
- kikaku(a.collect {|x| ROW*((x+NP)/ROW)+ROW-((x+NP)%ROW)}.sort)
-end
-def xy(a)
- kikaku(a.collect {|x| ROW*((x+NP)%ROW) + (x+NP)/ROW }.sort)
-end
-
-def mkpieces
- piece(0,[],[0])
- $p.each do |a|
- a0 = a[0]
- a[1] = ud(a0)
- a[2] = rl(a0)
- a[3] = ud(rl(a0))
- a[4] = xy(a0)
- a[5] = ud(xy(a0))
- a[6] = rl(xy(a0))
- a[7] = ud(rl(xy(a0)))
- a.sort!
- a.uniq!
- end
- $p.uniq!.sort! {|x,y| x[0] <=> y[0] }
-end
-
-def mkboard
- (0...ROW*COL).each{|i|
- if i % ROW >= ROW-NP
- $b[i] = -2
- else
- $b[i] = -1
- end
- $b[3*ROW+3]=$b[3*ROW+4]=$b[4*ROW+3]=$b[4*ROW+4]=-2
- }
-end
-
-def pboard
- return # skip print
- print "No. #$no\n"
- (0...COL).each{|i|
- print "|"
- (0...ROW-NP).each{|j|
- x = $b[i*ROW+j]
- if x < 0
- print "..|"
- else
- printf "%2d|",x+1
- end
- }
- print "\n"
- }
- print "\n"
-end
-
-$pnum=[]
-def setpiece(a,pos)
- if a.length == $p.length then
- $no += 1
- pboard
- return
- end
- while $b[pos] != -1
- pos += 1
- end
- ($pnum - a).each do |i|
- $p[i].each do |x|
- f = 0
- x.each{|s|
- if $b[pos+s] != -1
- f=1
- break
- end
- }
- if f == 0 then
- x.each{|s|
- $b[pos+s] = i
- }
- a << i
- setpiece(a.dup, pos)
- a.pop
- x.each{|s|
- $b[pos+s] = -1
- }
- end
- end
- end
-end
-
-mkpieces
-mkboard
-$p[4] = [$p[4][0]]
-$pnum = (0...$p.length).to_a
-setpiece([],0)
diff --git a/benchmark/app_raise.rb b/benchmark/app_raise.rb
deleted file mode 100644
index 5db8f95d50..0000000000
--- a/benchmark/app_raise.rb
+++ /dev/null
@@ -1,8 +0,0 @@
-i = 0
-while i<300000
- i += 1
- begin
- raise
- rescue
- end
-end
diff --git a/benchmark/app_strconcat.rb b/benchmark/app_strconcat.rb
deleted file mode 100644
index 7eed7c1aed..0000000000
--- a/benchmark/app_strconcat.rb
+++ /dev/null
@@ -1,5 +0,0 @@
-i = 0
-while i<2_000_000
- "#{1+1} #{1+1} #{1+1}"
- i += 1
-end
diff --git a/benchmark/app_tak.rb b/benchmark/app_tak.rb
deleted file mode 100644
index efe5380f4e..0000000000
--- a/benchmark/app_tak.rb
+++ /dev/null
@@ -1,13 +0,0 @@
-
-def tak x, y, z
- unless y < x
- z
- else
- tak( tak(x-1, y, z),
- tak(y-1, z, x),
- tak(z-1, x, y))
- end
-end
-
-tak(18, 9, 0)
-
diff --git a/benchmark/app_tarai.rb b/benchmark/app_tarai.rb
deleted file mode 100644
index 4c146f5ccf..0000000000
--- a/benchmark/app_tarai.rb
+++ /dev/null
@@ -1,10 +0,0 @@
-def tarai( x, y, z )
- if x <= y
- then y
- else tarai(tarai(x-1, y, z),
- tarai(y-1, z, x),
- tarai(z-1, x, y))
- end
-end
-
-tarai(12, 6, 0)
diff --git a/benchmark/app_uri.rb b/benchmark/app_uri.rb
deleted file mode 100644
index 586edfd5dc..0000000000
--- a/benchmark/app_uri.rb
+++ /dev/null
@@ -1,8 +0,0 @@
-require 'uri'
-
-100_000.times{
- uri = URI.parse('http://www.ruby-lang.org')
- uri.scheme
- uri.host
- uri.port
-}
diff --git a/benchmark/array_flatten.yml b/benchmark/array_flatten.yml
deleted file mode 100644
index 88ef544ba0..0000000000
--- a/benchmark/array_flatten.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-prelude: |
- small_flat_ary = 5.times.to_a
- large_flat_ary = 100.times.to_a
- small_pairs_ary = [[1, 2]] * 5
- large_pairs_ary = [[1, 2]] * 100
- mostly_flat_ary = 100.times.to_a.push([101, 102])
-
-benchmark:
- small_flat_ary.flatten: small_flat_ary.flatten
- small_flat_ary.flatten!: small_flat_ary.flatten!
- large_flat_ary.flatten: large_flat_ary.flatten
- large_flat_ary.flatten!: large_flat_ary.flatten!
- small_pairs_ary.flatten: small_pairs_ary.flatten
- small_pairs_ary.flatten!: small_pairs_ary.dup.flatten!
- large_pairs_ary.flatten: large_pairs_ary.flatten
- large_pairs_ary.flatten!: large_pairs_ary.dup.flatten!
- mostly_flat_ary.flatten: mostly_flat_ary.flatten
- mostly_flat_ary.flatten!: mostly_flat_ary.dup.flatten!
-loop_count: 10000
diff --git a/benchmark/array_intersection.yml b/benchmark/array_intersection.yml
deleted file mode 100644
index 26705323fd..0000000000
--- a/benchmark/array_intersection.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-prelude: |
- small1 = [1, 2, 3]
- small2 = [1, 2, 3, 4, 5]
- small3 = [2, 3, 4, 5]
- small4 = [2]
- big1 = [1, 2, 3, 4] * 64
- big2 = [1, 2, 3] * 64
- big3 = [1, 2] * 64
-
-benchmark:
- small-&: small1 & small2 & small3 & small4
- small-intersection: small1.intersection(small2, small3, small4)
- big-&: big1 & big2 & big3
- big-intersection: big1.intersection(big2, big3)
diff --git a/benchmark/array_max_float.yml b/benchmark/array_max_float.yml
deleted file mode 100644
index ace1ae2e14..0000000000
--- a/benchmark/array_max_float.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-prelude: |
- ary2 = 2.times.map(&:to_f).shuffle
- ary10 = 10.times.map(&:to_f).shuffle
- ary100 = 100.times.map(&:to_f).shuffle
- ary500 = 500.times.map(&:to_f).shuffle
- ary1000 = 1000.times.map(&:to_f).shuffle
- ary2000 = 2500.times.map(&:to_f).shuffle
- ary3000 = 2500.times.map(&:to_f).shuffle
- ary5000 = 5000.times.map(&:to_f).shuffle
- ary10000 = 10000.times.map(&:to_f).shuffle
- ary20000 = 20000.times.map(&:to_f).shuffle
- ary50000 = 50000.times.map(&:to_f).shuffle
- ary100000 = 100000.times.map(&:to_f).shuffle
-
-benchmark:
- ary2.max: ary2.max
- ary10.max: ary10.max
- ary100.max: ary100.max
- ary500.max: ary500.max
- ary1000.max: ary1000.max
- ary2000.max: ary2000.max
- ary3000.max: ary3000.max
- ary5000.max: ary5000.max
- ary10000.max: ary10000.max
- ary20000.max: ary20000.max
- ary50000.max: ary50000.max
- ary100000.max: ary100000.max
-
-loop_count: 10000
-
diff --git a/benchmark/array_max_int.yml b/benchmark/array_max_int.yml
deleted file mode 100644
index acd83684d0..0000000000
--- a/benchmark/array_max_int.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-prelude: |
- ary2 = 2.times.to_a.shuffle
- ary10 = 10.times.to_a.shuffle
- ary100 = 100.times.to_a.shuffle
- ary500 = 500.times.to_a.shuffle
- ary1000 = 1000.times.to_a.shuffle
- ary2000 = 2500.times.to_a.shuffle
- ary3000 = 2500.times.to_a.shuffle
- ary5000 = 5000.times.to_a.shuffle
- ary10000 = 10000.times.to_a.shuffle
- ary20000 = 20000.times.to_a.shuffle
- ary50000 = 50000.times.to_a.shuffle
- ary100000 = 100000.times.to_a.shuffle
- ary1000000 = 1000000.times.to_a.shuffle
-
-benchmark:
- ary2.max: ary2.max
- ary10.max: ary10.max
- ary100.max: ary100.max
- ary500.max: ary500.max
- ary1000.max: ary1000.max
- ary2000.max: ary2000.max
- ary3000.max: ary3000.max
- ary5000.max: ary5000.max
- ary10000.max: ary10000.max
- ary20000.max: ary20000.max
- ary50000.max: ary50000.max
- ary100000.max: ary100000.max
- ary1000000.max: ary1000000.max
-
-loop_count: 10000
diff --git a/benchmark/array_max_str.yml b/benchmark/array_max_str.yml
deleted file mode 100644
index 2aeed010f2..0000000000
--- a/benchmark/array_max_str.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-prelude: |
- ary2 = 2.times.map(&:to_s).shuffle
- ary10 = 10.times.map(&:to_s).shuffle
- ary100 = 100.times.map(&:to_s).shuffle
- ary500 = 500.times.map(&:to_s).shuffle
- ary1000 = 1000.times.map(&:to_s).shuffle
- ary2000 = 2500.times.map(&:to_s).shuffle
- ary3000 = 2500.times.map(&:to_s).shuffle
- ary5000 = 5000.times.map(&:to_s).shuffle
- ary10000 = 10000.times.map(&:to_s).shuffle
- ary20000 = 20000.times.map(&:to_s).shuffle
- ary50000 = 50000.times.map(&:to_s).shuffle
- ary100000 = 100000.times.map(&:to_s).shuffle
-
-benchmark:
- ary2.max: ary2.max
- ary10.max: ary10.max
- ary100.max: ary100.max
- ary500.max: ary500.max
- ary1000.max: ary1000.max
- ary2000.max: ary2000.max
- ary3000.max: ary3000.max
- ary5000.max: ary5000.max
- ary10000.max: ary10000.max
- ary20000.max: ary20000.max
- ary50000.max: ary50000.max
- ary100000.max: ary100000.max
-
-loop_count: 10000
-
diff --git a/benchmark/array_min.yml b/benchmark/array_min.yml
deleted file mode 100644
index 53e5072b14..0000000000
--- a/benchmark/array_min.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-prelude: |
- ary2 = 2.times.to_a.shuffle
- ary10 = 10.times.to_a.shuffle
- ary100 = 100.times.to_a.shuffle
- ary500 = 500.times.to_a.shuffle
- ary1000 = 1000.times.to_a.shuffle
- ary2000 = 2500.times.to_a.shuffle
- ary3000 = 2500.times.to_a.shuffle
- ary5000 = 5000.times.to_a.shuffle
- ary10000 = 10000.times.to_a.shuffle
- ary20000 = 20000.times.to_a.shuffle
- ary50000 = 50000.times.to_a.shuffle
- ary100000 = 100000.times.to_a.shuffle
- ary1000000 = 1000000.times.to_a.shuffle
-
-benchmark:
- ary2.min: ary2.min
- ary10.min: ary10.min
- ary100.min: ary100.min
- ary500.min: ary500.min
- ary1000.min: ary1000.min
- ary2000.min: ary2000.min
- ary3000.min: ary3000.min
- ary5000.min: ary5000.min
- ary10000.min: ary10000.min
- ary20000.min: ary20000.min
- ary50000.min: ary50000.min
- ary100000.min: ary100000.min
- ary1000000.min: ary1000000.min
-
-loop_count: 10000
diff --git a/benchmark/array_sample.yml b/benchmark/array_sample.yml
deleted file mode 100644
index 1cd2b34794..0000000000
--- a/benchmark/array_sample.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-prelude: ary = (1..10_000).to_a
-benchmark:
- - ary.sample
- - ary.sample(2)
diff --git a/benchmark/array_sample_100k_10.rb b/benchmark/array_sample_100k_10.rb
deleted file mode 100644
index 5f41ecc32b..0000000000
--- a/benchmark/array_sample_100k_10.rb
+++ /dev/null
@@ -1,2 +0,0 @@
-arr = [*0...100000]
-10_000.times {arr.sample 10}
diff --git a/benchmark/array_sample_100k_11.rb b/benchmark/array_sample_100k_11.rb
deleted file mode 100644
index 18b1715319..0000000000
--- a/benchmark/array_sample_100k_11.rb
+++ /dev/null
@@ -1,2 +0,0 @@
-arr = [*0...100000]
-10_000.times {arr.sample 11}
diff --git a/benchmark/array_sample_100k__100.rb b/benchmark/array_sample_100k__100.rb
deleted file mode 100644
index 22863afe89..0000000000
--- a/benchmark/array_sample_100k__100.rb
+++ /dev/null
@@ -1,2 +0,0 @@
-arr = [*0...100000]
-10_000.times {arr.sample 100}
diff --git a/benchmark/array_sample_100k__1k.rb b/benchmark/array_sample_100k__1k.rb
deleted file mode 100644
index 4cd79e6c67..0000000000
--- a/benchmark/array_sample_100k__1k.rb
+++ /dev/null
@@ -1,2 +0,0 @@
-arr = [*0...100000]
-10_000.times {arr.sample 1000}
diff --git a/benchmark/array_sample_100k__6k.rb b/benchmark/array_sample_100k__6k.rb
deleted file mode 100644
index b3d264249e..0000000000
--- a/benchmark/array_sample_100k__6k.rb
+++ /dev/null
@@ -1,2 +0,0 @@
-arr = [*0...100000]
-10_000.times {arr.sample 6000}
diff --git a/benchmark/array_sample_100k___10k.rb b/benchmark/array_sample_100k___10k.rb
deleted file mode 100644
index 5dd55ec058..0000000000
--- a/benchmark/array_sample_100k___10k.rb
+++ /dev/null
@@ -1,2 +0,0 @@
-arr = [*0...100000]
-10_000.times {arr.sample 10_000}
diff --git a/benchmark/array_sample_100k___50k.rb b/benchmark/array_sample_100k___50k.rb
deleted file mode 100644
index 1506732c3c..0000000000
--- a/benchmark/array_sample_100k___50k.rb
+++ /dev/null
@@ -1,2 +0,0 @@
-arr = [*0...100000]
-10_000.times {arr.sample 50_000}
diff --git a/benchmark/array_shift.rb b/benchmark/array_shift.rb
deleted file mode 100644
index 798bb9e3f4..0000000000
--- a/benchmark/array_shift.rb
+++ /dev/null
@@ -1,14 +0,0 @@
-require 'benchmark'
-
-Benchmark.bm do |x|
- [10_000,1_000_000,100_000_000].each do |n|
- ary = Array.new(n,0)
- GC.start
- x.report("#{n}:shift"){ ary.shift }
- (0..4).each do |i|
- ary = Array.new(n,0)
- GC.start
- x.report("#{n}:shift(#{i})"){ ary.shift(i) }
- end
- end
-end
diff --git a/benchmark/array_small_and.rb b/benchmark/array_small_and.rb
deleted file mode 100644
index e53a6edae6..0000000000
--- a/benchmark/array_small_and.rb
+++ /dev/null
@@ -1,17 +0,0 @@
-MIN_SIZE = ENV.fetch('SMALL_ARRAY_MIN', 0).to_i
-MAX_SIZE = ENV.fetch('SMALL_ARRAY_MAX', 16).to_i
-ITERATIONS = ENV.fetch('SMALL_ARRAY_ITERATIONS', 100).to_i
-
-ARRAYS = (MIN_SIZE..MAX_SIZE).map do |size1|
- (MIN_SIZE..MAX_SIZE).map do |size2|
- [Array.new(size1) { rand(MAX_SIZE) }, Array.new(size2) { rand(MAX_SIZE) }]
- end
-end
-
-ITERATIONS.times do
- ARRAYS.each do |group|
- group.each do |arr1, arr2|
- arr1 & arr2
- end
- end
-end
diff --git a/benchmark/array_small_diff.rb b/benchmark/array_small_diff.rb
deleted file mode 100644
index 9661ee48db..0000000000
--- a/benchmark/array_small_diff.rb
+++ /dev/null
@@ -1,17 +0,0 @@
-MIN_SIZE = ENV.fetch('SMALL_ARRAY_MIN', 0).to_i
-MAX_SIZE = ENV.fetch('SMALL_ARRAY_MAX', 16).to_i
-ITERATIONS = ENV.fetch('SMALL_ARRAY_ITERATIONS', 100).to_i
-
-ARRAYS = (MIN_SIZE..MAX_SIZE).map do |size1|
- (MIN_SIZE..MAX_SIZE).map do |size2|
- [Array.new(size1) { rand(MAX_SIZE) }, Array.new(size2) { rand(MAX_SIZE) }]
- end
-end
-
-ITERATIONS.times do
- ARRAYS.each do |group|
- group.each do |arr1, arr2|
- arr1 - arr2
- end
- end
-end
diff --git a/benchmark/array_small_or.rb b/benchmark/array_small_or.rb
deleted file mode 100644
index c58b5fd1ff..0000000000
--- a/benchmark/array_small_or.rb
+++ /dev/null
@@ -1,17 +0,0 @@
-MIN_SIZE = ENV.fetch('SMALL_ARRAY_MIN', 0).to_i
-MAX_SIZE = ENV.fetch('SMALL_ARRAY_MAX', 16).to_i
-ITERATIONS = ENV.fetch('SMALL_ARRAY_ITERATIONS', 100).to_i
-
-ARRAYS = (MIN_SIZE..MAX_SIZE).map do |size1|
- (MIN_SIZE..MAX_SIZE).map do |size2|
- [Array.new(size1) { rand(MAX_SIZE) }, Array.new(size2) { rand(MAX_SIZE) }]
- end
-end
-
-ITERATIONS.times do
- ARRAYS.each do |group|
- group.each do |arr1, arr2|
- arr1 | arr2
- end
- end
-end
diff --git a/benchmark/array_sort_block.rb b/benchmark/array_sort_block.rb
deleted file mode 100644
index 3579786056..0000000000
--- a/benchmark/array_sort_block.rb
+++ /dev/null
@@ -1,2 +0,0 @@
-ary = Array.new(1000) { rand(1000) }
-10000.times { ary.sort { |a, b| a <=> b } }
diff --git a/benchmark/array_sort_float.rb b/benchmark/array_sort_float.rb
deleted file mode 100644
index 9a6e2f8bd2..0000000000
--- a/benchmark/array_sort_float.rb
+++ /dev/null
@@ -1,2 +0,0 @@
-arr = Array.new(1000) { rand }
-10000.times { arr.sort }
diff --git a/benchmark/array_values_at_int.rb b/benchmark/array_values_at_int.rb
deleted file mode 100644
index 6cb394cb9f..0000000000
--- a/benchmark/array_values_at_int.rb
+++ /dev/null
@@ -1,2 +0,0 @@
-ary = Array.new(10000) {|i| i}
-100000.times { ary.values_at(500) }
diff --git a/benchmark/array_values_at_range.rb b/benchmark/array_values_at_range.rb
deleted file mode 100644
index 5b53806d1c..0000000000
--- a/benchmark/array_values_at_range.rb
+++ /dev/null
@@ -1,2 +0,0 @@
-ary = Array.new(10000) {|i| i}
-100000.times { ary.values_at(1..2000) }
diff --git a/benchmark/attr_accessor.yml b/benchmark/attr_accessor.yml
deleted file mode 100644
index 82134cdf9b..0000000000
--- a/benchmark/attr_accessor.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-prelude: |
- class C
- attr_accessor :x
- def initialize
- @x = nil
- end
- class_eval <<-END
- def ar
- #{'x;'*256}
- end
- def aw
- #{'self.x = nil;'*256}
- end
- def arm
- m = method(:x)
- #{'m.call;'*256}
- end
- def awm
- m = method(:x=)
- #{'m.call(nil);'*256}
- end
- END
- end
- obj = C.new
-benchmark:
- attr_reader: "obj.ar"
- attr_writer: "obj.aw"
- attr_reader_method: "obj.arm"
- attr_writer_method: "obj.awm"
diff --git a/benchmark/bighash.rb b/benchmark/bighash.rb
deleted file mode 100644
index e2ad5a5c94..0000000000
--- a/benchmark/bighash.rb
+++ /dev/null
@@ -1 +0,0 @@
-h = {}; 5000000.times {|n| h[n] = n }
diff --git a/benchmark/buffer_get.yml b/benchmark/buffer_get.yml
deleted file mode 100644
index e375dcf85d..0000000000
--- a/benchmark/buffer_get.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-benchmark:
- - name: buffer.get
- prelude: buffer = IO::Buffer.new(32, IO::Buffer::MAPPED)
- script: buffer.get(:U32, 0)
- loop_count: 20000000
- - name: string.unpack
- prelude: string = "\0" * 32
- script: string.unpack("C")
- loop_count: 20000000
diff --git a/benchmark/cgi_escape_html.yml b/benchmark/cgi_escape_html.yml
deleted file mode 100644
index af6abd08ac..0000000000
--- a/benchmark/cgi_escape_html.yml
+++ /dev/null
@@ -1,40 +0,0 @@
-prelude: require 'cgi/escape'
-benchmark:
- - name: escape_html_blank
- prelude: str = ""
- script: CGI.escapeHTML(str)
- loop_count: 20000000
- - name: escape_html_short_none
- prelude: str = "abcde"
- script: CGI.escapeHTML(str)
- loop_count: 20000000
- - name: escape_html_short_one
- prelude: str = "abcd<"
- script: CGI.escapeHTML(str)
- loop_count: 20000000
- - name: escape_html_short_all
- prelude: str = "'&\"<>"
- script: CGI.escapeHTML(str)
- loop_count: 5000000
- - name: escape_html_long_none
- prelude: str = "abcde" * 300
- script: CGI.escapeHTML(str)
- loop_count: 1000000
- - name: escape_html_long_all
- prelude: str = "'&\"<>" * 10
- script: CGI.escapeHTML(str)
- loop_count: 1000000
- - name: escape_html_real
- prelude: | # http://example.com/
- str = <<~HTML
- <body>
- <div>
- <h1>Example Domain</h1>
- <p>This domain is established to be used for illustrative examples in documents. You may use this
- domain in examples without prior coordination or asking for permission.</p>
- <p><a href="http://www.iana.org/domains/example">More information...</a></p>
- </div>
- </body>
- HTML
- script: CGI.escapeHTML(str)
- loop_count: 1000000
diff --git a/benchmark/complex_float_add.yml b/benchmark/complex_float_add.yml
deleted file mode 100644
index d0150c5e5b..0000000000
--- a/benchmark/complex_float_add.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-prelude: |
- max, min = 1000.0, -1000.0
- a = Complex(rand(max)+min, rand(max)+min)
- b = Complex(rand(max)+min, rand(max)+min)
-benchmark:
- complex_float_add: c = a + b
-loop_count: 1000000
diff --git a/benchmark/complex_float_div.yml b/benchmark/complex_float_div.yml
deleted file mode 100644
index b9f5e1d51c..0000000000
--- a/benchmark/complex_float_div.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-prelude: |
- max, min = 1000.0, -1000.0
- a = Complex(rand(max)+min, rand(max)+min)
- b = Complex(rand(max)+min, rand(max)+min)
-benchmark:
- complex_float_div: c = a / b
-loop_count: 1000000
diff --git a/benchmark/complex_float_mul.yml b/benchmark/complex_float_mul.yml
deleted file mode 100644
index 59b096a6dc..0000000000
--- a/benchmark/complex_float_mul.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-prelude: |
- max, min = 1000.0, -1000.0
- a = Complex(rand(max)+min, rand(max)+min)
- b = Complex(rand(max)+min, rand(max)+min)
-benchmark:
- complex_float_mul: c = a * b
-loop_count: 1000000
diff --git a/benchmark/complex_float_new.yml b/benchmark/complex_float_new.yml
deleted file mode 100644
index 6fcde3125b..0000000000
--- a/benchmark/complex_float_new.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-prelude: |
- max, min = 1000.0, -1000.0
- a = Complex(rand(max)+min, rand(max)+min)
- b = Complex(rand(max)+min, rand(max)+min)
-benchmark:
- complex_float_new: c = Complex(a, b)
-loop_count: 1000000
diff --git a/benchmark/complex_float_power.yml b/benchmark/complex_float_power.yml
deleted file mode 100644
index c40a31ab55..0000000000
--- a/benchmark/complex_float_power.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-prelude: |
- max, min = 1000.0, -1000.0
- a = Complex(rand(max)+min, rand(max)+min)
- b = Complex(rand(max)+min, rand(max)+min)
-benchmark:
- complex_float_power: c = a ** b
-loop_count: 1000000
diff --git a/benchmark/complex_float_sub.yml b/benchmark/complex_float_sub.yml
deleted file mode 100644
index 3fafe7cdbe..0000000000
--- a/benchmark/complex_float_sub.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-prelude: |
- max, min = 1000.0, -1000.0
- a = Complex(rand(max)+min, rand(max)+min)
- b = Complex(rand(max)+min, rand(max)+min)
-benchmark:
- complex_float_sub: c = a - b
-loop_count: 1000000
diff --git a/benchmark/dir_empty_p.rb b/benchmark/dir_empty_p.rb
deleted file mode 100644
index 8329c757cf..0000000000
--- a/benchmark/dir_empty_p.rb
+++ /dev/null
@@ -1,5 +0,0 @@
-require 'tmpdir'
-max = 100_000
-Dir.mktmpdir('bm_dir_empty_p') do |dir|
- max.times { Dir.empty?(dir) }
-end
diff --git a/benchmark/enum_lazy_flat_map.yml b/benchmark/enum_lazy_flat_map.yml
deleted file mode 100644
index 0ee390a441..0000000000
--- a/benchmark/enum_lazy_flat_map.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-prelude: |
- num = (1..).lazy.take(100)
- ary2 = [[1,2]].cycle.lazy.take(10)
- ary10 = [[*1..10]].cycle.lazy.take(10)
- ary20 = [[*1..20]].cycle.lazy.take(10)
- ary50 = [[*1..50]].cycle.lazy.take(10)
- ary100 = [[*1..100]].cycle.lazy.take(10)
-
-benchmark:
- num3: num.flat_map {|x| x}.take(3).to_a
- num10: num.flat_map {|x| x}.take(3).to_a
- ary2: ary2.flat_map {|x| x}.take(3).to_a
- ary10: ary10.flat_map {|x| x}.take(3).to_a
- ary20: ary20.flat_map {|x| x}.take(3).to_a
- ary50: ary50.flat_map {|x| x}.take(3).to_a
- ary100: ary100.flat_map {|x| x}.take(3).to_a
diff --git a/benchmark/enum_lazy_grep_v_100.rb b/benchmark/enum_lazy_grep_v_100.rb
deleted file mode 100644
index 8832392e65..0000000000
--- a/benchmark/enum_lazy_grep_v_100.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-grep_data = (1..10).to_a * 1000
-N = 100
-enum = grep_data.lazy.grep_v(->(i){i == 0}).grep_v(->(i){i == 0})
-N.times {enum.each {}}
diff --git a/benchmark/enum_lazy_grep_v_20.rb b/benchmark/enum_lazy_grep_v_20.rb
deleted file mode 100644
index 329509fa8f..0000000000
--- a/benchmark/enum_lazy_grep_v_20.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-grep_data = (1..10).to_a * 1000
-N = 100
-enum = grep_data.lazy.grep_v(->(i){i > 2}).grep_v(->(i){i > 2})
-N.times {enum.each {}}
diff --git a/benchmark/enum_lazy_grep_v_50.rb b/benchmark/enum_lazy_grep_v_50.rb
deleted file mode 100644
index 02ea4d4e71..0000000000
--- a/benchmark/enum_lazy_grep_v_50.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-grep_data = (1..10).to_a * 1000
-N = 100
-enum = grep_data.lazy.grep_v(->(i){i > 5}).grep_v(->(i){i > 5})
-N.times {enum.each {}}
diff --git a/benchmark/enum_lazy_uniq_100.rb b/benchmark/enum_lazy_uniq_100.rb
deleted file mode 100644
index 2e6434d9c4..0000000000
--- a/benchmark/enum_lazy_uniq_100.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-uniq_data = (1..10_000).to_a
-N = 100
-enum = uniq_data.lazy.uniq {|i| i % 10000}.uniq {|i| i % 10000}
-N.times {enum.each {}}
diff --git a/benchmark/enum_lazy_uniq_20.rb b/benchmark/enum_lazy_uniq_20.rb
deleted file mode 100644
index 75e6398fee..0000000000
--- a/benchmark/enum_lazy_uniq_20.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-uniq_data = (1..10_000).to_a
-N = 100
-enum = uniq_data.lazy.uniq {|i| i % 2000}.uniq {|i| i % 2000}
-N.times {enum.each {}}
diff --git a/benchmark/enum_lazy_uniq_50.rb b/benchmark/enum_lazy_uniq_50.rb
deleted file mode 100644
index 59a39b78ff..0000000000
--- a/benchmark/enum_lazy_uniq_50.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-uniq_data = (1..10_000).to_a
-N = 100
-enum = uniq_data.lazy.uniq {|i| i % 5000}.uniq {|i| i % 5000}
-N.times {enum.each {}}
diff --git a/benchmark/enum_lazy_zip.yml b/benchmark/enum_lazy_zip.yml
deleted file mode 100644
index 4566ff0261..0000000000
--- a/benchmark/enum_lazy_zip.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-prelude: |
- a = (1..3).lazy
- b = a.map {|x| x}
-
-benchmark:
- first_ary: a.zip(["a", "b", "c"]).first
- first_nonary: a.zip("a".."c").first
- first_noarg: a.zip.first
-
- take3_ary: a.zip(["a", "b", "c"]).take(3).force
- take3_nonary: a.zip("a".."c").take(3).force
- take3_noarg: a.zip.take(3).force
-
- chain-first_ary: b.zip(["a", "b", "c"]).first
- chain-first_nonary: b.zip("a".."c").first
- chain-first_noarg: b.zip.first
-
- chain-take3_ary: b.zip(["a", "b", "c"]).take(3).force
- chain-take3_nonary: b.zip("a".."c").take(3).force
- chain-take3_noarg: b.zip.take(3).force
-
- block: a.zip("a".."c") {|x, y| [x, y]}
diff --git a/benchmark/enum_tally.yml b/benchmark/enum_tally.yml
deleted file mode 100644
index edd2e040a0..0000000000
--- a/benchmark/enum_tally.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-prelude: |
- list = ("aaa".."zzz").to_a*10
-benchmark:
- tally: list.tally
diff --git a/benchmark/erb_render.yml b/benchmark/erb_render.yml
deleted file mode 100644
index 15f6c3880b..0000000000
--- a/benchmark/erb_render.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-prelude: |
- require 'erb'
-
- data = <<erb
- <html>
- <head> <%= title %> </head>
- <body>
- <h1> <%= title %> </h1>
- <p>
- <%= content %>
- </p>
- </body>
- </html>
- erb
-
- title = "hello world!"
- content = "hello world!\n" * 10
-
- src = "def self.render(title, content); #{ERB.new(data).src}; end"
- mod = Module.new
- mod.instance_eval(src, "(ERB)")
-benchmark:
- erb_render: mod.render(title, content)
-loop_count: 1500000
diff --git a/benchmark/fiber_chain.yml b/benchmark/fiber_chain.yml
deleted file mode 100644
index a36c759f8e..0000000000
--- a/benchmark/fiber_chain.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-prelude: |
- def make_link(previous)
- Fiber.new do
- while message = previous.resume
- Fiber.yield(message)
- end
- end
- end
-
- def make_chain(length = 1000, &block)
- chain = Fiber.new(&block)
-
- (length - 1).times do
- chain = make_link(chain)
- end
-
- return chain
- end
-
- message = "Hello World!"
-
- chain = make_chain do
- while true
- Fiber.yield(message)
- end
- end
-benchmark:
- make_chain: |
- make_chain(100) do
- while true
- Fiber.yield(message)
- end
- end
- resume_chain: |
- chain.resume
-loop_count: 5000
diff --git a/benchmark/fiber_locals.yml b/benchmark/fiber_locals.yml
deleted file mode 100644
index 8588686477..0000000000
--- a/benchmark/fiber_locals.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-prelude: |
- th = Thread.current
- th[:key] = :val
-benchmark:
- key?: th.key?(:key)
- []: th[:key]
- keys: th.keys
-loop_count: 1_000_000
diff --git a/benchmark/file_chmod.rb b/benchmark/file_chmod.rb
deleted file mode 100644
index 1cd4760c9d..0000000000
--- a/benchmark/file_chmod.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-# chmod file
-require 'tempfile'
-max = 200_000
-tmp = Tempfile.new('chmod')
-path = tmp.path
-max.times do
- File.chmod(0777, path)
-end
-tmp.close!
diff --git a/benchmark/file_rename.rb b/benchmark/file_rename.rb
deleted file mode 100644
index bbb44aebac..0000000000
--- a/benchmark/file_rename.rb
+++ /dev/null
@@ -1,11 +0,0 @@
-# rename file
-require 'tempfile'
-
-max = 100_000
-tmp = [ Tempfile.new('rename-a'), Tempfile.new('rename-b') ]
-a, b = tmp.map { |x| x.path }
-tmp.each { |t| t.close } # Windows can't rename files without closing them
-max.times do
- File.rename(a, b)
- File.rename(b, a)
-end
diff --git a/benchmark/float_methods.yml b/benchmark/float_methods.yml
deleted file mode 100644
index 56ea41effc..0000000000
--- a/benchmark/float_methods.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-prelude: |
- flo = 4.2
-benchmark:
- to_f: |
- flo.to_f
- abs: |
- flo.abs
- magnitude: |
- flo.magnitude
- -@: |
- -flo
- zero?: |
- flo.zero?
-loop_count: 20000000
diff --git a/benchmark/float_neg_posi.yml b/benchmark/float_neg_posi.yml
deleted file mode 100644
index 172db1bf6d..0000000000
--- a/benchmark/float_neg_posi.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-prelude: |
- flo = 4.2
-benchmark:
- negative?: |
- flo.negative?
- positive?: |
- flo.positive?
-loop_count: 20000000
diff --git a/benchmark/float_to_s.yml b/benchmark/float_to_s.yml
deleted file mode 100644
index 0abae5cdb8..0000000000
--- a/benchmark/float_to_s.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-prelude: |
- floats = [*0.0.step(1.0, 0.0001)]
-
-benchmark:
- to_s: floats.each {|f| f.to_s}
-
-loop_count: 1000
diff --git a/benchmark/gc/aobench.rb b/benchmark/gc/aobench.rb
deleted file mode 100644
index 275f58b924..0000000000
--- a/benchmark/gc/aobench.rb
+++ /dev/null
@@ -1 +0,0 @@
-require_relative '../app_aobench'
diff --git a/benchmark/gc/binary_trees.rb b/benchmark/gc/binary_trees.rb
deleted file mode 100644
index 83347cdd20..0000000000
--- a/benchmark/gc/binary_trees.rb
+++ /dev/null
@@ -1 +0,0 @@
-require_relative '../so_binary_trees'
diff --git a/benchmark/gc/gcbench.rb b/benchmark/gc/gcbench.rb
deleted file mode 100644
index 23d0b91c6c..0000000000
--- a/benchmark/gc/gcbench.rb
+++ /dev/null
@@ -1,57 +0,0 @@
-require 'benchmark'
-require 'pp'
-require 'optparse'
-
-$list = true
-$gcprof = false
-
-opt = OptionParser.new
-opt.on('-q'){$list = false}
-opt.on('-d'){$gcprof = false}
-opt.on('-p'){$gcprof = true}
-opt.parse!(ARGV)
-
-script = File.join(File.dirname(__FILE__), ARGV.shift)
-script += '.rb' unless FileTest.exist?(script)
-raise "#{script} not found" unless FileTest.exist?(script)
-
-puts "Script: #{script}"
-
-if $gcprof
- GC::Profiler.enable
-end
-
-tms = Benchmark.measure{|x|
- load script
-}
-
-gc_time = 0
-
-if $gcprof
- gc_time = GC::Profiler.total_time
- GC::Profiler.report if $list and RUBY_VERSION >= '2.0.0' # before 1.9.3, report() may run infinite loop
- GC::Profiler.disable
-end
-
-pp GC.stat
-
-puts "#{RUBY_DESCRIPTION} #{GC::OPTS.inspect}" if defined?(GC::OPTS)
-
-desc = "#{RUBY_VERSION}#{RUBY_PATCHLEVEL >= 0 ? "p#{RUBY_PATCHLEVEL}" : "dev"}"
-name = File.basename(script, '.rb')
-
-puts
-puts script
-puts Benchmark::CAPTION
-puts tms
-puts "GC total time (sec): #{gc_time}"
-
-# show High-Water Mark on Linux
-if File.exist?('/proc/self/status') && /VmHWM:\s*(\d+.+)/ =~ File.read('/proc/self/status')
- puts
- puts "VmHWM: #{$1.chomp}"
-end
-
-puts
-puts "Summary of #{name} on #{desc}\t#{tms.real}\t#{gc_time}\t#{GC.count}"
-puts " (real time in sec, GC time in sec, GC count)"
diff --git a/benchmark/gc/hash1.rb b/benchmark/gc/hash1.rb
deleted file mode 100644
index cb030d458d..0000000000
--- a/benchmark/gc/hash1.rb
+++ /dev/null
@@ -1,11 +0,0 @@
-value = 0.01
-h = {}
-n = 50_000
-
-1.upto(n){|i|
- h["%020d" % i] = "v-#{i}"
-}
-
-(n * 1_000).times{
- ''
-}
diff --git a/benchmark/gc/hash2.rb b/benchmark/gc/hash2.rb
deleted file mode 100644
index e8c943fb21..0000000000
--- a/benchmark/gc/hash2.rb
+++ /dev/null
@@ -1,7 +0,0 @@
-value = 0.01
-h = {}
-n = 4*(10**6)
-
-1.upto(n){|i|
- h["%020d" % i] = value * i
-}
diff --git a/benchmark/gc/null.rb b/benchmark/gc/null.rb
deleted file mode 100644
index c05a79f561..0000000000
--- a/benchmark/gc/null.rb
+++ /dev/null
@@ -1 +0,0 @@
-# null
diff --git a/benchmark/gc/pentomino.rb b/benchmark/gc/pentomino.rb
deleted file mode 100644
index 8ebdff7d1d..0000000000
--- a/benchmark/gc/pentomino.rb
+++ /dev/null
@@ -1 +0,0 @@
-require_relative '../app_pentomino'
diff --git a/benchmark/gc/rdoc.rb b/benchmark/gc/rdoc.rb
deleted file mode 100644
index 14c89f5611..0000000000
--- a/benchmark/gc/rdoc.rb
+++ /dev/null
@@ -1,13 +0,0 @@
-require 'rdoc/rdoc'
-require 'tmpdir'
-
-srcdir = File.expand_path('../..', __dir__)
-
-Dir.mktmpdir('rdocbench-'){|d|
- dir = File.join(d, 'rdocbench')
- args = %W(--root #{srcdir} --page-dir #{srcdir}/doc --encoding=UTF-8 --no-force-update --all --ri --debug --quiet #{srcdir})
- args << '--op' << dir
-
- r = RDoc::RDoc.new
- r.document args
-}
diff --git a/benchmark/gc/redblack.rb b/benchmark/gc/redblack.rb
deleted file mode 100644
index c66290140a..0000000000
--- a/benchmark/gc/redblack.rb
+++ /dev/null
@@ -1,366 +0,0 @@
-# This benchmark is imported from https://github.com/jruby/rubybench/blob/master/time/bench_red_black.rb
-# License is License is Apache-2
-
-require 'benchmark'
-
-# Algorithm based on "Introduction to Algorithms" by Cormen and others
-class RedBlackTree
- class Node
- attr_accessor :color
- attr_accessor :key
- attr_accessor :left
- attr_accessor :right
- attr_accessor :parent
-
- RED = :red
- BLACK = :black
- COLORS = [RED, BLACK].freeze
-
- def initialize(key, color = RED)
- raise ArgumentError, "Bad value for color parameter" unless COLORS.include?(color)
- @color = color
- @key = key
- @left = @right = @parent = NilNode.instance
- end
-
- def black?
- return color == BLACK
- end
-
- def red?
- return color == RED
- end
- end
-
- class NilNode < Node
- class << self
- private :new
-
- # it's not thread safe
- def instance
- @instance ||= begin
- def instance
- return @instance
- end
-
- new
- end
- end
- end
-
- def initialize
- self.color = BLACK
- self.key = 0
- self.left = nil
- self.right = nil
- self.parent = nil
- end
-
- def nil?
- return true
- end
- end
-
- include Enumerable
-
- attr_accessor :root
- attr_accessor :size
-
- def initialize
- self.root = NilNode.instance
- self.size = 0
- end
-
- def add(key)
- insert(Node.new(key))
- end
-
- def insert(x)
- insert_helper(x)
-
- x.color = Node::RED
- while x != root && x.parent.color == Node::RED
- if x.parent == x.parent.parent.left
- y = x.parent.parent.right
- if !y.nil? && y.color == Node::RED
- x.parent.color = Node::BLACK
- y.color = Node::BLACK
- x.parent.parent.color = Node::RED
- x = x.parent.parent
- else
- if x == x.parent.right
- x = x.parent
- left_rotate(x)
- end
- x.parent.color = Node::BLACK
- x.parent.parent.color = Node::RED
- right_rotate(x.parent.parent)
- end
- else
- y = x.parent.parent.left
- if !y.nil? && y.color == Node::RED
- x.parent.color = Node::BLACK
- y.color = Node::BLACK
- x.parent.parent.color = Node::RED
- x = x.parent.parent
- else
- if x == x.parent.left
- x = x.parent
- right_rotate(x)
- end
- x.parent.color = Node::BLACK
- x.parent.parent.color = Node::RED
- left_rotate(x.parent.parent)
- end
- end
- end
- root.color = Node::BLACK
- end
-
- alias << insert
-
- def delete(z)
- y = (z.left.nil? || z.right.nil?) ? z : successor(z)
- x = y.left.nil? ? y.right : y.left
- x.parent = y.parent
-
- if y.parent.nil?
- self.root = x
- else
- if y == y.parent.left
- y.parent.left = x
- else
- y.parent.right = x
- end
- end
-
- z.key = y.key if y != z
-
- if y.color == Node::BLACK
- delete_fixup(x)
- end
-
- self.size -= 1
- return y
- end
-
- def minimum(x = root)
- while !x.left.nil?
- x = x.left
- end
- return x
- end
-
- def maximum(x = root)
- while !x.right.nil?
- x = x.right
- end
- return x
- end
-
- def successor(x)
- if !x.right.nil?
- return minimum(x.right)
- end
- y = x.parent
- while !y.nil? && x == y.right
- x = y
- y = y.parent
- end
- return y
- end
-
- def predecessor(x)
- if !x.left.nil?
- return maximum(x.left)
- end
- y = x.parent
- while !y.nil? && x == y.left
- x = y
- y = y.parent
- end
- return y
- end
-
- def inorder_walk(x = root)
- x = self.minimum
- while !x.nil?
- yield x.key
- x = successor(x)
- end
- end
-
- alias each inorder_walk
-
- def reverse_inorder_walk(x = root)
- x = self.maximum
- while !x.nil?
- yield x.key
- x = predecessor(x)
- end
- end
-
- alias reverse_each reverse_inorder_walk
-
- def search(key, x = root)
- while !x.nil? && x.key != key
- key < x.key ? x = x.left : x = x.right
- end
- return x
- end
-
- def empty?
- return self.root.nil?
- end
-
- def black_height(x = root)
- height = 0
- while !x.nil?
- x = x.left
- height +=1 if x.nil? || x.black?
- end
- return height
- end
-
-private
-
- def left_rotate(x)
- raise "x.right is nil!" if x.right.nil?
- y = x.right
- x.right = y.left
- y.left.parent = x if !y.left.nil?
- y.parent = x.parent
- if x.parent.nil?
- self.root = y
- else
- if x == x.parent.left
- x.parent.left = y
- else
- x.parent.right = y
- end
- end
- y.left = x
- x.parent = y
- end
-
- def right_rotate(x)
- raise "x.left is nil!" if x.left.nil?
- y = x.left
- x.left = y.right
- y.right.parent = x if !y.right.nil?
- y.parent = x.parent
- if x.parent.nil?
- self.root = y
- else
- if x == x.parent.left
- x.parent.left = y
- else
- x.parent.right = y
- end
- end
- y.right = x
- x.parent = y
- end
-
- def insert_helper(z)
- y = NilNode.instance
- x = root
- while !x.nil?
- y = x
- z.key < x.key ? x = x.left : x = x.right
- end
- z.parent = y
- if y.nil?
- self.root = z
- else
- z.key < y.key ? y.left = z : y.right = z
- end
- self.size += 1
- end
-
- def delete_fixup(x)
- while x != root && x.color == Node::BLACK
- if x == x.parent.left
- w = x.parent.right
- if w.color == Node::RED
- w.color = Node::BLACK
- x.parent.color = Node::RED
- left_rotate(x.parent)
- w = x.parent.right
- end
- if w.left.color == Node::BLACK && w.right.color == Node::BLACK
- w.color = Node::RED
- x = x.parent
- else
- if w.right.color == Node::BLACK
- w.left.color = Node::BLACK
- w.color = Node::RED
- right_rotate(w)
- w = x.parent.right
- end
- w.color = x.parent.color
- x.parent.color = Node::BLACK
- w.right.color = Node::BLACK
- left_rotate(x.parent)
- x = root
- end
- else
- w = x.parent.left
- if w.color == Node::RED
- w.color = Node::BLACK
- x.parent.color = Node::RED
- right_rotate(x.parent)
- w = x.parent.left
- end
- if w.right.color == Node::BLACK && w.left.color == Node::BLACK
- w.color = Node::RED
- x = x.parent
- else
- if w.left.color == Node::BLACK
- w.right.color = Node::BLACK
- w.color = Node::RED
- left_rotate(w)
- w = x.parent.left
- end
- w.color = x.parent.color
- x.parent.color = Node::BLACK
- w.left.color = Node::BLACK
- right_rotate(x.parent)
- x = root
- end
- end
- end
- x.color = Node::BLACK
- end
-end
-
-def rbt_bm
- n = 100_000
- a1 = []; n.times { a1 << rand(999_999) }
- a2 = []; n.times { a2 << rand(999_999) }
-
- start = Time.now
-
- tree = RedBlackTree.new
-
- n.times {|i| tree.add(i) }
- n.times { tree.delete(tree.root) }
-
- tree = RedBlackTree.new
- a1.each {|e| tree.add(e) }
- a2.each {|e| tree.search(e) }
- tree.inorder_walk {|key| key + 1 }
- tree.reverse_inorder_walk {|key| key + 1 }
- n.times { tree.minimum }
- n.times { tree.maximum }
-
- return Time.now - start
-end
-
-N = (ARGV[0] || 10).to_i
-
-N.times do
- # puts rbt_bm.to_f
- rbt_bm.to_f
- # puts "GC.count = #{GC.count}" if GC.respond_to?(:count)
-end
diff --git a/benchmark/gc/ring.rb b/benchmark/gc/ring.rb
deleted file mode 100644
index be2c7b7250..0000000000
--- a/benchmark/gc/ring.rb
+++ /dev/null
@@ -1,29 +0,0 @@
-# create many old objects
-
-max = 30_000_000
-
-class Ring
- attr_reader :next_ring
- def initialize n = nil
- @next_ring = n
- end
-
-
- def size
- s = 1
- ring = self
- while ring.next_ring
- s += 1
- ring = ring.next_ring
- end
- s
- end
-end
-
-ring = Ring.new
-
-max.times{
- ring = Ring.new(ring)
-}
-
-# p ring.size
diff --git a/benchmark/hash_aref_array.rb b/benchmark/hash_aref_array.rb
deleted file mode 100644
index ac7a683d95..0000000000
--- a/benchmark/hash_aref_array.rb
+++ /dev/null
@@ -1,5 +0,0 @@
-h = {}
-arrays = (0..99).each_slice(10).to_a
-#STDERR.puts arrays.inspect
-arrays.each { |s| h[s] = s }
-200_000.times { arrays.each { |s| h[s] } }
diff --git a/benchmark/hash_aref_dsym.rb b/benchmark/hash_aref_dsym.rb
deleted file mode 100644
index af4f8c36d4..0000000000
--- a/benchmark/hash_aref_dsym.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-h = {}
-syms = ('a'..'z').map { |s| s.to_sym }
-syms.each { |s| h[s] = 1 }
-200_000.times { syms.each { |s| h[s] } }
diff --git a/benchmark/hash_aref_dsym_long.rb b/benchmark/hash_aref_dsym_long.rb
deleted file mode 100644
index 9d7759379e..0000000000
--- a/benchmark/hash_aref_dsym_long.rb
+++ /dev/null
@@ -1,21 +0,0 @@
-# [ruby-core:70129] [Bug #11396]
-collection_size = 200000
-sample_size = 10000
-
-values = (1..collection_size).to_a.map do |x|
- "THIS IS A LONGER STRING THAT IS ALSO UNIQUE #{x}"
-end
-
-symbol_hash = {}
-
-values.each do |x|
- symbol_hash[x.to_sym] = 1
-end
-
-# use the same samples each time to minimize deviations
-rng = Random.new(0)
-symbol_sample_array = values.sample(sample_size, random: rng).map(&:to_sym)
-
-3000.times do
- symbol_sample_array.each { |x| symbol_hash[x] }
-end
diff --git a/benchmark/hash_aref_fix.rb b/benchmark/hash_aref_fix.rb
deleted file mode 100644
index 1346890582..0000000000
--- a/benchmark/hash_aref_fix.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-h = {}
-nums = (1..26).to_a
-nums.each { |i| h[i] = i }
-200_000.times { nums.each { |s| h[s] } }
diff --git a/benchmark/hash_aref_flo.rb b/benchmark/hash_aref_flo.rb
deleted file mode 100644
index 2217274c82..0000000000
--- a/benchmark/hash_aref_flo.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-h = {}
-strs = [*1..10000].map! {|i| i.fdiv(10)}
-strs.each { |s| h[s] = s }
-50.times { strs.each { |s| h[s] } }
diff --git a/benchmark/hash_aref_miss.rb b/benchmark/hash_aref_miss.rb
deleted file mode 100644
index b0913dd4bb..0000000000
--- a/benchmark/hash_aref_miss.rb
+++ /dev/null
@@ -1,5 +0,0 @@
-h = {}
-strs = ('a'..'z').to_a.map!(&:freeze)
-strs.each { |s| h[s] = s }
-strs = ('A'..'Z').to_a
-200_000.times { strs.each { |s| h[s] } }
diff --git a/benchmark/hash_aref_str.rb b/benchmark/hash_aref_str.rb
deleted file mode 100644
index 19439b061b..0000000000
--- a/benchmark/hash_aref_str.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-h = {}
-strs = ('a'..'z').to_a.map!(&:freeze)
-strs.each { |s| h[s] = s }
-200_000.times { strs.each { |s| h[s] } }
diff --git a/benchmark/hash_aref_sym.rb b/benchmark/hash_aref_sym.rb
deleted file mode 100644
index f75d163fe6..0000000000
--- a/benchmark/hash_aref_sym.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-h = {}
-syms = ('a'..'z').to_a
-begin
- syms = eval("%i[#{syms.join(' ')}]")
-rescue SyntaxError # <= 1.9.3
- syms.map!(&:to_sym)
-end
-syms.each { |s| h[s] = s }
-200_000.times { syms.each { |s| h[s] } }
diff --git a/benchmark/hash_aref_sym_long.rb b/benchmark/hash_aref_sym_long.rb
deleted file mode 100644
index 9dab8df7be..0000000000
--- a/benchmark/hash_aref_sym_long.rb
+++ /dev/null
@@ -1,13 +0,0 @@
-h = {}
-syms = %w[puts warn syswrite write stat bacon lettuce tomato
-some symbols in this array may already be interned others should not be
-hash browns make good breakfast but not cooked using prime numbers
-shift for division entries delete_if keys exist?
-]
-begin
- syms = eval("%i[#{syms.join(' ')}]")
-rescue SyntaxError # <= 1.9.3
- syms.map!(&:to_sym)
-end
-syms.each { |s| h[s] = s }
-200_000.times { syms.each { |s| h[s] } }
diff --git a/benchmark/hash_defaults.yml b/benchmark/hash_defaults.yml
deleted file mode 100644
index 833f10e1c7..0000000000
--- a/benchmark/hash_defaults.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-prelude: |
- h = Hash.new { :foo }
-benchmark:
- default_aref: h[1]
- default_method: h.default(1)
-loop_count: 1000000
diff --git a/benchmark/hash_dup.yml b/benchmark/hash_dup.yml
deleted file mode 100644
index 65f521ec94..0000000000
--- a/benchmark/hash_dup.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-prelude: |
- small_hash = { a: 1 }
- larger_hash = 20.times.map { |i| [('a'.ord + i).chr.to_sym, i] }.to_h
-
-benchmark:
- dup_small: small_hash.dup
- dup_larger: larger_hash.dup
-loop_count: 10000
diff --git a/benchmark/hash_first.yml b/benchmark/hash_first.yml
deleted file mode 100644
index c26df1a7ed..0000000000
--- a/benchmark/hash_first.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-prelude: |
- hash1 = 1_000_000.times.to_h { [rand, true]}
- hash2 = hash1.dup
- hash2.keys[1..100_000].each { hash2.delete _1 }
- hash2.delete hash2.first[0]
-
-benchmark:
- hash1: hash1.first
- hash2: hash2.first
-
-loop_count: 100_000
diff --git a/benchmark/hash_flatten.rb b/benchmark/hash_flatten.rb
deleted file mode 100644
index e944aae9f2..0000000000
--- a/benchmark/hash_flatten.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-h = {}
-
-10000.times do |i|
- h[i] = nil
-end
-
-1000.times do
- h.flatten
-end
diff --git a/benchmark/hash_ident_flo.rb b/benchmark/hash_ident_flo.rb
deleted file mode 100644
index 0c7edfed3e..0000000000
--- a/benchmark/hash_ident_flo.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-h = {}.compare_by_identity
-strs = (1..10000).to_a.map!(&:to_f)
-strs.each { |s| h[s] = s }
-50.times { strs.each { |s| h[s] } }
diff --git a/benchmark/hash_ident_num.rb b/benchmark/hash_ident_num.rb
deleted file mode 100644
index b226736c6f..0000000000
--- a/benchmark/hash_ident_num.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-h = {}.compare_by_identity
-nums = (1..26).to_a
-nums.each { |n| h[n] = n }
-200_000.times { nums.each { |n| h[n] } }
diff --git a/benchmark/hash_ident_obj.rb b/benchmark/hash_ident_obj.rb
deleted file mode 100644
index 4b3b58edec..0000000000
--- a/benchmark/hash_ident_obj.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-h = {}.compare_by_identity
-objs = 26.times.map { Object.new }
-objs.each { |o| h[o] = o }
-200_000.times { objs.each { |o| h[o] } }
diff --git a/benchmark/hash_ident_str.rb b/benchmark/hash_ident_str.rb
deleted file mode 100644
index 8582b38e31..0000000000
--- a/benchmark/hash_ident_str.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-h = {}.compare_by_identity
-strs = ('a'..'z').to_a
-strs.each { |s| h[s] = s }
-200_000.times { strs.each { |s| h[s] } }
diff --git a/benchmark/hash_ident_sym.rb b/benchmark/hash_ident_sym.rb
deleted file mode 100644
index 4c81e3d28e..0000000000
--- a/benchmark/hash_ident_sym.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-h = {}.compare_by_identity
-syms = ('a'..'z').to_a.map(&:to_sym)
-syms.each { |s| h[s] = s }
-200_000.times { syms.each { |s| h[s] } }
diff --git a/benchmark/hash_keys.rb b/benchmark/hash_keys.rb
deleted file mode 100644
index 6863cd01f9..0000000000
--- a/benchmark/hash_keys.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-h = {}
-
-10000.times do |i|
- h[i] = nil
-end
-
-5000.times do
- h.keys
-end
diff --git a/benchmark/hash_literal_small2.rb b/benchmark/hash_literal_small2.rb
deleted file mode 100644
index c188529260..0000000000
--- a/benchmark/hash_literal_small2.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-# frozen_string_literal: true
-
-1_000_000.times.map { { "foo" => "bar", "bar" => "baz" } }
diff --git a/benchmark/hash_literal_small4.rb b/benchmark/hash_literal_small4.rb
deleted file mode 100644
index 739f71b5b0..0000000000
--- a/benchmark/hash_literal_small4.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-# frozen_string_literal: true
-
-1_000_000.times.map { { "foo" => "bar", "bar" => "baz", "baz" => "lol", "lol" => "lgtm" } }
diff --git a/benchmark/hash_literal_small8.rb b/benchmark/hash_literal_small8.rb
deleted file mode 100644
index 53d80af535..0000000000
--- a/benchmark/hash_literal_small8.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-# frozen_string_literal: true
-
-1_000_000.times.map { { "foo" => "bar", "bar" => "baz", "baz" => "lol", "lol" => "lgtm", "lgtm" => "nope", "nope" => "ok", "ok" => "again", "again" => "wait" } }
diff --git a/benchmark/hash_long.rb b/benchmark/hash_long.rb
deleted file mode 100644
index 03d9109602..0000000000
--- a/benchmark/hash_long.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-k1 = "Ping Pong Ping Pong Ping Pong Ping Pong Ping Pong Ping Pong Ping Pong Ping Pong Ping Pong Ping Pong";
-k2 = "Pong Ping Pong Ping Pong Ping Pong Ping Pong Ping Pong Ping Pong Ping Pong Ping Pong Ping Pong Ping";
-h = {k1 => 0, k2 => 0};
-3000000.times{|i| k = i % 2 ? k2 : k1; h [k] = h[k] + 1}
diff --git a/benchmark/hash_shift.rb b/benchmark/hash_shift.rb
deleted file mode 100644
index a645671a5b..0000000000
--- a/benchmark/hash_shift.rb
+++ /dev/null
@@ -1,10 +0,0 @@
-h = {}
-
-10000.times do |i|
- h[i] = nil
-end
-
-50000.times do
- k, v = h.shift
- h[k] = v
-end
diff --git a/benchmark/hash_shift_u16.rb b/benchmark/hash_shift_u16.rb
deleted file mode 100644
index ec800d0342..0000000000
--- a/benchmark/hash_shift_u16.rb
+++ /dev/null
@@ -1,10 +0,0 @@
-h = {}
-
-(16384..65536).each do |i|
- h[i] = nil
-end
-
-300000.times do
- k, v = h.shift
- h[k] = v
-end
diff --git a/benchmark/hash_shift_u24.rb b/benchmark/hash_shift_u24.rb
deleted file mode 100644
index de4e0fa696..0000000000
--- a/benchmark/hash_shift_u24.rb
+++ /dev/null
@@ -1,10 +0,0 @@
-h = {}
-
-(0xff4000..0xffffff).each do |i|
- h[i] = nil
-end
-
-300000.times do
- k, v = h.shift
- h[k] = v
-end
diff --git a/benchmark/hash_shift_u32.rb b/benchmark/hash_shift_u32.rb
deleted file mode 100644
index 656aa55583..0000000000
--- a/benchmark/hash_shift_u32.rb
+++ /dev/null
@@ -1,10 +0,0 @@
-h = {}
-
-(0xffff4000..0xffffffff).each do |i|
- h[i] = nil
-end
-
-300000.times do
- k, v = h.shift
- h[k] = v
-end
diff --git a/benchmark/hash_small2.rb b/benchmark/hash_small2.rb
deleted file mode 100644
index 45485d9c71..0000000000
--- a/benchmark/hash_small2.rb
+++ /dev/null
@@ -1 +0,0 @@
-1000000.times.map{|i| a={}; 2.times{|j| a[j]=j}; a}
diff --git a/benchmark/hash_small4.rb b/benchmark/hash_small4.rb
deleted file mode 100644
index acd4084334..0000000000
--- a/benchmark/hash_small4.rb
+++ /dev/null
@@ -1 +0,0 @@
-1000000.times.map{|i| a={}; 4.times{|j| a[j]=j}; a}
diff --git a/benchmark/hash_small8.rb b/benchmark/hash_small8.rb
deleted file mode 100644
index 9cffcc91b6..0000000000
--- a/benchmark/hash_small8.rb
+++ /dev/null
@@ -1 +0,0 @@
-1000000.times.map{|i| a={}; 8.times{|j| a[j]=j}; a}
diff --git a/benchmark/hash_to_proc.rb b/benchmark/hash_to_proc.rb
deleted file mode 100644
index 2b675bf509..0000000000
--- a/benchmark/hash_to_proc.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-h = {}
-
-10000.times do |i|
- h[i] = nil
-end
-
-5000.times do |i|
- [i].map(&h)
-end
diff --git a/benchmark/hash_values.rb b/benchmark/hash_values.rb
deleted file mode 100644
index 069441302f..0000000000
--- a/benchmark/hash_values.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-h = {}
-
-10000.times do |i|
- h[i] = nil
-end
-
-5000.times do
- h.values
-end
diff --git a/benchmark/int_quo.rb b/benchmark/int_quo.rb
deleted file mode 100644
index e22a3f8c30..0000000000
--- a/benchmark/int_quo.rb
+++ /dev/null
@@ -1 +0,0 @@
-5000000.times { 42.quo(3) }
diff --git a/benchmark/io_copy_stream_write.rb b/benchmark/io_copy_stream_write.rb
deleted file mode 100644
index 3fd87250a4..0000000000
--- a/benchmark/io_copy_stream_write.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-# The goal of this is to use a synthetic (non-IO) reader
-# to trigger the read/write loop of IO.copy_stream,
-# bypassing in-kernel mechanisms like sendfile for zero copy,
-# so we wrap the /dev/zero IO object:
-
-class Zero
- def initialize
- @n = 100000
- @in = File.open('/dev/zero', 'rb')
- end
-
- def read(len, buf)
- return if (@n -= 1) == 0
- @in.read(len, buf)
- end
-end
-
-begin
- src = Zero.new
- dst = File.open(IO::NULL, 'wb')
- n = IO.copy_stream(src, dst)
-rescue Errno::ENOENT
- # not *nix
-end if IO.respond_to?(:copy_stream) && IO.const_defined?(:NULL)
diff --git a/benchmark/io_copy_stream_write_socket.rb b/benchmark/io_copy_stream_write_socket.rb
deleted file mode 100644
index 11f369bd0d..0000000000
--- a/benchmark/io_copy_stream_write_socket.rb
+++ /dev/null
@@ -1,35 +0,0 @@
-# The goal of this is to use a synthetic (non-IO) reader
-# to trigger the read/write loop of IO.copy_stream,
-# bypassing in-kernel mechanisms like sendfile for zero copy,
-# so we wrap the /dev/zero IO object:
-class Zero
- def initialize
- @n = 100000
- @in = File.open('/dev/zero', 'rb')
- end
-
- def read(len, buf)
- return if (@n -= 1) == 0
- @in.read(len, buf)
- end
-end
-
-begin
- require 'socket'
- src = Zero.new
- rd, wr = UNIXSocket.pair
- pid = fork do
- wr.close
- buf = String.new
- while rd.read(16384, buf)
- end
- end
- rd.close
- IO.copy_stream(src, wr)
-rescue Errno::ENOENT, NotImplementedError, NameError
- # not *nix: missing /dev/zero, fork, or UNIXSocket
-rescue LoadError # no socket?
-ensure
- wr.close if wr
- Process.waitpid(pid) if pid
-end if IO.respond_to?(:copy_stream)
diff --git a/benchmark/io_file_create.rb b/benchmark/io_file_create.rb
deleted file mode 100644
index 2f205c1333..0000000000
--- a/benchmark/io_file_create.rb
+++ /dev/null
@@ -1,13 +0,0 @@
-#
-# Create files
-#
-
-max = 200_000
-file = './tmpfile_of_bm_io_file_create'
-
-max.times{
- f = open(file, 'w')
- f.close#(true)
-}
-File.unlink(file)
-
diff --git a/benchmark/io_file_read.rb b/benchmark/io_file_read.rb
deleted file mode 100644
index b9e796ed30..0000000000
--- a/benchmark/io_file_read.rb
+++ /dev/null
@@ -1,15 +0,0 @@
-#
-# Seek and Read file.
-#
-
-require 'tempfile'
-
-max = 200_000
-str = "Hello world! " * 1000
-f = Tempfile.new('yarv-benchmark')
-f.write str
-
-max.times{
- f.seek 0
- f.read
-}
diff --git a/benchmark/io_file_write.rb b/benchmark/io_file_write.rb
deleted file mode 100644
index aa1be0e5fe..0000000000
--- a/benchmark/io_file_write.rb
+++ /dev/null
@@ -1,14 +0,0 @@
-#
-# Seek and Write file.
-#
-
-require 'tempfile'
-
-max = 200_000
-str = "Hello world! " * 1000
-f = Tempfile.new('yarv-benchmark')
-
-max.times{
- f.seek 0
- f.write str
-}
diff --git a/benchmark/io_nonblock_noex.rb b/benchmark/io_nonblock_noex.rb
deleted file mode 100644
index da9357fdc6..0000000000
--- a/benchmark/io_nonblock_noex.rb
+++ /dev/null
@@ -1,22 +0,0 @@
-nr = 1_000_000
-i = 0
-msg = '.'
-buf = '.'
-noex = { exception: false }
-begin
- r, w = IO.pipe
- while i < nr
- i += 1
- w.write_nonblock(msg, noex)
- r.read_nonblock(1, buf, noex)
- end
-rescue ArgumentError # old Rubies
- while i < nr
- i += 1
- w.write_nonblock(msg)
- r.read_nonblock(1, buf)
- end
-ensure
- r.close
- w.close
-end
diff --git a/benchmark/io_nonblock_noex2.rb b/benchmark/io_nonblock_noex2.rb
deleted file mode 100644
index 56819d049b..0000000000
--- a/benchmark/io_nonblock_noex2.rb
+++ /dev/null
@@ -1,21 +0,0 @@
-nr = 1_000_000
-i = 0
-msg = '.'
-buf = '.'
-begin
- r, w = IO.pipe
- while i < nr
- i += 1
- w.write_nonblock(msg, exception: false)
- r.read_nonblock(1, buf, exception: false)
- end
-rescue ArgumentError # old Rubies
- while i < nr
- i += 1
- w.write_nonblock(msg)
- r.read_nonblock(1, buf)
- end
-ensure
- r.close
- w.close
-end
diff --git a/benchmark/io_pipe_rw.rb b/benchmark/io_pipe_rw.rb
deleted file mode 100644
index 6862a8ae61..0000000000
--- a/benchmark/io_pipe_rw.rb
+++ /dev/null
@@ -1,13 +0,0 @@
-# Measure uncontended GVL performance via read/write with 1:1 threading
-# If we switch to M:N threading, this will benchmark something else...
-r, w = IO.pipe
-src = '0'.freeze
-dst = String.new
-i = 0
-while i < 1_000_000
- i += 1
- w.write(src)
- r.read(1, dst)
-end
-w.close
-r.close
diff --git a/benchmark/io_select.rb b/benchmark/io_select.rb
deleted file mode 100644
index 19248daeb1..0000000000
--- a/benchmark/io_select.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-# IO.select performance
-
-w = [ IO.pipe[1] ];
-
-nr = 1000000
-nr.times {
- IO.select nil, w
-}
-
diff --git a/benchmark/io_select2.rb b/benchmark/io_select2.rb
deleted file mode 100644
index 10e37d71b2..0000000000
--- a/benchmark/io_select2.rb
+++ /dev/null
@@ -1,22 +0,0 @@
-# IO.select performance. worst case of single fd.
-
-ios = []
-nr = 1000000
-if defined?(Process::RLIMIT_NOFILE)
- max = Process.getrlimit(Process::RLIMIT_NOFILE)[0]
-else
- max = 64
-end
-puts "max fd: #{max} (results not apparent with <= 1024 max fd)"
-
-((max / 2) - 10).times do
- ios.concat IO.pipe
-end
-
-last = [ ios[-1] ]
-puts "last IO: #{last[0].inspect}"
-
-nr.times do
- IO.select nil, last
-end
-
diff --git a/benchmark/io_select3.rb b/benchmark/io_select3.rb
deleted file mode 100644
index 7d0ba1f092..0000000000
--- a/benchmark/io_select3.rb
+++ /dev/null
@@ -1,21 +0,0 @@
-# IO.select performance. a lot of fd
-
-ios = []
-nr = 100
-if defined?(Process::RLIMIT_NOFILE)
- max = Process.getrlimit(Process::RLIMIT_NOFILE)[0]
-else
- max = 64
-end
-puts "max fd: #{max} (results not apparent with <= 1024 max fd)"
-
-(max - 10).times do
- r, w = IO.pipe
- r.close
- ios.push w
-end
-
-nr.times do
- IO.select nil, ios
-end
-
diff --git a/benchmark/irb_color.yml b/benchmark/irb_color.yml
deleted file mode 100644
index ebdc8d7e8b..0000000000
--- a/benchmark/irb_color.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-prelude: |
- require 'irb/color'
- code = <<~'CODE'
- def self.foo # bar
- :"erb #{ERB.new("<%= self %>", trim_mode: ?-).result}"
- end
- CODE
-benchmark:
- irb_color_complete: |
- IRB::Color.colorize_code(code, complete: true)
- irb_color_incomplete: |
- IRB::Color.colorize_code(code, complete: false)
-loop_count: 2000000
diff --git a/benchmark/irb_exec.yml b/benchmark/irb_exec.yml
deleted file mode 100644
index 28933f8b38..0000000000
--- a/benchmark/irb_exec.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-prelude: |
- # frozen_string_literal: true
- require 'rbconfig'
- irb_f = [File.join(File.dirname(RbConfig.ruby), 'irb'), '-f']
-benchmark:
- irb_exec: |
- IO.popen(irb_f, 'w') do |io|
- io.write('exit')
- end
-loop_count: 30
diff --git a/benchmark/iseq_load_from_binary.yml b/benchmark/iseq_load_from_binary.yml
deleted file mode 100644
index 7e9d73bdd4..0000000000
--- a/benchmark/iseq_load_from_binary.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-prelude: |
- symbol = RubyVM::InstructionSequence.compile(":foo; :bar; :baz; :egg; :spam").to_binary
-
- define_method = RubyVM::InstructionSequence.compile(%{
- def foo; end
- def bar; end
- def baz; end
- def egg; end
- def spam; end
- }).to_binary
-
- all = RubyVM::InstructionSequence.compile(%{
- module Foo; def foo; :foo; end; end
- module Bar; def bar; :bar; end; end
- module Baz; def baz; :baz; end; end
- class Egg; def egg; :egg; end; end
- class Spaml; def spam; :spam; end; end
- }).to_binary
-
-benchmark:
- symbol: RubyVM::InstructionSequence.load_from_binary(symbol)
- define_method: RubyVM::InstructionSequence.load_from_binary(define_method)
- all: RubyVM::InstructionSequence.load_from_binary(all)
-
-loop_count: 100_000
diff --git a/benchmark/ivar_extend.yml b/benchmark/ivar_extend.yml
deleted file mode 100644
index eb9ee923f5..0000000000
--- a/benchmark/ivar_extend.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-prelude: |
- class Embedded
- def initialize
- @a = 1
- @b = 1
- @c = 1
- end
- end
-
- class Extended
- def initialize
- @a = 1
- @b = 1
- @c = 1
- @d = 1
- @e = 1
- @f = 1
- end
- end
-benchmark:
- embedded: Embedded.new
- extended: Extended.new
-loop_count: 20_000_000
diff --git a/benchmark/kernel_clone.yml b/benchmark/kernel_clone.yml
deleted file mode 100644
index 069b23abcd..0000000000
--- a/benchmark/kernel_clone.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-prelude: "object = Object.new"
-benchmark:
- clone: "object.clone"
- clone_true: "object.clone(freeze: true)"
- clone_false: "object.clone(freeze: false)"
-loop_count: 10000
diff --git a/benchmark/kernel_float.yml b/benchmark/kernel_float.yml
deleted file mode 100644
index 215f6750fc..0000000000
--- a/benchmark/kernel_float.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-benchmark:
- float: "Float(42)"
- float_true: "Float(42, exception: true)"
- float_false: "Float(42, exception: false)"
-loop_count: 10000
diff --git a/benchmark/kernel_tap.yml b/benchmark/kernel_tap.yml
deleted file mode 100644
index 4dcbb31b4d..0000000000
--- a/benchmark/kernel_tap.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-prelude: |
- obj = Object.new
- x = nil
-benchmark:
- kernel_tap: obj.tap { |o| x = o }
-loop_count: 20000000
diff --git a/benchmark/kernel_then.yml b/benchmark/kernel_then.yml
deleted file mode 100644
index 85f7341e33..0000000000
--- a/benchmark/kernel_then.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-benchmark:
- kernel_then: 1.then { |i| i + 1 }
- kernel_then_enum: 1.then
- kernel_yield_self: 1.yield_self { |i| i + 1 }
- kernel_yield_self_enum: 1.yield_self
-loop_count: 20000000
diff --git a/benchmark/keyword_arguments.yml b/benchmark/keyword_arguments.yml
deleted file mode 100644
index fce6bce0b8..0000000000
--- a/benchmark/keyword_arguments.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-prelude: |
- h = {a: 1}
- def kw(a: 1) a end
- def kws(**kw) kw end
-benchmark:
- kw_to_kw: "kw(a: 1)"
- kw_splat_to_kw: "kw(**h)"
- kw_to_kw_splat: "kws(a: 1)"
- kw_splat_to_kw_splat: "kws(**h)"
- kw_and_splat_to_kw: "kw(a: 1, **h)"
- kw_splats_to_kw: "kw(**h, **h)"
- kw_and_splat_to_kw_splat: "kws(a: 1, **h)"
- kw_splats_to_kw_splat: "kws(**h, **h)"
diff --git a/benchmark/lib/benchmark_driver/output/driver.rb b/benchmark/lib/benchmark_driver/output/driver.rb
deleted file mode 100644
index d22236e9fb..0000000000
--- a/benchmark/lib/benchmark_driver/output/driver.rb
+++ /dev/null
@@ -1,36 +0,0 @@
-require 'benchmark_driver/output/simple'
-
-# This replicates the legacy benchmark/driver.rb behavior.
-class BenchmarkDriver::Output::Driver < BenchmarkDriver::Output::Simple
- def initialize(*)
- super
- @stdout = $stdout
- @strio = StringIO.new
- $stdout = IOMultiplexer.new(@stdout, @strio)
- end
-
- def with_benchmark(*)
- super
- ensure
- logfile = "bmlog-#{Time.now.strftime('%Y%m%d-%H%M%S')}.#{$$}.log"
- puts "\nLog file: #{logfile}"
-
- $stdout = @stdout
- File.write(logfile, @strio.tap(&:rewind).read)
- end
-
- class IOMultiplexer
- def initialize(io1, io2)
- @io1 = io1
- @io2 = io2
- end
-
- [:write, :sync, :sync=, :puts, :print, :flush].each do |method|
- define_method(method) do |*args|
- @io1.send(method, *args)
- @io2.send(method, *args)
- end
- end
- end
- private_constant :IOMultiplexer
-end
diff --git a/benchmark/lib/benchmark_driver/runner/cstime.rb b/benchmark/lib/benchmark_driver/runner/cstime.rb
deleted file mode 100644
index 3c3453e527..0000000000
--- a/benchmark/lib/benchmark_driver/runner/cstime.rb
+++ /dev/null
@@ -1,22 +0,0 @@
-require 'benchmark_driver/runner/total'
-
-class BenchmarkDriver::Runner::Cstime < BenchmarkDriver::Runner::Total
- METRIC = BenchmarkDriver::Metric.new(name: 'cstime', unit: 's', larger_better: false)
-
- # JobParser returns this, `BenchmarkDriver::Runner.runner_for` searches "*::Job"
- Job = Class.new(BenchmarkDriver::DefaultJob)
- # Dynamically fetched and used by `BenchmarkDriver::JobParser.parse`
- JobParser = BenchmarkDriver::DefaultJobParser.for(klass: Job, metrics: [METRIC])
-
- private
-
- # Overriding BenchmarkDriver::Runner::Total#metric
- def metric
- METRIC
- end
-
- # Overriding BenchmarkDriver::Runner::Total#target
- def target
- :cstime
- end
-end
diff --git a/benchmark/lib/benchmark_driver/runner/cutime.rb b/benchmark/lib/benchmark_driver/runner/cutime.rb
deleted file mode 100644
index e139962ef2..0000000000
--- a/benchmark/lib/benchmark_driver/runner/cutime.rb
+++ /dev/null
@@ -1,22 +0,0 @@
-require 'benchmark_driver/runner/total'
-
-class BenchmarkDriver::Runner::Cutime < BenchmarkDriver::Runner::Total
- METRIC = BenchmarkDriver::Metric.new(name: 'cutime', unit: 's', larger_better: false)
-
- # JobParser returns this, `BenchmarkDriver::Runner.runner_for` searches "*::Job"
- Job = Class.new(BenchmarkDriver::DefaultJob)
- # Dynamically fetched and used by `BenchmarkDriver::JobParser.parse`
- JobParser = BenchmarkDriver::DefaultJobParser.for(klass: Job, metrics: [METRIC])
-
- private
-
- # Overriding BenchmarkDriver::Runner::Total#metric
- def metric
- METRIC
- end
-
- # Overriding BenchmarkDriver::Runner::Total#target
- def target
- :cutime
- end
-end
diff --git a/benchmark/lib/benchmark_driver/runner/mjit.rb b/benchmark/lib/benchmark_driver/runner/mjit.rb
deleted file mode 100644
index 1d4693e8be..0000000000
--- a/benchmark/lib/benchmark_driver/runner/mjit.rb
+++ /dev/null
@@ -1,34 +0,0 @@
-require 'benchmark_driver/struct'
-require 'benchmark_driver/metric'
-require 'erb'
-
-# A runner to measure after-JIT performance easily
-class BenchmarkDriver::Runner::Mjit < BenchmarkDriver::Runner::Ips
- # JobParser returns this, `BenchmarkDriver::Runner.runner_for` searches "*::Job"
- Job = Class.new(BenchmarkDriver::DefaultJob)
-
- # Dynamically fetched and used by `BenchmarkDriver::JobParser.parse`
- JobParser = BenchmarkDriver::DefaultJobParser.for(klass: Job, metrics: [METRIC]).extend(Module.new{
- def parse(**)
- jobs = super
- jobs.map do |job|
- job = job.dup
- job.prelude = "#{job.prelude}\n#{<<~EOS}"
- if defined?(RubyVM::MJIT) && RubyVM::MJIT.enabled?
- __bmdv_ruby_i = 0
- while __bmdv_ruby_i < 10000 # jit_min_calls
- #{job.script}
- __bmdv_ruby_i += 1
- end
- RubyVM::MJIT.pause # compile
- #{job.script}
- RubyVM::MJIT.resume; RubyVM::MJIT.pause # recompile
- #{job.script}
- RubyVM::MJIT.resume; RubyVM::MJIT.pause # recompile 2
- end
- EOS
- job
- end
- end
- })
-end
diff --git a/benchmark/lib/benchmark_driver/runner/mjit_exec.rb b/benchmark/lib/benchmark_driver/runner/mjit_exec.rb
deleted file mode 100644
index eac3dfba84..0000000000
--- a/benchmark/lib/benchmark_driver/runner/mjit_exec.rb
+++ /dev/null
@@ -1,237 +0,0 @@
-require 'benchmark_driver/struct'
-require 'benchmark_driver/metric'
-require 'erb'
-
-# A special runner dedicated for measuring mjit_exec overhead.
-class BenchmarkDriver::Runner::MjitExec
- METRIC = BenchmarkDriver::Metric.new(name: 'Iteration per second', unit: 'i/s')
-
- # JobParser returns this, `BenchmarkDriver::Runner.runner_for` searches "*::Job"
- Job = ::BenchmarkDriver::Struct.new(
- :name, # @param [String] name - This is mandatory for all runner
- :metrics, # @param [Array<BenchmarkDriver::Metric>]
- :num_methods, # @param [Integer] num_methods - The number of methods to be defined
- :loop_count, # @param [Integer] loop_count
- :from_jit, # @param [TrueClass,FalseClass] from_jit - Whether the mjit_exec() is from JIT or not
- :to_jit, # @param [TrueClass,FalseClass] to_jit - Whether the mjit_exec() is to JIT or not
- )
- # Dynamically fetched and used by `BenchmarkDriver::JobParser.parse`
- class << JobParser = Module.new
- # @param [Array,String] num_methods
- # @param [Integer] loop_count
- # @param [TrueClass,FalseClass] from_jit
- # @param [TrueClass,FalseClass] to_jit
- def parse(num_methods:, loop_count:, from_jit:, to_jit:)
- if num_methods.is_a?(String)
- num_methods = eval(num_methods)
- end
-
- num_methods.map do |num|
- if num_methods.size > 1
- suffix = "[#{'%4d' % num}]"
- else
- suffix = "_#{num}"
- end
- Job.new(
- name: "mjit_exec_#{from_jit ? 'JT' : 'VM'}2#{to_jit ? 'JT' : 'VM'}#{suffix}",
- metrics: [METRIC],
- num_methods: num,
- loop_count: loop_count,
- from_jit: from_jit,
- to_jit: to_jit,
- )
- end
- end
- end
-
- # @param [BenchmarkDriver::Config::RunnerConfig] config
- # @param [BenchmarkDriver::Output] output
- # @param [BenchmarkDriver::Context] contexts
- def initialize(config:, output:, contexts:)
- @config = config
- @output = output
- @contexts = contexts
- end
-
- # This method is dynamically called by `BenchmarkDriver::JobRunner.run`
- # @param [Array<BenchmarkDriver::Runner::Peak::Job>] jobs
- def run(jobs)
- @output.with_benchmark do
- jobs.each do |job|
- @output.with_job(name: job.name) do
- @contexts.each do |context|
- result = BenchmarkDriver::Repeater.with_repeat(config: @config, larger_better: true, rest_on_average: :average) do
- run_benchmark(job, context: context)
- end
- value, duration = result.value
- @output.with_context(name: context.name, executable: context.executable, gems: context.gems, prelude: context.prelude) do
- @output.report(values: { METRIC => value }, duration: duration, loop_count: job.loop_count)
- end
- end
- end
- end
- end
- end
-
- private
-
- # @param [BenchmarkDriver::Runner::Ips::Job] job - loop_count is not nil
- # @param [BenchmarkDriver::Context] context
- # @return [BenchmarkDriver::Metrics]
- def run_benchmark(job, context:)
- if job.from_jit
- if job.to_jit
- benchmark = BenchmarkJT2JT.new(num_methods: job.num_methods, loop_count: job.loop_count)
- else
- raise NotImplementedError, "JT2VM is not implemented yet"
- end
- else
- if job.to_jit
- benchmark = BenchmarkVM2JT.new(num_methods: job.num_methods, loop_count: job.loop_count)
- else
- benchmark = BenchmarkVM2VM.new(num_methods: job.num_methods, loop_count: job.loop_count)
- end
- end
-
- duration = Tempfile.open(['benchmark_driver-result', '.txt']) do |f|
- with_script(benchmark.render(result: f.path)) do |path|
- opt = []
- if context.executable.command.any? { |c| c.start_with?('--jit') }
- opt << '--jit-min-calls=2'
- end
- IO.popen([*context.executable.command, '--disable-gems', *opt, path], &:read)
- if $?.success?
- Float(f.read)
- else
- BenchmarkDriver::Result::ERROR
- end
- end
- end
-
- [job.loop_count.to_f / duration, duration]
- end
-
- def with_script(script)
- if @config.verbose >= 2
- sep = '-' * 30
- $stdout.puts "\n\n#{sep}[Script begin]#{sep}\n#{script}#{sep}[Script end]#{sep}\n\n"
- end
-
- Tempfile.open(['benchmark_driver-', '.rb']) do |f|
- f.puts script
- f.close
- return yield(f.path)
- end
- end
-
- # @param [Integer] num_methods
- # @param [Integer] loop_count
- BenchmarkVM2VM = ::BenchmarkDriver::Struct.new(:num_methods, :loop_count) do
- # @param [String] result - A file to write result
- def render(result:)
- ERB.new(<<~EOS, trim_mode: '%').result(binding)
- % num_methods.times do |i|
- def a<%= i %>
- nil
- end
- % end
- RubyVM::MJIT.pause if defined?(RubyVM::MJIT) && RubyVM::MJIT.enabled?
-
- def vm
- t = Process.clock_gettime(Process::CLOCK_MONOTONIC)
- i = 0
- while i < <%= loop_count / 1000 %>
- % 1000.times do |i|
- a<%= i % num_methods %>
- % end
- i += 1
- end
- % (loop_count % 1000).times do |i|
- a<%= i % num_methods %>
- % end
- Process.clock_gettime(Process::CLOCK_MONOTONIC) - t
- end
-
- vm # warmup call cache
- File.write(<%= result.dump %>, vm)
- EOS
- end
- end
- private_constant :BenchmarkVM2VM
-
- # @param [Integer] num_methods
- # @param [Integer] loop_count
- BenchmarkVM2JT = ::BenchmarkDriver::Struct.new(:num_methods, :loop_count) do
- # @param [String] result - A file to write result
- def render(result:)
- ERB.new(<<~EOS, trim_mode: '%').result(binding)
- % num_methods.times do |i|
- def a<%= i %>
- nil
- end
- a<%= i %>
- a<%= i %> # --jit-min-calls=2
- % end
- RubyVM::MJIT.pause if defined?(RubyVM::MJIT) && RubyVM::MJIT.enabled?
-
- def vm
- t = Process.clock_gettime(Process::CLOCK_MONOTONIC)
- i = 0
- while i < <%= loop_count / 1000 %>
- % 1000.times do |i|
- a<%= i % num_methods %>
- % end
- i += 1
- end
- % (loop_count % 1000).times do |i|
- a<%= i % num_methods %>
- % end
- Process.clock_gettime(Process::CLOCK_MONOTONIC) - t
- end
-
- vm # warmup call cache
- File.write(<%= result.dump %>, vm)
- EOS
- end
- end
- private_constant :BenchmarkVM2JT
-
- # @param [Integer] num_methods
- # @param [Integer] loop_count
- BenchmarkJT2JT = ::BenchmarkDriver::Struct.new(:num_methods, :loop_count) do
- # @param [String] result - A file to write result
- def render(result:)
- ERB.new(<<~EOS, trim_mode: '%').result(binding)
- % num_methods.times do |i|
- def a<%= i %>
- nil
- end
- % end
-
- # You may need to:
- # * Increase `JIT_ISEQ_SIZE_THRESHOLD` to 10000000 in mjit.h
- # * Always return false in `inlinable_iseq_p()` of mjit_compile.c
- def jit
- t = Process.clock_gettime(Process::CLOCK_MONOTONIC)
- i = 0
- while i < <%= loop_count / 1000 %>
- % 1000.times do |i|
- a<%= i % num_methods %>
- % end
- i += 1
- end
- % (loop_count % 1000).times do |i|
- a<%= i % num_methods %>
- % end
- Process.clock_gettime(Process::CLOCK_MONOTONIC) - t
- end
-
- jit
- jit
- RubyVM::MJIT.pause if defined?(RubyVM::MJIT) && RubyVM::MJIT.enabled?
- File.write(<%= result.dump %>, jit)
- EOS
- end
- end
- private_constant :BenchmarkJT2JT
-end
diff --git a/benchmark/lib/benchmark_driver/runner/peak.rb b/benchmark/lib/benchmark_driver/runner/peak.rb
deleted file mode 100644
index d04f2e51ff..0000000000
--- a/benchmark/lib/benchmark_driver/runner/peak.rb
+++ /dev/null
@@ -1,151 +0,0 @@
-require 'benchmark_driver/struct'
-require 'benchmark_driver/metric'
-require 'benchmark_driver/default_job'
-require 'benchmark_driver/default_job_parser'
-require 'tempfile'
-
-class BenchmarkDriver::Runner::Peak
- METRIC = BenchmarkDriver::Metric.new(
- name: 'Peak memory usage', unit: 'bytes', larger_better: false, worse_word: 'larger',
- )
-
- # JobParser returns this, `BenchmarkDriver::Runner.runner_for` searches "*::Job"
- Job = Class.new(BenchmarkDriver::DefaultJob)
- # Dynamically fetched and used by `BenchmarkDriver::JobParser.parse`
- JobParser = BenchmarkDriver::DefaultJobParser.for(klass: Job, metrics: [METRIC])
-
- # @param [BenchmarkDriver::Config::RunnerConfig] config
- # @param [BenchmarkDriver::Output] output
- # @param [BenchmarkDriver::Context] contexts
- def initialize(config:, output:, contexts:)
- @config = config
- @output = output
- @contexts = contexts
- end
-
- # This method is dynamically called by `BenchmarkDriver::JobRunner.run`
- # @param [Array<BenchmarkDriver::Runner::Peak::Job>] jobs
- def run(jobs)
- if jobs.any? { |job| job.loop_count.nil? }
- jobs = jobs.map do |job|
- job.loop_count ? job : Job.new(job.to_h.merge(loop_count: 1))
- end
- end
-
- @output.with_benchmark do
- jobs.each do |job|
- @output.with_job(name: job.name) do
- job.runnable_contexts(@contexts).each do |context|
- value = BenchmarkDriver::Repeater.with_repeat(config: @config, larger_better: false) do
- run_benchmark(job, context: context)
- end
- @output.with_context(name: context.name, executable: context.executable, gems: context.gems, prelude: context.prelude) do
- @output.report(values: { metric => value }, loop_count: job.loop_count)
- end
- end
- end
- end
- end
- end
-
- private
-
- # @param [BenchmarkDriver::Runner::Ips::Job] job - loop_count is not nil
- # @param [BenchmarkDriver::Context] context
- # @return [BenchmarkDriver::Metrics]
- def run_benchmark(job, context:)
- benchmark = BenchmarkScript.new(
- preludes: [context.prelude, job.prelude],
- script: job.script,
- teardown: job.teardown,
- loop_count: job.loop_count,
- )
-
- memory_status = File.expand_path('../../../../tool/lib/memory_status', __dir__)
- Tempfile.open(['benchmark_driver-', '.rb']) do |f|
- with_script(benchmark.render) do |path|
- output = IO.popen([*context.executable.command, path, f.path, target, memory_status], &:read)
- if $?.success?
- Integer(f.read)
- else
- $stdout.print(output)
- BenchmarkDriver::Result::ERROR
- end
- end
- end
- end
-
- # Overridden by BenchmarkDriver::Runner::Size
- def target
- 'peak'
- end
-
- # Overridden by BenchmarkDriver::Runner::Size
- def metric
- METRIC
- end
-
- def with_script(script)
- if @config.verbose >= 2
- sep = '-' * 30
- $stdout.puts "\n\n#{sep}[Script begin]#{sep}\n#{script}#{sep}[Script end]#{sep}\n\n"
- end
-
- Tempfile.open(['benchmark_driver-', '.rb']) do |f|
- f.puts script
- f.close
- return yield(f.path)
- end
- end
-
- # @param [String] prelude
- # @param [String] script
- # @param [String] teardown
- # @param [Integer] loop_count
- BenchmarkScript = ::BenchmarkDriver::Struct.new(:preludes, :script, :teardown, :loop_count) do
- def render
- prelude = preludes.reject(&:nil?).reject(&:empty?).join("\n")
- <<-RUBY
-#{prelude}
-#{while_loop(script, loop_count)}
-#{teardown}
-
-result_file, target, memory_status = ARGV
-require_relative memory_status
-
-ms = Memory::Status.new
-case target.to_sym
-when :peak
- key = ms.respond_to?(:hwm) ? :hwm : :peak
-when :size
- key = ms.respond_to?(:rss) ? :rss : :size
-else
- raise('unexpected target: ' + target)
-end
-
-File.write(result_file, ms[key])
- RUBY
- end
-
- private
-
- def while_loop(content, times)
- if !times.is_a?(Integer) || times <= 0
- raise ArgumentError.new("Unexpected times: #{times.inspect}")
- end
-
- if times > 1
- <<-RUBY
-__bmdv_i = 0
-while __bmdv_i < #{times}
- #{content}
- __bmdv_i += 1
-end
- RUBY
- else
- content
- end
- end
- end
- private_constant :BenchmarkScript
-end
diff --git a/benchmark/lib/benchmark_driver/runner/ractor.rb b/benchmark/lib/benchmark_driver/runner/ractor.rb
deleted file mode 100644
index c730b8e4a5..0000000000
--- a/benchmark/lib/benchmark_driver/runner/ractor.rb
+++ /dev/null
@@ -1,122 +0,0 @@
-require 'erb'
-
-# A runner to measure performance *inside* Ractor
-class BenchmarkDriver::Runner::Ractor < BenchmarkDriver::Runner::Ips
- # JobParser returns this, `BenchmarkDriver::Runner.runner_for` searches "*::Job"
- Job = Class.new(BenchmarkDriver::DefaultJob) do
- attr_accessor :ractor
- end
-
- # Dynamically fetched and used by `BenchmarkDriver::JobParser.parse`
- JobParser = BenchmarkDriver::DefaultJobParser.for(klass: Job, metrics: [METRIC]).extend(Module.new{
- def parse(ractor: 1, **kwargs)
- super(**kwargs).each do |job|
- job.ractor = ractor
- end
- end
- })
-
- private
-
- unless private_instance_methods.include?(:run_benchmark)
- raise "#run_benchmark is no longer defined in BenchmarkDriver::Runner::Ips"
- end
-
- # @param [BenchmarkDriver::Runner::Ips::Job] job - loop_count is not nil
- # @param [BenchmarkDriver::Context] context
- # @return [BenchmarkDriver::Metrics]
- def run_benchmark(job, context:)
- benchmark = BenchmarkScript.new(
- preludes: [context.prelude, job.prelude],
- script: job.script,
- teardown: job.teardown,
- loop_count: job.loop_count,
- )
-
- results = job.ractor.times.map do
- Tempfile.open('benchmark_driver_result')
- end
- duration = with_script(benchmark.render(results: results.map(&:path))) do |path|
- success = execute(*context.executable.command, path, exception: false)
- if success && ((value = results.map { |f| Float(f.read) }.max) > 0)
- value
- else
- BenchmarkDriver::Result::ERROR
- end
- end
- results.each(&:close)
-
- value_duration(
- loop_count: job.loop_count,
- duration: duration,
- )
- end
-
- # @param [String] prelude
- # @param [String] script
- # @param [String] teardown
- # @param [Integer] loop_count
- BenchmarkScript = ::BenchmarkDriver::Struct.new(:preludes, :script, :teardown, :loop_count) do
- # @param [String] result - A file to write result
- def render(results:)
- prelude = preludes.reject(&:nil?).reject(&:empty?).join("\n")
- ERB.new(<<-RUBY).result_with_hash(results: results)
-Warning[:experimental] = false
-# shareable-constant-value: experimental_everything
-#{prelude}
-
-if #{loop_count} == 1
- __bmdv_loop_before = 0
- __bmdv_loop_after = 0
-else
- __bmdv_loop_before = Time.new
- #{while_loop('', loop_count, id: 0)}
- __bmdv_loop_after = Time.new
-end
-
-__bmdv_ractors = []
-<% results.size.times do %>
-__bmdv_ractors << Ractor.new(__bmdv_loop_after - __bmdv_loop_before) { |__bmdv_loop_time|
- __bmdv_time = Time
- __bmdv_script_before = __bmdv_time.new
- #{while_loop(script, loop_count, id: 1)}
- __bmdv_script_after = __bmdv_time.new
-
- (__bmdv_script_after - __bmdv_script_before) - __bmdv_loop_time
-}
-<% end %>
-
-# Wait for all Ractors before executing code to write results
-__bmdv_ractors.map!(&:take)
-
-<% results.each do |result| %>
-File.write(<%= result.dump %>, __bmdv_ractors.shift)
-<% end %>
-
-#{teardown}
- RUBY
- end
-
- private
-
- # id is to prevent:
- # can not isolate a Proc because it accesses outer variables (__bmdv_i)
- def while_loop(content, times, id:)
- if !times.is_a?(Integer) || times <= 0
- raise ArgumentError.new("Unexpected times: #{times.inspect}")
- elsif times == 1
- return content
- end
-
- # TODO: execute in batch
- <<-RUBY
-__bmdv_i#{id} = 0
-while __bmdv_i#{id} < #{times}
- #{content}
- __bmdv_i#{id} += 1
-end
- RUBY
- end
- end
- private_constant :BenchmarkScript
-end
diff --git a/benchmark/lib/benchmark_driver/runner/size.rb b/benchmark/lib/benchmark_driver/runner/size.rb
deleted file mode 100644
index 1b31f901c7..0000000000
--- a/benchmark/lib/benchmark_driver/runner/size.rb
+++ /dev/null
@@ -1,25 +0,0 @@
-require 'benchmark_driver/runner/peak'
-
-# Actually the same as BenchmarkDriver::Runner::Memory
-class BenchmarkDriver::Runner::Size < BenchmarkDriver::Runner::Peak
- METRIC = BenchmarkDriver::Metric.new(
- name: 'Max resident set size', unit: 'bytes', larger_better: false, worse_word: 'larger',
- )
-
- # JobParser returns this, `BenchmarkDriver::Runner.runner_for` searches "*::Job"
- Job = Class.new(BenchmarkDriver::DefaultJob)
- # Dynamically fetched and used by `BenchmarkDriver::JobParser.parse`
- JobParser = BenchmarkDriver::DefaultJobParser.for(klass: Job, metrics: [METRIC])
-
- private
-
- # Overriding BenchmarkDriver::Runner::Peak#metric
- def metric
- METRIC
- end
-
- # Overriding BenchmarkDriver::Runner::Peak#target
- def target
- 'size'
- end
-end
diff --git a/benchmark/lib/benchmark_driver/runner/stime.rb b/benchmark/lib/benchmark_driver/runner/stime.rb
deleted file mode 100644
index 4577fb0bf8..0000000000
--- a/benchmark/lib/benchmark_driver/runner/stime.rb
+++ /dev/null
@@ -1,22 +0,0 @@
-require 'benchmark_driver/runner/total'
-
-class BenchmarkDriver::Runner::Stime < BenchmarkDriver::Runner::Total
- METRIC = BenchmarkDriver::Metric.new(name: 'stime', unit: 's', larger_better: false)
-
- # JobParser returns this, `BenchmarkDriver::Runner.runner_for` searches "*::Job"
- Job = Class.new(BenchmarkDriver::DefaultJob)
- # Dynamically fetched and used by `BenchmarkDriver::JobParser.parse`
- JobParser = BenchmarkDriver::DefaultJobParser.for(klass: Job, metrics: [METRIC])
-
- private
-
- # Overriding BenchmarkDriver::Runner::Total#metric
- def metric
- METRIC
- end
-
- # Overriding BenchmarkDriver::Runner::Total#target
- def target
- :stime
- end
-end
diff --git a/benchmark/lib/benchmark_driver/runner/total.rb b/benchmark/lib/benchmark_driver/runner/total.rb
deleted file mode 100644
index 64dc14f84e..0000000000
--- a/benchmark/lib/benchmark_driver/runner/total.rb
+++ /dev/null
@@ -1,137 +0,0 @@
-require 'benchmark_driver/struct'
-require 'benchmark_driver/metric'
-require 'benchmark_driver/default_job'
-require 'benchmark_driver/default_job_parser'
-require 'tempfile'
-
-class BenchmarkDriver::Runner::Total
- METRIC = BenchmarkDriver::Metric.new(name: 'Total time', unit: 's', larger_better: false)
-
- # JobParser returns this, `BenchmarkDriver::Runner.runner_for` searches "*::Job"
- Job = Class.new(BenchmarkDriver::DefaultJob)
- # Dynamically fetched and used by `BenchmarkDriver::JobParser.parse`
- JobParser = BenchmarkDriver::DefaultJobParser.for(klass: Job, metrics: [METRIC])
-
- # @param [BenchmarkDriver::Config::RunnerConfig] config
- # @param [BenchmarkDriver::Output] output
- # @param [BenchmarkDriver::Context] contexts
- def initialize(config:, output:, contexts:)
- @config = config
- @output = output
- @contexts = contexts
- end
-
- # This method is dynamically called by `BenchmarkDriver::JobRunner.run`
- # @param [Array<BenchmarkDriver::Runner::Total::Job>] jobs
- def run(jobs)
- if jobs.any? { |job| job.loop_count.nil? }
- raise 'missing loop_count is not supported in Ruby repository'
- end
-
- @output.with_benchmark do
- jobs.each do |job|
- @output.with_job(name: job.name) do
- job.runnable_contexts(@contexts).each do |context|
- duration = BenchmarkDriver::Repeater.with_repeat(config: @config, larger_better: false) do
- run_benchmark(job, context: context)
- end
- @output.with_context(name: context.name, executable: context.executable, gems: context.gems, prelude: context.prelude) do
- @output.report(values: { metric => duration }, duration: duration, loop_count: job.loop_count)
- end
- end
- end
- end
- end
- end
-
- private
-
- # @param [BenchmarkDriver::Runner::Ips::Job] job - loop_count is not nil
- # @param [BenchmarkDriver::Context] context
- # @return [BenchmarkDriver::Metrics]
- def run_benchmark(job, context:)
- benchmark = BenchmarkScript.new(
- preludes: [context.prelude, job.prelude],
- script: job.script,
- teardown: job.teardown,
- loop_count: job.loop_count,
- )
-
- Tempfile.open(['benchmark_driver-', '.rb']) do |f|
- with_script(benchmark.render(result: f.path, target: target)) do |path|
- IO.popen([*context.executable.command, path], &:read) # TODO: print stdout if verbose=2
- if $?.success?
- Float(f.read)
- else
- BenchmarkDriver::Result::ERROR
- end
- end
- end
- end
-
- # This method is overridden by some subclasses
- def metric
- METRIC
- end
-
- # This method is overridden by some subclasses
- def target
- :total
- end
-
- def with_script(script)
- if @config.verbose >= 2
- sep = '-' * 30
- $stdout.puts "\n\n#{sep}[Script begin]#{sep}\n#{script}#{sep}[Script end]#{sep}\n\n"
- end
-
- Tempfile.open(['benchmark_driver-', '.rb']) do |f|
- f.puts script
- f.close
- return yield(f.path)
- end
- end
-
- # @param [String] prelude
- # @param [String] script
- # @param [String] teardown
- # @param [Integer] loop_count
- BenchmarkScript = ::BenchmarkDriver::Struct.new(:preludes, :script, :teardown, :loop_count) do
- # @param [String] result - A file to write result
- def render(result:, target:)
- prelude = preludes.reject(&:nil?).reject(&:empty?).join("\n")
- <<-RUBY
-#{prelude}
-
-require 'benchmark'
-__bmdv_result = Benchmark.measure {
- #{while_loop(script, loop_count)}
-}
-
-#{teardown}
-
-File.write(#{result.dump}, __bmdv_result.#{target})
- RUBY
- end
-
- private
-
- def while_loop(content, times)
- if !times.is_a?(Integer) || times <= 0
- raise ArgumentError.new("Unexpected times: #{times.inspect}")
- elsif times == 1
- return content
- end
-
- # TODO: execute in batch
- <<-RUBY
-__bmdv_i = 0
-while __bmdv_i < #{times}
- #{content}
- __bmdv_i += 1
-end
- RUBY
- end
- end
- private_constant :BenchmarkScript
-end
diff --git a/benchmark/lib/benchmark_driver/runner/utime.rb b/benchmark/lib/benchmark_driver/runner/utime.rb
deleted file mode 100644
index b61d83a188..0000000000
--- a/benchmark/lib/benchmark_driver/runner/utime.rb
+++ /dev/null
@@ -1,22 +0,0 @@
-require 'benchmark_driver/runner/total'
-
-class BenchmarkDriver::Runner::Utime < BenchmarkDriver::Runner::Total
- METRIC = BenchmarkDriver::Metric.new(name: 'utime', unit: 's', larger_better: false)
-
- # JobParser returns this, `BenchmarkDriver::Runner.runner_for` searches "*::Job"
- Job = Class.new(BenchmarkDriver::DefaultJob)
- # Dynamically fetched and used by `BenchmarkDriver::JobParser.parse`
- JobParser = BenchmarkDriver::DefaultJobParser.for(klass: Job, metrics: [METRIC])
-
- private
-
- # Overriding BenchmarkDriver::Runner::Total#metric
- def metric
- METRIC
- end
-
- # Overriding BenchmarkDriver::Runner::Total#target
- def target
- :utime
- end
-end
diff --git a/benchmark/lib/load.rb b/benchmark/lib/load.rb
deleted file mode 100644
index 31b770c484..0000000000
--- a/benchmark/lib/load.rb
+++ /dev/null
@@ -1,18 +0,0 @@
-# How to use this file:
-# 1. write a `$(srcdir)/test.rb` like:
-=begin
-require_relative 'benchmark/lib/load'
-
-Benchmark.driver(repeat_count: 5){|x|
- x.executable name: 'clean-miniruby', command: %w'../clean-trunk/miniruby'
- x.executable name: 'modif-miniruby', command: %w'./miniruby'
-
- x.report %q{
- h = {a: 1, b: 2, c: 3, d: 4}
- }
-}
-=end
-#
-# 2. `make run`
-$:.unshift(File.join(__dir__, '../benchmark-driver/lib'))
-require 'benchmark_driver'
diff --git a/benchmark/loop_for.rb b/benchmark/loop_for.rb
deleted file mode 100644
index 0fc4cc1511..0000000000
--- a/benchmark/loop_for.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-for i in 1..30_000_000
- #
-end
diff --git a/benchmark/loop_generator.rb b/benchmark/loop_generator.rb
deleted file mode 100644
index d3375c744c..0000000000
--- a/benchmark/loop_generator.rb
+++ /dev/null
@@ -1,14 +0,0 @@
-max = 600000
-
-if defined? Fiber
- gen = (1..max).each
- loop do
- gen.next
- end
-else
- require 'generator'
- gen = Generator.new((0..max))
- while gen.next?
- gen.next
- end
-end
diff --git a/benchmark/loop_times.rb b/benchmark/loop_times.rb
deleted file mode 100644
index 521f72ad1a..0000000000
--- a/benchmark/loop_times.rb
+++ /dev/null
@@ -1 +0,0 @@
-30_000_000.times{|e|}
diff --git a/benchmark/loop_whileloop.rb b/benchmark/loop_whileloop.rb
deleted file mode 100644
index 0072822c06..0000000000
--- a/benchmark/loop_whileloop.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-i = 0
-while i<30_000_000 # benchmark loop 1
- i += 1
-end
diff --git a/benchmark/loop_whileloop2.rb b/benchmark/loop_whileloop2.rb
deleted file mode 100644
index 47d02dffc4..0000000000
--- a/benchmark/loop_whileloop2.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-i = 0
-while i< 6_000_000 # benchmark loop 2
- i += 1
-end
diff --git a/benchmark/marshal_dump_flo.rb b/benchmark/marshal_dump_flo.rb
deleted file mode 100644
index 9b8d0c6afb..0000000000
--- a/benchmark/marshal_dump_flo.rb
+++ /dev/null
@@ -1,2 +0,0 @@
-bug10761 = 10000.times.map { |x| x.to_f }
-100.times { Marshal.dump(bug10761) }
diff --git a/benchmark/marshal_dump_load_geniv.rb b/benchmark/marshal_dump_load_geniv.rb
deleted file mode 100644
index 8252ad90fa..0000000000
--- a/benchmark/marshal_dump_load_geniv.rb
+++ /dev/null
@@ -1,10 +0,0 @@
-a = ''
-a.instance_eval do
- @a = :a
- @b = :b
- @c = :c
-end
-100000.times do
- a = Marshal.load(Marshal.dump(a))
-end
-#p(a.instance_eval { @a == :a && @b == :b && @c == :c })
diff --git a/benchmark/marshal_dump_load_time.rb b/benchmark/marshal_dump_load_time.rb
deleted file mode 100644
index e29743b791..0000000000
--- a/benchmark/marshal_dump_load_time.rb
+++ /dev/null
@@ -1 +0,0 @@
-100000.times { Marshal.load(Marshal.dump(Time.now)) }
diff --git a/benchmark/masgn.yml b/benchmark/masgn.yml
deleted file mode 100644
index 4be9333e23..0000000000
--- a/benchmark/masgn.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-prelude: |
- a = [nil] * 3
- b = Class.new{attr_writer :a, :b, :c}.new
- c, d, e, f = nil, nil, nil, nil
-benchmark:
- array2_2: "c = (a[0], a[1] = 1, 2)"
- array2_3: "c = (a[0], a[1] = 1, 2, 3)"
- array3_2: "c = (a[0], a[1], a[2] = 1, 2)"
- array3_3: "c = (a[0], a[1], a[2] = 1, 2, 3)"
- attr2_2: "c = (b.a, b.b = 1, 2)"
- attr2_3: "c = (b.a, b.b = 1, 2, 3)"
- attr3_2: "c = (b.a, b.b, b.c = 1, 2)"
- attr3_3: "c = (b.a, b.b, b.c = 1, 2, 3)"
- lvar2_2: "c = (d, e = 1, 2)"
- lvar2_3: "c = (d, e = 1, 2, 3)"
- lvar3_2: "c = (d, e, f = 1, 2)"
- lvar3_3: "c = (d, e, f = 1, 2, 3)"
- array2_2p: "(a[0], a[1] = 1, 2; nil)"
- array2_3p: "(a[0], a[1] = 1, 2, 3; nil)"
- array3_2p: "(a[0], a[1], a[2] = 1, 2; nil)"
- array3_3p: "(a[0], a[1], a[2] = 1, 2, 3; nil)"
- attr2_2p: "(b.a, b.b = 1, 2; nil)"
- attr2_3p: "(b.a, b.b = 1, 2, 3; nil)"
- attr3_2p: "(b.a, b.b, b.c = 1, 2; nil)"
- attr3_3p: "(b.a, b.b, b.c = 1, 2, 3; nil)"
- lvar2_2p: "(d, e = 1, 2; nil)"
- lvar2_3p: "(d, e = 1, 2, 3; nil)"
- lvar3_2p: "(d, e, f = 1, 2; nil)"
- lvar3_3p: "(d, e, f = 1, 2, 3; nil)"
diff --git a/benchmark/match_gt4.rb b/benchmark/match_gt4.rb
deleted file mode 100644
index ffda109912..0000000000
--- a/benchmark/match_gt4.rb
+++ /dev/null
@@ -1 +0,0 @@
-1000000.times { /(.)(.)(\d+)(\d)/.match("THX1138.") }
diff --git a/benchmark/match_small.rb b/benchmark/match_small.rb
deleted file mode 100644
index 3b743d484a..0000000000
--- a/benchmark/match_small.rb
+++ /dev/null
@@ -1 +0,0 @@
-1000000.times { 'haystack'.match(/hay/) }
diff --git a/benchmark/method_bind_call.yml b/benchmark/method_bind_call.yml
deleted file mode 100644
index 9e0e046ed4..0000000000
--- a/benchmark/method_bind_call.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-prelude: |
- named_module = Kernel
-
- module FakeName
- def self.name
- "NotMyame".freeze
- end
- end
-
- MOD_NAME = Module.instance_method(:name)
-
-benchmark:
- fastpath: MOD_NAME.bind_call(Kernel)
- slowpath: MOD_NAME.bind_call(FakeName)
-
-loop_count: 100_000
diff --git a/benchmark/mjit_exec_jt2jt.yml b/benchmark/mjit_exec_jt2jt.yml
deleted file mode 100644
index 6c303c7a44..0000000000
--- a/benchmark/mjit_exec_jt2jt.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-type: lib/benchmark_driver/runner/mjit_exec
-num_methods: [1]
-#num_methods: (1..100).to_a + [200, 300, 400, 500, 600, 700, 800, 900, 1000]
-loop_count: 50000000
-from_jit: true
-to_jit: true
diff --git a/benchmark/mjit_exec_vm2jt.yml b/benchmark/mjit_exec_vm2jt.yml
deleted file mode 100644
index 764883f070..0000000000
--- a/benchmark/mjit_exec_vm2jt.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-type: lib/benchmark_driver/runner/mjit_exec
-num_methods: [1]
-#num_methods: (1..100).to_a + [200, 300, 400, 500, 600, 700, 800, 900, 1000]
-loop_count: 50000000
-from_jit: false
-to_jit: true
diff --git a/benchmark/mjit_exec_vm2vm.yml b/benchmark/mjit_exec_vm2vm.yml
deleted file mode 100644
index 030aa76c1c..0000000000
--- a/benchmark/mjit_exec_vm2vm.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-type: lib/benchmark_driver/runner/mjit_exec
-num_methods: [1]
-#num_methods: (1..100).to_a + [200, 300, 400, 500, 600, 700, 800, 900, 1000]
-loop_count: 50000000
-from_jit: false
-to_jit: false
diff --git a/benchmark/mjit_exivar.yml b/benchmark/mjit_exivar.yml
deleted file mode 100644
index 2584fa6410..0000000000
--- a/benchmark/mjit_exivar.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-type: lib/benchmark_driver/runner/mjit
-prelude: |
- class Bench < Hash
- def initialize
- @exivar = nil
- end
-
- def exivar
- @exivar
- end
- end
-
- bench = Bench.new
-
-benchmark:
- mjit_exivar: bench.exivar
-
-loop_count: 200000000
diff --git a/benchmark/mjit_integer.yml b/benchmark/mjit_integer.yml
deleted file mode 100644
index a6b5c9ee16..0000000000
--- a/benchmark/mjit_integer.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-type: lib/benchmark_driver/runner/mjit
-prelude: |
- def mjit_abs(int) int.abs end
- def mjit_bit_length(int) int.bit_length end
- def mjit_comp(int) ~int end
- def mjit_even?(int) int.even? end
- def mjit_integer?(int) int.integer? end
- def mjit_magnitude(int) int.magnitude end
- def mjit_odd?(int) int.odd? end
- def mjit_ord(int) int.ord end
- def mjit_size(int) int.size end
- def mjit_to_i(int) int.to_i end
- def mjit_to_int(int) int.to_int end
- def mjit_uminus(int) -int end
- def mjit_zero?(int) int.zero? end
-
-benchmark:
- - mjit_abs(-1)
- - mjit_bit_length(100)
- - mjit_comp(1)
- - mjit_even?(2)
- - mjit_integer?(0)
- - mjit_magnitude(-1)
- - mjit_odd?(1)
- - mjit_ord(1)
- - mjit_size(1)
- - mjit_to_i(1)
- - mjit_to_int(1)
- - mjit_uminus(1)
- - mjit_zero?(0)
-
-loop_count: 40000000
diff --git a/benchmark/mjit_kernel.yml b/benchmark/mjit_kernel.yml
deleted file mode 100644
index 7720e65c2c..0000000000
--- a/benchmark/mjit_kernel.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-type: lib/benchmark_driver/runner/mjit
-prelude: |
- def mjit_class(obj)
- obj.class
- end
-
- def mjit_frozen?(obj)
- obj.frozen?
- end
-
- str = ""
- fstr = "".freeze
-
-benchmark:
- - mjit_class(self)
- - mjit_class(1)
- - mjit_frozen?(str)
- - mjit_frozen?(fstr)
-
-loop_count: 40000000
diff --git a/benchmark/mjit_leave.yml b/benchmark/mjit_leave.yml
deleted file mode 100644
index 9ac68b164b..0000000000
--- a/benchmark/mjit_leave.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-type: lib/benchmark_driver/runner/mjit
-prelude: |
- def leave
- nil
- end
-benchmark:
- mjit_leave: leave
-loop_count: 200000000
diff --git a/benchmark/mjit_opt_cc_insns.yml b/benchmark/mjit_opt_cc_insns.yml
deleted file mode 100644
index fed6d34bd5..0000000000
--- a/benchmark/mjit_opt_cc_insns.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-# opt_* insns using vm_method_cfunc_is with send-compatible operands:
-# * opt_nil_p
-# * opt_not
-# * opt_eq
-type: lib/benchmark_driver/runner/mjit
-prelude: |
- def mjit_nil?(obj)
- obj.nil?
- end
-
- def mjit_not(obj)
- !obj
- end
-
- def mjit_eq(a, b)
- a == b
- end
-
-benchmark:
- - script: mjit_nil?(1)
- loop_count: 40000000
- - script: mjit_not(1)
- loop_count: 40000000
- - script: mjit_eq(1, nil)
- loop_count: 8000000
- - script: mjit_eq(nil, 1)
- loop_count: 8000000
diff --git a/benchmark/mjit_struct_aref.yml b/benchmark/mjit_struct_aref.yml
deleted file mode 100644
index bfba1323f2..0000000000
--- a/benchmark/mjit_struct_aref.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-type: lib/benchmark_driver/runner/mjit
-prelude: |
- def mjit_struct_aref(struct)
- struct.aa
- end
- struct = Struct.new(:a0, :a1, :a2, :a3, :a4, :a5, :a6, :a7, :a8, :a9, :aa).new
-
-benchmark: mjit_struct_aref(struct)
-
-loop_count: 40000000
diff --git a/benchmark/nil_p.yml b/benchmark/nil_p.yml
deleted file mode 100644
index 79ba4f2177..0000000000
--- a/benchmark/nil_p.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-prelude: |
- class Niller; def nil?; true; end; end
- xnil, notnil = nil, Object.new
- niller = Niller.new
-benchmark:
- - xnil.nil?
- - notnil.nil?
- - niller.nil?
-loop_count: 10000000
diff --git a/benchmark/nilclass.yml b/benchmark/nilclass.yml
deleted file mode 100644
index fba67a5f6a..0000000000
--- a/benchmark/nilclass.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-benchmark:
- to_i: |
- nil.to_i
- to_f: |
- nil.to_f
-loop_count: 100000
diff --git a/benchmark/num_zero_p.yml b/benchmark/num_zero_p.yml
deleted file mode 100644
index 2195963433..0000000000
--- a/benchmark/num_zero_p.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-benchmark:
- - 0.zero?
- - 1.zero?
- - 0r.zero?
- - 1r.zero?
- - 0i.zero?
- - 1i.zero?
-loop_count: 50000000
diff --git a/benchmark/numeric_methods.yml b/benchmark/numeric_methods.yml
deleted file mode 100644
index 433c2268a3..0000000000
--- a/benchmark/numeric_methods.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-prelude: |
- int = 42
- flo = 4.2
-benchmark:
- real?: |
- int.real?
- integer?: |
- flo.integer?
- finite?: |
- int.finite?
- infinite?: |
- int.infinite?
-loop_count: 20000000
diff --git a/benchmark/object_allocate.yml b/benchmark/object_allocate.yml
deleted file mode 100644
index 93ff463e41..0000000000
--- a/benchmark/object_allocate.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-prelude: |
- class Eight
- 8.times { include(Module.new) }
- end
- class ThirtyTwo
- 32.times { include(Module.new) }
- end
- class SixtyFour
- 64.times { include(Module.new) }
- end
- class OneTwentyEight
- 128.times { include(Module.new) }
- end
- # Disable GC to see raw throughput:
- GC.disable
-benchmark:
- allocate_8_deep: Eight.new
- allocate_32_deep: ThirtyTwo.new
- allocate_64_deep: SixtyFour.new
- allocate_128_deep: OneTwentyEight.new
-loop_count: 100000
diff --git a/benchmark/objspace_dump_all.yml b/benchmark/objspace_dump_all.yml
deleted file mode 100644
index ebab562d2e..0000000000
--- a/benchmark/objspace_dump_all.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-prelude: |
- require 'objspace'
- require 'tempfile'
- $objs = 1_000.times.map { Object.new }
- $strings = 1_000.times.map { |i| "string #{i}" }
- $file = Tempfile.new('heap')
- $dev_null = File.open(File::NULL, 'w+')
-
-benchmark:
- dump_all_string: "ObjectSpace.dump_all(output: :string)"
- dump_all_file: "ObjectSpace.dump_all(output: $file)"
- dump_all_dev_null: "ObjectSpace.dump_all(output: $dev_null)"
-loop_count: 1
diff --git a/benchmark/other-lang/ack.pl b/benchmark/other-lang/ack.pl
deleted file mode 100644
index 201e22ddfa..0000000000
--- a/benchmark/other-lang/ack.pl
+++ /dev/null
@@ -1,11 +0,0 @@
-use integer;
-
-sub Ack {
- return $_[0] ? ($_[1] ? Ack($_[0]-1, Ack($_[0], $_[1]-1))
- : Ack($_[0]-1, 1))
- : $_[1]+1;
-}
-
-my $NUM = 9;
-$NUM = 1 if ($NUM < 1);
-my $ack = Ack(3, $NUM);
diff --git a/benchmark/other-lang/ack.py b/benchmark/other-lang/ack.py
deleted file mode 100644
index 9968e7cfcf..0000000000
--- a/benchmark/other-lang/ack.py
+++ /dev/null
@@ -1,16 +0,0 @@
-import sys
-sys.setrecursionlimit(5000000)
-
-def Ack(M, N):
- if (not M):
- return( N + 1 )
- if (not N):
- return( Ack(M-1, 1) )
- return( Ack(M-1, Ack(M, N-1)) )
-
-def main():
- NUM = 9
- sys.setrecursionlimit(10000)
- Ack(3, NUM)
-
-main()
diff --git a/benchmark/other-lang/ack.rb b/benchmark/other-lang/ack.rb
deleted file mode 100644
index 7451bed6c4..0000000000
--- a/benchmark/other-lang/ack.rb
+++ /dev/null
@@ -1,12 +0,0 @@
-def ack(m, n)
- if m == 0 then
- n + 1
- elsif n == 0 then
- ack(m - 1, 1)
- else
- ack(m - 1, ack(m, n - 1))
- end
-end
-
-NUM = 9
-ack(3, NUM)
diff --git a/benchmark/other-lang/ack.scm b/benchmark/other-lang/ack.scm
deleted file mode 100644
index a80b73ba55..0000000000
--- a/benchmark/other-lang/ack.scm
+++ /dev/null
@@ -1,7 +0,0 @@
-(define (ack m n)
- (cond ((zero? m) (+ n 1))
- ((zero? n) (ack (- m 1) 1))
- (else (ack (- m 1) (ack m (- n 1))))))
-
-(ack 3 9)
-
diff --git a/benchmark/other-lang/eval.rb b/benchmark/other-lang/eval.rb
deleted file mode 100644
index 48a2cea019..0000000000
--- a/benchmark/other-lang/eval.rb
+++ /dev/null
@@ -1,66 +0,0 @@
-
-Bench = %w(
- loop
- ack
- fib
- tak
- fact
-)
-
-Lang = <<EOP.map{|l| l.strip}
- ruby-cyg
- ../../../test6/miniruby
- perl
- python
- gosh
-EOP
-
-Bench.replace ['loop2']
-Lang.replace ['ruby-cyg']
-
-Ext = %w(
- .rb
- .rb
- .pl
- .py
- .scm
-)
-
-p Bench
-p Lang
-
-require 'benchmark'
-
-def bench cmd
- m = Benchmark.measure{
- #p cmd
- system(cmd)
- }
- [m.utime, m.real]
-end
-
-Result = []
-Bench.each{|b|
- r = []
- Lang.each_with_index{|l, idx|
- cmd = "#{l} #{b}#{Ext[idx]}"
- r << bench(cmd)
- }
- Result << r
-}
-
-require 'pp'
-# utime
-puts Lang.join("\t")
-Bench.each_with_index{|b, bi|
- print b, "\t"
- puts Result[bi].map{|e| e[0]}.join("\t")
-}
-
-# rtime
-puts Lang.join("\t")
-Bench.each_with_index{|b, bi|
- print b, "\t"
- puts Result[bi].map{|e| e[1]}.join("\t")
-}
-
diff --git a/benchmark/other-lang/fact.pl b/benchmark/other-lang/fact.pl
deleted file mode 100644
index a9b0b69cdf..0000000000
--- a/benchmark/other-lang/fact.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-sub fact{
- my $n = @_[0];
- if($n < 2){
- return 1;
- }
- else{
- return $n * fact($n-1);
- }
-}
-
-for($i=0; $i<10000; $i++){
- &fact(100);
-}
diff --git a/benchmark/other-lang/fact.py b/benchmark/other-lang/fact.py
deleted file mode 100644
index 1ce9f76275..0000000000
--- a/benchmark/other-lang/fact.py
+++ /dev/null
@@ -1,18 +0,0 @@
-#import sys
-#sys.setrecursionlimit(1000)
-
-def factL(n):
- r = 1
- for x in range(2, n+1):
- r *= x
- return r
-
-def factR(n):
- if n < 2:
- return 1
- else:
- return n * factR(n-1)
-
-for i in range(10000):
- factR(100)
-
diff --git a/benchmark/other-lang/fact.rb b/benchmark/other-lang/fact.rb
deleted file mode 100644
index 6cedc752cd..0000000000
--- a/benchmark/other-lang/fact.rb
+++ /dev/null
@@ -1,13 +0,0 @@
-def fact(n)
- if n < 2
- 1
- else
- n * fact(n-1)
- end
-end
-
-i = 0
-while i<10000
- i += 1
- fact(100)
-end
diff --git a/benchmark/other-lang/fact.scm b/benchmark/other-lang/fact.scm
deleted file mode 100644
index c98a7fedd3..0000000000
--- a/benchmark/other-lang/fact.scm
+++ /dev/null
@@ -1,8 +0,0 @@
-(define (fact n)
- (if (< n 2)
- 1
- (* n (fact (- n 1)))))
-
-(dotimes (i 10000)
- (fact 100))
-
diff --git a/benchmark/other-lang/fib.pl b/benchmark/other-lang/fib.pl
deleted file mode 100644
index a46f666d1e..0000000000
--- a/benchmark/other-lang/fib.pl
+++ /dev/null
@@ -1,11 +0,0 @@
-sub fib{
- my $n = $_[0];
- if($n < 3){
- return 1;
- }
- else{
- return fib($n-1) + fib($n-2);
- }
-};
-
-&fib(34);
diff --git a/benchmark/other-lang/fib.py b/benchmark/other-lang/fib.py
deleted file mode 100644
index 45f2bceb8d..0000000000
--- a/benchmark/other-lang/fib.py
+++ /dev/null
@@ -1,7 +0,0 @@
-def fib(n):
- if n < 3:
- return 1
- else:
- return fib(n-1) + fib(n-2)
-
-fib(34)
diff --git a/benchmark/other-lang/fib.rb b/benchmark/other-lang/fib.rb
deleted file mode 100644
index ec587eabe0..0000000000
--- a/benchmark/other-lang/fib.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-def fib n
- if n < 3
- 1
- else
- fib(n-1) + fib(n-2)
- end
-end
-
-fib(34)
diff --git a/benchmark/other-lang/fib.scm b/benchmark/other-lang/fib.scm
deleted file mode 100644
index 2fc4e225bd..0000000000
--- a/benchmark/other-lang/fib.scm
+++ /dev/null
@@ -1,7 +0,0 @@
-(define (fib n)
- (if (< n 3)
- 1
- (+ (fib (- n 1)) (fib (- n 2)))))
-
-(fib 34)
-
diff --git a/benchmark/other-lang/loop.pl b/benchmark/other-lang/loop.pl
deleted file mode 100644
index 2777490aaa..0000000000
--- a/benchmark/other-lang/loop.pl
+++ /dev/null
@@ -1,3 +0,0 @@
-for($i=0; $i<30000000; $i++){
-}
-
diff --git a/benchmark/other-lang/loop.py b/benchmark/other-lang/loop.py
deleted file mode 100644
index 003749bf3a..0000000000
--- a/benchmark/other-lang/loop.py
+++ /dev/null
@@ -1,2 +0,0 @@
-for i in xrange(30000000):
- pass
diff --git a/benchmark/other-lang/loop.rb b/benchmark/other-lang/loop.rb
deleted file mode 100644
index b367b9dbf3..0000000000
--- a/benchmark/other-lang/loop.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-i = 0
-while i<30000000
- i += 1
-end
diff --git a/benchmark/other-lang/loop.scm b/benchmark/other-lang/loop.scm
deleted file mode 100644
index 3364f7e679..0000000000
--- a/benchmark/other-lang/loop.scm
+++ /dev/null
@@ -1 +0,0 @@
-(dotimes (x 30000000))
diff --git a/benchmark/other-lang/loop2.rb b/benchmark/other-lang/loop2.rb
deleted file mode 100644
index df8fffc1ff..0000000000
--- a/benchmark/other-lang/loop2.rb
+++ /dev/null
@@ -1 +0,0 @@
-30000000.times{}
diff --git a/benchmark/other-lang/tak.pl b/benchmark/other-lang/tak.pl
deleted file mode 100644
index 7e748a67c6..0000000000
--- a/benchmark/other-lang/tak.pl
+++ /dev/null
@@ -1,11 +0,0 @@
-sub tak {
- local($x, $y, $z) = @_;
- if (!($y < $x)) {
- return $z;
- } else {
- return &tak(&tak($x - 1, $y, $z),
- &tak($y - 1, $z, $x),
- &tak($z - 1, $x, $y));
- }
-}
-&tak(18, 9, 0);
diff --git a/benchmark/other-lang/tak.py b/benchmark/other-lang/tak.py
deleted file mode 100644
index 04f3f6829c..0000000000
--- a/benchmark/other-lang/tak.py
+++ /dev/null
@@ -1,8 +0,0 @@
-def tak(x, y, z):
- if not(y<x):
- return z
- else:
- return tak(tak(x-1, y, z),
- tak(y-1, z, x),
- tak(z-1, x, y))
-tak(18, 9, 0)
diff --git a/benchmark/other-lang/tak.rb b/benchmark/other-lang/tak.rb
deleted file mode 100644
index efe5380f4e..0000000000
--- a/benchmark/other-lang/tak.rb
+++ /dev/null
@@ -1,13 +0,0 @@
-
-def tak x, y, z
- unless y < x
- z
- else
- tak( tak(x-1, y, z),
- tak(y-1, z, x),
- tak(z-1, x, y))
- end
-end
-
-tak(18, 9, 0)
-
diff --git a/benchmark/other-lang/tak.scm b/benchmark/other-lang/tak.scm
deleted file mode 100644
index 52a7629ee5..0000000000
--- a/benchmark/other-lang/tak.scm
+++ /dev/null
@@ -1,10 +0,0 @@
-(define (tak x y z)
- (if (not (< y x))
- z
- (tak (tak (- x 1) y z)
- (tak (- y 1) z x)
- (tak (- z 1) x y))))
-
-(tak 18 9 0)
-
-
diff --git a/benchmark/pm_array.yml b/benchmark/pm_array.yml
deleted file mode 100644
index babb65a289..0000000000
--- a/benchmark/pm_array.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-prelude: |
- def call(*val)
- case val
- in [String => body]
- [200, {}, [body]]
- in [Integer => status]
- [status, {}, [""]]
- in [Integer, String] => response
- [response[0], {}, [response[1]]]
- in [Integer, Hash, String] => response
- [response[0], response[1], [response[2]]]
- end
- end
-
-benchmark:
- first_match: call("ok")
- second_match: call(401)
- third_match: call(200, "ok")
- fourth_match: call(201, {}, "created")
diff --git a/benchmark/ractor_const.yml b/benchmark/ractor_const.yml
deleted file mode 100644
index d7ab74bdca..0000000000
--- a/benchmark/ractor_const.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-type: lib/benchmark_driver/runner/ractor
-benchmark:
- ractor_const: Object
-ractor: 1
diff --git a/benchmark/ractor_float_to_s.yml b/benchmark/ractor_float_to_s.yml
deleted file mode 100644
index 8f492be668..0000000000
--- a/benchmark/ractor_float_to_s.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-type: lib/benchmark_driver/runner/ractor
-prelude: |
- FLOATS = [*0.0.step(1.0, 0.001)]
-benchmark:
- ractor_float_to_s: |
- FLOATS.each {|f| f.to_s}
-loop_count: 100
-ractor: 2
diff --git a/benchmark/range_last.yml b/benchmark/range_last.yml
deleted file mode 100644
index a6674f82ee..0000000000
--- a/benchmark/range_last.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-benchmark:
- - (1..1_000_000).last(100)
- - (1..1_000_000).last(1000)
- - (1..1_000_000).last(10000)
diff --git a/benchmark/realpath.yml b/benchmark/realpath.yml
deleted file mode 100644
index 90a029d5b9..0000000000
--- a/benchmark/realpath.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-prelude: |
- f = File
- pwd = Dir.pwd
- Dir.mkdir('b') unless f.directory?('b')
- f.write('b/a', '') unless f.file?('b/a')
-
- relative = 'b/a'
- absolute = File.join(pwd, relative)
- dir = 'b'
- file = 'a'
-
- relative_dir = 'b/c'
- absolute_dir = File.join(pwd, relative_dir)
- file_dir = 'c'
-benchmark:
- relative_nil: "f.realpath(relative, nil)"
- absolute_nil: "f.realpath(absolute, nil)"
- relative_relative: "f.realpath(file, dir)"
- absolute_relative: "f.realpath(absolute, dir)"
- relative_absolute: "f.realpath(relative, pwd)"
- relative_nil_dir: "f.realdirpath(relative_dir, nil)"
- absolute_nil_dir: "f.realdirpath(absolute_dir, nil)"
- relative_relative_dir: "f.realdirpath(file_dir, dir)"
- absolute_relative_dir: "f.realdirpath(absolute_dir, dir)"
- relative_absolute_dir: "f.realdirpath(relative_dir, pwd)"
- relative_nil_notexist: "f.realpath(relative_dir, nil) rescue nil"
- absolute_nil_notexist: "f.realpath(absolute_dir, nil) rescue nil"
- relative_relative_notexist: "f.realpath(file_dir, dir) rescue nil"
- absolute_relative_notexist: "f.realpath(absolute_dir, dir) rescue nil"
- relative_absolute_notexist: "f.realpath(relative_dir, pwd) rescue nil"
diff --git a/benchmark/require.yml b/benchmark/require.yml
deleted file mode 100644
index 09f218cf08..0000000000
--- a/benchmark/require.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-prelude: |
- require "fileutils"
-
- def prepare
- num_files = 10000
-
- basename = File.dirname($0)
- data_dir = File.join(basename, "bm_require.data")
-
- # skip if all of files exists
- if File.exist?(File.join(data_dir, "c#{num_files}.rb"))
- return
- end
-
- FileUtils.mkdir_p(data_dir)
-
- 1.upto(num_files) do |i|
- File.write("#{data_dir}/c#{i}.rb", "class C#{i}\n""end\n")
- end
- end
-
- prepare
-benchmark:
- require: |
- $:.push File.join(File.dirname(__FILE__), "bm_require.data")
-
- 1.upto(10000) do |i|
- require "c#{i}"
- end
-
- $:.pop
-loop_count: 1
diff --git a/benchmark/require_thread.yml b/benchmark/require_thread.yml
deleted file mode 100644
index 0c63257106..0000000000
--- a/benchmark/require_thread.yml
+++ /dev/null
@@ -1,40 +0,0 @@
-prelude: |
- require "fileutils"
-
- def prepare
- num_files = 10000
-
- basename = File.dirname($0)
- data_dir = File.join(basename, "bm_require.data")
-
- # skip if all of files exists
- if File.exist?(File.join(data_dir, "c#{num_files}.rb"))
- return
- end
-
- FileUtils.mkdir_p(data_dir)
-
- 1.upto(num_files) do |i|
- File.write("#{data_dir}/c#{i}.rb", "class C#{i}\n""end\n")
- end
- end
-
- prepare
-benchmark:
- require_thread: |
- $:.push File.join(File.dirname(__FILE__), "bm_require.data")
-
- i=0
- t = Thread.new do
- while true
- i = i+1 # dummy loop
- end
- end
-
- 1.upto(100) do |i|
- require "c#{i}"
- end
-
- $:.pop
- t.kill
-loop_count: 1
diff --git a/benchmark/securerandom.rb b/benchmark/securerandom.rb
deleted file mode 100644
index a082ea6d5b..0000000000
--- a/benchmark/securerandom.rb
+++ /dev/null
@@ -1,5 +0,0 @@
-require "securerandom"
-
-20_0000.times do
- SecureRandom.random_number(100)
-end
diff --git a/benchmark/so_ackermann.rb b/benchmark/so_ackermann.rb
deleted file mode 100644
index 4effa1ecaf..0000000000
--- a/benchmark/so_ackermann.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/usr/bin/ruby
-# -*- Ruby -*-
-# $Id: ackermann-ruby.code,v 1.4 2004/11/13 07:40:41 bfulgham Exp $
-# http://www.bagley.org/~doug/shootout/
-
-def ack(m, n)
- if m == 0 then
- n + 1
- elsif n == 0 then
- ack(m - 1, 1)
- else
- ack(m - 1, ack(m, n - 1))
- end
-end
-
-NUM = 9
-ack(3, NUM)
-
-
diff --git a/benchmark/so_array.rb b/benchmark/so_array.rb
deleted file mode 100644
index 767e03db5f..0000000000
--- a/benchmark/so_array.rb
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/usr/bin/ruby
-# -*- Ruby -*-
-# $Id: ary-ruby.code,v 1.4 2004/11/13 07:41:27 bfulgham Exp $
-# http://www.bagley.org/~doug/shootout/
-# with help from Paul Brannan and Mark Hubbart
-
-n = 9000 # Integer(ARGV.shift || 1)
-
-x = Array.new(n)
-y = Array.new(n, 0)
-
-n.times{|bi|
- x[bi] = bi + 1
-}
-
-(0 .. 999).each do |e|
- (n-1).step(0,-1) do |bi|
- y[bi] += x.at(bi)
- end
-end
-# puts "#{y.first} #{y.last}"
-
-
diff --git a/benchmark/so_binary_trees.rb b/benchmark/so_binary_trees.rb
deleted file mode 100644
index b1693e4109..0000000000
--- a/benchmark/so_binary_trees.rb
+++ /dev/null
@@ -1,62 +0,0 @@
-# The Computer Language Shootout Benchmarks
-# http://shootout.alioth.debian.org
-#
-# contributed by Jesse Millikan
-
-# disable output
-alias puts_orig puts
-def puts str
- # disable puts
-end
-
-def item_check(tree)
- if tree[0] == nil
- tree[1]
- else
- tree[1] + item_check(tree[0]) - item_check(tree[2])
- end
-end
-
-def bottom_up_tree(item, depth)
- if depth > 0
- item_item = 2 * item
- depth -= 1
- [bottom_up_tree(item_item - 1, depth), item, bottom_up_tree(item_item, depth)]
- else
- [nil, item, nil]
- end
-end
-
-max_depth = 16 # ARGV[0].to_i
-min_depth = 4
-
-max_depth = min_depth + 2 if min_depth + 2 > max_depth
-
-stretch_depth = max_depth + 1
-stretch_tree = bottom_up_tree(0, stretch_depth)
-
-puts "stretch tree of depth #{stretch_depth}\t check: #{item_check(stretch_tree)}"
-stretch_tree = nil
-
-long_lived_tree = bottom_up_tree(0, max_depth)
-
-min_depth.step(max_depth + 1, 2) do |depth|
- iterations = 2**(max_depth - depth + min_depth)
-
- check = 0
-
- for i in 1..iterations
- temp_tree = bottom_up_tree(i, depth)
- check += item_check(temp_tree)
-
- temp_tree = bottom_up_tree(-i, depth)
- check += item_check(temp_tree)
- end
-
- puts "#{iterations * 2}\t trees of depth #{depth}\t check: #{check}"
-end
-
-puts "long lived tree of depth #{max_depth}\t check: #{item_check(long_lived_tree)}"
-
-undef puts
-alias puts puts_orig
diff --git a/benchmark/so_concatenate.rb b/benchmark/so_concatenate.rb
deleted file mode 100644
index 4468e20ac8..0000000000
--- a/benchmark/so_concatenate.rb
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/ruby
-# -*- Ruby -*-
-# $Id: strcat-ruby.code,v 1.4 2004/11/13 07:43:28 bfulgham Exp $
-# http://www.bagley.org/~doug/shootout/
-# based on code from Aristarkh A Zagorodnikov and Dat Nguyen
-
-STUFF = "hello\n"
-i = 0
-while i<10
- i += 1
- hello = ''
- 4_000_000.times do |e|
- hello << STUFF
- end
-end
-# puts hello.length
-
-
diff --git a/benchmark/so_count_words.yml b/benchmark/so_count_words.yml
deleted file mode 100644
index 99683505f9..0000000000
--- a/benchmark/so_count_words.yml
+++ /dev/null
@@ -1,65 +0,0 @@
-prelude: |
- #!/usr/bin/ruby
-
- wc_input_base = <<EOS
- Subject: Re: Who was Izchak Miller?
- From: "Jane D. Anonymous" <nobody@yale.edu>
- Date: 1996/04/28
- Message-Id: <4lv7bc$oh@news.ycc.yale.edu>
- References: <317C405E.5DFA@panix.com> <4lk6vl$gde@ns.oar.net>
- To: 75176.2330@compuserve.com
- Content-Type: text/plain; charset=us-ascii
- Organization: Yale University
- X-Url: news:4lk6vl$gde@ns.oar.net
- Mime-Version: 1.0
- Newsgroups: rec.games.roguelike.nethack
- X-Mailer: Mozilla 1.1N (Macintosh; I; 68K)
-
- Hello there, Izchak Miller was my father. When I was younger I spent
- many a night, hunched over the keyboard with a cup of tea, playing
- nethack with him and my brother. my dad was a philosopher with a strong
- weakness for fantasy/sci fi. I remember when he started to get involved
- with the Nethack team- my brother's Dungeons and Dragons monster book
- found a regular place beside my dad's desk. it's nice to see him living
- on in the game he loved so much :-).
- Tamar Miller
-
- The following is a really long word of 5000 characters:
-
- wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
- EOS
-
- # prepare 'wc.input'
-
- def prepare_wc_input(wcbase)
- wcinput = File.join(File.dirname($0), 'wc.input')
- unless FileTest.exist?(wcinput)
- data = wcbase.dup
- 13.times{
- data << data
- }
- open(wcinput, 'w'){|f| f.write data}
- end
- end
-
- prepare_wc_input(wc_input_base)
-
-benchmark:
- so_count_words: |
- # $Id: wc-ruby.code,v 1.4 2004/11/13 07:43:32 bfulgham Exp $
- # http://www.bagley.org/~doug/shootout/
- # with help from Paul Brannan
- input = open(File.join(File.dirname($0), 'wc.input'), 'rb')
-
- nl = nw = nc = 0
- while true
- tmp = input.read(4096) or break
- data = tmp << (input.gets || "")
- nc += data.length
- nl += data.count("\n")
- ((data.strip! || data).tr!("\n", " ") || data).squeeze!
- nw += data.count(" ") + 1
- end
- # STDERR.puts "#{nl} #{nw} #{nc}"
-
-loop_count: 1
diff --git a/benchmark/so_exception.rb b/benchmark/so_exception.rb
deleted file mode 100644
index eb205b4df1..0000000000
--- a/benchmark/so_exception.rb
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/usr/bin/ruby
-# -*- Ruby -*-
-# $Id: except-ruby.code,v 1.4 2004/11/13 07:41:33 bfulgham Exp $
-# http://www.bagley.org/~doug/shootout/
-
-$HI = 0
-$LO = 0
-NUM = 250000 # Integer(ARGV[0] || 1)
-
-
-class Lo_Exception < Exception
- def initialize(num)
- @value = num
- end
-end
-
-class Hi_Exception < Exception
- def initialize(num)
- @value = num
- end
-end
-
-def some_function(num)
- begin
- hi_function(num)
- rescue
- print "We shouldn't get here, exception is: #{$!.type}\n"
- end
-end
-
-def hi_function(num)
- begin
- lo_function(num)
- rescue Hi_Exception
- $HI = $HI + 1
- end
-end
-
-def lo_function(num)
- begin
- blowup(num)
- rescue Lo_Exception
- $LO = $LO + 1
- end
-end
-
-def blowup(num)
- if num % 2 == 0
- raise Lo_Exception.new(num)
- else
- raise Hi_Exception.new(num)
- end
-end
-
-
-i = 1
-max = NUM+1
-while i < max
- i += 1
- some_function(i+1)
-end
diff --git a/benchmark/so_fannkuch.rb b/benchmark/so_fannkuch.rb
deleted file mode 100644
index bac5ecd44c..0000000000
--- a/benchmark/so_fannkuch.rb
+++ /dev/null
@@ -1,45 +0,0 @@
-# The Computer Language Shootout
-# http://shootout.alioth.debian.org/
-# Contributed by Sokolov Yura
-# Modified by Ryan Williams
-
-def fannkuch(n)
- maxFlips, m, r, check = 0, n-1, n, 0
- count = (1..n).to_a
- perm = (1..n).to_a
-
- while true
- if check < 30
- puts "#{perm}"
- check += 1
- end
-
- while r != 1
- count[r-1] = r
- r -= 1
- end
-
- if perm[0] != 1 and perm[m] != n
- perml = perm.clone #.dup
- flips = 0
- while (k = perml.first ) != 1
- perml = perml.slice!(0, k).reverse + perml
- flips += 1
- end
- maxFlips = flips if flips > maxFlips
- end
- while true
- if r==n then return maxFlips end
- perm.insert r,perm.shift
- break if (count[r] -= 1) > 0
- r += 1
- end
- end
-end
-
-def puts *args
-end
-
-N = 9 # (ARGV[0] || 1).to_i
-puts "Pfannkuchen(#{N}) = #{fannkuch(N)}"
-
diff --git a/benchmark/so_fasta.rb b/benchmark/so_fasta.rb
deleted file mode 100644
index dcc6b39507..0000000000
--- a/benchmark/so_fasta.rb
+++ /dev/null
@@ -1,81 +0,0 @@
-# The Computer Language Shootout
-# http://shootout.alioth.debian.org/
-# Contributed by Sokolov Yura
-
-$last = 42.0
-def gen_random(max, im=139968, ia=3877, ic=29573)
- (max * ($last = ($last * ia + ic) % im)) / im
-end
-
-alu =
- "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGG"+
- "GAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGA"+
- "CCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAAT"+
- "ACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA"+
- "GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG"+
- "AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC"+
- "AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA"
-
-iub = [
- ["a", 0.27],
- ["c", 0.12],
- ["g", 0.12],
- ["t", 0.27],
-
- ["B", 0.02],
- ["D", 0.02],
- ["H", 0.02],
- ["K", 0.02],
- ["M", 0.02],
- ["N", 0.02],
- ["R", 0.02],
- ["S", 0.02],
- ["V", 0.02],
- ["W", 0.02],
- ["Y", 0.02],
-]
-homosapiens = [
- ["a", 0.3029549426680],
- ["c", 0.1979883004921],
- ["g", 0.1975473066391],
- ["t", 0.3015094502008],
-]
-
-def make_repeat_fasta(id, desc, src, n)
- puts ">#{id} #{desc}"
- v = nil
- width = 60
- l = src.length
- s = src * ((n / l) + 1)
- s.slice!(n, l)
- puts(s.scan(/.{1,#{width}}/).join("\n"))
-end
-
-def make_random_fasta(id, desc, table, n)
- puts ">#{id} #{desc}"
- rand, v = nil,nil
- width = 60
- chunk = 1 * width
- prob = 0.0
- table.each{|v| v[1]= (prob += v[1])}
- for i in 1..(n/width)
- puts((1..width).collect{
- rand = gen_random(1.0)
- table.find{|v| v[1]>rand}[0]
- }.join)
- end
- if n%width != 0
- puts((1..(n%width)).collect{
- rand = gen_random(1.0)
- table.find{|v| v[1]>rand}[0]
- }.join)
- end
-end
-
-
-n = (ARGV[0] or 250_000).to_i
-
-make_repeat_fasta('ONE', 'Homo sapiens alu', alu, n*2)
-make_random_fasta('TWO', 'IUB ambiguity codes', iub, n*3)
-make_random_fasta('THREE', 'Homo sapiens frequency', homosapiens, n*5)
-
diff --git a/benchmark/so_k_nucleotide.yml b/benchmark/so_k_nucleotide.yml
deleted file mode 100644
index d7df086c39..0000000000
--- a/benchmark/so_k_nucleotide.yml
+++ /dev/null
@@ -1,155 +0,0 @@
-prelude: |
- bm_so_fasta = <<'EOS'
- # The Computer Language Shootout
- # http://shootout.alioth.debian.org/
- # Contributed by Sokolov Yura
-
- $last = 42.0
- def gen_random(max, im=139968, ia=3877, ic=29573)
- (max * ($last = ($last * ia + ic) % im)) / im
- end
-
- alu =
- "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGG"+
- "GAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGA"+
- "CCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAAT"+
- "ACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA"+
- "GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG"+
- "AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC"+
- "AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA"
-
- iub = [
- ["a", 0.27],
- ["c", 0.12],
- ["g", 0.12],
- ["t", 0.27],
-
- ["B", 0.02],
- ["D", 0.02],
- ["H", 0.02],
- ["K", 0.02],
- ["M", 0.02],
- ["N", 0.02],
- ["R", 0.02],
- ["S", 0.02],
- ["V", 0.02],
- ["W", 0.02],
- ["Y", 0.02],
- ]
- homosapiens = [
- ["a", 0.3029549426680],
- ["c", 0.1979883004921],
- ["g", 0.1975473066391],
- ["t", 0.3015094502008],
- ]
-
- def make_repeat_fasta(id, desc, src, n)
- puts ">#{id} #{desc}"
- v = nil
- width = 60
- l = src.length
- s = src * ((n / l) + 1)
- s.slice!(n, l)
- puts(s.scan(/.{1,#{width}}/).join("\n"))
- end
-
- def make_random_fasta(id, desc, table, n)
- puts ">#{id} #{desc}"
- rand, v = nil,nil
- width = 60
- chunk = 1 * width
- prob = 0.0
- table.each{|v| v[1]= (prob += v[1])}
- for i in 1..(n/width)
- puts((1..width).collect{
- rand = gen_random(1.0)
- table.find{|v| v[1]>rand}[0]
- }.join)
- end
- if n%width != 0
- puts((1..(n%width)).collect{
- rand = gen_random(1.0)
- table.find{|v| v[1]>rand}[0]
- }.join)
- end
- end
-
-
- n = (ARGV[0] or 250_000).to_i
-
- make_repeat_fasta('ONE', 'Homo sapiens alu', alu, n*2)
- make_random_fasta('TWO', 'IUB ambiguity codes', iub, n*3)
- make_random_fasta('THREE', 'Homo sapiens frequency', homosapiens, n*5)
- EOS
-benchmark:
- - name: so_k_nucleotide
- prelude: |
- script = File.join(File.dirname($0), 'bm_so_fasta.rb')
- File.write(script, bm_so_fasta)
-
- def prepare_fasta_output n
- filebase = File.join(File.dirname($0), 'fasta.output')
- script = File.join(File.dirname($0), 'bm_so_fasta.rb')
- file = "#{filebase}.#{n}"
-
- unless FileTest.exist?(file)
- STDERR.puts "preparing #{file}"
-
- open(file, 'w'){|f|
- ARGV[0] = n
- $stdout = f
- load script
- $stdout = STDOUT
- }
- end
- end
- prepare_fasta_output(100_000)
- script: |
- # The Computer Language Shootout
- # http://shootout.alioth.debian.org
- #
- # contributed by jose fco. gonzalez
- # modified by Sokolov Yura
-
- seq = String.new
-
- def frecuency( seq,length )
- n, table = seq.length - length + 1, Hash.new(0)
- f, i = nil, nil
- (0 ... length).each do |f|
- (f ... n).step(length) do |i|
- table[seq[i,length]] += 1
- end
- end
- [n,table]
-
- end
-
- def sort_by_freq( seq,length )
- n,table = frecuency( seq,length )
- a, b, v = nil, nil, nil
- table.sort{|a,b| b[1] <=> a[1]}.each do |v|
- puts "%s %.3f" % [v[0].upcase,((v[1]*100).to_f/n)]
- end
- puts
- end
-
- def find_seq( seq,s )
- n,table = frecuency( seq,s.length )
- puts "#{table[s].to_s}\t#{s.upcase}"
- end
-
- input = open(File.join(File.dirname($0), 'fasta.output.100000'), 'rb')
-
- line = input.gets while line !~ /^>THREE/
- line = input.gets
-
- while (line !~ /^>/) & line do
- seq << line.chomp
- line = input.gets
- end
-
- [1,2].each {|i| sort_by_freq( seq,i ) }
-
- %w(ggt ggta ggtatt ggtattttaatt ggtattttaatttatagt).each{|s| find_seq( seq,s) }
- loop_count: 1
diff --git a/benchmark/so_lists.rb b/benchmark/so_lists.rb
deleted file mode 100644
index e8f4a2a5f7..0000000000
--- a/benchmark/so_lists.rb
+++ /dev/null
@@ -1,47 +0,0 @@
-#from http://www.bagley.org/~doug/shootout/bench/lists/lists.ruby
-
-NUM = 300
-SIZE = 10000
-
-def test_lists()
- # create a list of integers (Li1) from 1 to SIZE
- li1 = (1..SIZE).to_a
- # copy the list to li2 (not by individual items)
- li2 = li1.dup
- # remove each individual item from left side of li2 and
- # append to right side of li3 (preserving order)
- li3 = Array.new
- while (not li2.empty?)
- li3.push(li2.shift)
- end
- # li2 must now be empty
- # remove each individual item from right side of li3 and
- # append to right side of li2 (reversing list)
- while (not li3.empty?)
- li2.push(li3.pop)
- end
- # li3 must now be empty
- # reverse li1 in place
- li1.reverse!
- # check that first item is now SIZE
- if li1[0] != SIZE then
- p "not SIZE"
- 0
- else
- # compare li1 and li2 for equality
- if li1 != li2 then
- return(0)
- else
- # return the length of the list
- li1.length
- end
- end
-end
-
-i = 0
-while i<NUM
- i += 1
- result = test_lists()
-end
-
-result
diff --git a/benchmark/so_mandelbrot.rb b/benchmark/so_mandelbrot.rb
deleted file mode 100644
index 76331c64b8..0000000000
--- a/benchmark/so_mandelbrot.rb
+++ /dev/null
@@ -1,57 +0,0 @@
-# The Computer Language Benchmarks Game
-# http://shootout.alioth.debian.org/
-#
-# contributed by Karl von Laudermann
-# modified by Jeremy Echols
-
-size = 600 # ARGV[0].to_i
-
-puts "P4\n#{size} #{size}"
-
-ITER = 49 # Iterations - 1 for easy for..in looping
-LIMIT_SQUARED = 4.0 # Presquared limit
-
-byte_acc = 0
-bit_num = 0
-
-count_size = size - 1 # Precomputed size for easy for..in looping
-
-# For..in loops are faster than .upto, .downto, .times, etc.
-for y in 0..count_size
- for x in 0..count_size
- zr = 0.0
- zi = 0.0
- cr = (2.0*x/size)-1.5
- ci = (2.0*y/size)-1.0
- escape = false
-
- # To make use of the for..in code, we use a dummy variable,
- # like one would in C
- for dummy in 0..ITER
- tr = zr*zr - zi*zi + cr
- ti = 2*zr*zi + ci
- zr, zi = tr, ti
-
- if (zr*zr+zi*zi) > LIMIT_SQUARED
- escape = true
- break
- end
- end
-
- byte_acc = (byte_acc << 1) | (escape ? 0b0 : 0b1)
- bit_num += 1
-
- # Code is very similar for these cases, but using separate blocks
- # ensures we skip the shifting when it's unnecessary, which is most cases.
- if (bit_num == 8)
- print byte_acc.chr
- byte_acc = 0
- bit_num = 0
- elsif (x == count_size)
- byte_acc <<= (8 - bit_num)
- print byte_acc.chr
- byte_acc = 0
- bit_num = 0
- end
- end
-end
diff --git a/benchmark/so_matrix.rb b/benchmark/so_matrix.rb
deleted file mode 100644
index 2d1e72bda9..0000000000
--- a/benchmark/so_matrix.rb
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/usr/bin/ruby
-# -*- Ruby -*-
-# $Id: matrix-ruby.code,v 1.4 2004/11/13 07:42:14 bfulgham Exp $
-# http://www.bagley.org/~doug/shootout/
-
-n = 60 #Integer(ARGV.shift || 1)
-
-size = 40
-
-def mkmatrix(rows, cols)
- count = 1
- mx = Array.new(rows)
- (0 .. (rows - 1)).each do |bi|
- row = Array.new(cols, 0)
- (0 .. (cols - 1)).each do |j|
- row[j] = count
- count += 1
- end
- mx[bi] = row
- end
- mx
-end
-
-def mmult(rows, cols, m1, m2)
- m3 = Array.new(rows)
- (0 .. (rows - 1)).each do |bi|
- row = Array.new(cols, 0)
- (0 .. (cols - 1)).each do |j|
- val = 0
- (0 .. (cols - 1)).each do |k|
- val += m1.at(bi).at(k) * m2.at(k).at(j)
- end
- row[j] = val
- end
- m3[bi] = row
- end
- m3
-end
-
-m1 = mkmatrix(size, size)
-m2 = mkmatrix(size, size)
-mm = Array.new
-n.times do
- mm = mmult(size, size, m1, m2)
-end
-# puts "#{mm[0][0]} #{mm[2][3]} #{mm[3][2]} #{mm[4][4]}"
-
-
diff --git a/benchmark/so_meteor_contest.rb b/benchmark/so_meteor_contest.rb
deleted file mode 100644
index 8c136baa6c..0000000000
--- a/benchmark/so_meteor_contest.rb
+++ /dev/null
@@ -1,563 +0,0 @@
-#!/usr/bin/env ruby
-#
-# The Computer Language Shootout
-# http://shootout.alioth.debian.org
-# contributed by Kevin Barnes (Ruby novice)
-
-# PROGRAM: the main body is at the bottom.
-# 1) read about the problem here: http://www-128.ibm.com/developerworks/java/library/j-javaopt/
-# 2) see how I represent a board as a bitmask by reading the blank_board comments
-# 3) read as your mental paths take you
-
-def print *args
-end
-
-# class to represent all information about a particular rotation of a particular piece
-class Rotation
- # an array (by location) containing a bit mask for how the piece maps at the given location.
- # if the rotation is invalid at that location the mask will contain false
- attr_reader :start_masks
-
- # maps a direction to a relative location. these differ depending on whether it is an even or
- # odd row being mapped from
- @@rotation_even_adder = { :west => -1, :east => 1, :nw => -7, :ne => -6, :sw => 5, :se => 6 }
- @@rotation_odd_adder = { :west => -1, :east => 1, :nw => -6, :ne => -5, :sw => 6, :se => 7 }
-
- def initialize( directions )
- @even_offsets, @odd_offsets = normalize_offsets( get_values( directions ))
-
- @even_mask = mask_for_offsets( @even_offsets)
- @odd_mask = mask_for_offsets( @odd_offsets)
-
- @start_masks = Array.new(60)
-
- # create the rotational masks by placing the base mask at the location and seeing if
- # 1) it overlaps the boundaries and 2) it produces a prunable board. if either of these
- # is true the piece cannot be placed
- 0.upto(59) do | offset |
- mask = is_even(offset) ? (@even_mask << offset) : (@odd_mask << offset)
- if (blank_board & mask == 0 && !prunable(blank_board | mask, 0, true)) then
- imask = compute_required( mask, offset)
- @start_masks[offset] = [ mask, imask, imask | mask ]
- else
- @start_masks[offset] = false
- end
- end
- end
-
- def compute_required( mask, offset )
- board = blank_board
- 0.upto(offset) { | i | board |= 1 << i }
- board |= mask
- return 0 if (!prunable(board | mask, offset))
- board = flood_fill(board,58)
- count = 0
- imask = 0
- 0.upto(59) do | i |
- if (board[i] == 0) then
- imask |= (1 << i)
- count += 1
- end
- end
- (count > 0 && count < 5) ? imask : 0
- end
-
- def flood_fill( board, location)
- return board if (board[location] == 1)
- board |= 1 << location
- row, col = location.divmod(6)
- board = flood_fill( board, location - 1) if (col > 0)
- board = flood_fill( board, location + 1) if (col < 4)
- if (row % 2 == 0) then
- board = flood_fill( board, location - 7) if (col > 0 && row > 0)
- board = flood_fill( board, location - 6) if (row > 0)
- board = flood_fill( board, location + 6) if (row < 9)
- board = flood_fill( board, location + 5) if (col > 0 && row < 9)
- else
- board = flood_fill( board, location - 5) if (col < 4 && row > 0)
- board = flood_fill( board, location - 6) if (row > 0)
- board = flood_fill( board, location + 6) if (row < 9)
- board = flood_fill( board, location + 7) if (col < 4 && row < 9)
- end
- board
- end
-
- # given a location, produces a list of relative locations covered by the piece at this rotation
- def offsets( location)
- if is_even( location) then
- @even_offsets.collect { | value | value + location }
- else
- @odd_offsets.collect { | value | value + location }
- end
- end
-
- # returns a set of offsets relative to the top-left most piece of the rotation (by even or odd rows)
- # this is hard to explain. imagine we have this partial board:
- # 0 0 0 0 0 x [positions 0-5]
- # 0 0 1 1 0 x [positions 6-11]
- # 0 0 1 0 0 x [positions 12-17]
- # 0 1 0 0 0 x [positions 18-23]
- # 0 1 0 0 0 x [positions 24-29]
- # 0 0 0 0 0 x [positions 30-35]
- # ...
- # The top-left of the piece is at position 8, the
- # board would be passed as a set of positions (values array) containing [8,9,14,19,25] not necessarily in that
- # sorted order. Since that array starts on an odd row, the offsets for an odd row are: [0,1,6,11,17] obtained
- # by subtracting 8 from everything. Now imagine the piece shifted up and to the right so it's on an even row:
- # 0 0 0 1 1 x [positions 0-5]
- # 0 0 1 0 0 x [positions 6-11]
- # 0 0 1 0 0 x [positions 12-17]
- # 0 1 0 0 0 x [positions 18-23]
- # 0 0 0 0 0 x [positions 24-29]
- # 0 0 0 0 0 x [positions 30-35]
- # ...
- # Now the positions are [3,4,8,14,19] which after subtracting the lowest value (3) gives [0,1,5,11,16] thus, the
- # offsets for this particular piece are (in even, odd order) [0,1,5,11,16],[0,1,6,11,17] which is what
- # this function would return
- def normalize_offsets( values)
- min = values.min
- even_min = is_even(min)
- other_min = even_min ? min + 6 : min + 7
- other_values = values.collect do | value |
- if is_even(value) then
- value + 6 - other_min
- else
- value + 7 - other_min
- end
- end
- values.collect! { | value | value - min }
-
- if even_min then
- [values, other_values]
- else
- [other_values, values]
- end
- end
-
- # produce a bitmask representation of an array of offset locations
- def mask_for_offsets( offsets )
- mask = 0
- offsets.each { | value | mask = mask + ( 1 << value ) }
- mask
- end
-
- # finds a "safe" position that a position as described by a list of directions can be placed
- # without falling off any edge of the board. the values returned a location to place the first piece
- # at so it will fit after making the described moves
- def start_adjust( directions )
- south = east = 0;
- directions.each do | direction |
- east += 1 if ( direction == :sw || direction == :nw || direction == :west )
- south += 1 if ( direction == :nw || direction == :ne )
- end
- south * 6 + east
- end
-
- # given a set of directions places the piece (as defined by a set of directions) on the board at
- # a location that will not take it off the edge
- def get_values( directions )
- start = start_adjust(directions)
- values = [ start ]
- directions.each do | direction |
- if (start % 12 >= 6) then
- start += @@rotation_odd_adder[direction]
- else
- start += @@rotation_even_adder[direction]
- end
- values += [ start ]
- end
-
- # some moves take you back to an existing location, we'll strip duplicates
- values.uniq
- end
-end
-
-# describes a piece and caches information about its rotations to as to be efficient for iteration
-# ATTRIBUTES:
-# rotations -- all the rotations of the piece
-# type -- a numeic "name" of the piece
-# masks -- an array by location of all legal rotational masks (a n inner array) for that location
-# placed -- the mask that this piece was last placed at (not a location, but the actual mask used)
-class Piece
- attr_reader :rotations, :type, :masks
- attr_accessor :placed
-
- # transform hashes that change one direction into another when you either flip or rotate a set of directions
- @@flip_converter = { :west => :west, :east => :east, :nw => :sw, :ne => :se, :sw => :nw, :se => :ne }
- @@rotate_converter = { :west => :nw, :east => :se, :nw => :ne, :ne => :east, :sw => :west, :se => :sw }
-
- def initialize( directions, type )
- @type = type
- @rotations = Array.new();
- @map = {}
-
- generate_rotations( directions )
- directions.collect! { | value | @@flip_converter[value] }
- generate_rotations( directions )
-
- # creates the masks AND a map that returns [location, rotation] for any given mask
- # this is used when a board is found and we want to draw it, otherwise the map is unused
- @masks = Array.new();
- 0.upto(59) do | i |
- even = true
- @masks[i] = @rotations.collect do | rotation |
- mask = rotation.start_masks[i]
- @map[mask[0]] = [ i, rotation ] if (mask)
- mask || nil
- end
- @masks[i].compact!
- end
- end
-
- # rotates a set of directions through all six angles and adds a Rotation to the list for each one
- def generate_rotations( directions )
- 6.times do
- rotations.push( Rotation.new(directions))
- directions.collect! { | value | @@rotate_converter[value] }
- end
- end
-
- # given a board string, adds this piece to the board at whatever location/rotation
- # important: the outbound board string is 5 wide, the normal location notation is six wide (padded)
- def fill_string( board_string)
- location, rotation = @map[@placed]
- rotation.offsets(location).each do | offset |
- row, col = offset.divmod(6)
- board_string[ row*5 + col, 1 ] = @type.to_s
- end
- end
-end
-
-# a blank bit board having this form:
-#
-# 0 0 0 0 0 1
-# 0 0 0 0 0 1
-# 0 0 0 0 0 1
-# 0 0 0 0 0 1
-# 0 0 0 0 0 1
-# 0 0 0 0 0 1
-# 0 0 0 0 0 1
-# 0 0 0 0 0 1
-# 0 0 0 0 0 1
-# 0 0 0 0 0 1
-# 1 1 1 1 1 1
-#
-# where left lest significant bit is the top left and the most significant is the lower right
-# the actual board only consists of the 0 places, the 1 places are blockers to keep things from running
-# off the edges or bottom
-def blank_board
- 0b111111100000100000100000100000100000100000100000100000100000100000
-end
-
-def full_board
- 0b111111111111111111111111111111111111111111111111111111111111111111
-end
-
-# determines if a location (bit position) is in an even row
-def is_even( location)
- (location % 12) < 6
-end
-
-# support function that create three utility maps:
-# $converter -- for each row an array that maps a five bit row (via array mapping)
-# to the a five bit representation of the bits below it
-# $bit_count -- maps a five bit row (via array mapping) to the number of 1s in the row
-# @@new_regions -- maps a five bit row (via array mapping) to an array of "region" arrays
-# a region array has three values the first is a mask of bits in the region,
-# the second is the count of those bits and the third is identical to the first
-# examples:
-# 0b10010 => [ 0b01100, 2, 0b01100 ], [ 0b00001, 1, 0b00001]
-# 0b01010 => [ 0b10000, 1, 0b10000 ], [ 0b00100, 1, 0b00100 ], [ 0b00001, 1, 0b00001]
-# 0b10001 => [ 0b01110, 3, 0b01110 ]
-def create_collector_support
- odd_map = [0b11, 0b110, 0b1100, 0b11000, 0b10000]
- even_map = [0b1, 0b11, 0b110, 0b1100, 0b11000]
-
- all_odds = Array.new(0b100000)
- all_evens = Array.new(0b100000)
- bit_counts = Array.new(0b100000)
- new_regions = Array.new(0b100000)
- 0.upto(0b11111) do | i |
- bit_count = odd = even = 0
- 0.upto(4) do | bit |
- if (i[bit] == 1) then
- bit_count += 1
- odd |= odd_map[bit]
- even |= even_map[bit]
- end
- end
- all_odds[i] = odd
- all_evens[i] = even
- bit_counts[i] = bit_count
- new_regions[i] = create_regions( i)
- end
-
- $converter = []
- 10.times { | row | $converter.push((row % 2 == 0) ? all_evens : all_odds) }
- $bit_counts = bit_counts
- $regions = new_regions.collect { | set | set.collect { | value | [ value, bit_counts[value], value] } }
-end
-
-# determines if a board is punable, meaning that there is no possibility that it
-# can be filled up with pieces. A board is prunable if there is a grouping of unfilled spaces
-# that are not a multiple of five. The following board is an example of a prunable board:
-# 0 0 1 0 0
-# 0 1 0 0 0
-# 1 1 0 0 0
-# 0 1 0 0 0
-# 0 0 0 0 0
-# ...
-#
-# This board is prunable because the top left corner is only 3 bits in area, no piece will ever fit it
-# parameters:
-# board -- an initial bit board (6 bit padded rows, see blank_board for format)
-# location -- starting location, everything above and to the left is already full
-# slotting -- set to true only when testing initial pieces, when filling normally
-# additional assumptions are possible
-#
-# Algorithm:
-# The algorithm starts at the top row (as determined by location) and iterates a row at a time
-# maintainng counts of active open areas (kept in the collector array) each collector contains
-# three values at the start of an iteration:
-# 0: mask of bits that would be adjacent to the collector in this row
-# 1: the number of bits collected so far
-# 2: a scratch space starting as zero, but used during the computation to represent
-# the empty bits in the new row that are adjacent (position 0)
-# The exact procedure is described in-code
-def prunable( board, location, slotting = false)
- collectors = []
- # loop across the rows
- (location / 6).to_i.upto(9) do | row_on |
- # obtain a set of regions representing the bits of the current row.
- regions = $regions[(board >> (row_on * 6)) & 0b11111]
- converter = $converter[row_on]
-
- # track the number of collectors at the start of the cycle so that
- # we don't compute against newly created collectors, only existing collectors
- initial_collector_count = collectors.length
-
- # loop against the regions. For each region of the row
- # we will see if it connects to one or more existing collectors.
- # if it connects to 1 collector, the bits from the region are added to the
- # bits of the collector and the mask is placed in collector[2]
- # If the region overlaps more than one collector then all the collectors
- # it overlaps with are merged into the first one (the others are set to nil in the array)
- # if NO collectors are found then the region is copied as a new collector
- regions.each do | region |
- collector_found = nil
- region_mask = region[2]
- initial_collector_count.times do | collector_num |
- collector = collectors[collector_num]
- if (collector) then
- collector_mask = collector[0]
- if (collector_mask & region_mask != 0) then
- if (collector_found) then
- collector_found[0] |= collector_mask
- collector_found[1] += collector[1]
- collector_found[2] |= collector[2]
- collectors[collector_num] = nil
- else
- collector_found = collector
- collector[1] += region[1]
- collector[2] |= region_mask
- end
- end
- end
- end
- if (collector_found == nil) then
- collectors.push(Array.new(region))
- end
- end
-
- # check the existing collectors, if any collector overlapped no bits in the region its [2] value will
- # be zero. The size of any such reaason is tested if it is not a multiple of five true is returned since
- # the board is prunable. if it is a multiple of five it is removed.
- # Collector that are still active have a new adjacent value [0] set based n the matched bits
- # and have [2] cleared out for the next cycle.
- collectors.length.times do | collector_num |
- collector = collectors[collector_num]
- if (collector) then
- if (collector[2] == 0) then
- return true if (collector[1] % 5 != 0)
- collectors[collector_num] = nil
- else
- # if a collector matches all bits in the row then we can return unprunable early for the
- # following reasons:
- # 1) there can be no more unavailable bits bince we fill from the top left downward
- # 2) all previous regions have been closed or joined so only this region can fail
- # 3) this region must be good since there can never be only 1 region that is nuot
- # a multiple of five
- # this rule only applies when filling normally, so we ignore the rule if we are "slotting"
- # in pieces to see what configurations work for them (the only other time this algorithm is used).
- return false if (collector[2] == 0b11111 && !slotting)
- collector[0] = converter[collector[2]]
- collector[2] = 0
- end
- end
- end
-
- # get rid of all the empty converters for the next round
- collectors.compact!
- end
- return false if (collectors.length <= 1) # 1 collector or less and the region is fine
- collectors.any? { | collector | (collector[1] % 5) != 0 } # more than 1 and we test them all for bad size
-end
-
-# creates a region given a row mask. see prunable for what a "region" is
-def create_regions( value )
- regions = []
- cur_region = 0
- 5.times do | bit |
- if (value[bit] == 0) then
- cur_region |= 1 << bit
- else
- if (cur_region != 0 ) then
- regions.push( cur_region)
- cur_region = 0;
- end
- end
- end
- regions.push(cur_region) if (cur_region != 0)
- regions
-end
-
-# find up to the counted number of solutions (or all solutions) and prints the final result
-def find_all
- find_top( 1)
- find_top( 0)
- print_results
-end
-
-# show the board
-def print_results
- print "#{@boards_found} solutions found\n\n"
- print_full_board( @min_board)
- print "\n"
- print_full_board( @max_board)
- print "\n"
-end
-
-# finds solutions. This special version of the main function is only used for the top level
-# the reason for it is basically to force a particular ordering on how the rotations are tested for
-# the first piece. It is called twice, first looking for placements of the odd rotations and then
-# looking for placements of the even locations.
-#
-# WHY?
-# Since any found solution has an inverse we want to maximize finding solutions that are not already found
-# as an inverse. The inverse will ALWAYS be 3 one of the piece configurations that is exactly 3 rotations away
-# (an odd number). Checking even vs odd then produces a higher probability of finding more pieces earlier
-# in the cycle. We still need to keep checking all the permutations, but our probability of finding one will
-# diminsh over time. Since we are TOLD how many to search for this lets us exit before checking all pieces
-# this bennifit is very great when seeking small numbers of solutions and is 0 when looking for more than the
-# maximum number
-def find_top( rotation_skip)
- board = blank_board
- (@pieces.length-1).times do
- piece = @pieces.shift
- piece.masks[0].each do | mask, imask, cmask |
- if ((rotation_skip += 1) % 2 == 0) then
- piece.placed = mask
- find( 1, 1, board | mask)
- end
- end
- @pieces.push(piece)
- end
- piece = @pieces.shift
- @pieces.push(piece)
-end
-
-# the normail find routine, iterates through the available pieces, checks all rotations at the current location
-# and adds any boards found. depth is achieved via recursion. the overall approach is described
-# here: http://www-128.ibm.com/developerworks/java/library/j-javaopt/
-# parameters:
-# start_location -- where to start looking for place for the next piece at
-# placed -- number of pieces placed
-# board -- current state of the board
-#
-# see in-code comments
-def find( start_location, placed, board)
- # find the next location to place a piece by looking for an empty bit
- while board[start_location] == 1
- start_location += 1
- end
-
- @pieces.length.times do
- piece = @pieces.shift
- piece.masks[start_location].each do | mask, imask, cmask |
- if ( board & cmask == imask) then
- piece.placed = mask
- if (placed == 9) then
- add_board
- else
- find( start_location + 1, placed + 1, board | mask)
- end
- end
- end
- @pieces.push(piece)
- end
-end
-
-# print the board
-def print_full_board( board_string)
- 10.times do | row |
- print " " if (row % 2 == 1)
- 5.times do | col |
- print "#{board_string[row*5 + col,1]} "
- end
- print "\n"
- end
-end
-
-# when a board is found we "draw it" into a string and then flip that string, adding both to
-# the list (hash) of solutions if they are unique.
-def add_board
- board_string = "99999999999999999999999999999999999999999999999999"
- @all_pieces.each { | piece | piece.fill_string( board_string ) }
- save( board_string)
- save( board_string.reverse)
-end
-
-# adds a board string to the list (if new) and updates the current best/worst board
-def save( board_string)
- if (@all_boards[board_string] == nil) then
- @min_board = board_string if (board_string < @min_board)
- @max_board = board_string if (board_string > @max_board)
- @all_boards.store(board_string,true)
- @boards_found += 1
-
- # the exit motif is a time saver. Ideally the function should return, but those tests
- # take noticeable time (performance).
- if (@boards_found == @stop_count) then
- print_results
- exit(0)
- end
- end
-end
-
-
-##
-## MAIN BODY :)
-##
-create_collector_support
-@pieces = [
- Piece.new( [ :nw, :ne, :east, :east ], 2),
- Piece.new( [ :ne, :se, :east, :ne ], 7),
- Piece.new( [ :ne, :east, :ne, :nw ], 1),
- Piece.new( [ :east, :sw, :sw, :se ], 6),
- Piece.new( [ :east, :ne, :se, :ne ], 5),
- Piece.new( [ :east, :east, :east, :se ], 0),
- Piece.new( [ :ne, :nw, :se, :east, :se ], 4),
- Piece.new( [ :se, :se, :se, :west ], 9),
- Piece.new( [ :se, :se, :east, :se ], 8),
- Piece.new( [ :east, :east, :sw, :se ], 3)
- ];
-
-@all_pieces = Array.new( @pieces)
-
-@min_board = "99999999999999999999999999999999999999999999999999"
-@max_board = "00000000000000000000000000000000000000000000000000"
-@stop_count = ARGV[0].to_i || 2089
-@all_boards = {}
-@boards_found = 0
-
-find_all ######## DO IT!!!
diff --git a/benchmark/so_nbody.rb b/benchmark/so_nbody.rb
deleted file mode 100644
index d6c5bb9e61..0000000000
--- a/benchmark/so_nbody.rb
+++ /dev/null
@@ -1,148 +0,0 @@
-# The Computer Language Shootout
-# http://shootout.alioth.debian.org
-#
-# Optimized for Ruby by Jesse Millikan
-# From version ported by Michael Neumann from the C gcc version,
-# which was written by Christoph Bauer.
-
-SOLAR_MASS = 4 * Math::PI**2
-DAYS_PER_YEAR = 365.24
-
-def _puts *args
-end
-
-class Planet
- attr_accessor :x, :y, :z, :vx, :vy, :vz, :mass
-
- def initialize(x, y, z, vx, vy, vz, mass)
- @x, @y, @z = x, y, z
- @vx, @vy, @vz = vx * DAYS_PER_YEAR, vy * DAYS_PER_YEAR, vz * DAYS_PER_YEAR
- @mass = mass * SOLAR_MASS
- end
-
- def move_from_i(bodies, nbodies, dt, i)
- while i < nbodies
- b2 = bodies[i]
- dx = @x - b2.x
- dy = @y - b2.y
- dz = @z - b2.z
-
- distance = Math.sqrt(dx * dx + dy * dy + dz * dz)
- mag = dt / (distance * distance * distance)
- b_mass_mag, b2_mass_mag = @mass * mag, b2.mass * mag
-
- @vx -= dx * b2_mass_mag
- @vy -= dy * b2_mass_mag
- @vz -= dz * b2_mass_mag
- b2.vx += dx * b_mass_mag
- b2.vy += dy * b_mass_mag
- b2.vz += dz * b_mass_mag
- i += 1
- end
-
- @x += dt * @vx
- @y += dt * @vy
- @z += dt * @vz
- end
-end
-
-def energy(bodies)
- e = 0.0
- nbodies = bodies.size
-
- for i in 0 ... nbodies
- b = bodies[i]
- e += 0.5 * b.mass * (b.vx * b.vx + b.vy * b.vy + b.vz * b.vz)
- for j in (i + 1) ... nbodies
- b2 = bodies[j]
- dx = b.x - b2.x
- dy = b.y - b2.y
- dz = b.z - b2.z
- distance = Math.sqrt(dx * dx + dy * dy + dz * dz)
- e -= (b.mass * b2.mass) / distance
- end
- end
- e
-end
-
-def offset_momentum(bodies)
- px, py, pz = 0.0, 0.0, 0.0
-
- for b in bodies
- m = b.mass
- px += b.vx * m
- py += b.vy * m
- pz += b.vz * m
- end
-
- b = bodies[0]
- b.vx = - px / SOLAR_MASS
- b.vy = - py / SOLAR_MASS
- b.vz = - pz / SOLAR_MASS
-end
-
-BODIES = [
- # sun
- Planet.new(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0),
-
- # jupiter
- Planet.new(
- 4.84143144246472090e+00,
- -1.16032004402742839e+00,
- -1.03622044471123109e-01,
- 1.66007664274403694e-03,
- 7.69901118419740425e-03,
- -6.90460016972063023e-05,
- 9.54791938424326609e-04),
-
- # saturn
- Planet.new(
- 8.34336671824457987e+00,
- 4.12479856412430479e+00,
- -4.03523417114321381e-01,
- -2.76742510726862411e-03,
- 4.99852801234917238e-03,
- 2.30417297573763929e-05,
- 2.85885980666130812e-04),
-
- # uranus
- Planet.new(
- 1.28943695621391310e+01,
- -1.51111514016986312e+01,
- -2.23307578892655734e-01,
- 2.96460137564761618e-03,
- 2.37847173959480950e-03,
- -2.96589568540237556e-05,
- 4.36624404335156298e-05),
-
- # neptune
- Planet.new(
- 1.53796971148509165e+01,
- -2.59193146099879641e+01,
- 1.79258772950371181e-01,
- 2.68067772490389322e-03,
- 1.62824170038242295e-03,
- -9.51592254519715870e-05,
- 5.15138902046611451e-05)
-]
-
-init = 200_000 # ARGV[0]
-n = Integer(init)
-
-offset_momentum(BODIES)
-
-puts "%.9f" % energy(BODIES)
-
-nbodies = BODIES.size
-dt = 0.01
-
-n.times do
- i = 0
- while i < nbodies
- b = BODIES[i]
- b.move_from_i(BODIES, nbodies, dt, i + 1)
- i += 1
- end
-end
-
-puts "%.9f" % energy(BODIES)
diff --git a/benchmark/so_nested_loop.rb b/benchmark/so_nested_loop.rb
deleted file mode 100644
index 766fcf7b84..0000000000
--- a/benchmark/so_nested_loop.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/usr/bin/ruby
-# -*- Ruby -*-
-# $Id: nestedloop-ruby.code,v 1.4 2004/11/13 07:42:22 bfulgham Exp $
-# http://www.bagley.org/~doug/shootout/
-# from Avi Bryant
-
-n = 16 # Integer(ARGV.shift || 1)
-x = 0
-n.times do
- n.times do
- n.times do
- n.times do
- n.times do
- n.times do
- x += 1
- end
- end
- end
- end
- end
-end
-# puts x
-
-
diff --git a/benchmark/so_nsieve.rb b/benchmark/so_nsieve.rb
deleted file mode 100644
index a65cc78233..0000000000
--- a/benchmark/so_nsieve.rb
+++ /dev/null
@@ -1,35 +0,0 @@
-# The Computer Language Shootout
-# http://shootout.alioth.debian.org/
-#
-# contributed by Glenn Parker, March 2005
-# modified by Evan Phoenix, Sept 2006
-
-def sieve(m)
- flags = Flags.dup[0,m]
- count = 0
- pmax = m - 1
- p = 2
- while p <= pmax
- unless flags[p].zero?
- count += 1
- mult = p
- while mult <= pmax
- flags[mult] = 0
- mult += p
- end
- end
- p += 1
- end
- count
-end
-
-n = 9 # (ARGV[0] || 2).to_i
-Flags = ("\x1" * ( 2 ** n * 10_000)).unpack("c*")
-
-n.downto(n-2) do |exponent|
- break if exponent < 0
- m = (1 << exponent) * 10_000
- # m = (2 ** exponent) * 10_000
- count = sieve(m)
- printf "Primes up to %8d %8d\n", m, count
-end
diff --git a/benchmark/so_nsieve_bits.rb b/benchmark/so_nsieve_bits.rb
deleted file mode 100644
index 6f958ee44e..0000000000
--- a/benchmark/so_nsieve_bits.rb
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/usr/bin/ruby
-#coding: us-ascii
-#
-# The Great Computer Language Shootout
-# http://shootout.alioth.debian.org/
-#
-# nsieve-bits in Ruby
-# Contributed by Glenn Parker, March 2005
-
-CharExponent = 3
-BitsPerChar = 1 << CharExponent
-LowMask = BitsPerChar - 1
-
-def sieve(m)
- items = "\xFF" * ((m / BitsPerChar) + 1)
- masks = ""
- BitsPerChar.times do |b|
- masks << (1 << b).chr
- end
-
- count = 0
- pmax = m - 1
- 2.step(pmax, 1) do |p|
- if items[p >> CharExponent][p & LowMask] == 1
- count += 1
- p.step(pmax, p) do |mult|
- a = mult >> CharExponent
- b = mult & LowMask
- items[a] -= masks[b] if items[a][b] != 0
- end
- end
- end
- count
-end
-
-n = 9 # (ARGV[0] || 2).to_i
-n.step(n - 2, -1) do |exponent|
- break if exponent < 0
- m = 2 ** exponent * 10_000
- count = sieve(m)
- printf "Primes up to %8d %8d\n", m, count
-end
-
diff --git a/benchmark/so_object.rb b/benchmark/so_object.rb
deleted file mode 100644
index 131f44624c..0000000000
--- a/benchmark/so_object.rb
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/usr/bin/ruby
-# -*- Ruby -*-
-# $Id: objinst-ruby.code,v 1.4 2004/11/13 07:42:25 bfulgham Exp $
-# http://www.bagley.org/~doug/shootout/
-# with help from Aristarkh Zagorodnikov
-
-class Toggle
- def initialize(start_state)
- @bool = start_state
- end
-
- def value
- @bool
- end
-
- def activate
- @bool = !@bool
- self
- end
-end
-
-class NthToggle < Toggle
- def initialize(start_state, max_counter)
- super start_state
- @count_max = max_counter
- @counter = 0
- end
-
- def activate
- @counter += 1
- if @counter >= @count_max
- @bool = !@bool
- @counter = 0
- end
- self
- end
-end
-
-n = 1500000 # (ARGV.shift || 1).to_i
-
-toggle = Toggle.new 1
-5.times do
- toggle.activate.value ? 'true' : 'false'
-end
-n.times do
- toggle = Toggle.new 1
-end
-
-ntoggle = NthToggle.new 1, 3
-8.times do
- ntoggle.activate.value ? 'true' : 'false'
-end
-n.times do
- ntoggle = NthToggle.new 1, 3
-end
-
diff --git a/benchmark/so_partial_sums.rb b/benchmark/so_partial_sums.rb
deleted file mode 100644
index 630b45cb8d..0000000000
--- a/benchmark/so_partial_sums.rb
+++ /dev/null
@@ -1,31 +0,0 @@
-n = 2_500_000 # (ARGV.shift || 1).to_i
-
-alt = 1.0 ; s0 = s1 = s2 = s3 = s4 = s5 = s6 = s7 = s8 = 0.0
-
-1.upto(n) do |d|
- d = d.to_f ; d2 = d * d ; d3 = d2 * d ; ds = Math.sin(d) ; dc = Math.cos(d)
-
- s0 += (2.0 / 3.0) ** (d - 1.0)
- s1 += 1.0 / Math.sqrt(d)
- s2 += 1.0 / (d * (d + 1.0))
- s3 += 1.0 / (d3 * ds * ds)
- s4 += 1.0 / (d3 * dc * dc)
- s5 += 1.0 / d
- s6 += 1.0 / d2
- s7 += alt / d
- s8 += alt / (2.0 * d - 1.0)
-
- alt = -alt
-end
-
-if false
- printf("%.9f\t(2/3)^k\n", s0)
- printf("%.9f\tk^-0.5\n", s1)
- printf("%.9f\t1/k(k+1)\n", s2)
- printf("%.9f\tFlint Hills\n", s3)
- printf("%.9f\tCookson Hills\n", s4)
- printf("%.9f\tHarmonic\n", s5)
- printf("%.9f\tRiemann Zeta\n", s6)
- printf("%.9f\tAlternating Harmonic\n", s7)
- printf("%.9f\tGregory\n", s8)
-end
diff --git a/benchmark/so_pidigits.rb b/benchmark/so_pidigits.rb
deleted file mode 100644
index 9a537b2d1c..0000000000
--- a/benchmark/so_pidigits.rb
+++ /dev/null
@@ -1,92 +0,0 @@
-# The Great Computer Language Shootout
-# http://shootout.alioth.debian.org/
-#
-# contributed by Gabriele Renzi
-
-class PiDigitSpigot
-
- def initialize()
- @z = Transformation.new 1,0,0,1
- @x = Transformation.new 0,0,0,0
- @inverse = Transformation.new 0,0,0,0
- end
-
- def next!
- @y = @z.extract(3)
- if safe? @y
- @z = produce(@y)
- @y
- else
- @z = consume @x.next!()
- next!()
- end
- end
-
- def safe?(digit)
- digit == @z.extract(4)
- end
-
- def produce(i)
- @inverse.qrst(10,-10*i,0,1).compose(@z)
- end
-
- def consume(a)
- @z.compose(a)
- end
-end
-
-
-class Transformation
- attr_reader :q, :r, :s, :t
- def initialize(q, r, s, t)
- @q,@r,@s,@t,@k = q,r,s,t,0
- end
-
- def next!()
- @q = @k = @k + 1
- @r = 4 * @k + 2
- @s = 0
- @t = 2 * @k + 1
- self
- end
-
- def extract(j)
- (@q * j + @r) / (@s * j + @t)
- end
-
- def compose(a)
- self.class.new( @q * a.q,
- @q * a.r + r * a.t,
- @s * a.q + t * a.s,
- @s * a.r + t * a.t
- )
- end
-
- def qrst *args
- initialize *args
- self
- end
-
-
-end
-
-
-WIDTH = 10
-n = 2_500 # Integer(ARGV[0])
-j = 0
-
-digits = PiDigitSpigot.new
-
-while n > 0
- if n >= WIDTH
- WIDTH.times {print digits.next!}
- j += WIDTH
- else
- n.times {print digits.next!}
- (WIDTH-n).times {print " "}
- j += n
- end
- puts "\t:"+j.to_s
- n -= WIDTH
-end
-
diff --git a/benchmark/so_random.rb b/benchmark/so_random.rb
deleted file mode 100644
index a66b9e8e63..0000000000
--- a/benchmark/so_random.rb
+++ /dev/null
@@ -1,20 +0,0 @@
-# from http://www.bagley.org/~doug/shootout/bench/random/random.ruby
-
-IM = 139968.0
-IA = 3877.0
-IC = 29573.0
-
-$last = 42.0
-
-def gen_random(max)
- (max * ($last = ($last * IA + IC) % IM)) / IM
-end
-
-N = 3_000_000
-
-i = 0
-while i<N
- i +=1
- gen_random(100.0)
-end
-# "%.9f" % gen_random(100.0)
diff --git a/benchmark/so_reverse_complement.yml b/benchmark/so_reverse_complement.yml
deleted file mode 100644
index de05eedfc4..0000000000
--- a/benchmark/so_reverse_complement.yml
+++ /dev/null
@@ -1,137 +0,0 @@
-prelude: |
- bm_so_fasta = <<'EOS'
- # The Computer Language Shootout
- # http://shootout.alioth.debian.org/
- # Contributed by Sokolov Yura
-
- $last = 42.0
- def gen_random(max, im=139968, ia=3877, ic=29573)
- (max * ($last = ($last * ia + ic) % im)) / im
- end
-
- alu =
- "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGG"+
- "GAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGA"+
- "CCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAAT"+
- "ACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA"+
- "GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG"+
- "AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC"+
- "AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA"
-
- iub = [
- ["a", 0.27],
- ["c", 0.12],
- ["g", 0.12],
- ["t", 0.27],
-
- ["B", 0.02],
- ["D", 0.02],
- ["H", 0.02],
- ["K", 0.02],
- ["M", 0.02],
- ["N", 0.02],
- ["R", 0.02],
- ["S", 0.02],
- ["V", 0.02],
- ["W", 0.02],
- ["Y", 0.02],
- ]
- homosapiens = [
- ["a", 0.3029549426680],
- ["c", 0.1979883004921],
- ["g", 0.1975473066391],
- ["t", 0.3015094502008],
- ]
-
- def make_repeat_fasta(id, desc, src, n)
- puts ">#{id} #{desc}"
- v = nil
- width = 60
- l = src.length
- s = src * ((n / l) + 1)
- s.slice!(n, l)
- puts(s.scan(/.{1,#{width}}/).join("\n"))
- end
-
- def make_random_fasta(id, desc, table, n)
- puts ">#{id} #{desc}"
- rand, v = nil,nil
- width = 60
- chunk = 1 * width
- prob = 0.0
- table.each{|v| v[1]= (prob += v[1])}
- for i in 1..(n/width)
- puts((1..width).collect{
- rand = gen_random(1.0)
- table.find{|v| v[1]>rand}[0]
- }.join)
- end
- if n%width != 0
- puts((1..(n%width)).collect{
- rand = gen_random(1.0)
- table.find{|v| v[1]>rand}[0]
- }.join)
- end
- end
-
-
- n = (ARGV[0] or 250_000).to_i
-
- make_repeat_fasta('ONE', 'Homo sapiens alu', alu, n*2)
- make_random_fasta('TWO', 'IUB ambiguity codes', iub, n*3)
- make_random_fasta('THREE', 'Homo sapiens frequency', homosapiens, n*5)
- EOS
-benchmark:
- - name: so_reverse_complement
- prelude: |
- script = File.join(File.dirname($0), 'bm_so_fasta.rb')
- File.write(script, bm_so_fasta)
-
- def prepare_fasta_output n
- filebase = File.join(File.dirname($0), 'fasta.output')
- script = File.join(File.dirname($0), 'bm_so_fasta.rb')
- file = "#{filebase}.#{n}"
-
- unless FileTest.exist?(file)
- STDERR.puts "preparing #{file}"
-
- open(file, 'w'){|f|
- ARGV[0] = n
- $stdout = f
- load script
- $stdout = STDOUT
- }
- end
- end
- prepare_fasta_output(2_500_000)
- script: |
- # The Great Computer Language Shootout
- # http://shootout.alioth.debian.org/
- #
- # Contributed by Peter Bjarke Olsen
- # Modified by Doug King
-
- seq=Array.new
-
- def revcomp(seq)
- seq.reverse!.tr!('wsatugcyrkmbdhvnATUGCYRKMBDHVN','WSTAACGRYMKVHDBNTAACGRYMKVHDBN')
- stringlen=seq.length
- 0.step(stringlen-1,60) {|x| print seq.slice(x,60) , "\n"}
- end
-
- input = open(File.join(File.dirname($0), 'fasta.output.2500000'), 'rb')
-
- while input.gets
- if $_ =~ />/
- if seq.length != 0
- revcomp(seq.join)
- seq=Array.new
- end
- puts $_
- else
- $_.sub(/\n/,'')
- seq.push $_
- end
- end
- revcomp(seq.join)
- loop_count: 1
diff --git a/benchmark/so_sieve.rb b/benchmark/so_sieve.rb
deleted file mode 100644
index 43dc302648..0000000000
--- a/benchmark/so_sieve.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-# from http://www.bagley.org/~doug/shootout/bench/sieve/sieve.ruby
-num = 500
-count = i = j = 0
-flags0 = Array.new(8192,1)
-k = 0
-while k < num
- k += 1
- count = 0
- flags = flags0.dup
- i = 2
- while i<8192
- i += 1
- if flags[i]
- # remove all multiples of prime: i
- j = i*i
- while j < 8192
- j += i
- flags[j] = nil
- end
- count += 1
- end
- end
-end
-count
diff --git a/benchmark/so_spectralnorm.rb b/benchmark/so_spectralnorm.rb
deleted file mode 100644
index 6b97206689..0000000000
--- a/benchmark/so_spectralnorm.rb
+++ /dev/null
@@ -1,50 +0,0 @@
-# The Computer Language Shootout
-# http://shootout.alioth.debian.org/
-# Contributed by Sokolov Yura
-
-def eval_A(i,j)
- return 1.0/((i+j)*(i+j+1)/2+i+1)
-end
-
-def eval_A_times_u(u)
- v, i = nil, nil
- (0..u.length-1).collect { |i|
- v = 0
- for j in 0..u.length-1
- v += eval_A(i,j)*u[j]
- end
- v
- }
-end
-
-def eval_At_times_u(u)
- v, i = nil, nil
- (0..u.length-1).collect{|i|
- v = 0
- for j in 0..u.length-1
- v += eval_A(j,i)*u[j]
- end
- v
- }
-end
-
-def eval_AtA_times_u(u)
- return eval_At_times_u(eval_A_times_u(u))
-end
-
-n = 500 # ARGV[0].to_i
-
-u=[1]*n
-for i in 1..10
- v=eval_AtA_times_u(u)
- u=eval_AtA_times_u(v)
-end
-vBv=0
-vv=0
-for i in 0..n-1
- vBv += u[i]*v[i]
- vv += v[i]*v[i]
-end
-
-str = "%0.9f" % (Math.sqrt(vBv/vv)), "\n"
-# print str
diff --git a/benchmark/string_capitalize.yml b/benchmark/string_capitalize.yml
deleted file mode 100644
index 7d23fd3d35..0000000000
--- a/benchmark/string_capitalize.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-prelude: |
- str1 = [*"a".."m",*"N".."Z",*"0".."9"].join("")
- str10 = str1 * 10
- str100 = str10 * 10
- str1000 = str100 * 10
-benchmark:
- capitalize-1: str1.capitalize
- capitalize-10: str10.capitalize
- capitalize-100: str100.capitalize
- capitalize-1000: str1000.capitalize
diff --git a/benchmark/string_casecmp.yml b/benchmark/string_casecmp.yml
deleted file mode 100644
index 2354040a04..0000000000
--- a/benchmark/string_casecmp.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-prelude: |
- lstr1 = [*"a".."z",*"0".."9"].join("")
- lstr10 = lstr1 * 10
- lstr100 = lstr10 * 10
- lstr1000 = lstr100 * 10
- lnonascii1 = [*"\u{e0}".."\u{ff}"].join("")
- lnonascii10 = lnonascii1 * 10
- lnonascii100 = lnonascii10 * 10
- lnonascii1000 = lnonascii100 * 10
- ustr1 = [*"A".."Z",*"0".."9"].join("")
- ustr10 = ustr1 * 10
- ustr100 = ustr10 * 10
- ustr1000 = ustr100 * 10
- unonascii1 = [*"\u{c0}".."\u{df}"].join("")
- unonascii10 = unonascii1 * 10
- unonascii100 = unonascii10 * 10
- unonascii1000 = unonascii100 * 10
-benchmark:
- casecmp-1: lstr1.casecmp(ustr1)
- casecmp-10: lstr10.casecmp(ustr10)
- casecmp-100: lstr100.casecmp(ustr100)
- casecmp-1000: lstr1000.casecmp(ustr1000)
- casecmp-nonascii1: lnonascii1.casecmp(unonascii1)
- casecmp-nonascii10: lnonascii10.casecmp(unonascii10)
- casecmp-nonascii100: lnonascii100.casecmp(unonascii100)
- casecmp-nonascii1000: lnonascii1000.casecmp(unonascii1000)
diff --git a/benchmark/string_casecmp_p.yml b/benchmark/string_casecmp_p.yml
deleted file mode 100644
index a790ce7d55..0000000000
--- a/benchmark/string_casecmp_p.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-prelude: |
- lstr1 = [*"a".."z",*"0".."9"].join("")
- lstr10 = lstr1 * 10
- lstr100 = lstr10 * 10
- lstr1000 = lstr100 * 10
- lnonascii1 = [*"\u{e0}".."\u{ff}"].join("")
- lnonascii10 = lnonascii1 * 10
- lnonascii100 = lnonascii10 * 10
- lnonascii1000 = lnonascii100 * 10
- ustr1 = [*"A".."Z",*"0".."9"].join("")
- ustr10 = ustr1 * 10
- ustr100 = ustr10 * 10
- ustr1000 = ustr100 * 10
- unonascii1 = [*"\u{c0}".."\u{df}"].join("")
- unonascii10 = unonascii1 * 10
- unonascii100 = unonascii10 * 10
- unonascii1000 = unonascii100 * 10
-benchmark:
- casecmp_p-1: lstr1.casecmp?(ustr1)
- casecmp_p-10: lstr10.casecmp?(ustr10)
- casecmp_p-100: lstr100.casecmp?(ustr100)
- casecmp_p-1000: lstr1000.casecmp?(ustr1000)
- casecmp_p-nonascii1: lnonascii1.casecmp?(unonascii1)
- casecmp_p-nonascii10: lnonascii10.casecmp?(unonascii10)
- casecmp_p-nonascii100: lnonascii100.casecmp?(unonascii100)
- casecmp_p-nonascii1000: lnonascii1000.casecmp?(unonascii1000)
diff --git a/benchmark/string_downcase.yml b/benchmark/string_downcase.yml
deleted file mode 100644
index 1fea6afbec..0000000000
--- a/benchmark/string_downcase.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-prelude: |
- str1 = [*"A".."Z",*"0".."9"].join("")
- str10 = str1 * 10
- str100 = str10 * 10
- str1000 = str100 * 10
- nonascii1 = [*"\u{c0}".."\u{df}"].join("")
- nonascii10 = nonascii1 * 10
- nonascii100 = nonascii10 * 10
- nonascii1000 = nonascii100 * 10
-benchmark:
- downcase-1: str1.upcase
- downcase-10: str10.upcase
- downcase-100: str100.upcase
- downcase-1000: str1000.upcase
- downcase-nonascii1: nonascii1.downcase
- downcase-nonascii10: nonascii10.downcase
- downcase-nonascii100: nonascii100.downcase
- downcase-nonascii1000: nonascii1000.downcase
diff --git a/benchmark/string_index.rb b/benchmark/string_index.rb
deleted file mode 100644
index 7783111082..0000000000
--- a/benchmark/string_index.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-str1 = "ã‚" * 1024 + "ã„" # not single byte optimizable
-str2 = "ã„"
-100_000.times { str1.index(str2) }
diff --git a/benchmark/string_scan_re.rb b/benchmark/string_scan_re.rb
deleted file mode 100644
index b0d60201a9..0000000000
--- a/benchmark/string_scan_re.rb
+++ /dev/null
@@ -1,2 +0,0 @@
-str = Array.new(1_000, 'abc').join(',')
-1_000.times { str.scan(/abc/) }
diff --git a/benchmark/string_scan_str.rb b/benchmark/string_scan_str.rb
deleted file mode 100644
index 42440bd948..0000000000
--- a/benchmark/string_scan_str.rb
+++ /dev/null
@@ -1,2 +0,0 @@
-str = Array.new(1_000, 'abc').join(',')
-1_000.times { str.scan('abc') }
diff --git a/benchmark/string_slice.yml b/benchmark/string_slice.yml
deleted file mode 100644
index fc2393c5d1..0000000000
--- a/benchmark/string_slice.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-prelude: |
- long_string = "x"*1000+"-hår"
-benchmark:
- regexp-short: |
- "x-hår".slice!(/-(.)(.)(.)/, 3)
- regexp-long: |
- long_string.dup.slice!(/-(.)(.)(.)/, 3)
- string-short: |
- "x-hår".slice!("r")
- string-long: |
- long_string.dup.slice!("r")
diff --git a/benchmark/string_split.yml b/benchmark/string_split.yml
deleted file mode 100644
index cc2c7d7855..0000000000
--- a/benchmark/string_split.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-prelude: |
- str1 = [*0..5].join(" ") + " "
- str10 = str1 * 10
- str100 = str10 * 10
- str1000 = str100 * 10
-benchmark:
- to_chars-1: str1.split('')
- to_chars-10: str10.split('')
- to_chars-100: str100.split('')
- to_chars-1000: str1000.split('')
- to_words-1: str1.split(' ')
- to_words-10: str10.split(' ')
- to_words-100: str100.split(' ')
- to_words-1000: str1000.split(' ')
- re_chars-1: str1.split(//)
- re_chars-10: str10.split(//)
- re_chars-100: str100.split(//)
- re_chars-1000: str1000.split(//)
- re_space-1: str1.split(/ /)
- re_space-10: str10.split(/ /)
- re_space-100: str100.split(/ /)
- re_space-1000: str1000.split(/ /)
diff --git a/benchmark/string_swapcase.yml b/benchmark/string_swapcase.yml
deleted file mode 100644
index eeb5928907..0000000000
--- a/benchmark/string_swapcase.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-prelude: |
- str1 = [*"A".."M",*"n".."z",*"0".."9"].join("")
- str10 = str1 * 10
- str100 = str10 * 10
- str1000 = str100 * 10
- nonascii1 = [*"\u{c0}".."\u{cf}",*"\u{f0}".."\u{ff}"].join("")
- nonascii10 = nonascii1 * 10
- nonascii100 = nonascii10 * 10
- nonascii1000 = nonascii100 * 10
-benchmark:
- swapcase-1: str1.swapcase
- swapcase-10: str10.swapcase
- swapcase-100: str100.swapcase
- swapcase-1000: str1000.swapcase
- swapcase-nonascii1: nonascii1.swapcase
- swapcase-nonascii10: nonascii10.swapcase
- swapcase-nonascii100: nonascii100.swapcase
- swapcase-nonascii1000: nonascii1000.swapcase
diff --git a/benchmark/string_upcase.yml b/benchmark/string_upcase.yml
deleted file mode 100644
index dab84bbde2..0000000000
--- a/benchmark/string_upcase.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-prelude: |
- str1 = [*"a".."z",*"0".."9"].join("")
- str10 = str1 * 10
- str100 = str10 * 10
- str1000 = str100 * 10
- nonascii1 = [*"\u{e0}".."\u{ff}"].join("")
- nonascii10 = nonascii1 * 10
- nonascii100 = nonascii10 * 10
- nonascii1000 = nonascii100 * 10
-benchmark:
- upcase-1: str1.upcase
- upcase-10: str10.upcase
- upcase-100: str100.upcase
- upcase-1000: str1000.upcase
- upcase-nonascii1: nonascii1.upcase
- upcase-nonascii10: nonascii10.upcase
- upcase-nonascii100: nonascii100.upcase
- upcase-nonascii1000: nonascii1000.upcase
diff --git a/benchmark/time_at.yml b/benchmark/time_at.yml
deleted file mode 100644
index 3247efbe77..0000000000
--- a/benchmark/time_at.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-prelude: |
- # frozen_string_literal: true
-benchmark:
- - 'Time.at(0)'
- - 'Time.at(0, 500)'
- - 'Time.at(0, in: "+09:00")'
- - 'Time.at(0, 500, in: "+09:00")'
diff --git a/benchmark/time_new.yml b/benchmark/time_new.yml
deleted file mode 100644
index 5947dd3a41..0000000000
--- a/benchmark/time_new.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-benchmark:
- - 'Time.new(2021)'
- - 'Time.new(2021, 8, 22)'
- - 'Time.new(2021, 8, 22, in: "+09:00")'
diff --git a/benchmark/time_parse.yml b/benchmark/time_parse.yml
deleted file mode 100644
index a6d6948b9c..0000000000
--- a/benchmark/time_parse.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-prelude: |
- require 'time'
- inspect = "2021-08-23 09:57:02 +0900"
- iso8601 = "2021-08-23T09:57:02+09:00"
-benchmark:
- - Time.iso8601(iso8601)
- - Time.parse(iso8601)
- - Time.parse(inspect)
diff --git a/benchmark/time_strptime.yml b/benchmark/time_strptime.yml
deleted file mode 100644
index 8d89ebb7a7..0000000000
--- a/benchmark/time_strptime.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-prelude: |
- require 'time'
-benchmark:
- - Time.strptime("28/Aug/2005:06:54:20 +0000", "%d/%b/%Y:%T %z")
- - Time.strptime("1", "%s")
- - Time.strptime("0 +0100", "%s %z")
- - Time.strptime("0 UTC", "%s %z")
- - Time.strptime("1.5", "%s.%N")
- - Time.strptime("1.000000000001", "%s.%N")
- - Time.strptime("20010203 -0200", "%Y%m%d %z")
- - Time.strptime("20010203 UTC", "%Y%m%d %z")
- - Time.strptime("2018-365", "%Y-%j")
- - Time.strptime("2018-091", "%Y-%j")
diff --git a/benchmark/time_subsec.rb b/benchmark/time_subsec.rb
deleted file mode 100644
index 505021c701..0000000000
--- a/benchmark/time_subsec.rb
+++ /dev/null
@@ -1,2 +0,0 @@
-t = Time.now
-4000000.times { t.subsec }
diff --git a/benchmark/vm_array.yml b/benchmark/vm_array.yml
deleted file mode 100644
index 2a177237ef..0000000000
--- a/benchmark/vm_array.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-benchmark:
- vm_array: |
- a = [1,2,3,4,5,6,7,8,9,10]
-loop_count: 6000000
diff --git a/benchmark/vm_attr_ivar.yml b/benchmark/vm_attr_ivar.yml
deleted file mode 100644
index 75b803478e..0000000000
--- a/benchmark/vm_attr_ivar.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-prelude: |
- class C
- attr_reader :a, :b
- def initialize
- @a = nil
- @b = nil
- end
- end
- obj = C.new
-benchmark:
- vm_attr_ivar: |
- j = obj.a
- k = obj.b
-loop_count: 30000000
diff --git a/benchmark/vm_attr_ivar_set.yml b/benchmark/vm_attr_ivar_set.yml
deleted file mode 100644
index a0d379b18a..0000000000
--- a/benchmark/vm_attr_ivar_set.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-prelude: |
- class C
- attr_accessor :a, :b
- def initialize
- @a = nil
- @b = nil
- end
- end
- obj = C.new
-benchmark:
- vm_attr_ivar_set: |
- obj.a = 1
- obj.b = 2
-loop_count: 30000000
diff --git a/benchmark/vm_backtrace.rb b/benchmark/vm_backtrace.rb
deleted file mode 100644
index 0fbf73e1ca..0000000000
--- a/benchmark/vm_backtrace.rb
+++ /dev/null
@@ -1,22 +0,0 @@
-# get last backtrace
-
-begin
- caller(0, 0)
-rescue ArgumentError
- alias caller_orig caller
- def caller lev, n
- caller_orig(lev)[0..n]
- end
-end
-
-def rec n
- if n < 0
- 100_000.times{
- caller(0, 1)
- }
- else
- rec(n-1)
- end
-end
-
-rec 50
diff --git a/benchmark/vm_bigarray.yml b/benchmark/vm_bigarray.yml
deleted file mode 100644
index 8b2d3f3443..0000000000
--- a/benchmark/vm_bigarray.yml
+++ /dev/null
@@ -1,105 +0,0 @@
-benchmark:
- vm_bigarray: |
- a = [
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- 1,2,3,4,5,6,7,8,9,10,
- ]
-loop_count: 6000000
diff --git a/benchmark/vm_bighash.yml b/benchmark/vm_bighash.yml
deleted file mode 100644
index 4dacfde793..0000000000
--- a/benchmark/vm_bighash.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-benchmark:
- vm_bighash: |
- a = {0=>0, 1=>1, 2=>2, 3=>3, 4=>4, 5=>5, 6=>6, 7=>7, 8=>8, 9=>9, 10=>10, 11=>11, 12=>12, 13=>13, 14=>14, 15=>15, 16=>16, 17=>17, 18=>18, 19=>19, 20=>20, 21=>21, 22=>22, 23=>23, 24=>24, 25=>25, 26=>26, 27=>27, 28=>28, 29=>29, 30=>30, 31=>31, 32=>32, 33=>33, 34=>34, 35=>35, 36=>36, 37=>37, 38=>38, 39=>39, 40=>40, 41=>41, 42=>42, 43=>43, 44=>44, 45=>45, 46=>46, 47=>47, 48=>48, 49=>49, 50=>50, 51=>51, 52=>52, 53=>53, 54=>54, 55=>55, 56=>56, 57=>57, 58=>58, 59=>59, 60=>60, 61=>61, 62=>62, 63=>63, 64=>64, 65=>65, 66=>66, 67=>67, 68=>68, 69=>69, 70=>70, 71=>71, 72=>72, 73=>73, 74=>74, 75=>75, 76=>76, 77=>77, 78=>78, 79=>79, 80=>80, 81=>81, 82=>82, 83=>83, 84=>84, 85=>85, 86=>86, 87=>87, 88=>88, 89=>89, 90=>90, 91=>91, 92=>92, 93=>93, 94=>94, 95=>95, 96=>96, 97=>97, 98=>98, 99=>99, 100=>100, 101=>101, 102=>102, 103=>103, 104=>104, 105=>105, 106=>106, 107=>107, 108=>108, 109=>109, 110=>110, 111=>111, 112=>112, 113=>113, 114=>114, 115=>115, 116=>116, 117=>117, 118=>118, 119=>119, 120=>120, 121=>121, 122=>122, 123=>123, 124=>124, 125=>125, 126=>126, 127=>127, 128=>128, 129=>129, 130=>130, 131=>131, 132=>132, 133=>133, 134=>134, 135=>135, 136=>136, 137=>137, 138=>138, 139=>139, 140=>140, 141=>141, 142=>142, 143=>143, 144=>144, 145=>145, 146=>146, 147=>147, 148=>148, 149=>149, 150=>150, 151=>151, 152=>152, 153=>153, 154=>154, 155=>155, 156=>156, 157=>157, 158=>158, 159=>159, 160=>160, 161=>161, 162=>162, 163=>163, 164=>164, 165=>165, 166=>166, 167=>167, 168=>168, 169=>169, 170=>170, 171=>171, 172=>172, 173=>173, 174=>174, 175=>175, 176=>176, 177=>177, 178=>178, 179=>179, 180=>180, 181=>181, 182=>182, 183=>183, 184=>184, 185=>185, 186=>186, 187=>187, 188=>188, 189=>189, 190=>190, 191=>191, 192=>192, 193=>193, 194=>194, 195=>195, 196=>196, 197=>197, 198=>198, 199=>199, 200=>200, 201=>201, 202=>202, 203=>203, 204=>204, 205=>205, 206=>206, 207=>207, 208=>208, 209=>209, 210=>210, 211=>211, 212=>212, 213=>213, 214=>214, 215=>215, 216=>216, 217=>217, 218=>218, 219=>219, 220=>220, 221=>221, 222=>222, 223=>223, 224=>224, 225=>225, 226=>226, 227=>227, 228=>228, 229=>229, 230=>230, 231=>231, 232=>232, 233=>233, 234=>234, 235=>235, 236=>236, 237=>237, 238=>238, 239=>239, 240=>240, 241=>241, 242=>242, 243=>243, 244=>244, 245=>245, 246=>246, 247=>247, 248=>248, 249=>249, 250=>250, 251=>251, 252=>252, 253=>253, 254=>254, 255=>255, 256=>256, 257=>257, 258=>258, 259=>259, 260=>260, 261=>261, 262=>262, 263=>263, 264=>264, 265=>265, 266=>266, 267=>267, 268=>268, 269=>269, 270=>270, 271=>271, 272=>272, 273=>273, 274=>274, 275=>275, 276=>276, 277=>277, 278=>278, 279=>279, 280=>280, 281=>281, 282=>282, 283=>283, 284=>284, 285=>285, 286=>286, 287=>287, 288=>288, 289=>289, 290=>290, 291=>291, 292=>292, 293=>293, 294=>294, 295=>295, 296=>296, 297=>297, 298=>298, 299=>299, 300=>300, 301=>301, 302=>302, 303=>303, 304=>304, 305=>305, 306=>306, 307=>307, 308=>308, 309=>309, 310=>310, 311=>311, 312=>312, 313=>313, 314=>314, 315=>315, 316=>316, 317=>317, 318=>318, 319=>319, 320=>320, 321=>321, 322=>322, 323=>323, 324=>324, 325=>325, 326=>326, 327=>327, 328=>328, 329=>329, 330=>330, 331=>331, 332=>332, 333=>333, 334=>334, 335=>335, 336=>336, 337=>337, 338=>338, 339=>339, 340=>340, 341=>341, 342=>342, 343=>343, 344=>344, 345=>345, 346=>346, 347=>347, 348=>348, 349=>349, 350=>350, 351=>351, 352=>352, 353=>353, 354=>354, 355=>355, 356=>356, 357=>357, 358=>358, 359=>359, 360=>360, 361=>361, 362=>362, 363=>363, 364=>364, 365=>365, 366=>366, 367=>367, 368=>368, 369=>369, 370=>370, 371=>371, 372=>372, 373=>373, 374=>374, 375=>375, 376=>376, 377=>377, 378=>378, 379=>379, 380=>380, 381=>381, 382=>382, 383=>383, 384=>384, 385=>385, 386=>386, 387=>387, 388=>388, 389=>389, 390=>390, 391=>391, 392=>392, 393=>393, 394=>394, 395=>395, 396=>396, 397=>397, 398=>398, 399=>399, 400=>400, 401=>401, 402=>402, 403=>403, 404=>404, 405=>405, 406=>406, 407=>407, 408=>408, 409=>409, 410=>410, 411=>411, 412=>412, 413=>413, 414=>414, 415=>415, 416=>416, 417=>417, 418=>418, 419=>419, 420=>420, 421=>421, 422=>422, 423=>423, 424=>424, 425=>425, 426=>426, 427=>427, 428=>428, 429=>429, 430=>430, 431=>431, 432=>432, 433=>433, 434=>434, 435=>435, 436=>436, 437=>437, 438=>438, 439=>439, 440=>440, 441=>441, 442=>442, 443=>443, 444=>444, 445=>445, 446=>446, 447=>447, 448=>448, 449=>449, 450=>450, 451=>451, 452=>452, 453=>453, 454=>454, 455=>455, 456=>456, 457=>457, 458=>458, 459=>459, 460=>460, 461=>461, 462=>462, 463=>463, 464=>464, 465=>465, 466=>466, 467=>467, 468=>468, 469=>469, 470=>470, 471=>471, 472=>472, 473=>473, 474=>474, 475=>475, 476=>476, 477=>477, 478=>478, 479=>479, 480=>480, 481=>481, 482=>482, 483=>483, 484=>484, 485=>485, 486=>486, 487=>487, 488=>488, 489=>489, 490=>490, 491=>491, 492=>492, 493=>493, 494=>494, 495=>495, 496=>496, 497=>497, 498=>498, 499=>499, 500=>500,}
-loop_count: 60000
diff --git a/benchmark/vm_block.yml b/benchmark/vm_block.yml
deleted file mode 100644
index 68b3e40bf5..0000000000
--- a/benchmark/vm_block.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-prelude: |
- def m
- yield
- end
-benchmark:
- vm_block: |
- m{
- }
-loop_count: 30000000
diff --git a/benchmark/vm_block_handler.yml b/benchmark/vm_block_handler.yml
deleted file mode 100644
index 461d7953ad..0000000000
--- a/benchmark/vm_block_handler.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-# :FIXME: is there a way to benchmark block_handler_type_ifunc?
-
-prelude: |
- p = proc{_1}
- o = Object.new
- def o.each
- i = 0
- while i < 3_000_000 do
- yield i
- i += 1
- end
- end
-
-benchmark:
- - name: block_handler_type_iseq
- script: |
- o.each{_1}
-
- - name: block_handler_type_symbol
- script: |
- o.each(&:itself)
-
- - name: block_handler_type_proc
- script: |
- o.each(&p)
-
-loop_count: 1
diff --git a/benchmark/vm_blockparam.yml b/benchmark/vm_blockparam.yml
deleted file mode 100644
index 5e5a0170a2..0000000000
--- a/benchmark/vm_blockparam.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-prelude: |
- def m &b
- end
-benchmark:
- vm_blockparam: |
- m{}
-loop_count: 30000000
diff --git a/benchmark/vm_blockparam_call.yml b/benchmark/vm_blockparam_call.yml
deleted file mode 100644
index a7d8d366ea..0000000000
--- a/benchmark/vm_blockparam_call.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-prelude: |
- def m &b
- b.call
- end
-benchmark:
- vm_blockparam_call: |
- m{}
-loop_count: 30000000
diff --git a/benchmark/vm_blockparam_pass.yml b/benchmark/vm_blockparam_pass.yml
deleted file mode 100644
index 841f5e7a63..0000000000
--- a/benchmark/vm_blockparam_pass.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-prelude: |
- def bp_yield
- yield
- end
-
- def bp_pass &b
- bp_yield &b
- end
-benchmark:
- vm_blockparam_pass: |
- bp_pass{}
-loop_count: 30000000
diff --git a/benchmark/vm_blockparam_yield.yml b/benchmark/vm_blockparam_yield.yml
deleted file mode 100644
index 8ea9b46ed2..0000000000
--- a/benchmark/vm_blockparam_yield.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-prelude: |
- def bp_yield &b
- yield
- end
-benchmark:
- vm_blockparam_yield: |
- bp_yield{}
-loop_count: 30000000
diff --git a/benchmark/vm_case.yml b/benchmark/vm_case.yml
deleted file mode 100644
index b26a491a15..0000000000
--- a/benchmark/vm_case.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-benchmark:
- vm_case: |
- case :foo
- when :bar
- raise
- when :baz
- raise
- when :boo
- raise
- when :foo
- # noop
- end
-loop_count: 6000000
diff --git a/benchmark/vm_case_classes.yml b/benchmark/vm_case_classes.yml
deleted file mode 100644
index cacc4f0464..0000000000
--- a/benchmark/vm_case_classes.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-benchmark:
- vm_case_classes: |
- case :foo
- when Hash
- raise
- when Array
- raise
- end
-loop_count: 6000000
diff --git a/benchmark/vm_case_lit.yml b/benchmark/vm_case_lit.yml
deleted file mode 100644
index 9f91801544..0000000000
--- a/benchmark/vm_case_lit.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-# loop_count is not utilized since `i` is involved in the script
-benchmark:
- vm_case_lit: |
- i = 0
- @ret = [ "foo", true, false, :sym, 6, nil, 0.1, 0xffffffffffffffff ]
- def foo(i)
- @ret[i % @ret.size]
- end
-
- while i<6_000_000
- case foo(i)
- when "foo" then :foo
- when true then true
- when false then false
- when :sym then :sym
- when 6 then :fix
- when nil then nil
- when 0.1 then :float
- when 0xffffffffffffffff then :big
- end
- i += 1
- end
-loop_count: 1
diff --git a/benchmark/vm_clearmethodcache.rb b/benchmark/vm_clearmethodcache.rb
deleted file mode 100644
index 9661323cd2..0000000000
--- a/benchmark/vm_clearmethodcache.rb
+++ /dev/null
@@ -1,8 +0,0 @@
-i = 0
-while i<200_000
- i += 1
-
- Class.new{
- def m; end
- }
-end
diff --git a/benchmark/vm_const.yml b/benchmark/vm_const.yml
deleted file mode 100644
index 6064d4eed0..0000000000
--- a/benchmark/vm_const.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-prelude: |
- Const = 1
-benchmark:
- vm_const: |
- j = Const
- k = Const
-loop_count: 30000000
diff --git a/benchmark/vm_cvar.yml b/benchmark/vm_cvar.yml
deleted file mode 100644
index 1d0e161829..0000000000
--- a/benchmark/vm_cvar.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-prelude: |
- class A
- @@foo = 1
-
- def self.foo
- @@foo
- end
-
- ("A".."Z").each do |module_name|
- eval <<-EOM
- module #{module_name}
- end
-
- include #{module_name}
- EOM
- end
- end
-benchmark:
- vm_cvar: A.foo
-loop_count: 600000
diff --git a/benchmark/vm_defined_method.yml b/benchmark/vm_defined_method.yml
deleted file mode 100644
index 347e0cfd33..0000000000
--- a/benchmark/vm_defined_method.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-prelude: |
- class Object
- define_method(:m){}
- end
-benchmark:
- vm_defined_method: |
- m; m; m; m; m; m; m; m;
-loop_count: 6000000
diff --git a/benchmark/vm_dstr.yml b/benchmark/vm_dstr.yml
deleted file mode 100644
index 30c7a3193c..0000000000
--- a/benchmark/vm_dstr.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-prelude: |
- x = y = 'z'
-benchmark:
- vm_dstr: |
- str = "foo#{x}bar#{y}baz"
-loop_count: 6000000
diff --git a/benchmark/vm_dstr_ary.rb b/benchmark/vm_dstr_ary.rb
deleted file mode 100644
index 1d3aa3b97b..0000000000
--- a/benchmark/vm_dstr_ary.rb
+++ /dev/null
@@ -1,6 +0,0 @@
-i = 0
-x = y = []
-while i<6_000_000 # benchmark loop 2
- i += 1
- str = "foo#{x}bar#{y}baz"
-end
diff --git a/benchmark/vm_dstr_bool.rb b/benchmark/vm_dstr_bool.rb
deleted file mode 100644
index 631ca54755..0000000000
--- a/benchmark/vm_dstr_bool.rb
+++ /dev/null
@@ -1,7 +0,0 @@
-i = 0
-x = true
-y = false
-while i<6_000_000 # benchmark loop 2
- i += 1
- str = "foo#{x}bar#{y}baz"
-end
diff --git a/benchmark/vm_dstr_class_module.rb b/benchmark/vm_dstr_class_module.rb
deleted file mode 100644
index becf0861c7..0000000000
--- a/benchmark/vm_dstr_class_module.rb
+++ /dev/null
@@ -1,10 +0,0 @@
-i = 0
-class A; end unless defined?(A)
-module B; end unless defined?(B)
-x = A
-y = B
-while i<6_000_000 # benchmark loop 2
- i += 1
- str = "foo#{x}bar#{y}baz"
-end
-
diff --git a/benchmark/vm_dstr_digit.rb b/benchmark/vm_dstr_digit.rb
deleted file mode 100644
index caaa395192..0000000000
--- a/benchmark/vm_dstr_digit.rb
+++ /dev/null
@@ -1,7 +0,0 @@
-i = 0
-x = 0
-y = 9
-while i<6_000_000 # benchmark loop 2
- i += 1
- str = "foo#{x}bar#{y}baz"
-end
diff --git a/benchmark/vm_dstr_int.rb b/benchmark/vm_dstr_int.rb
deleted file mode 100644
index ed380d7595..0000000000
--- a/benchmark/vm_dstr_int.rb
+++ /dev/null
@@ -1,5 +0,0 @@
-i = 0
-while i<6_000_000 # benchmark loop 2
- i += 1
- str = "foo#{i}bar#{i}baz"
-end
diff --git a/benchmark/vm_dstr_nil.rb b/benchmark/vm_dstr_nil.rb
deleted file mode 100644
index ec4f5d6c67..0000000000
--- a/benchmark/vm_dstr_nil.rb
+++ /dev/null
@@ -1,6 +0,0 @@
-i = 0
-x = y = nil
-while i<6_000_000 # benchmark loop 2
- i += 1
- str = "foo#{x}bar#{y}baz"
-end
diff --git a/benchmark/vm_dstr_obj.rb b/benchmark/vm_dstr_obj.rb
deleted file mode 100644
index fb78637ead..0000000000
--- a/benchmark/vm_dstr_obj.rb
+++ /dev/null
@@ -1,6 +0,0 @@
-i = 0
-x = y = Object.new
-while i<6_000_000 # benchmark loop 2
- i += 1
- str = "foo#{x}bar#{y}baz"
-end
diff --git a/benchmark/vm_dstr_obj_def.rb b/benchmark/vm_dstr_obj_def.rb
deleted file mode 100644
index 99ff7b98fb..0000000000
--- a/benchmark/vm_dstr_obj_def.rb
+++ /dev/null
@@ -1,8 +0,0 @@
-i = 0
-o = Object.new
-def o.to_s; -""; end
-x = y = o
-while i<6_000_000 # benchmark loop 2
- i += 1
- str = "foo#{x}bar#{y}baz"
-end
diff --git a/benchmark/vm_dstr_str.rb b/benchmark/vm_dstr_str.rb
deleted file mode 100644
index 45fc107892..0000000000
--- a/benchmark/vm_dstr_str.rb
+++ /dev/null
@@ -1,6 +0,0 @@
-i = 0
-x = y = ""
-while i<6_000_000 # benchmark loop 2
- i += 1
- str = "foo#{x}bar#{y}baz"
-end
diff --git a/benchmark/vm_dstr_sym.rb b/benchmark/vm_dstr_sym.rb
deleted file mode 100644
index 484b8f8150..0000000000
--- a/benchmark/vm_dstr_sym.rb
+++ /dev/null
@@ -1,6 +0,0 @@
-i = 0
-x = y = :z
-while i<6_000_000 # benchmark loop 2
- i += 1
- str = "foo#{x}bar#{y}baz"
-end
diff --git a/benchmark/vm_ensure.yml b/benchmark/vm_ensure.yml
deleted file mode 100644
index 4ea62f30de..0000000000
--- a/benchmark/vm_ensure.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-# Not utilizing loop_count since using it for this is too unstable for now
-benchmark:
- vm_ensure: |
- i = 0
- while i<30_000_000
- i += 1
- begin
- begin
- ensure
- end
- ensure
- end
- end
-loop_count: 1
diff --git a/benchmark/vm_eval.yml b/benchmark/vm_eval.yml
deleted file mode 100644
index 7ba1a8d1de..0000000000
--- a/benchmark/vm_eval.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-benchmark:
- vm_eval: |
- eval("1")
-loop_count: 6000000
diff --git a/benchmark/vm_fiber_allocate.yml b/benchmark/vm_fiber_allocate.yml
deleted file mode 100644
index b5a54e1ddf..0000000000
--- a/benchmark/vm_fiber_allocate.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-prelude: |
- # Disable GC to see raw throughput:
- GC.disable
-benchmark:
- vm_fiber_allocate: |
- fiber = Fiber.new{Fiber.yield}
- fiber.resume
-loop_count: 100000
diff --git a/benchmark/vm_fiber_count.yml b/benchmark/vm_fiber_count.yml
deleted file mode 100644
index b83d3152d4..0000000000
--- a/benchmark/vm_fiber_count.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-# On Linux, you will need to increase the maximum number of memory maps:
-# sudo sysctl -w vm.max_map_count=200000
-prelude: |
- fibers = []
-benchmark:
- vm_fiber_count: |
- fiber = Fiber.new{Fiber.yield}
- fibers << fiber
- fiber.resume
-loop_count: 100000
diff --git a/benchmark/vm_fiber_reuse.yml b/benchmark/vm_fiber_reuse.yml
deleted file mode 100644
index 4ca41085b1..0000000000
--- a/benchmark/vm_fiber_reuse.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-prelude: |
- GC.disable
- fibers = []
-benchmark:
- vm_fiber_reuse: |
- 1024.times do
- fiber = Fiber.new{Fiber.yield}
- fibers << fiber
- fiber.resume
- end
-
- fibers.clear
- GC.start
-loop_count: 200
diff --git a/benchmark/vm_fiber_reuse_gc.yml b/benchmark/vm_fiber_reuse_gc.yml
deleted file mode 100644
index 892622f121..0000000000
--- a/benchmark/vm_fiber_reuse_gc.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-# https://bugs.ruby-lang.org/issues/16009
-prelude: |
- fibers = []
-benchmark:
- vm_fiber_reuse_gc: |
- 2000.times do
- fiber = Fiber.new{Fiber.yield}
- fibers << fiber
- fiber.resume
- end
- fibers.clear
-loop_count: 100
diff --git a/benchmark/vm_fiber_switch.yml b/benchmark/vm_fiber_switch.yml
deleted file mode 100644
index 3de36b66eb..0000000000
--- a/benchmark/vm_fiber_switch.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-prelude: |
- # based on benchmark for [ruby-core:65518] [Feature #10341] by Knut Franke
- fib = Fiber.new do
- loop { Fiber.yield }
- end
-benchmark:
- vm_fiber_switch: |
- fib.resume
-loop_count: 20000000
diff --git a/benchmark/vm_float_simple.yml b/benchmark/vm_float_simple.yml
deleted file mode 100644
index 92f5fd52ab..0000000000
--- a/benchmark/vm_float_simple.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-prelude: |
- f = 0.0
-benchmark:
- vm_float_simple: |
- f += 0.1; f -= 0.1
- f += 0.1; f -= 0.1
- f += 0.1; f -= 0.1
-loop_count: 30000000
diff --git a/benchmark/vm_freezestring.yml b/benchmark/vm_freezestring.yml
deleted file mode 100644
index facc9aa043..0000000000
--- a/benchmark/vm_freezestring.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-prelude: |
- class String
- def freeze
- -self
- end
- end
-benchmark:
- vm_freezestring: |
- "tXnL1BP5T1WPXMjuFNLQtallEtRcay1t2lHtJSrlVsDgvunlbtfpr/DGdH0NGYE9".freeze
-loop_count: 6000000
diff --git a/benchmark/vm_gc.rb b/benchmark/vm_gc.rb
deleted file mode 100644
index e668026915..0000000000
--- a/benchmark/vm_gc.rb
+++ /dev/null
@@ -1,6 +0,0 @@
-5000.times do
- 100.times do
- {"xxxx"=>"yyyy"}
- end
- GC.start
-end
diff --git a/benchmark/vm_gc_old_full.rb b/benchmark/vm_gc_old_full.rb
deleted file mode 100644
index cfdfc8c5a5..0000000000
--- a/benchmark/vm_gc_old_full.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-old_object = Array.new(1_000_000){''}
-100.times do
- GC.start
-end
diff --git a/benchmark/vm_gc_old_immediate.rb b/benchmark/vm_gc_old_immediate.rb
deleted file mode 100644
index ad22feb655..0000000000
--- a/benchmark/vm_gc_old_immediate.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-old_object = Array.new(1_000_000){''}
-30_000.times do
- GC.start(full_mark: false, immediate_sweep: true)
-end
diff --git a/benchmark/vm_gc_old_lazy.rb b/benchmark/vm_gc_old_lazy.rb
deleted file mode 100644
index b74d44baf1..0000000000
--- a/benchmark/vm_gc_old_lazy.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-old_object = Array.new(1_000_000){''}
-30_000.times do
- GC.start(full_mark: false, immediate_sweep: false)
-end
diff --git a/benchmark/vm_gc_short_lived.yml b/benchmark/vm_gc_short_lived.yml
deleted file mode 100644
index 29c803fee3..0000000000
--- a/benchmark/vm_gc_short_lived.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-benchmark:
- vm_gc_short_lived: |
- a = '' # short-lived String
- b = ''
- c = ''
- d = ''
- e = ''
- f = ''
-loop_count: 30000000
diff --git a/benchmark/vm_gc_short_with_complex_long.yml b/benchmark/vm_gc_short_with_complex_long.yml
deleted file mode 100644
index 4b6c3ed7b9..0000000000
--- a/benchmark/vm_gc_short_with_complex_long.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-prelude: |
- def nested_hash h, n
- if n == 0
- ''
- else
- 10.times{
- h[Object.new] = nested_hash(h, n-1)
- }
- end
- end
-
- long_lived = Hash.new
- nested_hash long_lived, 6
-
- GC.start
- GC.start
-benchmark:
- vm_gc_short_with_complex_long: |
- a = '' # short-lived String
- b = ''
- c = ''
- d = ''
- e = ''
- f = ''
-loop_count: 30000000
diff --git a/benchmark/vm_gc_short_with_long.yml b/benchmark/vm_gc_short_with_long.yml
deleted file mode 100644
index 03ba0f95a9..0000000000
--- a/benchmark/vm_gc_short_with_long.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-prelude: |
- long_lived = Array.new(1_000_000){|i| "#{i}"}
- GC.start
- GC.start
-benchmark:
- vm_gc_short_with_long: |
- a = '' # short-lived String
- b = ''
- c = ''
- d = ''
- e = ''
- f = ''
-loop_count: 30000000
diff --git a/benchmark/vm_gc_short_with_symbol.yml b/benchmark/vm_gc_short_with_symbol.yml
deleted file mode 100644
index 129b8bf4ed..0000000000
--- a/benchmark/vm_gc_short_with_symbol.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-prelude: |
- 50_000.times{|i| sym = "sym#{i}".to_sym}
- GC.start
- GC.start
-benchmark:
- vm_gc_short_with_symbol: |
- a = '' # short-lived String
- b = ''
- c = ''
- d = ''
- e = ''
- f = ''
-loop_count: 30000000
diff --git a/benchmark/vm_gc_wb_ary.yml b/benchmark/vm_gc_wb_ary.yml
deleted file mode 100644
index e3293e72d0..0000000000
--- a/benchmark/vm_gc_wb_ary.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-prelude: |
- short_lived_ary = []
-
- if RUBY_VERSION >= "2.2.0"
- GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true)
- end
-
- short_lived = ''
-benchmark:
- vm_gc_wb_ary: |
- short_lived_ary[0] = short_lived # write barrier
-loop_count: 30000000
diff --git a/benchmark/vm_gc_wb_ary_promoted.yml b/benchmark/vm_gc_wb_ary_promoted.yml
deleted file mode 100644
index 003995945b..0000000000
--- a/benchmark/vm_gc_wb_ary_promoted.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-prelude: |
- long_lived = []
-
- if RUBY_VERSION > "2.2.0"
- 3.times{ GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true) }
- elsif
- GC.start
- end
-
- short_lived = ''
-
-benchmark:
- vm_gc_wb_ary_promoted: |
- long_lived[0] = short_lived # write barrier
-loop_count: 30000000
diff --git a/benchmark/vm_gc_wb_obj.yml b/benchmark/vm_gc_wb_obj.yml
deleted file mode 100644
index a2a2ce2d18..0000000000
--- a/benchmark/vm_gc_wb_obj.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-prelude: |
- class C
- attr_accessor :foo
- end
- short_lived_obj = C.new
-
- if RUBY_VERSION >= "2.2.0"
- GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true)
- end
-
- short_lived = ''
-benchmark:
- vm_gc_wb_obj: |
- short_lived_obj.foo = short_lived # write barrier
-loop_count: 30000000
diff --git a/benchmark/vm_gc_wb_obj_promoted.yml b/benchmark/vm_gc_wb_obj_promoted.yml
deleted file mode 100644
index 00a454ba72..0000000000
--- a/benchmark/vm_gc_wb_obj_promoted.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-prelude: |
- class C
- attr_accessor :foo
- end
- long_lived = C.new
-
- if RUBY_VERSION >= "2.2.0"
- 3.times{ GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true) }
- elsif
- GC.start
- end
-
- short_lived = ''
-benchmark:
- vm_gc_wb_obj_promoted: |
- long_lived.foo = short_lived # write barrier
-loop_count: 30000000
diff --git a/benchmark/vm_iclass_super.yml b/benchmark/vm_iclass_super.yml
deleted file mode 100644
index 21bb7db247..0000000000
--- a/benchmark/vm_iclass_super.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-prelude: |
- class C
- def m
- 1
- end
-
- ("A".."M").each do |module_name|
- eval <<-EOM
- module #{module_name}
- def m; super; end
- end
- prepend #{module_name}
- EOM
- end
- end
-
- obj = C.new
-benchmark:
- vm_iclass_super: obj.m
-loop_count: 6000000
diff --git a/benchmark/vm_ivar.yml b/benchmark/vm_ivar.yml
deleted file mode 100644
index 119531d5ef..0000000000
--- a/benchmark/vm_ivar.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-prelude: "@a = 1\n"
-benchmark:
- vm_ivar: |
- j = @a
- k = @a
-loop_count: 30000000
diff --git a/benchmark/vm_ivar_init.yml b/benchmark/vm_ivar_init.yml
deleted file mode 100644
index c6f1633907..0000000000
--- a/benchmark/vm_ivar_init.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-prelude: |
- class C
- def initialize
- @a = nil
- @b = nil
- @c = nil
- @d = nil
- @e = nil
- end
- end
-benchmark:
- vm_ivar_init: |
- C.new
-loop_count: 30000000
diff --git a/benchmark/vm_ivar_of_class.yml b/benchmark/vm_ivar_of_class.yml
deleted file mode 100644
index 172e28b2fd..0000000000
--- a/benchmark/vm_ivar_of_class.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-prelude: |
- class C
- @a = 1
- def self.a
- _a = @a; _a = @a; _a = @a; _a = @a; _a = @a;
- _a = @a; _a = @a; _a = @a; _a = @a; _a = @a;
- end
- end
-benchmark:
- vm_ivar_of_class: |
- a = C.a
-loop_count: 30000000
diff --git a/benchmark/vm_ivar_of_class_set.yml b/benchmark/vm_ivar_of_class_set.yml
deleted file mode 100644
index 2ea5199423..0000000000
--- a/benchmark/vm_ivar_of_class_set.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-prelude: |
- class C
- @a = 1
- def self.a o
- @a = o; @a = o; @a = o; @a = o; @a = o; @a = o;
- end
- end
-benchmark:
- vm_ivar_of_class_set: |
- a = C.a(nil)
-loop_count: 30000000
diff --git a/benchmark/vm_ivar_set.yml b/benchmark/vm_ivar_set.yml
deleted file mode 100644
index 8bbb60043b..0000000000
--- a/benchmark/vm_ivar_set.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-benchmark:
- vm_ivar_set: |
- @a = 1
- @b = 2
-loop_count: 30000000
diff --git a/benchmark/vm_ivar_set_subclass.yml b/benchmark/vm_ivar_set_subclass.yml
deleted file mode 100644
index 2653d36ded..0000000000
--- a/benchmark/vm_ivar_set_subclass.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-prelude: |
- class A
- def initialize
- @a = nil
- @b = nil
- @c = nil
- @d = nil
- @e = nil
- end
- end
- class B < A; end
- class C < A; end
-benchmark:
- vm_ivar_init_subclass: |
- B.new
- C.new
-loop_count: 3000000
diff --git a/benchmark/vm_length.yml b/benchmark/vm_length.yml
deleted file mode 100644
index 5fd94e7d86..0000000000
--- a/benchmark/vm_length.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-prelude: |
- a = 'abc'
- b = [1, 2, 3]
-benchmark:
- vm_length: |
- a.length
- b.length
-loop_count: 30000000
diff --git a/benchmark/vm_lvar_init.yml b/benchmark/vm_lvar_init.yml
deleted file mode 100644
index 70a9b1c0ca..0000000000
--- a/benchmark/vm_lvar_init.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-# while loop cost is not removed because `i` is used in the script
-benchmark:
- vm_lvar_init: |
- def m v
- unless v
- # unreachable code
- v1 = v2 = v3 = v4 = v5 = v6 = v7 = v8 = v9 = v10 =
- v11 = v12 = v13 = v14 = v15 = v16 = v17 = v18 = v19 = v20 =
- v21 = v22 = v23 = v24 = v25 = v26 = v27 = v28 = v29 = v30 =
- v31 = v32 = v33 = v34 = v35 = v36 = v37 = v38 = v39 = v40 =
- v41 = v42 = v43 = v44 = v45 = v46 = v47 = v48 = v49 = v50 = 1
- end
- end
-
- i = 0
-
- while i<30_000_000
- i += 1
- m i
- end
-loop_count: 1
diff --git a/benchmark/vm_lvar_set.yml b/benchmark/vm_lvar_set.yml
deleted file mode 100644
index f29f763d81..0000000000
--- a/benchmark/vm_lvar_set.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-benchmark:
- vm_lvar_set: |
- a = b = c = d = e = f = g = h = j = k = l = m = n = o = p = q = r = 1
-loop_count: 30000000
diff --git a/benchmark/vm_method.yml b/benchmark/vm_method.yml
deleted file mode 100644
index d45e4ec572..0000000000
--- a/benchmark/vm_method.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-prelude: |
- def m
- nil
- end
-benchmark:
- vm_method: |
- m; m; m; m; m; m; m; m;
-loop_count: 6000000
diff --git a/benchmark/vm_method_missing.yml b/benchmark/vm_method_missing.yml
deleted file mode 100644
index 3da456c0bb..0000000000
--- a/benchmark/vm_method_missing.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-prelude: |
- class C
- def method_missing mid
- end
- end
-
- obj = C.new
-benchmark:
- vm_method_missing: |
- obj.m; obj.m; obj.m; obj.m; obj.m; obj.m; obj.m; obj.m;
-loop_count: 6000000
diff --git a/benchmark/vm_method_with_block.yml b/benchmark/vm_method_with_block.yml
deleted file mode 100644
index 281a481394..0000000000
--- a/benchmark/vm_method_with_block.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-prelude: |
- def m
- nil
- end
-benchmark:
- vm_method_with_block: |
- m{}; m{}; m{}; m{}; m{}; m{}; m{}; m{};
-loop_count: 6000000
diff --git a/benchmark/vm_module_ann_const_set.yml b/benchmark/vm_module_ann_const_set.yml
deleted file mode 100644
index 243229ba4a..0000000000
--- a/benchmark/vm_module_ann_const_set.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-benchmark:
- vm_module_ann_const_set: |
- Module.new.const_set(:X, Module.new)
-loop_count: 6000000
diff --git a/benchmark/vm_module_const_set.yml b/benchmark/vm_module_const_set.yml
deleted file mode 100644
index e5a24181a9..0000000000
--- a/benchmark/vm_module_const_set.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-prelude: |
- module M
- end
- $VERBOSE = nil
-benchmark:
- vm_module_const_set: |
- M.const_set(:X, Module.new)
-loop_count: 6000000
diff --git a/benchmark/vm_mutex.yml b/benchmark/vm_mutex.yml
deleted file mode 100644
index abcf1e28ce..0000000000
--- a/benchmark/vm_mutex.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-prelude: |
- require 'thread'
-
- m = Thread::Mutex.new
-benchmark:
- vm_mutex: |
- m.synchronize{}
-loop_count: 6000000
diff --git a/benchmark/vm_neq.yml b/benchmark/vm_neq.yml
deleted file mode 100644
index fb04d15ae8..0000000000
--- a/benchmark/vm_neq.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-prelude: |
- obj1 = Object.new
- obj2 = Object.new
-benchmark:
- vm_neq: |
- obj1 != obj2
-loop_count: 30000000
diff --git a/benchmark/vm_newlambda.yml b/benchmark/vm_newlambda.yml
deleted file mode 100644
index 0b9787d91a..0000000000
--- a/benchmark/vm_newlambda.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-benchmark:
- vm_newlambda: |
- lambda {}
-loop_count: 6000000
diff --git a/benchmark/vm_not.yml b/benchmark/vm_not.yml
deleted file mode 100644
index c68dde3c50..0000000000
--- a/benchmark/vm_not.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-prelude: |
- obj = Object.new
-benchmark:
- vm_not: |
- !obj
-loop_count: 30000000
diff --git a/benchmark/vm_poly_method.yml b/benchmark/vm_poly_method.yml
deleted file mode 100644
index dd2f4e71de..0000000000
--- a/benchmark/vm_poly_method.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-# loop_count is not utilized since `i` is involved in the script
-benchmark:
- vm_poly_method: |
- class C1
- def m
- 1
- end
- end
- class C2
- def m
- 2
- end
- end
-
- o1 = C1.new
- o2 = C2.new
-
- i = 0
- while i<6_000_000
- o = (i % 2 == 0) ? o1 : o2
- o.m; o.m; o.m; o.m; o.m; o.m; o.m; o.m
- i += 1
- end
-loop_count: 1
diff --git a/benchmark/vm_poly_method_ov.yml b/benchmark/vm_poly_method_ov.yml
deleted file mode 100644
index bca1b62729..0000000000
--- a/benchmark/vm_poly_method_ov.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-# loop_count is not utilized since `i` is involved in the script
-benchmark:
- vm_poly_method_ov: |
- class C1
- def m
- 1
- end
- end
- class C2
- def m
- 2
- end
- end
-
- o1 = C1.new
- o2 = C2.new
-
- i = 0
- while i<6_000_000
- o = (i % 2 == 0) ? o1 : o2
- # o.m; o.m; o.m; o.m; o.m; o.m; o.m; o.m
- i += 1
- end
-loop_count: 1
diff --git a/benchmark/vm_poly_same_method.yml b/benchmark/vm_poly_same_method.yml
deleted file mode 100644
index 6c5404ac84..0000000000
--- a/benchmark/vm_poly_same_method.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-prelude: |
- module AR; end
- class AR::Base
- def create_or_update
- nil
- end
- def save
- create_or_update
- end
- end
- class Foo < AR::Base; end
- class Bar < AR::Base; end
- o1 = Foo.new
- o2 = Bar.new
-benchmark:
- vm_poly_same_method: |
- o1.save; o2.save;
- o1.save; o2.save;
- o1.save; o2.save;
- o1.save; o2.save;
- o1.save; o2.save;
- o1.save; o2.save;
- o1.save; o2.save;
- o1.save; o2.save;
-loop_count: 6000000
diff --git a/benchmark/vm_poly_singleton.yml b/benchmark/vm_poly_singleton.yml
deleted file mode 100644
index c7923160fb..0000000000
--- a/benchmark/vm_poly_singleton.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-# loop_count is not utilized since `i` is involved in the script
-benchmark:
- vm_poly_singleton: |
- class C1
- def m; 1; end
- end
-
- o1 = C1.new
- o2 = C1.new
- o2.singleton_class
-
- i = 0
- while i<6_000_000 # benchmark loop 2
- o = (i % 2 == 0) ? o1 : o2
- o.m; o.m; o.m; o.m; o.m; o.m; o.m; o.m
- i += 1
- end
-loop_count: 1
diff --git a/benchmark/vm_proc.yml b/benchmark/vm_proc.yml
deleted file mode 100644
index 2f8de6c272..0000000000
--- a/benchmark/vm_proc.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-prelude: |
- def m &b
- b
- end
-
- pr = m{
- a = 1
- }
-benchmark:
- vm_proc: |
- pr.call
-loop_count: 6000000
diff --git a/benchmark/vm_raise1.yml b/benchmark/vm_raise1.yml
deleted file mode 100644
index 247d9f70ee..0000000000
--- a/benchmark/vm_raise1.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-prelude: |
- def rec n
- if n > 0
- rec n-1
- else
- raise
- end
- end
-benchmark:
- vm_raise1: |
- begin
- rec 1
- rescue
- # ignore
- end
-loop_count: 6000000
diff --git a/benchmark/vm_raise2.yml b/benchmark/vm_raise2.yml
deleted file mode 100644
index f0fa047b3c..0000000000
--- a/benchmark/vm_raise2.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-prelude: |
- def rec n
- if n > 0
- rec n-1
- else
- raise
- end
- end
-benchmark:
- vm_raise2: |
- begin
- rec 10
- rescue
- # ignore
- end
-loop_count: 6000000
diff --git a/benchmark/vm_regexp.yml b/benchmark/vm_regexp.yml
deleted file mode 100644
index 2aa3d94dbd..0000000000
--- a/benchmark/vm_regexp.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-prelude: |
- str = 'xxxhogexxx'
-benchmark:
- vm_regexp: |
- /hoge/ =~ str
- vm_regexp_invert: |
- str =~ /hoge/
-loop_count: 6000000
diff --git a/benchmark/vm_rescue.yml b/benchmark/vm_rescue.yml
deleted file mode 100644
index b4a0af521f..0000000000
--- a/benchmark/vm_rescue.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-benchmark:
- vm_rescue: |
- begin
- rescue
- end
-loop_count: 30000000
diff --git a/benchmark/vm_send.yml b/benchmark/vm_send.yml
deleted file mode 100644
index f31bc7ac89..0000000000
--- a/benchmark/vm_send.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-prelude: |
- class C
- def m
- end
- end
-
- o = C.new
- m = :m
-benchmark:
- vm_send: |
- o.__send__ :m
- vm_send_var: |
- o.__send__ m
-loop_count: 6000000
diff --git a/benchmark/vm_send_cfunc.yml b/benchmark/vm_send_cfunc.yml
deleted file mode 100644
index b114ac317d..0000000000
--- a/benchmark/vm_send_cfunc.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-benchmark:
- vm_send_cfunc: self.class
-loop_count: 100000000
diff --git a/benchmark/vm_simplereturn.yml b/benchmark/vm_simplereturn.yml
deleted file mode 100644
index c9829cff0b..0000000000
--- a/benchmark/vm_simplereturn.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-prelude: |
- def m
- return 1
- end
-benchmark:
- vm_simplereturn: m
-loop_count: 30000000
diff --git a/benchmark/vm_string_literal.yml b/benchmark/vm_string_literal.yml
deleted file mode 100644
index 64439c7980..0000000000
--- a/benchmark/vm_string_literal.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-benchmark:
- vm_string_literal: |
- x = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
-loop_count: 6000000
diff --git a/benchmark/vm_struct_big_aref_hi.yml b/benchmark/vm_struct_big_aref_hi.yml
deleted file mode 100644
index 4cf78970cb..0000000000
--- a/benchmark/vm_struct_big_aref_hi.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-prelude: |
- s = Struct.new(*('a'..'z').map { |x| x.to_sym })
- x = s.new
-benchmark:
- vm_struct_big_aref_hi: |
- x.z # x[25]
-loop_count: 6000000
diff --git a/benchmark/vm_struct_big_aref_lo.yml b/benchmark/vm_struct_big_aref_lo.yml
deleted file mode 100644
index c91af27fa5..0000000000
--- a/benchmark/vm_struct_big_aref_lo.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-prelude: |
- s = Struct.new(*('a'..'z').map { |x| x.to_sym })
- x = s.new
-benchmark:
- vm_struct_big_aref_lo: |
- x.k # x[10]
-loop_count: 6000000
diff --git a/benchmark/vm_struct_big_aset.yml b/benchmark/vm_struct_big_aset.yml
deleted file mode 100644
index 69550d14ea..0000000000
--- a/benchmark/vm_struct_big_aset.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-# loop_count is not utilized since `i` is involved in the script
-benchmark:
- vm_struct_big_aset: |
- s = Struct.new(*('a'..'z').map { |x| x.to_sym })
- x = s.new
- i = 0
- while i<6_000_000
- i += 1
- x.k = i # x[10] = i
- end
-loop_count: 1
diff --git a/benchmark/vm_struct_big_href_hi.yml b/benchmark/vm_struct_big_href_hi.yml
deleted file mode 100644
index 09b764dd13..0000000000
--- a/benchmark/vm_struct_big_href_hi.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-prelude: |
- s = Struct.new(*('a'..'z').map { |x| x.to_sym })
- x = s.new
-benchmark:
- vm_struct_big_href_hi: |
- x[:z]
-loop_count: 6000000
diff --git a/benchmark/vm_struct_big_href_lo.yml b/benchmark/vm_struct_big_href_lo.yml
deleted file mode 100644
index d2f00b220f..0000000000
--- a/benchmark/vm_struct_big_href_lo.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-prelude: |
- s = Struct.new(*('a'..'z').map { |x| x.to_sym })
- x = s.new
-benchmark:
- vm_struct_big_href_lo: |
- x[:k]
-loop_count: 6000000
diff --git a/benchmark/vm_struct_big_hset.yml b/benchmark/vm_struct_big_hset.yml
deleted file mode 100644
index fc45cbee9c..0000000000
--- a/benchmark/vm_struct_big_hset.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-# loop_count is not utilized since `i` is involved in the script
-benchmark:
- vm_struct_big_hset: |
- s = Struct.new(*('a'..'z').map { |x| x.to_sym })
- x = s.new
- i = 0
- while i<6_000_000
- i += 1
- x[:k] = i
- end
-loop_count: 1
diff --git a/benchmark/vm_struct_small_aref.yml b/benchmark/vm_struct_small_aref.yml
deleted file mode 100644
index 5a83251d1e..0000000000
--- a/benchmark/vm_struct_small_aref.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-prelude: |
- s = Struct.new(:a, :b, :c)
- x = s.new
-benchmark:
- vm_struct_small_aref: |
- x.a
-loop_count: 6000000
diff --git a/benchmark/vm_struct_small_aset.yml b/benchmark/vm_struct_small_aset.yml
deleted file mode 100644
index 74f435f126..0000000000
--- a/benchmark/vm_struct_small_aset.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-# loop_count is not utilized since `i` is involved in the script
-benchmark:
- vm_struct_small_aset: |
- s = Struct.new(:a, :b, :c)
- x = s.new
- i = 0
- while i<6_000_000
- i += 1
- x.a = i
- end
-loop_count: 1
diff --git a/benchmark/vm_struct_small_href.yml b/benchmark/vm_struct_small_href.yml
deleted file mode 100644
index 6b7d7f39e7..0000000000
--- a/benchmark/vm_struct_small_href.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-prelude: |
- s = Struct.new(:a, :b, :c)
- x = s.new
-benchmark:
- vm_struct_small_href: |
- x[:a]
-loop_count: 6000000
diff --git a/benchmark/vm_struct_small_hset.yml b/benchmark/vm_struct_small_hset.yml
deleted file mode 100644
index 5d43b150de..0000000000
--- a/benchmark/vm_struct_small_hset.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-prelude: |
- s = Struct.new(:a, :b, :c)
- x = s.new
-benchmark:
- vm_struct_small_hset: |
- x[:a] = 1
-loop_count: 6000000
diff --git a/benchmark/vm_super.yml b/benchmark/vm_super.yml
deleted file mode 100644
index 0d1e965c6e..0000000000
--- a/benchmark/vm_super.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-prelude: |
- class C
- def m
- 1
- end
- end
-
- class CC < C
- def m
- super()
- end
- end
-
- obj = CC.new
-benchmark:
- vm_super: obj.m
-loop_count: 6000000
diff --git a/benchmark/vm_swap.yml b/benchmark/vm_swap.yml
deleted file mode 100644
index e824a65e0a..0000000000
--- a/benchmark/vm_swap.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-prelude: |
- a = 1
- b = 2
-benchmark:
- vm_swap: |
- a, b = b, a
-loop_count: 30000000
diff --git a/benchmark/vm_symbol_block_pass.rb b/benchmark/vm_symbol_block_pass.rb
deleted file mode 100644
index 1d433353e1..0000000000
--- a/benchmark/vm_symbol_block_pass.rb
+++ /dev/null
@@ -1,13 +0,0 @@
-class C
- 1000.times {|i|
- eval("def i#{i};end")
- }
-end
-
-c = C.new
-m = C.instance_methods(false)
-5_000.times do
- m.each do |n|
- c.tap(&n)
- end
-end
diff --git a/benchmark/vm_thread_alive_check.yml b/benchmark/vm_thread_alive_check.yml
deleted file mode 100644
index d21737d3e8..0000000000
--- a/benchmark/vm_thread_alive_check.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-benchmark:
- vm_thread_alive_check: |
- t = Thread.new{}
- while t.alive?
- Thread.pass
- end
-loop_count: 50_000
-
diff --git a/benchmark/vm_thread_close.rb b/benchmark/vm_thread_close.rb
deleted file mode 100644
index 3e9a265ce8..0000000000
--- a/benchmark/vm_thread_close.rb
+++ /dev/null
@@ -1,6 +0,0 @@
-1000.times { Thread.new { sleep } }
-i = 0
-while i<100_000 # benchmark loop 3
- i += 1
- IO.pipe.each(&:close)
-end
diff --git a/benchmark/vm_thread_condvar1.rb b/benchmark/vm_thread_condvar1.rb
deleted file mode 100644
index feed27c3ad..0000000000
--- a/benchmark/vm_thread_condvar1.rb
+++ /dev/null
@@ -1,28 +0,0 @@
-# two threads, two mutex, two condvar ping-pong
-require 'thread'
-m1 = Thread::Mutex.new
-m2 = Thread::Mutex.new
-cv1 = Thread::ConditionVariable.new
-cv2 = Thread::ConditionVariable.new
-max = 100000
-i = 0
-wait = nil
-m2.synchronize do
- wait = Thread.new do
- m1.synchronize do
- m2.synchronize { cv2.signal }
- while (i += 1) < max
- cv1.wait(m1)
- cv2.signal
- end
- end
- end
- cv2.wait(m2)
-end
-m1.synchronize do
- while i < max
- cv1.signal
- cv2.wait(m1)
- end
-end
-wait.join
diff --git a/benchmark/vm_thread_condvar2.rb b/benchmark/vm_thread_condvar2.rb
deleted file mode 100644
index 6590c4134b..0000000000
--- a/benchmark/vm_thread_condvar2.rb
+++ /dev/null
@@ -1,35 +0,0 @@
-# many threads, one mutex, many condvars
-require 'thread'
-m = Thread::Mutex.new
-cv1 = Thread::ConditionVariable.new
-cv2 = Thread::ConditionVariable.new
-max = 1000
-n = 100
-waiting = 0
-scvs = []
-waiters = n.times.map do |i|
- start_cv = Thread::ConditionVariable.new
- scvs << start_cv
- start_mtx = Thread::Mutex.new
- start_mtx.synchronize do
- th = Thread.new(start_mtx, start_cv) do |sm, scv|
- m.synchronize do
- sm.synchronize { scv.signal }
- max.times do
- cv2.signal if (waiting += 1) == n
- cv1.wait(m)
- end
- end
- end
- start_cv.wait(start_mtx)
- th
- end
-end
-m.synchronize do
- max.times do
- cv2.wait(m) until waiting == n
- waiting = 0
- cv1.broadcast
- end
-end
-waiters.each(&:join)
diff --git a/benchmark/vm_thread_create_join.rb b/benchmark/vm_thread_create_join.rb
deleted file mode 100644
index 393cd45df9..0000000000
--- a/benchmark/vm_thread_create_join.rb
+++ /dev/null
@@ -1,6 +0,0 @@
-i = 0
-while i<100_000 # benchmark loop 3
- i += 1
- Thread.new{
- }.join
-end
diff --git a/benchmark/vm_thread_mutex1.rb b/benchmark/vm_thread_mutex1.rb
deleted file mode 100644
index 66e42c85e1..0000000000
--- a/benchmark/vm_thread_mutex1.rb
+++ /dev/null
@@ -1,21 +0,0 @@
-# one thread, one mutex (no contention)
-
-require 'thread'
-m = Thread::Mutex.new
-r = 0
-max = 2000
-lmax = max * max
-(1..1).map{
- Thread.new{
- i = 0
- while i<lmax
- i += 1
- m.synchronize{
- r += 1
- }
- end
- }
-}.each{|e|
- e.join
-}
-raise r.to_s if r != max * max
diff --git a/benchmark/vm_thread_mutex2.rb b/benchmark/vm_thread_mutex2.rb
deleted file mode 100644
index 6e6c804c31..0000000000
--- a/benchmark/vm_thread_mutex2.rb
+++ /dev/null
@@ -1,21 +0,0 @@
-# two threads, one mutex
-
-require 'thread'
-m = Thread::Mutex.new
-r = 0
-max = 2000
-lmax = (max * max)/2
-(1..2).map{
- Thread.new{
- i = 0
- while i<lmax
- i += 1
- m.synchronize{
- r += 1
- }
- end
- }
-}.each{|e|
- e.join
-}
-raise r.to_s if r != max * max
diff --git a/benchmark/vm_thread_mutex3.rb b/benchmark/vm_thread_mutex3.rb
deleted file mode 100644
index c750dc542a..0000000000
--- a/benchmark/vm_thread_mutex3.rb
+++ /dev/null
@@ -1,20 +0,0 @@
-# 1000 threads, one mutex
-
-require 'thread'
-m = Thread::Mutex.new
-r = 0
-max = 2000
-(1..max).map{
- Thread.new{
- i = 0
- while i<max
- i += 1
- m.synchronize{
- r += 1
- }
- end
- }
-}.each{|e|
- e.join
-}
-raise r.to_s if r != max * max
diff --git a/benchmark/vm_thread_pass.rb b/benchmark/vm_thread_pass.rb
deleted file mode 100644
index 438bd08d45..0000000000
--- a/benchmark/vm_thread_pass.rb
+++ /dev/null
@@ -1,15 +0,0 @@
-# Plenty Thread.pass
-# A performance may depend on GVL implementation.
-
-tmax = (ARGV.shift || 8).to_i
-lmax = 400_000 / tmax
-
-(1..tmax).map{
- Thread.new{
- lmax.times{
- Thread.pass
- }
- }
-}.each{|t| t.join}
-
-
diff --git a/benchmark/vm_thread_pass_flood.rb b/benchmark/vm_thread_pass_flood.rb
deleted file mode 100644
index 65df8e6154..0000000000
--- a/benchmark/vm_thread_pass_flood.rb
+++ /dev/null
@@ -1,10 +0,0 @@
-# n.b. this is a good test for GVL when pinned to a single CPU
-
-5_000.times{
- Thread.new{loop{Thread.pass}}
-}
-
-i = 0
-while i<10_000
- i += 1
-end
diff --git a/benchmark/vm_thread_pipe.rb b/benchmark/vm_thread_pipe.rb
deleted file mode 100644
index 112a621905..0000000000
--- a/benchmark/vm_thread_pipe.rb
+++ /dev/null
@@ -1,17 +0,0 @@
-# Measure small and plenty pipe read/write.
-# A performance may depend on GVL implementation.
-
-lmax = 100_000
-r, w = IO.pipe
-[Thread.new{
- lmax.times{
- w.write('a')
- }
- p "w:exit"
-}, Thread.new{
- lmax.times{
- r.read(1)
- }
- p "r:exit"
-}].each{|t| t.join}
-
diff --git a/benchmark/vm_thread_queue.rb b/benchmark/vm_thread_queue.rb
deleted file mode 100644
index 1dd3696a3c..0000000000
--- a/benchmark/vm_thread_queue.rb
+++ /dev/null
@@ -1,18 +0,0 @@
-require 'thread'
-
-n = 10_000_000
-q = Thread::Queue.new
-consumer = Thread.new{
- while q.pop
- # consuming
- end
-}
-
-producer = Thread.new{
- n.times{
- q.push true
- }
- q.push nil
-}
-
-consumer.join
diff --git a/benchmark/vm_thread_sized_queue.rb b/benchmark/vm_thread_sized_queue.rb
deleted file mode 100644
index 7b9af5482b..0000000000
--- a/benchmark/vm_thread_sized_queue.rb
+++ /dev/null
@@ -1,20 +0,0 @@
-require 'thread'
-# on producer, one consumer
-
-n = 1_000_000
-q = Thread::SizedQueue.new(100)
-consumer = Thread.new{
- while q.pop
- # consuming
- end
-}
-
-producer = Thread.new{
- while n > 0
- q.push true
- n -= 1
- end
- q.push nil
-}
-
-consumer.join
diff --git a/benchmark/vm_thread_sized_queue2.rb b/benchmark/vm_thread_sized_queue2.rb
deleted file mode 100644
index de9f55e978..0000000000
--- a/benchmark/vm_thread_sized_queue2.rb
+++ /dev/null
@@ -1,23 +0,0 @@
-require 'thread'
-# one producer, many consumers
-n = 1_000_000
-m = 10
-q = Thread::SizedQueue.new(100)
-consumers = m.times.map do
- Thread.new do
- while q.pop
- # consuming
- end
- end
-end
-
-producer = Thread.new do
- while n > 0
- q.push true
- n -= 1
- end
- m.times { q.push nil }
-end
-
-producer.join
-consumers.each(&:join)
diff --git a/benchmark/vm_thread_sized_queue3.rb b/benchmark/vm_thread_sized_queue3.rb
deleted file mode 100644
index ce5f1796d8..0000000000
--- a/benchmark/vm_thread_sized_queue3.rb
+++ /dev/null
@@ -1,22 +0,0 @@
-require 'thread'
-# many producers, one consumer
-n = 1_000_000
-m = 10
-q = Thread::SizedQueue.new(100)
-consumer = Thread.new do
- while q.pop
- # consuming
- end
-end
-
-producers = m.times.map do
- Thread.new do
- while n > 0
- q.push true
- n -= 1
- end
- end
-end
-producers.each(&:join)
-q.push nil
-consumer.join
diff --git a/benchmark/vm_thread_sized_queue4.rb b/benchmark/vm_thread_sized_queue4.rb
deleted file mode 100644
index a9b7d80ec0..0000000000
--- a/benchmark/vm_thread_sized_queue4.rb
+++ /dev/null
@@ -1,26 +0,0 @@
-require 'thread'
-# many producers, many consumers
-nr = 1_000_000
-n = 10
-m = 10
-q = Thread::SizedQueue.new(100)
-consumers = n.times.map do
- Thread.new do
- while q.pop
- # consuming
- end
- end
-end
-
-producers = m.times.map do
- Thread.new do
- while nr > 0
- q.push true
- nr -= 1
- end
- end
-end
-
-producers.each(&:join)
-n.times { q.push nil }
-consumers.each(&:join)
diff --git a/benchmark/vm_thread_sleep.yml b/benchmark/vm_thread_sleep.yml
deleted file mode 100644
index 96901d8466..0000000000
--- a/benchmark/vm_thread_sleep.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-benchmark:
- vm_thread_sleep: |
- Thread.new { sleep }
-loop_count: 10_000
diff --git a/benchmark/vm_unif1.yml b/benchmark/vm_unif1.yml
deleted file mode 100644
index 04187bb0e2..0000000000
--- a/benchmark/vm_unif1.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-prelude: |
- def m a, b
- end
-benchmark:
- vm_unif1: |
- m 100, 200
-loop_count: 6000000
diff --git a/benchmark/vm_yield.yml b/benchmark/vm_yield.yml
deleted file mode 100644
index 230be3d84f..0000000000
--- a/benchmark/vm_yield.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-# while loop cost is not removed due to benchmark_driver.gem's limitation
-benchmark:
- vm_yield: |
- def m
- i = 0
- while i<30_000_000
- i += 1
- yield
- end
- end
-
- m{}
-loop_count: 1
diff --git a/benchmark/vm_zsuper.yml b/benchmark/vm_zsuper.yml
deleted file mode 100644
index bfb5837578..0000000000
--- a/benchmark/vm_zsuper.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-prelude: |
- class C
- def m a
- 1
- end
- end
-
- class CC < C
- def m a
- super
- end
- end
-
- obj = CC.new
-benchmark:
- vm_zsuper: |
- obj.m 10
-loop_count: 6000000
diff --git a/bignum.c b/bignum.c
index f83fbe2c14..870e4129c5 100644
--- a/bignum.c
+++ b/bignum.c
@@ -1,5229 +1,405 @@
-/**********************************************************************
+/************************************************
bignum.c -
$Author$
+ $Date$
created at: Fri Jun 10 00:48:55 JST 1994
- Copyright (C) 1993-2007 Yukihiro Matsumoto
+************************************************/
-**********************************************************************/
-
-#include "ruby/internal/config.h"
-
-#include <ctype.h>
-#include <float.h>
+#include "ruby.h"
#include <math.h>
+#include <ctype.h>
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-
-#ifdef HAVE_IEEEFP_H
-# include <ieeefp.h>
-#endif
-
-#if defined(HAVE_LIBGMP) && defined(HAVE_GMP_H)
-# define USE_GMP
-# include <gmp.h>
-#endif
-
-#include "id.h"
-#include "internal.h"
-#include "internal/bignum.h"
-#include "internal/complex.h"
-#include "internal/gc.h"
-#include "internal/numeric.h"
-#include "internal/object.h"
-#include "internal/sanitizers.h"
-#include "internal/variable.h"
-#include "internal/warnings.h"
-#include "ruby/thread.h"
-#include "ruby/util.h"
-#include "ruby_assert.h"
-
-const char ruby_digitmap[] = "0123456789abcdefghijklmnopqrstuvwxyz";
-
-#ifndef SIZEOF_BDIGIT_DBL
-# if SIZEOF_INT*2 <= SIZEOF_LONG_LONG
-# define SIZEOF_BDIGIT_DBL SIZEOF_LONG_LONG
-# else
-# define SIZEOF_BDIGIT_DBL SIZEOF_LONG
-# endif
-#endif
-
-STATIC_ASSERT(sizeof_bdigit_dbl, sizeof(BDIGIT_DBL) == SIZEOF_BDIGIT_DBL);
-STATIC_ASSERT(sizeof_bdigit_dbl_signed, sizeof(BDIGIT_DBL_SIGNED) == SIZEOF_BDIGIT_DBL);
-STATIC_ASSERT(sizeof_bdigit, SIZEOF_BDIGIT <= sizeof(BDIGIT));
-STATIC_ASSERT(sizeof_bdigit_and_dbl, SIZEOF_BDIGIT*2 <= SIZEOF_BDIGIT_DBL);
-STATIC_ASSERT(bdigit_signedness, 0 < (BDIGIT)-1);
-STATIC_ASSERT(bdigit_dbl_signedness, 0 < (BDIGIT_DBL)-1);
-STATIC_ASSERT(bdigit_dbl_signed_signedness, 0 > (BDIGIT_DBL_SIGNED)-1);
-STATIC_ASSERT(rbignum_embed_len_max, BIGNUM_EMBED_LEN_MAX <= (BIGNUM_EMBED_LEN_MASK >> BIGNUM_EMBED_LEN_SHIFT));
-
-#if SIZEOF_BDIGIT < SIZEOF_LONG
-STATIC_ASSERT(sizeof_long_and_sizeof_bdigit, SIZEOF_LONG % SIZEOF_BDIGIT == 0);
-#else
-STATIC_ASSERT(sizeof_long_and_sizeof_bdigit, SIZEOF_BDIGIT % SIZEOF_LONG == 0);
-#endif
-
-#ifdef WORDS_BIGENDIAN
-# define HOST_BIGENDIAN_P 1
-#else
-# define HOST_BIGENDIAN_P 0
-#endif
-/* (!LSHIFTABLE(d, n) ? 0 : (n)) is the same as n but suppress a warning, C4293, by Visual Studio. */
-#define LSHIFTABLE(d, n) ((n) < sizeof(d) * CHAR_BIT)
-#define LSHIFTX(d, n) (!LSHIFTABLE(d, n) ? 0 : ((d) << (!LSHIFTABLE(d, n) ? 0 : (n))))
-#define CLEAR_LOWBITS(d, numbits) ((d) & LSHIFTX(~((d)*0), (numbits)))
-#define FILL_LOWBITS(d, numbits) ((d) | (LSHIFTX(((d)*0+1), (numbits))-1))
-#define POW2_P(x) (((x)&((x)-1))==0)
-
-#define BDIGITS(x) (BIGNUM_DIGITS(x))
-#define BITSPERDIG (SIZEOF_BDIGIT*CHAR_BIT)
-#define BIGRAD ((BDIGIT_DBL)1 << BITSPERDIG)
-#define BIGRAD_HALF ((BDIGIT)(BIGRAD >> 1))
-#define BDIGIT_MSB(d) (((d) & BIGRAD_HALF) != 0)
-#define BIGUP(x) LSHIFTX(((x) + (BDIGIT_DBL)0), BITSPERDIG)
-#define BIGDN(x) RSHIFT((x),BITSPERDIG)
-#define BIGLO(x) ((BDIGIT)((x) & BDIGMAX))
-#define BDIGMAX ((BDIGIT)(BIGRAD-1))
-#define BDIGIT_DBL_MAX (~(BDIGIT_DBL)0)
-
-#if SIZEOF_BDIGIT == 2
-# define swap_bdigit(x) swap16(x)
-#elif SIZEOF_BDIGIT == 4
-# define swap_bdigit(x) swap32(x)
-#elif SIZEOF_BDIGIT == 8
-# define swap_bdigit(x) swap64(x)
-#endif
-
-#define BIGZEROP(x) (BIGNUM_LEN(x) == 0 || \
- (BDIGITS(x)[0] == 0 && \
- (BIGNUM_LEN(x) == 1 || bigzero_p(x))))
-#define BIGSIZE(x) (BIGNUM_LEN(x) == 0 ? (size_t)0 : \
- BDIGITS(x)[BIGNUM_LEN(x)-1] ? \
- (size_t)(BIGNUM_LEN(x)*SIZEOF_BDIGIT - nlz(BDIGITS(x)[BIGNUM_LEN(x)-1])/CHAR_BIT) : \
- rb_absint_size(x, NULL))
-
-#define BIGDIVREM_EXTRA_WORDS 1
-#define bdigit_roomof(n) roomof(n, SIZEOF_BDIGIT)
-#define BARY_ARGS(ary) ary, numberof(ary)
-
-#define BARY_ADD(z, x, y) bary_add(BARY_ARGS(z), BARY_ARGS(x), BARY_ARGS(y))
-#define BARY_SUB(z, x, y) bary_sub(BARY_ARGS(z), BARY_ARGS(x), BARY_ARGS(y))
-#define BARY_SHORT_MUL(z, x, y) bary_short_mul(BARY_ARGS(z), BARY_ARGS(x), BARY_ARGS(y))
-#define BARY_DIVMOD(q, r, x, y) bary_divmod(BARY_ARGS(q), BARY_ARGS(r), BARY_ARGS(x), BARY_ARGS(y))
-#define BARY_ZERO_P(x) bary_zero_p(BARY_ARGS(x))
-
-#define BIGNUM_SET_NEGATIVE_SIGN(b) BIGNUM_SET_SIGN(b, 0)
-#define BIGNUM_SET_POSITIVE_SIGN(b) BIGNUM_SET_SIGN(b, 1)
-
-#define bignew(len,sign) bignew_1(rb_cInteger,(len),(sign))
-
-#define BDIGITS_ZERO(ptr, n) do { \
- BDIGIT *bdigitz_zero_ptr = (ptr); \
- size_t bdigitz_zero_n = (n); \
- while (bdigitz_zero_n) { \
- *bdigitz_zero_ptr++ = 0; \
- bdigitz_zero_n--; \
- } \
-} while (0)
-
-#define BARY_TRUNC(ds, n) do { \
- while (0 < (n) && (ds)[(n)-1] == 0) \
- (n)--; \
- } while (0)
-
-#define KARATSUBA_BALANCED(xn, yn) ((yn)/2 < (xn))
-#define TOOM3_BALANCED(xn, yn) (((yn)+2)/3 * 2 < (xn))
-
-#define GMP_MUL_DIGITS 20
-#define KARATSUBA_MUL_DIGITS 70
-#define TOOM3_MUL_DIGITS 150
-
-#define GMP_DIV_DIGITS 20
-#define GMP_BIG2STR_DIGITS 20
-#define GMP_STR2BIG_DIGITS 20
-#ifdef USE_GMP
-# define NAIVE_MUL_DIGITS GMP_MUL_DIGITS
-#else
-# define NAIVE_MUL_DIGITS KARATSUBA_MUL_DIGITS
-#endif
-
-typedef void (mulfunc_t)(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn, BDIGIT *wds, size_t wn);
-
-static mulfunc_t bary_mul_toom3_start;
-static mulfunc_t bary_mul_karatsuba_start;
-static BDIGIT bigdivrem_single(BDIGIT *qds, const BDIGIT *xds, size_t xn, BDIGIT y);
-
-static VALUE bignew_1(VALUE klass, size_t len, int sign);
-static inline VALUE bigtrunc(VALUE x);
-
-static VALUE bigsq(VALUE x);
-static inline VALUE power_cache_get_power(int base, int power_level, size_t *numdigits_ret);
-
-#if SIZEOF_BDIGIT <= SIZEOF_INT
-static int nlz(BDIGIT x) { return nlz_int((unsigned int)x) - (SIZEOF_INT-SIZEOF_BDIGIT) * CHAR_BIT; }
-#elif SIZEOF_BDIGIT <= SIZEOF_LONG
-static int nlz(BDIGIT x) { return nlz_long((unsigned long)x) - (SIZEOF_LONG-SIZEOF_BDIGIT) * CHAR_BIT; }
-#elif SIZEOF_BDIGIT <= SIZEOF_LONG_LONG
-static int nlz(BDIGIT x) { return nlz_long_long((unsigned LONG_LONG)x) - (SIZEOF_LONG_LONG-SIZEOF_BDIGIT) * CHAR_BIT; }
-#elif SIZEOF_BDIGIT <= SIZEOF_INT128_T
-static int nlz(BDIGIT x) { return nlz_int128((uint128_t)x) - (SIZEOF_INT128_T-SIZEOF_BDIGIT) * CHAR_BIT; }
-#endif
-
-#define U16(a) ((uint16_t)(a))
-#define U32(a) ((uint32_t)(a))
-#ifdef HAVE_UINT64_T
-#define U64(a,b) (((uint64_t)(a) << 32) | (b))
-#endif
-#ifdef HAVE_UINT128_T
-#define U128(a,b,c,d) (((uint128_t)U64(a,b) << 64) | U64(c,d))
-#endif
-
-/* The following script, maxpow.rb, generates the tables follows.
-
-def big(n, bits)
- ns = []
- ((bits+31)/32).times {
- ns << sprintf("0x%08x", n & 0xffff_ffff)
- n >>= 32
- }
- "U#{bits}(" + ns.reverse.join(",") + ")"
-end
-def values(ary, width, indent)
- lines = [""]
- ary.each {|e|
- lines << "" if !ary.last.empty? && width < (lines.last + e + ", ").length
- lines.last << e + ", "
- }
- lines.map {|line| " " * indent + line.chomp(" ") + "\n" }.join
-end
-[16,32,64,128].each {|bits|
- max = 2**bits-1
- exps = []
- nums = []
- 2.upto(36) {|base|
- exp = 0
- n = 1
- while n * base <= max
- exp += 1
- n *= base
- end
- exps << exp.to_s
- nums << big(n, bits)
- }
- puts "#ifdef HAVE_UINT#{bits}_T"
- puts "static const int maxpow#{bits}_exp[35] = {"
- print values(exps, 70, 4)
- puts "};"
- puts "static const uint#{bits}_t maxpow#{bits}_num[35] = {"
- print values(nums, 70, 4)
- puts "};"
- puts "#endif"
-}
-
- */
-
-#if SIZEOF_BDIGIT_DBL == 2
-static const int maxpow16_exp[35] = {
- 15, 10, 7, 6, 6, 5, 5, 5, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
-};
-static const uint16_t maxpow16_num[35] = {
- U16(0x00008000), U16(0x0000e6a9), U16(0x00004000), U16(0x00003d09),
- U16(0x0000b640), U16(0x000041a7), U16(0x00008000), U16(0x0000e6a9),
- U16(0x00002710), U16(0x00003931), U16(0x00005100), U16(0x00006f91),
- U16(0x00009610), U16(0x0000c5c1), U16(0x00001000), U16(0x00001331),
- U16(0x000016c8), U16(0x00001acb), U16(0x00001f40), U16(0x0000242d),
- U16(0x00002998), U16(0x00002f87), U16(0x00003600), U16(0x00003d09),
- U16(0x000044a8), U16(0x00004ce3), U16(0x000055c0), U16(0x00005f45),
- U16(0x00006978), U16(0x0000745f), U16(0x00008000), U16(0x00008c61),
- U16(0x00009988), U16(0x0000a77b), U16(0x0000b640),
-};
-#elif SIZEOF_BDIGIT_DBL == 4
-static const int maxpow32_exp[35] = {
- 31, 20, 15, 13, 12, 11, 10, 10, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7,
- 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
-};
-static const uint32_t maxpow32_num[35] = {
- U32(0x80000000), U32(0xcfd41b91), U32(0x40000000), U32(0x48c27395),
- U32(0x81bf1000), U32(0x75db9c97), U32(0x40000000), U32(0xcfd41b91),
- U32(0x3b9aca00), U32(0x8c8b6d2b), U32(0x19a10000), U32(0x309f1021),
- U32(0x57f6c100), U32(0x98c29b81), U32(0x10000000), U32(0x18754571),
- U32(0x247dbc80), U32(0x3547667b), U32(0x4c4b4000), U32(0x6b5a6e1d),
- U32(0x94ace180), U32(0xcaf18367), U32(0x0b640000), U32(0x0e8d4a51),
- U32(0x1269ae40), U32(0x17179149), U32(0x1cb91000), U32(0x23744899),
- U32(0x2b73a840), U32(0x34e63b41), U32(0x40000000), U32(0x4cfa3cc1),
- U32(0x5c13d840), U32(0x6d91b519), U32(0x81bf1000),
-};
-#elif SIZEOF_BDIGIT_DBL == 8 && defined HAVE_UINT64_T
-static const int maxpow64_exp[35] = {
- 63, 40, 31, 27, 24, 22, 21, 20, 19, 18, 17, 17, 16, 16, 15, 15, 15,
- 15, 14, 14, 14, 14, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12,
- 12,
-};
-static const uint64_t maxpow64_num[35] = {
- U64(0x80000000,0x00000000), U64(0xa8b8b452,0x291fe821),
- U64(0x40000000,0x00000000), U64(0x6765c793,0xfa10079d),
- U64(0x41c21cb8,0xe1000000), U64(0x36427987,0x50226111),
- U64(0x80000000,0x00000000), U64(0xa8b8b452,0x291fe821),
- U64(0x8ac72304,0x89e80000), U64(0x4d28cb56,0xc33fa539),
- U64(0x1eca170c,0x00000000), U64(0x780c7372,0x621bd74d),
- U64(0x1e39a505,0x7d810000), U64(0x5b27ac99,0x3df97701),
- U64(0x10000000,0x00000000), U64(0x27b95e99,0x7e21d9f1),
- U64(0x5da0e1e5,0x3c5c8000), U64(0xd2ae3299,0xc1c4aedb),
- U64(0x16bcc41e,0x90000000), U64(0x2d04b7fd,0xd9c0ef49),
- U64(0x5658597b,0xcaa24000), U64(0xa0e20737,0x37609371),
- U64(0x0c29e980,0x00000000), U64(0x14adf4b7,0x320334b9),
- U64(0x226ed364,0x78bfa000), U64(0x383d9170,0xb85ff80b),
- U64(0x5a3c23e3,0x9c000000), U64(0x8e651373,0x88122bcd),
- U64(0xdd41bb36,0xd259e000), U64(0x0aee5720,0xee830681),
- U64(0x10000000,0x00000000), U64(0x172588ad,0x4f5f0981),
- U64(0x211e44f7,0xd02c1000), U64(0x2ee56725,0xf06e5c71),
- U64(0x41c21cb8,0xe1000000),
-};
-#elif SIZEOF_BDIGIT_DBL == 16 && defined HAVE_UINT128_T
-static const int maxpow128_exp[35] = {
- 127, 80, 63, 55, 49, 45, 42, 40, 38, 37, 35, 34, 33, 32, 31, 31, 30,
- 30, 29, 29, 28, 28, 27, 27, 27, 26, 26, 26, 26, 25, 25, 25, 25, 24,
- 24,
-};
-static const uint128_t maxpow128_num[35] = {
- U128(0x80000000,0x00000000,0x00000000,0x00000000),
- U128(0x6f32f1ef,0x8b18a2bc,0x3cea5978,0x9c79d441),
- U128(0x40000000,0x00000000,0x00000000,0x00000000),
- U128(0xd0cf4b50,0xcfe20765,0xfff4b4e3,0xf741cf6d),
- U128(0x6558e2a0,0x921fe069,0x42860000,0x00000000),
- U128(0x5080c7b7,0xd0e31ba7,0x5911a67d,0xdd3d35e7),
- U128(0x40000000,0x00000000,0x00000000,0x00000000),
- U128(0x6f32f1ef,0x8b18a2bc,0x3cea5978,0x9c79d441),
- U128(0x4b3b4ca8,0x5a86c47a,0x098a2240,0x00000000),
- U128(0xffd1390a,0x0adc2fb8,0xdabbb817,0x4d95c99b),
- U128(0x2c6fdb36,0x4c25e6c0,0x00000000,0x00000000),
- U128(0x384bacd6,0x42c343b4,0xe90c4272,0x13506d29),
- U128(0x31f5db32,0xa34aced6,0x0bf13a0e,0x00000000),
- U128(0x20753ada,0xfd1e839f,0x53686d01,0x3143ee01),
- U128(0x10000000,0x00000000,0x00000000,0x00000000),
- U128(0x68ca11d6,0xb4f6d1d1,0xfaa82667,0x8073c2f1),
- U128(0x223e493b,0xb3bb69ff,0xa4b87d6c,0x40000000),
- U128(0xad62418d,0x14ea8247,0x01c4b488,0x6cc66f59),
- U128(0x2863c1f5,0xcdae42f9,0x54000000,0x00000000),
- U128(0xa63fd833,0xb9386b07,0x36039e82,0xbe651b25),
- U128(0x1d1f7a9c,0xd087a14d,0x28cdf3d5,0x10000000),
- U128(0x651b5095,0xc2ea8fc1,0xb30e2c57,0x77aaf7e1),
- U128(0x0ddef20e,0xff760000,0x00000000,0x00000000),
- U128(0x29c30f10,0x29939b14,0x6664242d,0x97d9f649),
- U128(0x786a435a,0xe9558b0e,0x6aaf6d63,0xa8000000),
- U128(0x0c5afe6f,0xf302bcbf,0x94fd9829,0xd87f5079),
- U128(0x1fce575c,0xe1692706,0x07100000,0x00000000),
- U128(0x4f34497c,0x8597e144,0x36e91802,0x00528229),
- U128(0xbf3a8e1d,0x41ef2170,0x7802130d,0x84000000),
- U128(0x0e7819e1,0x7f1eb0fb,0x6ee4fb89,0x01d9531f),
- U128(0x20000000,0x00000000,0x00000000,0x00000000),
- U128(0x4510460d,0xd9e879c0,0x14a82375,0x2f22b321),
- U128(0x91abce3c,0x4b4117ad,0xe76d35db,0x22000000),
- U128(0x08973ea3,0x55d75bc2,0x2e42c391,0x727d69e1),
- U128(0x10e425c5,0x6daffabc,0x35c10000,0x00000000),
-};
-#endif
-
-static BDIGIT_DBL
-maxpow_in_bdigit_dbl(int base, int *exp_ret)
-{
- BDIGIT_DBL maxpow;
- int exponent;
-
- assert(2 <= base && base <= 36);
-
- {
-#if SIZEOF_BDIGIT_DBL == 2
- maxpow = maxpow16_num[base-2];
- exponent = maxpow16_exp[base-2];
-#elif SIZEOF_BDIGIT_DBL == 4
- maxpow = maxpow32_num[base-2];
- exponent = maxpow32_exp[base-2];
-#elif SIZEOF_BDIGIT_DBL == 8 && defined HAVE_UINT64_T
- maxpow = maxpow64_num[base-2];
- exponent = maxpow64_exp[base-2];
-#elif SIZEOF_BDIGIT_DBL == 16 && defined HAVE_UINT128_T
- maxpow = maxpow128_num[base-2];
- exponent = maxpow128_exp[base-2];
-#else
- maxpow = base;
- exponent = 1;
- while (maxpow <= BDIGIT_DBL_MAX / base) {
- maxpow *= base;
- exponent++;
- }
-#endif
- }
-
- *exp_ret = exponent;
- return maxpow;
-}
-
-static inline BDIGIT_DBL
-bary2bdigitdbl(const BDIGIT *ds, size_t n)
-{
- assert(n <= 2);
-
- if (n == 2)
- return ds[0] | BIGUP(ds[1]);
- if (n == 1)
- return ds[0];
- return 0;
-}
-
-static inline void
-bdigitdbl2bary(BDIGIT *ds, size_t n, BDIGIT_DBL num)
-{
- assert(n == 2);
-
- ds[0] = BIGLO(num);
- ds[1] = (BDIGIT)BIGDN(num);
-}
-
-static int
-bary_cmp(const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn)
-{
- size_t i;
- BARY_TRUNC(xds, xn);
- BARY_TRUNC(yds, yn);
-
- if (xn < yn)
- return -1;
- if (xn > yn)
- return 1;
-
- for (i = 0; i < xn; i++)
- if (xds[xn - i - 1] != yds[yn - i - 1])
- break;
- if (i == xn)
- return 0;
- return xds[xn - i - 1] < yds[yn - i - 1] ? -1 : 1;
-}
-
-static BDIGIT
-bary_small_lshift(BDIGIT *zds, const BDIGIT *xds, size_t n, int shift)
-{
- size_t i;
- BDIGIT_DBL num = 0;
- assert(0 <= shift && shift < BITSPERDIG);
-
- for (i=0; i<n; i++) {
- num = num | (BDIGIT_DBL)*xds++ << shift;
- *zds++ = BIGLO(num);
- num = BIGDN(num);
- }
- return BIGLO(num);
-}
-
-static void
-bary_small_rshift(BDIGIT *zds, const BDIGIT *xds, size_t n, int shift, BDIGIT higher_bdigit)
-{
- size_t i;
- BDIGIT_DBL num = 0;
-
- assert(0 <= shift && shift < BITSPERDIG);
-
- num = BIGUP(higher_bdigit);
- for (i = 0; i < n; i++) {
- BDIGIT x = xds[n - i - 1];
- num = (num | x) >> shift;
- zds[n - i - 1] = BIGLO(num);
- num = BIGUP(x);
- }
-}
-
-static int
-bary_zero_p(const BDIGIT *xds, size_t xn)
-{
- if (xn == 0)
- return 1;
- do {
- if (xds[--xn]) return 0;
- } while (xn);
- return 1;
-}
-
-static void
-bary_neg(BDIGIT *ds, size_t n)
-{
- size_t i;
- for (i = 0; i < n; i++)
- ds[n - i - 1] = BIGLO(~ds[n - i - 1]);
-}
-
-static int
-bary_2comp(BDIGIT *ds, size_t n)
-{
- size_t i;
- for (i = 0; i < n; i++) {
- if (ds[i] != 0) {
- goto non_zero;
- }
- }
- return 1;
-
- non_zero:
- ds[i] = BIGLO(~ds[i] + 1);
- i++;
- for (; i < n; i++) {
- ds[i] = BIGLO(~ds[i]);
- }
- return 0;
-}
-
-static void
-bary_swap(BDIGIT *ds, size_t num_bdigits)
-{
- BDIGIT *p1 = ds;
- BDIGIT *p2 = ds + num_bdigits - 1;
- for (; p1 < p2; p1++, p2--) {
- BDIGIT tmp = *p1;
- *p1 = *p2;
- *p2 = tmp;
- }
-}
-
-#define INTEGER_PACK_WORDORDER_MASK \
- (INTEGER_PACK_MSWORD_FIRST | \
- INTEGER_PACK_LSWORD_FIRST)
-#define INTEGER_PACK_BYTEORDER_MASK \
- (INTEGER_PACK_MSBYTE_FIRST | \
- INTEGER_PACK_LSBYTE_FIRST | \
- INTEGER_PACK_NATIVE_BYTE_ORDER)
-
-static void
-validate_integer_pack_format(size_t numwords, size_t wordsize, size_t nails, int flags, int supported_flags)
-{
- int wordorder_bits = flags & INTEGER_PACK_WORDORDER_MASK;
- int byteorder_bits = flags & INTEGER_PACK_BYTEORDER_MASK;
-
- if (flags & ~supported_flags) {
- rb_raise(rb_eArgError, "unsupported flags specified");
- }
- if (wordorder_bits == 0) {
- if (1 < numwords)
- rb_raise(rb_eArgError, "word order not specified");
- }
- else if (wordorder_bits != INTEGER_PACK_MSWORD_FIRST &&
- wordorder_bits != INTEGER_PACK_LSWORD_FIRST)
- rb_raise(rb_eArgError, "unexpected word order");
- if (byteorder_bits == 0) {
- rb_raise(rb_eArgError, "byte order not specified");
- }
- else if (byteorder_bits != INTEGER_PACK_MSBYTE_FIRST &&
- byteorder_bits != INTEGER_PACK_LSBYTE_FIRST &&
- byteorder_bits != INTEGER_PACK_NATIVE_BYTE_ORDER)
- rb_raise(rb_eArgError, "unexpected byte order");
- if (wordsize == 0)
- rb_raise(rb_eArgError, "invalid wordsize: %"PRI_SIZE_PREFIX"u", wordsize);
- if (SSIZE_MAX < wordsize)
- rb_raise(rb_eArgError, "too big wordsize: %"PRI_SIZE_PREFIX"u", wordsize);
- if (wordsize <= nails / CHAR_BIT)
- rb_raise(rb_eArgError, "too big nails: %"PRI_SIZE_PREFIX"u", nails);
- if (SIZE_MAX / wordsize < numwords)
- rb_raise(rb_eArgError, "too big numwords * wordsize: %"PRI_SIZE_PREFIX"u * %"PRI_SIZE_PREFIX"u", numwords, wordsize);
-}
-
-static void
-integer_pack_loop_setup(
- size_t numwords, size_t wordsize, size_t nails, int flags,
- size_t *word_num_fullbytes_ret,
- int *word_num_partialbits_ret,
- size_t *word_start_ret,
- ssize_t *word_step_ret,
- size_t *word_last_ret,
- size_t *byte_start_ret,
- int *byte_step_ret)
-{
- int wordorder_bits = flags & INTEGER_PACK_WORDORDER_MASK;
- int byteorder_bits = flags & INTEGER_PACK_BYTEORDER_MASK;
- size_t word_num_fullbytes;
- int word_num_partialbits;
- size_t word_start;
- ssize_t word_step;
- size_t word_last;
- size_t byte_start;
- int byte_step;
-
- word_num_partialbits = CHAR_BIT - (int)(nails % CHAR_BIT);
- if (word_num_partialbits == CHAR_BIT)
- word_num_partialbits = 0;
- word_num_fullbytes = wordsize - (nails / CHAR_BIT);
- if (word_num_partialbits != 0) {
- word_num_fullbytes--;
- }
-
- if (wordorder_bits == INTEGER_PACK_MSWORD_FIRST) {
- word_start = wordsize*(numwords-1);
- word_step = -(ssize_t)wordsize;
- word_last = 0;
- }
- else {
- word_start = 0;
- word_step = wordsize;
- word_last = wordsize*(numwords-1);
- }
-
- if (byteorder_bits == INTEGER_PACK_NATIVE_BYTE_ORDER) {
-#ifdef WORDS_BIGENDIAN
- byteorder_bits = INTEGER_PACK_MSBYTE_FIRST;
-#else
- byteorder_bits = INTEGER_PACK_LSBYTE_FIRST;
-#endif
- }
- if (byteorder_bits == INTEGER_PACK_MSBYTE_FIRST) {
- byte_start = wordsize-1;
- byte_step = -1;
- }
- else {
- byte_start = 0;
- byte_step = 1;
- }
-
- *word_num_partialbits_ret = word_num_partialbits;
- *word_num_fullbytes_ret = word_num_fullbytes;
- *word_start_ret = word_start;
- *word_step_ret = word_step;
- *word_last_ret = word_last;
- *byte_start_ret = byte_start;
- *byte_step_ret = byte_step;
-}
-
-static inline void
-integer_pack_fill_dd(BDIGIT **dpp, BDIGIT **dep, BDIGIT_DBL *ddp, int *numbits_in_dd_p)
-{
- if (*dpp < *dep && BITSPERDIG <= (int)sizeof(*ddp) * CHAR_BIT - *numbits_in_dd_p) {
- *ddp |= (BDIGIT_DBL)(*(*dpp)++) << *numbits_in_dd_p;
- *numbits_in_dd_p += BITSPERDIG;
- }
- else if (*dpp == *dep) {
- /* higher bits are infinity zeros */
- *numbits_in_dd_p = (int)sizeof(*ddp) * CHAR_BIT;
- }
-}
-
-static inline BDIGIT_DBL
-integer_pack_take_lowbits(int n, BDIGIT_DBL *ddp, int *numbits_in_dd_p)
-{
- BDIGIT_DBL ret;
- ret = (*ddp) & (((BDIGIT_DBL)1 << n) - 1);
- *ddp >>= n;
- *numbits_in_dd_p -= n;
- return ret;
-}
-
-#if !defined(WORDS_BIGENDIAN)
-static int
-bytes_2comp(unsigned char *buf, size_t len)
-{
- size_t i;
- for (i = 0; i < len; i++) {
- signed char c = buf[i];
- signed int d = ~c;
- unsigned int e = d & 0xFF;
- buf[i] = e;
- }
- for (i = 0; i < len; i++) {
- buf[i]++;
- if (buf[i] != 0)
- return 0;
- }
- return 1;
-}
-#endif
-
-static int
-bary_pack(int sign, BDIGIT *ds, size_t num_bdigits, void *words, size_t numwords, size_t wordsize, size_t nails, int flags)
-{
- BDIGIT *dp, *de;
- unsigned char *buf, *bufend;
-
- dp = ds;
- de = ds + num_bdigits;
-
- validate_integer_pack_format(numwords, wordsize, nails, flags,
- INTEGER_PACK_MSWORD_FIRST|
- INTEGER_PACK_LSWORD_FIRST|
- INTEGER_PACK_MSBYTE_FIRST|
- INTEGER_PACK_LSBYTE_FIRST|
- INTEGER_PACK_NATIVE_BYTE_ORDER|
- INTEGER_PACK_2COMP|
- INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION);
-
- while (dp < de && de[-1] == 0)
- de--;
- if (dp == de) {
- sign = 0;
- }
-
- if (!(flags & INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION)) {
- if (sign == 0) {
- MEMZERO(words, unsigned char, numwords * wordsize);
- return 0;
- }
- if (nails == 0 && numwords == 1) {
- int need_swap = wordsize != 1 &&
- (flags & INTEGER_PACK_BYTEORDER_MASK) != INTEGER_PACK_NATIVE_BYTE_ORDER &&
- ((flags & INTEGER_PACK_MSBYTE_FIRST) ? !HOST_BIGENDIAN_P : HOST_BIGENDIAN_P);
- if (0 < sign || !(flags & INTEGER_PACK_2COMP)) {
- BDIGIT d;
- if (wordsize == 1) {
- *((unsigned char *)words) = (unsigned char)(d = dp[0]);
- return ((1 < de - dp || CLEAR_LOWBITS(d, 8) != 0) ? 2 : 1) * sign;
- }
-#if defined(HAVE_UINT16_T) && 2 <= SIZEOF_BDIGIT
- if (wordsize == 2 && (uintptr_t)words % RUBY_ALIGNOF(uint16_t) == 0) {
- uint16_t u = (uint16_t)(d = dp[0]);
- if (need_swap) u = swap16(u);
- *((uint16_t *)words) = u;
- return ((1 < de - dp || CLEAR_LOWBITS(d, 16) != 0) ? 2 : 1) * sign;
- }
-#endif
-#if defined(HAVE_UINT32_T) && 4 <= SIZEOF_BDIGIT
- if (wordsize == 4 && (uintptr_t)words % RUBY_ALIGNOF(uint32_t) == 0) {
- uint32_t u = (uint32_t)(d = dp[0]);
- if (need_swap) u = swap32(u);
- *((uint32_t *)words) = u;
- return ((1 < de - dp || CLEAR_LOWBITS(d, 32) != 0) ? 2 : 1) * sign;
- }
-#endif
-#if defined(HAVE_UINT64_T) && 8 <= SIZEOF_BDIGIT
- if (wordsize == 8 && (uintptr_t)words % RUBY_ALIGNOF(uint64_t) == 0) {
- uint64_t u = (uint64_t)(d = dp[0]);
- if (need_swap) u = swap64(u);
- *((uint64_t *)words) = u;
- return ((1 < de - dp || CLEAR_LOWBITS(d, 64) != 0) ? 2 : 1) * sign;
- }
-#endif
- }
- else { /* sign < 0 && (flags & INTEGER_PACK_2COMP) */
- BDIGIT_DBL_SIGNED d;
- if (wordsize == 1) {
- *((unsigned char *)words) = (unsigned char)(d = -(BDIGIT_DBL_SIGNED)dp[0]);
- return (1 < de - dp || FILL_LOWBITS(d, 8) != -1) ? -2 : -1;
- }
-#if defined(HAVE_UINT16_T) && 2 <= SIZEOF_BDIGIT
- if (wordsize == 2 && (uintptr_t)words % RUBY_ALIGNOF(uint16_t) == 0) {
- uint16_t u = (uint16_t)(d = -(BDIGIT_DBL_SIGNED)dp[0]);
- if (need_swap) u = swap16(u);
- *((uint16_t *)words) = u;
- return (wordsize == SIZEOF_BDIGIT && de - dp == 2 && dp[1] == 1 && dp[0] == 0) ? -1 :
- (1 < de - dp || FILL_LOWBITS(d, 16) != -1) ? -2 : -1;
- }
-#endif
-#if defined(HAVE_UINT32_T) && 4 <= SIZEOF_BDIGIT
- if (wordsize == 4 && (uintptr_t)words % RUBY_ALIGNOF(uint32_t) == 0) {
- uint32_t u = (uint32_t)(d = -(BDIGIT_DBL_SIGNED)dp[0]);
- if (need_swap) u = swap32(u);
- *((uint32_t *)words) = u;
- return (wordsize == SIZEOF_BDIGIT && de - dp == 2 && dp[1] == 1 && dp[0] == 0) ? -1 :
- (1 < de - dp || FILL_LOWBITS(d, 32) != -1) ? -2 : -1;
- }
-#endif
-#if defined(HAVE_UINT64_T) && 8 <= SIZEOF_BDIGIT
- if (wordsize == 8 && (uintptr_t)words % RUBY_ALIGNOF(uint64_t) == 0) {
- uint64_t u = (uint64_t)(d = -(BDIGIT_DBL_SIGNED)dp[0]);
- if (need_swap) u = swap64(u);
- *((uint64_t *)words) = u;
- return (wordsize == SIZEOF_BDIGIT && de - dp == 2 && dp[1] == 1 && dp[0] == 0) ? -1 :
- (1 < de - dp || FILL_LOWBITS(d, 64) != -1) ? -2 : -1;
- }
-#endif
- }
- }
-#if !defined(WORDS_BIGENDIAN)
- if (nails == 0 && SIZEOF_BDIGIT == sizeof(BDIGIT) &&
- (flags & INTEGER_PACK_WORDORDER_MASK) == INTEGER_PACK_LSWORD_FIRST &&
- (flags & INTEGER_PACK_BYTEORDER_MASK) != INTEGER_PACK_MSBYTE_FIRST) {
- size_t src_size = (de - dp) * SIZEOF_BDIGIT;
- size_t dst_size = numwords * wordsize;
- int overflow = 0;
- while (0 < src_size && ((unsigned char *)ds)[src_size-1] == 0)
- src_size--;
- if (src_size <= dst_size) {
- MEMCPY(words, dp, char, src_size);
- MEMZERO((char*)words + src_size, char, dst_size - src_size);
- }
- else {
- MEMCPY(words, dp, char, dst_size);
- overflow = 1;
- }
- if (sign < 0 && (flags & INTEGER_PACK_2COMP)) {
- int zero_p = bytes_2comp(words, dst_size);
- if (zero_p && overflow) {
- unsigned char *p = (unsigned char *)dp;
- if (dst_size == src_size-1 &&
- p[dst_size] == 1) {
- overflow = 0;
- }
- }
- }
- if (overflow)
- sign *= 2;
- return sign;
- }
-#endif
- if (nails == 0 && SIZEOF_BDIGIT == sizeof(BDIGIT) &&
- wordsize % SIZEOF_BDIGIT == 0 && (uintptr_t)words % RUBY_ALIGNOF(BDIGIT) == 0) {
- size_t bdigits_per_word = wordsize / SIZEOF_BDIGIT;
- size_t src_num_bdigits = de - dp;
- size_t dst_num_bdigits = numwords * bdigits_per_word;
- int overflow = 0;
- int mswordfirst_p = (flags & INTEGER_PACK_MSWORD_FIRST) != 0;
- int msbytefirst_p = (flags & INTEGER_PACK_NATIVE_BYTE_ORDER) ? HOST_BIGENDIAN_P :
- (flags & INTEGER_PACK_MSBYTE_FIRST) != 0;
- if (src_num_bdigits <= dst_num_bdigits) {
- MEMCPY(words, dp, BDIGIT, src_num_bdigits);
- BDIGITS_ZERO((BDIGIT*)words + src_num_bdigits, dst_num_bdigits - src_num_bdigits);
- }
- else {
- MEMCPY(words, dp, BDIGIT, dst_num_bdigits);
- overflow = 1;
- }
- if (sign < 0 && (flags & INTEGER_PACK_2COMP)) {
- int zero_p = bary_2comp(words, dst_num_bdigits);
- if (zero_p && overflow &&
- dst_num_bdigits == src_num_bdigits-1 &&
- dp[dst_num_bdigits] == 1)
- overflow = 0;
- }
- if (msbytefirst_p != HOST_BIGENDIAN_P) {
- size_t i;
- for (i = 0; i < dst_num_bdigits; i++) {
- BDIGIT d = ((BDIGIT*)words)[i];
- ((BDIGIT*)words)[i] = swap_bdigit(d);
- }
- }
- if (mswordfirst_p ? !msbytefirst_p : msbytefirst_p) {
- size_t i;
- BDIGIT *p = words;
- for (i = 0; i < numwords; i++) {
- bary_swap(p, bdigits_per_word);
- p += bdigits_per_word;
- }
- }
- if (mswordfirst_p) {
- bary_swap(words, dst_num_bdigits);
- }
- if (overflow)
- sign *= 2;
- return sign;
- }
- }
-
- buf = words;
- bufend = buf + numwords * wordsize;
-
- if (buf == bufend) {
- /* overflow if non-zero*/
- if (!(flags & INTEGER_PACK_2COMP) || 0 <= sign)
- sign *= 2;
- else {
- if (de - dp == 1 && dp[0] == 1)
- sign = -1; /* val == -1 == -2**(numwords*(wordsize*CHAR_BIT-nails)) */
- else
- sign = -2; /* val < -1 == -2**(numwords*(wordsize*CHAR_BIT-nails)) */
- }
- }
- else if (dp == de) {
- memset(buf, '\0', bufend - buf);
- }
- else if (dp < de && buf < bufend) {
- int word_num_partialbits;
- size_t word_num_fullbytes;
-
- ssize_t word_step;
- size_t byte_start;
- int byte_step;
-
- size_t word_start, word_last;
- unsigned char *wordp, *last_wordp;
- BDIGIT_DBL dd;
- int numbits_in_dd;
-
- integer_pack_loop_setup(numwords, wordsize, nails, flags,
- &word_num_fullbytes, &word_num_partialbits,
- &word_start, &word_step, &word_last, &byte_start, &byte_step);
-
- wordp = buf + word_start;
- last_wordp = buf + word_last;
-
- dd = 0;
- numbits_in_dd = 0;
-
-#define FILL_DD \
- integer_pack_fill_dd(&dp, &de, &dd, &numbits_in_dd)
-#define TAKE_LOWBITS(n) \
- integer_pack_take_lowbits(n, &dd, &numbits_in_dd)
-
- while (1) {
- size_t index_in_word = 0;
- unsigned char *bytep = wordp + byte_start;
- while (index_in_word < word_num_fullbytes) {
- FILL_DD;
- *bytep = TAKE_LOWBITS(CHAR_BIT);
- bytep += byte_step;
- index_in_word++;
- }
- if (word_num_partialbits) {
- FILL_DD;
- *bytep = TAKE_LOWBITS(word_num_partialbits);
- bytep += byte_step;
- index_in_word++;
- }
- while (index_in_word < wordsize) {
- *bytep = 0;
- bytep += byte_step;
- index_in_word++;
- }
-
- if (wordp == last_wordp)
- break;
-
- wordp += word_step;
- }
- FILL_DD;
- /* overflow tests */
- if (dp != de || 1 < dd) {
- /* 2**(numwords*(wordsize*CHAR_BIT-nails)+1) <= abs(val) */
- sign *= 2;
- }
- else if (dd == 1) {
- /* 2**(numwords*(wordsize*CHAR_BIT-nails)) <= abs(val) < 2**(numwords*(wordsize*CHAR_BIT-nails)+1) */
- if (!(flags & INTEGER_PACK_2COMP) || 0 <= sign)
- sign *= 2;
- else { /* overflow_2comp && sign == -1 */
- /* test lower bits are all zero. */
- dp = ds;
- while (dp < de && *dp == 0)
- dp++;
- if (de - dp == 1 && /* only one non-zero word. */
- POW2_P(*dp)) /* *dp contains only one bit set. */
- sign = -1; /* val == -2**(numwords*(wordsize*CHAR_BIT-nails)) */
- else
- sign = -2; /* val < -2**(numwords*(wordsize*CHAR_BIT-nails)) */
- }
- }
- }
-
- if ((flags & INTEGER_PACK_2COMP) && (sign < 0 && numwords != 0)) {
- int word_num_partialbits;
- size_t word_num_fullbytes;
-
- ssize_t word_step;
- size_t byte_start;
- int byte_step;
-
- size_t word_start, word_last;
- unsigned char *wordp, *last_wordp;
-
- unsigned int partialbits_mask;
- int carry;
-
- integer_pack_loop_setup(numwords, wordsize, nails, flags,
- &word_num_fullbytes, &word_num_partialbits,
- &word_start, &word_step, &word_last, &byte_start, &byte_step);
-
- partialbits_mask = (1 << word_num_partialbits) - 1;
-
- buf = words;
- wordp = buf + word_start;
- last_wordp = buf + word_last;
-
- carry = 1;
- while (1) {
- size_t index_in_word = 0;
- unsigned char *bytep = wordp + byte_start;
- while (index_in_word < word_num_fullbytes) {
- carry += (unsigned char)~*bytep;
- *bytep = (unsigned char)carry;
- carry >>= CHAR_BIT;
- bytep += byte_step;
- index_in_word++;
- }
- if (word_num_partialbits) {
- carry += (*bytep & partialbits_mask) ^ partialbits_mask;
- *bytep = carry & partialbits_mask;
- carry >>= word_num_partialbits;
- bytep += byte_step;
- index_in_word++;
- }
-
- if (wordp == last_wordp)
- break;
-
- wordp += word_step;
- }
- }
-
- return sign;
-#undef FILL_DD
-#undef TAKE_LOWBITS
-}
-
-static size_t
-integer_unpack_num_bdigits_small(size_t numwords, size_t wordsize, size_t nails, int *nlp_bits_ret)
-{
- /* nlp_bits stands for number of leading padding bits */
- size_t num_bits = (wordsize * CHAR_BIT - nails) * numwords;
- size_t num_bdigits = (num_bits + BITSPERDIG - 1) / BITSPERDIG;
- *nlp_bits_ret = (int)(num_bdigits * BITSPERDIG - num_bits);
- return num_bdigits;
-}
-
-static size_t
-integer_unpack_num_bdigits_generic(size_t numwords, size_t wordsize, size_t nails, int *nlp_bits_ret)
-{
- /* BITSPERDIG = SIZEOF_BDIGIT * CHAR_BIT */
- /* num_bits = (wordsize * CHAR_BIT - nails) * numwords */
- /* num_bdigits = (num_bits + BITSPERDIG - 1) / BITSPERDIG */
-
- /* num_bits = CHAR_BIT * (wordsize * numwords) - nails * numwords = CHAR_BIT * num_bytes1 - nails * numwords */
- size_t num_bytes1 = wordsize * numwords;
-
- /* q1 * CHAR_BIT + r1 = numwords */
- size_t q1 = numwords / CHAR_BIT;
- size_t r1 = numwords % CHAR_BIT;
-
- /* num_bits = CHAR_BIT * num_bytes1 - nails * (q1 * CHAR_BIT + r1) = CHAR_BIT * num_bytes2 - nails * r1 */
- size_t num_bytes2 = num_bytes1 - nails * q1;
-
- /* q2 * CHAR_BIT + r2 = nails */
- size_t q2 = nails / CHAR_BIT;
- size_t r2 = nails % CHAR_BIT;
-
- /* num_bits = CHAR_BIT * num_bytes2 - (q2 * CHAR_BIT + r2) * r1 = CHAR_BIT * num_bytes3 - r1 * r2 */
- size_t num_bytes3 = num_bytes2 - q2 * r1;
-
- /* q3 * BITSPERDIG + r3 = num_bytes3 */
- size_t q3 = num_bytes3 / BITSPERDIG;
- size_t r3 = num_bytes3 % BITSPERDIG;
-
- /* num_bits = CHAR_BIT * (q3 * BITSPERDIG + r3) - r1 * r2 = BITSPERDIG * num_digits1 + CHAR_BIT * r3 - r1 * r2 */
- size_t num_digits1 = CHAR_BIT * q3;
-
- /*
- * if CHAR_BIT * r3 >= r1 * r2
- * CHAR_BIT * r3 - r1 * r2 = CHAR_BIT * BITSPERDIG - (CHAR_BIT * BITSPERDIG - (CHAR_BIT * r3 - r1 * r2))
- * q4 * BITSPERDIG + r4 = CHAR_BIT * BITSPERDIG - (CHAR_BIT * r3 - r1 * r2)
- * num_bits = BITSPERDIG * num_digits1 + CHAR_BIT * BITSPERDIG - (q4 * BITSPERDIG + r4) = BITSPERDIG * num_digits2 - r4
- * else
- * q4 * BITSPERDIG + r4 = -(CHAR_BIT * r3 - r1 * r2)
- * num_bits = BITSPERDIG * num_digits1 - (q4 * BITSPERDIG + r4) = BITSPERDIG * num_digits2 - r4
- * end
- */
-
- if (CHAR_BIT * r3 >= r1 * r2) {
- size_t tmp1 = CHAR_BIT * BITSPERDIG - (CHAR_BIT * r3 - r1 * r2);
- size_t q4 = tmp1 / BITSPERDIG;
- int r4 = (int)(tmp1 % BITSPERDIG);
- size_t num_digits2 = num_digits1 + CHAR_BIT - q4;
- *nlp_bits_ret = r4;
- return num_digits2;
- }
- else {
- size_t tmp1 = r1 * r2 - CHAR_BIT * r3;
- size_t q4 = tmp1 / BITSPERDIG;
- int r4 = (int)(tmp1 % BITSPERDIG);
- size_t num_digits2 = num_digits1 - q4;
- *nlp_bits_ret = r4;
- return num_digits2;
- }
-}
-
-static size_t
-integer_unpack_num_bdigits(size_t numwords, size_t wordsize, size_t nails, int *nlp_bits_ret)
-{
- size_t num_bdigits;
-
- if (numwords <= (SIZE_MAX - (BITSPERDIG-1)) / CHAR_BIT / wordsize) {
- num_bdigits = integer_unpack_num_bdigits_small(numwords, wordsize, nails, nlp_bits_ret);
-#ifdef DEBUG_INTEGER_PACK
- {
- int nlp_bits1;
- size_t num_bdigits1 = integer_unpack_num_bdigits_generic(numwords, wordsize, nails, &nlp_bits1);
- assert(num_bdigits == num_bdigits1);
- assert(*nlp_bits_ret == nlp_bits1);
- (void)num_bdigits1;
- }
-#endif
- }
- else {
- num_bdigits = integer_unpack_num_bdigits_generic(numwords, wordsize, nails, nlp_bits_ret);
- }
- return num_bdigits;
-}
-
-static inline void
-integer_unpack_push_bits(int data, int numbits, BDIGIT_DBL *ddp, int *numbits_in_dd_p, BDIGIT **dpp)
-{
- (*ddp) |= ((BDIGIT_DBL)data) << (*numbits_in_dd_p);
- *numbits_in_dd_p += numbits;
- while (BITSPERDIG <= *numbits_in_dd_p) {
- *(*dpp)++ = BIGLO(*ddp);
- *ddp = BIGDN(*ddp);
- *numbits_in_dd_p -= BITSPERDIG;
- }
-}
-
-static int
-integer_unpack_single_bdigit(BDIGIT u, size_t size, int flags, BDIGIT *dp)
-{
- int sign;
- if (flags & INTEGER_PACK_2COMP) {
- sign = (flags & INTEGER_PACK_NEGATIVE) ?
- ((size == SIZEOF_BDIGIT && u == 0) ? -2 : -1) :
- ((u >> (size * CHAR_BIT - 1)) ? -1 : 1);
- if (sign < 0) {
- u |= LSHIFTX(BDIGMAX, size * CHAR_BIT);
- u = BIGLO(1 + ~u);
- }
- }
- else
- sign = (flags & INTEGER_PACK_NEGATIVE) ? -1 : 1;
- *dp = u;
- return sign;
-}
-
-#ifdef HAVE_BUILTIN___BUILTIN_ASSUME_ALIGNED
-#define reinterpret_cast(type, value) (type) \
- __builtin_assume_aligned((value), sizeof(*(type)NULL));
-#else
-#define reinterpret_cast(type, value) (type)value
-#endif
-
-static int
-bary_unpack_internal(BDIGIT *bdigits, size_t num_bdigits, const void *words, size_t numwords, size_t wordsize, size_t nails, int flags, int nlp_bits)
-{
- int sign;
- const unsigned char *buf = words;
- BDIGIT *dp;
- BDIGIT *de;
-
- dp = bdigits;
- de = dp + num_bdigits;
-
- if (!(flags & INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION)) {
- if (nails == 0 && numwords == 1) {
- int need_swap = wordsize != 1 &&
- (flags & INTEGER_PACK_BYTEORDER_MASK) != INTEGER_PACK_NATIVE_BYTE_ORDER &&
- ((flags & INTEGER_PACK_MSBYTE_FIRST) ? !HOST_BIGENDIAN_P : HOST_BIGENDIAN_P);
- if (wordsize == 1) {
- return integer_unpack_single_bdigit(*(uint8_t *)buf, sizeof(uint8_t), flags, dp);
- }
-#if defined(HAVE_UINT16_T) && 2 <= SIZEOF_BDIGIT
- if (wordsize == 2 && (uintptr_t)words % RUBY_ALIGNOF(uint16_t) == 0) {
- uint16_t u = *reinterpret_cast(const uint16_t *, buf);
- return integer_unpack_single_bdigit(need_swap ? swap16(u) : u, sizeof(uint16_t), flags, dp);
- }
-#endif
-#if defined(HAVE_UINT32_T) && 4 <= SIZEOF_BDIGIT
- if (wordsize == 4 && (uintptr_t)words % RUBY_ALIGNOF(uint32_t) == 0) {
- uint32_t u = *reinterpret_cast(const uint32_t *, buf);
- return integer_unpack_single_bdigit(need_swap ? swap32(u) : u, sizeof(uint32_t), flags, dp);
- }
-#endif
-#if defined(HAVE_UINT64_T) && 8 <= SIZEOF_BDIGIT
- if (wordsize == 8 && (uintptr_t)words % RUBY_ALIGNOF(uint64_t) == 0) {
- uint64_t u = *reinterpret_cast(const uint64_t *, buf);
- return integer_unpack_single_bdigit(need_swap ? swap64(u) : u, sizeof(uint64_t), flags, dp);
- }
-#endif
-#undef reinterpret_cast
- }
-#if !defined(WORDS_BIGENDIAN)
- if (nails == 0 && SIZEOF_BDIGIT == sizeof(BDIGIT) &&
- (flags & INTEGER_PACK_WORDORDER_MASK) == INTEGER_PACK_LSWORD_FIRST &&
- (flags & INTEGER_PACK_BYTEORDER_MASK) != INTEGER_PACK_MSBYTE_FIRST) {
- size_t src_size = numwords * wordsize;
- size_t dst_size = num_bdigits * SIZEOF_BDIGIT;
- MEMCPY(dp, words, char, src_size);
- if (flags & INTEGER_PACK_2COMP) {
- if (flags & INTEGER_PACK_NEGATIVE) {
- int zero_p;
- memset((char*)dp + src_size, 0xff, dst_size - src_size);
- zero_p = bary_2comp(dp, num_bdigits);
- sign = zero_p ? -2 : -1;
- }
- else if (buf[src_size-1] >> (CHAR_BIT-1)) {
- memset((char*)dp + src_size, 0xff, dst_size - src_size);
- bary_2comp(dp, num_bdigits);
- sign = -1;
- }
- else {
- MEMZERO((char*)dp + src_size, char, dst_size - src_size);
- sign = 1;
- }
- }
- else {
- MEMZERO((char*)dp + src_size, char, dst_size - src_size);
- sign = (flags & INTEGER_PACK_NEGATIVE) ? -1 : 1;
- }
- return sign;
- }
-#endif
- if (nails == 0 && SIZEOF_BDIGIT == sizeof(BDIGIT) &&
- wordsize % SIZEOF_BDIGIT == 0) {
- size_t bdigits_per_word = wordsize / SIZEOF_BDIGIT;
- int mswordfirst_p = (flags & INTEGER_PACK_MSWORD_FIRST) != 0;
- int msbytefirst_p = (flags & INTEGER_PACK_NATIVE_BYTE_ORDER) ? HOST_BIGENDIAN_P :
- (flags & INTEGER_PACK_MSBYTE_FIRST) != 0;
- MEMCPY(dp, words, BDIGIT, numwords*bdigits_per_word);
- if (mswordfirst_p) {
- bary_swap(dp, num_bdigits);
- }
- if (mswordfirst_p ? !msbytefirst_p : msbytefirst_p) {
- size_t i;
- BDIGIT *p = dp;
- for (i = 0; i < numwords; i++) {
- bary_swap(p, bdigits_per_word);
- p += bdigits_per_word;
- }
- }
- if (msbytefirst_p != HOST_BIGENDIAN_P) {
- BDIGIT *p;
- for (p = dp; p < de; p++) {
- BDIGIT d = *p;
- *p = swap_bdigit(d);
- }
- }
- if (flags & INTEGER_PACK_2COMP) {
- if (flags & INTEGER_PACK_NEGATIVE) {
- int zero_p = bary_2comp(dp, num_bdigits);
- sign = zero_p ? -2 : -1;
- }
- else if (BDIGIT_MSB(de[-1])) {
- bary_2comp(dp, num_bdigits);
- sign = -1;
- }
- else {
- sign = 1;
- }
- }
- else {
- sign = (flags & INTEGER_PACK_NEGATIVE) ? -1 : 1;
- }
- return sign;
- }
- }
-
- if (num_bdigits != 0) {
- int word_num_partialbits;
- size_t word_num_fullbytes;
-
- ssize_t word_step;
- size_t byte_start;
- int byte_step;
-
- size_t word_start, word_last;
- const unsigned char *wordp, *last_wordp;
- BDIGIT_DBL dd;
- int numbits_in_dd;
-
- integer_pack_loop_setup(numwords, wordsize, nails, flags,
- &word_num_fullbytes, &word_num_partialbits,
- &word_start, &word_step, &word_last, &byte_start, &byte_step);
-
- wordp = buf + word_start;
- last_wordp = buf + word_last;
-
- dd = 0;
- numbits_in_dd = 0;
-
-#define PUSH_BITS(data, numbits) \
- integer_unpack_push_bits(data, numbits, &dd, &numbits_in_dd, &dp)
-
- while (1) {
- size_t index_in_word = 0;
- const unsigned char *bytep = wordp + byte_start;
- while (index_in_word < word_num_fullbytes) {
- PUSH_BITS(*bytep, CHAR_BIT);
- bytep += byte_step;
- index_in_word++;
- }
- if (word_num_partialbits) {
- PUSH_BITS(*bytep & ((1 << word_num_partialbits) - 1), word_num_partialbits);
- bytep += byte_step;
- index_in_word++;
- }
-
- if (wordp == last_wordp)
- break;
-
- wordp += word_step;
- }
- if (dd)
- *dp++ = (BDIGIT)dd;
- assert(dp <= de);
- while (dp < de)
- *dp++ = 0;
-#undef PUSH_BITS
- }
-
- if (!(flags & INTEGER_PACK_2COMP)) {
- sign = (flags & INTEGER_PACK_NEGATIVE) ? -1 : 1;
- }
- else {
- if (nlp_bits) {
- if ((flags & INTEGER_PACK_NEGATIVE) ||
- (bdigits[num_bdigits-1] >> (BITSPERDIG - nlp_bits - 1))) {
- bdigits[num_bdigits-1] |= BIGLO(BDIGMAX << (BITSPERDIG - nlp_bits));
- sign = -1;
- }
- else {
- sign = 1;
- }
- }
- else {
- if (flags & INTEGER_PACK_NEGATIVE) {
- sign = bary_zero_p(bdigits, num_bdigits) ? -2 : -1;
- }
- else {
- if (num_bdigits != 0 && BDIGIT_MSB(bdigits[num_bdigits-1]))
- sign = -1;
- else
- sign = 1;
- }
- }
- if (sign == -1 && num_bdigits != 0) {
- bary_2comp(bdigits, num_bdigits);
- }
- }
-
- return sign;
-}
-
-static void
-bary_unpack(BDIGIT *bdigits, size_t num_bdigits, const void *words, size_t numwords, size_t wordsize, size_t nails, int flags)
-{
- size_t num_bdigits0;
- int nlp_bits;
- int sign;
-
- validate_integer_pack_format(numwords, wordsize, nails, flags,
- INTEGER_PACK_MSWORD_FIRST|
- INTEGER_PACK_LSWORD_FIRST|
- INTEGER_PACK_MSBYTE_FIRST|
- INTEGER_PACK_LSBYTE_FIRST|
- INTEGER_PACK_NATIVE_BYTE_ORDER|
- INTEGER_PACK_2COMP|
- INTEGER_PACK_FORCE_BIGNUM|
- INTEGER_PACK_NEGATIVE|
- INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION);
-
- num_bdigits0 = integer_unpack_num_bdigits(numwords, wordsize, nails, &nlp_bits);
-
- assert(num_bdigits0 <= num_bdigits);
-
- sign = bary_unpack_internal(bdigits, num_bdigits0, words, numwords, wordsize, nails, flags, nlp_bits);
-
- if (num_bdigits0 < num_bdigits) {
- BDIGITS_ZERO(bdigits + num_bdigits0, num_bdigits - num_bdigits0);
- if (sign == -2) {
- bdigits[num_bdigits0] = 1;
- }
- }
-}
-
-static int
-bary_subb(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn, int borrow)
-{
- BDIGIT_DBL_SIGNED num;
- size_t i;
- size_t sn;
-
- assert(xn <= zn);
- assert(yn <= zn);
-
- sn = xn < yn ? xn : yn;
-
- num = borrow ? -1 : 0;
- for (i = 0; i < sn; i++) {
- num += (BDIGIT_DBL_SIGNED)xds[i] - yds[i];
- zds[i] = BIGLO(num);
- num = BIGDN(num);
- }
- if (yn <= xn) {
- for (; i < xn; i++) {
- if (num == 0) goto num_is_zero;
- num += xds[i];
- zds[i] = BIGLO(num);
- num = BIGDN(num);
- }
- }
- else {
- for (; i < yn; i++) {
- num -= yds[i];
- zds[i] = BIGLO(num);
- num = BIGDN(num);
- }
- }
- if (num == 0) goto num_is_zero;
- for (; i < zn; i++) {
- zds[i] = BDIGMAX;
- }
- return 1;
-
- num_is_zero:
- if (xds == zds && xn == zn)
- return 0;
- for (; i < xn; i++) {
- zds[i] = xds[i];
- }
- for (; i < zn; i++) {
- zds[i] = 0;
- }
- return 0;
-}
-
-static int
-bary_sub(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn)
-{
- return bary_subb(zds, zn, xds, xn, yds, yn, 0);
-}
-
-static int
-bary_sub_one(BDIGIT *zds, size_t zn)
-{
- return bary_subb(zds, zn, zds, zn, NULL, 0, 1);
-}
-
-static int
-bary_addc(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn, int carry)
-{
- BDIGIT_DBL num;
- size_t i;
-
- assert(xn <= zn);
- assert(yn <= zn);
-
- if (xn > yn) {
- const BDIGIT *tds;
- tds = xds; xds = yds; yds = tds;
- i = xn; xn = yn; yn = i;
- }
-
- num = carry ? 1 : 0;
- for (i = 0; i < xn; i++) {
- num += (BDIGIT_DBL)xds[i] + yds[i];
- zds[i] = BIGLO(num);
- num = BIGDN(num);
- }
- for (; i < yn; i++) {
- if (num == 0) goto num_is_zero;
- num += yds[i];
- zds[i] = BIGLO(num);
- num = BIGDN(num);
- }
- for (; i < zn; i++) {
- if (num == 0) goto num_is_zero;
- zds[i] = BIGLO(num);
- num = BIGDN(num);
- }
- return num != 0;
-
- num_is_zero:
- if (yds == zds && yn == zn)
- return 0;
- for (; i < yn; i++) {
- zds[i] = yds[i];
- }
- for (; i < zn; i++) {
- zds[i] = 0;
- }
- return 0;
-}
-
-static int
-bary_add(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn)
-{
- return bary_addc(zds, zn, xds, xn, yds, yn, 0);
-}
-
-static int
-bary_add_one(BDIGIT *ds, size_t n)
-{
- size_t i;
- for (i = 0; i < n; i++) {
- BDIGIT_DBL n = ds[i];
- n += 1;
- ds[i] = BIGLO(n);
- if (ds[i] != 0)
- return 0;
- }
- return 1;
-}
-
-static void
-bary_mul_single(BDIGIT *zds, size_t zn, BDIGIT x, BDIGIT y)
-{
- BDIGIT_DBL n;
-
- assert(2 <= zn);
-
- n = (BDIGIT_DBL)x * y;
- bdigitdbl2bary(zds, 2, n);
- BDIGITS_ZERO(zds + 2, zn - 2);
-}
-
-static int
-bary_muladd_1xN(BDIGIT *zds, size_t zn, BDIGIT x, const BDIGIT *yds, size_t yn)
-{
- BDIGIT_DBL n;
- BDIGIT_DBL dd;
- size_t j;
-
- assert(zn > yn);
-
- if (x == 0)
- return 0;
- dd = x;
- n = 0;
- for (j = 0; j < yn; j++) {
- BDIGIT_DBL ee = n + dd * yds[j];
- if (ee) {
- n = zds[j] + ee;
- zds[j] = BIGLO(n);
- n = BIGDN(n);
- }
- else {
- n = 0;
- }
-
- }
- for (; j < zn; j++) {
- if (n == 0)
- break;
- n += zds[j];
- zds[j] = BIGLO(n);
- n = BIGDN(n);
- }
- return n != 0;
-}
-
-static BDIGIT_DBL_SIGNED
-bigdivrem_mulsub(BDIGIT *zds, size_t zn, BDIGIT x, const BDIGIT *yds, size_t yn)
-{
- size_t i;
- BDIGIT_DBL t2;
- BDIGIT_DBL_SIGNED num;
-
- assert(zn == yn + 1);
-
- num = 0;
- t2 = 0;
- i = 0;
-
- do {
- BDIGIT_DBL_SIGNED ee;
- t2 += (BDIGIT_DBL)yds[i] * x;
- ee = num - BIGLO(t2);
- num = (BDIGIT_DBL_SIGNED)zds[i] + ee;
- if (ee) zds[i] = BIGLO(num);
- num = BIGDN(num);
- t2 = BIGDN(t2);
- } while (++i < yn);
- num -= (BDIGIT_DBL_SIGNED)t2;
- num += (BDIGIT_DBL_SIGNED)zds[yn]; /* borrow from high digit; don't update */
- return num;
-}
-
-static int
-bary_mulsub_1xN(BDIGIT *zds, size_t zn, BDIGIT x, const BDIGIT *yds, size_t yn)
-{
- BDIGIT_DBL_SIGNED num;
-
- assert(zn == yn + 1);
-
- num = bigdivrem_mulsub(zds, zn, x, yds, yn);
- zds[yn] = BIGLO(num);
- if (BIGDN(num))
- return 1;
- return 0;
-}
-
-static void
-bary_mul_normal(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn)
-{
- size_t i;
-
- assert(xn + yn <= zn);
-
- BDIGITS_ZERO(zds, zn);
- for (i = 0; i < xn; i++) {
- bary_muladd_1xN(zds+i, zn-i, xds[i], yds, yn);
- }
-}
-
-VALUE
-rb_big_mul_normal(VALUE x, VALUE y)
-{
- size_t xn = BIGNUM_LEN(x), yn = BIGNUM_LEN(y), zn = xn + yn;
- VALUE z = bignew(zn, BIGNUM_SIGN(x)==BIGNUM_SIGN(y));
- bary_mul_normal(BDIGITS(z), zn, BDIGITS(x), xn, BDIGITS(y), yn);
- RB_GC_GUARD(x);
- RB_GC_GUARD(y);
- return z;
-}
-
-/* efficient squaring (2 times faster than normal multiplication)
- * ref: Handbook of Applied Cryptography, Algorithm 14.16
- * http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf
- */
-static void
-bary_sq_fast(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn)
-{
- size_t i, j;
- BDIGIT_DBL c, v, w;
- BDIGIT vl;
- int vh;
-
- assert(xn * 2 <= zn);
-
- BDIGITS_ZERO(zds, zn);
-
- if (xn == 0)
- return;
-
- for (i = 0; i < xn-1; i++) {
- v = (BDIGIT_DBL)xds[i];
- if (!v)
- continue;
- c = (BDIGIT_DBL)zds[i + i] + v * v;
- zds[i + i] = BIGLO(c);
- c = BIGDN(c);
- v *= 2;
- vl = BIGLO(v);
- vh = (int)BIGDN(v);
- for (j = i + 1; j < xn; j++) {
- w = (BDIGIT_DBL)xds[j];
- c += (BDIGIT_DBL)zds[i + j] + vl * w;
- zds[i + j] = BIGLO(c);
- c = BIGDN(c);
- if (vh)
- c += w;
- }
- if (c) {
- c += (BDIGIT_DBL)zds[i + xn];
- zds[i + xn] = BIGLO(c);
- c = BIGDN(c);
- if (c)
- zds[i + xn + 1] += (BDIGIT)c;
- }
- }
-
- /* i == xn-1 */
- v = (BDIGIT_DBL)xds[i];
- if (!v)
- return;
- c = (BDIGIT_DBL)zds[i + i] + v * v;
- zds[i + i] = BIGLO(c);
- c = BIGDN(c);
- if (c) {
- zds[i + xn] += BIGLO(c);
- }
-}
-
-VALUE
-rb_big_sq_fast(VALUE x)
-{
- size_t xn = BIGNUM_LEN(x), zn = 2 * xn;
- VALUE z = bignew(zn, 1);
- bary_sq_fast(BDIGITS(z), zn, BDIGITS(x), xn);
- RB_GC_GUARD(x);
- return z;
-}
-
-/* balancing multiplication by slicing larger argument */
-static void
-bary_mul_balance_with_mulfunc(BDIGIT *const zds, const size_t zn,
- const BDIGIT *const xds, const size_t xn,
- const BDIGIT *const yds, const size_t yn,
- BDIGIT *wds, size_t wn, mulfunc_t *const mulfunc)
-{
- VALUE work = 0;
- size_t n;
-
- assert(xn + yn <= zn);
- assert(xn <= yn);
- assert(!KARATSUBA_BALANCED(xn, yn) || !TOOM3_BALANCED(xn, yn));
-
- BDIGITS_ZERO(zds, xn);
-
- if (wn < xn) {
- const size_t r = (yn % xn) ? (yn % xn) : xn;
- if ((2 * xn + yn + r) > zn) {
- wn = xn;
- wds = ALLOCV_N(BDIGIT, work, wn);
- }
- }
-
- n = 0;
- while (yn > n) {
- const size_t r = (xn > (yn - n) ? (yn - n) : xn);
- const size_t tn = (xn + r);
- if (2 * (xn + r) <= zn - n) {
- BDIGIT *const tds = zds + n + xn + r;
- mulfunc(tds, tn, xds, xn, yds + n, r, wds, wn);
- BDIGITS_ZERO(zds + n + xn, r);
- bary_add(zds + n, tn,
- zds + n, tn,
- tds, tn);
- }
- else {
- BDIGIT *const tds = zds + n;
- if (wn < xn) {
- /* xn is invariant, only once here */
-#if 0
- wn = xn;
- wds = ALLOCV_N(BDIGIT, work, wn);
-#else
- rb_bug("wds is not enough: %" PRIdSIZE " for %" PRIdSIZE, wn, xn);
-#endif
- }
- MEMCPY(wds, zds + n, BDIGIT, xn);
- mulfunc(tds, tn, xds, xn, yds + n, r, wds+xn, wn-xn);
- bary_add(zds + n, tn,
- zds + n, tn,
- wds, xn);
- }
- n += r;
- }
- BDIGITS_ZERO(zds+xn+yn, zn - (xn+yn));
-
- if (work)
- ALLOCV_END(work);
-}
+VALUE rb_cBignum;
+typedef unsigned short USHORT;
-VALUE
-rb_big_mul_balance(VALUE x, VALUE y)
-{
- size_t xn = BIGNUM_LEN(x), yn = BIGNUM_LEN(y), zn = xn + yn;
- VALUE z = bignew(zn, BIGNUM_SIGN(x)==BIGNUM_SIGN(y));
- bary_mul_balance_with_mulfunc(BDIGITS(z), zn, BDIGITS(x), xn, BDIGITS(y), yn, NULL, 0, bary_mul_toom3_start);
- RB_GC_GUARD(x);
- RB_GC_GUARD(y);
- return z;
-}
+#define BDIGITS(x) RBIGNUM(x)->digits
+#define BITSPERDIG (sizeof(short)*CHAR_BIT)
+#define BIGRAD (1L << BITSPERDIG)
+#define DIGSPERINT ((unsigned int)(sizeof(long)/sizeof(short)))
+#define BIGUP(x) ((unsigned long)(x) << BITSPERDIG)
+#define BIGDN(x) RSHIFT(x,BITSPERDIG)
+#define BIGLO(x) ((USHORT)((x) & (BIGRAD-1)))
-/* multiplication by karatsuba method */
-static void
-bary_mul_karatsuba(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn, BDIGIT *wds, size_t wn)
+static VALUE
+bignew_1(klass, len, sign)
+ VALUE klass;
+ long len;
+ char sign;
{
- VALUE work = 0;
-
- size_t n;
- int sub_p, borrow, carry1, carry2, carry3;
-
- int odd_y = 0;
- int odd_xy = 0;
- int sq;
-
- const BDIGIT *xds0, *xds1, *yds0, *yds1;
- BDIGIT *zds0, *zds1, *zds2, *zds3;
+ NEWOBJ(big, struct RBignum);
+ OBJSETUP(big, klass, T_BIGNUM);
+ big->sign = sign;
+ big->len = len;
+ BDIGITS(big) = ALLOC_N(USHORT, len);
- assert(xn + yn <= zn);
- assert(xn <= yn);
- assert(yn < 2 * xn);
-
- sq = xds == yds && xn == yn;
-
- if (yn & 1) {
- odd_y = 1;
- yn--;
- if (yn < xn) {
- odd_xy = 1;
- xn--;
- }
- }
-
- n = yn / 2;
-
- assert(n < xn);
-
- if (wn < n) {
- /* This function itself needs only n BDIGITs for work area.
- * However this function calls bary_mul_karatsuba and
- * bary_mul_balance recursively.
- * 2n BDIGITs are enough to avoid allocations in
- * the recursively called functions.
- */
- wn = 2*n;
- wds = ALLOCV_N(BDIGIT, work, wn);
- }
-
- /* Karatsuba algorithm:
- *
- * x = x0 + r*x1
- * y = y0 + r*y1
- * z = x*y
- * = (x0 + r*x1) * (y0 + r*y1)
- * = x0*y0 + r*(x1*y0 + x0*y1) + r*r*x1*y1
- * = x0*y0 + r*(x0*y0 + x1*y1 - (x1-x0)*(y1-y0)) + r*r*x1*y1
- * = x0*y0 + r*(x0*y0 + x1*y1 - (x0-x1)*(y0-y1)) + r*r*x1*y1
- */
-
- xds0 = xds;
- xds1 = xds + n;
- yds0 = yds;
- yds1 = yds + n;
- zds0 = zds;
- zds1 = zds + n;
- zds2 = zds + 2*n;
- zds3 = zds + 3*n;
-
- sub_p = 1;
-
- /* zds0:? zds1:? zds2:? zds3:? wds:? */
-
- if (bary_sub(zds0, n, xds, n, xds+n, xn-n)) {
- bary_2comp(zds0, n);
- sub_p = !sub_p;
- }
-
- /* zds0:|x1-x0| zds1:? zds2:? zds3:? wds:? */
-
- if (sq) {
- sub_p = 1;
- bary_mul_karatsuba_start(zds1, 2*n, zds0, n, zds0, n, wds, wn);
- }
- else {
- if (bary_sub(wds, n, yds, n, yds+n, n)) {
- bary_2comp(wds, n);
- sub_p = !sub_p;
- }
-
- /* zds0:|x1-x0| zds1:? zds2:? zds3:? wds:|y1-y0| */
-
- bary_mul_karatsuba_start(zds1, 2*n, zds0, n, wds, n, wds+n, wn-n);
- }
-
- /* zds0:|x1-x0| zds1,zds2:|x1-x0|*|y1-y0| zds3:? wds:|y1-y0| */
-
- borrow = 0;
- if (sub_p) {
- borrow = !bary_2comp(zds1, 2*n);
- }
- /* zds0:|x1-x0| zds1,zds2:-?|x1-x0|*|y1-y0| zds3:? wds:|y1-y0| */
-
- MEMCPY(wds, zds1, BDIGIT, n);
-
- /* zds0:|x1-x0| zds1,zds2:-?|x1-x0|*|y1-y0| zds3:? wds:lo(-?|x1-x0|*|y1-y0|) */
-
- bary_mul_karatsuba_start(zds0, 2*n, xds0, n, yds0, n, wds+n, wn-n);
-
- /* zds0,zds1:x0*y0 zds2:hi(-?|x1-x0|*|y1-y0|) zds3:? wds:lo(-?|x1-x0|*|y1-y0|) */
-
- carry1 = bary_add(wds, n, wds, n, zds0, n);
- carry1 = bary_addc(zds2, n, zds2, n, zds1, n, carry1);
-
- /* zds0,zds1:x0*y0 zds2:hi(x0*y0-?|x1-x0|*|y1-y0|) zds3:? wds:lo(x0*y0-?|x1-x0|*|y1-y0|) */
-
- carry2 = bary_add(zds1, n, zds1, n, wds, n);
-
- /* zds0:lo(x0*y0) zds1:hi(x0*y0)+lo(x0*y0-?|x1-x0|*|y1-y0|) zds2:hi(x0*y0-?|x1-x0|*|y1-y0|) zds3:? wds:lo(x0*y0-?|x1-x0|*|y1-y0|) */
-
- MEMCPY(wds, zds2, BDIGIT, n);
-
- /* zds0:lo(x0*y0) zds1:hi(x0*y0)+lo(x0*y0-?|x1-x0|*|y1-y0|) zds2:_ zds3:? wds:hi(x0*y0-?|x1-x0|*|y1-y0|) */
-
- bary_mul_karatsuba_start(zds2, zn-2*n, xds1, xn-n, yds1, n, wds+n, wn-n);
-
- /* zds0:lo(x0*y0) zds1:hi(x0*y0)+lo(x0*y0-?|x1-x0|*|y1-y0|) zds2,zds3:x1*y1 wds:hi(x0*y0-?|x1-x0|*|y1-y0|) */
-
- carry3 = bary_add(zds1, n, zds1, n, zds2, n);
-
- /* zds0:lo(x0*y0) zds1:hi(x0*y0)+lo(x0*y0-?|x1-x0|*|y1-y0|)+lo(x1*y1) zds2,zds3:x1*y1 wds:hi(x0*y0-?|x1-x0|*|y1-y0|) */
-
- carry3 = bary_addc(zds2, n, zds2, n, zds3, (4*n < zn ? n : zn-3*n), carry3);
-
- /* zds0:lo(x0*y0) zds1:hi(x0*y0)+lo(x0*y0-?|x1-x0|*|y1-y0|)+lo(x1*y1) zds2,zds3:x1*y1+hi(x1*y1) wds:hi(x0*y0-?|x1-x0|*|y1-y0|) */
-
- bary_add(zds2, zn-2*n, zds2, zn-2*n, wds, n);
-
- /* zds0:lo(x0*y0) zds1:hi(x0*y0)+lo(x0*y0-?|x1-x0|*|y1-y0|)+lo(x1*y1) zds2,zds3:x1*y1+hi(x1*y1)+hi(x0*y0-?|x1-x0|*|y1-y0|) wds:_ */
-
- if (carry2)
- bary_add_one(zds2, zn-2*n);
-
- if (carry1 + carry3 - borrow < 0)
- bary_sub_one(zds3, zn-3*n);
- else if (carry1 + carry3 - borrow > 0) {
- BDIGIT c = carry1 + carry3 - borrow;
- bary_add(zds3, zn-3*n, zds3, zn-3*n, &c, 1);
- }
-
- /*
- if (SIZEOF_BDIGIT * zn <= 16) {
- uint128_t z, x, y;
- ssize_t i;
- for (x = 0, i = xn-1; 0 <= i; i--) { x <<= SIZEOF_BDIGIT*CHAR_BIT; x |= xds[i]; }
- for (y = 0, i = yn-1; 0 <= i; i--) { y <<= SIZEOF_BDIGIT*CHAR_BIT; y |= yds[i]; }
- for (z = 0, i = zn-1; 0 <= i; i--) { z <<= SIZEOF_BDIGIT*CHAR_BIT; z |= zds[i]; }
- assert(z == x * y);
- }
- */
-
- if (odd_xy) {
- bary_muladd_1xN(zds+yn, zn-yn, yds[yn], xds, xn);
- bary_muladd_1xN(zds+xn, zn-xn, xds[xn], yds, yn+1);
- }
- else if (odd_y) {
- bary_muladd_1xN(zds+yn, zn-yn, yds[yn], xds, xn);
- }
-
- if (work)
- ALLOCV_END(work);
+ return (VALUE)big;
}
-VALUE
-rb_big_mul_karatsuba(VALUE x, VALUE y)
-{
- size_t xn = BIGNUM_LEN(x), yn = BIGNUM_LEN(y), zn = xn + yn;
- VALUE z = bignew(zn, BIGNUM_SIGN(x)==BIGNUM_SIGN(y));
- if (!((xn <= yn && yn < 2) || KARATSUBA_BALANCED(xn, yn)))
- rb_raise(rb_eArgError, "unexpected bignum length for karatsuba");
- bary_mul_karatsuba(BDIGITS(z), zn, BDIGITS(x), xn, BDIGITS(y), yn, NULL, 0);
- RB_GC_GUARD(x);
- RB_GC_GUARD(y);
- return z;
-}
-
-static void
-bary_mul_toom3(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn, BDIGIT *wds, size_t wn)
-{
- size_t n;
- size_t wnc;
- VALUE work = 0;
-
- /* "p" stands for "positive". Actually it means "non-negative", though. */
- size_t x0n; const BDIGIT *x0ds;
- size_t x1n; const BDIGIT *x1ds;
- size_t x2n; const BDIGIT *x2ds;
- size_t y0n; const BDIGIT *y0ds;
- size_t y1n; const BDIGIT *y1ds;
- size_t y2n; const BDIGIT *y2ds;
-
- size_t u1n; BDIGIT *u1ds; int u1p;
- size_t u2n; BDIGIT *u2ds; int u2p;
- size_t u3n; BDIGIT *u3ds; int u3p;
-
- size_t v1n; BDIGIT *v1ds; int v1p;
- size_t v2n; BDIGIT *v2ds; int v2p;
- size_t v3n; BDIGIT *v3ds; int v3p;
-
- size_t t0n; BDIGIT *t0ds; int t0p;
- size_t t1n; BDIGIT *t1ds; int t1p;
- size_t t2n; BDIGIT *t2ds; int t2p;
- size_t t3n; BDIGIT *t3ds; int t3p;
- size_t t4n; BDIGIT *t4ds; int t4p;
-
- size_t z0n; BDIGIT *z0ds;
- size_t z1n; BDIGIT *z1ds; int z1p;
- size_t z2n; BDIGIT *z2ds; int z2p;
- size_t z3n; BDIGIT *z3ds; int z3p;
- size_t z4n; BDIGIT *z4ds;
-
- size_t zzn; BDIGIT *zzds;
-
- int sq = xds == yds && xn == yn;
-
- assert(xn <= yn); /* assume y >= x */
- assert(xn + yn <= zn);
-
- n = (yn + 2) / 3;
- assert(2*n < xn);
-
- wnc = 0;
-
- wnc += (u1n = n+1); /* BITSPERDIG*n+2 bits */
- wnc += (u2n = n+1); /* BITSPERDIG*n+1 bits */
- wnc += (u3n = n+1); /* BITSPERDIG*n+3 bits */
- wnc += (v1n = n+1); /* BITSPERDIG*n+2 bits */
- wnc += (v2n = n+1); /* BITSPERDIG*n+1 bits */
- wnc += (v3n = n+1); /* BITSPERDIG*n+3 bits */
-
- wnc += (t0n = 2*n); /* BITSPERDIG*2*n bits */
- wnc += (t1n = 2*n+2); /* BITSPERDIG*2*n+4 bits but bary_mul needs u1n+v1n */
- wnc += (t2n = 2*n+2); /* BITSPERDIG*2*n+2 bits but bary_mul needs u2n+v2n */
- wnc += (t3n = 2*n+2); /* BITSPERDIG*2*n+6 bits but bary_mul needs u3n+v3n */
- wnc += (t4n = 2*n); /* BITSPERDIG*2*n bits */
-
- wnc += (z1n = 2*n+1); /* BITSPERDIG*2*n+5 bits */
- wnc += (z2n = 2*n+1); /* BITSPERDIG*2*n+6 bits */
- wnc += (z3n = 2*n+1); /* BITSPERDIG*2*n+8 bits */
-
- if (wn < wnc) {
- wn = wnc * 3 / 2; /* Allocate working memory for whole recursion at once. */
- wds = ALLOCV_N(BDIGIT, work, wn);
- }
-
- u1ds = wds; wds += u1n;
- u2ds = wds; wds += u2n;
- u3ds = wds; wds += u3n;
-
- v1ds = wds; wds += v1n;
- v2ds = wds; wds += v2n;
- v3ds = wds; wds += v3n;
-
- t0ds = wds; wds += t0n;
- t1ds = wds; wds += t1n;
- t2ds = wds; wds += t2n;
- t3ds = wds; wds += t3n;
- t4ds = wds; wds += t4n;
-
- z1ds = wds; wds += z1n;
- z2ds = wds; wds += z2n;
- z3ds = wds; wds += z3n;
-
- wn -= wnc;
-
- zzds = u1ds;
- zzn = 6*n+1;
-
- x0n = n;
- x1n = n;
- x2n = xn - 2*n;
- x0ds = xds;
- x1ds = xds + n;
- x2ds = xds + 2*n;
-
- if (sq) {
- y0n = x0n;
- y1n = x1n;
- y2n = x2n;
- y0ds = x0ds;
- y1ds = x1ds;
- y2ds = x2ds;
- }
- else {
- y0n = n;
- y1n = n;
- y2n = yn - 2*n;
- y0ds = yds;
- y1ds = yds + n;
- y2ds = yds + 2*n;
- }
-
- /*
- * ref. https://en.wikipedia.org/wiki/Toom%E2%80%93Cook_multiplication
- *
- * x(b) = x0 * b^0 + x1 * b^1 + x2 * b^2
- * y(b) = y0 * b^0 + y1 * b^1 + y2 * b^2
- *
- * z(b) = x(b) * y(b)
- * z(b) = z0 * b^0 + z1 * b^1 + z2 * b^2 + z3 * b^3 + z4 * b^4
- * where:
- * z0 = x0 * y0
- * z1 = x0 * y1 + x1 * y0
- * z2 = x0 * y2 + x1 * y1 + x2 * y0
- * z3 = x1 * y2 + x2 * y1
- * z4 = x2 * y2
- *
- * Toom3 method (a.k.a. Toom-Cook method):
- * (Step1) calculating 5 points z(b0), z(b1), z(b2), z(b3), z(b4),
- * where:
- * b0 = 0, b1 = 1, b2 = -1, b3 = -2, b4 = inf,
- * z(0) = x(0) * y(0) = x0 * y0
- * z(1) = x(1) * y(1) = (x0 + x1 + x2) * (y0 + y1 + y2)
- * z(-1) = x(-1) * y(-1) = (x0 - x1 + x2) * (y0 - y1 + y2)
- * z(-2) = x(-2) * y(-2) = (x0 - 2 * (x1 - 2 * x2)) * (y0 - 2 * (y1 - 2 * y2))
- * z(inf) = x(inf) * y(inf) = x2 * y2
- *
- * (Step2) interpolating z0, z1, z2, z3 and z4.
- *
- * (Step3) Substituting base value into b of the polynomial z(b),
- */
-
- /*
- * [Step1] calculating 5 points z(b0), z(b1), z(b2), z(b3), z(b4)
- */
-
- /* u1 <- x0 + x2 */
- bary_add(u1ds, u1n, x0ds, x0n, x2ds, x2n);
- u1p = 1;
-
- /* x(-1) : u2 <- u1 - x1 = x0 - x1 + x2 */
- if (bary_sub(u2ds, u2n, u1ds, u1n, x1ds, x1n)) {
- bary_2comp(u2ds, u2n);
- u2p = 0;
- }
- else {
- u2p = 1;
- }
-
- /* x(1) : u1 <- u1 + x1 = x0 + x1 + x2 */
- bary_add(u1ds, u1n, u1ds, u1n, x1ds, x1n);
-
- /* x(-2) : u3 <- 2 * (u2 + x2) - x0 = x0 - 2 * (x1 - 2 * x2) */
- u3p = 1;
- if (u2p) {
- bary_add(u3ds, u3n, u2ds, u2n, x2ds, x2n);
- }
- else if (bary_sub(u3ds, u3n, x2ds, x2n, u2ds, u2n)) {
- bary_2comp(u3ds, u3n);
- u3p = 0;
- }
- bary_small_lshift(u3ds, u3ds, u3n, 1);
- if (!u3p) {
- bary_add(u3ds, u3n, u3ds, u3n, x0ds, x0n);
- }
- else if (bary_sub(u3ds, u3n, u3ds, u3n, x0ds, x0n)) {
- bary_2comp(u3ds, u3n);
- u3p = 0;
- }
-
- if (sq) {
- v1n = u1n; v1ds = u1ds; v1p = u1p;
- v2n = u2n; v2ds = u2ds; v2p = u2p;
- v3n = u3n; v3ds = u3ds; v3p = u3p;
- }
- else {
- /* v1 <- y0 + y2 */
- bary_add(v1ds, v1n, y0ds, y0n, y2ds, y2n);
- v1p = 1;
-
- /* y(-1) : v2 <- v1 - y1 = y0 - y1 + y2 */
- v2p = 1;
- if (bary_sub(v2ds, v2n, v1ds, v1n, y1ds, y1n)) {
- bary_2comp(v2ds, v2n);
- v2p = 0;
- }
-
- /* y(1) : v1 <- v1 + y1 = y0 + y1 + y2 */
- bary_add(v1ds, v1n, v1ds, v1n, y1ds, y1n);
-
- /* y(-2) : v3 <- 2 * (v2 + y2) - y0 = y0 - 2 * (y1 - 2 * y2) */
- v3p = 1;
- if (v2p) {
- bary_add(v3ds, v3n, v2ds, v2n, y2ds, y2n);
- }
- else if (bary_sub(v3ds, v3n, y2ds, y2n, v2ds, v2n)) {
- bary_2comp(v3ds, v3n);
- v3p = 0;
- }
- bary_small_lshift(v3ds, v3ds, v3n, 1);
- if (!v3p) {
- bary_add(v3ds, v3n, v3ds, v3n, y0ds, y0n);
- }
- else if (bary_sub(v3ds, v3n, v3ds, v3n, y0ds, y0n)) {
- bary_2comp(v3ds, v3n);
- v3p = 0;
- }
- }
-
- /* z(0) : t0 <- x0 * y0 */
- bary_mul_toom3_start(t0ds, t0n, x0ds, x0n, y0ds, y0n, wds, wn);
- t0p = 1;
-
- /* z(1) : t1 <- u1 * v1 */
- bary_mul_toom3_start(t1ds, t1n, u1ds, u1n, v1ds, v1n, wds, wn);
- t1p = u1p == v1p;
- assert(t1ds[t1n-1] == 0);
- t1n--;
-
- /* z(-1) : t2 <- u2 * v2 */
- bary_mul_toom3_start(t2ds, t2n, u2ds, u2n, v2ds, v2n, wds, wn);
- t2p = u2p == v2p;
- assert(t2ds[t2n-1] == 0);
- t2n--;
-
- /* z(-2) : t3 <- u3 * v3 */
- bary_mul_toom3_start(t3ds, t3n, u3ds, u3n, v3ds, v3n, wds, wn);
- t3p = u3p == v3p;
- assert(t3ds[t3n-1] == 0);
- t3n--;
-
- /* z(inf) : t4 <- x2 * y2 */
- bary_mul_toom3_start(t4ds, t4n, x2ds, x2n, y2ds, y2n, wds, wn);
- t4p = 1;
-
- /*
- * [Step2] interpolating z0, z1, z2, z3 and z4.
- */
-
- /* z0 <- z(0) == t0 */
- z0n = t0n; z0ds = t0ds;
-
- /* z4 <- z(inf) == t4 */
- z4n = t4n; z4ds = t4ds;
-
- /* z3 <- (z(-2) - z(1)) / 3 == (t3 - t1) / 3 */
- if (t3p == t1p) {
- z3p = t3p;
- if (bary_sub(z3ds, z3n, t3ds, t3n, t1ds, t1n)) {
- bary_2comp(z3ds, z3n);
- z3p = !z3p;
- }
- }
- else {
- z3p = t3p;
- bary_add(z3ds, z3n, t3ds, t3n, t1ds, t1n);
- }
- bigdivrem_single(z3ds, z3ds, z3n, 3);
-
- /* z1 <- (z(1) - z(-1)) / 2 == (t1 - t2) / 2 */
- if (t1p == t2p) {
- z1p = t1p;
- if (bary_sub(z1ds, z1n, t1ds, t1n, t2ds, t2n)) {
- bary_2comp(z1ds, z1n);
- z1p = !z1p;
- }
- }
- else {
- z1p = t1p;
- bary_add(z1ds, z1n, t1ds, t1n, t2ds, t2n);
- }
- bary_small_rshift(z1ds, z1ds, z1n, 1, 0);
-
- /* z2 <- z(-1) - z(0) == t2 - t0 */
- if (t2p == t0p) {
- z2p = t2p;
- if (bary_sub(z2ds, z2n, t2ds, t2n, t0ds, t0n)) {
- bary_2comp(z2ds, z2n);
- z2p = !z2p;
- }
- }
- else {
- z2p = t2p;
- bary_add(z2ds, z2n, t2ds, t2n, t0ds, t0n);
- }
-
- /* z3 <- (z2 - z3) / 2 + 2 * z(inf) == (z2 - z3) / 2 + 2 * t4 */
- if (z2p == z3p) {
- z3p = z2p;
- if (bary_sub(z3ds, z3n, z2ds, z2n, z3ds, z3n)) {
- bary_2comp(z3ds, z3n);
- z3p = !z3p;
- }
- }
- else {
- z3p = z2p;
- bary_add(z3ds, z3n, z2ds, z2n, z3ds, z3n);
- }
- bary_small_rshift(z3ds, z3ds, z3n, 1, 0);
- if (z3p == t4p) {
- bary_muladd_1xN(z3ds, z3n, 2, t4ds, t4n);
- }
- else {
- if (bary_mulsub_1xN(z3ds, z3n, 2, t4ds, t4n)) {
- bary_2comp(z3ds, z3n);
- z3p = !z3p;
- }
- }
-
- /* z2 <- z2 + z1 - z(inf) == z2 + z1 - t4 */
- if (z2p == z1p) {
- bary_add(z2ds, z2n, z2ds, z2n, z1ds, z1n);
- }
- else {
- if (bary_sub(z2ds, z2n, z2ds, z2n, z1ds, z1n)) {
- bary_2comp(z2ds, z2n);
- z2p = !z2p;
- }
- }
-
- if (z2p == t4p) {
- if (bary_sub(z2ds, z2n, z2ds, z2n, t4ds, t4n)) {
- bary_2comp(z2ds, z2n);
- z2p = !z2p;
- }
- }
- else {
- bary_add(z2ds, z2n, z2ds, z2n, t4ds, t4n);
- }
-
- /* z1 <- z1 - z3 */
- if (z1p == z3p) {
- if (bary_sub(z1ds, z1n, z1ds, z1n, z3ds, z3n)) {
- bary_2comp(z1ds, z1n);
- z1p = !z1p;
- }
- }
- else {
- bary_add(z1ds, z1n, z1ds, z1n, z3ds, z3n);
- }
-
- /*
- * [Step3] Substituting base value into b of the polynomial z(b),
- */
-
- MEMCPY(zzds, z0ds, BDIGIT, z0n);
- BDIGITS_ZERO(zzds + z0n, 4*n - z0n);
- MEMCPY(zzds + 4*n, z4ds, BDIGIT, z4n);
- BDIGITS_ZERO(zzds + 4*n + z4n, zzn - (4*n + z4n));
- if (z1p)
- bary_add(zzds + n, zzn - n, zzds + n, zzn - n, z1ds, z1n);
- else
- bary_sub(zzds + n, zzn - n, zzds + n, zzn - n, z1ds, z1n);
- if (z2p)
- bary_add(zzds + 2*n, zzn - 2*n, zzds + 2*n, zzn - 2*n, z2ds, z2n);
- else
- bary_sub(zzds + 2*n, zzn - 2*n, zzds + 2*n, zzn - 2*n, z2ds, z2n);
- if (z3p)
- bary_add(zzds + 3*n, zzn - 3*n, zzds + 3*n, zzn - 3*n, z3ds, z3n);
- else
- bary_sub(zzds + 3*n, zzn - 3*n, zzds + 3*n, zzn - 3*n, z3ds, z3n);
-
- BARY_TRUNC(zzds, zzn);
- MEMCPY(zds, zzds, BDIGIT, zzn);
- BDIGITS_ZERO(zds + zzn, zn - zzn);
-
- if (work)
- ALLOCV_END(work);
-}
+#define bignew(len,sign) bignew_1(rb_cBignum,len,sign)
VALUE
-rb_big_mul_toom3(VALUE x, VALUE y)
-{
- size_t xn = BIGNUM_LEN(x), yn = BIGNUM_LEN(y), zn = xn + yn;
- VALUE z = bignew(zn, BIGNUM_SIGN(x)==BIGNUM_SIGN(y));
- if (xn > yn || yn < 3 || !TOOM3_BALANCED(xn,yn))
- rb_raise(rb_eArgError, "unexpected bignum length for toom3");
- bary_mul_toom3(BDIGITS(z), zn, BDIGITS(x), xn, BDIGITS(y), yn, NULL, 0);
- RB_GC_GUARD(x);
- RB_GC_GUARD(y);
- return z;
-}
-
-#ifdef USE_GMP
-static inline void
-bdigits_to_mpz(mpz_t mp, const BDIGIT *digits, size_t len)
-{
- const size_t nails = (sizeof(BDIGIT)-SIZEOF_BDIGIT)*CHAR_BIT;
- mpz_import(mp, len, -1, sizeof(BDIGIT), 0, nails, digits);
-}
-
-static inline void
-bdigits_from_mpz(mpz_t mp, BDIGIT *digits, size_t *len)
-{
- const size_t nails = (sizeof(BDIGIT)-SIZEOF_BDIGIT)*CHAR_BIT;
- mpz_export(digits, len, -1, sizeof(BDIGIT), 0, nails, mp);
-}
-
-static void
-bary_mul_gmp(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn)
+rb_big_clone(x)
+ VALUE x;
{
- mpz_t x, y, z;
- size_t count;
+ VALUE z = bignew_1(CLASS_OF(x), RBIGNUM(x)->len, RBIGNUM(x)->sign);
- assert(xn + yn <= zn);
-
- mpz_init(x);
- mpz_init(y);
- mpz_init(z);
- bdigits_to_mpz(x, xds, xn);
- if (xds == yds && xn == yn) {
- mpz_mul(z, x, x);
- }
- else {
- bdigits_to_mpz(y, yds, yn);
- mpz_mul(z, x, y);
- }
- bdigits_from_mpz(z, zds, &count);
- BDIGITS_ZERO(zds+count, zn-count);
- mpz_clear(x);
- mpz_clear(y);
- mpz_clear(z);
-}
-
-VALUE
-rb_big_mul_gmp(VALUE x, VALUE y)
-{
- size_t xn = BIGNUM_LEN(x), yn = BIGNUM_LEN(y), zn = xn + yn;
- VALUE z = bignew(zn, BIGNUM_SIGN(x)==BIGNUM_SIGN(y));
- bary_mul_gmp(BDIGITS(z), zn, BDIGITS(x), xn, BDIGITS(y), yn);
- RB_GC_GUARD(x);
- RB_GC_GUARD(y);
+ MEMCPY(BDIGITS(z), BDIGITS(x), USHORT, RBIGNUM(x)->len);
return z;
}
-#endif
-
-static void
-bary_short_mul(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn)
-{
- assert(xn + yn <= zn);
-
- if (xn == 1 && yn == 1) {
- bary_mul_single(zds, zn, xds[0], yds[0]);
- }
- else {
- bary_mul_normal(zds, zn, xds, xn, yds, yn);
- rb_thread_check_ints();
- }
-}
-
-/* determine whether a bignum is sparse or not by random sampling */
-static inline int
-bary_sparse_p(const BDIGIT *ds, size_t n)
-{
- long c = 0;
- if ( ds[2 * n / 5]) c++;
- if (c <= 1 && ds[ n / 2]) c++;
- if (c <= 1 && ds[3 * n / 5]) c++;
-
- return (c <= 1) ? 1 : 0;
-}
-
-static int
-bary_mul_precheck(BDIGIT **zdsp, size_t *znp, const BDIGIT **xdsp, size_t *xnp, const BDIGIT **ydsp, size_t *ynp)
-{
- size_t nlsz; /* number of least significant zero BDIGITs */
-
- BDIGIT *zds = *zdsp;
- size_t zn = *znp;
- const BDIGIT *xds = *xdsp;
- size_t xn = *xnp;
- const BDIGIT *yds = *ydsp;
- size_t yn = *ynp;
-
- assert(xn + yn <= zn);
-
- nlsz = 0;
-
- while (0 < xn) {
- if (xds[xn-1] == 0) {
- xn--;
- }
- else {
- do {
- if (xds[0] != 0)
- break;
- xds++;
- xn--;
- nlsz++;
- } while (0 < xn);
- break;
- }
- }
-
- while (0 < yn) {
- if (yds[yn-1] == 0) {
- yn--;
- }
- else {
- do {
- if (yds[0] != 0)
- break;
- yds++;
- yn--;
- nlsz++;
- } while (0 < yn);
- break;
- }
- }
-
- if (nlsz) {
- BDIGITS_ZERO(zds, nlsz);
- zds += nlsz;
- zn -= nlsz;
- }
-
- /* make sure that y is longer than x */
- if (xn > yn) {
- const BDIGIT *tds;
- size_t tn;
- tds = xds; xds = yds; yds = tds;
- tn = xn; xn = yn; yn = tn;
- }
- assert(xn <= yn);
-
- if (xn <= 1) {
- if (xn == 0) {
- BDIGITS_ZERO(zds, zn);
- return 1;
- }
-
- if (xds[0] == 1) {
- MEMCPY(zds, yds, BDIGIT, yn);
- BDIGITS_ZERO(zds+yn, zn-yn);
- return 1;
- }
- if (POW2_P(xds[0])) {
- zds[yn] = bary_small_lshift(zds, yds, yn, bit_length(xds[0])-1);
- BDIGITS_ZERO(zds+yn+1, zn-yn-1);
- return 1;
- }
- if (yn == 1 && yds[0] == 1) {
- zds[0] = xds[0];
- BDIGITS_ZERO(zds+1, zn-1);
- return 1;
- }
- bary_mul_normal(zds, zn, xds, xn, yds, yn);
- return 1;
- }
-
- *zdsp = zds;
- *znp = zn;
- *xdsp = xds;
- *xnp = xn;
- *ydsp = yds;
- *ynp = yn;
-
- return 0;
-}
-
-static void
-bary_mul_karatsuba_branch(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn, BDIGIT *wds, size_t wn)
-{
- /* normal multiplication when x is small */
- if (xn < KARATSUBA_MUL_DIGITS) {
- goto normal;
- }
-
- /* normal multiplication when x or y is a sparse bignum */
- if (bary_sparse_p(xds, xn)) goto normal;
- if (bary_sparse_p(yds, yn)) {
- bary_short_mul(zds, zn, yds, yn, xds, xn);
- return;
- }
-
- /* balance multiplication by slicing y when x is much smaller than y */
- if (!KARATSUBA_BALANCED(xn, yn)) {
- bary_mul_balance_with_mulfunc(zds, zn, xds, xn, yds, yn, wds, wn, bary_mul_karatsuba_start);
- return;
- }
-
- /* multiplication by karatsuba method */
- bary_mul_karatsuba(zds, zn, xds, xn, yds, yn, wds, wn);
- return;
-
- normal:
- if (xds == yds && xn == yn) {
- bary_sq_fast(zds, zn, xds, xn);
- }
- else {
- bary_short_mul(zds, zn, xds, xn, yds, yn);
- }
-}
-
-static void
-bary_mul_karatsuba_start(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn, BDIGIT *wds, size_t wn)
-{
- if (bary_mul_precheck(&zds, &zn, &xds, &xn, &yds, &yn))
- return;
-
- bary_mul_karatsuba_branch(zds, zn, xds, xn, yds, yn, wds, wn);
-}
-
-static void
-bary_mul_toom3_branch(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn, BDIGIT *wds, size_t wn)
-{
- if (xn < TOOM3_MUL_DIGITS) {
- bary_mul_karatsuba_branch(zds, zn, xds, xn, yds, yn, wds, wn);
- return;
- }
-
- if (!TOOM3_BALANCED(xn, yn)) {
- bary_mul_balance_with_mulfunc(zds, zn, xds, xn, yds, yn, wds, wn, bary_mul_toom3_start);
- return;
- }
-
- bary_mul_toom3(zds, zn, xds, xn, yds, yn, wds, wn);
-}
-
-static void
-bary_mul_toom3_start(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn, BDIGIT *wds, size_t wn)
-{
- if (bary_mul_precheck(&zds, &zn, &xds, &xn, &yds, &yn))
- return;
-
- bary_mul_toom3_branch(zds, zn, xds, xn, yds, yn, wds, wn);
-}
-
-static void
-bary_mul(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn)
-{
- if (xn <= yn) {
- if (xn < NAIVE_MUL_DIGITS) {
- if (xds == yds && xn == yn)
- bary_sq_fast(zds, zn, xds, xn);
- else
- bary_short_mul(zds, zn, xds, xn, yds, yn);
- return;
- }
- }
- else {
- if (yn < NAIVE_MUL_DIGITS) {
- bary_short_mul(zds, zn, yds, yn, xds, xn);
- return;
- }
- }
-
-#ifdef USE_GMP
- bary_mul_gmp(zds, zn, xds, xn, yds, yn);
-#else
- bary_mul_toom3_start(zds, zn, xds, xn, yds, yn, NULL, 0);
-#endif
-}
-
-struct big_div_struct {
- size_t yn, zn;
- BDIGIT *yds, *zds;
- volatile VALUE stop;
-};
-
-static void *
-bigdivrem1(void *ptr)
+void
+rb_big_2comp(x) /* get 2's complement */
+ VALUE x;
{
- struct big_div_struct *bds = (struct big_div_struct*)ptr;
- size_t yn = bds->yn;
- size_t zn = bds->zn;
- BDIGIT *yds = bds->yds, *zds = bds->zds;
- BDIGIT_DBL_SIGNED num;
- BDIGIT q;
+ long i = RBIGNUM(x)->len;
+ USHORT *ds = BDIGITS(x);
+ long num;
+ while (i--) ds[i] = ~ds[i];
+ i = 0; num = 1;
do {
- if (bds->stop) {
- bds->zn = zn;
- return 0;
- }
- if (zds[zn-1] == yds[yn-1]) q = BDIGMAX;
- else q = (BDIGIT)((BIGUP(zds[zn-1]) + zds[zn-2])/yds[yn-1]);
- if (q) {
- num = bigdivrem_mulsub(zds+zn-(yn+1), yn+1,
- q,
- yds, yn);
- while (num) { /* "add back" required */
- q--;
- num = bary_add(zds+zn-(yn+1), yn,
- zds+zn-(yn+1), yn,
- yds, yn);
- num--;
- }
- }
- zn--;
- zds[zn] = q;
- } while (zn > yn);
- return 0;
-}
-
-/* async-signal-safe */
-static void
-rb_big_stop(void *ptr)
-{
- struct big_div_struct *bds = ptr;
- bds->stop = Qtrue;
-}
-
-static BDIGIT
-bigdivrem_single1(BDIGIT *qds, const BDIGIT *xds, size_t xn, BDIGIT x_higher_bdigit, BDIGIT y)
-{
- assert(0 < xn);
- assert(x_higher_bdigit < y);
- if (POW2_P(y)) {
- BDIGIT r;
- r = xds[0] & (y-1);
- bary_small_rshift(qds, xds, xn, bit_length(y)-1, x_higher_bdigit);
- return r;
- }
- else {
- size_t i;
- BDIGIT_DBL t2;
- t2 = x_higher_bdigit;
- for (i = 0; i < xn; i++) {
- t2 = BIGUP(t2) + xds[xn - i - 1];
- qds[xn - i - 1] = (BDIGIT)(t2 / y);
- t2 %= y;
- }
- return (BDIGIT)t2;
- }
-}
-
-static BDIGIT
-bigdivrem_single(BDIGIT *qds, const BDIGIT *xds, size_t xn, BDIGIT y)
-{
- return bigdivrem_single1(qds, xds, xn, 0, y);
-}
-
-static void
-bigdivrem_restoring(BDIGIT *zds, size_t zn, BDIGIT *yds, size_t yn)
-{
- struct big_div_struct bds;
- size_t ynzero;
-
- assert(yn < zn);
- assert(BDIGIT_MSB(yds[yn-1]));
- assert(zds[zn-1] < yds[yn-1]);
-
- for (ynzero = 0; !yds[ynzero]; ynzero++);
-
- if (ynzero+1 == yn) {
- BDIGIT r;
- r = bigdivrem_single1(zds+yn, zds+ynzero, zn-yn, zds[zn-1], yds[ynzero]);
- zds[ynzero] = r;
- return;
- }
-
- bds.yn = yn - ynzero;
- bds.zds = zds + ynzero;
- bds.yds = yds + ynzero;
- bds.stop = Qfalse;
- bds.zn = zn - ynzero;
- if (bds.zn > 10000 || bds.yn > 10000) {
- retry:
- bds.stop = Qfalse;
- rb_nogvl(bigdivrem1, &bds, rb_big_stop, &bds, RB_NOGVL_UBF_ASYNC_SAFE);
-
- if (bds.stop == Qtrue) {
- /* execute trap handler, but exception was not raised. */
- goto retry;
+ num += ds[i];
+ ds[i++] = BIGLO(num);
+ num = BIGDN(num);
+ } while (i < RBIGNUM(x)->len);
+ if (ds[0] == 1 || ds[0] == 0) {
+ for (i=1; i<RBIGNUM(x)->len; i++) {
+ if (ds[i] != 0) return;
}
+ REALLOC_N(BDIGITS(x), USHORT, RBIGNUM(x)->len++);
+ ds = BDIGITS(x);
+ ds[RBIGNUM(x)->len-1] = 1;
}
- else {
- bigdivrem1(&bds);
- }
-}
-
-static void
-bary_divmod_normal(BDIGIT *qds, size_t qn, BDIGIT *rds, size_t rn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn)
-{
- int shift;
- BDIGIT *zds, *yyds;
- size_t zn;
- VALUE tmpyz = 0;
-
- assert(yn < xn || (xn == yn && yds[yn - 1] <= xds[xn - 1]));
- assert(qds ? (xn - yn + 1) <= qn : 1);
- assert(rds ? yn <= rn : 1);
-
- zn = xn + BIGDIVREM_EXTRA_WORDS;
-
- shift = nlz(yds[yn-1]);
- if (shift) {
- int alloc_y = !rds;
- int alloc_z = !qds || qn < zn;
- if (alloc_y && alloc_z) {
- yyds = ALLOCV_N(BDIGIT, tmpyz, yn+zn);
- zds = yyds + yn;
- }
- else {
- yyds = alloc_y ? ALLOCV_N(BDIGIT, tmpyz, yn) : rds;
- zds = alloc_z ? ALLOCV_N(BDIGIT, tmpyz, zn) : qds;
- }
- zds[xn] = bary_small_lshift(zds, xds, xn, shift);
- bary_small_lshift(yyds, yds, yn, shift);
- }
- else {
- if (qds && zn <= qn)
- zds = qds;
- else
- zds = ALLOCV_N(BDIGIT, tmpyz, zn);
- MEMCPY(zds, xds, BDIGIT, xn);
- zds[xn] = 0;
- /* bigdivrem_restoring will not modify y.
- * So use yds directly. */
- yyds = (BDIGIT *)yds;
- }
-
- bigdivrem_restoring(zds, zn, yyds, yn);
-
- if (rds) {
- if (shift)
- bary_small_rshift(rds, zds, yn, shift, 0);
- else
- MEMCPY(rds, zds, BDIGIT, yn);
- BDIGITS_ZERO(rds+yn, rn-yn);
- }
-
- if (qds) {
- size_t j = zn - yn;
- MEMMOVE(qds, zds+yn, BDIGIT, j);
- BDIGITS_ZERO(qds+j, qn-j);
- }
-
- if (tmpyz)
- ALLOCV_END(tmpyz);
-}
-
-VALUE
-rb_big_divrem_normal(VALUE x, VALUE y)
-{
- size_t xn = BIGNUM_LEN(x), yn = BIGNUM_LEN(y), qn, rn;
- BDIGIT *xds = BDIGITS(x), *yds = BDIGITS(y), *qds, *rds;
- VALUE q, r;
-
- BARY_TRUNC(yds, yn);
- if (yn == 0)
- rb_num_zerodiv();
- BARY_TRUNC(xds, xn);
-
- if (xn < yn || (xn == yn && xds[xn - 1] < yds[yn - 1]))
- return rb_assoc_new(LONG2FIX(0), x);
-
- qn = xn + BIGDIVREM_EXTRA_WORDS;
- q = bignew(qn, BIGNUM_SIGN(x)==BIGNUM_SIGN(y));
- qds = BDIGITS(q);
-
- rn = yn;
- r = bignew(rn, BIGNUM_SIGN(x));
- rds = BDIGITS(r);
-
- bary_divmod_normal(qds, qn, rds, rn, xds, xn, yds, yn);
-
- bigtrunc(q);
- bigtrunc(r);
-
- RB_GC_GUARD(x);
- RB_GC_GUARD(y);
-
- return rb_assoc_new(q, r);
-}
-
-#ifdef USE_GMP
-static void
-bary_divmod_gmp(BDIGIT *qds, size_t qn, BDIGIT *rds, size_t rn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn)
-{
- mpz_t x, y, q, r;
- size_t count;
-
- assert(yn < xn || (xn == yn && yds[yn - 1] <= xds[xn - 1]));
- assert(qds ? (xn - yn + 1) <= qn : 1);
- assert(rds ? yn <= rn : 1);
- assert(qds || rds);
-
- mpz_init(x);
- mpz_init(y);
- if (qds) mpz_init(q);
- if (rds) mpz_init(r);
-
- bdigits_to_mpz(x, xds, xn);
- bdigits_to_mpz(y, yds, yn);
-
- if (!rds) {
- mpz_fdiv_q(q, x, y);
- }
- else if (!qds) {
- mpz_fdiv_r(r, x, y);
- }
- else {
- mpz_fdiv_qr(q, r, x, y);
- }
-
- mpz_clear(x);
- mpz_clear(y);
-
- if (qds) {
- bdigits_from_mpz(q, qds, &count);
- BDIGITS_ZERO(qds+count, qn-count);
- mpz_clear(q);
- }
-
- if (rds) {
- bdigits_from_mpz(r, rds, &count);
- BDIGITS_ZERO(rds+count, rn-count);
- mpz_clear(r);
- }
-}
-
-VALUE
-rb_big_divrem_gmp(VALUE x, VALUE y)
-{
- size_t xn = BIGNUM_LEN(x), yn = BIGNUM_LEN(y), qn, rn;
- BDIGIT *xds = BDIGITS(x), *yds = BDIGITS(y), *qds, *rds;
- VALUE q, r;
-
- BARY_TRUNC(yds, yn);
- if (yn == 0)
- rb_num_zerodiv();
- BARY_TRUNC(xds, xn);
-
- if (xn < yn || (xn == yn && xds[xn - 1] < yds[yn - 1]))
- return rb_assoc_new(LONG2FIX(0), x);
-
- qn = xn - yn + 1;
- q = bignew(qn, BIGNUM_SIGN(x)==BIGNUM_SIGN(y));
- qds = BDIGITS(q);
-
- rn = yn;
- r = bignew(rn, BIGNUM_SIGN(x));
- rds = BDIGITS(r);
-
- bary_divmod_gmp(qds, qn, rds, rn, xds, xn, yds, yn);
-
- bigtrunc(q);
- bigtrunc(r);
-
- RB_GC_GUARD(x);
- RB_GC_GUARD(y);
-
- return rb_assoc_new(q, r);
-}
-#endif
-
-static void
-bary_divmod_branch(BDIGIT *qds, size_t qn, BDIGIT *rds, size_t rn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn)
-{
-#ifdef USE_GMP
- if (GMP_DIV_DIGITS < xn) {
- bary_divmod_gmp(qds, qn, rds, rn, xds, xn, yds, yn);
- return;
- }
-#endif
- bary_divmod_normal(qds, qn, rds, rn, xds, xn, yds, yn);
}
-static void
-bary_divmod(BDIGIT *qds, size_t qn, BDIGIT *rds, size_t rn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn)
-{
- assert(xn <= qn);
- assert(yn <= rn);
-
- BARY_TRUNC(yds, yn);
- if (yn == 0)
- rb_num_zerodiv();
-
- BARY_TRUNC(xds, xn);
- if (xn == 0) {
- BDIGITS_ZERO(qds, qn);
- BDIGITS_ZERO(rds, rn);
- return;
- }
-
- if (xn < yn || (xn == yn && xds[xn - 1] < yds[yn - 1])) {
- MEMCPY(rds, xds, BDIGIT, xn);
- BDIGITS_ZERO(rds+xn, rn-xn);
- BDIGITS_ZERO(qds, qn);
- }
- else if (yn == 1) {
- MEMCPY(qds, xds, BDIGIT, xn);
- BDIGITS_ZERO(qds+xn, qn-xn);
- rds[0] = bigdivrem_single(qds, xds, xn, yds[0]);
- BDIGITS_ZERO(rds+1, rn-1);
- }
- else if (xn == 2 && yn == 2) {
- BDIGIT_DBL x = bary2bdigitdbl(xds, 2);
- BDIGIT_DBL y = bary2bdigitdbl(yds, 2);
- BDIGIT_DBL q = x / y;
- BDIGIT_DBL r = x % y;
- qds[0] = BIGLO(q);
- qds[1] = BIGLO(BIGDN(q));
- BDIGITS_ZERO(qds+2, qn-2);
- rds[0] = BIGLO(r);
- rds[1] = BIGLO(BIGDN(r));
- BDIGITS_ZERO(rds+2, rn-2);
- }
- else {
- bary_divmod_branch(qds, qn, rds, rn, xds, xn, yds, yn);
- }
-}
-
-
-#ifndef BIGNUM_DEBUG
-# define BIGNUM_DEBUG (0+RUBY_DEBUG)
-#endif
-
-static int
-bigzero_p(VALUE x)
-{
- return bary_zero_p(BDIGITS(x), BIGNUM_LEN(x));
-}
-
-int
-rb_bigzero_p(VALUE x)
-{
- return BIGZEROP(x);
-}
-
-int
-rb_cmpint(VALUE val, VALUE a, VALUE b)
+static VALUE
+bignorm(x)
+ VALUE x;
{
- if (NIL_P(val)) {
- rb_cmperr(a, b);
- }
- if (FIXNUM_P(val)) {
- long l = FIX2LONG(val);
- if (l > 0) return 1;
- if (l < 0) return -1;
- return 0;
- }
- if (RB_BIGNUM_TYPE_P(val)) {
- if (BIGZEROP(val)) return 0;
- if (BIGNUM_SIGN(val)) return 1;
- return -1;
- }
- if (RTEST(rb_funcall(val, '>', 1, INT2FIX(0)))) return 1;
- if (RTEST(rb_funcall(val, '<', 1, INT2FIX(0)))) return -1;
- return 0;
-}
+ long len = RBIGNUM(x)->len;
+ USHORT *ds = BDIGITS(x);
-#define BIGNUM_SET_LEN(b,l) \
- (BIGNUM_EMBED_P(b) ? \
- (void)(RBASIC(b)->flags = \
- (RBASIC(b)->flags & ~BIGNUM_EMBED_LEN_MASK) | \
- ((l) << BIGNUM_EMBED_LEN_SHIFT)) : \
- (void)(RBIGNUM(b)->as.heap.len = (l)))
+ while (len-- && !ds[len]) ;
+ RBIGNUM(x)->len = ++len;
-static void
-rb_big_realloc(VALUE big, size_t len)
-{
- BDIGIT *ds;
- if (BIGNUM_EMBED_P(big)) {
- if (BIGNUM_EMBED_LEN_MAX < len) {
- ds = ALLOC_N(BDIGIT, len);
- MEMCPY(ds, RBIGNUM(big)->as.ary, BDIGIT, BIGNUM_EMBED_LEN_MAX);
- RBIGNUM(big)->as.heap.len = BIGNUM_LEN(big);
- RBIGNUM(big)->as.heap.digits = ds;
- FL_UNSET_RAW(big, BIGNUM_EMBED_FLAG);
+ if (len*sizeof(USHORT) <= sizeof(VALUE)) {
+ long num = 0;
+ while (len--) {
+ num = BIGUP(num) + ds[len];
}
- }
- else {
- if (len <= BIGNUM_EMBED_LEN_MAX) {
- ds = RBIGNUM(big)->as.heap.digits;
- FL_SET_RAW(big, BIGNUM_EMBED_FLAG);
- BIGNUM_SET_LEN(big, len);
- (void)VALGRIND_MAKE_MEM_UNDEFINED((void*)RBIGNUM(big)->as.ary, sizeof(RBIGNUM(big)->as.ary));
- if (ds) {
- MEMCPY(RBIGNUM(big)->as.ary, ds, BDIGIT, len);
- xfree(ds);
+ if (num >= 0) {
+ if (RBIGNUM(x)->sign) {
+ if (POSFIXABLE(num)) return INT2FIX(num);
}
+ else if (NEGFIXABLE(-(long)num)) return INT2FIX(-(long)num);
}
- else {
- if (BIGNUM_LEN(big) == 0) {
- RBIGNUM(big)->as.heap.digits = ALLOC_N(BDIGIT, len);
- }
- else {
- REALLOC_N(RBIGNUM(big)->as.heap.digits, BDIGIT, len);
- }
- }
- }
-}
-
-void
-rb_big_resize(VALUE big, size_t len)
-{
- rb_big_realloc(big, len);
- BIGNUM_SET_LEN(big, len);
-}
-
-static VALUE
-bignew_1(VALUE klass, size_t len, int sign)
-{
- NEWOBJ_OF(big, struct RBignum, klass, T_BIGNUM | (RGENGC_WB_PROTECTED_BIGNUM ? FL_WB_PROTECTED : 0));
- VALUE bigv = (VALUE)big;
- BIGNUM_SET_SIGN(bigv, sign);
- if (len <= BIGNUM_EMBED_LEN_MAX) {
- FL_SET_RAW(bigv, BIGNUM_EMBED_FLAG);
- BIGNUM_SET_LEN(bigv, len);
- (void)VALGRIND_MAKE_MEM_UNDEFINED((void*)big->as.ary, sizeof(big->as.ary));
- }
- else {
- big->as.heap.digits = ALLOC_N(BDIGIT, len);
- big->as.heap.len = len;
- }
- OBJ_FREEZE(bigv);
- return bigv;
-}
-
-VALUE
-rb_big_new(size_t len, int sign)
-{
- return bignew(len, sign != 0);
-}
-
-VALUE
-rb_big_clone(VALUE x)
-{
- size_t len = BIGNUM_LEN(x);
- VALUE z = bignew_1(CLASS_OF(x), len, BIGNUM_SIGN(x));
-
- MEMCPY(BDIGITS(z), BDIGITS(x), BDIGIT, len);
- return z;
-}
-
-static void
-big_extend_carry(VALUE x)
-{
- rb_big_resize(x, BIGNUM_LEN(x)+1);
- BDIGITS(x)[BIGNUM_LEN(x)-1] = 1;
-}
-
-/* modify a bignum by 2's complement */
-static void
-get2comp(VALUE x)
-{
- long i = BIGNUM_LEN(x);
- BDIGIT *ds = BDIGITS(x);
-
- if (bary_2comp(ds, i)) {
- big_extend_carry(x);
- }
-}
-
-void
-rb_big_2comp(VALUE x) /* get 2's complement */
-{
- get2comp(x);
-}
-
-static BDIGIT
-abs2twocomp(VALUE *xp, long *n_ret)
-{
- VALUE x = *xp;
- long n = BIGNUM_LEN(x);
- BDIGIT *ds = BDIGITS(x);
- BDIGIT hibits = 0;
-
- BARY_TRUNC(ds, n);
-
- if (n != 0 && BIGNUM_NEGATIVE_P(x)) {
- VALUE z = bignew_1(CLASS_OF(x), n, 0);
- MEMCPY(BDIGITS(z), ds, BDIGIT, n);
- bary_2comp(BDIGITS(z), n);
- hibits = BDIGMAX;
- *xp = z;
- }
- *n_ret = n;
- return hibits;
-}
-
-static void
-twocomp2abs_bang(VALUE x, int hibits)
-{
- BIGNUM_SET_SIGN(x, !hibits);
- if (hibits) {
- get2comp(x);
- }
-}
-
-static inline VALUE
-bigtrunc(VALUE x)
-{
- size_t len = BIGNUM_LEN(x);
- BDIGIT *ds = BDIGITS(x);
-
- if (len == 0) return x;
- while (--len && !ds[len]);
- if (BIGNUM_LEN(x) > len+1) {
- rb_big_resize(x, len+1);
- }
- return x;
-}
-
-static inline VALUE
-bigfixize(VALUE x)
-{
- size_t n = BIGNUM_LEN(x);
- BDIGIT *ds = BDIGITS(x);
-#if SIZEOF_BDIGIT < SIZEOF_LONG
- unsigned long u;
-#else
- BDIGIT u;
-#endif
-
- BARY_TRUNC(ds, n);
-
- if (n == 0) return INT2FIX(0);
-
-#if SIZEOF_BDIGIT < SIZEOF_LONG
- if (sizeof(long)/SIZEOF_BDIGIT < n)
- goto return_big;
- else {
- int i = (int)n;
- u = 0;
- while (i--) {
- u = (unsigned long)(BIGUP(u) + ds[i]);
- }
- }
-#else /* SIZEOF_BDIGIT >= SIZEOF_LONG */
- if (1 < n)
- goto return_big;
- else
- u = ds[0];
-#endif
-
- if (BIGNUM_POSITIVE_P(x)) {
- if (POSFIXABLE(u)) return LONG2FIX((long)u);
- }
- else {
- if (u <= -FIXNUM_MIN) return LONG2FIX(-(long)u);
- }
-
- return_big:
- rb_big_resize(x, n);
- return x;
-}
-
-static VALUE
-bignorm(VALUE x)
-{
- if (RB_BIGNUM_TYPE_P(x)) {
- x = bigfixize(x);
}
return x;
}
VALUE
-rb_big_norm(VALUE x)
+rb_big_norm(x)
+ VALUE x;
{
return bignorm(x);
}
VALUE
-rb_uint2big(uintptr_t n)
+rb_uint2big(n)
+ unsigned long n;
{
- long i;
- VALUE big = bignew(bdigit_roomof(SIZEOF_VALUE), 1);
- BDIGIT *digits = BDIGITS(big);
-
-#if SIZEOF_BDIGIT >= SIZEOF_VALUE
- digits[0] = n;
-#else
- for (i = 0; i < bdigit_roomof(SIZEOF_VALUE); i++) {
- digits[i] = BIGLO(n);
+ unsigned int i = 0;
+ USHORT *digits;
+ VALUE big;
+
+ i = 0;
+ big = bignew(DIGSPERINT, 1);
+ digits = BDIGITS(big);
+ while (i < DIGSPERINT) {
+ digits[i++] = BIGLO(n);
n = BIGDN(n);
}
-#endif
- i = bdigit_roomof(SIZEOF_VALUE);
- while (--i && !digits[i]) ;
- BIGNUM_SET_LEN(big, i+1);
+ i = DIGSPERINT;
+ while (i-- && !digits[i]) ;
+ RBIGNUM(big)->len = i+1;
return big;
}
VALUE
-rb_int2big(intptr_t n)
+rb_int2big(n)
+ long n;
{
long neg = 0;
- VALUE u;
VALUE big;
if (n < 0) {
- u = 1 + (VALUE)(-(n + 1)); /* u = -n avoiding overflow */
+ n = -n;
neg = 1;
}
- else {
- u = n;
- }
- big = rb_uint2big(u);
+ big = rb_uint2big(n);
if (neg) {
- BIGNUM_SET_NEGATIVE_SIGN(big);
+ RBIGNUM(big)->sign = 0;
}
return big;
}
VALUE
-rb_uint2inum(uintptr_t n)
+rb_uint2inum(n)
+ unsigned long n;
{
- if (POSFIXABLE(n)) return LONG2FIX(n);
+ if (POSFIXABLE(n)) return INT2FIX(n);
return rb_uint2big(n);
}
VALUE
-rb_int2inum(intptr_t n)
+rb_int2inum(n)
+ long n;
{
- if (FIXABLE(n)) return LONG2FIX(n);
+ if (FIXABLE(n)) return INT2FIX(n);
return rb_int2big(n);
}
-void
-rb_big_pack(VALUE val, unsigned long *buf, long num_longs)
-{
- rb_integer_pack(val, buf, num_longs, sizeof(long), 0,
- INTEGER_PACK_LSWORD_FIRST|INTEGER_PACK_NATIVE_BYTE_ORDER|
- INTEGER_PACK_2COMP);
-}
-
-VALUE
-rb_big_unpack(unsigned long *buf, long num_longs)
-{
- return rb_integer_unpack(buf, num_longs, sizeof(long), 0,
- INTEGER_PACK_LSWORD_FIRST|INTEGER_PACK_NATIVE_BYTE_ORDER|
- INTEGER_PACK_2COMP);
-}
-
-/*
- * Calculate the number of bytes to be required to represent
- * the absolute value of the integer given as _val_.
- *
- * [val] an integer.
- * [nlz_bits_ret] number of leading zero bits in the most significant byte is returned if not NULL.
- *
- * This function returns ((val_numbits * CHAR_BIT + CHAR_BIT - 1) / CHAR_BIT)
- * where val_numbits is the number of bits of abs(val).
- * This function should not overflow.
- *
- * If nlz_bits_ret is not NULL,
- * (return_value * CHAR_BIT - val_numbits) is stored in *nlz_bits_ret.
- * In this case, 0 <= *nlz_bits_ret < CHAR_BIT.
- *
- */
-size_t
-rb_absint_size(VALUE val, int *nlz_bits_ret)
-{
- BDIGIT *dp;
- BDIGIT *de;
- BDIGIT fixbuf[bdigit_roomof(sizeof(long))];
-
- int num_leading_zeros;
-
- val = rb_to_int(val);
-
- if (FIXNUM_P(val)) {
- long v = FIX2LONG(val);
- if (v < 0) {
- v = -v;
- }
-#if SIZEOF_BDIGIT >= SIZEOF_LONG
- fixbuf[0] = v;
-#else
- {
- int i;
- for (i = 0; i < numberof(fixbuf); i++) {
- fixbuf[i] = BIGLO(v);
- v = BIGDN(v);
- }
- }
-#endif
- dp = fixbuf;
- de = fixbuf + numberof(fixbuf);
- }
- else {
- dp = BDIGITS(val);
- de = dp + BIGNUM_LEN(val);
- }
- while (dp < de && de[-1] == 0)
- de--;
- if (dp == de) {
- if (nlz_bits_ret)
- *nlz_bits_ret = 0;
- return 0;
- }
- num_leading_zeros = nlz(de[-1]);
- if (nlz_bits_ret)
- *nlz_bits_ret = num_leading_zeros % CHAR_BIT;
- return (de - dp) * SIZEOF_BDIGIT - num_leading_zeros / CHAR_BIT;
-}
-
-static size_t
-absint_numwords_small(size_t numbytes, int nlz_bits_in_msbyte, size_t word_numbits, size_t *nlz_bits_ret)
-{
- size_t val_numbits = numbytes * CHAR_BIT - nlz_bits_in_msbyte;
- size_t div = val_numbits / word_numbits;
- size_t mod = val_numbits % word_numbits;
- size_t numwords;
- size_t nlz_bits;
- numwords = mod == 0 ? div : div + 1;
- nlz_bits = mod == 0 ? 0 : word_numbits - mod;
- *nlz_bits_ret = nlz_bits;
- return numwords;
-}
-
-static size_t
-absint_numwords_generic(size_t numbytes, int nlz_bits_in_msbyte, size_t word_numbits, size_t *nlz_bits_ret)
-{
- static const BDIGIT char_bit[1] = { CHAR_BIT };
- BDIGIT numbytes_bary[bdigit_roomof(sizeof(numbytes))];
- BDIGIT val_numbits_bary[bdigit_roomof(sizeof(numbytes) + 1)];
- BDIGIT nlz_bits_in_msbyte_bary[1];
- BDIGIT word_numbits_bary[bdigit_roomof(sizeof(word_numbits))];
- BDIGIT div_bary[numberof(val_numbits_bary) + BIGDIVREM_EXTRA_WORDS];
- BDIGIT mod_bary[numberof(word_numbits_bary)];
- BDIGIT one[1] = { 1 };
- size_t nlz_bits;
- size_t mod;
- int sign;
- size_t numwords;
-
- nlz_bits_in_msbyte_bary[0] = nlz_bits_in_msbyte;
-
- /*
- * val_numbits = numbytes * CHAR_BIT - nlz_bits_in_msbyte
- * div, mod = val_numbits.divmod(word_numbits)
- * numwords = mod == 0 ? div : div + 1
- * nlz_bits = mod == 0 ? 0 : word_numbits - mod
- */
-
- bary_unpack(BARY_ARGS(numbytes_bary), &numbytes, 1, sizeof(numbytes), 0,
- INTEGER_PACK_NATIVE_BYTE_ORDER);
- BARY_SHORT_MUL(val_numbits_bary, numbytes_bary, char_bit);
- if (nlz_bits_in_msbyte)
- BARY_SUB(val_numbits_bary, val_numbits_bary, nlz_bits_in_msbyte_bary);
- bary_unpack(BARY_ARGS(word_numbits_bary), &word_numbits, 1, sizeof(word_numbits), 0,
- INTEGER_PACK_NATIVE_BYTE_ORDER);
- BARY_DIVMOD(div_bary, mod_bary, val_numbits_bary, word_numbits_bary);
- if (BARY_ZERO_P(mod_bary)) {
- nlz_bits = 0;
- }
- else {
- BARY_ADD(div_bary, div_bary, one);
- bary_pack(+1, BARY_ARGS(mod_bary), &mod, 1, sizeof(mod), 0,
- INTEGER_PACK_NATIVE_BYTE_ORDER);
- nlz_bits = word_numbits - mod;
- }
- sign = bary_pack(+1, BARY_ARGS(div_bary), &numwords, 1, sizeof(numwords), 0,
- INTEGER_PACK_NATIVE_BYTE_ORDER);
-
- if (sign == 2) {
-#if defined __GNUC__ && (__GNUC__ == 4 && __GNUC_MINOR__ == 4)
- *nlz_bits_ret = 0;
-#endif
- return (size_t)-1;
- }
- *nlz_bits_ret = nlz_bits;
- return numwords;
-}
-
-/*
- * Calculate the number of words to be required to represent
- * the absolute value of the integer given as _val_.
- *
- * [val] an integer.
- * [word_numbits] number of bits in a word.
- * [nlz_bits_ret] number of leading zero bits in the most significant word is returned if not NULL.
- *
- * This function returns ((val_numbits * CHAR_BIT + word_numbits - 1) / word_numbits)
- * where val_numbits is the number of bits of abs(val).
- *
- * This function can overflow.
- * When overflow occur, (size_t)-1 is returned.
- *
- * If nlz_bits_ret is not NULL and overflow is not occur,
- * (return_value * word_numbits - val_numbits) is stored in *nlz_bits_ret.
- * In this case, 0 <= *nlz_bits_ret < word_numbits.
- *
- */
-size_t
-rb_absint_numwords(VALUE val, size_t word_numbits, size_t *nlz_bits_ret)
-{
- size_t numbytes;
- int nlz_bits_in_msbyte;
- size_t numwords;
- size_t nlz_bits = 0;
-
- if (word_numbits == 0)
- return (size_t)-1;
-
- numbytes = rb_absint_size(val, &nlz_bits_in_msbyte);
-
- if (numbytes <= SIZE_MAX / CHAR_BIT) {
- numwords = absint_numwords_small(numbytes, nlz_bits_in_msbyte, word_numbits, &nlz_bits);
-#ifdef DEBUG_INTEGER_PACK
- {
- size_t numwords0, nlz_bits0;
- numwords0 = absint_numwords_generic(numbytes, nlz_bits_in_msbyte, word_numbits, &nlz_bits0);
- assert(numwords0 == numwords);
- assert(nlz_bits0 == nlz_bits);
- (void)numwords0;
- }
-#endif
- }
- else {
- numwords = absint_numwords_generic(numbytes, nlz_bits_in_msbyte, word_numbits, &nlz_bits);
- }
- if (numwords == (size_t)-1)
- return numwords;
-
- if (nlz_bits_ret)
- *nlz_bits_ret = nlz_bits;
-
- return numwords;
-}
-
-/* Test abs(val) consists only a bit or not.
- *
- * Returns 1 if abs(val) == 1 << n for some n >= 0.
- * Returns 0 otherwise.
- *
- * rb_absint_singlebit_p can be used to determine required buffer size
- * for rb_integer_pack used with INTEGER_PACK_2COMP (two's complement).
- *
- * Following example calculates number of bits required to
- * represent val in two's complement number, without sign bit.
- *
- * size_t size;
- * int neg = FIXNUM_P(val) ? FIX2LONG(val) < 0 : BIGNUM_NEGATIVE_P(val);
- * size = rb_absint_numwords(val, 1, NULL)
- * if (size == (size_t)-1) ...overflow...
- * if (neg && rb_absint_singlebit_p(val))
- * size--;
- *
- * Following example calculates number of bytes required to
- * represent val in two's complement number, with sign bit.
- *
- * size_t size;
- * int neg = FIXNUM_P(val) ? FIX2LONG(val) < 0 : BIGNUM_NEGATIVE_P(val);
- * int nlz_bits;
- * size = rb_absint_size(val, &nlz_bits);
- * if (nlz_bits == 0 && !(neg && rb_absint_singlebit_p(val)))
- * size++;
- */
-int
-rb_absint_singlebit_p(VALUE val)
-{
- BDIGIT *dp;
- BDIGIT *de;
- BDIGIT fixbuf[bdigit_roomof(sizeof(long))];
- BDIGIT d;
-
- val = rb_to_int(val);
-
- if (FIXNUM_P(val)) {
- long v = FIX2LONG(val);
- if (v < 0) {
- v = -v;
- }
-#if SIZEOF_BDIGIT >= SIZEOF_LONG
- fixbuf[0] = v;
-#else
- {
- int i;
- for (i = 0; i < numberof(fixbuf); i++) {
- fixbuf[i] = BIGLO(v);
- v = BIGDN(v);
- }
- }
-#endif
- dp = fixbuf;
- de = fixbuf + numberof(fixbuf);
- }
- else {
- dp = BDIGITS(val);
- de = dp + BIGNUM_LEN(val);
- }
- while (dp < de && de[-1] == 0)
- de--;
- while (dp < de && dp[0] == 0)
- dp++;
- if (dp == de) /* no bit set. */
- return 0;
- if (dp != de-1) /* two non-zero words. two bits set, at least. */
- return 0;
- d = *dp;
- return POW2_P(d);
-}
-
-
-/*
- * Export an integer into a buffer.
- *
- * This function fills the buffer specified by _words_ and _numwords_ as
- * val in the format specified by _wordsize_, _nails_ and _flags_.
- *
- * [val] Fixnum, Bignum or another integer like object which has to_int method.
- * [words] buffer to export abs(val).
- * [numwords] the size of given buffer as number of words.
- * [wordsize] the size of word as number of bytes.
- * [nails] number of padding bits in a word.
- * Most significant nails bits of each word are filled by zero.
- * [flags] bitwise or of constants which name starts "INTEGER_PACK_".
- *
- * flags:
- * [INTEGER_PACK_MSWORD_FIRST] Store the most significant word as the first word.
- * [INTEGER_PACK_LSWORD_FIRST] Store the least significant word as the first word.
- * [INTEGER_PACK_MSBYTE_FIRST] Store the most significant byte in a word as the first byte in the word.
- * [INTEGER_PACK_LSBYTE_FIRST] Store the least significant byte in a word as the first byte in the word.
- * [INTEGER_PACK_NATIVE_BYTE_ORDER] INTEGER_PACK_MSBYTE_FIRST or INTEGER_PACK_LSBYTE_FIRST corresponding to the host's endian.
- * [INTEGER_PACK_2COMP] Use 2's complement representation.
- * [INTEGER_PACK_LITTLE_ENDIAN] Same as INTEGER_PACK_LSWORD_FIRST|INTEGER_PACK_LSBYTE_FIRST
- * [INTEGER_PACK_BIG_ENDIAN] Same as INTEGER_PACK_MSWORD_FIRST|INTEGER_PACK_MSBYTE_FIRST
- * [INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION] Use generic implementation (for test and debug).
- *
- * This function fills the buffer specified by _words_
- * as abs(val) if INTEGER_PACK_2COMP is not specified in _flags_.
- * If INTEGER_PACK_2COMP is specified, 2's complement representation of val is
- * filled in the buffer.
- *
- * This function returns the signedness and overflow condition.
- * The overflow condition depends on INTEGER_PACK_2COMP.
- *
- * INTEGER_PACK_2COMP is not specified:
- * -2 : negative overflow. val <= -2**(numwords*(wordsize*CHAR_BIT-nails))
- * -1 : negative without overflow. -2**(numwords*(wordsize*CHAR_BIT-nails)) < val < 0
- * 0 : zero. val == 0
- * 1 : positive without overflow. 0 < val < 2**(numwords*(wordsize*CHAR_BIT-nails))
- * 2 : positive overflow. 2**(numwords*(wordsize*CHAR_BIT-nails)) <= val
- *
- * INTEGER_PACK_2COMP is specified:
- * -2 : negative overflow. val < -2**(numwords*(wordsize*CHAR_BIT-nails))
- * -1 : negative without overflow. -2**(numwords*(wordsize*CHAR_BIT-nails)) <= val < 0
- * 0 : zero. val == 0
- * 1 : positive without overflow. 0 < val < 2**(numwords*(wordsize*CHAR_BIT-nails))
- * 2 : positive overflow. 2**(numwords*(wordsize*CHAR_BIT-nails)) <= val
- *
- * The value, -2**(numwords*(wordsize*CHAR_BIT-nails)), is representable
- * in 2's complement representation but not representable in absolute value.
- * So -1 is returned for the value if INTEGER_PACK_2COMP is specified
- * but returns -2 if INTEGER_PACK_2COMP is not specified.
- *
- * The least significant words are filled in the buffer when overflow occur.
- */
-
-int
-rb_integer_pack(VALUE val, void *words, size_t numwords, size_t wordsize, size_t nails, int flags)
-{
- int sign;
- BDIGIT *ds;
- size_t num_bdigits;
- BDIGIT fixbuf[bdigit_roomof(sizeof(long))];
-
- RB_GC_GUARD(val) = rb_to_int(val);
-
- if (FIXNUM_P(val)) {
- long v = FIX2LONG(val);
- if (v < 0) {
- sign = -1;
- v = -v;
- }
- else {
- sign = 1;
- }
-#if SIZEOF_BDIGIT >= SIZEOF_LONG
- fixbuf[0] = v;
-#else
- {
- int i;
- for (i = 0; i < numberof(fixbuf); i++) {
- fixbuf[i] = BIGLO(v);
- v = BIGDN(v);
- }
- }
-#endif
- ds = fixbuf;
- num_bdigits = numberof(fixbuf);
- }
- else {
- sign = BIGNUM_POSITIVE_P(val) ? 1 : -1;
- ds = BDIGITS(val);
- num_bdigits = BIGNUM_LEN(val);
- }
-
- return bary_pack(sign, ds, num_bdigits, words, numwords, wordsize, nails, flags);
-}
-
-/*
- * Import an integer from a buffer.
- *
- * [words] buffer to import.
- * [numwords] the size of given buffer as number of words.
- * [wordsize] the size of word as number of bytes.
- * [nails] number of padding bits in a word.
- * Most significant nails bits of each word are ignored.
- * [flags] bitwise or of constants which name starts "INTEGER_PACK_".
- *
- * flags:
- * [INTEGER_PACK_MSWORD_FIRST] Interpret the first word as the most significant word.
- * [INTEGER_PACK_LSWORD_FIRST] Interpret the first word as the least significant word.
- * [INTEGER_PACK_MSBYTE_FIRST] Interpret the first byte in a word as the most significant byte in the word.
- * [INTEGER_PACK_LSBYTE_FIRST] Interpret the first byte in a word as the least significant byte in the word.
- * [INTEGER_PACK_NATIVE_BYTE_ORDER] INTEGER_PACK_MSBYTE_FIRST or INTEGER_PACK_LSBYTE_FIRST corresponding to the host's endian.
- * [INTEGER_PACK_2COMP] Use 2's complement representation.
- * [INTEGER_PACK_LITTLE_ENDIAN] Same as INTEGER_PACK_LSWORD_FIRST|INTEGER_PACK_LSBYTE_FIRST
- * [INTEGER_PACK_BIG_ENDIAN] Same as INTEGER_PACK_MSWORD_FIRST|INTEGER_PACK_MSBYTE_FIRST
- * [INTEGER_PACK_FORCE_BIGNUM] the result will be a Bignum
- * even if it is representable as a Fixnum.
- * [INTEGER_PACK_NEGATIVE] Returns non-positive value.
- * (Returns non-negative value if not specified.)
- * [INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION] Use generic implementation (for test and debug).
- *
- * This function returns the imported integer as Fixnum or Bignum.
- *
- * The range of the result value depends on INTEGER_PACK_2COMP and INTEGER_PACK_NEGATIVE.
- *
- * INTEGER_PACK_2COMP is not set:
- * 0 <= val < 2**(numwords*(wordsize*CHAR_BIT-nails)) if !INTEGER_PACK_NEGATIVE
- * -2**(numwords*(wordsize*CHAR_BIT-nails)) < val <= 0 if INTEGER_PACK_NEGATIVE
- *
- * INTEGER_PACK_2COMP is set:
- * -2**(numwords*(wordsize*CHAR_BIT-nails)-1) <= val <= 2**(numwords*(wordsize*CHAR_BIT-nails)-1)-1 if !INTEGER_PACK_NEGATIVE
- * -2**(numwords*(wordsize*CHAR_BIT-nails)) <= val <= -1 if INTEGER_PACK_NEGATIVE
- *
- * INTEGER_PACK_2COMP without INTEGER_PACK_NEGATIVE means sign extension.
- * INTEGER_PACK_2COMP with INTEGER_PACK_NEGATIVE mean assuming the higher bits are 1.
- *
- * Note that this function returns 0 when numwords is zero and
- * INTEGER_PACK_2COMP is set but INTEGER_PACK_NEGATIVE is not set.
- */
-
VALUE
-rb_integer_unpack(const void *words, size_t numwords, size_t wordsize, size_t nails, int flags)
-{
- VALUE val;
- size_t num_bdigits;
- int sign;
- int nlp_bits;
- BDIGIT *ds;
- BDIGIT fixbuf[2] = { 0, 0 };
-
- validate_integer_pack_format(numwords, wordsize, nails, flags,
- INTEGER_PACK_MSWORD_FIRST|
- INTEGER_PACK_LSWORD_FIRST|
- INTEGER_PACK_MSBYTE_FIRST|
- INTEGER_PACK_LSBYTE_FIRST|
- INTEGER_PACK_NATIVE_BYTE_ORDER|
- INTEGER_PACK_2COMP|
- INTEGER_PACK_FORCE_BIGNUM|
- INTEGER_PACK_NEGATIVE|
- INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION);
-
- num_bdigits = integer_unpack_num_bdigits(numwords, wordsize, nails, &nlp_bits);
-
- if (LONG_MAX-1 < num_bdigits)
- rb_raise(rb_eArgError, "too big to unpack as an integer");
- if (num_bdigits <= numberof(fixbuf) && !(flags & INTEGER_PACK_FORCE_BIGNUM)) {
- val = Qfalse;
- ds = fixbuf;
- }
- else {
- val = bignew((long)num_bdigits, 0);
- ds = BDIGITS(val);
- }
- sign = bary_unpack_internal(ds, num_bdigits, words, numwords, wordsize, nails, flags, nlp_bits);
-
- if (sign == -2) {
- if (val) {
- big_extend_carry(val);
- }
- else if (num_bdigits == numberof(fixbuf)) {
- val = bignew((long)num_bdigits+1, 0);
- MEMCPY(BDIGITS(val), fixbuf, BDIGIT, num_bdigits);
- BDIGITS(val)[num_bdigits++] = 1;
- }
- else {
- ds[num_bdigits++] = 1;
- }
- }
-
- if (!val) {
- BDIGIT_DBL u = fixbuf[0] + BIGUP(fixbuf[1]);
- if (u == 0)
- return LONG2FIX(0);
- if (0 < sign && POSFIXABLE(u))
- return LONG2FIX((long)u);
- if (sign < 0 && BDIGIT_MSB(fixbuf[1]) == 0 &&
- NEGFIXABLE(-(BDIGIT_DBL_SIGNED)u))
- return LONG2FIX((long)-(BDIGIT_DBL_SIGNED)u);
- val = bignew((long)num_bdigits, 0 <= sign);
- MEMCPY(BDIGITS(val), fixbuf, BDIGIT, num_bdigits);
- }
-
- if ((flags & INTEGER_PACK_FORCE_BIGNUM) && sign != 0 &&
- bary_zero_p(BDIGITS(val), BIGNUM_LEN(val)))
- sign = 0;
- BIGNUM_SET_SIGN(val, 0 <= sign);
-
- if (flags & INTEGER_PACK_FORCE_BIGNUM)
- return bigtrunc(val);
- return bignorm(val);
-}
-
-#define conv_digit(c) (ruby_digit36_to_number_table[(unsigned char)(c)])
-
-NORETURN(static inline void invalid_radix(int base));
-NORETURN(static inline void invalid_integer(VALUE s));
-
-static inline int
-valid_radix_p(int base)
-{
- return (1 < base && base <= 36);
-}
-
-static inline void
-invalid_radix(int base)
-{
- rb_raise(rb_eArgError, "invalid radix %d", base);
-}
-
-static inline void
-invalid_integer(VALUE s)
-{
- rb_raise(rb_eArgError, "invalid value for Integer(): %+"PRIsVALUE, s);
-}
-
-static int
-str2big_scan_digits(const char *s, const char *str, int base, int badcheck, size_t *num_digits_p, ssize_t *len_p)
-{
- char nondigit = 0;
- size_t num_digits = 0;
- const char *digits_start = str;
- const char *digits_end = str;
- ssize_t len = *len_p;
-
- int c;
-
- if (!len) {
- *num_digits_p = 0;
- *len_p = 0;
- return TRUE;
- }
-
- if (badcheck && *str == '_') return FALSE;
-
- while ((c = *str++) != 0) {
- if (c == '_') {
- if (nondigit) {
- if (badcheck) return FALSE;
- break;
- }
- nondigit = (char) c;
- }
- else if ((c = conv_digit(c)) < 0 || c >= base) {
- break;
- }
- else {
- nondigit = 0;
- num_digits++;
- digits_end = str;
- }
- if (len > 0 && !--len) break;
- }
- if (badcheck && nondigit) return FALSE;
- if (badcheck && len) {
- str--;
- while (*str && ISSPACE(*str)) {
- str++;
- if (len > 0 && !--len) break;
- }
- if (len && *str) {
- return FALSE;
- }
- }
- *num_digits_p = num_digits;
- *len_p = digits_end - digits_start;
- return TRUE;
-}
-
-static VALUE
-str2big_poweroftwo(
- int sign,
- const char *digits_start,
- const char *digits_end,
- size_t num_digits,
- int bits_per_digit)
-{
- BDIGIT *dp;
- BDIGIT_DBL dd;
- int numbits;
-
- size_t num_bdigits;
- const char *p;
- int c;
- VALUE z;
-
- num_bdigits = (num_digits / BITSPERDIG) * bits_per_digit + roomof((num_digits % BITSPERDIG) * bits_per_digit, BITSPERDIG);
- z = bignew(num_bdigits, sign);
- dp = BDIGITS(z);
- dd = 0;
- numbits = 0;
- for (p = digits_end; digits_start < p; p--) {
- if ((c = conv_digit(p[-1])) < 0)
- continue;
- dd |= (BDIGIT_DBL)c << numbits;
- numbits += bits_per_digit;
- if (BITSPERDIG <= numbits) {
- *dp++ = BIGLO(dd);
- dd = BIGDN(dd);
- numbits -= BITSPERDIG;
- }
- }
- if (numbits) {
- *dp++ = BIGLO(dd);
- }
- assert((size_t)(dp - BDIGITS(z)) == num_bdigits);
-
- return z;
-}
-
-static VALUE
-str2big_normal(
- int sign,
- const char *digits_start,
- const char *digits_end,
- size_t num_bdigits,
- int base)
-{
- size_t blen = 1;
- BDIGIT *zds;
- BDIGIT_DBL num;
-
- size_t i;
- const char *p;
- int c;
- VALUE z;
-
- z = bignew(num_bdigits, sign);
- zds = BDIGITS(z);
- BDIGITS_ZERO(zds, num_bdigits);
-
- for (p = digits_start; p < digits_end; p++) {
- if ((c = conv_digit(*p)) < 0)
- continue;
- num = c;
- i = 0;
- for (;;) {
- while (i<blen) {
- num += (BDIGIT_DBL)zds[i]*base;
- zds[i++] = BIGLO(num);
- num = BIGDN(num);
- }
- if (num) {
- blen++;
- continue;
- }
- break;
- }
- assert(blen <= num_bdigits);
- }
-
- return z;
-}
-
-static VALUE
-str2big_karatsuba(
- int sign,
- const char *digits_start,
- const char *digits_end,
- size_t num_digits,
- size_t num_bdigits,
- int digits_per_bdigits_dbl,
- int base)
-{
- VALUE powerv;
- size_t unit;
- VALUE tmpuv = 0;
- BDIGIT *uds, *vds, *tds;
- BDIGIT_DBL dd;
- BDIGIT_DBL current_base;
- int m;
- int power_level = 0;
-
- size_t i;
- const char *p;
- int c;
- VALUE z;
-
- uds = ALLOCV_N(BDIGIT, tmpuv, 2*num_bdigits);
- vds = uds + num_bdigits;
-
- powerv = power_cache_get_power(base, power_level, NULL);
-
- i = 0;
- dd = 0;
- current_base = 1;
- m = digits_per_bdigits_dbl;
- if (num_digits < (size_t)m)
- m = (int)num_digits;
- for (p = digits_end; digits_start < p; p--) {
- if ((c = conv_digit(p[-1])) < 0)
- continue;
- dd = dd + c * current_base;
- current_base *= base;
- num_digits--;
- m--;
- if (m == 0) {
- uds[i++] = BIGLO(dd);
- uds[i++] = (BDIGIT)BIGDN(dd);
- dd = 0;
- m = digits_per_bdigits_dbl;
- if (num_digits < (size_t)m)
- m = (int)num_digits;
- current_base = 1;
- }
- }
- assert(i == num_bdigits);
- for (unit = 2; unit < num_bdigits; unit *= 2) {
- for (i = 0; i < num_bdigits; i += unit*2) {
- if (2*unit <= num_bdigits - i) {
- bary_mul(vds+i, unit*2, BDIGITS(powerv), BIGNUM_LEN(powerv), uds+i+unit, unit);
- bary_add(vds+i, unit*2, vds+i, unit*2, uds+i, unit);
- }
- else if (unit <= num_bdigits - i) {
- bary_mul(vds+i, num_bdigits-i, BDIGITS(powerv), BIGNUM_LEN(powerv), uds+i+unit, num_bdigits-(i+unit));
- bary_add(vds+i, num_bdigits-i, vds+i, num_bdigits-i, uds+i, unit);
- }
- else {
- MEMCPY(vds+i, uds+i, BDIGIT, num_bdigits-i);
- }
- }
- power_level++;
- powerv = power_cache_get_power(base, power_level, NULL);
- tds = vds;
- vds = uds;
- uds = tds;
- }
- BARY_TRUNC(uds, num_bdigits);
- z = bignew(num_bdigits, sign);
- MEMCPY(BDIGITS(z), uds, BDIGIT, num_bdigits);
-
- if (tmpuv)
- ALLOCV_END(tmpuv);
-
- return z;
-}
-
-#ifdef USE_GMP
-static VALUE
-str2big_gmp(
- int sign,
- const char *digits_start,
- const char *digits_end,
- size_t num_digits,
- size_t num_bdigits,
- int base)
+rb_str2inum(str, base)
+ const char *str;
+ int base;
{
- char *buf, *p;
- const char *q;
- VALUE tmps;
- mpz_t mz;
+ char sign = 1, c;
+ unsigned long num;
+ long len, blen = 1;
+ long i;
VALUE z;
- BDIGIT *zds;
- size_t zn, count;
-
- buf = ALLOCV_N(char, tmps, num_digits+1);
- p = buf;
- for (q = digits_start; q < digits_end; q++) {
- if (conv_digit(*q) < 0)
- continue;
- *p++ = *q;
- }
- *p = '\0';
-
- mpz_init(mz);
- mpz_set_str(mz, buf, base);
- zn = num_bdigits;
- z = bignew(zn, sign);
- zds = BDIGITS(z);
- bdigits_from_mpz(mz, BDIGITS(z), &count);
- BDIGITS_ZERO(zds+count, zn-count);
- mpz_clear(mz);
-
- if (tmps)
- ALLOCV_END(tmps);
-
- return z;
-}
-#endif
-
-static VALUE rb_cstr_parse_inum(const char *str, ssize_t len, char **endp, int base);
-
-/*
- * Parse +str+ as Ruby Integer, i.e., underscores, 0d and 0b prefixes.
- *
- * str: pointer to the string to be parsed.
- * should be NUL-terminated.
- * base: base of conversion, must be 2..36, or -36..0.
- * if +base+ > 0, the conversion is done according to the +base+
- * and unmatched prefix is parsed as a part of the result if
- * present.
- * if +base+ <= 0, the conversion is done according to the
- * prefix if present, in base <code>-base</code> if +base+ < -1,
- * or in base 10.
- * badcheck: if non-zero, +ArgumentError+ is raised when +str+ is not
- * valid as an Integer. if zero, Fixnum 0 is returned in
- * that case.
- */
-VALUE
-rb_cstr_to_inum(const char *str, int base, int badcheck)
-{
- char *end;
- VALUE ret = rb_cstr_parse_inum(str, -1, (badcheck ? NULL : &end), base);
- if (NIL_P(ret)) {
- if (badcheck) rb_invalid_str(str, "Integer()");
- ret = INT2FIX(0);
- }
- return ret;
-}
+ USHORT *zds;
-/*
- * Parse +str+ as Ruby Integer, i.e., underscores, 0d and 0b prefixes.
- *
- * str: pointer to the string to be parsed.
- * should be NUL-terminated if +len+ is negative.
- * len: length of +str+ if >= 0. if +len+ is negative, +str+ should
- * be NUL-terminated.
- * endp: if non-NULL, the address after parsed part is stored. if
- * NULL, Qnil is returned when +str+ is not valid as an Integer.
- * ndigits: if non-NULL, the number of parsed digits is stored.
- * base: see +rb_cstr_to_inum+
- * flags: bitwise OR of below flags:
- * RB_INT_PARSE_SIGN: allow preceding spaces and +/- sign
- * RB_INT_PARSE_UNDERSCORE: allow an underscore between digits
- * RB_INT_PARSE_PREFIX: allow preceding prefix
- */
+ while (ISSPACE(*str)) str++;
-VALUE
-rb_int_parse_cstr(const char *str, ssize_t len, char **endp, size_t *ndigits,
- int base, int flags)
-{
- const char *const s = str;
- char sign = 1;
- int c;
- VALUE z = Qnil;
-
- unsigned long val;
- int ov;
-
- const char *digits_start, *digits_end;
- size_t num_digits = 0;
- size_t num_bdigits;
- const ssize_t len0 = len;
- const int badcheck = !endp;
-
-#define ADV(n) do {\
- if (len > 0 && len <= (n)) goto bad; \
- str += (n); \
- len -= (n); \
- } while (0)
-#define ASSERT_LEN() do {\
- assert(len != 0); \
- if (len0 >= 0) assert(s + len0 == str + len); \
- } while (0)
-
- if (!str) {
- goto bad;
+ if (*str == '+') {
+ str++;
}
- if (len && (flags & RB_INT_PARSE_SIGN)) {
- while (ISSPACE(*str)) ADV(1);
-
- if (str[0] == '+') {
- ADV(1);
- }
- else if (str[0] == '-') {
- ADV(1);
- sign = 0;
- }
- ASSERT_LEN();
+ else if (*str == '-') {
+ str++;
+ sign = 0;
}
- if (base <= 0) {
- if (str[0] == '0' && len > 1) {
- switch (str[1]) {
- case 'x': case 'X':
+ if (base == 0) {
+ if (*str == '0') {
+ str++;
+ if (*str == 'x' || *str == 'X') {
+ str++;
base = 16;
- ADV(2);
- break;
- case 'b': case 'B':
+ }
+ else if (*str == 'b' || *str == 'B') {
+ str++;
base = 2;
- ADV(2);
- break;
- case 'o': case 'O':
- base = 8;
- ADV(2);
- break;
- case 'd': case 'D':
- base = 10;
- ADV(2);
- break;
- default:
+ }
+ else {
base = 8;
}
- }
- else if (base < -1) {
- base = -base;
+ if (*str == '\0') return INT2FIX(0);
}
else {
base = 10;
}
}
- else if (len == 1 || !(flags & RB_INT_PARSE_PREFIX)) {
- /* no prefix */
+ if (base == 8) {
+ while (str[0] == '0') str++;
+ len = 3*strlen(str)*sizeof(char);
}
- else if (base == 2) {
- if (str[0] == '0' && (str[1] == 'b'||str[1] == 'B')) {
- ADV(2);
+ else { /* base == 10, 2 or 16 */
+ if (base == 16 && str[0] == '0' && (str[1] == 'x'||str[1] == 'X')) {
+ str += 2;
}
- }
- else if (base == 8) {
- if (str[0] == '0' && (str[1] == 'o'||str[1] == 'O')) {
- ADV(2);
+ if (base == 2 && str[0] == '0' && (str[1] == 'b'||str[1] == 'B')) {
+ str += 2;
}
- }
- else if (base == 10) {
- if (str[0] == '0' && (str[1] == 'd'||str[1] == 'D')) {
- ADV(2);
- }
- }
- else if (base == 16) {
- if (str[0] == '0' && (str[1] == 'x'||str[1] == 'X')) {
- ADV(2);
- }
- }
- if (!valid_radix_p(base)) {
- invalid_radix(base);
- }
- if (!len) goto bad;
- num_digits = str - s;
- if (*str == '0' && len != 1) { /* squeeze preceding 0s */
- int us = 0;
- const char *end = len < 0 ? NULL : str + len;
- ++num_digits;
- while ((c = *++str) == '0' ||
- ((flags & RB_INT_PARSE_UNDERSCORE) && c == '_')) {
- if (c == '_') {
- if (++us >= 2)
- break;
- }
- else {
- ++num_digits;
- us = 0;
- }
- if (str == end) break;
- }
- if (!c || ISSPACE(c)) --str;
- if (end) len = end - str;
- ASSERT_LEN();
- }
- c = *str;
- c = conv_digit(c);
- if (c < 0 || c >= base) {
- if (!badcheck && num_digits) z = INT2FIX(0);
- goto bad;
+ while (str[0] == '0') str++;
+ len = 4*strlen(str)*sizeof(char);
}
- if (ndigits) *ndigits = num_digits;
- val = ruby_scan_digits(str, len, base, &num_digits, &ov);
- if (!ov) {
- const char *end = &str[num_digits];
- if (num_digits > 0 && *end == '_' && (flags & RB_INT_PARSE_UNDERSCORE))
- goto bigparse;
- if (endp) *endp = (char *)end;
- if (ndigits) *ndigits += num_digits;
- if (badcheck) {
- if (num_digits == 0) return Qnil; /* no number */
- while (len < 0 ? *end : end < str + len) {
- if (!ISSPACE(*end)) return Qnil; /* trailing garbage */
- end++;
- }
- }
+ if (len <= (sizeof(VALUE)*CHAR_BIT)) {
+ unsigned long val = strtoul((char*)str, 0, base);
if (POSFIXABLE(val)) {
- if (sign) return LONG2FIX(val);
+ if (sign) return INT2FIX(val);
else {
long result = -(long)val;
- return LONG2FIX(result);
+ return INT2FIX(result);
}
}
else {
VALUE big = rb_uint2big(val);
- BIGNUM_SET_SIGN(big, sign);
- return bignorm(big);
+ RBIGNUM(big)->sign = sign;
+ return big;
}
}
+ len = (len/BITSPERDIG)+1;
- bigparse:
- digits_start = str;
- if (!str2big_scan_digits(s, str, base, badcheck, &num_digits, &len))
- goto bad;
- if (endp) *endp = (char *)(str + len);
- if (ndigits) *ndigits += num_digits;
- digits_end = digits_start + len;
-
- if (POW2_P(base)) {
- z = str2big_poweroftwo(sign, digits_start, digits_end, num_digits,
- bit_length(base-1));
- }
- else {
- int digits_per_bdigits_dbl;
- maxpow_in_bdigit_dbl(base, &digits_per_bdigits_dbl);
- num_bdigits = roomof(num_digits, digits_per_bdigits_dbl)*2;
-
-#ifdef USE_GMP
- if (GMP_STR2BIG_DIGITS < num_bdigits) {
- z = str2big_gmp(sign, digits_start, digits_end, num_digits,
- num_bdigits, base);
- }
- else
-#endif
- if (num_bdigits < KARATSUBA_MUL_DIGITS) {
- z = str2big_normal(sign, digits_start, digits_end,
- num_bdigits, base);
- }
- else {
- z = str2big_karatsuba(sign, digits_start, digits_end, num_digits,
- num_bdigits, digits_per_bdigits_dbl, base);
- }
- }
-
- return bignorm(z);
-
- bad:
- if (endp) *endp = (char *)str;
- if (ndigits) *ndigits = num_digits;
- return z;
-}
-
-static VALUE
-rb_cstr_parse_inum(const char *str, ssize_t len, char **endp, int base)
-{
- return rb_int_parse_cstr(str, len, endp, NULL, base,
- RB_INT_PARSE_DEFAULT);
-}
-
-VALUE
-rb_str_convert_to_inum(VALUE str, int base, int badcheck, int raise_exception)
-{
- VALUE ret;
- const char *s;
- long len;
- char *end;
-
- StringValue(str);
- rb_must_asciicompat(str);
- RSTRING_GETMEM(str, s, len);
- ret = rb_cstr_parse_inum(s, len, (badcheck ? NULL : &end), base);
- if (NIL_P(ret)) {
- if (badcheck) {
- if (!raise_exception) return Qnil;
- invalid_integer(str);
- }
- ret = INT2FIX(0);
- }
- return ret;
-}
-
-VALUE
-rb_str_to_inum(VALUE str, int base, int badcheck)
-{
- return rb_str_convert_to_inum(str, base, badcheck, TRUE);
-}
-
-VALUE
-rb_str2big_poweroftwo(VALUE arg, int base, int badcheck)
-{
- int positive_p = 1;
- const char *s, *str;
- const char *digits_start, *digits_end;
- size_t num_digits;
- ssize_t len;
- VALUE z;
-
- if (!valid_radix_p(base) || !POW2_P(base)) {
- invalid_radix(base);
- }
-
- rb_must_asciicompat(arg);
- s = str = StringValueCStr(arg);
- len = RSTRING_LEN(arg);
- if (*str == '-') {
- len--;
- str++;
- positive_p = 0;
- }
-
- digits_start = str;
- if (!str2big_scan_digits(s, str, base, badcheck, &num_digits, &len))
- invalid_integer(arg);
- digits_end = digits_start + len;
-
- z = str2big_poweroftwo(positive_p, digits_start, digits_end, num_digits,
- bit_length(base-1));
-
- RB_GC_GUARD(arg);
-
- return bignorm(z);
-}
-
-VALUE
-rb_str2big_normal(VALUE arg, int base, int badcheck)
-{
- int positive_p = 1;
- const char *s, *str;
- const char *digits_start, *digits_end;
- size_t num_digits;
- ssize_t len;
- VALUE z;
-
- int digits_per_bdigits_dbl;
- size_t num_bdigits;
-
- if (!valid_radix_p(base)) {
- invalid_radix(base);
- }
-
- rb_must_asciicompat(arg);
- s = str = StringValuePtr(arg);
- len = RSTRING_LEN(arg);
- if (len > 0 && *str == '-') {
- len--;
- str++;
- positive_p = 0;
- }
-
- digits_start = str;
- if (!str2big_scan_digits(s, str, base, badcheck, &num_digits, &len))
- invalid_integer(arg);
- digits_end = digits_start + len;
-
- maxpow_in_bdigit_dbl(base, &digits_per_bdigits_dbl);
- num_bdigits = roomof(num_digits, digits_per_bdigits_dbl)*2;
-
- z = str2big_normal(positive_p, digits_start, digits_end,
- num_bdigits, base);
-
- RB_GC_GUARD(arg);
-
- return bignorm(z);
-}
-
-VALUE
-rb_str2big_karatsuba(VALUE arg, int base, int badcheck)
-{
- int positive_p = 1;
- const char *s, *str;
- const char *digits_start, *digits_end;
- size_t num_digits;
- ssize_t len;
- VALUE z;
-
- int digits_per_bdigits_dbl;
- size_t num_bdigits;
-
- if (!valid_radix_p(base)) {
- invalid_radix(base);
- }
-
- rb_must_asciicompat(arg);
- s = str = StringValuePtr(arg);
- len = RSTRING_LEN(arg);
- if (len > 0 && *str == '-') {
- len--;
- str++;
- positive_p = 0;
- }
-
- digits_start = str;
- if (!str2big_scan_digits(s, str, base, badcheck, &num_digits, &len))
- invalid_integer(arg);
- digits_end = digits_start + len;
-
- maxpow_in_bdigit_dbl(base, &digits_per_bdigits_dbl);
- num_bdigits = roomof(num_digits, digits_per_bdigits_dbl)*2;
-
- z = str2big_karatsuba(positive_p, digits_start, digits_end, num_digits,
- num_bdigits, digits_per_bdigits_dbl, base);
-
- RB_GC_GUARD(arg);
-
- return bignorm(z);
-}
-
-#ifdef USE_GMP
-VALUE
-rb_str2big_gmp(VALUE arg, int base, int badcheck)
-{
- int positive_p = 1;
- const char *s, *str;
- const char *digits_start, *digits_end;
- size_t num_digits;
- ssize_t len;
- VALUE z;
-
- int digits_per_bdigits_dbl;
- size_t num_bdigits;
-
- if (!valid_radix_p(base)) {
- invalid_radix(base);
- }
-
- rb_must_asciicompat(arg);
- s = str = StringValuePtr(arg);
- len = RSTRING_LEN(arg);
- if (len > 0 && *str == '-') {
- len--;
- str++;
- positive_p = 0;
+ z = bignew(len, sign);
+ zds = BDIGITS(z);
+ for (i=len;i--;) zds[i]=0;
+ while (c = *str++) {
+ switch (c) {
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ c = c - '0';
+ break;
+ case 'a': case 'b': case 'c':
+ case 'd': case 'e': case 'f':
+ c = c - 'a' + 10;
+ break;
+ case 'A': case 'B': case 'C':
+ case 'D': case 'E': case 'F':
+ c = c - 'A' + 10;
+ break;
+ default:
+ c = base;
+ break;
+ }
+ if (c >= base) break;
+ i = 0;
+ num = c;
+ for (;;) {
+ while (i<blen) {
+ num += zds[i]*base;
+ zds[i++] = BIGLO(num);
+ num = BIGDN(num);
+ }
+ if (num) {
+ blen++;
+ continue;
+ }
+ break;
+ }
}
-
- digits_start = str;
- if (!str2big_scan_digits(s, str, base, badcheck, &num_digits, &len))
- invalid_integer(arg);
- digits_end = digits_start + len;
-
- maxpow_in_bdigit_dbl(base, &digits_per_bdigits_dbl);
- num_bdigits = roomof(num_digits, digits_per_bdigits_dbl)*2;
-
- z = str2big_gmp(positive_p, digits_start, digits_end, num_digits, num_bdigits, base);
-
- RB_GC_GUARD(arg);
-
return bignorm(z);
}
-#endif
-
-#if HAVE_LONG_LONG
-
-static VALUE
-rb_ull2big(unsigned LONG_LONG n)
-{
- long i;
- VALUE big = bignew(bdigit_roomof(SIZEOF_LONG_LONG), 1);
- BDIGIT *digits = BDIGITS(big);
-
-#if SIZEOF_BDIGIT >= SIZEOF_LONG_LONG
- digits[0] = n;
-#else
- for (i = 0; i < bdigit_roomof(SIZEOF_LONG_LONG); i++) {
- digits[i] = BIGLO(n);
- n = BIGDN(n);
- }
-#endif
-
- i = bdigit_roomof(SIZEOF_LONG_LONG);
- while (i-- && !digits[i]) ;
- BIGNUM_SET_LEN(big, i+1);
- return big;
-}
-
-static VALUE
-rb_ll2big(LONG_LONG n)
-{
- long neg = 0;
- unsigned LONG_LONG u;
- VALUE big;
-
- if (n < 0) {
- u = 1 + (unsigned LONG_LONG)(-(n + 1)); /* u = -n avoiding overflow */
- neg = 1;
- }
- else {
- u = n;
- }
- big = rb_ull2big(u);
- if (neg) {
- BIGNUM_SET_NEGATIVE_SIGN(big);
- }
- return big;
-}
-
-VALUE
-rb_ull2inum(unsigned LONG_LONG n)
-{
- if (POSFIXABLE(n)) return LONG2FIX((long)n);
- return rb_ull2big(n);
-}
+static char hexmap[] = "0123456789abcdef";
VALUE
-rb_ll2inum(LONG_LONG n)
-{
- if (FIXABLE(n)) return LONG2FIX((long)n);
- return rb_ll2big(n);
-}
-
-#endif /* HAVE_LONG_LONG */
-
-#ifdef HAVE_INT128_T
-static VALUE
-rb_uint128t2big(uint128_t n)
-{
- long i;
- VALUE big = bignew(bdigit_roomof(SIZEOF_INT128_T), 1);
- BDIGIT *digits = BDIGITS(big);
-
- for (i = 0; i < bdigit_roomof(SIZEOF_INT128_T); i++) {
- digits[i] = BIGLO(RSHIFT(n ,BITSPERDIG*i));
- }
-
- i = bdigit_roomof(SIZEOF_INT128_T);
- while (i-- && !digits[i]) ;
- BIGNUM_SET_LEN(big, i+1);
- return big;
-}
-
-MJIT_FUNC_EXPORTED VALUE
-rb_int128t2big(int128_t n)
-{
- int neg = 0;
- uint128_t u;
- VALUE big;
-
- if (n < 0) {
- u = 1 + (uint128_t)(-(n + 1)); /* u = -n avoiding overflow */
- neg = 1;
- }
- else {
- u = n;
- }
- big = rb_uint128t2big(u);
- if (neg) {
- BIGNUM_SET_NEGATIVE_SIGN(big);
- }
- return big;
-}
-#endif
-
-VALUE
-rb_cstr2inum(const char *str, int base)
-{
- return rb_cstr_to_inum(str, base, base==0);
-}
-
-VALUE
-rb_str2inum(VALUE str, int base)
-{
- return rb_str_to_inum(str, base, base==0);
-}
-
-static VALUE
-big_shift3(VALUE x, int lshift_p, size_t shift_numdigits, int shift_numbits)
-{
- BDIGIT *xds, *zds;
- long s1;
- int s2;
- VALUE z;
- long xn;
-
- if (lshift_p) {
- if (LONG_MAX < shift_numdigits) {
- rb_raise(rb_eArgError, "too big number");
- }
- s1 = shift_numdigits;
- s2 = shift_numbits;
- xn = BIGNUM_LEN(x);
- z = bignew(xn+s1+1, BIGNUM_SIGN(x));
- zds = BDIGITS(z);
- BDIGITS_ZERO(zds, s1);
- xds = BDIGITS(x);
- zds[xn+s1] = bary_small_lshift(zds+s1, xds, xn, s2);
- }
- else {
- long zn;
- BDIGIT hibitsx;
- if (LONG_MAX < shift_numdigits || (size_t)BIGNUM_LEN(x) <= shift_numdigits) {
- if (BIGNUM_POSITIVE_P(x) ||
- bary_zero_p(BDIGITS(x), BIGNUM_LEN(x)))
- return INT2FIX(0);
- else
- return INT2FIX(-1);
- }
- s1 = shift_numdigits;
- s2 = shift_numbits;
- hibitsx = abs2twocomp(&x, &xn);
- xds = BDIGITS(x);
- if (xn <= s1) {
- return hibitsx ? INT2FIX(-1) : INT2FIX(0);
- }
- zn = xn - s1;
- z = bignew(zn, 0);
- zds = BDIGITS(z);
- bary_small_rshift(zds, xds+s1, zn, s2, hibitsx != 0 ? BDIGMAX : 0);
- twocomp2abs_bang(z, hibitsx != 0);
- }
- RB_GC_GUARD(x);
- return z;
-}
-
-static VALUE
-big_shift2(VALUE x, int lshift_p, VALUE y)
-{
- int sign;
- size_t lens[2];
- size_t shift_numdigits;
- int shift_numbits;
-
- assert(POW2_P(CHAR_BIT));
- assert(POW2_P(BITSPERDIG));
-
- if (BIGZEROP(x))
- return INT2FIX(0);
- sign = rb_integer_pack(y, lens, numberof(lens), sizeof(size_t), 0,
- INTEGER_PACK_LSWORD_FIRST|INTEGER_PACK_NATIVE_BYTE_ORDER);
- if (sign < 0) {
- lshift_p = !lshift_p;
- sign = -sign;
- }
- if (lshift_p) {
- if (1 < sign || CHAR_BIT <= lens[1])
- rb_raise(rb_eRangeError, "shift width too big");
- }
- else {
- if (1 < sign || CHAR_BIT <= lens[1])
- return BIGNUM_POSITIVE_P(x) ? INT2FIX(0) : INT2FIX(-1);
- }
- shift_numbits = (int)(lens[0] & (BITSPERDIG-1));
- shift_numdigits = (lens[0] >> bit_length(BITSPERDIG-1)) |
- (lens[1] << (CHAR_BIT*SIZEOF_SIZE_T - bit_length(BITSPERDIG-1)));
- return big_shift3(x, lshift_p, shift_numdigits, shift_numbits);
-}
-
-static VALUE
-big_lshift(VALUE x, unsigned long shift)
-{
- long s1 = shift/BITSPERDIG;
- int s2 = (int)(shift%BITSPERDIG);
- return big_shift3(x, 1, s1, s2);
-}
-
-static VALUE
-big_rshift(VALUE x, unsigned long shift)
-{
- long s1 = shift/BITSPERDIG;
- int s2 = (int)(shift%BITSPERDIG);
- return big_shift3(x, 0, s1, s2);
-}
-
-#define MAX_BASE36_POWER_TABLE_ENTRIES (SIZEOF_SIZE_T * CHAR_BIT + 1)
-
-static VALUE base36_power_cache[35][MAX_BASE36_POWER_TABLE_ENTRIES];
-static size_t base36_numdigits_cache[35][MAX_BASE36_POWER_TABLE_ENTRIES];
-
-static void
-power_cache_init(void)
-{
-}
-
-static inline VALUE
-power_cache_get_power(int base, int power_level, size_t *numdigits_ret)
-{
- /*
- * MAX_BASE36_POWER_TABLE_ENTRIES is big enough to that
- * base36_power_cache[base][MAX_BASE36_POWER_TABLE_ENTRIES-1] fills whole memory.
- * So MAX_BASE36_POWER_TABLE_ENTRIES <= power_level is not possible to calculate.
- *
- * number-of-bytes =
- * log256(base36_power_cache[base][MAX_BASE36_POWER_TABLE_ENTRIES-1]) =
- * log256(maxpow_in_bdigit_dbl(base)**(2**(MAX_BASE36_POWER_TABLE_ENTRIES-1))) =
- * log256(maxpow_in_bdigit_dbl(base)**(2**(SIZEOF_SIZE_T*CHAR_BIT))) =
- * (2**(SIZEOF_SIZE_T*CHAR_BIT))*log256(maxpow_in_bdigit_dbl(base)) =
- * (256**SIZEOF_SIZE_T)*log256(maxpow_in_bdigit_dbl(base)) >
- * (256**SIZEOF_SIZE_T)*(sizeof(BDIGIT_DBL)-1) >
- * 256**SIZEOF_SIZE_T
- */
- if (MAX_BASE36_POWER_TABLE_ENTRIES <= power_level)
- rb_bug("too big power number requested: maxpow_in_bdigit_dbl(%d)**(2**%d)", base, power_level);
-
- VALUE power = base36_power_cache[base - 2][power_level];
- if (!power) {
- size_t numdigits;
- if (power_level == 0) {
- int numdigits0;
- BDIGIT_DBL dd = maxpow_in_bdigit_dbl(base, &numdigits0);
- power = bignew(2, 1);
- bdigitdbl2bary(BDIGITS(power), 2, dd);
- numdigits = numdigits0;
- }
- else {
- power = bigtrunc(bigsq(power_cache_get_power(base, power_level - 1, &numdigits)));
- numdigits *= 2;
- }
- rb_obj_hide(power);
- base36_power_cache[base - 2][power_level] = power;
- base36_numdigits_cache[base - 2][power_level] = numdigits;
- rb_gc_register_mark_object(power);
- }
- if (numdigits_ret)
- *numdigits_ret = base36_numdigits_cache[base - 2][power_level];
- return power;
-}
-
-struct big2str_struct {
- int negative;
+rb_big2str(x, base)
+ VALUE x;
int base;
- BDIGIT_DBL hbase2;
- int hbase2_numdigits;
- VALUE result;
- char *ptr;
-};
-
-static void
-big2str_alloc(struct big2str_struct *b2s, size_t len)
-{
- if (LONG_MAX-1 < len)
- rb_raise(rb_eArgError, "too big number");
- b2s->result = rb_usascii_str_new(0, (long)(len + 1)); /* plus one for sign */
- b2s->ptr = RSTRING_PTR(b2s->result);
- if (b2s->negative)
- *b2s->ptr++ = '-';
-}
-
-static void
-big2str_2bdigits(struct big2str_struct *b2s, BDIGIT *xds, size_t xn, size_t taillen)
-{
- size_t j;
- BDIGIT_DBL num;
- char buf[SIZEOF_BDIGIT_DBL*CHAR_BIT], *p;
- int beginning = !b2s->ptr;
- size_t len = 0;
-
- assert(xn <= 2);
- num = bary2bdigitdbl(xds, xn);
-
- if (beginning) {
- if (num == 0)
- return;
- p = buf;
- j = sizeof(buf);
- do {
- BDIGIT_DBL idx = num % b2s->base;
- num /= b2s->base;
- p[--j] = ruby_digitmap[idx];
- } while (num);
- len = sizeof(buf) - j;
- big2str_alloc(b2s, len + taillen);
- MEMCPY(b2s->ptr, buf + j, char, len);
- }
- else {
- p = b2s->ptr;
- j = b2s->hbase2_numdigits;
- do {
- BDIGIT_DBL idx = num % b2s->base;
- num /= b2s->base;
- p[--j] = ruby_digitmap[idx];
- } while (j);
- len = b2s->hbase2_numdigits;
- }
- b2s->ptr += len;
-}
-
-static void
-big2str_karatsuba(struct big2str_struct *b2s, BDIGIT *xds, size_t xn, size_t wn,
- int power_level, size_t taillen)
-{
- VALUE b;
- size_t half_numdigits, lower_numdigits;
- int lower_power_level;
- size_t bn;
- const BDIGIT *bds;
- size_t len;
-
- /*
- * Precondition:
- * abs(x) < maxpow**(2**power_level)
- * where
- * maxpow = maxpow_in_bdigit_dbl(base, &numdigits)
- *
- * This function generates sequence of zeros, and then stringized abs(x) into b2s->ptr.
- *
- * b2s->ptr can be NULL.
- * It is allocated when the first character is generated via big2str_alloc.
- *
- * The prefix zeros should be generated if and only if b2s->ptr is not NULL.
- * When the zeros are generated, the zeros and abs(x) consists
- * numdigits*(2**power_level) characters at total.
- *
- * Note:
- * power_cache_get_power(base, power_level, &len) may not be cached yet. It should not be called.
- * power_cache_get_power(base, power_level-1, &len) should be cached already if 0 <= power_level-1.
- */
-
- if (xn == 0 || bary_zero_p(xds, xn)) {
- if (b2s->ptr) {
- /* When x is zero, power_cache_get_power(base, power_level) should be cached already. */
- power_cache_get_power(b2s->base, power_level, &len);
- memset(b2s->ptr, '0', len);
- b2s->ptr += len;
- }
- return;
- }
-
- if (power_level == 0) {
- big2str_2bdigits(b2s, xds, xn, taillen);
- return;
- }
-
- lower_power_level = power_level-1;
- b = power_cache_get_power(b2s->base, lower_power_level, &lower_numdigits);
- bn = BIGNUM_LEN(b);
- bds = BDIGITS(b);
-
- half_numdigits = lower_numdigits;
-
- while (0 < lower_power_level &&
- (xn < bn ||
- (xn == bn && bary_cmp(xds, xn, bds, bn) < 0))) {
- lower_power_level--;
- b = power_cache_get_power(b2s->base, lower_power_level, &lower_numdigits);
- bn = BIGNUM_LEN(b);
- bds = BDIGITS(b);
- }
-
- if (lower_power_level == 0 &&
- (xn < bn ||
- (xn == bn && bary_cmp(xds, xn, bds, bn) < 0))) {
- if (b2s->ptr) {
- len = half_numdigits * 2 - lower_numdigits;
- memset(b2s->ptr, '0', len);
- b2s->ptr += len;
- }
- big2str_2bdigits(b2s, xds, xn, taillen);
- }
- else {
- BDIGIT *qds, *rds;
- size_t qn, rn;
- BDIGIT *tds;
- int shift;
-
- if (lower_power_level != power_level-1 && b2s->ptr) {
- len = (half_numdigits - lower_numdigits) * 2;
- memset(b2s->ptr, '0', len);
- b2s->ptr += len;
- }
-
- shift = nlz(bds[bn-1]);
-
- qn = xn + BIGDIVREM_EXTRA_WORDS;
-
- if (shift == 0) {
- /* bigdivrem_restoring will not modify y.
- * So use bds directly. */
- tds = (BDIGIT *)bds;
- xds[xn] = 0;
- }
- else {
- /* bigdivrem_restoring will modify y.
- * So use temporary buffer. */
- tds = xds + qn;
- assert(qn + bn <= xn + wn);
- bary_small_lshift(tds, bds, bn, shift);
- xds[xn] = bary_small_lshift(xds, xds, xn, shift);
- }
-
- bigdivrem_restoring(xds, qn, tds, bn);
-
- rds = xds;
- rn = bn;
-
- qds = xds + bn;
- qn = qn - bn;
-
- if (shift) {
- bary_small_rshift(rds, rds, rn, shift, 0);
- }
-
- BARY_TRUNC(qds, qn);
- assert(qn <= bn);
- big2str_karatsuba(b2s, qds, qn, xn+wn - (rn+qn), lower_power_level, lower_numdigits+taillen);
- BARY_TRUNC(rds, rn);
- big2str_karatsuba(b2s, rds, rn, xn+wn - rn, lower_power_level, taillen);
- }
-}
-
-static VALUE
-big2str_base_poweroftwo(VALUE x, int base)
-{
- int word_numbits = ffs(base) - 1;
- size_t numwords;
- VALUE result;
- char *ptr;
- numwords = rb_absint_numwords(x, word_numbits, NULL);
- if (BIGNUM_NEGATIVE_P(x)) {
- if (LONG_MAX-1 < numwords)
- rb_raise(rb_eArgError, "too big number");
- result = rb_usascii_str_new(0, 1+numwords);
- ptr = RSTRING_PTR(result);
- *ptr++ = BIGNUM_POSITIVE_P(x) ? '+' : '-';
- }
- else {
- if (LONG_MAX < numwords)
- rb_raise(rb_eArgError, "too big number");
- result = rb_usascii_str_new(0, numwords);
- ptr = RSTRING_PTR(result);
- }
- rb_integer_pack(x, ptr, numwords, 1, CHAR_BIT-word_numbits,
- INTEGER_PACK_BIG_ENDIAN);
- while (0 < numwords) {
- *ptr = ruby_digitmap[*(unsigned char *)ptr];
- ptr++;
- numwords--;
- }
- return result;
-}
-
-VALUE
-rb_big2str_poweroftwo(VALUE x, int base)
-{
- return big2str_base_poweroftwo(x, base);
-}
-
-static VALUE
-big2str_generic(VALUE x, int base)
{
- BDIGIT *xds;
- size_t xn;
- struct big2str_struct b2s_data;
- int power_level;
- VALUE power;
+ VALUE t;
+ USHORT *ds;
+ unsigned long i, j, hbase;
+ VALUE ss;
+ char *s, c;
- xds = BDIGITS(x);
- xn = BIGNUM_LEN(x);
- BARY_TRUNC(xds, xn);
-
- if (xn == 0) {
- return rb_usascii_str_new2("0");
+ if (FIXNUM_P(x)) {
+ return rb_fix2str(x, base);
}
-
- if (!valid_radix_p(base))
- invalid_radix(base);
-
- if (xn >= LONG_MAX/BITSPERDIG) {
- rb_raise(rb_eRangeError, "bignum too big to convert into `string'");
+ i = RBIGNUM(x)->len;
+ if (i == 0) return rb_str_new2("0");
+ if (base == 10) {
+ j = (sizeof(USHORT)/sizeof(char)*CHAR_BIT*i*241L)/800+2;
+ hbase = 10000;
}
-
- power_level = 0;
- power = power_cache_get_power(base, power_level, NULL);
- while (power_level < MAX_BASE36_POWER_TABLE_ENTRIES &&
- (size_t)BIGNUM_LEN(power) <= (xn+1)/2) {
- power_level++;
- power = power_cache_get_power(base, power_level, NULL);
+ else if (base == 16) {
+ j = (sizeof(USHORT)/sizeof(char)*CHAR_BIT*i)/4+2;
+ hbase = 0x10000;
}
- assert(power_level != MAX_BASE36_POWER_TABLE_ENTRIES);
-
- if ((size_t)BIGNUM_LEN(power) <= xn) {
- /*
- * This increment guarantees x < power_cache_get_power(base, power_level)
- * without invoking it actually.
- * (power_cache_get_power(base, power_level) can be slow and not used
- * in big2str_karatsuba.)
- *
- * Although it is possible that x < power_cache_get_power(base, power_level-1),
- * it is no problem because big2str_karatsuba checks it and
- * doesn't affect the result when b2s_data.ptr is NULL.
- */
- power_level++;
+ else if (base == 8) {
+ j = (sizeof(USHORT)/sizeof(char)*CHAR_BIT*i)+2;
+ hbase = 010000;
}
-
- b2s_data.negative = BIGNUM_NEGATIVE_P(x);
- b2s_data.base = base;
- b2s_data.hbase2 = maxpow_in_bdigit_dbl(base, &b2s_data.hbase2_numdigits);
-
- b2s_data.result = Qnil;
- b2s_data.ptr = NULL;
-
- if (power_level == 0) {
- big2str_2bdigits(&b2s_data, xds, xn, 0);
+ else if (base == 2) {
+ j = (sizeof(USHORT)*CHAR_BIT*i)+2;
+ hbase = 020;
}
else {
- VALUE tmpw = 0;
- BDIGIT *wds;
- size_t wn;
- wn = power_level * BIGDIVREM_EXTRA_WORDS + BIGNUM_LEN(power);
- wds = ALLOCV_N(BDIGIT, tmpw, xn + wn);
- MEMCPY(wds, xds, BDIGIT, xn);
- big2str_karatsuba(&b2s_data, wds, xn, wn, power_level, 0);
- if (tmpw)
- ALLOCV_END(tmpw);
+ j = 0;
+ hbase = 0;
+ rb_raise(rb_eArgError, "bignum cannot treat base %d", base);
}
- RB_GC_GUARD(x);
- *b2s_data.ptr = '\0';
- rb_str_resize(b2s_data.result, (long)(b2s_data.ptr - RSTRING_PTR(b2s_data.result)));
+ t = rb_big_clone(x);
+ ds = BDIGITS(t);
+ ss = rb_str_new(0, j);
+ s = RSTRING(ss)->ptr;
- RB_GC_GUARD(x);
- return b2s_data.result;
-}
-
-VALUE
-rb_big2str_generic(VALUE x, int base)
-{
- return big2str_generic(x, base);
-}
-
-#ifdef USE_GMP
-static VALUE
-big2str_gmp(VALUE x, int base)
-{
- mpz_t mx;
- size_t size;
- VALUE str;
- BDIGIT *xds = BDIGITS(x);
- size_t xn = BIGNUM_LEN(x);
-
- mpz_init(mx);
- bdigits_to_mpz(mx, xds, xn);
-
- size = mpz_sizeinbase(mx, base);
-
- if (BIGNUM_NEGATIVE_P(x)) {
- mpz_neg(mx, mx);
- str = rb_usascii_str_new(0, size+1);
- }
- else {
- str = rb_usascii_str_new(0, size);
- }
- mpz_get_str(RSTRING_PTR(str), base, mx);
- mpz_clear(mx);
-
- if (RSTRING_PTR(str)[RSTRING_LEN(str)-1] == '\0') {
- rb_str_set_len(str, RSTRING_LEN(str)-1);
+ s[0] = RBIGNUM(x)->sign ? '+' : '-';
+ while (i && j) {
+ long k = i;
+ unsigned long num = 0;
+ while (k--) {
+ num = BIGUP(num) + ds[k];
+ ds[k] = (USHORT)(num / hbase);
+ num %= hbase;
+ }
+ if (ds[i-1] == 0) i--;
+ k = 4;
+ while (k--) {
+ c = (char)(num % base);
+ s[--j] = hexmap[(int)c];
+ num /= base;
+ if (i == 0 && num == 0) break;
+ }
}
+ while (s[j] == '0') j++;
+ RSTRING(ss)->len -= RBIGNUM(x)->sign?j:j-1;
+ memmove(RBIGNUM(x)->sign?s:s+1, s+j, RSTRING(ss)->len);
+ s[RSTRING(ss)->len] = '\0';
- RB_GC_GUARD(x);
- return str;
-}
-
-VALUE
-rb_big2str_gmp(VALUE x, int base)
-{
- return big2str_gmp(x, base);
+ return ss;
}
-#endif
static VALUE
-rb_big2str1(VALUE x, int base)
-{
- BDIGIT *xds;
- size_t xn;
-
- if (FIXNUM_P(x)) {
- return rb_fix2str(x, base);
- }
-
- bigtrunc(x);
- xds = BDIGITS(x);
- xn = BIGNUM_LEN(x);
- BARY_TRUNC(xds, xn);
-
- if (xn == 0) {
- return rb_usascii_str_new2("0");
- }
-
- if (!valid_radix_p(base))
- invalid_radix(base);
-
- if (xn >= LONG_MAX/BITSPERDIG) {
- rb_raise(rb_eRangeError, "bignum too big to convert into `string'");
- }
-
- if (POW2_P(base)) {
- /* base == 2 || base == 4 || base == 8 || base == 16 || base == 32 */
- return big2str_base_poweroftwo(x, base);
- }
-
-#ifdef USE_GMP
- if (GMP_BIG2STR_DIGITS < xn) {
- return big2str_gmp(x, base);
- }
-#endif
-
- return big2str_generic(x, base);
-}
-
-VALUE
-rb_big2str(VALUE x, int base)
+rb_big_to_s(x)
+ VALUE x;
{
- return rb_big2str1(x, base);
+ return rb_big2str(x, 10);
}
-static unsigned long
-big2ulong(VALUE x, const char *type)
+unsigned long
+rb_big2ulong(x)
+ VALUE x;
{
-#if SIZEOF_LONG > SIZEOF_BDIGIT
- size_t i;
-#endif
- size_t len = BIGNUM_LEN(x);
unsigned long num;
- BDIGIT *ds;
+ long len = RBIGNUM(x)->len;
+ USHORT *ds;
- if (len == 0)
- return 0;
- if (BIGSIZE(x) > sizeof(long)) {
- rb_raise(rb_eRangeError, "bignum too big to convert into `%s'", type);
- }
+ if (len > sizeof(long)/sizeof(USHORT))
+ rb_raise(rb_eArgError, "bignum too big to convert into `uint'");
ds = BDIGITS(x);
-#if SIZEOF_LONG <= SIZEOF_BDIGIT
- num = (unsigned long)ds[0];
-#else
num = 0;
- for (i = 0; i < len; i++) {
- num <<= BITSPERDIG;
- num += (unsigned long)ds[len - i - 1]; /* overflow is already checked */
+ while (len--) {
+ num = BIGUP(num);
+ num += ds[len];
}
-#endif
return num;
}
-unsigned long
-rb_big2ulong(VALUE x)
-{
- unsigned long num = big2ulong(x, "unsigned long");
-
- if (BIGNUM_POSITIVE_P(x)) {
- return num;
- }
- else {
- if (num <= 1+(unsigned long)(-(LONG_MIN+1)))
- return -(long)(num-1)-1;
- }
- rb_raise(rb_eRangeError, "bignum out of range of unsigned long");
-}
-
long
-rb_big2long(VALUE x)
+rb_big2long(x)
+ VALUE x;
{
- unsigned long num = big2ulong(x, "long");
+ unsigned long num = rb_big2ulong(x);
- if (BIGNUM_POSITIVE_P(x)) {
- if (num <= LONG_MAX)
- return num;
- }
- else {
- if (num <= 1+(unsigned long)(-(LONG_MIN+1)))
- return -(long)(num-1)-1;
+ if ((long)num < 0) {
+ rb_raise(rb_eArgError, "bignum too big to convert into `int'");
}
- rb_raise(rb_eRangeError, "bignum too big to convert into `long'");
-}
-
-#if HAVE_LONG_LONG
-
-static unsigned LONG_LONG
-big2ull(VALUE x, const char *type)
-{
-#if SIZEOF_LONG_LONG > SIZEOF_BDIGIT
- size_t i;
-#endif
- size_t len = BIGNUM_LEN(x);
- unsigned LONG_LONG num;
- BDIGIT *ds = BDIGITS(x);
-
- if (len == 0)
- return 0;
- if (BIGSIZE(x) > SIZEOF_LONG_LONG)
- rb_raise(rb_eRangeError, "bignum too big to convert into `%s'", type);
-#if SIZEOF_LONG_LONG <= SIZEOF_BDIGIT
- num = (unsigned LONG_LONG)ds[0];
-#else
- num = 0;
- for (i = 0; i < len; i++) {
- num = BIGUP(num);
- num += ds[len - i - 1];
- }
-#endif
+ if (!RBIGNUM(x)->sign) return -(long)num;
return num;
}
-unsigned LONG_LONG
-rb_big2ull(VALUE x)
-{
- unsigned LONG_LONG num = big2ull(x, "unsigned long long");
-
- if (BIGNUM_POSITIVE_P(x)) {
- return num;
- }
- else {
- if (num <= 1+(unsigned LONG_LONG)(-(LLONG_MIN+1)))
- return -(LONG_LONG)(num-1)-1;
- }
- rb_raise(rb_eRangeError, "bignum out of range of unsigned long long");
-}
-
-LONG_LONG
-rb_big2ll(VALUE x)
+static VALUE
+rb_big_to_i(x)
+ VALUE x;
{
- unsigned LONG_LONG num = big2ull(x, "long long");
-
- if (BIGNUM_POSITIVE_P(x)) {
- if (num <= LLONG_MAX)
- return num;
- }
- else {
- if (num <= 1+(unsigned LONG_LONG)(-(LLONG_MIN+1)))
- return -(LONG_LONG)(num-1)-1;
- }
- rb_raise(rb_eRangeError, "bignum too big to convert into `long long'");
+ return bignorm(x);
}
-#endif /* HAVE_LONG_LONG */
-
-static VALUE
-dbl2big(double d)
+VALUE
+rb_dbl2big(d)
+ double d;
{
- long i = 0;
- BDIGIT c;
- BDIGIT *digits;
+ unsigned long i = 0;
+ long c;
+ USHORT *digits;
VALUE z;
double u = (d < 0)?-d:d;
@@ -5234,7 +410,7 @@ dbl2big(double d)
rb_raise(rb_eFloatDomainError, "NaN");
}
- while (1.0 <= u) {
+ while (!POSFIXABLE(u) || 0 != (long)u) {
u /= (double)(BIGRAD);
i++;
}
@@ -5242,1943 +418,907 @@ dbl2big(double d)
digits = BDIGITS(z);
while (i--) {
u *= BIGRAD;
- c = (BDIGIT)u;
+ c = (long)u;
u -= c;
- digits[i] = c;
+ digits[i] = (USHORT)c;
}
- return z;
-}
-
-VALUE
-rb_dbl2big(double d)
-{
- return bignorm(dbl2big(d));
-}
-
-static double
-big2dbl(VALUE x)
-{
- double d = 0.0;
- long i = (bigtrunc(x), BIGNUM_LEN(x)), lo = 0, bits;
- BDIGIT *ds = BDIGITS(x), dl;
-
- if (i) {
- bits = i * BITSPERDIG - nlz(ds[i-1]);
- if (bits > DBL_MANT_DIG+DBL_MAX_EXP) {
- d = HUGE_VAL;
- }
- else {
- if (bits > DBL_MANT_DIG+1)
- lo = (bits -= DBL_MANT_DIG+1) / BITSPERDIG;
- else
- bits = 0;
- while (--i > lo) {
- d = ds[i] + BIGRAD*d;
- }
- dl = ds[i];
- if (bits && (dl & ((BDIGIT)1 << (bits %= BITSPERDIG)))) {
- int carry = (dl & ~(BDIGMAX << bits)) != 0;
- if (!carry) {
- while (i-- > 0) {
- carry = ds[i] != 0;
- if (carry) break;
- }
- }
- if (carry) {
- BDIGIT mask = BDIGMAX;
- BDIGIT bit = 1;
- mask <<= bits;
- bit <<= bits;
- dl &= mask;
- dl += bit;
- dl = BIGLO(dl);
- if (!dl) d += 1;
- }
- }
- d = dl + BIGRAD*d;
- if (lo) {
- if (lo > INT_MAX / BITSPERDIG)
- d = HUGE_VAL;
- else if (lo < INT_MIN / BITSPERDIG)
- d = 0.0;
- else
- d = ldexp(d, (int)(lo * BITSPERDIG));
- }
- }
- }
- if (BIGNUM_NEGATIVE_P(x)) d = -d;
- return d;
+ return bignorm(z);
}
double
-rb_big2dbl(VALUE x)
+rb_big2dbl(x)
+ VALUE x;
{
- double d = big2dbl(x);
+ double d = 0.0;
+ long i = RBIGNUM(x)->len;
+ USHORT *ds = BDIGITS(x);
- if (isinf(d)) {
- rb_warning("Bignum out of Float range");
- if (d < 0.0)
- d = -HUGE_VAL;
- else
- d = HUGE_VAL;
+ while (i--) {
+ d = ds[i] + BIGRAD*d;
}
+ if (!RBIGNUM(x)->sign) d = -d;
return d;
}
-VALUE
-rb_integer_float_cmp(VALUE x, VALUE y)
-{
- double yd = RFLOAT_VALUE(y);
- double yi, yf;
- VALUE rel;
-
- if (isnan(yd))
- return Qnil;
- if (isinf(yd)) {
- if (yd > 0.0) return INT2FIX(-1);
- else return INT2FIX(1);
- }
- yf = modf(yd, &yi);
- if (FIXNUM_P(x)) {
-#if SIZEOF_LONG * CHAR_BIT < DBL_MANT_DIG /* assume FLT_RADIX == 2 */
- double xd = (double)FIX2LONG(x);
- if (xd < yd)
- return INT2FIX(-1);
- if (xd > yd)
- return INT2FIX(1);
- return INT2FIX(0);
-#else
- long xn, yn;
- if (yi < FIXNUM_MIN)
- return INT2FIX(1);
- if (FIXNUM_MAX+1 <= yi)
- return INT2FIX(-1);
- xn = FIX2LONG(x);
- yn = (long)yi;
- if (xn < yn)
- return INT2FIX(-1);
- if (xn > yn)
- return INT2FIX(1);
- if (yf < 0.0)
- return INT2FIX(1);
- if (0.0 < yf)
- return INT2FIX(-1);
- return INT2FIX(0);
-#endif
- }
- y = rb_dbl2big(yi);
- rel = rb_big_cmp(x, y);
- if (yf == 0.0 || rel != INT2FIX(0))
- return rel;
- if (yf < 0.0)
- return INT2FIX(1);
- return INT2FIX(-1);
-}
-
-#if SIZEOF_LONG * CHAR_BIT >= DBL_MANT_DIG /* assume FLT_RADIX == 2 */
-COMPILER_WARNING_PUSH
-#if __has_warning("-Wimplicit-int-float-conversion")
-COMPILER_WARNING_IGNORED(-Wimplicit-int-float-conversion)
-#endif
-static const double LONG_MAX_as_double = LONG_MAX;
-COMPILER_WARNING_POP
-#endif
-
-VALUE
-rb_integer_float_eq(VALUE x, VALUE y)
-{
- double yd = RFLOAT_VALUE(y);
- double yi, yf;
-
- if (!isfinite(yd))
- return Qfalse;
- yf = modf(yd, &yi);
- if (yf != 0)
- return Qfalse;
- if (FIXNUM_P(x)) {
-#if SIZEOF_LONG * CHAR_BIT < DBL_MANT_DIG /* assume FLT_RADIX == 2 */
- double xd = (double)FIX2LONG(x);
- return RBOOL(xd == yd);
-#else
- long xn, yn;
- if (yi < LONG_MIN || LONG_MAX_as_double <= yi)
- return Qfalse;
- xn = FIX2LONG(x);
- yn = (long)yi;
- return RBOOL(xn == yn);
-#endif
- }
- y = rb_dbl2big(yi);
- return rb_big_eq(x, y);
-}
-
-
-VALUE
-rb_big_cmp(VALUE x, VALUE y)
+static VALUE
+rb_big_to_f(x)
+ VALUE x;
{
- if (FIXNUM_P(y)) {
- x = bigfixize(x);
- if (FIXNUM_P(x)) {
- /* SIGNED_VALUE and Fixnum have same sign-bits, same
- * order */
- SIGNED_VALUE sx = (SIGNED_VALUE)x, sy = (SIGNED_VALUE)y;
- if (sx < sy) return INT2FIX(-1);
- return INT2FIX(sx > sy);
- }
- }
- else if (RB_BIGNUM_TYPE_P(y)) {
- if (BIGNUM_SIGN(x) == BIGNUM_SIGN(y)) {
- int cmp = bary_cmp(BDIGITS(x), BIGNUM_LEN(x), BDIGITS(y), BIGNUM_LEN(y));
- return INT2FIX(BIGNUM_SIGN(x) ? cmp : -cmp);
- }
- }
- else if (RB_FLOAT_TYPE_P(y)) {
- return rb_integer_float_cmp(x, y);
- }
- else {
- return rb_num_coerce_cmp(x, y, idCmp);
- }
- return INT2FIX(BIGNUM_SIGN(x) ? 1 : -1);
+ return rb_float_new(rb_big2dbl(x));
}
-enum big_op_t {
- big_op_gt,
- big_op_ge,
- big_op_lt,
- big_op_le
-};
-
static VALUE
-big_op(VALUE x, VALUE y, enum big_op_t op)
+rb_big_cmp(x, y)
+ VALUE x, y;
{
- VALUE rel;
- int n;
+ long xlen = RBIGNUM(x)->len;
- if (RB_INTEGER_TYPE_P(y)) {
- rel = rb_big_cmp(x, y);
- }
- else if (RB_FLOAT_TYPE_P(y)) {
- rel = rb_integer_float_cmp(x, y);
- }
- else {
- ID id = 0;
- switch (op) {
- case big_op_gt: id = '>'; break;
- case big_op_ge: id = idGE; break;
- case big_op_lt: id = '<'; break;
- case big_op_le: id = idLE; break;
- }
- return rb_num_coerce_relop(x, y, id);
- }
+ switch (TYPE(y)) {
+ case T_FIXNUM:
+ y = rb_int2big(FIX2LONG(y));
+ break;
- if (NIL_P(rel)) return Qfalse;
- n = FIX2INT(rel);
+ case T_BIGNUM:
+ break;
- switch (op) {
- case big_op_gt: return RBOOL(n > 0);
- case big_op_ge: return RBOOL(n >= 0);
- case big_op_lt: return RBOOL(n < 0);
- case big_op_le: return RBOOL(n <= 0);
+ default:
+ return rb_num_coerce_bin(x, y);
}
- return Qundef;
-}
-
-VALUE
-rb_big_gt(VALUE x, VALUE y)
-{
- return big_op(x, y, big_op_gt);
-}
-
-VALUE
-rb_big_ge(VALUE x, VALUE y)
-{
- return big_op(x, y, big_op_ge);
-}
-VALUE
-rb_big_lt(VALUE x, VALUE y)
-{
- return big_op(x, y, big_op_lt);
-}
+ if (RBIGNUM(x)->sign > RBIGNUM(y)->sign) return INT2FIX(1);
+ if (RBIGNUM(x)->sign < RBIGNUM(y)->sign) return INT2FIX(-1);
+ if (xlen < RBIGNUM(y)->len)
+ return (RBIGNUM(x)->sign) ? INT2FIX(-1) : INT2FIX(1);
+ if (xlen > RBIGNUM(y)->len)
+ return (RBIGNUM(x)->sign) ? INT2FIX(1) : INT2FIX(-1);
-VALUE
-rb_big_le(VALUE x, VALUE y)
-{
- return big_op(x, y, big_op_le);
+ while(xlen-- && (BDIGITS(x)[xlen]==BDIGITS(y)[xlen]));
+ if (-1 == xlen) return INT2FIX(0);
+ return (BDIGITS(x)[xlen] > BDIGITS(y)[xlen]) ?
+ (RBIGNUM(x)->sign ? INT2FIX(1) : INT2FIX(-1)) :
+ (RBIGNUM(x)->sign ? INT2FIX(-1) : INT2FIX(1));
}
-/*
- * call-seq:
- * big == obj -> true or false
- *
- * Returns <code>true</code> only if <i>obj</i> has the same value
- * as <i>big</i>. Contrast this with Integer#eql?, which requires
- * <i>obj</i> to be an Integer.
- *
- * 68719476736 == 68719476736.0 #=> true
- */
-
-VALUE
-rb_big_eq(VALUE x, VALUE y)
-{
- if (FIXNUM_P(y)) {
- return RBOOL(bignorm(x) == y);
- }
- else if (RB_BIGNUM_TYPE_P(y)) {
- }
- else if (RB_FLOAT_TYPE_P(y)) {
- return rb_integer_float_eq(x, y);
- }
- else {
- return rb_equal(y, x);
- }
- if (BIGNUM_SIGN(x) != BIGNUM_SIGN(y)) return Qfalse;
- if (BIGNUM_LEN(x) != BIGNUM_LEN(y)) return Qfalse;
- return RBOOL(MEMCMP(BDIGITS(x),BDIGITS(y),BDIGIT,BIGNUM_LEN(y)) == 0);
-}
-
-VALUE
-rb_big_eql(VALUE x, VALUE y)
+static VALUE
+rb_big_eq(x, y)
+ VALUE x, y;
{
- if (!RB_BIGNUM_TYPE_P(y)) return Qfalse;
- if (BIGNUM_SIGN(x) != BIGNUM_SIGN(y)) return Qfalse;
- if (BIGNUM_LEN(x) != BIGNUM_LEN(y)) return Qfalse;
- return RBOOL(MEMCMP(BDIGITS(x),BDIGITS(y),BDIGIT,BIGNUM_LEN(y)) == 0);
+ if (rb_big_cmp(x, y) == INT2FIX(0)) return Qtrue;
+ return Qfalse;
}
-VALUE
-rb_big_uminus(VALUE x)
+static VALUE
+rb_big_uminus(x)
+ VALUE x;
{
VALUE z = rb_big_clone(x);
- BIGNUM_NEGATE(z);
+ RBIGNUM(z)->sign = !RBIGNUM(x)->sign;
return bignorm(z);
}
-VALUE
-rb_big_comp(VALUE x)
+static VALUE
+rb_big_neg(x)
+ VALUE x;
{
VALUE z = rb_big_clone(x);
- BDIGIT *ds = BDIGITS(z);
- long n = BIGNUM_LEN(z);
+ long i = RBIGNUM(x)->len;
+ USHORT *ds = BDIGITS(z);
- if (!n) return INT2FIX(-1);
-
- if (BIGNUM_POSITIVE_P(z)) {
- if (bary_add_one(ds, n)) {
- big_extend_carry(z);
- }
- BIGNUM_SET_NEGATIVE_SIGN(z);
- }
- else {
- bary_neg(ds, n);
- if (bary_add_one(ds, n))
- return INT2FIX(-1);
- bary_neg(ds, n);
- BIGNUM_SET_POSITIVE_SIGN(z);
- }
+ if (!RBIGNUM(x)->sign) rb_big_2comp(z);
+ while (i--) ds[i] = ~ds[i];
+ if (RBIGNUM(x)->sign) rb_big_2comp(z);
+ RBIGNUM(z)->sign = !RBIGNUM(z)->sign;
return bignorm(z);
}
static VALUE
-bigsub(VALUE x, VALUE y)
+bigsub(x, y)
+ VALUE x, y;
{
- VALUE z;
- BDIGIT *xds, *yds, *zds;
- long xn, yn, zn;
-
- xn = BIGNUM_LEN(x);
- yn = BIGNUM_LEN(y);
- zn = xn < yn ? yn : xn;
-
- z = bignew(zn, 1);
-
- xds = BDIGITS(x);
- yds = BDIGITS(y);
- zds = BDIGITS(z);
+ VALUE z = 0;
+ USHORT *zds;
+ long num;
+ long i;
- if (bary_sub(zds, zn, xds, xn, yds, yn)) {
- bary_2comp(zds, zn);
- BIGNUM_SET_NEGATIVE_SIGN(z);
+ i = RBIGNUM(x)->len;
+ /* if x is larger than y, swap */
+ if (RBIGNUM(x)->len < RBIGNUM(y)->len) {
+ z = x; x = y; y = z; /* swap x y */
+ }
+ else if (RBIGNUM(x)->len == RBIGNUM(y)->len) {
+ while (i > 0) {
+ i--;
+ if (BDIGITS(x)[i] > BDIGITS(y)[i]) {
+ break;
+ }
+ if (BDIGITS(x)[i] < BDIGITS(y)[i]) {
+ z = x; x = y; y = z; /* swap x y */
+ break;
+ }
+ }
}
- return z;
-}
-
-static VALUE bigadd_int(VALUE x, long y);
-
-static VALUE
-bigsub_int(VALUE x, long y0)
-{
- VALUE z;
- BDIGIT *xds, *zds;
- long xn, zn;
- BDIGIT_DBL_SIGNED num;
- long i, y;
-
- y = y0;
- xds = BDIGITS(x);
- xn = BIGNUM_LEN(x);
-
- if (xn == 0)
- return LONG2NUM(-y0);
-
- zn = xn;
-#if SIZEOF_BDIGIT < SIZEOF_LONG
- if (zn < bdigit_roomof(SIZEOF_LONG))
- zn = bdigit_roomof(SIZEOF_LONG);
-#endif
- z = bignew(zn, BIGNUM_SIGN(x));
+ z = bignew(RBIGNUM(x)->len, (z == 0)?1:0);
zds = BDIGITS(z);
-#if SIZEOF_BDIGIT >= SIZEOF_LONG
- assert(xn == zn);
- num = (BDIGIT_DBL_SIGNED)xds[0] - y;
- if (xn == 1 && num < 0) {
- BIGNUM_NEGATE(z);
- zds[0] = (BDIGIT)-num;
- RB_GC_GUARD(x);
- return bignorm(z);
- }
- zds[0] = BIGLO(num);
- num = BIGDN(num);
- i = 1;
- if (i < xn)
- goto y_is_zero_x;
- goto finish;
-#else
- num = 0;
- for (i=0; i < xn; i++) {
- if (y == 0) goto y_is_zero_x;
- num += (BDIGIT_DBL_SIGNED)xds[i] - BIGLO(y);
+ for (i = 0, num = 0; i < RBIGNUM(y)->len; i++) {
+ num += (long)BDIGITS(x)[i] - BDIGITS(y)[i];
zds[i] = BIGLO(num);
num = BIGDN(num);
- y = BIGDN(y);
- }
- for (; i < zn; i++) {
- if (y == 0) goto y_is_zero_z;
- num -= BIGLO(y);
- zds[i] = BIGLO(num);
- num = BIGDN(num);
- y = BIGDN(y);
- }
- goto finish;
-#endif
-
- for (; i < xn; i++) {
- y_is_zero_x:
- if (num == 0) goto num_is_zero_x;
- num += xds[i];
- zds[i] = BIGLO(num);
+ }
+ while (num && i < RBIGNUM(x)->len) {
+ num += BDIGITS(x)[i];
+ zds[i++] = BIGLO(num);
num = BIGDN(num);
}
-#if SIZEOF_BDIGIT < SIZEOF_LONG
- for (; i < zn; i++) {
- y_is_zero_z:
- if (num == 0) goto num_is_zero_z;
- zds[i] = BIGLO(num);
- num = BIGDN(num);
- }
-#endif
- goto finish;
-
- for (; i < xn; i++) {
- num_is_zero_x:
- zds[i] = xds[i];
- }
-#if SIZEOF_BDIGIT < SIZEOF_LONG
- for (; i < zn; i++) {
- num_is_zero_z:
- zds[i] = 0;
- }
-#endif
- goto finish;
-
- finish:
- assert(num == 0 || num == -1);
- if (num < 0) {
- get2comp(z);
- BIGNUM_NEGATE(z);
+ while (i < RBIGNUM(x)->len) {
+ zds[i] = BDIGITS(x)[i];
+ i++;
}
- RB_GC_GUARD(x);
+
return bignorm(z);
}
static VALUE
-bigadd_int(VALUE x, long y)
+bigadd(x, y, sign)
+ VALUE x, y;
+ char sign;
{
VALUE z;
- BDIGIT *xds, *zds;
- long xn, zn;
- BDIGIT_DBL num;
- long i;
-
- xds = BDIGITS(x);
- xn = BIGNUM_LEN(x);
-
- if (xn == 0)
- return LONG2NUM(y);
+ long num;
+ long i, len;
- zn = xn;
-#if SIZEOF_BDIGIT < SIZEOF_LONG
- if (zn < bdigit_roomof(SIZEOF_LONG))
- zn = bdigit_roomof(SIZEOF_LONG);
-#endif
- zn++;
-
- z = bignew(zn, BIGNUM_SIGN(x));
- zds = BDIGITS(z);
+ sign = (sign == RBIGNUM(y)->sign);
+ if (RBIGNUM(x)->sign != sign) {
+ if (sign) return bigsub(y, x);
+ return bigsub(x, y);
+ }
-#if SIZEOF_BDIGIT >= SIZEOF_LONG
- num = (BDIGIT_DBL)xds[0] + y;
- zds[0] = BIGLO(num);
- num = BIGDN(num);
- i = 1;
- if (i < xn)
- goto y_is_zero_x;
- goto y_is_zero_z;
-#else
- num = 0;
- for (i=0; i < xn; i++) {
- if (y == 0) goto y_is_zero_x;
- num += (BDIGIT_DBL)xds[i] + BIGLO(y);
- zds[i] = BIGLO(num);
- num = BIGDN(num);
- y = BIGDN(y);
+ if (RBIGNUM(x)->len > RBIGNUM(y)->len) {
+ len = RBIGNUM(x)->len + 1;
+ z = x; x = y; y = z;
}
- for (; i < zn; i++) {
- if (y == 0) goto y_is_zero_z;
- num += BIGLO(y);
- zds[i] = BIGLO(num);
- num = BIGDN(num);
- y = BIGDN(y);
+ else {
+ len = RBIGNUM(y)->len + 1;
}
- goto finish;
-
-#endif
+ z = bignew(len, sign);
- for (;i < xn; i++) {
- y_is_zero_x:
- if (num == 0) goto num_is_zero_x;
- num += (BDIGIT_DBL)xds[i];
- zds[i] = BIGLO(num);
+ len = RBIGNUM(x)->len;
+ for (i = 0, num = 0; i < len; i++) {
+ num += BDIGITS(x)[i] + BDIGITS(y)[i];
+ BDIGITS(z)[i] = BIGLO(num);
num = BIGDN(num);
}
- for (; i < zn; i++) {
- y_is_zero_z:
- if (num == 0) goto num_is_zero_z;
- zds[i] = BIGLO(num);
+ len = RBIGNUM(y)->len;
+ while (num && i < len) {
+ num += BDIGITS(y)[i];
+ BDIGITS(z)[i++] = BIGLO(num);
num = BIGDN(num);
}
- goto finish;
-
- for (;i < xn; i++) {
- num_is_zero_x:
- zds[i] = xds[i];
- }
- for (; i < zn; i++) {
- num_is_zero_z:
- zds[i] = 0;
+ while (i < len) {
+ BDIGITS(z)[i] = BDIGITS(y)[i];
+ i++;
}
- goto finish;
+ BDIGITS(z)[i] = (USHORT)num;
- finish:
- RB_GC_GUARD(x);
return bignorm(z);
}
-static VALUE
-bigadd(VALUE x, VALUE y, int sign)
+VALUE
+rb_big_plus(x, y)
+ VALUE x, y;
{
- VALUE z;
- size_t len;
+ switch (TYPE(y)) {
+ case T_FIXNUM:
+ y = rb_int2big(FIX2LONG(y));
+ /* fall through */
+ case T_BIGNUM:
+ return bigadd(x, y, 1);
- sign = (sign == BIGNUM_SIGN(y));
- if (BIGNUM_SIGN(x) != sign) {
- if (sign) return bigsub(y, x);
- return bigsub(x, y);
- }
+ case T_FLOAT:
+ return rb_float_new(rb_big2dbl(x) + RFLOAT(y)->value);
- if (BIGNUM_LEN(x) > BIGNUM_LEN(y)) {
- len = BIGNUM_LEN(x) + 1;
+ default:
+ return rb_num_coerce_bin(x, y);
}
- else {
- len = BIGNUM_LEN(y) + 1;
- }
- z = bignew(len, sign);
-
- bary_add(BDIGITS(z), BIGNUM_LEN(z),
- BDIGITS(x), BIGNUM_LEN(x),
- BDIGITS(y), BIGNUM_LEN(y));
-
- return z;
}
VALUE
-rb_big_plus(VALUE x, VALUE y)
+rb_big_minus(x, y)
+ VALUE x, y;
{
- long n;
-
- if (FIXNUM_P(y)) {
- n = FIX2LONG(y);
- if ((n > 0) != BIGNUM_SIGN(x)) {
- if (n < 0) {
- n = -n;
- }
- return bigsub_int(x, n);
- }
- if (n < 0) {
- n = -n;
- }
- return bigadd_int(x, n);
- }
- else if (RB_BIGNUM_TYPE_P(y)) {
- return bignorm(bigadd(x, y, 1));
- }
- else if (RB_FLOAT_TYPE_P(y)) {
- return DBL2NUM(rb_big2dbl(x) + RFLOAT_VALUE(y));
- }
- else {
- return rb_num_coerce_bin(x, y, '+');
- }
-}
+ switch (TYPE(y)) {
+ case T_FIXNUM:
+ y = rb_int2big(FIX2LONG(y));
+ /* fall through */
+ case T_BIGNUM:
+ return bigadd(x, y, 0);
-VALUE
-rb_big_minus(VALUE x, VALUE y)
-{
- long n;
+ case T_FLOAT:
+ return rb_float_new(rb_big2dbl(x) - RFLOAT(y)->value);
- if (FIXNUM_P(y)) {
- n = FIX2LONG(y);
- if ((n > 0) != BIGNUM_SIGN(x)) {
- if (n < 0) {
- n = -n;
- }
- return bigadd_int(x, n);
- }
- if (n < 0) {
- n = -n;
- }
- return bigsub_int(x, n);
- }
- else if (RB_BIGNUM_TYPE_P(y)) {
- return bignorm(bigadd(x, y, 0));
- }
- else if (RB_FLOAT_TYPE_P(y)) {
- return DBL2NUM(rb_big2dbl(x) - RFLOAT_VALUE(y));
- }
- else {
- return rb_num_coerce_bin(x, y, '-');
+ default:
+ return rb_num_coerce_bin(x, y);
}
}
-static VALUE
-bigsq(VALUE x)
+VALUE
+rb_big_mul(x, y)
+ VALUE x, y;
{
- long xn, zn;
+ long i, j;
+ unsigned long n = 0;
VALUE z;
- BDIGIT *xds, *zds;
-
- xn = BIGNUM_LEN(x);
- zn = 2 * xn;
-
- z = bignew(zn, 1);
-
- xds = BDIGITS(x);
- zds = BDIGITS(z);
+ USHORT *zds;
- if (xn < NAIVE_MUL_DIGITS)
- bary_sq_fast(zds, zn, xds, xn);
- else
- bary_mul(zds, zn, xds, xn, xds, xn);
-
- RB_GC_GUARD(x);
- return z;
-}
-
-static VALUE
-bigmul0(VALUE x, VALUE y)
-{
- long xn, yn, zn;
- VALUE z;
- BDIGIT *xds, *yds, *zds;
+ if (FIXNUM_P(x)) x = rb_int2big(FIX2LONG(x));
+ switch (TYPE(y)) {
+ case T_FIXNUM:
+ y = rb_int2big(FIX2LONG(y));
+ break;
- if (x == y)
- return bigsq(x);
+ case T_BIGNUM:
+ break;
- xn = BIGNUM_LEN(x);
- yn = BIGNUM_LEN(y);
- zn = xn + yn;
+ case T_FLOAT:
+ return rb_float_new(rb_big2dbl(x) * RFLOAT(y)->value);
- z = bignew(zn, BIGNUM_SIGN(x)==BIGNUM_SIGN(y));
+ default:
+ return rb_num_coerce_bin(x, y);
+ }
- xds = BDIGITS(x);
- yds = BDIGITS(y);
+ j = RBIGNUM(x)->len + RBIGNUM(y)->len + 1;
+ z = bignew(j, RBIGNUM(x)->sign==RBIGNUM(y)->sign);
zds = BDIGITS(z);
-
- bary_mul(zds, zn, xds, xn, yds, yn);
-
- RB_GC_GUARD(x);
- RB_GC_GUARD(y);
- return z;
-}
-
-VALUE
-rb_big_mul(VALUE x, VALUE y)
-{
- if (FIXNUM_P(y)) {
- y = rb_int2big(FIX2LONG(y));
- }
- else if (RB_BIGNUM_TYPE_P(y)) {
- }
- else if (RB_FLOAT_TYPE_P(y)) {
- return DBL2NUM(rb_big2dbl(x) * RFLOAT_VALUE(y));
- }
- else {
- return rb_num_coerce_bin(x, y, '*');
+ while (j--) zds[j] = 0;
+ for (i = 0; i < RBIGNUM(x)->len; i++) {
+ unsigned long dd = BDIGITS(x)[i];
+ if (dd == 0) continue;
+ n = 0;
+ for (j = 0; j < RBIGNUM(y)->len; j++) {
+ int ee = n + dd * BDIGITS(y)[j];
+ n = zds[i + j] + ee;
+ if (ee) zds[i + j] = BIGLO(n);
+ n = BIGDN(n);
+ }
+ if (n) {
+ zds[i + j] = n;
+ }
}
- return bignorm(bigmul0(x, y));
+ return bignorm(z);
}
-static VALUE
-bigdivrem(VALUE x, VALUE y, volatile VALUE *divp, volatile VALUE *modp)
-{
- long xn = BIGNUM_LEN(x), yn = BIGNUM_LEN(y);
- VALUE z;
- BDIGIT *xds, *yds, *zds;
- BDIGIT dd;
-
- VALUE q = Qnil, r = Qnil;
- BDIGIT *qds, *rds;
- long qn, rn;
+static void
+bigdivmod(x, y, div, mod, modulo)
+ VALUE x, y;
+ VALUE *div, *mod;
+ int modulo;
+{
+ long nx = RBIGNUM(x)->len, ny = RBIGNUM(y)->len;
+ long i, j;
+ VALUE yy, z;
+ USHORT *xds, *yds, *zds, *tds;
+ unsigned long t2;
+ long num;
+ USHORT dd, q;
yds = BDIGITS(y);
- BARY_TRUNC(yds, yn);
- if (yn == 0)
- rb_num_zerodiv();
-
- xds = BDIGITS(x);
- BARY_TRUNC(xds, xn);
-
- if (xn < yn || (xn == yn && xds[xn - 1] < yds[yn - 1])) {
- if (divp) *divp = rb_int2big(0);
- if (modp) *modp = x;
- return Qnil;
+ if (ny == 0 && yds[0] == 0) rb_num_zerodiv();
+ if (nx < ny || nx == ny && BDIGITS(x)[nx - 1] < BDIGITS(y)[ny - 1]) {
+ if (div) *div = INT2FIX(0);
+ if (mod) *mod = bignorm(x);
+ return;
}
- if (yn == 1) {
+ xds = BDIGITS(x);
+ if (ny == 1) {
dd = yds[0];
- z = bignew(xn, BIGNUM_SIGN(x)==BIGNUM_SIGN(y));
+ z = rb_big_clone(x);
zds = BDIGITS(z);
- dd = bigdivrem_single(zds, xds, xn, dd);
- if (modp) {
- *modp = rb_uint2big((uintptr_t)dd);
- BIGNUM_SET_SIGN(*modp, BIGNUM_SIGN(x));
+ t2 = 0; i = nx;
+ while (i--) {
+ t2 = BIGUP(t2) + zds[i];
+ zds[i] = (USHORT)(t2 / dd);
+ t2 %= dd;
}
- if (divp) *divp = z;
- return Qnil;
- }
- if (xn == 2 && yn == 2) {
- BDIGIT_DBL x0 = bary2bdigitdbl(xds, 2);
- BDIGIT_DBL y0 = bary2bdigitdbl(yds, 2);
- BDIGIT_DBL q0 = x0 / y0;
- BDIGIT_DBL r0 = x0 % y0;
- if (divp) {
- z = bignew(bdigit_roomof(sizeof(BDIGIT_DBL)), BIGNUM_SIGN(x)==BIGNUM_SIGN(y));
- zds = BDIGITS(z);
- zds[0] = BIGLO(q0);
- zds[1] = BIGLO(BIGDN(q0));
- *divp = z;
- }
- if (modp) {
- z = bignew(bdigit_roomof(sizeof(BDIGIT_DBL)), BIGNUM_SIGN(x));
- zds = BDIGITS(z);
- zds[0] = BIGLO(r0);
- zds[1] = BIGLO(BIGDN(r0));
- *modp = z;
- }
- return Qnil;
- }
-
- if (divp) {
- qn = xn + BIGDIVREM_EXTRA_WORDS;
- q = bignew(qn, BIGNUM_SIGN(x)==BIGNUM_SIGN(y));
- qds = BDIGITS(q);
- }
- else {
- qn = 0;
- qds = NULL;
+ RBIGNUM(z)->sign = RBIGNUM(x)->sign==RBIGNUM(y)->sign;
+ if (div) *div = bignorm(z);
+ if (mod) {
+ if (!RBIGNUM(y)->sign) t2 = -(long)t2;
+ *mod = INT2NUM(t2);
+ }
+ return;
}
-
- if (modp) {
- rn = yn;
- r = bignew(rn, BIGNUM_SIGN(x));
- rds = BDIGITS(r);
+ z = bignew(nx==ny?nx+2:nx+1, RBIGNUM(x)->sign==RBIGNUM(y)->sign);
+ zds = BDIGITS(z);
+ if (nx==ny) zds[nx+1] = 0;
+ while (!yds[ny-1]) ny--;
+ if ((dd = BIGRAD/(int)(yds[ny-1]+1)) != 1) {
+ yy = rb_big_clone(y);
+ tds = BDIGITS(yy);
+ j = 0;
+ num = 0;
+ while (j<ny) {
+ num += (long)yds[j]*dd;
+ tds[j++] = BIGLO(num);
+ num = BIGDN(num);
+ }
+ yds = tds;
+ j = 0;
+ num = 0;
+ while (j<nx) {
+ num += (long)xds[j]*dd;
+ zds[j++] = BIGLO(num);
+ num = BIGDN(num);
+ }
+ zds[j] = (USHORT)num;
}
else {
- rn = 0;
- rds = NULL;
+ zds[nx] = 0;
+ j = nx;
+ while (j--) zds[j] = xds[j];
}
-
- bary_divmod_branch(qds, qn, rds, rn, xds, xn, yds, yn);
-
- if (divp) {
- bigtrunc(q);
- *divp = q;
- }
- if (modp) {
- bigtrunc(r);
- *modp = r;
- }
-
- return Qnil;
-}
-
-static void
-bigdivmod(VALUE x, VALUE y, volatile VALUE *divp, volatile VALUE *modp)
-{
- VALUE mod;
-
- bigdivrem(x, y, divp, &mod);
- if (BIGNUM_SIGN(x) != BIGNUM_SIGN(y) && !BIGZEROP(mod)) {
- if (divp) *divp = bigadd(*divp, rb_int2big(1), 0);
- if (modp) *modp = bigadd(mod, y, 1);
- }
- else if (modp) {
- *modp = mod;
+ j = nx==ny?nx+1:nx;
+ do {
+ if (zds[j] == yds[ny-1]) q = BIGRAD-1;
+ else q = (USHORT)((BIGUP(zds[j]) + zds[j-1])/yds[ny-1]);
+ if (q) {
+ i = 0; num = 0; t2 = 0;
+ do { /* multiply and subtract */
+ int ee;
+ t2 += (long)yds[i] * q;
+ ee = num - BIGLO(t2);
+ num = zds[j - ny + i] + ee;
+ if (ee) zds[j - ny + i] = BIGLO(num);
+ num = BIGDN(num);
+ t2 = BIGDN(t2);
+ } while (++i < ny);
+ num += zds[j - ny + i] - t2; /* borrow from high digit; don't update */
+ while (num) { /* "add back" required */
+ i = 0; num = 0; q--;
+ do {
+ int ee = num + yds[i];
+ num = (long) zds[j - ny + i] + ee;
+ if (ee) zds[j - ny + i] = BIGLO(num);
+ num = BIGDN(num);
+ } while (++i < ny);
+ num--;
+ }
+ }
+ zds[j] = q;
+ } while (--j >= ny);
+ if (div) { /* move quotient down in z */
+ *div = rb_big_clone(z);
+ zds = BDIGITS(*div);
+ j = (nx==ny ? nx+2 : nx+1) - ny;
+ for (i = 0;i < j;i++) zds[i] = zds[i+ny];
+ RBIGNUM(*div)->len = i;
+ *div = bignorm(*div);
+ }
+ if (mod) { /* just normalize remainder */
+ *mod = rb_big_clone(z);
+ if (dd) {
+ zds = BDIGITS(*mod);
+ t2 = 0; i = ny;
+ while(i--) {
+ t2 = BIGUP(t2) + zds[i];
+ zds[i] = (USHORT)(t2 / dd);
+ t2 %= dd;
+ }
+ }
+ RBIGNUM(*mod)->len = ny;
+ RBIGNUM(*mod)->sign = RBIGNUM(x)->sign;
+ if (modulo && RBIGNUM(x)->sign != RBIGNUM(y)->sign) {
+ long len = ny;
+ zds = BDIGITS(*mod);
+ while (len-- && !zds[len]);
+ if (len > 0) {
+ *mod = bigadd(*mod, y, 1);
+ return;
+ }
+ }
+ *mod = bignorm(*mod);
}
}
-
static VALUE
-rb_big_divide(VALUE x, VALUE y, ID op)
+rb_big_div(x, y)
+ VALUE x, y;
{
VALUE z;
- if (FIXNUM_P(y)) {
+ switch (TYPE(y)) {
+ case T_FIXNUM:
y = rb_int2big(FIX2LONG(y));
- }
- else if (RB_BIGNUM_TYPE_P(y)) {
- }
- else if (RB_FLOAT_TYPE_P(y)) {
- if (op == '/') {
- double dx = rb_big2dbl(x);
- return rb_flo_div_flo(DBL2NUM(dx), y);
- }
- else {
- VALUE v;
- double dy = RFLOAT_VALUE(y);
- if (dy == 0.0) rb_num_zerodiv();
- v = rb_big_divide(x, y, '/');
- return rb_dbl2big(RFLOAT_VALUE(v));
- }
- }
- else {
- return rb_num_coerce_bin(x, y, op);
- }
- bigdivmod(x, y, &z, 0);
-
- return bignorm(z);
-}
+ break;
-VALUE
-rb_big_div(VALUE x, VALUE y)
-{
- return rb_big_divide(x, y, '/');
-}
-
-VALUE
-rb_big_idiv(VALUE x, VALUE y)
-{
- return rb_big_divide(x, y, idDiv);
-}
+ case T_BIGNUM:
+ break;
-VALUE
-rb_big_modulo(VALUE x, VALUE y)
-{
- VALUE z;
+ case T_FLOAT:
+ return rb_float_new(rb_big2dbl(x) / RFLOAT(y)->value);
- if (FIXNUM_P(y)) {
- y = rb_int2big(FIX2LONG(y));
- }
- else if (!RB_BIGNUM_TYPE_P(y)) {
- return rb_num_coerce_bin(x, y, '%');
+ default:
+ return rb_num_coerce_bin(x, y);
}
- bigdivmod(x, y, 0, &z);
+ bigdivmod(x, y, &z, 0, 0);
- return bignorm(z);
+ return z;
}
-VALUE
-rb_big_remainder(VALUE x, VALUE y)
+
+static VALUE
+rb_big_modulo(x, y, modulo)
+ VALUE x, y;
+ int modulo;
{
VALUE z;
- if (FIXNUM_P(y)) {
+ switch (TYPE(y)) {
+ case T_FIXNUM:
y = rb_int2big(FIX2LONG(y));
- }
- else if (!RB_BIGNUM_TYPE_P(y)) {
- return rb_num_coerce_bin(x, y, rb_intern("remainder"));
- }
- bigdivrem(x, y, 0, &z);
+ break;
- return bignorm(z);
-}
+ case T_BIGNUM:
+ break;
-VALUE
-rb_big_divmod(VALUE x, VALUE y)
-{
- VALUE div, mod;
+ case T_FLOAT:
+ y = rb_dbl2big(RFLOAT(y)->value);
+ break;
- if (FIXNUM_P(y)) {
- y = rb_int2big(FIX2LONG(y));
- }
- else if (!RB_BIGNUM_TYPE_P(y)) {
- return rb_num_coerce_bin(x, y, idDivmod);
+ default:
+ return rb_num_coerce_bin(x, y);
}
- bigdivmod(x, y, &div, &mod);
+ bigdivmod(x, y, 0, &z, modulo);
- return rb_assoc_new(bignorm(div), bignorm(mod));
+ return z;
}
static VALUE
-big_shift(VALUE x, long n)
+rb_big_mod(x, y)
+ VALUE x, y;
{
- if (n < 0)
- return big_lshift(x, 1+(unsigned long)(-(n+1)));
- else if (n > 0)
- return big_rshift(x, (unsigned long)n);
- return x;
+ return rb_big_modulo(x, y, 1);
}
-enum {DBL_BIGDIG = ((DBL_MANT_DIG + BITSPERDIG) / BITSPERDIG)};
-
-static double
-big_fdiv(VALUE x, VALUE y, long ey)
+static VALUE
+rb_big_remainder(x, y)
+ VALUE x, y;
{
- VALUE z;
- long l, ex;
-
- bigtrunc(x);
- l = BIGNUM_LEN(x);
- ex = l * BITSPERDIG - nlz(BDIGITS(x)[l-1]);
- ex -= 2 * DBL_BIGDIG * BITSPERDIG;
- if (ex > BITSPERDIG) ex -= BITSPERDIG;
- else if (ex > 0) ex = 0;
- if (ex) x = big_shift(x, ex);
-
- bigdivrem(x, y, &z, 0);
- l = ex - ey;
-#if SIZEOF_LONG > SIZEOF_INT
- {
- /* Visual C++ can't be here */
- if (l > INT_MAX) return HUGE_VAL;
- if (l < INT_MIN) return 0.0;
- }
-#endif
- return ldexp(big2dbl(z), (int)l);
+ return rb_big_modulo(x, y, 0);
}
-static double
-big_fdiv_int(VALUE x, VALUE y)
+static VALUE
+rb_big_divmod(x, y)
+ VALUE x, y;
{
- long l, ey;
- bigtrunc(y);
- l = BIGNUM_LEN(y);
- ey = l * BITSPERDIG - nlz(BDIGITS(y)[l-1]);
- ey -= DBL_BIGDIG * BITSPERDIG;
- if (ey) y = big_shift(y, ey);
- return big_fdiv(x, y, ey);
-}
+ VALUE div, mod;
-static double
-big_fdiv_float(VALUE x, VALUE y)
-{
- int i;
- y = dbl2big(ldexp(frexp(RFLOAT_VALUE(y), &i), DBL_MANT_DIG));
- return big_fdiv(x, y, i - DBL_MANT_DIG);
-}
+ switch (TYPE(y)) {
+ case T_FIXNUM:
+ y = rb_int2big(FIX2LONG(y));
+ break;
-double
-rb_big_fdiv_double(VALUE x, VALUE y)
-{
- double dx, dy;
- VALUE v;
+ case T_FLOAT:
+ y = rb_dbl2big(RFLOAT(y)->value);
+ break;
- dx = big2dbl(x);
- if (FIXNUM_P(y)) {
- dy = (double)FIX2LONG(y);
- if (isinf(dx))
- return big_fdiv_int(x, rb_int2big(FIX2LONG(y)));
- }
- else if (RB_BIGNUM_TYPE_P(y)) {
- return big_fdiv_int(x, y);
- }
- else if (RB_FLOAT_TYPE_P(y)) {
- dy = RFLOAT_VALUE(y);
- if (isnan(dy))
- return dy;
- if (isinf(dx))
- return big_fdiv_float(x, y);
- }
- else {
- return NUM2DBL(rb_num_coerce_bin(x, y, idFdiv));
+ case T_BIGNUM:
+ break;
+
+ default:
+ return rb_num_coerce_bin(x, y);
}
- v = rb_flo_div_flo(DBL2NUM(dx), DBL2NUM(dy));
- return NUM2DBL(v);
-}
+ bigdivmod(x, y, &div, &mod, 1);
-VALUE
-rb_big_fdiv(VALUE x, VALUE y)
-{
- return DBL2NUM(rb_big_fdiv_double(x, y));
+ return rb_assoc_new(div, mod);;
}
VALUE
-rb_big_pow(VALUE x, VALUE y)
+rb_big_pow(x, y)
+ VALUE x, y;
{
double d;
- SIGNED_VALUE yy;
-
- again:
+ long yy;
+
if (y == INT2FIX(0)) return INT2FIX(1);
- if (y == INT2FIX(1)) return x;
- if (RB_FLOAT_TYPE_P(y)) {
- d = RFLOAT_VALUE(y);
- if ((BIGNUM_NEGATIVE_P(x) && !BIGZEROP(x))) {
- return rb_dbl_complex_new_polar_pi(pow(-rb_big2dbl(x), d), d);
- }
- }
- else if (RB_BIGNUM_TYPE_P(y)) {
- y = bignorm(y);
- if (FIXNUM_P(y))
- goto again;
+ switch (TYPE(y)) {
+ case T_FLOAT:
+ d = RFLOAT(y)->value;
+ break;
+
+ case T_BIGNUM:
rb_warn("in a**b, b may be too big");
d = rb_big2dbl(y);
- }
- else if (FIXNUM_P(y)) {
- yy = FIX2LONG(y);
-
- if (yy < 0) {
- x = rb_big_pow(x, LONG2NUM(-yy));
- if (RB_INTEGER_TYPE_P(x))
- return rb_rational_raw(INT2FIX(1), x);
- else
- return DBL2NUM(1.0 / NUM2DBL(x));
- }
- else {
- VALUE z = 0;
- SIGNED_VALUE mask;
- const size_t xbits = rb_absint_numwords(x, 1, NULL);
- const size_t BIGLEN_LIMIT = 32*1024*1024;
-
- if (xbits == (size_t)-1 ||
- (xbits > BIGLEN_LIMIT) ||
- (xbits * yy > BIGLEN_LIMIT)) {
- rb_warn("in a**b, b may be too big");
- d = (double)yy;
- }
- else {
- for (mask = FIXNUM_MAX + 1; mask; mask >>= 1) {
- if (z) z = bigsq(z);
- if (yy & mask) {
- z = z ? bigtrunc(bigmul0(z, x)) : x;
- }
+ break;
+
+ case T_FIXNUM:
+ yy = NUM2LONG(y);
+ if (yy > 0) {
+ VALUE z;
+
+ z = x;
+ for (;;) {
+ yy = yy - 1;
+ if (yy == 0) break;
+ while (yy % 2 == 0) {
+ yy = yy / 2;
+ x = rb_big_mul(x, x);
}
- return bignorm(z);
+ z = rb_big_mul(z, x);
}
+ if (!FIXNUM_P(z)) z = bignorm(z);
+ return z;
}
- }
- else {
- return rb_num_coerce_bin(x, y, idPow);
- }
- return DBL2NUM(pow(rb_big2dbl(x), d));
-}
+ d = (double)yy;
+ break;
-static VALUE
-bigand_int(VALUE x, long xn, BDIGIT hibitsx, long y)
-{
- VALUE z;
- BDIGIT *xds, *zds;
- long zn;
- long i;
- BDIGIT hibitsy;
-
- if (y == 0) return INT2FIX(0);
- if (xn == 0) return hibitsx ? LONG2NUM(y) : 0;
- hibitsy = 0 <= y ? 0 : BDIGMAX;
- xds = BDIGITS(x);
-#if SIZEOF_BDIGIT >= SIZEOF_LONG
- if (!hibitsy) {
- y &= xds[0];
- return LONG2NUM(y);
- }
-#endif
-
- zn = xn;
-#if SIZEOF_BDIGIT < SIZEOF_LONG
- if (hibitsx && zn < bdigit_roomof(SIZEOF_LONG))
- zn = bdigit_roomof(SIZEOF_LONG);
-#endif
-
- z = bignew(zn, 0);
- zds = BDIGITS(z);
-
-#if SIZEOF_BDIGIT >= SIZEOF_LONG
- i = 1;
- zds[0] = xds[0] & BIGLO(y);
-#else
- for (i=0; i < xn; i++) {
- if (y == 0 || y == -1) break;
- zds[i] = xds[i] & BIGLO(y);
- y = BIGDN(y);
- }
- for (; i < zn; i++) {
- if (y == 0 || y == -1) break;
- zds[i] = hibitsx & BIGLO(y);
- y = BIGDN(y);
- }
-#endif
- for (;i < xn; i++) {
- zds[i] = xds[i] & hibitsy;
- }
- for (;i < zn; i++) {
- zds[i] = hibitsx & hibitsy;
+ default:
+ return rb_num_coerce_bin(x, y);
}
- twocomp2abs_bang(z, hibitsx && hibitsy);
- RB_GC_GUARD(x);
- return bignorm(z);
+ return rb_float_new(pow(rb_big2dbl(x), d));
}
VALUE
-rb_big_and(VALUE x, VALUE y)
+rb_big_and(x, y)
+ VALUE x, y;
{
VALUE z;
- BDIGIT *ds1, *ds2, *zds;
- long i, xn, yn, n1, n2;
- BDIGIT hibitsx, hibitsy;
- BDIGIT hibits1, hibits2;
- VALUE tmpv;
- BDIGIT tmph;
- long tmpn;
-
- if (!RB_INTEGER_TYPE_P(y)) {
- return rb_num_coerce_bit(x, y, '&');
- }
+ USHORT *ds1, *ds2, *zds;
+ long i, l1, l2;
+ char sign;
- hibitsx = abs2twocomp(&x, &xn);
if (FIXNUM_P(y)) {
- return bigand_int(x, xn, hibitsx, FIX2LONG(y));
+ y = rb_int2big(FIX2LONG(y));
}
- hibitsy = abs2twocomp(&y, &yn);
- if (xn > yn) {
- tmpv = x; x = y; y = tmpv;
- tmpn = xn; xn = yn; yn = tmpn;
- tmph = hibitsx; hibitsx = hibitsy; hibitsy = tmph;
+ else {
+ Check_Type(y, T_BIGNUM);
}
- n1 = xn;
- n2 = yn;
- ds1 = BDIGITS(x);
- ds2 = BDIGITS(y);
- hibits1 = hibitsx;
- hibits2 = hibitsy;
- if (!hibits1)
- n2 = n1;
-
- z = bignew(n2, 0);
+ if (!RBIGNUM(y)->sign) {
+ y = rb_big_clone(y);
+ rb_big_2comp(y);
+ }
+ if (!RBIGNUM(x)->sign) {
+ x = rb_big_clone(x);
+ rb_big_2comp(x);
+ }
+ if (RBIGNUM(x)->len > RBIGNUM(y)->len) {
+ l1 = RBIGNUM(y)->len;
+ l2 = RBIGNUM(x)->len;
+ ds1 = BDIGITS(y);
+ ds2 = BDIGITS(x);
+ sign = RBIGNUM(y)->sign;
+ }
+ else {
+ l1 = RBIGNUM(x)->len;
+ l2 = RBIGNUM(y)->len;
+ ds1 = BDIGITS(x);
+ ds2 = BDIGITS(y);
+ sign = RBIGNUM(x)->sign;
+ }
+ z = bignew(l2, RBIGNUM(x)->sign || RBIGNUM(y)->sign);
zds = BDIGITS(z);
- for (i=0; i<n1; i++) {
+ for (i=0; i<l1; i++) {
zds[i] = ds1[i] & ds2[i];
}
- for (; i<n2; i++) {
- zds[i] = hibits1 & ds2[i];
+ for (; i<l2; i++) {
+ zds[i] = sign?0:ds2[i];
}
- twocomp2abs_bang(z, hibits1 && hibits2);
- RB_GC_GUARD(x);
- RB_GC_GUARD(y);
+ if (!RBIGNUM(z)->sign) rb_big_2comp(z);
return bignorm(z);
}
-static VALUE
-bigor_int(VALUE x, long xn, BDIGIT hibitsx, long y)
+VALUE
+rb_big_or(x, y)
+ VALUE x, y;
{
VALUE z;
- BDIGIT *xds, *zds;
- long zn;
- long i;
- BDIGIT hibitsy;
-
- if (y == -1) return INT2FIX(-1);
- if (xn == 0) return hibitsx ? INT2FIX(-1) : LONG2FIX(y);
- hibitsy = 0 <= y ? 0 : BDIGMAX;
- xds = BDIGITS(x);
+ USHORT *ds1, *ds2, *zds;
+ unsigned long i, l1, l2;
+ char sign;
- zn = BIGNUM_LEN(x);
-#if SIZEOF_BDIGIT < SIZEOF_LONG
- if (zn < bdigit_roomof(SIZEOF_LONG))
- zn = bdigit_roomof(SIZEOF_LONG);
-#endif
- z = bignew(zn, 0);
- zds = BDIGITS(z);
+ if (FIXNUM_P(y)) {
+ y = rb_int2big(FIX2LONG(y));
+ }
+ else {
+ Check_Type(y, T_BIGNUM);
+ }
-#if SIZEOF_BDIGIT >= SIZEOF_LONG
- i = 1;
- zds[0] = xds[0] | BIGLO(y);
- if (i < zn)
- goto y_is_fixed_point;
- goto finish;
-#else
- for (i=0; i < xn; i++) {
- if (y == 0 || y == -1) goto y_is_fixed_point;
- zds[i] = xds[i] | BIGLO(y);
- y = BIGDN(y);
+ if (!RBIGNUM(y)->sign) {
+ y = rb_big_clone(y);
+ rb_big_2comp(y);
}
- if (hibitsx)
- goto fill_hibits;
- for (; i < zn; i++) {
- if (y == 0 || y == -1) goto y_is_fixed_point;
- zds[i] = BIGLO(y);
- y = BIGDN(y);
+ if (!RBIGNUM(x)->sign) {
+ x = rb_big_clone(x);
+ rb_big_2comp(x);
}
- goto finish;
-#endif
-
- y_is_fixed_point:
- if (hibitsy)
- goto fill_hibits;
- for (; i < xn; i++) {
- zds[i] = xds[i];
+ if (RBIGNUM(x)->len > RBIGNUM(y)->len) {
+ l1 = RBIGNUM(y)->len;
+ l2 = RBIGNUM(x)->len;
+ ds1 = BDIGITS(y);
+ ds2 = BDIGITS(x);
+ sign = RBIGNUM(y)->sign;
}
- if (hibitsx)
- goto fill_hibits;
- for (; i < zn; i++) {
- zds[i] = 0;
+ else {
+ l1 = RBIGNUM(x)->len;
+ l2 = RBIGNUM(y)->len;
+ ds1 = BDIGITS(x);
+ ds2 = BDIGITS(y);
+ sign = RBIGNUM(x)->sign;
}
- goto finish;
+ z = bignew(l2, RBIGNUM(x)->sign && RBIGNUM(y)->sign);
+ zds = BDIGITS(z);
- fill_hibits:
- for (; i < zn; i++) {
- zds[i] = BDIGMAX;
+ for (i=0; i<l1; i++) {
+ zds[i] = ds1[i] | ds2[i];
}
+ for (; i<l2; i++) {
+ zds[i] = sign?ds2[i]:(BIGRAD-1);
+ }
+ if (!RBIGNUM(z)->sign) rb_big_2comp(z);
- finish:
- twocomp2abs_bang(z, hibitsx || hibitsy);
- RB_GC_GUARD(x);
return bignorm(z);
}
VALUE
-rb_big_or(VALUE x, VALUE y)
+rb_big_xor(x, y)
+ VALUE x, y;
{
VALUE z;
- BDIGIT *ds1, *ds2, *zds;
- long i, xn, yn, n1, n2;
- BDIGIT hibitsx, hibitsy;
- BDIGIT hibits1, hibits2;
- VALUE tmpv;
- BDIGIT tmph;
- long tmpn;
-
- if (!RB_INTEGER_TYPE_P(y)) {
- return rb_num_coerce_bit(x, y, '|');
- }
+ USHORT *ds1, *ds2, *zds;
+ unsigned int i, l1, l2;
+ char sign;
- hibitsx = abs2twocomp(&x, &xn);
if (FIXNUM_P(y)) {
- return bigor_int(x, xn, hibitsx, FIX2LONG(y));
+ y = rb_int2big(FIX2LONG(y));
}
- hibitsy = abs2twocomp(&y, &yn);
- if (xn > yn) {
- tmpv = x; x = y; y = tmpv;
- tmpn = xn; xn = yn; yn = tmpn;
- tmph = hibitsx; hibitsx = hibitsy; hibitsy = tmph;
+ else {
+ Check_Type(y, T_BIGNUM);
}
- n1 = xn;
- n2 = yn;
- ds1 = BDIGITS(x);
- ds2 = BDIGITS(y);
- hibits1 = hibitsx;
- hibits2 = hibitsy;
- if (hibits1)
- n2 = n1;
-
- z = bignew(n2, 0);
+ if (!RBIGNUM(y)->sign) {
+ y = rb_big_clone(y);
+ rb_big_2comp(y);
+ }
+ if (!RBIGNUM(x)->sign) {
+ x = rb_big_clone(x);
+ rb_big_2comp(x);
+ }
+ if (RBIGNUM(x)->len > RBIGNUM(y)->len) {
+ l1 = RBIGNUM(y)->len;
+ l2 = RBIGNUM(x)->len;
+ ds1 = BDIGITS(y);
+ ds2 = BDIGITS(x);
+ sign = RBIGNUM(y)->sign;
+ }
+ else {
+ l1 = RBIGNUM(x)->len;
+ l2 = RBIGNUM(y)->len;
+ ds1 = BDIGITS(x);
+ ds2 = BDIGITS(y);
+ sign = RBIGNUM(x)->sign;
+ }
+ RBIGNUM(x)->sign = RBIGNUM(x)->sign?1:0;
+ RBIGNUM(y)->sign = RBIGNUM(y)->sign?1:0;
+ z = bignew(l2, !(RBIGNUM(x)->sign ^ RBIGNUM(y)->sign));
zds = BDIGITS(z);
- for (i=0; i<n1; i++) {
- zds[i] = ds1[i] | ds2[i];
+ for (i=0; i<l1; i++) {
+ zds[i] = ds1[i] ^ ds2[i];
}
- for (; i<n2; i++) {
- zds[i] = hibits1 | ds2[i];
+ for (; i<l2; i++) {
+ zds[i] = sign?ds2[i]:~ds2[i];
}
- twocomp2abs_bang(z, hibits1 || hibits2);
- RB_GC_GUARD(x);
- RB_GC_GUARD(y);
+ if (!RBIGNUM(z)->sign) rb_big_2comp(z);
+
return bignorm(z);
}
-static VALUE
-bigxor_int(VALUE x, long xn, BDIGIT hibitsx, long y)
+static VALUE rb_big_rshift _((VALUE,VALUE));
+
+VALUE
+rb_big_lshift(x, y)
+ VALUE x, y;
{
+ USHORT *xds, *zds;
+ int shift = NUM2INT(y);
+ int s1 = shift/BITSPERDIG;
+ int s2 = shift%BITSPERDIG;
VALUE z;
- BDIGIT *xds, *zds;
- long zn;
- long i;
- BDIGIT hibitsy;
+ unsigned long num = 0;
+ long len, i;
- hibitsy = 0 <= y ? 0 : BDIGMAX;
+ if (shift < 0) return rb_big_rshift(x, INT2FIX(-shift));
xds = BDIGITS(x);
- zn = BIGNUM_LEN(x);
-#if SIZEOF_BDIGIT < SIZEOF_LONG
- if (zn < bdigit_roomof(SIZEOF_LONG))
- zn = bdigit_roomof(SIZEOF_LONG);
-#endif
- z = bignew(zn, 0);
+ len = RBIGNUM(x)->len;
+ z = bignew(len+s1+1, RBIGNUM(x)->sign);
zds = BDIGITS(z);
-
-#if SIZEOF_BDIGIT >= SIZEOF_LONG
- i = 1;
- zds[0] = xds[0] ^ BIGLO(y);
-#else
- for (i = 0; i < xn; i++) {
- zds[i] = xds[i] ^ BIGLO(y);
- y = BIGDN(y);
- }
- for (; i < zn; i++) {
- zds[i] = hibitsx ^ BIGLO(y);
- y = BIGDN(y);
- }
-#endif
- for (; i < xn; i++) {
- zds[i] = xds[i] ^ hibitsy;
+ for (i=0; i<s1; i++) {
+ *zds++ = 0;
}
- for (; i < zn; i++) {
- zds[i] = hibitsx ^ hibitsy;
+ for (i=0; i<len; i++) {
+ num = num | *xds++<<s2;
+ *zds++ = BIGLO(num);
+ num = BIGDN(num);
}
- twocomp2abs_bang(z, (hibitsx ^ hibitsy) != 0);
- RB_GC_GUARD(x);
+ *zds = BIGLO(num);
return bignorm(z);
}
-VALUE
-rb_big_xor(VALUE x, VALUE y)
+static VALUE
+rb_big_rshift(x, y)
+ VALUE x, y;
{
+ USHORT *xds, *zds;
+ int shift = NUM2INT(y);
+ int s1 = shift/BITSPERDIG;
+ int s2 = shift%BITSPERDIG;
VALUE z;
- BDIGIT *ds1, *ds2, *zds;
- long i, xn, yn, n1, n2;
- BDIGIT hibitsx, hibitsy;
- BDIGIT hibits1, hibits2;
- VALUE tmpv;
- BDIGIT tmph;
- long tmpn;
-
- if (!RB_INTEGER_TYPE_P(y)) {
- return rb_num_coerce_bit(x, y, '^');
- }
+ unsigned long num = 0;
+ long i = RBIGNUM(x)->len;
+ long j;
- hibitsx = abs2twocomp(&x, &xn);
- if (FIXNUM_P(y)) {
- return bigxor_int(x, xn, hibitsx, FIX2LONG(y));
- }
- hibitsy = abs2twocomp(&y, &yn);
- if (xn > yn) {
- tmpv = x; x = y; y = tmpv;
- tmpn = xn; xn = yn; yn = tmpn;
- tmph = hibitsx; hibitsx = hibitsy; hibitsy = tmph;
+ if (shift < 0) return rb_big_lshift(x, INT2FIX(-shift));
+ if (s1 > RBIGNUM(x)->len) {
+ if (RBIGNUM(x)->sign)
+ return INT2FIX(0);
+ else
+ return INT2FIX(-1);
}
- n1 = xn;
- n2 = yn;
- ds1 = BDIGITS(x);
- ds2 = BDIGITS(y);
- hibits1 = hibitsx;
- hibits2 = hibitsy;
-
- z = bignew(n2, 0);
+ xds = BDIGITS(x);
+ i = RBIGNUM(x)->len; j = i - s1;
+ z = bignew(j, RBIGNUM(x)->sign);
zds = BDIGITS(z);
-
- for (i=0; i<n1; i++) {
- zds[i] = ds1[i] ^ ds2[i];
- }
- for (; i<n2; i++) {
- zds[i] = hibitsx ^ ds2[i];
+ while (i--, j--) {
+ num = (num | xds[i]) >> s2;
+ zds[j] = BIGLO(num);
+ num = BIGUP(xds[i]);
}
- twocomp2abs_bang(z, (hibits1 ^ hibits2) != 0);
- RB_GC_GUARD(x);
- RB_GC_GUARD(y);
return bignorm(z);
}
-VALUE
-rb_big_lshift(VALUE x, VALUE y)
+static VALUE
+rb_big_aref(x, y)
+ VALUE x, y;
{
- int lshift_p;
- size_t shift_numdigits;
- int shift_numbits;
-
- for (;;) {
- if (FIXNUM_P(y)) {
- long l = FIX2LONG(y);
- unsigned long shift;
- if (0 <= l) {
- lshift_p = 1;
- shift = l;
- }
- else {
- lshift_p = 0;
- shift = 1+(unsigned long)(-(l+1));
- }
- shift_numbits = (int)(shift & (BITSPERDIG-1));
- shift_numdigits = shift >> bit_length(BITSPERDIG-1);
- return bignorm(big_shift3(x, lshift_p, shift_numdigits, shift_numbits));
- }
- else if (RB_BIGNUM_TYPE_P(y)) {
- return bignorm(big_shift2(x, 1, y));
- }
- y = rb_to_int(y);
- }
-}
+ USHORT *xds;
+ int shift = NUM2INT(y);
+ int s1, s2;
-VALUE
-rb_big_rshift(VALUE x, VALUE y)
-{
- int lshift_p;
- size_t shift_numdigits;
- int shift_numbits;
-
- for (;;) {
- if (FIXNUM_P(y)) {
- long l = FIX2LONG(y);
- unsigned long shift;
- if (0 <= l) {
- lshift_p = 0;
- shift = l;
- }
- else {
- lshift_p = 1;
- shift = 1+(unsigned long)(-(l+1));
- }
- shift_numbits = (int)(shift & (BITSPERDIG-1));
- shift_numdigits = shift >> bit_length(BITSPERDIG-1);
- return bignorm(big_shift3(x, lshift_p, shift_numdigits, shift_numbits));
- }
- else if (RB_BIGNUM_TYPE_P(y)) {
- return bignorm(big_shift2(x, 0, y));
- }
- y = rb_to_int(y);
- }
-}
+ if (shift < 0) return INT2FIX(0);
+ s1 = shift/BITSPERDIG;
+ s2 = shift%BITSPERDIG;
-VALUE
-rb_big_aref(VALUE x, VALUE y)
-{
- BDIGIT *xds;
- size_t shift;
- size_t i, s1, s2;
- long l;
- BDIGIT bit;
-
- if (RB_BIGNUM_TYPE_P(y)) {
- if (BIGNUM_NEGATIVE_P(y))
- return INT2FIX(0);
- bigtrunc(y);
- if (BIGSIZE(y) > sizeof(size_t)) {
- return BIGNUM_SIGN(x) ? INT2FIX(0) : INT2FIX(1);
- }
-#if SIZEOF_SIZE_T <= SIZEOF_LONG
- shift = big2ulong(y, "long");
-#else
- shift = big2ull(y, "long long");
-#endif
+ if (!RBIGNUM(x)->sign) {
+ if (s1 >= RBIGNUM(x)->len) return INT2FIX(1);
+ x = rb_big_clone(x);
+ rb_big_2comp(x);
}
else {
- l = NUM2LONG(y);
- if (l < 0) return INT2FIX(0);
- shift = (size_t)l;
+ if (s1 >= RBIGNUM(x)->len) return INT2FIX(0);
}
- s1 = shift/BITSPERDIG;
- s2 = shift%BITSPERDIG;
- bit = (BDIGIT)1 << s2;
-
- if (s1 >= BIGNUM_LEN(x))
- return BIGNUM_SIGN(x) ? INT2FIX(0) : INT2FIX(1);
-
xds = BDIGITS(x);
- if (BIGNUM_POSITIVE_P(x))
- return (xds[s1] & bit) ? INT2FIX(1) : INT2FIX(0);
- if (xds[s1] & (bit-1))
- return (xds[s1] & bit) ? INT2FIX(0) : INT2FIX(1);
- for (i = 0; i < s1; i++)
- if (xds[i])
- return (xds[s1] & bit) ? INT2FIX(0) : INT2FIX(1);
- return (xds[s1] & bit) ? INT2FIX(1) : INT2FIX(0);
+ if (xds[s1] & (1<<s2))
+ return INT2FIX(1);
+ return INT2FIX(0);
}
-VALUE
-rb_big_hash(VALUE x)
+static VALUE
+rb_big_hash(x)
+ VALUE x;
{
- st_index_t hash;
+ long i, len;
+ int key;
+ USHORT *digits;
- hash = rb_memhash(BDIGITS(x), sizeof(BDIGIT)*BIGNUM_LEN(x)) ^ BIGNUM_SIGN(x);
- return ST2FIX(hash);
+ key = 0; digits = BDIGITS(x);
+ for (i=0,len=RBIGNUM(x)->len; i<RBIGNUM(x)->len; i++) {
+ key ^= *digits++;
+ }
+ return INT2FIX(key);
}
-/*
- * call-seq:
- * big.coerce(numeric) -> array
- *
- * Returns an array with both a +numeric+ and a +big+ represented as Bignum
- * objects.
- *
- * This is achieved by converting +numeric+ to a Bignum.
- *
- * A TypeError is raised if the +numeric+ is not a Fixnum or Bignum type.
- *
- * (0x3FFFFFFFFFFFFFFF+1).coerce(42) #=> [42, 4611686018427387904]
- */
-
static VALUE
-rb_int_coerce(VALUE x, VALUE y)
+rb_big_coerce(x, y)
+ VALUE x, y;
{
- if (RB_INTEGER_TYPE_P(y)) {
- return rb_assoc_new(y, x);
+ if (FIXNUM_P(y)) {
+ return rb_assoc_new(rb_int2big(FIX2LONG(y)), x);
}
else {
- x = rb_Float(x);
- y = rb_Float(y);
- return rb_assoc_new(y, x);
+ rb_raise(rb_eTypeError, "Can't coerce %s to Bignum",
+ rb_class2name(CLASS_OF(y)));
}
+ /* not reached */
+ return Qnil;
}
-VALUE
-rb_big_abs(VALUE x)
+static VALUE
+rb_big_abs(x)
+ VALUE x;
{
- if (BIGNUM_NEGATIVE_P(x)) {
+ if (!RBIGNUM(x)->sign) {
x = rb_big_clone(x);
- BIGNUM_SET_POSITIVE_SIGN(x);
+ RBIGNUM(x)->sign = 1;
}
return x;
}
-int
-rb_big_sign(VALUE x)
-{
- return BIGNUM_SIGN(x);
-}
-
-size_t
-rb_big_size(VALUE big)
-{
- return BIGSIZE(big);
-}
-
-VALUE
-rb_big_size_m(VALUE big)
-{
- return SIZET2NUM(rb_big_size(big));
-}
-
-VALUE
-rb_big_bit_length(VALUE big)
-{
- int nlz_bits;
- size_t numbytes;
-
- static const BDIGIT char_bit[1] = { CHAR_BIT };
- BDIGIT numbytes_bary[bdigit_roomof(sizeof(size_t))];
- BDIGIT nlz_bary[1];
- BDIGIT result_bary[bdigit_roomof(sizeof(size_t)+1)];
-
- numbytes = rb_absint_size(big, &nlz_bits);
-
- if (numbytes == 0)
- return LONG2FIX(0);
-
- if (BIGNUM_NEGATIVE_P(big) && rb_absint_singlebit_p(big)) {
- if (nlz_bits != CHAR_BIT-1) {
- nlz_bits++;
- }
- else {
- nlz_bits = 0;
- numbytes--;
- }
- }
-
- if (numbytes <= SIZE_MAX / CHAR_BIT) {
- return SIZET2NUM(numbytes * CHAR_BIT - nlz_bits);
- }
-
- nlz_bary[0] = nlz_bits;
-
- bary_unpack(BARY_ARGS(numbytes_bary), &numbytes, 1, sizeof(numbytes), 0,
- INTEGER_PACK_NATIVE_BYTE_ORDER);
- BARY_SHORT_MUL(result_bary, numbytes_bary, char_bit);
- BARY_SUB(result_bary, result_bary, nlz_bary);
-
- return rb_integer_unpack(result_bary, numberof(result_bary), sizeof(BDIGIT), 0,
- INTEGER_PACK_LSWORD_FIRST|INTEGER_PACK_NATIVE_BYTE_ORDER);
-}
-
-VALUE
-rb_big_odd_p(VALUE num)
-{
- return RBOOL(BIGNUM_LEN(num) != 0 && BDIGITS(num)[0] & 1);
-}
-
-VALUE
-rb_big_even_p(VALUE num)
-{
- if (BIGNUM_LEN(num) != 0 && BDIGITS(num)[0] & 1) {
- return Qfalse;
- }
- return Qtrue;
-}
-
-unsigned long rb_ulong_isqrt(unsigned long);
-#if SIZEOF_BDIGIT*2 > SIZEOF_LONG
-BDIGIT rb_bdigit_dbl_isqrt(BDIGIT_DBL);
-# ifdef ULL_TO_DOUBLE
-# define BDIGIT_DBL_TO_DOUBLE(n) ULL_TO_DOUBLE(n)
-# endif
-#else
-# define rb_bdigit_dbl_isqrt(x) (BDIGIT)rb_ulong_isqrt(x)
-#endif
-#ifndef BDIGIT_DBL_TO_DOUBLE
-# define BDIGIT_DBL_TO_DOUBLE(n) (double)(n)
-#endif
-
-static BDIGIT *
-estimate_initial_sqrt(VALUE *xp, const size_t xn, const BDIGIT *nds, size_t len)
-{
- enum {dbl_per_bdig = roomof(DBL_MANT_DIG,BITSPERDIG)};
- const int zbits = nlz(nds[len-1]);
- VALUE x = *xp = bignew_1(0, xn, 1); /* division may release the GVL */
- BDIGIT *xds = BDIGITS(x);
- BDIGIT_DBL d = bary2bdigitdbl(nds+len-dbl_per_bdig, dbl_per_bdig);
- BDIGIT lowbits = 1;
- int rshift = (int)((BITSPERDIG*2-zbits+(len&BITSPERDIG&1) - DBL_MANT_DIG + 1) & ~1);
- double f;
-
- if (rshift > 0) {
- lowbits = (BDIGIT)d & ~(~(BDIGIT)1U << rshift);
- d >>= rshift;
- }
- else if (rshift < 0) {
- d <<= -rshift;
- d |= nds[len-dbl_per_bdig-1] >> (BITSPERDIG+rshift);
- }
- f = sqrt(BDIGIT_DBL_TO_DOUBLE(d));
- d = (BDIGIT_DBL)ceil(f);
- if (BDIGIT_DBL_TO_DOUBLE(d) == f) {
- if (lowbits || (lowbits = !bary_zero_p(nds, len-dbl_per_bdig)))
- ++d;
- }
- else {
- lowbits = 1;
- }
- rshift /= 2;
- rshift += (2-(len&1))*BITSPERDIG/2;
- if (rshift >= 0) {
- if (nlz((BDIGIT)d) + rshift >= BITSPERDIG) {
- /* (d << rshift) does cause overflow.
- * example: Integer.sqrt(0xffff_ffff_ffff_ffff ** 2)
- */
- d = ~(BDIGIT_DBL)0;
- }
- else {
- d <<= rshift;
- }
- }
- BDIGITS_ZERO(xds, xn-2);
- bdigitdbl2bary(&xds[xn-2], 2, d);
-
- if (!lowbits) return NULL; /* special case, exact result */
- return xds;
-}
+/* !!!warnig!!!!
+ this is not really a random number!!
+*/
VALUE
-rb_big_isqrt(VALUE n)
-{
- BDIGIT *nds = BDIGITS(n);
- size_t len = BIGNUM_LEN(n);
- size_t xn = (len+1) / 2;
- VALUE x;
- BDIGIT *xds;
-
- if (len <= 2) {
- BDIGIT sq = rb_bdigit_dbl_isqrt(bary2bdigitdbl(nds, len));
-#if SIZEOF_BDIGIT > SIZEOF_LONG
- return ULL2NUM(sq);
-#else
- return ULONG2NUM(sq);
-#endif
- }
- else if ((xds = estimate_initial_sqrt(&x, xn, nds, len)) != 0) {
- size_t tn = xn + BIGDIVREM_EXTRA_WORDS;
- VALUE t = bignew_1(0, tn, 1);
- BDIGIT *tds = BDIGITS(t);
- tn = BIGNUM_LEN(t);
-
- /* t = n/x */
- while (bary_divmod_branch(tds, tn, NULL, 0, nds, len, xds, xn),
- bary_cmp(tds, tn, xds, xn) < 0) {
- int carry;
- BARY_TRUNC(tds, tn);
- /* x = (x+t)/2 */
- carry = bary_add(xds, xn, xds, xn, tds, tn);
- bary_small_rshift(xds, xds, xn, 1, carry);
- tn = BIGNUM_LEN(t);
- }
- }
- RBASIC_SET_CLASS_RAW(x, rb_cInteger);
- return x;
-}
-
-#ifdef USE_GMP
-static void
-bary_powm_gmp(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn, const BDIGIT *mds, size_t mn)
-{
- mpz_t z, x, y, m;
- size_t count;
- mpz_init(x);
- mpz_init(y);
- mpz_init(m);
- mpz_init(z);
- bdigits_to_mpz(x, xds, xn);
- bdigits_to_mpz(y, yds, yn);
- bdigits_to_mpz(m, mds, mn);
- mpz_powm(z, x, y, m);
- bdigits_from_mpz(z, zds, &count);
- BDIGITS_ZERO(zds+count, zn-count);
- mpz_clear(x);
- mpz_clear(y);
- mpz_clear(m);
- mpz_clear(z);
-}
-#endif
-
-static VALUE
-int_pow_tmp3(VALUE x, VALUE y, VALUE m, int nega_flg)
+rb_big_rand(max, rand)
+ VALUE max;
+ double rand;
{
-#ifdef USE_GMP
- VALUE z;
- size_t xn, yn, mn, zn;
-
- if (FIXNUM_P(x)) {
- x = rb_int2big(FIX2LONG(x));
- }
- if (FIXNUM_P(y)) {
- y = rb_int2big(FIX2LONG(y));
- }
- assert(RB_BIGNUM_TYPE_P(m));
- xn = BIGNUM_LEN(x);
- yn = BIGNUM_LEN(y);
- mn = BIGNUM_LEN(m);
- zn = mn;
- z = bignew(zn, 1);
- bary_powm_gmp(BDIGITS(z), zn, BDIGITS(x), xn, BDIGITS(y), yn, BDIGITS(m), mn);
- if (nega_flg & BIGNUM_POSITIVE_P(z)) {
- z = rb_big_minus(z, m);
- }
- RB_GC_GUARD(x);
- RB_GC_GUARD(y);
- RB_GC_GUARD(m);
- return rb_big_norm(z);
-#else
- VALUE tmp = LONG2FIX(1L);
- long yy;
+ VALUE v;
+ long len;
- for (/*NOP*/; ! FIXNUM_P(y); y = rb_big_rshift(y, LONG2FIX(1L))) {
- if (RTEST(rb_int_odd_p(y))) {
- tmp = rb_int_mul(tmp, x);
- tmp = rb_int_modulo(tmp, m);
- }
- x = rb_int_mul(x, x);
- x = rb_int_modulo(x, m);
- }
- for (yy = FIX2LONG(y); yy; yy >>= 1L) {
- if (yy & 1L) {
- tmp = rb_int_mul(tmp, x);
- tmp = rb_int_modulo(tmp, m);
- }
- x = rb_int_mul(x, x);
- x = rb_int_modulo(x, m);
+ len = RBIGNUM(v)->len;
+ v = bignew(len,1);
+ while (len--) {
+ BDIGITS(v)[len] = ((USHORT)~0) * rand;
}
- if (nega_flg && rb_int_positive_p(tmp)) {
- tmp = rb_int_minus(tmp, m);
- }
- return tmp;
-#endif
+ return rb_big_mod((VALUE)v, max);
}
-/*
- * Integer#pow
- */
-
static VALUE
-int_pow_tmp1(VALUE x, VALUE y, long mm, int nega_flg)
+rb_big_size(big)
+ VALUE big;
{
- long xx = FIX2LONG(x);
- long tmp = 1L;
- long yy;
-
- for (/*NOP*/; ! FIXNUM_P(y); y = rb_big_rshift(y, LONG2FIX(1L))) {
- if (RTEST(rb_int_odd_p(y))) {
- tmp = (tmp * xx) % mm;
- }
- xx = (xx * xx) % mm;
- }
- for (yy = FIX2LONG(y); yy; yy >>= 1L) {
- if (yy & 1L) {
- tmp = (tmp * xx) % mm;
- }
- xx = (xx * xx) % mm;
- }
-
- if (nega_flg && tmp) {
- tmp -= mm;
- }
- return LONG2FIX(tmp);
+ return INT2FIX(RBIGNUM(big)->len*sizeof(USHORT));
}
static VALUE
-int_pow_tmp2(VALUE x, VALUE y, long mm, int nega_flg)
-{
- long tmp = 1L;
- long yy;
-#ifdef DLONG
- const DLONG m = mm;
- long tmp2 = tmp;
- long xx = FIX2LONG(x);
-# define MUL_MODULO(a, b, c) (long)(((DLONG)(a) * (DLONG)(b)) % (c))
-#else
- const VALUE m = LONG2FIX(mm);
- VALUE tmp2 = LONG2FIX(tmp);
- VALUE xx = x;
-# define MUL_MODULO(a, b, c) rb_int_modulo(rb_fix_mul_fix((a), (b)), (c))
-#endif
-
- for (/*NOP*/; ! FIXNUM_P(y); y = rb_big_rshift(y, LONG2FIX(1L))) {
- if (RTEST(rb_int_odd_p(y))) {
- tmp2 = MUL_MODULO(tmp2, xx, m);
- }
- xx = MUL_MODULO(xx, xx, m);
- }
- for (yy = FIX2LONG(y); yy; yy >>= 1L) {
- if (yy & 1L) {
- tmp2 = MUL_MODULO(tmp2, xx, m);
- }
- xx = MUL_MODULO(xx, xx, m);
- }
-
-#ifdef DLONG
- tmp = tmp2;
-#else
- tmp = FIX2LONG(tmp2);
-#endif
- if (nega_flg && tmp) {
- tmp -= mm;
- }
- return LONG2FIX(tmp);
-}
-
-/*
- * Document-method: Integer#pow
- * call-seq:
- * integer.pow(numeric) -> numeric
- * integer.pow(integer, integer) -> integer
- *
- * Returns (modular) exponentiation as:
- *
- * a.pow(b) #=> same as a**b
- * a.pow(b, m) #=> same as (a**b) % m, but avoids huge temporary values
- */
-VALUE
-rb_int_powm(int const argc, VALUE * const argv, VALUE const num)
+rb_big_zero_p(big)
+ VALUE big;
{
- rb_check_arity(argc, 1, 2);
-
- if (argc == 1) {
- return rb_int_pow(num, argv[0]);
- }
- else {
- VALUE const a = num;
- VALUE const b = argv[0];
- VALUE m = argv[1];
- int nega_flg = 0;
- if ( ! RB_INTEGER_TYPE_P(b)) {
- rb_raise(rb_eTypeError, "Integer#pow() 2nd argument not allowed unless a 1st argument is integer");
- }
- if (rb_int_negative_p(b)) {
- rb_raise(rb_eRangeError, "Integer#pow() 1st argument cannot be negative when 2nd argument specified");
- }
- if (!RB_INTEGER_TYPE_P(m)) {
- rb_raise(rb_eTypeError, "Integer#pow() 2nd argument not allowed unless all arguments are integers");
- }
-
- if (rb_int_negative_p(m)) {
- m = rb_int_uminus(m);
- nega_flg = 1;
- }
-
- if (FIXNUM_P(m)) {
- long const half_val = (long)HALF_LONG_MSB;
- long const mm = FIX2LONG(m);
- if (!mm) rb_num_zerodiv();
- if (mm == 1) return INT2FIX(0);
- if (mm <= half_val) {
- return int_pow_tmp1(rb_int_modulo(a, m), b, mm, nega_flg);
- }
- else {
- return int_pow_tmp2(rb_int_modulo(a, m), b, mm, nega_flg);
- }
- }
- else {
- if (rb_bigzero_p(m)) rb_num_zerodiv();
- if (bignorm(m) == INT2FIX(1)) return INT2FIX(0);
- return int_pow_tmp3(rb_int_modulo(a, m), b, m, nega_flg);
- }
- }
- UNREACHABLE_RETURN(Qnil);
+ return Qfalse;
}
-/*
- * Bignum objects hold integers outside the range of
- * Fixnum. Bignum objects are created
- * automatically when integer calculations would otherwise overflow a
- * Fixnum. When a calculation involving
- * Bignum objects returns a result that will fit in a
- * Fixnum, the result is automatically converted.
- *
- * For the purposes of the bitwise operations and <code>[]</code>, a
- * Bignum is treated as if it were an infinite-length
- * bitstring with 2's complement representation.
- *
- * While Fixnum values are immediate, Bignum
- * objects are not---assignment and parameter passing work with
- * references to objects, not the objects themselves.
- *
- */
-
void
-Init_Bignum(void)
-{
- /* An obsolete class, use Integer */
- rb_define_const(rb_cObject, "Bignum", rb_cInteger);
- rb_deprecate_constant(rb_cObject, "Bignum");
-
- rb_define_method(rb_cInteger, "coerce", rb_int_coerce, 1);
-
-#ifdef USE_GMP
- /* The version of loaded GMP. */
- rb_define_const(rb_cInteger, "GMP_VERSION", rb_sprintf("GMP %s", gmp_version));
-#endif
-
- power_cache_init();
+Init_Bignum()
+{
+ rb_cBignum = rb_define_class("Bignum", rb_cInteger);
+
+ rb_undef_method(CLASS_OF(rb_cBignum), "new");
+
+ rb_define_method(rb_cBignum, "to_s", rb_big_to_s, 0);
+ rb_define_method(rb_cBignum, "coerce", rb_big_coerce, 1);
+ rb_define_method(rb_cBignum, "-@", rb_big_uminus, 0);
+ rb_define_method(rb_cBignum, "+", rb_big_plus, 1);
+ rb_define_method(rb_cBignum, "-", rb_big_minus, 1);
+ rb_define_method(rb_cBignum, "*", rb_big_mul, 1);
+ rb_define_method(rb_cBignum, "/", rb_big_div, 1);
+ rb_define_method(rb_cBignum, "%", rb_big_mod, 1);
+ rb_define_method(rb_cBignum, "divmod", rb_big_divmod, 1);
+ rb_define_method(rb_cBignum, "remainder", rb_big_remainder, 1);
+ rb_define_method(rb_cBignum, "**", rb_big_pow, 1);
+ rb_define_method(rb_cBignum, "&", rb_big_and, 1);
+ rb_define_method(rb_cBignum, "|", rb_big_or, 1);
+ rb_define_method(rb_cBignum, "^", rb_big_xor, 1);
+ rb_define_method(rb_cBignum, "~", rb_big_neg, 0);
+ rb_define_method(rb_cBignum, "<<", rb_big_lshift, 1);
+ rb_define_method(rb_cBignum, ">>", rb_big_rshift, 1);
+ rb_define_method(rb_cBignum, "[]", rb_big_aref, 1);
+
+ rb_define_method(rb_cBignum, "<=>", rb_big_cmp, 1);
+ rb_define_method(rb_cBignum, "==", rb_big_eq, 1);
+ rb_define_method(rb_cBignum, "===", rb_big_eq, 1);
+ rb_define_method(rb_cBignum, "eql?", rb_big_eq, 1);
+ rb_define_method(rb_cBignum, "hash", rb_big_hash, 0);
+ rb_define_method(rb_cBignum, "to_i", rb_big_to_i, 0);
+ rb_define_method(rb_cBignum, "to_f", rb_big_to_f, 0);
+ rb_define_method(rb_cBignum, "abs", rb_big_abs, 0);
+ rb_define_method(rb_cBignum, "size", rb_big_size, 0);
+ rb_define_method(rb_cBignum, "zero?", rb_big_zero_p, 0);
}
diff --git a/bin/gem b/bin/gem
deleted file mode 100755
index a4ec754abb..0000000000
--- a/bin/gem
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/usr/bin/env ruby
-#--
-# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
-# All rights reserved.
-# See LICENSE.txt for permissions.
-#++
-
-require 'rubygems'
-require 'rubygems/gem_runner'
-require 'rubygems/exceptions'
-
-required_version = Gem::Requirement.new ">= 1.8.7"
-
-unless required_version.satisfied_by? Gem.ruby_version then
- abort "Expected Ruby Version #{required_version}, is #{Gem.ruby_version}"
-end
-
-args = ARGV.clone
-
-begin
- Gem::GemRunner.new.run args
-rescue Gem::SystemExitException => e
- exit e.exit_code
-end
-
diff --git a/bootstraptest/pending.rb b/bootstraptest/pending.rb
deleted file mode 100644
index 2c4b85a419..0000000000
--- a/bootstraptest/pending.rb
+++ /dev/null
@@ -1,21 +0,0 @@
-assert_equal 'ok', %q{
- def m
- lambda{
- proc{
- return :ng1
- }
- }.call.call
- :ng2
- end
-
- begin
- m()
- rescue LocalJumpError
- :ok
- end
-}
-
-# This randomly fails on mswin.
-assert_equal %q{[]}, %q{
- Thread.new{sleep}.backtrace
-}
diff --git a/bootstraptest/runner.rb b/bootstraptest/runner.rb
deleted file mode 100755
index 2cd91ffd07..0000000000
--- a/bootstraptest/runner.rb
+++ /dev/null
@@ -1,550 +0,0 @@
-"exec" "${RUBY-ruby}" "-x" "$0" "$@" || true # -*- Ruby -*-
-#!./ruby
-# $Id$
-
-# NOTE:
-# Never use optparse in this file.
-# Never use test/unit in this file.
-# Never use Ruby extensions in this file.
-# Maintain Ruby 1.8 compatibility for now
-
-begin
- require 'fileutils'
- require 'tmpdir'
-rescue LoadError
- $:.unshift File.join(File.dirname(__FILE__), '../lib')
- retry
-end
-
-if !Dir.respond_to?(:mktmpdir)
- # copied from lib/tmpdir.rb
- def Dir.mktmpdir(prefix_suffix=nil, tmpdir=nil)
- case prefix_suffix
- when nil
- prefix = "d"
- suffix = ""
- when String
- prefix = prefix_suffix
- suffix = ""
- when Array
- prefix = prefix_suffix[0]
- suffix = prefix_suffix[1]
- else
- raise ArgumentError, "unexpected prefix_suffix: #{prefix_suffix.inspect}"
- end
- tmpdir ||= Dir.tmpdir
- t = Time.now.strftime("%Y%m%d")
- n = nil
- begin
- path = "#{tmpdir}/#{prefix}#{t}-#{$$}-#{rand(0x100000000).to_s(36)}"
- path << "-#{n}" if n
- path << suffix
- Dir.mkdir(path, 0700)
- rescue Errno::EEXIST
- n ||= 0
- n += 1
- retry
- end
-
- if block_given?
- begin
- yield path
- ensure
- FileUtils.remove_entry_secure path
- end
- else
- path
- end
- end
-end
-
-def main
- @ruby = File.expand_path('miniruby')
- @verbose = false
- $VERBOSE = false
- $stress = false
- @color = nil
- @tty = nil
- @quiet = false
- dir = nil
- quiet = false
- tests = nil
- ARGV.delete_if {|arg|
- case arg
- when /\A--ruby=(.*)/
- @ruby = $1
- @ruby.gsub!(/^([^ ]*)/){File.expand_path($1)}
- @ruby.gsub!(/(\s+-I\s*)((?!(?:\.\/)*-(?:\s|\z))\S+)/){$1+File.expand_path($2)}
- @ruby.gsub!(/(\s+-r\s*)(\.\.?\/\S+)/){$1+File.expand_path($2)}
- true
- when /\A--sets=(.*)/
- tests = Dir.glob("#{File.dirname($0)}/test_{#{$1}}*.rb").sort
- puts tests.map {|path| File.basename(path) }.inspect
- true
- when /\A--dir=(.*)/
- dir = $1
- true
- when /\A(--stress|-s)/
- $stress = true
- when /\A--color(?:=(?:always|(auto)|(never)|(.*)))?\z/
- warn "unknown --color argument: #$3" if $3
- @color = $1 ? nil : !$2
- true
- when /\A--tty(=(?:yes|(no)|(.*)))?\z/
- warn "unknown --tty argument: #$3" if $3
- @tty = !$1 || !$2
- true
- when /\A(-q|--q(uiet))\z/
- quiet = true
- @quiet = true
- true
- when /\A(-v|--v(erbose))\z/
- @verbose = true
- when /\A(-h|--h(elp)?)\z/
- puts(<<-End)
-Usage: #{File.basename($0, '.*')} --ruby=PATH [--sets=NAME,NAME,...]
- --sets=NAME,NAME,... Name of test sets.
- --dir=DIRECTORY Working directory.
- default: /tmp/bootstraptestXXXXX.tmpwd
- --color[=WHEN] Colorize the output. WHEN defaults to 'always'
- or can be 'never' or 'auto'.
- -s, --stress stress test.
- -v, --verbose Output test name before exec.
- -q, --quiet Don\'t print header message.
- -h, --help Print this message and quit.
-End
- exit true
- when /\A-j/
- true
- else
- false
- end
- }
- if tests and not ARGV.empty?
- $stderr.puts "--tests and arguments are exclusive"
- exit false
- end
- tests ||= ARGV
- tests = Dir.glob("#{File.dirname($0)}/test_*.rb").sort if tests.empty?
- pathes = tests.map {|path| File.expand_path(path) }
-
- @progress = %w[- \\ | /]
- @progress_bs = "\b" * @progress[0].size
- @tty = $stderr.tty? if @tty.nil?
- case @color
- when nil
- @color = @tty && /dumb/ !~ ENV["TERM"]
- end
- @tty &&= !@verbose
- if @color
- # dircolors-like style
- colors = (colors = ENV['TEST_COLORS']) ? Hash[colors.scan(/(\w+)=([^:\n]*)/)] : {}
- begin
- File.read(File.join(__dir__, "../tool/colors")).scan(/(\w+)=([^:\n]*)/) do |n, c|
- colors[n] ||= c
- end
- rescue
- end
- @passed = "\e[;#{colors["pass"] || "32"}m"
- @failed = "\e[;#{colors["fail"] || "31"}m"
- @reset = "\e[m"
- else
- @passed = @failed = @reset = ""
- end
- unless quiet
- puts Time.now
- if defined?(RUBY_DESCRIPTION)
- puts "Driver is #{RUBY_DESCRIPTION}"
- elsif defined?(RUBY_PATCHLEVEL)
- puts "Driver is ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}#{RUBY_PLATFORM}) [#{RUBY_PLATFORM}]"
- else
- puts "Driver is ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
- end
- puts "Target is #{`#{@ruby} -v`.chomp}"
- puts
- $stdout.flush
- end
-
- in_temporary_working_directory(dir) {
- exec_test pathes
- }
-end
-
-def erase(e = true)
- if e and @columns > 0 and @tty and !@verbose
- "\e[1K\r"
- else
- ""
- end
-end
-
-def exec_test(pathes)
- @count = 0
- @error = 0
- @errbuf = []
- @location = nil
- @columns = 0
- @width = pathes.map {|path| File.basename(path).size}.max + 2
- pathes.each do |path|
- @basename = File.basename(path)
- $stderr.printf("%s%-*s ", erase(@quiet), @width, @basename)
- $stderr.flush
- @columns = @width + 1
- $stderr.puts if @verbose
- count = @count
- error = @error
- load File.expand_path(path)
- if @tty
- if @error == error
- msg = "PASS #{@count-count}"
- @columns += msg.size - 1
- $stderr.print "#{@progress_bs}#{@passed}#{msg}#{@reset}"
- else
- msg = "FAIL #{@error-error}/#{@count-count}"
- $stderr.print "#{@progress_bs}#{@failed}#{msg}#{@reset}"
- @columns = 0
- end
- end
- $stderr.puts unless @quiet and @tty and @error == error
- end
- $stderr.print(erase) if @quiet
- @errbuf.each do |msg|
- $stderr.puts msg
- end
- if @error == 0
- if @count == 0
- $stderr.puts "No tests, no problem"
- else
- $stderr.puts "#{@passed}PASS#{@reset} all #{@count} tests"
- end
- exit true
- else
- $stderr.puts "#{@failed}FAIL#{@reset} #{@error}/#{@count} tests failed"
- exit false
- end
-end
-
-def show_progress(message = '')
- if @verbose
- $stderr.print "\##{@count} #{@location} "
- elsif @tty
- $stderr.print "#{@progress_bs}#{@progress[@count % @progress.size]}"
- end
- t = Time.now if @verbose
- faildesc, errout = with_stderr {yield}
- t = Time.now - t if @verbose
- if !faildesc
- if @tty
- $stderr.print "#{@progress_bs}#{@progress[@count % @progress.size]}"
- elsif @verbose
- $stderr.printf(". %.3f\n", t)
- else
- $stderr.print '.'
- end
- else
- $stderr.print "#{@failed}F"
- $stderr.printf(" %.3f", t) if @verbose
- $stderr.print @reset
- $stderr.puts if @verbose
- error faildesc, message
- unless errout.empty?
- $stderr.print "#{@failed}stderr output is not empty#{@reset}\n", adjust_indent(errout)
- end
- if @tty and !@verbose
- $stderr.printf("%-*s%s", @width, @basename, @progress[@count % @progress.size])
- end
- end
-rescue Interrupt
- $stderr.puts "\##{@count} #{@location}"
- raise
-rescue Exception => err
- $stderr.print 'E'
- $stderr.puts if @verbose
- error err.message, message
-ensure
- begin
- check_coredump
- rescue CoreDumpError => err
- $stderr.print 'E'
- $stderr.puts if @verbose
- error err.message, message
- end
-end
-
-def show_limit(testsrc, opt = '', **argh)
- result = get_result_string(testsrc, opt, **argh)
- if @tty and @verbose
- $stderr.puts ".{#@reset}\n#{erase}#{result}"
- else
- @errbuf.push result
- end
-end
-
-def assert_check(testsrc, message = '', opt = '', **argh)
- show_progress(message) {
- result = get_result_string(testsrc, opt, **argh)
- yield(result)
- }
-end
-
-def assert_equal(expected, testsrc, message = '', opt = '', **argh)
- newtest
- assert_check(testsrc, message, opt, **argh) {|result|
- if expected == result
- nil
- else
- desc = "#{result.inspect} (expected #{expected.inspect})"
- pretty(testsrc, desc, result)
- end
- }
-end
-
-def assert_match(expected_pattern, testsrc, message = '')
- newtest
- assert_check(testsrc, message) {|result|
- if expected_pattern =~ result
- nil
- else
- desc = "#{expected_pattern.inspect} expected to be =~\n#{result.inspect}"
- pretty(testsrc, desc, result)
- end
- }
-end
-
-def assert_not_match(unexpected_pattern, testsrc, message = '')
- newtest
- assert_check(testsrc, message) {|result|
- if unexpected_pattern !~ result
- nil
- else
- desc = "#{unexpected_pattern.inspect} expected to be !~\n#{result.inspect}"
- pretty(testsrc, desc, result)
- end
- }
-end
-
-def assert_valid_syntax(testsrc, message = '')
- newtest
- assert_check(testsrc, message, '-c') {|result|
- result if /Syntax OK/ !~ result
- }
-end
-
-def assert_normal_exit(testsrc, *rest, timeout: nil, **opt)
- newtest
- message, ignore_signals = rest
- message ||= ''
- show_progress(message) {
- faildesc = nil
- filename = make_srcfile(testsrc)
- old_stderr = $stderr.dup
- timeout_signaled = false
- begin
- $stderr.reopen("assert_normal_exit.log", "w")
- io = IO.popen("#{@ruby} -W0 #{filename}")
- pid = io.pid
- th = Thread.new {
- io.read
- io.close
- $?
- }
- if !th.join(timeout)
- Process.kill :KILL, pid
- timeout_signaled = true
- end
- status = th.value
- ensure
- $stderr.reopen(old_stderr)
- old_stderr.close
- end
- if status && status.signaled?
- signo = status.termsig
- signame = Signal.list.invert[signo]
- unless ignore_signals and ignore_signals.include?(signame)
- sigdesc = "signal #{signo}"
- if signame
- sigdesc = "SIG#{signame} (#{sigdesc})"
- end
- if timeout_signaled
- sigdesc << " (timeout)"
- end
- faildesc = pretty(testsrc, "killed by #{sigdesc}", nil)
- stderr_log = File.read("assert_normal_exit.log")
- if !stderr_log.empty?
- faildesc << "\n" if /\n\z/ !~ faildesc
- stderr_log << "\n" if /\n\z/ !~ stderr_log
- stderr_log.gsub!(/^.*\n/) { '| ' + $& }
- faildesc << stderr_log
- end
- end
- end
- faildesc
- }
-end
-
-def assert_finish(timeout_seconds, testsrc, message = '')
- if defined?(RubyVM::MJIT) && RubyVM::MJIT.enabled? # for --jit-wait
- timeout_seconds *= 3
- end
- newtest
- show_progress(message) {
- faildesc = nil
- filename = make_srcfile(testsrc)
- io = IO.popen("#{@ruby} -W0 #{filename}")
- pid = io.pid
- waited = false
- tlimit = Time.now + timeout_seconds
- diff = timeout_seconds
- while diff > 0
- if Process.waitpid pid, Process::WNOHANG
- waited = true
- break
- end
- if io.respond_to?(:read_nonblock)
- if IO.select([io], nil, nil, diff)
- begin
- io.read_nonblock(1024)
- rescue Errno::EAGAIN, IO::WaitReadable, EOFError
- break
- end while true
- end
- else
- sleep 0.1
- end
- diff = tlimit - Time.now
- end
- if !waited
- Process.kill(:KILL, pid)
- Process.waitpid pid
- faildesc = pretty(testsrc, "not finished in #{timeout_seconds} seconds", nil)
- end
- io.close
- faildesc
- }
-end
-
-def flunk(message = '')
- newtest
- show_progress('') { message }
-end
-
-def pretty(src, desc, result)
- src = src.sub(/\A\s*\n/, '')
- (/\n/ =~ src ? "\n#{adjust_indent(src)}" : src) + " #=> #{desc}"
-end
-
-INDENT = 27
-
-def adjust_indent(src)
- untabify(src).gsub(/^ {#{INDENT}}/o, '').gsub(/^/, ' ').sub(/\s*\z/, "\n")
-end
-
-def untabify(str)
- str.gsub(/^\t+/) {' ' * (8 * $&.size) }
-end
-
-def make_srcfile(src, frozen_string_literal: nil)
- filename = 'bootstraptest.tmp.rb'
- File.open(filename, 'w') {|f|
- f.puts "#frozen_string_literal:true" if frozen_string_literal
- f.puts "GC.stress = true" if $stress
- f.puts "print(begin; #{src}; end)"
- }
- filename
-end
-
-def get_result_string(src, opt = '', **argh)
- if @ruby
- filename = make_srcfile(src, **argh)
- begin
- `#{@ruby} -W0 #{opt} #{filename}`
- ensure
- raise Interrupt if $? and $?.signaled? && $?.termsig == Signal.list["INT"]
- end
- else
- eval(src).to_s
- end
-end
-
-def with_stderr
- out = err = nil
- begin
- r, w = IO.pipe
- stderr = $stderr.dup
- $stderr.reopen(w)
- w.close
- reader = Thread.start {r.read}
- begin
- out = yield
- ensure
- $stderr.reopen(stderr)
- err = reader.value
- end
- ensure
- w.close rescue nil
- r.close rescue nil
- end
- return out, err
-end
-
-def newtest
- @location = File.basename(caller(2).first)
- @count += 1
- cleanup_coredump
-end
-
-def error(msg, additional_message)
- msg = "#{@failed}\##{@count} #{@location}#{@reset}: #{msg} #{additional_message}"
- if @tty
- $stderr.puts "#{erase}#{msg}"
- else
- @errbuf.push msg
- end
- @error += 1
-end
-
-def in_temporary_working_directory(dir)
- if dir
- Dir.mkdir dir
- Dir.chdir(dir) {
- yield
- }
- else
- Dir.mktmpdir(["bootstraptest", ".tmpwd"]) {|d|
- Dir.chdir(d) {
- yield
- }
- }
- end
-end
-
-def cleanup_coredump
- if File.file?('core')
- require 'time'
- Dir.glob('/tmp/bootstraptest-core.*').each do |f|
- if Time.now - File.mtime(f) > 7 * 24 * 60 * 60 # 7 days
- warn "Deleting an old core file: #{f}"
- FileUtils.rm(f)
- end
- end
- core_path = "/tmp/bootstraptest-core.#{Time.now.utc.iso8601}"
- warn "A core file is found. Saving it at: #{core_path.dump}"
- FileUtils.mv('core', core_path)
- cmd = ['gdb', @ruby, '-c', core_path, '-ex', 'bt', '-batch']
- p cmd # debugging why it's not working
- system(*cmd)
- end
- FileUtils.rm_f Dir.glob('core.*')
- FileUtils.rm_f @ruby+'.stackdump' if @ruby
-end
-
-class CoreDumpError < StandardError; end
-
-def check_coredump
- if File.file?('core') or not Dir.glob('core.*').empty? or
- (@ruby and File.exist?(@ruby+'.stackdump'))
- raise CoreDumpError, "core dumped"
- end
-end
-
-main
diff --git a/bootstraptest/test_attr.rb b/bootstraptest/test_attr.rb
deleted file mode 100644
index 721a847145..0000000000
--- a/bootstraptest/test_attr.rb
+++ /dev/null
@@ -1,36 +0,0 @@
-assert_equal 'ok', %q{
- module M
- class A
- class << self
- attr_accessor :at
- def workflow_rule
- yield self
- end
-
- def eval_str(str)
- eval(str)
- end
- end
- end
- end
- begin
- M::A.eval_str(<<-END)
- workflow_rule do |r|
- r.at 1
- end
- END
- rescue ArgumentError => e
- print "ok"
- end
-}, '[ruby-core:14641]'
-
-assert_equal %{ok}, %{
- class A
- attr :m
- end
- begin
- A.new.m(3)
- rescue ArgumentError => e
- print "ok"
- end
-}, '[ruby-core:15120]'
diff --git a/bootstraptest/test_autoload.rb b/bootstraptest/test_autoload.rb
deleted file mode 100644
index a9f8e6dacd..0000000000
--- a/bootstraptest/test_autoload.rb
+++ /dev/null
@@ -1,70 +0,0 @@
-assert_equal 'ok', %q{
- File.unlink('zzz.rb') if File.file?('zzz.rb')
- instance_eval do
- autoload :ZZZ, './zzz.rb'
- begin
- ZZZ
- rescue LoadError
- :ok
- end
- end
-}, '[ruby-dev:43816]'
-
-assert_equal 'ok', %q{
- open('zzz.rb', 'w') {|f| f.puts '' }
- instance_eval do
- autoload :ZZZ, './zzz.rb'
- begin
- ZZZ
- rescue NameError
- :ok
- end
- end
-}, '[ruby-dev:43816]'
-
-assert_equal 'ok', %q{
- open('zzz.rb', 'w') {|f| f.puts 'class ZZZ; def self.ok;:ok;end;end'}
- instance_eval do
- autoload :ZZZ, './zzz.rb'
- ZZZ.ok
- end
-}, '[ruby-dev:43816]'
-
-assert_equal 'ok', %q{
- open("zzz.rb", "w") {|f| f.puts "class ZZZ; def self.ok;:ok;end;end"}
- autoload :ZZZ, "./zzz.rb"
- ZZZ.ok
-}
-
-assert_equal 'ok', %q{
- open("zzz.rb", "w") {|f| f.puts "class ZZZ; def self.ok;:ok;end;end"}
- autoload :ZZZ, "./zzz.rb"
- require "./zzz.rb"
- ZZZ.ok
-}
-
-assert_equal 'okok', %q{
- open("zzz.rb", "w") {|f| f.puts "class ZZZ; def self.ok;:ok;end;end"}
- autoload :ZZZ, "./zzz.rb"
- t1 = Thread.new {ZZZ.ok}
- t2 = Thread.new {ZZZ.ok}
- [t1.value, t2.value].join
-}
-
-assert_finish 5, %q{
- autoload :ZZZ, File.expand_path(__FILE__)
- begin
- ZZZ
- rescue NameError
- end
-}, '[ruby-core:21696]'
-
-assert_equal 'A::C', %q{
- open("zzz.rb", "w") {}
- class A
- autoload :C, "./zzz"
- class C
- end
- C
- end
-}
diff --git a/bootstraptest/test_block.rb b/bootstraptest/test_block.rb
deleted file mode 100644
index cdc5960a59..0000000000
--- a/bootstraptest/test_block.rb
+++ /dev/null
@@ -1,613 +0,0 @@
-assert_equal %q{1}, %q{
- 1.times{
- begin
- a = 1
- ensure
- foo = nil
- end
- }
-}
-assert_equal %q{2}, %q{
- [1,2,3].find{|x| x == 2}
-}
-assert_equal %q{2}, %q{
- class E
- include Enumerable
- def each(&block)
- [1, 2, 3].each(&block)
- end
- end
- E.new.find {|x| x == 2 }
-}
-assert_equal %q{6}, %q{
- sum = 0
- for x in [1, 2, 3]
- sum += x
- end
- sum
-}
-assert_equal %q{15}, %q{
- sum = 0
- for x in (1..5)
- sum += x
- end
- sum
-}
-assert_equal %q{0}, %q{
- sum = 0
- for x in []
- sum += x
- end
- sum
-}
-assert_equal %q{1}, %q{
- ans = []
- 1.times{
- for n in 1..3
- a = n
- ans << a
- end
- }
-}
-assert_equal %q{1..3}, %q{
- ans = []
- for m in 1..3
- for n in 1..3
- a = [m, n]
- ans << a
- end
- end
-}
-assert_equal %q{[1, 2, 3]}, %q{
- (1..3).to_a
-}
-assert_equal %q{[4, 8, 12]}, %q{
- (1..3).map{|e|
- e * 4
- }
-}
-assert_equal %q{[1, 2, 3]}, %q{
- class C
- include Enumerable
- def each
- [1,2,3].each{|e|
- yield e
- }
- end
- end
-
- C.new.to_a
-}
-assert_equal %q{[4, 5, 6]}, %q{
- class C
- include Enumerable
- def each
- [1,2,3].each{|e|
- yield e
- }
- end
- end
-
- C.new.map{|e|
- e + 3
- }
-}
-assert_equal %q{100}, %q{
- def m
- yield
- end
- def n
- yield
- end
-
- m{
- n{
- 100
- }
- }
-}
-assert_equal %q{20}, %q{
- def m
- yield 1
- end
-
- m{|ib|
- m{|jb|
- i = 20
- }
- }
-}
-assert_equal %q{2}, %q{
- def m
- yield 1
- end
-
- m{|ib|
- m{|jb|
- ib = 20
- kb = 2
- }
- }
-}
-assert_equal %q{3}, %q{
- def iter1
- iter2{
- yield
- }
- end
-
- def iter2
- yield
- end
-
- iter1{
- jb = 2
- iter1{
- jb = 3
- }
- jb
- }
-}
-assert_equal %q{2}, %q{
- def iter1
- iter2{
- yield
- }
- end
-
- def iter2
- yield
- end
-
- iter1{
- jb = 2
- iter1{
- jb
- }
- jb
- }
-}
-assert_equal %q{2}, %q{
- def m
- yield 1
- end
- m{|ib|
- ib*2
- }
-}
-assert_equal %q{92580}, %q{
- def m
- yield 12345, 67890
- end
- m{|ib,jb|
- ib*2+jb
- }
-}
-assert_equal %q{[10, nil]}, %q{
- def iter
- yield 10
- end
-
- a = nil
- [iter{|a|
- a
- }, a]
-}
-assert_equal %q{21}, %q{
- def iter
- yield 10
- end
-
- iter{|a|
- iter{|a|
- a + 1
- } + a
- }
-}
-assert_equal %q{[10, 20, 30, 40, nil, nil, nil, nil]}, %q{
- def iter
- yield 10, 20, 30, 40
- end
-
- a = b = c = d = nil
- iter{|a, b, c, d|
- [a, b, c, d]
- } + [a, b, c, d]
-}
-assert_equal %q{[10, 20, 30, 40, nil, nil]}, %q{
- def iter
- yield 10, 20, 30, 40
- end
-
- a = b = nil
- iter{|a, b, c, d|
- [a, b, c, d]
- } + [a, b]
-}
-assert_equal %q{[1]}, %q{
- $a = []
-
- def iter
- yield 1
- end
-
- def m
- x = iter{|x|
- $a << x
- y = 0
- }
- end
- m
- $a
-}
-assert_equal %q{[1, [2]]}, %q{
- def iter
- yield 1, 2
- end
-
- iter{|a, *b|
- [a, b]
- }
-}
-assert_equal %q{[[1, 2]]}, %q{
- def iter
- yield 1, 2
- end
-
- iter{|*a|
- [a]
- }
-}
-assert_equal %q{[1, 2, []]}, %q{
- def iter
- yield 1, 2
- end
-
- iter{|a, b, *c|
- [a, b, c]
- }
-}
-assert_equal %q{[1, 2, nil, []]}, %q{
- def iter
- yield 1, 2
- end
-
- iter{|a, b, c, *d|
- [a, b, c, d]
- }
-}
-assert_equal %q{1}, %q{
- def m
- yield
- end
- m{
- 1
- }
-}
-assert_equal %q{15129}, %q{
- def m
- yield 123
- end
- m{|ib|
- m{|jb|
- ib*jb
- }
- }
-}
-assert_equal %q{2}, %q{
- def m a
- yield a
- end
- m(1){|ib|
- m(2){|jb|
- ib*jb
- }
- }
-}
-assert_equal %q{9}, %q{
- sum = 0
- 3.times{|ib|
- 2.times{|jb|
- sum += ib + jb
- }}
- sum
-}
-assert_equal %q{10}, %q{
- 3.times{|bl|
- break 10
- }
-}
-assert_equal %q{[1, 2]}, %q{
- def iter
- yield 1,2,3
- end
-
- iter{|i, j|
- [i, j]
- }
-}
-assert_equal %q{[1, nil]}, %q{
- def iter
- yield 1
- end
-
- iter{|i, j|
- [i, j]
- }
-}
-
-assert_equal '0', %q{
-def m()
-end
-m {|(v0,*,(*)),|}
-m {|(*v0,(*)),|}
-m {|(v0,*v1,(*)),|}
-m {|((v0,*v1,v2)),|}
-m {|(v0,*v1,v2),|}
-m {|(v0,*v1,(v2)),|}
-m {|((*),*v0,v1),|}
-m {|((v0),*v1,v2),|}
-m {|(v0,v1,*v2,v3),|}
-m {|v0,(v1,*v2,v3),|}
-m {|(v0,*v1,v2),v3,|}
-m {|(v0,*v1,v2)|}
-m {|(v0,*v1,v2),&v3|}
-m {|(v0,*v1,v2),*|}
-m {|(v0,*v1,v2),*,&v3|}
-m {|*,(v0,*v1,v2)|}
-m {|*,(v0,*v1,v2),&v3|}
-m {|v0,*,(v1,*v2,v3)|}
-m {|v0,*,(v1,*v2,v3),&v4|}
-m {|(v0,*v1,v2),*,v3|}
-m {|(v0,*v1,v2),*,v3,&v4|}
-m {|(v0, *v1, v2)|}
-m {|(*,v)|}
-0
-}, "block parameter (shouldn't SEGV: [ruby-dev:31143])"
-
-assert_equal 'nil', %q{
- def m
- yield
- end
- m{|&b| b}.inspect
-}, '[ruby-dev:31147]'
-
-assert_equal 'nil', %q{
- def m()
- yield
- end
- m {|(v,(*))|}.inspect
-}, '[ruby-dev:31160]'
-
-assert_equal 'nil', %q{
- def m()
- yield
- end
- m {|(*,a,b)|}.inspect
-}, '[ruby-dev:31153]'
-
-assert_equal 'nil', %q{
- def m()
- yield
- end
- m {|((*))|}.inspect
-}
-
-assert_equal %q{[1, 1, [1, nil], [1, nil], [1, nil], [1, nil], [1, 1], 1, [1, nil], [1, nil], [1, nil], [1, nil], [[1, 1], [1, 1]], [1, 1], [1, 1], [1, 1], [1, nil], [1, nil], [[[1, 1], [1, 1]], [[1, 1], [1, 1]]], [[1, 1], [1, 1]], [[1, 1], [1, 1]], [[1, 1], [1, 1]], [1, 1], [1, 1], [[[[1, 1], [1, 1]], [[1, 1], [1, 1]]], [[[1, 1], [1, 1]], [[1, 1], [1, 1]]]], [[[1, 1], [1, 1]], [[1, 1], [1, 1]]], [[[1, 1], [1, 1]], [[1, 1], [1, 1]]], [[[1, 1], [1, 1]], [[1, 1], [1, 1]]], [[1, 1], [1, 1]], [[1, 1], [1, 1]]]}, %q{
-def m(ary = [])
- yield(ary)
-end
-
-$ans = []
-o = 1
-5.times{
- v,(*) = o; $ans << o
- m(o){|(v,(*))| $ans << v}
- ((x, y)) = o; $ans << [x, y]
- m(o){|((x, y))| $ans << [x, y]}
- (((x, y))) = o; $ans << [x, y]
- m(o){|(((x, y)))| $ans << [x, y]}
- o = [o, o]
-}; $ans
-}
-
-assert_equal '0', %q{
- def m()
- yield [0]
- end
- m {|*,v| v}.inspect
-}, '[ruby-dev:31437]'
-assert_equal '[0]', %q{
- def m
- yield [0]
- end
- m{|v, &b| v}.inspect
-}, '[ruby-dev:31440]'
-assert_equal 'ok', %q{
- begin
- lambda{|a|}.call(1, 2)
- rescue ArgumentError
- :ok
- else
- :ng
- end
-}, '[ruby-dev:31464]'
-assert_equal 'ok', %q{
- begin
- lambda{|&b|}.call(3)
- rescue ArgumentError
- :ok
- else
- :ng
- end
-}, '[ruby-dev:31472]'
-assert_equal 'ok', %q{
- class C
- def each
- yield [1,2]
- yield 1,2
- end
- end
- vs1 = []
- C.new.each {|*v| vs1 << v }
- vs2 = []
- C.new.to_enum.each {|*v| vs2 << v }
- vs1 == vs2 ? :ok : :ng
-}, '[ruby-dev:32329]'
-
-assert_normal_exit %q{
- e = [1,2,3].each
- 10000.times {
- e = [e].each
- }
- Thread.new { GC.start }.join
-}, '[ruby-dev:32604]'
-
-
-assert_equal '[nil, []]', %q{
- def m() yield nil,[] end
- l = lambda {|*v| v}
- GC.stress=true
- r = m(&l)
- GC.stress=false
- r.inspect
-}, '[ruby-dev:32567]'
-
-assert_equal NilClass.to_s, %q{
- r = false; 1.times{|&b| r = b}; r.class
-}
-
-assert_equal 'ok', %q{
- class C
- define_method(:foo) do |arg, &block|
- if block then block.call else arg end
- end
- end
- C.new.foo("ng") {"ok"}
-}, '[ruby-talk:266422]'
-
-assert_equal 'ok', %q{
- class C
- define_method(:xyz) do |o, k, &block|
- block.call(o, k)
- end
- end
- C.new.xyz("o","k") {|o, k| o+k}
-}, '[ruby-core:20544]'
-
-assert_equal 'ok', %q{
- class C
- define_method(:xyz) do |*args, &block|
- block.call(*args)
- end
- end
- C.new.xyz("o","k") {|*args| args.join("")}
-}, '[ruby-core:20544]'
-
-assert_equal 'ok', %q{
- STDERR.reopen(STDOUT)
- class C
- define_method(:foo) do |&block|
- block.call if block
- end
- result = "ng"
- new.foo() {result = "ok"}
- result
- end
-}
-
-assert_equal "ok", %q{
- class Bar
- def bar; :ok; end
- end
- def foo
- yield(Bar.new) if block_given?
- end
- foo(&:bar)
-}, '[ruby-core:14279]'
-
-assert_normal_exit %q{
- class Controller
- def respond_to(&block)
- responder = Responder.new
- block.call(responder)
- responder.respond
- end
- def test_for_bug
- respond_to{|format|
- format.js{
- puts "in test"
- render{|obj|
- puts obj
- }
- }
- }
- end
- def render(&block)
- puts "in render"
- end
- end
-
- class Responder
- def method_missing(symbol, &block)
- puts "enter method_missing"
- @response = Proc.new{
- puts 'in method missing'
- block.call
- }
- puts "leave method_missing"
- end
- def respond
- @response.call
- end
- end
- t = Controller.new
- t.test_for_bug
-}, '[ruby-core:14395]'
-
-assert_equal 'true', %q{
- class C0
- def foo
- block_given?
- end
- end
-
- class C1 < C0
- def foo
- super
- end
- end
-
- C1.new.foo{}
-}
-
-assert_equal 'true', %q{
- class C0
- def foo
- block_given?
- end
- end
-
- class C1 < C0
- def foo
- super()
- end
- end
-
- C1.new.foo{}
-}
-
-assert_equal 'ok', %q{
- 1.times do
- begin
- raise
- rescue
- begin
- raise
- rescue
- break
- end
- end
- end
- 'ok'
-}
diff --git a/bootstraptest/test_class.rb b/bootstraptest/test_class.rb
deleted file mode 100644
index b7fe0a1acd..0000000000
--- a/bootstraptest/test_class.rb
+++ /dev/null
@@ -1,169 +0,0 @@
-# class
-assert_equal 'true', %q( class C; end
- Object.const_defined?(:C) )
-assert_equal 'Class', %q( class C; end
- C.class )
-assert_equal 'C', %q( class C; end
- C.name )
-assert_equal 'C', %q( class C; end
- C.new.class )
-assert_equal 'C', %q( class C; end
- C.new.class.name )
-assert_equal 'Class', %q( class C; end
- C.new.class.class )
-assert_equal 'true', %q( Object.__send__(:remove_const, :TrueClass)
- GC.start
- true.inspect)
-assert_equal 'false', %q( Object.__send__(:remove_const, :FalseClass)
- GC.start
- false.inspect)
-assert_equal 'nil', %q( Object.__send__(:remove_const, :NilClass)
- GC.start
- nil.inspect)
-
-
-# inherited class
-assert_equal 'true', %q( class A; end
- class C < A; end
- Object.const_defined?(:C) )
-assert_equal 'Class', %q( class A; end
- class C < A; end
- C.class )
-assert_equal 'C', %q( class A; end
- class C < A; end
- C.name )
-assert_equal 'C', %q( class A; end
- class C < A; end
- C.new.class )
-assert_equal 'C', %q( class A; end
- class C < A; end
- C.new.class.name )
-assert_equal 'Class', %q( class A; end
- class C < A; end
- C.new.class.class )
-
-# module
-assert_equal 'true', %q( module M; end
- Object.const_defined?(:M) )
-assert_equal 'Module', %q( module M; end
- M.class )
-assert_equal 'M', %q( module M; end
- M.name )
-assert_equal 'C', %q( module M; end
- class C; include M; end
- C.new.class )
-
-# nested class
-assert_equal 'A::B', %q( class A; end
- class A::B; end
- A::B )
-assert_equal 'A::B', %q( class A; end
- class A::B; end
- A::B.name )
-assert_equal 'A::B', %q( class A; end
- class A::B; end
- A::B.new.class )
-assert_equal 'Class', %q( class A; end
- class A::B; end
- A::B.new.class.class )
-assert_equal 'A::B::C', %q( class A; end
- class A::B; end
- class A::B::C; end
- A::B::C )
-assert_equal 'A::B::C', %q( class A; end
- class A::B; end
- class A::B::C; end
- A::B::C.name )
-assert_equal 'Class', %q( class A; end
- class A::B; end
- class A::B::C; end
- A::B::C.class )
-assert_equal 'A::B::C', %q( class A; end
- class A::B; end
- class A::B::C; end
- A::B::C.new.class )
-assert_equal 'Class', %q( class A; end
- class A::B; end
- class A::B::C; end
- A::B::C.new.class.class )
-assert_equal 'A::B2', %q( class A; end
- class A::B; end
- class A::B2 < A::B; end
- A::B2 )
-assert_equal 'Class', %q( class A; end
- class A::B; end
- class A::B2 < A::B; end
- A::B2.class )
-
-# reopen
-assert_equal 'true', %q( class C; end; c1 = ::C
- class C; end; c2 = ::C
- c1.equal?(c2) )
-assert_equal '1', %q( class C; end
- class A; end
- begin class C < A; end; rescue TypeError; 1 end )
-assert_equal '1', %q( class C; end
- begin module C; end; rescue TypeError; 1 end )
-assert_equal '1', %q( C = 1 # [yarv-dev:782]
- begin class C; end; rescue TypeError; 1 end )
-assert_equal '1', %q( C = 1 # [yarv-dev:800]
- begin module C; end; rescue TypeError; 1 end )
-
-# colon2, colon3
-assert_equal '1', %q( class A; end; A::C = 1; A::C )
-assert_equal '1', %q( A = 7; begin A::C = 7; rescue TypeError; 1 end )
-assert_equal '1', %q( begin 7::C = 7; rescue TypeError; 1 end )
-assert_equal 'C', %q( class A; class ::C; end end; C )
-assert_equal 'Class', %q( class A; class ::C; end end; C.class )
-assert_equal 'OK', %q( class A; ::C = "OK"; end; C )
-assert_equal 'String', %q( class A; ::C = "OK"; end; C.class )
-
-# class/module dup
-assert_equal 'Class', %q( class C; end; C.dup.class )
-assert_equal 'Module', %q( module M; end; M.dup.class )
-
-
-assert_equal "ok", %q{
- module Foo
- end
-
- begin
- def foo(&b)
- Foo.module_eval &b
- end
- foo{
- def bar
- end
- }
- bar()
- rescue NameError
- :ok
- end
-}, '[ruby-core:14378]'
-
-assert_equal '3', %q{
- $i = 0
- class C
- def self.const_missing *args
- $i+=1
- end
- end
-
- 3.times{
- C::FOO
- }
- $i
-}
-
-assert_match /::C\z/, %q{
- c = nil
- Module.new{|m| c = class m::C; name; end}
- c
-}, '[ruby-dev:38456]'
-
-assert_normal_exit %q{
- s = Symbol.dup
- class << s
- end
- s.allocate.to_s
-}, '[ruby-core:30843]'
diff --git a/bootstraptest/test_env.rb b/bootstraptest/test_env.rb
deleted file mode 100644
index 7d1b45b75e..0000000000
--- a/bootstraptest/test_env.rb
+++ /dev/null
@@ -1,12 +0,0 @@
-assert_equal "true", %q{
- ENV["ENVTEST"] = "\u{e9 3042 d76c}"
- env = ENV["ENVTEST"]
- env.valid_encoding?
-}
-
-# different encoding is used for PATH
-assert_equal "true", %q{
- ENV["PATH"] = "\u{e9 3042 d76c}"
- env = ENV["PATH"]
- env.valid_encoding?
-}
diff --git a/bootstraptest/test_eval.rb b/bootstraptest/test_eval.rb
deleted file mode 100644
index a9f389c673..0000000000
--- a/bootstraptest/test_eval.rb
+++ /dev/null
@@ -1,356 +0,0 @@
-assert_equal %q{ok}, %q{
- def m
- a = :ok
- $b = binding
- end
- m
- eval('a', $b)
-}
-assert_equal %q{[:ok, :ok2]}, %q{
- def m
- a = :ok
- $b = binding
- end
- m
- eval('b = :ok2', $b)
- eval('[a, b]', $b)
-}
-assert_equal %q{[nil, 1]}, %q{
- $ans = []
- def m
- $b = binding
- end
- m
- $ans << eval(%q{
- $ans << eval(%q{
- a
- }, $b)
- a = 1
- }, $b)
- $ans
-}
-assert_equal %q{C}, %q{
- Const = :top
- class C
- Const = :C
- def m
- binding
- end
- end
- eval('Const', C.new.m)
-}
-assert_equal %q{top}, %q{
- Const = :top
- a = 1
- class C
- Const = :C
- def m
- eval('Const', TOPLEVEL_BINDING)
- end
- end
- C.new.m
-}
-assert_equal %q{:ok
-ok}, %q{
- class C
- $b = binding
- end
- eval %q{
- def m
- :ok
- end
- }, $b
- p C.new.m
-}
-assert_equal %q{ok}, %q{
- b = proc{
- a = :ok
- binding
- }.call
- a = :ng
- eval("a", b)
-}
-assert_equal %q{C}, %q{
- class C
- def foo
- binding
- end
- end
- C.new.foo.eval("self.class.to_s")
-}
-assert_equal %q{1}, %q{
- eval('1')
-}
-assert_equal %q{1}, %q{
- eval('a=1; a')
-}
-assert_equal %q{1}, %q{
- a = 1
- eval('a')
-}
-assert_equal %q{ok}, %q{
- __send__ :eval, %{
- :ok
- }
-}
-assert_equal %q{ok}, %q{
- 1.__send__ :instance_eval, %{
- :ok
- }
-}
-assert_equal %q{1}, %q{
- 1.instance_eval{
- self
- }
-}
-assert_equal %q{foo}, %q{
- 'foo'.instance_eval{
- self
- }
-}
-assert_equal %q{1}, %q{
- class Integer
- Const = 1
- end
- 1.instance_eval %{
- Const
- }
-}
-assert_equal %q{1}, %q{
- class TrueClass
- Const = 1
- end
- true.instance_eval %{
- Const
- }
-}
-assert_equal %q{[:Const]}, %q{
- mod = Module.new
- mod.instance_eval %{
- Const = 1
- }
- raise if defined?(Module::Const)
- mod.singleton_class.constants
-}
-assert_equal %q{can't define singleton}, %q{
- begin
- 123.instance_eval %{
- Const = 1
- }
- "bad"
- rescue TypeError => e
- raise "bad" if defined?(Integer::Const)
- e.message
- end
-}
-assert_equal %q{top}, %q{
- Const = :top
- class C
- Const = :C
- end
- C.module_eval{
- Const
- }
-}
-assert_equal %q{C}, %q{
- Const = :top
- class C
- Const = :C
- end
- C.class_eval %{
- def m
- Const
- end
- }
- C.new.m
-}
-assert_equal %q{top}, %q{
- Const = :top
- class C
- Const = :C
- end
- C.class_eval{
- def m
- Const
- end
- }
- C.new.m
-}
-assert_equal %q{[:top, :C, :top, :C]}, %q{
- Const = :top
- class C
- Const = :C
- end
- $nest = false
- $ans = []
- def m
- $ans << Const
- C.module_eval %{
- $ans << Const
- Boo = false unless defined? Boo
- unless $nest
- $nest = true
- m
- end
- }
- end
- m
- $ans
-}
-assert_equal %q{[10, main]}, %q{
- $nested = false
- $ans = []
- $pr = proc{
- $ans << self
- unless $nested
- $nested = true
- $pr.call
- end
- }
- class C
- def initialize &b
- 10.instance_eval(&b)
- end
- end
- C.new(&$pr)
- $ans
-}
-
-%w[break next redo].each do |keyword|
- assert_match %r"Can't escape from eval with #{keyword}\b", %{
- $stderr = STDOUT
- begin
- eval "0 rescue #{keyword}"
- rescue SyntaxError => e
- e.message
- end
- }, '[ruby-dev:31372]'
-end
-
-assert_normal_exit %q{
- $stderr = STDOUT
- class Foo
- def self.add_method
- class_eval("def some-bad-name; puts 'hello' unless @some_variable.some_function(''); end")
- end
- end
- Foo.add_method
-}, '[ruby-core:14556] reported by Frederick Cheung'
-
-assert_equal 'ok', %q{
- class Module
- def my_module_eval(&block)
- module_eval(&block)
- end
- end
- class String
- Integer.my_module_eval do
- def hoge; end
- end
- end
- if Integer.instance_methods(false).map{|m|m.to_sym}.include?(:hoge) &&
- !String.instance_methods(false).map{|m|m.to_sym}.include?(:hoge)
- :ok
- else
- :ng
- end
-}, "[ruby-dev:34236]"
-
-assert_equal 'ok', %q{
- begin
- eval("class nil::Foo; end")
- :ng
- rescue Exception
- :ok
- end
-}
-
-assert_equal 'ok', %q{
- begin
- 0.instance_eval { def m() :m end }
- 1.m
- :ng
- rescue Exception
- :ok
- end
-}, '[ruby-dev:34579]'
-
-assert_equal 'ok', %q{
- begin
- class A
- 12.instance_eval { @@a }
- end
- rescue NameError
- :ok
- end
-}, '[ruby-core:16794]'
-
-assert_equal 'ok', %q{
- begin
- class A
- 12.instance_exec { @@a }
- end
- rescue NameError
- :ok
- end
-}, '[ruby-core:16794]'
-
-assert_equal 'ok', %q{
- nil.instance_eval {
- def defd_using_instance_eval() :ok end
- }
- nil.defd_using_instance_eval
-}, '[ruby-core:28324]'
-
-assert_equal 'ok', %q{
- nil.instance_exec {
- def defd_using_instance_exec() :ok end
- }
- nil.defd_using_instance_exec
-}, '[ruby-core:28324]'
-
-assert_normal_exit %q{
- eval("", method(:proc).call {}.binding)
-}
-
-assert_equal "", %q{
- b = binding
- 10.times{
- eval('', b)
- }
- begin
- eval('1.times{raise}', b)
- rescue => e
- e.message
- end
-}, '[ruby-dev:35392]'
-
-assert_equal "[:x]", %q{
- def kaboom!
- yield.eval("local_variables")
- end
-
- for x in enum_for(:kaboom!)
- binding
- end
-}, '[ruby-core:25125]'
-
-assert_normal_exit %q{
- hash = {}
- ("aaaa".."matz").each_with_index do |s, i|
- hash[s] = i
- end
- begin
- eval "class C; @@h = #{hash.inspect}; end"
- end
-}, '[ruby-core:25714]'
-
-assert_normal_exit %q{
- begin
- eval("# encoding:utf-16le\nfoo")
- rescue Exception => e
- p e
- RubyVM::InstructionSequence.compile("p:hello")
- end
-}, 'check escaping the internal value th->base_block'
-
diff --git a/bootstraptest/test_exception.rb b/bootstraptest/test_exception.rb
deleted file mode 100644
index 0fb6f552b8..0000000000
--- a/bootstraptest/test_exception.rb
+++ /dev/null
@@ -1,432 +0,0 @@
-assert_equal %q{2}, %q{
- begin
- 1+1
- ensure
- 2+2
- end
-}
-assert_equal %q{4}, %q{
- begin
- 1+1
- begin
- 2+2
- ensure
- 3+3
- end
- ensure
- 4+4
- end
-}
-assert_equal %q{4}, %q{
- begin
- 1+1
- begin
- 2+2
- ensure
- 3+3
- end
- ensure
- 4+4
- begin
- 5+5
- ensure
- 6+6
- end
- end
-}
-assert_equal %q{NilClass}, %q{
- a = nil
- 1.times{|e|
- begin
- rescue => err
- end
- a = err.class
- }
- a
-}
-assert_equal %q{RuntimeError}, %q{
- a = nil
- 1.times{|e|
- begin
- raise
- rescue => err
- end
- a = err.class
- }
- a
-}
-assert_equal %q{}, %q{
- $!
-}
-assert_equal %q{FOO}, %q{
- begin
- raise "FOO"
- rescue
- $!
- end
-}
-assert_equal %q{FOO}, %q{
- def m
- $!
- end
- begin
- raise "FOO"
- rescue
- m()
- end
-}
-assert_equal %q{[#<RuntimeError: BAR>, #<RuntimeError: FOO>]}, %q{
- $ans = []
- def m
- $!
- end
- begin
- raise "FOO"
- rescue
- begin
- raise "BAR"
- rescue
- $ans << m()
- end
- $ans << m()
- end
- $ans
-}
-assert_equal %q{[#<RuntimeError: FOO>, #<RuntimeError: FOO>]}, %q{
- $ans = []
- def m
- $!
- end
-
- begin
- begin
- raise "FOO"
- ensure
- $ans << m()
- end
- rescue
- $ans << m()
- end
-}
-assert_equal %q{[nil]}, %q{
- $ans = []
- def m
- $!
- end
- def m2
- 1.times{
- begin
- return
- ensure
- $ans << m
- end
- }
- end
- m2
- $ans
-}
-assert_equal %q{ok}, %q{
- begin
- raise
- rescue
- :ok
- end
-}
-assert_equal %q{ok}, %q{
- begin
- raise
- rescue
- :ok
- ensure
- :ng
- end
-}
-assert_equal %q{RuntimeError}, %q{
- begin
- raise
- rescue => e
- e.class
- end
-}
-assert_equal %q{ng}, %q{
- begin
- raise
- rescue StandardError
- :ng
- rescue Exception
- :ok
- end
-}
-assert_equal %q{c}, %q{
- begin
- begin
- raise "a"
- rescue
- raise "b"
- ensure
- raise "c"
- end
- rescue => e
- e.message
- end
-}
-assert_equal %q{33}, %q{
- def m a, b
- a + b
- end
- m(1, begin
- raise
- rescue
- 2
- end) +
- m(10, begin
- raise
- rescue
- 20
- ensure
- 30
- end)
-}
-assert_equal %q{3}, %q{
- def m a, b
- a + b
- end
- m(begin
- raise
- rescue
- 1
- end,
- begin
- raise
- rescue
- 2
- end)
-}
-assert_equal %q{ok3}, %q{
- class E1 < Exception
- end
-
- def m
- yield
- end
-
- begin
- begin
- begin
- m{
- raise
- }
- rescue E1
- :ok2
- ensure
- end
- rescue
- :ok3
- ensure
- end
- rescue E1
- :ok
- ensure
- end
-}
-assert_equal %q{7}, %q{
- $i = 0
- def m
- iter{
- begin
- $i += 1
- begin
- $i += 2
- break
- ensure
-
- end
- ensure
- $i += 4
- end
- $i = 0
- }
- end
-
- def iter
- yield
- end
- m
- $i
-}
-assert_equal %q{10}, %q{
- $i = 0
- def m
- begin
- $i += 1
- begin
- $i += 2
- return
- ensure
- $i += 3
- end
- ensure
- $i += 4
- end
- p :end
- end
- m
- $i
-}
-assert_equal %q{1}, %q{
- begin
- 1
- rescue
- 2
- end
-}
-assert_equal %q{4}, %q{
- begin
- 1
- begin
- 2
- rescue
- 3
- end
- 4
- rescue
- 5
- end
-}
-assert_equal %q{3}, %q{
- begin
- 1
- rescue
- 2
- else
- 3
- end
-}
-assert_equal %q{2}, %q{
- begin
- 1+1
- rescue
- 2+2
- ensure
- 3+3
- end
- }
-assert_equal %q{2}, %q{
- begin
- 1+1
- rescue
- 2+2
- ensure
- 3+3
- end
- }
-assert_equal %q{6}, %q{
- begin
- 1+1
- rescue
- 2+2
- else
- 3+3
- ensure
- 4+4
- end
- }
-assert_equal %q{12}, %q{
- begin
- 1+1
- begin
- 2+2
- rescue
- 3+3
- else
- 4+4
- end
- rescue
- 5+5
- else
- 6+6
- ensure
- 7+7
- end
- }
-assert_equal %q{ok}, %q{ #
- proc{
- begin
- raise
- break
- rescue
- :ok
- end
- }.call
-}
-assert_equal %q{}, %q{
- proc do
- begin
- raise StandardError
- redo
- rescue StandardError
- end
- end.call
-}
-
-##
-assert_match /undefined method `foo\'/, %q{#`
- STDERR.reopen(STDOUT)
- class C
- def inspect
- bar {}
- end
-
- def bar
- raise
- ensure
- end
- end
- C.new.foo
-}, "[ruby-dev:31407]"
-
-assert_equal 'nil', %q{
- doit = false
- exc = nil
- t = Thread.new {
- begin
- doit = true
- sleep 10
- ensure
- exc = $!
- end
- }
- Thread.pass until doit
- t.kill
- t.join
- exc.inspect
-}, '[ruby-dev:32608]'
-
-assert_equal 'divided by 0', %q{
- class ZeroDivisionError
- def self.new(message)
- 42
- end
- end
- begin
- 1/0
- rescue Exception => e
- e.message
- end
-}, '[ruby-core:24767]'
-
-assert_equal 'ok', %q{
- class C
- def ===(o)
- true
- end
- end
- begin
- begin
- raise
- rescue C.new
- end
- rescue TypeError
- :ok
- end
-}
diff --git a/bootstraptest/test_fiber.rb b/bootstraptest/test_fiber.rb
deleted file mode 100644
index 2614dd13bf..0000000000
--- a/bootstraptest/test_fiber.rb
+++ /dev/null
@@ -1,39 +0,0 @@
-show_limit %q{
- fibers = []
- begin
- fiber = Fiber.new{Fiber.yield}
- fiber.resume
- fibers << fiber
-
- raise Exception, "skipping" if fibers.count >= 10_000
- rescue Exception => error
- puts "Fiber count: #{fibers.count} (#{error})"
- break
- end while true
-}
-
-assert_equal %q{ok}, %q{
- Fiber.new{
- }.resume
- :ok
-}
-
-assert_equal %q{ok}, %q{
- 100.times.collect{Fiber.new{}}
- :ok
-}
-
-assert_equal %q{ok}, %q{
- fibers = 1000.times.collect{Fiber.new{Fiber.yield}}
- fibers.each(&:resume)
- fibers.each(&:resume)
- :ok
-}
-
-assert_normal_exit %q{
- at_exit { Fiber.new{}.resume }
-}
-
-assert_normal_exit %q{
- Fiber.new(&Object.method(:class_eval)).resume("foo")
-}, '[ruby-dev:34128]'
diff --git a/bootstraptest/test_finalizer.rb b/bootstraptest/test_finalizer.rb
deleted file mode 100644
index 22a16b1220..0000000000
--- a/bootstraptest/test_finalizer.rb
+++ /dev/null
@@ -1,8 +0,0 @@
-assert_normal_exit %q{
-a1,a2,b1,b2=Array.new(4){""}
-ObjectSpace.define_finalizer(b2,proc{})
-ObjectSpace.define_finalizer(b1,proc{b1.inspect})
-
-ObjectSpace.define_finalizer(a2,proc{a1.inspect})
-ObjectSpace.define_finalizer(a1,proc{})
-}, '[ruby-dev:35778]'
diff --git a/bootstraptest/test_flip.rb b/bootstraptest/test_flip.rb
deleted file mode 100644
index ff194868b2..0000000000
--- a/bootstraptest/test_flip.rb
+++ /dev/null
@@ -1 +0,0 @@
-assert_equal %q{E}, %q{$_ = "E"; eval("nil if true..~/^E/",nil,"-e"); $_}
diff --git a/bootstraptest/test_flow.rb b/bootstraptest/test_flow.rb
deleted file mode 100644
index 35f19db588..0000000000
--- a/bootstraptest/test_flow.rb
+++ /dev/null
@@ -1,601 +0,0 @@
-assert_equal %q{[1, 2, 4, 5, 6, 7, 8]}, %q{$a = []; begin; ; $a << 1
- [1,2].each{; $a << 2
- break; $a << 3
- }; $a << 4
- begin; $a << 5
- ensure; $a << 6
- end; $a << 7
-; $a << 8
-; rescue Exception; $a << 99; end; $a}
-assert_equal %q{[1, 2, 3, 5, 6, 7, 8]}, %q{$a = []; begin; ; $a << 1
- begin; $a << 2
- [1,2].each do; $a << 3
- break; $a << 4
- end; $a << 5
- ensure; $a << 6
- end; $a << 7
-; $a << 8
-; rescue Exception; $a << 99; end; $a}
-assert_equal %q{ok}, %q{
- ["a"].inject("ng"){|x,y|
- break :ok
- }
-}
-assert_equal %q{ok}, %q{
- unless ''.respond_to? :lines
- class String
- def lines
- self
- end
- end
- end
-
- ('a').lines.map{|e|
- break :ok
- }
-}
-assert_equal %q{[1, 2, 4, 5]}, %q{$a = []; begin; ; $a << 1
- ["a"].inject("ng"){|x,y|; $a << 2
- break :ok; $a << 3
- }; $a << 4
-; $a << 5
-; rescue Exception; $a << 99; end; $a}
-assert_equal %q{[1, 2, 4, 5]}, %q{$a = []; begin; ; $a << 1
- ('a'..'b').map{|e|; $a << 2
- break :ok; $a << 3
- }; $a << 4
-; $a << 5
-; rescue Exception; $a << 99; end; $a}
-assert_equal %q{[1, 2, 3, 5, 7, 8]}, %q{$a = []; begin; ; $a << 1
- [1,2].each do; $a << 2
- begin; $a << 3
- break; $a << 4
- ensure; $a << 5
- end; $a << 6
- end; $a << 7
-; $a << 8
-; rescue Exception; $a << 99; end; $a}
-assert_equal %q{[1, 2, 3, 4, 5, 6, 9, 10]}, %q{$a = []; begin; ; $a << 1
- i=0; $a << 2
- while i<3; $a << 3
- i+=1; $a << 4
- begin; $a << 5
- ensure; $a << 6
- break; $a << 7
- end; $a << 8
- end; $a << 9
-; $a << 10
-; rescue Exception; $a << 99; end; $a}
-assert_equal %q{[1, 2, 3, 4, 5, 7, 10, 11]}, %q{$a = []; begin; ; $a << 1
- i=0; $a << 2
- while i<3; $a << 3
- i+=1; $a << 4
- begin; $a << 5
- raise; $a << 6
- ensure; $a << 7
- break; $a << 8
- end; $a << 9
- end; $a << 10
-; $a << 11
-; rescue Exception; $a << 99; end; $a}
-assert_equal %q{[1, 2, 3, 4, 5, 7, 10, 11]}, %q{$a = []; begin; ; $a << 1
- i=0; $a << 2
- while i<3; $a << 3
- i+=1; $a << 4
- begin; $a << 5
- raise; $a << 6
- rescue; $a << 7
- break; $a << 8
- end; $a << 9
- end; $a << 10
-; $a << 11
-; rescue Exception; $a << 99; end; $a}
-assert_equal %q{[1, 2, 3, 5, 8, 9]}, %q{$a = []; begin; ; $a << 1
- [1,2].each do; $a << 2
- begin; $a << 3
- raise StandardError; $a << 4
- ensure; $a << 5
- break; $a << 6
- end; $a << 7
- end; $a << 8
-; $a << 9
-; rescue Exception; $a << 99; end; $a}
-assert_equal %q{[1, 2, 3, 5, 8, 9]}, %q{$a = []; begin; ; $a << 1
- [1,2].each do; $a << 2
- begin; $a << 3
- raise StandardError; $a << 4
- rescue; $a << 5
- break; $a << 6
- end; $a << 7
- end; $a << 8
-; $a << 9
-; rescue Exception; $a << 99; end; $a}
-assert_equal %q{[1, 2, 3, 4, 6, 8, 10, 11]}, %q{$a = []; begin; ; $a << 1
- [1,2].each do; $a << 2
- begin; $a << 3
- begin; $a << 4
- break; $a << 5
- ensure; $a << 6
- end; $a << 7
- ensure; $a << 8
- end; $a << 9
- end; $a << 10
-; $a << 11
-; rescue Exception; $a << 99; end; $a}
-assert_equal %q{[1, 2, 3, 4, 5, 6, 7, 8, 10, 13, 3, 4, 5, 6, 7, 8, 10, 13, 3, 4, 5, 6, 7, 8, 10, 13, 14, 15]}, %q{$a = []; begin; ; $a << 1
- i = 0; $a << 2
- while i<3; $a << 3
- i+=1; $a << 4
- j = 0; $a << 5
- while j<3; $a << 6
- j+=1; $a << 7
- begin; $a << 8
- raise; $a << 9
- rescue; $a << 10
- break; $a << 11
- end; $a << 12
- end; $a << 13
- end; $a << 14
-; $a << 15
-; rescue Exception; $a << 99; end; $a}
-assert_equal %q{[1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 15, 3, 4, 5, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 15, 3, 4, 5, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 15, 16, 17]}, %q{$a = []; begin; ; $a << 1
- i = 0; $a << 2
- while i<3; $a << 3
- i+=1; $a << 4
- j = 0; $a << 5
- while j<3; $a << 6
- j+=1; $a << 7
- 1.times{; $a << 8
- begin; $a << 9
- raise; $a << 10
- rescue; $a << 11
- break; $a << 12
- end; $a << 13
- }; $a << 14
- end; $a << 15
- end; $a << 16
-; $a << 17
-; rescue Exception; $a << 99; end; $a}
-assert_equal %q{[1, 2, 3, 4, 5, 6, 7, 8, 10, 13, 3, 4, 5, 6, 7, 8, 10, 13, 3, 4, 5, 6, 7, 8, 10, 13, 14, 15]}, %q{$a = []; begin; ; $a << 1
- i = 0; $a << 2
- while i<3; $a << 3
- i+=1; $a << 4
- j = 0; $a << 5
- while j<3; $a << 6
- j+=1; $a << 7
- begin; $a << 8
- raise; $a << 9
- ensure; $a << 10
- break; $a << 11
- end; $a << 12
- end; $a << 13
- end; $a << 14
-; $a << 15
-; rescue Exception; $a << 99; end; $a}
-assert_equal %q{[1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 15, 3, 4, 5, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 15, 3, 4, 5, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 15, 16, 17]}, %q{$a = []; begin; ; $a << 1
- i = 0; $a << 2
- while i<3; $a << 3
- i+=1; $a << 4
- j = 0; $a << 5
- while j<3; $a << 6
- j+=1; $a << 7
- 1.times{; $a << 8
- begin; $a << 9
- raise; $a << 10
- ensure; $a << 11
- break; $a << 12
- end; $a << 13
- }; $a << 14
- end; $a << 15
- end; $a << 16
-; $a << 17
-; rescue Exception; $a << 99; end; $a}
-assert_equal %q{[1, 2, 3, 5, 8, 9]}, %q{$a = []; begin; ; $a << 1
- while true; $a << 2
- begin; $a << 3
- break; $a << 4
- ensure; $a << 5
- break; $a << 6
- end; $a << 7
- end; $a << 8
-; $a << 9
-; rescue Exception; $a << 99; end; $a}
-assert_equal %q{[1, 2, 3, 5, 99]}, %q{
-$a = [];
-begin; ; $a << 1
- while true; $a << 2
- begin; $a << 3
- break; $a << 4
- ensure; $a << 5
- raise; $a << 6
- end; $a << 7
- end; $a << 8
-; $a << 9
-; rescue Exception; $a << 99; end; $a}
-assert_equal %q{[1, 2, 3, 4, 6, 8, 9, 10, 11]}, %q{$a = []; begin; ; $a << 1
- begin; $a << 2
- [1,2].each do; $a << 3
- begin; $a << 4
- break; $a << 5
- ensure; $a << 6
- end; $a << 7
- end; $a << 8
- ensure; $a << 9
- end; $a << 10
-; $a << 11
-; rescue Exception; $a << 99; end; $a}
-assert_equal %q{[1, 2, 4, 99]}, %q{$a = []; begin; ; $a << 1
- begin; $a << 2
- raise StandardError; $a << 3
- ensure; $a << 4
- end; $a << 5
-; $a << 6
-; rescue Exception; $a << 99; end; $a}
-assert_equal %q{[1, 2, 3, 4]}, %q{$a = []; begin; ; $a << 1
- begin; $a << 2
- ensure; $a << 3
- end ; $a << 4
-; rescue Exception; $a << 99; end; $a}
-assert_equal %q{[1, 2, 3, 5, 99]}, %q{$a = []; begin; ; $a << 1
- [1,2].each do; $a << 2
- begin; $a << 3
- break; $a << 4
- ensure; $a << 5
- raise StandardError; $a << 6
- end; $a << 7
- end; $a << 8
-; $a << 9
-; rescue Exception; $a << 99; end; $a}
-assert_equal %q{3}, %q{
- def m a, b
- a + b
- end
- m(1,
- while true
- break 2
- end
- )
-}
-assert_equal %q{4}, %q{
- def m a, b
- a + b
- end
- m(1,
- (i=0; while i<2
- i+=1
- class C
- next 2
- end
- end; 3)
- )
-}
-assert_equal %q{34}, %q{
- def m a, b
- a+b
- end
- m(1, 1.times{break 3}) +
- m(10, (1.times{next 3}; 20))
-}
-assert_equal %q{[1, 2, 3, 6, 7]}, %q{$a = []; begin; ; $a << 1
- 3.times{; $a << 2
- class C; $a << 3
- break; $a << 4
- end; $a << 5
- }; $a << 6
-; $a << 7
-; rescue Exception; $a << 99; end; $a}
-assert_equal %q{[1, 2, 3, 4, 8, 9]}, %q{$a = []; begin; ; $a << 1
- 3.times{; $a << 2
- class A; $a << 3
- class B; $a << 4
- break; $a << 5
- end; $a << 6
- end; $a << 7
- }; $a << 8
-; $a << 9
-; rescue Exception; $a << 99; end; $a}
-assert_equal %q{[1, 2, 3, 2, 3, 2, 3, 6, 7]}, %q{$a = []; begin; ; $a << 1
- 3.times{; $a << 2
- class C; $a << 3
- next; $a << 4
- end; $a << 5
- }; $a << 6
-; $a << 7
-; rescue Exception; $a << 99; end; $a}
-assert_equal %q{[1, 2, 3, 4, 2, 3, 4, 2, 3, 4, 8, 9]}, %q{$a = []; begin; ; $a << 1
- 3.times{; $a << 2
- class C; $a << 3
- class D; $a << 4
- next; $a << 5
- end; $a << 6
- end; $a << 7
- }; $a << 8
-; $a << 9
-; rescue Exception; $a << 99; end; $a}
-assert_equal %q{[1, 2, 3, 6, 7]}, %q{$a = []; begin; ; $a << 1
- while true; $a << 2
- class C; $a << 3
- break; $a << 4
- end; $a << 5
- end; $a << 6
-; $a << 7
-; rescue Exception; $a << 99; end; $a}
-assert_equal %q{[1, 2, 3, 4, 8, 9]}, %q{$a = []; begin; ; $a << 1
- while true; $a << 2
- class C; $a << 3
- class D; $a << 4
- break; $a << 5
- end; $a << 6
- end; $a << 7
- end; $a << 8
-; $a << 9
-; rescue Exception; $a << 99; end; $a}
-assert_equal %q{[1, 2, 3, 4, 5, 3, 4, 5, 3, 4, 5, 8, 9]}, %q{$a = []; begin; ; $a << 1
- i=0; $a << 2
- while i<3; $a << 3
- i+=1; $a << 4
- class C; $a << 5
- next 10; $a << 6
- end; $a << 7
- end; $a << 8
-; $a << 9
-; rescue Exception; $a << 99; end; $a}
-assert_equal %q{1}, %q{
- 1.times{
- while true
- class C
- begin
- break
- ensure
- break
- end
- end
- end
- }
-}
-assert_equal %q{[1, 2, 3, 5, 2, 3, 5, 7, 8]}, %q{$a = []; begin; ; $a << 1
- [1,2].each do; $a << 2
- begin; $a << 3
- next; $a << 4
- ensure; $a << 5
- end; $a << 6
- end; $a << 7
-; $a << 8
-; rescue Exception; $a << 99; end; $a}
-assert_equal %q{[1, 2, 6, 3, 5, 7, 8]}, %q{$a = []; begin; ; $a << 1
- o = "test"; $a << 2
- def o.test(a); $a << 3
- return a; $a << 4
- ensure; $a << 5
- end; $a << 6
- o.test(123); $a << 7
-; $a << 8
-; rescue Exception; $a << 99; end; $a}
-assert_equal %q{[1, 4, 7, 5, 8, 9]}, %q{$a = []; begin; ; $a << 1
- def m1 *args; $a << 2
- ; $a << 3
- end; $a << 4
- def m2; $a << 5
- m1(:a, :b, (return 1; :c)); $a << 6
- end; $a << 7
- m2; $a << 8
-; $a << 9
-; rescue Exception; $a << 99; end; $a}
-assert_equal %q{[1, 8, 2, 3, 4, 5, 9, 10]}, %q{$a = []; begin; ; $a << 1
- def m(); $a << 2
- begin; $a << 3
- 2; $a << 4
- ensure; $a << 5
- return 3; $a << 6
- end; $a << 7
- end; $a << 8
- m; $a << 9
-; $a << 10
-; rescue Exception; $a << 99; end; $a}
-assert_equal %q{[1, 3, 11, 4, 5, 6, 7, 12, 13]}, %q{$a = []; begin; ; $a << 1
- def m2; $a << 2
- end; $a << 3
- def m(); $a << 4
- m2(begin; $a << 5
- 2; $a << 6
- ensure; $a << 7
- return 3; $a << 8
- end); $a << 9
- 4; $a << 10
- end; $a << 11
- m(); $a << 12
-; $a << 13
-; rescue Exception; $a << 99; end; $a}
-assert_equal %q{[1, 16, 2, 3, 4, 5, 6, 7, 10, 11, 17, 18]}, %q{$a = []; begin; ; $a << 1
- def m; $a << 2
- 1; $a << 3
- 1.times{; $a << 4
- 2; $a << 5
- begin; $a << 6
- 3; $a << 7
- return; $a << 8
- 4; $a << 9
- ensure; $a << 10
- 5; $a << 11
- end; $a << 12
- 6; $a << 13
- }; $a << 14
- 7; $a << 15
- end; $a << 16
- m(); $a << 17
-; $a << 18
-; rescue Exception; $a << 99; end; $a}
-assert_equal %q{[:ok, :ok2, :last]}, %q{
- a = []
- i = 0
- begin
- while i < 1
- i+=1
- begin
- begin
- next
- ensure
- a << :ok
- end
- ensure
- a << :ok2
- end
- end
- ensure
- a << :last
- end
- a
-}
-assert_equal %q{[:ok, :ok2, :last]}, %q{
- a = []
- i = 0
- begin
- while i < 1
- i+=1
- begin
- begin
- break
- ensure
- a << :ok
- end
- ensure
- a << :ok2
- end
- end
- ensure
- a << :last
- end
- a
-}
-assert_equal %q{[:ok, :ok2, :last]}, %q{
- a = []
- i = 0
- begin
- while i < 1
- if i>0
- break
- end
- i+=1
- begin
- begin
- redo
- ensure
- a << :ok
- end
- ensure
- a << :ok2
- end
- end
- ensure
- a << :last
- end
- a
-}
-assert_equal %Q{ENSURE\n}, %q{
- def test
- while true
- return
- end
- ensure
- puts("ENSURE")
- end
- test
-}, '[ruby-dev:37967]'
-
-[['[ruby-core:28129]', %q{
- class Bug2728
- include Enumerable
- define_method(:dynamic_method) do
- "dynamically defined method"
- end
- def each
- begin
- yield :foo
- ensure
- dynamic_method
- end
- end
- end
- e = Bug2728.new
-}],
- ['[ruby-core:28132]', %q{
- class Bug2729
- include Enumerable
- def each
- begin
- yield :foo
- ensure
- proc {}.call
- end
- end
- end
- e = Bug2729.new
-}],
- ['[ruby-core:39125]', %q{
- class Bug5234
- include Enumerable
- def each(&block)
- begin
- yield :foo
- ensure
- proc(&block)
- end
- end
- end
- e = Bug5234.new
-}],
- ['[ruby-dev:45656]', %q{
- class Bug6460
- include Enumerable
- def each(&block)
- begin
- yield :foo
- ensure
- 1.times { Proc.new(&block) }
- end
- end
- end
- e = Bug6460.new
-}]].each do |bug, src|
- assert_equal "foo", src + %q{e.detect {true}}, bug
- assert_equal "true", src + %q{e.any? {true}}, bug
- assert_equal "false", src + %q{e.all? {false}}, bug
- assert_equal "true", src + %q{e.include?(:foo)}, bug
-end
-
-assert_equal "foo", %q{
- class Bug6460
- def m1
- m2 {|e|
- return e
- }
- end
-
- def m2
- begin
- yield :foo
- ensure
- begin
- begin
- yield :foo
- ensure
- Proc.new
- raise ''
- end
- rescue
- end
- end
- end
- end
- Bug6460.new.m1
-}, '[ruby-dev:46372]'
-
-assert_equal "foo", %q{
- obj = "foo"
- if obj || any1
- any2 = any2
- else
- raise obj.inspect
- end
- obj
-}, '[ruby-core:87830]'
diff --git a/bootstraptest/test_fork.rb b/bootstraptest/test_fork.rb
deleted file mode 100644
index 83923dad97..0000000000
--- a/bootstraptest/test_fork.rb
+++ /dev/null
@@ -1,77 +0,0 @@
-assert_equal '0', %q{
- begin
- GC.stress = true
- pid = fork {}
- Process.wait pid
- $?.to_i
- rescue NotImplementedError
- 0
- end
-}, '[ruby-dev:32404]'
-
-assert_finish 10, %q{
- begin
- children = (1..10).map{
- Thread.start{fork{}}.value
- }
- while !children.empty? and pid = Process.wait
- children.delete(pid)
- end
- rescue NotImplementedError
- end
-}, '[ruby-core:22158]'
-
-# temporarily stop this test to enable explicit failure when
-# timer thread couldn't be created (r61706 and r61717).
-assert_normal_exit(<<'End', '[ruby-dev:37934]') if false
- main = Thread.current
- Thread.new { sleep 0.01 until main.stop?; Thread.kill main }
- Process.setrlimit(:NPROC, 1) if defined?(Process::RLIMIT_NPROC)
- fork {}
-End
-
-assert_equal 'ok', %q{
- begin
- r, w = IO.pipe
- if pid1 = fork
- w.close
- r.read(1)
- Process.kill("USR1", pid1)
- _, s = Process.wait2(pid1)
- s.success? ? :ok : :ng
- else
- r.close
- if pid2 = fork
- trap("USR1") { Time.now.to_s; Process.kill("USR2", pid2) }
- w.close
- Process.wait2(pid2)
- else
- w.close
- sleep 0.2
- end
- exit true
- end
- rescue NotImplementedError
- :ok
- end
-}, '[ruby-core:28924]'
-
-assert_equal '[1, 2]', %q{
- a = []
- main = Thread.current
- trap(:INT) { a.push(1).size == 2 and main.wakeup }
- trap(:TERM) { a.push(2).size == 2 and main.wakeup }
- pid = $$
- begin
- pid = fork do
- Process.kill(:INT, pid)
- Process.kill(:TERM, pid)
- end
- Process.wait(pid)
- 100.times {break if a.size > 1; sleep 0.001}
- a.sort
- rescue NotImplementedError
- [1, 2]
- end
-}, '[ruby-dev:44005] [Ruby 1.9 - Bug #4950]'
-
diff --git a/bootstraptest/test_gc.rb b/bootstraptest/test_gc.rb
deleted file mode 100644
index eb68c9845e..0000000000
--- a/bootstraptest/test_gc.rb
+++ /dev/null
@@ -1,34 +0,0 @@
-assert_normal_exit %q{
-a = []
-ms = "a".."k"
-("A".."Z").each do |mod|
- mod = eval("module #{mod}; self; end")
- ms.each do |meth|
- iseq = RubyVM::InstructionSequence.compile("module #{mod}; def #{meth}; end; end")
- GC.stress = true
- iseq.eval
- GC.stress = false
- end
- o = Object.new.extend(mod)
- ms.each do |meth|
- o.send(meth)
- end
-end
-}, '[ruby-dev:39453]'
-
-assert_normal_exit %q{
-a = []
-ms = "a".."k"
-("A".."Z").each do |mod|
- mod = eval("module #{mod}; self; end")
- ms.each do |meth|
- GC.stress = true
- mod.module_eval {define_method(meth) {}}
- GC.stress = false
- end
- o = Object.new.extend(mod)
- ms.each do |meth|
- o.send(meth)
- end
-end
-}, '[ruby-dev:39453]'
diff --git a/bootstraptest/test_insns.rb b/bootstraptest/test_insns.rb
deleted file mode 100644
index 91fba9b011..0000000000
--- a/bootstraptest/test_insns.rb
+++ /dev/null
@@ -1,440 +0,0 @@
-# C0 coverage of each instructions
-
-# :NOTE: This is for development purpose; never consider this file as
-# ISeq compilation specification.
-
-begin
- # This library brings some additional coverage.
- # Not mandatory.
- require 'rbconfig/sizeof'
-rescue LoadError
- # OK, just skip
-else
- if defined? RbConfig::LIMITS
- $FIXNUM_MAX = RbConfig::LIMITS["FIXNUM_MAX"]
- $FIXNUM_MIN = RbConfig::LIMITS["FIXNUM_MIN"]
- end
-end
-
-fsl = { frozen_string_literal: true } # used later
-tests = [
- # insn , expression to generate such insn
- [ 'nop', %q{ raise rescue true }, ],
-
- [ 'setlocal *, 0', %q{ x = true }, ],
- [ 'setlocal *, 1', %q{ x = nil; -> { x = true }.call }, ],
- [ 'setlocal', %q{ x = nil; -> { -> { x = true }.() }.() }, ],
- [ 'getlocal *, 0', %q{ x = true; x }, ],
- [ 'getlocal *, 1', %q{ x = true; -> { x }.call }, ],
- [ 'getlocal', %q{ x = true; -> { -> { x }.() }.() }, ],
-
- [ 'setblockparam', <<-'},', ], # {
- def m&b
- b = # here
- proc { true }
- end
- m { false }.call
- },
- [ 'getblockparam', <<-'},', ], # {
- def m&b
- b # here
- end
- m { true }.call
- },
- [ 'getblockparamproxy', <<-'},', ], # {
- def m&b
- b # here
- .call
- end
- m { true }
- },
-
- [ 'setspecial', %q{ true if true..true }, ],
- [ 'getspecial', %q{ $&.nil? }, ],
- [ 'getspecial', %q{ $`.nil? }, ],
- [ 'getspecial', %q{ $'.nil? }, ],
- [ 'getspecial', %q{ $+.nil? }, ],
- [ 'getspecial', %q{ $1.nil? }, ],
- [ 'getspecial', %q{ $128.nil? }, ],
-
- [ 'getglobal', %q{ String === $0 }, ],
- [ 'getglobal', %q{ $_.nil? }, ],
- [ 'setglobal', %q{ $0 = "true" }, ],
-
- [ 'setinstancevariable', %q{ @x = true }, ],
- [ 'getinstancevariable', %q{ @x = true; @x }, ],
-
- [ 'setclassvariable', %q{ class A; @@x = true; end }, ],
- [ 'getclassvariable', %q{ class A; @@x = true; @@x end }, ],
-
- [ 'setconstant', %q{ X = true }, ],
- [ 'setconstant', %q{ Object::X = true }, ],
- [ 'getconstant', %q{ X = true; X }, ],
- [ 'getconstant', %q{ X = true; Object::X }, ],
-
- [ 'getinlinecache / setinlinecache', %q{ def x; X; end; X = true; x; x; x }, ],
-
- [ 'putnil', %q{ $~ == nil }, ],
- [ 'putself', %q{ $~ != self }, ],
- [ 'putobject INT2FIX(0)', %q{ $~ != 0 }, ],
- [ 'putobject INT2FIX(1)', %q{ $~ != 1 }, ],
- [ 'putobject', %q{ $~ != -1 }, ],
- [ 'putobject', %q{ $~ != /x/ }, ],
- [ 'putobject', %q{ $~ != :x }, ],
- [ 'putobject', %q{ $~ != (1..2) }, ],
- [ 'putobject', %q{ $~ != true }, ],
- [ 'putobject', %q{ /(?<x>x)/ =~ "x"; x == "x" }, ],
-
- [ 'putspecialobject', %q{ {//=>true}[//] }, ],
- [ 'putstring', %q{ "true" }, ],
- [ 'tostring / concatstrings', %q{ "#{true}" }, ],
- [ 'toregexp', %q{ /#{true}/ =~ "true" && $~ }, ],
- [ 'intern', %q{ :"#{true}" }, ],
-
- [ 'newarray', %q{ ["true"][0] }, ],
- [ 'newarraykwsplat', %q{ [**{x:'true'}][0][:x] }, ],
- [ 'duparray', %q{ [ true ][0] }, ],
- [ 'expandarray', %q{ y = [ true, false, nil ]; x, = y; x }, ],
- [ 'expandarray', %q{ y = [ true, false, nil ]; x, *z = y; x }, ],
- [ 'expandarray', %q{ y = [ true, false, nil ]; x, *z, w = y; x }, ],
- [ 'splatarray', %q{ x, = *(y = true), false; x }, ],
- [ 'concatarray', %q{ ["t", "r", *x = "u", "e"].join }, ],
- [ 'concatarray', <<-'},', ], # {
- class X; def to_a; ['u']; end; end
- ['t', 'r', *X.new, 'e'].join
- },
- [ 'concatarray', <<-'},', ], # {
- r = false
- t = [true, nil]
- q, w, e = r, *t # here
- w
- },
-
- [ 'newhash', %q{ x = {}; x[x] = true }, ],
- [ 'newhash', %q{ x = true; { x => x }[x] }, ],
- [ 'newhashfromarray', %q{ { a: true }[:a] }, ],
- [ 'newrange', %q{ x = 1; [*(0..x)][0] == 0 }, ],
- [ 'newrange', %q{ x = 1; [*(0...x)][0] == 0 }, ],
-
- [ 'pop', %q{ def x; true; end; x }, ],
- [ 'dup', %q{ x = y = true; x }, ],
- [ 'dupn', %q{ Object::X ||= true }, ],
- [ 'reverse', %q{ q, (w, e), r = 1, [2, 3], 4; e == 3 }, ],
- [ 'swap', %q{ !!defined?([[]]) }, ],
- [ 'swap', <<-'},', ], # {
- x = [[false, true]]
- for i, j in x # here
- ;
- end
- j
- },
-
- [ 'topn', %q{ x, y = [], 0; x[*y], = [true, false]; x[0] }, ],
- [ 'setn', %q{ x, y = [], 0; x[*y] = true ; x[0] }, ],
- [ 'adjuststack', %q{ x = [true]; x[0] ||= nil; x[0] }, ],
-
- [ 'defined', %q{ !defined?(x) }, ],
- [ 'checkkeyword', %q{ def x x:rand;x end; x x: true }, ],
- [ 'checktype', %q{ x = true; "#{x}" }, ],
- [ 'checkmatch', <<-'},', ], # {
- x = y = true
- case x
- when false
- y = false
- when true # here
- y = nil
- end
- y == nil
- },
- [ 'checkmatch', <<-'},', ], # {
- x, y = true, [false]
- case x
- when *y # here
- z = false
- else
- z = true
- end
- z
- },
- [ 'checkmatch', <<-'},', ], # {
- x = false
- begin
- raise
- rescue # here
- x = true
- end
- x
- },
-
- [ 'defineclass', %q{ module X; true end }, ],
- [ 'defineclass', %q{ X = Module.new; module X; true end }, ],
- [ 'defineclass', %q{ class X; true end }, ],
- [ 'defineclass', %q{ X = Class.new; class X; true end }, ],
- [ 'defineclass', %q{ X = Class.new; class Y < X; true end }, ],
- [ 'defineclass', %q{ X = Class.new; class << X; true end }, ],
- [ 'defineclass', <<-'},', ], # {
- X = Class.new
- Y = Class.new(X)
- class Y < X
- true
- end
- },
-
- [ 'opt_send_without_block', %q{ true.to_s }, ],
- [ 'send', %q{ true.tap {|i| i.to_s } }, ],
- [ 'leave', %q{ def x; true; end; x }, ],
- [ 'invokesuper', <<-'},', ], # {
- class X < String
- def empty?
- super # here
- end
- end
- X.new.empty?
- },
- [ 'invokeblock', <<-'},', ], # {
- def x
- return yield self # here
- end
- x do
- true
- end
- },
-
- [ 'opt_str_freeze', %q{ 'true'.freeze }, ],
- [ 'opt_nil_p', %q{ nil.nil? }, ],
- [ 'opt_nil_p', %q{ !Object.nil? }, ],
- [ 'opt_nil_p', %q{ Class.new{def nil?; true end}.new.nil? }, ],
- [ 'opt_str_uminus', %q{ -'true' }, ],
- [ 'opt_str_freeze', <<-'},', ], # {
- class String
- def freeze
- true
- end
- end
- 'true'.freeze
- },
-
- [ 'opt_newarray_max', %q{ [ ].max.nil? }, ],
- [ 'opt_newarray_max', %q{ [1, x = 2, 3].max == 3 }, ],
- [ 'opt_newarray_max', <<-'},', ], # {
- class Array
- def max
- true
- end
- end
- [1, x = 2, 3].max
- },
- [ 'opt_newarray_min', %q{ [ ].min.nil? }, ],
- [ 'opt_newarray_min', %q{ [3, x = 2, 1].min == 1 }, ],
- [ 'opt_newarray_min', <<-'},', ], # {
- class Array
- def min
- true
- end
- end
- [3, x = 2, 1].min
- },
-
- [ 'throw', %q{ false.tap { break true } }, ],
- [ 'branchif', %q{ x = nil; x ||= true }, ],
- [ 'branchif', %q{ x = true; x ||= nil; x }, ],
- [ 'branchunless', %q{ x = 1; x &&= true }, ],
- [ 'branchunless', %q{ x = nil; x &&= true; x.nil? }, ],
- [ 'branchnil', %q{ x = true; x&.to_s }, ],
- [ 'branchnil', %q{ x = nil; (x&.to_s).nil? }, ],
- [ 'jump', <<-'},', ], # {
- y = 1
- x = if y == 0 then nil elsif y == 1 then true else nil end
- x
- },
- [ 'jump', <<-'},', ], # {
- # ultra complicated situation: this ||= assignment only generates
- # 15 instructions, not including the class definition.
- class X; attr_accessor :x; end
- x = X.new
- x&.x ||= true # here
- },
-
- [ 'once', %q{ /#{true}/o =~ "true" && $~ }, ],
- [ 'once', <<-'},', ], # {
- def once expr
- return /#{expr}/o # here
- end
- x = once(true); x = once(false); x = once(nil);
- x =~ "true" && $~
- },
- [ 'once', <<-'},', ], # {
- # recursive once
- def once n
- return %r/#{
- if n == 0
- true
- else
- once(n-1) # here
- end
- }/ox
- end
- x = once(128); x = once(7); x = once(16);
- x =~ "true" && $~
- },
- [ 'once', <<-'},', ], # {
- # inter-thread lockup situation
- def once n
- return Thread.start n do |m|
- Thread.pass
- next %r/#{
- sleep m # here
- true
- }/ox
- end
- end
- x = once(1); y = once(0.1); z = y.value
- z =~ "true" && $~
- },
-
- [ 'opt_case_dispatch', %q{ case 0 when 1.1 then false else true end }, ],
- [ 'opt_case_dispatch', %q{ case 1.0 when 1.1 then false else true end }, ],
-
- [ 'opt_plus', %q{ 1 + 1 == 2 }, ],
- if defined? $FIXNUM_MAX then
- [ 'opt_plus', %Q{ #{ $FIXNUM_MAX } + 1 == #{ $FIXNUM_MAX + 1 } }, ]
- end,
- [ 'opt_plus', %q{ 1.0 + 1.0 == 2.0 }, ],
- [ 'opt_plus', %q{ x = +0.0.next_float; x + x >= x }, ],
- [ 'opt_plus', %q{ 't' + 'rue' }, ],
- [ 'opt_plus', %q{ ( ['t'] + ['r', ['u', ['e'], ], ] ).join }, ],
- [ 'opt_plus', %q{ Time.at(1) + 1 == Time.at(2) }, ],
- [ 'opt_minus', %q{ 1 - 1 == 0 }, ],
- if defined? $FIXNUM_MIN then
- [ 'opt_minus', %Q{ #{ $FIXNUM_MIN } - 1 == #{ $FIXNUM_MIN - 1 } }, ]
- end,
- [ 'opt_minus', %q{ 1.0 - 1.0 == 0.0 }, ],
- [ 'opt_minus', %q{ x = -0.0.prev_float; x - x == 0.0 }, ],
- [ 'opt_minus', %q{ ( [false, true] - [false] )[0] }, ],
- [ 'opt_mult', %q{ 1 * 1 == 1 }, ],
- [ 'opt_mult', %q{ 1.0 * 1.0 == 1.0 }, ],
- [ 'opt_mult', %q{ x = +0.0.next_float; x * x <= x }, ],
- [ 'opt_mult', %q{ ( "ruet" * 3 )[7,4] }, ],
- [ 'opt_div', %q{ 1 / 1 == 1 }, ],
- [ 'opt_div', %q{ 1.0 / 1.0 == 1.0 }, ],
- [ 'opt_div', %q{ x = +0.0.next_float; x / x >= x }, ],
- [ 'opt_div', %q{ x = 1/2r; x / x == 1 }, ],
- [ 'opt_mod', %q{ 1 % 1 == 0 }, ],
- [ 'opt_mod', %q{ 1.0 % 1.0 == 0.0 }, ],
- [ 'opt_mod', %q{ x = +0.0.next_float; x % x == 0.0 }, ],
- [ 'opt_mod', %q{ '%s' % [ true ] }, ],
-
- [ 'opt_eq', %q{ 1 == 1 }, ],
- [ 'opt_eq', <<-'},', ], # {
- class X; def == other; true; end; end
- X.new == true
- },
- [ 'opt_neq', %q{ 1 != 0 }, ],
- [ 'opt_neq', <<-'},', ], # {
- class X; def != other; true; end; end
- X.new != true
- },
-
- [ 'opt_lt', %q{ -1 < 0 }, ],
- [ 'opt_lt', %q{ -1.0 < 0.0 }, ],
- [ 'opt_lt', %q{ -0.0.prev_float < 0.0 }, ],
- [ 'opt_lt', %q{ ?a < ?z }, ],
- [ 'opt_le', %q{ -1 <= 0 }, ],
- [ 'opt_le', %q{ -1.0 <= 0.0 }, ],
- [ 'opt_le', %q{ -0.0.prev_float <= 0.0 }, ],
- [ 'opt_le', %q{ ?a <= ?z }, ],
- [ 'opt_gt', %q{ 1 > 0 }, ],
- [ 'opt_gt', %q{ 1.0 > 0.0 }, ],
- [ 'opt_gt', %q{ +0.0.next_float > 0.0 }, ],
- [ 'opt_gt', %q{ ?z > ?a }, ],
- [ 'opt_ge', %q{ 1 >= 0 }, ],
- [ 'opt_ge', %q{ 1.0 >= 0.0 }, ],
- [ 'opt_ge', %q{ +0.0.next_float >= 0.0 }, ],
- [ 'opt_ge', %q{ ?z >= ?a }, ],
-
- [ 'opt_ltlt', %q{ '' << 'true' }, ],
- [ 'opt_ltlt', %q{ ([] << 'true').join }, ],
- [ 'opt_ltlt', %q{ (1 << 31) == 2147483648 }, ],
-
- [ 'opt_aref', %q{ ['true'][0] }, ],
- [ 'opt_aref', %q{ { 0 => 'true'}[0] }, ],
- [ 'opt_aref', %q{ 'true'[0] == ?t }, ],
- [ 'opt_aset', %q{ [][0] = true }, ],
- [ 'opt_aset', %q{ {}[0] = true }, ],
- [ 'opt_aset', %q{ x = 'frue'; x[0] = 't'; x }, ],
- [ 'opt_aset', <<-'},', ], # {
- # opt_aref / opt_aset mixup situation
- class X; def x; {}; end; end
- x = X.new
- x&.x[true] ||= true # here
- },
-
- [ 'opt_aref_with', %q{ { 'true' => true }['true'] }, ],
- [ 'opt_aref_with', %q{ Struct.new(:nil).new['nil'].nil? }, ],
- [ 'opt_aset_with', %q{ {}['true'] = true }, ],
- [ 'opt_aset_with', %q{ Struct.new(:true).new['true'] = true }, ],
-
- [ 'opt_length', %q{ 'true' .length == 4 }, ],
- [ 'opt_length', %q{ :true .length == 4 }, ],
- [ 'opt_length', %q{ [ 'true' ] .length == 1 }, ],
- [ 'opt_length', %q{ { 'true' => 1 }.length == 1 }, ],
- [ 'opt_size', %q{ 'true' .size == 4 }, ],
- [ 'opt_size', %q{ 1.size >= 4 }, ],
- [ 'opt_size', %q{ [ 'true' ] .size == 1 }, ],
- [ 'opt_size', %q{ { 'true' => 1 }.size == 1 }, ],
- [ 'opt_empty_p', %q{ ''.empty? }, ],
- [ 'opt_empty_p', %q{ [].empty? }, ],
- [ 'opt_empty_p', %q{ {}.empty? }, ],
- [ 'opt_empty_p', %q{ Thread::Queue.new.empty? }, ],
-
- [ 'opt_succ', %q{ 1.succ == 2 }, ],
- if defined? $FIXNUM_MAX then
- [ 'opt_succ',%Q{ #{ $FIXNUM_MAX }.succ == #{ $FIXNUM_MAX + 1 } }, ]
- end,
- [ 'opt_succ', %q{ '1'.succ == '2' }, ],
-
- [ 'opt_not', %q{ ! false }, ],
- [ 'opt_neq', <<-'},', ], # {
- class X; def !; true; end; end
- ! X.new
- },
-
- [ 'opt_regexpmatch2', %q{ /true/ =~ 'true' && $~ }, ],
- [ 'opt_regexpmatch2', <<-'},', ], # {
- class Regexp; def =~ other; true; end; end
- /true/ =~ 'true'
- },
- [ 'opt_regexpmatch2', %q{ 'true' =~ /true/ && $~ }, ],
- [ 'opt_regexpmatch2', <<-'},', ], # {
- class String; def =~ other; true; end; end
- 'true' =~ /true/
- },
-]
-
-# normal path
-tests.compact.each do |(insn, expr, *a)|
- if a.last.is_a?(Hash)
- a = a.dup
- kw = a.pop
- assert_equal 'true', expr, insn, *a, **kw
- else
- assert_equal 'true', expr, insn, *a
- end
-end
-
-# with trace
-tests.compact.each {|(insn, expr, *a)|
- progn = "set_trace_func(proc{})\n" + expr
- if a.last.is_a?(Hash)
- a = a.dup
- kw = a.pop
- assert_equal 'true', progn, 'trace_' + insn, *a, **kw
- else
- assert_equal 'true', progn, 'trace_' + insn, *a
- end
-}
-
-assert_normal_exit("#{<<-"begin;"}\n#{<<-'end;'}")
-begin;
- RubyVM::InstructionSequence.compile("", debug_level: 5)
-end;
diff --git a/bootstraptest/test_io.rb b/bootstraptest/test_io.rb
deleted file mode 100644
index 89c00d0b88..0000000000
--- a/bootstraptest/test_io.rb
+++ /dev/null
@@ -1,112 +0,0 @@
-assert_finish 5, %q{
- r, w = IO.pipe
- t1 = Thread.new { r.sysread(1) }
- t2 = Thread.new { r.sysread(1) }
- sleep 0.01 until t1.stop? and t2.stop?
- w.write "a"
- w.write "a"
-}, '[ruby-dev:31866]'
-
-assert_finish 10, %q{
- begin
- require "io/nonblock"
- require "timeout"
- timeout(3) do
- r, w = IO.pipe
- w.nonblock?
- w.nonblock = true
- w.write_nonblock("a" * 100000)
- w.nonblock = false
- t1 = Thread.new { w.write("b" * 4096) }
- t2 = Thread.new { w.write("c" * 4096) }
- sleep 0.5
- r.sysread(4096).length
- sleep 0.5
- r.sysread(4096).length
- t1.join
- t2.join
- end
- rescue LoadError, Timeout::Error, NotImplementedError
- end
-}, '[ruby-dev:32566]'
-
-assert_finish 1, %q{
- r, w = IO.pipe
- Thread.new {
- w << "ab"
- sleep 0.01
- w << "ab"
- }
- r.gets("abab")
-}
-
-assert_equal 'ok', %q{
- require 'tmpdir'
- begin
- tmpname = "#{Dir.tmpdir}/ruby-btest-#{$$}-#{rand(0x100000000).to_s(36)}"
- rw = File.open(tmpname, File::RDWR|File::CREAT|File::EXCL)
- rescue Errno::EEXIST
- retry
- end
- save = STDIN.dup
- STDIN.reopen(rw)
- STDIN.reopen(save)
- rw.close
- File.unlink(tmpname)
- :ok
-}
-
-assert_equal 'ok', %q{
- require 'tmpdir'
- begin
- tmpname = "#{Dir.tmpdir}/ruby-btest-#{$$}-#{rand(0x100000000).to_s(36)}"
- rw = File.open(tmpname, File::RDWR|File::CREAT|File::EXCL)
- rescue Errno::EEXIST
- retry
- end
- save = STDIN.dup
- STDIN.reopen(rw)
- STDIN.print "a"
- STDIN.reopen(save)
- rw.close
- File.unlink(tmpname)
- :ok
-}
-
-assert_equal 'ok', %q{
- dup = STDIN.dup
- dupfd = dup.fileno
- dupfd == STDIN.dup.fileno ? :ng : :ok
-}, '[ruby-dev:46834]'
-
-assert_normal_exit %q{
- ARGF.set_encoding "foo"
-}
-
-10.times do
- assert_normal_exit %q{
- at_exit { p :foo }
-
- megacontent = "abc" * 12345678
- #File.open("megasrc", "w") {|f| f << megacontent }
-
- t0 = Thread.main
- Thread.new { sleep 0.001 until t0.stop?; Process.kill(:INT, $$) }
-
- r1, w1 = IO.pipe
- r2, w2 = IO.pipe
- t1 = Thread.new { w1 << megacontent; w1.close }
- t2 = Thread.new { r2.read; r2.close }
- IO.copy_stream(r1, w2) rescue nil
- w2.close
- r1.close
- t1.join
- t2.join
- }, 'megacontent-copy_stream', ["INT"], :timeout => 10 or break
-end
-
-assert_normal_exit %q{
- r, w = IO.pipe
- STDOUT.reopen(w)
- STDOUT.reopen(__FILE__, "r")
-}, '[ruby-dev:38131]'
diff --git a/bootstraptest/test_jump.rb b/bootstraptest/test_jump.rb
deleted file mode 100644
index d07c47a56d..0000000000
--- a/bootstraptest/test_jump.rb
+++ /dev/null
@@ -1,314 +0,0 @@
-assert_equal %q{ok}, %q{
- def m
- :ng1
- mm{
- yield
- }
- :ng2
- end
-
- def mm
- :ng3
- yield
- :ng4
- end
-
- m{
- break :ok
- }
-}
-assert_equal %q{ok}, %q{
- 3.times{
- break :ok
- }
-}
-assert_equal %q{}, %q{
- catch(:foo){
- throw :foo
- }
-}
-assert_equal %q{false}, %q{
- catch(:foo){
- throw :foo, false
- }
-}
-assert_equal %q{}, %q{
- catch(:foo){
- throw :foo, nil
- }
-}
-assert_equal %q{ok}, %q{
- catch(:foo){
- throw :foo, :ok
- }
-}
-assert_equal %q{}, %q{
- catch(:foo){
- 1.times{
- throw :foo
- }
- }
-}
-assert_equal %q{ok}, %q{
- catch(:foo){
- 1.times{
- throw :foo, :ok
- }
- }
-}
-assert_equal %q{ok}, %q{
- catch(:foo){
- catch(:bar){
- throw :foo, :ok
- }
- :ng
- }
-}
-assert_equal %q{ok}, %q{
- catch(:foo){
- catch(:bar){
- 1.times{
- throw :foo, :ok
- }
- }
- :ng
- }
-}
-assert_equal %q{2}, %q{
- module Enumerable
- def all_?
- self.each{|e|
- unless yield(e)
- return false
- end
- }
- true
- end
- end
-
- xxx = 0
- [1,2].each{|bi|
- [3,4].each{|bj|
- [true, nil, true].all_?{|be| be}
- break
- }
- xxx += 1
- }
- xxx
-}
-assert_equal %q{ok}, %q{
- def m
- yield
- end
-
- m{
- begin
- ensure
- break :ok
- end
- }
-}
-assert_equal %q{ok}, %q{
- def m
- yield
- :ok
- end
- i=0
- m{
- if i>10
- i*i
- else
- i+=1
- next
- end
- }
-}
-assert_equal %q{ok}, %q{
- def m
- yield
- end
-
- m{
- next :ok
- }
-}
-assert_equal %q{131}, %q{
- def m
- yield + 10
- end
- i=0
- m{
- if i>10
- i*i
- else
- i+=1
- redo
- end
- }
-}
-assert_match %r{Invalid retry}, %q{
-$stderr = STDOUT
-begin
- eval %q{
- 1.times{
- retry
- }
- }
-rescue SyntaxError => e
- e.message
-end
-}
-assert_equal %q{3}, %q{
- def m
- return 3
- end
- m
-}
-assert_equal %q{ok}, %q{
- def m
- :ng1
- mm{
- return :ok
- }
- :ng2
- end
-
- def mm
- :ng3
- yield
- :ng4
- end
- m
-}
-assert_equal %q{100}, %q{
- $i = 0
- def m
- begin
- iter{
- return
- }
- ensure
- $i = 100
- end
- end
-
- def iter
- yield
- end
- m
- $i
-}
-assert_equal %q{ok}, %q{
- def m
- begin
- raise
- rescue
- return :ok
- end
- :ng
- end
- m
-}
-assert_equal %q{1}, %q{
- def m
- begin
- raise
- rescue
- return 1
- end
- end
-
- m
-}
-assert_equal %q{1}, %q{
- def m
- begin
- #
- ensure
- return 1
- end
- end
-
- m
-}
-assert_equal 'ok', %q{
- begin
- catch {|t| throw t, :ok }
- rescue ArgumentError
- :ng
- end
-}, '[ruby-dev:31609]'
-
-assert_equal "1", %q{
- catch do |t|
- begin
- throw t, 1
- 2
- ensure
- 3
- end
- end
-}, "[ruby-dev:31698]"
-
-assert_normal_exit %q{
- f = 0
- 1.times do
- begin
- f += 1
- ensure
- redo unless f > 2
- end
- end
-}
-
-assert_normal_exit %q{
- -> do
- 1.times do
- begin
- raise
- rescue
- return
- end
- end
- end.call
-}
-
-assert_normal_exit %q{
- while true
- begin
- raise
- next
- rescue
- end
- break
- end
-}, '[ruby-core:28172]'
-
-assert_equal "true", %q{
- class Object
- def return_eigenclass
- class << self
- return self
- end
- end
- end
- s = "foo"
- s.return_eigenclass == class << s; self; end
-}, '[ruby-core:21379]'
-
-assert_match %r{Invalid yield}, %q{
-$stderr = STDOUT
-begin
- eval %q{
- class Object
- def yield_eigenclass
- class << self
- yield self
- end
- end
- end
- }
-rescue SyntaxError => e
- e.message
-end
-}
diff --git a/bootstraptest/test_literal.rb b/bootstraptest/test_literal.rb
deleted file mode 100644
index 9b3c10d519..0000000000
--- a/bootstraptest/test_literal.rb
+++ /dev/null
@@ -1,247 +0,0 @@
-# empty program
-assert_equal '', ''
-assert_equal '', ' '
-assert_equal '', "\n"
-
-# special const
-assert_equal 'true', 'true'
-assert_equal 'TrueClass', 'true.class'
-assert_equal 'false', 'false'
-assert_equal 'FalseClass', 'false.class'
-assert_equal '', 'nil'
-assert_equal 'nil', 'nil.inspect'
-assert_equal 'NilClass', 'nil.class'
-assert_equal 'sym', ':sym'
-assert_equal ':sym', ':sym.inspect'
-assert_equal 'Symbol', ':sym.class'
-assert_equal '1234', '1234'
-assert_equal 'Integer', '1234.class'
-assert_equal '1234', '1_2_3_4'
-assert_equal 'Integer', '1_2_3_4.class'
-assert_equal '18', '0x12'
-assert_equal 'Integer', '0x12.class'
-assert_equal '15', '0o17'
-assert_equal 'Integer', '0o17.class'
-assert_equal '5', '0b101'
-assert_equal 'Integer', '0b101.class'
-assert_equal '123456789012345678901234567890', '123456789012345678901234567890'
-assert_equal 'Integer', '123456789012345678901234567890.class'
-assert_equal '2.0', '2.0'
-assert_equal 'Float', '1.3.class'
-
-# self
-assert_equal 'main', 'self'
-assert_equal 'Object', 'self.class'
-
-# string literal
-assert_equal 'a', '?a'
-assert_equal 'String', '?a.class'
-assert_equal 'A', '?A'
-assert_equal 'String', '?A.class'
-assert_equal "\n", '?\n'
-assert_equal 'String', '?\n.class'
-assert_equal ' ', '?\ '
-assert_equal 'String', '?\ .class'
-assert_equal 'string', "'string'"
-assert_equal 'string', '"string"'
-assert_equal 'string', '%(string)'
-assert_equal 'string', '%q(string)'
-assert_equal 'string', '%Q(string)'
-assert_equal 'string string', '"string string"'
-assert_equal ' ', '" "'
-assert_equal "\0", '"\0"'
-assert_equal "\1", '"\1"'
-assert_equal "3", '"\x33"'
-assert_equal "\n", '"\n"'
-
-# dynamic string literal
-assert_equal '2', '"#{1 + 1}"'
-assert_equal '16', '"#{2 ** 4}"'
-assert_equal 'string', 's = "string"; "#{s}"'
-
-# dynamic symbol literal
-assert_equal 'a3c', ':"a#{1+2}c"'
-assert_equal ':a3c', ':"a#{1+2}c".inspect'
-assert_equal 'Symbol', ':"a#{1+2}c".class'
-
-# xstring
-assert_equal "foo\n", %q(`echo foo`)
-assert_equal "foo\n", %q(s = "foo"; `echo #{s}`)
-
-# regexp
-assert_equal '', '//.source'
-assert_equal 'Regexp', '//.class'
-assert_equal '0', '// =~ "a"'
-assert_equal '0', '// =~ ""'
-assert_equal 'a', '/a/.source'
-assert_equal 'Regexp', '/a/.class'
-assert_equal '0', '/a/ =~ "a"'
-assert_equal '0', '/test/ =~ "test"'
-assert_equal '', '/test/ =~ "tes"'
-assert_equal '0', 're = /test/; re =~ "test"'
-assert_equal '0', 'str = "test"; /test/ =~ str'
-assert_equal '0', 're = /test/; str = "test"; re =~ str'
-
-# dynamic regexp
-assert_equal 'regexp', %q(/re#{'ge'}xp/.source)
-assert_equal 'Regexp', %q(/re#{'ge'}xp/.class)
-
-# array
-assert_equal 'Array', '[].class'
-assert_equal '0', '[].size'
-assert_equal '0', '[].length'
-assert_equal '[]', '[].inspect'
-assert_equal 'Array', '[0].class'
-assert_equal '1', '[3].size'
-assert_equal '[3]', '[3].inspect'
-assert_equal '3', 'a = [3]; a[0]'
-assert_equal 'Array', '[1,2].class'
-assert_equal '2', '[1,2].size'
-assert_equal '[1, 2]', '[1,2].inspect'
-assert_equal 'Array', '[1,2,3,4,5].class'
-assert_equal '5', '[1,2,3,4,5].size'
-assert_equal '[1, 2, 3, 4, 5]', '[1,2,3,4,5].inspect'
-assert_equal '1', 'a = [1,2]; a[0]'
-assert_equal '2', 'a = [1,2]; a[1]'
-assert_equal 'Array', 'a = [1 + 2, 3 + 4, 5 + 6]; a.class'
-assert_equal '[3, 7, 11]', 'a = [1 + 2, 3 + 4, 5 + 6]; a.inspect'
-assert_equal '7', 'a = [1 + 2, 3 + 4, 5 + 6]; a[1]'
-assert_equal '1', '([0][0] += 1)'
-assert_equal '1', '([2][0] -= 1)'
-assert_equal 'Array', 'a = [obj = Object.new]; a.class'
-assert_equal '1', 'a = [obj = Object.new]; a.size'
-assert_equal 'true', 'a = [obj = Object.new]; a[0] == obj'
-assert_equal '5', 'a = [1,2,3]; a[1] = 5; a[1]'
-assert_equal 'bar', '[*:foo];:bar'
-assert_equal '[1, 2]', 'def nil.to_a; [2]; end; [1, *nil]'
-assert_equal '[1, 2]', 'def nil.to_a; [1, 2]; end; [*nil]'
-assert_equal '[0, 1, {2=>3}]', '[0, *[1], 2=>3]', "[ruby-dev:31592]"
-
-
-# hash
-assert_equal 'Hash', '{}.class'
-assert_equal '{}', '{}.inspect'
-assert_equal 'Hash', '{1=>2}.class'
-assert_equal '{1=>2}', '{1=>2}.inspect'
-assert_equal '2', 'h = {1 => 2}; h[1]'
-assert_equal '0', 'h = {1 => 2}; h.delete(1); h.size'
-assert_equal '', 'h = {1 => 2}; h.delete(1); h[1]'
-assert_equal '2', 'h = {"string" => "literal", "goto" => "hell"}; h.size'
-assert_equal 'literal', 'h = {"string"=>"literal", "goto"=>"hell"}; h["string"]'
-assert_equal 'hell', 'h = {"string"=>"literal", "goto"=>"hell"}; h["goto"]'
-
-# range
-assert_equal 'Range', '(1..2).class'
-assert_equal '1..2', '(1..2).inspect'
-assert_equal '1', '(1..2).begin'
-assert_equal '2', '(1..2).end'
-assert_equal 'false', '(1..2).exclude_end?'
-assert_equal 'Range', 'r = 1..2; r.class'
-assert_equal '1..2', 'r = 1..2; r.inspect'
-assert_equal '1', 'r = 1..2; r.begin'
-assert_equal '2', 'r = 1..2; r.end'
-assert_equal 'false', 'r = 1..2; r.exclude_end?'
-assert_equal 'Range', '(1...3).class'
-assert_equal '1...3', '(1...3).inspect'
-assert_equal '1', '(1...3).begin'
-assert_equal '3', '(1...3).end'
-assert_equal 'true', '(1...3).exclude_end?'
-assert_equal 'Range', 'r = (1...3); r.class'
-assert_equal '1...3', 'r = (1...3); r.inspect'
-assert_equal '1', 'r = (1...3); r.begin'
-assert_equal '3', 'r = (1...3); r.end'
-assert_equal 'true', 'r = (1...3); r.exclude_end?'
-assert_equal 'Range', 'r = (1+2 .. 3+4); r.class'
-assert_equal '3..7', 'r = (1+2 .. 3+4); r.inspect'
-assert_equal '3', 'r = (1+2 .. 3+4); r.begin'
-assert_equal '7', 'r = (1+2 .. 3+4); r.end'
-assert_equal 'false', 'r = (1+2 .. 3+4); r.exclude_end?'
-assert_equal 'Range', 'r = (1+2 ... 3+4); r.class'
-assert_equal '3...7', 'r = (1+2 ... 3+4); r.inspect'
-assert_equal '3', 'r = (1+2 ... 3+4); r.begin'
-assert_equal '7', 'r = (1+2 ... 3+4); r.end'
-assert_equal 'true', 'r = (1+2 ... 3+4); r.exclude_end?'
-assert_equal 'Range', 'r = ("a".."c"); r.class'
-assert_equal '"a".."c"', 'r = ("a".."c"); r.inspect'
-assert_equal 'a', 'r = ("a".."c"); r.begin'
-assert_equal 'c', 'r = ("a".."c"); r.end'
-
-assert_equal 'String', '__FILE__.class'
-assert_equal 'Integer', '__LINE__.class'
-
-###
-
-assert_equal 'ok', %q{
- # this cause "called on terminated object".
- ObjectSpace.each_object(Module) {|m| m.name.inspect }
- :ok
-}
-
-assert_normal_exit %q{
- begin
- r = 0**-1
- r + r
- rescue
- end
-}, '[ruby-dev:34524]'
-
-assert_normal_exit %q{
- begin
- r = Marshal.load("\x04\bU:\rRational[\ai\x06i\x05")
- r + r
- rescue
- end
-}, '[ruby-dev:34536]'
-
-assert_equal 'ok', %q{
- "#{}""#{}ok"
-}, '[ruby-dev:38968]'
-
-assert_equal 'ok', %q{
- "#{}o""#{}k""#{}"
-}, '[ruby-core:25284]'
-
-assert_equal 'ok', %q{ # long array literal
- x = nil
- eval "a = [#{(1..10_000).map{'x'}.join(", ")}]"
- :ok
-}
-
-assert_equal 'ok', %q{ # long array literal (optimized)
- eval "a = [#{(1..10_000).to_a.join(", ")}]"
- :ok
-}
-
-assert_equal 'ok', %q{ # long hash literal
- x = nil
- eval "a = {#{(1..10_000).map{|n| "#{n} => x"}.join(', ')}}"
- :ok
-}
-
-assert_equal 'ok', %q{ # long hash literal (optimized)
- eval "a = {#{(1..10_000).map{|n| "#{n} => #{n}"}.join(', ')}}"
- :ok
-}
-
-assert_equal 'ok', %q{ # Bug #15536
- eval <<-END
- {
- **{
- a0: nil, a1: nil, a2: nil, a3: nil, a4: nil, a5: nil, a6: nil, a7: nil, a8: nil,
- },
- a0: nil, a1: nil, a2: nil, a3: nil, a4: nil, a5: nil, a6: nil, a7: nil, a8: nil,
- **{
- c: nil
- },
- b0: nil, b1: nil, b2: nil, b3: nil, b4: nil, b5: nil, b6: nil, b7: nil, b8: nil,
- b9: nil, b10: nil, b11: nil, b12: nil, b13: nil, b14: nil, b15: nil, b16: nil,
- b17: nil, b18: nil, b19: nil, b20: nil, b21: nil,
- }
- END
- :ok
-}
-
-assert_equal 'ok', %q{
- [print(:ok), exit] # void literal with side-effect
- :dummy
-}
diff --git a/bootstraptest/test_literal_suffix.rb b/bootstraptest/test_literal_suffix.rb
deleted file mode 100644
index c36fa7078f..0000000000
--- a/bootstraptest/test_literal_suffix.rb
+++ /dev/null
@@ -1,54 +0,0 @@
-# numbers with suffix
-assert_equal '0/1', '0r'
-assert_equal 'Rational', '0r.class'
-assert_equal '1/1', '1r'
-assert_equal 'Rational', '1r.class'
-assert_equal '-1/1', '-1r'
-assert_equal 'Rational', '(-1r).class'
-assert_equal '1/1', '0x1r'
-assert_equal 'Rational', '0x1r.class'
-assert_equal '1/1', '0b1r'
-assert_equal 'Rational', '0b1r.class'
-assert_equal '1/1', '0d1r'
-assert_equal 'Rational', '0d1r.class'
-assert_equal '1/1', '0o1r'
-assert_equal 'Rational', '0o1r.class'
-assert_equal '1/1', '01r'
-assert_equal 'Rational', '01r.class'
-assert_equal '6/5', '1.2r'
-assert_equal 'Rational', '1.2r.class'
-assert_equal '-6/5', '-1.2r'
-assert_equal 'Rational', '(-1.2r).class'
-assert_equal '0+0i', '0i'
-assert_equal 'Complex', '0i.class'
-assert_equal '0+1i', '1i'
-assert_equal 'Complex', '1i.class'
-assert_equal '0+1i', '0x1i'
-assert_equal 'Complex', '0x1i.class'
-assert_equal '0+1i', '0b1i'
-assert_equal 'Complex', '0b1i.class'
-assert_equal '0+1i', '0d1i'
-assert_equal 'Complex', '0d1i.class'
-assert_equal '0+1i', '0o1i'
-assert_equal 'Complex', '0o1i.class'
-assert_equal '0+1i', '01i'
-assert_equal 'Complex', '01i.class'
-assert_equal '0+1.2i', '1.2i'
-assert_equal 'Complex', '1.2i.class'
-assert_equal '0+1/1i', '1ri'
-assert_equal 'Complex', '1ri.class'
-assert_equal '0+6/5i', '1.2ri'
-assert_equal 'Complex', '1.2ri.class'
-assert_equal '0+10.0i', '1e1i'
-assert_equal 'Complex', '1e1i.class'
-assert_equal '1', '1if true'
-assert_equal '1', '1rescue nil'
-assert_equal '10000000000000000001/10000000000000000000',
- '1.0000000000000000001r'
-
-assert_equal 'syntax error, unexpected local variable or method, expecting end-of-input',
- %q{begin eval('1ir', nil, '', 0); rescue SyntaxError => e; e.message[/\A:(?:\d+:)? (.*)/, 1] end}
-assert_equal 'syntax error, unexpected local variable or method, expecting end-of-input',
- %q{begin eval('1.2ir', nil, '', 0); rescue SyntaxError => e; e.message[/\A:(?:\d+:)? (.*)/, 1] end}
-assert_equal 'syntax error, unexpected local variable or method, expecting end-of-input',
- %q{begin eval('1e1r', nil, '', 0); rescue SyntaxError => e; e.message[/\A:(?:\d+:)? (.*)/, 1] end}
diff --git a/bootstraptest/test_load.rb b/bootstraptest/test_load.rb
deleted file mode 100644
index e63c93a8f4..0000000000
--- a/bootstraptest/test_load.rb
+++ /dev/null
@@ -1,27 +0,0 @@
-assert_equal 'ok', %q{
- open("require-lock-test.rb", "w") {|f|
- f.puts "sleep 0.1"
- f.puts "module M"
- f.puts "end"
- }
- $:.unshift Dir.pwd
- vs = (1..2).map {|i|
- Thread.start {
- require "require-lock-test"
- M
- }
- }.map {|t| t.value }
- vs[0] == M && vs[1] == M ? :ok : :ng
-}, '[ruby-dev:32048]'
-
-assert_equal 'ok', %q{
- %w[a a/foo b].each {|d| Dir.mkdir(d)}
- open("b/foo", "w") {|f| f.puts "$ok = :ok"}
- $:.replace(%w[a b])
- begin
- load "foo"
- $ok
- rescue => e
- e.message
- end
-}, '[ruby-dev:38097]'
diff --git a/bootstraptest/test_marshal.rb b/bootstraptest/test_marshal.rb
deleted file mode 100644
index 7e34176169..0000000000
--- a/bootstraptest/test_marshal.rb
+++ /dev/null
@@ -1,5 +0,0 @@
-
-assert_normal_exit %q{
- Marshal.load(Marshal.dump({"k"=>"v"}), lambda {|v| v})
-}
-
diff --git a/bootstraptest/test_massign.rb b/bootstraptest/test_massign.rb
deleted file mode 100644
index 0f63dd424a..0000000000
--- a/bootstraptest/test_massign.rb
+++ /dev/null
@@ -1,183 +0,0 @@
-assert_equal '[[1], 2, 3]', '*v1, (a, b) = [1,[2, 3]]; [v1, a, b]'
-assert_equal '[[1], 2, 3]', '*v1,(*), (a, b) = [1,:x,[2, 3]]; [v1, a, b]'
-
-assert_equal '[]', '*a = *nil; a'
-assert_equal '[nil]', '*a = nil; a'
-assert_equal '2', 'a, a = 1, 2; a', "[ruby-dev:31522]"
-assert_equal '[1, 2]', 'a, b = 1, 2'
-assert_equal '[1, 2]', %q{
- ans = []
- trace_var(:$a){|v| ans << v}
- trace_var(:$b){|v| ans << v}
- $a, $b = 1, 2
- ans
-}
-
-assert_equal 'ok', %q{
- r = :ok
- :ng.tap {|(r)|}
- r
-}, '[ruby-dev:31507]'
-
-=begin
-# generated by this script:
-
-3.times{|i|
- 8.times{|e|
- ary = (0...e).to_a
- a,b,c,d,e,f = nil
- vals = %w(a b c d e f)
- vals[i] = '*' + vals[i]
- program = "#{vals.join(", ")} = *ary"
- eval(program)
- ans = [a,b,c,d,e,f]
- puts %Q{
- assert_equal "#{ans.inspect}", %q{
- ary = #{ary.inspect}
- #{program}; [a, b, c, d, e, f]
- }}
- }
-}
-=end
-
- assert_equal "[[], nil, nil, nil, nil, nil]", %q{
- ary = []
- *a, b, c, d, e, f = *ary; [a, b, c, d, e, f]
- }
-
- assert_equal "[[], 0, nil, nil, nil, nil]", %q{
- ary = [0]
- *a, b, c, d, e, f = *ary; [a, b, c, d, e, f]
- }
-
- assert_equal "[[], 0, 1, nil, nil, nil]", %q{
- ary = [0, 1]
- *a, b, c, d, e, f = *ary; [a, b, c, d, e, f]
- }
-
- assert_equal "[[], 0, 1, 2, nil, nil]", %q{
- ary = [0, 1, 2]
- *a, b, c, d, e, f = *ary; [a, b, c, d, e, f]
- }
-
- assert_equal "[[], 0, 1, 2, 3, nil]", %q{
- ary = [0, 1, 2, 3]
- *a, b, c, d, e, f = *ary; [a, b, c, d, e, f]
- }
-
- assert_equal "[[], 0, 1, 2, 3, 4]", %q{
- ary = [0, 1, 2, 3, 4]
- *a, b, c, d, e, f = *ary; [a, b, c, d, e, f]
- }
-
- assert_equal "[[0], 1, 2, 3, 4, 5]", %q{
- ary = [0, 1, 2, 3, 4, 5]
- *a, b, c, d, e, f = *ary; [a, b, c, d, e, f]
- }
-
- assert_equal "[[0, 1], 2, 3, 4, 5, 6]", %q{
- ary = [0, 1, 2, 3, 4, 5, 6]
- *a, b, c, d, e, f = *ary; [a, b, c, d, e, f]
- }
-
- assert_equal "[nil, [], nil, nil, nil, nil]", %q{
- ary = []
- a, *b, c, d, e, f = *ary; [a, b, c, d, e, f]
- }
-
- assert_equal "[0, [], nil, nil, nil, nil]", %q{
- ary = [0]
- a, *b, c, d, e, f = *ary; [a, b, c, d, e, f]
- }
-
- assert_equal "[0, [], 1, nil, nil, nil]", %q{
- ary = [0, 1]
- a, *b, c, d, e, f = *ary; [a, b, c, d, e, f]
- }
-
- assert_equal "[0, [], 1, 2, nil, nil]", %q{
- ary = [0, 1, 2]
- a, *b, c, d, e, f = *ary; [a, b, c, d, e, f]
- }
-
- assert_equal "[0, [], 1, 2, 3, nil]", %q{
- ary = [0, 1, 2, 3]
- a, *b, c, d, e, f = *ary; [a, b, c, d, e, f]
- }
-
- assert_equal "[0, [], 1, 2, 3, 4]", %q{
- ary = [0, 1, 2, 3, 4]
- a, *b, c, d, e, f = *ary; [a, b, c, d, e, f]
- }
-
- assert_equal "[0, [1], 2, 3, 4, 5]", %q{
- ary = [0, 1, 2, 3, 4, 5]
- a, *b, c, d, e, f = *ary; [a, b, c, d, e, f]
- }
-
- assert_equal "[0, [1, 2], 3, 4, 5, 6]", %q{
- ary = [0, 1, 2, 3, 4, 5, 6]
- a, *b, c, d, e, f = *ary; [a, b, c, d, e, f]
- }
-
- assert_equal "[nil, nil, [], nil, nil, nil]", %q{
- ary = []
- a, b, *c, d, e, f = *ary; [a, b, c, d, e, f]
- }
-
- assert_equal "[0, nil, [], nil, nil, nil]", %q{
- ary = [0]
- a, b, *c, d, e, f = *ary; [a, b, c, d, e, f]
- }
-
- assert_equal "[0, 1, [], nil, nil, nil]", %q{
- ary = [0, 1]
- a, b, *c, d, e, f = *ary; [a, b, c, d, e, f]
- }
-
- assert_equal "[0, 1, [], 2, nil, nil]", %q{
- ary = [0, 1, 2]
- a, b, *c, d, e, f = *ary; [a, b, c, d, e, f]
- }
-
- assert_equal "[0, 1, [], 2, 3, nil]", %q{
- ary = [0, 1, 2, 3]
- a, b, *c, d, e, f = *ary; [a, b, c, d, e, f]
- }
-
- assert_equal "[0, 1, [], 2, 3, 4]", %q{
- ary = [0, 1, 2, 3, 4]
- a, b, *c, d, e, f = *ary; [a, b, c, d, e, f]
- }
-
- assert_equal "[0, 1, [2], 3, 4, 5]", %q{
- ary = [0, 1, 2, 3, 4, 5]
- a, b, *c, d, e, f = *ary; [a, b, c, d, e, f]
- }
-
- assert_equal "[0, 1, [2, 3], 4, 5, 6]", %q{
- ary = [0, 1, 2, 3, 4, 5, 6]
- a, b, *c, d, e, f = *ary; [a, b, c, d, e, f]
- }
-
-
-#
-assert_equal 'ok', %q{
- a,s=[],"aaa"
- 300.times { a<<s; s=s.succ }
- eval <<-END__
- GC.stress=true
- Fiber.new do
- #{ a.join(",") },*zzz=1
- end.resume
- END__
- :ok
-}, '[ruby-dev:32581]'
-
-assert_equal 'ok', %q{
- while true
- *, z = 1
- break
- end
- :ok
-}, '[ruby-dev:32892]'
diff --git a/bootstraptest/test_method.rb b/bootstraptest/test_method.rb
deleted file mode 100644
index 3462aa9434..0000000000
--- a/bootstraptest/test_method.rb
+++ /dev/null
@@ -1,1192 +0,0 @@
-# regular argument
-assert_equal '1', 'def m() 1 end; m()'
-assert_equal '1', 'def m(a) a end; m(1)'
-assert_equal '[1, 2]', 'def m(a,b) [a, b] end; m(1,2)'
-assert_equal '[1, 2, 3]', 'def m(a,b,c) [a, b, c] end; m(1,2,3)'
-assert_match /\Awrong number of arguments \(.*\b1\b.* 0\)\z/, %q{
- def m; end
- begin
- m(1)
- rescue => e
- e.message
- end
-}
-
-assert_match /\Awrong number of arguments \(.*\b0\b.* 1\)\z/, %q{
- def m a; end
- begin
- m
- rescue => e
- e.message
- end
-}
-
-# default argument
-assert_equal '1', 'def m(x=1) x end; m()'
-assert_equal '1', 'def m(x=7) x end; m(1)'
-assert_equal '1', 'def m(a,x=1) x end; m(7)'
-assert_equal '1', 'def m(a,x=7) x end; m(7,1)'
-assert_equal '1', 'def m(a,b,x=1) x end; m(7,7)'
-assert_equal '1', 'def m(a,b,x=7) x end; m(7,7,1)'
-assert_equal '1', 'def m(a,x=1,y=1) x end; m(7)'
-assert_equal '1', 'def m(a,x=1,y=1) y end; m(7)'
-assert_equal '1', 'def m(a,x=7,y=1) x end; m(7,1)'
-assert_equal '1', 'def m(a,x=7,y=1) y end; m(7,1)'
-assert_equal '1', 'def m(a,x=7,y=7) x end; m(7,1,1)'
-assert_equal '1', 'def m(a,x=7,y=7) y end; m(7,1,1)'
-
-# rest argument
-assert_equal '[]', 'def m(*a) a end; m().inspect'
-assert_equal '[1]', 'def m(*a) a end; m(1).inspect'
-assert_equal '[1, 2]', 'def m(*a) a end; m(1,2).inspect'
-assert_equal '[]', 'def m(x,*a) a end; m(7).inspect'
-assert_equal '[1]', 'def m(x,*a) a end; m(7,1).inspect'
-assert_equal '[1, 2]', 'def m(x,*a) a end; m(7,1,2).inspect'
-assert_equal '[]', 'def m(x,y,*a) a end; m(7,7).inspect'
-assert_equal '[1]', 'def m(x,y,*a) a end; m(7,7,1).inspect'
-assert_equal '[1, 2]', 'def m(x,y,*a) a end; m(7,7,1,2).inspect'
-assert_equal '[]', 'def m(x,y=7,*a) a end; m(7).inspect'
-assert_equal '[]', 'def m(x,y,z=7,*a) a end; m(7,7).inspect'
-assert_equal '[]', 'def m(x,y,z=7,*a) a end; m(7,7,7).inspect'
-assert_equal '[]', 'def m(x,y,z=7,zz=7,*a) a end; m(7,7,7).inspect'
-assert_equal '[]', 'def m(x,y,z=7,zz=7,*a) a end; m(7,7,7,7).inspect'
-assert_equal '1', 'def m(x,y,z=7,zz=1,*a) zz end; m(7,7,7).inspect'
-assert_equal '1', 'def m(x,y,z=7,zz=1,*a) zz end; m(7,7,7).inspect'
-assert_equal '1', 'def m(x,y,z=7,zz=7,*a) zz end; m(7,7,7,1).inspect'
-
-# block argument
-assert_equal 'Proc', 'def m(&block) block end; m{}.class'
-assert_equal 'nil', 'def m(&block) block end; m().inspect'
-assert_equal 'Proc', 'def m(a,&block) block end; m(7){}.class'
-assert_equal 'nil', 'def m(a,&block) block end; m(7).inspect'
-assert_equal '1', 'def m(a,&block) a end; m(1){}'
-assert_equal 'Proc', 'def m(a,b=nil,&block) block end; m(7){}.class'
-assert_equal 'nil', 'def m(a,b=nil,&block) block end; m(7).inspect'
-assert_equal 'Proc', 'def m(a,b=nil,&block) block end; m(7,7){}.class'
-assert_equal '1', 'def m(a,b=nil,&block) b end; m(7,1){}'
-assert_equal 'Proc', 'def m(a,b=nil,*c,&block) block end; m(7){}.class'
-assert_equal 'nil', 'def m(a,b=nil,*c,&block) block end; m(7).inspect'
-assert_equal '1', 'def m(a,b=nil,*c,&block) a end; m(1).inspect'
-assert_equal '1', 'def m(a,b=1,*c,&block) b end; m(7).inspect'
-assert_equal '1', 'def m(a,b=7,*c,&block) b end; m(7,1).inspect'
-assert_equal '[1]', 'def m(a,b=7,*c,&block) c end; m(7,7,1).inspect'
-
-# splat
-assert_equal '1', 'def m(a) a end; m(*[1])'
-assert_equal '1', 'def m(x,a) a end; m(7,*[1])'
-assert_equal '1', 'def m(x,y,a) a end; m(7,7,*[1])'
-assert_equal '1', 'def m(a,b) a end; m(*[1,7])'
-assert_equal '1', 'def m(a,b) b end; m(*[7,1])'
-assert_equal '1', 'def m(x,a,b) b end; m(7,*[7,1])'
-assert_equal '1', 'def m(x,y,a,b) b end; m(7,7,*[7,1])'
-assert_equal '1', 'def m(a,b,c) a end; m(*[1,7,7])'
-assert_equal '1', 'def m(a,b,c) b end; m(*[7,1,7])'
-assert_equal '1', 'def m(a,b,c) c end; m(*[7,7,1])'
-assert_equal '1', 'def m(x,a,b,c) a end; m(7,*[1,7,7])'
-assert_equal '1', 'def m(x,y,a,b,c) a end; m(7,7,*[1,7,7])'
-
-# hash argument
-assert_equal '1', 'def m(h) h end; m(7=>1)[7]'
-assert_equal '1', 'def m(h) h end; m(7=>1).size'
-assert_equal '1', 'def m(h) h end; m(7=>1, 8=>7)[7]'
-assert_equal '2', 'def m(h) h end; m(7=>1, 8=>7).size'
-assert_equal '1', 'def m(h) h end; m(7=>1, 8=>7, 9=>7)[7]'
-assert_equal '3', 'def m(h) h end; m(7=>1, 8=>7, 9=>7).size'
-assert_equal '1', 'def m(x,h) h end; m(7, 7=>1)[7]'
-assert_equal '1', 'def m(x,h) h end; m(7, 7=>1, 8=>7)[7]'
-assert_equal '1', 'def m(x,h) h end; m(7, 7=>1, 8=>7, 9=>7)[7]'
-assert_equal '1', 'def m(x,y,h) h end; m(7,7, 7=>1)[7]'
-assert_equal '1', 'def m(x,y,h) h end; m(7,7, 7=>1, 8=>7)[7]'
-assert_equal '1', 'def m(x,y,h) h end; m(7,7, 7=>1, 8=>7, 9=>7)[7]'
-
-# block argument
-assert_equal '1', %q(def m(&block) mm(&block) end
- def mm() yield 1 end
- m {|a| a })
-assert_equal '1', %q(def m(x,&block) mm(x,&block) end
- def mm(x) yield 1 end
- m(7) {|a| a })
-assert_equal '1', %q(def m(x,y,&block) mm(x,y,&block) end
- def mm(x,y) yield 1 end
- m(7,7) {|a| a })
-
-# recursive call
-assert_equal '1', %q(def m(n) n == 0 ? 1 : m(n-1) end; m(5))
-
-# instance method
-assert_equal '1', %q(class C; def m() 1 end end; C.new.m)
-assert_equal '1', %q(class C; def m(a) a end end; C.new.m(1))
-assert_equal '1', %q(class C; def m(a = 1) a end end; C.new.m)
-assert_equal '[1]', %q(class C; def m(*a) a end end; C.new.m(1).inspect)
-assert_equal '1', %q( class C
- def m() mm() end
- def mm() 1 end
- end
- C.new.m )
-
-# singleton method (const)
-assert_equal '1', %q(class C; def C.m() 1 end end; C.m)
-assert_equal '1', %q(class C; def C.m(a) a end end; C.m(1))
-assert_equal '1', %q(class C; def C.m(a = 1) a end end; C.m)
-assert_equal '[1]', %q(class C; def C.m(*a) a end end; C.m(1).inspect)
-assert_equal '1', %q(class C; end; def C.m() 1 end; C.m)
-assert_equal '1', %q(class C; end; def C.m(a) a end; C.m(1))
-assert_equal '1', %q(class C; end; def C.m(a = 1) a end; C.m)
-assert_equal '[1]', %q(class C; end; def C.m(*a) a end; C.m(1).inspect)
-assert_equal '1', %q(class C; def m() 7 end end; def C.m() 1 end; C.m)
-assert_equal '1', %q( class C
- def C.m() mm() end
- def C.mm() 1 end
- end
- C.m )
-
-# singleton method (lvar)
-assert_equal '1', %q(obj = Object.new; def obj.m() 1 end; obj.m)
-assert_equal '1', %q(obj = Object.new; def obj.m(a) a end; obj.m(1))
-assert_equal '1', %q(obj = Object.new; def obj.m(a=1) a end; obj.m)
-assert_equal '[1]', %q(obj = Object.new; def obj.m(*a) a end; obj.m(1))
-assert_equal '1', %q(class C; def m() 7 end; end
- obj = C.new
- def obj.m() 1 end
- obj.m)
-
-# inheritance
-assert_equal '1', %q(class A; def m(a) a end end
- class B < A; end
- B.new.m(1))
-assert_equal '1', %q(class A; end
- class B < A; def m(a) a end end
- B.new.m(1))
-assert_equal '1', %q(class A; def m(a) a end end
- class B < A; end
- class C < B; end
- C.new.m(1))
-
-# include
-assert_equal '1', %q(class A; def m(a) a end end
- module M; end
- class B < A; include M; end
- B.new.m(1))
-assert_equal '1', %q(class A; end
- module M; def m(a) a end end
- class B < A; include M; end
- B.new.m(1))
-
-# alias
-assert_equal '1', %q( def a() 1 end
- alias m a
- m() )
-assert_equal '1', %q( class C
- def a() 1 end
- alias m a
- end
- C.new.m )
-assert_equal '1', %q( class C
- def a() 1 end
- alias :m a
- end
- C.new.m )
-assert_equal '1', %q( class C
- def a() 1 end
- alias m :a
- end
- C.new.m )
-assert_equal '1', %q( class C
- def a() 1 end
- alias :m :a
- end
- C.new.m )
-assert_equal '1', %q( class C
- def a() 1 end
- alias m a
- undef a
- end
- C.new.m )
-
-# undef
-assert_equal '1', %q( class C
- def m() end
- undef m
- end
- begin C.new.m; rescue NoMethodError; 1 end )
-assert_equal '1', %q( class A
- def m() end
- end
- class C < A
- def m() end
- undef m
- end
- begin C.new.m; rescue NoMethodError; 1 end )
-assert_equal '1', %q( class A; def a() end end # [yarv-dev:999]
- class B < A
- def b() end
- undef a, b
- end
- begin B.new.a; rescue NoMethodError; 1 end )
-assert_equal '1', %q( class A; def a() end end # [yarv-dev:999]
- class B < A
- def b() end
- undef a, b
- end
- begin B.new.b; rescue NoMethodError; 1 end )
-
-assert_equal '3', %q{
- def m1
- 1
- end
- alias m2 m1
- alias :"#{'m3'}" m1
- m1 + m2 + m3
-}, '[ruby-dev:32308]'
-assert_equal '1', %q{
- def foobar
- end
- undef :"foo#{:bar}"
- 1
-}, '[ruby-dev:32308]'
-assert_equal '1', %q{
- def foobar
- 1
- end
- alias :"bar#{:baz}" :"foo#{:bar}"
- barbaz
-}, '[ruby-dev:32308]'
-
-# private
-assert_equal '1', %q( class C
- def m() mm() end
- def mm() 1 end
- private :mm
- end
- C.new.m )
-assert_equal '1', %q( class C
- def m() 7 end
- private :m
- end
- begin C.m; rescue NoMethodError; 1 end )
-assert_equal '1', %q( class C
- def C.m() mm() end
- def C.mm() 1 end
- private_class_method :mm
- end
- C.m )
-assert_equal '1', %q( class C
- def C.m() 7 end
- private_class_method :m
- end
- begin C.m; rescue NoMethodError; 1 end )
-assert_equal '1', %q( class C; def m() 1 end end
- C.new.m # cache
- class C
- alias mm m; private :mm
- end
- C.new.m
- begin C.new.mm; 7; rescue NoMethodError; 1 end )
-
-# nested method
-assert_equal '1', %q( class C
- def m
- def mm() 1 end
- end
- end
- C.new.m
- C.new.mm )
-assert_equal '1', %q( class C
- def m
- def mm() 1 end
- end
- end
- instance_eval "C.new.m; C.new.mm" )
-
-# method_missing
-assert_equal ':m', %q( class C
- def method_missing(mid, *args) mid end
- end
- C.new.m.inspect )
-assert_equal ':mm', %q( class C
- def method_missing(mid, *args) mid end
- end
- C.new.mm.inspect )
-assert_equal '[1, 2]', %q( class C
- def method_missing(mid, *args) args end
- end
- C.new.m(1,2).inspect )
-assert_equal '1', %q( class C
- def method_missing(mid, *args) yield 1 end
- end
- C.new.m {|a| a })
-assert_equal 'nil', %q( class C
- def method_missing(mid, *args, &block) block end
- end
- C.new.m.inspect )
-
-# send
-assert_equal '1', %q( class C; def m() 1 end end;
- C.new.__send__(:m) )
-assert_equal '1', %q( class C; def m() 1 end end;
- C.new.send(:m) )
-assert_equal '1', %q( class C; def m(a) a end end;
- C.new.send(:m,1) )
-assert_equal '1', %q( class C; def m(a,b) a end end;
- C.new.send(:m,1,7) )
-assert_equal '1', %q( class C; def m(x,a=1) a end end;
- C.new.send(:m,7) )
-assert_equal '1', %q( class C; def m(x,a=7) a end end;
- C.new.send(:m,7,1) )
-assert_equal '[1, 2]', %q( class C; def m(*a) a end end;
- C.new.send(:m,1,2).inspect )
-assert_equal '1', %q( class C; def m() 7 end; private :m end
- begin C.new.public_send(:m); rescue NoMethodError; 1 end )
-assert_equal '1', %q( class C; def m() 1 end; private :m end
- C.new.send(:m) )
-
-# with block
-assert_equal '[[:ok1, :foo], [:ok2, :foo, :bar]]',
-%q{
- class C
- def [](a)
- $ary << [yield, a]
- end
- def []=(a, b)
- $ary << [yield, a, b]
- end
- end
-
- $ary = []
- C.new[:foo, &lambda{:ok1}]
- C.new[:foo, &lambda{:ok2}] = :bar
- $ary
-}
-
-# with
-assert_equal '[:ok1, [:ok2, 11]]', %q{
- class C
- def []
- $ary << :ok1
- 10
- end
- def []=(a)
- $ary << [:ok2, a]
- end
- end
- $ary = []
- C.new[]+=1
- $ary
-}
-
-# splat and block arguments
-assert_equal %q{[[[:x, :y, :z], NilClass], [[1, :x, :y, :z], NilClass], [[1, 2, :x, :y, :z], NilClass], [[:obj], NilClass], [[1, :obj], NilClass], [[1, 2, :obj], NilClass], [[], Proc], [[1], Proc], [[1, 2], Proc], [[], Proc], [[1], Proc], [[1, 2], Proc], [[:x, :y, :z], Proc], [[1, :x, :y, :z], Proc], [[1, 2, :x, :y, :z], Proc]]}, %q{
-def m(*args, &b)
- $result << [args, b.class]
-end
-$result = []
-ary = [:x, :y, :z]
-obj = :obj
-b = Proc.new{}
-
-m(*ary)
-m(1,*ary)
-m(1,2,*ary)
-m(*obj)
-m(1,*obj)
-m(1,2,*obj)
-m(){}
-m(1){}
-m(1,2){}
-m(&b)
-m(1,&b)
-m(1,2,&b)
-m(*ary,&b)
-m(1,*ary,&b)
-m(1,2,*ary,&b)
-$result
-}
-
-# aset and splat
-assert_equal '4', %q{class Foo;def []=(a,b,c,d);end;end;Foo.new[1,*a=[2,3]]=4}
-assert_equal '4', %q{class Foo;def []=(a,b,c,d);end;end;def m(&blk)Foo.new[1,*a=[2,3],&blk]=4;end;m{}}
-
-# post test
-assert_equal %q{[1, 2, :o1, :o2, [], 3, 4, NilClass, nil, nil]}, %q{
-def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &b)
- x, y = :x, :y if $foo
- [m1, m2, o1, o2, r, p1, p2, b.class, x, y]
-end
-; m(1, 2, 3, 4)}
-
-assert_equal %q{[1, 2, 3, :o2, [], 4, 5, NilClass, nil, nil]}, %q{
-def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &b)
- x, y = :x, :y if $foo
- [m1, m2, o1, o2, r, p1, p2, b.class, x, y]
-end
-; m(1, 2, 3, 4, 5)}
-
-assert_equal %q{[1, 2, 3, 4, [], 5, 6, NilClass, nil, nil]}, %q{
-def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &b)
- x, y = :x, :y if $foo
- [m1, m2, o1, o2, r, p1, p2, b.class, x, y]
-end
-; m(1, 2, 3, 4, 5, 6)}
-
-assert_equal %q{[1, 2, 3, 4, [5], 6, 7, NilClass, nil, nil]}, %q{
-def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &b)
- x, y = :x, :y if $foo
- [m1, m2, o1, o2, r, p1, p2, b.class, x, y]
-end
-; m(1, 2, 3, 4, 5, 6, 7)}
-
-assert_equal %q{[1, 2, 3, 4, [5, 6], 7, 8, NilClass, nil, nil]}, %q{
-def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &b)
- x, y = :x, :y if $foo
- [m1, m2, o1, o2, r, p1, p2, b.class, x, y]
-end
-; m(1, 2, 3, 4, 5, 6, 7, 8)}
-
-assert_equal %q{[1, 2, 3, 4, [5, 6, 7], 8, 9, NilClass, nil, nil]}, %q{
-def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &b)
- x, y = :x, :y if $foo
- [m1, m2, o1, o2, r, p1, p2, b.class, x, y]
-end
-; m(1, 2, 3, 4, 5, 6, 7, 8, 9)}
-
-assert_equal %q{[1, 2, 3, 4, [5, 6, 7, 8], 9, 10, NilClass, nil, nil]}, %q{
-def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &b)
- x, y = :x, :y if $foo
- [m1, m2, o1, o2, r, p1, p2, b.class, x, y]
-end
-; m(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)}
-
-assert_equal %q{[1, 2, 3, 4, [5, 6, 7, 8, 9], 10, 11, NilClass, nil, nil]}, %q{
-def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &b)
- x, y = :x, :y if $foo
- [m1, m2, o1, o2, r, p1, p2, b.class, x, y]
-end
-; m(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)}
-
-assert_equal %q{[1, 2, :o1, :o2, [], 3, 4, Proc, nil, nil]}, %q{
-def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &b)
- x, y = :x, :y if $foo
- [m1, m2, o1, o2, r, p1, p2, b.class, x, y]
-end
-; m(1, 2, 3, 4){}}
-
-assert_equal %q{[1, 2, 3, :o2, [], 4, 5, Proc, nil, nil]}, %q{
-def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &b)
- x, y = :x, :y if $foo
- [m1, m2, o1, o2, r, p1, p2, b.class, x, y]
-end
-; m(1, 2, 3, 4, 5){}}
-
-assert_equal %q{[1, 2, 3, 4, [], 5, 6, Proc, nil, nil]}, %q{
-def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &b)
- x, y = :x, :y if $foo
- [m1, m2, o1, o2, r, p1, p2, b.class, x, y]
-end
-; m(1, 2, 3, 4, 5, 6){}}
-
-assert_equal %q{[1, 2, 3, 4, [5], 6, 7, Proc, nil, nil]}, %q{
-def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &b)
- x, y = :x, :y if $foo
- [m1, m2, o1, o2, r, p1, p2, b.class, x, y]
-end
-; m(1, 2, 3, 4, 5, 6, 7){}}
-
-assert_equal %q{[1, 2, 3, 4, [5, 6], 7, 8, Proc, nil, nil]}, %q{
-def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &b)
- x, y = :x, :y if $foo
- [m1, m2, o1, o2, r, p1, p2, b.class, x, y]
-end
-; m(1, 2, 3, 4, 5, 6, 7, 8){}}
-
-assert_equal %q{[1, 2, 3, 4, [5, 6, 7], 8, 9, Proc, nil, nil]}, %q{
-def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &b)
- x, y = :x, :y if $foo
- [m1, m2, o1, o2, r, p1, p2, b.class, x, y]
-end
-; m(1, 2, 3, 4, 5, 6, 7, 8, 9){}}
-
-assert_equal %q{[1, 2, 3, 4, [5, 6, 7, 8], 9, 10, Proc, nil, nil]}, %q{
-def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &b)
- x, y = :x, :y if $foo
- [m1, m2, o1, o2, r, p1, p2, b.class, x, y]
-end
-; m(1, 2, 3, 4, 5, 6, 7, 8, 9, 10){}}
-
-assert_equal %q{[1, 2, 3, 4, [5, 6, 7, 8, 9], 10, 11, Proc, nil, nil]}, %q{
-def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2, &b)
- x, y = :x, :y if $foo
- [m1, m2, o1, o2, r, p1, p2, b.class, x, y]
-end
-; m(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11){}}
-
-assert_equal %q{[1, 2, :o1, :o2, [], 3, 4, nil, nil]}, %q{
-def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2)
- x, y = :x, :y if $foo
- [m1, m2, o1, o2, r, p1, p2, x, y]
-end
-; m(1, 2, 3, 4)}
-
-assert_equal %q{[1, 2, 3, :o2, [], 4, 5, nil, nil]}, %q{
-def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2)
- x, y = :x, :y if $foo
- [m1, m2, o1, o2, r, p1, p2, x, y]
-end
-; m(1, 2, 3, 4, 5)}
-
-assert_equal %q{[1, 2, 3, 4, [], 5, 6, nil, nil]}, %q{
-def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2)
- x, y = :x, :y if $foo
- [m1, m2, o1, o2, r, p1, p2, x, y]
-end
-; m(1, 2, 3, 4, 5, 6)}
-
-
-#
-# super
-#
-=begin
-# below programs are generated by this program:
-
-BASE = <<EOS__
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; <TEST>; super; end; end
-EOS__
-
-tests = {
-%q{
- def m
-} => %q{
- C1.new.m
-},
-#
-%q{
- def m a
-} => %q{
- C1.new.m 1
-},
-%q{
- def m a
- a = :a
-} => %q{
- C1.new.m 1
-},
-#
-%q{
- def m a, o=:o
-} => %q{
- C1.new.m 1
- C1.new.m 1, 2
-},
-%q{
- def m a, o=:o
- a = :a
-} => %q{
- C1.new.m 1
- C1.new.m 1, 2
-},
-%q{
- def m a, o=:o
- o = :x
-} => %q{
- C1.new.m 1
- C1.new.m 1, 2
-},
-#
-%q{
- def m a, *r
-} => %q{
- C1.new.m 1
- C1.new.m 1, 2
- C1.new.m 1, 2, 3
-},
-%q{
- def m a, *r
- r = [:x, :y]
-} => %q{
- C1.new.m 1
- C1.new.m 1, 2
- C1.new.m 1, 2, 3
-},
-#
-%q{
- def m a, o=:o, *r
-} => %q{
- C1.new.m 1
- C1.new.m 1, 2
- C1.new.m 1, 2, 3
- C1.new.m 1, 2, 3, 4
-},
-#
-%q{
- def m a, o=:o, *r, &b
-} => %q{
- C1.new.m 1
- C1.new.m 1, 2
- C1.new.m 1, 2, 3
- C1.new.m 1, 2, 3, 4
- C1.new.m(1){}
- C1.new.m(1, 2){}
- C1.new.m(1, 2, 3){}
- C1.new.m(1, 2, 3, 4){}
-},
-#
-"def m(m1, m2, o1=:o1, o2=:o2, p1, p2)" =>
-%q{
-C1.new.m(1,2,3,4)
-C1.new.m(1,2,3,4,5)
-C1.new.m(1,2,3,4,5,6)
-},
-#
-"def m(m1, m2, *r, p1, p2)" =>
-%q{
-C1.new.m(1,2,3,4)
-C1.new.m(1,2,3,4,5)
-C1.new.m(1,2,3,4,5,6)
-C1.new.m(1,2,3,4,5,6,7)
-C1.new.m(1,2,3,4,5,6,7,8)
-},
-#
-"def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2)" =>
-%q{
-C1.new.m(1,2,3,4)
-C1.new.m(1,2,3,4,5)
-C1.new.m(1,2,3,4,5,6)
-C1.new.m(1,2,3,4,5,6,7)
-C1.new.m(1,2,3,4,5,6,7,8)
-C1.new.m(1,2,3,4,5,6,7,8,9)
-},
-
-###
-}
-
-
-tests.each{|setup, methods| setup = setup.dup; setup.strip!
- setup = BASE.gsub(/<TEST>/){setup}
- methods.split(/\n/).each{|m| m = m.dup; m.strip!
- next if m.empty?
- expr = "#{setup}; #{m}"
- result = eval(expr)
- puts "assert_equal %q{#{result.inspect}}, %q{\n#{expr}}"
- puts
- }
-}
-
-=end
-
-assert_equal %q{[:C0_m, [1, 2, :o1, :o2, 3, 4]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m(m1, m2, o1=:o1, o2=:o2, p1, p2); super; end; end
-; C1.new.m(1,2,3,4)}
-
-assert_equal %q{[:C0_m, [1, 2, 3, :o2, 4, 5]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m(m1, m2, o1=:o1, o2=:o2, p1, p2); super; end; end
-; C1.new.m(1,2,3,4,5)}
-
-assert_equal %q{[:C0_m, [1, 2, 3, 4, 5, 6]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m(m1, m2, o1=:o1, o2=:o2, p1, p2); super; end; end
-; C1.new.m(1,2,3,4,5,6)}
-
-assert_equal %q{[:C0_m, [1, :o]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m a, o=:o, *r; super; end; end
-; C1.new.m 1}
-
-assert_equal %q{[:C0_m, [1, 2]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m a, o=:o, *r; super; end; end
-; C1.new.m 1, 2}
-
-assert_equal %q{[:C0_m, [1, 2, 3]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m a, o=:o, *r; super; end; end
-; C1.new.m 1, 2, 3}
-
-assert_equal %q{[:C0_m, [1, 2, 3, 4]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m a, o=:o, *r; super; end; end
-; C1.new.m 1, 2, 3, 4}
-
-assert_equal %q{[:C0_m, [:a]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m a
- a = :a; super; end; end
-; C1.new.m 1}
-
-assert_equal %q{[:C0_m, [1, 2, 3, 4]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m(m1, m2, *r, p1, p2); super; end; end
-; C1.new.m(1,2,3,4)}
-
-assert_equal %q{[:C0_m, [1, 2, 3, 4, 5]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m(m1, m2, *r, p1, p2); super; end; end
-; C1.new.m(1,2,3,4,5)}
-
-assert_equal %q{[:C0_m, [1, 2, 3, 4, 5, 6]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m(m1, m2, *r, p1, p2); super; end; end
-; C1.new.m(1,2,3,4,5,6)}
-
-assert_equal %q{[:C0_m, [1, 2, 3, 4, 5, 6, 7]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m(m1, m2, *r, p1, p2); super; end; end
-; C1.new.m(1,2,3,4,5,6,7)}
-
-assert_equal %q{[:C0_m, [1, 2, 3, 4, 5, 6, 7, 8]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m(m1, m2, *r, p1, p2); super; end; end
-; C1.new.m(1,2,3,4,5,6,7,8)}
-
-assert_equal %q{[:C0_m, [1, :o]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m a, o=:o, *r, &b; super; end; end
-; C1.new.m 1}
-
-assert_equal %q{[:C0_m, [1, 2]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m a, o=:o, *r, &b; super; end; end
-; C1.new.m 1, 2}
-
-assert_equal %q{[:C0_m, [1, 2, 3]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m a, o=:o, *r, &b; super; end; end
-; C1.new.m 1, 2, 3}
-
-assert_equal %q{[:C0_m, [1, 2, 3, 4]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m a, o=:o, *r, &b; super; end; end
-; C1.new.m 1, 2, 3, 4}
-
-assert_equal %q{[:C0_m, [1, :o]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m a, o=:o, *r, &b; super; end; end
-; C1.new.m(1){}}
-
-assert_equal %q{[:C0_m, [1, 2]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m a, o=:o, *r, &b; super; end; end
-; C1.new.m(1, 2){}}
-
-assert_equal %q{[:C0_m, [1, 2, 3]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m a, o=:o, *r, &b; super; end; end
-; C1.new.m(1, 2, 3){}}
-
-assert_equal %q{[:C0_m, [1, 2, 3, 4]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m a, o=:o, *r, &b; super; end; end
-; C1.new.m(1, 2, 3, 4){}}
-
-assert_equal %q{[:C0_m, [1, :x]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m a, o=:o
- o = :x; super; end; end
-; C1.new.m 1}
-
-assert_equal %q{[:C0_m, [1, :x]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m a, o=:o
- o = :x; super; end; end
-; C1.new.m 1, 2}
-
-assert_equal %q{[:C0_m, [:a, :o]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m a, o=:o
- a = :a; super; end; end
-; C1.new.m 1}
-
-assert_equal %q{[:C0_m, [:a, 2]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m a, o=:o
- a = :a; super; end; end
-; C1.new.m 1, 2}
-
-assert_equal %q{[:C0_m, [1]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m a; super; end; end
-; C1.new.m 1}
-
-assert_equal %q{[:C0_m, [1, :x, :y]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m a, *r
- r = [:x, :y]; super; end; end
-; C1.new.m 1}
-
-assert_equal %q{[:C0_m, [1, :x, :y]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m a, *r
- r = [:x, :y]; super; end; end
-; C1.new.m 1, 2}
-
-assert_equal %q{[:C0_m, [1, :x, :y]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m a, *r
- r = [:x, :y]; super; end; end
-; C1.new.m 1, 2, 3}
-
-assert_equal %q{[:C0_m, [1, 2, :o1, :o2, 3, 4]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2); super; end; end
-; C1.new.m(1,2,3,4)}
-
-assert_equal %q{[:C0_m, [1, 2, 3, :o2, 4, 5]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2); super; end; end
-; C1.new.m(1,2,3,4,5)}
-
-assert_equal %q{[:C0_m, [1, 2, 3, 4, 5, 6]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2); super; end; end
-; C1.new.m(1,2,3,4,5,6)}
-
-assert_equal %q{[:C0_m, [1, 2, 3, 4, 5, 6, 7]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2); super; end; end
-; C1.new.m(1,2,3,4,5,6,7)}
-
-assert_equal %q{[:C0_m, [1, 2, 3, 4, 5, 6, 7, 8]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2); super; end; end
-; C1.new.m(1,2,3,4,5,6,7,8)}
-
-assert_equal %q{[:C0_m, [1, 2, 3, 4, 5, 6, 7, 8, 9]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m(m1, m2, o1=:o1, o2=:o2, *r, p1, p2); super; end; end
-; C1.new.m(1,2,3,4,5,6,7,8,9)}
-
-assert_equal %q{[:C0_m, [1]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m a, *r; super; end; end
-; C1.new.m 1}
-
-assert_equal %q{[:C0_m, [1, 2]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m a, *r; super; end; end
-; C1.new.m 1, 2}
-
-assert_equal %q{[:C0_m, [1, 2, 3]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m a, *r; super; end; end
-; C1.new.m 1, 2, 3}
-
-assert_equal %q{[:C0_m, []]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m; super; end; end
-; C1.new.m}
-
-assert_equal %q{[:C0_m, [1, :o]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m a, o=:o; super; end; end
-; C1.new.m 1}
-
-assert_equal %q{[:C0_m, [1, 2]]}, %q{
-class C0; def m *args; [:C0_m, args]; end; end
-class C1 < C0; def m a, o=:o; super; end; end
-; C1.new.m 1, 2}
-
-assert_equal 'ok', %q{
- class C
- def x=(n)
- end
- def m
- self.x = :ok
- end
- end
- C.new.m
-}
-
-assert_equal 'ok', %q{
- proc{
- $SAFE = 1
- class C
- def m
- :ok
- end
- end
- }.call
- C.new.m
-}, '[ruby-core:11998]'
-
-assert_equal 'ok', %q{
- class B
- def m() :fail end
- end
- class C < B
- undef m
- begin
- remove_method :m
- rescue NameError
- end
- end
- begin
- C.new.m
- rescue NameError
- :ok
- end
-}, '[ruby-dev:31816], [ruby-dev:31817]'
-
-assert_normal_exit %q{
- begin
- Process.setrlimit(Process::RLIMIT_STACK, 4_206_592)
- # FreeBSD SEGVs this less than 4M + 12K bytes.
- rescue Exception
- exit
- end
- class C
- attr "a" * (10*1024*1024)
- end
-}, '[ruby-dev:31818]'
-
-assert_equal 'ok', %q{
- class Module
- def define_method2(name, &block)
- define_method(name, &block)
- end
- end
- class C
- define_method2(:m) {|x, y| :fail }
- end
- begin
- C.new.m([1,2])
- rescue ArgumentError
- :ok
- end
-}
-
-assert_not_match /method_missing/, %q{
- STDERR.reopen(STDOUT)
- variable_or_mehtod_not_exist
-}
-
-assert_equal '[false, false, false, false, true, true]', %q{
- class C
- define_method(:foo) {
- block_given?
- }
- end
-
- C.new.foo {}
-
- class D
- def foo
- D.module_eval{
- define_method(:m1){
- block_given?
- }
- }
- end
- def bar
- D.module_eval{
- define_method(:m2){
- block_given?
- }
- }
- end
- end
-
- D.new.foo
- D.new.bar{}
- [C.new.foo, C.new.foo{}, D.new.m1, D.new.m1{}, D.new.m2, D.new.m2{}]
-}, '[ruby-core:14813]'
-
-assert_equal 'ok', %q{
- class Foo
- define_method(:foo) do |&b|
- b.call
- end
- end
- Foo.new.foo do
- break :ok
- end
-}, '[ruby-dev:36028]'
-
-assert_equal '[1, 2, [3, 4]]', %q{
- def regular(a, b, *c)
- [a, b, c]
- end
- regular(*[], 1, *[], *[2, 3], *[], 4)
-}, '[ruby-core:19413]'
-
-assert_equal '[1, [:foo, 3, 4, :foo]]', %q{
- def regular(a, *b)
- [a, b]
- end
- a = b = [:foo]
- regular(1, *a, *[3, 4], *b)
-}
-
-assert_equal '["B", "A"]', %q{
- class A
- def m
- 'A'
- end
- end
-
- class B < A
- define_method(:m) do
- ['B', super()]
- end
- end
-
- class C < B
- end
-
- C.new.m
-}
-
-assert_equal 'ok', %q{
- module Foo
- def foo
- begin
- super
- rescue NoMethodError
- :ok
- end
- end
- module_function :foo
- end
- Foo.foo
-}, '[ruby-dev:37587]'
-
-assert_equal 'Object#foo', %q{
- class Object
- def self.foo
- "Object.foo"
- end
- def foo
- "Object#foo"
- end
- end
-
- module Foo
- def foo
- begin
- super
- rescue NoMethodError
- :ok
- end
- end
- module_function :foo
- end
- Foo.foo
-}, '[ruby-dev:37587]'
-
-assert_normal_exit %q{
- class BasicObject
- remove_method :method_missing
- end
- begin
- "a".lalala!
- rescue NoMethodError => e
- e.message == "undefined method `lalala!' for \"a\":String" ? :ok : :ng
- end
-}, '[ruby-core:22298]'
-
-assert_equal 'ok', %q{
- "hello"[0] ||= "H"
- "ok"
-}
-
-assert_equal 'ok', %q{
- "hello"[0, 1] ||= "H"
- "ok"
-}
-
-assert_equal 'ok', %q{
- class C
- define_method(:foo) do
- C.class_eval { remove_method(:foo) }
- super()
- end
- end
- begin
- C.new.foo
- rescue NoMethodError
- 'ok'
- end
-}
-assert_equal 'ok', %q{
- [0][0, &proc{}] += 21
- 'ok'
-}, '[ruby-core:30534]'
-
-# should not cache when splat
-assert_equal 'ok', %q{
- class C
- attr_reader :a
- def initialize
- @a = 1
- end
- end
-
- def m *args
- C.new.a(*args)
- end
-
- m()
- begin
- m(1)
- rescue ArgumentError
- 'ok'
- end
-}
-
-assert_equal 'DC', %q{
- $result = []
-
- class C
- def foo *args
- $result << 'C'
- end
- end
- class D
- def foo *args
- $result << 'D'
- end
- end
-
- o1 = $o1 = C.new
- o2 = $o2 = D.new
-
- args = Object.new
- def args.to_a
- test1 $o2, nil
- []
- end
- def test1 o, args
- o.foo(*args)
- end
- test1 o1, args
- $result.join
-}
-
-assert_equal 'DC', %q{
- $result = []
-
- class C
- def foo *args
- $result << 'C'
- end
- end
- class D
- def foo *args
- $result << 'D'
- end
- end
-
- o1 = $o1 = C.new
- o2 = $o2 = D.new
-
- block = Object.new
- def block.to_proc
- test2 $o2, %w(a, b, c), nil
- Proc.new{}
- end
- def test2 o, args, block
- o.foo(*args, &block)
- end
- test2 o1, [], block
- $result.join
-}
diff --git a/bootstraptest/test_objectspace.rb b/bootstraptest/test_objectspace.rb
deleted file mode 100644
index 63a8d99322..0000000000
--- a/bootstraptest/test_objectspace.rb
+++ /dev/null
@@ -1,55 +0,0 @@
-assert_normal_exit %q{
- eval("", TOPLEVEL_BINDING)
- minobj = ObjectSpace.to_enum(:each_object).min_by {|a| a.object_id }
- maxobj = ObjectSpace.to_enum(:each_object).max_by {|a| a.object_id }
- (((minobj.object_id-100)..(minobj.object_id+100))+
- ((maxobj.object_id-100)..(maxobj.object_id+100))).each {|id|
- begin
- o = ObjectSpace._id2ref(id)
- rescue RangeError
- next
- end
- o.inspect if defined?(o.inspect)
- }
-}, '[ruby-dev:31911]'
-
-assert_normal_exit %q{
- ary = (1..10).to_a
- ary.permutation(2) {|x|
- if x == [1,2]
- ObjectSpace.each_object(String) {|s|
- s.clear if !s.frozen? && (s.length == 40 || s.length == 80)
- }
- end
- }
-}, '[ruby-dev:31982]'
-
-assert_normal_exit %q{
- ary = (1..100).to_a
- ary.permutation(2) {|x|
- if x == [1,2]
- ObjectSpace.each_object(Array) {|o| o.clear if o == ary && o.object_id != ary.object_id }
- end
- }
-}, '[ruby-dev:31985]'
-
-assert_normal_exit %q{
- ObjectSpace.define_finalizer("") do
- Thread::Mutex.new.lock
- end
-}, '[ruby-dev:44049]'
-
-assert_normal_exit %q{
- ObjectSpace.define_finalizer("") do
- Thread.new {}
- end
-}, '[ruby-core:37858]'
-
-assert_equal 'ok', %q{
- objects_and_ids = 1000.times.map { o = Object.new; [o, o.object_id] }
- objects_and_ids.each { |expected, id|
- actual = ObjectSpace._id2ref(id)
- raise "expected #{expected.inspect}, got #{actual.inspect}" unless actual.equal?(expected)
- }
- 'ok'
-}
diff --git a/bootstraptest/test_proc.rb b/bootstraptest/test_proc.rb
deleted file mode 100644
index 637603243d..0000000000
--- a/bootstraptest/test_proc.rb
+++ /dev/null
@@ -1,470 +0,0 @@
-assert_equal %q{[1, 2, 3]}, %q{
- def getproc &b
- b
- end
-
- def m
- yield
- end
-
- m{
- i = 1
- m{
- j = 2
- m{
- k = 3
- getproc{
- [i, j, k]
- }
- }
- }
- }.call
-}
-assert_equal %q{7}, %q{
- def make_proc(&b)
- b
- end
-
- def make_closure
- a = 0
- make_proc{
- a+=1
- }
- end
-
- cl = make_closure
- cl.call + cl.call * cl.call
-}
-assert_equal %q{ok}, %q{
- class C
- def foo
- :ok
- end
- end
-
- def block
- C.method(:new).to_proc
- end
- b = block()
- b.call.foo
-}
-assert_equal %q{[0, 1, :last, 0, 2, :last]}, %q{
- def proc &b
- b
- end
-
- pr = []
- proc{|i_b|
- p3 = proc{|j_b|
- pr << proc{|k_b|
- [i_b, j_b, k_b]
- }
- }
- p3.call(1)
- p3.call(2)
- }.call(0)
-
- pr[0].call(:last).concat pr[1].call(:last)
-}
-assert_equal %q{12}, %q{
- def iter
- yield
- end
-
- def getproc &b
- b
- end
-
- iter{
- bvar = 3
- getproc{
- bvar2 = 4
- bvar * bvar2
- }
- }.call
-}
-assert_equal %q{200}, %q{
- def iter
- yield
- end
-
- def getproc &b
- b
- end
-
- loc1 = 0
- pr1 = iter{
- bl1 = 1
- getproc{
- loc1 += 1
- bl1 += 1
- loc1 + bl1
- }
- }
-
- pr2 = iter{
- bl1 = 1
- getproc{
- loc1 += 1
- bl1 += 1
- loc1 + bl1
- }
- }
-
- pr1.call; pr2.call
- pr1.call; pr2.call
- pr1.call; pr2.call
- (pr1.call + pr2.call) * loc1
-}
-assert_equal %q{[1, 2]}, %q{
- def proc(&pr)
- pr
- end
-
- def m
- a = 1
- m2{
- a
- }
- end
-
- def m2
- b = 2
- proc{
- [yield, b]
- }
- end
-
- pr = m
- x = ['a', 1,2,3,4,5,6,7,8,9,0,
- 1,2,3,4,5,6,7,8,9,0,
- 1,2,3,4,5,6,7,8,9,0,
- 1,2,3,4,5,6,7,8,9,0,
- 1,2,3,4,5,6,7,8,9,0,]
- pr.call
-}
-assert_equal %q{1}, %q{
- def proc(&pr)
- pr
- end
-
- def m
- a = 1
- m2{
- a
- }
- end
-
- def m2
- b = 2
- proc{
- [yield, b]
- }
- 100000.times{|x|
- "#{x}"
- }
- yield
- end
- m
-}
-assert_equal %q{[:C, :C]}, %q{
- Const = :top
- class C
- Const = :C
- $pr = proc{
- (1..2).map{
- Const
- }
- }
- end
- $pr.call
-}
-assert_equal %q{top}, %q{
- Const = :top
- class C
- Const = :C
- end
- pr = proc{
- Const
- }
- C.class_eval %q{
- pr.call
- }
-}
-assert_equal %q{1}, %q{
- def m(&b)
- b
- end
-
- m{|e_proctest| e_proctest}.call(1)
-}
-assert_equal %q{12}, %q{
- def m(&b)
- b
- end
-
- m{|e_proctest1, e_proctest2|
- a = e_proctest1 * e_proctest2 * 2
- a * 3
- }.call(1, 2)
-}
-assert_equal %q{[[], [1], [1, 2], [1, 2, 3]]}, %q{
- [
- Proc.new{|*args| args}.call(),
- Proc.new{|*args| args}.call(1),
- Proc.new{|*args| args}.call(1, 2),
- Proc.new{|*args| args}.call(1, 2, 3),
- ]
-}
-assert_equal %q{[[nil, []], [1, []], [1, [2]], [1, [2, 3]]]}, %q{
- [
- Proc.new{|a, *b| [a, b]}.call(),
- Proc.new{|a, *b| [a, b]}.call(1),
- Proc.new{|a, *b| [a, b]}.call(1, 2),
- Proc.new{|a, *b| [a, b]}.call(1, 2, 3),
- ]
-}
-assert_equal %q{1}, %q{
- def m(&b)
- b
- end
- m{1}.call
-}
-assert_equal %q{3}, %q{
- def m(&b)
- b
- end
-
- m{
- a = 1
- a + 2
- }.call
-}
-assert_equal %Q{ok\n}, %q{
- class A; def get_block; proc {puts "ok"} end end
- block = A.new.get_block
- GC.start
- block.call
-}, '[ruby-core:14885]'
-
-assert_equal 'ok', %q{
- a = lambda {|x, y, &b| b }
- b = a.curry[1]
- if b.call(2){} == nil
- :ng
- else
- :ok
- end
-}, '[ruby-core:15551]'
-
-assert_equal 'ok', %q{
- lambda {
- break :ok
- :ng
- }.call
-}, '[ruby-dev:34646]'
-
-assert_equal %q{[:bar, :foo]}, %q{
- def foo
- klass = Class.new do
- define_method(:bar) do
- return :bar
- end
- end
- [klass.new.bar, :foo]
- end
- foo
-}, "[ ruby-Bugs-19304 ]"
-
-assert_equal 'ok', %q{
- $x = :ok
- def def7(x, y)
- x[y]
- $x = :ng
- end
- def test_def7
- def7(lambda {|x| x.call}, Proc.new {return})
- $x = :ng
- end
- test_def7
- $x
-}, '[ruby-core:17164]'
-
-assert_equal 'ok', %q{
- lambda { a = lambda { return }; $x = :ng; a[]; $x = :ok }.call
- $x
-}, '[ruby-core:17164]'
-
-assert_equal 'ok', %q{
- lambda { a = lambda { break }; $x = :ng; a[]; $x = :ok }.call
- $x
-}, '[ruby-core:17164]'
-
-assert_equal 'ok', %q{
- def def8
- $x = :ng
- lambda { a = Proc.new { return }; a[]}.call
- $x = :ok
- end
- def8
- $x
-}, '[ruby-core:17164]'
-
-
-assert_equal 'ok', %q{
- def def9
- lambda {|a| $x = :ok; a[]; $x = :ng }.call(Proc.new { return })
- $x = :ng
- end
- def9
- $x
-}, '[ruby-core:17164]'
-
-assert_equal 'ok', %q{
- def def10
- $x = :ng
- lambda { 1.times { return } }.call
- $x = :ok
- end
- $x = :ok
- def10
- $x
-}, '[ruby-core:17164]'
-
-assert_equal 'ok', %q{
- def def11
- yield
- end
- begin
- lambda { def11 { return } }.call
- rescue LocalJumpError
- :ng
- else
- :ok
- end
-}, '[ruby-core:17164]'
-
-assert_equal 'ok', %q{
- def def12
- b = Proc.new { $x = :ng; lambda { return }.call; $x = :ok }.call
- end
- def12
- $x
-}, '[ruby-core:17164]'
-
-assert_equal 'ok', %q{
- def m
- pr = proc{
- proc{
- return :ok
- }
- }.call
- pr.call
- :ng
- end
- m()
-}
-
-assert_equal 'ok', %q{
- class Foo
- def call_it(&block)
- p = Proc.new(&block)
- p.call
- end
- end
-
- def give_it
- proc { :ok }
- end
-
- f = Foo.new
- a_proc = give_it
- f.call_it(&give_it())
-}, '[ruby-core:15711]'
-
-assert_equal 'foo!', %q{
- class FooProc < Proc
- def initialize
- @foo = "foo!"
- end
-
- def bar
- @foo
- end
- end
-
- def bar
- FooProc.new &lambda{
- p 1
- }
- end
-
- fp = bar(&lambda{
- p 2
- })
-
- fp.bar
-}, 'Subclass of Proc'
-
-assert_equal 'ok', %q{
- o = Object.new
- def o.write(s); end
- $stderr = o
- at_exit{
- print $!.message
- }
- raise "ok"
-}
-
-assert_equal 'ok', %q{
- lambda do
- class A
- class B
- proc{return :ng}.call
- end
- end
- end.call
- :ok
-}
-
-assert_equal 'ok', %q{
- $proc = proc{return}
- begin
- lambda do
- class A
- class B
- $proc.call
- end
- end
- end.call
- :ng
- rescue LocalJumpError
- :ok
- end
-}
-
-assert_equal 'ok', %q{
- def x
- binding
- end
- b = x{|a| a }
- b.eval('yield("ok")')
-}, '[Bug #5634]'
-
-assert_equal 'ok', %q{
- def x
- binding
- end
- eval("x { 'ok' }").eval "yield"
-}, '[Bug #5634]'
-
-assert_equal 'ok', %q{
- def x
- binding
- end
- def m
- x{ 'ok' }
- end
- eval('yield', m)
-}, '[Bug #5634]'
-
diff --git a/bootstraptest/test_ractor.rb b/bootstraptest/test_ractor.rb
deleted file mode 100644
index b29db7ab0e..0000000000
--- a/bootstraptest/test_ractor.rb
+++ /dev/null
@@ -1,1582 +0,0 @@
-# Ractor.current returns a current ractor
-assert_equal 'Ractor', %q{
- Ractor.current.class
-}
-
-# Ractor.new returns new Ractor
-assert_equal 'Ractor', %q{
- Ractor.new{}.class
-}
-
-# Ractor.allocate is not supported
-assert_equal "[:ok, :ok]", %q{
- rs = []
- begin
- Ractor.allocate
- rescue => e
- rs << :ok if e.message == 'allocator undefined for Ractor'
- end
-
- begin
- Ractor.new{}.dup
- rescue
- rs << :ok if e.message == 'allocator undefined for Ractor'
- end
-
- rs
-}
-
-# A Ractor can have a name
-assert_equal 'test-name', %q{
- r = Ractor.new name: 'test-name' do
- end
- r.name
-}
-
-# If Ractor doesn't have a name, Ractor#name returns nil.
-assert_equal 'nil', %q{
- r = Ractor.new do
- end
- r.name.inspect
-}
-
-# Raises exceptions if initialize with an invalid name
-assert_equal 'ok', %q{
- begin
- r = Ractor.new(name: [{}]) {}
- rescue TypeError => e
- 'ok'
- end
-}
-
-# Ractor.new must call with a block
-assert_equal "must be called with a block", %q{
- begin
- Ractor.new
- rescue ArgumentError => e
- e.message
- end
-}
-
-# Ractor#inspect
-# Return only id and status for main ractor
-assert_equal "#<Ractor:#1 running>", %q{
- Ractor.current.inspect
-}
-
-# Return id, loc, and status for no-name ractor
-assert_match /^#<Ractor:#([^ ]*?) .+:[0-9]+ terminated>$/, %q{
- r = Ractor.new { '' }
- r.take
- sleep 0.1 until r.inspect =~ /terminated/
- r.inspect
-}
-
-# Return id, name, loc, and status for named ractor
-assert_match /^#<Ractor:#([^ ]*?) Test Ractor .+:[0-9]+ terminated>$/, %q{
- r = Ractor.new(name: 'Test Ractor') { '' }
- r.take
- sleep 0.1 until r.inspect =~ /terminated/
- r.inspect
-}
-
-# A return value of a Ractor block will be a message from the Ractor.
-assert_equal 'ok', %q{
- # join
- r = Ractor.new do
- 'ok'
- end
- r.take
-}
-
-# Passed arguments to Ractor.new will be a block parameter
-# The values are passed with Ractor-communication pass.
-assert_equal 'ok', %q{
- # ping-pong with arg
- r = Ractor.new 'ok' do |msg|
- msg
- end
- r.take
-}
-
-# Pass multiple arguments to Ractor.new
-assert_equal 'ok', %q{
- # ping-pong with two args
- r = Ractor.new 'ping', 'pong' do |msg, msg2|
- [msg, msg2]
- end
- 'ok' if r.take == ['ping', 'pong']
-}
-
-# Ractor#send passes an object with copy to a Ractor
-# and Ractor.receive in the Ractor block can receive the passed value.
-assert_equal 'ok', %q{
- r = Ractor.new do
- msg = Ractor.receive
- end
- r.send 'ok'
- r.take
-}
-
-# Ractor#receive_if can filter the message
-assert_equal '[2, 3, 1]', %q{
- r = Ractor.new Ractor.current do |main|
- main << 1
- main << 2
- main << 3
- end
- a = []
- a << Ractor.receive_if{|msg| msg == 2}
- a << Ractor.receive_if{|msg| msg == 3}
- a << Ractor.receive
-}
-
-# Ractor#receive_if with break
-assert_equal '[2, [1, :break], 3]', %q{
- r = Ractor.new Ractor.current do |main|
- main << 1
- main << 2
- main << 3
- end
-
- a = []
- a << Ractor.receive_if{|msg| msg == 2}
- a << Ractor.receive_if{|msg| break [msg, :break]}
- a << Ractor.receive
-}
-
-# Ractor#receive_if can't be called recursively
-assert_equal '[[:e1, 1], [:e2, 2]]', %q{
- r = Ractor.new Ractor.current do |main|
- main << 1
- main << 2
- main << 3
- end
-
- a = []
-
- Ractor.receive_if do |msg|
- begin
- Ractor.receive
- rescue Ractor::Error
- a << [:e1, msg]
- end
- true # delete 1 from queue
- end
-
- Ractor.receive_if do |msg|
- begin
- Ractor.receive_if{}
- rescue Ractor::Error
- a << [:e2, msg]
- end
- true # delete 2 from queue
- end
-
- a #
-}
-
-# dtoa race condition
-assert_equal '[:ok, :ok, :ok]', %q{
- n = 3
- n.times.map{
- Ractor.new{
- 10_000.times{ rand.to_s }
- :ok
- }
- }.map(&:take)
-}
-
-# Ractor.make_shareable issue for locals in proc [Bug #18023]
-assert_equal '[:a, :b, :c, :d, :e]', %q{
- v1, v2, v3, v4, v5 = :a, :b, :c, :d, :e
- closure = Ractor.current.instance_eval{ Proc.new { [v1, v2, v3, v4, v5] } }
-
- Ractor.make_shareable(closure).call
-}
-
-# Ractor.make_shareable issue for locals in proc [Bug #18023]
-assert_equal '[:a, :b, :c, :d, :e, :f, :g]', %q{
- a = :a
- closure = Ractor.current.instance_eval do
- -> {
- b, c, d = :b, :c, :d
- -> {
- e, f, g = :e, :f, :g
- -> { [a, b, c, d, e, f, g] }
- }.call
- }.call
- end
-
- Ractor.make_shareable(closure).call
-}
-
-# Now autoload in non-main Ractor is not supported
-assert_equal 'ok', %q{
- autoload :Foo, 'foo.rb'
- r = Ractor.new do
- p Foo
- rescue Ractor::UnsafeError
- :ok
- end
- r.take
-}
-
-###
-###
-# Ractor still has several memory corruption so skip huge number of tests
-if ENV['GITHUB_WORKFLOW'] &&
- ENV['GITHUB_WORKFLOW'] == 'Compilations'
- # ignore the follow
-else
-
-# Ractor.select(*ractors) receives a values from a ractors.
-# It is similar to select(2) and Go's select syntax.
-# The return value is [ch, received_value]
-assert_equal 'ok', %q{
- # select 1
- r1 = Ractor.new{'r1'}
- r, obj = Ractor.select(r1)
- 'ok' if r == r1 and obj == 'r1'
-}
-
-# Ractor.select from two ractors.
-assert_equal '["r1", "r2"]', %q{
- # select 2
- r1 = Ractor.new{'r1'}
- r2 = Ractor.new{'r2'}
- rs = [r1, r2]
- as = []
- r, obj = Ractor.select(*rs)
- rs.delete(r)
- as << obj
- r, obj = Ractor.select(*rs)
- as << obj
- as.sort #=> ["r1", "r2"]
-}
-
-# Ractor.select from multiple ractors.
-assert_equal 30.times.map { 'ok' }.to_s, %q{
- def test n
- rs = (1..n).map do |i|
- Ractor.new(i) do |i|
- "r#{i}"
- end
- end
- as = []
- all_rs = rs.dup
-
- n.times{
- r, obj = Ractor.select(*rs)
- as << [r, obj]
- rs.delete(r)
- }
-
- if as.map{|r, o| r.object_id}.sort == all_rs.map{|r| r.object_id}.sort &&
- as.map{|r, o| o}.sort == (1..n).map{|i| "r#{i}"}.sort
- 'ok'
- else
- 'ng'
- end
- end
-
- 30.times.map{|i|
- test i
- }
-} unless ENV['RUN_OPTS'] =~ /--jit-min-calls=5/ || # This always fails with --jit-wait --jit-min-calls=5
- (ENV.key?('TRAVIS') && ENV['TRAVIS_CPU_ARCH'] == 'arm64') # https://bugs.ruby-lang.org/issues/17878
-
-# Exception for empty select
-assert_match /specify at least one ractor/, %q{
- begin
- Ractor.select
- rescue ArgumentError => e
- e.message
- end
-}
-
-# Outgoing port of a ractor will be closed when the Ractor is terminated.
-assert_equal 'ok', %q{
- r = Ractor.new do
- 'finish'
- end
-
- r.take
- sleep 0.1 until r.inspect =~ /terminated/
-
- begin
- o = r.take
- rescue Ractor::ClosedError
- 'ok'
- else
- "ng: #{o}"
- end
-}
-
-# Raise Ractor::ClosedError when try to send into a terminated ractor
-assert_equal 'ok', %q{
- r = Ractor.new do
- end
-
- r.take # closed
- sleep 0.1 until r.inspect =~ /terminated/
-
- begin
- r.send(1)
- rescue Ractor::ClosedError
- 'ok'
- else
- 'ng'
- end
-}
-
-# Raise Ractor::ClosedError when try to send into a closed actor
-assert_equal 'ok', %q{
- r = Ractor.new { Ractor.receive }
- r.close_incoming
-
- begin
- r.send(1)
- rescue Ractor::ClosedError
- 'ok'
- else
- 'ng'
- end
-}
-
-# Raise Ractor::ClosedError when try to take from closed actor
-assert_equal 'ok', %q{
- r = Ractor.new do
- Ractor.yield 1
- Ractor.receive
- end
-
- r.close_outgoing
- begin
- r.take
- rescue Ractor::ClosedError
- 'ok'
- else
- 'ng'
- end
-}
-
-# Can mix with Thread#interrupt and Ractor#take [Bug #17366]
-assert_equal 'err', %q{
- Ractor.new{
- t = Thread.current
- begin
- Thread.new{ t.raise "err" }.join
- rescue => e
- e.message
- end
- }.take
-}
-
-# Killed Ractor's thread yields nil
-assert_equal 'nil', %q{
- Ractor.new{
- t = Thread.current
- Thread.new{ t.kill }.join
- }.take.inspect #=> nil
-}
-
-# Ractor.yield raises Ractor::ClosedError when outgoing port is closed.
-assert_equal 'ok', %q{
- r = Ractor.new Ractor.current do |main|
- Ractor.receive
- main << true
- Ractor.yield 1
- end
-
- r.close_outgoing
- r << true
- Ractor.receive
-
- begin
- r.take
- rescue Ractor::ClosedError
- 'ok'
- else
- 'ng'
- end
-}
-
-# Raise Ractor::ClosedError when try to send into a ractor with closed incoming port
-assert_equal 'ok', %q{
- r = Ractor.new { Ractor.receive }
- r.close_incoming
-
- begin
- r.send(1)
- rescue Ractor::ClosedError
- 'ok'
- else
- 'ng'
- end
-}
-
-# A ractor with closed incoming port still can send messages out
-assert_equal '[1, 2]', %q{
- r = Ractor.new do
- Ractor.yield 1
- 2
- end
- r.close_incoming
-
- [r.take, r.take]
-}
-
-# Raise Ractor::ClosedError when try to take from a ractor with closed outgoing port
-assert_equal 'ok', %q{
- r = Ractor.new do
- Ractor.yield 1
- Ractor.receive
- end
-
- sleep 0.01 # wait for Ractor.yield in r
- r.close_outgoing
- begin
- r.take
- rescue Ractor::ClosedError
- 'ok'
- else
- 'ng'
- end
-}
-
-# A ractor with closed outgoing port still can receive messages from incoming port
-assert_equal 'ok', %q{
- r = Ractor.new do
- Ractor.receive
- end
-
- r.close_outgoing
- begin
- r.send(1)
- rescue Ractor::ClosedError
- 'ng'
- else
- 'ok'
- end
-}
-
-# Ractor.main returns main ractor
-assert_equal 'true', %q{
- Ractor.new{
- Ractor.main
- }.take == Ractor.current
-}
-
-# a ractor with closed outgoing port should terminate
-assert_equal 'ok', %q{
- Ractor.new do
- close_outgoing
- end
-
- true until Ractor.count == 1
- :ok
-}
-
-# multiple Ractors can receive (wait) from one Ractor
-assert_equal '[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]', %q{
- pipe = Ractor.new do
- loop do
- Ractor.yield Ractor.receive
- end
- end
-
- RN = 10
- rs = RN.times.map{|i|
- Ractor.new pipe, i do |pipe, i|
- msg = pipe.take
- msg # ping-pong
- end
- }
- RN.times{|i|
- pipe << i
- }
- RN.times.map{
- r, n = Ractor.select(*rs)
- rs.delete r
- n
- }.sort
-}
-
-# Ractor.select also support multiple take, receive and yield
-assert_equal '[true, true, true]', %q{
- RN = 10
- CR = Ractor.current
-
- rs = (1..RN).map{
- Ractor.new do
- CR.send 'send' + CR.take #=> 'sendyield'
- 'take'
- end
- }
- received = []
- take = []
- yielded = []
- until rs.empty?
- r, v = Ractor.select(CR, *rs, yield_value: 'yield')
- case r
- when :receive
- received << v
- when :yield
- yielded << v
- else
- take << v
- rs.delete r
- end
- end
- [received.all?('sendyield'), yielded.all?(nil), take.all?('take')]
-}
-
-# multiple Ractors can send to one Ractor
-assert_equal '[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]', %q{
- pipe = Ractor.new do
- loop do
- Ractor.yield Ractor.receive
- end
- end
-
- RN = 10
- RN.times.map{|i|
- Ractor.new pipe, i do |pipe, i|
- pipe << i
- end
- }
- RN.times.map{
- pipe.take
- }.sort
-}
-
-# an exception in a Ractor will be re-raised at Ractor#receive
-assert_equal '[RuntimeError, "ok", true]', %q{
- r = Ractor.new do
- raise 'ok' # exception will be transferred receiver
- end
- begin
- r.take
- rescue Ractor::RemoteError => e
- [e.cause.class, #=> RuntimeError
- e.cause.message, #=> 'ok'
- e.ractor == r] #=> true
- end
-}
-
-# threads in a ractor will killed
-assert_equal '{:ok=>3}', %q{
- Ractor.new Ractor.current do |main|
- q = Thread::Queue.new
- Thread.new do
- q << true
- loop{}
- ensure
- main << :ok
- end
-
- Thread.new do
- q << true
- while true
- end
- ensure
- main << :ok
- end
-
- Thread.new do
- q << true
- sleep 1
- ensure
- main << :ok
- end
-
- # wait for the start of all threads
- 3.times{q.pop}
- end
-
- 3.times.map{Ractor.receive}.tally
-}
-
-# unshareable object are copied
-assert_equal 'false', %q{
- obj = 'str'.dup
- r = Ractor.new obj do |msg|
- msg.object_id
- end
-
- obj.object_id == r.take
-}
-
-# To copy the object, now Marshal#dump is used
-assert_equal "allocator undefined for Thread", %q{
- obj = Thread.new{}
- begin
- r = Ractor.new obj do |msg|
- msg
- end
- rescue TypeError => e
- e.message #=> no _dump_data is defined for class Thread
- else
- 'ng'
- end
-}
-
-# send shareable and unshareable objects
-assert_equal "ok", %q{
- echo_ractor = Ractor.new do
- loop do
- v = Ractor.receive
- Ractor.yield v
- end
- end
-
- class C; end
- module M; end
- S = Struct.new(:a, :b, :c, :d)
-
- shareable_objects = [
- true,
- false,
- nil,
- 1,
- 1.1, # Float
- 1+2r, # Rational
- 3+4i, # Complex
- 2**128, # Bignum
- :sym, # Symbol
- 'xyzzy'.to_sym, # dynamic symbol
- 'frozen'.freeze, # frozen String
- /regexp/, # regexp literal
- /reg{true}exp/.freeze, # frozen dregexp
- [1, 2].freeze, # frozen Array which only refers to shareable
- {a: 1}.freeze, # frozen Hash which only refers to shareable
- [{a: 1}.freeze, 'str'.freeze].freeze, # nested frozen container
- S.new(1, 2).freeze, # frozen Struct
- S.new(1, 2, 3, 4).freeze, # frozen Struct
- (1..2), # Range on Struct
- (1..), # Range on Struct
- (..1), # Range on Struct
- C, # class
- M, # module
- Ractor.current, # Ractor
- ]
-
- unshareable_objects = [
- 'mutable str'.dup,
- [:array],
- {hash: true},
- S.new(1, 2),
- S.new(1, 2, 3, 4),
- S.new("a", 2).freeze, # frozen, but refers to an unshareable object
- ]
-
- results = []
-
- shareable_objects.map{|o|
- echo_ractor << o
- o2 = echo_ractor.take
- results << "#{o} is copied" unless o.object_id == o2.object_id
- }
-
- unshareable_objects.map{|o|
- echo_ractor << o
- o2 = echo_ractor.take
- results << "#{o.inspect} is not copied" if o.object_id == o2.object_id
- }
-
- if results.empty?
- :ok
- else
- results.inspect
- end
-}
-
-# frozen Objects are shareable
-assert_equal [false, true, false].inspect, %q{
- class C
- def initialize freeze
- @a = 1
- @b = :sym
- @c = 'frozen_str'
- @c.freeze if freeze
- @d = true
- end
- end
-
- def check obj1
- obj2 = Ractor.new obj1 do |obj|
- obj
- end.take
-
- obj1.object_id == obj2.object_id
- end
-
- results = []
- results << check(C.new(true)) # false
- results << check(C.new(true).freeze) # true
- results << check(C.new(false).freeze) # false
-}
-
-# move example2: String
-# touching moved object causes an error
-assert_equal 'hello world', %q{
- # move
- r = Ractor.new do
- obj = Ractor.receive
- obj << ' world'
- end
-
- str = 'hello'
- r.send str, move: true
- modified = r.take
-
- begin
- str << ' exception' # raise Ractor::MovedError
- rescue Ractor::MovedError
- modified #=> 'hello world'
- else
- raise 'unreachable'
- end
-}
-
-# move example2: Array
-assert_equal '[0, 1]', %q{
- r = Ractor.new do
- ary = Ractor.receive
- ary << 1
- end
-
- a1 = [0]
- r.send a1, move: true
- a2 = r.take
- begin
- a1 << 2 # raise Ractor::MovedError
- rescue Ractor::MovedError
- a2.inspect
- end
-}
-
-# move with yield
-assert_equal 'hello', %q{
- r = Ractor.new do
- Thread.current.report_on_exception = false
- obj = 'hello'
- Ractor.yield obj, move: true
- obj << 'world'
- end
-
- str = r.take
- begin
- r.take
- rescue Ractor::RemoteError
- str #=> "hello"
- end
-}
-
-# yield/move should not make moved object when the yield is not succeeded
-assert_equal '"str"', %q{
- R = Ractor.new{}
- M = Ractor.current
- r = Ractor.new do
- s = 'str'
- selected_r, v = Ractor.select R, yield_value: s, move: true
- raise if selected_r != R # taken from R
- M.send s.inspect # s should not be a moved object
- end
-
- Ractor.receive
-}
-
-# yield/move can fail
-assert_equal "allocator undefined for Thread", %q{
- r = Ractor.new do
- obj = Thread.new{}
- Ractor.yield obj
- rescue => e
- e.message
- end
- r.take
-}
-
-# Access to global-variables are prohibited
-assert_equal 'can not access global variables $gv from non-main Ractors', %q{
- $gv = 1
- r = Ractor.new do
- $gv
- end
-
- begin
- r.take
- rescue Ractor::RemoteError => e
- e.cause.message
- end
-}
-
-# Access to global-variables are prohibited
-assert_equal 'can not access global variables $gv from non-main Ractors', %q{
- r = Ractor.new do
- $gv = 1
- end
-
- begin
- r.take
- rescue Ractor::RemoteError => e
- e.cause.message
- end
-}
-
-# $stdin,out,err is Ractor local, but shared fds
-assert_equal 'ok', %q{
- r = Ractor.new do
- [$stdin, $stdout, $stderr].map{|io|
- [io.object_id, io.fileno]
- }
- end
-
- [$stdin, $stdout, $stderr].zip(r.take){|io, (oid, fno)|
- raise "should not be different object" if io.object_id == oid
- raise "fd should be same" unless io.fileno == fno
- }
- 'ok'
-}
-
-# $stdin,out,err belong to Ractor
-assert_equal 'ok', %q{
- r = Ractor.new do
- $stdin.itself
- $stdout.itself
- $stderr.itself
- 'ok'
- end
-
- r.take
-}
-
-# $DEBUG, $VERBOSE are Ractor local
-assert_equal 'true', %q{
- $DEBUG = true
- $VERBOSE = true
-
- def ractor_local_globals
- /a(b)(c)d/ =~ 'abcd' # for $~
- `echo foo` unless /solaris/ =~ RUBY_PLATFORM
-
- {
- # ractor-local (derived from created ractor): debug
- '$DEBUG' => $DEBUG,
- '$-d' => $-d,
-
- # ractor-local (derived from created ractor): verbose
- '$VERBOSE' => $VERBOSE,
- '$-w' => $-w,
- '$-W' => $-W,
- '$-v' => $-v,
-
- # process-local (readonly): other commandline parameters
- '$-p' => $-p,
- '$-l' => $-l,
- '$-a' => $-a,
-
- # process-local (readonly): getpid
- '$$' => $$,
-
- # thread local: process result
- '$?' => $?,
-
- # scope local: match
- '$~' => $~.inspect,
- '$&' => $&,
- '$`' => $`,
- '$\'' => $',
- '$+' => $+,
- '$1' => $1,
-
- # scope local: last line
- '$_' => $_,
-
- # scope local: last backtrace
- '$@' => $@,
- '$!' => $!,
-
- # ractor local: stdin, out, err
- '$stdin' => $stdin.inspect,
- '$stdout' => $stdout.inspect,
- '$stderr' => $stderr.inspect,
- }
- end
-
- h = Ractor.new do
- ractor_local_globals
- end.take
- ractor_local_globals == h #=> true
-}
-
-# selfs are different objects
-assert_equal 'false', %q{
- r = Ractor.new do
- self.object_id
- end
- r.take == self.object_id #=> false
-}
-
-# self is a Ractor instance
-assert_equal 'true', %q{
- r = Ractor.new do
- self.object_id
- end
- r.object_id == r.take #=> true
-}
-
-# given block Proc will be isolated, so can not access outer variables.
-assert_equal 'ArgumentError', %q{
- begin
- a = true
- r = Ractor.new do
- a
- end
- rescue => e
- e.class
- end
-}
-
-# ivar in shareable-objects are not allowed to access from non-main Ractor
-assert_equal "can not get unshareable values from instance variables of classes/modules from non-main Ractors", %q{
- class C
- @iv = 'str'
- end
-
- r = Ractor.new do
- class C
- p @iv
- end
- end
-
-
- begin
- r.take
- rescue Ractor::RemoteError => e
- e.cause.message
- end
-}
-
-# ivar in shareable-objects are not allowed to access from non-main Ractor
-assert_equal 'can not access instance variables of shareable objects from non-main Ractors', %q{
- shared = Ractor.new{}
- shared.instance_variable_set(:@iv, 'str')
-
- r = Ractor.new shared do |shared|
- p shared.instance_variable_get(:@iv)
- end
-
- begin
- r.take
- rescue Ractor::RemoteError => e
- e.cause.message
- end
-}
-
-# ivar in shareable-objects are not allowed to access from non-main Ractor, by @iv (get)
-assert_equal 'can not access instance variables of shareable objects from non-main Ractors', %q{
- class Ractor
- def setup
- @foo = ''
- end
-
- def foo
- @foo
- end
- end
-
- shared = Ractor.new{}
- shared.setup
-
- r = Ractor.new shared do |shared|
- p shared.foo
- end
-
- begin
- r.take
- rescue Ractor::RemoteError => e
- e.cause.message
- end
-}
-
-# ivar in shareable-objects are not allowed to access from non-main Ractor, by @iv (set)
-assert_equal 'can not access instance variables of shareable objects from non-main Ractors', %q{
- class Ractor
- def setup
- @foo = ''
- end
- end
-
- shared = Ractor.new{}
-
- r = Ractor.new shared do |shared|
- p shared.setup
- end
-
- begin
- r.take
- rescue Ractor::RemoteError => e
- e.cause.message
- end
-}
-
-# But a shareable object is frozen, it is allowed to access ivars from non-main Ractor
-assert_equal '11', %q{
- [Object.new, [], ].map{|obj|
- obj.instance_variable_set('@a', 1)
- Ractor.make_shareable obj = obj.freeze
-
- Ractor.new obj do |obj|
- obj.instance_variable_get('@a')
- end.take.to_s
- }.join
-}
-
-# and instance variables of classes/modules are accessible if they refer shareable objects
-assert_equal '333', %q{
- class C
- @int = 1
- @str = '-1000'.dup
- @fstr = '100'.freeze
-
- def self.int = @int
- def self.str = @str
- def self.fstr = @fstr
- end
-
- module M
- @int = 2
- @str = '-2000'.dup
- @fstr = '200'.freeze
-
- def self.int = @int
- def self.str = @str
- def self.fstr = @fstr
- end
-
- a = Ractor.new{ C.int }.take
- b = Ractor.new do
- C.str.to_i
- rescue Ractor::IsolationError
- 10
- end.take
- c = Ractor.new do
- C.fstr.to_i
- end.take
-
- d = Ractor.new{ M.int }.take
- e = Ractor.new do
- M.str.to_i
- rescue Ractor::IsolationError
- 20
- end.take
- f = Ractor.new do
- M.fstr.to_i
- end.take
-
-
- # 1 + 10 + 100 + 2 + 20 + 200
- a + b + c + d + e + f
-}
-
-# cvar in shareable-objects are not allowed to access from non-main Ractor
-assert_equal 'can not access class variables from non-main Ractors', %q{
- class C
- @@cv = 'str'
- end
-
- r = Ractor.new do
- class C
- p @@cv
- end
- end
-
- begin
- r.take
- rescue Ractor::RemoteError => e
- e.cause.message
- end
-}
-
-# also cached cvar in shareable-objects are not allowed to access from non-main Ractor
-assert_equal 'can not access class variables from non-main Ractors', %q{
- class C
- @@cv = 'str'
- def self.cv
- @@cv
- end
- end
-
- C.cv # cache
-
- r = Ractor.new do
- C.cv
- end
-
- begin
- r.take
- rescue Ractor::RemoteError => e
- e.cause.message
- end
-}
-
-# Getting non-shareable objects via constants by other Ractors is not allowed
-assert_equal 'can not access non-shareable objects in constant C::CONST by non-main Ractor.', %q{
- class C
- CONST = 'str'
- end
- r = Ractor.new do
- C::CONST
- end
- begin
- r.take
- rescue Ractor::RemoteError => e
- e.cause.message
- end
-}
-
-# Constant cache should care about non-sharable constants
-assert_equal "can not access non-shareable objects in constant Object::STR by non-main Ractor.", %q{
- STR = "hello"
- def str; STR; end
- s = str() # fill const cache
- begin
- Ractor.new{ str() }.take
- rescue Ractor::RemoteError => e
- e.cause.message
- end
-}
-
-# Setting non-shareable objects into constants by other Ractors is not allowed
-assert_equal 'can not set constants with non-shareable objects by non-main Ractors', %q{
- class C
- end
- r = Ractor.new do
- C::CONST = 'str'
- end
- begin
- r.take
- rescue Ractor::RemoteError => e
- e.cause.message
- end
-}
-
-# define_method is not allowed
-assert_equal "defined with an un-shareable Proc in a different Ractor", %q{
- str = "foo"
- define_method(:buggy){|i| str << "#{i}"}
- begin
- Ractor.new{buggy(10)}.take
- rescue => e
- e.cause.message
- end
-}
-
-# Immutable Array and Hash are shareable, so it can be shared with constants
-assert_equal '[1000, 3]', %q{
- A = Array.new(1000).freeze # [nil, ...]
- H = {a: 1, b: 2, c: 3}.freeze
-
- Ractor.new{ [A.size, H.size] }.take
-}
-
-# Ractor.count
-assert_equal '[1, 4, 3, 2, 1]', %q{
- counts = []
- counts << Ractor.count
- ractors = (1..3).map { Ractor.new { Ractor.receive } }
- counts << Ractor.count
-
- ractors[0].send('End 0').take
- sleep 0.1 until ractors[0].inspect =~ /terminated/
- counts << Ractor.count
-
- ractors[1].send('End 1').take
- sleep 0.1 until ractors[1].inspect =~ /terminated/
- counts << Ractor.count
-
- ractors[2].send('End 2').take
- sleep 0.1 until ractors[2].inspect =~ /terminated/
- counts << Ractor.count
-
- counts.inspect
-}
-
-# ObjectSpace.each_object can not handle unshareable objects with Ractors
-assert_equal '0', %q{
- Ractor.new{
- n = 0
- ObjectSpace.each_object{|o| n += 1 unless Ractor.shareable?(o)}
- n
- }.take
-}
-
-# ObjectSpace._id2ref can not handle unshareable objects with Ractors
-assert_equal 'ok', %q{
- s = 'hello'
-
- Ractor.new s.object_id do |id ;s|
- begin
- s = ObjectSpace._id2ref(id)
- rescue => e
- :ok
- end
- end.take
-}
-
-# Ractor.make_shareable(obj)
-assert_equal 'true', %q{
- class C
- def initialize
- @a = 'foo'
- @b = 'bar'
- end
-
- def freeze
- @c = [:freeze_called]
- super
- end
-
- attr_reader :a, :b, :c
- end
- S = Struct.new(:s1, :s2)
- str = "hello"
- str.instance_variable_set("@iv", "hello")
- /a/ =~ 'a'
- m = $~
- class N < Numeric
- def /(other)
- 1
- end
- end
- ary = []; ary << ary
-
- a = [[1, ['2', '3']],
- {Object.new => "hello"},
- C.new,
- S.new("x", "y"),
- ("a".."b"),
- str,
- ary, # cycle
- /regexp/,
- /#{'r'.upcase}/,
- m,
- Complex(N.new,0),
- Rational(N.new,0),
- true,
- false,
- nil,
- 1, 1.2, 1+3r, 1+4i, # Numeric
- ]
- Ractor.make_shareable(a)
-
- # check all frozen
- a.each{|o|
- raise o.inspect unless o.frozen?
-
- case o
- when C
- raise o.a.inspect unless o.a.frozen?
- raise o.b.inspect unless o.b.frozen?
- raise o.c.inspect unless o.c.frozen? && o.c == [:freeze_called]
- when Rational
- raise o.numerator.inspect unless o.numerator.frozen?
- when Complex
- raise o.real.inspect unless o.real.frozen?
- when Array
- if o[0] == 1
- raise o[1][1].inspect unless o[1][1].frozen?
- end
- when Hash
- o.each{|k, v|
- raise k.inspect unless k.frozen?
- raise v.inspect unless v.frozen?
- }
- end
- }
-
- Ractor.shareable?(a)
-}
-
-# Ractor.make_shareable(obj) doesn't freeze shareable objects
-assert_equal 'true', %q{
- r = Ractor.new{}
- Ractor.make_shareable(a = [r])
- [a.frozen?, a[0].frozen?] == [true, false]
-}
-
-# Ractor.make_shareable(a_proc) makes a proc shareable.
-assert_equal 'true', %q{
- a = [1, [2, 3], {a: "4"}]
-
- pr = Ractor.current.instance_eval do
- Proc.new do
- a
- end
- end
-
- Ractor.make_shareable(a) # referred value should be shareable
- Ractor.make_shareable(pr)
- Ractor.shareable?(pr)
-}
-
-# Ractor.shareable?(recursive_objects)
-assert_equal '[false, false]', %q{
- y = []
- x = [y, {}].freeze
- y << x
- y.freeze
- [Ractor.shareable?(x), Ractor.shareable?(y)]
-}
-
-# Ractor.make_shareable(recursive_objects)
-assert_equal '[:ok, false, false]', %q{
- o = Object.new
- def o.freeze; raise; end
- y = []
- x = [y, o].freeze
- y << x
- y.freeze
- [(Ractor.make_shareable(x) rescue :ok), Ractor.shareable?(x), Ractor.shareable?(y)]
-}
-
-# Ractor.make_shareable with Class/Module
-assert_equal '[C, M]', %q{
- class C; end
- module M; end
-
- Ractor.make_shareable(ary = [C, M])
-}
-
-# define_method() can invoke different Ractor's proc if the proc is shareable.
-assert_equal '1', %q{
- class C
- a = 1
- define_method "foo", Ractor.make_shareable(Proc.new{ a })
- a = 2
- end
-
- Ractor.new{ C.new.foo }.take
-}
-
-# Ractor.make_shareable(a_proc) makes a proc shareable.
-assert_equal 'can not make a Proc shareable because it accesses outer variables (a).', %q{
- a = b = nil
- pr = Ractor.current.instance_eval do
- Proc.new do
- c = b # assign to a is okay because c is block local variable
- # reading b is okay
- a = b # assign to a is not allowed #=> Ractor::Error
- end
- end
-
- begin
- Ractor.make_shareable(pr)
- rescue => e
- e.message
- end
-}
-
-# Ractor.make_shareable(obj, copy: true) makes copied shareable object.
-assert_equal '[false, false, true, true]', %q{
- r = []
- o1 = [1, 2, ["3"]]
-
- o2 = Ractor.make_shareable(o1, copy: true)
- r << Ractor.shareable?(o1) # false
- r << (o1.object_id == o2.object_id) # false
-
- o3 = Ractor.make_shareable(o1)
- r << Ractor.shareable?(o1) # true
- r << (o1.object_id == o3.object_id) # false
- r
-}
-
-# TracePoint with normal Proc should be Ractor local
-assert_equal '[4, 8]', %q{
- rs = []
- TracePoint.new(:line){|tp| rs << tp.lineno if tp.path == __FILE__}.enable do
- Ractor.new{ # line 4
- a = 1
- b = 2
- }.take
- c = 3 # line 8
- end
- rs
-}
-
-# Ractor deep copies frozen objects (ary)
-assert_equal '[true, false]', %q{
- Ractor.new([[]].freeze) { |ary|
- [ary.frozen?, ary.first.frozen? ]
- }.take
-}
-
-# Ractor deep copies frozen objects (str)
-assert_equal '[true, false]', %q{
- s = String.new.instance_eval { @x = []; freeze}
- Ractor.new(s) { |s|
- [s.frozen?, s.instance_variable_get(:@x).frozen?]
- }.take
-}
-
-# Can not trap with not isolated Proc on non-main ractor
-assert_equal '[:ok, :ok]', %q{
- a = []
- Ractor.new{
- trap(:INT){p :ok}
- }.take
- a << :ok
-
- begin
- Ractor.new{
- s = 'str'
- trap(:INT){p s}
- }.take
- rescue => Ractor::RemoteError
- a << :ok
- end
-}
-
-# Ractor-local storage
-assert_equal '[nil, "b", "a"]', %q{
- ans = []
- Ractor.current[:key] = 'a'
- r = Ractor.new{
- Ractor.yield self[:key]
- self[:key] = 'b'
- self[:key]
- }
- ans << r.take
- ans << r.take
- ans << Ractor.current[:key]
-}
-
-###
-### Synchronization tests
-###
-
-N = 100_000
-
-# fstring pool
-assert_equal "#{N}#{N}", %Q{
- N = #{N}
- 2.times.map{
- Ractor.new{
- N.times{|i| -(i.to_s)}
- }
- }.map{|r| r.take}.join
-}
-
-# enc_table
-assert_equal "#{N/10}", %Q{
- Ractor.new do
- loop do
- Encoding.find("test-enc-#{rand(5_000)}").inspect
- rescue ArgumentError => e
- end
- end
-
- src = Encoding.find("UTF-8")
- #{N/10}.times{|i|
- src.replicate("test-enc-\#{i}")
- }
-}
-
-# Generic ivtbl
-n = N/2
-assert_equal "#{n}#{n}", %Q{
- 2.times.map{
- Ractor.new do
- #{n}.times do
- obj = ''
- obj.instance_variable_set("@a", 1)
- obj.instance_variable_set("@b", 1)
- obj.instance_variable_set("@c", 1)
- obj.instance_variable_defined?("@a")
- end
- end
- }.map{|r| r.take}.join
-}
-
-# NameError
-assert_equal "ok", %q{
- begin
- bar
- rescue => err
- end
- begin
- Ractor.new{} << err
- rescue TypeError
- 'ok'
- end
-}
-
-assert_equal "ok", %q{
- GC.disable
- Ractor.new {}
- raise "not ok" unless GC.disable
-
- foo = []
- 10.times { foo << 1 }
-
- GC.start
-
- 'ok'
-}
-
-# Can yield back values while GC is sweeping [Bug #18117]
-assert_equal "ok", %q{
- workers = (0...8).map do
- Ractor.new do
- loop do
- 10_000.times.map { Object.new }
- Ractor.yield Time.now
- end
- end
- end
-
- 1_000.times { idle_worker, tmp_reporter = Ractor.select(*workers) }
- "ok"
-}
-
-assert_equal "ok", %q{
- def foo(*); ->{ super }; end
- begin
- Ractor.make_shareable(foo)
- rescue Ractor::IsolationError
- "ok"
- end
-}
-
-assert_equal "ok", %q{
- def foo(**); ->{ super }; end
- begin
- Ractor.make_shareable(foo)
- rescue Ractor::IsolationError
- "ok"
- end
-}
-
-assert_equal "ok", %q{
- def foo(...); ->{ super }; end
- begin
- Ractor.make_shareable(foo)
- rescue Ractor::IsolationError
- "ok"
- end
-}
-
-assert_equal "ok", %q{
- def foo((x), (y)); ->{ super }; end
- begin
- Ractor.make_shareable(foo([], []))
- rescue Ractor::IsolationError
- "ok"
- end
-}
-
-end # if !ENV['GITHUB_WORKFLOW']
diff --git a/bootstraptest/test_string.rb b/bootstraptest/test_string.rb
deleted file mode 100644
index 849dcd45b0..0000000000
--- a/bootstraptest/test_string.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-assert_normal_exit %q{
- inspect.clear
-}, '[ruby-core:68110]'
diff --git a/bootstraptest/test_struct.rb b/bootstraptest/test_struct.rb
deleted file mode 100644
index a65964d5f9..0000000000
--- a/bootstraptest/test_struct.rb
+++ /dev/null
@@ -1,5 +0,0 @@
-assert_equal 'Struct::Foo', %q{
- Struct.instance_eval { const_set(:Foo, nil) }
- Struct.new("Foo")
- Struct::Foo
-}
diff --git a/bootstraptest/test_syntax.rb b/bootstraptest/test_syntax.rb
deleted file mode 100644
index 948e2d7809..0000000000
--- a/bootstraptest/test_syntax.rb
+++ /dev/null
@@ -1,906 +0,0 @@
-assert_equal %q{4}, %q{1 && 2 && 3 && 4}
-assert_equal %q{}, %q{1 && nil && 3 && 4}
-assert_equal %q{}, %q{1 && 2 && 3 && nil}
-assert_equal %q{false}, %q{1 && 2 && 3 && false}
-assert_equal %q{4}, %q{1 and 2 and 3 and 4}
-assert_equal %q{}, %q{1 and nil and 3 and 4}
-assert_equal %q{}, %q{1 and 2 and 3 and nil}
-assert_equal %q{false}, %q{1 and 2 and 3 and false}
-assert_equal %q{}, %q{nil && true}
-assert_equal %q{false}, %q{false && true}
-assert_equal %q{}, %q{
- case 1
- when 2
- :ng
- end}
-assert_equal %q{ok}, %q{
- case 1
- when 10,20,30
- :ng1
- when 1,2,3
- :ok
- when 100,200,300
- :ng2
- else
- :elseng
- end}
-assert_equal %q{elseok}, %q{
- case 123
- when 10,20,30
- :ng1
- when 1,2,3
- :ng2
- when 100,200,300
- :ng3
- else
- :elseok
- end
-}
-assert_equal %q{ok}, %q{
- case 'test'
- when /testx/
- :ng1
- when /test/
- :ok
- when /tetxx/
- :ng2
- else
- :ng_else
- end
-}
-assert_equal %q{ok}, %q{
- case Object.new
- when Object
- :ok
- end
-}
-assert_equal %q{ok}, %q{
- case Object
- when Object.new
- :ng
- else
- :ok
- end
-}
-assert_equal %q{ok}, %q{
- case 'test'
- when 'tes'
- :ng
- when 'te'
- :ng
- else
- :ok
- end
-}
-assert_equal %q{ok}, %q{
- case 'test'
- when 'tes'
- :ng
- when 'te'
- :ng
- when 'test'
- :ok
- end
-}
-assert_equal %q{ng}, %q{
- case 'test'
- when 'tes'
- :ng
- when /te/
- :ng
- else
- :ok
- end
-}
-assert_equal %q{ok}, %q{
- case 'test'
- when 'tes'
- :ng
- when /test/
- :ok
- else
- :ng
- end
-}
-assert_equal %q{100}, %q{
- def test(arg)
- case 1
- when 2
- 3
- end
- return arg
- end
-
- test(100)
-}
-assert_equal %q{ok}, %q{
- ary = [1, 2]
- case 1
- when *ary
- :ok
- else
- :ng
- end
-}
-assert_equal %q{ok}, %q{
- ary = [1, 2]
- case 3
- when *ary
- :ng
- else
- :ok
- end
-}
-assert_equal %q{ok}, %q{
- ary = [1, 2]
- case 1
- when :x, *ary
- :ok
- when :z
- :ng1
- else
- :ng2
- end
-}
-assert_equal %q{ok}, %q{
- ary = [1, 2]
- case 3
- when :x, *ary
- :ng1
- when :z
- :ng2
- else
- :ok
- end
-}
-assert_equal %q{[:false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :then, :false, :false, :false, :then, :false, :then, :then, :then, :false, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :false, :false, :false, :false, :false, :then, :then, :then, :then, :then, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :then, :then, :then, :false, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :then, :false, :false, :false, :then, :then, :then, :then, :then, :then, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :false, :false, :false, :false, :false, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :false, :then, :then, :then, :false, :then, :false, :false, :false, :then, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :then, :then, :then, :then, :then, :false, :false, :false, :false, :false, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :false, :false, :false, :then, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :then, :false, :then, :then, :then, :false, :false, :false, :false, :false, :false, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :false, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :false, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :false, :then, :then, :then, :then, :then, :then, :then, :then, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep, :then, :sep]}, %q{
-
- def make_perm ary, num
- if num == 1
- ary.map{|e| [e]}
- else
- base = make_perm(ary, num-1)
- res = []
- base.each{|b|
- ary.each{|e|
- res << [e] + b
- }
- }
- res
- end
- end
-
- def each_test
- conds = make_perm(['fv', 'tv'], 3)
- bangs = make_perm(['', '!'], 3)
- exprs = make_perm(['and', 'or'], 3)
- ['if', 'unless'].each{|syn|
- conds.each{|cs|
- bangs.each{|bs|
- exprs.each{|es|
- yield(syn, cs, bs, es)
- }
- }
- }
- }
- end
-
- fv = false
- tv = true
-
- $ans = []
- each_test{|syn, conds, bangs, exprs|
- c1, c2, c3 = conds
- bang1, bang2, bang3 = bangs
- e1, e2 = exprs
- eval %Q{
- #{syn} #{bang1}#{c1} #{e1} #{bang2}#{c2} #{e2} #{bang3}#{c3}
- $ans << :then
- else
- $ans << :false
- end
- }
- }
-
- each_test{|syn, conds, bangs, exprs|
- c1, c2, c3 = conds
- bang1, bang2, bang3 = bangs
- e1, e2 = exprs
- eval %Q{
- #{syn} #{bang1}#{c1} #{e1} #{bang2}#{c2} #{e2} #{bang3}#{c3}
- $ans << :then
- end
- $ans << :sep
- }
- }
- $ans
-}
-assert_equal %q{}, %q{
- defined?(m)
-}
-assert_equal %q{method}, %q{
- def m
- end
- defined?(m)
-}
-assert_equal %q{}, %q{
- defined?(a.class)
-}
-assert_equal %q{method}, %q{
- a = 1
- defined?(a.class)
-}
-assert_equal %q{["method", "method", "method", "method", nil, nil, "method", "method", "method", nil]}, %q{
- class C
- def test
- [defined?(m1()), defined?(self.m1), defined?(C.new.m1),
- defined?(m2()), defined?(self.m2), defined?(C.new.m2),
- defined?(m3()), defined?(self.m3), defined?(C.new.m3)]
- end
- def m1
- end
- private
- def m2
- end
- protected
- def m3
- end
- end
- C.new.test + [defined?(C.new.m3)]
-}
-assert_equal %q{[nil, nil, nil, nil, "global-variable", "global-variable", nil, nil]}, %q{
- $ans = [defined?($1), defined?($2), defined?($3), defined?($4)]
- /(a)(b)/ =~ 'ab'
- $ans + [defined?($1), defined?($2), defined?($3), defined?($4)]
-}
-assert_equal %q{nilselftruefalse}, %q{
- defined?(nil) + defined?(self) +
- defined?(true) + defined?(false)
-}
-assert_equal %q{}, %q{
- defined?(@a)
-}
-assert_equal %q{instance-variable}, %q{
- @a = 1
- defined?(@a)
-}
-assert_equal %q{}, %q{
- defined?(@@a)
-}
-assert_equal %q{class variable}, %q{
- class A
- @@a = 1
- defined?(@@a)
- end
-}
-assert_equal %q{}, %q{
- defined?($a)
-}
-assert_equal %q{global-variable}, %q{
- $a = 1
- defined?($a)
-}
-assert_equal %q{}, %q{
- defined?(C_definedtest)
-}
-assert_equal %q{constant}, %q{
- C_definedtest = 1
- defined?(C_definedtest)
-}
-assert_equal %q{}, %q{
- defined?(::C_definedtest)
-}
-assert_equal %q{constant}, %q{
- C_definedtest = 1
- defined?(::C_definedtest)
-}
-assert_equal %q{}, %q{
- defined?(C_definedtestA::C_definedtestB::C_definedtestC)
-}
-assert_equal %q{constant}, %q{
- class C_definedtestA
- class C_definedtestB
- C_definedtestC = 1
- end
- end
- defined?(C_definedtestA::C_definedtestB::C_definedtestC)
-}
-assert_equal %q{30}, %q{
- sum = 0
- 30.times{|ib|
- if ib % 10 == 0 .. true
- sum += ib
- end
- }
- sum
-}
-assert_equal %q{63}, %q{
- sum = 0
- 30.times{|ib|
- if ib % 10 == 0 ... true
- sum += ib
- end
- }
- sum
-}
-assert_equal %q{[["NUM", "Type: NUM\n"], ["NUM", "123\n"], ["NUM", "456\n"], ["NUM", "Type: ARP\n"], ["NUM", "aaa\n"], ["NUM", "bbb\n"], ["NUM", "\f\n"], ["ARP", "Type: ARP\n"], ["ARP", "aaa\n"], ["ARP", "bbb\n"]]}, %q{
- t = nil
- unless ''.respond_to? :lines
- class String
- def lines
- self
- end
- end
- end
- ary = []
-"this must not print
-Type: NUM
-123
-456
-Type: ARP
-aaa
-bbb
-\f
-this must not print
-hoge
-Type: ARP
-aaa
-bbb
-".lines.each{|l|
- if (t = l[/^Type: (.*)/, 1])..(/^\f/ =~ l)
- ary << [t, l]
- end
- }
- ary
-}
-assert_equal %q{1}, %q{if true then 1 ; end}
-assert_equal %q{}, %q{if false then 1 ; end}
-assert_equal %q{1}, %q{if true then 1 ; else; 2; end}
-assert_equal %q{2}, %q{if false then 1 ; else; 2; end}
-assert_equal %q{}, %q{if true then ; elsif true then ; 1 ; end}
-assert_equal %q{1}, %q{if false then ; elsif true then ; 1 ; end}
-assert_equal %q{}, %q{unless true then 1 ; end}
-assert_equal %q{1}, %q{unless false then 1 ; end}
-assert_equal %q{2}, %q{unless true then 1 ; else; 2; end}
-assert_equal %q{1}, %q{unless false then 1 ; else; 2; end}
-assert_equal %q{1}, %q{1 if true}
-assert_equal %q{}, %q{1 if false}
-assert_equal %q{}, %q{1 if nil}
-assert_equal %q{}, %q{1 unless true}
-assert_equal %q{1}, %q{1 unless false}
-assert_equal %q{1}, %q{1 unless nil}
-assert_equal %q{1}, %q{1 || 2 || 3 || 4}
-assert_equal %q{1}, %q{1 || false || 3 || 4}
-assert_equal %q{2}, %q{nil || 2 || 3 || 4}
-assert_equal %q{2}, %q{false || 2 || 3 || 4}
-assert_equal %q{false}, %q{nil || false || nil || false}
-assert_equal %q{1}, %q{1 or 2 or 3 or 4}
-assert_equal %q{1}, %q{1 or false or 3 or 4}
-assert_equal %q{2}, %q{nil or 2 or 3 or 4}
-assert_equal %q{2}, %q{false or 2 or 3 or 4}
-assert_equal %q{1}, %q{if true && ""; then 1; end}
-assert_equal %q{1}, %q{if nil || true; then 1; end}
-assert_equal %q{false}, %q{nil or false or nil or false}
-assert_equal %q{elseng}, %q{
- case
- when 1==2, 2==3
- :ng1
- when false, 4==5
- :ok
- when false
- :ng2
- else
- :elseng
- end
-}
-assert_equal %q{ok}, %q{
- case
- when nil, nil
- :ng1
- when 1,2,3
- :ok
- when false, false
- :ng2
- else
- :elseng
- end
-}
-assert_equal %q{elseok}, %q{
- case
- when nil
- :ng1
- when false
- :ng2
- else
- :elseok
- end}
-assert_equal %q{}, %q{
- case
- when 1
- end
-}
-assert_equal %q{ok}, %q{
- r = nil
- ary = []
- case
- when false
- r = :ng1
- when false, false
- r = :ng2
- when *ary
- r = :ng3
- when false, *ary
- r = :ng4
- when true, *ary
- r = :ok
- end
- r
-}
-assert_equal %q{ok}, %q{
- ary = []
- case
- when false, *ary
- :ng
- else
- :ok
- end
-}
-assert_equal %q{ok}, %q{
- ary = [false, nil]
- case
- when *ary
- :ng
- else
- :ok
- end
-}
-assert_equal %q{ok}, %q{
- ary = [false, nil]
- case
- when *ary
- :ng
- when true
- :ok
- else
- :ng2
- end
-}
-assert_equal %q{ng}, %q{
- ary = [false, nil]
- case
- when *ary
- :ok
- else
- :ng
- end
-}
-assert_equal %q{ok}, %q{
- ary = [false, true]
- case
- when *ary
- :ok
- else
- :ng
- end
-}
-assert_equal %q{ok}, %q{
- ary = [false, true]
- case
- when false, false
- when false, *ary
- :ok
- else
- :ng
- end
-}
-assert_equal %q{}, %q{
- i = 0
- while i < 10
- i+=1
- end}
-assert_equal %q{10}, %q{
- i = 0
- while i < 10
- i+=1
- end; i}
-assert_equal %q{}, %q{
- i = 0
- until i > 10
- i+=1
- end}
-assert_equal %q{11}, %q{
- i = 0
- until i > 10
- i+=1
- end; i}
-assert_equal %q{1}, %q{
- i = 0
- begin
- i+=1
- end while false
- i
-}
-assert_equal %q{1}, %q{
- i = 0
- begin
- i+=1
- end until true
- i
-}
-def assert_syntax_error expected, code, message = ''
- assert_equal "#{expected}",
- "begin eval(%q{#{code}}, nil, '', 0)"'; rescue SyntaxError => e; e.message[/\A:(?:\d+:)? (.*)/, 1] end', message
-end
-assert_syntax_error "unterminated string meets end of file", '().."', '[ruby-dev:29732]'
-assert_equal %q{[]}, %q{$&;[]}, '[ruby-dev:31068]'
-assert_syntax_error "syntax error, unexpected *, expecting '}'", %q{{*0}}, '[ruby-dev:31072]'
-assert_syntax_error "`@0' is not allowed as an instance variable name", %q{@0..0}, '[ruby-dev:31095]'
-assert_syntax_error "identifier $00 is not valid to get", %q{$00..0}, '[ruby-dev:31100]'
-assert_syntax_error "identifier $00 is not valid to set", %q{0..$00=1}
-assert_equal %q{0}, %q{[*0];0}, '[ruby-dev:31102]'
-assert_syntax_error "syntax error, unexpected ')'", %q{v0,(*,v1,) = 0}, '[ruby-dev:31104]'
-assert_equal %q{1}, %q{
- class << (ary=[]); def []; 0; end; def []=(x); super(0,x);end;end; ary[]+=1
-}, '[ruby-dev:31110]'
-assert_syntax_error "Can't set variable $1", %q{0..$1=1}, '[ruby-dev:31118]'
-assert_valid_syntax %q{1.times{1+(1&&next)}}, '[ruby-dev:31119]'
-assert_valid_syntax %q{x=-1;loop{x+=1&&redo if (x+=1).zero?}}, '[ruby-dev:31119]'
-assert_syntax_error %q{syntax error, unexpected end-of-input}, %q{!}, '[ruby-dev:31243]'
-assert_equal %q{[nil]}, %q{[()]}, '[ruby-dev:31252]'
-assert_equal %q{true}, %q{!_=()}, '[ruby-dev:31263]'
-assert_equal 'ok', %q{while true; redo; end if 1 == 2; :ok}, '[ruby-dev:31360]'
-assert_equal 'ok', %q{
- 1.times {
- begin
- ensure
- next
- end
- }; :ok
-}, '[ruby-dev:31373]'
-assert_equal 'ok', %q{
- flag = false
- 1.times {
- next if flag
- flag = true
- begin
- ensure
- redo
- end
- }; :ok
-}, '[ruby-dev:31373]'
-
-assert_equal 'ok', %q{
- 1.times{
- p(1, (next; 2))
- }; :ok
-}
-assert_equal '3', %q{
- i = 0
- 1 + (while true
- break 2 if (i+=1) > 1
- next
- end)
-}
-assert_equal '3', %q{
- i = 0
- 1 + (while true
- break 2 if (i+=1) > 1
- p(1, (next; 2))
- end)
-}
-# redo
-assert_equal 'ok', %q{
- i = 0
- 1.times{
- break if i>1
- i+=1
- p(1, (redo; 2))
- }; :ok
-}
-assert_equal '3', %q{
- i = 0
- 1 + (while true
- break 2 if (i+=1) > 1
- redo
- end)
-}
-assert_equal '3', %q{
- i = 0
- 1 + (while true
- break 2 if (i+=1) > 1
- p(1, (redo; 2))
- end)
-}
-assert_equal '1', %q{
- a = [0]
- a[*a]+=1
-}
-assert_equal '2', %q{
- ary = [0]
- case 1
- when *ary, 1
- 1
- end +
- case
- when *ary
- 1
- end
-}
-
-assert_match /invalid multibyte char/, %q{
- $stderr = STDOUT
- eval("\"\xf0".force_encoding("utf-8"))
-}, '[ruby-dev:32429]'
-
-# method ! and !=
-assert_equal 'true', %q{!false}
-assert_equal 'true', %q{1 == 1}
-assert_equal 'true', %q{1 != 2}
-assert_equal 'true', %q{
- class C; def !=(obj); true; end; end
- C.new != 1
-}
-assert_equal 'true', %q{
- class C; def !@; true; end; end
- !C.new
-}
-assert_normal_exit %q{
- eval "while true; return; end rescue p $!"
-}, '[ruby-dev:31663]'
-assert_equal '1', %q{
- def bar
- raise
- end
-
- def foo
- 1.times{
- begin
- return bar
- rescue
- :ok
- end
- }
- end
-
- foo
-}
-
-assert_equal 'ok', %q{
- counter = 2
- while true
- counter -= 1
- next if counter != 0
- break
- end
- :ok
-}, '[ruby-core:14385]'
-
-assert_equal 'ok', %q{
- counter = 2
- while true
- counter -= 1
- next if counter != 0
- break :ok
- end # direct
-}, '[ruby-core:14385]'
-
-assert_equal 'ok', %q{
- counter = 2
- while true
- counter -= 1
- break if counter == 0
- "#{next}"
- end
- :ok
-}, 'reported by Yusuke ENDOH'
-
-assert_equal 'ok', %q{
- counter = 2
- while true
- counter -= 1
- break if counter == 0
- next
- redo
- end
- :ok
-}, 'reported by Yusuke ENDOH'
-
-assert_equal 'ok', %q{
- counter = 2
- while true
- counter -= 1
- break if counter == 0
- next
- "#{ redo }"
- end
- :ok
-}, 'reported by Yusuke ENDOH'
-
-assert_normal_exit %q{
- begin
- raise
- rescue
- counter = 2
- while true
- counter -= 1
- break if counter == 0
- next
- retry
- end
- end
-}, 'reported by Yusuke ENDOH'
-
-assert_normal_exit %q{
- counter = 2
- while true
- counter -= 1
- break if counter == 0
- next
- "#{ break }"
- end
-}, 'reported by Yusuke ENDOH'
-
-assert_normal_exit %q{
- counter = 2
- while true
- counter -= 1
- next if counter != 0
- "#{ break }"
- end
-}, 'reported by Yusuke ENDOH'
-
-assert_equal 'ok', %q{
- 1.times do
- [
- 1, 2, 3, 4, 5, 6, 7, 8,
- begin
- false ? next : p
- break while true
- end
- ]
- end
- :ok
-}, '[ruby-dev:32882]'
-
-assert_equal "1\n2\n", %q{
- i = 0
- while i<2
- i += 1
- next p(i)
- end
-}
-
-assert_valid_syntax('1.times {|i|print (42),1;}', '[ruby-list:44479]')
-
-assert_equal 'ok', %q{
- def a() end
- begin
- if defined?(a(1).a)
- :ng
- else
- :ok
- end
- rescue
- :ng
- end
-}, '[ruby-core:16010]'
-
-assert_equal 'ok', %q{
- def a() end
- begin
- if defined?(a::B)
- :ng
- else
- :ok
- end
- rescue
- :ng
- end
-}, '[ruby-core:16010]'
-
-assert_normal_exit %q{
- defined? C && 0
-}
-
-assert_normal_exit %q{
- class C
- def m
- defined?(super())
- end
- end
- C.new.m
-}
-
-assert_equal 'ok', %q{
- class X < RuntimeError;end
- x = [X]
- begin
- raise X
- rescue *x
- :ok
- end
-}, '[ruby-core:14537]'
-
-assert_equal 'ok', %q{
- a = [false]
- (a[0] &&= true) == false ? :ok : :ng
-}, '[ruby-dev:34679]'
-
-assert_normal_exit %q{
- a = []
- 100.times {|i| a << i << nil << nil }
- p a.compact!
-}
-
-assert_equal 'ok', %q{
- "#{}""#{}ok"
-}, '[ruby-dev:38968]'
-
-
-assert_equal 'ok', %q{
- "o" "#{}k"
-}, '[ruby-dev:38980]'
-
-bug2415 = '[ruby-core:26961]'
-assert_normal_exit %q{
- 0.times do
- 0.times do
- def x(a=1, b, *rest); nil end
- end
- end
-}, bug2415
-
-assert_normal_exit %q{
- 0.times do
- 0.times do
- def x@; nil end
- end
- end
-}, bug2415
-
-assert_normal_exit %q{
- 0.times do
- 0.times do
- def x(a = 0.times do
- def y(a=1, b, *rest); nil; end
- end)
- nil
- end
- end
- end
-}, bug2415
-
-assert_normal_exit %q{
- 0.times do
- 0.times do
- def x(a = 0.times do
- def x@; nil; end
- end)
- nil
- end
- end
- end
-}, bug2415
-
-assert_normal_exit %q{
- a {
- b {|c.d| }
- e
- }
-}, '[ruby-dev:39861]'
-
-bug1240 = '[ruby-core:22637]'
-assert_valid_syntax('x y { "#{}".z { } }', bug1240)
-assert_valid_syntax('x y { "#{}".z do end }', bug1240)
-
-assert_valid_syntax('y "#{a 1}" do end', '[ruby-core:29579]')
-assert_normal_exit %q{
- def foo(&block)
- yield
- end
-
- foo do
- s = defined?(raise + 1)
- Class
- end
-}, '[ruby-core:30293]'
diff --git a/bootstraptest/test_thread.rb b/bootstraptest/test_thread.rb
deleted file mode 100644
index 38a55ff229..0000000000
--- a/bootstraptest/test_thread.rb
+++ /dev/null
@@ -1,500 +0,0 @@
-show_limit %q{
- threads = []
- begin
- threads << Thread.new{sleep}
-
- raise Exception, "skipping" if threads.count >= 10_000
- rescue Exception => error
- puts "Thread count: #{threads.count} (#{error})"
- break
- end while true
-} if false # disable to pass CI
-
-assert_equal %q{ok}, %q{
- Thread.new{
- }.join
- :ok
-}
-assert_equal %q{ok}, %q{
- Thread.new{
- :ok
- }.value
-}
-assert_equal %q{ok}, %q{
-begin
- v = 0
- (1..200).map{|i|
- Thread.new{
- i
- }
- }.each{|t|
- v += t.value
- }
- v == 20100 ? :ok : v
-rescue ThreadError => e
- :ok if /can't create Thread/ =~ e.message
-end
-}
-assert_equal %q{ok}, %q{
-begin
- :ok if 5000 == 5000.times{|e|
- (1..2).map{
- Thread.new{
- }
- }.each{|e|
- e.join()
- }
- }
-rescue ThreadError => e
- /can't create Thread/ =~ e.message ? :ok : e.message
-end
-}
-assert_equal %q{ok}, %q{
-begin
- :ok if 5000 == 5000.times{|e|
- (1..2).map{
- Thread.new{
- }
- }.each{|e|
- e.join(1000000000)
- }
- }
-rescue ThreadError => e
- /can't create Thread/ =~ e.message ? :ok : e.message
-end
-}
-assert_equal %q{ok}, %q{
-begin
- :ok if 5000 == 5000.times{
- t = Thread.new{}
- while t.alive?
- Thread.pass
- end
- }
-rescue NoMemoryError
- :ok
-end
-}
-assert_equal %q{100}, %q{
- 100.times{
- Thread.new{loop{Thread.pass}}
- }
-}
-assert_equal %q{ok}, %q{
- Thread.new{
- :ok
- }.join.value
-}
-assert_equal %q{ok}, %q{
- begin
- Thread.new{
- raise "ok"
- }.join
- rescue => e
- e
- end
-}
-assert_equal %q{ok}, %q{
- ans = nil
- t = Thread.new{
- begin
- sleep 0.5
- ensure
- ans = :ok
- end
- }
- Thread.pass until t.stop?
- t.kill
- t.join
- ans
-}
-assert_equal %q{ok}, %q{
- t = Thread.new{
- sleep
- }
- sleep 0.1
- t.raise
- begin
- t.join
- :ng
- rescue
- :ok
- end
-}
-assert_equal %q{ok}, %q{
- t = Thread.new{
- loop{}
- }
- Thread.pass
- t.raise
- begin
- t.join
- :ng
- rescue
- :ok
- end
-}
-assert_equal %q{ok}, %q{
- t = Thread.new{
- }
- Thread.pass
- t.join
- t.raise # raise to exited thread
- begin
- t.join
- :ok
- rescue
- :ng
- end
-}
-assert_equal %q{run}, %q{
- t = Thread.new{
- loop{}
- }
- st = t.status
- t.kill
- st
-}
-assert_equal %q{sleep}, %q{
- t = Thread.new{
- sleep
- }
- sleep 0.1
- st = t.status
- t.kill
- st
-}
-assert_equal %q{false}, %q{
- t = Thread.new{
- }
- t.kill
- sleep 0.1
- t.status
-}
-assert_equal %q{[ThreadGroup, true]}, %q{
- ptg = Thread.current.group
- Thread.new{
- ctg = Thread.current.group
- [ctg.class, ctg == ptg]
- }.value
-}
-assert_equal %q{[1, 1]}, %q{
- thg = ThreadGroup.new
-
- t = Thread.new{
- thg.add Thread.current
- sleep
- }
- sleep 0.1
- [thg.list.size, ThreadGroup::Default.list.size]
-}
-assert_equal %q{true}, %q{
- thg = ThreadGroup.new
-
- t = Thread.new{sleep 5}
- thg.add t
- thg.list.include?(t)
-}
-assert_equal %q{[true, nil, true]}, %q{
- /a/ =~ 'a'
- $a = $~
- Thread.new{
- $b = $~
- /b/ =~ 'b'
- $c = $~
- }.join
- $d = $~
- [$a == $d, $b, $c != $d]
-}
-assert_equal %q{11}, %q{
- Thread.current[:a] = 1
- Thread.new{
- Thread.current[:a] = 10
- Thread.pass
- Thread.current[:a]
- }.value + Thread.current[:a]
-}
-assert_normal_exit %q{
- begin
- 100.times do |i|
- begin
- th = Thread.start(Thread.current) {|u| u.raise }
- raise
- rescue
- ensure
- th.join
- end
- end
- rescue
- end
-}, '[ruby-dev:31371]'
-
-assert_equal 'true', %{
- t = Thread.new { loop {} }
- begin
- pid = fork {
- exit t.status != "run"
- }
- Process.wait pid
- $?.success?
- rescue NotImplementedError
- true
- end
-}
-
-assert_equal 'ok', %{
- open("zzz.rb", "w") do |f|
- f.puts <<-END
- begin
- Thread.new { fork { GC.start } }.join
- pid, status = Process.wait2
- $result = status.success? ? :ok : :ng
- rescue NotImplementedError
- $result = :ok
- end
- END
- end
- require "./zzz.rb"
- $result
-}
-
-assert_finish 3, %{
- th = Thread.new {sleep 0.2}
- th.join(0.1)
- th.join
-}
-
-assert_finish 3, %{
- require 'timeout'
- th = Thread.new {sleep 0.2}
- begin
- Timeout.timeout(0.1) {th.join}
- rescue Timeout::Error
- end
- th.join
-}
-
-assert_normal_exit %q{
- STDERR.reopen(STDOUT)
- exec "/"
-}
-
-assert_normal_exit %q{
- (0..10).map {
- Thread.new {
- 10000.times {
- Object.new.to_s
- }
- }
- }.each {|t|
- t.join
- }
-}
-
-assert_equal 'ok', %q{
- def m
- t = Thread.new { while true; // =~ "" end }
- sleep 0.01
- 10.times {
- if /((ab)*(ab)*)*(b)/ =~ "ab"*7
- return :ng if !$4
- return :ng if $~.size != 5
- end
- }
- :ok
- ensure
- Thread.kill t
- end
- m
-}, '[ruby-dev:34492]'
-
-assert_normal_exit %q{
- g = enum_for(:local_variables)
- loop { g.next }
-}, '[ruby-dev:34128]'
-
-assert_normal_exit %q{
- g = enum_for(:block_given?)
- loop { g.next }
-}, '[ruby-dev:34128]'
-
-assert_normal_exit %q{
- g = enum_for(:binding)
- loop { g.next }
-}, '[ruby-dev:34128]'
-
-assert_normal_exit %q{
- g = "abc".enum_for(:scan, /./)
- loop { g.next }
-}, '[ruby-dev:34128]'
-
-assert_normal_exit %q{
- g = Module.enum_for(:new)
- loop { g.next }
-}, '[ruby-dev:34128]'
-
-assert_normal_exit %q{
- Thread.new("foo", &Object.method(:class_eval)).join
-}, '[ruby-dev:34128]'
-
-assert_equal 'ok', %q{
- begin
- Thread.new { Thread.stop }
- Thread.stop
- :ng
- rescue Exception
- :ok
- end
-}
-
-assert_equal 'ok', %q{
- begin
- m1, m2 = Thread::Mutex.new, Thread::Mutex.new
- f1 = f2 = false
- Thread.new { m1.lock; f2 = true; sleep 0.001 until f1; m2.lock }
- m2.lock; f1 = true; sleep 0.001 until f2; m1.lock
- :ng
- rescue Exception
- :ok
- end
-}
-
-assert_equal 'ok', %q{
- m = Thread::Mutex.new
- Thread.new { m.lock }; sleep 0.1; m.lock
- :ok
-}
-
-assert_equal 'ok', %q{
- m = Thread::Mutex.new
- Thread.new { m.lock }; m.lock
- :ok
-}
-
-assert_equal 'ok', %q{
- m = Thread::Mutex.new
- Thread.new { m.lock }.join; m.lock
- :ok
-}
-
-assert_equal 'ok', %q{
- m = Thread::Mutex.new
- Thread.new { m.lock; sleep 0.2 }
- sleep 0.1; m.lock
- :ok
-}
-
-assert_equal 'ok', %q{
- m = Thread::Mutex.new
- Thread.new { m.lock; sleep 0.2; m.unlock }
- sleep 0.1; m.lock
- :ok
-}
-
-assert_equal 'ok', %q{
- t = Thread.new {`echo`}
- t.join
- $? ? :ng : :ok
-}, '[ruby-dev:35414]'
-
-assert_equal 'ok', %q{
- begin
- 100.times{
- (1..100).map{ Thread.new(true) {|x| x == false } }.each{|th| th.join}
- }
- rescue NoMemoryError, StandardError
- end
- :ok
-}
-
-assert_equal 'ok', %{
- open("zzz.rb", "w") do |f|
- f.puts <<-'end;' # do
- begin
- m = Thread::Mutex.new
- parent = Thread.current
- th1 = Thread.new { m.lock; sleep }
- sleep 0.01 until th1.stop?
- Thread.new do
- sleep 0.01 until parent.stop?
- begin
- fork { GC.start }
- rescue Exception
- parent.raise $!
- end
- th1.run
- end
- m.lock
- pid, status = Process.wait2
- $result = status.success? ? :ok : :ng
- rescue NotImplementedError
- $result = :ok
- end
- end;
- end
- require "./zzz.rb"
- $result
-}
-
-assert_finish 3, %q{
- require 'thread'
-
- lock = Thread::Mutex.new
- cond = Thread::ConditionVariable.new
- t = Thread.new do
- lock.synchronize do
- cond.wait(lock)
- end
- end
-
- begin
- pid = fork do
- # Child
- STDOUT.write "This is the child process.\n"
- STDOUT.write "Child process exiting.\n"
- end
- Process.waitpid(pid)
- rescue NotImplementedError
- end
-}, '[ruby-core:23572]'
-
-assert_equal 'ok', %q{
- begin
- Process.waitpid2(fork {})[1].success? ? 'ok' : 'ng'
- rescue NotImplementedError
- 'ok'
- end
-}
-
-assert_equal 'foo', %q{
- i = 0
- Thread.start {sleep 1; exit!}
- f = proc {|s, c| /#{c.call; s}/o }
- th2 = Thread.new {
- sleep 0.01 until i == 1
- i = 2
- f.call("bar", proc {sleep 2});
- nil
- }
- th1 = Thread.new {
- f.call("foo", proc {i = 1; sleep 0.01 until i == 2; sleep 0.01})
- nil
- }
- [th1, th2].each {|t| t.join }
- GC.start
- f.call.source
-}
-assert_normal_exit %q{
- class C
- def inspect
- sleep 0.5
- 'C!!'
- end
- end
- Thread.new{
- loop{
- p C.new
- }
- }
- sleep 0.1
-}, timeout: 5
diff --git a/bootstraptest/test_yjit.rb b/bootstraptest/test_yjit.rb
deleted file mode 100644
index 05947c48ed..0000000000
--- a/bootstraptest/test_yjit.rb
+++ /dev/null
@@ -1,2721 +0,0 @@
-assert_equal '18374962167983112447', %q{
- # regression test for incorrectly discarding 32 bits of a pointer when it
- # comes to default values.
- def large_literal_default(n: 0xff00_fabcafe0_00ff)
- n
- end
-
- def call_graph_root
- large_literal_default
- end
-
- call_graph_root
- call_graph_root
-}
-
-assert_normal_exit %q{
- # regression test for a leak caught by an asert on --yjit-call-threshold=2
- Foo = 1
-
- eval("def foo = [#{(['Foo,']*256).join}]")
-
- foo
- foo
-
- Object.send(:remove_const, :Foo)
-}
-
-assert_equal '[nil, nil, nil, nil, nil, nil]', %q{
- [NilClass, TrueClass, FalseClass, Integer, Float, Symbol].each do |klass|
- klass.class_eval("def foo = @foo")
- end
-
- [nil, true, false, 0xFABCAFE, 0.42, :cake].map do |instance|
- instance.foo
- instance.foo
- end
-}
-
-assert_equal '0', %q{
- # This is a regression test for incomplete invalidation from
- # opt_setinlinecache. This test might be brittle, so
- # feel free to remove it in the future if it's too annoying.
- # This test assumes --yjit-call-threshold=2.
- module M
- Foo = 1
- def foo
- Foo
- end
-
- def pin_self_type_then_foo
- _ = @foo
- foo
- end
-
- def only_ints
- 1 + self
- foo
- end
- end
-
- class Integer
- include M
- end
-
- class Sub
- include M
- end
-
- foo_method = M.instance_method(:foo)
-
- dbg = ->(message) do
- return # comment this out to get printouts
-
- $stderr.puts RubyVM::YJIT.disasm(foo_method)
- $stderr.puts message
- end
-
- 2.times { 42.only_ints }
-
- dbg["There should be two versions of getinlineache"]
-
- module M
- remove_const(:Foo)
- end
-
- dbg["There should be no getinlinecaches"]
-
- 2.times do
- 42.only_ints
- rescue NameError => err
- _ = "caught name error #{err}"
- end
-
- dbg["There should be one version of getinlineache"]
-
- 2.times do
- Sub.new.pin_self_type_then_foo
- rescue NameError
- _ = 'second specialization'
- end
-
- dbg["There should be two versions of getinlineache"]
-
- module M
- Foo = 1
- end
-
- dbg["There should still be two versions of getinlineache"]
-
- 42.only_ints
-
- dbg["There should be no getinlinecaches"]
-
- # Find name of the first VM instruction in M#foo.
- insns = RubyVM::InstructionSequence.of(foo_method).to_a
- if defined?(RubyVM::YJIT.blocks_for) && (insns.last.find { Array === _1 }&.first == :opt_getinlinecache)
- RubyVM::YJIT.blocks_for(RubyVM::InstructionSequence.of(foo_method))
- .filter { _1.iseq_start_index == 0 }.count
- else
- 0 # skip the test
- end
-}
-
-# Check that frozen objects are respected
-assert_equal 'great', %q{
- class Foo
- attr_accessor :bar
- def initialize
- @bar = 1
- freeze
- end
- end
-
- foo = Foo.new
-
- 5.times do
- begin
- foo.bar = 2
- rescue FrozenError
- end
- end
-
- foo.bar == 1 ? "great" : "NG"
-}
-
-# Check that global variable set works
-assert_equal 'string', %q{
- def foo
- $foo = "string"
- end
-
- foo
-}
-
-# Check that exceptions work when setting global variables
-assert_equal 'rescued', %q{
- def set_var
- $var = 100
- rescue
- :rescued
- end
-
- set_var
- trace_var(:$var) { raise }
- set_var
-}
-
-# Check that global variables work
-assert_equal 'string', %q{
- $foo = "string"
-
- def foo
- $foo
- end
-
- foo
-}
-
-# Check that exceptions work when getting global variable
-assert_equal 'rescued', %q{
- module Warning
- def warn(message)
- raise
- end
- end
-
- def get_var
- $=
- rescue
- :rescued
- end
-
- $VERBOSE = true
- get_var
- get_var
-}
-
-# Check that global tracepoints work
-assert_equal 'true', %q{
- def foo
- 1
- end
-
- foo
- foo
- foo
-
- called = false
-
- tp = TracePoint.new(:return) { |event|
- if event.method_id == :foo
- called = true
- end
- }
- tp.enable
- foo
- tp.disable
- called
-}
-
-# Check that local tracepoints work
-assert_equal 'true', %q{
- def foo
- 1
- end
-
- foo
- foo
- foo
-
- called = false
-
- tp = TracePoint.new(:return) { |_| called = true }
- tp.enable(target: method(:foo))
- foo
- tp.disable
- called
-}
-
-# Make sure that optional param methods return the correct value
-assert_equal '1', %q{
- def m(ary = [])
- yield(ary)
- end
-
- # Warm the JIT with a 0 param call
- 2.times { m { } }
- m(1) { |v| v }
-}
-
-# Test for topn
-assert_equal 'array', %q{
- def threequals(a)
- case a
- when Array
- "array"
- when Hash
- "hash"
- else
- "unknown"
- end
- end
-
- threequals([])
- threequals([])
- threequals([])
-}
-
-# Test for opt_mod
-assert_equal '2', %q{
- def mod(a, b)
- a % b
- end
-
- mod(7, 5)
- mod(7, 5)
-}
-
-# Test for opt_mult
-assert_equal '12', %q{
- def mult(a, b)
- a * b
- end
-
- mult(6, 2)
- mult(6, 2)
-}
-
-# Test for opt_div
-assert_equal '3', %q{
- def div(a, b)
- a / b
- end
-
- div(6, 2)
- div(6, 2)
-}
-
-# BOP redefined methods work when JIT compiled
-assert_equal 'false', %q{
- def less_than x
- x < 10
- end
-
- class Integer
- def < x
- false
- end
- end
-
- less_than 2
- less_than 2
- less_than 2
-}
-
-# BOP redefinition works on Integer#<
-assert_equal 'false', %q{
- def less_than x
- x < 10
- end
-
- less_than 2
- less_than 2
-
- class Integer
- def < x
- false
- end
- end
-
- less_than 2
-}
-
-# Putobject, less-than operator, fixnums
-assert_equal '2', %q{
- def check_index(index)
- if 0x40000000 < index
- raise "wat? #{index}"
- end
- index
- end
- check_index 2
- check_index 2
-}
-
-# foo leaves a temp on the stack before the call
-assert_equal '6', %q{
- def bar
- return 5
- end
-
- def foo
- return 1 + bar
- end
-
- foo()
- retval = foo()
-}
-
-# Method with one arguments
-# foo leaves a temp on the stack before the call
-assert_equal '7', %q{
- def bar(a)
- return a + 1
- end
-
- def foo
- return 1 + bar(5)
- end
-
- foo()
- retval = foo()
-}
-
-# Method with two arguments
-# foo leaves a temp on the stack before the call
-assert_equal '0', %q{
- def bar(a, b)
- return a - b
- end
-
- def foo
- return 1 + bar(1, 2)
- end
-
- foo()
- retval = foo()
-}
-
-# Passing argument types to callees
-assert_equal '8.5', %q{
- def foo(x, y)
- x + y
- end
-
- def bar
- foo(7, 1.5)
- end
-
- bar
- bar
-}
-
-# Recursive Ruby-to-Ruby calls
-assert_equal '21', %q{
- def fib(n)
- if n < 2
- return n
- end
-
- return fib(n-1) + fib(n-2)
- end
-
- r = fib(8)
-}
-
-# Ruby-to-Ruby call and C call
-assert_normal_exit %q{
- def bar
- puts('hi!')
- end
-
- def foo
- bar
- end
-
- foo()
- foo()
-}
-
-# Method aliasing
-assert_equal '42', %q{
- class Foo
- def method_a
- 42
- end
-
- alias method_b method_a
-
- def method_a
- :somethingelse
- end
- end
-
- @obj = Foo.new
-
- def test
- @obj.method_b
- end
-
- test
- test
-}
-
-# Method aliasing with method from parent class
-assert_equal '777', %q{
- class A
- def method_a
- 777
- end
- end
-
- class B < A
- alias method_b method_a
- end
-
- @obj = B.new
-
- def test
- @obj.method_b
- end
-
- test
- test
-}
-
-# The hash method is a C function and uses the self argument
-assert_equal 'true', %q{
- def lehashself
- hash
- end
-
- a = lehashself
- b = lehashself
- a == b
-}
-
-# Method redefinition (code invalidation) test
-assert_equal '1', %q{
- def ret1
- return 1
- end
-
- klass = Class.new do
- def alias_then_hash(klass, method_to_redefine)
- # Redefine the method to be ret1
- klass.alias_method(method_to_redefine, :ret1)
- hash
- end
- end
-
- instance = klass.new
-
- i = 0
- while i < 12
- if i < 11
- # Redefine the bar method
- instance.alias_then_hash(klass, :bar)
- else
- # Redefine the hash method to be ret1
- retval = instance.alias_then_hash(klass, :hash)
- end
- i += 1
- end
-
- retval
-}
-
-# Code invalidation and opt_getinlinecache
-assert_normal_exit %q{
- class Foo; end
-
- # Uses the class constant Foo
- def use_constant(arg)
- [Foo.new, arg]
- end
-
- def propagate_type
- i = Array.new
- i.itself # make it remember that i is on-heap
- use_constant(i)
- end
-
- propagate_type
- propagate_type
- use_constant(Foo.new)
- class Jo; end # bump global constant state
- use_constant(3)
-}
-
-# Method redefinition (code invalidation) and GC
-assert_equal '7', %q{
- def bar()
- return 5
- end
-
- def foo()
- bar()
- end
-
- foo()
- foo()
-
- def bar()
- return 7
- end
-
- 4.times { GC.start }
-
- foo()
- foo()
-}
-
-# Method redefinition with two block versions
-assert_equal '7', %q{
- def bar()
- return 5
- end
-
- def foo(n)
- return ((n < 5)? 5:false), bar()
- end
-
- foo(4)
- foo(4)
- foo(10)
- foo(10)
-
- def bar()
- return 7
- end
-
- 4.times { GC.start }
-
- foo(4)
- foo(4)[1]
-}
-
-# Method redefinition while the method is on the stack
-assert_equal '[777, 1]', %q{
- def foo
- redef()
- 777
- end
-
- def redef
- # Redefine the global foo
- eval("def foo; 1; end", TOPLEVEL_BINDING)
-
- # Collect dead code
- GC.stress = true
- GC.start
-
- # But we will return to the original foo,
- # which remains alive because it's on the stack
- end
-
- # Must produce [777, 1]
- [foo, foo]
-}
-
-# Test for GC safety. Don't invalidate dead iseqs.
-assert_normal_exit %q{
- Class.new do
- def foo
- itself
- end
-
- new.foo
- new.foo
- new.foo
- new.foo
- end
-
- 4.times { GC.start }
- def itself
- self
- end
-}
-
-# test setinstancevariable on extended objects
-assert_equal '1', %q{
- class Extended
- attr_reader :one
-
- def write_many
- @a = 1
- @b = 2
- @c = 3
- @d = 4
- @one = 1
- end
- end
-
- foo = Extended.new
- foo.write_many
- foo.write_many
- foo.write_many
-}
-
-# test setinstancevariable on embedded objects
-assert_equal '1', %q{
- class Embedded
- attr_reader :one
-
- def write_one
- @one = 1
- end
- end
-
- foo = Embedded.new
- foo.write_one
- foo.write_one
- foo.write_one
-}
-
-# test setinstancevariable after extension
-assert_equal '[10, 11, 12, 13, 1]', %q{
- class WillExtend
- attr_reader :one
-
- def make_extended
- @foo1 = 10
- @foo2 = 11
- @foo3 = 12
- @foo4 = 13
- end
-
- def write_one
- @one = 1
- end
-
- def read_all
- [@foo1, @foo2, @foo3, @foo4, @one]
- end
- end
-
- foo = WillExtend.new
- foo.write_one
- foo.write_one
- foo.make_extended
- foo.write_one
- foo.read_all
-}
-
-# test setinstancevariable on frozen object
-assert_equal 'object was not modified', %q{
- class WillFreeze
- def write
- @ivar = 1
- end
- end
-
- wf = WillFreeze.new
- wf.write
- wf.write
- wf.freeze
-
- begin
- wf.write
- rescue FrozenError
- "object was not modified"
- end
-}
-
-# Test getinstancevariable and inline caches
-assert_equal '6', %q{
- class Foo
- def initialize
- @x1 = 1
- @x2 = 1
- @x2 = 1
- @x3 = 1
- @x4 = 3
- end
-
- def bar
- x = 1
- @x4 + @x4
- end
- end
-
- f = Foo.new
- f.bar
- f.bar
-}
-
-# Test that getinstancevariable codegen checks for extended table size
-assert_equal "nil\n", %q{
- class A
- def read
- @ins1000
- end
- end
-
- ins = A.new
- other = A.new
- 10.times { other.instance_variable_set(:"@otr#{_1}", 'value') }
- 1001.times { ins.instance_variable_set(:"@ins#{_1}", 'value') }
-
- ins.read
- ins.read
- ins.read
-
- p other.read
-}
-
-# Test that opt_aref checks the class of the receiver
-assert_equal 'special', %q{
- def foo(array)
- array[30]
- end
-
- foo([])
- foo([])
-
- special = []
- def special.[](idx)
- 'special'
- end
-
- foo(special)
-}
-
-# Test that object references in generated code get marked and moved
-assert_equal "good", %q{
- def bar
- "good"
- end
-
- def foo
- bar
- end
-
- foo
- foo
-
- begin
- GC.verify_compaction_references(double_heap: true, toward: :empty)
- rescue NotImplementedError
- # in case compaction isn't supported
- end
-
- foo
-}
-
-# Test polymorphic getinstancevariable. T_OBJECT -> T_STRING
-assert_equal 'ok', %q{
- @hello = @h1 = @h2 = @h3 = @h4 = 'ok'
- str = ""
- str.instance_variable_set(:@hello, 'ok')
-
- public def get
- @hello
- end
-
- get
- get
- str.get
- str.get
-}
-
-# Test polymorphic getinstancevariable, two different classes
-assert_equal 'ok', %q{
- class Embedded
- def initialize
- @ivar = 0
- end
-
- def get
- @ivar
- end
- end
-
- class Extended < Embedded
- def initialize
- @v1 = @v2 = @v3 = @v4 = @ivar = 'ok'
- end
- end
-
- embed = Embedded.new
- extend = Extended.new
-
- embed.get
- embed.get
- extend.get
- extend.get
-}
-
-# Test megamorphic getinstancevariable
-assert_equal 'ok', %q{
- parent = Class.new do
- def initialize
- @hello = @h1 = @h2 = @h3 = @h4 = 'ok'
- end
-
- def get
- @hello
- end
- end
-
- subclasses = 300.times.map { Class.new(parent) }
- subclasses.each { _1.new.get }
- parent.new.get
-}
-
-# Test polymorphic opt_aref. array -> hash
-assert_equal '[42, :key]', %q{
- def index(obj, idx)
- obj[idx]
- end
-
- index([], 0) # get over compilation threshold
-
- [
- index([42], 0),
- index({0=>:key}, 0),
- ]
-}
-
-# Test polymorphic opt_aref. hash -> array -> custom class
-assert_equal '[nil, nil, :custom]', %q{
- def index(obj, idx)
- obj[idx]
- end
-
- custom = Object.new
- def custom.[](_idx)
- :custom
- end
-
- index({}, 0) # get over compilation threshold
-
- [
- index({}, 0),
- index([], 0),
- index(custom, 0)
- ]
-}
-
-# Test polymorphic opt_aref. array -> custom class
-assert_equal '[42, :custom]', %q{
- def index(obj, idx)
- obj[idx]
- end
-
- custom = Object.new
- def custom.[](_idx)
- :custom
- end
-
- index([], 0) # get over compilation threshold
-
- [
- index([42], 0),
- index(custom, 0)
- ]
-}
-
-# Test custom hash method with opt_aref
-assert_equal '[nil, :ok]', %q{
- def index(obj, idx)
- obj[idx]
- end
-
- custom = Object.new
- def custom.hash
- 42
- end
-
- h = {custom => :ok}
-
- [
- index(h, 0),
- index(h, custom)
- ]
-}
-
-# Test default value block for Hash with opt_aref
-assert_equal '[42, :default]', %q{
- def index(obj, idx)
- obj[idx]
- end
-
- h = Hash.new { :default }
- h[0] = 42
-
- [
- index(h, 0),
- index(h, 1)
- ]
-}
-
-# A regression test for making sure cfp->sp is proper when
-# hitting stubs. See :stub-sp-flush:
-assert_equal 'ok', %q{
- class D
- def foo
- Object.new
- end
- end
-
- GC.stress = true
- 10.times do
- D.new.foo
- # ^
- # This hits a stub with sp_offset > 0
- end
-
- :ok
-}
-
-# Test polymorphic callsite, cfunc -> iseq
-assert_equal '[Cfunc, Iseq]', %q{
- public def call_itself
- itself # the polymorphic callsite
- end
-
- class Cfunc; end
-
- class Iseq
- def itself
- self
- end
- end
-
- call_itself # cross threshold
-
- [Cfunc.call_itself, Iseq.call_itself]
-}
-
-# Test polymorphic callsite, iseq -> cfunc
-assert_equal '[Iseq, Cfunc]', %q{
- public def call_itself
- itself # the polymorphic callsite
- end
-
- class Cfunc; end
-
- class Iseq
- def itself
- self
- end
- end
-
- call_itself # cross threshold
-
- [Iseq.call_itself, Cfunc.call_itself]
-}
-
-# attr_reader method
-assert_equal '[100, 299]', %q{
- class A
- attr_reader :foo
-
- def initialize
- @foo = 100
- end
-
- # Make it extended
- def fill!
- @bar = @jojo = @as = @sdfsdf = @foo = 299
- end
- end
-
- def bar(ins)
- ins.foo
- end
-
- ins = A.new
- oth = A.new
- oth.fill!
-
- bar(ins)
- bar(oth)
-
- [bar(ins), bar(oth)]
-}
-
-# get ivar on object, then on hash
-assert_equal '[42, 100]', %q{
- class Hash
- attr_accessor :foo
- end
-
- class A
- attr_reader :foo
-
- def initialize
- @foo = 42
- end
- end
-
- def use(val)
- val.foo
- end
-
-
- h = {}
- h.foo = 100
- obj = A.new
-
- use(obj)
- [use(obj), use(h)]
-}
-
-# get ivar on String
-assert_equal '[nil, nil, 42, 42]', %q{
- # @foo to exercise the getinstancevariable instruction
- public def get_foo
- @foo
- end
-
- get_foo
- get_foo # compile it for the top level object
-
- class String
- attr_reader :foo
- end
-
- def run
- str = String.new
-
- getter = str.foo
- insn = str.get_foo
-
- str.instance_variable_set(:@foo, 42)
-
- [getter, insn, str.foo, str.get_foo]
- end
-
- run
- run
-}
-
-# splatting an empty array on a getter
-assert_equal '42', %q{
- @foo = 42
- module Kernel
- attr_reader :foo
- end
-
- def run
- foo(*[])
- end
-
- run
- run
-}
-
-# getinstancevariable on Symbol
-assert_equal '[nil, nil]', %q{
- # @foo to exercise the getinstancevariable instruction
- public def get_foo
- @foo
- end
-
- dyn_sym = ("a" + "b").to_sym
- sym = :static
-
- # compile get_foo
- dyn_sym.get_foo
- dyn_sym.get_foo
-
- [dyn_sym.get_foo, sym.get_foo]
-}
-
-# attr_reader on Symbol
-assert_equal '[nil, nil]', %q{
- class Symbol
- attr_reader :foo
- end
-
- public def get_foo
- foo
- end
-
- dyn_sym = ("a" + "b").to_sym
- sym = :static
-
- # compile get_foo
- dyn_sym.get_foo
- dyn_sym.get_foo
-
- [dyn_sym.get_foo, sym.get_foo]
-}
-
-# passing too few arguments to method with optional parameters
-assert_equal 'raised', %q{
- def opt(a, b = 0)
- end
-
- def use
- opt
- end
-
- use rescue nil
- begin
- use
- :ng
- rescue ArgumentError
- :raised
- end
-}
-
-# passing too many arguments to method with optional parameters
-assert_equal 'raised', %q{
- def opt(a, b = 0)
- end
-
- def use
- opt(1, 2, 3, 4)
- end
-
- use rescue nil
- begin
- use
- :ng
- rescue ArgumentError
- :raised
- end
-}
-
-# test calling Ruby method with a block
-assert_equal '[1, 2, 42]', %q{
- def thing(a, b)
- [a, b, yield]
- end
-
- def use
- thing(1,2) { 42 }
- end
-
- use
- use
-}
-
-# test calling C method with a block
-assert_equal '[42, 42]', %q{
- def use(array, initial)
- array.reduce(initial) { |a, b| a + b }
- end
-
- use([], 0)
- [use([2, 2], 38), use([14, 14, 14], 0)]
-}
-
-# test calling block param
-assert_equal '[1, 2, 42]', %q{
- def foo(&block)
- block.call
- end
-
- [foo {1}, foo {2}, foo {42}]
-}
-
-# test calling block param failing
-assert_equal '42', %q{
- def foo(&block)
- block.call
- end
-
- foo {} # warmup
-
- begin
- foo
- rescue NoMethodError => e
- 42 if nil == e.receiver
- end
-}
-
-# test calling method taking block param
-assert_equal '[Proc, 1, 2, 3, Proc]', %q{
- def three(a, b, c, &block)
- [a, b, c, block.class]
- end
-
- def zero(&block)
- block.class
- end
-
- def use_three
- three(1, 2, 3) {}
- end
-
- def use_zero
- zero {}
- end
-
- use_three
- use_zero
-
- [use_zero] + use_three
-}
-
-# test building empty array
-assert_equal '[]', %q{
- def build_arr
- []
- end
-
- build_arr
- build_arr
-}
-
-# test building array of one element
-assert_equal '[5]', %q{
- def build_arr(val)
- [val]
- end
-
- build_arr(5)
- build_arr(5)
-}
-
-# test building array of several element
-assert_equal '[5, 5, 5, 5, 5]', %q{
- def build_arr(val)
- [val, val, val, val, val]
- end
-
- build_arr(5)
- build_arr(5)
-}
-
-# test building empty hash
-assert_equal '{}', %q{
- def build_hash
- {}
- end
-
- build_hash
- build_hash
-}
-
-# test building hash with values
-assert_equal '{:foo=>:bar}', %q{
- def build_hash(val)
- { foo: val }
- end
-
- build_hash(:bar)
- build_hash(:bar)
-}
-
-# test string interpolation with known types
-assert_equal 'foobar', %q{
- def make_str
- foo = -"foo"
- bar = -"bar"
- "#{foo}#{bar}"
- end
-
- make_str
- make_str
-}
-
-# test string interpolation with unknown types
-assert_equal 'foobar', %q{
- def make_str(foo, bar)
- "#{foo}#{bar}"
- end
-
- make_str("foo", "bar")
- make_str("foo", "bar")
-}
-
-# test string interpolation with known non-strings
-assert_equal 'foo123', %q{
- def make_str
- foo = -"foo"
- bar = 123
- "#{foo}#{bar}"
- end
-
- make_str
- make_str
-}
-
-# test string interpolation with unknown non-strings
-assert_equal 'foo123', %q{
- def make_str(foo, bar)
- "#{foo}#{bar}"
- end
-
- make_str("foo", 123)
- make_str("foo", 123)
-}
-
-# test string interpolation with overridden to_s
-assert_equal 'foo', %q{
- class String
- def to_s
- "bad"
- end
- end
-
- def make_str(foo)
- "#{foo}"
- end
-
- make_str("foo")
- make_str("foo")
-}
-
-
-# test invokebuiltin as used in struct assignment
-assert_equal '123', %q{
- def foo(obj)
- obj.foo = 123
- end
-
- struct = Struct.new(:foo)
- obj = struct.new
- foo(obj)
- foo(obj)
-}
-
-# test invokebuiltin_delegate as used inside Dir.open
-assert_equal '.', %q{
- def foo(path)
- Dir.open(path).path
- end
-
- foo(".")
- foo(".")
-}
-
-# test invokebuiltin_delegate_leave in method called from jit
-assert_normal_exit %q{
- def foo(obj)
- obj.clone
- end
-
- foo(Object.new)
- foo(Object.new)
-}
-
-# test invokebuiltin_delegate_leave in method called from cfunc
-assert_normal_exit %q{
- def foo(obj)
- [obj].map(&:clone)
- end
-
- foo(Object.new)
- foo(Object.new)
-}
-
-# defining TrueClass#!
-assert_equal '[false, false, :ok]', %q{
- def foo(obj)
- !obj
- end
-
- x = foo(true)
- y = foo(true)
-
- class TrueClass
- def !
- :ok
- end
- end
-
- z = foo(true)
-
- [x, y, z]
-}
-
-# defining FalseClass#!
-assert_equal '[true, true, :ok]', %q{
- def foo(obj)
- !obj
- end
-
- x = foo(false)
- y = foo(false)
-
- class FalseClass
- def !
- :ok
- end
- end
-
- z = foo(false)
-
- [x, y, z]
-}
-
-# defining NilClass#!
-assert_equal '[true, true, :ok]', %q{
- def foo(obj)
- !obj
- end
-
- x = foo(nil)
- y = foo(nil)
-
- class NilClass
- def !
- :ok
- end
- end
-
- z = foo(nil)
-
- [x, y, z]
-}
-
-# polymorphic opt_not
-assert_equal '[true, true, false, false, false, false, false]', %q{
- def foo(obj)
- !obj
- end
-
- foo(0)
- [foo(nil), foo(false), foo(true), foo([]), foo(0), foo(4.2), foo(:sym)]
-}
-
-# getlocal with 2 levels
-assert_equal '7', %q{
- def foo(foo, bar)
- while foo > 0
- while bar > 0
- return foo + bar
- end
- end
- end
-
- foo(5,2)
- foo(5,2)
-}
-
-# test pattern matching
-assert_equal '[:ok, :ok]', %q{
- class C
- def destructure_keys
- {}
- end
- end
-
- pattern_match = ->(i) do
- case i
- in a: 0
- :ng
- else
- :ok
- end
- end
-
- [{}, C.new].map(&pattern_match)
-}
-
-# Call to object with singleton
-assert_equal '123', %q{
- obj = Object.new
- def obj.foo
- 123
- end
-
- def foo(obj)
- obj.foo()
- end
-
- foo(obj)
- foo(obj)
-}
-
-# Call method on an object that has a non-material
-# singleton class.
-# TODO: assert that it takes no side exits? This
-# test case revealed that we were taking exits unnecessarily.
-assert_normal_exit %q{
- def foo(obj)
- obj.itself
- end
-
- o = Object.new.singleton_class
- foo(o)
- foo(o)
-}
-
-# Call to singleton class
-assert_equal '123', %q{
- class Foo
- def self.foo
- 123
- end
- end
-
- def foo(obj)
- obj.foo()
- end
-
- foo(Foo)
- foo(Foo)
-}
-
-# invokesuper edge case
-assert_equal '[:A, [:A, :B]]', %q{
- class B
- def foo = :B
- end
-
- class A < B
- def foo = [:A, super()]
- end
-
- A.new.foo
- A.new.foo # compile A#foo
-
- class C < A
- define_method(:bar, A.instance_method(:foo))
- end
-
- C.new.bar
-}
-
-# Same invokesuper bytecode, multiple destinations
-assert_equal '[:Forward, :SecondTerminus]', %q{
- module Terminus
- def foo = :Terminus
- end
-
- module SecondTerminus
- def foo = :SecondTerminus
- end
-
-
- module Forward
- def foo = [:Forward, super]
- end
-
- class B
- include SecondTerminus
- end
-
- class A < B
- include Terminus
- include Forward
- end
-
- A.new.foo
- A.new.foo # compile
-
- class B
- include Forward
- alias bar foo
- end
-
- # A.ancestors.take(5) == [A, Forward, Terminus, B, Forward, SecondTerminus]
-
- A.new.bar
-}
-
-# invokesuper calling into itself
-assert_equal '[:B, [:B, :m]]', %q{
- module M
- def foo = :m
- end
-
- class B
- include M
- def foo = [:B, super]
- end
-
- ins = B.new
- ins.singleton_class # materialize the singleton class
- ins.foo
- ins.foo # compile
-
- ins.singleton_class.define_method(:bar, B.instance_method(:foo))
- ins.bar
-}
-
-# invokesuper changed ancestor
-assert_equal '[:A, [:M, :B]]', %q{
- class B
- def foo
- :B
- end
- end
-
- class A < B
- def foo
- [:A, super]
- end
- end
-
- module M
- def foo
- [:M, super]
- end
- end
-
- ins = A.new
- ins.foo
- ins.foo
- A.include(M)
- ins.foo
-}
-
-# invokesuper changed ancestor via prepend
-assert_equal '[:A, [:M, :B]]', %q{
- class B
- def foo
- :B
- end
- end
-
- class A < B
- def foo
- [:A, super]
- end
- end
-
- module M
- def foo
- [:M, super]
- end
- end
-
- ins = A.new
- ins.foo
- ins.foo
- B.prepend(M)
- ins.foo
-}
-
-# invokesuper replaced method
-assert_equal '[:A, :Btwo]', %q{
- class B
- def foo
- :B
- end
- end
-
- class A < B
- def foo
- [:A, super]
- end
- end
-
- ins = A.new
- ins.foo
- ins.foo
- class B
- def foo
- :Btwo
- end
- end
- ins.foo
-}
-
-# Call to fixnum
-assert_equal '[true, false]', %q{
- def is_odd(obj)
- obj.odd?
- end
-
- is_odd(1)
- is_odd(1)
-
- [is_odd(123), is_odd(456)]
-}
-
-# Call to bignum
-assert_equal '[true, false]', %q{
- def is_odd(obj)
- obj.odd?
- end
-
- bignum = 99999999999999999999
- is_odd(bignum)
- is_odd(bignum)
-
- [is_odd(bignum), is_odd(bignum+1)]
-}
-
-# Call to fixnum and bignum
-assert_equal '[true, false, true, false]', %q{
- def is_odd(obj)
- obj.odd?
- end
-
- bignum = 99999999999999999999
- is_odd(bignum)
- is_odd(bignum)
- is_odd(123)
- is_odd(123)
-
- [is_odd(123), is_odd(456), is_odd(bignum), is_odd(bignum+1)]
-}
-
-# Call to static and dynamic symbol
-assert_equal 'bar', %q{
- def to_string(obj)
- obj.to_s
- end
-
- to_string(:foo)
- to_string(:foo)
- to_string((-"bar").to_sym)
- to_string((-"bar").to_sym)
-}
-
-# Call to flonum and heap float
-assert_equal '[nil, nil, nil, 1]', %q{
- def is_inf(obj)
- obj.infinite?
- end
-
- is_inf(0.0)
- is_inf(0.0)
- is_inf(1e256)
- is_inf(1e256)
-
- [
- is_inf(0.0),
- is_inf(1.0),
- is_inf(1e256),
- is_inf(1.0/0.0)
- ]
-}
-
-assert_equal '[1, 2, 3, 4, 5]', %q{
- def splatarray
- [*(1..5)]
- end
-
- splatarray
- splatarray
-}
-
-assert_equal '[1, 1, 2, 1, 2, 3]', %q{
- def expandarray
- arr = [1, 2, 3]
-
- a, = arr
- b, c, = arr
- d, e, f = arr
-
- [a, b, c, d, e, f]
- end
-
- expandarray
- expandarray
-}
-
-assert_equal '[1, 1]', %q{
- def expandarray_useless_splat
- arr = (1..10).to_a
-
- a, * = arr
- b, (*) = arr
-
- [a, b]
- end
-
- expandarray_useless_splat
- expandarray_useless_splat
-}
-
-assert_equal '[:not_heap, nil, nil]', %q{
- def expandarray_not_heap
- a, b, c = :not_heap
- [a, b, c]
- end
-
- expandarray_not_heap
- expandarray_not_heap
-}
-
-assert_equal '[:not_array, nil, nil]', %q{
- def expandarray_not_array(obj)
- a, b, c = obj
- [a, b, c]
- end
-
- obj = Object.new
- def obj.to_ary
- [:not_array]
- end
-
- expandarray_not_array(obj)
- expandarray_not_array(obj)
-}
-
-assert_equal '[1, 2, nil]', %q{
- def expandarray_rhs_too_small
- a, b, c = [1, 2]
- [a, b, c]
- end
-
- expandarray_rhs_too_small
- expandarray_rhs_too_small
-}
-
-assert_equal '[1, [2]]', %q{
- def expandarray_splat
- a, *b = [1, 2]
- [a, b]
- end
-
- expandarray_splat
- expandarray_splat
-}
-
-assert_equal '2', %q{
- def expandarray_postarg
- *, a = [1, 2]
- a
- end
-
- expandarray_postarg
- expandarray_postarg
-}
-
-assert_equal '10', %q{
- obj = Object.new
- val = nil
- obj.define_singleton_method(:to_ary) { val = 10; [] }
-
- def expandarray_always_call_to_ary(object)
- * = object
- end
-
- expandarray_always_call_to_ary(obj)
- expandarray_always_call_to_ary(obj)
-
- val
-}
-
-# regression test of local type change
-assert_equal '1.1', %q{
-def bar(baz, quux)
- if baz.integer?
- baz, quux = quux, nil
- end
- baz.to_s
-end
-
-bar(123, 1.1)
-bar(123, 1.1)
-}
-
-# test enabling a line TracePoint in a C method call
-assert_equal '[[:line, true]]', %q{
- events = []
- events.instance_variable_set(
- :@tp,
- TracePoint.new(:line) { |tp| events << [tp.event, tp.lineno] if tp.path == __FILE__ }
- )
- def events.to_str
- @tp.enable; ''
- end
-
- # Stay in generated code while enabling tracing
- def events.compiled(obj)
- String(obj)
- @tp.disable; __LINE__
- end
-
- line = events.compiled(events)
- events[0][-1] = (events[0][-1] == line)
-
- events
-}
-
-# test enabling a c_return TracePoint in a C method call
-assert_equal '[[:c_return, :String, :string_alias, "events_to_str"]]', %q{
- events = []
- events.instance_variable_set(:@tp, TracePoint.new(:c_return) { |tp| events << [tp.event, tp.method_id, tp.callee_id, tp.return_value] })
- def events.to_str
- @tp.enable; 'events_to_str'
- end
-
- # Stay in generated code while enabling tracing
- alias string_alias String
- def events.compiled(obj)
- string_alias(obj)
- @tp.disable
- end
-
- events.compiled(events)
-
- events
-}
-
-# test enabling a TracePoint that targets a particular line in a C method call
-assert_equal '[true]', %q{
- events = []
- events.instance_variable_set(:@tp, TracePoint.new(:line) { |tp| events << tp.lineno })
- def events.to_str
- @tp.enable(target: method(:compiled))
- ''
- end
-
- # Stay in generated code while enabling tracing
- def events.compiled(obj)
- String(obj)
- __LINE__
- end
-
- line = events.compiled(events)
- events[0] = (events[0] == line)
-
- events
-}
-
-# test enabling tracing in the middle of splatarray
-assert_equal '[true]', %q{
- events = []
- obj = Object.new
- obj.instance_variable_set(:@tp, TracePoint.new(:line) { |tp| events << tp.lineno })
- def obj.to_a
- @tp.enable(target: method(:compiled))
- []
- end
-
- # Enable tracing in the middle of the splatarray instruction
- def obj.compiled(obj)
- * = *obj
- __LINE__
- end
-
- obj.compiled([])
- line = obj.compiled(obj)
- events[0] = (events[0] == line)
-
- events
-}
-
-# test enabling tracing in the middle of opt_aref. Different since the codegen
-# for it ends in a jump.
-assert_equal '[true]', %q{
- def lookup(hash, tp)
- hash[42]
- tp.disable; __LINE__
- end
-
- lines = []
- tp = TracePoint.new(:line) { lines << _1.lineno if _1.path == __FILE__ }
-
- lookup(:foo, tp)
- lookup({}, tp)
-
- enable_tracing_on_missing = Hash.new { tp.enable }
-
- expected_line = lookup(enable_tracing_on_missing, tp)
-
- lines[0] = true if lines[0] == expected_line
-
- lines
-}
-
-# test enabling c_call tracing before compiling
-assert_equal '[[:c_call, :itself]]', %q{
- def shouldnt_compile
- itself
- end
-
- events = []
- tp = TracePoint.new(:c_call) { |tp| events << [tp.event, tp.method_id] }
-
- # assume first call compiles
- tp.enable { shouldnt_compile }
-
- events
-}
-
-# test enabling c_return tracing before compiling
-assert_equal '[[:c_return, :itself, main]]', %q{
- def shouldnt_compile
- itself
- end
-
- events = []
- tp = TracePoint.new(:c_return) { |tp| events << [tp.event, tp.method_id, tp.return_value] }
-
- # assume first call compiles
- tp.enable { shouldnt_compile }
-
- events
-}
-
-# test enabling tracing for a suspended fiber
-assert_equal '[[:return, 42]]', %q{
- def traced_method
- Fiber.yield
- 42
- end
-
- events = []
- tp = TracePoint.new(:return) { events << [_1.event, _1.return_value] }
- # assume first call compiles
- fiber = Fiber.new { traced_method }
- fiber.resume
- tp.enable(target: method(:traced_method))
- fiber.resume
-
- events
-}
-
-# test compiling on non-tracing ractor then running on a tracing one
-assert_equal '[:itself]', %q{
- def traced_method
- itself
- end
-
-
- tracing_ractor = Ractor.new do
- # 1: start tracing
- events = []
- tp = TracePoint.new(:c_call) { events << _1.method_id }
- tp.enable
- Ractor.yield(nil)
-
- # 3: run compiled method on tracing ractor
- Ractor.yield(nil)
- traced_method
-
- events
- ensure
- tp&.disable
- end
-
- tracing_ractor.take
-
- # 2: compile on non tracing ractor
- traced_method
-
- tracing_ractor.take
- tracing_ractor.take
-}
-
-# Try to hit a lazy branch stub while another ractor enables tracing
-assert_equal '42', %q{
- def compiled(arg)
- if arg
- arg + 1
- else
- itself
- itself
- end
- end
-
- ractor = Ractor.new do
- compiled(false)
- Ractor.yield(nil)
- compiled(41)
- end
-
- tp = TracePoint.new(:line) { itself }
- ractor.take
- tp.enable
-
- ractor.take
-}
-
-# Test equality with changing types
-assert_equal '[true, false, false, false]', %q{
- def eq(a, b)
- a == b
- end
-
- [
- eq("foo", "foo"),
- eq("foo", "bar"),
- eq(:foo, "bar"),
- eq("foo", :bar)
- ]
-}
-
-# Redefined String eq
-assert_equal 'true', %q{
- class String
- def ==(other)
- true
- end
- end
-
- def eq(a, b)
- a == b
- end
-
- eq("foo", "bar")
- eq("foo", "bar")
-}
-
-# Redefined Integer eq
-assert_equal 'true', %q{
- class Integer
- def ==(other)
- true
- end
- end
-
- def eq(a, b)
- a == b
- end
-
- eq(1, 2)
- eq(1, 2)
-}
-
-# aset on array with invalid key
-assert_normal_exit %q{
- def foo(arr)
- arr[:foo] = 123
- end
-
- foo([1]) rescue nil
- foo([1]) rescue nil
-}
-
-# test ractor exception on when setting ivar
-assert_equal '42', %q{
- class A
- def self.foo
- _foo = 1
- _bar = 2
- begin
- @bar = _foo + _bar
- rescue Ractor::IsolationError
- 42
- end
- end
- end
-
- A.foo
- A.foo
-
- Ractor.new { A.foo }.take
-}
-
-assert_equal '["plain", "special", "sub", "plain"]', %q{
- def foo(arg)
- arg.to_s
- end
-
- class Sub < String
- end
-
- special = String.new("special")
- special.singleton_class
-
- [
- foo("plain"),
- foo(special),
- foo(Sub.new("sub")),
- foo("plain")
- ]
-}
-
-assert_equal '["sub", "sub"]', %q{
- def foo(arg)
- arg.to_s
- end
-
- class Sub < String
- def to_s
- super
- end
- end
-
- sub = Sub.new("sub")
-
- [foo(sub), foo(sub)]
-}
-
-assert_equal '[1]', %q{
- def kwargs(value:)
- value
- end
-
- 5.times.map { kwargs(value: 1) }.uniq
-}
-
-assert_equal '[:ok]', %q{
- def kwargs(value:)
- value
- end
-
- 5.times.map { kwargs() rescue :ok }.uniq
-}
-
-assert_equal '[:ok]', %q{
- def kwargs(a:, b: nil)
- value
- end
-
- 5.times.map { kwargs(b: 123) rescue :ok }.uniq
-}
-
-assert_equal '[[1, 2]]', %q{
- def kwargs(left:, right:)
- [left, right]
- end
-
- 5.times.flat_map do
- [
- kwargs(left: 1, right: 2),
- kwargs(right: 2, left: 1)
- ]
- end.uniq
-}
-
-assert_equal '[[1, 2]]', %q{
- def kwargs(lead, kwarg:)
- [lead, kwarg]
- end
-
- 5.times.map { kwargs(1, kwarg: 2) }.uniq
-}
-
-# optional and keyword args
-assert_equal '[[1, 2, 3]]', %q{
- def opt_and_kwargs(a, b=2, c: nil)
- [a,b,c]
- end
-
- 5.times.map { opt_and_kwargs(1, c: 3) }.uniq
-}
-
-assert_equal '[[1, 2, 3]]', %q{
- def opt_and_kwargs(a, b=nil, c: nil)
- [a,b,c]
- end
-
- 5.times.map { opt_and_kwargs(1, 2, c: 3) }.uniq
-}
-
-
-# leading and keyword arguments are swapped into the right order
-assert_equal '[[1, 2, 3, 4, 5, 6]]', %q{
- def kwargs(five, six, a:, b:, c:, d:)
- [a, b, c, d, five, six]
- end
-
- 5.times.flat_map do
- [
- kwargs(5, 6, a: 1, b: 2, c: 3, d: 4),
- kwargs(5, 6, a: 1, b: 2, d: 4, c: 3),
- kwargs(5, 6, a: 1, c: 3, b: 2, d: 4),
- kwargs(5, 6, a: 1, c: 3, d: 4, b: 2),
- kwargs(5, 6, a: 1, d: 4, b: 2, c: 3),
- kwargs(5, 6, a: 1, d: 4, c: 3, b: 2),
- kwargs(5, 6, b: 2, a: 1, c: 3, d: 4),
- kwargs(5, 6, b: 2, a: 1, d: 4, c: 3),
- kwargs(5, 6, b: 2, c: 3, a: 1, d: 4),
- kwargs(5, 6, b: 2, c: 3, d: 4, a: 1),
- kwargs(5, 6, b: 2, d: 4, a: 1, c: 3),
- kwargs(5, 6, b: 2, d: 4, c: 3, a: 1),
- kwargs(5, 6, c: 3, a: 1, b: 2, d: 4),
- kwargs(5, 6, c: 3, a: 1, d: 4, b: 2),
- kwargs(5, 6, c: 3, b: 2, a: 1, d: 4),
- kwargs(5, 6, c: 3, b: 2, d: 4, a: 1),
- kwargs(5, 6, c: 3, d: 4, a: 1, b: 2),
- kwargs(5, 6, c: 3, d: 4, b: 2, a: 1),
- kwargs(5, 6, d: 4, a: 1, b: 2, c: 3),
- kwargs(5, 6, d: 4, a: 1, c: 3, b: 2),
- kwargs(5, 6, d: 4, b: 2, a: 1, c: 3),
- kwargs(5, 6, d: 4, b: 2, c: 3, a: 1),
- kwargs(5, 6, d: 4, c: 3, a: 1, b: 2),
- kwargs(5, 6, d: 4, c: 3, b: 2, a: 1)
- ]
- end.uniq
-}
-
-# implicit hashes get skipped and don't break compilation
-assert_equal '[[:key]]', %q{
- def implicit(hash)
- hash.keys
- end
-
- 5.times.map { implicit(key: :value) }.uniq
-}
-
-# default values on keywords don't mess up argument order
-assert_equal '[2]', %q{
- def default_value
- 1
- end
-
- def default_expression(value: default_value)
- value
- end
-
- 5.times.map { default_expression(value: 2) }.uniq
-}
-
-# constant default values on keywords
-assert_equal '[3]', %q{
- def default_expression(value: 3)
- value
- end
-
- 5.times.map { default_expression }.uniq
-}
-
-# non-constant default values on keywords
-assert_equal '[3]', %q{
- def default_value
- 3
- end
-
- def default_expression(value: default_value)
- value
- end
-
- 5.times.map { default_expression }.uniq
-}
-
-# reordered optional kwargs
-assert_equal '[[100, 1]]', %q{
- def foo(capacity: 100, max: nil)
- [capacity, max]
- end
-
- 5.times.map { foo(max: 1) }.uniq
-}
-
-# invalid lead param
-assert_equal 'ok', %q{
- def bar(baz: 2)
- baz
- end
-
- def foo
- bar(1, baz: 123)
- end
-
- begin
- foo
- foo
- rescue ArgumentError => e
- print "ok"
- end
-}
-
-# reordered required kwargs
-assert_equal '[[1, 2, 3, 4]]', %q{
- def foo(default1: 1, required1:, default2: 3, required2:)
- [default1, required1, default2, required2]
- end
-
- 5.times.map { foo(required1: 2, required2: 4) }.uniq
-}
-
-# reordered default expression kwargs
-assert_equal '[[:one, :two, 3]]', %q{
- def foo(arg1: (1+0), arg2: (2+0), arg3: (3+0))
- [arg1, arg2, arg3]
- end
-
- 5.times.map { foo(arg2: :two, arg1: :one) }.uniq
-}
-
-# complex kwargs
-assert_equal '[[1, 2, 3, 4]]', %q{
- def foo(required:, specified: 999, simple_default: 3, complex_default: "4".to_i)
- [required, specified, simple_default, complex_default]
- end
-
- 5.times.map { foo(specified: 2, required: 1) }.uniq
-}
-
-# attr_reader on frozen object
-assert_equal 'false', %q{
- class Foo
- attr_reader :exception
-
- def failed?
- !exception.nil?
- end
- end
-
- foo = Foo.new.freeze
- foo.failed?
- foo.failed?
-}
-
-# regression test for doing kwarg shuffle before checking for interrupts
-assert_equal 'ok', %q{
- def new_media_drop(attributes:, product_drop:, context:, sources:)
- nil.nomethod rescue nil # force YJIT to bail to side exit
-
- [attributes, product_drop, context, sources]
- end
-
- def load_medias(product_drop: nil, raw_medias:, context:)
- raw_medias.map do |raw_media|
- case new_media_drop(context: context, attributes: raw_media, product_drop: product_drop, sources: [])
- in [Hash, ProductDrop, Context, Array]
- else
- raise "bad shuffle"
- end
- end
- end
-
- class Context; end
-
- class ProductDrop
- attr_reader :title
- def initialize(title)
- @title = title
- end
- end
-
- # Make a thread so we have thread switching interrupts
- th = Thread.new do
- while true; end
- end
- 1_000.times do |i|
- load_medias(product_drop: ProductDrop.new("foo"), raw_medias: [{}, {}], context: Context.new)
- end
- th.kill.join
-
- :ok
-}
-
-# regression test for tracing attr_accessor methods.
-assert_equal "true", %q{
- c = Class.new do
- attr_accessor :x
- alias y x
- alias y= x=
- end
- obj = c.new
-
- ar_meth = obj.method(:x)
- aw_meth = obj.method(:x=)
- aar_meth = obj.method(:y)
- aaw_meth = obj.method(:y=)
- events = []
- trace = TracePoint.new(:c_call, :c_return){|tp|
- next if tp.path != __FILE__
- next if tp.method_id == :call
- case tp.event
- when :c_call
- events << [tp.event, tp.method_id, tp.callee_id]
- when :c_return
- events << [tp.event, tp.method_id, tp.callee_id, tp.return_value]
- end
- }
- test_proc = proc do
- obj.x = 1
- obj.x
- obj.y = 2
- obj.y
- aw_meth.call(1)
- ar_meth.call
- aaw_meth.call(2)
- aar_meth.call
- end
- test_proc.call # populate call caches
- trace.enable(&test_proc)
- expected = [
- [:c_call, :x=, :x=],
- [:c_return, :x=, :x=, 1],
- [:c_call, :x, :x],
- [:c_return, :x, :x, 1],
- [:c_call, :x=, :y=],
- [:c_return, :x=, :y=, 2],
- [:c_call, :x, :y],
- [:c_return, :x, :y, 2],
- ] * 2
-
- expected == events
-}
-
-# duphash
-assert_equal '{:foo=>123}', %q{
- def foo
- {foo: 123}
- end
-
- foo
- foo
-}
-
-# newhash
-assert_equal '{:foo=>2}', %q{
- def foo
- {foo: 1+1}
- end
-
- foo
- foo
-}
-
-# block invalidation edge case
-assert_equal 'undef', %q{
- class A
- def foo(arg)
- arg.times { A.remove_method(:bar) }
- self
- end
-
- def bar
- 4
- end
-
- def use(arg)
- # two consecutive sends. When bar is removed, the return address
- # for calling it is already on foo's control frame
- foo(arg).bar
- rescue NoMethodError
- :undef
- end
- end
-
- A.new.use 0
- A.new.use 0
- A.new.use 1
-}
-
-# block invalidation edge case
-assert_equal 'ok', %q{
- class A
- Good = :ng
- def foo(arg)
- arg.times { A.const_set(:Good, :ok) }
- self
- end
-
- def id(arg)
- arg
- end
-
- def use(arg)
- # send followed by an opt_getinlinecache.
- # The return address remains on the control frame
- # when opt_getinlinecache is invalidated.
- foo(arg).id(Good)
- end
- end
-
- A.new.use 0
- A.new.use 0
- A.new.use 1
-}
-
-assert_equal 'ok', %q{
- # test hitting a branch stub when out of memory
- def nimai(jita)
- if jita
- :ng
- else
- :ok
- end
- end
-
- nimai(true)
- nimai(true)
-
- RubyVM::YJIT.simulate_oom! if defined?(RubyVM::YJIT)
-
- nimai(false)
-}
-
-assert_equal 'new', %q{
- # test block invalidation while out of memory
- def foo
- :old
- end
-
- def test
- foo
- end
-
- test
- test
-
- RubyVM::YJIT.simulate_oom! if defined?(RubyVM::YJIT)
-
- def foo
- :new
- end
-
- test
-}
-
-assert_equal 'ok', %q{
- # Try to compile new method while OOM
- def foo
- :ok
- end
-
- RubyVM::YJIT.simulate_oom! if defined?(RubyVM::YJIT)
-
- foo
- foo
-}
-
-# struct aref embedded
-assert_equal '2', %q{
- def foo(s)
- s.foo
- end
-
- S = Struct.new(:foo)
- foo(S.new(1))
- foo(S.new(2))
-}
-
-# struct aref non-embedded
-assert_equal '4', %q{
- def foo(s)
- s.d
- end
-
- S = Struct.new(:a, :b, :c, :d, :e)
- foo(S.new(1,2,3,4,5))
- foo(S.new(1,2,3,4,5))
-}
-
-# struct aset embedded
-assert_equal '123', %q{
- def foo(s)
- s.foo = 123
- end
-
- s = Struct.new(:foo).new
- foo(s)
- s = Struct.new(:foo).new
- foo(s)
- s.foo
-}
-
-# struct aset non-embedded
-assert_equal '[1, 2, 3, 4, 5]', %q{
- def foo(s)
- s.a = 1
- s.b = 2
- s.c = 3
- s.d = 4
- s.e = 5
- end
-
- S = Struct.new(:a, :b, :c, :d, :e)
- s = S.new
- foo(s)
- s = S.new
- foo(s)
- [s.a, s.b, s.c, s.d, s.e]
-}
-
-# struct aref too many args
-assert_equal 'ok', %q{
- def foo(s)
- s.foo(:bad)
- end
-
- s = Struct.new(:foo).new
- foo(s) rescue :ok
- foo(s) rescue :ok
-}
-
-# struct aset too many args
-assert_equal 'ok', %q{
- def foo(s)
- s.set_foo(123, :bad)
- end
-
- s = Struct.new(:foo) do
- alias :set_foo :foo=
- end
- foo(s) rescue :ok
- foo(s) rescue :ok
-}
diff --git a/bootstraptest/test_yjit_30k_ifelse.rb b/bootstraptest/test_yjit_30k_ifelse.rb
deleted file mode 100644
index c3afa95e4d..0000000000
--- a/bootstraptest/test_yjit_30k_ifelse.rb
+++ /dev/null
@@ -1,241023 +0,0 @@
-# This is a torture test for the JIT.
-# There are 30K tiny methods with if-else statements in a 30-deep call hierarchy.
-assert_equal '100000', %q{
-
-def fun_l0_n0(x)
- if (x < 1)
- fun_l1_n310(x)
- else
- fun_l1_n485(x)
- end
-end
-
-def fun_l0_n1(x)
- if (x < 1)
- fun_l1_n930(x)
- else
- fun_l1_n418(x)
- end
-end
-
-def fun_l0_n2(x)
- if (x < 1)
- fun_l1_n549(x)
- else
- fun_l1_n44(x)
- end
-end
-
-def fun_l0_n3(x)
- if (x < 1)
- fun_l1_n394(x)
- else
- fun_l1_n447(x)
- end
-end
-
-def fun_l0_n4(x)
- if (x < 1)
- fun_l1_n683(x)
- else
- fun_l1_n547(x)
- end
-end
-
-def fun_l0_n5(x)
- if (x < 1)
- fun_l1_n320(x)
- else
- fun_l1_n896(x)
- end
-end
-
-def fun_l0_n6(x)
- if (x < 1)
- fun_l1_n649(x)
- else
- fun_l1_n243(x)
- end
-end
-
-def fun_l0_n7(x)
- if (x < 1)
- fun_l1_n100(x)
- else
- fun_l1_n243(x)
- end
-end
-
-def fun_l0_n8(x)
- if (x < 1)
- fun_l1_n839(x)
- else
- fun_l1_n720(x)
- end
-end
-
-def fun_l0_n9(x)
- if (x < 1)
- fun_l1_n177(x)
- else
- fun_l1_n555(x)
- end
-end
-
-def fun_l0_n10(x)
- if (x < 1)
- fun_l1_n814(x)
- else
- fun_l1_n900(x)
- end
-end
-
-def fun_l0_n11(x)
- if (x < 1)
- fun_l1_n585(x)
- else
- fun_l1_n901(x)
- end
-end
-
-def fun_l0_n12(x)
- if (x < 1)
- fun_l1_n952(x)
- else
- fun_l1_n270(x)
- end
-end
-
-def fun_l0_n13(x)
- if (x < 1)
- fun_l1_n172(x)
- else
- fun_l1_n209(x)
- end
-end
-
-def fun_l0_n14(x)
- if (x < 1)
- fun_l1_n514(x)
- else
- fun_l1_n414(x)
- end
-end
-
-def fun_l0_n15(x)
- if (x < 1)
- fun_l1_n190(x)
- else
- fun_l1_n100(x)
- end
-end
-
-def fun_l0_n16(x)
- if (x < 1)
- fun_l1_n696(x)
- else
- fun_l1_n997(x)
- end
-end
-
-def fun_l0_n17(x)
- if (x < 1)
- fun_l1_n568(x)
- else
- fun_l1_n820(x)
- end
-end
-
-def fun_l0_n18(x)
- if (x < 1)
- fun_l1_n837(x)
- else
- fun_l1_n588(x)
- end
-end
-
-def fun_l0_n19(x)
- if (x < 1)
- fun_l1_n206(x)
- else
- fun_l1_n126(x)
- end
-end
-
-def fun_l0_n20(x)
- if (x < 1)
- fun_l1_n317(x)
- else
- fun_l1_n722(x)
- end
-end
-
-def fun_l0_n21(x)
- if (x < 1)
- fun_l1_n614(x)
- else
- fun_l1_n372(x)
- end
-end
-
-def fun_l0_n22(x)
- if (x < 1)
- fun_l1_n530(x)
- else
- fun_l1_n862(x)
- end
-end
-
-def fun_l0_n23(x)
- if (x < 1)
- fun_l1_n889(x)
- else
- fun_l1_n271(x)
- end
-end
-
-def fun_l0_n24(x)
- if (x < 1)
- fun_l1_n996(x)
- else
- fun_l1_n717(x)
- end
-end
-
-def fun_l0_n25(x)
- if (x < 1)
- fun_l1_n726(x)
- else
- fun_l1_n939(x)
- end
-end
-
-def fun_l0_n26(x)
- if (x < 1)
- fun_l1_n316(x)
- else
- fun_l1_n293(x)
- end
-end
-
-def fun_l0_n27(x)
- if (x < 1)
- fun_l1_n90(x)
- else
- fun_l1_n596(x)
- end
-end
-
-def fun_l0_n28(x)
- if (x < 1)
- fun_l1_n743(x)
- else
- fun_l1_n782(x)
- end
-end
-
-def fun_l0_n29(x)
- if (x < 1)
- fun_l1_n896(x)
- else
- fun_l1_n247(x)
- end
-end
-
-def fun_l0_n30(x)
- if (x < 1)
- fun_l1_n2(x)
- else
- fun_l1_n377(x)
- end
-end
-
-def fun_l0_n31(x)
- if (x < 1)
- fun_l1_n380(x)
- else
- fun_l1_n655(x)
- end
-end
-
-def fun_l0_n32(x)
- if (x < 1)
- fun_l1_n572(x)
- else
- fun_l1_n778(x)
- end
-end
-
-def fun_l0_n33(x)
- if (x < 1)
- fun_l1_n485(x)
- else
- fun_l1_n282(x)
- end
-end
-
-def fun_l0_n34(x)
- if (x < 1)
- fun_l1_n703(x)
- else
- fun_l1_n179(x)
- end
-end
-
-def fun_l0_n35(x)
- if (x < 1)
- fun_l1_n281(x)
- else
- fun_l1_n572(x)
- end
-end
-
-def fun_l0_n36(x)
- if (x < 1)
- fun_l1_n48(x)
- else
- fun_l1_n286(x)
- end
-end
-
-def fun_l0_n37(x)
- if (x < 1)
- fun_l1_n539(x)
- else
- fun_l1_n86(x)
- end
-end
-
-def fun_l0_n38(x)
- if (x < 1)
- fun_l1_n918(x)
- else
- fun_l1_n778(x)
- end
-end
-
-def fun_l0_n39(x)
- if (x < 1)
- fun_l1_n832(x)
- else
- fun_l1_n94(x)
- end
-end
-
-def fun_l0_n40(x)
- if (x < 1)
- fun_l1_n213(x)
- else
- fun_l1_n580(x)
- end
-end
-
-def fun_l0_n41(x)
- if (x < 1)
- fun_l1_n413(x)
- else
- fun_l1_n793(x)
- end
-end
-
-def fun_l0_n42(x)
- if (x < 1)
- fun_l1_n451(x)
- else
- fun_l1_n779(x)
- end
-end
-
-def fun_l0_n43(x)
- if (x < 1)
- fun_l1_n118(x)
- else
- fun_l1_n778(x)
- end
-end
-
-def fun_l0_n44(x)
- if (x < 1)
- fun_l1_n162(x)
- else
- fun_l1_n901(x)
- end
-end
-
-def fun_l0_n45(x)
- if (x < 1)
- fun_l1_n157(x)
- else
- fun_l1_n280(x)
- end
-end
-
-def fun_l0_n46(x)
- if (x < 1)
- fun_l1_n748(x)
- else
- fun_l1_n881(x)
- end
-end
-
-def fun_l0_n47(x)
- if (x < 1)
- fun_l1_n529(x)
- else
- fun_l1_n732(x)
- end
-end
-
-def fun_l0_n48(x)
- if (x < 1)
- fun_l1_n417(x)
- else
- fun_l1_n483(x)
- end
-end
-
-def fun_l0_n49(x)
- if (x < 1)
- fun_l1_n743(x)
- else
- fun_l1_n525(x)
- end
-end
-
-def fun_l0_n50(x)
- if (x < 1)
- fun_l1_n14(x)
- else
- fun_l1_n309(x)
- end
-end
-
-def fun_l0_n51(x)
- if (x < 1)
- fun_l1_n436(x)
- else
- fun_l1_n304(x)
- end
-end
-
-def fun_l0_n52(x)
- if (x < 1)
- fun_l1_n623(x)
- else
- fun_l1_n590(x)
- end
-end
-
-def fun_l0_n53(x)
- if (x < 1)
- fun_l1_n696(x)
- else
- fun_l1_n53(x)
- end
-end
-
-def fun_l0_n54(x)
- if (x < 1)
- fun_l1_n807(x)
- else
- fun_l1_n523(x)
- end
-end
-
-def fun_l0_n55(x)
- if (x < 1)
- fun_l1_n607(x)
- else
- fun_l1_n609(x)
- end
-end
-
-def fun_l0_n56(x)
- if (x < 1)
- fun_l1_n721(x)
- else
- fun_l1_n994(x)
- end
-end
-
-def fun_l0_n57(x)
- if (x < 1)
- fun_l1_n472(x)
- else
- fun_l1_n818(x)
- end
-end
-
-def fun_l0_n58(x)
- if (x < 1)
- fun_l1_n30(x)
- else
- fun_l1_n954(x)
- end
-end
-
-def fun_l0_n59(x)
- if (x < 1)
- fun_l1_n223(x)
- else
- fun_l1_n148(x)
- end
-end
-
-def fun_l0_n60(x)
- if (x < 1)
- fun_l1_n761(x)
- else
- fun_l1_n40(x)
- end
-end
-
-def fun_l0_n61(x)
- if (x < 1)
- fun_l1_n57(x)
- else
- fun_l1_n858(x)
- end
-end
-
-def fun_l0_n62(x)
- if (x < 1)
- fun_l1_n114(x)
- else
- fun_l1_n767(x)
- end
-end
-
-def fun_l0_n63(x)
- if (x < 1)
- fun_l1_n287(x)
- else
- fun_l1_n752(x)
- end
-end
-
-def fun_l0_n64(x)
- if (x < 1)
- fun_l1_n16(x)
- else
- fun_l1_n229(x)
- end
-end
-
-def fun_l0_n65(x)
- if (x < 1)
- fun_l1_n230(x)
- else
- fun_l1_n954(x)
- end
-end
-
-def fun_l0_n66(x)
- if (x < 1)
- fun_l1_n98(x)
- else
- fun_l1_n320(x)
- end
-end
-
-def fun_l0_n67(x)
- if (x < 1)
- fun_l1_n878(x)
- else
- fun_l1_n985(x)
- end
-end
-
-def fun_l0_n68(x)
- if (x < 1)
- fun_l1_n32(x)
- else
- fun_l1_n648(x)
- end
-end
-
-def fun_l0_n69(x)
- if (x < 1)
- fun_l1_n453(x)
- else
- fun_l1_n466(x)
- end
-end
-
-def fun_l0_n70(x)
- if (x < 1)
- fun_l1_n787(x)
- else
- fun_l1_n802(x)
- end
-end
-
-def fun_l0_n71(x)
- if (x < 1)
- fun_l1_n656(x)
- else
- fun_l1_n347(x)
- end
-end
-
-def fun_l0_n72(x)
- if (x < 1)
- fun_l1_n358(x)
- else
- fun_l1_n336(x)
- end
-end
-
-def fun_l0_n73(x)
- if (x < 1)
- fun_l1_n291(x)
- else
- fun_l1_n536(x)
- end
-end
-
-def fun_l0_n74(x)
- if (x < 1)
- fun_l1_n795(x)
- else
- fun_l1_n606(x)
- end
-end
-
-def fun_l0_n75(x)
- if (x < 1)
- fun_l1_n21(x)
- else
- fun_l1_n720(x)
- end
-end
-
-def fun_l0_n76(x)
- if (x < 1)
- fun_l1_n513(x)
- else
- fun_l1_n300(x)
- end
-end
-
-def fun_l0_n77(x)
- if (x < 1)
- fun_l1_n358(x)
- else
- fun_l1_n332(x)
- end
-end
-
-def fun_l0_n78(x)
- if (x < 1)
- fun_l1_n712(x)
- else
- fun_l1_n906(x)
- end
-end
-
-def fun_l0_n79(x)
- if (x < 1)
- fun_l1_n555(x)
- else
- fun_l1_n850(x)
- end
-end
-
-def fun_l0_n80(x)
- if (x < 1)
- fun_l1_n320(x)
- else
- fun_l1_n892(x)
- end
-end
-
-def fun_l0_n81(x)
- if (x < 1)
- fun_l1_n191(x)
- else
- fun_l1_n187(x)
- end
-end
-
-def fun_l0_n82(x)
- if (x < 1)
- fun_l1_n457(x)
- else
- fun_l1_n718(x)
- end
-end
-
-def fun_l0_n83(x)
- if (x < 1)
- fun_l1_n314(x)
- else
- fun_l1_n697(x)
- end
-end
-
-def fun_l0_n84(x)
- if (x < 1)
- fun_l1_n459(x)
- else
- fun_l1_n500(x)
- end
-end
-
-def fun_l0_n85(x)
- if (x < 1)
- fun_l1_n912(x)
- else
- fun_l1_n992(x)
- end
-end
-
-def fun_l0_n86(x)
- if (x < 1)
- fun_l1_n523(x)
- else
- fun_l1_n201(x)
- end
-end
-
-def fun_l0_n87(x)
- if (x < 1)
- fun_l1_n30(x)
- else
- fun_l1_n829(x)
- end
-end
-
-def fun_l0_n88(x)
- if (x < 1)
- fun_l1_n223(x)
- else
- fun_l1_n799(x)
- end
-end
-
-def fun_l0_n89(x)
- if (x < 1)
- fun_l1_n289(x)
- else
- fun_l1_n289(x)
- end
-end
-
-def fun_l0_n90(x)
- if (x < 1)
- fun_l1_n961(x)
- else
- fun_l1_n694(x)
- end
-end
-
-def fun_l0_n91(x)
- if (x < 1)
- fun_l1_n423(x)
- else
- fun_l1_n848(x)
- end
-end
-
-def fun_l0_n92(x)
- if (x < 1)
- fun_l1_n612(x)
- else
- fun_l1_n358(x)
- end
-end
-
-def fun_l0_n93(x)
- if (x < 1)
- fun_l1_n148(x)
- else
- fun_l1_n312(x)
- end
-end
-
-def fun_l0_n94(x)
- if (x < 1)
- fun_l1_n771(x)
- else
- fun_l1_n205(x)
- end
-end
-
-def fun_l0_n95(x)
- if (x < 1)
- fun_l1_n573(x)
- else
- fun_l1_n692(x)
- end
-end
-
-def fun_l0_n96(x)
- if (x < 1)
- fun_l1_n66(x)
- else
- fun_l1_n936(x)
- end
-end
-
-def fun_l0_n97(x)
- if (x < 1)
- fun_l1_n429(x)
- else
- fun_l1_n949(x)
- end
-end
-
-def fun_l0_n98(x)
- if (x < 1)
- fun_l1_n737(x)
- else
- fun_l1_n338(x)
- end
-end
-
-def fun_l0_n99(x)
- if (x < 1)
- fun_l1_n335(x)
- else
- fun_l1_n739(x)
- end
-end
-
-def fun_l0_n100(x)
- if (x < 1)
- fun_l1_n989(x)
- else
- fun_l1_n735(x)
- end
-end
-
-def fun_l0_n101(x)
- if (x < 1)
- fun_l1_n559(x)
- else
- fun_l1_n478(x)
- end
-end
-
-def fun_l0_n102(x)
- if (x < 1)
- fun_l1_n261(x)
- else
- fun_l1_n162(x)
- end
-end
-
-def fun_l0_n103(x)
- if (x < 1)
- fun_l1_n400(x)
- else
- fun_l1_n156(x)
- end
-end
-
-def fun_l0_n104(x)
- if (x < 1)
- fun_l1_n747(x)
- else
- fun_l1_n361(x)
- end
-end
-
-def fun_l0_n105(x)
- if (x < 1)
- fun_l1_n717(x)
- else
- fun_l1_n522(x)
- end
-end
-
-def fun_l0_n106(x)
- if (x < 1)
- fun_l1_n513(x)
- else
- fun_l1_n150(x)
- end
-end
-
-def fun_l0_n107(x)
- if (x < 1)
- fun_l1_n710(x)
- else
- fun_l1_n602(x)
- end
-end
-
-def fun_l0_n108(x)
- if (x < 1)
- fun_l1_n866(x)
- else
- fun_l1_n111(x)
- end
-end
-
-def fun_l0_n109(x)
- if (x < 1)
- fun_l1_n725(x)
- else
- fun_l1_n448(x)
- end
-end
-
-def fun_l0_n110(x)
- if (x < 1)
- fun_l1_n703(x)
- else
- fun_l1_n127(x)
- end
-end
-
-def fun_l0_n111(x)
- if (x < 1)
- fun_l1_n420(x)
- else
- fun_l1_n666(x)
- end
-end
-
-def fun_l0_n112(x)
- if (x < 1)
- fun_l1_n647(x)
- else
- fun_l1_n567(x)
- end
-end
-
-def fun_l0_n113(x)
- if (x < 1)
- fun_l1_n543(x)
- else
- fun_l1_n992(x)
- end
-end
-
-def fun_l0_n114(x)
- if (x < 1)
- fun_l1_n12(x)
- else
- fun_l1_n470(x)
- end
-end
-
-def fun_l0_n115(x)
- if (x < 1)
- fun_l1_n25(x)
- else
- fun_l1_n917(x)
- end
-end
-
-def fun_l0_n116(x)
- if (x < 1)
- fun_l1_n201(x)
- else
- fun_l1_n110(x)
- end
-end
-
-def fun_l0_n117(x)
- if (x < 1)
- fun_l1_n222(x)
- else
- fun_l1_n747(x)
- end
-end
-
-def fun_l0_n118(x)
- if (x < 1)
- fun_l1_n990(x)
- else
- fun_l1_n794(x)
- end
-end
-
-def fun_l0_n119(x)
- if (x < 1)
- fun_l1_n712(x)
- else
- fun_l1_n5(x)
- end
-end
-
-def fun_l0_n120(x)
- if (x < 1)
- fun_l1_n28(x)
- else
- fun_l1_n89(x)
- end
-end
-
-def fun_l0_n121(x)
- if (x < 1)
- fun_l1_n341(x)
- else
- fun_l1_n983(x)
- end
-end
-
-def fun_l0_n122(x)
- if (x < 1)
- fun_l1_n123(x)
- else
- fun_l1_n452(x)
- end
-end
-
-def fun_l0_n123(x)
- if (x < 1)
- fun_l1_n514(x)
- else
- fun_l1_n949(x)
- end
-end
-
-def fun_l0_n124(x)
- if (x < 1)
- fun_l1_n280(x)
- else
- fun_l1_n281(x)
- end
-end
-
-def fun_l0_n125(x)
- if (x < 1)
- fun_l1_n512(x)
- else
- fun_l1_n772(x)
- end
-end
-
-def fun_l0_n126(x)
- if (x < 1)
- fun_l1_n911(x)
- else
- fun_l1_n693(x)
- end
-end
-
-def fun_l0_n127(x)
- if (x < 1)
- fun_l1_n633(x)
- else
- fun_l1_n574(x)
- end
-end
-
-def fun_l0_n128(x)
- if (x < 1)
- fun_l1_n318(x)
- else
- fun_l1_n266(x)
- end
-end
-
-def fun_l0_n129(x)
- if (x < 1)
- fun_l1_n677(x)
- else
- fun_l1_n10(x)
- end
-end
-
-def fun_l0_n130(x)
- if (x < 1)
- fun_l1_n994(x)
- else
- fun_l1_n48(x)
- end
-end
-
-def fun_l0_n131(x)
- if (x < 1)
- fun_l1_n335(x)
- else
- fun_l1_n473(x)
- end
-end
-
-def fun_l0_n132(x)
- if (x < 1)
- fun_l1_n641(x)
- else
- fun_l1_n48(x)
- end
-end
-
-def fun_l0_n133(x)
- if (x < 1)
- fun_l1_n914(x)
- else
- fun_l1_n818(x)
- end
-end
-
-def fun_l0_n134(x)
- if (x < 1)
- fun_l1_n479(x)
- else
- fun_l1_n761(x)
- end
-end
-
-def fun_l0_n135(x)
- if (x < 1)
- fun_l1_n186(x)
- else
- fun_l1_n692(x)
- end
-end
-
-def fun_l0_n136(x)
- if (x < 1)
- fun_l1_n325(x)
- else
- fun_l1_n279(x)
- end
-end
-
-def fun_l0_n137(x)
- if (x < 1)
- fun_l1_n493(x)
- else
- fun_l1_n293(x)
- end
-end
-
-def fun_l0_n138(x)
- if (x < 1)
- fun_l1_n788(x)
- else
- fun_l1_n364(x)
- end
-end
-
-def fun_l0_n139(x)
- if (x < 1)
- fun_l1_n565(x)
- else
- fun_l1_n63(x)
- end
-end
-
-def fun_l0_n140(x)
- if (x < 1)
- fun_l1_n128(x)
- else
- fun_l1_n299(x)
- end
-end
-
-def fun_l0_n141(x)
- if (x < 1)
- fun_l1_n782(x)
- else
- fun_l1_n195(x)
- end
-end
-
-def fun_l0_n142(x)
- if (x < 1)
- fun_l1_n696(x)
- else
- fun_l1_n117(x)
- end
-end
-
-def fun_l0_n143(x)
- if (x < 1)
- fun_l1_n263(x)
- else
- fun_l1_n683(x)
- end
-end
-
-def fun_l0_n144(x)
- if (x < 1)
- fun_l1_n633(x)
- else
- fun_l1_n92(x)
- end
-end
-
-def fun_l0_n145(x)
- if (x < 1)
- fun_l1_n626(x)
- else
- fun_l1_n201(x)
- end
-end
-
-def fun_l0_n146(x)
- if (x < 1)
- fun_l1_n296(x)
- else
- fun_l1_n425(x)
- end
-end
-
-def fun_l0_n147(x)
- if (x < 1)
- fun_l1_n395(x)
- else
- fun_l1_n750(x)
- end
-end
-
-def fun_l0_n148(x)
- if (x < 1)
- fun_l1_n164(x)
- else
- fun_l1_n580(x)
- end
-end
-
-def fun_l0_n149(x)
- if (x < 1)
- fun_l1_n904(x)
- else
- fun_l1_n264(x)
- end
-end
-
-def fun_l0_n150(x)
- if (x < 1)
- fun_l1_n383(x)
- else
- fun_l1_n558(x)
- end
-end
-
-def fun_l0_n151(x)
- if (x < 1)
- fun_l1_n522(x)
- else
- fun_l1_n735(x)
- end
-end
-
-def fun_l0_n152(x)
- if (x < 1)
- fun_l1_n496(x)
- else
- fun_l1_n562(x)
- end
-end
-
-def fun_l0_n153(x)
- if (x < 1)
- fun_l1_n374(x)
- else
- fun_l1_n561(x)
- end
-end
-
-def fun_l0_n154(x)
- if (x < 1)
- fun_l1_n314(x)
- else
- fun_l1_n368(x)
- end
-end
-
-def fun_l0_n155(x)
- if (x < 1)
- fun_l1_n456(x)
- else
- fun_l1_n189(x)
- end
-end
-
-def fun_l0_n156(x)
- if (x < 1)
- fun_l1_n46(x)
- else
- fun_l1_n620(x)
- end
-end
-
-def fun_l0_n157(x)
- if (x < 1)
- fun_l1_n259(x)
- else
- fun_l1_n742(x)
- end
-end
-
-def fun_l0_n158(x)
- if (x < 1)
- fun_l1_n881(x)
- else
- fun_l1_n786(x)
- end
-end
-
-def fun_l0_n159(x)
- if (x < 1)
- fun_l1_n607(x)
- else
- fun_l1_n177(x)
- end
-end
-
-def fun_l0_n160(x)
- if (x < 1)
- fun_l1_n824(x)
- else
- fun_l1_n415(x)
- end
-end
-
-def fun_l0_n161(x)
- if (x < 1)
- fun_l1_n443(x)
- else
- fun_l1_n787(x)
- end
-end
-
-def fun_l0_n162(x)
- if (x < 1)
- fun_l1_n124(x)
- else
- fun_l1_n529(x)
- end
-end
-
-def fun_l0_n163(x)
- if (x < 1)
- fun_l1_n696(x)
- else
- fun_l1_n96(x)
- end
-end
-
-def fun_l0_n164(x)
- if (x < 1)
- fun_l1_n775(x)
- else
- fun_l1_n549(x)
- end
-end
-
-def fun_l0_n165(x)
- if (x < 1)
- fun_l1_n860(x)
- else
- fun_l1_n212(x)
- end
-end
-
-def fun_l0_n166(x)
- if (x < 1)
- fun_l1_n378(x)
- else
- fun_l1_n904(x)
- end
-end
-
-def fun_l0_n167(x)
- if (x < 1)
- fun_l1_n15(x)
- else
- fun_l1_n640(x)
- end
-end
-
-def fun_l0_n168(x)
- if (x < 1)
- fun_l1_n771(x)
- else
- fun_l1_n861(x)
- end
-end
-
-def fun_l0_n169(x)
- if (x < 1)
- fun_l1_n468(x)
- else
- fun_l1_n586(x)
- end
-end
-
-def fun_l0_n170(x)
- if (x < 1)
- fun_l1_n477(x)
- else
- fun_l1_n674(x)
- end
-end
-
-def fun_l0_n171(x)
- if (x < 1)
- fun_l1_n509(x)
- else
- fun_l1_n64(x)
- end
-end
-
-def fun_l0_n172(x)
- if (x < 1)
- fun_l1_n612(x)
- else
- fun_l1_n828(x)
- end
-end
-
-def fun_l0_n173(x)
- if (x < 1)
- fun_l1_n440(x)
- else
- fun_l1_n204(x)
- end
-end
-
-def fun_l0_n174(x)
- if (x < 1)
- fun_l1_n259(x)
- else
- fun_l1_n947(x)
- end
-end
-
-def fun_l0_n175(x)
- if (x < 1)
- fun_l1_n402(x)
- else
- fun_l1_n588(x)
- end
-end
-
-def fun_l0_n176(x)
- if (x < 1)
- fun_l1_n245(x)
- else
- fun_l1_n540(x)
- end
-end
-
-def fun_l0_n177(x)
- if (x < 1)
- fun_l1_n869(x)
- else
- fun_l1_n249(x)
- end
-end
-
-def fun_l0_n178(x)
- if (x < 1)
- fun_l1_n830(x)
- else
- fun_l1_n210(x)
- end
-end
-
-def fun_l0_n179(x)
- if (x < 1)
- fun_l1_n692(x)
- else
- fun_l1_n222(x)
- end
-end
-
-def fun_l0_n180(x)
- if (x < 1)
- fun_l1_n220(x)
- else
- fun_l1_n281(x)
- end
-end
-
-def fun_l0_n181(x)
- if (x < 1)
- fun_l1_n523(x)
- else
- fun_l1_n618(x)
- end
-end
-
-def fun_l0_n182(x)
- if (x < 1)
- fun_l1_n44(x)
- else
- fun_l1_n422(x)
- end
-end
-
-def fun_l0_n183(x)
- if (x < 1)
- fun_l1_n944(x)
- else
- fun_l1_n230(x)
- end
-end
-
-def fun_l0_n184(x)
- if (x < 1)
- fun_l1_n678(x)
- else
- fun_l1_n121(x)
- end
-end
-
-def fun_l0_n185(x)
- if (x < 1)
- fun_l1_n73(x)
- else
- fun_l1_n398(x)
- end
-end
-
-def fun_l0_n186(x)
- if (x < 1)
- fun_l1_n121(x)
- else
- fun_l1_n689(x)
- end
-end
-
-def fun_l0_n187(x)
- if (x < 1)
- fun_l1_n946(x)
- else
- fun_l1_n613(x)
- end
-end
-
-def fun_l0_n188(x)
- if (x < 1)
- fun_l1_n987(x)
- else
- fun_l1_n785(x)
- end
-end
-
-def fun_l0_n189(x)
- if (x < 1)
- fun_l1_n181(x)
- else
- fun_l1_n644(x)
- end
-end
-
-def fun_l0_n190(x)
- if (x < 1)
- fun_l1_n623(x)
- else
- fun_l1_n679(x)
- end
-end
-
-def fun_l0_n191(x)
- if (x < 1)
- fun_l1_n784(x)
- else
- fun_l1_n274(x)
- end
-end
-
-def fun_l0_n192(x)
- if (x < 1)
- fun_l1_n71(x)
- else
- fun_l1_n773(x)
- end
-end
-
-def fun_l0_n193(x)
- if (x < 1)
- fun_l1_n516(x)
- else
- fun_l1_n496(x)
- end
-end
-
-def fun_l0_n194(x)
- if (x < 1)
- fun_l1_n608(x)
- else
- fun_l1_n460(x)
- end
-end
-
-def fun_l0_n195(x)
- if (x < 1)
- fun_l1_n25(x)
- else
- fun_l1_n437(x)
- end
-end
-
-def fun_l0_n196(x)
- if (x < 1)
- fun_l1_n410(x)
- else
- fun_l1_n674(x)
- end
-end
-
-def fun_l0_n197(x)
- if (x < 1)
- fun_l1_n949(x)
- else
- fun_l1_n708(x)
- end
-end
-
-def fun_l0_n198(x)
- if (x < 1)
- fun_l1_n714(x)
- else
- fun_l1_n119(x)
- end
-end
-
-def fun_l0_n199(x)
- if (x < 1)
- fun_l1_n41(x)
- else
- fun_l1_n865(x)
- end
-end
-
-def fun_l0_n200(x)
- if (x < 1)
- fun_l1_n383(x)
- else
- fun_l1_n90(x)
- end
-end
-
-def fun_l0_n201(x)
- if (x < 1)
- fun_l1_n581(x)
- else
- fun_l1_n273(x)
- end
-end
-
-def fun_l0_n202(x)
- if (x < 1)
- fun_l1_n350(x)
- else
- fun_l1_n425(x)
- end
-end
-
-def fun_l0_n203(x)
- if (x < 1)
- fun_l1_n259(x)
- else
- fun_l1_n922(x)
- end
-end
-
-def fun_l0_n204(x)
- if (x < 1)
- fun_l1_n448(x)
- else
- fun_l1_n741(x)
- end
-end
-
-def fun_l0_n205(x)
- if (x < 1)
- fun_l1_n86(x)
- else
- fun_l1_n618(x)
- end
-end
-
-def fun_l0_n206(x)
- if (x < 1)
- fun_l1_n412(x)
- else
- fun_l1_n646(x)
- end
-end
-
-def fun_l0_n207(x)
- if (x < 1)
- fun_l1_n196(x)
- else
- fun_l1_n496(x)
- end
-end
-
-def fun_l0_n208(x)
- if (x < 1)
- fun_l1_n777(x)
- else
- fun_l1_n150(x)
- end
-end
-
-def fun_l0_n209(x)
- if (x < 1)
- fun_l1_n20(x)
- else
- fun_l1_n718(x)
- end
-end
-
-def fun_l0_n210(x)
- if (x < 1)
- fun_l1_n934(x)
- else
- fun_l1_n416(x)
- end
-end
-
-def fun_l0_n211(x)
- if (x < 1)
- fun_l1_n803(x)
- else
- fun_l1_n636(x)
- end
-end
-
-def fun_l0_n212(x)
- if (x < 1)
- fun_l1_n93(x)
- else
- fun_l1_n791(x)
- end
-end
-
-def fun_l0_n213(x)
- if (x < 1)
- fun_l1_n76(x)
- else
- fun_l1_n172(x)
- end
-end
-
-def fun_l0_n214(x)
- if (x < 1)
- fun_l1_n103(x)
- else
- fun_l1_n381(x)
- end
-end
-
-def fun_l0_n215(x)
- if (x < 1)
- fun_l1_n433(x)
- else
- fun_l1_n349(x)
- end
-end
-
-def fun_l0_n216(x)
- if (x < 1)
- fun_l1_n154(x)
- else
- fun_l1_n740(x)
- end
-end
-
-def fun_l0_n217(x)
- if (x < 1)
- fun_l1_n927(x)
- else
- fun_l1_n886(x)
- end
-end
-
-def fun_l0_n218(x)
- if (x < 1)
- fun_l1_n804(x)
- else
- fun_l1_n6(x)
- end
-end
-
-def fun_l0_n219(x)
- if (x < 1)
- fun_l1_n921(x)
- else
- fun_l1_n121(x)
- end
-end
-
-def fun_l0_n220(x)
- if (x < 1)
- fun_l1_n732(x)
- else
- fun_l1_n224(x)
- end
-end
-
-def fun_l0_n221(x)
- if (x < 1)
- fun_l1_n818(x)
- else
- fun_l1_n105(x)
- end
-end
-
-def fun_l0_n222(x)
- if (x < 1)
- fun_l1_n162(x)
- else
- fun_l1_n700(x)
- end
-end
-
-def fun_l0_n223(x)
- if (x < 1)
- fun_l1_n57(x)
- else
- fun_l1_n734(x)
- end
-end
-
-def fun_l0_n224(x)
- if (x < 1)
- fun_l1_n283(x)
- else
- fun_l1_n87(x)
- end
-end
-
-def fun_l0_n225(x)
- if (x < 1)
- fun_l1_n623(x)
- else
- fun_l1_n363(x)
- end
-end
-
-def fun_l0_n226(x)
- if (x < 1)
- fun_l1_n962(x)
- else
- fun_l1_n660(x)
- end
-end
-
-def fun_l0_n227(x)
- if (x < 1)
- fun_l1_n255(x)
- else
- fun_l1_n536(x)
- end
-end
-
-def fun_l0_n228(x)
- if (x < 1)
- fun_l1_n377(x)
- else
- fun_l1_n249(x)
- end
-end
-
-def fun_l0_n229(x)
- if (x < 1)
- fun_l1_n527(x)
- else
- fun_l1_n691(x)
- end
-end
-
-def fun_l0_n230(x)
- if (x < 1)
- fun_l1_n781(x)
- else
- fun_l1_n494(x)
- end
-end
-
-def fun_l0_n231(x)
- if (x < 1)
- fun_l1_n889(x)
- else
- fun_l1_n967(x)
- end
-end
-
-def fun_l0_n232(x)
- if (x < 1)
- fun_l1_n509(x)
- else
- fun_l1_n910(x)
- end
-end
-
-def fun_l0_n233(x)
- if (x < 1)
- fun_l1_n354(x)
- else
- fun_l1_n5(x)
- end
-end
-
-def fun_l0_n234(x)
- if (x < 1)
- fun_l1_n423(x)
- else
- fun_l1_n788(x)
- end
-end
-
-def fun_l0_n235(x)
- if (x < 1)
- fun_l1_n632(x)
- else
- fun_l1_n705(x)
- end
-end
-
-def fun_l0_n236(x)
- if (x < 1)
- fun_l1_n955(x)
- else
- fun_l1_n908(x)
- end
-end
-
-def fun_l0_n237(x)
- if (x < 1)
- fun_l1_n329(x)
- else
- fun_l1_n2(x)
- end
-end
-
-def fun_l0_n238(x)
- if (x < 1)
- fun_l1_n767(x)
- else
- fun_l1_n766(x)
- end
-end
-
-def fun_l0_n239(x)
- if (x < 1)
- fun_l1_n304(x)
- else
- fun_l1_n507(x)
- end
-end
-
-def fun_l0_n240(x)
- if (x < 1)
- fun_l1_n845(x)
- else
- fun_l1_n777(x)
- end
-end
-
-def fun_l0_n241(x)
- if (x < 1)
- fun_l1_n69(x)
- else
- fun_l1_n260(x)
- end
-end
-
-def fun_l0_n242(x)
- if (x < 1)
- fun_l1_n194(x)
- else
- fun_l1_n412(x)
- end
-end
-
-def fun_l0_n243(x)
- if (x < 1)
- fun_l1_n974(x)
- else
- fun_l1_n922(x)
- end
-end
-
-def fun_l0_n244(x)
- if (x < 1)
- fun_l1_n532(x)
- else
- fun_l1_n530(x)
- end
-end
-
-def fun_l0_n245(x)
- if (x < 1)
- fun_l1_n554(x)
- else
- fun_l1_n656(x)
- end
-end
-
-def fun_l0_n246(x)
- if (x < 1)
- fun_l1_n253(x)
- else
- fun_l1_n235(x)
- end
-end
-
-def fun_l0_n247(x)
- if (x < 1)
- fun_l1_n754(x)
- else
- fun_l1_n775(x)
- end
-end
-
-def fun_l0_n248(x)
- if (x < 1)
- fun_l1_n89(x)
- else
- fun_l1_n129(x)
- end
-end
-
-def fun_l0_n249(x)
- if (x < 1)
- fun_l1_n284(x)
- else
- fun_l1_n642(x)
- end
-end
-
-def fun_l0_n250(x)
- if (x < 1)
- fun_l1_n67(x)
- else
- fun_l1_n867(x)
- end
-end
-
-def fun_l0_n251(x)
- if (x < 1)
- fun_l1_n926(x)
- else
- fun_l1_n442(x)
- end
-end
-
-def fun_l0_n252(x)
- if (x < 1)
- fun_l1_n196(x)
- else
- fun_l1_n583(x)
- end
-end
-
-def fun_l0_n253(x)
- if (x < 1)
- fun_l1_n966(x)
- else
- fun_l1_n810(x)
- end
-end
-
-def fun_l0_n254(x)
- if (x < 1)
- fun_l1_n984(x)
- else
- fun_l1_n752(x)
- end
-end
-
-def fun_l0_n255(x)
- if (x < 1)
- fun_l1_n941(x)
- else
- fun_l1_n744(x)
- end
-end
-
-def fun_l0_n256(x)
- if (x < 1)
- fun_l1_n785(x)
- else
- fun_l1_n610(x)
- end
-end
-
-def fun_l0_n257(x)
- if (x < 1)
- fun_l1_n622(x)
- else
- fun_l1_n730(x)
- end
-end
-
-def fun_l0_n258(x)
- if (x < 1)
- fun_l1_n453(x)
- else
- fun_l1_n641(x)
- end
-end
-
-def fun_l0_n259(x)
- if (x < 1)
- fun_l1_n407(x)
- else
- fun_l1_n818(x)
- end
-end
-
-def fun_l0_n260(x)
- if (x < 1)
- fun_l1_n252(x)
- else
- fun_l1_n205(x)
- end
-end
-
-def fun_l0_n261(x)
- if (x < 1)
- fun_l1_n940(x)
- else
- fun_l1_n678(x)
- end
-end
-
-def fun_l0_n262(x)
- if (x < 1)
- fun_l1_n350(x)
- else
- fun_l1_n496(x)
- end
-end
-
-def fun_l0_n263(x)
- if (x < 1)
- fun_l1_n688(x)
- else
- fun_l1_n193(x)
- end
-end
-
-def fun_l0_n264(x)
- if (x < 1)
- fun_l1_n366(x)
- else
- fun_l1_n790(x)
- end
-end
-
-def fun_l0_n265(x)
- if (x < 1)
- fun_l1_n592(x)
- else
- fun_l1_n93(x)
- end
-end
-
-def fun_l0_n266(x)
- if (x < 1)
- fun_l1_n189(x)
- else
- fun_l1_n467(x)
- end
-end
-
-def fun_l0_n267(x)
- if (x < 1)
- fun_l1_n813(x)
- else
- fun_l1_n7(x)
- end
-end
-
-def fun_l0_n268(x)
- if (x < 1)
- fun_l1_n516(x)
- else
- fun_l1_n271(x)
- end
-end
-
-def fun_l0_n269(x)
- if (x < 1)
- fun_l1_n0(x)
- else
- fun_l1_n121(x)
- end
-end
-
-def fun_l0_n270(x)
- if (x < 1)
- fun_l1_n634(x)
- else
- fun_l1_n726(x)
- end
-end
-
-def fun_l0_n271(x)
- if (x < 1)
- fun_l1_n192(x)
- else
- fun_l1_n468(x)
- end
-end
-
-def fun_l0_n272(x)
- if (x < 1)
- fun_l1_n278(x)
- else
- fun_l1_n355(x)
- end
-end
-
-def fun_l0_n273(x)
- if (x < 1)
- fun_l1_n354(x)
- else
- fun_l1_n87(x)
- end
-end
-
-def fun_l0_n274(x)
- if (x < 1)
- fun_l1_n643(x)
- else
- fun_l1_n806(x)
- end
-end
-
-def fun_l0_n275(x)
- if (x < 1)
- fun_l1_n389(x)
- else
- fun_l1_n559(x)
- end
-end
-
-def fun_l0_n276(x)
- if (x < 1)
- fun_l1_n283(x)
- else
- fun_l1_n539(x)
- end
-end
-
-def fun_l0_n277(x)
- if (x < 1)
- fun_l1_n0(x)
- else
- fun_l1_n351(x)
- end
-end
-
-def fun_l0_n278(x)
- if (x < 1)
- fun_l1_n813(x)
- else
- fun_l1_n513(x)
- end
-end
-
-def fun_l0_n279(x)
- if (x < 1)
- fun_l1_n501(x)
- else
- fun_l1_n967(x)
- end
-end
-
-def fun_l0_n280(x)
- if (x < 1)
- fun_l1_n727(x)
- else
- fun_l1_n232(x)
- end
-end
-
-def fun_l0_n281(x)
- if (x < 1)
- fun_l1_n946(x)
- else
- fun_l1_n693(x)
- end
-end
-
-def fun_l0_n282(x)
- if (x < 1)
- fun_l1_n260(x)
- else
- fun_l1_n525(x)
- end
-end
-
-def fun_l0_n283(x)
- if (x < 1)
- fun_l1_n957(x)
- else
- fun_l1_n817(x)
- end
-end
-
-def fun_l0_n284(x)
- if (x < 1)
- fun_l1_n91(x)
- else
- fun_l1_n735(x)
- end
-end
-
-def fun_l0_n285(x)
- if (x < 1)
- fun_l1_n71(x)
- else
- fun_l1_n24(x)
- end
-end
-
-def fun_l0_n286(x)
- if (x < 1)
- fun_l1_n594(x)
- else
- fun_l1_n747(x)
- end
-end
-
-def fun_l0_n287(x)
- if (x < 1)
- fun_l1_n869(x)
- else
- fun_l1_n414(x)
- end
-end
-
-def fun_l0_n288(x)
- if (x < 1)
- fun_l1_n182(x)
- else
- fun_l1_n835(x)
- end
-end
-
-def fun_l0_n289(x)
- if (x < 1)
- fun_l1_n188(x)
- else
- fun_l1_n949(x)
- end
-end
-
-def fun_l0_n290(x)
- if (x < 1)
- fun_l1_n35(x)
- else
- fun_l1_n259(x)
- end
-end
-
-def fun_l0_n291(x)
- if (x < 1)
- fun_l1_n593(x)
- else
- fun_l1_n810(x)
- end
-end
-
-def fun_l0_n292(x)
- if (x < 1)
- fun_l1_n680(x)
- else
- fun_l1_n564(x)
- end
-end
-
-def fun_l0_n293(x)
- if (x < 1)
- fun_l1_n57(x)
- else
- fun_l1_n91(x)
- end
-end
-
-def fun_l0_n294(x)
- if (x < 1)
- fun_l1_n945(x)
- else
- fun_l1_n807(x)
- end
-end
-
-def fun_l0_n295(x)
- if (x < 1)
- fun_l1_n442(x)
- else
- fun_l1_n123(x)
- end
-end
-
-def fun_l0_n296(x)
- if (x < 1)
- fun_l1_n536(x)
- else
- fun_l1_n987(x)
- end
-end
-
-def fun_l0_n297(x)
- if (x < 1)
- fun_l1_n519(x)
- else
- fun_l1_n657(x)
- end
-end
-
-def fun_l0_n298(x)
- if (x < 1)
- fun_l1_n204(x)
- else
- fun_l1_n437(x)
- end
-end
-
-def fun_l0_n299(x)
- if (x < 1)
- fun_l1_n289(x)
- else
- fun_l1_n385(x)
- end
-end
-
-def fun_l0_n300(x)
- if (x < 1)
- fun_l1_n629(x)
- else
- fun_l1_n803(x)
- end
-end
-
-def fun_l0_n301(x)
- if (x < 1)
- fun_l1_n576(x)
- else
- fun_l1_n921(x)
- end
-end
-
-def fun_l0_n302(x)
- if (x < 1)
- fun_l1_n466(x)
- else
- fun_l1_n475(x)
- end
-end
-
-def fun_l0_n303(x)
- if (x < 1)
- fun_l1_n658(x)
- else
- fun_l1_n333(x)
- end
-end
-
-def fun_l0_n304(x)
- if (x < 1)
- fun_l1_n728(x)
- else
- fun_l1_n749(x)
- end
-end
-
-def fun_l0_n305(x)
- if (x < 1)
- fun_l1_n68(x)
- else
- fun_l1_n552(x)
- end
-end
-
-def fun_l0_n306(x)
- if (x < 1)
- fun_l1_n633(x)
- else
- fun_l1_n958(x)
- end
-end
-
-def fun_l0_n307(x)
- if (x < 1)
- fun_l1_n79(x)
- else
- fun_l1_n386(x)
- end
-end
-
-def fun_l0_n308(x)
- if (x < 1)
- fun_l1_n831(x)
- else
- fun_l1_n176(x)
- end
-end
-
-def fun_l0_n309(x)
- if (x < 1)
- fun_l1_n770(x)
- else
- fun_l1_n334(x)
- end
-end
-
-def fun_l0_n310(x)
- if (x < 1)
- fun_l1_n21(x)
- else
- fun_l1_n643(x)
- end
-end
-
-def fun_l0_n311(x)
- if (x < 1)
- fun_l1_n673(x)
- else
- fun_l1_n298(x)
- end
-end
-
-def fun_l0_n312(x)
- if (x < 1)
- fun_l1_n753(x)
- else
- fun_l1_n817(x)
- end
-end
-
-def fun_l0_n313(x)
- if (x < 1)
- fun_l1_n299(x)
- else
- fun_l1_n350(x)
- end
-end
-
-def fun_l0_n314(x)
- if (x < 1)
- fun_l1_n190(x)
- else
- fun_l1_n519(x)
- end
-end
-
-def fun_l0_n315(x)
- if (x < 1)
- fun_l1_n934(x)
- else
- fun_l1_n416(x)
- end
-end
-
-def fun_l0_n316(x)
- if (x < 1)
- fun_l1_n695(x)
- else
- fun_l1_n377(x)
- end
-end
-
-def fun_l0_n317(x)
- if (x < 1)
- fun_l1_n194(x)
- else
- fun_l1_n747(x)
- end
-end
-
-def fun_l0_n318(x)
- if (x < 1)
- fun_l1_n145(x)
- else
- fun_l1_n761(x)
- end
-end
-
-def fun_l0_n319(x)
- if (x < 1)
- fun_l1_n223(x)
- else
- fun_l1_n237(x)
- end
-end
-
-def fun_l0_n320(x)
- if (x < 1)
- fun_l1_n907(x)
- else
- fun_l1_n653(x)
- end
-end
-
-def fun_l0_n321(x)
- if (x < 1)
- fun_l1_n216(x)
- else
- fun_l1_n67(x)
- end
-end
-
-def fun_l0_n322(x)
- if (x < 1)
- fun_l1_n658(x)
- else
- fun_l1_n948(x)
- end
-end
-
-def fun_l0_n323(x)
- if (x < 1)
- fun_l1_n358(x)
- else
- fun_l1_n926(x)
- end
-end
-
-def fun_l0_n324(x)
- if (x < 1)
- fun_l1_n533(x)
- else
- fun_l1_n252(x)
- end
-end
-
-def fun_l0_n325(x)
- if (x < 1)
- fun_l1_n284(x)
- else
- fun_l1_n670(x)
- end
-end
-
-def fun_l0_n326(x)
- if (x < 1)
- fun_l1_n327(x)
- else
- fun_l1_n298(x)
- end
-end
-
-def fun_l0_n327(x)
- if (x < 1)
- fun_l1_n837(x)
- else
- fun_l1_n890(x)
- end
-end
-
-def fun_l0_n328(x)
- if (x < 1)
- fun_l1_n941(x)
- else
- fun_l1_n794(x)
- end
-end
-
-def fun_l0_n329(x)
- if (x < 1)
- fun_l1_n859(x)
- else
- fun_l1_n970(x)
- end
-end
-
-def fun_l0_n330(x)
- if (x < 1)
- fun_l1_n282(x)
- else
- fun_l1_n569(x)
- end
-end
-
-def fun_l0_n331(x)
- if (x < 1)
- fun_l1_n33(x)
- else
- fun_l1_n525(x)
- end
-end
-
-def fun_l0_n332(x)
- if (x < 1)
- fun_l1_n847(x)
- else
- fun_l1_n540(x)
- end
-end
-
-def fun_l0_n333(x)
- if (x < 1)
- fun_l1_n485(x)
- else
- fun_l1_n756(x)
- end
-end
-
-def fun_l0_n334(x)
- if (x < 1)
- fun_l1_n396(x)
- else
- fun_l1_n781(x)
- end
-end
-
-def fun_l0_n335(x)
- if (x < 1)
- fun_l1_n225(x)
- else
- fun_l1_n417(x)
- end
-end
-
-def fun_l0_n336(x)
- if (x < 1)
- fun_l1_n906(x)
- else
- fun_l1_n301(x)
- end
-end
-
-def fun_l0_n337(x)
- if (x < 1)
- fun_l1_n863(x)
- else
- fun_l1_n409(x)
- end
-end
-
-def fun_l0_n338(x)
- if (x < 1)
- fun_l1_n103(x)
- else
- fun_l1_n460(x)
- end
-end
-
-def fun_l0_n339(x)
- if (x < 1)
- fun_l1_n787(x)
- else
- fun_l1_n434(x)
- end
-end
-
-def fun_l0_n340(x)
- if (x < 1)
- fun_l1_n308(x)
- else
- fun_l1_n875(x)
- end
-end
-
-def fun_l0_n341(x)
- if (x < 1)
- fun_l1_n146(x)
- else
- fun_l1_n566(x)
- end
-end
-
-def fun_l0_n342(x)
- if (x < 1)
- fun_l1_n837(x)
- else
- fun_l1_n770(x)
- end
-end
-
-def fun_l0_n343(x)
- if (x < 1)
- fun_l1_n668(x)
- else
- fun_l1_n60(x)
- end
-end
-
-def fun_l0_n344(x)
- if (x < 1)
- fun_l1_n305(x)
- else
- fun_l1_n388(x)
- end
-end
-
-def fun_l0_n345(x)
- if (x < 1)
- fun_l1_n796(x)
- else
- fun_l1_n920(x)
- end
-end
-
-def fun_l0_n346(x)
- if (x < 1)
- fun_l1_n257(x)
- else
- fun_l1_n229(x)
- end
-end
-
-def fun_l0_n347(x)
- if (x < 1)
- fun_l1_n740(x)
- else
- fun_l1_n372(x)
- end
-end
-
-def fun_l0_n348(x)
- if (x < 1)
- fun_l1_n698(x)
- else
- fun_l1_n63(x)
- end
-end
-
-def fun_l0_n349(x)
- if (x < 1)
- fun_l1_n4(x)
- else
- fun_l1_n119(x)
- end
-end
-
-def fun_l0_n350(x)
- if (x < 1)
- fun_l1_n186(x)
- else
- fun_l1_n352(x)
- end
-end
-
-def fun_l0_n351(x)
- if (x < 1)
- fun_l1_n619(x)
- else
- fun_l1_n583(x)
- end
-end
-
-def fun_l0_n352(x)
- if (x < 1)
- fun_l1_n2(x)
- else
- fun_l1_n275(x)
- end
-end
-
-def fun_l0_n353(x)
- if (x < 1)
- fun_l1_n843(x)
- else
- fun_l1_n986(x)
- end
-end
-
-def fun_l0_n354(x)
- if (x < 1)
- fun_l1_n865(x)
- else
- fun_l1_n64(x)
- end
-end
-
-def fun_l0_n355(x)
- if (x < 1)
- fun_l1_n732(x)
- else
- fun_l1_n332(x)
- end
-end
-
-def fun_l0_n356(x)
- if (x < 1)
- fun_l1_n642(x)
- else
- fun_l1_n559(x)
- end
-end
-
-def fun_l0_n357(x)
- if (x < 1)
- fun_l1_n385(x)
- else
- fun_l1_n532(x)
- end
-end
-
-def fun_l0_n358(x)
- if (x < 1)
- fun_l1_n672(x)
- else
- fun_l1_n721(x)
- end
-end
-
-def fun_l0_n359(x)
- if (x < 1)
- fun_l1_n663(x)
- else
- fun_l1_n590(x)
- end
-end
-
-def fun_l0_n360(x)
- if (x < 1)
- fun_l1_n240(x)
- else
- fun_l1_n743(x)
- end
-end
-
-def fun_l0_n361(x)
- if (x < 1)
- fun_l1_n301(x)
- else
- fun_l1_n943(x)
- end
-end
-
-def fun_l0_n362(x)
- if (x < 1)
- fun_l1_n108(x)
- else
- fun_l1_n975(x)
- end
-end
-
-def fun_l0_n363(x)
- if (x < 1)
- fun_l1_n554(x)
- else
- fun_l1_n135(x)
- end
-end
-
-def fun_l0_n364(x)
- if (x < 1)
- fun_l1_n360(x)
- else
- fun_l1_n821(x)
- end
-end
-
-def fun_l0_n365(x)
- if (x < 1)
- fun_l1_n992(x)
- else
- fun_l1_n158(x)
- end
-end
-
-def fun_l0_n366(x)
- if (x < 1)
- fun_l1_n439(x)
- else
- fun_l1_n506(x)
- end
-end
-
-def fun_l0_n367(x)
- if (x < 1)
- fun_l1_n229(x)
- else
- fun_l1_n714(x)
- end
-end
-
-def fun_l0_n368(x)
- if (x < 1)
- fun_l1_n459(x)
- else
- fun_l1_n874(x)
- end
-end
-
-def fun_l0_n369(x)
- if (x < 1)
- fun_l1_n799(x)
- else
- fun_l1_n406(x)
- end
-end
-
-def fun_l0_n370(x)
- if (x < 1)
- fun_l1_n791(x)
- else
- fun_l1_n669(x)
- end
-end
-
-def fun_l0_n371(x)
- if (x < 1)
- fun_l1_n99(x)
- else
- fun_l1_n344(x)
- end
-end
-
-def fun_l0_n372(x)
- if (x < 1)
- fun_l1_n585(x)
- else
- fun_l1_n388(x)
- end
-end
-
-def fun_l0_n373(x)
- if (x < 1)
- fun_l1_n35(x)
- else
- fun_l1_n369(x)
- end
-end
-
-def fun_l0_n374(x)
- if (x < 1)
- fun_l1_n41(x)
- else
- fun_l1_n378(x)
- end
-end
-
-def fun_l0_n375(x)
- if (x < 1)
- fun_l1_n372(x)
- else
- fun_l1_n406(x)
- end
-end
-
-def fun_l0_n376(x)
- if (x < 1)
- fun_l1_n247(x)
- else
- fun_l1_n563(x)
- end
-end
-
-def fun_l0_n377(x)
- if (x < 1)
- fun_l1_n998(x)
- else
- fun_l1_n302(x)
- end
-end
-
-def fun_l0_n378(x)
- if (x < 1)
- fun_l1_n955(x)
- else
- fun_l1_n333(x)
- end
-end
-
-def fun_l0_n379(x)
- if (x < 1)
- fun_l1_n554(x)
- else
- fun_l1_n863(x)
- end
-end
-
-def fun_l0_n380(x)
- if (x < 1)
- fun_l1_n248(x)
- else
- fun_l1_n297(x)
- end
-end
-
-def fun_l0_n381(x)
- if (x < 1)
- fun_l1_n85(x)
- else
- fun_l1_n726(x)
- end
-end
-
-def fun_l0_n382(x)
- if (x < 1)
- fun_l1_n75(x)
- else
- fun_l1_n990(x)
- end
-end
-
-def fun_l0_n383(x)
- if (x < 1)
- fun_l1_n353(x)
- else
- fun_l1_n218(x)
- end
-end
-
-def fun_l0_n384(x)
- if (x < 1)
- fun_l1_n103(x)
- else
- fun_l1_n192(x)
- end
-end
-
-def fun_l0_n385(x)
- if (x < 1)
- fun_l1_n659(x)
- else
- fun_l1_n996(x)
- end
-end
-
-def fun_l0_n386(x)
- if (x < 1)
- fun_l1_n528(x)
- else
- fun_l1_n654(x)
- end
-end
-
-def fun_l0_n387(x)
- if (x < 1)
- fun_l1_n857(x)
- else
- fun_l1_n638(x)
- end
-end
-
-def fun_l0_n388(x)
- if (x < 1)
- fun_l1_n311(x)
- else
- fun_l1_n877(x)
- end
-end
-
-def fun_l0_n389(x)
- if (x < 1)
- fun_l1_n406(x)
- else
- fun_l1_n191(x)
- end
-end
-
-def fun_l0_n390(x)
- if (x < 1)
- fun_l1_n464(x)
- else
- fun_l1_n684(x)
- end
-end
-
-def fun_l0_n391(x)
- if (x < 1)
- fun_l1_n878(x)
- else
- fun_l1_n635(x)
- end
-end
-
-def fun_l0_n392(x)
- if (x < 1)
- fun_l1_n863(x)
- else
- fun_l1_n486(x)
- end
-end
-
-def fun_l0_n393(x)
- if (x < 1)
- fun_l1_n587(x)
- else
- fun_l1_n387(x)
- end
-end
-
-def fun_l0_n394(x)
- if (x < 1)
- fun_l1_n553(x)
- else
- fun_l1_n789(x)
- end
-end
-
-def fun_l0_n395(x)
- if (x < 1)
- fun_l1_n420(x)
- else
- fun_l1_n148(x)
- end
-end
-
-def fun_l0_n396(x)
- if (x < 1)
- fun_l1_n802(x)
- else
- fun_l1_n845(x)
- end
-end
-
-def fun_l0_n397(x)
- if (x < 1)
- fun_l1_n749(x)
- else
- fun_l1_n742(x)
- end
-end
-
-def fun_l0_n398(x)
- if (x < 1)
- fun_l1_n929(x)
- else
- fun_l1_n458(x)
- end
-end
-
-def fun_l0_n399(x)
- if (x < 1)
- fun_l1_n908(x)
- else
- fun_l1_n188(x)
- end
-end
-
-def fun_l0_n400(x)
- if (x < 1)
- fun_l1_n932(x)
- else
- fun_l1_n854(x)
- end
-end
-
-def fun_l0_n401(x)
- if (x < 1)
- fun_l1_n29(x)
- else
- fun_l1_n666(x)
- end
-end
-
-def fun_l0_n402(x)
- if (x < 1)
- fun_l1_n877(x)
- else
- fun_l1_n518(x)
- end
-end
-
-def fun_l0_n403(x)
- if (x < 1)
- fun_l1_n639(x)
- else
- fun_l1_n618(x)
- end
-end
-
-def fun_l0_n404(x)
- if (x < 1)
- fun_l1_n177(x)
- else
- fun_l1_n487(x)
- end
-end
-
-def fun_l0_n405(x)
- if (x < 1)
- fun_l1_n536(x)
- else
- fun_l1_n860(x)
- end
-end
-
-def fun_l0_n406(x)
- if (x < 1)
- fun_l1_n626(x)
- else
- fun_l1_n894(x)
- end
-end
-
-def fun_l0_n407(x)
- if (x < 1)
- fun_l1_n533(x)
- else
- fun_l1_n367(x)
- end
-end
-
-def fun_l0_n408(x)
- if (x < 1)
- fun_l1_n146(x)
- else
- fun_l1_n546(x)
- end
-end
-
-def fun_l0_n409(x)
- if (x < 1)
- fun_l1_n872(x)
- else
- fun_l1_n387(x)
- end
-end
-
-def fun_l0_n410(x)
- if (x < 1)
- fun_l1_n726(x)
- else
- fun_l1_n973(x)
- end
-end
-
-def fun_l0_n411(x)
- if (x < 1)
- fun_l1_n168(x)
- else
- fun_l1_n783(x)
- end
-end
-
-def fun_l0_n412(x)
- if (x < 1)
- fun_l1_n895(x)
- else
- fun_l1_n901(x)
- end
-end
-
-def fun_l0_n413(x)
- if (x < 1)
- fun_l1_n235(x)
- else
- fun_l1_n593(x)
- end
-end
-
-def fun_l0_n414(x)
- if (x < 1)
- fun_l1_n328(x)
- else
- fun_l1_n693(x)
- end
-end
-
-def fun_l0_n415(x)
- if (x < 1)
- fun_l1_n882(x)
- else
- fun_l1_n290(x)
- end
-end
-
-def fun_l0_n416(x)
- if (x < 1)
- fun_l1_n433(x)
- else
- fun_l1_n220(x)
- end
-end
-
-def fun_l0_n417(x)
- if (x < 1)
- fun_l1_n966(x)
- else
- fun_l1_n74(x)
- end
-end
-
-def fun_l0_n418(x)
- if (x < 1)
- fun_l1_n750(x)
- else
- fun_l1_n547(x)
- end
-end
-
-def fun_l0_n419(x)
- if (x < 1)
- fun_l1_n94(x)
- else
- fun_l1_n794(x)
- end
-end
-
-def fun_l0_n420(x)
- if (x < 1)
- fun_l1_n68(x)
- else
- fun_l1_n970(x)
- end
-end
-
-def fun_l0_n421(x)
- if (x < 1)
- fun_l1_n663(x)
- else
- fun_l1_n388(x)
- end
-end
-
-def fun_l0_n422(x)
- if (x < 1)
- fun_l1_n686(x)
- else
- fun_l1_n67(x)
- end
-end
-
-def fun_l0_n423(x)
- if (x < 1)
- fun_l1_n210(x)
- else
- fun_l1_n64(x)
- end
-end
-
-def fun_l0_n424(x)
- if (x < 1)
- fun_l1_n375(x)
- else
- fun_l1_n205(x)
- end
-end
-
-def fun_l0_n425(x)
- if (x < 1)
- fun_l1_n832(x)
- else
- fun_l1_n325(x)
- end
-end
-
-def fun_l0_n426(x)
- if (x < 1)
- fun_l1_n819(x)
- else
- fun_l1_n601(x)
- end
-end
-
-def fun_l0_n427(x)
- if (x < 1)
- fun_l1_n588(x)
- else
- fun_l1_n875(x)
- end
-end
-
-def fun_l0_n428(x)
- if (x < 1)
- fun_l1_n682(x)
- else
- fun_l1_n523(x)
- end
-end
-
-def fun_l0_n429(x)
- if (x < 1)
- fun_l1_n972(x)
- else
- fun_l1_n891(x)
- end
-end
-
-def fun_l0_n430(x)
- if (x < 1)
- fun_l1_n90(x)
- else
- fun_l1_n655(x)
- end
-end
-
-def fun_l0_n431(x)
- if (x < 1)
- fun_l1_n393(x)
- else
- fun_l1_n454(x)
- end
-end
-
-def fun_l0_n432(x)
- if (x < 1)
- fun_l1_n435(x)
- else
- fun_l1_n860(x)
- end
-end
-
-def fun_l0_n433(x)
- if (x < 1)
- fun_l1_n516(x)
- else
- fun_l1_n246(x)
- end
-end
-
-def fun_l0_n434(x)
- if (x < 1)
- fun_l1_n216(x)
- else
- fun_l1_n78(x)
- end
-end
-
-def fun_l0_n435(x)
- if (x < 1)
- fun_l1_n357(x)
- else
- fun_l1_n61(x)
- end
-end
-
-def fun_l0_n436(x)
- if (x < 1)
- fun_l1_n289(x)
- else
- fun_l1_n507(x)
- end
-end
-
-def fun_l0_n437(x)
- if (x < 1)
- fun_l1_n182(x)
- else
- fun_l1_n289(x)
- end
-end
-
-def fun_l0_n438(x)
- if (x < 1)
- fun_l1_n69(x)
- else
- fun_l1_n549(x)
- end
-end
-
-def fun_l0_n439(x)
- if (x < 1)
- fun_l1_n275(x)
- else
- fun_l1_n723(x)
- end
-end
-
-def fun_l0_n440(x)
- if (x < 1)
- fun_l1_n469(x)
- else
- fun_l1_n243(x)
- end
-end
-
-def fun_l0_n441(x)
- if (x < 1)
- fun_l1_n595(x)
- else
- fun_l1_n624(x)
- end
-end
-
-def fun_l0_n442(x)
- if (x < 1)
- fun_l1_n655(x)
- else
- fun_l1_n896(x)
- end
-end
-
-def fun_l0_n443(x)
- if (x < 1)
- fun_l1_n926(x)
- else
- fun_l1_n503(x)
- end
-end
-
-def fun_l0_n444(x)
- if (x < 1)
- fun_l1_n875(x)
- else
- fun_l1_n110(x)
- end
-end
-
-def fun_l0_n445(x)
- if (x < 1)
- fun_l1_n832(x)
- else
- fun_l1_n154(x)
- end
-end
-
-def fun_l0_n446(x)
- if (x < 1)
- fun_l1_n538(x)
- else
- fun_l1_n75(x)
- end
-end
-
-def fun_l0_n447(x)
- if (x < 1)
- fun_l1_n183(x)
- else
- fun_l1_n718(x)
- end
-end
-
-def fun_l0_n448(x)
- if (x < 1)
- fun_l1_n680(x)
- else
- fun_l1_n93(x)
- end
-end
-
-def fun_l0_n449(x)
- if (x < 1)
- fun_l1_n147(x)
- else
- fun_l1_n924(x)
- end
-end
-
-def fun_l0_n450(x)
- if (x < 1)
- fun_l1_n702(x)
- else
- fun_l1_n830(x)
- end
-end
-
-def fun_l0_n451(x)
- if (x < 1)
- fun_l1_n750(x)
- else
- fun_l1_n447(x)
- end
-end
-
-def fun_l0_n452(x)
- if (x < 1)
- fun_l1_n520(x)
- else
- fun_l1_n69(x)
- end
-end
-
-def fun_l0_n453(x)
- if (x < 1)
- fun_l1_n132(x)
- else
- fun_l1_n877(x)
- end
-end
-
-def fun_l0_n454(x)
- if (x < 1)
- fun_l1_n247(x)
- else
- fun_l1_n69(x)
- end
-end
-
-def fun_l0_n455(x)
- if (x < 1)
- fun_l1_n180(x)
- else
- fun_l1_n645(x)
- end
-end
-
-def fun_l0_n456(x)
- if (x < 1)
- fun_l1_n658(x)
- else
- fun_l1_n487(x)
- end
-end
-
-def fun_l0_n457(x)
- if (x < 1)
- fun_l1_n276(x)
- else
- fun_l1_n528(x)
- end
-end
-
-def fun_l0_n458(x)
- if (x < 1)
- fun_l1_n30(x)
- else
- fun_l1_n456(x)
- end
-end
-
-def fun_l0_n459(x)
- if (x < 1)
- fun_l1_n986(x)
- else
- fun_l1_n552(x)
- end
-end
-
-def fun_l0_n460(x)
- if (x < 1)
- fun_l1_n874(x)
- else
- fun_l1_n396(x)
- end
-end
-
-def fun_l0_n461(x)
- if (x < 1)
- fun_l1_n524(x)
- else
- fun_l1_n335(x)
- end
-end
-
-def fun_l0_n462(x)
- if (x < 1)
- fun_l1_n471(x)
- else
- fun_l1_n578(x)
- end
-end
-
-def fun_l0_n463(x)
- if (x < 1)
- fun_l1_n173(x)
- else
- fun_l1_n456(x)
- end
-end
-
-def fun_l0_n464(x)
- if (x < 1)
- fun_l1_n872(x)
- else
- fun_l1_n745(x)
- end
-end
-
-def fun_l0_n465(x)
- if (x < 1)
- fun_l1_n387(x)
- else
- fun_l1_n776(x)
- end
-end
-
-def fun_l0_n466(x)
- if (x < 1)
- fun_l1_n119(x)
- else
- fun_l1_n428(x)
- end
-end
-
-def fun_l0_n467(x)
- if (x < 1)
- fun_l1_n416(x)
- else
- fun_l1_n738(x)
- end
-end
-
-def fun_l0_n468(x)
- if (x < 1)
- fun_l1_n762(x)
- else
- fun_l1_n694(x)
- end
-end
-
-def fun_l0_n469(x)
- if (x < 1)
- fun_l1_n27(x)
- else
- fun_l1_n562(x)
- end
-end
-
-def fun_l0_n470(x)
- if (x < 1)
- fun_l1_n12(x)
- else
- fun_l1_n812(x)
- end
-end
-
-def fun_l0_n471(x)
- if (x < 1)
- fun_l1_n865(x)
- else
- fun_l1_n94(x)
- end
-end
-
-def fun_l0_n472(x)
- if (x < 1)
- fun_l1_n346(x)
- else
- fun_l1_n39(x)
- end
-end
-
-def fun_l0_n473(x)
- if (x < 1)
- fun_l1_n309(x)
- else
- fun_l1_n158(x)
- end
-end
-
-def fun_l0_n474(x)
- if (x < 1)
- fun_l1_n828(x)
- else
- fun_l1_n229(x)
- end
-end
-
-def fun_l0_n475(x)
- if (x < 1)
- fun_l1_n554(x)
- else
- fun_l1_n121(x)
- end
-end
-
-def fun_l0_n476(x)
- if (x < 1)
- fun_l1_n818(x)
- else
- fun_l1_n390(x)
- end
-end
-
-def fun_l0_n477(x)
- if (x < 1)
- fun_l1_n88(x)
- else
- fun_l1_n73(x)
- end
-end
-
-def fun_l0_n478(x)
- if (x < 1)
- fun_l1_n709(x)
- else
- fun_l1_n680(x)
- end
-end
-
-def fun_l0_n479(x)
- if (x < 1)
- fun_l1_n271(x)
- else
- fun_l1_n439(x)
- end
-end
-
-def fun_l0_n480(x)
- if (x < 1)
- fun_l1_n493(x)
- else
- fun_l1_n562(x)
- end
-end
-
-def fun_l0_n481(x)
- if (x < 1)
- fun_l1_n642(x)
- else
- fun_l1_n221(x)
- end
-end
-
-def fun_l0_n482(x)
- if (x < 1)
- fun_l1_n838(x)
- else
- fun_l1_n345(x)
- end
-end
-
-def fun_l0_n483(x)
- if (x < 1)
- fun_l1_n411(x)
- else
- fun_l1_n266(x)
- end
-end
-
-def fun_l0_n484(x)
- if (x < 1)
- fun_l1_n916(x)
- else
- fun_l1_n791(x)
- end
-end
-
-def fun_l0_n485(x)
- if (x < 1)
- fun_l1_n392(x)
- else
- fun_l1_n68(x)
- end
-end
-
-def fun_l0_n486(x)
- if (x < 1)
- fun_l1_n834(x)
- else
- fun_l1_n783(x)
- end
-end
-
-def fun_l0_n487(x)
- if (x < 1)
- fun_l1_n398(x)
- else
- fun_l1_n627(x)
- end
-end
-
-def fun_l0_n488(x)
- if (x < 1)
- fun_l1_n904(x)
- else
- fun_l1_n167(x)
- end
-end
-
-def fun_l0_n489(x)
- if (x < 1)
- fun_l1_n54(x)
- else
- fun_l1_n28(x)
- end
-end
-
-def fun_l0_n490(x)
- if (x < 1)
- fun_l1_n24(x)
- else
- fun_l1_n9(x)
- end
-end
-
-def fun_l0_n491(x)
- if (x < 1)
- fun_l1_n497(x)
- else
- fun_l1_n297(x)
- end
-end
-
-def fun_l0_n492(x)
- if (x < 1)
- fun_l1_n951(x)
- else
- fun_l1_n534(x)
- end
-end
-
-def fun_l0_n493(x)
- if (x < 1)
- fun_l1_n213(x)
- else
- fun_l1_n808(x)
- end
-end
-
-def fun_l0_n494(x)
- if (x < 1)
- fun_l1_n904(x)
- else
- fun_l1_n94(x)
- end
-end
-
-def fun_l0_n495(x)
- if (x < 1)
- fun_l1_n799(x)
- else
- fun_l1_n817(x)
- end
-end
-
-def fun_l0_n496(x)
- if (x < 1)
- fun_l1_n45(x)
- else
- fun_l1_n860(x)
- end
-end
-
-def fun_l0_n497(x)
- if (x < 1)
- fun_l1_n482(x)
- else
- fun_l1_n783(x)
- end
-end
-
-def fun_l0_n498(x)
- if (x < 1)
- fun_l1_n78(x)
- else
- fun_l1_n785(x)
- end
-end
-
-def fun_l0_n499(x)
- if (x < 1)
- fun_l1_n174(x)
- else
- fun_l1_n87(x)
- end
-end
-
-def fun_l0_n500(x)
- if (x < 1)
- fun_l1_n608(x)
- else
- fun_l1_n7(x)
- end
-end
-
-def fun_l0_n501(x)
- if (x < 1)
- fun_l1_n157(x)
- else
- fun_l1_n718(x)
- end
-end
-
-def fun_l0_n502(x)
- if (x < 1)
- fun_l1_n823(x)
- else
- fun_l1_n549(x)
- end
-end
-
-def fun_l0_n503(x)
- if (x < 1)
- fun_l1_n13(x)
- else
- fun_l1_n502(x)
- end
-end
-
-def fun_l0_n504(x)
- if (x < 1)
- fun_l1_n119(x)
- else
- fun_l1_n191(x)
- end
-end
-
-def fun_l0_n505(x)
- if (x < 1)
- fun_l1_n503(x)
- else
- fun_l1_n974(x)
- end
-end
-
-def fun_l0_n506(x)
- if (x < 1)
- fun_l1_n893(x)
- else
- fun_l1_n582(x)
- end
-end
-
-def fun_l0_n507(x)
- if (x < 1)
- fun_l1_n403(x)
- else
- fun_l1_n228(x)
- end
-end
-
-def fun_l0_n508(x)
- if (x < 1)
- fun_l1_n640(x)
- else
- fun_l1_n362(x)
- end
-end
-
-def fun_l0_n509(x)
- if (x < 1)
- fun_l1_n629(x)
- else
- fun_l1_n824(x)
- end
-end
-
-def fun_l0_n510(x)
- if (x < 1)
- fun_l1_n84(x)
- else
- fun_l1_n330(x)
- end
-end
-
-def fun_l0_n511(x)
- if (x < 1)
- fun_l1_n91(x)
- else
- fun_l1_n523(x)
- end
-end
-
-def fun_l0_n512(x)
- if (x < 1)
- fun_l1_n696(x)
- else
- fun_l1_n126(x)
- end
-end
-
-def fun_l0_n513(x)
- if (x < 1)
- fun_l1_n905(x)
- else
- fun_l1_n496(x)
- end
-end
-
-def fun_l0_n514(x)
- if (x < 1)
- fun_l1_n766(x)
- else
- fun_l1_n523(x)
- end
-end
-
-def fun_l0_n515(x)
- if (x < 1)
- fun_l1_n798(x)
- else
- fun_l1_n698(x)
- end
-end
-
-def fun_l0_n516(x)
- if (x < 1)
- fun_l1_n124(x)
- else
- fun_l1_n356(x)
- end
-end
-
-def fun_l0_n517(x)
- if (x < 1)
- fun_l1_n289(x)
- else
- fun_l1_n782(x)
- end
-end
-
-def fun_l0_n518(x)
- if (x < 1)
- fun_l1_n483(x)
- else
- fun_l1_n586(x)
- end
-end
-
-def fun_l0_n519(x)
- if (x < 1)
- fun_l1_n878(x)
- else
- fun_l1_n37(x)
- end
-end
-
-def fun_l0_n520(x)
- if (x < 1)
- fun_l1_n48(x)
- else
- fun_l1_n216(x)
- end
-end
-
-def fun_l0_n521(x)
- if (x < 1)
- fun_l1_n805(x)
- else
- fun_l1_n846(x)
- end
-end
-
-def fun_l0_n522(x)
- if (x < 1)
- fun_l1_n422(x)
- else
- fun_l1_n190(x)
- end
-end
-
-def fun_l0_n523(x)
- if (x < 1)
- fun_l1_n168(x)
- else
- fun_l1_n272(x)
- end
-end
-
-def fun_l0_n524(x)
- if (x < 1)
- fun_l1_n766(x)
- else
- fun_l1_n125(x)
- end
-end
-
-def fun_l0_n525(x)
- if (x < 1)
- fun_l1_n56(x)
- else
- fun_l1_n224(x)
- end
-end
-
-def fun_l0_n526(x)
- if (x < 1)
- fun_l1_n540(x)
- else
- fun_l1_n303(x)
- end
-end
-
-def fun_l0_n527(x)
- if (x < 1)
- fun_l1_n846(x)
- else
- fun_l1_n955(x)
- end
-end
-
-def fun_l0_n528(x)
- if (x < 1)
- fun_l1_n571(x)
- else
- fun_l1_n640(x)
- end
-end
-
-def fun_l0_n529(x)
- if (x < 1)
- fun_l1_n650(x)
- else
- fun_l1_n107(x)
- end
-end
-
-def fun_l0_n530(x)
- if (x < 1)
- fun_l1_n240(x)
- else
- fun_l1_n139(x)
- end
-end
-
-def fun_l0_n531(x)
- if (x < 1)
- fun_l1_n975(x)
- else
- fun_l1_n970(x)
- end
-end
-
-def fun_l0_n532(x)
- if (x < 1)
- fun_l1_n753(x)
- else
- fun_l1_n147(x)
- end
-end
-
-def fun_l0_n533(x)
- if (x < 1)
- fun_l1_n269(x)
- else
- fun_l1_n292(x)
- end
-end
-
-def fun_l0_n534(x)
- if (x < 1)
- fun_l1_n791(x)
- else
- fun_l1_n69(x)
- end
-end
-
-def fun_l0_n535(x)
- if (x < 1)
- fun_l1_n469(x)
- else
- fun_l1_n58(x)
- end
-end
-
-def fun_l0_n536(x)
- if (x < 1)
- fun_l1_n526(x)
- else
- fun_l1_n265(x)
- end
-end
-
-def fun_l0_n537(x)
- if (x < 1)
- fun_l1_n681(x)
- else
- fun_l1_n646(x)
- end
-end
-
-def fun_l0_n538(x)
- if (x < 1)
- fun_l1_n377(x)
- else
- fun_l1_n969(x)
- end
-end
-
-def fun_l0_n539(x)
- if (x < 1)
- fun_l1_n935(x)
- else
- fun_l1_n556(x)
- end
-end
-
-def fun_l0_n540(x)
- if (x < 1)
- fun_l1_n498(x)
- else
- fun_l1_n439(x)
- end
-end
-
-def fun_l0_n541(x)
- if (x < 1)
- fun_l1_n451(x)
- else
- fun_l1_n35(x)
- end
-end
-
-def fun_l0_n542(x)
- if (x < 1)
- fun_l1_n32(x)
- else
- fun_l1_n795(x)
- end
-end
-
-def fun_l0_n543(x)
- if (x < 1)
- fun_l1_n732(x)
- else
- fun_l1_n530(x)
- end
-end
-
-def fun_l0_n544(x)
- if (x < 1)
- fun_l1_n176(x)
- else
- fun_l1_n735(x)
- end
-end
-
-def fun_l0_n545(x)
- if (x < 1)
- fun_l1_n34(x)
- else
- fun_l1_n989(x)
- end
-end
-
-def fun_l0_n546(x)
- if (x < 1)
- fun_l1_n534(x)
- else
- fun_l1_n705(x)
- end
-end
-
-def fun_l0_n547(x)
- if (x < 1)
- fun_l1_n997(x)
- else
- fun_l1_n883(x)
- end
-end
-
-def fun_l0_n548(x)
- if (x < 1)
- fun_l1_n379(x)
- else
- fun_l1_n33(x)
- end
-end
-
-def fun_l0_n549(x)
- if (x < 1)
- fun_l1_n454(x)
- else
- fun_l1_n516(x)
- end
-end
-
-def fun_l0_n550(x)
- if (x < 1)
- fun_l1_n678(x)
- else
- fun_l1_n652(x)
- end
-end
-
-def fun_l0_n551(x)
- if (x < 1)
- fun_l1_n13(x)
- else
- fun_l1_n864(x)
- end
-end
-
-def fun_l0_n552(x)
- if (x < 1)
- fun_l1_n178(x)
- else
- fun_l1_n996(x)
- end
-end
-
-def fun_l0_n553(x)
- if (x < 1)
- fun_l1_n865(x)
- else
- fun_l1_n703(x)
- end
-end
-
-def fun_l0_n554(x)
- if (x < 1)
- fun_l1_n306(x)
- else
- fun_l1_n24(x)
- end
-end
-
-def fun_l0_n555(x)
- if (x < 1)
- fun_l1_n110(x)
- else
- fun_l1_n123(x)
- end
-end
-
-def fun_l0_n556(x)
- if (x < 1)
- fun_l1_n367(x)
- else
- fun_l1_n117(x)
- end
-end
-
-def fun_l0_n557(x)
- if (x < 1)
- fun_l1_n967(x)
- else
- fun_l1_n662(x)
- end
-end
-
-def fun_l0_n558(x)
- if (x < 1)
- fun_l1_n68(x)
- else
- fun_l1_n47(x)
- end
-end
-
-def fun_l0_n559(x)
- if (x < 1)
- fun_l1_n154(x)
- else
- fun_l1_n344(x)
- end
-end
-
-def fun_l0_n560(x)
- if (x < 1)
- fun_l1_n835(x)
- else
- fun_l1_n577(x)
- end
-end
-
-def fun_l0_n561(x)
- if (x < 1)
- fun_l1_n393(x)
- else
- fun_l1_n419(x)
- end
-end
-
-def fun_l0_n562(x)
- if (x < 1)
- fun_l1_n632(x)
- else
- fun_l1_n630(x)
- end
-end
-
-def fun_l0_n563(x)
- if (x < 1)
- fun_l1_n9(x)
- else
- fun_l1_n109(x)
- end
-end
-
-def fun_l0_n564(x)
- if (x < 1)
- fun_l1_n65(x)
- else
- fun_l1_n123(x)
- end
-end
-
-def fun_l0_n565(x)
- if (x < 1)
- fun_l1_n156(x)
- else
- fun_l1_n921(x)
- end
-end
-
-def fun_l0_n566(x)
- if (x < 1)
- fun_l1_n88(x)
- else
- fun_l1_n743(x)
- end
-end
-
-def fun_l0_n567(x)
- if (x < 1)
- fun_l1_n92(x)
- else
- fun_l1_n27(x)
- end
-end
-
-def fun_l0_n568(x)
- if (x < 1)
- fun_l1_n462(x)
- else
- fun_l1_n988(x)
- end
-end
-
-def fun_l0_n569(x)
- if (x < 1)
- fun_l1_n241(x)
- else
- fun_l1_n199(x)
- end
-end
-
-def fun_l0_n570(x)
- if (x < 1)
- fun_l1_n429(x)
- else
- fun_l1_n530(x)
- end
-end
-
-def fun_l0_n571(x)
- if (x < 1)
- fun_l1_n412(x)
- else
- fun_l1_n530(x)
- end
-end
-
-def fun_l0_n572(x)
- if (x < 1)
- fun_l1_n100(x)
- else
- fun_l1_n270(x)
- end
-end
-
-def fun_l0_n573(x)
- if (x < 1)
- fun_l1_n326(x)
- else
- fun_l1_n191(x)
- end
-end
-
-def fun_l0_n574(x)
- if (x < 1)
- fun_l1_n151(x)
- else
- fun_l1_n354(x)
- end
-end
-
-def fun_l0_n575(x)
- if (x < 1)
- fun_l1_n322(x)
- else
- fun_l1_n534(x)
- end
-end
-
-def fun_l0_n576(x)
- if (x < 1)
- fun_l1_n995(x)
- else
- fun_l1_n658(x)
- end
-end
-
-def fun_l0_n577(x)
- if (x < 1)
- fun_l1_n193(x)
- else
- fun_l1_n444(x)
- end
-end
-
-def fun_l0_n578(x)
- if (x < 1)
- fun_l1_n527(x)
- else
- fun_l1_n517(x)
- end
-end
-
-def fun_l0_n579(x)
- if (x < 1)
- fun_l1_n885(x)
- else
- fun_l1_n218(x)
- end
-end
-
-def fun_l0_n580(x)
- if (x < 1)
- fun_l1_n789(x)
- else
- fun_l1_n711(x)
- end
-end
-
-def fun_l0_n581(x)
- if (x < 1)
- fun_l1_n848(x)
- else
- fun_l1_n321(x)
- end
-end
-
-def fun_l0_n582(x)
- if (x < 1)
- fun_l1_n389(x)
- else
- fun_l1_n360(x)
- end
-end
-
-def fun_l0_n583(x)
- if (x < 1)
- fun_l1_n319(x)
- else
- fun_l1_n972(x)
- end
-end
-
-def fun_l0_n584(x)
- if (x < 1)
- fun_l1_n421(x)
- else
- fun_l1_n659(x)
- end
-end
-
-def fun_l0_n585(x)
- if (x < 1)
- fun_l1_n462(x)
- else
- fun_l1_n302(x)
- end
-end
-
-def fun_l0_n586(x)
- if (x < 1)
- fun_l1_n122(x)
- else
- fun_l1_n50(x)
- end
-end
-
-def fun_l0_n587(x)
- if (x < 1)
- fun_l1_n795(x)
- else
- fun_l1_n622(x)
- end
-end
-
-def fun_l0_n588(x)
- if (x < 1)
- fun_l1_n719(x)
- else
- fun_l1_n390(x)
- end
-end
-
-def fun_l0_n589(x)
- if (x < 1)
- fun_l1_n916(x)
- else
- fun_l1_n925(x)
- end
-end
-
-def fun_l0_n590(x)
- if (x < 1)
- fun_l1_n541(x)
- else
- fun_l1_n139(x)
- end
-end
-
-def fun_l0_n591(x)
- if (x < 1)
- fun_l1_n610(x)
- else
- fun_l1_n509(x)
- end
-end
-
-def fun_l0_n592(x)
- if (x < 1)
- fun_l1_n217(x)
- else
- fun_l1_n452(x)
- end
-end
-
-def fun_l0_n593(x)
- if (x < 1)
- fun_l1_n456(x)
- else
- fun_l1_n888(x)
- end
-end
-
-def fun_l0_n594(x)
- if (x < 1)
- fun_l1_n987(x)
- else
- fun_l1_n462(x)
- end
-end
-
-def fun_l0_n595(x)
- if (x < 1)
- fun_l1_n571(x)
- else
- fun_l1_n429(x)
- end
-end
-
-def fun_l0_n596(x)
- if (x < 1)
- fun_l1_n751(x)
- else
- fun_l1_n773(x)
- end
-end
-
-def fun_l0_n597(x)
- if (x < 1)
- fun_l1_n181(x)
- else
- fun_l1_n340(x)
- end
-end
-
-def fun_l0_n598(x)
- if (x < 1)
- fun_l1_n6(x)
- else
- fun_l1_n39(x)
- end
-end
-
-def fun_l0_n599(x)
- if (x < 1)
- fun_l1_n814(x)
- else
- fun_l1_n320(x)
- end
-end
-
-def fun_l0_n600(x)
- if (x < 1)
- fun_l1_n931(x)
- else
- fun_l1_n535(x)
- end
-end
-
-def fun_l0_n601(x)
- if (x < 1)
- fun_l1_n99(x)
- else
- fun_l1_n154(x)
- end
-end
-
-def fun_l0_n602(x)
- if (x < 1)
- fun_l1_n981(x)
- else
- fun_l1_n817(x)
- end
-end
-
-def fun_l0_n603(x)
- if (x < 1)
- fun_l1_n975(x)
- else
- fun_l1_n364(x)
- end
-end
-
-def fun_l0_n604(x)
- if (x < 1)
- fun_l1_n112(x)
- else
- fun_l1_n226(x)
- end
-end
-
-def fun_l0_n605(x)
- if (x < 1)
- fun_l1_n995(x)
- else
- fun_l1_n95(x)
- end
-end
-
-def fun_l0_n606(x)
- if (x < 1)
- fun_l1_n930(x)
- else
- fun_l1_n77(x)
- end
-end
-
-def fun_l0_n607(x)
- if (x < 1)
- fun_l1_n899(x)
- else
- fun_l1_n957(x)
- end
-end
-
-def fun_l0_n608(x)
- if (x < 1)
- fun_l1_n844(x)
- else
- fun_l1_n119(x)
- end
-end
-
-def fun_l0_n609(x)
- if (x < 1)
- fun_l1_n861(x)
- else
- fun_l1_n74(x)
- end
-end
-
-def fun_l0_n610(x)
- if (x < 1)
- fun_l1_n521(x)
- else
- fun_l1_n46(x)
- end
-end
-
-def fun_l0_n611(x)
- if (x < 1)
- fun_l1_n258(x)
- else
- fun_l1_n208(x)
- end
-end
-
-def fun_l0_n612(x)
- if (x < 1)
- fun_l1_n620(x)
- else
- fun_l1_n427(x)
- end
-end
-
-def fun_l0_n613(x)
- if (x < 1)
- fun_l1_n583(x)
- else
- fun_l1_n400(x)
- end
-end
-
-def fun_l0_n614(x)
- if (x < 1)
- fun_l1_n933(x)
- else
- fun_l1_n810(x)
- end
-end
-
-def fun_l0_n615(x)
- if (x < 1)
- fun_l1_n154(x)
- else
- fun_l1_n879(x)
- end
-end
-
-def fun_l0_n616(x)
- if (x < 1)
- fun_l1_n715(x)
- else
- fun_l1_n862(x)
- end
-end
-
-def fun_l0_n617(x)
- if (x < 1)
- fun_l1_n178(x)
- else
- fun_l1_n285(x)
- end
-end
-
-def fun_l0_n618(x)
- if (x < 1)
- fun_l1_n458(x)
- else
- fun_l1_n217(x)
- end
-end
-
-def fun_l0_n619(x)
- if (x < 1)
- fun_l1_n655(x)
- else
- fun_l1_n405(x)
- end
-end
-
-def fun_l0_n620(x)
- if (x < 1)
- fun_l1_n470(x)
- else
- fun_l1_n306(x)
- end
-end
-
-def fun_l0_n621(x)
- if (x < 1)
- fun_l1_n755(x)
- else
- fun_l1_n425(x)
- end
-end
-
-def fun_l0_n622(x)
- if (x < 1)
- fun_l1_n426(x)
- else
- fun_l1_n737(x)
- end
-end
-
-def fun_l0_n623(x)
- if (x < 1)
- fun_l1_n79(x)
- else
- fun_l1_n55(x)
- end
-end
-
-def fun_l0_n624(x)
- if (x < 1)
- fun_l1_n437(x)
- else
- fun_l1_n79(x)
- end
-end
-
-def fun_l0_n625(x)
- if (x < 1)
- fun_l1_n691(x)
- else
- fun_l1_n198(x)
- end
-end
-
-def fun_l0_n626(x)
- if (x < 1)
- fun_l1_n703(x)
- else
- fun_l1_n585(x)
- end
-end
-
-def fun_l0_n627(x)
- if (x < 1)
- fun_l1_n966(x)
- else
- fun_l1_n425(x)
- end
-end
-
-def fun_l0_n628(x)
- if (x < 1)
- fun_l1_n516(x)
- else
- fun_l1_n744(x)
- end
-end
-
-def fun_l0_n629(x)
- if (x < 1)
- fun_l1_n40(x)
- else
- fun_l1_n942(x)
- end
-end
-
-def fun_l0_n630(x)
- if (x < 1)
- fun_l1_n528(x)
- else
- fun_l1_n440(x)
- end
-end
-
-def fun_l0_n631(x)
- if (x < 1)
- fun_l1_n139(x)
- else
- fun_l1_n403(x)
- end
-end
-
-def fun_l0_n632(x)
- if (x < 1)
- fun_l1_n421(x)
- else
- fun_l1_n510(x)
- end
-end
-
-def fun_l0_n633(x)
- if (x < 1)
- fun_l1_n718(x)
- else
- fun_l1_n388(x)
- end
-end
-
-def fun_l0_n634(x)
- if (x < 1)
- fun_l1_n67(x)
- else
- fun_l1_n342(x)
- end
-end
-
-def fun_l0_n635(x)
- if (x < 1)
- fun_l1_n943(x)
- else
- fun_l1_n941(x)
- end
-end
-
-def fun_l0_n636(x)
- if (x < 1)
- fun_l1_n170(x)
- else
- fun_l1_n527(x)
- end
-end
-
-def fun_l0_n637(x)
- if (x < 1)
- fun_l1_n336(x)
- else
- fun_l1_n496(x)
- end
-end
-
-def fun_l0_n638(x)
- if (x < 1)
- fun_l1_n730(x)
- else
- fun_l1_n10(x)
- end
-end
-
-def fun_l0_n639(x)
- if (x < 1)
- fun_l1_n939(x)
- else
- fun_l1_n940(x)
- end
-end
-
-def fun_l0_n640(x)
- if (x < 1)
- fun_l1_n73(x)
- else
- fun_l1_n439(x)
- end
-end
-
-def fun_l0_n641(x)
- if (x < 1)
- fun_l1_n460(x)
- else
- fun_l1_n828(x)
- end
-end
-
-def fun_l0_n642(x)
- if (x < 1)
- fun_l1_n90(x)
- else
- fun_l1_n113(x)
- end
-end
-
-def fun_l0_n643(x)
- if (x < 1)
- fun_l1_n972(x)
- else
- fun_l1_n15(x)
- end
-end
-
-def fun_l0_n644(x)
- if (x < 1)
- fun_l1_n417(x)
- else
- fun_l1_n228(x)
- end
-end
-
-def fun_l0_n645(x)
- if (x < 1)
- fun_l1_n876(x)
- else
- fun_l1_n152(x)
- end
-end
-
-def fun_l0_n646(x)
- if (x < 1)
- fun_l1_n404(x)
- else
- fun_l1_n147(x)
- end
-end
-
-def fun_l0_n647(x)
- if (x < 1)
- fun_l1_n802(x)
- else
- fun_l1_n824(x)
- end
-end
-
-def fun_l0_n648(x)
- if (x < 1)
- fun_l1_n771(x)
- else
- fun_l1_n421(x)
- end
-end
-
-def fun_l0_n649(x)
- if (x < 1)
- fun_l1_n807(x)
- else
- fun_l1_n955(x)
- end
-end
-
-def fun_l0_n650(x)
- if (x < 1)
- fun_l1_n221(x)
- else
- fun_l1_n367(x)
- end
-end
-
-def fun_l0_n651(x)
- if (x < 1)
- fun_l1_n955(x)
- else
- fun_l1_n401(x)
- end
-end
-
-def fun_l0_n652(x)
- if (x < 1)
- fun_l1_n203(x)
- else
- fun_l1_n909(x)
- end
-end
-
-def fun_l0_n653(x)
- if (x < 1)
- fun_l1_n154(x)
- else
- fun_l1_n535(x)
- end
-end
-
-def fun_l0_n654(x)
- if (x < 1)
- fun_l1_n420(x)
- else
- fun_l1_n393(x)
- end
-end
-
-def fun_l0_n655(x)
- if (x < 1)
- fun_l1_n232(x)
- else
- fun_l1_n981(x)
- end
-end
-
-def fun_l0_n656(x)
- if (x < 1)
- fun_l1_n873(x)
- else
- fun_l1_n510(x)
- end
-end
-
-def fun_l0_n657(x)
- if (x < 1)
- fun_l1_n919(x)
- else
- fun_l1_n706(x)
- end
-end
-
-def fun_l0_n658(x)
- if (x < 1)
- fun_l1_n429(x)
- else
- fun_l1_n112(x)
- end
-end
-
-def fun_l0_n659(x)
- if (x < 1)
- fun_l1_n547(x)
- else
- fun_l1_n712(x)
- end
-end
-
-def fun_l0_n660(x)
- if (x < 1)
- fun_l1_n498(x)
- else
- fun_l1_n695(x)
- end
-end
-
-def fun_l0_n661(x)
- if (x < 1)
- fun_l1_n801(x)
- else
- fun_l1_n659(x)
- end
-end
-
-def fun_l0_n662(x)
- if (x < 1)
- fun_l1_n796(x)
- else
- fun_l1_n229(x)
- end
-end
-
-def fun_l0_n663(x)
- if (x < 1)
- fun_l1_n11(x)
- else
- fun_l1_n620(x)
- end
-end
-
-def fun_l0_n664(x)
- if (x < 1)
- fun_l1_n652(x)
- else
- fun_l1_n416(x)
- end
-end
-
-def fun_l0_n665(x)
- if (x < 1)
- fun_l1_n655(x)
- else
- fun_l1_n331(x)
- end
-end
-
-def fun_l0_n666(x)
- if (x < 1)
- fun_l1_n846(x)
- else
- fun_l1_n1(x)
- end
-end
-
-def fun_l0_n667(x)
- if (x < 1)
- fun_l1_n55(x)
- else
- fun_l1_n32(x)
- end
-end
-
-def fun_l0_n668(x)
- if (x < 1)
- fun_l1_n241(x)
- else
- fun_l1_n627(x)
- end
-end
-
-def fun_l0_n669(x)
- if (x < 1)
- fun_l1_n234(x)
- else
- fun_l1_n996(x)
- end
-end
-
-def fun_l0_n670(x)
- if (x < 1)
- fun_l1_n235(x)
- else
- fun_l1_n761(x)
- end
-end
-
-def fun_l0_n671(x)
- if (x < 1)
- fun_l1_n990(x)
- else
- fun_l1_n236(x)
- end
-end
-
-def fun_l0_n672(x)
- if (x < 1)
- fun_l1_n970(x)
- else
- fun_l1_n595(x)
- end
-end
-
-def fun_l0_n673(x)
- if (x < 1)
- fun_l1_n294(x)
- else
- fun_l1_n440(x)
- end
-end
-
-def fun_l0_n674(x)
- if (x < 1)
- fun_l1_n597(x)
- else
- fun_l1_n956(x)
- end
-end
-
-def fun_l0_n675(x)
- if (x < 1)
- fun_l1_n942(x)
- else
- fun_l1_n352(x)
- end
-end
-
-def fun_l0_n676(x)
- if (x < 1)
- fun_l1_n309(x)
- else
- fun_l1_n294(x)
- end
-end
-
-def fun_l0_n677(x)
- if (x < 1)
- fun_l1_n752(x)
- else
- fun_l1_n447(x)
- end
-end
-
-def fun_l0_n678(x)
- if (x < 1)
- fun_l1_n890(x)
- else
- fun_l1_n497(x)
- end
-end
-
-def fun_l0_n679(x)
- if (x < 1)
- fun_l1_n808(x)
- else
- fun_l1_n881(x)
- end
-end
-
-def fun_l0_n680(x)
- if (x < 1)
- fun_l1_n966(x)
- else
- fun_l1_n460(x)
- end
-end
-
-def fun_l0_n681(x)
- if (x < 1)
- fun_l1_n104(x)
- else
- fun_l1_n262(x)
- end
-end
-
-def fun_l0_n682(x)
- if (x < 1)
- fun_l1_n425(x)
- else
- fun_l1_n177(x)
- end
-end
-
-def fun_l0_n683(x)
- if (x < 1)
- fun_l1_n15(x)
- else
- fun_l1_n458(x)
- end
-end
-
-def fun_l0_n684(x)
- if (x < 1)
- fun_l1_n760(x)
- else
- fun_l1_n997(x)
- end
-end
-
-def fun_l0_n685(x)
- if (x < 1)
- fun_l1_n496(x)
- else
- fun_l1_n223(x)
- end
-end
-
-def fun_l0_n686(x)
- if (x < 1)
- fun_l1_n363(x)
- else
- fun_l1_n543(x)
- end
-end
-
-def fun_l0_n687(x)
- if (x < 1)
- fun_l1_n758(x)
- else
- fun_l1_n473(x)
- end
-end
-
-def fun_l0_n688(x)
- if (x < 1)
- fun_l1_n854(x)
- else
- fun_l1_n999(x)
- end
-end
-
-def fun_l0_n689(x)
- if (x < 1)
- fun_l1_n336(x)
- else
- fun_l1_n388(x)
- end
-end
-
-def fun_l0_n690(x)
- if (x < 1)
- fun_l1_n930(x)
- else
- fun_l1_n478(x)
- end
-end
-
-def fun_l0_n691(x)
- if (x < 1)
- fun_l1_n423(x)
- else
- fun_l1_n83(x)
- end
-end
-
-def fun_l0_n692(x)
- if (x < 1)
- fun_l1_n797(x)
- else
- fun_l1_n427(x)
- end
-end
-
-def fun_l0_n693(x)
- if (x < 1)
- fun_l1_n907(x)
- else
- fun_l1_n1(x)
- end
-end
-
-def fun_l0_n694(x)
- if (x < 1)
- fun_l1_n601(x)
- else
- fun_l1_n809(x)
- end
-end
-
-def fun_l0_n695(x)
- if (x < 1)
- fun_l1_n252(x)
- else
- fun_l1_n233(x)
- end
-end
-
-def fun_l0_n696(x)
- if (x < 1)
- fun_l1_n36(x)
- else
- fun_l1_n796(x)
- end
-end
-
-def fun_l0_n697(x)
- if (x < 1)
- fun_l1_n893(x)
- else
- fun_l1_n926(x)
- end
-end
-
-def fun_l0_n698(x)
- if (x < 1)
- fun_l1_n511(x)
- else
- fun_l1_n88(x)
- end
-end
-
-def fun_l0_n699(x)
- if (x < 1)
- fun_l1_n573(x)
- else
- fun_l1_n718(x)
- end
-end
-
-def fun_l0_n700(x)
- if (x < 1)
- fun_l1_n475(x)
- else
- fun_l1_n539(x)
- end
-end
-
-def fun_l0_n701(x)
- if (x < 1)
- fun_l1_n238(x)
- else
- fun_l1_n253(x)
- end
-end
-
-def fun_l0_n702(x)
- if (x < 1)
- fun_l1_n731(x)
- else
- fun_l1_n225(x)
- end
-end
-
-def fun_l0_n703(x)
- if (x < 1)
- fun_l1_n594(x)
- else
- fun_l1_n16(x)
- end
-end
-
-def fun_l0_n704(x)
- if (x < 1)
- fun_l1_n732(x)
- else
- fun_l1_n354(x)
- end
-end
-
-def fun_l0_n705(x)
- if (x < 1)
- fun_l1_n812(x)
- else
- fun_l1_n218(x)
- end
-end
-
-def fun_l0_n706(x)
- if (x < 1)
- fun_l1_n731(x)
- else
- fun_l1_n343(x)
- end
-end
-
-def fun_l0_n707(x)
- if (x < 1)
- fun_l1_n134(x)
- else
- fun_l1_n752(x)
- end
-end
-
-def fun_l0_n708(x)
- if (x < 1)
- fun_l1_n899(x)
- else
- fun_l1_n854(x)
- end
-end
-
-def fun_l0_n709(x)
- if (x < 1)
- fun_l1_n120(x)
- else
- fun_l1_n193(x)
- end
-end
-
-def fun_l0_n710(x)
- if (x < 1)
- fun_l1_n22(x)
- else
- fun_l1_n254(x)
- end
-end
-
-def fun_l0_n711(x)
- if (x < 1)
- fun_l1_n527(x)
- else
- fun_l1_n921(x)
- end
-end
-
-def fun_l0_n712(x)
- if (x < 1)
- fun_l1_n820(x)
- else
- fun_l1_n96(x)
- end
-end
-
-def fun_l0_n713(x)
- if (x < 1)
- fun_l1_n145(x)
- else
- fun_l1_n226(x)
- end
-end
-
-def fun_l0_n714(x)
- if (x < 1)
- fun_l1_n643(x)
- else
- fun_l1_n407(x)
- end
-end
-
-def fun_l0_n715(x)
- if (x < 1)
- fun_l1_n349(x)
- else
- fun_l1_n450(x)
- end
-end
-
-def fun_l0_n716(x)
- if (x < 1)
- fun_l1_n954(x)
- else
- fun_l1_n707(x)
- end
-end
-
-def fun_l0_n717(x)
- if (x < 1)
- fun_l1_n723(x)
- else
- fun_l1_n762(x)
- end
-end
-
-def fun_l0_n718(x)
- if (x < 1)
- fun_l1_n299(x)
- else
- fun_l1_n332(x)
- end
-end
-
-def fun_l0_n719(x)
- if (x < 1)
- fun_l1_n493(x)
- else
- fun_l1_n521(x)
- end
-end
-
-def fun_l0_n720(x)
- if (x < 1)
- fun_l1_n39(x)
- else
- fun_l1_n17(x)
- end
-end
-
-def fun_l0_n721(x)
- if (x < 1)
- fun_l1_n297(x)
- else
- fun_l1_n800(x)
- end
-end
-
-def fun_l0_n722(x)
- if (x < 1)
- fun_l1_n758(x)
- else
- fun_l1_n135(x)
- end
-end
-
-def fun_l0_n723(x)
- if (x < 1)
- fun_l1_n471(x)
- else
- fun_l1_n351(x)
- end
-end
-
-def fun_l0_n724(x)
- if (x < 1)
- fun_l1_n381(x)
- else
- fun_l1_n281(x)
- end
-end
-
-def fun_l0_n725(x)
- if (x < 1)
- fun_l1_n624(x)
- else
- fun_l1_n162(x)
- end
-end
-
-def fun_l0_n726(x)
- if (x < 1)
- fun_l1_n143(x)
- else
- fun_l1_n417(x)
- end
-end
-
-def fun_l0_n727(x)
- if (x < 1)
- fun_l1_n623(x)
- else
- fun_l1_n19(x)
- end
-end
-
-def fun_l0_n728(x)
- if (x < 1)
- fun_l1_n687(x)
- else
- fun_l1_n574(x)
- end
-end
-
-def fun_l0_n729(x)
- if (x < 1)
- fun_l1_n225(x)
- else
- fun_l1_n871(x)
- end
-end
-
-def fun_l0_n730(x)
- if (x < 1)
- fun_l1_n830(x)
- else
- fun_l1_n273(x)
- end
-end
-
-def fun_l0_n731(x)
- if (x < 1)
- fun_l1_n95(x)
- else
- fun_l1_n864(x)
- end
-end
-
-def fun_l0_n732(x)
- if (x < 1)
- fun_l1_n902(x)
- else
- fun_l1_n522(x)
- end
-end
-
-def fun_l0_n733(x)
- if (x < 1)
- fun_l1_n564(x)
- else
- fun_l1_n55(x)
- end
-end
-
-def fun_l0_n734(x)
- if (x < 1)
- fun_l1_n481(x)
- else
- fun_l1_n880(x)
- end
-end
-
-def fun_l0_n735(x)
- if (x < 1)
- fun_l1_n87(x)
- else
- fun_l1_n693(x)
- end
-end
-
-def fun_l0_n736(x)
- if (x < 1)
- fun_l1_n72(x)
- else
- fun_l1_n396(x)
- end
-end
-
-def fun_l0_n737(x)
- if (x < 1)
- fun_l1_n920(x)
- else
- fun_l1_n852(x)
- end
-end
-
-def fun_l0_n738(x)
- if (x < 1)
- fun_l1_n342(x)
- else
- fun_l1_n959(x)
- end
-end
-
-def fun_l0_n739(x)
- if (x < 1)
- fun_l1_n682(x)
- else
- fun_l1_n714(x)
- end
-end
-
-def fun_l0_n740(x)
- if (x < 1)
- fun_l1_n264(x)
- else
- fun_l1_n325(x)
- end
-end
-
-def fun_l0_n741(x)
- if (x < 1)
- fun_l1_n621(x)
- else
- fun_l1_n339(x)
- end
-end
-
-def fun_l0_n742(x)
- if (x < 1)
- fun_l1_n46(x)
- else
- fun_l1_n766(x)
- end
-end
-
-def fun_l0_n743(x)
- if (x < 1)
- fun_l1_n333(x)
- else
- fun_l1_n353(x)
- end
-end
-
-def fun_l0_n744(x)
- if (x < 1)
- fun_l1_n930(x)
- else
- fun_l1_n964(x)
- end
-end
-
-def fun_l0_n745(x)
- if (x < 1)
- fun_l1_n785(x)
- else
- fun_l1_n114(x)
- end
-end
-
-def fun_l0_n746(x)
- if (x < 1)
- fun_l1_n402(x)
- else
- fun_l1_n803(x)
- end
-end
-
-def fun_l0_n747(x)
- if (x < 1)
- fun_l1_n878(x)
- else
- fun_l1_n870(x)
- end
-end
-
-def fun_l0_n748(x)
- if (x < 1)
- fun_l1_n683(x)
- else
- fun_l1_n287(x)
- end
-end
-
-def fun_l0_n749(x)
- if (x < 1)
- fun_l1_n816(x)
- else
- fun_l1_n849(x)
- end
-end
-
-def fun_l0_n750(x)
- if (x < 1)
- fun_l1_n523(x)
- else
- fun_l1_n555(x)
- end
-end
-
-def fun_l0_n751(x)
- if (x < 1)
- fun_l1_n270(x)
- else
- fun_l1_n660(x)
- end
-end
-
-def fun_l0_n752(x)
- if (x < 1)
- fun_l1_n786(x)
- else
- fun_l1_n749(x)
- end
-end
-
-def fun_l0_n753(x)
- if (x < 1)
- fun_l1_n567(x)
- else
- fun_l1_n325(x)
- end
-end
-
-def fun_l0_n754(x)
- if (x < 1)
- fun_l1_n502(x)
- else
- fun_l1_n610(x)
- end
-end
-
-def fun_l0_n755(x)
- if (x < 1)
- fun_l1_n336(x)
- else
- fun_l1_n354(x)
- end
-end
-
-def fun_l0_n756(x)
- if (x < 1)
- fun_l1_n435(x)
- else
- fun_l1_n484(x)
- end
-end
-
-def fun_l0_n757(x)
- if (x < 1)
- fun_l1_n849(x)
- else
- fun_l1_n42(x)
- end
-end
-
-def fun_l0_n758(x)
- if (x < 1)
- fun_l1_n294(x)
- else
- fun_l1_n483(x)
- end
-end
-
-def fun_l0_n759(x)
- if (x < 1)
- fun_l1_n14(x)
- else
- fun_l1_n9(x)
- end
-end
-
-def fun_l0_n760(x)
- if (x < 1)
- fun_l1_n860(x)
- else
- fun_l1_n645(x)
- end
-end
-
-def fun_l0_n761(x)
- if (x < 1)
- fun_l1_n577(x)
- else
- fun_l1_n0(x)
- end
-end
-
-def fun_l0_n762(x)
- if (x < 1)
- fun_l1_n28(x)
- else
- fun_l1_n834(x)
- end
-end
-
-def fun_l0_n763(x)
- if (x < 1)
- fun_l1_n147(x)
- else
- fun_l1_n177(x)
- end
-end
-
-def fun_l0_n764(x)
- if (x < 1)
- fun_l1_n429(x)
- else
- fun_l1_n646(x)
- end
-end
-
-def fun_l0_n765(x)
- if (x < 1)
- fun_l1_n474(x)
- else
- fun_l1_n22(x)
- end
-end
-
-def fun_l0_n766(x)
- if (x < 1)
- fun_l1_n264(x)
- else
- fun_l1_n549(x)
- end
-end
-
-def fun_l0_n767(x)
- if (x < 1)
- fun_l1_n351(x)
- else
- fun_l1_n813(x)
- end
-end
-
-def fun_l0_n768(x)
- if (x < 1)
- fun_l1_n798(x)
- else
- fun_l1_n684(x)
- end
-end
-
-def fun_l0_n769(x)
- if (x < 1)
- fun_l1_n202(x)
- else
- fun_l1_n982(x)
- end
-end
-
-def fun_l0_n770(x)
- if (x < 1)
- fun_l1_n611(x)
- else
- fun_l1_n52(x)
- end
-end
-
-def fun_l0_n771(x)
- if (x < 1)
- fun_l1_n754(x)
- else
- fun_l1_n7(x)
- end
-end
-
-def fun_l0_n772(x)
- if (x < 1)
- fun_l1_n98(x)
- else
- fun_l1_n149(x)
- end
-end
-
-def fun_l0_n773(x)
- if (x < 1)
- fun_l1_n358(x)
- else
- fun_l1_n603(x)
- end
-end
-
-def fun_l0_n774(x)
- if (x < 1)
- fun_l1_n604(x)
- else
- fun_l1_n318(x)
- end
-end
-
-def fun_l0_n775(x)
- if (x < 1)
- fun_l1_n831(x)
- else
- fun_l1_n635(x)
- end
-end
-
-def fun_l0_n776(x)
- if (x < 1)
- fun_l1_n738(x)
- else
- fun_l1_n563(x)
- end
-end
-
-def fun_l0_n777(x)
- if (x < 1)
- fun_l1_n570(x)
- else
- fun_l1_n671(x)
- end
-end
-
-def fun_l0_n778(x)
- if (x < 1)
- fun_l1_n945(x)
- else
- fun_l1_n840(x)
- end
-end
-
-def fun_l0_n779(x)
- if (x < 1)
- fun_l1_n116(x)
- else
- fun_l1_n942(x)
- end
-end
-
-def fun_l0_n780(x)
- if (x < 1)
- fun_l1_n835(x)
- else
- fun_l1_n244(x)
- end
-end
-
-def fun_l0_n781(x)
- if (x < 1)
- fun_l1_n427(x)
- else
- fun_l1_n556(x)
- end
-end
-
-def fun_l0_n782(x)
- if (x < 1)
- fun_l1_n280(x)
- else
- fun_l1_n926(x)
- end
-end
-
-def fun_l0_n783(x)
- if (x < 1)
- fun_l1_n674(x)
- else
- fun_l1_n560(x)
- end
-end
-
-def fun_l0_n784(x)
- if (x < 1)
- fun_l1_n978(x)
- else
- fun_l1_n139(x)
- end
-end
-
-def fun_l0_n785(x)
- if (x < 1)
- fun_l1_n928(x)
- else
- fun_l1_n11(x)
- end
-end
-
-def fun_l0_n786(x)
- if (x < 1)
- fun_l1_n829(x)
- else
- fun_l1_n239(x)
- end
-end
-
-def fun_l0_n787(x)
- if (x < 1)
- fun_l1_n732(x)
- else
- fun_l1_n829(x)
- end
-end
-
-def fun_l0_n788(x)
- if (x < 1)
- fun_l1_n968(x)
- else
- fun_l1_n596(x)
- end
-end
-
-def fun_l0_n789(x)
- if (x < 1)
- fun_l1_n214(x)
- else
- fun_l1_n158(x)
- end
-end
-
-def fun_l0_n790(x)
- if (x < 1)
- fun_l1_n566(x)
- else
- fun_l1_n390(x)
- end
-end
-
-def fun_l0_n791(x)
- if (x < 1)
- fun_l1_n936(x)
- else
- fun_l1_n31(x)
- end
-end
-
-def fun_l0_n792(x)
- if (x < 1)
- fun_l1_n291(x)
- else
- fun_l1_n835(x)
- end
-end
-
-def fun_l0_n793(x)
- if (x < 1)
- fun_l1_n300(x)
- else
- fun_l1_n658(x)
- end
-end
-
-def fun_l0_n794(x)
- if (x < 1)
- fun_l1_n609(x)
- else
- fun_l1_n156(x)
- end
-end
-
-def fun_l0_n795(x)
- if (x < 1)
- fun_l1_n419(x)
- else
- fun_l1_n534(x)
- end
-end
-
-def fun_l0_n796(x)
- if (x < 1)
- fun_l1_n401(x)
- else
- fun_l1_n281(x)
- end
-end
-
-def fun_l0_n797(x)
- if (x < 1)
- fun_l1_n538(x)
- else
- fun_l1_n905(x)
- end
-end
-
-def fun_l0_n798(x)
- if (x < 1)
- fun_l1_n427(x)
- else
- fun_l1_n978(x)
- end
-end
-
-def fun_l0_n799(x)
- if (x < 1)
- fun_l1_n851(x)
- else
- fun_l1_n57(x)
- end
-end
-
-def fun_l0_n800(x)
- if (x < 1)
- fun_l1_n836(x)
- else
- fun_l1_n306(x)
- end
-end
-
-def fun_l0_n801(x)
- if (x < 1)
- fun_l1_n414(x)
- else
- fun_l1_n679(x)
- end
-end
-
-def fun_l0_n802(x)
- if (x < 1)
- fun_l1_n645(x)
- else
- fun_l1_n115(x)
- end
-end
-
-def fun_l0_n803(x)
- if (x < 1)
- fun_l1_n884(x)
- else
- fun_l1_n801(x)
- end
-end
-
-def fun_l0_n804(x)
- if (x < 1)
- fun_l1_n713(x)
- else
- fun_l1_n974(x)
- end
-end
-
-def fun_l0_n805(x)
- if (x < 1)
- fun_l1_n301(x)
- else
- fun_l1_n589(x)
- end
-end
-
-def fun_l0_n806(x)
- if (x < 1)
- fun_l1_n912(x)
- else
- fun_l1_n766(x)
- end
-end
-
-def fun_l0_n807(x)
- if (x < 1)
- fun_l1_n656(x)
- else
- fun_l1_n765(x)
- end
-end
-
-def fun_l0_n808(x)
- if (x < 1)
- fun_l1_n517(x)
- else
- fun_l1_n964(x)
- end
-end
-
-def fun_l0_n809(x)
- if (x < 1)
- fun_l1_n878(x)
- else
- fun_l1_n69(x)
- end
-end
-
-def fun_l0_n810(x)
- if (x < 1)
- fun_l1_n527(x)
- else
- fun_l1_n841(x)
- end
-end
-
-def fun_l0_n811(x)
- if (x < 1)
- fun_l1_n564(x)
- else
- fun_l1_n541(x)
- end
-end
-
-def fun_l0_n812(x)
- if (x < 1)
- fun_l1_n754(x)
- else
- fun_l1_n681(x)
- end
-end
-
-def fun_l0_n813(x)
- if (x < 1)
- fun_l1_n21(x)
- else
- fun_l1_n561(x)
- end
-end
-
-def fun_l0_n814(x)
- if (x < 1)
- fun_l1_n547(x)
- else
- fun_l1_n631(x)
- end
-end
-
-def fun_l0_n815(x)
- if (x < 1)
- fun_l1_n956(x)
- else
- fun_l1_n889(x)
- end
-end
-
-def fun_l0_n816(x)
- if (x < 1)
- fun_l1_n817(x)
- else
- fun_l1_n957(x)
- end
-end
-
-def fun_l0_n817(x)
- if (x < 1)
- fun_l1_n622(x)
- else
- fun_l1_n827(x)
- end
-end
-
-def fun_l0_n818(x)
- if (x < 1)
- fun_l1_n7(x)
- else
- fun_l1_n208(x)
- end
-end
-
-def fun_l0_n819(x)
- if (x < 1)
- fun_l1_n411(x)
- else
- fun_l1_n742(x)
- end
-end
-
-def fun_l0_n820(x)
- if (x < 1)
- fun_l1_n676(x)
- else
- fun_l1_n144(x)
- end
-end
-
-def fun_l0_n821(x)
- if (x < 1)
- fun_l1_n489(x)
- else
- fun_l1_n963(x)
- end
-end
-
-def fun_l0_n822(x)
- if (x < 1)
- fun_l1_n645(x)
- else
- fun_l1_n953(x)
- end
-end
-
-def fun_l0_n823(x)
- if (x < 1)
- fun_l1_n974(x)
- else
- fun_l1_n75(x)
- end
-end
-
-def fun_l0_n824(x)
- if (x < 1)
- fun_l1_n295(x)
- else
- fun_l1_n249(x)
- end
-end
-
-def fun_l0_n825(x)
- if (x < 1)
- fun_l1_n141(x)
- else
- fun_l1_n633(x)
- end
-end
-
-def fun_l0_n826(x)
- if (x < 1)
- fun_l1_n317(x)
- else
- fun_l1_n152(x)
- end
-end
-
-def fun_l0_n827(x)
- if (x < 1)
- fun_l1_n570(x)
- else
- fun_l1_n377(x)
- end
-end
-
-def fun_l0_n828(x)
- if (x < 1)
- fun_l1_n392(x)
- else
- fun_l1_n477(x)
- end
-end
-
-def fun_l0_n829(x)
- if (x < 1)
- fun_l1_n277(x)
- else
- fun_l1_n276(x)
- end
-end
-
-def fun_l0_n830(x)
- if (x < 1)
- fun_l1_n579(x)
- else
- fun_l1_n648(x)
- end
-end
-
-def fun_l0_n831(x)
- if (x < 1)
- fun_l1_n8(x)
- else
- fun_l1_n25(x)
- end
-end
-
-def fun_l0_n832(x)
- if (x < 1)
- fun_l1_n724(x)
- else
- fun_l1_n617(x)
- end
-end
-
-def fun_l0_n833(x)
- if (x < 1)
- fun_l1_n771(x)
- else
- fun_l1_n619(x)
- end
-end
-
-def fun_l0_n834(x)
- if (x < 1)
- fun_l1_n23(x)
- else
- fun_l1_n127(x)
- end
-end
-
-def fun_l0_n835(x)
- if (x < 1)
- fun_l1_n322(x)
- else
- fun_l1_n327(x)
- end
-end
-
-def fun_l0_n836(x)
- if (x < 1)
- fun_l1_n7(x)
- else
- fun_l1_n600(x)
- end
-end
-
-def fun_l0_n837(x)
- if (x < 1)
- fun_l1_n796(x)
- else
- fun_l1_n782(x)
- end
-end
-
-def fun_l0_n838(x)
- if (x < 1)
- fun_l1_n937(x)
- else
- fun_l1_n899(x)
- end
-end
-
-def fun_l0_n839(x)
- if (x < 1)
- fun_l1_n16(x)
- else
- fun_l1_n349(x)
- end
-end
-
-def fun_l0_n840(x)
- if (x < 1)
- fun_l1_n622(x)
- else
- fun_l1_n960(x)
- end
-end
-
-def fun_l0_n841(x)
- if (x < 1)
- fun_l1_n295(x)
- else
- fun_l1_n176(x)
- end
-end
-
-def fun_l0_n842(x)
- if (x < 1)
- fun_l1_n302(x)
- else
- fun_l1_n639(x)
- end
-end
-
-def fun_l0_n843(x)
- if (x < 1)
- fun_l1_n342(x)
- else
- fun_l1_n373(x)
- end
-end
-
-def fun_l0_n844(x)
- if (x < 1)
- fun_l1_n5(x)
- else
- fun_l1_n787(x)
- end
-end
-
-def fun_l0_n845(x)
- if (x < 1)
- fun_l1_n89(x)
- else
- fun_l1_n951(x)
- end
-end
-
-def fun_l0_n846(x)
- if (x < 1)
- fun_l1_n954(x)
- else
- fun_l1_n982(x)
- end
-end
-
-def fun_l0_n847(x)
- if (x < 1)
- fun_l1_n971(x)
- else
- fun_l1_n917(x)
- end
-end
-
-def fun_l0_n848(x)
- if (x < 1)
- fun_l1_n845(x)
- else
- fun_l1_n343(x)
- end
-end
-
-def fun_l0_n849(x)
- if (x < 1)
- fun_l1_n684(x)
- else
- fun_l1_n683(x)
- end
-end
-
-def fun_l0_n850(x)
- if (x < 1)
- fun_l1_n670(x)
- else
- fun_l1_n256(x)
- end
-end
-
-def fun_l0_n851(x)
- if (x < 1)
- fun_l1_n405(x)
- else
- fun_l1_n123(x)
- end
-end
-
-def fun_l0_n852(x)
- if (x < 1)
- fun_l1_n809(x)
- else
- fun_l1_n691(x)
- end
-end
-
-def fun_l0_n853(x)
- if (x < 1)
- fun_l1_n937(x)
- else
- fun_l1_n92(x)
- end
-end
-
-def fun_l0_n854(x)
- if (x < 1)
- fun_l1_n735(x)
- else
- fun_l1_n948(x)
- end
-end
-
-def fun_l0_n855(x)
- if (x < 1)
- fun_l1_n684(x)
- else
- fun_l1_n566(x)
- end
-end
-
-def fun_l0_n856(x)
- if (x < 1)
- fun_l1_n508(x)
- else
- fun_l1_n35(x)
- end
-end
-
-def fun_l0_n857(x)
- if (x < 1)
- fun_l1_n865(x)
- else
- fun_l1_n930(x)
- end
-end
-
-def fun_l0_n858(x)
- if (x < 1)
- fun_l1_n937(x)
- else
- fun_l1_n241(x)
- end
-end
-
-def fun_l0_n859(x)
- if (x < 1)
- fun_l1_n938(x)
- else
- fun_l1_n108(x)
- end
-end
-
-def fun_l0_n860(x)
- if (x < 1)
- fun_l1_n491(x)
- else
- fun_l1_n119(x)
- end
-end
-
-def fun_l0_n861(x)
- if (x < 1)
- fun_l1_n991(x)
- else
- fun_l1_n198(x)
- end
-end
-
-def fun_l0_n862(x)
- if (x < 1)
- fun_l1_n846(x)
- else
- fun_l1_n513(x)
- end
-end
-
-def fun_l0_n863(x)
- if (x < 1)
- fun_l1_n279(x)
- else
- fun_l1_n229(x)
- end
-end
-
-def fun_l0_n864(x)
- if (x < 1)
- fun_l1_n52(x)
- else
- fun_l1_n765(x)
- end
-end
-
-def fun_l0_n865(x)
- if (x < 1)
- fun_l1_n35(x)
- else
- fun_l1_n572(x)
- end
-end
-
-def fun_l0_n866(x)
- if (x < 1)
- fun_l1_n4(x)
- else
- fun_l1_n645(x)
- end
-end
-
-def fun_l0_n867(x)
- if (x < 1)
- fun_l1_n112(x)
- else
- fun_l1_n758(x)
- end
-end
-
-def fun_l0_n868(x)
- if (x < 1)
- fun_l1_n924(x)
- else
- fun_l1_n251(x)
- end
-end
-
-def fun_l0_n869(x)
- if (x < 1)
- fun_l1_n558(x)
- else
- fun_l1_n818(x)
- end
-end
-
-def fun_l0_n870(x)
- if (x < 1)
- fun_l1_n804(x)
- else
- fun_l1_n746(x)
- end
-end
-
-def fun_l0_n871(x)
- if (x < 1)
- fun_l1_n111(x)
- else
- fun_l1_n407(x)
- end
-end
-
-def fun_l0_n872(x)
- if (x < 1)
- fun_l1_n973(x)
- else
- fun_l1_n384(x)
- end
-end
-
-def fun_l0_n873(x)
- if (x < 1)
- fun_l1_n102(x)
- else
- fun_l1_n199(x)
- end
-end
-
-def fun_l0_n874(x)
- if (x < 1)
- fun_l1_n735(x)
- else
- fun_l1_n903(x)
- end
-end
-
-def fun_l0_n875(x)
- if (x < 1)
- fun_l1_n95(x)
- else
- fun_l1_n720(x)
- end
-end
-
-def fun_l0_n876(x)
- if (x < 1)
- fun_l1_n864(x)
- else
- fun_l1_n970(x)
- end
-end
-
-def fun_l0_n877(x)
- if (x < 1)
- fun_l1_n729(x)
- else
- fun_l1_n207(x)
- end
-end
-
-def fun_l0_n878(x)
- if (x < 1)
- fun_l1_n104(x)
- else
- fun_l1_n209(x)
- end
-end
-
-def fun_l0_n879(x)
- if (x < 1)
- fun_l1_n566(x)
- else
- fun_l1_n918(x)
- end
-end
-
-def fun_l0_n880(x)
- if (x < 1)
- fun_l1_n457(x)
- else
- fun_l1_n104(x)
- end
-end
-
-def fun_l0_n881(x)
- if (x < 1)
- fun_l1_n745(x)
- else
- fun_l1_n476(x)
- end
-end
-
-def fun_l0_n882(x)
- if (x < 1)
- fun_l1_n346(x)
- else
- fun_l1_n642(x)
- end
-end
-
-def fun_l0_n883(x)
- if (x < 1)
- fun_l1_n78(x)
- else
- fun_l1_n210(x)
- end
-end
-
-def fun_l0_n884(x)
- if (x < 1)
- fun_l1_n864(x)
- else
- fun_l1_n439(x)
- end
-end
-
-def fun_l0_n885(x)
- if (x < 1)
- fun_l1_n0(x)
- else
- fun_l1_n414(x)
- end
-end
-
-def fun_l0_n886(x)
- if (x < 1)
- fun_l1_n217(x)
- else
- fun_l1_n444(x)
- end
-end
-
-def fun_l0_n887(x)
- if (x < 1)
- fun_l1_n193(x)
- else
- fun_l1_n788(x)
- end
-end
-
-def fun_l0_n888(x)
- if (x < 1)
- fun_l1_n30(x)
- else
- fun_l1_n793(x)
- end
-end
-
-def fun_l0_n889(x)
- if (x < 1)
- fun_l1_n222(x)
- else
- fun_l1_n936(x)
- end
-end
-
-def fun_l0_n890(x)
- if (x < 1)
- fun_l1_n758(x)
- else
- fun_l1_n52(x)
- end
-end
-
-def fun_l0_n891(x)
- if (x < 1)
- fun_l1_n796(x)
- else
- fun_l1_n424(x)
- end
-end
-
-def fun_l0_n892(x)
- if (x < 1)
- fun_l1_n627(x)
- else
- fun_l1_n284(x)
- end
-end
-
-def fun_l0_n893(x)
- if (x < 1)
- fun_l1_n42(x)
- else
- fun_l1_n193(x)
- end
-end
-
-def fun_l0_n894(x)
- if (x < 1)
- fun_l1_n90(x)
- else
- fun_l1_n158(x)
- end
-end
-
-def fun_l0_n895(x)
- if (x < 1)
- fun_l1_n878(x)
- else
- fun_l1_n396(x)
- end
-end
-
-def fun_l0_n896(x)
- if (x < 1)
- fun_l1_n665(x)
- else
- fun_l1_n731(x)
- end
-end
-
-def fun_l0_n897(x)
- if (x < 1)
- fun_l1_n618(x)
- else
- fun_l1_n152(x)
- end
-end
-
-def fun_l0_n898(x)
- if (x < 1)
- fun_l1_n64(x)
- else
- fun_l1_n697(x)
- end
-end
-
-def fun_l0_n899(x)
- if (x < 1)
- fun_l1_n354(x)
- else
- fun_l1_n657(x)
- end
-end
-
-def fun_l0_n900(x)
- if (x < 1)
- fun_l1_n79(x)
- else
- fun_l1_n794(x)
- end
-end
-
-def fun_l0_n901(x)
- if (x < 1)
- fun_l1_n623(x)
- else
- fun_l1_n392(x)
- end
-end
-
-def fun_l0_n902(x)
- if (x < 1)
- fun_l1_n529(x)
- else
- fun_l1_n708(x)
- end
-end
-
-def fun_l0_n903(x)
- if (x < 1)
- fun_l1_n900(x)
- else
- fun_l1_n830(x)
- end
-end
-
-def fun_l0_n904(x)
- if (x < 1)
- fun_l1_n424(x)
- else
- fun_l1_n564(x)
- end
-end
-
-def fun_l0_n905(x)
- if (x < 1)
- fun_l1_n557(x)
- else
- fun_l1_n612(x)
- end
-end
-
-def fun_l0_n906(x)
- if (x < 1)
- fun_l1_n725(x)
- else
- fun_l1_n166(x)
- end
-end
-
-def fun_l0_n907(x)
- if (x < 1)
- fun_l1_n534(x)
- else
- fun_l1_n159(x)
- end
-end
-
-def fun_l0_n908(x)
- if (x < 1)
- fun_l1_n50(x)
- else
- fun_l1_n201(x)
- end
-end
-
-def fun_l0_n909(x)
- if (x < 1)
- fun_l1_n568(x)
- else
- fun_l1_n276(x)
- end
-end
-
-def fun_l0_n910(x)
- if (x < 1)
- fun_l1_n0(x)
- else
- fun_l1_n324(x)
- end
-end
-
-def fun_l0_n911(x)
- if (x < 1)
- fun_l1_n926(x)
- else
- fun_l1_n524(x)
- end
-end
-
-def fun_l0_n912(x)
- if (x < 1)
- fun_l1_n498(x)
- else
- fun_l1_n650(x)
- end
-end
-
-def fun_l0_n913(x)
- if (x < 1)
- fun_l1_n593(x)
- else
- fun_l1_n860(x)
- end
-end
-
-def fun_l0_n914(x)
- if (x < 1)
- fun_l1_n726(x)
- else
- fun_l1_n440(x)
- end
-end
-
-def fun_l0_n915(x)
- if (x < 1)
- fun_l1_n422(x)
- else
- fun_l1_n627(x)
- end
-end
-
-def fun_l0_n916(x)
- if (x < 1)
- fun_l1_n346(x)
- else
- fun_l1_n932(x)
- end
-end
-
-def fun_l0_n917(x)
- if (x < 1)
- fun_l1_n403(x)
- else
- fun_l1_n58(x)
- end
-end
-
-def fun_l0_n918(x)
- if (x < 1)
- fun_l1_n989(x)
- else
- fun_l1_n579(x)
- end
-end
-
-def fun_l0_n919(x)
- if (x < 1)
- fun_l1_n933(x)
- else
- fun_l1_n434(x)
- end
-end
-
-def fun_l0_n920(x)
- if (x < 1)
- fun_l1_n899(x)
- else
- fun_l1_n377(x)
- end
-end
-
-def fun_l0_n921(x)
- if (x < 1)
- fun_l1_n17(x)
- else
- fun_l1_n637(x)
- end
-end
-
-def fun_l0_n922(x)
- if (x < 1)
- fun_l1_n551(x)
- else
- fun_l1_n693(x)
- end
-end
-
-def fun_l0_n923(x)
- if (x < 1)
- fun_l1_n861(x)
- else
- fun_l1_n248(x)
- end
-end
-
-def fun_l0_n924(x)
- if (x < 1)
- fun_l1_n171(x)
- else
- fun_l1_n75(x)
- end
-end
-
-def fun_l0_n925(x)
- if (x < 1)
- fun_l1_n233(x)
- else
- fun_l1_n444(x)
- end
-end
-
-def fun_l0_n926(x)
- if (x < 1)
- fun_l1_n310(x)
- else
- fun_l1_n941(x)
- end
-end
-
-def fun_l0_n927(x)
- if (x < 1)
- fun_l1_n363(x)
- else
- fun_l1_n567(x)
- end
-end
-
-def fun_l0_n928(x)
- if (x < 1)
- fun_l1_n632(x)
- else
- fun_l1_n840(x)
- end
-end
-
-def fun_l0_n929(x)
- if (x < 1)
- fun_l1_n368(x)
- else
- fun_l1_n713(x)
- end
-end
-
-def fun_l0_n930(x)
- if (x < 1)
- fun_l1_n37(x)
- else
- fun_l1_n355(x)
- end
-end
-
-def fun_l0_n931(x)
- if (x < 1)
- fun_l1_n907(x)
- else
- fun_l1_n784(x)
- end
-end
-
-def fun_l0_n932(x)
- if (x < 1)
- fun_l1_n591(x)
- else
- fun_l1_n844(x)
- end
-end
-
-def fun_l0_n933(x)
- if (x < 1)
- fun_l1_n996(x)
- else
- fun_l1_n943(x)
- end
-end
-
-def fun_l0_n934(x)
- if (x < 1)
- fun_l1_n631(x)
- else
- fun_l1_n643(x)
- end
-end
-
-def fun_l0_n935(x)
- if (x < 1)
- fun_l1_n875(x)
- else
- fun_l1_n89(x)
- end
-end
-
-def fun_l0_n936(x)
- if (x < 1)
- fun_l1_n842(x)
- else
- fun_l1_n595(x)
- end
-end
-
-def fun_l0_n937(x)
- if (x < 1)
- fun_l1_n921(x)
- else
- fun_l1_n271(x)
- end
-end
-
-def fun_l0_n938(x)
- if (x < 1)
- fun_l1_n222(x)
- else
- fun_l1_n170(x)
- end
-end
-
-def fun_l0_n939(x)
- if (x < 1)
- fun_l1_n567(x)
- else
- fun_l1_n463(x)
- end
-end
-
-def fun_l0_n940(x)
- if (x < 1)
- fun_l1_n456(x)
- else
- fun_l1_n192(x)
- end
-end
-
-def fun_l0_n941(x)
- if (x < 1)
- fun_l1_n32(x)
- else
- fun_l1_n951(x)
- end
-end
-
-def fun_l0_n942(x)
- if (x < 1)
- fun_l1_n14(x)
- else
- fun_l1_n135(x)
- end
-end
-
-def fun_l0_n943(x)
- if (x < 1)
- fun_l1_n15(x)
- else
- fun_l1_n234(x)
- end
-end
-
-def fun_l0_n944(x)
- if (x < 1)
- fun_l1_n119(x)
- else
- fun_l1_n33(x)
- end
-end
-
-def fun_l0_n945(x)
- if (x < 1)
- fun_l1_n859(x)
- else
- fun_l1_n497(x)
- end
-end
-
-def fun_l0_n946(x)
- if (x < 1)
- fun_l1_n178(x)
- else
- fun_l1_n369(x)
- end
-end
-
-def fun_l0_n947(x)
- if (x < 1)
- fun_l1_n64(x)
- else
- fun_l1_n356(x)
- end
-end
-
-def fun_l0_n948(x)
- if (x < 1)
- fun_l1_n279(x)
- else
- fun_l1_n244(x)
- end
-end
-
-def fun_l0_n949(x)
- if (x < 1)
- fun_l1_n728(x)
- else
- fun_l1_n548(x)
- end
-end
-
-def fun_l0_n950(x)
- if (x < 1)
- fun_l1_n3(x)
- else
- fun_l1_n698(x)
- end
-end
-
-def fun_l0_n951(x)
- if (x < 1)
- fun_l1_n665(x)
- else
- fun_l1_n198(x)
- end
-end
-
-def fun_l0_n952(x)
- if (x < 1)
- fun_l1_n812(x)
- else
- fun_l1_n964(x)
- end
-end
-
-def fun_l0_n953(x)
- if (x < 1)
- fun_l1_n851(x)
- else
- fun_l1_n877(x)
- end
-end
-
-def fun_l0_n954(x)
- if (x < 1)
- fun_l1_n415(x)
- else
- fun_l1_n379(x)
- end
-end
-
-def fun_l0_n955(x)
- if (x < 1)
- fun_l1_n806(x)
- else
- fun_l1_n919(x)
- end
-end
-
-def fun_l0_n956(x)
- if (x < 1)
- fun_l1_n207(x)
- else
- fun_l1_n798(x)
- end
-end
-
-def fun_l0_n957(x)
- if (x < 1)
- fun_l1_n269(x)
- else
- fun_l1_n416(x)
- end
-end
-
-def fun_l0_n958(x)
- if (x < 1)
- fun_l1_n654(x)
- else
- fun_l1_n236(x)
- end
-end
-
-def fun_l0_n959(x)
- if (x < 1)
- fun_l1_n392(x)
- else
- fun_l1_n623(x)
- end
-end
-
-def fun_l0_n960(x)
- if (x < 1)
- fun_l1_n889(x)
- else
- fun_l1_n279(x)
- end
-end
-
-def fun_l0_n961(x)
- if (x < 1)
- fun_l1_n476(x)
- else
- fun_l1_n201(x)
- end
-end
-
-def fun_l0_n962(x)
- if (x < 1)
- fun_l1_n799(x)
- else
- fun_l1_n570(x)
- end
-end
-
-def fun_l0_n963(x)
- if (x < 1)
- fun_l1_n802(x)
- else
- fun_l1_n114(x)
- end
-end
-
-def fun_l0_n964(x)
- if (x < 1)
- fun_l1_n197(x)
- else
- fun_l1_n422(x)
- end
-end
-
-def fun_l0_n965(x)
- if (x < 1)
- fun_l1_n37(x)
- else
- fun_l1_n691(x)
- end
-end
-
-def fun_l0_n966(x)
- if (x < 1)
- fun_l1_n775(x)
- else
- fun_l1_n854(x)
- end
-end
-
-def fun_l0_n967(x)
- if (x < 1)
- fun_l1_n373(x)
- else
- fun_l1_n306(x)
- end
-end
-
-def fun_l0_n968(x)
- if (x < 1)
- fun_l1_n154(x)
- else
- fun_l1_n122(x)
- end
-end
-
-def fun_l0_n969(x)
- if (x < 1)
- fun_l1_n497(x)
- else
- fun_l1_n456(x)
- end
-end
-
-def fun_l0_n970(x)
- if (x < 1)
- fun_l1_n621(x)
- else
- fun_l1_n931(x)
- end
-end
-
-def fun_l0_n971(x)
- if (x < 1)
- fun_l1_n963(x)
- else
- fun_l1_n613(x)
- end
-end
-
-def fun_l0_n972(x)
- if (x < 1)
- fun_l1_n613(x)
- else
- fun_l1_n508(x)
- end
-end
-
-def fun_l0_n973(x)
- if (x < 1)
- fun_l1_n466(x)
- else
- fun_l1_n929(x)
- end
-end
-
-def fun_l0_n974(x)
- if (x < 1)
- fun_l1_n247(x)
- else
- fun_l1_n610(x)
- end
-end
-
-def fun_l0_n975(x)
- if (x < 1)
- fun_l1_n674(x)
- else
- fun_l1_n609(x)
- end
-end
-
-def fun_l0_n976(x)
- if (x < 1)
- fun_l1_n963(x)
- else
- fun_l1_n601(x)
- end
-end
-
-def fun_l0_n977(x)
- if (x < 1)
- fun_l1_n728(x)
- else
- fun_l1_n242(x)
- end
-end
-
-def fun_l0_n978(x)
- if (x < 1)
- fun_l1_n515(x)
- else
- fun_l1_n113(x)
- end
-end
-
-def fun_l0_n979(x)
- if (x < 1)
- fun_l1_n734(x)
- else
- fun_l1_n271(x)
- end
-end
-
-def fun_l0_n980(x)
- if (x < 1)
- fun_l1_n837(x)
- else
- fun_l1_n733(x)
- end
-end
-
-def fun_l0_n981(x)
- if (x < 1)
- fun_l1_n326(x)
- else
- fun_l1_n213(x)
- end
-end
-
-def fun_l0_n982(x)
- if (x < 1)
- fun_l1_n733(x)
- else
- fun_l1_n198(x)
- end
-end
-
-def fun_l0_n983(x)
- if (x < 1)
- fun_l1_n989(x)
- else
- fun_l1_n700(x)
- end
-end
-
-def fun_l0_n984(x)
- if (x < 1)
- fun_l1_n266(x)
- else
- fun_l1_n348(x)
- end
-end
-
-def fun_l0_n985(x)
- if (x < 1)
- fun_l1_n931(x)
- else
- fun_l1_n646(x)
- end
-end
-
-def fun_l0_n986(x)
- if (x < 1)
- fun_l1_n435(x)
- else
- fun_l1_n747(x)
- end
-end
-
-def fun_l0_n987(x)
- if (x < 1)
- fun_l1_n474(x)
- else
- fun_l1_n638(x)
- end
-end
-
-def fun_l0_n988(x)
- if (x < 1)
- fun_l1_n615(x)
- else
- fun_l1_n283(x)
- end
-end
-
-def fun_l0_n989(x)
- if (x < 1)
- fun_l1_n410(x)
- else
- fun_l1_n289(x)
- end
-end
-
-def fun_l0_n990(x)
- if (x < 1)
- fun_l1_n633(x)
- else
- fun_l1_n77(x)
- end
-end
-
-def fun_l0_n991(x)
- if (x < 1)
- fun_l1_n153(x)
- else
- fun_l1_n255(x)
- end
-end
-
-def fun_l0_n992(x)
- if (x < 1)
- fun_l1_n447(x)
- else
- fun_l1_n239(x)
- end
-end
-
-def fun_l0_n993(x)
- if (x < 1)
- fun_l1_n837(x)
- else
- fun_l1_n582(x)
- end
-end
-
-def fun_l0_n994(x)
- if (x < 1)
- fun_l1_n385(x)
- else
- fun_l1_n939(x)
- end
-end
-
-def fun_l0_n995(x)
- if (x < 1)
- fun_l1_n236(x)
- else
- fun_l1_n497(x)
- end
-end
-
-def fun_l0_n996(x)
- if (x < 1)
- fun_l1_n63(x)
- else
- fun_l1_n721(x)
- end
-end
-
-def fun_l0_n997(x)
- if (x < 1)
- fun_l1_n457(x)
- else
- fun_l1_n376(x)
- end
-end
-
-def fun_l0_n998(x)
- if (x < 1)
- fun_l1_n362(x)
- else
- fun_l1_n478(x)
- end
-end
-
-def fun_l0_n999(x)
- if (x < 1)
- fun_l1_n554(x)
- else
- fun_l1_n422(x)
- end
-end
-
-def fun_l1_n0(x)
- if (x < 1)
- fun_l2_n498(x)
- else
- fun_l2_n461(x)
- end
-end
-
-def fun_l1_n1(x)
- if (x < 1)
- fun_l2_n424(x)
- else
- fun_l2_n137(x)
- end
-end
-
-def fun_l1_n2(x)
- if (x < 1)
- fun_l2_n325(x)
- else
- fun_l2_n95(x)
- end
-end
-
-def fun_l1_n3(x)
- if (x < 1)
- fun_l2_n917(x)
- else
- fun_l2_n469(x)
- end
-end
-
-def fun_l1_n4(x)
- if (x < 1)
- fun_l2_n730(x)
- else
- fun_l2_n147(x)
- end
-end
-
-def fun_l1_n5(x)
- if (x < 1)
- fun_l2_n796(x)
- else
- fun_l2_n907(x)
- end
-end
-
-def fun_l1_n6(x)
- if (x < 1)
- fun_l2_n555(x)
- else
- fun_l2_n309(x)
- end
-end
-
-def fun_l1_n7(x)
- if (x < 1)
- fun_l2_n475(x)
- else
- fun_l2_n193(x)
- end
-end
-
-def fun_l1_n8(x)
- if (x < 1)
- fun_l2_n317(x)
- else
- fun_l2_n284(x)
- end
-end
-
-def fun_l1_n9(x)
- if (x < 1)
- fun_l2_n297(x)
- else
- fun_l2_n370(x)
- end
-end
-
-def fun_l1_n10(x)
- if (x < 1)
- fun_l2_n66(x)
- else
- fun_l2_n959(x)
- end
-end
-
-def fun_l1_n11(x)
- if (x < 1)
- fun_l2_n833(x)
- else
- fun_l2_n250(x)
- end
-end
-
-def fun_l1_n12(x)
- if (x < 1)
- fun_l2_n640(x)
- else
- fun_l2_n588(x)
- end
-end
-
-def fun_l1_n13(x)
- if (x < 1)
- fun_l2_n91(x)
- else
- fun_l2_n294(x)
- end
-end
-
-def fun_l1_n14(x)
- if (x < 1)
- fun_l2_n166(x)
- else
- fun_l2_n943(x)
- end
-end
-
-def fun_l1_n15(x)
- if (x < 1)
- fun_l2_n352(x)
- else
- fun_l2_n363(x)
- end
-end
-
-def fun_l1_n16(x)
- if (x < 1)
- fun_l2_n84(x)
- else
- fun_l2_n278(x)
- end
-end
-
-def fun_l1_n17(x)
- if (x < 1)
- fun_l2_n308(x)
- else
- fun_l2_n341(x)
- end
-end
-
-def fun_l1_n18(x)
- if (x < 1)
- fun_l2_n713(x)
- else
- fun_l2_n575(x)
- end
-end
-
-def fun_l1_n19(x)
- if (x < 1)
- fun_l2_n81(x)
- else
- fun_l2_n301(x)
- end
-end
-
-def fun_l1_n20(x)
- if (x < 1)
- fun_l2_n516(x)
- else
- fun_l2_n164(x)
- end
-end
-
-def fun_l1_n21(x)
- if (x < 1)
- fun_l2_n900(x)
- else
- fun_l2_n963(x)
- end
-end
-
-def fun_l1_n22(x)
- if (x < 1)
- fun_l2_n472(x)
- else
- fun_l2_n288(x)
- end
-end
-
-def fun_l1_n23(x)
- if (x < 1)
- fun_l2_n587(x)
- else
- fun_l2_n515(x)
- end
-end
-
-def fun_l1_n24(x)
- if (x < 1)
- fun_l2_n506(x)
- else
- fun_l2_n711(x)
- end
-end
-
-def fun_l1_n25(x)
- if (x < 1)
- fun_l2_n935(x)
- else
- fun_l2_n177(x)
- end
-end
-
-def fun_l1_n26(x)
- if (x < 1)
- fun_l2_n485(x)
- else
- fun_l2_n368(x)
- end
-end
-
-def fun_l1_n27(x)
- if (x < 1)
- fun_l2_n984(x)
- else
- fun_l2_n290(x)
- end
-end
-
-def fun_l1_n28(x)
- if (x < 1)
- fun_l2_n36(x)
- else
- fun_l2_n837(x)
- end
-end
-
-def fun_l1_n29(x)
- if (x < 1)
- fun_l2_n752(x)
- else
- fun_l2_n311(x)
- end
-end
-
-def fun_l1_n30(x)
- if (x < 1)
- fun_l2_n215(x)
- else
- fun_l2_n376(x)
- end
-end
-
-def fun_l1_n31(x)
- if (x < 1)
- fun_l2_n533(x)
- else
- fun_l2_n92(x)
- end
-end
-
-def fun_l1_n32(x)
- if (x < 1)
- fun_l2_n386(x)
- else
- fun_l2_n283(x)
- end
-end
-
-def fun_l1_n33(x)
- if (x < 1)
- fun_l2_n268(x)
- else
- fun_l2_n256(x)
- end
-end
-
-def fun_l1_n34(x)
- if (x < 1)
- fun_l2_n348(x)
- else
- fun_l2_n464(x)
- end
-end
-
-def fun_l1_n35(x)
- if (x < 1)
- fun_l2_n25(x)
- else
- fun_l2_n33(x)
- end
-end
-
-def fun_l1_n36(x)
- if (x < 1)
- fun_l2_n387(x)
- else
- fun_l2_n341(x)
- end
-end
-
-def fun_l1_n37(x)
- if (x < 1)
- fun_l2_n580(x)
- else
- fun_l2_n476(x)
- end
-end
-
-def fun_l1_n38(x)
- if (x < 1)
- fun_l2_n33(x)
- else
- fun_l2_n33(x)
- end
-end
-
-def fun_l1_n39(x)
- if (x < 1)
- fun_l2_n861(x)
- else
- fun_l2_n52(x)
- end
-end
-
-def fun_l1_n40(x)
- if (x < 1)
- fun_l2_n740(x)
- else
- fun_l2_n943(x)
- end
-end
-
-def fun_l1_n41(x)
- if (x < 1)
- fun_l2_n956(x)
- else
- fun_l2_n159(x)
- end
-end
-
-def fun_l1_n42(x)
- if (x < 1)
- fun_l2_n445(x)
- else
- fun_l2_n775(x)
- end
-end
-
-def fun_l1_n43(x)
- if (x < 1)
- fun_l2_n667(x)
- else
- fun_l2_n282(x)
- end
-end
-
-def fun_l1_n44(x)
- if (x < 1)
- fun_l2_n185(x)
- else
- fun_l2_n210(x)
- end
-end
-
-def fun_l1_n45(x)
- if (x < 1)
- fun_l2_n490(x)
- else
- fun_l2_n21(x)
- end
-end
-
-def fun_l1_n46(x)
- if (x < 1)
- fun_l2_n751(x)
- else
- fun_l2_n639(x)
- end
-end
-
-def fun_l1_n47(x)
- if (x < 1)
- fun_l2_n431(x)
- else
- fun_l2_n917(x)
- end
-end
-
-def fun_l1_n48(x)
- if (x < 1)
- fun_l2_n187(x)
- else
- fun_l2_n170(x)
- end
-end
-
-def fun_l1_n49(x)
- if (x < 1)
- fun_l2_n780(x)
- else
- fun_l2_n77(x)
- end
-end
-
-def fun_l1_n50(x)
- if (x < 1)
- fun_l2_n546(x)
- else
- fun_l2_n759(x)
- end
-end
-
-def fun_l1_n51(x)
- if (x < 1)
- fun_l2_n453(x)
- else
- fun_l2_n951(x)
- end
-end
-
-def fun_l1_n52(x)
- if (x < 1)
- fun_l2_n989(x)
- else
- fun_l2_n716(x)
- end
-end
-
-def fun_l1_n53(x)
- if (x < 1)
- fun_l2_n652(x)
- else
- fun_l2_n36(x)
- end
-end
-
-def fun_l1_n54(x)
- if (x < 1)
- fun_l2_n187(x)
- else
- fun_l2_n760(x)
- end
-end
-
-def fun_l1_n55(x)
- if (x < 1)
- fun_l2_n706(x)
- else
- fun_l2_n927(x)
- end
-end
-
-def fun_l1_n56(x)
- if (x < 1)
- fun_l2_n666(x)
- else
- fun_l2_n295(x)
- end
-end
-
-def fun_l1_n57(x)
- if (x < 1)
- fun_l2_n424(x)
- else
- fun_l2_n447(x)
- end
-end
-
-def fun_l1_n58(x)
- if (x < 1)
- fun_l2_n408(x)
- else
- fun_l2_n337(x)
- end
-end
-
-def fun_l1_n59(x)
- if (x < 1)
- fun_l2_n567(x)
- else
- fun_l2_n765(x)
- end
-end
-
-def fun_l1_n60(x)
- if (x < 1)
- fun_l2_n241(x)
- else
- fun_l2_n701(x)
- end
-end
-
-def fun_l1_n61(x)
- if (x < 1)
- fun_l2_n831(x)
- else
- fun_l2_n382(x)
- end
-end
-
-def fun_l1_n62(x)
- if (x < 1)
- fun_l2_n634(x)
- else
- fun_l2_n908(x)
- end
-end
-
-def fun_l1_n63(x)
- if (x < 1)
- fun_l2_n696(x)
- else
- fun_l2_n48(x)
- end
-end
-
-def fun_l1_n64(x)
- if (x < 1)
- fun_l2_n528(x)
- else
- fun_l2_n110(x)
- end
-end
-
-def fun_l1_n65(x)
- if (x < 1)
- fun_l2_n767(x)
- else
- fun_l2_n973(x)
- end
-end
-
-def fun_l1_n66(x)
- if (x < 1)
- fun_l2_n963(x)
- else
- fun_l2_n673(x)
- end
-end
-
-def fun_l1_n67(x)
- if (x < 1)
- fun_l2_n927(x)
- else
- fun_l2_n309(x)
- end
-end
-
-def fun_l1_n68(x)
- if (x < 1)
- fun_l2_n851(x)
- else
- fun_l2_n160(x)
- end
-end
-
-def fun_l1_n69(x)
- if (x < 1)
- fun_l2_n575(x)
- else
- fun_l2_n800(x)
- end
-end
-
-def fun_l1_n70(x)
- if (x < 1)
- fun_l2_n396(x)
- else
- fun_l2_n382(x)
- end
-end
-
-def fun_l1_n71(x)
- if (x < 1)
- fun_l2_n508(x)
- else
- fun_l2_n763(x)
- end
-end
-
-def fun_l1_n72(x)
- if (x < 1)
- fun_l2_n360(x)
- else
- fun_l2_n848(x)
- end
-end
-
-def fun_l1_n73(x)
- if (x < 1)
- fun_l2_n878(x)
- else
- fun_l2_n83(x)
- end
-end
-
-def fun_l1_n74(x)
- if (x < 1)
- fun_l2_n573(x)
- else
- fun_l2_n284(x)
- end
-end
-
-def fun_l1_n75(x)
- if (x < 1)
- fun_l2_n999(x)
- else
- fun_l2_n954(x)
- end
-end
-
-def fun_l1_n76(x)
- if (x < 1)
- fun_l2_n182(x)
- else
- fun_l2_n997(x)
- end
-end
-
-def fun_l1_n77(x)
- if (x < 1)
- fun_l2_n802(x)
- else
- fun_l2_n409(x)
- end
-end
-
-def fun_l1_n78(x)
- if (x < 1)
- fun_l2_n163(x)
- else
- fun_l2_n417(x)
- end
-end
-
-def fun_l1_n79(x)
- if (x < 1)
- fun_l2_n328(x)
- else
- fun_l2_n688(x)
- end
-end
-
-def fun_l1_n80(x)
- if (x < 1)
- fun_l2_n699(x)
- else
- fun_l2_n356(x)
- end
-end
-
-def fun_l1_n81(x)
- if (x < 1)
- fun_l2_n44(x)
- else
- fun_l2_n302(x)
- end
-end
-
-def fun_l1_n82(x)
- if (x < 1)
- fun_l2_n597(x)
- else
- fun_l2_n892(x)
- end
-end
-
-def fun_l1_n83(x)
- if (x < 1)
- fun_l2_n494(x)
- else
- fun_l2_n547(x)
- end
-end
-
-def fun_l1_n84(x)
- if (x < 1)
- fun_l2_n631(x)
- else
- fun_l2_n922(x)
- end
-end
-
-def fun_l1_n85(x)
- if (x < 1)
- fun_l2_n797(x)
- else
- fun_l2_n874(x)
- end
-end
-
-def fun_l1_n86(x)
- if (x < 1)
- fun_l2_n209(x)
- else
- fun_l2_n365(x)
- end
-end
-
-def fun_l1_n87(x)
- if (x < 1)
- fun_l2_n516(x)
- else
- fun_l2_n371(x)
- end
-end
-
-def fun_l1_n88(x)
- if (x < 1)
- fun_l2_n654(x)
- else
- fun_l2_n88(x)
- end
-end
-
-def fun_l1_n89(x)
- if (x < 1)
- fun_l2_n70(x)
- else
- fun_l2_n521(x)
- end
-end
-
-def fun_l1_n90(x)
- if (x < 1)
- fun_l2_n666(x)
- else
- fun_l2_n749(x)
- end
-end
-
-def fun_l1_n91(x)
- if (x < 1)
- fun_l2_n504(x)
- else
- fun_l2_n339(x)
- end
-end
-
-def fun_l1_n92(x)
- if (x < 1)
- fun_l2_n734(x)
- else
- fun_l2_n277(x)
- end
-end
-
-def fun_l1_n93(x)
- if (x < 1)
- fun_l2_n300(x)
- else
- fun_l2_n826(x)
- end
-end
-
-def fun_l1_n94(x)
- if (x < 1)
- fun_l2_n733(x)
- else
- fun_l2_n560(x)
- end
-end
-
-def fun_l1_n95(x)
- if (x < 1)
- fun_l2_n834(x)
- else
- fun_l2_n644(x)
- end
-end
-
-def fun_l1_n96(x)
- if (x < 1)
- fun_l2_n183(x)
- else
- fun_l2_n238(x)
- end
-end
-
-def fun_l1_n97(x)
- if (x < 1)
- fun_l2_n372(x)
- else
- fun_l2_n753(x)
- end
-end
-
-def fun_l1_n98(x)
- if (x < 1)
- fun_l2_n208(x)
- else
- fun_l2_n543(x)
- end
-end
-
-def fun_l1_n99(x)
- if (x < 1)
- fun_l2_n38(x)
- else
- fun_l2_n974(x)
- end
-end
-
-def fun_l1_n100(x)
- if (x < 1)
- fun_l2_n620(x)
- else
- fun_l2_n503(x)
- end
-end
-
-def fun_l1_n101(x)
- if (x < 1)
- fun_l2_n248(x)
- else
- fun_l2_n189(x)
- end
-end
-
-def fun_l1_n102(x)
- if (x < 1)
- fun_l2_n489(x)
- else
- fun_l2_n390(x)
- end
-end
-
-def fun_l1_n103(x)
- if (x < 1)
- fun_l2_n452(x)
- else
- fun_l2_n22(x)
- end
-end
-
-def fun_l1_n104(x)
- if (x < 1)
- fun_l2_n542(x)
- else
- fun_l2_n135(x)
- end
-end
-
-def fun_l1_n105(x)
- if (x < 1)
- fun_l2_n988(x)
- else
- fun_l2_n118(x)
- end
-end
-
-def fun_l1_n106(x)
- if (x < 1)
- fun_l2_n817(x)
- else
- fun_l2_n534(x)
- end
-end
-
-def fun_l1_n107(x)
- if (x < 1)
- fun_l2_n812(x)
- else
- fun_l2_n206(x)
- end
-end
-
-def fun_l1_n108(x)
- if (x < 1)
- fun_l2_n514(x)
- else
- fun_l2_n300(x)
- end
-end
-
-def fun_l1_n109(x)
- if (x < 1)
- fun_l2_n482(x)
- else
- fun_l2_n376(x)
- end
-end
-
-def fun_l1_n110(x)
- if (x < 1)
- fun_l2_n571(x)
- else
- fun_l2_n758(x)
- end
-end
-
-def fun_l1_n111(x)
- if (x < 1)
- fun_l2_n971(x)
- else
- fun_l2_n811(x)
- end
-end
-
-def fun_l1_n112(x)
- if (x < 1)
- fun_l2_n23(x)
- else
- fun_l2_n844(x)
- end
-end
-
-def fun_l1_n113(x)
- if (x < 1)
- fun_l2_n865(x)
- else
- fun_l2_n149(x)
- end
-end
-
-def fun_l1_n114(x)
- if (x < 1)
- fun_l2_n930(x)
- else
- fun_l2_n327(x)
- end
-end
-
-def fun_l1_n115(x)
- if (x < 1)
- fun_l2_n67(x)
- else
- fun_l2_n442(x)
- end
-end
-
-def fun_l1_n116(x)
- if (x < 1)
- fun_l2_n278(x)
- else
- fun_l2_n653(x)
- end
-end
-
-def fun_l1_n117(x)
- if (x < 1)
- fun_l2_n457(x)
- else
- fun_l2_n179(x)
- end
-end
-
-def fun_l1_n118(x)
- if (x < 1)
- fun_l2_n384(x)
- else
- fun_l2_n594(x)
- end
-end
-
-def fun_l1_n119(x)
- if (x < 1)
- fun_l2_n361(x)
- else
- fun_l2_n770(x)
- end
-end
-
-def fun_l1_n120(x)
- if (x < 1)
- fun_l2_n24(x)
- else
- fun_l2_n269(x)
- end
-end
-
-def fun_l1_n121(x)
- if (x < 1)
- fun_l2_n57(x)
- else
- fun_l2_n2(x)
- end
-end
-
-def fun_l1_n122(x)
- if (x < 1)
- fun_l2_n421(x)
- else
- fun_l2_n339(x)
- end
-end
-
-def fun_l1_n123(x)
- if (x < 1)
- fun_l2_n623(x)
- else
- fun_l2_n985(x)
- end
-end
-
-def fun_l1_n124(x)
- if (x < 1)
- fun_l2_n609(x)
- else
- fun_l2_n530(x)
- end
-end
-
-def fun_l1_n125(x)
- if (x < 1)
- fun_l2_n565(x)
- else
- fun_l2_n155(x)
- end
-end
-
-def fun_l1_n126(x)
- if (x < 1)
- fun_l2_n135(x)
- else
- fun_l2_n971(x)
- end
-end
-
-def fun_l1_n127(x)
- if (x < 1)
- fun_l2_n691(x)
- else
- fun_l2_n503(x)
- end
-end
-
-def fun_l1_n128(x)
- if (x < 1)
- fun_l2_n555(x)
- else
- fun_l2_n67(x)
- end
-end
-
-def fun_l1_n129(x)
- if (x < 1)
- fun_l2_n95(x)
- else
- fun_l2_n192(x)
- end
-end
-
-def fun_l1_n130(x)
- if (x < 1)
- fun_l2_n432(x)
- else
- fun_l2_n771(x)
- end
-end
-
-def fun_l1_n131(x)
- if (x < 1)
- fun_l2_n993(x)
- else
- fun_l2_n539(x)
- end
-end
-
-def fun_l1_n132(x)
- if (x < 1)
- fun_l2_n809(x)
- else
- fun_l2_n902(x)
- end
-end
-
-def fun_l1_n133(x)
- if (x < 1)
- fun_l2_n95(x)
- else
- fun_l2_n928(x)
- end
-end
-
-def fun_l1_n134(x)
- if (x < 1)
- fun_l2_n781(x)
- else
- fun_l2_n832(x)
- end
-end
-
-def fun_l1_n135(x)
- if (x < 1)
- fun_l2_n231(x)
- else
- fun_l2_n392(x)
- end
-end
-
-def fun_l1_n136(x)
- if (x < 1)
- fun_l2_n102(x)
- else
- fun_l2_n449(x)
- end
-end
-
-def fun_l1_n137(x)
- if (x < 1)
- fun_l2_n196(x)
- else
- fun_l2_n909(x)
- end
-end
-
-def fun_l1_n138(x)
- if (x < 1)
- fun_l2_n449(x)
- else
- fun_l2_n190(x)
- end
-end
-
-def fun_l1_n139(x)
- if (x < 1)
- fun_l2_n638(x)
- else
- fun_l2_n149(x)
- end
-end
-
-def fun_l1_n140(x)
- if (x < 1)
- fun_l2_n523(x)
- else
- fun_l2_n297(x)
- end
-end
-
-def fun_l1_n141(x)
- if (x < 1)
- fun_l2_n476(x)
- else
- fun_l2_n161(x)
- end
-end
-
-def fun_l1_n142(x)
- if (x < 1)
- fun_l2_n893(x)
- else
- fun_l2_n686(x)
- end
-end
-
-def fun_l1_n143(x)
- if (x < 1)
- fun_l2_n958(x)
- else
- fun_l2_n899(x)
- end
-end
-
-def fun_l1_n144(x)
- if (x < 1)
- fun_l2_n104(x)
- else
- fun_l2_n912(x)
- end
-end
-
-def fun_l1_n145(x)
- if (x < 1)
- fun_l2_n332(x)
- else
- fun_l2_n579(x)
- end
-end
-
-def fun_l1_n146(x)
- if (x < 1)
- fun_l2_n40(x)
- else
- fun_l2_n468(x)
- end
-end
-
-def fun_l1_n147(x)
- if (x < 1)
- fun_l2_n771(x)
- else
- fun_l2_n314(x)
- end
-end
-
-def fun_l1_n148(x)
- if (x < 1)
- fun_l2_n340(x)
- else
- fun_l2_n203(x)
- end
-end
-
-def fun_l1_n149(x)
- if (x < 1)
- fun_l2_n952(x)
- else
- fun_l2_n265(x)
- end
-end
-
-def fun_l1_n150(x)
- if (x < 1)
- fun_l2_n11(x)
- else
- fun_l2_n303(x)
- end
-end
-
-def fun_l1_n151(x)
- if (x < 1)
- fun_l2_n394(x)
- else
- fun_l2_n317(x)
- end
-end
-
-def fun_l1_n152(x)
- if (x < 1)
- fun_l2_n140(x)
- else
- fun_l2_n906(x)
- end
-end
-
-def fun_l1_n153(x)
- if (x < 1)
- fun_l2_n75(x)
- else
- fun_l2_n485(x)
- end
-end
-
-def fun_l1_n154(x)
- if (x < 1)
- fun_l2_n842(x)
- else
- fun_l2_n370(x)
- end
-end
-
-def fun_l1_n155(x)
- if (x < 1)
- fun_l2_n346(x)
- else
- fun_l2_n833(x)
- end
-end
-
-def fun_l1_n156(x)
- if (x < 1)
- fun_l2_n433(x)
- else
- fun_l2_n373(x)
- end
-end
-
-def fun_l1_n157(x)
- if (x < 1)
- fun_l2_n978(x)
- else
- fun_l2_n99(x)
- end
-end
-
-def fun_l1_n158(x)
- if (x < 1)
- fun_l2_n540(x)
- else
- fun_l2_n987(x)
- end
-end
-
-def fun_l1_n159(x)
- if (x < 1)
- fun_l2_n785(x)
- else
- fun_l2_n478(x)
- end
-end
-
-def fun_l1_n160(x)
- if (x < 1)
- fun_l2_n282(x)
- else
- fun_l2_n222(x)
- end
-end
-
-def fun_l1_n161(x)
- if (x < 1)
- fun_l2_n29(x)
- else
- fun_l2_n946(x)
- end
-end
-
-def fun_l1_n162(x)
- if (x < 1)
- fun_l2_n314(x)
- else
- fun_l2_n758(x)
- end
-end
-
-def fun_l1_n163(x)
- if (x < 1)
- fun_l2_n861(x)
- else
- fun_l2_n799(x)
- end
-end
-
-def fun_l1_n164(x)
- if (x < 1)
- fun_l2_n403(x)
- else
- fun_l2_n413(x)
- end
-end
-
-def fun_l1_n165(x)
- if (x < 1)
- fun_l2_n160(x)
- else
- fun_l2_n794(x)
- end
-end
-
-def fun_l1_n166(x)
- if (x < 1)
- fun_l2_n114(x)
- else
- fun_l2_n238(x)
- end
-end
-
-def fun_l1_n167(x)
- if (x < 1)
- fun_l2_n806(x)
- else
- fun_l2_n233(x)
- end
-end
-
-def fun_l1_n168(x)
- if (x < 1)
- fun_l2_n871(x)
- else
- fun_l2_n53(x)
- end
-end
-
-def fun_l1_n169(x)
- if (x < 1)
- fun_l2_n644(x)
- else
- fun_l2_n503(x)
- end
-end
-
-def fun_l1_n170(x)
- if (x < 1)
- fun_l2_n172(x)
- else
- fun_l2_n289(x)
- end
-end
-
-def fun_l1_n171(x)
- if (x < 1)
- fun_l2_n920(x)
- else
- fun_l2_n851(x)
- end
-end
-
-def fun_l1_n172(x)
- if (x < 1)
- fun_l2_n552(x)
- else
- fun_l2_n822(x)
- end
-end
-
-def fun_l1_n173(x)
- if (x < 1)
- fun_l2_n747(x)
- else
- fun_l2_n265(x)
- end
-end
-
-def fun_l1_n174(x)
- if (x < 1)
- fun_l2_n287(x)
- else
- fun_l2_n762(x)
- end
-end
-
-def fun_l1_n175(x)
- if (x < 1)
- fun_l2_n627(x)
- else
- fun_l2_n951(x)
- end
-end
-
-def fun_l1_n176(x)
- if (x < 1)
- fun_l2_n459(x)
- else
- fun_l2_n962(x)
- end
-end
-
-def fun_l1_n177(x)
- if (x < 1)
- fun_l2_n214(x)
- else
- fun_l2_n145(x)
- end
-end
-
-def fun_l1_n178(x)
- if (x < 1)
- fun_l2_n620(x)
- else
- fun_l2_n995(x)
- end
-end
-
-def fun_l1_n179(x)
- if (x < 1)
- fun_l2_n136(x)
- else
- fun_l2_n283(x)
- end
-end
-
-def fun_l1_n180(x)
- if (x < 1)
- fun_l2_n377(x)
- else
- fun_l2_n672(x)
- end
-end
-
-def fun_l1_n181(x)
- if (x < 1)
- fun_l2_n218(x)
- else
- fun_l2_n434(x)
- end
-end
-
-def fun_l1_n182(x)
- if (x < 1)
- fun_l2_n522(x)
- else
- fun_l2_n525(x)
- end
-end
-
-def fun_l1_n183(x)
- if (x < 1)
- fun_l2_n648(x)
- else
- fun_l2_n725(x)
- end
-end
-
-def fun_l1_n184(x)
- if (x < 1)
- fun_l2_n579(x)
- else
- fun_l2_n974(x)
- end
-end
-
-def fun_l1_n185(x)
- if (x < 1)
- fun_l2_n10(x)
- else
- fun_l2_n514(x)
- end
-end
-
-def fun_l1_n186(x)
- if (x < 1)
- fun_l2_n829(x)
- else
- fun_l2_n754(x)
- end
-end
-
-def fun_l1_n187(x)
- if (x < 1)
- fun_l2_n380(x)
- else
- fun_l2_n401(x)
- end
-end
-
-def fun_l1_n188(x)
- if (x < 1)
- fun_l2_n839(x)
- else
- fun_l2_n453(x)
- end
-end
-
-def fun_l1_n189(x)
- if (x < 1)
- fun_l2_n553(x)
- else
- fun_l2_n553(x)
- end
-end
-
-def fun_l1_n190(x)
- if (x < 1)
- fun_l2_n972(x)
- else
- fun_l2_n187(x)
- end
-end
-
-def fun_l1_n191(x)
- if (x < 1)
- fun_l2_n275(x)
- else
- fun_l2_n11(x)
- end
-end
-
-def fun_l1_n192(x)
- if (x < 1)
- fun_l2_n1(x)
- else
- fun_l2_n927(x)
- end
-end
-
-def fun_l1_n193(x)
- if (x < 1)
- fun_l2_n569(x)
- else
- fun_l2_n557(x)
- end
-end
-
-def fun_l1_n194(x)
- if (x < 1)
- fun_l2_n380(x)
- else
- fun_l2_n187(x)
- end
-end
-
-def fun_l1_n195(x)
- if (x < 1)
- fun_l2_n297(x)
- else
- fun_l2_n813(x)
- end
-end
-
-def fun_l1_n196(x)
- if (x < 1)
- fun_l2_n565(x)
- else
- fun_l2_n514(x)
- end
-end
-
-def fun_l1_n197(x)
- if (x < 1)
- fun_l2_n473(x)
- else
- fun_l2_n64(x)
- end
-end
-
-def fun_l1_n198(x)
- if (x < 1)
- fun_l2_n182(x)
- else
- fun_l2_n363(x)
- end
-end
-
-def fun_l1_n199(x)
- if (x < 1)
- fun_l2_n660(x)
- else
- fun_l2_n506(x)
- end
-end
-
-def fun_l1_n200(x)
- if (x < 1)
- fun_l2_n834(x)
- else
- fun_l2_n348(x)
- end
-end
-
-def fun_l1_n201(x)
- if (x < 1)
- fun_l2_n403(x)
- else
- fun_l2_n432(x)
- end
-end
-
-def fun_l1_n202(x)
- if (x < 1)
- fun_l2_n115(x)
- else
- fun_l2_n145(x)
- end
-end
-
-def fun_l1_n203(x)
- if (x < 1)
- fun_l2_n637(x)
- else
- fun_l2_n4(x)
- end
-end
-
-def fun_l1_n204(x)
- if (x < 1)
- fun_l2_n951(x)
- else
- fun_l2_n753(x)
- end
-end
-
-def fun_l1_n205(x)
- if (x < 1)
- fun_l2_n703(x)
- else
- fun_l2_n563(x)
- end
-end
-
-def fun_l1_n206(x)
- if (x < 1)
- fun_l2_n614(x)
- else
- fun_l2_n563(x)
- end
-end
-
-def fun_l1_n207(x)
- if (x < 1)
- fun_l2_n210(x)
- else
- fun_l2_n139(x)
- end
-end
-
-def fun_l1_n208(x)
- if (x < 1)
- fun_l2_n471(x)
- else
- fun_l2_n346(x)
- end
-end
-
-def fun_l1_n209(x)
- if (x < 1)
- fun_l2_n922(x)
- else
- fun_l2_n54(x)
- end
-end
-
-def fun_l1_n210(x)
- if (x < 1)
- fun_l2_n494(x)
- else
- fun_l2_n41(x)
- end
-end
-
-def fun_l1_n211(x)
- if (x < 1)
- fun_l2_n87(x)
- else
- fun_l2_n190(x)
- end
-end
-
-def fun_l1_n212(x)
- if (x < 1)
- fun_l2_n458(x)
- else
- fun_l2_n885(x)
- end
-end
-
-def fun_l1_n213(x)
- if (x < 1)
- fun_l2_n48(x)
- else
- fun_l2_n225(x)
- end
-end
-
-def fun_l1_n214(x)
- if (x < 1)
- fun_l2_n706(x)
- else
- fun_l2_n694(x)
- end
-end
-
-def fun_l1_n215(x)
- if (x < 1)
- fun_l2_n116(x)
- else
- fun_l2_n233(x)
- end
-end
-
-def fun_l1_n216(x)
- if (x < 1)
- fun_l2_n279(x)
- else
- fun_l2_n857(x)
- end
-end
-
-def fun_l1_n217(x)
- if (x < 1)
- fun_l2_n643(x)
- else
- fun_l2_n289(x)
- end
-end
-
-def fun_l1_n218(x)
- if (x < 1)
- fun_l2_n535(x)
- else
- fun_l2_n833(x)
- end
-end
-
-def fun_l1_n219(x)
- if (x < 1)
- fun_l2_n478(x)
- else
- fun_l2_n793(x)
- end
-end
-
-def fun_l1_n220(x)
- if (x < 1)
- fun_l2_n57(x)
- else
- fun_l2_n64(x)
- end
-end
-
-def fun_l1_n221(x)
- if (x < 1)
- fun_l2_n36(x)
- else
- fun_l2_n74(x)
- end
-end
-
-def fun_l1_n222(x)
- if (x < 1)
- fun_l2_n438(x)
- else
- fun_l2_n616(x)
- end
-end
-
-def fun_l1_n223(x)
- if (x < 1)
- fun_l2_n900(x)
- else
- fun_l2_n744(x)
- end
-end
-
-def fun_l1_n224(x)
- if (x < 1)
- fun_l2_n780(x)
- else
- fun_l2_n213(x)
- end
-end
-
-def fun_l1_n225(x)
- if (x < 1)
- fun_l2_n916(x)
- else
- fun_l2_n471(x)
- end
-end
-
-def fun_l1_n226(x)
- if (x < 1)
- fun_l2_n236(x)
- else
- fun_l2_n980(x)
- end
-end
-
-def fun_l1_n227(x)
- if (x < 1)
- fun_l2_n28(x)
- else
- fun_l2_n291(x)
- end
-end
-
-def fun_l1_n228(x)
- if (x < 1)
- fun_l2_n35(x)
- else
- fun_l2_n353(x)
- end
-end
-
-def fun_l1_n229(x)
- if (x < 1)
- fun_l2_n404(x)
- else
- fun_l2_n254(x)
- end
-end
-
-def fun_l1_n230(x)
- if (x < 1)
- fun_l2_n641(x)
- else
- fun_l2_n464(x)
- end
-end
-
-def fun_l1_n231(x)
- if (x < 1)
- fun_l2_n592(x)
- else
- fun_l2_n646(x)
- end
-end
-
-def fun_l1_n232(x)
- if (x < 1)
- fun_l2_n162(x)
- else
- fun_l2_n215(x)
- end
-end
-
-def fun_l1_n233(x)
- if (x < 1)
- fun_l2_n219(x)
- else
- fun_l2_n772(x)
- end
-end
-
-def fun_l1_n234(x)
- if (x < 1)
- fun_l2_n304(x)
- else
- fun_l2_n963(x)
- end
-end
-
-def fun_l1_n235(x)
- if (x < 1)
- fun_l2_n610(x)
- else
- fun_l2_n716(x)
- end
-end
-
-def fun_l1_n236(x)
- if (x < 1)
- fun_l2_n151(x)
- else
- fun_l2_n498(x)
- end
-end
-
-def fun_l1_n237(x)
- if (x < 1)
- fun_l2_n288(x)
- else
- fun_l2_n261(x)
- end
-end
-
-def fun_l1_n238(x)
- if (x < 1)
- fun_l2_n139(x)
- else
- fun_l2_n18(x)
- end
-end
-
-def fun_l1_n239(x)
- if (x < 1)
- fun_l2_n559(x)
- else
- fun_l2_n148(x)
- end
-end
-
-def fun_l1_n240(x)
- if (x < 1)
- fun_l2_n520(x)
- else
- fun_l2_n250(x)
- end
-end
-
-def fun_l1_n241(x)
- if (x < 1)
- fun_l2_n42(x)
- else
- fun_l2_n196(x)
- end
-end
-
-def fun_l1_n242(x)
- if (x < 1)
- fun_l2_n16(x)
- else
- fun_l2_n540(x)
- end
-end
-
-def fun_l1_n243(x)
- if (x < 1)
- fun_l2_n539(x)
- else
- fun_l2_n890(x)
- end
-end
-
-def fun_l1_n244(x)
- if (x < 1)
- fun_l2_n559(x)
- else
- fun_l2_n423(x)
- end
-end
-
-def fun_l1_n245(x)
- if (x < 1)
- fun_l2_n110(x)
- else
- fun_l2_n711(x)
- end
-end
-
-def fun_l1_n246(x)
- if (x < 1)
- fun_l2_n151(x)
- else
- fun_l2_n407(x)
- end
-end
-
-def fun_l1_n247(x)
- if (x < 1)
- fun_l2_n118(x)
- else
- fun_l2_n209(x)
- end
-end
-
-def fun_l1_n248(x)
- if (x < 1)
- fun_l2_n764(x)
- else
- fun_l2_n932(x)
- end
-end
-
-def fun_l1_n249(x)
- if (x < 1)
- fun_l2_n991(x)
- else
- fun_l2_n828(x)
- end
-end
-
-def fun_l1_n250(x)
- if (x < 1)
- fun_l2_n354(x)
- else
- fun_l2_n53(x)
- end
-end
-
-def fun_l1_n251(x)
- if (x < 1)
- fun_l2_n63(x)
- else
- fun_l2_n292(x)
- end
-end
-
-def fun_l1_n252(x)
- if (x < 1)
- fun_l2_n874(x)
- else
- fun_l2_n544(x)
- end
-end
-
-def fun_l1_n253(x)
- if (x < 1)
- fun_l2_n336(x)
- else
- fun_l2_n57(x)
- end
-end
-
-def fun_l1_n254(x)
- if (x < 1)
- fun_l2_n302(x)
- else
- fun_l2_n90(x)
- end
-end
-
-def fun_l1_n255(x)
- if (x < 1)
- fun_l2_n122(x)
- else
- fun_l2_n888(x)
- end
-end
-
-def fun_l1_n256(x)
- if (x < 1)
- fun_l2_n326(x)
- else
- fun_l2_n616(x)
- end
-end
-
-def fun_l1_n257(x)
- if (x < 1)
- fun_l2_n77(x)
- else
- fun_l2_n622(x)
- end
-end
-
-def fun_l1_n258(x)
- if (x < 1)
- fun_l2_n785(x)
- else
- fun_l2_n229(x)
- end
-end
-
-def fun_l1_n259(x)
- if (x < 1)
- fun_l2_n504(x)
- else
- fun_l2_n766(x)
- end
-end
-
-def fun_l1_n260(x)
- if (x < 1)
- fun_l2_n857(x)
- else
- fun_l2_n823(x)
- end
-end
-
-def fun_l1_n261(x)
- if (x < 1)
- fun_l2_n72(x)
- else
- fun_l2_n875(x)
- end
-end
-
-def fun_l1_n262(x)
- if (x < 1)
- fun_l2_n215(x)
- else
- fun_l2_n549(x)
- end
-end
-
-def fun_l1_n263(x)
- if (x < 1)
- fun_l2_n232(x)
- else
- fun_l2_n96(x)
- end
-end
-
-def fun_l1_n264(x)
- if (x < 1)
- fun_l2_n183(x)
- else
- fun_l2_n351(x)
- end
-end
-
-def fun_l1_n265(x)
- if (x < 1)
- fun_l2_n906(x)
- else
- fun_l2_n154(x)
- end
-end
-
-def fun_l1_n266(x)
- if (x < 1)
- fun_l2_n234(x)
- else
- fun_l2_n547(x)
- end
-end
-
-def fun_l1_n267(x)
- if (x < 1)
- fun_l2_n882(x)
- else
- fun_l2_n802(x)
- end
-end
-
-def fun_l1_n268(x)
- if (x < 1)
- fun_l2_n844(x)
- else
- fun_l2_n430(x)
- end
-end
-
-def fun_l1_n269(x)
- if (x < 1)
- fun_l2_n781(x)
- else
- fun_l2_n738(x)
- end
-end
-
-def fun_l1_n270(x)
- if (x < 1)
- fun_l2_n88(x)
- else
- fun_l2_n439(x)
- end
-end
-
-def fun_l1_n271(x)
- if (x < 1)
- fun_l2_n334(x)
- else
- fun_l2_n508(x)
- end
-end
-
-def fun_l1_n272(x)
- if (x < 1)
- fun_l2_n871(x)
- else
- fun_l2_n562(x)
- end
-end
-
-def fun_l1_n273(x)
- if (x < 1)
- fun_l2_n328(x)
- else
- fun_l2_n356(x)
- end
-end
-
-def fun_l1_n274(x)
- if (x < 1)
- fun_l2_n654(x)
- else
- fun_l2_n511(x)
- end
-end
-
-def fun_l1_n275(x)
- if (x < 1)
- fun_l2_n309(x)
- else
- fun_l2_n840(x)
- end
-end
-
-def fun_l1_n276(x)
- if (x < 1)
- fun_l2_n729(x)
- else
- fun_l2_n72(x)
- end
-end
-
-def fun_l1_n277(x)
- if (x < 1)
- fun_l2_n993(x)
- else
- fun_l2_n858(x)
- end
-end
-
-def fun_l1_n278(x)
- if (x < 1)
- fun_l2_n664(x)
- else
- fun_l2_n50(x)
- end
-end
-
-def fun_l1_n279(x)
- if (x < 1)
- fun_l2_n225(x)
- else
- fun_l2_n403(x)
- end
-end
-
-def fun_l1_n280(x)
- if (x < 1)
- fun_l2_n780(x)
- else
- fun_l2_n396(x)
- end
-end
-
-def fun_l1_n281(x)
- if (x < 1)
- fun_l2_n114(x)
- else
- fun_l2_n114(x)
- end
-end
-
-def fun_l1_n282(x)
- if (x < 1)
- fun_l2_n568(x)
- else
- fun_l2_n610(x)
- end
-end
-
-def fun_l1_n283(x)
- if (x < 1)
- fun_l2_n539(x)
- else
- fun_l2_n990(x)
- end
-end
-
-def fun_l1_n284(x)
- if (x < 1)
- fun_l2_n773(x)
- else
- fun_l2_n622(x)
- end
-end
-
-def fun_l1_n285(x)
- if (x < 1)
- fun_l2_n695(x)
- else
- fun_l2_n101(x)
- end
-end
-
-def fun_l1_n286(x)
- if (x < 1)
- fun_l2_n239(x)
- else
- fun_l2_n242(x)
- end
-end
-
-def fun_l1_n287(x)
- if (x < 1)
- fun_l2_n191(x)
- else
- fun_l2_n839(x)
- end
-end
-
-def fun_l1_n288(x)
- if (x < 1)
- fun_l2_n246(x)
- else
- fun_l2_n179(x)
- end
-end
-
-def fun_l1_n289(x)
- if (x < 1)
- fun_l2_n300(x)
- else
- fun_l2_n975(x)
- end
-end
-
-def fun_l1_n290(x)
- if (x < 1)
- fun_l2_n436(x)
- else
- fun_l2_n14(x)
- end
-end
-
-def fun_l1_n291(x)
- if (x < 1)
- fun_l2_n33(x)
- else
- fun_l2_n303(x)
- end
-end
-
-def fun_l1_n292(x)
- if (x < 1)
- fun_l2_n462(x)
- else
- fun_l2_n399(x)
- end
-end
-
-def fun_l1_n293(x)
- if (x < 1)
- fun_l2_n782(x)
- else
- fun_l2_n521(x)
- end
-end
-
-def fun_l1_n294(x)
- if (x < 1)
- fun_l2_n995(x)
- else
- fun_l2_n944(x)
- end
-end
-
-def fun_l1_n295(x)
- if (x < 1)
- fun_l2_n700(x)
- else
- fun_l2_n250(x)
- end
-end
-
-def fun_l1_n296(x)
- if (x < 1)
- fun_l2_n866(x)
- else
- fun_l2_n566(x)
- end
-end
-
-def fun_l1_n297(x)
- if (x < 1)
- fun_l2_n373(x)
- else
- fun_l2_n881(x)
- end
-end
-
-def fun_l1_n298(x)
- if (x < 1)
- fun_l2_n382(x)
- else
- fun_l2_n729(x)
- end
-end
-
-def fun_l1_n299(x)
- if (x < 1)
- fun_l2_n878(x)
- else
- fun_l2_n192(x)
- end
-end
-
-def fun_l1_n300(x)
- if (x < 1)
- fun_l2_n65(x)
- else
- fun_l2_n434(x)
- end
-end
-
-def fun_l1_n301(x)
- if (x < 1)
- fun_l2_n513(x)
- else
- fun_l2_n617(x)
- end
-end
-
-def fun_l1_n302(x)
- if (x < 1)
- fun_l2_n972(x)
- else
- fun_l2_n482(x)
- end
-end
-
-def fun_l1_n303(x)
- if (x < 1)
- fun_l2_n533(x)
- else
- fun_l2_n774(x)
- end
-end
-
-def fun_l1_n304(x)
- if (x < 1)
- fun_l2_n439(x)
- else
- fun_l2_n351(x)
- end
-end
-
-def fun_l1_n305(x)
- if (x < 1)
- fun_l2_n181(x)
- else
- fun_l2_n74(x)
- end
-end
-
-def fun_l1_n306(x)
- if (x < 1)
- fun_l2_n117(x)
- else
- fun_l2_n962(x)
- end
-end
-
-def fun_l1_n307(x)
- if (x < 1)
- fun_l2_n499(x)
- else
- fun_l2_n183(x)
- end
-end
-
-def fun_l1_n308(x)
- if (x < 1)
- fun_l2_n358(x)
- else
- fun_l2_n226(x)
- end
-end
-
-def fun_l1_n309(x)
- if (x < 1)
- fun_l2_n227(x)
- else
- fun_l2_n425(x)
- end
-end
-
-def fun_l1_n310(x)
- if (x < 1)
- fun_l2_n724(x)
- else
- fun_l2_n278(x)
- end
-end
-
-def fun_l1_n311(x)
- if (x < 1)
- fun_l2_n784(x)
- else
- fun_l2_n888(x)
- end
-end
-
-def fun_l1_n312(x)
- if (x < 1)
- fun_l2_n952(x)
- else
- fun_l2_n849(x)
- end
-end
-
-def fun_l1_n313(x)
- if (x < 1)
- fun_l2_n921(x)
- else
- fun_l2_n31(x)
- end
-end
-
-def fun_l1_n314(x)
- if (x < 1)
- fun_l2_n469(x)
- else
- fun_l2_n856(x)
- end
-end
-
-def fun_l1_n315(x)
- if (x < 1)
- fun_l2_n89(x)
- else
- fun_l2_n949(x)
- end
-end
-
-def fun_l1_n316(x)
- if (x < 1)
- fun_l2_n216(x)
- else
- fun_l2_n410(x)
- end
-end
-
-def fun_l1_n317(x)
- if (x < 1)
- fun_l2_n591(x)
- else
- fun_l2_n203(x)
- end
-end
-
-def fun_l1_n318(x)
- if (x < 1)
- fun_l2_n19(x)
- else
- fun_l2_n461(x)
- end
-end
-
-def fun_l1_n319(x)
- if (x < 1)
- fun_l2_n875(x)
- else
- fun_l2_n996(x)
- end
-end
-
-def fun_l1_n320(x)
- if (x < 1)
- fun_l2_n696(x)
- else
- fun_l2_n987(x)
- end
-end
-
-def fun_l1_n321(x)
- if (x < 1)
- fun_l2_n708(x)
- else
- fun_l2_n150(x)
- end
-end
-
-def fun_l1_n322(x)
- if (x < 1)
- fun_l2_n324(x)
- else
- fun_l2_n814(x)
- end
-end
-
-def fun_l1_n323(x)
- if (x < 1)
- fun_l2_n427(x)
- else
- fun_l2_n472(x)
- end
-end
-
-def fun_l1_n324(x)
- if (x < 1)
- fun_l2_n847(x)
- else
- fun_l2_n482(x)
- end
-end
-
-def fun_l1_n325(x)
- if (x < 1)
- fun_l2_n335(x)
- else
- fun_l2_n854(x)
- end
-end
-
-def fun_l1_n326(x)
- if (x < 1)
- fun_l2_n635(x)
- else
- fun_l2_n276(x)
- end
-end
-
-def fun_l1_n327(x)
- if (x < 1)
- fun_l2_n539(x)
- else
- fun_l2_n885(x)
- end
-end
-
-def fun_l1_n328(x)
- if (x < 1)
- fun_l2_n979(x)
- else
- fun_l2_n558(x)
- end
-end
-
-def fun_l1_n329(x)
- if (x < 1)
- fun_l2_n35(x)
- else
- fun_l2_n696(x)
- end
-end
-
-def fun_l1_n330(x)
- if (x < 1)
- fun_l2_n483(x)
- else
- fun_l2_n218(x)
- end
-end
-
-def fun_l1_n331(x)
- if (x < 1)
- fun_l2_n3(x)
- else
- fun_l2_n324(x)
- end
-end
-
-def fun_l1_n332(x)
- if (x < 1)
- fun_l2_n396(x)
- else
- fun_l2_n718(x)
- end
-end
-
-def fun_l1_n333(x)
- if (x < 1)
- fun_l2_n973(x)
- else
- fun_l2_n663(x)
- end
-end
-
-def fun_l1_n334(x)
- if (x < 1)
- fun_l2_n441(x)
- else
- fun_l2_n468(x)
- end
-end
-
-def fun_l1_n335(x)
- if (x < 1)
- fun_l2_n511(x)
- else
- fun_l2_n455(x)
- end
-end
-
-def fun_l1_n336(x)
- if (x < 1)
- fun_l2_n732(x)
- else
- fun_l2_n14(x)
- end
-end
-
-def fun_l1_n337(x)
- if (x < 1)
- fun_l2_n484(x)
- else
- fun_l2_n482(x)
- end
-end
-
-def fun_l1_n338(x)
- if (x < 1)
- fun_l2_n604(x)
- else
- fun_l2_n683(x)
- end
-end
-
-def fun_l1_n339(x)
- if (x < 1)
- fun_l2_n334(x)
- else
- fun_l2_n710(x)
- end
-end
-
-def fun_l1_n340(x)
- if (x < 1)
- fun_l2_n233(x)
- else
- fun_l2_n394(x)
- end
-end
-
-def fun_l1_n341(x)
- if (x < 1)
- fun_l2_n948(x)
- else
- fun_l2_n473(x)
- end
-end
-
-def fun_l1_n342(x)
- if (x < 1)
- fun_l2_n858(x)
- else
- fun_l2_n466(x)
- end
-end
-
-def fun_l1_n343(x)
- if (x < 1)
- fun_l2_n647(x)
- else
- fun_l2_n604(x)
- end
-end
-
-def fun_l1_n344(x)
- if (x < 1)
- fun_l2_n872(x)
- else
- fun_l2_n965(x)
- end
-end
-
-def fun_l1_n345(x)
- if (x < 1)
- fun_l2_n845(x)
- else
- fun_l2_n701(x)
- end
-end
-
-def fun_l1_n346(x)
- if (x < 1)
- fun_l2_n75(x)
- else
- fun_l2_n332(x)
- end
-end
-
-def fun_l1_n347(x)
- if (x < 1)
- fun_l2_n873(x)
- else
- fun_l2_n575(x)
- end
-end
-
-def fun_l1_n348(x)
- if (x < 1)
- fun_l2_n303(x)
- else
- fun_l2_n445(x)
- end
-end
-
-def fun_l1_n349(x)
- if (x < 1)
- fun_l2_n45(x)
- else
- fun_l2_n312(x)
- end
-end
-
-def fun_l1_n350(x)
- if (x < 1)
- fun_l2_n751(x)
- else
- fun_l2_n316(x)
- end
-end
-
-def fun_l1_n351(x)
- if (x < 1)
- fun_l2_n781(x)
- else
- fun_l2_n165(x)
- end
-end
-
-def fun_l1_n352(x)
- if (x < 1)
- fun_l2_n120(x)
- else
- fun_l2_n595(x)
- end
-end
-
-def fun_l1_n353(x)
- if (x < 1)
- fun_l2_n221(x)
- else
- fun_l2_n827(x)
- end
-end
-
-def fun_l1_n354(x)
- if (x < 1)
- fun_l2_n290(x)
- else
- fun_l2_n27(x)
- end
-end
-
-def fun_l1_n355(x)
- if (x < 1)
- fun_l2_n377(x)
- else
- fun_l2_n28(x)
- end
-end
-
-def fun_l1_n356(x)
- if (x < 1)
- fun_l2_n474(x)
- else
- fun_l2_n811(x)
- end
-end
-
-def fun_l1_n357(x)
- if (x < 1)
- fun_l2_n90(x)
- else
- fun_l2_n559(x)
- end
-end
-
-def fun_l1_n358(x)
- if (x < 1)
- fun_l2_n66(x)
- else
- fun_l2_n234(x)
- end
-end
-
-def fun_l1_n359(x)
- if (x < 1)
- fun_l2_n526(x)
- else
- fun_l2_n674(x)
- end
-end
-
-def fun_l1_n360(x)
- if (x < 1)
- fun_l2_n449(x)
- else
- fun_l2_n364(x)
- end
-end
-
-def fun_l1_n361(x)
- if (x < 1)
- fun_l2_n790(x)
- else
- fun_l2_n835(x)
- end
-end
-
-def fun_l1_n362(x)
- if (x < 1)
- fun_l2_n335(x)
- else
- fun_l2_n22(x)
- end
-end
-
-def fun_l1_n363(x)
- if (x < 1)
- fun_l2_n982(x)
- else
- fun_l2_n449(x)
- end
-end
-
-def fun_l1_n364(x)
- if (x < 1)
- fun_l2_n980(x)
- else
- fun_l2_n861(x)
- end
-end
-
-def fun_l1_n365(x)
- if (x < 1)
- fun_l2_n673(x)
- else
- fun_l2_n267(x)
- end
-end
-
-def fun_l1_n366(x)
- if (x < 1)
- fun_l2_n862(x)
- else
- fun_l2_n559(x)
- end
-end
-
-def fun_l1_n367(x)
- if (x < 1)
- fun_l2_n637(x)
- else
- fun_l2_n275(x)
- end
-end
-
-def fun_l1_n368(x)
- if (x < 1)
- fun_l2_n370(x)
- else
- fun_l2_n763(x)
- end
-end
-
-def fun_l1_n369(x)
- if (x < 1)
- fun_l2_n680(x)
- else
- fun_l2_n476(x)
- end
-end
-
-def fun_l1_n370(x)
- if (x < 1)
- fun_l2_n799(x)
- else
- fun_l2_n724(x)
- end
-end
-
-def fun_l1_n371(x)
- if (x < 1)
- fun_l2_n331(x)
- else
- fun_l2_n927(x)
- end
-end
-
-def fun_l1_n372(x)
- if (x < 1)
- fun_l2_n875(x)
- else
- fun_l2_n350(x)
- end
-end
-
-def fun_l1_n373(x)
- if (x < 1)
- fun_l2_n734(x)
- else
- fun_l2_n172(x)
- end
-end
-
-def fun_l1_n374(x)
- if (x < 1)
- fun_l2_n657(x)
- else
- fun_l2_n765(x)
- end
-end
-
-def fun_l1_n375(x)
- if (x < 1)
- fun_l2_n950(x)
- else
- fun_l2_n85(x)
- end
-end
-
-def fun_l1_n376(x)
- if (x < 1)
- fun_l2_n276(x)
- else
- fun_l2_n892(x)
- end
-end
-
-def fun_l1_n377(x)
- if (x < 1)
- fun_l2_n430(x)
- else
- fun_l2_n173(x)
- end
-end
-
-def fun_l1_n378(x)
- if (x < 1)
- fun_l2_n376(x)
- else
- fun_l2_n876(x)
- end
-end
-
-def fun_l1_n379(x)
- if (x < 1)
- fun_l2_n981(x)
- else
- fun_l2_n314(x)
- end
-end
-
-def fun_l1_n380(x)
- if (x < 1)
- fun_l2_n680(x)
- else
- fun_l2_n600(x)
- end
-end
-
-def fun_l1_n381(x)
- if (x < 1)
- fun_l2_n54(x)
- else
- fun_l2_n158(x)
- end
-end
-
-def fun_l1_n382(x)
- if (x < 1)
- fun_l2_n692(x)
- else
- fun_l2_n673(x)
- end
-end
-
-def fun_l1_n383(x)
- if (x < 1)
- fun_l2_n393(x)
- else
- fun_l2_n723(x)
- end
-end
-
-def fun_l1_n384(x)
- if (x < 1)
- fun_l2_n899(x)
- else
- fun_l2_n940(x)
- end
-end
-
-def fun_l1_n385(x)
- if (x < 1)
- fun_l2_n473(x)
- else
- fun_l2_n846(x)
- end
-end
-
-def fun_l1_n386(x)
- if (x < 1)
- fun_l2_n291(x)
- else
- fun_l2_n864(x)
- end
-end
-
-def fun_l1_n387(x)
- if (x < 1)
- fun_l2_n174(x)
- else
- fun_l2_n466(x)
- end
-end
-
-def fun_l1_n388(x)
- if (x < 1)
- fun_l2_n883(x)
- else
- fun_l2_n613(x)
- end
-end
-
-def fun_l1_n389(x)
- if (x < 1)
- fun_l2_n808(x)
- else
- fun_l2_n169(x)
- end
-end
-
-def fun_l1_n390(x)
- if (x < 1)
- fun_l2_n94(x)
- else
- fun_l2_n93(x)
- end
-end
-
-def fun_l1_n391(x)
- if (x < 1)
- fun_l2_n874(x)
- else
- fun_l2_n400(x)
- end
-end
-
-def fun_l1_n392(x)
- if (x < 1)
- fun_l2_n473(x)
- else
- fun_l2_n239(x)
- end
-end
-
-def fun_l1_n393(x)
- if (x < 1)
- fun_l2_n64(x)
- else
- fun_l2_n760(x)
- end
-end
-
-def fun_l1_n394(x)
- if (x < 1)
- fun_l2_n947(x)
- else
- fun_l2_n354(x)
- end
-end
-
-def fun_l1_n395(x)
- if (x < 1)
- fun_l2_n833(x)
- else
- fun_l2_n563(x)
- end
-end
-
-def fun_l1_n396(x)
- if (x < 1)
- fun_l2_n429(x)
- else
- fun_l2_n280(x)
- end
-end
-
-def fun_l1_n397(x)
- if (x < 1)
- fun_l2_n132(x)
- else
- fun_l2_n486(x)
- end
-end
-
-def fun_l1_n398(x)
- if (x < 1)
- fun_l2_n28(x)
- else
- fun_l2_n135(x)
- end
-end
-
-def fun_l1_n399(x)
- if (x < 1)
- fun_l2_n804(x)
- else
- fun_l2_n406(x)
- end
-end
-
-def fun_l1_n400(x)
- if (x < 1)
- fun_l2_n661(x)
- else
- fun_l2_n216(x)
- end
-end
-
-def fun_l1_n401(x)
- if (x < 1)
- fun_l2_n681(x)
- else
- fun_l2_n849(x)
- end
-end
-
-def fun_l1_n402(x)
- if (x < 1)
- fun_l2_n13(x)
- else
- fun_l2_n205(x)
- end
-end
-
-def fun_l1_n403(x)
- if (x < 1)
- fun_l2_n911(x)
- else
- fun_l2_n63(x)
- end
-end
-
-def fun_l1_n404(x)
- if (x < 1)
- fun_l2_n518(x)
- else
- fun_l2_n845(x)
- end
-end
-
-def fun_l1_n405(x)
- if (x < 1)
- fun_l2_n699(x)
- else
- fun_l2_n963(x)
- end
-end
-
-def fun_l1_n406(x)
- if (x < 1)
- fun_l2_n373(x)
- else
- fun_l2_n485(x)
- end
-end
-
-def fun_l1_n407(x)
- if (x < 1)
- fun_l2_n402(x)
- else
- fun_l2_n582(x)
- end
-end
-
-def fun_l1_n408(x)
- if (x < 1)
- fun_l2_n802(x)
- else
- fun_l2_n420(x)
- end
-end
-
-def fun_l1_n409(x)
- if (x < 1)
- fun_l2_n728(x)
- else
- fun_l2_n50(x)
- end
-end
-
-def fun_l1_n410(x)
- if (x < 1)
- fun_l2_n189(x)
- else
- fun_l2_n588(x)
- end
-end
-
-def fun_l1_n411(x)
- if (x < 1)
- fun_l2_n51(x)
- else
- fun_l2_n23(x)
- end
-end
-
-def fun_l1_n412(x)
- if (x < 1)
- fun_l2_n548(x)
- else
- fun_l2_n200(x)
- end
-end
-
-def fun_l1_n413(x)
- if (x < 1)
- fun_l2_n763(x)
- else
- fun_l2_n581(x)
- end
-end
-
-def fun_l1_n414(x)
- if (x < 1)
- fun_l2_n650(x)
- else
- fun_l2_n535(x)
- end
-end
-
-def fun_l1_n415(x)
- if (x < 1)
- fun_l2_n500(x)
- else
- fun_l2_n579(x)
- end
-end
-
-def fun_l1_n416(x)
- if (x < 1)
- fun_l2_n573(x)
- else
- fun_l2_n154(x)
- end
-end
-
-def fun_l1_n417(x)
- if (x < 1)
- fun_l2_n685(x)
- else
- fun_l2_n14(x)
- end
-end
-
-def fun_l1_n418(x)
- if (x < 1)
- fun_l2_n849(x)
- else
- fun_l2_n91(x)
- end
-end
-
-def fun_l1_n419(x)
- if (x < 1)
- fun_l2_n629(x)
- else
- fun_l2_n698(x)
- end
-end
-
-def fun_l1_n420(x)
- if (x < 1)
- fun_l2_n273(x)
- else
- fun_l2_n303(x)
- end
-end
-
-def fun_l1_n421(x)
- if (x < 1)
- fun_l2_n8(x)
- else
- fun_l2_n476(x)
- end
-end
-
-def fun_l1_n422(x)
- if (x < 1)
- fun_l2_n294(x)
- else
- fun_l2_n338(x)
- end
-end
-
-def fun_l1_n423(x)
- if (x < 1)
- fun_l2_n408(x)
- else
- fun_l2_n187(x)
- end
-end
-
-def fun_l1_n424(x)
- if (x < 1)
- fun_l2_n349(x)
- else
- fun_l2_n896(x)
- end
-end
-
-def fun_l1_n425(x)
- if (x < 1)
- fun_l2_n950(x)
- else
- fun_l2_n186(x)
- end
-end
-
-def fun_l1_n426(x)
- if (x < 1)
- fun_l2_n817(x)
- else
- fun_l2_n605(x)
- end
-end
-
-def fun_l1_n427(x)
- if (x < 1)
- fun_l2_n317(x)
- else
- fun_l2_n31(x)
- end
-end
-
-def fun_l1_n428(x)
- if (x < 1)
- fun_l2_n804(x)
- else
- fun_l2_n547(x)
- end
-end
-
-def fun_l1_n429(x)
- if (x < 1)
- fun_l2_n730(x)
- else
- fun_l2_n711(x)
- end
-end
-
-def fun_l1_n430(x)
- if (x < 1)
- fun_l2_n822(x)
- else
- fun_l2_n749(x)
- end
-end
-
-def fun_l1_n431(x)
- if (x < 1)
- fun_l2_n412(x)
- else
- fun_l2_n366(x)
- end
-end
-
-def fun_l1_n432(x)
- if (x < 1)
- fun_l2_n462(x)
- else
- fun_l2_n601(x)
- end
-end
-
-def fun_l1_n433(x)
- if (x < 1)
- fun_l2_n971(x)
- else
- fun_l2_n878(x)
- end
-end
-
-def fun_l1_n434(x)
- if (x < 1)
- fun_l2_n551(x)
- else
- fun_l2_n172(x)
- end
-end
-
-def fun_l1_n435(x)
- if (x < 1)
- fun_l2_n914(x)
- else
- fun_l2_n640(x)
- end
-end
-
-def fun_l1_n436(x)
- if (x < 1)
- fun_l2_n957(x)
- else
- fun_l2_n846(x)
- end
-end
-
-def fun_l1_n437(x)
- if (x < 1)
- fun_l2_n622(x)
- else
- fun_l2_n995(x)
- end
-end
-
-def fun_l1_n438(x)
- if (x < 1)
- fun_l2_n830(x)
- else
- fun_l2_n537(x)
- end
-end
-
-def fun_l1_n439(x)
- if (x < 1)
- fun_l2_n415(x)
- else
- fun_l2_n863(x)
- end
-end
-
-def fun_l1_n440(x)
- if (x < 1)
- fun_l2_n637(x)
- else
- fun_l2_n354(x)
- end
-end
-
-def fun_l1_n441(x)
- if (x < 1)
- fun_l2_n525(x)
- else
- fun_l2_n656(x)
- end
-end
-
-def fun_l1_n442(x)
- if (x < 1)
- fun_l2_n284(x)
- else
- fun_l2_n722(x)
- end
-end
-
-def fun_l1_n443(x)
- if (x < 1)
- fun_l2_n485(x)
- else
- fun_l2_n794(x)
- end
-end
-
-def fun_l1_n444(x)
- if (x < 1)
- fun_l2_n268(x)
- else
- fun_l2_n443(x)
- end
-end
-
-def fun_l1_n445(x)
- if (x < 1)
- fun_l2_n743(x)
- else
- fun_l2_n723(x)
- end
-end
-
-def fun_l1_n446(x)
- if (x < 1)
- fun_l2_n651(x)
- else
- fun_l2_n544(x)
- end
-end
-
-def fun_l1_n447(x)
- if (x < 1)
- fun_l2_n936(x)
- else
- fun_l2_n50(x)
- end
-end
-
-def fun_l1_n448(x)
- if (x < 1)
- fun_l2_n473(x)
- else
- fun_l2_n749(x)
- end
-end
-
-def fun_l1_n449(x)
- if (x < 1)
- fun_l2_n218(x)
- else
- fun_l2_n266(x)
- end
-end
-
-def fun_l1_n450(x)
- if (x < 1)
- fun_l2_n686(x)
- else
- fun_l2_n629(x)
- end
-end
-
-def fun_l1_n451(x)
- if (x < 1)
- fun_l2_n648(x)
- else
- fun_l2_n322(x)
- end
-end
-
-def fun_l1_n452(x)
- if (x < 1)
- fun_l2_n380(x)
- else
- fun_l2_n720(x)
- end
-end
-
-def fun_l1_n453(x)
- if (x < 1)
- fun_l2_n53(x)
- else
- fun_l2_n830(x)
- end
-end
-
-def fun_l1_n454(x)
- if (x < 1)
- fun_l2_n315(x)
- else
- fun_l2_n742(x)
- end
-end
-
-def fun_l1_n455(x)
- if (x < 1)
- fun_l2_n902(x)
- else
- fun_l2_n111(x)
- end
-end
-
-def fun_l1_n456(x)
- if (x < 1)
- fun_l2_n924(x)
- else
- fun_l2_n109(x)
- end
-end
-
-def fun_l1_n457(x)
- if (x < 1)
- fun_l2_n249(x)
- else
- fun_l2_n865(x)
- end
-end
-
-def fun_l1_n458(x)
- if (x < 1)
- fun_l2_n650(x)
- else
- fun_l2_n960(x)
- end
-end
-
-def fun_l1_n459(x)
- if (x < 1)
- fun_l2_n273(x)
- else
- fun_l2_n544(x)
- end
-end
-
-def fun_l1_n460(x)
- if (x < 1)
- fun_l2_n120(x)
- else
- fun_l2_n322(x)
- end
-end
-
-def fun_l1_n461(x)
- if (x < 1)
- fun_l2_n366(x)
- else
- fun_l2_n534(x)
- end
-end
-
-def fun_l1_n462(x)
- if (x < 1)
- fun_l2_n380(x)
- else
- fun_l2_n25(x)
- end
-end
-
-def fun_l1_n463(x)
- if (x < 1)
- fun_l2_n333(x)
- else
- fun_l2_n303(x)
- end
-end
-
-def fun_l1_n464(x)
- if (x < 1)
- fun_l2_n16(x)
- else
- fun_l2_n239(x)
- end
-end
-
-def fun_l1_n465(x)
- if (x < 1)
- fun_l2_n539(x)
- else
- fun_l2_n988(x)
- end
-end
-
-def fun_l1_n466(x)
- if (x < 1)
- fun_l2_n580(x)
- else
- fun_l2_n86(x)
- end
-end
-
-def fun_l1_n467(x)
- if (x < 1)
- fun_l2_n406(x)
- else
- fun_l2_n706(x)
- end
-end
-
-def fun_l1_n468(x)
- if (x < 1)
- fun_l2_n858(x)
- else
- fun_l2_n393(x)
- end
-end
-
-def fun_l1_n469(x)
- if (x < 1)
- fun_l2_n64(x)
- else
- fun_l2_n482(x)
- end
-end
-
-def fun_l1_n470(x)
- if (x < 1)
- fun_l2_n654(x)
- else
- fun_l2_n833(x)
- end
-end
-
-def fun_l1_n471(x)
- if (x < 1)
- fun_l2_n161(x)
- else
- fun_l2_n91(x)
- end
-end
-
-def fun_l1_n472(x)
- if (x < 1)
- fun_l2_n98(x)
- else
- fun_l2_n661(x)
- end
-end
-
-def fun_l1_n473(x)
- if (x < 1)
- fun_l2_n574(x)
- else
- fun_l2_n133(x)
- end
-end
-
-def fun_l1_n474(x)
- if (x < 1)
- fun_l2_n109(x)
- else
- fun_l2_n702(x)
- end
-end
-
-def fun_l1_n475(x)
- if (x < 1)
- fun_l2_n808(x)
- else
- fun_l2_n584(x)
- end
-end
-
-def fun_l1_n476(x)
- if (x < 1)
- fun_l2_n495(x)
- else
- fun_l2_n708(x)
- end
-end
-
-def fun_l1_n477(x)
- if (x < 1)
- fun_l2_n649(x)
- else
- fun_l2_n290(x)
- end
-end
-
-def fun_l1_n478(x)
- if (x < 1)
- fun_l2_n718(x)
- else
- fun_l2_n998(x)
- end
-end
-
-def fun_l1_n479(x)
- if (x < 1)
- fun_l2_n557(x)
- else
- fun_l2_n359(x)
- end
-end
-
-def fun_l1_n480(x)
- if (x < 1)
- fun_l2_n958(x)
- else
- fun_l2_n86(x)
- end
-end
-
-def fun_l1_n481(x)
- if (x < 1)
- fun_l2_n245(x)
- else
- fun_l2_n124(x)
- end
-end
-
-def fun_l1_n482(x)
- if (x < 1)
- fun_l2_n510(x)
- else
- fun_l2_n170(x)
- end
-end
-
-def fun_l1_n483(x)
- if (x < 1)
- fun_l2_n550(x)
- else
- fun_l2_n9(x)
- end
-end
-
-def fun_l1_n484(x)
- if (x < 1)
- fun_l2_n82(x)
- else
- fun_l2_n351(x)
- end
-end
-
-def fun_l1_n485(x)
- if (x < 1)
- fun_l2_n760(x)
- else
- fun_l2_n560(x)
- end
-end
-
-def fun_l1_n486(x)
- if (x < 1)
- fun_l2_n550(x)
- else
- fun_l2_n881(x)
- end
-end
-
-def fun_l1_n487(x)
- if (x < 1)
- fun_l2_n62(x)
- else
- fun_l2_n213(x)
- end
-end
-
-def fun_l1_n488(x)
- if (x < 1)
- fun_l2_n336(x)
- else
- fun_l2_n855(x)
- end
-end
-
-def fun_l1_n489(x)
- if (x < 1)
- fun_l2_n172(x)
- else
- fun_l2_n479(x)
- end
-end
-
-def fun_l1_n490(x)
- if (x < 1)
- fun_l2_n821(x)
- else
- fun_l2_n767(x)
- end
-end
-
-def fun_l1_n491(x)
- if (x < 1)
- fun_l2_n388(x)
- else
- fun_l2_n307(x)
- end
-end
-
-def fun_l1_n492(x)
- if (x < 1)
- fun_l2_n158(x)
- else
- fun_l2_n725(x)
- end
-end
-
-def fun_l1_n493(x)
- if (x < 1)
- fun_l2_n681(x)
- else
- fun_l2_n767(x)
- end
-end
-
-def fun_l1_n494(x)
- if (x < 1)
- fun_l2_n799(x)
- else
- fun_l2_n458(x)
- end
-end
-
-def fun_l1_n495(x)
- if (x < 1)
- fun_l2_n379(x)
- else
- fun_l2_n152(x)
- end
-end
-
-def fun_l1_n496(x)
- if (x < 1)
- fun_l2_n996(x)
- else
- fun_l2_n296(x)
- end
-end
-
-def fun_l1_n497(x)
- if (x < 1)
- fun_l2_n752(x)
- else
- fun_l2_n481(x)
- end
-end
-
-def fun_l1_n498(x)
- if (x < 1)
- fun_l2_n887(x)
- else
- fun_l2_n343(x)
- end
-end
-
-def fun_l1_n499(x)
- if (x < 1)
- fun_l2_n481(x)
- else
- fun_l2_n368(x)
- end
-end
-
-def fun_l1_n500(x)
- if (x < 1)
- fun_l2_n738(x)
- else
- fun_l2_n349(x)
- end
-end
-
-def fun_l1_n501(x)
- if (x < 1)
- fun_l2_n104(x)
- else
- fun_l2_n841(x)
- end
-end
-
-def fun_l1_n502(x)
- if (x < 1)
- fun_l2_n549(x)
- else
- fun_l2_n684(x)
- end
-end
-
-def fun_l1_n503(x)
- if (x < 1)
- fun_l2_n726(x)
- else
- fun_l2_n41(x)
- end
-end
-
-def fun_l1_n504(x)
- if (x < 1)
- fun_l2_n637(x)
- else
- fun_l2_n830(x)
- end
-end
-
-def fun_l1_n505(x)
- if (x < 1)
- fun_l2_n38(x)
- else
- fun_l2_n815(x)
- end
-end
-
-def fun_l1_n506(x)
- if (x < 1)
- fun_l2_n284(x)
- else
- fun_l2_n599(x)
- end
-end
-
-def fun_l1_n507(x)
- if (x < 1)
- fun_l2_n665(x)
- else
- fun_l2_n763(x)
- end
-end
-
-def fun_l1_n508(x)
- if (x < 1)
- fun_l2_n755(x)
- else
- fun_l2_n51(x)
- end
-end
-
-def fun_l1_n509(x)
- if (x < 1)
- fun_l2_n860(x)
- else
- fun_l2_n273(x)
- end
-end
-
-def fun_l1_n510(x)
- if (x < 1)
- fun_l2_n967(x)
- else
- fun_l2_n141(x)
- end
-end
-
-def fun_l1_n511(x)
- if (x < 1)
- fun_l2_n637(x)
- else
- fun_l2_n953(x)
- end
-end
-
-def fun_l1_n512(x)
- if (x < 1)
- fun_l2_n784(x)
- else
- fun_l2_n941(x)
- end
-end
-
-def fun_l1_n513(x)
- if (x < 1)
- fun_l2_n499(x)
- else
- fun_l2_n189(x)
- end
-end
-
-def fun_l1_n514(x)
- if (x < 1)
- fun_l2_n207(x)
- else
- fun_l2_n187(x)
- end
-end
-
-def fun_l1_n515(x)
- if (x < 1)
- fun_l2_n174(x)
- else
- fun_l2_n316(x)
- end
-end
-
-def fun_l1_n516(x)
- if (x < 1)
- fun_l2_n884(x)
- else
- fun_l2_n72(x)
- end
-end
-
-def fun_l1_n517(x)
- if (x < 1)
- fun_l2_n878(x)
- else
- fun_l2_n423(x)
- end
-end
-
-def fun_l1_n518(x)
- if (x < 1)
- fun_l2_n452(x)
- else
- fun_l2_n733(x)
- end
-end
-
-def fun_l1_n519(x)
- if (x < 1)
- fun_l2_n586(x)
- else
- fun_l2_n987(x)
- end
-end
-
-def fun_l1_n520(x)
- if (x < 1)
- fun_l2_n638(x)
- else
- fun_l2_n276(x)
- end
-end
-
-def fun_l1_n521(x)
- if (x < 1)
- fun_l2_n186(x)
- else
- fun_l2_n498(x)
- end
-end
-
-def fun_l1_n522(x)
- if (x < 1)
- fun_l2_n816(x)
- else
- fun_l2_n687(x)
- end
-end
-
-def fun_l1_n523(x)
- if (x < 1)
- fun_l2_n572(x)
- else
- fun_l2_n878(x)
- end
-end
-
-def fun_l1_n524(x)
- if (x < 1)
- fun_l2_n528(x)
- else
- fun_l2_n188(x)
- end
-end
-
-def fun_l1_n525(x)
- if (x < 1)
- fun_l2_n719(x)
- else
- fun_l2_n146(x)
- end
-end
-
-def fun_l1_n526(x)
- if (x < 1)
- fun_l2_n730(x)
- else
- fun_l2_n209(x)
- end
-end
-
-def fun_l1_n527(x)
- if (x < 1)
- fun_l2_n998(x)
- else
- fun_l2_n544(x)
- end
-end
-
-def fun_l1_n528(x)
- if (x < 1)
- fun_l2_n288(x)
- else
- fun_l2_n682(x)
- end
-end
-
-def fun_l1_n529(x)
- if (x < 1)
- fun_l2_n808(x)
- else
- fun_l2_n651(x)
- end
-end
-
-def fun_l1_n530(x)
- if (x < 1)
- fun_l2_n674(x)
- else
- fun_l2_n643(x)
- end
-end
-
-def fun_l1_n531(x)
- if (x < 1)
- fun_l2_n42(x)
- else
- fun_l2_n457(x)
- end
-end
-
-def fun_l1_n532(x)
- if (x < 1)
- fun_l2_n188(x)
- else
- fun_l2_n218(x)
- end
-end
-
-def fun_l1_n533(x)
- if (x < 1)
- fun_l2_n529(x)
- else
- fun_l2_n541(x)
- end
-end
-
-def fun_l1_n534(x)
- if (x < 1)
- fun_l2_n820(x)
- else
- fun_l2_n426(x)
- end
-end
-
-def fun_l1_n535(x)
- if (x < 1)
- fun_l2_n730(x)
- else
- fun_l2_n36(x)
- end
-end
-
-def fun_l1_n536(x)
- if (x < 1)
- fun_l2_n187(x)
- else
- fun_l2_n96(x)
- end
-end
-
-def fun_l1_n537(x)
- if (x < 1)
- fun_l2_n1(x)
- else
- fun_l2_n905(x)
- end
-end
-
-def fun_l1_n538(x)
- if (x < 1)
- fun_l2_n252(x)
- else
- fun_l2_n597(x)
- end
-end
-
-def fun_l1_n539(x)
- if (x < 1)
- fun_l2_n959(x)
- else
- fun_l2_n26(x)
- end
-end
-
-def fun_l1_n540(x)
- if (x < 1)
- fun_l2_n959(x)
- else
- fun_l2_n266(x)
- end
-end
-
-def fun_l1_n541(x)
- if (x < 1)
- fun_l2_n902(x)
- else
- fun_l2_n957(x)
- end
-end
-
-def fun_l1_n542(x)
- if (x < 1)
- fun_l2_n244(x)
- else
- fun_l2_n407(x)
- end
-end
-
-def fun_l1_n543(x)
- if (x < 1)
- fun_l2_n319(x)
- else
- fun_l2_n19(x)
- end
-end
-
-def fun_l1_n544(x)
- if (x < 1)
- fun_l2_n251(x)
- else
- fun_l2_n92(x)
- end
-end
-
-def fun_l1_n545(x)
- if (x < 1)
- fun_l2_n482(x)
- else
- fun_l2_n177(x)
- end
-end
-
-def fun_l1_n546(x)
- if (x < 1)
- fun_l2_n338(x)
- else
- fun_l2_n152(x)
- end
-end
-
-def fun_l1_n547(x)
- if (x < 1)
- fun_l2_n902(x)
- else
- fun_l2_n243(x)
- end
-end
-
-def fun_l1_n548(x)
- if (x < 1)
- fun_l2_n943(x)
- else
- fun_l2_n930(x)
- end
-end
-
-def fun_l1_n549(x)
- if (x < 1)
- fun_l2_n775(x)
- else
- fun_l2_n338(x)
- end
-end
-
-def fun_l1_n550(x)
- if (x < 1)
- fun_l2_n286(x)
- else
- fun_l2_n347(x)
- end
-end
-
-def fun_l1_n551(x)
- if (x < 1)
- fun_l2_n611(x)
- else
- fun_l2_n108(x)
- end
-end
-
-def fun_l1_n552(x)
- if (x < 1)
- fun_l2_n515(x)
- else
- fun_l2_n478(x)
- end
-end
-
-def fun_l1_n553(x)
- if (x < 1)
- fun_l2_n68(x)
- else
- fun_l2_n943(x)
- end
-end
-
-def fun_l1_n554(x)
- if (x < 1)
- fun_l2_n16(x)
- else
- fun_l2_n280(x)
- end
-end
-
-def fun_l1_n555(x)
- if (x < 1)
- fun_l2_n421(x)
- else
- fun_l2_n412(x)
- end
-end
-
-def fun_l1_n556(x)
- if (x < 1)
- fun_l2_n653(x)
- else
- fun_l2_n527(x)
- end
-end
-
-def fun_l1_n557(x)
- if (x < 1)
- fun_l2_n181(x)
- else
- fun_l2_n179(x)
- end
-end
-
-def fun_l1_n558(x)
- if (x < 1)
- fun_l2_n270(x)
- else
- fun_l2_n367(x)
- end
-end
-
-def fun_l1_n559(x)
- if (x < 1)
- fun_l2_n323(x)
- else
- fun_l2_n453(x)
- end
-end
-
-def fun_l1_n560(x)
- if (x < 1)
- fun_l2_n699(x)
- else
- fun_l2_n904(x)
- end
-end
-
-def fun_l1_n561(x)
- if (x < 1)
- fun_l2_n903(x)
- else
- fun_l2_n559(x)
- end
-end
-
-def fun_l1_n562(x)
- if (x < 1)
- fun_l2_n573(x)
- else
- fun_l2_n880(x)
- end
-end
-
-def fun_l1_n563(x)
- if (x < 1)
- fun_l2_n674(x)
- else
- fun_l2_n420(x)
- end
-end
-
-def fun_l1_n564(x)
- if (x < 1)
- fun_l2_n76(x)
- else
- fun_l2_n702(x)
- end
-end
-
-def fun_l1_n565(x)
- if (x < 1)
- fun_l2_n78(x)
- else
- fun_l2_n741(x)
- end
-end
-
-def fun_l1_n566(x)
- if (x < 1)
- fun_l2_n542(x)
- else
- fun_l2_n762(x)
- end
-end
-
-def fun_l1_n567(x)
- if (x < 1)
- fun_l2_n992(x)
- else
- fun_l2_n416(x)
- end
-end
-
-def fun_l1_n568(x)
- if (x < 1)
- fun_l2_n510(x)
- else
- fun_l2_n68(x)
- end
-end
-
-def fun_l1_n569(x)
- if (x < 1)
- fun_l2_n36(x)
- else
- fun_l2_n152(x)
- end
-end
-
-def fun_l1_n570(x)
- if (x < 1)
- fun_l2_n243(x)
- else
- fun_l2_n421(x)
- end
-end
-
-def fun_l1_n571(x)
- if (x < 1)
- fun_l2_n48(x)
- else
- fun_l2_n50(x)
- end
-end
-
-def fun_l1_n572(x)
- if (x < 1)
- fun_l2_n647(x)
- else
- fun_l2_n614(x)
- end
-end
-
-def fun_l1_n573(x)
- if (x < 1)
- fun_l2_n847(x)
- else
- fun_l2_n598(x)
- end
-end
-
-def fun_l1_n574(x)
- if (x < 1)
- fun_l2_n462(x)
- else
- fun_l2_n492(x)
- end
-end
-
-def fun_l1_n575(x)
- if (x < 1)
- fun_l2_n805(x)
- else
- fun_l2_n23(x)
- end
-end
-
-def fun_l1_n576(x)
- if (x < 1)
- fun_l2_n660(x)
- else
- fun_l2_n271(x)
- end
-end
-
-def fun_l1_n577(x)
- if (x < 1)
- fun_l2_n277(x)
- else
- fun_l2_n259(x)
- end
-end
-
-def fun_l1_n578(x)
- if (x < 1)
- fun_l2_n645(x)
- else
- fun_l2_n638(x)
- end
-end
-
-def fun_l1_n579(x)
- if (x < 1)
- fun_l2_n925(x)
- else
- fun_l2_n801(x)
- end
-end
-
-def fun_l1_n580(x)
- if (x < 1)
- fun_l2_n52(x)
- else
- fun_l2_n703(x)
- end
-end
-
-def fun_l1_n581(x)
- if (x < 1)
- fun_l2_n126(x)
- else
- fun_l2_n511(x)
- end
-end
-
-def fun_l1_n582(x)
- if (x < 1)
- fun_l2_n663(x)
- else
- fun_l2_n158(x)
- end
-end
-
-def fun_l1_n583(x)
- if (x < 1)
- fun_l2_n604(x)
- else
- fun_l2_n498(x)
- end
-end
-
-def fun_l1_n584(x)
- if (x < 1)
- fun_l2_n889(x)
- else
- fun_l2_n197(x)
- end
-end
-
-def fun_l1_n585(x)
- if (x < 1)
- fun_l2_n28(x)
- else
- fun_l2_n298(x)
- end
-end
-
-def fun_l1_n586(x)
- if (x < 1)
- fun_l2_n165(x)
- else
- fun_l2_n340(x)
- end
-end
-
-def fun_l1_n587(x)
- if (x < 1)
- fun_l2_n89(x)
- else
- fun_l2_n947(x)
- end
-end
-
-def fun_l1_n588(x)
- if (x < 1)
- fun_l2_n151(x)
- else
- fun_l2_n163(x)
- end
-end
-
-def fun_l1_n589(x)
- if (x < 1)
- fun_l2_n200(x)
- else
- fun_l2_n855(x)
- end
-end
-
-def fun_l1_n590(x)
- if (x < 1)
- fun_l2_n749(x)
- else
- fun_l2_n232(x)
- end
-end
-
-def fun_l1_n591(x)
- if (x < 1)
- fun_l2_n850(x)
- else
- fun_l2_n897(x)
- end
-end
-
-def fun_l1_n592(x)
- if (x < 1)
- fun_l2_n287(x)
- else
- fun_l2_n266(x)
- end
-end
-
-def fun_l1_n593(x)
- if (x < 1)
- fun_l2_n547(x)
- else
- fun_l2_n937(x)
- end
-end
-
-def fun_l1_n594(x)
- if (x < 1)
- fun_l2_n517(x)
- else
- fun_l2_n602(x)
- end
-end
-
-def fun_l1_n595(x)
- if (x < 1)
- fun_l2_n962(x)
- else
- fun_l2_n387(x)
- end
-end
-
-def fun_l1_n596(x)
- if (x < 1)
- fun_l2_n959(x)
- else
- fun_l2_n885(x)
- end
-end
-
-def fun_l1_n597(x)
- if (x < 1)
- fun_l2_n343(x)
- else
- fun_l2_n704(x)
- end
-end
-
-def fun_l1_n598(x)
- if (x < 1)
- fun_l2_n256(x)
- else
- fun_l2_n213(x)
- end
-end
-
-def fun_l1_n599(x)
- if (x < 1)
- fun_l2_n653(x)
- else
- fun_l2_n630(x)
- end
-end
-
-def fun_l1_n600(x)
- if (x < 1)
- fun_l2_n587(x)
- else
- fun_l2_n899(x)
- end
-end
-
-def fun_l1_n601(x)
- if (x < 1)
- fun_l2_n798(x)
- else
- fun_l2_n318(x)
- end
-end
-
-def fun_l1_n602(x)
- if (x < 1)
- fun_l2_n286(x)
- else
- fun_l2_n586(x)
- end
-end
-
-def fun_l1_n603(x)
- if (x < 1)
- fun_l2_n931(x)
- else
- fun_l2_n370(x)
- end
-end
-
-def fun_l1_n604(x)
- if (x < 1)
- fun_l2_n311(x)
- else
- fun_l2_n476(x)
- end
-end
-
-def fun_l1_n605(x)
- if (x < 1)
- fun_l2_n998(x)
- else
- fun_l2_n953(x)
- end
-end
-
-def fun_l1_n606(x)
- if (x < 1)
- fun_l2_n782(x)
- else
- fun_l2_n225(x)
- end
-end
-
-def fun_l1_n607(x)
- if (x < 1)
- fun_l2_n696(x)
- else
- fun_l2_n797(x)
- end
-end
-
-def fun_l1_n608(x)
- if (x < 1)
- fun_l2_n344(x)
- else
- fun_l2_n247(x)
- end
-end
-
-def fun_l1_n609(x)
- if (x < 1)
- fun_l2_n627(x)
- else
- fun_l2_n410(x)
- end
-end
-
-def fun_l1_n610(x)
- if (x < 1)
- fun_l2_n431(x)
- else
- fun_l2_n56(x)
- end
-end
-
-def fun_l1_n611(x)
- if (x < 1)
- fun_l2_n307(x)
- else
- fun_l2_n857(x)
- end
-end
-
-def fun_l1_n612(x)
- if (x < 1)
- fun_l2_n411(x)
- else
- fun_l2_n59(x)
- end
-end
-
-def fun_l1_n613(x)
- if (x < 1)
- fun_l2_n38(x)
- else
- fun_l2_n880(x)
- end
-end
-
-def fun_l1_n614(x)
- if (x < 1)
- fun_l2_n945(x)
- else
- fun_l2_n723(x)
- end
-end
-
-def fun_l1_n615(x)
- if (x < 1)
- fun_l2_n248(x)
- else
- fun_l2_n56(x)
- end
-end
-
-def fun_l1_n616(x)
- if (x < 1)
- fun_l2_n453(x)
- else
- fun_l2_n4(x)
- end
-end
-
-def fun_l1_n617(x)
- if (x < 1)
- fun_l2_n599(x)
- else
- fun_l2_n966(x)
- end
-end
-
-def fun_l1_n618(x)
- if (x < 1)
- fun_l2_n896(x)
- else
- fun_l2_n666(x)
- end
-end
-
-def fun_l1_n619(x)
- if (x < 1)
- fun_l2_n715(x)
- else
- fun_l2_n918(x)
- end
-end
-
-def fun_l1_n620(x)
- if (x < 1)
- fun_l2_n663(x)
- else
- fun_l2_n144(x)
- end
-end
-
-def fun_l1_n621(x)
- if (x < 1)
- fun_l2_n17(x)
- else
- fun_l2_n411(x)
- end
-end
-
-def fun_l1_n622(x)
- if (x < 1)
- fun_l2_n851(x)
- else
- fun_l2_n858(x)
- end
-end
-
-def fun_l1_n623(x)
- if (x < 1)
- fun_l2_n552(x)
- else
- fun_l2_n503(x)
- end
-end
-
-def fun_l1_n624(x)
- if (x < 1)
- fun_l2_n822(x)
- else
- fun_l2_n239(x)
- end
-end
-
-def fun_l1_n625(x)
- if (x < 1)
- fun_l2_n917(x)
- else
- fun_l2_n120(x)
- end
-end
-
-def fun_l1_n626(x)
- if (x < 1)
- fun_l2_n640(x)
- else
- fun_l2_n603(x)
- end
-end
-
-def fun_l1_n627(x)
- if (x < 1)
- fun_l2_n244(x)
- else
- fun_l2_n114(x)
- end
-end
-
-def fun_l1_n628(x)
- if (x < 1)
- fun_l2_n374(x)
- else
- fun_l2_n295(x)
- end
-end
-
-def fun_l1_n629(x)
- if (x < 1)
- fun_l2_n761(x)
- else
- fun_l2_n920(x)
- end
-end
-
-def fun_l1_n630(x)
- if (x < 1)
- fun_l2_n314(x)
- else
- fun_l2_n571(x)
- end
-end
-
-def fun_l1_n631(x)
- if (x < 1)
- fun_l2_n830(x)
- else
- fun_l2_n838(x)
- end
-end
-
-def fun_l1_n632(x)
- if (x < 1)
- fun_l2_n523(x)
- else
- fun_l2_n453(x)
- end
-end
-
-def fun_l1_n633(x)
- if (x < 1)
- fun_l2_n245(x)
- else
- fun_l2_n173(x)
- end
-end
-
-def fun_l1_n634(x)
- if (x < 1)
- fun_l2_n939(x)
- else
- fun_l2_n774(x)
- end
-end
-
-def fun_l1_n635(x)
- if (x < 1)
- fun_l2_n17(x)
- else
- fun_l2_n166(x)
- end
-end
-
-def fun_l1_n636(x)
- if (x < 1)
- fun_l2_n443(x)
- else
- fun_l2_n297(x)
- end
-end
-
-def fun_l1_n637(x)
- if (x < 1)
- fun_l2_n280(x)
- else
- fun_l2_n776(x)
- end
-end
-
-def fun_l1_n638(x)
- if (x < 1)
- fun_l2_n761(x)
- else
- fun_l2_n866(x)
- end
-end
-
-def fun_l1_n639(x)
- if (x < 1)
- fun_l2_n677(x)
- else
- fun_l2_n855(x)
- end
-end
-
-def fun_l1_n640(x)
- if (x < 1)
- fun_l2_n252(x)
- else
- fun_l2_n766(x)
- end
-end
-
-def fun_l1_n641(x)
- if (x < 1)
- fun_l2_n3(x)
- else
- fun_l2_n115(x)
- end
-end
-
-def fun_l1_n642(x)
- if (x < 1)
- fun_l2_n495(x)
- else
- fun_l2_n340(x)
- end
-end
-
-def fun_l1_n643(x)
- if (x < 1)
- fun_l2_n991(x)
- else
- fun_l2_n119(x)
- end
-end
-
-def fun_l1_n644(x)
- if (x < 1)
- fun_l2_n379(x)
- else
- fun_l2_n519(x)
- end
-end
-
-def fun_l1_n645(x)
- if (x < 1)
- fun_l2_n191(x)
- else
- fun_l2_n872(x)
- end
-end
-
-def fun_l1_n646(x)
- if (x < 1)
- fun_l2_n979(x)
- else
- fun_l2_n980(x)
- end
-end
-
-def fun_l1_n647(x)
- if (x < 1)
- fun_l2_n918(x)
- else
- fun_l2_n455(x)
- end
-end
-
-def fun_l1_n648(x)
- if (x < 1)
- fun_l2_n966(x)
- else
- fun_l2_n529(x)
- end
-end
-
-def fun_l1_n649(x)
- if (x < 1)
- fun_l2_n838(x)
- else
- fun_l2_n529(x)
- end
-end
-
-def fun_l1_n650(x)
- if (x < 1)
- fun_l2_n542(x)
- else
- fun_l2_n42(x)
- end
-end
-
-def fun_l1_n651(x)
- if (x < 1)
- fun_l2_n65(x)
- else
- fun_l2_n460(x)
- end
-end
-
-def fun_l1_n652(x)
- if (x < 1)
- fun_l2_n479(x)
- else
- fun_l2_n251(x)
- end
-end
-
-def fun_l1_n653(x)
- if (x < 1)
- fun_l2_n243(x)
- else
- fun_l2_n77(x)
- end
-end
-
-def fun_l1_n654(x)
- if (x < 1)
- fun_l2_n392(x)
- else
- fun_l2_n940(x)
- end
-end
-
-def fun_l1_n655(x)
- if (x < 1)
- fun_l2_n875(x)
- else
- fun_l2_n157(x)
- end
-end
-
-def fun_l1_n656(x)
- if (x < 1)
- fun_l2_n279(x)
- else
- fun_l2_n237(x)
- end
-end
-
-def fun_l1_n657(x)
- if (x < 1)
- fun_l2_n522(x)
- else
- fun_l2_n174(x)
- end
-end
-
-def fun_l1_n658(x)
- if (x < 1)
- fun_l2_n669(x)
- else
- fun_l2_n399(x)
- end
-end
-
-def fun_l1_n659(x)
- if (x < 1)
- fun_l2_n251(x)
- else
- fun_l2_n56(x)
- end
-end
-
-def fun_l1_n660(x)
- if (x < 1)
- fun_l2_n563(x)
- else
- fun_l2_n731(x)
- end
-end
-
-def fun_l1_n661(x)
- if (x < 1)
- fun_l2_n684(x)
- else
- fun_l2_n292(x)
- end
-end
-
-def fun_l1_n662(x)
- if (x < 1)
- fun_l2_n952(x)
- else
- fun_l2_n1(x)
- end
-end
-
-def fun_l1_n663(x)
- if (x < 1)
- fun_l2_n89(x)
- else
- fun_l2_n562(x)
- end
-end
-
-def fun_l1_n664(x)
- if (x < 1)
- fun_l2_n480(x)
- else
- fun_l2_n488(x)
- end
-end
-
-def fun_l1_n665(x)
- if (x < 1)
- fun_l2_n398(x)
- else
- fun_l2_n493(x)
- end
-end
-
-def fun_l1_n666(x)
- if (x < 1)
- fun_l2_n778(x)
- else
- fun_l2_n702(x)
- end
-end
-
-def fun_l1_n667(x)
- if (x < 1)
- fun_l2_n332(x)
- else
- fun_l2_n441(x)
- end
-end
-
-def fun_l1_n668(x)
- if (x < 1)
- fun_l2_n866(x)
- else
- fun_l2_n442(x)
- end
-end
-
-def fun_l1_n669(x)
- if (x < 1)
- fun_l2_n533(x)
- else
- fun_l2_n970(x)
- end
-end
-
-def fun_l1_n670(x)
- if (x < 1)
- fun_l2_n926(x)
- else
- fun_l2_n883(x)
- end
-end
-
-def fun_l1_n671(x)
- if (x < 1)
- fun_l2_n204(x)
- else
- fun_l2_n769(x)
- end
-end
-
-def fun_l1_n672(x)
- if (x < 1)
- fun_l2_n663(x)
- else
- fun_l2_n367(x)
- end
-end
-
-def fun_l1_n673(x)
- if (x < 1)
- fun_l2_n978(x)
- else
- fun_l2_n750(x)
- end
-end
-
-def fun_l1_n674(x)
- if (x < 1)
- fun_l2_n296(x)
- else
- fun_l2_n608(x)
- end
-end
-
-def fun_l1_n675(x)
- if (x < 1)
- fun_l2_n35(x)
- else
- fun_l2_n200(x)
- end
-end
-
-def fun_l1_n676(x)
- if (x < 1)
- fun_l2_n618(x)
- else
- fun_l2_n286(x)
- end
-end
-
-def fun_l1_n677(x)
- if (x < 1)
- fun_l2_n98(x)
- else
- fun_l2_n264(x)
- end
-end
-
-def fun_l1_n678(x)
- if (x < 1)
- fun_l2_n967(x)
- else
- fun_l2_n884(x)
- end
-end
-
-def fun_l1_n679(x)
- if (x < 1)
- fun_l2_n351(x)
- else
- fun_l2_n854(x)
- end
-end
-
-def fun_l1_n680(x)
- if (x < 1)
- fun_l2_n397(x)
- else
- fun_l2_n56(x)
- end
-end
-
-def fun_l1_n681(x)
- if (x < 1)
- fun_l2_n232(x)
- else
- fun_l2_n400(x)
- end
-end
-
-def fun_l1_n682(x)
- if (x < 1)
- fun_l2_n321(x)
- else
- fun_l2_n500(x)
- end
-end
-
-def fun_l1_n683(x)
- if (x < 1)
- fun_l2_n315(x)
- else
- fun_l2_n509(x)
- end
-end
-
-def fun_l1_n684(x)
- if (x < 1)
- fun_l2_n854(x)
- else
- fun_l2_n921(x)
- end
-end
-
-def fun_l1_n685(x)
- if (x < 1)
- fun_l2_n823(x)
- else
- fun_l2_n995(x)
- end
-end
-
-def fun_l1_n686(x)
- if (x < 1)
- fun_l2_n42(x)
- else
- fun_l2_n92(x)
- end
-end
-
-def fun_l1_n687(x)
- if (x < 1)
- fun_l2_n74(x)
- else
- fun_l2_n577(x)
- end
-end
-
-def fun_l1_n688(x)
- if (x < 1)
- fun_l2_n47(x)
- else
- fun_l2_n664(x)
- end
-end
-
-def fun_l1_n689(x)
- if (x < 1)
- fun_l2_n709(x)
- else
- fun_l2_n92(x)
- end
-end
-
-def fun_l1_n690(x)
- if (x < 1)
- fun_l2_n875(x)
- else
- fun_l2_n893(x)
- end
-end
-
-def fun_l1_n691(x)
- if (x < 1)
- fun_l2_n934(x)
- else
- fun_l2_n339(x)
- end
-end
-
-def fun_l1_n692(x)
- if (x < 1)
- fun_l2_n194(x)
- else
- fun_l2_n915(x)
- end
-end
-
-def fun_l1_n693(x)
- if (x < 1)
- fun_l2_n352(x)
- else
- fun_l2_n212(x)
- end
-end
-
-def fun_l1_n694(x)
- if (x < 1)
- fun_l2_n554(x)
- else
- fun_l2_n461(x)
- end
-end
-
-def fun_l1_n695(x)
- if (x < 1)
- fun_l2_n372(x)
- else
- fun_l2_n652(x)
- end
-end
-
-def fun_l1_n696(x)
- if (x < 1)
- fun_l2_n778(x)
- else
- fun_l2_n350(x)
- end
-end
-
-def fun_l1_n697(x)
- if (x < 1)
- fun_l2_n656(x)
- else
- fun_l2_n467(x)
- end
-end
-
-def fun_l1_n698(x)
- if (x < 1)
- fun_l2_n799(x)
- else
- fun_l2_n983(x)
- end
-end
-
-def fun_l1_n699(x)
- if (x < 1)
- fun_l2_n917(x)
- else
- fun_l2_n801(x)
- end
-end
-
-def fun_l1_n700(x)
- if (x < 1)
- fun_l2_n276(x)
- else
- fun_l2_n778(x)
- end
-end
-
-def fun_l1_n701(x)
- if (x < 1)
- fun_l2_n562(x)
- else
- fun_l2_n558(x)
- end
-end
-
-def fun_l1_n702(x)
- if (x < 1)
- fun_l2_n600(x)
- else
- fun_l2_n120(x)
- end
-end
-
-def fun_l1_n703(x)
- if (x < 1)
- fun_l2_n346(x)
- else
- fun_l2_n975(x)
- end
-end
-
-def fun_l1_n704(x)
- if (x < 1)
- fun_l2_n139(x)
- else
- fun_l2_n241(x)
- end
-end
-
-def fun_l1_n705(x)
- if (x < 1)
- fun_l2_n728(x)
- else
- fun_l2_n62(x)
- end
-end
-
-def fun_l1_n706(x)
- if (x < 1)
- fun_l2_n719(x)
- else
- fun_l2_n955(x)
- end
-end
-
-def fun_l1_n707(x)
- if (x < 1)
- fun_l2_n752(x)
- else
- fun_l2_n122(x)
- end
-end
-
-def fun_l1_n708(x)
- if (x < 1)
- fun_l2_n456(x)
- else
- fun_l2_n128(x)
- end
-end
-
-def fun_l1_n709(x)
- if (x < 1)
- fun_l2_n4(x)
- else
- fun_l2_n399(x)
- end
-end
-
-def fun_l1_n710(x)
- if (x < 1)
- fun_l2_n20(x)
- else
- fun_l2_n746(x)
- end
-end
-
-def fun_l1_n711(x)
- if (x < 1)
- fun_l2_n978(x)
- else
- fun_l2_n886(x)
- end
-end
-
-def fun_l1_n712(x)
- if (x < 1)
- fun_l2_n417(x)
- else
- fun_l2_n337(x)
- end
-end
-
-def fun_l1_n713(x)
- if (x < 1)
- fun_l2_n394(x)
- else
- fun_l2_n713(x)
- end
-end
-
-def fun_l1_n714(x)
- if (x < 1)
- fun_l2_n433(x)
- else
- fun_l2_n985(x)
- end
-end
-
-def fun_l1_n715(x)
- if (x < 1)
- fun_l2_n937(x)
- else
- fun_l2_n709(x)
- end
-end
-
-def fun_l1_n716(x)
- if (x < 1)
- fun_l2_n963(x)
- else
- fun_l2_n842(x)
- end
-end
-
-def fun_l1_n717(x)
- if (x < 1)
- fun_l2_n671(x)
- else
- fun_l2_n954(x)
- end
-end
-
-def fun_l1_n718(x)
- if (x < 1)
- fun_l2_n948(x)
- else
- fun_l2_n128(x)
- end
-end
-
-def fun_l1_n719(x)
- if (x < 1)
- fun_l2_n682(x)
- else
- fun_l2_n973(x)
- end
-end
-
-def fun_l1_n720(x)
- if (x < 1)
- fun_l2_n336(x)
- else
- fun_l2_n643(x)
- end
-end
-
-def fun_l1_n721(x)
- if (x < 1)
- fun_l2_n224(x)
- else
- fun_l2_n96(x)
- end
-end
-
-def fun_l1_n722(x)
- if (x < 1)
- fun_l2_n907(x)
- else
- fun_l2_n776(x)
- end
-end
-
-def fun_l1_n723(x)
- if (x < 1)
- fun_l2_n93(x)
- else
- fun_l2_n410(x)
- end
-end
-
-def fun_l1_n724(x)
- if (x < 1)
- fun_l2_n282(x)
- else
- fun_l2_n134(x)
- end
-end
-
-def fun_l1_n725(x)
- if (x < 1)
- fun_l2_n938(x)
- else
- fun_l2_n603(x)
- end
-end
-
-def fun_l1_n726(x)
- if (x < 1)
- fun_l2_n574(x)
- else
- fun_l2_n976(x)
- end
-end
-
-def fun_l1_n727(x)
- if (x < 1)
- fun_l2_n428(x)
- else
- fun_l2_n658(x)
- end
-end
-
-def fun_l1_n728(x)
- if (x < 1)
- fun_l2_n828(x)
- else
- fun_l2_n226(x)
- end
-end
-
-def fun_l1_n729(x)
- if (x < 1)
- fun_l2_n663(x)
- else
- fun_l2_n292(x)
- end
-end
-
-def fun_l1_n730(x)
- if (x < 1)
- fun_l2_n802(x)
- else
- fun_l2_n853(x)
- end
-end
-
-def fun_l1_n731(x)
- if (x < 1)
- fun_l2_n142(x)
- else
- fun_l2_n339(x)
- end
-end
-
-def fun_l1_n732(x)
- if (x < 1)
- fun_l2_n211(x)
- else
- fun_l2_n35(x)
- end
-end
-
-def fun_l1_n733(x)
- if (x < 1)
- fun_l2_n660(x)
- else
- fun_l2_n179(x)
- end
-end
-
-def fun_l1_n734(x)
- if (x < 1)
- fun_l2_n174(x)
- else
- fun_l2_n224(x)
- end
-end
-
-def fun_l1_n735(x)
- if (x < 1)
- fun_l2_n490(x)
- else
- fun_l2_n564(x)
- end
-end
-
-def fun_l1_n736(x)
- if (x < 1)
- fun_l2_n597(x)
- else
- fun_l2_n153(x)
- end
-end
-
-def fun_l1_n737(x)
- if (x < 1)
- fun_l2_n633(x)
- else
- fun_l2_n358(x)
- end
-end
-
-def fun_l1_n738(x)
- if (x < 1)
- fun_l2_n0(x)
- else
- fun_l2_n858(x)
- end
-end
-
-def fun_l1_n739(x)
- if (x < 1)
- fun_l2_n335(x)
- else
- fun_l2_n531(x)
- end
-end
-
-def fun_l1_n740(x)
- if (x < 1)
- fun_l2_n736(x)
- else
- fun_l2_n653(x)
- end
-end
-
-def fun_l1_n741(x)
- if (x < 1)
- fun_l2_n280(x)
- else
- fun_l2_n684(x)
- end
-end
-
-def fun_l1_n742(x)
- if (x < 1)
- fun_l2_n976(x)
- else
- fun_l2_n987(x)
- end
-end
-
-def fun_l1_n743(x)
- if (x < 1)
- fun_l2_n519(x)
- else
- fun_l2_n633(x)
- end
-end
-
-def fun_l1_n744(x)
- if (x < 1)
- fun_l2_n314(x)
- else
- fun_l2_n579(x)
- end
-end
-
-def fun_l1_n745(x)
- if (x < 1)
- fun_l2_n365(x)
- else
- fun_l2_n972(x)
- end
-end
-
-def fun_l1_n746(x)
- if (x < 1)
- fun_l2_n902(x)
- else
- fun_l2_n715(x)
- end
-end
-
-def fun_l1_n747(x)
- if (x < 1)
- fun_l2_n363(x)
- else
- fun_l2_n407(x)
- end
-end
-
-def fun_l1_n748(x)
- if (x < 1)
- fun_l2_n660(x)
- else
- fun_l2_n814(x)
- end
-end
-
-def fun_l1_n749(x)
- if (x < 1)
- fun_l2_n415(x)
- else
- fun_l2_n162(x)
- end
-end
-
-def fun_l1_n750(x)
- if (x < 1)
- fun_l2_n157(x)
- else
- fun_l2_n406(x)
- end
-end
-
-def fun_l1_n751(x)
- if (x < 1)
- fun_l2_n388(x)
- else
- fun_l2_n212(x)
- end
-end
-
-def fun_l1_n752(x)
- if (x < 1)
- fun_l2_n733(x)
- else
- fun_l2_n283(x)
- end
-end
-
-def fun_l1_n753(x)
- if (x < 1)
- fun_l2_n960(x)
- else
- fun_l2_n20(x)
- end
-end
-
-def fun_l1_n754(x)
- if (x < 1)
- fun_l2_n797(x)
- else
- fun_l2_n202(x)
- end
-end
-
-def fun_l1_n755(x)
- if (x < 1)
- fun_l2_n113(x)
- else
- fun_l2_n953(x)
- end
-end
-
-def fun_l1_n756(x)
- if (x < 1)
- fun_l2_n84(x)
- else
- fun_l2_n390(x)
- end
-end
-
-def fun_l1_n757(x)
- if (x < 1)
- fun_l2_n355(x)
- else
- fun_l2_n761(x)
- end
-end
-
-def fun_l1_n758(x)
- if (x < 1)
- fun_l2_n823(x)
- else
- fun_l2_n37(x)
- end
-end
-
-def fun_l1_n759(x)
- if (x < 1)
- fun_l2_n428(x)
- else
- fun_l2_n130(x)
- end
-end
-
-def fun_l1_n760(x)
- if (x < 1)
- fun_l2_n364(x)
- else
- fun_l2_n680(x)
- end
-end
-
-def fun_l1_n761(x)
- if (x < 1)
- fun_l2_n718(x)
- else
- fun_l2_n885(x)
- end
-end
-
-def fun_l1_n762(x)
- if (x < 1)
- fun_l2_n795(x)
- else
- fun_l2_n342(x)
- end
-end
-
-def fun_l1_n763(x)
- if (x < 1)
- fun_l2_n561(x)
- else
- fun_l2_n593(x)
- end
-end
-
-def fun_l1_n764(x)
- if (x < 1)
- fun_l2_n714(x)
- else
- fun_l2_n168(x)
- end
-end
-
-def fun_l1_n765(x)
- if (x < 1)
- fun_l2_n377(x)
- else
- fun_l2_n109(x)
- end
-end
-
-def fun_l1_n766(x)
- if (x < 1)
- fun_l2_n477(x)
- else
- fun_l2_n871(x)
- end
-end
-
-def fun_l1_n767(x)
- if (x < 1)
- fun_l2_n596(x)
- else
- fun_l2_n81(x)
- end
-end
-
-def fun_l1_n768(x)
- if (x < 1)
- fun_l2_n609(x)
- else
- fun_l2_n454(x)
- end
-end
-
-def fun_l1_n769(x)
- if (x < 1)
- fun_l2_n308(x)
- else
- fun_l2_n890(x)
- end
-end
-
-def fun_l1_n770(x)
- if (x < 1)
- fun_l2_n761(x)
- else
- fun_l2_n342(x)
- end
-end
-
-def fun_l1_n771(x)
- if (x < 1)
- fun_l2_n44(x)
- else
- fun_l2_n1(x)
- end
-end
-
-def fun_l1_n772(x)
- if (x < 1)
- fun_l2_n457(x)
- else
- fun_l2_n571(x)
- end
-end
-
-def fun_l1_n773(x)
- if (x < 1)
- fun_l2_n88(x)
- else
- fun_l2_n622(x)
- end
-end
-
-def fun_l1_n774(x)
- if (x < 1)
- fun_l2_n459(x)
- else
- fun_l2_n446(x)
- end
-end
-
-def fun_l1_n775(x)
- if (x < 1)
- fun_l2_n400(x)
- else
- fun_l2_n918(x)
- end
-end
-
-def fun_l1_n776(x)
- if (x < 1)
- fun_l2_n752(x)
- else
- fun_l2_n696(x)
- end
-end
-
-def fun_l1_n777(x)
- if (x < 1)
- fun_l2_n968(x)
- else
- fun_l2_n988(x)
- end
-end
-
-def fun_l1_n778(x)
- if (x < 1)
- fun_l2_n242(x)
- else
- fun_l2_n496(x)
- end
-end
-
-def fun_l1_n779(x)
- if (x < 1)
- fun_l2_n106(x)
- else
- fun_l2_n637(x)
- end
-end
-
-def fun_l1_n780(x)
- if (x < 1)
- fun_l2_n945(x)
- else
- fun_l2_n238(x)
- end
-end
-
-def fun_l1_n781(x)
- if (x < 1)
- fun_l2_n269(x)
- else
- fun_l2_n582(x)
- end
-end
-
-def fun_l1_n782(x)
- if (x < 1)
- fun_l2_n523(x)
- else
- fun_l2_n201(x)
- end
-end
-
-def fun_l1_n783(x)
- if (x < 1)
- fun_l2_n326(x)
- else
- fun_l2_n744(x)
- end
-end
-
-def fun_l1_n784(x)
- if (x < 1)
- fun_l2_n49(x)
- else
- fun_l2_n943(x)
- end
-end
-
-def fun_l1_n785(x)
- if (x < 1)
- fun_l2_n975(x)
- else
- fun_l2_n560(x)
- end
-end
-
-def fun_l1_n786(x)
- if (x < 1)
- fun_l2_n843(x)
- else
- fun_l2_n240(x)
- end
-end
-
-def fun_l1_n787(x)
- if (x < 1)
- fun_l2_n179(x)
- else
- fun_l2_n423(x)
- end
-end
-
-def fun_l1_n788(x)
- if (x < 1)
- fun_l2_n536(x)
- else
- fun_l2_n112(x)
- end
-end
-
-def fun_l1_n789(x)
- if (x < 1)
- fun_l2_n418(x)
- else
- fun_l2_n443(x)
- end
-end
-
-def fun_l1_n790(x)
- if (x < 1)
- fun_l2_n770(x)
- else
- fun_l2_n127(x)
- end
-end
-
-def fun_l1_n791(x)
- if (x < 1)
- fun_l2_n425(x)
- else
- fun_l2_n364(x)
- end
-end
-
-def fun_l1_n792(x)
- if (x < 1)
- fun_l2_n841(x)
- else
- fun_l2_n112(x)
- end
-end
-
-def fun_l1_n793(x)
- if (x < 1)
- fun_l2_n64(x)
- else
- fun_l2_n294(x)
- end
-end
-
-def fun_l1_n794(x)
- if (x < 1)
- fun_l2_n837(x)
- else
- fun_l2_n325(x)
- end
-end
-
-def fun_l1_n795(x)
- if (x < 1)
- fun_l2_n522(x)
- else
- fun_l2_n307(x)
- end
-end
-
-def fun_l1_n796(x)
- if (x < 1)
- fun_l2_n526(x)
- else
- fun_l2_n957(x)
- end
-end
-
-def fun_l1_n797(x)
- if (x < 1)
- fun_l2_n71(x)
- else
- fun_l2_n871(x)
- end
-end
-
-def fun_l1_n798(x)
- if (x < 1)
- fun_l2_n386(x)
- else
- fun_l2_n354(x)
- end
-end
-
-def fun_l1_n799(x)
- if (x < 1)
- fun_l2_n669(x)
- else
- fun_l2_n237(x)
- end
-end
-
-def fun_l1_n800(x)
- if (x < 1)
- fun_l2_n455(x)
- else
- fun_l2_n549(x)
- end
-end
-
-def fun_l1_n801(x)
- if (x < 1)
- fun_l2_n708(x)
- else
- fun_l2_n611(x)
- end
-end
-
-def fun_l1_n802(x)
- if (x < 1)
- fun_l2_n35(x)
- else
- fun_l2_n239(x)
- end
-end
-
-def fun_l1_n803(x)
- if (x < 1)
- fun_l2_n890(x)
- else
- fun_l2_n27(x)
- end
-end
-
-def fun_l1_n804(x)
- if (x < 1)
- fun_l2_n378(x)
- else
- fun_l2_n567(x)
- end
-end
-
-def fun_l1_n805(x)
- if (x < 1)
- fun_l2_n672(x)
- else
- fun_l2_n320(x)
- end
-end
-
-def fun_l1_n806(x)
- if (x < 1)
- fun_l2_n207(x)
- else
- fun_l2_n691(x)
- end
-end
-
-def fun_l1_n807(x)
- if (x < 1)
- fun_l2_n180(x)
- else
- fun_l2_n912(x)
- end
-end
-
-def fun_l1_n808(x)
- if (x < 1)
- fun_l2_n370(x)
- else
- fun_l2_n529(x)
- end
-end
-
-def fun_l1_n809(x)
- if (x < 1)
- fun_l2_n436(x)
- else
- fun_l2_n465(x)
- end
-end
-
-def fun_l1_n810(x)
- if (x < 1)
- fun_l2_n820(x)
- else
- fun_l2_n995(x)
- end
-end
-
-def fun_l1_n811(x)
- if (x < 1)
- fun_l2_n821(x)
- else
- fun_l2_n898(x)
- end
-end
-
-def fun_l1_n812(x)
- if (x < 1)
- fun_l2_n376(x)
- else
- fun_l2_n999(x)
- end
-end
-
-def fun_l1_n813(x)
- if (x < 1)
- fun_l2_n643(x)
- else
- fun_l2_n478(x)
- end
-end
-
-def fun_l1_n814(x)
- if (x < 1)
- fun_l2_n475(x)
- else
- fun_l2_n137(x)
- end
-end
-
-def fun_l1_n815(x)
- if (x < 1)
- fun_l2_n117(x)
- else
- fun_l2_n685(x)
- end
-end
-
-def fun_l1_n816(x)
- if (x < 1)
- fun_l2_n451(x)
- else
- fun_l2_n643(x)
- end
-end
-
-def fun_l1_n817(x)
- if (x < 1)
- fun_l2_n22(x)
- else
- fun_l2_n939(x)
- end
-end
-
-def fun_l1_n818(x)
- if (x < 1)
- fun_l2_n586(x)
- else
- fun_l2_n206(x)
- end
-end
-
-def fun_l1_n819(x)
- if (x < 1)
- fun_l2_n443(x)
- else
- fun_l2_n661(x)
- end
-end
-
-def fun_l1_n820(x)
- if (x < 1)
- fun_l2_n656(x)
- else
- fun_l2_n93(x)
- end
-end
-
-def fun_l1_n821(x)
- if (x < 1)
- fun_l2_n794(x)
- else
- fun_l2_n354(x)
- end
-end
-
-def fun_l1_n822(x)
- if (x < 1)
- fun_l2_n519(x)
- else
- fun_l2_n446(x)
- end
-end
-
-def fun_l1_n823(x)
- if (x < 1)
- fun_l2_n0(x)
- else
- fun_l2_n233(x)
- end
-end
-
-def fun_l1_n824(x)
- if (x < 1)
- fun_l2_n376(x)
- else
- fun_l2_n186(x)
- end
-end
-
-def fun_l1_n825(x)
- if (x < 1)
- fun_l2_n292(x)
- else
- fun_l2_n303(x)
- end
-end
-
-def fun_l1_n826(x)
- if (x < 1)
- fun_l2_n871(x)
- else
- fun_l2_n515(x)
- end
-end
-
-def fun_l1_n827(x)
- if (x < 1)
- fun_l2_n227(x)
- else
- fun_l2_n232(x)
- end
-end
-
-def fun_l1_n828(x)
- if (x < 1)
- fun_l2_n860(x)
- else
- fun_l2_n341(x)
- end
-end
-
-def fun_l1_n829(x)
- if (x < 1)
- fun_l2_n140(x)
- else
- fun_l2_n304(x)
- end
-end
-
-def fun_l1_n830(x)
- if (x < 1)
- fun_l2_n796(x)
- else
- fun_l2_n943(x)
- end
-end
-
-def fun_l1_n831(x)
- if (x < 1)
- fun_l2_n71(x)
- else
- fun_l2_n8(x)
- end
-end
-
-def fun_l1_n832(x)
- if (x < 1)
- fun_l2_n328(x)
- else
- fun_l2_n836(x)
- end
-end
-
-def fun_l1_n833(x)
- if (x < 1)
- fun_l2_n322(x)
- else
- fun_l2_n653(x)
- end
-end
-
-def fun_l1_n834(x)
- if (x < 1)
- fun_l2_n471(x)
- else
- fun_l2_n147(x)
- end
-end
-
-def fun_l1_n835(x)
- if (x < 1)
- fun_l2_n601(x)
- else
- fun_l2_n249(x)
- end
-end
-
-def fun_l1_n836(x)
- if (x < 1)
- fun_l2_n105(x)
- else
- fun_l2_n63(x)
- end
-end
-
-def fun_l1_n837(x)
- if (x < 1)
- fun_l2_n773(x)
- else
- fun_l2_n597(x)
- end
-end
-
-def fun_l1_n838(x)
- if (x < 1)
- fun_l2_n933(x)
- else
- fun_l2_n964(x)
- end
-end
-
-def fun_l1_n839(x)
- if (x < 1)
- fun_l2_n123(x)
- else
- fun_l2_n533(x)
- end
-end
-
-def fun_l1_n840(x)
- if (x < 1)
- fun_l2_n94(x)
- else
- fun_l2_n127(x)
- end
-end
-
-def fun_l1_n841(x)
- if (x < 1)
- fun_l2_n981(x)
- else
- fun_l2_n819(x)
- end
-end
-
-def fun_l1_n842(x)
- if (x < 1)
- fun_l2_n743(x)
- else
- fun_l2_n747(x)
- end
-end
-
-def fun_l1_n843(x)
- if (x < 1)
- fun_l2_n735(x)
- else
- fun_l2_n110(x)
- end
-end
-
-def fun_l1_n844(x)
- if (x < 1)
- fun_l2_n273(x)
- else
- fun_l2_n753(x)
- end
-end
-
-def fun_l1_n845(x)
- if (x < 1)
- fun_l2_n316(x)
- else
- fun_l2_n391(x)
- end
-end
-
-def fun_l1_n846(x)
- if (x < 1)
- fun_l2_n221(x)
- else
- fun_l2_n251(x)
- end
-end
-
-def fun_l1_n847(x)
- if (x < 1)
- fun_l2_n795(x)
- else
- fun_l2_n513(x)
- end
-end
-
-def fun_l1_n848(x)
- if (x < 1)
- fun_l2_n986(x)
- else
- fun_l2_n472(x)
- end
-end
-
-def fun_l1_n849(x)
- if (x < 1)
- fun_l2_n863(x)
- else
- fun_l2_n759(x)
- end
-end
-
-def fun_l1_n850(x)
- if (x < 1)
- fun_l2_n512(x)
- else
- fun_l2_n502(x)
- end
-end
-
-def fun_l1_n851(x)
- if (x < 1)
- fun_l2_n561(x)
- else
- fun_l2_n697(x)
- end
-end
-
-def fun_l1_n852(x)
- if (x < 1)
- fun_l2_n816(x)
- else
- fun_l2_n90(x)
- end
-end
-
-def fun_l1_n853(x)
- if (x < 1)
- fun_l2_n656(x)
- else
- fun_l2_n174(x)
- end
-end
-
-def fun_l1_n854(x)
- if (x < 1)
- fun_l2_n439(x)
- else
- fun_l2_n90(x)
- end
-end
-
-def fun_l1_n855(x)
- if (x < 1)
- fun_l2_n15(x)
- else
- fun_l2_n402(x)
- end
-end
-
-def fun_l1_n856(x)
- if (x < 1)
- fun_l2_n224(x)
- else
- fun_l2_n177(x)
- end
-end
-
-def fun_l1_n857(x)
- if (x < 1)
- fun_l2_n675(x)
- else
- fun_l2_n113(x)
- end
-end
-
-def fun_l1_n858(x)
- if (x < 1)
- fun_l2_n388(x)
- else
- fun_l2_n529(x)
- end
-end
-
-def fun_l1_n859(x)
- if (x < 1)
- fun_l2_n628(x)
- else
- fun_l2_n93(x)
- end
-end
-
-def fun_l1_n860(x)
- if (x < 1)
- fun_l2_n67(x)
- else
- fun_l2_n90(x)
- end
-end
-
-def fun_l1_n861(x)
- if (x < 1)
- fun_l2_n637(x)
- else
- fun_l2_n68(x)
- end
-end
-
-def fun_l1_n862(x)
- if (x < 1)
- fun_l2_n767(x)
- else
- fun_l2_n86(x)
- end
-end
-
-def fun_l1_n863(x)
- if (x < 1)
- fun_l2_n50(x)
- else
- fun_l2_n777(x)
- end
-end
-
-def fun_l1_n864(x)
- if (x < 1)
- fun_l2_n846(x)
- else
- fun_l2_n783(x)
- end
-end
-
-def fun_l1_n865(x)
- if (x < 1)
- fun_l2_n756(x)
- else
- fun_l2_n703(x)
- end
-end
-
-def fun_l1_n866(x)
- if (x < 1)
- fun_l2_n972(x)
- else
- fun_l2_n249(x)
- end
-end
-
-def fun_l1_n867(x)
- if (x < 1)
- fun_l2_n636(x)
- else
- fun_l2_n841(x)
- end
-end
-
-def fun_l1_n868(x)
- if (x < 1)
- fun_l2_n889(x)
- else
- fun_l2_n899(x)
- end
-end
-
-def fun_l1_n869(x)
- if (x < 1)
- fun_l2_n55(x)
- else
- fun_l2_n45(x)
- end
-end
-
-def fun_l1_n870(x)
- if (x < 1)
- fun_l2_n740(x)
- else
- fun_l2_n722(x)
- end
-end
-
-def fun_l1_n871(x)
- if (x < 1)
- fun_l2_n865(x)
- else
- fun_l2_n695(x)
- end
-end
-
-def fun_l1_n872(x)
- if (x < 1)
- fun_l2_n54(x)
- else
- fun_l2_n581(x)
- end
-end
-
-def fun_l1_n873(x)
- if (x < 1)
- fun_l2_n328(x)
- else
- fun_l2_n861(x)
- end
-end
-
-def fun_l1_n874(x)
- if (x < 1)
- fun_l2_n645(x)
- else
- fun_l2_n121(x)
- end
-end
-
-def fun_l1_n875(x)
- if (x < 1)
- fun_l2_n71(x)
- else
- fun_l2_n329(x)
- end
-end
-
-def fun_l1_n876(x)
- if (x < 1)
- fun_l2_n944(x)
- else
- fun_l2_n95(x)
- end
-end
-
-def fun_l1_n877(x)
- if (x < 1)
- fun_l2_n270(x)
- else
- fun_l2_n801(x)
- end
-end
-
-def fun_l1_n878(x)
- if (x < 1)
- fun_l2_n115(x)
- else
- fun_l2_n414(x)
- end
-end
-
-def fun_l1_n879(x)
- if (x < 1)
- fun_l2_n154(x)
- else
- fun_l2_n605(x)
- end
-end
-
-def fun_l1_n880(x)
- if (x < 1)
- fun_l2_n859(x)
- else
- fun_l2_n307(x)
- end
-end
-
-def fun_l1_n881(x)
- if (x < 1)
- fun_l2_n443(x)
- else
- fun_l2_n267(x)
- end
-end
-
-def fun_l1_n882(x)
- if (x < 1)
- fun_l2_n280(x)
- else
- fun_l2_n175(x)
- end
-end
-
-def fun_l1_n883(x)
- if (x < 1)
- fun_l2_n176(x)
- else
- fun_l2_n286(x)
- end
-end
-
-def fun_l1_n884(x)
- if (x < 1)
- fun_l2_n422(x)
- else
- fun_l2_n469(x)
- end
-end
-
-def fun_l1_n885(x)
- if (x < 1)
- fun_l2_n532(x)
- else
- fun_l2_n795(x)
- end
-end
-
-def fun_l1_n886(x)
- if (x < 1)
- fun_l2_n966(x)
- else
- fun_l2_n46(x)
- end
-end
-
-def fun_l1_n887(x)
- if (x < 1)
- fun_l2_n446(x)
- else
- fun_l2_n944(x)
- end
-end
-
-def fun_l1_n888(x)
- if (x < 1)
- fun_l2_n256(x)
- else
- fun_l2_n757(x)
- end
-end
-
-def fun_l1_n889(x)
- if (x < 1)
- fun_l2_n566(x)
- else
- fun_l2_n992(x)
- end
-end
-
-def fun_l1_n890(x)
- if (x < 1)
- fun_l2_n55(x)
- else
- fun_l2_n121(x)
- end
-end
-
-def fun_l1_n891(x)
- if (x < 1)
- fun_l2_n597(x)
- else
- fun_l2_n257(x)
- end
-end
-
-def fun_l1_n892(x)
- if (x < 1)
- fun_l2_n79(x)
- else
- fun_l2_n249(x)
- end
-end
-
-def fun_l1_n893(x)
- if (x < 1)
- fun_l2_n436(x)
- else
- fun_l2_n738(x)
- end
-end
-
-def fun_l1_n894(x)
- if (x < 1)
- fun_l2_n244(x)
- else
- fun_l2_n184(x)
- end
-end
-
-def fun_l1_n895(x)
- if (x < 1)
- fun_l2_n342(x)
- else
- fun_l2_n794(x)
- end
-end
-
-def fun_l1_n896(x)
- if (x < 1)
- fun_l2_n588(x)
- else
- fun_l2_n235(x)
- end
-end
-
-def fun_l1_n897(x)
- if (x < 1)
- fun_l2_n443(x)
- else
- fun_l2_n462(x)
- end
-end
-
-def fun_l1_n898(x)
- if (x < 1)
- fun_l2_n986(x)
- else
- fun_l2_n282(x)
- end
-end
-
-def fun_l1_n899(x)
- if (x < 1)
- fun_l2_n61(x)
- else
- fun_l2_n516(x)
- end
-end
-
-def fun_l1_n900(x)
- if (x < 1)
- fun_l2_n993(x)
- else
- fun_l2_n337(x)
- end
-end
-
-def fun_l1_n901(x)
- if (x < 1)
- fun_l2_n398(x)
- else
- fun_l2_n425(x)
- end
-end
-
-def fun_l1_n902(x)
- if (x < 1)
- fun_l2_n177(x)
- else
- fun_l2_n741(x)
- end
-end
-
-def fun_l1_n903(x)
- if (x < 1)
- fun_l2_n597(x)
- else
- fun_l2_n331(x)
- end
-end
-
-def fun_l1_n904(x)
- if (x < 1)
- fun_l2_n740(x)
- else
- fun_l2_n527(x)
- end
-end
-
-def fun_l1_n905(x)
- if (x < 1)
- fun_l2_n138(x)
- else
- fun_l2_n248(x)
- end
-end
-
-def fun_l1_n906(x)
- if (x < 1)
- fun_l2_n318(x)
- else
- fun_l2_n941(x)
- end
-end
-
-def fun_l1_n907(x)
- if (x < 1)
- fun_l2_n493(x)
- else
- fun_l2_n376(x)
- end
-end
-
-def fun_l1_n908(x)
- if (x < 1)
- fun_l2_n899(x)
- else
- fun_l2_n745(x)
- end
-end
-
-def fun_l1_n909(x)
- if (x < 1)
- fun_l2_n963(x)
- else
- fun_l2_n384(x)
- end
-end
-
-def fun_l1_n910(x)
- if (x < 1)
- fun_l2_n490(x)
- else
- fun_l2_n702(x)
- end
-end
-
-def fun_l1_n911(x)
- if (x < 1)
- fun_l2_n712(x)
- else
- fun_l2_n810(x)
- end
-end
-
-def fun_l1_n912(x)
- if (x < 1)
- fun_l2_n245(x)
- else
- fun_l2_n609(x)
- end
-end
-
-def fun_l1_n913(x)
- if (x < 1)
- fun_l2_n997(x)
- else
- fun_l2_n241(x)
- end
-end
-
-def fun_l1_n914(x)
- if (x < 1)
- fun_l2_n428(x)
- else
- fun_l2_n697(x)
- end
-end
-
-def fun_l1_n915(x)
- if (x < 1)
- fun_l2_n257(x)
- else
- fun_l2_n626(x)
- end
-end
-
-def fun_l1_n916(x)
- if (x < 1)
- fun_l2_n378(x)
- else
- fun_l2_n457(x)
- end
-end
-
-def fun_l1_n917(x)
- if (x < 1)
- fun_l2_n378(x)
- else
- fun_l2_n958(x)
- end
-end
-
-def fun_l1_n918(x)
- if (x < 1)
- fun_l2_n213(x)
- else
- fun_l2_n962(x)
- end
-end
-
-def fun_l1_n919(x)
- if (x < 1)
- fun_l2_n466(x)
- else
- fun_l2_n461(x)
- end
-end
-
-def fun_l1_n920(x)
- if (x < 1)
- fun_l2_n835(x)
- else
- fun_l2_n460(x)
- end
-end
-
-def fun_l1_n921(x)
- if (x < 1)
- fun_l2_n642(x)
- else
- fun_l2_n680(x)
- end
-end
-
-def fun_l1_n922(x)
- if (x < 1)
- fun_l2_n467(x)
- else
- fun_l2_n225(x)
- end
-end
-
-def fun_l1_n923(x)
- if (x < 1)
- fun_l2_n752(x)
- else
- fun_l2_n462(x)
- end
-end
-
-def fun_l1_n924(x)
- if (x < 1)
- fun_l2_n113(x)
- else
- fun_l2_n59(x)
- end
-end
-
-def fun_l1_n925(x)
- if (x < 1)
- fun_l2_n329(x)
- else
- fun_l2_n994(x)
- end
-end
-
-def fun_l1_n926(x)
- if (x < 1)
- fun_l2_n815(x)
- else
- fun_l2_n249(x)
- end
-end
-
-def fun_l1_n927(x)
- if (x < 1)
- fun_l2_n216(x)
- else
- fun_l2_n591(x)
- end
-end
-
-def fun_l1_n928(x)
- if (x < 1)
- fun_l2_n441(x)
- else
- fun_l2_n437(x)
- end
-end
-
-def fun_l1_n929(x)
- if (x < 1)
- fun_l2_n433(x)
- else
- fun_l2_n185(x)
- end
-end
-
-def fun_l1_n930(x)
- if (x < 1)
- fun_l2_n125(x)
- else
- fun_l2_n940(x)
- end
-end
-
-def fun_l1_n931(x)
- if (x < 1)
- fun_l2_n203(x)
- else
- fun_l2_n292(x)
- end
-end
-
-def fun_l1_n932(x)
- if (x < 1)
- fun_l2_n986(x)
- else
- fun_l2_n234(x)
- end
-end
-
-def fun_l1_n933(x)
- if (x < 1)
- fun_l2_n735(x)
- else
- fun_l2_n20(x)
- end
-end
-
-def fun_l1_n934(x)
- if (x < 1)
- fun_l2_n878(x)
- else
- fun_l2_n166(x)
- end
-end
-
-def fun_l1_n935(x)
- if (x < 1)
- fun_l2_n123(x)
- else
- fun_l2_n52(x)
- end
-end
-
-def fun_l1_n936(x)
- if (x < 1)
- fun_l2_n99(x)
- else
- fun_l2_n336(x)
- end
-end
-
-def fun_l1_n937(x)
- if (x < 1)
- fun_l2_n731(x)
- else
- fun_l2_n363(x)
- end
-end
-
-def fun_l1_n938(x)
- if (x < 1)
- fun_l2_n988(x)
- else
- fun_l2_n978(x)
- end
-end
-
-def fun_l1_n939(x)
- if (x < 1)
- fun_l2_n592(x)
- else
- fun_l2_n932(x)
- end
-end
-
-def fun_l1_n940(x)
- if (x < 1)
- fun_l2_n681(x)
- else
- fun_l2_n868(x)
- end
-end
-
-def fun_l1_n941(x)
- if (x < 1)
- fun_l2_n863(x)
- else
- fun_l2_n457(x)
- end
-end
-
-def fun_l1_n942(x)
- if (x < 1)
- fun_l2_n526(x)
- else
- fun_l2_n960(x)
- end
-end
-
-def fun_l1_n943(x)
- if (x < 1)
- fun_l2_n859(x)
- else
- fun_l2_n478(x)
- end
-end
-
-def fun_l1_n944(x)
- if (x < 1)
- fun_l2_n947(x)
- else
- fun_l2_n889(x)
- end
-end
-
-def fun_l1_n945(x)
- if (x < 1)
- fun_l2_n845(x)
- else
- fun_l2_n211(x)
- end
-end
-
-def fun_l1_n946(x)
- if (x < 1)
- fun_l2_n445(x)
- else
- fun_l2_n600(x)
- end
-end
-
-def fun_l1_n947(x)
- if (x < 1)
- fun_l2_n932(x)
- else
- fun_l2_n534(x)
- end
-end
-
-def fun_l1_n948(x)
- if (x < 1)
- fun_l2_n224(x)
- else
- fun_l2_n32(x)
- end
-end
-
-def fun_l1_n949(x)
- if (x < 1)
- fun_l2_n63(x)
- else
- fun_l2_n121(x)
- end
-end
-
-def fun_l1_n950(x)
- if (x < 1)
- fun_l2_n55(x)
- else
- fun_l2_n90(x)
- end
-end
-
-def fun_l1_n951(x)
- if (x < 1)
- fun_l2_n880(x)
- else
- fun_l2_n936(x)
- end
-end
-
-def fun_l1_n952(x)
- if (x < 1)
- fun_l2_n971(x)
- else
- fun_l2_n40(x)
- end
-end
-
-def fun_l1_n953(x)
- if (x < 1)
- fun_l2_n880(x)
- else
- fun_l2_n200(x)
- end
-end
-
-def fun_l1_n954(x)
- if (x < 1)
- fun_l2_n60(x)
- else
- fun_l2_n473(x)
- end
-end
-
-def fun_l1_n955(x)
- if (x < 1)
- fun_l2_n855(x)
- else
- fun_l2_n601(x)
- end
-end
-
-def fun_l1_n956(x)
- if (x < 1)
- fun_l2_n282(x)
- else
- fun_l2_n542(x)
- end
-end
-
-def fun_l1_n957(x)
- if (x < 1)
- fun_l2_n116(x)
- else
- fun_l2_n584(x)
- end
-end
-
-def fun_l1_n958(x)
- if (x < 1)
- fun_l2_n845(x)
- else
- fun_l2_n814(x)
- end
-end
-
-def fun_l1_n959(x)
- if (x < 1)
- fun_l2_n443(x)
- else
- fun_l2_n239(x)
- end
-end
-
-def fun_l1_n960(x)
- if (x < 1)
- fun_l2_n79(x)
- else
- fun_l2_n556(x)
- end
-end
-
-def fun_l1_n961(x)
- if (x < 1)
- fun_l2_n664(x)
- else
- fun_l2_n282(x)
- end
-end
-
-def fun_l1_n962(x)
- if (x < 1)
- fun_l2_n273(x)
- else
- fun_l2_n393(x)
- end
-end
-
-def fun_l1_n963(x)
- if (x < 1)
- fun_l2_n120(x)
- else
- fun_l2_n506(x)
- end
-end
-
-def fun_l1_n964(x)
- if (x < 1)
- fun_l2_n362(x)
- else
- fun_l2_n631(x)
- end
-end
-
-def fun_l1_n965(x)
- if (x < 1)
- fun_l2_n219(x)
- else
- fun_l2_n260(x)
- end
-end
-
-def fun_l1_n966(x)
- if (x < 1)
- fun_l2_n802(x)
- else
- fun_l2_n732(x)
- end
-end
-
-def fun_l1_n967(x)
- if (x < 1)
- fun_l2_n761(x)
- else
- fun_l2_n580(x)
- end
-end
-
-def fun_l1_n968(x)
- if (x < 1)
- fun_l2_n529(x)
- else
- fun_l2_n783(x)
- end
-end
-
-def fun_l1_n969(x)
- if (x < 1)
- fun_l2_n138(x)
- else
- fun_l2_n434(x)
- end
-end
-
-def fun_l1_n970(x)
- if (x < 1)
- fun_l2_n266(x)
- else
- fun_l2_n522(x)
- end
-end
-
-def fun_l1_n971(x)
- if (x < 1)
- fun_l2_n352(x)
- else
- fun_l2_n51(x)
- end
-end
-
-def fun_l1_n972(x)
- if (x < 1)
- fun_l2_n619(x)
- else
- fun_l2_n68(x)
- end
-end
-
-def fun_l1_n973(x)
- if (x < 1)
- fun_l2_n510(x)
- else
- fun_l2_n74(x)
- end
-end
-
-def fun_l1_n974(x)
- if (x < 1)
- fun_l2_n442(x)
- else
- fun_l2_n258(x)
- end
-end
-
-def fun_l1_n975(x)
- if (x < 1)
- fun_l2_n106(x)
- else
- fun_l2_n364(x)
- end
-end
-
-def fun_l1_n976(x)
- if (x < 1)
- fun_l2_n412(x)
- else
- fun_l2_n669(x)
- end
-end
-
-def fun_l1_n977(x)
- if (x < 1)
- fun_l2_n394(x)
- else
- fun_l2_n435(x)
- end
-end
-
-def fun_l1_n978(x)
- if (x < 1)
- fun_l2_n630(x)
- else
- fun_l2_n686(x)
- end
-end
-
-def fun_l1_n979(x)
- if (x < 1)
- fun_l2_n683(x)
- else
- fun_l2_n99(x)
- end
-end
-
-def fun_l1_n980(x)
- if (x < 1)
- fun_l2_n352(x)
- else
- fun_l2_n394(x)
- end
-end
-
-def fun_l1_n981(x)
- if (x < 1)
- fun_l2_n856(x)
- else
- fun_l2_n11(x)
- end
-end
-
-def fun_l1_n982(x)
- if (x < 1)
- fun_l2_n484(x)
- else
- fun_l2_n230(x)
- end
-end
-
-def fun_l1_n983(x)
- if (x < 1)
- fun_l2_n609(x)
- else
- fun_l2_n882(x)
- end
-end
-
-def fun_l1_n984(x)
- if (x < 1)
- fun_l2_n529(x)
- else
- fun_l2_n589(x)
- end
-end
-
-def fun_l1_n985(x)
- if (x < 1)
- fun_l2_n545(x)
- else
- fun_l2_n139(x)
- end
-end
-
-def fun_l1_n986(x)
- if (x < 1)
- fun_l2_n679(x)
- else
- fun_l2_n938(x)
- end
-end
-
-def fun_l1_n987(x)
- if (x < 1)
- fun_l2_n803(x)
- else
- fun_l2_n454(x)
- end
-end
-
-def fun_l1_n988(x)
- if (x < 1)
- fun_l2_n403(x)
- else
- fun_l2_n976(x)
- end
-end
-
-def fun_l1_n989(x)
- if (x < 1)
- fun_l2_n364(x)
- else
- fun_l2_n96(x)
- end
-end
-
-def fun_l1_n990(x)
- if (x < 1)
- fun_l2_n48(x)
- else
- fun_l2_n442(x)
- end
-end
-
-def fun_l1_n991(x)
- if (x < 1)
- fun_l2_n842(x)
- else
- fun_l2_n810(x)
- end
-end
-
-def fun_l1_n992(x)
- if (x < 1)
- fun_l2_n237(x)
- else
- fun_l2_n145(x)
- end
-end
-
-def fun_l1_n993(x)
- if (x < 1)
- fun_l2_n279(x)
- else
- fun_l2_n783(x)
- end
-end
-
-def fun_l1_n994(x)
- if (x < 1)
- fun_l2_n323(x)
- else
- fun_l2_n829(x)
- end
-end
-
-def fun_l1_n995(x)
- if (x < 1)
- fun_l2_n904(x)
- else
- fun_l2_n738(x)
- end
-end
-
-def fun_l1_n996(x)
- if (x < 1)
- fun_l2_n390(x)
- else
- fun_l2_n169(x)
- end
-end
-
-def fun_l1_n997(x)
- if (x < 1)
- fun_l2_n583(x)
- else
- fun_l2_n993(x)
- end
-end
-
-def fun_l1_n998(x)
- if (x < 1)
- fun_l2_n752(x)
- else
- fun_l2_n240(x)
- end
-end
-
-def fun_l1_n999(x)
- if (x < 1)
- fun_l2_n489(x)
- else
- fun_l2_n175(x)
- end
-end
-
-def fun_l2_n0(x)
- if (x < 1)
- fun_l3_n293(x)
- else
- fun_l3_n569(x)
- end
-end
-
-def fun_l2_n1(x)
- if (x < 1)
- fun_l3_n310(x)
- else
- fun_l3_n785(x)
- end
-end
-
-def fun_l2_n2(x)
- if (x < 1)
- fun_l3_n484(x)
- else
- fun_l3_n800(x)
- end
-end
-
-def fun_l2_n3(x)
- if (x < 1)
- fun_l3_n353(x)
- else
- fun_l3_n871(x)
- end
-end
-
-def fun_l2_n4(x)
- if (x < 1)
- fun_l3_n100(x)
- else
- fun_l3_n796(x)
- end
-end
-
-def fun_l2_n5(x)
- if (x < 1)
- fun_l3_n547(x)
- else
- fun_l3_n663(x)
- end
-end
-
-def fun_l2_n6(x)
- if (x < 1)
- fun_l3_n756(x)
- else
- fun_l3_n69(x)
- end
-end
-
-def fun_l2_n7(x)
- if (x < 1)
- fun_l3_n393(x)
- else
- fun_l3_n333(x)
- end
-end
-
-def fun_l2_n8(x)
- if (x < 1)
- fun_l3_n167(x)
- else
- fun_l3_n47(x)
- end
-end
-
-def fun_l2_n9(x)
- if (x < 1)
- fun_l3_n969(x)
- else
- fun_l3_n772(x)
- end
-end
-
-def fun_l2_n10(x)
- if (x < 1)
- fun_l3_n667(x)
- else
- fun_l3_n62(x)
- end
-end
-
-def fun_l2_n11(x)
- if (x < 1)
- fun_l3_n671(x)
- else
- fun_l3_n303(x)
- end
-end
-
-def fun_l2_n12(x)
- if (x < 1)
- fun_l3_n116(x)
- else
- fun_l3_n537(x)
- end
-end
-
-def fun_l2_n13(x)
- if (x < 1)
- fun_l3_n363(x)
- else
- fun_l3_n426(x)
- end
-end
-
-def fun_l2_n14(x)
- if (x < 1)
- fun_l3_n23(x)
- else
- fun_l3_n800(x)
- end
-end
-
-def fun_l2_n15(x)
- if (x < 1)
- fun_l3_n344(x)
- else
- fun_l3_n590(x)
- end
-end
-
-def fun_l2_n16(x)
- if (x < 1)
- fun_l3_n759(x)
- else
- fun_l3_n531(x)
- end
-end
-
-def fun_l2_n17(x)
- if (x < 1)
- fun_l3_n902(x)
- else
- fun_l3_n948(x)
- end
-end
-
-def fun_l2_n18(x)
- if (x < 1)
- fun_l3_n407(x)
- else
- fun_l3_n743(x)
- end
-end
-
-def fun_l2_n19(x)
- if (x < 1)
- fun_l3_n360(x)
- else
- fun_l3_n953(x)
- end
-end
-
-def fun_l2_n20(x)
- if (x < 1)
- fun_l3_n968(x)
- else
- fun_l3_n685(x)
- end
-end
-
-def fun_l2_n21(x)
- if (x < 1)
- fun_l3_n964(x)
- else
- fun_l3_n210(x)
- end
-end
-
-def fun_l2_n22(x)
- if (x < 1)
- fun_l3_n346(x)
- else
- fun_l3_n902(x)
- end
-end
-
-def fun_l2_n23(x)
- if (x < 1)
- fun_l3_n154(x)
- else
- fun_l3_n52(x)
- end
-end
-
-def fun_l2_n24(x)
- if (x < 1)
- fun_l3_n229(x)
- else
- fun_l3_n137(x)
- end
-end
-
-def fun_l2_n25(x)
- if (x < 1)
- fun_l3_n390(x)
- else
- fun_l3_n445(x)
- end
-end
-
-def fun_l2_n26(x)
- if (x < 1)
- fun_l3_n11(x)
- else
- fun_l3_n113(x)
- end
-end
-
-def fun_l2_n27(x)
- if (x < 1)
- fun_l3_n756(x)
- else
- fun_l3_n935(x)
- end
-end
-
-def fun_l2_n28(x)
- if (x < 1)
- fun_l3_n567(x)
- else
- fun_l3_n984(x)
- end
-end
-
-def fun_l2_n29(x)
- if (x < 1)
- fun_l3_n982(x)
- else
- fun_l3_n335(x)
- end
-end
-
-def fun_l2_n30(x)
- if (x < 1)
- fun_l3_n78(x)
- else
- fun_l3_n571(x)
- end
-end
-
-def fun_l2_n31(x)
- if (x < 1)
- fun_l3_n93(x)
- else
- fun_l3_n455(x)
- end
-end
-
-def fun_l2_n32(x)
- if (x < 1)
- fun_l3_n118(x)
- else
- fun_l3_n713(x)
- end
-end
-
-def fun_l2_n33(x)
- if (x < 1)
- fun_l3_n561(x)
- else
- fun_l3_n0(x)
- end
-end
-
-def fun_l2_n34(x)
- if (x < 1)
- fun_l3_n153(x)
- else
- fun_l3_n77(x)
- end
-end
-
-def fun_l2_n35(x)
- if (x < 1)
- fun_l3_n815(x)
- else
- fun_l3_n642(x)
- end
-end
-
-def fun_l2_n36(x)
- if (x < 1)
- fun_l3_n503(x)
- else
- fun_l3_n428(x)
- end
-end
-
-def fun_l2_n37(x)
- if (x < 1)
- fun_l3_n780(x)
- else
- fun_l3_n301(x)
- end
-end
-
-def fun_l2_n38(x)
- if (x < 1)
- fun_l3_n827(x)
- else
- fun_l3_n444(x)
- end
-end
-
-def fun_l2_n39(x)
- if (x < 1)
- fun_l3_n808(x)
- else
- fun_l3_n76(x)
- end
-end
-
-def fun_l2_n40(x)
- if (x < 1)
- fun_l3_n216(x)
- else
- fun_l3_n943(x)
- end
-end
-
-def fun_l2_n41(x)
- if (x < 1)
- fun_l3_n237(x)
- else
- fun_l3_n935(x)
- end
-end
-
-def fun_l2_n42(x)
- if (x < 1)
- fun_l3_n769(x)
- else
- fun_l3_n564(x)
- end
-end
-
-def fun_l2_n43(x)
- if (x < 1)
- fun_l3_n108(x)
- else
- fun_l3_n180(x)
- end
-end
-
-def fun_l2_n44(x)
- if (x < 1)
- fun_l3_n750(x)
- else
- fun_l3_n614(x)
- end
-end
-
-def fun_l2_n45(x)
- if (x < 1)
- fun_l3_n497(x)
- else
- fun_l3_n584(x)
- end
-end
-
-def fun_l2_n46(x)
- if (x < 1)
- fun_l3_n364(x)
- else
- fun_l3_n218(x)
- end
-end
-
-def fun_l2_n47(x)
- if (x < 1)
- fun_l3_n938(x)
- else
- fun_l3_n707(x)
- end
-end
-
-def fun_l2_n48(x)
- if (x < 1)
- fun_l3_n14(x)
- else
- fun_l3_n178(x)
- end
-end
-
-def fun_l2_n49(x)
- if (x < 1)
- fun_l3_n923(x)
- else
- fun_l3_n493(x)
- end
-end
-
-def fun_l2_n50(x)
- if (x < 1)
- fun_l3_n481(x)
- else
- fun_l3_n193(x)
- end
-end
-
-def fun_l2_n51(x)
- if (x < 1)
- fun_l3_n876(x)
- else
- fun_l3_n59(x)
- end
-end
-
-def fun_l2_n52(x)
- if (x < 1)
- fun_l3_n930(x)
- else
- fun_l3_n813(x)
- end
-end
-
-def fun_l2_n53(x)
- if (x < 1)
- fun_l3_n369(x)
- else
- fun_l3_n972(x)
- end
-end
-
-def fun_l2_n54(x)
- if (x < 1)
- fun_l3_n95(x)
- else
- fun_l3_n573(x)
- end
-end
-
-def fun_l2_n55(x)
- if (x < 1)
- fun_l3_n148(x)
- else
- fun_l3_n369(x)
- end
-end
-
-def fun_l2_n56(x)
- if (x < 1)
- fun_l3_n476(x)
- else
- fun_l3_n54(x)
- end
-end
-
-def fun_l2_n57(x)
- if (x < 1)
- fun_l3_n672(x)
- else
- fun_l3_n592(x)
- end
-end
-
-def fun_l2_n58(x)
- if (x < 1)
- fun_l3_n648(x)
- else
- fun_l3_n169(x)
- end
-end
-
-def fun_l2_n59(x)
- if (x < 1)
- fun_l3_n844(x)
- else
- fun_l3_n422(x)
- end
-end
-
-def fun_l2_n60(x)
- if (x < 1)
- fun_l3_n6(x)
- else
- fun_l3_n763(x)
- end
-end
-
-def fun_l2_n61(x)
- if (x < 1)
- fun_l3_n35(x)
- else
- fun_l3_n316(x)
- end
-end
-
-def fun_l2_n62(x)
- if (x < 1)
- fun_l3_n487(x)
- else
- fun_l3_n469(x)
- end
-end
-
-def fun_l2_n63(x)
- if (x < 1)
- fun_l3_n272(x)
- else
- fun_l3_n909(x)
- end
-end
-
-def fun_l2_n64(x)
- if (x < 1)
- fun_l3_n266(x)
- else
- fun_l3_n347(x)
- end
-end
-
-def fun_l2_n65(x)
- if (x < 1)
- fun_l3_n696(x)
- else
- fun_l3_n499(x)
- end
-end
-
-def fun_l2_n66(x)
- if (x < 1)
- fun_l3_n523(x)
- else
- fun_l3_n834(x)
- end
-end
-
-def fun_l2_n67(x)
- if (x < 1)
- fun_l3_n966(x)
- else
- fun_l3_n454(x)
- end
-end
-
-def fun_l2_n68(x)
- if (x < 1)
- fun_l3_n406(x)
- else
- fun_l3_n644(x)
- end
-end
-
-def fun_l2_n69(x)
- if (x < 1)
- fun_l3_n616(x)
- else
- fun_l3_n90(x)
- end
-end
-
-def fun_l2_n70(x)
- if (x < 1)
- fun_l3_n158(x)
- else
- fun_l3_n910(x)
- end
-end
-
-def fun_l2_n71(x)
- if (x < 1)
- fun_l3_n391(x)
- else
- fun_l3_n761(x)
- end
-end
-
-def fun_l2_n72(x)
- if (x < 1)
- fun_l3_n585(x)
- else
- fun_l3_n405(x)
- end
-end
-
-def fun_l2_n73(x)
- if (x < 1)
- fun_l3_n227(x)
- else
- fun_l3_n583(x)
- end
-end
-
-def fun_l2_n74(x)
- if (x < 1)
- fun_l3_n580(x)
- else
- fun_l3_n110(x)
- end
-end
-
-def fun_l2_n75(x)
- if (x < 1)
- fun_l3_n393(x)
- else
- fun_l3_n643(x)
- end
-end
-
-def fun_l2_n76(x)
- if (x < 1)
- fun_l3_n935(x)
- else
- fun_l3_n593(x)
- end
-end
-
-def fun_l2_n77(x)
- if (x < 1)
- fun_l3_n239(x)
- else
- fun_l3_n704(x)
- end
-end
-
-def fun_l2_n78(x)
- if (x < 1)
- fun_l3_n192(x)
- else
- fun_l3_n722(x)
- end
-end
-
-def fun_l2_n79(x)
- if (x < 1)
- fun_l3_n119(x)
- else
- fun_l3_n426(x)
- end
-end
-
-def fun_l2_n80(x)
- if (x < 1)
- fun_l3_n692(x)
- else
- fun_l3_n895(x)
- end
-end
-
-def fun_l2_n81(x)
- if (x < 1)
- fun_l3_n246(x)
- else
- fun_l3_n340(x)
- end
-end
-
-def fun_l2_n82(x)
- if (x < 1)
- fun_l3_n368(x)
- else
- fun_l3_n255(x)
- end
-end
-
-def fun_l2_n83(x)
- if (x < 1)
- fun_l3_n942(x)
- else
- fun_l3_n595(x)
- end
-end
-
-def fun_l2_n84(x)
- if (x < 1)
- fun_l3_n629(x)
- else
- fun_l3_n622(x)
- end
-end
-
-def fun_l2_n85(x)
- if (x < 1)
- fun_l3_n415(x)
- else
- fun_l3_n615(x)
- end
-end
-
-def fun_l2_n86(x)
- if (x < 1)
- fun_l3_n295(x)
- else
- fun_l3_n809(x)
- end
-end
-
-def fun_l2_n87(x)
- if (x < 1)
- fun_l3_n957(x)
- else
- fun_l3_n452(x)
- end
-end
-
-def fun_l2_n88(x)
- if (x < 1)
- fun_l3_n490(x)
- else
- fun_l3_n184(x)
- end
-end
-
-def fun_l2_n89(x)
- if (x < 1)
- fun_l3_n483(x)
- else
- fun_l3_n963(x)
- end
-end
-
-def fun_l2_n90(x)
- if (x < 1)
- fun_l3_n262(x)
- else
- fun_l3_n458(x)
- end
-end
-
-def fun_l2_n91(x)
- if (x < 1)
- fun_l3_n277(x)
- else
- fun_l3_n30(x)
- end
-end
-
-def fun_l2_n92(x)
- if (x < 1)
- fun_l3_n310(x)
- else
- fun_l3_n215(x)
- end
-end
-
-def fun_l2_n93(x)
- if (x < 1)
- fun_l3_n660(x)
- else
- fun_l3_n798(x)
- end
-end
-
-def fun_l2_n94(x)
- if (x < 1)
- fun_l3_n761(x)
- else
- fun_l3_n10(x)
- end
-end
-
-def fun_l2_n95(x)
- if (x < 1)
- fun_l3_n4(x)
- else
- fun_l3_n65(x)
- end
-end
-
-def fun_l2_n96(x)
- if (x < 1)
- fun_l3_n444(x)
- else
- fun_l3_n378(x)
- end
-end
-
-def fun_l2_n97(x)
- if (x < 1)
- fun_l3_n119(x)
- else
- fun_l3_n96(x)
- end
-end
-
-def fun_l2_n98(x)
- if (x < 1)
- fun_l3_n970(x)
- else
- fun_l3_n471(x)
- end
-end
-
-def fun_l2_n99(x)
- if (x < 1)
- fun_l3_n544(x)
- else
- fun_l3_n1(x)
- end
-end
-
-def fun_l2_n100(x)
- if (x < 1)
- fun_l3_n253(x)
- else
- fun_l3_n332(x)
- end
-end
-
-def fun_l2_n101(x)
- if (x < 1)
- fun_l3_n69(x)
- else
- fun_l3_n946(x)
- end
-end
-
-def fun_l2_n102(x)
- if (x < 1)
- fun_l3_n458(x)
- else
- fun_l3_n885(x)
- end
-end
-
-def fun_l2_n103(x)
- if (x < 1)
- fun_l3_n732(x)
- else
- fun_l3_n601(x)
- end
-end
-
-def fun_l2_n104(x)
- if (x < 1)
- fun_l3_n737(x)
- else
- fun_l3_n530(x)
- end
-end
-
-def fun_l2_n105(x)
- if (x < 1)
- fun_l3_n125(x)
- else
- fun_l3_n561(x)
- end
-end
-
-def fun_l2_n106(x)
- if (x < 1)
- fun_l3_n717(x)
- else
- fun_l3_n660(x)
- end
-end
-
-def fun_l2_n107(x)
- if (x < 1)
- fun_l3_n863(x)
- else
- fun_l3_n211(x)
- end
-end
-
-def fun_l2_n108(x)
- if (x < 1)
- fun_l3_n221(x)
- else
- fun_l3_n718(x)
- end
-end
-
-def fun_l2_n109(x)
- if (x < 1)
- fun_l3_n100(x)
- else
- fun_l3_n673(x)
- end
-end
-
-def fun_l2_n110(x)
- if (x < 1)
- fun_l3_n434(x)
- else
- fun_l3_n348(x)
- end
-end
-
-def fun_l2_n111(x)
- if (x < 1)
- fun_l3_n923(x)
- else
- fun_l3_n413(x)
- end
-end
-
-def fun_l2_n112(x)
- if (x < 1)
- fun_l3_n253(x)
- else
- fun_l3_n461(x)
- end
-end
-
-def fun_l2_n113(x)
- if (x < 1)
- fun_l3_n946(x)
- else
- fun_l3_n406(x)
- end
-end
-
-def fun_l2_n114(x)
- if (x < 1)
- fun_l3_n976(x)
- else
- fun_l3_n354(x)
- end
-end
-
-def fun_l2_n115(x)
- if (x < 1)
- fun_l3_n205(x)
- else
- fun_l3_n798(x)
- end
-end
-
-def fun_l2_n116(x)
- if (x < 1)
- fun_l3_n304(x)
- else
- fun_l3_n145(x)
- end
-end
-
-def fun_l2_n117(x)
- if (x < 1)
- fun_l3_n917(x)
- else
- fun_l3_n276(x)
- end
-end
-
-def fun_l2_n118(x)
- if (x < 1)
- fun_l3_n880(x)
- else
- fun_l3_n532(x)
- end
-end
-
-def fun_l2_n119(x)
- if (x < 1)
- fun_l3_n39(x)
- else
- fun_l3_n549(x)
- end
-end
-
-def fun_l2_n120(x)
- if (x < 1)
- fun_l3_n325(x)
- else
- fun_l3_n250(x)
- end
-end
-
-def fun_l2_n121(x)
- if (x < 1)
- fun_l3_n953(x)
- else
- fun_l3_n259(x)
- end
-end
-
-def fun_l2_n122(x)
- if (x < 1)
- fun_l3_n572(x)
- else
- fun_l3_n747(x)
- end
-end
-
-def fun_l2_n123(x)
- if (x < 1)
- fun_l3_n639(x)
- else
- fun_l3_n810(x)
- end
-end
-
-def fun_l2_n124(x)
- if (x < 1)
- fun_l3_n954(x)
- else
- fun_l3_n814(x)
- end
-end
-
-def fun_l2_n125(x)
- if (x < 1)
- fun_l3_n932(x)
- else
- fun_l3_n275(x)
- end
-end
-
-def fun_l2_n126(x)
- if (x < 1)
- fun_l3_n472(x)
- else
- fun_l3_n184(x)
- end
-end
-
-def fun_l2_n127(x)
- if (x < 1)
- fun_l3_n725(x)
- else
- fun_l3_n497(x)
- end
-end
-
-def fun_l2_n128(x)
- if (x < 1)
- fun_l3_n94(x)
- else
- fun_l3_n801(x)
- end
-end
-
-def fun_l2_n129(x)
- if (x < 1)
- fun_l3_n476(x)
- else
- fun_l3_n936(x)
- end
-end
-
-def fun_l2_n130(x)
- if (x < 1)
- fun_l3_n706(x)
- else
- fun_l3_n738(x)
- end
-end
-
-def fun_l2_n131(x)
- if (x < 1)
- fun_l3_n535(x)
- else
- fun_l3_n401(x)
- end
-end
-
-def fun_l2_n132(x)
- if (x < 1)
- fun_l3_n459(x)
- else
- fun_l3_n998(x)
- end
-end
-
-def fun_l2_n133(x)
- if (x < 1)
- fun_l3_n158(x)
- else
- fun_l3_n288(x)
- end
-end
-
-def fun_l2_n134(x)
- if (x < 1)
- fun_l3_n47(x)
- else
- fun_l3_n104(x)
- end
-end
-
-def fun_l2_n135(x)
- if (x < 1)
- fun_l3_n154(x)
- else
- fun_l3_n239(x)
- end
-end
-
-def fun_l2_n136(x)
- if (x < 1)
- fun_l3_n634(x)
- else
- fun_l3_n718(x)
- end
-end
-
-def fun_l2_n137(x)
- if (x < 1)
- fun_l3_n867(x)
- else
- fun_l3_n578(x)
- end
-end
-
-def fun_l2_n138(x)
- if (x < 1)
- fun_l3_n905(x)
- else
- fun_l3_n434(x)
- end
-end
-
-def fun_l2_n139(x)
- if (x < 1)
- fun_l3_n596(x)
- else
- fun_l3_n516(x)
- end
-end
-
-def fun_l2_n140(x)
- if (x < 1)
- fun_l3_n150(x)
- else
- fun_l3_n901(x)
- end
-end
-
-def fun_l2_n141(x)
- if (x < 1)
- fun_l3_n792(x)
- else
- fun_l3_n50(x)
- end
-end
-
-def fun_l2_n142(x)
- if (x < 1)
- fun_l3_n539(x)
- else
- fun_l3_n206(x)
- end
-end
-
-def fun_l2_n143(x)
- if (x < 1)
- fun_l3_n690(x)
- else
- fun_l3_n788(x)
- end
-end
-
-def fun_l2_n144(x)
- if (x < 1)
- fun_l3_n535(x)
- else
- fun_l3_n868(x)
- end
-end
-
-def fun_l2_n145(x)
- if (x < 1)
- fun_l3_n869(x)
- else
- fun_l3_n865(x)
- end
-end
-
-def fun_l2_n146(x)
- if (x < 1)
- fun_l3_n574(x)
- else
- fun_l3_n798(x)
- end
-end
-
-def fun_l2_n147(x)
- if (x < 1)
- fun_l3_n876(x)
- else
- fun_l3_n658(x)
- end
-end
-
-def fun_l2_n148(x)
- if (x < 1)
- fun_l3_n582(x)
- else
- fun_l3_n694(x)
- end
-end
-
-def fun_l2_n149(x)
- if (x < 1)
- fun_l3_n137(x)
- else
- fun_l3_n187(x)
- end
-end
-
-def fun_l2_n150(x)
- if (x < 1)
- fun_l3_n30(x)
- else
- fun_l3_n666(x)
- end
-end
-
-def fun_l2_n151(x)
- if (x < 1)
- fun_l3_n264(x)
- else
- fun_l3_n236(x)
- end
-end
-
-def fun_l2_n152(x)
- if (x < 1)
- fun_l3_n984(x)
- else
- fun_l3_n469(x)
- end
-end
-
-def fun_l2_n153(x)
- if (x < 1)
- fun_l3_n152(x)
- else
- fun_l3_n578(x)
- end
-end
-
-def fun_l2_n154(x)
- if (x < 1)
- fun_l3_n452(x)
- else
- fun_l3_n807(x)
- end
-end
-
-def fun_l2_n155(x)
- if (x < 1)
- fun_l3_n82(x)
- else
- fun_l3_n589(x)
- end
-end
-
-def fun_l2_n156(x)
- if (x < 1)
- fun_l3_n356(x)
- else
- fun_l3_n454(x)
- end
-end
-
-def fun_l2_n157(x)
- if (x < 1)
- fun_l3_n814(x)
- else
- fun_l3_n376(x)
- end
-end
-
-def fun_l2_n158(x)
- if (x < 1)
- fun_l3_n755(x)
- else
- fun_l3_n966(x)
- end
-end
-
-def fun_l2_n159(x)
- if (x < 1)
- fun_l3_n167(x)
- else
- fun_l3_n571(x)
- end
-end
-
-def fun_l2_n160(x)
- if (x < 1)
- fun_l3_n919(x)
- else
- fun_l3_n771(x)
- end
-end
-
-def fun_l2_n161(x)
- if (x < 1)
- fun_l3_n147(x)
- else
- fun_l3_n936(x)
- end
-end
-
-def fun_l2_n162(x)
- if (x < 1)
- fun_l3_n638(x)
- else
- fun_l3_n23(x)
- end
-end
-
-def fun_l2_n163(x)
- if (x < 1)
- fun_l3_n349(x)
- else
- fun_l3_n46(x)
- end
-end
-
-def fun_l2_n164(x)
- if (x < 1)
- fun_l3_n55(x)
- else
- fun_l3_n795(x)
- end
-end
-
-def fun_l2_n165(x)
- if (x < 1)
- fun_l3_n131(x)
- else
- fun_l3_n233(x)
- end
-end
-
-def fun_l2_n166(x)
- if (x < 1)
- fun_l3_n324(x)
- else
- fun_l3_n215(x)
- end
-end
-
-def fun_l2_n167(x)
- if (x < 1)
- fun_l3_n244(x)
- else
- fun_l3_n641(x)
- end
-end
-
-def fun_l2_n168(x)
- if (x < 1)
- fun_l3_n744(x)
- else
- fun_l3_n337(x)
- end
-end
-
-def fun_l2_n169(x)
- if (x < 1)
- fun_l3_n760(x)
- else
- fun_l3_n82(x)
- end
-end
-
-def fun_l2_n170(x)
- if (x < 1)
- fun_l3_n877(x)
- else
- fun_l3_n566(x)
- end
-end
-
-def fun_l2_n171(x)
- if (x < 1)
- fun_l3_n211(x)
- else
- fun_l3_n101(x)
- end
-end
-
-def fun_l2_n172(x)
- if (x < 1)
- fun_l3_n143(x)
- else
- fun_l3_n537(x)
- end
-end
-
-def fun_l2_n173(x)
- if (x < 1)
- fun_l3_n210(x)
- else
- fun_l3_n150(x)
- end
-end
-
-def fun_l2_n174(x)
- if (x < 1)
- fun_l3_n772(x)
- else
- fun_l3_n42(x)
- end
-end
-
-def fun_l2_n175(x)
- if (x < 1)
- fun_l3_n482(x)
- else
- fun_l3_n606(x)
- end
-end
-
-def fun_l2_n176(x)
- if (x < 1)
- fun_l3_n68(x)
- else
- fun_l3_n888(x)
- end
-end
-
-def fun_l2_n177(x)
- if (x < 1)
- fun_l3_n313(x)
- else
- fun_l3_n947(x)
- end
-end
-
-def fun_l2_n178(x)
- if (x < 1)
- fun_l3_n116(x)
- else
- fun_l3_n812(x)
- end
-end
-
-def fun_l2_n179(x)
- if (x < 1)
- fun_l3_n741(x)
- else
- fun_l3_n994(x)
- end
-end
-
-def fun_l2_n180(x)
- if (x < 1)
- fun_l3_n667(x)
- else
- fun_l3_n335(x)
- end
-end
-
-def fun_l2_n181(x)
- if (x < 1)
- fun_l3_n994(x)
- else
- fun_l3_n502(x)
- end
-end
-
-def fun_l2_n182(x)
- if (x < 1)
- fun_l3_n528(x)
- else
- fun_l3_n272(x)
- end
-end
-
-def fun_l2_n183(x)
- if (x < 1)
- fun_l3_n649(x)
- else
- fun_l3_n200(x)
- end
-end
-
-def fun_l2_n184(x)
- if (x < 1)
- fun_l3_n105(x)
- else
- fun_l3_n897(x)
- end
-end
-
-def fun_l2_n185(x)
- if (x < 1)
- fun_l3_n980(x)
- else
- fun_l3_n651(x)
- end
-end
-
-def fun_l2_n186(x)
- if (x < 1)
- fun_l3_n835(x)
- else
- fun_l3_n388(x)
- end
-end
-
-def fun_l2_n187(x)
- if (x < 1)
- fun_l3_n769(x)
- else
- fun_l3_n162(x)
- end
-end
-
-def fun_l2_n188(x)
- if (x < 1)
- fun_l3_n934(x)
- else
- fun_l3_n874(x)
- end
-end
-
-def fun_l2_n189(x)
- if (x < 1)
- fun_l3_n407(x)
- else
- fun_l3_n180(x)
- end
-end
-
-def fun_l2_n190(x)
- if (x < 1)
- fun_l3_n594(x)
- else
- fun_l3_n929(x)
- end
-end
-
-def fun_l2_n191(x)
- if (x < 1)
- fun_l3_n303(x)
- else
- fun_l3_n528(x)
- end
-end
-
-def fun_l2_n192(x)
- if (x < 1)
- fun_l3_n768(x)
- else
- fun_l3_n226(x)
- end
-end
-
-def fun_l2_n193(x)
- if (x < 1)
- fun_l3_n618(x)
- else
- fun_l3_n821(x)
- end
-end
-
-def fun_l2_n194(x)
- if (x < 1)
- fun_l3_n953(x)
- else
- fun_l3_n969(x)
- end
-end
-
-def fun_l2_n195(x)
- if (x < 1)
- fun_l3_n574(x)
- else
- fun_l3_n344(x)
- end
-end
-
-def fun_l2_n196(x)
- if (x < 1)
- fun_l3_n943(x)
- else
- fun_l3_n304(x)
- end
-end
-
-def fun_l2_n197(x)
- if (x < 1)
- fun_l3_n276(x)
- else
- fun_l3_n502(x)
- end
-end
-
-def fun_l2_n198(x)
- if (x < 1)
- fun_l3_n597(x)
- else
- fun_l3_n197(x)
- end
-end
-
-def fun_l2_n199(x)
- if (x < 1)
- fun_l3_n517(x)
- else
- fun_l3_n34(x)
- end
-end
-
-def fun_l2_n200(x)
- if (x < 1)
- fun_l3_n980(x)
- else
- fun_l3_n672(x)
- end
-end
-
-def fun_l2_n201(x)
- if (x < 1)
- fun_l3_n510(x)
- else
- fun_l3_n804(x)
- end
-end
-
-def fun_l2_n202(x)
- if (x < 1)
- fun_l3_n735(x)
- else
- fun_l3_n367(x)
- end
-end
-
-def fun_l2_n203(x)
- if (x < 1)
- fun_l3_n546(x)
- else
- fun_l3_n502(x)
- end
-end
-
-def fun_l2_n204(x)
- if (x < 1)
- fun_l3_n189(x)
- else
- fun_l3_n639(x)
- end
-end
-
-def fun_l2_n205(x)
- if (x < 1)
- fun_l3_n396(x)
- else
- fun_l3_n862(x)
- end
-end
-
-def fun_l2_n206(x)
- if (x < 1)
- fun_l3_n679(x)
- else
- fun_l3_n881(x)
- end
-end
-
-def fun_l2_n207(x)
- if (x < 1)
- fun_l3_n342(x)
- else
- fun_l3_n522(x)
- end
-end
-
-def fun_l2_n208(x)
- if (x < 1)
- fun_l3_n173(x)
- else
- fun_l3_n323(x)
- end
-end
-
-def fun_l2_n209(x)
- if (x < 1)
- fun_l3_n693(x)
- else
- fun_l3_n160(x)
- end
-end
-
-def fun_l2_n210(x)
- if (x < 1)
- fun_l3_n827(x)
- else
- fun_l3_n580(x)
- end
-end
-
-def fun_l2_n211(x)
- if (x < 1)
- fun_l3_n213(x)
- else
- fun_l3_n100(x)
- end
-end
-
-def fun_l2_n212(x)
- if (x < 1)
- fun_l3_n915(x)
- else
- fun_l3_n531(x)
- end
-end
-
-def fun_l2_n213(x)
- if (x < 1)
- fun_l3_n260(x)
- else
- fun_l3_n279(x)
- end
-end
-
-def fun_l2_n214(x)
- if (x < 1)
- fun_l3_n468(x)
- else
- fun_l3_n257(x)
- end
-end
-
-def fun_l2_n215(x)
- if (x < 1)
- fun_l3_n990(x)
- else
- fun_l3_n740(x)
- end
-end
-
-def fun_l2_n216(x)
- if (x < 1)
- fun_l3_n291(x)
- else
- fun_l3_n625(x)
- end
-end
-
-def fun_l2_n217(x)
- if (x < 1)
- fun_l3_n493(x)
- else
- fun_l3_n726(x)
- end
-end
-
-def fun_l2_n218(x)
- if (x < 1)
- fun_l3_n714(x)
- else
- fun_l3_n793(x)
- end
-end
-
-def fun_l2_n219(x)
- if (x < 1)
- fun_l3_n683(x)
- else
- fun_l3_n715(x)
- end
-end
-
-def fun_l2_n220(x)
- if (x < 1)
- fun_l3_n249(x)
- else
- fun_l3_n266(x)
- end
-end
-
-def fun_l2_n221(x)
- if (x < 1)
- fun_l3_n324(x)
- else
- fun_l3_n22(x)
- end
-end
-
-def fun_l2_n222(x)
- if (x < 1)
- fun_l3_n978(x)
- else
- fun_l3_n885(x)
- end
-end
-
-def fun_l2_n223(x)
- if (x < 1)
- fun_l3_n821(x)
- else
- fun_l3_n412(x)
- end
-end
-
-def fun_l2_n224(x)
- if (x < 1)
- fun_l3_n636(x)
- else
- fun_l3_n641(x)
- end
-end
-
-def fun_l2_n225(x)
- if (x < 1)
- fun_l3_n971(x)
- else
- fun_l3_n288(x)
- end
-end
-
-def fun_l2_n226(x)
- if (x < 1)
- fun_l3_n429(x)
- else
- fun_l3_n323(x)
- end
-end
-
-def fun_l2_n227(x)
- if (x < 1)
- fun_l3_n909(x)
- else
- fun_l3_n267(x)
- end
-end
-
-def fun_l2_n228(x)
- if (x < 1)
- fun_l3_n437(x)
- else
- fun_l3_n985(x)
- end
-end
-
-def fun_l2_n229(x)
- if (x < 1)
- fun_l3_n131(x)
- else
- fun_l3_n298(x)
- end
-end
-
-def fun_l2_n230(x)
- if (x < 1)
- fun_l3_n865(x)
- else
- fun_l3_n288(x)
- end
-end
-
-def fun_l2_n231(x)
- if (x < 1)
- fun_l3_n772(x)
- else
- fun_l3_n531(x)
- end
-end
-
-def fun_l2_n232(x)
- if (x < 1)
- fun_l3_n30(x)
- else
- fun_l3_n422(x)
- end
-end
-
-def fun_l2_n233(x)
- if (x < 1)
- fun_l3_n82(x)
- else
- fun_l3_n32(x)
- end
-end
-
-def fun_l2_n234(x)
- if (x < 1)
- fun_l3_n25(x)
- else
- fun_l3_n518(x)
- end
-end
-
-def fun_l2_n235(x)
- if (x < 1)
- fun_l3_n313(x)
- else
- fun_l3_n179(x)
- end
-end
-
-def fun_l2_n236(x)
- if (x < 1)
- fun_l3_n819(x)
- else
- fun_l3_n586(x)
- end
-end
-
-def fun_l2_n237(x)
- if (x < 1)
- fun_l3_n398(x)
- else
- fun_l3_n921(x)
- end
-end
-
-def fun_l2_n238(x)
- if (x < 1)
- fun_l3_n667(x)
- else
- fun_l3_n795(x)
- end
-end
-
-def fun_l2_n239(x)
- if (x < 1)
- fun_l3_n862(x)
- else
- fun_l3_n222(x)
- end
-end
-
-def fun_l2_n240(x)
- if (x < 1)
- fun_l3_n968(x)
- else
- fun_l3_n320(x)
- end
-end
-
-def fun_l2_n241(x)
- if (x < 1)
- fun_l3_n559(x)
- else
- fun_l3_n50(x)
- end
-end
-
-def fun_l2_n242(x)
- if (x < 1)
- fun_l3_n647(x)
- else
- fun_l3_n232(x)
- end
-end
-
-def fun_l2_n243(x)
- if (x < 1)
- fun_l3_n425(x)
- else
- fun_l3_n815(x)
- end
-end
-
-def fun_l2_n244(x)
- if (x < 1)
- fun_l3_n752(x)
- else
- fun_l3_n690(x)
- end
-end
-
-def fun_l2_n245(x)
- if (x < 1)
- fun_l3_n382(x)
- else
- fun_l3_n817(x)
- end
-end
-
-def fun_l2_n246(x)
- if (x < 1)
- fun_l3_n880(x)
- else
- fun_l3_n380(x)
- end
-end
-
-def fun_l2_n247(x)
- if (x < 1)
- fun_l3_n444(x)
- else
- fun_l3_n75(x)
- end
-end
-
-def fun_l2_n248(x)
- if (x < 1)
- fun_l3_n368(x)
- else
- fun_l3_n314(x)
- end
-end
-
-def fun_l2_n249(x)
- if (x < 1)
- fun_l3_n131(x)
- else
- fun_l3_n398(x)
- end
-end
-
-def fun_l2_n250(x)
- if (x < 1)
- fun_l3_n376(x)
- else
- fun_l3_n449(x)
- end
-end
-
-def fun_l2_n251(x)
- if (x < 1)
- fun_l3_n404(x)
- else
- fun_l3_n301(x)
- end
-end
-
-def fun_l2_n252(x)
- if (x < 1)
- fun_l3_n274(x)
- else
- fun_l3_n430(x)
- end
-end
-
-def fun_l2_n253(x)
- if (x < 1)
- fun_l3_n734(x)
- else
- fun_l3_n255(x)
- end
-end
-
-def fun_l2_n254(x)
- if (x < 1)
- fun_l3_n30(x)
- else
- fun_l3_n944(x)
- end
-end
-
-def fun_l2_n255(x)
- if (x < 1)
- fun_l3_n978(x)
- else
- fun_l3_n898(x)
- end
-end
-
-def fun_l2_n256(x)
- if (x < 1)
- fun_l3_n175(x)
- else
- fun_l3_n477(x)
- end
-end
-
-def fun_l2_n257(x)
- if (x < 1)
- fun_l3_n84(x)
- else
- fun_l3_n772(x)
- end
-end
-
-def fun_l2_n258(x)
- if (x < 1)
- fun_l3_n605(x)
- else
- fun_l3_n144(x)
- end
-end
-
-def fun_l2_n259(x)
- if (x < 1)
- fun_l3_n51(x)
- else
- fun_l3_n542(x)
- end
-end
-
-def fun_l2_n260(x)
- if (x < 1)
- fun_l3_n940(x)
- else
- fun_l3_n316(x)
- end
-end
-
-def fun_l2_n261(x)
- if (x < 1)
- fun_l3_n702(x)
- else
- fun_l3_n197(x)
- end
-end
-
-def fun_l2_n262(x)
- if (x < 1)
- fun_l3_n164(x)
- else
- fun_l3_n21(x)
- end
-end
-
-def fun_l2_n263(x)
- if (x < 1)
- fun_l3_n432(x)
- else
- fun_l3_n496(x)
- end
-end
-
-def fun_l2_n264(x)
- if (x < 1)
- fun_l3_n265(x)
- else
- fun_l3_n40(x)
- end
-end
-
-def fun_l2_n265(x)
- if (x < 1)
- fun_l3_n951(x)
- else
- fun_l3_n723(x)
- end
-end
-
-def fun_l2_n266(x)
- if (x < 1)
- fun_l3_n279(x)
- else
- fun_l3_n167(x)
- end
-end
-
-def fun_l2_n267(x)
- if (x < 1)
- fun_l3_n51(x)
- else
- fun_l3_n283(x)
- end
-end
-
-def fun_l2_n268(x)
- if (x < 1)
- fun_l3_n389(x)
- else
- fun_l3_n264(x)
- end
-end
-
-def fun_l2_n269(x)
- if (x < 1)
- fun_l3_n68(x)
- else
- fun_l3_n484(x)
- end
-end
-
-def fun_l2_n270(x)
- if (x < 1)
- fun_l3_n435(x)
- else
- fun_l3_n204(x)
- end
-end
-
-def fun_l2_n271(x)
- if (x < 1)
- fun_l3_n717(x)
- else
- fun_l3_n763(x)
- end
-end
-
-def fun_l2_n272(x)
- if (x < 1)
- fun_l3_n901(x)
- else
- fun_l3_n332(x)
- end
-end
-
-def fun_l2_n273(x)
- if (x < 1)
- fun_l3_n358(x)
- else
- fun_l3_n608(x)
- end
-end
-
-def fun_l2_n274(x)
- if (x < 1)
- fun_l3_n885(x)
- else
- fun_l3_n490(x)
- end
-end
-
-def fun_l2_n275(x)
- if (x < 1)
- fun_l3_n82(x)
- else
- fun_l3_n87(x)
- end
-end
-
-def fun_l2_n276(x)
- if (x < 1)
- fun_l3_n698(x)
- else
- fun_l3_n846(x)
- end
-end
-
-def fun_l2_n277(x)
- if (x < 1)
- fun_l3_n690(x)
- else
- fun_l3_n457(x)
- end
-end
-
-def fun_l2_n278(x)
- if (x < 1)
- fun_l3_n925(x)
- else
- fun_l3_n674(x)
- end
-end
-
-def fun_l2_n279(x)
- if (x < 1)
- fun_l3_n797(x)
- else
- fun_l3_n315(x)
- end
-end
-
-def fun_l2_n280(x)
- if (x < 1)
- fun_l3_n73(x)
- else
- fun_l3_n2(x)
- end
-end
-
-def fun_l2_n281(x)
- if (x < 1)
- fun_l3_n301(x)
- else
- fun_l3_n315(x)
- end
-end
-
-def fun_l2_n282(x)
- if (x < 1)
- fun_l3_n473(x)
- else
- fun_l3_n639(x)
- end
-end
-
-def fun_l2_n283(x)
- if (x < 1)
- fun_l3_n812(x)
- else
- fun_l3_n241(x)
- end
-end
-
-def fun_l2_n284(x)
- if (x < 1)
- fun_l3_n0(x)
- else
- fun_l3_n445(x)
- end
-end
-
-def fun_l2_n285(x)
- if (x < 1)
- fun_l3_n587(x)
- else
- fun_l3_n806(x)
- end
-end
-
-def fun_l2_n286(x)
- if (x < 1)
- fun_l3_n169(x)
- else
- fun_l3_n546(x)
- end
-end
-
-def fun_l2_n287(x)
- if (x < 1)
- fun_l3_n623(x)
- else
- fun_l3_n677(x)
- end
-end
-
-def fun_l2_n288(x)
- if (x < 1)
- fun_l3_n804(x)
- else
- fun_l3_n80(x)
- end
-end
-
-def fun_l2_n289(x)
- if (x < 1)
- fun_l3_n812(x)
- else
- fun_l3_n197(x)
- end
-end
-
-def fun_l2_n290(x)
- if (x < 1)
- fun_l3_n551(x)
- else
- fun_l3_n896(x)
- end
-end
-
-def fun_l2_n291(x)
- if (x < 1)
- fun_l3_n686(x)
- else
- fun_l3_n884(x)
- end
-end
-
-def fun_l2_n292(x)
- if (x < 1)
- fun_l3_n427(x)
- else
- fun_l3_n251(x)
- end
-end
-
-def fun_l2_n293(x)
- if (x < 1)
- fun_l3_n375(x)
- else
- fun_l3_n309(x)
- end
-end
-
-def fun_l2_n294(x)
- if (x < 1)
- fun_l3_n371(x)
- else
- fun_l3_n184(x)
- end
-end
-
-def fun_l2_n295(x)
- if (x < 1)
- fun_l3_n332(x)
- else
- fun_l3_n250(x)
- end
-end
-
-def fun_l2_n296(x)
- if (x < 1)
- fun_l3_n333(x)
- else
- fun_l3_n254(x)
- end
-end
-
-def fun_l2_n297(x)
- if (x < 1)
- fun_l3_n24(x)
- else
- fun_l3_n528(x)
- end
-end
-
-def fun_l2_n298(x)
- if (x < 1)
- fun_l3_n96(x)
- else
- fun_l3_n653(x)
- end
-end
-
-def fun_l2_n299(x)
- if (x < 1)
- fun_l3_n920(x)
- else
- fun_l3_n475(x)
- end
-end
-
-def fun_l2_n300(x)
- if (x < 1)
- fun_l3_n337(x)
- else
- fun_l3_n378(x)
- end
-end
-
-def fun_l2_n301(x)
- if (x < 1)
- fun_l3_n778(x)
- else
- fun_l3_n216(x)
- end
-end
-
-def fun_l2_n302(x)
- if (x < 1)
- fun_l3_n366(x)
- else
- fun_l3_n562(x)
- end
-end
-
-def fun_l2_n303(x)
- if (x < 1)
- fun_l3_n656(x)
- else
- fun_l3_n779(x)
- end
-end
-
-def fun_l2_n304(x)
- if (x < 1)
- fun_l3_n526(x)
- else
- fun_l3_n783(x)
- end
-end
-
-def fun_l2_n305(x)
- if (x < 1)
- fun_l3_n500(x)
- else
- fun_l3_n744(x)
- end
-end
-
-def fun_l2_n306(x)
- if (x < 1)
- fun_l3_n953(x)
- else
- fun_l3_n394(x)
- end
-end
-
-def fun_l2_n307(x)
- if (x < 1)
- fun_l3_n385(x)
- else
- fun_l3_n937(x)
- end
-end
-
-def fun_l2_n308(x)
- if (x < 1)
- fun_l3_n742(x)
- else
- fun_l3_n984(x)
- end
-end
-
-def fun_l2_n309(x)
- if (x < 1)
- fun_l3_n388(x)
- else
- fun_l3_n704(x)
- end
-end
-
-def fun_l2_n310(x)
- if (x < 1)
- fun_l3_n252(x)
- else
- fun_l3_n585(x)
- end
-end
-
-def fun_l2_n311(x)
- if (x < 1)
- fun_l3_n121(x)
- else
- fun_l3_n815(x)
- end
-end
-
-def fun_l2_n312(x)
- if (x < 1)
- fun_l3_n657(x)
- else
- fun_l3_n338(x)
- end
-end
-
-def fun_l2_n313(x)
- if (x < 1)
- fun_l3_n115(x)
- else
- fun_l3_n748(x)
- end
-end
-
-def fun_l2_n314(x)
- if (x < 1)
- fun_l3_n237(x)
- else
- fun_l3_n319(x)
- end
-end
-
-def fun_l2_n315(x)
- if (x < 1)
- fun_l3_n684(x)
- else
- fun_l3_n428(x)
- end
-end
-
-def fun_l2_n316(x)
- if (x < 1)
- fun_l3_n416(x)
- else
- fun_l3_n499(x)
- end
-end
-
-def fun_l2_n317(x)
- if (x < 1)
- fun_l3_n305(x)
- else
- fun_l3_n888(x)
- end
-end
-
-def fun_l2_n318(x)
- if (x < 1)
- fun_l3_n506(x)
- else
- fun_l3_n579(x)
- end
-end
-
-def fun_l2_n319(x)
- if (x < 1)
- fun_l3_n324(x)
- else
- fun_l3_n459(x)
- end
-end
-
-def fun_l2_n320(x)
- if (x < 1)
- fun_l3_n278(x)
- else
- fun_l3_n89(x)
- end
-end
-
-def fun_l2_n321(x)
- if (x < 1)
- fun_l3_n319(x)
- else
- fun_l3_n903(x)
- end
-end
-
-def fun_l2_n322(x)
- if (x < 1)
- fun_l3_n96(x)
- else
- fun_l3_n334(x)
- end
-end
-
-def fun_l2_n323(x)
- if (x < 1)
- fun_l3_n913(x)
- else
- fun_l3_n309(x)
- end
-end
-
-def fun_l2_n324(x)
- if (x < 1)
- fun_l3_n186(x)
- else
- fun_l3_n453(x)
- end
-end
-
-def fun_l2_n325(x)
- if (x < 1)
- fun_l3_n223(x)
- else
- fun_l3_n761(x)
- end
-end
-
-def fun_l2_n326(x)
- if (x < 1)
- fun_l3_n757(x)
- else
- fun_l3_n700(x)
- end
-end
-
-def fun_l2_n327(x)
- if (x < 1)
- fun_l3_n316(x)
- else
- fun_l3_n3(x)
- end
-end
-
-def fun_l2_n328(x)
- if (x < 1)
- fun_l3_n680(x)
- else
- fun_l3_n275(x)
- end
-end
-
-def fun_l2_n329(x)
- if (x < 1)
- fun_l3_n731(x)
- else
- fun_l3_n971(x)
- end
-end
-
-def fun_l2_n330(x)
- if (x < 1)
- fun_l3_n672(x)
- else
- fun_l3_n389(x)
- end
-end
-
-def fun_l2_n331(x)
- if (x < 1)
- fun_l3_n947(x)
- else
- fun_l3_n778(x)
- end
-end
-
-def fun_l2_n332(x)
- if (x < 1)
- fun_l3_n23(x)
- else
- fun_l3_n478(x)
- end
-end
-
-def fun_l2_n333(x)
- if (x < 1)
- fun_l3_n778(x)
- else
- fun_l3_n894(x)
- end
-end
-
-def fun_l2_n334(x)
- if (x < 1)
- fun_l3_n198(x)
- else
- fun_l3_n830(x)
- end
-end
-
-def fun_l2_n335(x)
- if (x < 1)
- fun_l3_n874(x)
- else
- fun_l3_n861(x)
- end
-end
-
-def fun_l2_n336(x)
- if (x < 1)
- fun_l3_n66(x)
- else
- fun_l3_n47(x)
- end
-end
-
-def fun_l2_n337(x)
- if (x < 1)
- fun_l3_n65(x)
- else
- fun_l3_n849(x)
- end
-end
-
-def fun_l2_n338(x)
- if (x < 1)
- fun_l3_n122(x)
- else
- fun_l3_n891(x)
- end
-end
-
-def fun_l2_n339(x)
- if (x < 1)
- fun_l3_n377(x)
- else
- fun_l3_n862(x)
- end
-end
-
-def fun_l2_n340(x)
- if (x < 1)
- fun_l3_n278(x)
- else
- fun_l3_n495(x)
- end
-end
-
-def fun_l2_n341(x)
- if (x < 1)
- fun_l3_n396(x)
- else
- fun_l3_n842(x)
- end
-end
-
-def fun_l2_n342(x)
- if (x < 1)
- fun_l3_n971(x)
- else
- fun_l3_n296(x)
- end
-end
-
-def fun_l2_n343(x)
- if (x < 1)
- fun_l3_n137(x)
- else
- fun_l3_n815(x)
- end
-end
-
-def fun_l2_n344(x)
- if (x < 1)
- fun_l3_n910(x)
- else
- fun_l3_n515(x)
- end
-end
-
-def fun_l2_n345(x)
- if (x < 1)
- fun_l3_n415(x)
- else
- fun_l3_n766(x)
- end
-end
-
-def fun_l2_n346(x)
- if (x < 1)
- fun_l3_n816(x)
- else
- fun_l3_n169(x)
- end
-end
-
-def fun_l2_n347(x)
- if (x < 1)
- fun_l3_n223(x)
- else
- fun_l3_n776(x)
- end
-end
-
-def fun_l2_n348(x)
- if (x < 1)
- fun_l3_n316(x)
- else
- fun_l3_n497(x)
- end
-end
-
-def fun_l2_n349(x)
- if (x < 1)
- fun_l3_n116(x)
- else
- fun_l3_n536(x)
- end
-end
-
-def fun_l2_n350(x)
- if (x < 1)
- fun_l3_n252(x)
- else
- fun_l3_n981(x)
- end
-end
-
-def fun_l2_n351(x)
- if (x < 1)
- fun_l3_n783(x)
- else
- fun_l3_n596(x)
- end
-end
-
-def fun_l2_n352(x)
- if (x < 1)
- fun_l3_n72(x)
- else
- fun_l3_n978(x)
- end
-end
-
-def fun_l2_n353(x)
- if (x < 1)
- fun_l3_n910(x)
- else
- fun_l3_n493(x)
- end
-end
-
-def fun_l2_n354(x)
- if (x < 1)
- fun_l3_n671(x)
- else
- fun_l3_n297(x)
- end
-end
-
-def fun_l2_n355(x)
- if (x < 1)
- fun_l3_n820(x)
- else
- fun_l3_n456(x)
- end
-end
-
-def fun_l2_n356(x)
- if (x < 1)
- fun_l3_n23(x)
- else
- fun_l3_n760(x)
- end
-end
-
-def fun_l2_n357(x)
- if (x < 1)
- fun_l3_n676(x)
- else
- fun_l3_n531(x)
- end
-end
-
-def fun_l2_n358(x)
- if (x < 1)
- fun_l3_n849(x)
- else
- fun_l3_n592(x)
- end
-end
-
-def fun_l2_n359(x)
- if (x < 1)
- fun_l3_n492(x)
- else
- fun_l3_n845(x)
- end
-end
-
-def fun_l2_n360(x)
- if (x < 1)
- fun_l3_n58(x)
- else
- fun_l3_n896(x)
- end
-end
-
-def fun_l2_n361(x)
- if (x < 1)
- fun_l3_n427(x)
- else
- fun_l3_n434(x)
- end
-end
-
-def fun_l2_n362(x)
- if (x < 1)
- fun_l3_n129(x)
- else
- fun_l3_n582(x)
- end
-end
-
-def fun_l2_n363(x)
- if (x < 1)
- fun_l3_n901(x)
- else
- fun_l3_n405(x)
- end
-end
-
-def fun_l2_n364(x)
- if (x < 1)
- fun_l3_n577(x)
- else
- fun_l3_n550(x)
- end
-end
-
-def fun_l2_n365(x)
- if (x < 1)
- fun_l3_n717(x)
- else
- fun_l3_n660(x)
- end
-end
-
-def fun_l2_n366(x)
- if (x < 1)
- fun_l3_n605(x)
- else
- fun_l3_n755(x)
- end
-end
-
-def fun_l2_n367(x)
- if (x < 1)
- fun_l3_n875(x)
- else
- fun_l3_n784(x)
- end
-end
-
-def fun_l2_n368(x)
- if (x < 1)
- fun_l3_n914(x)
- else
- fun_l3_n351(x)
- end
-end
-
-def fun_l2_n369(x)
- if (x < 1)
- fun_l3_n684(x)
- else
- fun_l3_n932(x)
- end
-end
-
-def fun_l2_n370(x)
- if (x < 1)
- fun_l3_n796(x)
- else
- fun_l3_n920(x)
- end
-end
-
-def fun_l2_n371(x)
- if (x < 1)
- fun_l3_n456(x)
- else
- fun_l3_n188(x)
- end
-end
-
-def fun_l2_n372(x)
- if (x < 1)
- fun_l3_n891(x)
- else
- fun_l3_n905(x)
- end
-end
-
-def fun_l2_n373(x)
- if (x < 1)
- fun_l3_n906(x)
- else
- fun_l3_n993(x)
- end
-end
-
-def fun_l2_n374(x)
- if (x < 1)
- fun_l3_n811(x)
- else
- fun_l3_n629(x)
- end
-end
-
-def fun_l2_n375(x)
- if (x < 1)
- fun_l3_n5(x)
- else
- fun_l3_n304(x)
- end
-end
-
-def fun_l2_n376(x)
- if (x < 1)
- fun_l3_n240(x)
- else
- fun_l3_n859(x)
- end
-end
-
-def fun_l2_n377(x)
- if (x < 1)
- fun_l3_n346(x)
- else
- fun_l3_n196(x)
- end
-end
-
-def fun_l2_n378(x)
- if (x < 1)
- fun_l3_n918(x)
- else
- fun_l3_n371(x)
- end
-end
-
-def fun_l2_n379(x)
- if (x < 1)
- fun_l3_n112(x)
- else
- fun_l3_n269(x)
- end
-end
-
-def fun_l2_n380(x)
- if (x < 1)
- fun_l3_n46(x)
- else
- fun_l3_n397(x)
- end
-end
-
-def fun_l2_n381(x)
- if (x < 1)
- fun_l3_n977(x)
- else
- fun_l3_n647(x)
- end
-end
-
-def fun_l2_n382(x)
- if (x < 1)
- fun_l3_n788(x)
- else
- fun_l3_n418(x)
- end
-end
-
-def fun_l2_n383(x)
- if (x < 1)
- fun_l3_n395(x)
- else
- fun_l3_n268(x)
- end
-end
-
-def fun_l2_n384(x)
- if (x < 1)
- fun_l3_n39(x)
- else
- fun_l3_n950(x)
- end
-end
-
-def fun_l2_n385(x)
- if (x < 1)
- fun_l3_n301(x)
- else
- fun_l3_n241(x)
- end
-end
-
-def fun_l2_n386(x)
- if (x < 1)
- fun_l3_n936(x)
- else
- fun_l3_n416(x)
- end
-end
-
-def fun_l2_n387(x)
- if (x < 1)
- fun_l3_n750(x)
- else
- fun_l3_n152(x)
- end
-end
-
-def fun_l2_n388(x)
- if (x < 1)
- fun_l3_n210(x)
- else
- fun_l3_n824(x)
- end
-end
-
-def fun_l2_n389(x)
- if (x < 1)
- fun_l3_n3(x)
- else
- fun_l3_n872(x)
- end
-end
-
-def fun_l2_n390(x)
- if (x < 1)
- fun_l3_n944(x)
- else
- fun_l3_n49(x)
- end
-end
-
-def fun_l2_n391(x)
- if (x < 1)
- fun_l3_n645(x)
- else
- fun_l3_n604(x)
- end
-end
-
-def fun_l2_n392(x)
- if (x < 1)
- fun_l3_n539(x)
- else
- fun_l3_n374(x)
- end
-end
-
-def fun_l2_n393(x)
- if (x < 1)
- fun_l3_n728(x)
- else
- fun_l3_n620(x)
- end
-end
-
-def fun_l2_n394(x)
- if (x < 1)
- fun_l3_n538(x)
- else
- fun_l3_n233(x)
- end
-end
-
-def fun_l2_n395(x)
- if (x < 1)
- fun_l3_n977(x)
- else
- fun_l3_n351(x)
- end
-end
-
-def fun_l2_n396(x)
- if (x < 1)
- fun_l3_n54(x)
- else
- fun_l3_n958(x)
- end
-end
-
-def fun_l2_n397(x)
- if (x < 1)
- fun_l3_n237(x)
- else
- fun_l3_n54(x)
- end
-end
-
-def fun_l2_n398(x)
- if (x < 1)
- fun_l3_n846(x)
- else
- fun_l3_n234(x)
- end
-end
-
-def fun_l2_n399(x)
- if (x < 1)
- fun_l3_n934(x)
- else
- fun_l3_n128(x)
- end
-end
-
-def fun_l2_n400(x)
- if (x < 1)
- fun_l3_n15(x)
- else
- fun_l3_n288(x)
- end
-end
-
-def fun_l2_n401(x)
- if (x < 1)
- fun_l3_n944(x)
- else
- fun_l3_n455(x)
- end
-end
-
-def fun_l2_n402(x)
- if (x < 1)
- fun_l3_n962(x)
- else
- fun_l3_n785(x)
- end
-end
-
-def fun_l2_n403(x)
- if (x < 1)
- fun_l3_n408(x)
- else
- fun_l3_n689(x)
- end
-end
-
-def fun_l2_n404(x)
- if (x < 1)
- fun_l3_n722(x)
- else
- fun_l3_n704(x)
- end
-end
-
-def fun_l2_n405(x)
- if (x < 1)
- fun_l3_n410(x)
- else
- fun_l3_n543(x)
- end
-end
-
-def fun_l2_n406(x)
- if (x < 1)
- fun_l3_n953(x)
- else
- fun_l3_n351(x)
- end
-end
-
-def fun_l2_n407(x)
- if (x < 1)
- fun_l3_n426(x)
- else
- fun_l3_n467(x)
- end
-end
-
-def fun_l2_n408(x)
- if (x < 1)
- fun_l3_n204(x)
- else
- fun_l3_n163(x)
- end
-end
-
-def fun_l2_n409(x)
- if (x < 1)
- fun_l3_n418(x)
- else
- fun_l3_n896(x)
- end
-end
-
-def fun_l2_n410(x)
- if (x < 1)
- fun_l3_n915(x)
- else
- fun_l3_n800(x)
- end
-end
-
-def fun_l2_n411(x)
- if (x < 1)
- fun_l3_n580(x)
- else
- fun_l3_n507(x)
- end
-end
-
-def fun_l2_n412(x)
- if (x < 1)
- fun_l3_n672(x)
- else
- fun_l3_n938(x)
- end
-end
-
-def fun_l2_n413(x)
- if (x < 1)
- fun_l3_n112(x)
- else
- fun_l3_n927(x)
- end
-end
-
-def fun_l2_n414(x)
- if (x < 1)
- fun_l3_n801(x)
- else
- fun_l3_n604(x)
- end
-end
-
-def fun_l2_n415(x)
- if (x < 1)
- fun_l3_n773(x)
- else
- fun_l3_n951(x)
- end
-end
-
-def fun_l2_n416(x)
- if (x < 1)
- fun_l3_n335(x)
- else
- fun_l3_n157(x)
- end
-end
-
-def fun_l2_n417(x)
- if (x < 1)
- fun_l3_n480(x)
- else
- fun_l3_n106(x)
- end
-end
-
-def fun_l2_n418(x)
- if (x < 1)
- fun_l3_n523(x)
- else
- fun_l3_n969(x)
- end
-end
-
-def fun_l2_n419(x)
- if (x < 1)
- fun_l3_n371(x)
- else
- fun_l3_n698(x)
- end
-end
-
-def fun_l2_n420(x)
- if (x < 1)
- fun_l3_n102(x)
- else
- fun_l3_n47(x)
- end
-end
-
-def fun_l2_n421(x)
- if (x < 1)
- fun_l3_n64(x)
- else
- fun_l3_n574(x)
- end
-end
-
-def fun_l2_n422(x)
- if (x < 1)
- fun_l3_n208(x)
- else
- fun_l3_n904(x)
- end
-end
-
-def fun_l2_n423(x)
- if (x < 1)
- fun_l3_n715(x)
- else
- fun_l3_n414(x)
- end
-end
-
-def fun_l2_n424(x)
- if (x < 1)
- fun_l3_n455(x)
- else
- fun_l3_n219(x)
- end
-end
-
-def fun_l2_n425(x)
- if (x < 1)
- fun_l3_n210(x)
- else
- fun_l3_n160(x)
- end
-end
-
-def fun_l2_n426(x)
- if (x < 1)
- fun_l3_n729(x)
- else
- fun_l3_n512(x)
- end
-end
-
-def fun_l2_n427(x)
- if (x < 1)
- fun_l3_n159(x)
- else
- fun_l3_n482(x)
- end
-end
-
-def fun_l2_n428(x)
- if (x < 1)
- fun_l3_n182(x)
- else
- fun_l3_n687(x)
- end
-end
-
-def fun_l2_n429(x)
- if (x < 1)
- fun_l3_n690(x)
- else
- fun_l3_n856(x)
- end
-end
-
-def fun_l2_n430(x)
- if (x < 1)
- fun_l3_n494(x)
- else
- fun_l3_n365(x)
- end
-end
-
-def fun_l2_n431(x)
- if (x < 1)
- fun_l3_n346(x)
- else
- fun_l3_n82(x)
- end
-end
-
-def fun_l2_n432(x)
- if (x < 1)
- fun_l3_n311(x)
- else
- fun_l3_n412(x)
- end
-end
-
-def fun_l2_n433(x)
- if (x < 1)
- fun_l3_n824(x)
- else
- fun_l3_n494(x)
- end
-end
-
-def fun_l2_n434(x)
- if (x < 1)
- fun_l3_n471(x)
- else
- fun_l3_n174(x)
- end
-end
-
-def fun_l2_n435(x)
- if (x < 1)
- fun_l3_n10(x)
- else
- fun_l3_n319(x)
- end
-end
-
-def fun_l2_n436(x)
- if (x < 1)
- fun_l3_n223(x)
- else
- fun_l3_n518(x)
- end
-end
-
-def fun_l2_n437(x)
- if (x < 1)
- fun_l3_n497(x)
- else
- fun_l3_n685(x)
- end
-end
-
-def fun_l2_n438(x)
- if (x < 1)
- fun_l3_n639(x)
- else
- fun_l3_n695(x)
- end
-end
-
-def fun_l2_n439(x)
- if (x < 1)
- fun_l3_n898(x)
- else
- fun_l3_n114(x)
- end
-end
-
-def fun_l2_n440(x)
- if (x < 1)
- fun_l3_n12(x)
- else
- fun_l3_n344(x)
- end
-end
-
-def fun_l2_n441(x)
- if (x < 1)
- fun_l3_n556(x)
- else
- fun_l3_n684(x)
- end
-end
-
-def fun_l2_n442(x)
- if (x < 1)
- fun_l3_n403(x)
- else
- fun_l3_n528(x)
- end
-end
-
-def fun_l2_n443(x)
- if (x < 1)
- fun_l3_n514(x)
- else
- fun_l3_n943(x)
- end
-end
-
-def fun_l2_n444(x)
- if (x < 1)
- fun_l3_n218(x)
- else
- fun_l3_n94(x)
- end
-end
-
-def fun_l2_n445(x)
- if (x < 1)
- fun_l3_n0(x)
- else
- fun_l3_n731(x)
- end
-end
-
-def fun_l2_n446(x)
- if (x < 1)
- fun_l3_n468(x)
- else
- fun_l3_n197(x)
- end
-end
-
-def fun_l2_n447(x)
- if (x < 1)
- fun_l3_n79(x)
- else
- fun_l3_n900(x)
- end
-end
-
-def fun_l2_n448(x)
- if (x < 1)
- fun_l3_n706(x)
- else
- fun_l3_n250(x)
- end
-end
-
-def fun_l2_n449(x)
- if (x < 1)
- fun_l3_n607(x)
- else
- fun_l3_n514(x)
- end
-end
-
-def fun_l2_n450(x)
- if (x < 1)
- fun_l3_n855(x)
- else
- fun_l3_n223(x)
- end
-end
-
-def fun_l2_n451(x)
- if (x < 1)
- fun_l3_n824(x)
- else
- fun_l3_n426(x)
- end
-end
-
-def fun_l2_n452(x)
- if (x < 1)
- fun_l3_n137(x)
- else
- fun_l3_n555(x)
- end
-end
-
-def fun_l2_n453(x)
- if (x < 1)
- fun_l3_n553(x)
- else
- fun_l3_n130(x)
- end
-end
-
-def fun_l2_n454(x)
- if (x < 1)
- fun_l3_n350(x)
- else
- fun_l3_n545(x)
- end
-end
-
-def fun_l2_n455(x)
- if (x < 1)
- fun_l3_n181(x)
- else
- fun_l3_n950(x)
- end
-end
-
-def fun_l2_n456(x)
- if (x < 1)
- fun_l3_n581(x)
- else
- fun_l3_n957(x)
- end
-end
-
-def fun_l2_n457(x)
- if (x < 1)
- fun_l3_n688(x)
- else
- fun_l3_n560(x)
- end
-end
-
-def fun_l2_n458(x)
- if (x < 1)
- fun_l3_n655(x)
- else
- fun_l3_n323(x)
- end
-end
-
-def fun_l2_n459(x)
- if (x < 1)
- fun_l3_n92(x)
- else
- fun_l3_n796(x)
- end
-end
-
-def fun_l2_n460(x)
- if (x < 1)
- fun_l3_n68(x)
- else
- fun_l3_n152(x)
- end
-end
-
-def fun_l2_n461(x)
- if (x < 1)
- fun_l3_n153(x)
- else
- fun_l3_n929(x)
- end
-end
-
-def fun_l2_n462(x)
- if (x < 1)
- fun_l3_n401(x)
- else
- fun_l3_n248(x)
- end
-end
-
-def fun_l2_n463(x)
- if (x < 1)
- fun_l3_n4(x)
- else
- fun_l3_n906(x)
- end
-end
-
-def fun_l2_n464(x)
- if (x < 1)
- fun_l3_n313(x)
- else
- fun_l3_n911(x)
- end
-end
-
-def fun_l2_n465(x)
- if (x < 1)
- fun_l3_n490(x)
- else
- fun_l3_n430(x)
- end
-end
-
-def fun_l2_n466(x)
- if (x < 1)
- fun_l3_n537(x)
- else
- fun_l3_n470(x)
- end
-end
-
-def fun_l2_n467(x)
- if (x < 1)
- fun_l3_n666(x)
- else
- fun_l3_n695(x)
- end
-end
-
-def fun_l2_n468(x)
- if (x < 1)
- fun_l3_n126(x)
- else
- fun_l3_n201(x)
- end
-end
-
-def fun_l2_n469(x)
- if (x < 1)
- fun_l3_n111(x)
- else
- fun_l3_n741(x)
- end
-end
-
-def fun_l2_n470(x)
- if (x < 1)
- fun_l3_n391(x)
- else
- fun_l3_n83(x)
- end
-end
-
-def fun_l2_n471(x)
- if (x < 1)
- fun_l3_n619(x)
- else
- fun_l3_n425(x)
- end
-end
-
-def fun_l2_n472(x)
- if (x < 1)
- fun_l3_n637(x)
- else
- fun_l3_n865(x)
- end
-end
-
-def fun_l2_n473(x)
- if (x < 1)
- fun_l3_n182(x)
- else
- fun_l3_n350(x)
- end
-end
-
-def fun_l2_n474(x)
- if (x < 1)
- fun_l3_n752(x)
- else
- fun_l3_n815(x)
- end
-end
-
-def fun_l2_n475(x)
- if (x < 1)
- fun_l3_n184(x)
- else
- fun_l3_n683(x)
- end
-end
-
-def fun_l2_n476(x)
- if (x < 1)
- fun_l3_n324(x)
- else
- fun_l3_n232(x)
- end
-end
-
-def fun_l2_n477(x)
- if (x < 1)
- fun_l3_n588(x)
- else
- fun_l3_n586(x)
- end
-end
-
-def fun_l2_n478(x)
- if (x < 1)
- fun_l3_n320(x)
- else
- fun_l3_n599(x)
- end
-end
-
-def fun_l2_n479(x)
- if (x < 1)
- fun_l3_n999(x)
- else
- fun_l3_n678(x)
- end
-end
-
-def fun_l2_n480(x)
- if (x < 1)
- fun_l3_n523(x)
- else
- fun_l3_n637(x)
- end
-end
-
-def fun_l2_n481(x)
- if (x < 1)
- fun_l3_n291(x)
- else
- fun_l3_n347(x)
- end
-end
-
-def fun_l2_n482(x)
- if (x < 1)
- fun_l3_n873(x)
- else
- fun_l3_n435(x)
- end
-end
-
-def fun_l2_n483(x)
- if (x < 1)
- fun_l3_n718(x)
- else
- fun_l3_n903(x)
- end
-end
-
-def fun_l2_n484(x)
- if (x < 1)
- fun_l3_n188(x)
- else
- fun_l3_n751(x)
- end
-end
-
-def fun_l2_n485(x)
- if (x < 1)
- fun_l3_n501(x)
- else
- fun_l3_n235(x)
- end
-end
-
-def fun_l2_n486(x)
- if (x < 1)
- fun_l3_n578(x)
- else
- fun_l3_n224(x)
- end
-end
-
-def fun_l2_n487(x)
- if (x < 1)
- fun_l3_n757(x)
- else
- fun_l3_n145(x)
- end
-end
-
-def fun_l2_n488(x)
- if (x < 1)
- fun_l3_n17(x)
- else
- fun_l3_n727(x)
- end
-end
-
-def fun_l2_n489(x)
- if (x < 1)
- fun_l3_n699(x)
- else
- fun_l3_n102(x)
- end
-end
-
-def fun_l2_n490(x)
- if (x < 1)
- fun_l3_n518(x)
- else
- fun_l3_n15(x)
- end
-end
-
-def fun_l2_n491(x)
- if (x < 1)
- fun_l3_n889(x)
- else
- fun_l3_n798(x)
- end
-end
-
-def fun_l2_n492(x)
- if (x < 1)
- fun_l3_n715(x)
- else
- fun_l3_n27(x)
- end
-end
-
-def fun_l2_n493(x)
- if (x < 1)
- fun_l3_n237(x)
- else
- fun_l3_n130(x)
- end
-end
-
-def fun_l2_n494(x)
- if (x < 1)
- fun_l3_n99(x)
- else
- fun_l3_n223(x)
- end
-end
-
-def fun_l2_n495(x)
- if (x < 1)
- fun_l3_n65(x)
- else
- fun_l3_n811(x)
- end
-end
-
-def fun_l2_n496(x)
- if (x < 1)
- fun_l3_n457(x)
- else
- fun_l3_n527(x)
- end
-end
-
-def fun_l2_n497(x)
- if (x < 1)
- fun_l3_n312(x)
- else
- fun_l3_n902(x)
- end
-end
-
-def fun_l2_n498(x)
- if (x < 1)
- fun_l3_n63(x)
- else
- fun_l3_n948(x)
- end
-end
-
-def fun_l2_n499(x)
- if (x < 1)
- fun_l3_n652(x)
- else
- fun_l3_n752(x)
- end
-end
-
-def fun_l2_n500(x)
- if (x < 1)
- fun_l3_n583(x)
- else
- fun_l3_n427(x)
- end
-end
-
-def fun_l2_n501(x)
- if (x < 1)
- fun_l3_n536(x)
- else
- fun_l3_n671(x)
- end
-end
-
-def fun_l2_n502(x)
- if (x < 1)
- fun_l3_n122(x)
- else
- fun_l3_n170(x)
- end
-end
-
-def fun_l2_n503(x)
- if (x < 1)
- fun_l3_n280(x)
- else
- fun_l3_n390(x)
- end
-end
-
-def fun_l2_n504(x)
- if (x < 1)
- fun_l3_n427(x)
- else
- fun_l3_n267(x)
- end
-end
-
-def fun_l2_n505(x)
- if (x < 1)
- fun_l3_n241(x)
- else
- fun_l3_n345(x)
- end
-end
-
-def fun_l2_n506(x)
- if (x < 1)
- fun_l3_n960(x)
- else
- fun_l3_n537(x)
- end
-end
-
-def fun_l2_n507(x)
- if (x < 1)
- fun_l3_n947(x)
- else
- fun_l3_n3(x)
- end
-end
-
-def fun_l2_n508(x)
- if (x < 1)
- fun_l3_n974(x)
- else
- fun_l3_n597(x)
- end
-end
-
-def fun_l2_n509(x)
- if (x < 1)
- fun_l3_n978(x)
- else
- fun_l3_n70(x)
- end
-end
-
-def fun_l2_n510(x)
- if (x < 1)
- fun_l3_n855(x)
- else
- fun_l3_n259(x)
- end
-end
-
-def fun_l2_n511(x)
- if (x < 1)
- fun_l3_n987(x)
- else
- fun_l3_n182(x)
- end
-end
-
-def fun_l2_n512(x)
- if (x < 1)
- fun_l3_n787(x)
- else
- fun_l3_n656(x)
- end
-end
-
-def fun_l2_n513(x)
- if (x < 1)
- fun_l3_n348(x)
- else
- fun_l3_n242(x)
- end
-end
-
-def fun_l2_n514(x)
- if (x < 1)
- fun_l3_n530(x)
- else
- fun_l3_n718(x)
- end
-end
-
-def fun_l2_n515(x)
- if (x < 1)
- fun_l3_n840(x)
- else
- fun_l3_n302(x)
- end
-end
-
-def fun_l2_n516(x)
- if (x < 1)
- fun_l3_n678(x)
- else
- fun_l3_n732(x)
- end
-end
-
-def fun_l2_n517(x)
- if (x < 1)
- fun_l3_n160(x)
- else
- fun_l3_n344(x)
- end
-end
-
-def fun_l2_n518(x)
- if (x < 1)
- fun_l3_n518(x)
- else
- fun_l3_n830(x)
- end
-end
-
-def fun_l2_n519(x)
- if (x < 1)
- fun_l3_n595(x)
- else
- fun_l3_n95(x)
- end
-end
-
-def fun_l2_n520(x)
- if (x < 1)
- fun_l3_n939(x)
- else
- fun_l3_n954(x)
- end
-end
-
-def fun_l2_n521(x)
- if (x < 1)
- fun_l3_n931(x)
- else
- fun_l3_n686(x)
- end
-end
-
-def fun_l2_n522(x)
- if (x < 1)
- fun_l3_n117(x)
- else
- fun_l3_n501(x)
- end
-end
-
-def fun_l2_n523(x)
- if (x < 1)
- fun_l3_n727(x)
- else
- fun_l3_n712(x)
- end
-end
-
-def fun_l2_n524(x)
- if (x < 1)
- fun_l3_n152(x)
- else
- fun_l3_n453(x)
- end
-end
-
-def fun_l2_n525(x)
- if (x < 1)
- fun_l3_n375(x)
- else
- fun_l3_n186(x)
- end
-end
-
-def fun_l2_n526(x)
- if (x < 1)
- fun_l3_n835(x)
- else
- fun_l3_n465(x)
- end
-end
-
-def fun_l2_n527(x)
- if (x < 1)
- fun_l3_n411(x)
- else
- fun_l3_n208(x)
- end
-end
-
-def fun_l2_n528(x)
- if (x < 1)
- fun_l3_n696(x)
- else
- fun_l3_n537(x)
- end
-end
-
-def fun_l2_n529(x)
- if (x < 1)
- fun_l3_n606(x)
- else
- fun_l3_n682(x)
- end
-end
-
-def fun_l2_n530(x)
- if (x < 1)
- fun_l3_n920(x)
- else
- fun_l3_n592(x)
- end
-end
-
-def fun_l2_n531(x)
- if (x < 1)
- fun_l3_n201(x)
- else
- fun_l3_n27(x)
- end
-end
-
-def fun_l2_n532(x)
- if (x < 1)
- fun_l3_n643(x)
- else
- fun_l3_n642(x)
- end
-end
-
-def fun_l2_n533(x)
- if (x < 1)
- fun_l3_n92(x)
- else
- fun_l3_n576(x)
- end
-end
-
-def fun_l2_n534(x)
- if (x < 1)
- fun_l3_n135(x)
- else
- fun_l3_n738(x)
- end
-end
-
-def fun_l2_n535(x)
- if (x < 1)
- fun_l3_n706(x)
- else
- fun_l3_n810(x)
- end
-end
-
-def fun_l2_n536(x)
- if (x < 1)
- fun_l3_n922(x)
- else
- fun_l3_n456(x)
- end
-end
-
-def fun_l2_n537(x)
- if (x < 1)
- fun_l3_n511(x)
- else
- fun_l3_n279(x)
- end
-end
-
-def fun_l2_n538(x)
- if (x < 1)
- fun_l3_n541(x)
- else
- fun_l3_n826(x)
- end
-end
-
-def fun_l2_n539(x)
- if (x < 1)
- fun_l3_n7(x)
- else
- fun_l3_n362(x)
- end
-end
-
-def fun_l2_n540(x)
- if (x < 1)
- fun_l3_n132(x)
- else
- fun_l3_n819(x)
- end
-end
-
-def fun_l2_n541(x)
- if (x < 1)
- fun_l3_n600(x)
- else
- fun_l3_n155(x)
- end
-end
-
-def fun_l2_n542(x)
- if (x < 1)
- fun_l3_n930(x)
- else
- fun_l3_n827(x)
- end
-end
-
-def fun_l2_n543(x)
- if (x < 1)
- fun_l3_n974(x)
- else
- fun_l3_n957(x)
- end
-end
-
-def fun_l2_n544(x)
- if (x < 1)
- fun_l3_n912(x)
- else
- fun_l3_n503(x)
- end
-end
-
-def fun_l2_n545(x)
- if (x < 1)
- fun_l3_n605(x)
- else
- fun_l3_n966(x)
- end
-end
-
-def fun_l2_n546(x)
- if (x < 1)
- fun_l3_n523(x)
- else
- fun_l3_n105(x)
- end
-end
-
-def fun_l2_n547(x)
- if (x < 1)
- fun_l3_n352(x)
- else
- fun_l3_n762(x)
- end
-end
-
-def fun_l2_n548(x)
- if (x < 1)
- fun_l3_n65(x)
- else
- fun_l3_n714(x)
- end
-end
-
-def fun_l2_n549(x)
- if (x < 1)
- fun_l3_n665(x)
- else
- fun_l3_n799(x)
- end
-end
-
-def fun_l2_n550(x)
- if (x < 1)
- fun_l3_n624(x)
- else
- fun_l3_n131(x)
- end
-end
-
-def fun_l2_n551(x)
- if (x < 1)
- fun_l3_n53(x)
- else
- fun_l3_n377(x)
- end
-end
-
-def fun_l2_n552(x)
- if (x < 1)
- fun_l3_n377(x)
- else
- fun_l3_n532(x)
- end
-end
-
-def fun_l2_n553(x)
- if (x < 1)
- fun_l3_n302(x)
- else
- fun_l3_n593(x)
- end
-end
-
-def fun_l2_n554(x)
- if (x < 1)
- fun_l3_n573(x)
- else
- fun_l3_n727(x)
- end
-end
-
-def fun_l2_n555(x)
- if (x < 1)
- fun_l3_n575(x)
- else
- fun_l3_n838(x)
- end
-end
-
-def fun_l2_n556(x)
- if (x < 1)
- fun_l3_n92(x)
- else
- fun_l3_n137(x)
- end
-end
-
-def fun_l2_n557(x)
- if (x < 1)
- fun_l3_n921(x)
- else
- fun_l3_n683(x)
- end
-end
-
-def fun_l2_n558(x)
- if (x < 1)
- fun_l3_n987(x)
- else
- fun_l3_n646(x)
- end
-end
-
-def fun_l2_n559(x)
- if (x < 1)
- fun_l3_n574(x)
- else
- fun_l3_n493(x)
- end
-end
-
-def fun_l2_n560(x)
- if (x < 1)
- fun_l3_n950(x)
- else
- fun_l3_n139(x)
- end
-end
-
-def fun_l2_n561(x)
- if (x < 1)
- fun_l3_n276(x)
- else
- fun_l3_n491(x)
- end
-end
-
-def fun_l2_n562(x)
- if (x < 1)
- fun_l3_n226(x)
- else
- fun_l3_n840(x)
- end
-end
-
-def fun_l2_n563(x)
- if (x < 1)
- fun_l3_n473(x)
- else
- fun_l3_n907(x)
- end
-end
-
-def fun_l2_n564(x)
- if (x < 1)
- fun_l3_n695(x)
- else
- fun_l3_n951(x)
- end
-end
-
-def fun_l2_n565(x)
- if (x < 1)
- fun_l3_n415(x)
- else
- fun_l3_n12(x)
- end
-end
-
-def fun_l2_n566(x)
- if (x < 1)
- fun_l3_n32(x)
- else
- fun_l3_n759(x)
- end
-end
-
-def fun_l2_n567(x)
- if (x < 1)
- fun_l3_n876(x)
- else
- fun_l3_n297(x)
- end
-end
-
-def fun_l2_n568(x)
- if (x < 1)
- fun_l3_n520(x)
- else
- fun_l3_n713(x)
- end
-end
-
-def fun_l2_n569(x)
- if (x < 1)
- fun_l3_n819(x)
- else
- fun_l3_n505(x)
- end
-end
-
-def fun_l2_n570(x)
- if (x < 1)
- fun_l3_n661(x)
- else
- fun_l3_n447(x)
- end
-end
-
-def fun_l2_n571(x)
- if (x < 1)
- fun_l3_n538(x)
- else
- fun_l3_n532(x)
- end
-end
-
-def fun_l2_n572(x)
- if (x < 1)
- fun_l3_n584(x)
- else
- fun_l3_n304(x)
- end
-end
-
-def fun_l2_n573(x)
- if (x < 1)
- fun_l3_n76(x)
- else
- fun_l3_n512(x)
- end
-end
-
-def fun_l2_n574(x)
- if (x < 1)
- fun_l3_n22(x)
- else
- fun_l3_n328(x)
- end
-end
-
-def fun_l2_n575(x)
- if (x < 1)
- fun_l3_n397(x)
- else
- fun_l3_n640(x)
- end
-end
-
-def fun_l2_n576(x)
- if (x < 1)
- fun_l3_n227(x)
- else
- fun_l3_n236(x)
- end
-end
-
-def fun_l2_n577(x)
- if (x < 1)
- fun_l3_n743(x)
- else
- fun_l3_n974(x)
- end
-end
-
-def fun_l2_n578(x)
- if (x < 1)
- fun_l3_n970(x)
- else
- fun_l3_n229(x)
- end
-end
-
-def fun_l2_n579(x)
- if (x < 1)
- fun_l3_n401(x)
- else
- fun_l3_n672(x)
- end
-end
-
-def fun_l2_n580(x)
- if (x < 1)
- fun_l3_n837(x)
- else
- fun_l3_n804(x)
- end
-end
-
-def fun_l2_n581(x)
- if (x < 1)
- fun_l3_n526(x)
- else
- fun_l3_n763(x)
- end
-end
-
-def fun_l2_n582(x)
- if (x < 1)
- fun_l3_n2(x)
- else
- fun_l3_n692(x)
- end
-end
-
-def fun_l2_n583(x)
- if (x < 1)
- fun_l3_n561(x)
- else
- fun_l3_n394(x)
- end
-end
-
-def fun_l2_n584(x)
- if (x < 1)
- fun_l3_n60(x)
- else
- fun_l3_n682(x)
- end
-end
-
-def fun_l2_n585(x)
- if (x < 1)
- fun_l3_n646(x)
- else
- fun_l3_n776(x)
- end
-end
-
-def fun_l2_n586(x)
- if (x < 1)
- fun_l3_n466(x)
- else
- fun_l3_n91(x)
- end
-end
-
-def fun_l2_n587(x)
- if (x < 1)
- fun_l3_n294(x)
- else
- fun_l3_n813(x)
- end
-end
-
-def fun_l2_n588(x)
- if (x < 1)
- fun_l3_n958(x)
- else
- fun_l3_n64(x)
- end
-end
-
-def fun_l2_n589(x)
- if (x < 1)
- fun_l3_n703(x)
- else
- fun_l3_n937(x)
- end
-end
-
-def fun_l2_n590(x)
- if (x < 1)
- fun_l3_n1(x)
- else
- fun_l3_n970(x)
- end
-end
-
-def fun_l2_n591(x)
- if (x < 1)
- fun_l3_n566(x)
- else
- fun_l3_n750(x)
- end
-end
-
-def fun_l2_n592(x)
- if (x < 1)
- fun_l3_n905(x)
- else
- fun_l3_n840(x)
- end
-end
-
-def fun_l2_n593(x)
- if (x < 1)
- fun_l3_n23(x)
- else
- fun_l3_n862(x)
- end
-end
-
-def fun_l2_n594(x)
- if (x < 1)
- fun_l3_n739(x)
- else
- fun_l3_n4(x)
- end
-end
-
-def fun_l2_n595(x)
- if (x < 1)
- fun_l3_n818(x)
- else
- fun_l3_n117(x)
- end
-end
-
-def fun_l2_n596(x)
- if (x < 1)
- fun_l3_n891(x)
- else
- fun_l3_n599(x)
- end
-end
-
-def fun_l2_n597(x)
- if (x < 1)
- fun_l3_n731(x)
- else
- fun_l3_n960(x)
- end
-end
-
-def fun_l2_n598(x)
- if (x < 1)
- fun_l3_n323(x)
- else
- fun_l3_n811(x)
- end
-end
-
-def fun_l2_n599(x)
- if (x < 1)
- fun_l3_n299(x)
- else
- fun_l3_n188(x)
- end
-end
-
-def fun_l2_n600(x)
- if (x < 1)
- fun_l3_n129(x)
- else
- fun_l3_n730(x)
- end
-end
-
-def fun_l2_n601(x)
- if (x < 1)
- fun_l3_n412(x)
- else
- fun_l3_n353(x)
- end
-end
-
-def fun_l2_n602(x)
- if (x < 1)
- fun_l3_n658(x)
- else
- fun_l3_n774(x)
- end
-end
-
-def fun_l2_n603(x)
- if (x < 1)
- fun_l3_n378(x)
- else
- fun_l3_n722(x)
- end
-end
-
-def fun_l2_n604(x)
- if (x < 1)
- fun_l3_n482(x)
- else
- fun_l3_n949(x)
- end
-end
-
-def fun_l2_n605(x)
- if (x < 1)
- fun_l3_n996(x)
- else
- fun_l3_n169(x)
- end
-end
-
-def fun_l2_n606(x)
- if (x < 1)
- fun_l3_n653(x)
- else
- fun_l3_n966(x)
- end
-end
-
-def fun_l2_n607(x)
- if (x < 1)
- fun_l3_n179(x)
- else
- fun_l3_n113(x)
- end
-end
-
-def fun_l2_n608(x)
- if (x < 1)
- fun_l3_n157(x)
- else
- fun_l3_n692(x)
- end
-end
-
-def fun_l2_n609(x)
- if (x < 1)
- fun_l3_n648(x)
- else
- fun_l3_n318(x)
- end
-end
-
-def fun_l2_n610(x)
- if (x < 1)
- fun_l3_n979(x)
- else
- fun_l3_n642(x)
- end
-end
-
-def fun_l2_n611(x)
- if (x < 1)
- fun_l3_n909(x)
- else
- fun_l3_n986(x)
- end
-end
-
-def fun_l2_n612(x)
- if (x < 1)
- fun_l3_n387(x)
- else
- fun_l3_n586(x)
- end
-end
-
-def fun_l2_n613(x)
- if (x < 1)
- fun_l3_n99(x)
- else
- fun_l3_n690(x)
- end
-end
-
-def fun_l2_n614(x)
- if (x < 1)
- fun_l3_n485(x)
- else
- fun_l3_n733(x)
- end
-end
-
-def fun_l2_n615(x)
- if (x < 1)
- fun_l3_n735(x)
- else
- fun_l3_n827(x)
- end
-end
-
-def fun_l2_n616(x)
- if (x < 1)
- fun_l3_n496(x)
- else
- fun_l3_n912(x)
- end
-end
-
-def fun_l2_n617(x)
- if (x < 1)
- fun_l3_n363(x)
- else
- fun_l3_n845(x)
- end
-end
-
-def fun_l2_n618(x)
- if (x < 1)
- fun_l3_n891(x)
- else
- fun_l3_n964(x)
- end
-end
-
-def fun_l2_n619(x)
- if (x < 1)
- fun_l3_n266(x)
- else
- fun_l3_n189(x)
- end
-end
-
-def fun_l2_n620(x)
- if (x < 1)
- fun_l3_n906(x)
- else
- fun_l3_n218(x)
- end
-end
-
-def fun_l2_n621(x)
- if (x < 1)
- fun_l3_n145(x)
- else
- fun_l3_n279(x)
- end
-end
-
-def fun_l2_n622(x)
- if (x < 1)
- fun_l3_n797(x)
- else
- fun_l3_n328(x)
- end
-end
-
-def fun_l2_n623(x)
- if (x < 1)
- fun_l3_n910(x)
- else
- fun_l3_n250(x)
- end
-end
-
-def fun_l2_n624(x)
- if (x < 1)
- fun_l3_n111(x)
- else
- fun_l3_n884(x)
- end
-end
-
-def fun_l2_n625(x)
- if (x < 1)
- fun_l3_n852(x)
- else
- fun_l3_n985(x)
- end
-end
-
-def fun_l2_n626(x)
- if (x < 1)
- fun_l3_n163(x)
- else
- fun_l3_n885(x)
- end
-end
-
-def fun_l2_n627(x)
- if (x < 1)
- fun_l3_n338(x)
- else
- fun_l3_n562(x)
- end
-end
-
-def fun_l2_n628(x)
- if (x < 1)
- fun_l3_n300(x)
- else
- fun_l3_n245(x)
- end
-end
-
-def fun_l2_n629(x)
- if (x < 1)
- fun_l3_n747(x)
- else
- fun_l3_n123(x)
- end
-end
-
-def fun_l2_n630(x)
- if (x < 1)
- fun_l3_n42(x)
- else
- fun_l3_n46(x)
- end
-end
-
-def fun_l2_n631(x)
- if (x < 1)
- fun_l3_n256(x)
- else
- fun_l3_n960(x)
- end
-end
-
-def fun_l2_n632(x)
- if (x < 1)
- fun_l3_n679(x)
- else
- fun_l3_n393(x)
- end
-end
-
-def fun_l2_n633(x)
- if (x < 1)
- fun_l3_n286(x)
- else
- fun_l3_n147(x)
- end
-end
-
-def fun_l2_n634(x)
- if (x < 1)
- fun_l3_n62(x)
- else
- fun_l3_n994(x)
- end
-end
-
-def fun_l2_n635(x)
- if (x < 1)
- fun_l3_n479(x)
- else
- fun_l3_n502(x)
- end
-end
-
-def fun_l2_n636(x)
- if (x < 1)
- fun_l3_n504(x)
- else
- fun_l3_n557(x)
- end
-end
-
-def fun_l2_n637(x)
- if (x < 1)
- fun_l3_n716(x)
- else
- fun_l3_n763(x)
- end
-end
-
-def fun_l2_n638(x)
- if (x < 1)
- fun_l3_n972(x)
- else
- fun_l3_n391(x)
- end
-end
-
-def fun_l2_n639(x)
- if (x < 1)
- fun_l3_n842(x)
- else
- fun_l3_n740(x)
- end
-end
-
-def fun_l2_n640(x)
- if (x < 1)
- fun_l3_n854(x)
- else
- fun_l3_n52(x)
- end
-end
-
-def fun_l2_n641(x)
- if (x < 1)
- fun_l3_n321(x)
- else
- fun_l3_n109(x)
- end
-end
-
-def fun_l2_n642(x)
- if (x < 1)
- fun_l3_n868(x)
- else
- fun_l3_n926(x)
- end
-end
-
-def fun_l2_n643(x)
- if (x < 1)
- fun_l3_n864(x)
- else
- fun_l3_n98(x)
- end
-end
-
-def fun_l2_n644(x)
- if (x < 1)
- fun_l3_n373(x)
- else
- fun_l3_n105(x)
- end
-end
-
-def fun_l2_n645(x)
- if (x < 1)
- fun_l3_n293(x)
- else
- fun_l3_n846(x)
- end
-end
-
-def fun_l2_n646(x)
- if (x < 1)
- fun_l3_n24(x)
- else
- fun_l3_n83(x)
- end
-end
-
-def fun_l2_n647(x)
- if (x < 1)
- fun_l3_n431(x)
- else
- fun_l3_n772(x)
- end
-end
-
-def fun_l2_n648(x)
- if (x < 1)
- fun_l3_n667(x)
- else
- fun_l3_n108(x)
- end
-end
-
-def fun_l2_n649(x)
- if (x < 1)
- fun_l3_n93(x)
- else
- fun_l3_n394(x)
- end
-end
-
-def fun_l2_n650(x)
- if (x < 1)
- fun_l3_n176(x)
- else
- fun_l3_n315(x)
- end
-end
-
-def fun_l2_n651(x)
- if (x < 1)
- fun_l3_n684(x)
- else
- fun_l3_n635(x)
- end
-end
-
-def fun_l2_n652(x)
- if (x < 1)
- fun_l3_n554(x)
- else
- fun_l3_n88(x)
- end
-end
-
-def fun_l2_n653(x)
- if (x < 1)
- fun_l3_n165(x)
- else
- fun_l3_n962(x)
- end
-end
-
-def fun_l2_n654(x)
- if (x < 1)
- fun_l3_n631(x)
- else
- fun_l3_n80(x)
- end
-end
-
-def fun_l2_n655(x)
- if (x < 1)
- fun_l3_n529(x)
- else
- fun_l3_n711(x)
- end
-end
-
-def fun_l2_n656(x)
- if (x < 1)
- fun_l3_n809(x)
- else
- fun_l3_n44(x)
- end
-end
-
-def fun_l2_n657(x)
- if (x < 1)
- fun_l3_n226(x)
- else
- fun_l3_n939(x)
- end
-end
-
-def fun_l2_n658(x)
- if (x < 1)
- fun_l3_n355(x)
- else
- fun_l3_n750(x)
- end
-end
-
-def fun_l2_n659(x)
- if (x < 1)
- fun_l3_n111(x)
- else
- fun_l3_n883(x)
- end
-end
-
-def fun_l2_n660(x)
- if (x < 1)
- fun_l3_n22(x)
- else
- fun_l3_n544(x)
- end
-end
-
-def fun_l2_n661(x)
- if (x < 1)
- fun_l3_n334(x)
- else
- fun_l3_n58(x)
- end
-end
-
-def fun_l2_n662(x)
- if (x < 1)
- fun_l3_n690(x)
- else
- fun_l3_n647(x)
- end
-end
-
-def fun_l2_n663(x)
- if (x < 1)
- fun_l3_n886(x)
- else
- fun_l3_n142(x)
- end
-end
-
-def fun_l2_n664(x)
- if (x < 1)
- fun_l3_n713(x)
- else
- fun_l3_n710(x)
- end
-end
-
-def fun_l2_n665(x)
- if (x < 1)
- fun_l3_n657(x)
- else
- fun_l3_n24(x)
- end
-end
-
-def fun_l2_n666(x)
- if (x < 1)
- fun_l3_n993(x)
- else
- fun_l3_n741(x)
- end
-end
-
-def fun_l2_n667(x)
- if (x < 1)
- fun_l3_n265(x)
- else
- fun_l3_n143(x)
- end
-end
-
-def fun_l2_n668(x)
- if (x < 1)
- fun_l3_n725(x)
- else
- fun_l3_n272(x)
- end
-end
-
-def fun_l2_n669(x)
- if (x < 1)
- fun_l3_n171(x)
- else
- fun_l3_n95(x)
- end
-end
-
-def fun_l2_n670(x)
- if (x < 1)
- fun_l3_n409(x)
- else
- fun_l3_n774(x)
- end
-end
-
-def fun_l2_n671(x)
- if (x < 1)
- fun_l3_n566(x)
- else
- fun_l3_n251(x)
- end
-end
-
-def fun_l2_n672(x)
- if (x < 1)
- fun_l3_n914(x)
- else
- fun_l3_n716(x)
- end
-end
-
-def fun_l2_n673(x)
- if (x < 1)
- fun_l3_n889(x)
- else
- fun_l3_n339(x)
- end
-end
-
-def fun_l2_n674(x)
- if (x < 1)
- fun_l3_n808(x)
- else
- fun_l3_n858(x)
- end
-end
-
-def fun_l2_n675(x)
- if (x < 1)
- fun_l3_n895(x)
- else
- fun_l3_n180(x)
- end
-end
-
-def fun_l2_n676(x)
- if (x < 1)
- fun_l3_n674(x)
- else
- fun_l3_n183(x)
- end
-end
-
-def fun_l2_n677(x)
- if (x < 1)
- fun_l3_n934(x)
- else
- fun_l3_n292(x)
- end
-end
-
-def fun_l2_n678(x)
- if (x < 1)
- fun_l3_n302(x)
- else
- fun_l3_n511(x)
- end
-end
-
-def fun_l2_n679(x)
- if (x < 1)
- fun_l3_n847(x)
- else
- fun_l3_n70(x)
- end
-end
-
-def fun_l2_n680(x)
- if (x < 1)
- fun_l3_n200(x)
- else
- fun_l3_n436(x)
- end
-end
-
-def fun_l2_n681(x)
- if (x < 1)
- fun_l3_n44(x)
- else
- fun_l3_n145(x)
- end
-end
-
-def fun_l2_n682(x)
- if (x < 1)
- fun_l3_n929(x)
- else
- fun_l3_n605(x)
- end
-end
-
-def fun_l2_n683(x)
- if (x < 1)
- fun_l3_n990(x)
- else
- fun_l3_n641(x)
- end
-end
-
-def fun_l2_n684(x)
- if (x < 1)
- fun_l3_n679(x)
- else
- fun_l3_n976(x)
- end
-end
-
-def fun_l2_n685(x)
- if (x < 1)
- fun_l3_n405(x)
- else
- fun_l3_n658(x)
- end
-end
-
-def fun_l2_n686(x)
- if (x < 1)
- fun_l3_n685(x)
- else
- fun_l3_n379(x)
- end
-end
-
-def fun_l2_n687(x)
- if (x < 1)
- fun_l3_n279(x)
- else
- fun_l3_n415(x)
- end
-end
-
-def fun_l2_n688(x)
- if (x < 1)
- fun_l3_n234(x)
- else
- fun_l3_n634(x)
- end
-end
-
-def fun_l2_n689(x)
- if (x < 1)
- fun_l3_n119(x)
- else
- fun_l3_n234(x)
- end
-end
-
-def fun_l2_n690(x)
- if (x < 1)
- fun_l3_n213(x)
- else
- fun_l3_n102(x)
- end
-end
-
-def fun_l2_n691(x)
- if (x < 1)
- fun_l3_n744(x)
- else
- fun_l3_n31(x)
- end
-end
-
-def fun_l2_n692(x)
- if (x < 1)
- fun_l3_n29(x)
- else
- fun_l3_n238(x)
- end
-end
-
-def fun_l2_n693(x)
- if (x < 1)
- fun_l3_n323(x)
- else
- fun_l3_n388(x)
- end
-end
-
-def fun_l2_n694(x)
- if (x < 1)
- fun_l3_n70(x)
- else
- fun_l3_n356(x)
- end
-end
-
-def fun_l2_n695(x)
- if (x < 1)
- fun_l3_n589(x)
- else
- fun_l3_n949(x)
- end
-end
-
-def fun_l2_n696(x)
- if (x < 1)
- fun_l3_n328(x)
- else
- fun_l3_n472(x)
- end
-end
-
-def fun_l2_n697(x)
- if (x < 1)
- fun_l3_n705(x)
- else
- fun_l3_n709(x)
- end
-end
-
-def fun_l2_n698(x)
- if (x < 1)
- fun_l3_n817(x)
- else
- fun_l3_n927(x)
- end
-end
-
-def fun_l2_n699(x)
- if (x < 1)
- fun_l3_n916(x)
- else
- fun_l3_n66(x)
- end
-end
-
-def fun_l2_n700(x)
- if (x < 1)
- fun_l3_n461(x)
- else
- fun_l3_n648(x)
- end
-end
-
-def fun_l2_n701(x)
- if (x < 1)
- fun_l3_n71(x)
- else
- fun_l3_n218(x)
- end
-end
-
-def fun_l2_n702(x)
- if (x < 1)
- fun_l3_n490(x)
- else
- fun_l3_n706(x)
- end
-end
-
-def fun_l2_n703(x)
- if (x < 1)
- fun_l3_n480(x)
- else
- fun_l3_n665(x)
- end
-end
-
-def fun_l2_n704(x)
- if (x < 1)
- fun_l3_n965(x)
- else
- fun_l3_n394(x)
- end
-end
-
-def fun_l2_n705(x)
- if (x < 1)
- fun_l3_n65(x)
- else
- fun_l3_n761(x)
- end
-end
-
-def fun_l2_n706(x)
- if (x < 1)
- fun_l3_n690(x)
- else
- fun_l3_n50(x)
- end
-end
-
-def fun_l2_n707(x)
- if (x < 1)
- fun_l3_n665(x)
- else
- fun_l3_n589(x)
- end
-end
-
-def fun_l2_n708(x)
- if (x < 1)
- fun_l3_n331(x)
- else
- fun_l3_n299(x)
- end
-end
-
-def fun_l2_n709(x)
- if (x < 1)
- fun_l3_n656(x)
- else
- fun_l3_n966(x)
- end
-end
-
-def fun_l2_n710(x)
- if (x < 1)
- fun_l3_n610(x)
- else
- fun_l3_n767(x)
- end
-end
-
-def fun_l2_n711(x)
- if (x < 1)
- fun_l3_n281(x)
- else
- fun_l3_n942(x)
- end
-end
-
-def fun_l2_n712(x)
- if (x < 1)
- fun_l3_n474(x)
- else
- fun_l3_n373(x)
- end
-end
-
-def fun_l2_n713(x)
- if (x < 1)
- fun_l3_n668(x)
- else
- fun_l3_n881(x)
- end
-end
-
-def fun_l2_n714(x)
- if (x < 1)
- fun_l3_n112(x)
- else
- fun_l3_n914(x)
- end
-end
-
-def fun_l2_n715(x)
- if (x < 1)
- fun_l3_n276(x)
- else
- fun_l3_n946(x)
- end
-end
-
-def fun_l2_n716(x)
- if (x < 1)
- fun_l3_n340(x)
- else
- fun_l3_n474(x)
- end
-end
-
-def fun_l2_n717(x)
- if (x < 1)
- fun_l3_n179(x)
- else
- fun_l3_n740(x)
- end
-end
-
-def fun_l2_n718(x)
- if (x < 1)
- fun_l3_n830(x)
- else
- fun_l3_n139(x)
- end
-end
-
-def fun_l2_n719(x)
- if (x < 1)
- fun_l3_n945(x)
- else
- fun_l3_n98(x)
- end
-end
-
-def fun_l2_n720(x)
- if (x < 1)
- fun_l3_n912(x)
- else
- fun_l3_n457(x)
- end
-end
-
-def fun_l2_n721(x)
- if (x < 1)
- fun_l3_n4(x)
- else
- fun_l3_n798(x)
- end
-end
-
-def fun_l2_n722(x)
- if (x < 1)
- fun_l3_n438(x)
- else
- fun_l3_n677(x)
- end
-end
-
-def fun_l2_n723(x)
- if (x < 1)
- fun_l3_n447(x)
- else
- fun_l3_n418(x)
- end
-end
-
-def fun_l2_n724(x)
- if (x < 1)
- fun_l3_n936(x)
- else
- fun_l3_n572(x)
- end
-end
-
-def fun_l2_n725(x)
- if (x < 1)
- fun_l3_n856(x)
- else
- fun_l3_n429(x)
- end
-end
-
-def fun_l2_n726(x)
- if (x < 1)
- fun_l3_n747(x)
- else
- fun_l3_n823(x)
- end
-end
-
-def fun_l2_n727(x)
- if (x < 1)
- fun_l3_n908(x)
- else
- fun_l3_n446(x)
- end
-end
-
-def fun_l2_n728(x)
- if (x < 1)
- fun_l3_n170(x)
- else
- fun_l3_n546(x)
- end
-end
-
-def fun_l2_n729(x)
- if (x < 1)
- fun_l3_n45(x)
- else
- fun_l3_n76(x)
- end
-end
-
-def fun_l2_n730(x)
- if (x < 1)
- fun_l3_n688(x)
- else
- fun_l3_n826(x)
- end
-end
-
-def fun_l2_n731(x)
- if (x < 1)
- fun_l3_n805(x)
- else
- fun_l3_n88(x)
- end
-end
-
-def fun_l2_n732(x)
- if (x < 1)
- fun_l3_n191(x)
- else
- fun_l3_n395(x)
- end
-end
-
-def fun_l2_n733(x)
- if (x < 1)
- fun_l3_n161(x)
- else
- fun_l3_n600(x)
- end
-end
-
-def fun_l2_n734(x)
- if (x < 1)
- fun_l3_n586(x)
- else
- fun_l3_n770(x)
- end
-end
-
-def fun_l2_n735(x)
- if (x < 1)
- fun_l3_n139(x)
- else
- fun_l3_n108(x)
- end
-end
-
-def fun_l2_n736(x)
- if (x < 1)
- fun_l3_n719(x)
- else
- fun_l3_n210(x)
- end
-end
-
-def fun_l2_n737(x)
- if (x < 1)
- fun_l3_n327(x)
- else
- fun_l3_n138(x)
- end
-end
-
-def fun_l2_n738(x)
- if (x < 1)
- fun_l3_n755(x)
- else
- fun_l3_n785(x)
- end
-end
-
-def fun_l2_n739(x)
- if (x < 1)
- fun_l3_n499(x)
- else
- fun_l3_n998(x)
- end
-end
-
-def fun_l2_n740(x)
- if (x < 1)
- fun_l3_n303(x)
- else
- fun_l3_n646(x)
- end
-end
-
-def fun_l2_n741(x)
- if (x < 1)
- fun_l3_n385(x)
- else
- fun_l3_n202(x)
- end
-end
-
-def fun_l2_n742(x)
- if (x < 1)
- fun_l3_n290(x)
- else
- fun_l3_n617(x)
- end
-end
-
-def fun_l2_n743(x)
- if (x < 1)
- fun_l3_n735(x)
- else
- fun_l3_n322(x)
- end
-end
-
-def fun_l2_n744(x)
- if (x < 1)
- fun_l3_n541(x)
- else
- fun_l3_n841(x)
- end
-end
-
-def fun_l2_n745(x)
- if (x < 1)
- fun_l3_n124(x)
- else
- fun_l3_n927(x)
- end
-end
-
-def fun_l2_n746(x)
- if (x < 1)
- fun_l3_n909(x)
- else
- fun_l3_n981(x)
- end
-end
-
-def fun_l2_n747(x)
- if (x < 1)
- fun_l3_n535(x)
- else
- fun_l3_n154(x)
- end
-end
-
-def fun_l2_n748(x)
- if (x < 1)
- fun_l3_n804(x)
- else
- fun_l3_n837(x)
- end
-end
-
-def fun_l2_n749(x)
- if (x < 1)
- fun_l3_n787(x)
- else
- fun_l3_n890(x)
- end
-end
-
-def fun_l2_n750(x)
- if (x < 1)
- fun_l3_n273(x)
- else
- fun_l3_n539(x)
- end
-end
-
-def fun_l2_n751(x)
- if (x < 1)
- fun_l3_n397(x)
- else
- fun_l3_n630(x)
- end
-end
-
-def fun_l2_n752(x)
- if (x < 1)
- fun_l3_n757(x)
- else
- fun_l3_n294(x)
- end
-end
-
-def fun_l2_n753(x)
- if (x < 1)
- fun_l3_n731(x)
- else
- fun_l3_n121(x)
- end
-end
-
-def fun_l2_n754(x)
- if (x < 1)
- fun_l3_n391(x)
- else
- fun_l3_n640(x)
- end
-end
-
-def fun_l2_n755(x)
- if (x < 1)
- fun_l3_n441(x)
- else
- fun_l3_n731(x)
- end
-end
-
-def fun_l2_n756(x)
- if (x < 1)
- fun_l3_n947(x)
- else
- fun_l3_n175(x)
- end
-end
-
-def fun_l2_n757(x)
- if (x < 1)
- fun_l3_n294(x)
- else
- fun_l3_n732(x)
- end
-end
-
-def fun_l2_n758(x)
- if (x < 1)
- fun_l3_n862(x)
- else
- fun_l3_n490(x)
- end
-end
-
-def fun_l2_n759(x)
- if (x < 1)
- fun_l3_n959(x)
- else
- fun_l3_n58(x)
- end
-end
-
-def fun_l2_n760(x)
- if (x < 1)
- fun_l3_n245(x)
- else
- fun_l3_n201(x)
- end
-end
-
-def fun_l2_n761(x)
- if (x < 1)
- fun_l3_n174(x)
- else
- fun_l3_n763(x)
- end
-end
-
-def fun_l2_n762(x)
- if (x < 1)
- fun_l3_n276(x)
- else
- fun_l3_n624(x)
- end
-end
-
-def fun_l2_n763(x)
- if (x < 1)
- fun_l3_n130(x)
- else
- fun_l3_n452(x)
- end
-end
-
-def fun_l2_n764(x)
- if (x < 1)
- fun_l3_n476(x)
- else
- fun_l3_n519(x)
- end
-end
-
-def fun_l2_n765(x)
- if (x < 1)
- fun_l3_n911(x)
- else
- fun_l3_n28(x)
- end
-end
-
-def fun_l2_n766(x)
- if (x < 1)
- fun_l3_n290(x)
- else
- fun_l3_n528(x)
- end
-end
-
-def fun_l2_n767(x)
- if (x < 1)
- fun_l3_n89(x)
- else
- fun_l3_n284(x)
- end
-end
-
-def fun_l2_n768(x)
- if (x < 1)
- fun_l3_n307(x)
- else
- fun_l3_n832(x)
- end
-end
-
-def fun_l2_n769(x)
- if (x < 1)
- fun_l3_n204(x)
- else
- fun_l3_n358(x)
- end
-end
-
-def fun_l2_n770(x)
- if (x < 1)
- fun_l3_n380(x)
- else
- fun_l3_n938(x)
- end
-end
-
-def fun_l2_n771(x)
- if (x < 1)
- fun_l3_n245(x)
- else
- fun_l3_n156(x)
- end
-end
-
-def fun_l2_n772(x)
- if (x < 1)
- fun_l3_n77(x)
- else
- fun_l3_n842(x)
- end
-end
-
-def fun_l2_n773(x)
- if (x < 1)
- fun_l3_n972(x)
- else
- fun_l3_n143(x)
- end
-end
-
-def fun_l2_n774(x)
- if (x < 1)
- fun_l3_n308(x)
- else
- fun_l3_n713(x)
- end
-end
-
-def fun_l2_n775(x)
- if (x < 1)
- fun_l3_n714(x)
- else
- fun_l3_n329(x)
- end
-end
-
-def fun_l2_n776(x)
- if (x < 1)
- fun_l3_n805(x)
- else
- fun_l3_n141(x)
- end
-end
-
-def fun_l2_n777(x)
- if (x < 1)
- fun_l3_n155(x)
- else
- fun_l3_n873(x)
- end
-end
-
-def fun_l2_n778(x)
- if (x < 1)
- fun_l3_n551(x)
- else
- fun_l3_n293(x)
- end
-end
-
-def fun_l2_n779(x)
- if (x < 1)
- fun_l3_n857(x)
- else
- fun_l3_n551(x)
- end
-end
-
-def fun_l2_n780(x)
- if (x < 1)
- fun_l3_n30(x)
- else
- fun_l3_n230(x)
- end
-end
-
-def fun_l2_n781(x)
- if (x < 1)
- fun_l3_n958(x)
- else
- fun_l3_n463(x)
- end
-end
-
-def fun_l2_n782(x)
- if (x < 1)
- fun_l3_n89(x)
- else
- fun_l3_n514(x)
- end
-end
-
-def fun_l2_n783(x)
- if (x < 1)
- fun_l3_n290(x)
- else
- fun_l3_n394(x)
- end
-end
-
-def fun_l2_n784(x)
- if (x < 1)
- fun_l3_n582(x)
- else
- fun_l3_n927(x)
- end
-end
-
-def fun_l2_n785(x)
- if (x < 1)
- fun_l3_n739(x)
- else
- fun_l3_n822(x)
- end
-end
-
-def fun_l2_n786(x)
- if (x < 1)
- fun_l3_n1(x)
- else
- fun_l3_n162(x)
- end
-end
-
-def fun_l2_n787(x)
- if (x < 1)
- fun_l3_n88(x)
- else
- fun_l3_n800(x)
- end
-end
-
-def fun_l2_n788(x)
- if (x < 1)
- fun_l3_n592(x)
- else
- fun_l3_n235(x)
- end
-end
-
-def fun_l2_n789(x)
- if (x < 1)
- fun_l3_n337(x)
- else
- fun_l3_n204(x)
- end
-end
-
-def fun_l2_n790(x)
- if (x < 1)
- fun_l3_n481(x)
- else
- fun_l3_n361(x)
- end
-end
-
-def fun_l2_n791(x)
- if (x < 1)
- fun_l3_n441(x)
- else
- fun_l3_n883(x)
- end
-end
-
-def fun_l2_n792(x)
- if (x < 1)
- fun_l3_n424(x)
- else
- fun_l3_n387(x)
- end
-end
-
-def fun_l2_n793(x)
- if (x < 1)
- fun_l3_n961(x)
- else
- fun_l3_n710(x)
- end
-end
-
-def fun_l2_n794(x)
- if (x < 1)
- fun_l3_n653(x)
- else
- fun_l3_n869(x)
- end
-end
-
-def fun_l2_n795(x)
- if (x < 1)
- fun_l3_n466(x)
- else
- fun_l3_n195(x)
- end
-end
-
-def fun_l2_n796(x)
- if (x < 1)
- fun_l3_n30(x)
- else
- fun_l3_n137(x)
- end
-end
-
-def fun_l2_n797(x)
- if (x < 1)
- fun_l3_n974(x)
- else
- fun_l3_n911(x)
- end
-end
-
-def fun_l2_n798(x)
- if (x < 1)
- fun_l3_n500(x)
- else
- fun_l3_n607(x)
- end
-end
-
-def fun_l2_n799(x)
- if (x < 1)
- fun_l3_n964(x)
- else
- fun_l3_n425(x)
- end
-end
-
-def fun_l2_n800(x)
- if (x < 1)
- fun_l3_n381(x)
- else
- fun_l3_n618(x)
- end
-end
-
-def fun_l2_n801(x)
- if (x < 1)
- fun_l3_n803(x)
- else
- fun_l3_n697(x)
- end
-end
-
-def fun_l2_n802(x)
- if (x < 1)
- fun_l3_n372(x)
- else
- fun_l3_n331(x)
- end
-end
-
-def fun_l2_n803(x)
- if (x < 1)
- fun_l3_n450(x)
- else
- fun_l3_n707(x)
- end
-end
-
-def fun_l2_n804(x)
- if (x < 1)
- fun_l3_n760(x)
- else
- fun_l3_n800(x)
- end
-end
-
-def fun_l2_n805(x)
- if (x < 1)
- fun_l3_n695(x)
- else
- fun_l3_n426(x)
- end
-end
-
-def fun_l2_n806(x)
- if (x < 1)
- fun_l3_n312(x)
- else
- fun_l3_n517(x)
- end
-end
-
-def fun_l2_n807(x)
- if (x < 1)
- fun_l3_n794(x)
- else
- fun_l3_n37(x)
- end
-end
-
-def fun_l2_n808(x)
- if (x < 1)
- fun_l3_n591(x)
- else
- fun_l3_n933(x)
- end
-end
-
-def fun_l2_n809(x)
- if (x < 1)
- fun_l3_n974(x)
- else
- fun_l3_n69(x)
- end
-end
-
-def fun_l2_n810(x)
- if (x < 1)
- fun_l3_n263(x)
- else
- fun_l3_n628(x)
- end
-end
-
-def fun_l2_n811(x)
- if (x < 1)
- fun_l3_n647(x)
- else
- fun_l3_n133(x)
- end
-end
-
-def fun_l2_n812(x)
- if (x < 1)
- fun_l3_n396(x)
- else
- fun_l3_n872(x)
- end
-end
-
-def fun_l2_n813(x)
- if (x < 1)
- fun_l3_n716(x)
- else
- fun_l3_n254(x)
- end
-end
-
-def fun_l2_n814(x)
- if (x < 1)
- fun_l3_n181(x)
- else
- fun_l3_n786(x)
- end
-end
-
-def fun_l2_n815(x)
- if (x < 1)
- fun_l3_n163(x)
- else
- fun_l3_n175(x)
- end
-end
-
-def fun_l2_n816(x)
- if (x < 1)
- fun_l3_n835(x)
- else
- fun_l3_n713(x)
- end
-end
-
-def fun_l2_n817(x)
- if (x < 1)
- fun_l3_n54(x)
- else
- fun_l3_n280(x)
- end
-end
-
-def fun_l2_n818(x)
- if (x < 1)
- fun_l3_n261(x)
- else
- fun_l3_n958(x)
- end
-end
-
-def fun_l2_n819(x)
- if (x < 1)
- fun_l3_n821(x)
- else
- fun_l3_n418(x)
- end
-end
-
-def fun_l2_n820(x)
- if (x < 1)
- fun_l3_n541(x)
- else
- fun_l3_n547(x)
- end
-end
-
-def fun_l2_n821(x)
- if (x < 1)
- fun_l3_n726(x)
- else
- fun_l3_n386(x)
- end
-end
-
-def fun_l2_n822(x)
- if (x < 1)
- fun_l3_n369(x)
- else
- fun_l3_n781(x)
- end
-end
-
-def fun_l2_n823(x)
- if (x < 1)
- fun_l3_n392(x)
- else
- fun_l3_n357(x)
- end
-end
-
-def fun_l2_n824(x)
- if (x < 1)
- fun_l3_n167(x)
- else
- fun_l3_n764(x)
- end
-end
-
-def fun_l2_n825(x)
- if (x < 1)
- fun_l3_n339(x)
- else
- fun_l3_n853(x)
- end
-end
-
-def fun_l2_n826(x)
- if (x < 1)
- fun_l3_n613(x)
- else
- fun_l3_n767(x)
- end
-end
-
-def fun_l2_n827(x)
- if (x < 1)
- fun_l3_n31(x)
- else
- fun_l3_n35(x)
- end
-end
-
-def fun_l2_n828(x)
- if (x < 1)
- fun_l3_n838(x)
- else
- fun_l3_n939(x)
- end
-end
-
-def fun_l2_n829(x)
- if (x < 1)
- fun_l3_n344(x)
- else
- fun_l3_n568(x)
- end
-end
-
-def fun_l2_n830(x)
- if (x < 1)
- fun_l3_n892(x)
- else
- fun_l3_n564(x)
- end
-end
-
-def fun_l2_n831(x)
- if (x < 1)
- fun_l3_n520(x)
- else
- fun_l3_n897(x)
- end
-end
-
-def fun_l2_n832(x)
- if (x < 1)
- fun_l3_n986(x)
- else
- fun_l3_n523(x)
- end
-end
-
-def fun_l2_n833(x)
- if (x < 1)
- fun_l3_n649(x)
- else
- fun_l3_n776(x)
- end
-end
-
-def fun_l2_n834(x)
- if (x < 1)
- fun_l3_n613(x)
- else
- fun_l3_n170(x)
- end
-end
-
-def fun_l2_n835(x)
- if (x < 1)
- fun_l3_n657(x)
- else
- fun_l3_n790(x)
- end
-end
-
-def fun_l2_n836(x)
- if (x < 1)
- fun_l3_n976(x)
- else
- fun_l3_n785(x)
- end
-end
-
-def fun_l2_n837(x)
- if (x < 1)
- fun_l3_n746(x)
- else
- fun_l3_n448(x)
- end
-end
-
-def fun_l2_n838(x)
- if (x < 1)
- fun_l3_n911(x)
- else
- fun_l3_n978(x)
- end
-end
-
-def fun_l2_n839(x)
- if (x < 1)
- fun_l3_n917(x)
- else
- fun_l3_n484(x)
- end
-end
-
-def fun_l2_n840(x)
- if (x < 1)
- fun_l3_n930(x)
- else
- fun_l3_n617(x)
- end
-end
-
-def fun_l2_n841(x)
- if (x < 1)
- fun_l3_n753(x)
- else
- fun_l3_n587(x)
- end
-end
-
-def fun_l2_n842(x)
- if (x < 1)
- fun_l3_n21(x)
- else
- fun_l3_n256(x)
- end
-end
-
-def fun_l2_n843(x)
- if (x < 1)
- fun_l3_n697(x)
- else
- fun_l3_n828(x)
- end
-end
-
-def fun_l2_n844(x)
- if (x < 1)
- fun_l3_n59(x)
- else
- fun_l3_n855(x)
- end
-end
-
-def fun_l2_n845(x)
- if (x < 1)
- fun_l3_n637(x)
- else
- fun_l3_n667(x)
- end
-end
-
-def fun_l2_n846(x)
- if (x < 1)
- fun_l3_n229(x)
- else
- fun_l3_n379(x)
- end
-end
-
-def fun_l2_n847(x)
- if (x < 1)
- fun_l3_n908(x)
- else
- fun_l3_n53(x)
- end
-end
-
-def fun_l2_n848(x)
- if (x < 1)
- fun_l3_n72(x)
- else
- fun_l3_n882(x)
- end
-end
-
-def fun_l2_n849(x)
- if (x < 1)
- fun_l3_n890(x)
- else
- fun_l3_n153(x)
- end
-end
-
-def fun_l2_n850(x)
- if (x < 1)
- fun_l3_n301(x)
- else
- fun_l3_n404(x)
- end
-end
-
-def fun_l2_n851(x)
- if (x < 1)
- fun_l3_n451(x)
- else
- fun_l3_n365(x)
- end
-end
-
-def fun_l2_n852(x)
- if (x < 1)
- fun_l3_n591(x)
- else
- fun_l3_n974(x)
- end
-end
-
-def fun_l2_n853(x)
- if (x < 1)
- fun_l3_n534(x)
- else
- fun_l3_n649(x)
- end
-end
-
-def fun_l2_n854(x)
- if (x < 1)
- fun_l3_n438(x)
- else
- fun_l3_n853(x)
- end
-end
-
-def fun_l2_n855(x)
- if (x < 1)
- fun_l3_n181(x)
- else
- fun_l3_n888(x)
- end
-end
-
-def fun_l2_n856(x)
- if (x < 1)
- fun_l3_n856(x)
- else
- fun_l3_n139(x)
- end
-end
-
-def fun_l2_n857(x)
- if (x < 1)
- fun_l3_n664(x)
- else
- fun_l3_n659(x)
- end
-end
-
-def fun_l2_n858(x)
- if (x < 1)
- fun_l3_n838(x)
- else
- fun_l3_n157(x)
- end
-end
-
-def fun_l2_n859(x)
- if (x < 1)
- fun_l3_n542(x)
- else
- fun_l3_n512(x)
- end
-end
-
-def fun_l2_n860(x)
- if (x < 1)
- fun_l3_n213(x)
- else
- fun_l3_n954(x)
- end
-end
-
-def fun_l2_n861(x)
- if (x < 1)
- fun_l3_n580(x)
- else
- fun_l3_n525(x)
- end
-end
-
-def fun_l2_n862(x)
- if (x < 1)
- fun_l3_n649(x)
- else
- fun_l3_n376(x)
- end
-end
-
-def fun_l2_n863(x)
- if (x < 1)
- fun_l3_n846(x)
- else
- fun_l3_n643(x)
- end
-end
-
-def fun_l2_n864(x)
- if (x < 1)
- fun_l3_n899(x)
- else
- fun_l3_n667(x)
- end
-end
-
-def fun_l2_n865(x)
- if (x < 1)
- fun_l3_n326(x)
- else
- fun_l3_n664(x)
- end
-end
-
-def fun_l2_n866(x)
- if (x < 1)
- fun_l3_n155(x)
- else
- fun_l3_n369(x)
- end
-end
-
-def fun_l2_n867(x)
- if (x < 1)
- fun_l3_n583(x)
- else
- fun_l3_n12(x)
- end
-end
-
-def fun_l2_n868(x)
- if (x < 1)
- fun_l3_n637(x)
- else
- fun_l3_n711(x)
- end
-end
-
-def fun_l2_n869(x)
- if (x < 1)
- fun_l3_n120(x)
- else
- fun_l3_n449(x)
- end
-end
-
-def fun_l2_n870(x)
- if (x < 1)
- fun_l3_n459(x)
- else
- fun_l3_n83(x)
- end
-end
-
-def fun_l2_n871(x)
- if (x < 1)
- fun_l3_n298(x)
- else
- fun_l3_n6(x)
- end
-end
-
-def fun_l2_n872(x)
- if (x < 1)
- fun_l3_n640(x)
- else
- fun_l3_n319(x)
- end
-end
-
-def fun_l2_n873(x)
- if (x < 1)
- fun_l3_n777(x)
- else
- fun_l3_n903(x)
- end
-end
-
-def fun_l2_n874(x)
- if (x < 1)
- fun_l3_n16(x)
- else
- fun_l3_n50(x)
- end
-end
-
-def fun_l2_n875(x)
- if (x < 1)
- fun_l3_n732(x)
- else
- fun_l3_n711(x)
- end
-end
-
-def fun_l2_n876(x)
- if (x < 1)
- fun_l3_n958(x)
- else
- fun_l3_n949(x)
- end
-end
-
-def fun_l2_n877(x)
- if (x < 1)
- fun_l3_n992(x)
- else
- fun_l3_n592(x)
- end
-end
-
-def fun_l2_n878(x)
- if (x < 1)
- fun_l3_n283(x)
- else
- fun_l3_n178(x)
- end
-end
-
-def fun_l2_n879(x)
- if (x < 1)
- fun_l3_n179(x)
- else
- fun_l3_n963(x)
- end
-end
-
-def fun_l2_n880(x)
- if (x < 1)
- fun_l3_n345(x)
- else
- fun_l3_n585(x)
- end
-end
-
-def fun_l2_n881(x)
- if (x < 1)
- fun_l3_n859(x)
- else
- fun_l3_n204(x)
- end
-end
-
-def fun_l2_n882(x)
- if (x < 1)
- fun_l3_n718(x)
- else
- fun_l3_n354(x)
- end
-end
-
-def fun_l2_n883(x)
- if (x < 1)
- fun_l3_n58(x)
- else
- fun_l3_n34(x)
- end
-end
-
-def fun_l2_n884(x)
- if (x < 1)
- fun_l3_n442(x)
- else
- fun_l3_n853(x)
- end
-end
-
-def fun_l2_n885(x)
- if (x < 1)
- fun_l3_n37(x)
- else
- fun_l3_n665(x)
- end
-end
-
-def fun_l2_n886(x)
- if (x < 1)
- fun_l3_n468(x)
- else
- fun_l3_n283(x)
- end
-end
-
-def fun_l2_n887(x)
- if (x < 1)
- fun_l3_n674(x)
- else
- fun_l3_n940(x)
- end
-end
-
-def fun_l2_n888(x)
- if (x < 1)
- fun_l3_n556(x)
- else
- fun_l3_n191(x)
- end
-end
-
-def fun_l2_n889(x)
- if (x < 1)
- fun_l3_n451(x)
- else
- fun_l3_n33(x)
- end
-end
-
-def fun_l2_n890(x)
- if (x < 1)
- fun_l3_n724(x)
- else
- fun_l3_n355(x)
- end
-end
-
-def fun_l2_n891(x)
- if (x < 1)
- fun_l3_n811(x)
- else
- fun_l3_n969(x)
- end
-end
-
-def fun_l2_n892(x)
- if (x < 1)
- fun_l3_n122(x)
- else
- fun_l3_n956(x)
- end
-end
-
-def fun_l2_n893(x)
- if (x < 1)
- fun_l3_n416(x)
- else
- fun_l3_n373(x)
- end
-end
-
-def fun_l2_n894(x)
- if (x < 1)
- fun_l3_n990(x)
- else
- fun_l3_n148(x)
- end
-end
-
-def fun_l2_n895(x)
- if (x < 1)
- fun_l3_n52(x)
- else
- fun_l3_n605(x)
- end
-end
-
-def fun_l2_n896(x)
- if (x < 1)
- fun_l3_n523(x)
- else
- fun_l3_n929(x)
- end
-end
-
-def fun_l2_n897(x)
- if (x < 1)
- fun_l3_n631(x)
- else
- fun_l3_n167(x)
- end
-end
-
-def fun_l2_n898(x)
- if (x < 1)
- fun_l3_n366(x)
- else
- fun_l3_n666(x)
- end
-end
-
-def fun_l2_n899(x)
- if (x < 1)
- fun_l3_n758(x)
- else
- fun_l3_n441(x)
- end
-end
-
-def fun_l2_n900(x)
- if (x < 1)
- fun_l3_n561(x)
- else
- fun_l3_n766(x)
- end
-end
-
-def fun_l2_n901(x)
- if (x < 1)
- fun_l3_n323(x)
- else
- fun_l3_n348(x)
- end
-end
-
-def fun_l2_n902(x)
- if (x < 1)
- fun_l3_n455(x)
- else
- fun_l3_n78(x)
- end
-end
-
-def fun_l2_n903(x)
- if (x < 1)
- fun_l3_n373(x)
- else
- fun_l3_n646(x)
- end
-end
-
-def fun_l2_n904(x)
- if (x < 1)
- fun_l3_n595(x)
- else
- fun_l3_n742(x)
- end
-end
-
-def fun_l2_n905(x)
- if (x < 1)
- fun_l3_n102(x)
- else
- fun_l3_n140(x)
- end
-end
-
-def fun_l2_n906(x)
- if (x < 1)
- fun_l3_n458(x)
- else
- fun_l3_n528(x)
- end
-end
-
-def fun_l2_n907(x)
- if (x < 1)
- fun_l3_n970(x)
- else
- fun_l3_n841(x)
- end
-end
-
-def fun_l2_n908(x)
- if (x < 1)
- fun_l3_n97(x)
- else
- fun_l3_n250(x)
- end
-end
-
-def fun_l2_n909(x)
- if (x < 1)
- fun_l3_n381(x)
- else
- fun_l3_n44(x)
- end
-end
-
-def fun_l2_n910(x)
- if (x < 1)
- fun_l3_n812(x)
- else
- fun_l3_n225(x)
- end
-end
-
-def fun_l2_n911(x)
- if (x < 1)
- fun_l3_n849(x)
- else
- fun_l3_n683(x)
- end
-end
-
-def fun_l2_n912(x)
- if (x < 1)
- fun_l3_n958(x)
- else
- fun_l3_n590(x)
- end
-end
-
-def fun_l2_n913(x)
- if (x < 1)
- fun_l3_n858(x)
- else
- fun_l3_n140(x)
- end
-end
-
-def fun_l2_n914(x)
- if (x < 1)
- fun_l3_n997(x)
- else
- fun_l3_n959(x)
- end
-end
-
-def fun_l2_n915(x)
- if (x < 1)
- fun_l3_n184(x)
- else
- fun_l3_n910(x)
- end
-end
-
-def fun_l2_n916(x)
- if (x < 1)
- fun_l3_n369(x)
- else
- fun_l3_n180(x)
- end
-end
-
-def fun_l2_n917(x)
- if (x < 1)
- fun_l3_n537(x)
- else
- fun_l3_n927(x)
- end
-end
-
-def fun_l2_n918(x)
- if (x < 1)
- fun_l3_n739(x)
- else
- fun_l3_n222(x)
- end
-end
-
-def fun_l2_n919(x)
- if (x < 1)
- fun_l3_n640(x)
- else
- fun_l3_n406(x)
- end
-end
-
-def fun_l2_n920(x)
- if (x < 1)
- fun_l3_n371(x)
- else
- fun_l3_n976(x)
- end
-end
-
-def fun_l2_n921(x)
- if (x < 1)
- fun_l3_n262(x)
- else
- fun_l3_n532(x)
- end
-end
-
-def fun_l2_n922(x)
- if (x < 1)
- fun_l3_n772(x)
- else
- fun_l3_n368(x)
- end
-end
-
-def fun_l2_n923(x)
- if (x < 1)
- fun_l3_n935(x)
- else
- fun_l3_n109(x)
- end
-end
-
-def fun_l2_n924(x)
- if (x < 1)
- fun_l3_n982(x)
- else
- fun_l3_n643(x)
- end
-end
-
-def fun_l2_n925(x)
- if (x < 1)
- fun_l3_n849(x)
- else
- fun_l3_n266(x)
- end
-end
-
-def fun_l2_n926(x)
- if (x < 1)
- fun_l3_n977(x)
- else
- fun_l3_n803(x)
- end
-end
-
-def fun_l2_n927(x)
- if (x < 1)
- fun_l3_n706(x)
- else
- fun_l3_n441(x)
- end
-end
-
-def fun_l2_n928(x)
- if (x < 1)
- fun_l3_n781(x)
- else
- fun_l3_n374(x)
- end
-end
-
-def fun_l2_n929(x)
- if (x < 1)
- fun_l3_n122(x)
- else
- fun_l3_n851(x)
- end
-end
-
-def fun_l2_n930(x)
- if (x < 1)
- fun_l3_n821(x)
- else
- fun_l3_n904(x)
- end
-end
-
-def fun_l2_n931(x)
- if (x < 1)
- fun_l3_n379(x)
- else
- fun_l3_n211(x)
- end
-end
-
-def fun_l2_n932(x)
- if (x < 1)
- fun_l3_n572(x)
- else
- fun_l3_n169(x)
- end
-end
-
-def fun_l2_n933(x)
- if (x < 1)
- fun_l3_n620(x)
- else
- fun_l3_n703(x)
- end
-end
-
-def fun_l2_n934(x)
- if (x < 1)
- fun_l3_n238(x)
- else
- fun_l3_n220(x)
- end
-end
-
-def fun_l2_n935(x)
- if (x < 1)
- fun_l3_n652(x)
- else
- fun_l3_n822(x)
- end
-end
-
-def fun_l2_n936(x)
- if (x < 1)
- fun_l3_n818(x)
- else
- fun_l3_n384(x)
- end
-end
-
-def fun_l2_n937(x)
- if (x < 1)
- fun_l3_n560(x)
- else
- fun_l3_n875(x)
- end
-end
-
-def fun_l2_n938(x)
- if (x < 1)
- fun_l3_n417(x)
- else
- fun_l3_n900(x)
- end
-end
-
-def fun_l2_n939(x)
- if (x < 1)
- fun_l3_n740(x)
- else
- fun_l3_n431(x)
- end
-end
-
-def fun_l2_n940(x)
- if (x < 1)
- fun_l3_n1(x)
- else
- fun_l3_n147(x)
- end
-end
-
-def fun_l2_n941(x)
- if (x < 1)
- fun_l3_n64(x)
- else
- fun_l3_n317(x)
- end
-end
-
-def fun_l2_n942(x)
- if (x < 1)
- fun_l3_n347(x)
- else
- fun_l3_n778(x)
- end
-end
-
-def fun_l2_n943(x)
- if (x < 1)
- fun_l3_n819(x)
- else
- fun_l3_n446(x)
- end
-end
-
-def fun_l2_n944(x)
- if (x < 1)
- fun_l3_n492(x)
- else
- fun_l3_n381(x)
- end
-end
-
-def fun_l2_n945(x)
- if (x < 1)
- fun_l3_n594(x)
- else
- fun_l3_n413(x)
- end
-end
-
-def fun_l2_n946(x)
- if (x < 1)
- fun_l3_n580(x)
- else
- fun_l3_n838(x)
- end
-end
-
-def fun_l2_n947(x)
- if (x < 1)
- fun_l3_n880(x)
- else
- fun_l3_n768(x)
- end
-end
-
-def fun_l2_n948(x)
- if (x < 1)
- fun_l3_n9(x)
- else
- fun_l3_n888(x)
- end
-end
-
-def fun_l2_n949(x)
- if (x < 1)
- fun_l3_n365(x)
- else
- fun_l3_n322(x)
- end
-end
-
-def fun_l2_n950(x)
- if (x < 1)
- fun_l3_n283(x)
- else
- fun_l3_n921(x)
- end
-end
-
-def fun_l2_n951(x)
- if (x < 1)
- fun_l3_n740(x)
- else
- fun_l3_n336(x)
- end
-end
-
-def fun_l2_n952(x)
- if (x < 1)
- fun_l3_n827(x)
- else
- fun_l3_n683(x)
- end
-end
-
-def fun_l2_n953(x)
- if (x < 1)
- fun_l3_n289(x)
- else
- fun_l3_n915(x)
- end
-end
-
-def fun_l2_n954(x)
- if (x < 1)
- fun_l3_n234(x)
- else
- fun_l3_n198(x)
- end
-end
-
-def fun_l2_n955(x)
- if (x < 1)
- fun_l3_n364(x)
- else
- fun_l3_n152(x)
- end
-end
-
-def fun_l2_n956(x)
- if (x < 1)
- fun_l3_n370(x)
- else
- fun_l3_n786(x)
- end
-end
-
-def fun_l2_n957(x)
- if (x < 1)
- fun_l3_n672(x)
- else
- fun_l3_n375(x)
- end
-end
-
-def fun_l2_n958(x)
- if (x < 1)
- fun_l3_n423(x)
- else
- fun_l3_n448(x)
- end
-end
-
-def fun_l2_n959(x)
- if (x < 1)
- fun_l3_n887(x)
- else
- fun_l3_n33(x)
- end
-end
-
-def fun_l2_n960(x)
- if (x < 1)
- fun_l3_n280(x)
- else
- fun_l3_n334(x)
- end
-end
-
-def fun_l2_n961(x)
- if (x < 1)
- fun_l3_n535(x)
- else
- fun_l3_n524(x)
- end
-end
-
-def fun_l2_n962(x)
- if (x < 1)
- fun_l3_n689(x)
- else
- fun_l3_n426(x)
- end
-end
-
-def fun_l2_n963(x)
- if (x < 1)
- fun_l3_n235(x)
- else
- fun_l3_n286(x)
- end
-end
-
-def fun_l2_n964(x)
- if (x < 1)
- fun_l3_n116(x)
- else
- fun_l3_n308(x)
- end
-end
-
-def fun_l2_n965(x)
- if (x < 1)
- fun_l3_n174(x)
- else
- fun_l3_n823(x)
- end
-end
-
-def fun_l2_n966(x)
- if (x < 1)
- fun_l3_n792(x)
- else
- fun_l3_n29(x)
- end
-end
-
-def fun_l2_n967(x)
- if (x < 1)
- fun_l3_n755(x)
- else
- fun_l3_n689(x)
- end
-end
-
-def fun_l2_n968(x)
- if (x < 1)
- fun_l3_n167(x)
- else
- fun_l3_n287(x)
- end
-end
-
-def fun_l2_n969(x)
- if (x < 1)
- fun_l3_n836(x)
- else
- fun_l3_n892(x)
- end
-end
-
-def fun_l2_n970(x)
- if (x < 1)
- fun_l3_n201(x)
- else
- fun_l3_n677(x)
- end
-end
-
-def fun_l2_n971(x)
- if (x < 1)
- fun_l3_n990(x)
- else
- fun_l3_n251(x)
- end
-end
-
-def fun_l2_n972(x)
- if (x < 1)
- fun_l3_n500(x)
- else
- fun_l3_n686(x)
- end
-end
-
-def fun_l2_n973(x)
- if (x < 1)
- fun_l3_n969(x)
- else
- fun_l3_n819(x)
- end
-end
-
-def fun_l2_n974(x)
- if (x < 1)
- fun_l3_n87(x)
- else
- fun_l3_n120(x)
- end
-end
-
-def fun_l2_n975(x)
- if (x < 1)
- fun_l3_n701(x)
- else
- fun_l3_n569(x)
- end
-end
-
-def fun_l2_n976(x)
- if (x < 1)
- fun_l3_n128(x)
- else
- fun_l3_n310(x)
- end
-end
-
-def fun_l2_n977(x)
- if (x < 1)
- fun_l3_n690(x)
- else
- fun_l3_n5(x)
- end
-end
-
-def fun_l2_n978(x)
- if (x < 1)
- fun_l3_n432(x)
- else
- fun_l3_n964(x)
- end
-end
-
-def fun_l2_n979(x)
- if (x < 1)
- fun_l3_n198(x)
- else
- fun_l3_n161(x)
- end
-end
-
-def fun_l2_n980(x)
- if (x < 1)
- fun_l3_n415(x)
- else
- fun_l3_n768(x)
- end
-end
-
-def fun_l2_n981(x)
- if (x < 1)
- fun_l3_n635(x)
- else
- fun_l3_n569(x)
- end
-end
-
-def fun_l2_n982(x)
- if (x < 1)
- fun_l3_n326(x)
- else
- fun_l3_n338(x)
- end
-end
-
-def fun_l2_n983(x)
- if (x < 1)
- fun_l3_n243(x)
- else
- fun_l3_n48(x)
- end
-end
-
-def fun_l2_n984(x)
- if (x < 1)
- fun_l3_n204(x)
- else
- fun_l3_n141(x)
- end
-end
-
-def fun_l2_n985(x)
- if (x < 1)
- fun_l3_n805(x)
- else
- fun_l3_n577(x)
- end
-end
-
-def fun_l2_n986(x)
- if (x < 1)
- fun_l3_n237(x)
- else
- fun_l3_n833(x)
- end
-end
-
-def fun_l2_n987(x)
- if (x < 1)
- fun_l3_n643(x)
- else
- fun_l3_n629(x)
- end
-end
-
-def fun_l2_n988(x)
- if (x < 1)
- fun_l3_n911(x)
- else
- fun_l3_n712(x)
- end
-end
-
-def fun_l2_n989(x)
- if (x < 1)
- fun_l3_n936(x)
- else
- fun_l3_n300(x)
- end
-end
-
-def fun_l2_n990(x)
- if (x < 1)
- fun_l3_n561(x)
- else
- fun_l3_n281(x)
- end
-end
-
-def fun_l2_n991(x)
- if (x < 1)
- fun_l3_n226(x)
- else
- fun_l3_n203(x)
- end
-end
-
-def fun_l2_n992(x)
- if (x < 1)
- fun_l3_n727(x)
- else
- fun_l3_n437(x)
- end
-end
-
-def fun_l2_n993(x)
- if (x < 1)
- fun_l3_n608(x)
- else
- fun_l3_n169(x)
- end
-end
-
-def fun_l2_n994(x)
- if (x < 1)
- fun_l3_n30(x)
- else
- fun_l3_n980(x)
- end
-end
-
-def fun_l2_n995(x)
- if (x < 1)
- fun_l3_n652(x)
- else
- fun_l3_n122(x)
- end
-end
-
-def fun_l2_n996(x)
- if (x < 1)
- fun_l3_n334(x)
- else
- fun_l3_n668(x)
- end
-end
-
-def fun_l2_n997(x)
- if (x < 1)
- fun_l3_n241(x)
- else
- fun_l3_n515(x)
- end
-end
-
-def fun_l2_n998(x)
- if (x < 1)
- fun_l3_n665(x)
- else
- fun_l3_n54(x)
- end
-end
-
-def fun_l2_n999(x)
- if (x < 1)
- fun_l3_n568(x)
- else
- fun_l3_n652(x)
- end
-end
-
-def fun_l3_n0(x)
- if (x < 1)
- fun_l4_n169(x)
- else
- fun_l4_n923(x)
- end
-end
-
-def fun_l3_n1(x)
- if (x < 1)
- fun_l4_n214(x)
- else
- fun_l4_n506(x)
- end
-end
-
-def fun_l3_n2(x)
- if (x < 1)
- fun_l4_n513(x)
- else
- fun_l4_n409(x)
- end
-end
-
-def fun_l3_n3(x)
- if (x < 1)
- fun_l4_n133(x)
- else
- fun_l4_n293(x)
- end
-end
-
-def fun_l3_n4(x)
- if (x < 1)
- fun_l4_n550(x)
- else
- fun_l4_n95(x)
- end
-end
-
-def fun_l3_n5(x)
- if (x < 1)
- fun_l4_n13(x)
- else
- fun_l4_n508(x)
- end
-end
-
-def fun_l3_n6(x)
- if (x < 1)
- fun_l4_n607(x)
- else
- fun_l4_n140(x)
- end
-end
-
-def fun_l3_n7(x)
- if (x < 1)
- fun_l4_n65(x)
- else
- fun_l4_n90(x)
- end
-end
-
-def fun_l3_n8(x)
- if (x < 1)
- fun_l4_n516(x)
- else
- fun_l4_n445(x)
- end
-end
-
-def fun_l3_n9(x)
- if (x < 1)
- fun_l4_n713(x)
- else
- fun_l4_n487(x)
- end
-end
-
-def fun_l3_n10(x)
- if (x < 1)
- fun_l4_n16(x)
- else
- fun_l4_n547(x)
- end
-end
-
-def fun_l3_n11(x)
- if (x < 1)
- fun_l4_n561(x)
- else
- fun_l4_n530(x)
- end
-end
-
-def fun_l3_n12(x)
- if (x < 1)
- fun_l4_n866(x)
- else
- fun_l4_n187(x)
- end
-end
-
-def fun_l3_n13(x)
- if (x < 1)
- fun_l4_n8(x)
- else
- fun_l4_n458(x)
- end
-end
-
-def fun_l3_n14(x)
- if (x < 1)
- fun_l4_n627(x)
- else
- fun_l4_n122(x)
- end
-end
-
-def fun_l3_n15(x)
- if (x < 1)
- fun_l4_n988(x)
- else
- fun_l4_n4(x)
- end
-end
-
-def fun_l3_n16(x)
- if (x < 1)
- fun_l4_n654(x)
- else
- fun_l4_n863(x)
- end
-end
-
-def fun_l3_n17(x)
- if (x < 1)
- fun_l4_n112(x)
- else
- fun_l4_n223(x)
- end
-end
-
-def fun_l3_n18(x)
- if (x < 1)
- fun_l4_n808(x)
- else
- fun_l4_n161(x)
- end
-end
-
-def fun_l3_n19(x)
- if (x < 1)
- fun_l4_n265(x)
- else
- fun_l4_n860(x)
- end
-end
-
-def fun_l3_n20(x)
- if (x < 1)
- fun_l4_n60(x)
- else
- fun_l4_n943(x)
- end
-end
-
-def fun_l3_n21(x)
- if (x < 1)
- fun_l4_n707(x)
- else
- fun_l4_n990(x)
- end
-end
-
-def fun_l3_n22(x)
- if (x < 1)
- fun_l4_n774(x)
- else
- fun_l4_n686(x)
- end
-end
-
-def fun_l3_n23(x)
- if (x < 1)
- fun_l4_n552(x)
- else
- fun_l4_n935(x)
- end
-end
-
-def fun_l3_n24(x)
- if (x < 1)
- fun_l4_n752(x)
- else
- fun_l4_n279(x)
- end
-end
-
-def fun_l3_n25(x)
- if (x < 1)
- fun_l4_n325(x)
- else
- fun_l4_n440(x)
- end
-end
-
-def fun_l3_n26(x)
- if (x < 1)
- fun_l4_n330(x)
- else
- fun_l4_n233(x)
- end
-end
-
-def fun_l3_n27(x)
- if (x < 1)
- fun_l4_n112(x)
- else
- fun_l4_n399(x)
- end
-end
-
-def fun_l3_n28(x)
- if (x < 1)
- fun_l4_n420(x)
- else
- fun_l4_n570(x)
- end
-end
-
-def fun_l3_n29(x)
- if (x < 1)
- fun_l4_n515(x)
- else
- fun_l4_n485(x)
- end
-end
-
-def fun_l3_n30(x)
- if (x < 1)
- fun_l4_n694(x)
- else
- fun_l4_n279(x)
- end
-end
-
-def fun_l3_n31(x)
- if (x < 1)
- fun_l4_n683(x)
- else
- fun_l4_n396(x)
- end
-end
-
-def fun_l3_n32(x)
- if (x < 1)
- fun_l4_n997(x)
- else
- fun_l4_n978(x)
- end
-end
-
-def fun_l3_n33(x)
- if (x < 1)
- fun_l4_n260(x)
- else
- fun_l4_n895(x)
- end
-end
-
-def fun_l3_n34(x)
- if (x < 1)
- fun_l4_n510(x)
- else
- fun_l4_n147(x)
- end
-end
-
-def fun_l3_n35(x)
- if (x < 1)
- fun_l4_n415(x)
- else
- fun_l4_n590(x)
- end
-end
-
-def fun_l3_n36(x)
- if (x < 1)
- fun_l4_n164(x)
- else
- fun_l4_n990(x)
- end
-end
-
-def fun_l3_n37(x)
- if (x < 1)
- fun_l4_n744(x)
- else
- fun_l4_n981(x)
- end
-end
-
-def fun_l3_n38(x)
- if (x < 1)
- fun_l4_n243(x)
- else
- fun_l4_n385(x)
- end
-end
-
-def fun_l3_n39(x)
- if (x < 1)
- fun_l4_n874(x)
- else
- fun_l4_n941(x)
- end
-end
-
-def fun_l3_n40(x)
- if (x < 1)
- fun_l4_n39(x)
- else
- fun_l4_n115(x)
- end
-end
-
-def fun_l3_n41(x)
- if (x < 1)
- fun_l4_n829(x)
- else
- fun_l4_n991(x)
- end
-end
-
-def fun_l3_n42(x)
- if (x < 1)
- fun_l4_n234(x)
- else
- fun_l4_n359(x)
- end
-end
-
-def fun_l3_n43(x)
- if (x < 1)
- fun_l4_n481(x)
- else
- fun_l4_n368(x)
- end
-end
-
-def fun_l3_n44(x)
- if (x < 1)
- fun_l4_n969(x)
- else
- fun_l4_n716(x)
- end
-end
-
-def fun_l3_n45(x)
- if (x < 1)
- fun_l4_n858(x)
- else
- fun_l4_n446(x)
- end
-end
-
-def fun_l3_n46(x)
- if (x < 1)
- fun_l4_n786(x)
- else
- fun_l4_n418(x)
- end
-end
-
-def fun_l3_n47(x)
- if (x < 1)
- fun_l4_n261(x)
- else
- fun_l4_n346(x)
- end
-end
-
-def fun_l3_n48(x)
- if (x < 1)
- fun_l4_n422(x)
- else
- fun_l4_n710(x)
- end
-end
-
-def fun_l3_n49(x)
- if (x < 1)
- fun_l4_n533(x)
- else
- fun_l4_n599(x)
- end
-end
-
-def fun_l3_n50(x)
- if (x < 1)
- fun_l4_n922(x)
- else
- fun_l4_n90(x)
- end
-end
-
-def fun_l3_n51(x)
- if (x < 1)
- fun_l4_n718(x)
- else
- fun_l4_n854(x)
- end
-end
-
-def fun_l3_n52(x)
- if (x < 1)
- fun_l4_n993(x)
- else
- fun_l4_n996(x)
- end
-end
-
-def fun_l3_n53(x)
- if (x < 1)
- fun_l4_n628(x)
- else
- fun_l4_n589(x)
- end
-end
-
-def fun_l3_n54(x)
- if (x < 1)
- fun_l4_n735(x)
- else
- fun_l4_n258(x)
- end
-end
-
-def fun_l3_n55(x)
- if (x < 1)
- fun_l4_n794(x)
- else
- fun_l4_n559(x)
- end
-end
-
-def fun_l3_n56(x)
- if (x < 1)
- fun_l4_n771(x)
- else
- fun_l4_n812(x)
- end
-end
-
-def fun_l3_n57(x)
- if (x < 1)
- fun_l4_n106(x)
- else
- fun_l4_n144(x)
- end
-end
-
-def fun_l3_n58(x)
- if (x < 1)
- fun_l4_n2(x)
- else
- fun_l4_n49(x)
- end
-end
-
-def fun_l3_n59(x)
- if (x < 1)
- fun_l4_n540(x)
- else
- fun_l4_n164(x)
- end
-end
-
-def fun_l3_n60(x)
- if (x < 1)
- fun_l4_n638(x)
- else
- fun_l4_n984(x)
- end
-end
-
-def fun_l3_n61(x)
- if (x < 1)
- fun_l4_n144(x)
- else
- fun_l4_n236(x)
- end
-end
-
-def fun_l3_n62(x)
- if (x < 1)
- fun_l4_n345(x)
- else
- fun_l4_n65(x)
- end
-end
-
-def fun_l3_n63(x)
- if (x < 1)
- fun_l4_n112(x)
- else
- fun_l4_n216(x)
- end
-end
-
-def fun_l3_n64(x)
- if (x < 1)
- fun_l4_n213(x)
- else
- fun_l4_n370(x)
- end
-end
-
-def fun_l3_n65(x)
- if (x < 1)
- fun_l4_n845(x)
- else
- fun_l4_n672(x)
- end
-end
-
-def fun_l3_n66(x)
- if (x < 1)
- fun_l4_n951(x)
- else
- fun_l4_n415(x)
- end
-end
-
-def fun_l3_n67(x)
- if (x < 1)
- fun_l4_n997(x)
- else
- fun_l4_n760(x)
- end
-end
-
-def fun_l3_n68(x)
- if (x < 1)
- fun_l4_n595(x)
- else
- fun_l4_n517(x)
- end
-end
-
-def fun_l3_n69(x)
- if (x < 1)
- fun_l4_n776(x)
- else
- fun_l4_n550(x)
- end
-end
-
-def fun_l3_n70(x)
- if (x < 1)
- fun_l4_n360(x)
- else
- fun_l4_n836(x)
- end
-end
-
-def fun_l3_n71(x)
- if (x < 1)
- fun_l4_n214(x)
- else
- fun_l4_n532(x)
- end
-end
-
-def fun_l3_n72(x)
- if (x < 1)
- fun_l4_n138(x)
- else
- fun_l4_n881(x)
- end
-end
-
-def fun_l3_n73(x)
- if (x < 1)
- fun_l4_n793(x)
- else
- fun_l4_n866(x)
- end
-end
-
-def fun_l3_n74(x)
- if (x < 1)
- fun_l4_n883(x)
- else
- fun_l4_n730(x)
- end
-end
-
-def fun_l3_n75(x)
- if (x < 1)
- fun_l4_n525(x)
- else
- fun_l4_n188(x)
- end
-end
-
-def fun_l3_n76(x)
- if (x < 1)
- fun_l4_n528(x)
- else
- fun_l4_n723(x)
- end
-end
-
-def fun_l3_n77(x)
- if (x < 1)
- fun_l4_n954(x)
- else
- fun_l4_n581(x)
- end
-end
-
-def fun_l3_n78(x)
- if (x < 1)
- fun_l4_n614(x)
- else
- fun_l4_n941(x)
- end
-end
-
-def fun_l3_n79(x)
- if (x < 1)
- fun_l4_n396(x)
- else
- fun_l4_n539(x)
- end
-end
-
-def fun_l3_n80(x)
- if (x < 1)
- fun_l4_n1(x)
- else
- fun_l4_n708(x)
- end
-end
-
-def fun_l3_n81(x)
- if (x < 1)
- fun_l4_n626(x)
- else
- fun_l4_n418(x)
- end
-end
-
-def fun_l3_n82(x)
- if (x < 1)
- fun_l4_n5(x)
- else
- fun_l4_n108(x)
- end
-end
-
-def fun_l3_n83(x)
- if (x < 1)
- fun_l4_n683(x)
- else
- fun_l4_n679(x)
- end
-end
-
-def fun_l3_n84(x)
- if (x < 1)
- fun_l4_n613(x)
- else
- fun_l4_n596(x)
- end
-end
-
-def fun_l3_n85(x)
- if (x < 1)
- fun_l4_n490(x)
- else
- fun_l4_n178(x)
- end
-end
-
-def fun_l3_n86(x)
- if (x < 1)
- fun_l4_n286(x)
- else
- fun_l4_n724(x)
- end
-end
-
-def fun_l3_n87(x)
- if (x < 1)
- fun_l4_n989(x)
- else
- fun_l4_n711(x)
- end
-end
-
-def fun_l3_n88(x)
- if (x < 1)
- fun_l4_n422(x)
- else
- fun_l4_n259(x)
- end
-end
-
-def fun_l3_n89(x)
- if (x < 1)
- fun_l4_n938(x)
- else
- fun_l4_n123(x)
- end
-end
-
-def fun_l3_n90(x)
- if (x < 1)
- fun_l4_n589(x)
- else
- fun_l4_n231(x)
- end
-end
-
-def fun_l3_n91(x)
- if (x < 1)
- fun_l4_n484(x)
- else
- fun_l4_n439(x)
- end
-end
-
-def fun_l3_n92(x)
- if (x < 1)
- fun_l4_n469(x)
- else
- fun_l4_n737(x)
- end
-end
-
-def fun_l3_n93(x)
- if (x < 1)
- fun_l4_n93(x)
- else
- fun_l4_n907(x)
- end
-end
-
-def fun_l3_n94(x)
- if (x < 1)
- fun_l4_n468(x)
- else
- fun_l4_n219(x)
- end
-end
-
-def fun_l3_n95(x)
- if (x < 1)
- fun_l4_n409(x)
- else
- fun_l4_n921(x)
- end
-end
-
-def fun_l3_n96(x)
- if (x < 1)
- fun_l4_n952(x)
- else
- fun_l4_n167(x)
- end
-end
-
-def fun_l3_n97(x)
- if (x < 1)
- fun_l4_n177(x)
- else
- fun_l4_n462(x)
- end
-end
-
-def fun_l3_n98(x)
- if (x < 1)
- fun_l4_n351(x)
- else
- fun_l4_n89(x)
- end
-end
-
-def fun_l3_n99(x)
- if (x < 1)
- fun_l4_n869(x)
- else
- fun_l4_n502(x)
- end
-end
-
-def fun_l3_n100(x)
- if (x < 1)
- fun_l4_n985(x)
- else
- fun_l4_n297(x)
- end
-end
-
-def fun_l3_n101(x)
- if (x < 1)
- fun_l4_n48(x)
- else
- fun_l4_n895(x)
- end
-end
-
-def fun_l3_n102(x)
- if (x < 1)
- fun_l4_n92(x)
- else
- fun_l4_n36(x)
- end
-end
-
-def fun_l3_n103(x)
- if (x < 1)
- fun_l4_n610(x)
- else
- fun_l4_n616(x)
- end
-end
-
-def fun_l3_n104(x)
- if (x < 1)
- fun_l4_n472(x)
- else
- fun_l4_n689(x)
- end
-end
-
-def fun_l3_n105(x)
- if (x < 1)
- fun_l4_n75(x)
- else
- fun_l4_n161(x)
- end
-end
-
-def fun_l3_n106(x)
- if (x < 1)
- fun_l4_n300(x)
- else
- fun_l4_n767(x)
- end
-end
-
-def fun_l3_n107(x)
- if (x < 1)
- fun_l4_n707(x)
- else
- fun_l4_n229(x)
- end
-end
-
-def fun_l3_n108(x)
- if (x < 1)
- fun_l4_n761(x)
- else
- fun_l4_n97(x)
- end
-end
-
-def fun_l3_n109(x)
- if (x < 1)
- fun_l4_n734(x)
- else
- fun_l4_n290(x)
- end
-end
-
-def fun_l3_n110(x)
- if (x < 1)
- fun_l4_n819(x)
- else
- fun_l4_n567(x)
- end
-end
-
-def fun_l3_n111(x)
- if (x < 1)
- fun_l4_n904(x)
- else
- fun_l4_n322(x)
- end
-end
-
-def fun_l3_n112(x)
- if (x < 1)
- fun_l4_n907(x)
- else
- fun_l4_n667(x)
- end
-end
-
-def fun_l3_n113(x)
- if (x < 1)
- fun_l4_n473(x)
- else
- fun_l4_n620(x)
- end
-end
-
-def fun_l3_n114(x)
- if (x < 1)
- fun_l4_n278(x)
- else
- fun_l4_n998(x)
- end
-end
-
-def fun_l3_n115(x)
- if (x < 1)
- fun_l4_n185(x)
- else
- fun_l4_n962(x)
- end
-end
-
-def fun_l3_n116(x)
- if (x < 1)
- fun_l4_n989(x)
- else
- fun_l4_n993(x)
- end
-end
-
-def fun_l3_n117(x)
- if (x < 1)
- fun_l4_n140(x)
- else
- fun_l4_n456(x)
- end
-end
-
-def fun_l3_n118(x)
- if (x < 1)
- fun_l4_n920(x)
- else
- fun_l4_n701(x)
- end
-end
-
-def fun_l3_n119(x)
- if (x < 1)
- fun_l4_n263(x)
- else
- fun_l4_n837(x)
- end
-end
-
-def fun_l3_n120(x)
- if (x < 1)
- fun_l4_n54(x)
- else
- fun_l4_n964(x)
- end
-end
-
-def fun_l3_n121(x)
- if (x < 1)
- fun_l4_n540(x)
- else
- fun_l4_n543(x)
- end
-end
-
-def fun_l3_n122(x)
- if (x < 1)
- fun_l4_n51(x)
- else
- fun_l4_n453(x)
- end
-end
-
-def fun_l3_n123(x)
- if (x < 1)
- fun_l4_n726(x)
- else
- fun_l4_n785(x)
- end
-end
-
-def fun_l3_n124(x)
- if (x < 1)
- fun_l4_n932(x)
- else
- fun_l4_n583(x)
- end
-end
-
-def fun_l3_n125(x)
- if (x < 1)
- fun_l4_n471(x)
- else
- fun_l4_n518(x)
- end
-end
-
-def fun_l3_n126(x)
- if (x < 1)
- fun_l4_n351(x)
- else
- fun_l4_n825(x)
- end
-end
-
-def fun_l3_n127(x)
- if (x < 1)
- fun_l4_n759(x)
- else
- fun_l4_n203(x)
- end
-end
-
-def fun_l3_n128(x)
- if (x < 1)
- fun_l4_n336(x)
- else
- fun_l4_n861(x)
- end
-end
-
-def fun_l3_n129(x)
- if (x < 1)
- fun_l4_n573(x)
- else
- fun_l4_n568(x)
- end
-end
-
-def fun_l3_n130(x)
- if (x < 1)
- fun_l4_n788(x)
- else
- fun_l4_n259(x)
- end
-end
-
-def fun_l3_n131(x)
- if (x < 1)
- fun_l4_n392(x)
- else
- fun_l4_n932(x)
- end
-end
-
-def fun_l3_n132(x)
- if (x < 1)
- fun_l4_n919(x)
- else
- fun_l4_n650(x)
- end
-end
-
-def fun_l3_n133(x)
- if (x < 1)
- fun_l4_n895(x)
- else
- fun_l4_n983(x)
- end
-end
-
-def fun_l3_n134(x)
- if (x < 1)
- fun_l4_n389(x)
- else
- fun_l4_n358(x)
- end
-end
-
-def fun_l3_n135(x)
- if (x < 1)
- fun_l4_n732(x)
- else
- fun_l4_n747(x)
- end
-end
-
-def fun_l3_n136(x)
- if (x < 1)
- fun_l4_n756(x)
- else
- fun_l4_n592(x)
- end
-end
-
-def fun_l3_n137(x)
- if (x < 1)
- fun_l4_n581(x)
- else
- fun_l4_n24(x)
- end
-end
-
-def fun_l3_n138(x)
- if (x < 1)
- fun_l4_n932(x)
- else
- fun_l4_n599(x)
- end
-end
-
-def fun_l3_n139(x)
- if (x < 1)
- fun_l4_n955(x)
- else
- fun_l4_n148(x)
- end
-end
-
-def fun_l3_n140(x)
- if (x < 1)
- fun_l4_n332(x)
- else
- fun_l4_n677(x)
- end
-end
-
-def fun_l3_n141(x)
- if (x < 1)
- fun_l4_n152(x)
- else
- fun_l4_n696(x)
- end
-end
-
-def fun_l3_n142(x)
- if (x < 1)
- fun_l4_n295(x)
- else
- fun_l4_n205(x)
- end
-end
-
-def fun_l3_n143(x)
- if (x < 1)
- fun_l4_n543(x)
- else
- fun_l4_n951(x)
- end
-end
-
-def fun_l3_n144(x)
- if (x < 1)
- fun_l4_n656(x)
- else
- fun_l4_n494(x)
- end
-end
-
-def fun_l3_n145(x)
- if (x < 1)
- fun_l4_n729(x)
- else
- fun_l4_n749(x)
- end
-end
-
-def fun_l3_n146(x)
- if (x < 1)
- fun_l4_n197(x)
- else
- fun_l4_n3(x)
- end
-end
-
-def fun_l3_n147(x)
- if (x < 1)
- fun_l4_n519(x)
- else
- fun_l4_n36(x)
- end
-end
-
-def fun_l3_n148(x)
- if (x < 1)
- fun_l4_n100(x)
- else
- fun_l4_n463(x)
- end
-end
-
-def fun_l3_n149(x)
- if (x < 1)
- fun_l4_n890(x)
- else
- fun_l4_n947(x)
- end
-end
-
-def fun_l3_n150(x)
- if (x < 1)
- fun_l4_n512(x)
- else
- fun_l4_n982(x)
- end
-end
-
-def fun_l3_n151(x)
- if (x < 1)
- fun_l4_n750(x)
- else
- fun_l4_n781(x)
- end
-end
-
-def fun_l3_n152(x)
- if (x < 1)
- fun_l4_n193(x)
- else
- fun_l4_n530(x)
- end
-end
-
-def fun_l3_n153(x)
- if (x < 1)
- fun_l4_n189(x)
- else
- fun_l4_n209(x)
- end
-end
-
-def fun_l3_n154(x)
- if (x < 1)
- fun_l4_n343(x)
- else
- fun_l4_n44(x)
- end
-end
-
-def fun_l3_n155(x)
- if (x < 1)
- fun_l4_n536(x)
- else
- fun_l4_n228(x)
- end
-end
-
-def fun_l3_n156(x)
- if (x < 1)
- fun_l4_n475(x)
- else
- fun_l4_n790(x)
- end
-end
-
-def fun_l3_n157(x)
- if (x < 1)
- fun_l4_n954(x)
- else
- fun_l4_n242(x)
- end
-end
-
-def fun_l3_n158(x)
- if (x < 1)
- fun_l4_n19(x)
- else
- fun_l4_n735(x)
- end
-end
-
-def fun_l3_n159(x)
- if (x < 1)
- fun_l4_n900(x)
- else
- fun_l4_n456(x)
- end
-end
-
-def fun_l3_n160(x)
- if (x < 1)
- fun_l4_n193(x)
- else
- fun_l4_n606(x)
- end
-end
-
-def fun_l3_n161(x)
- if (x < 1)
- fun_l4_n684(x)
- else
- fun_l4_n622(x)
- end
-end
-
-def fun_l3_n162(x)
- if (x < 1)
- fun_l4_n260(x)
- else
- fun_l4_n582(x)
- end
-end
-
-def fun_l3_n163(x)
- if (x < 1)
- fun_l4_n713(x)
- else
- fun_l4_n601(x)
- end
-end
-
-def fun_l3_n164(x)
- if (x < 1)
- fun_l4_n819(x)
- else
- fun_l4_n642(x)
- end
-end
-
-def fun_l3_n165(x)
- if (x < 1)
- fun_l4_n45(x)
- else
- fun_l4_n777(x)
- end
-end
-
-def fun_l3_n166(x)
- if (x < 1)
- fun_l4_n256(x)
- else
- fun_l4_n92(x)
- end
-end
-
-def fun_l3_n167(x)
- if (x < 1)
- fun_l4_n975(x)
- else
- fun_l4_n962(x)
- end
-end
-
-def fun_l3_n168(x)
- if (x < 1)
- fun_l4_n579(x)
- else
- fun_l4_n208(x)
- end
-end
-
-def fun_l3_n169(x)
- if (x < 1)
- fun_l4_n133(x)
- else
- fun_l4_n636(x)
- end
-end
-
-def fun_l3_n170(x)
- if (x < 1)
- fun_l4_n863(x)
- else
- fun_l4_n168(x)
- end
-end
-
-def fun_l3_n171(x)
- if (x < 1)
- fun_l4_n396(x)
- else
- fun_l4_n654(x)
- end
-end
-
-def fun_l3_n172(x)
- if (x < 1)
- fun_l4_n963(x)
- else
- fun_l4_n420(x)
- end
-end
-
-def fun_l3_n173(x)
- if (x < 1)
- fun_l4_n487(x)
- else
- fun_l4_n573(x)
- end
-end
-
-def fun_l3_n174(x)
- if (x < 1)
- fun_l4_n847(x)
- else
- fun_l4_n476(x)
- end
-end
-
-def fun_l3_n175(x)
- if (x < 1)
- fun_l4_n712(x)
- else
- fun_l4_n522(x)
- end
-end
-
-def fun_l3_n176(x)
- if (x < 1)
- fun_l4_n292(x)
- else
- fun_l4_n717(x)
- end
-end
-
-def fun_l3_n177(x)
- if (x < 1)
- fun_l4_n945(x)
- else
- fun_l4_n146(x)
- end
-end
-
-def fun_l3_n178(x)
- if (x < 1)
- fun_l4_n163(x)
- else
- fun_l4_n28(x)
- end
-end
-
-def fun_l3_n179(x)
- if (x < 1)
- fun_l4_n738(x)
- else
- fun_l4_n502(x)
- end
-end
-
-def fun_l3_n180(x)
- if (x < 1)
- fun_l4_n8(x)
- else
- fun_l4_n56(x)
- end
-end
-
-def fun_l3_n181(x)
- if (x < 1)
- fun_l4_n58(x)
- else
- fun_l4_n155(x)
- end
-end
-
-def fun_l3_n182(x)
- if (x < 1)
- fun_l4_n298(x)
- else
- fun_l4_n580(x)
- end
-end
-
-def fun_l3_n183(x)
- if (x < 1)
- fun_l4_n860(x)
- else
- fun_l4_n176(x)
- end
-end
-
-def fun_l3_n184(x)
- if (x < 1)
- fun_l4_n108(x)
- else
- fun_l4_n986(x)
- end
-end
-
-def fun_l3_n185(x)
- if (x < 1)
- fun_l4_n366(x)
- else
- fun_l4_n110(x)
- end
-end
-
-def fun_l3_n186(x)
- if (x < 1)
- fun_l4_n177(x)
- else
- fun_l4_n158(x)
- end
-end
-
-def fun_l3_n187(x)
- if (x < 1)
- fun_l4_n212(x)
- else
- fun_l4_n803(x)
- end
-end
-
-def fun_l3_n188(x)
- if (x < 1)
- fun_l4_n946(x)
- else
- fun_l4_n281(x)
- end
-end
-
-def fun_l3_n189(x)
- if (x < 1)
- fun_l4_n610(x)
- else
- fun_l4_n691(x)
- end
-end
-
-def fun_l3_n190(x)
- if (x < 1)
- fun_l4_n784(x)
- else
- fun_l4_n300(x)
- end
-end
-
-def fun_l3_n191(x)
- if (x < 1)
- fun_l4_n272(x)
- else
- fun_l4_n809(x)
- end
-end
-
-def fun_l3_n192(x)
- if (x < 1)
- fun_l4_n812(x)
- else
- fun_l4_n633(x)
- end
-end
-
-def fun_l3_n193(x)
- if (x < 1)
- fun_l4_n880(x)
- else
- fun_l4_n267(x)
- end
-end
-
-def fun_l3_n194(x)
- if (x < 1)
- fun_l4_n454(x)
- else
- fun_l4_n567(x)
- end
-end
-
-def fun_l3_n195(x)
- if (x < 1)
- fun_l4_n919(x)
- else
- fun_l4_n184(x)
- end
-end
-
-def fun_l3_n196(x)
- if (x < 1)
- fun_l4_n294(x)
- else
- fun_l4_n150(x)
- end
-end
-
-def fun_l3_n197(x)
- if (x < 1)
- fun_l4_n543(x)
- else
- fun_l4_n319(x)
- end
-end
-
-def fun_l3_n198(x)
- if (x < 1)
- fun_l4_n91(x)
- else
- fun_l4_n378(x)
- end
-end
-
-def fun_l3_n199(x)
- if (x < 1)
- fun_l4_n590(x)
- else
- fun_l4_n195(x)
- end
-end
-
-def fun_l3_n200(x)
- if (x < 1)
- fun_l4_n532(x)
- else
- fun_l4_n346(x)
- end
-end
-
-def fun_l3_n201(x)
- if (x < 1)
- fun_l4_n340(x)
- else
- fun_l4_n129(x)
- end
-end
-
-def fun_l3_n202(x)
- if (x < 1)
- fun_l4_n193(x)
- else
- fun_l4_n676(x)
- end
-end
-
-def fun_l3_n203(x)
- if (x < 1)
- fun_l4_n210(x)
- else
- fun_l4_n982(x)
- end
-end
-
-def fun_l3_n204(x)
- if (x < 1)
- fun_l4_n247(x)
- else
- fun_l4_n550(x)
- end
-end
-
-def fun_l3_n205(x)
- if (x < 1)
- fun_l4_n727(x)
- else
- fun_l4_n737(x)
- end
-end
-
-def fun_l3_n206(x)
- if (x < 1)
- fun_l4_n111(x)
- else
- fun_l4_n952(x)
- end
-end
-
-def fun_l3_n207(x)
- if (x < 1)
- fun_l4_n996(x)
- else
- fun_l4_n865(x)
- end
-end
-
-def fun_l3_n208(x)
- if (x < 1)
- fun_l4_n945(x)
- else
- fun_l4_n488(x)
- end
-end
-
-def fun_l3_n209(x)
- if (x < 1)
- fun_l4_n697(x)
- else
- fun_l4_n366(x)
- end
-end
-
-def fun_l3_n210(x)
- if (x < 1)
- fun_l4_n180(x)
- else
- fun_l4_n995(x)
- end
-end
-
-def fun_l3_n211(x)
- if (x < 1)
- fun_l4_n972(x)
- else
- fun_l4_n783(x)
- end
-end
-
-def fun_l3_n212(x)
- if (x < 1)
- fun_l4_n58(x)
- else
- fun_l4_n430(x)
- end
-end
-
-def fun_l3_n213(x)
- if (x < 1)
- fun_l4_n904(x)
- else
- fun_l4_n703(x)
- end
-end
-
-def fun_l3_n214(x)
- if (x < 1)
- fun_l4_n882(x)
- else
- fun_l4_n648(x)
- end
-end
-
-def fun_l3_n215(x)
- if (x < 1)
- fun_l4_n800(x)
- else
- fun_l4_n680(x)
- end
-end
-
-def fun_l3_n216(x)
- if (x < 1)
- fun_l4_n205(x)
- else
- fun_l4_n185(x)
- end
-end
-
-def fun_l3_n217(x)
- if (x < 1)
- fun_l4_n242(x)
- else
- fun_l4_n834(x)
- end
-end
-
-def fun_l3_n218(x)
- if (x < 1)
- fun_l4_n551(x)
- else
- fun_l4_n399(x)
- end
-end
-
-def fun_l3_n219(x)
- if (x < 1)
- fun_l4_n820(x)
- else
- fun_l4_n403(x)
- end
-end
-
-def fun_l3_n220(x)
- if (x < 1)
- fun_l4_n874(x)
- else
- fun_l4_n584(x)
- end
-end
-
-def fun_l3_n221(x)
- if (x < 1)
- fun_l4_n845(x)
- else
- fun_l4_n56(x)
- end
-end
-
-def fun_l3_n222(x)
- if (x < 1)
- fun_l4_n947(x)
- else
- fun_l4_n299(x)
- end
-end
-
-def fun_l3_n223(x)
- if (x < 1)
- fun_l4_n533(x)
- else
- fun_l4_n184(x)
- end
-end
-
-def fun_l3_n224(x)
- if (x < 1)
- fun_l4_n760(x)
- else
- fun_l4_n507(x)
- end
-end
-
-def fun_l3_n225(x)
- if (x < 1)
- fun_l4_n47(x)
- else
- fun_l4_n712(x)
- end
-end
-
-def fun_l3_n226(x)
- if (x < 1)
- fun_l4_n470(x)
- else
- fun_l4_n760(x)
- end
-end
-
-def fun_l3_n227(x)
- if (x < 1)
- fun_l4_n932(x)
- else
- fun_l4_n292(x)
- end
-end
-
-def fun_l3_n228(x)
- if (x < 1)
- fun_l4_n44(x)
- else
- fun_l4_n855(x)
- end
-end
-
-def fun_l3_n229(x)
- if (x < 1)
- fun_l4_n385(x)
- else
- fun_l4_n284(x)
- end
-end
-
-def fun_l3_n230(x)
- if (x < 1)
- fun_l4_n272(x)
- else
- fun_l4_n407(x)
- end
-end
-
-def fun_l3_n231(x)
- if (x < 1)
- fun_l4_n820(x)
- else
- fun_l4_n375(x)
- end
-end
-
-def fun_l3_n232(x)
- if (x < 1)
- fun_l4_n165(x)
- else
- fun_l4_n38(x)
- end
-end
-
-def fun_l3_n233(x)
- if (x < 1)
- fun_l4_n772(x)
- else
- fun_l4_n179(x)
- end
-end
-
-def fun_l3_n234(x)
- if (x < 1)
- fun_l4_n980(x)
- else
- fun_l4_n678(x)
- end
-end
-
-def fun_l3_n235(x)
- if (x < 1)
- fun_l4_n279(x)
- else
- fun_l4_n834(x)
- end
-end
-
-def fun_l3_n236(x)
- if (x < 1)
- fun_l4_n227(x)
- else
- fun_l4_n11(x)
- end
-end
-
-def fun_l3_n237(x)
- if (x < 1)
- fun_l4_n724(x)
- else
- fun_l4_n659(x)
- end
-end
-
-def fun_l3_n238(x)
- if (x < 1)
- fun_l4_n569(x)
- else
- fun_l4_n693(x)
- end
-end
-
-def fun_l3_n239(x)
- if (x < 1)
- fun_l4_n933(x)
- else
- fun_l4_n897(x)
- end
-end
-
-def fun_l3_n240(x)
- if (x < 1)
- fun_l4_n215(x)
- else
- fun_l4_n784(x)
- end
-end
-
-def fun_l3_n241(x)
- if (x < 1)
- fun_l4_n964(x)
- else
- fun_l4_n430(x)
- end
-end
-
-def fun_l3_n242(x)
- if (x < 1)
- fun_l4_n91(x)
- else
- fun_l4_n190(x)
- end
-end
-
-def fun_l3_n243(x)
- if (x < 1)
- fun_l4_n375(x)
- else
- fun_l4_n638(x)
- end
-end
-
-def fun_l3_n244(x)
- if (x < 1)
- fun_l4_n381(x)
- else
- fun_l4_n324(x)
- end
-end
-
-def fun_l3_n245(x)
- if (x < 1)
- fun_l4_n983(x)
- else
- fun_l4_n248(x)
- end
-end
-
-def fun_l3_n246(x)
- if (x < 1)
- fun_l4_n336(x)
- else
- fun_l4_n647(x)
- end
-end
-
-def fun_l3_n247(x)
- if (x < 1)
- fun_l4_n64(x)
- else
- fun_l4_n957(x)
- end
-end
-
-def fun_l3_n248(x)
- if (x < 1)
- fun_l4_n313(x)
- else
- fun_l4_n662(x)
- end
-end
-
-def fun_l3_n249(x)
- if (x < 1)
- fun_l4_n528(x)
- else
- fun_l4_n448(x)
- end
-end
-
-def fun_l3_n250(x)
- if (x < 1)
- fun_l4_n9(x)
- else
- fun_l4_n424(x)
- end
-end
-
-def fun_l3_n251(x)
- if (x < 1)
- fun_l4_n290(x)
- else
- fun_l4_n416(x)
- end
-end
-
-def fun_l3_n252(x)
- if (x < 1)
- fun_l4_n159(x)
- else
- fun_l4_n780(x)
- end
-end
-
-def fun_l3_n253(x)
- if (x < 1)
- fun_l4_n863(x)
- else
- fun_l4_n192(x)
- end
-end
-
-def fun_l3_n254(x)
- if (x < 1)
- fun_l4_n658(x)
- else
- fun_l4_n816(x)
- end
-end
-
-def fun_l3_n255(x)
- if (x < 1)
- fun_l4_n686(x)
- else
- fun_l4_n586(x)
- end
-end
-
-def fun_l3_n256(x)
- if (x < 1)
- fun_l4_n110(x)
- else
- fun_l4_n290(x)
- end
-end
-
-def fun_l3_n257(x)
- if (x < 1)
- fun_l4_n355(x)
- else
- fun_l4_n862(x)
- end
-end
-
-def fun_l3_n258(x)
- if (x < 1)
- fun_l4_n63(x)
- else
- fun_l4_n205(x)
- end
-end
-
-def fun_l3_n259(x)
- if (x < 1)
- fun_l4_n766(x)
- else
- fun_l4_n130(x)
- end
-end
-
-def fun_l3_n260(x)
- if (x < 1)
- fun_l4_n670(x)
- else
- fun_l4_n313(x)
- end
-end
-
-def fun_l3_n261(x)
- if (x < 1)
- fun_l4_n738(x)
- else
- fun_l4_n796(x)
- end
-end
-
-def fun_l3_n262(x)
- if (x < 1)
- fun_l4_n925(x)
- else
- fun_l4_n267(x)
- end
-end
-
-def fun_l3_n263(x)
- if (x < 1)
- fun_l4_n515(x)
- else
- fun_l4_n298(x)
- end
-end
-
-def fun_l3_n264(x)
- if (x < 1)
- fun_l4_n883(x)
- else
- fun_l4_n809(x)
- end
-end
-
-def fun_l3_n265(x)
- if (x < 1)
- fun_l4_n138(x)
- else
- fun_l4_n665(x)
- end
-end
-
-def fun_l3_n266(x)
- if (x < 1)
- fun_l4_n141(x)
- else
- fun_l4_n641(x)
- end
-end
-
-def fun_l3_n267(x)
- if (x < 1)
- fun_l4_n936(x)
- else
- fun_l4_n233(x)
- end
-end
-
-def fun_l3_n268(x)
- if (x < 1)
- fun_l4_n28(x)
- else
- fun_l4_n351(x)
- end
-end
-
-def fun_l3_n269(x)
- if (x < 1)
- fun_l4_n62(x)
- else
- fun_l4_n17(x)
- end
-end
-
-def fun_l3_n270(x)
- if (x < 1)
- fun_l4_n489(x)
- else
- fun_l4_n408(x)
- end
-end
-
-def fun_l3_n271(x)
- if (x < 1)
- fun_l4_n276(x)
- else
- fun_l4_n799(x)
- end
-end
-
-def fun_l3_n272(x)
- if (x < 1)
- fun_l4_n103(x)
- else
- fun_l4_n804(x)
- end
-end
-
-def fun_l3_n273(x)
- if (x < 1)
- fun_l4_n850(x)
- else
- fun_l4_n388(x)
- end
-end
-
-def fun_l3_n274(x)
- if (x < 1)
- fun_l4_n651(x)
- else
- fun_l4_n484(x)
- end
-end
-
-def fun_l3_n275(x)
- if (x < 1)
- fun_l4_n693(x)
- else
- fun_l4_n20(x)
- end
-end
-
-def fun_l3_n276(x)
- if (x < 1)
- fun_l4_n897(x)
- else
- fun_l4_n328(x)
- end
-end
-
-def fun_l3_n277(x)
- if (x < 1)
- fun_l4_n632(x)
- else
- fun_l4_n120(x)
- end
-end
-
-def fun_l3_n278(x)
- if (x < 1)
- fun_l4_n919(x)
- else
- fun_l4_n921(x)
- end
-end
-
-def fun_l3_n279(x)
- if (x < 1)
- fun_l4_n461(x)
- else
- fun_l4_n219(x)
- end
-end
-
-def fun_l3_n280(x)
- if (x < 1)
- fun_l4_n867(x)
- else
- fun_l4_n682(x)
- end
-end
-
-def fun_l3_n281(x)
- if (x < 1)
- fun_l4_n233(x)
- else
- fun_l4_n589(x)
- end
-end
-
-def fun_l3_n282(x)
- if (x < 1)
- fun_l4_n516(x)
- else
- fun_l4_n970(x)
- end
-end
-
-def fun_l3_n283(x)
- if (x < 1)
- fun_l4_n300(x)
- else
- fun_l4_n934(x)
- end
-end
-
-def fun_l3_n284(x)
- if (x < 1)
- fun_l4_n736(x)
- else
- fun_l4_n516(x)
- end
-end
-
-def fun_l3_n285(x)
- if (x < 1)
- fun_l4_n401(x)
- else
- fun_l4_n539(x)
- end
-end
-
-def fun_l3_n286(x)
- if (x < 1)
- fun_l4_n342(x)
- else
- fun_l4_n142(x)
- end
-end
-
-def fun_l3_n287(x)
- if (x < 1)
- fun_l4_n44(x)
- else
- fun_l4_n311(x)
- end
-end
-
-def fun_l3_n288(x)
- if (x < 1)
- fun_l4_n698(x)
- else
- fun_l4_n407(x)
- end
-end
-
-def fun_l3_n289(x)
- if (x < 1)
- fun_l4_n714(x)
- else
- fun_l4_n324(x)
- end
-end
-
-def fun_l3_n290(x)
- if (x < 1)
- fun_l4_n862(x)
- else
- fun_l4_n807(x)
- end
-end
-
-def fun_l3_n291(x)
- if (x < 1)
- fun_l4_n446(x)
- else
- fun_l4_n378(x)
- end
-end
-
-def fun_l3_n292(x)
- if (x < 1)
- fun_l4_n418(x)
- else
- fun_l4_n194(x)
- end
-end
-
-def fun_l3_n293(x)
- if (x < 1)
- fun_l4_n336(x)
- else
- fun_l4_n895(x)
- end
-end
-
-def fun_l3_n294(x)
- if (x < 1)
- fun_l4_n928(x)
- else
- fun_l4_n154(x)
- end
-end
-
-def fun_l3_n295(x)
- if (x < 1)
- fun_l4_n764(x)
- else
- fun_l4_n335(x)
- end
-end
-
-def fun_l3_n296(x)
- if (x < 1)
- fun_l4_n840(x)
- else
- fun_l4_n513(x)
- end
-end
-
-def fun_l3_n297(x)
- if (x < 1)
- fun_l4_n520(x)
- else
- fun_l4_n838(x)
- end
-end
-
-def fun_l3_n298(x)
- if (x < 1)
- fun_l4_n831(x)
- else
- fun_l4_n344(x)
- end
-end
-
-def fun_l3_n299(x)
- if (x < 1)
- fun_l4_n110(x)
- else
- fun_l4_n19(x)
- end
-end
-
-def fun_l3_n300(x)
- if (x < 1)
- fun_l4_n272(x)
- else
- fun_l4_n952(x)
- end
-end
-
-def fun_l3_n301(x)
- if (x < 1)
- fun_l4_n659(x)
- else
- fun_l4_n439(x)
- end
-end
-
-def fun_l3_n302(x)
- if (x < 1)
- fun_l4_n787(x)
- else
- fun_l4_n189(x)
- end
-end
-
-def fun_l3_n303(x)
- if (x < 1)
- fun_l4_n549(x)
- else
- fun_l4_n594(x)
- end
-end
-
-def fun_l3_n304(x)
- if (x < 1)
- fun_l4_n255(x)
- else
- fun_l4_n822(x)
- end
-end
-
-def fun_l3_n305(x)
- if (x < 1)
- fun_l4_n312(x)
- else
- fun_l4_n935(x)
- end
-end
-
-def fun_l3_n306(x)
- if (x < 1)
- fun_l4_n831(x)
- else
- fun_l4_n299(x)
- end
-end
-
-def fun_l3_n307(x)
- if (x < 1)
- fun_l4_n154(x)
- else
- fun_l4_n520(x)
- end
-end
-
-def fun_l3_n308(x)
- if (x < 1)
- fun_l4_n768(x)
- else
- fun_l4_n676(x)
- end
-end
-
-def fun_l3_n309(x)
- if (x < 1)
- fun_l4_n816(x)
- else
- fun_l4_n447(x)
- end
-end
-
-def fun_l3_n310(x)
- if (x < 1)
- fun_l4_n689(x)
- else
- fun_l4_n244(x)
- end
-end
-
-def fun_l3_n311(x)
- if (x < 1)
- fun_l4_n389(x)
- else
- fun_l4_n326(x)
- end
-end
-
-def fun_l3_n312(x)
- if (x < 1)
- fun_l4_n125(x)
- else
- fun_l4_n502(x)
- end
-end
-
-def fun_l3_n313(x)
- if (x < 1)
- fun_l4_n327(x)
- else
- fun_l4_n123(x)
- end
-end
-
-def fun_l3_n314(x)
- if (x < 1)
- fun_l4_n558(x)
- else
- fun_l4_n940(x)
- end
-end
-
-def fun_l3_n315(x)
- if (x < 1)
- fun_l4_n652(x)
- else
- fun_l4_n10(x)
- end
-end
-
-def fun_l3_n316(x)
- if (x < 1)
- fun_l4_n483(x)
- else
- fun_l4_n315(x)
- end
-end
-
-def fun_l3_n317(x)
- if (x < 1)
- fun_l4_n567(x)
- else
- fun_l4_n540(x)
- end
-end
-
-def fun_l3_n318(x)
- if (x < 1)
- fun_l4_n449(x)
- else
- fun_l4_n760(x)
- end
-end
-
-def fun_l3_n319(x)
- if (x < 1)
- fun_l4_n111(x)
- else
- fun_l4_n173(x)
- end
-end
-
-def fun_l3_n320(x)
- if (x < 1)
- fun_l4_n373(x)
- else
- fun_l4_n615(x)
- end
-end
-
-def fun_l3_n321(x)
- if (x < 1)
- fun_l4_n570(x)
- else
- fun_l4_n27(x)
- end
-end
-
-def fun_l3_n322(x)
- if (x < 1)
- fun_l4_n235(x)
- else
- fun_l4_n695(x)
- end
-end
-
-def fun_l3_n323(x)
- if (x < 1)
- fun_l4_n788(x)
- else
- fun_l4_n57(x)
- end
-end
-
-def fun_l3_n324(x)
- if (x < 1)
- fun_l4_n7(x)
- else
- fun_l4_n75(x)
- end
-end
-
-def fun_l3_n325(x)
- if (x < 1)
- fun_l4_n502(x)
- else
- fun_l4_n459(x)
- end
-end
-
-def fun_l3_n326(x)
- if (x < 1)
- fun_l4_n572(x)
- else
- fun_l4_n324(x)
- end
-end
-
-def fun_l3_n327(x)
- if (x < 1)
- fun_l4_n860(x)
- else
- fun_l4_n250(x)
- end
-end
-
-def fun_l3_n328(x)
- if (x < 1)
- fun_l4_n242(x)
- else
- fun_l4_n667(x)
- end
-end
-
-def fun_l3_n329(x)
- if (x < 1)
- fun_l4_n589(x)
- else
- fun_l4_n236(x)
- end
-end
-
-def fun_l3_n330(x)
- if (x < 1)
- fun_l4_n100(x)
- else
- fun_l4_n476(x)
- end
-end
-
-def fun_l3_n331(x)
- if (x < 1)
- fun_l4_n779(x)
- else
- fun_l4_n667(x)
- end
-end
-
-def fun_l3_n332(x)
- if (x < 1)
- fun_l4_n277(x)
- else
- fun_l4_n441(x)
- end
-end
-
-def fun_l3_n333(x)
- if (x < 1)
- fun_l4_n379(x)
- else
- fun_l4_n331(x)
- end
-end
-
-def fun_l3_n334(x)
- if (x < 1)
- fun_l4_n802(x)
- else
- fun_l4_n588(x)
- end
-end
-
-def fun_l3_n335(x)
- if (x < 1)
- fun_l4_n385(x)
- else
- fun_l4_n918(x)
- end
-end
-
-def fun_l3_n336(x)
- if (x < 1)
- fun_l4_n532(x)
- else
- fun_l4_n254(x)
- end
-end
-
-def fun_l3_n337(x)
- if (x < 1)
- fun_l4_n920(x)
- else
- fun_l4_n134(x)
- end
-end
-
-def fun_l3_n338(x)
- if (x < 1)
- fun_l4_n803(x)
- else
- fun_l4_n746(x)
- end
-end
-
-def fun_l3_n339(x)
- if (x < 1)
- fun_l4_n924(x)
- else
- fun_l4_n878(x)
- end
-end
-
-def fun_l3_n340(x)
- if (x < 1)
- fun_l4_n166(x)
- else
- fun_l4_n776(x)
- end
-end
-
-def fun_l3_n341(x)
- if (x < 1)
- fun_l4_n240(x)
- else
- fun_l4_n898(x)
- end
-end
-
-def fun_l3_n342(x)
- if (x < 1)
- fun_l4_n810(x)
- else
- fun_l4_n423(x)
- end
-end
-
-def fun_l3_n343(x)
- if (x < 1)
- fun_l4_n209(x)
- else
- fun_l4_n514(x)
- end
-end
-
-def fun_l3_n344(x)
- if (x < 1)
- fun_l4_n505(x)
- else
- fun_l4_n321(x)
- end
-end
-
-def fun_l3_n345(x)
- if (x < 1)
- fun_l4_n88(x)
- else
- fun_l4_n39(x)
- end
-end
-
-def fun_l3_n346(x)
- if (x < 1)
- fun_l4_n848(x)
- else
- fun_l4_n357(x)
- end
-end
-
-def fun_l3_n347(x)
- if (x < 1)
- fun_l4_n450(x)
- else
- fun_l4_n704(x)
- end
-end
-
-def fun_l3_n348(x)
- if (x < 1)
- fun_l4_n881(x)
- else
- fun_l4_n916(x)
- end
-end
-
-def fun_l3_n349(x)
- if (x < 1)
- fun_l4_n16(x)
- else
- fun_l4_n996(x)
- end
-end
-
-def fun_l3_n350(x)
- if (x < 1)
- fun_l4_n839(x)
- else
- fun_l4_n697(x)
- end
-end
-
-def fun_l3_n351(x)
- if (x < 1)
- fun_l4_n177(x)
- else
- fun_l4_n859(x)
- end
-end
-
-def fun_l3_n352(x)
- if (x < 1)
- fun_l4_n684(x)
- else
- fun_l4_n778(x)
- end
-end
-
-def fun_l3_n353(x)
- if (x < 1)
- fun_l4_n604(x)
- else
- fun_l4_n280(x)
- end
-end
-
-def fun_l3_n354(x)
- if (x < 1)
- fun_l4_n366(x)
- else
- fun_l4_n576(x)
- end
-end
-
-def fun_l3_n355(x)
- if (x < 1)
- fun_l4_n584(x)
- else
- fun_l4_n228(x)
- end
-end
-
-def fun_l3_n356(x)
- if (x < 1)
- fun_l4_n844(x)
- else
- fun_l4_n799(x)
- end
-end
-
-def fun_l3_n357(x)
- if (x < 1)
- fun_l4_n489(x)
- else
- fun_l4_n905(x)
- end
-end
-
-def fun_l3_n358(x)
- if (x < 1)
- fun_l4_n781(x)
- else
- fun_l4_n565(x)
- end
-end
-
-def fun_l3_n359(x)
- if (x < 1)
- fun_l4_n110(x)
- else
- fun_l4_n326(x)
- end
-end
-
-def fun_l3_n360(x)
- if (x < 1)
- fun_l4_n915(x)
- else
- fun_l4_n489(x)
- end
-end
-
-def fun_l3_n361(x)
- if (x < 1)
- fun_l4_n110(x)
- else
- fun_l4_n733(x)
- end
-end
-
-def fun_l3_n362(x)
- if (x < 1)
- fun_l4_n93(x)
- else
- fun_l4_n549(x)
- end
-end
-
-def fun_l3_n363(x)
- if (x < 1)
- fun_l4_n270(x)
- else
- fun_l4_n883(x)
- end
-end
-
-def fun_l3_n364(x)
- if (x < 1)
- fun_l4_n512(x)
- else
- fun_l4_n555(x)
- end
-end
-
-def fun_l3_n365(x)
- if (x < 1)
- fun_l4_n800(x)
- else
- fun_l4_n672(x)
- end
-end
-
-def fun_l3_n366(x)
- if (x < 1)
- fun_l4_n535(x)
- else
- fun_l4_n320(x)
- end
-end
-
-def fun_l3_n367(x)
- if (x < 1)
- fun_l4_n883(x)
- else
- fun_l4_n365(x)
- end
-end
-
-def fun_l3_n368(x)
- if (x < 1)
- fun_l4_n306(x)
- else
- fun_l4_n614(x)
- end
-end
-
-def fun_l3_n369(x)
- if (x < 1)
- fun_l4_n914(x)
- else
- fun_l4_n20(x)
- end
-end
-
-def fun_l3_n370(x)
- if (x < 1)
- fun_l4_n230(x)
- else
- fun_l4_n585(x)
- end
-end
-
-def fun_l3_n371(x)
- if (x < 1)
- fun_l4_n544(x)
- else
- fun_l4_n752(x)
- end
-end
-
-def fun_l3_n372(x)
- if (x < 1)
- fun_l4_n984(x)
- else
- fun_l4_n738(x)
- end
-end
-
-def fun_l3_n373(x)
- if (x < 1)
- fun_l4_n478(x)
- else
- fun_l4_n618(x)
- end
-end
-
-def fun_l3_n374(x)
- if (x < 1)
- fun_l4_n941(x)
- else
- fun_l4_n746(x)
- end
-end
-
-def fun_l3_n375(x)
- if (x < 1)
- fun_l4_n121(x)
- else
- fun_l4_n798(x)
- end
-end
-
-def fun_l3_n376(x)
- if (x < 1)
- fun_l4_n851(x)
- else
- fun_l4_n681(x)
- end
-end
-
-def fun_l3_n377(x)
- if (x < 1)
- fun_l4_n502(x)
- else
- fun_l4_n538(x)
- end
-end
-
-def fun_l3_n378(x)
- if (x < 1)
- fun_l4_n432(x)
- else
- fun_l4_n226(x)
- end
-end
-
-def fun_l3_n379(x)
- if (x < 1)
- fun_l4_n734(x)
- else
- fun_l4_n684(x)
- end
-end
-
-def fun_l3_n380(x)
- if (x < 1)
- fun_l4_n912(x)
- else
- fun_l4_n116(x)
- end
-end
-
-def fun_l3_n381(x)
- if (x < 1)
- fun_l4_n291(x)
- else
- fun_l4_n464(x)
- end
-end
-
-def fun_l3_n382(x)
- if (x < 1)
- fun_l4_n285(x)
- else
- fun_l4_n943(x)
- end
-end
-
-def fun_l3_n383(x)
- if (x < 1)
- fun_l4_n738(x)
- else
- fun_l4_n532(x)
- end
-end
-
-def fun_l3_n384(x)
- if (x < 1)
- fun_l4_n503(x)
- else
- fun_l4_n724(x)
- end
-end
-
-def fun_l3_n385(x)
- if (x < 1)
- fun_l4_n208(x)
- else
- fun_l4_n683(x)
- end
-end
-
-def fun_l3_n386(x)
- if (x < 1)
- fun_l4_n673(x)
- else
- fun_l4_n230(x)
- end
-end
-
-def fun_l3_n387(x)
- if (x < 1)
- fun_l4_n921(x)
- else
- fun_l4_n800(x)
- end
-end
-
-def fun_l3_n388(x)
- if (x < 1)
- fun_l4_n461(x)
- else
- fun_l4_n369(x)
- end
-end
-
-def fun_l3_n389(x)
- if (x < 1)
- fun_l4_n86(x)
- else
- fun_l4_n403(x)
- end
-end
-
-def fun_l3_n390(x)
- if (x < 1)
- fun_l4_n883(x)
- else
- fun_l4_n92(x)
- end
-end
-
-def fun_l3_n391(x)
- if (x < 1)
- fun_l4_n562(x)
- else
- fun_l4_n826(x)
- end
-end
-
-def fun_l3_n392(x)
- if (x < 1)
- fun_l4_n459(x)
- else
- fun_l4_n821(x)
- end
-end
-
-def fun_l3_n393(x)
- if (x < 1)
- fun_l4_n774(x)
- else
- fun_l4_n376(x)
- end
-end
-
-def fun_l3_n394(x)
- if (x < 1)
- fun_l4_n114(x)
- else
- fun_l4_n451(x)
- end
-end
-
-def fun_l3_n395(x)
- if (x < 1)
- fun_l4_n689(x)
- else
- fun_l4_n13(x)
- end
-end
-
-def fun_l3_n396(x)
- if (x < 1)
- fun_l4_n929(x)
- else
- fun_l4_n777(x)
- end
-end
-
-def fun_l3_n397(x)
- if (x < 1)
- fun_l4_n634(x)
- else
- fun_l4_n329(x)
- end
-end
-
-def fun_l3_n398(x)
- if (x < 1)
- fun_l4_n972(x)
- else
- fun_l4_n572(x)
- end
-end
-
-def fun_l3_n399(x)
- if (x < 1)
- fun_l4_n231(x)
- else
- fun_l4_n14(x)
- end
-end
-
-def fun_l3_n400(x)
- if (x < 1)
- fun_l4_n357(x)
- else
- fun_l4_n881(x)
- end
-end
-
-def fun_l3_n401(x)
- if (x < 1)
- fun_l4_n283(x)
- else
- fun_l4_n614(x)
- end
-end
-
-def fun_l3_n402(x)
- if (x < 1)
- fun_l4_n634(x)
- else
- fun_l4_n653(x)
- end
-end
-
-def fun_l3_n403(x)
- if (x < 1)
- fun_l4_n660(x)
- else
- fun_l4_n127(x)
- end
-end
-
-def fun_l3_n404(x)
- if (x < 1)
- fun_l4_n523(x)
- else
- fun_l4_n467(x)
- end
-end
-
-def fun_l3_n405(x)
- if (x < 1)
- fun_l4_n593(x)
- else
- fun_l4_n78(x)
- end
-end
-
-def fun_l3_n406(x)
- if (x < 1)
- fun_l4_n514(x)
- else
- fun_l4_n783(x)
- end
-end
-
-def fun_l3_n407(x)
- if (x < 1)
- fun_l4_n460(x)
- else
- fun_l4_n137(x)
- end
-end
-
-def fun_l3_n408(x)
- if (x < 1)
- fun_l4_n3(x)
- else
- fun_l4_n224(x)
- end
-end
-
-def fun_l3_n409(x)
- if (x < 1)
- fun_l4_n11(x)
- else
- fun_l4_n531(x)
- end
-end
-
-def fun_l3_n410(x)
- if (x < 1)
- fun_l4_n94(x)
- else
- fun_l4_n717(x)
- end
-end
-
-def fun_l3_n411(x)
- if (x < 1)
- fun_l4_n729(x)
- else
- fun_l4_n526(x)
- end
-end
-
-def fun_l3_n412(x)
- if (x < 1)
- fun_l4_n86(x)
- else
- fun_l4_n26(x)
- end
-end
-
-def fun_l3_n413(x)
- if (x < 1)
- fun_l4_n249(x)
- else
- fun_l4_n572(x)
- end
-end
-
-def fun_l3_n414(x)
- if (x < 1)
- fun_l4_n578(x)
- else
- fun_l4_n512(x)
- end
-end
-
-def fun_l3_n415(x)
- if (x < 1)
- fun_l4_n176(x)
- else
- fun_l4_n414(x)
- end
-end
-
-def fun_l3_n416(x)
- if (x < 1)
- fun_l4_n757(x)
- else
- fun_l4_n385(x)
- end
-end
-
-def fun_l3_n417(x)
- if (x < 1)
- fun_l4_n249(x)
- else
- fun_l4_n180(x)
- end
-end
-
-def fun_l3_n418(x)
- if (x < 1)
- fun_l4_n193(x)
- else
- fun_l4_n294(x)
- end
-end
-
-def fun_l3_n419(x)
- if (x < 1)
- fun_l4_n441(x)
- else
- fun_l4_n932(x)
- end
-end
-
-def fun_l3_n420(x)
- if (x < 1)
- fun_l4_n492(x)
- else
- fun_l4_n239(x)
- end
-end
-
-def fun_l3_n421(x)
- if (x < 1)
- fun_l4_n49(x)
- else
- fun_l4_n738(x)
- end
-end
-
-def fun_l3_n422(x)
- if (x < 1)
- fun_l4_n546(x)
- else
- fun_l4_n285(x)
- end
-end
-
-def fun_l3_n423(x)
- if (x < 1)
- fun_l4_n687(x)
- else
- fun_l4_n973(x)
- end
-end
-
-def fun_l3_n424(x)
- if (x < 1)
- fun_l4_n876(x)
- else
- fun_l4_n591(x)
- end
-end
-
-def fun_l3_n425(x)
- if (x < 1)
- fun_l4_n626(x)
- else
- fun_l4_n739(x)
- end
-end
-
-def fun_l3_n426(x)
- if (x < 1)
- fun_l4_n439(x)
- else
- fun_l4_n709(x)
- end
-end
-
-def fun_l3_n427(x)
- if (x < 1)
- fun_l4_n710(x)
- else
- fun_l4_n305(x)
- end
-end
-
-def fun_l3_n428(x)
- if (x < 1)
- fun_l4_n61(x)
- else
- fun_l4_n520(x)
- end
-end
-
-def fun_l3_n429(x)
- if (x < 1)
- fun_l4_n172(x)
- else
- fun_l4_n12(x)
- end
-end
-
-def fun_l3_n430(x)
- if (x < 1)
- fun_l4_n432(x)
- else
- fun_l4_n174(x)
- end
-end
-
-def fun_l3_n431(x)
- if (x < 1)
- fun_l4_n194(x)
- else
- fun_l4_n673(x)
- end
-end
-
-def fun_l3_n432(x)
- if (x < 1)
- fun_l4_n952(x)
- else
- fun_l4_n798(x)
- end
-end
-
-def fun_l3_n433(x)
- if (x < 1)
- fun_l4_n915(x)
- else
- fun_l4_n263(x)
- end
-end
-
-def fun_l3_n434(x)
- if (x < 1)
- fun_l4_n735(x)
- else
- fun_l4_n882(x)
- end
-end
-
-def fun_l3_n435(x)
- if (x < 1)
- fun_l4_n499(x)
- else
- fun_l4_n947(x)
- end
-end
-
-def fun_l3_n436(x)
- if (x < 1)
- fun_l4_n744(x)
- else
- fun_l4_n187(x)
- end
-end
-
-def fun_l3_n437(x)
- if (x < 1)
- fun_l4_n244(x)
- else
- fun_l4_n366(x)
- end
-end
-
-def fun_l3_n438(x)
- if (x < 1)
- fun_l4_n228(x)
- else
- fun_l4_n866(x)
- end
-end
-
-def fun_l3_n439(x)
- if (x < 1)
- fun_l4_n617(x)
- else
- fun_l4_n924(x)
- end
-end
-
-def fun_l3_n440(x)
- if (x < 1)
- fun_l4_n302(x)
- else
- fun_l4_n691(x)
- end
-end
-
-def fun_l3_n441(x)
- if (x < 1)
- fun_l4_n559(x)
- else
- fun_l4_n758(x)
- end
-end
-
-def fun_l3_n442(x)
- if (x < 1)
- fun_l4_n412(x)
- else
- fun_l4_n544(x)
- end
-end
-
-def fun_l3_n443(x)
- if (x < 1)
- fun_l4_n130(x)
- else
- fun_l4_n764(x)
- end
-end
-
-def fun_l3_n444(x)
- if (x < 1)
- fun_l4_n135(x)
- else
- fun_l4_n65(x)
- end
-end
-
-def fun_l3_n445(x)
- if (x < 1)
- fun_l4_n224(x)
- else
- fun_l4_n148(x)
- end
-end
-
-def fun_l3_n446(x)
- if (x < 1)
- fun_l4_n238(x)
- else
- fun_l4_n808(x)
- end
-end
-
-def fun_l3_n447(x)
- if (x < 1)
- fun_l4_n832(x)
- else
- fun_l4_n460(x)
- end
-end
-
-def fun_l3_n448(x)
- if (x < 1)
- fun_l4_n897(x)
- else
- fun_l4_n817(x)
- end
-end
-
-def fun_l3_n449(x)
- if (x < 1)
- fun_l4_n587(x)
- else
- fun_l4_n926(x)
- end
-end
-
-def fun_l3_n450(x)
- if (x < 1)
- fun_l4_n575(x)
- else
- fun_l4_n274(x)
- end
-end
-
-def fun_l3_n451(x)
- if (x < 1)
- fun_l4_n42(x)
- else
- fun_l4_n714(x)
- end
-end
-
-def fun_l3_n452(x)
- if (x < 1)
- fun_l4_n101(x)
- else
- fun_l4_n470(x)
- end
-end
-
-def fun_l3_n453(x)
- if (x < 1)
- fun_l4_n906(x)
- else
- fun_l4_n724(x)
- end
-end
-
-def fun_l3_n454(x)
- if (x < 1)
- fun_l4_n682(x)
- else
- fun_l4_n709(x)
- end
-end
-
-def fun_l3_n455(x)
- if (x < 1)
- fun_l4_n929(x)
- else
- fun_l4_n274(x)
- end
-end
-
-def fun_l3_n456(x)
- if (x < 1)
- fun_l4_n10(x)
- else
- fun_l4_n101(x)
- end
-end
-
-def fun_l3_n457(x)
- if (x < 1)
- fun_l4_n825(x)
- else
- fun_l4_n632(x)
- end
-end
-
-def fun_l3_n458(x)
- if (x < 1)
- fun_l4_n2(x)
- else
- fun_l4_n723(x)
- end
-end
-
-def fun_l3_n459(x)
- if (x < 1)
- fun_l4_n998(x)
- else
- fun_l4_n546(x)
- end
-end
-
-def fun_l3_n460(x)
- if (x < 1)
- fun_l4_n483(x)
- else
- fun_l4_n445(x)
- end
-end
-
-def fun_l3_n461(x)
- if (x < 1)
- fun_l4_n896(x)
- else
- fun_l4_n993(x)
- end
-end
-
-def fun_l3_n462(x)
- if (x < 1)
- fun_l4_n710(x)
- else
- fun_l4_n529(x)
- end
-end
-
-def fun_l3_n463(x)
- if (x < 1)
- fun_l4_n913(x)
- else
- fun_l4_n65(x)
- end
-end
-
-def fun_l3_n464(x)
- if (x < 1)
- fun_l4_n712(x)
- else
- fun_l4_n412(x)
- end
-end
-
-def fun_l3_n465(x)
- if (x < 1)
- fun_l4_n296(x)
- else
- fun_l4_n37(x)
- end
-end
-
-def fun_l3_n466(x)
- if (x < 1)
- fun_l4_n241(x)
- else
- fun_l4_n649(x)
- end
-end
-
-def fun_l3_n467(x)
- if (x < 1)
- fun_l4_n296(x)
- else
- fun_l4_n80(x)
- end
-end
-
-def fun_l3_n468(x)
- if (x < 1)
- fun_l4_n270(x)
- else
- fun_l4_n192(x)
- end
-end
-
-def fun_l3_n469(x)
- if (x < 1)
- fun_l4_n655(x)
- else
- fun_l4_n605(x)
- end
-end
-
-def fun_l3_n470(x)
- if (x < 1)
- fun_l4_n180(x)
- else
- fun_l4_n807(x)
- end
-end
-
-def fun_l3_n471(x)
- if (x < 1)
- fun_l4_n915(x)
- else
- fun_l4_n902(x)
- end
-end
-
-def fun_l3_n472(x)
- if (x < 1)
- fun_l4_n527(x)
- else
- fun_l4_n638(x)
- end
-end
-
-def fun_l3_n473(x)
- if (x < 1)
- fun_l4_n775(x)
- else
- fun_l4_n572(x)
- end
-end
-
-def fun_l3_n474(x)
- if (x < 1)
- fun_l4_n856(x)
- else
- fun_l4_n182(x)
- end
-end
-
-def fun_l3_n475(x)
- if (x < 1)
- fun_l4_n434(x)
- else
- fun_l4_n232(x)
- end
-end
-
-def fun_l3_n476(x)
- if (x < 1)
- fun_l4_n208(x)
- else
- fun_l4_n37(x)
- end
-end
-
-def fun_l3_n477(x)
- if (x < 1)
- fun_l4_n146(x)
- else
- fun_l4_n764(x)
- end
-end
-
-def fun_l3_n478(x)
- if (x < 1)
- fun_l4_n806(x)
- else
- fun_l4_n148(x)
- end
-end
-
-def fun_l3_n479(x)
- if (x < 1)
- fun_l4_n46(x)
- else
- fun_l4_n488(x)
- end
-end
-
-def fun_l3_n480(x)
- if (x < 1)
- fun_l4_n637(x)
- else
- fun_l4_n48(x)
- end
-end
-
-def fun_l3_n481(x)
- if (x < 1)
- fun_l4_n496(x)
- else
- fun_l4_n891(x)
- end
-end
-
-def fun_l3_n482(x)
- if (x < 1)
- fun_l4_n282(x)
- else
- fun_l4_n736(x)
- end
-end
-
-def fun_l3_n483(x)
- if (x < 1)
- fun_l4_n377(x)
- else
- fun_l4_n603(x)
- end
-end
-
-def fun_l3_n484(x)
- if (x < 1)
- fun_l4_n689(x)
- else
- fun_l4_n201(x)
- end
-end
-
-def fun_l3_n485(x)
- if (x < 1)
- fun_l4_n495(x)
- else
- fun_l4_n721(x)
- end
-end
-
-def fun_l3_n486(x)
- if (x < 1)
- fun_l4_n128(x)
- else
- fun_l4_n400(x)
- end
-end
-
-def fun_l3_n487(x)
- if (x < 1)
- fun_l4_n993(x)
- else
- fun_l4_n53(x)
- end
-end
-
-def fun_l3_n488(x)
- if (x < 1)
- fun_l4_n913(x)
- else
- fun_l4_n814(x)
- end
-end
-
-def fun_l3_n489(x)
- if (x < 1)
- fun_l4_n816(x)
- else
- fun_l4_n196(x)
- end
-end
-
-def fun_l3_n490(x)
- if (x < 1)
- fun_l4_n754(x)
- else
- fun_l4_n451(x)
- end
-end
-
-def fun_l3_n491(x)
- if (x < 1)
- fun_l4_n57(x)
- else
- fun_l4_n597(x)
- end
-end
-
-def fun_l3_n492(x)
- if (x < 1)
- fun_l4_n539(x)
- else
- fun_l4_n893(x)
- end
-end
-
-def fun_l3_n493(x)
- if (x < 1)
- fun_l4_n542(x)
- else
- fun_l4_n956(x)
- end
-end
-
-def fun_l3_n494(x)
- if (x < 1)
- fun_l4_n479(x)
- else
- fun_l4_n448(x)
- end
-end
-
-def fun_l3_n495(x)
- if (x < 1)
- fun_l4_n263(x)
- else
- fun_l4_n912(x)
- end
-end
-
-def fun_l3_n496(x)
- if (x < 1)
- fun_l4_n463(x)
- else
- fun_l4_n112(x)
- end
-end
-
-def fun_l3_n497(x)
- if (x < 1)
- fun_l4_n806(x)
- else
- fun_l4_n486(x)
- end
-end
-
-def fun_l3_n498(x)
- if (x < 1)
- fun_l4_n155(x)
- else
- fun_l4_n298(x)
- end
-end
-
-def fun_l3_n499(x)
- if (x < 1)
- fun_l4_n538(x)
- else
- fun_l4_n908(x)
- end
-end
-
-def fun_l3_n500(x)
- if (x < 1)
- fun_l4_n769(x)
- else
- fun_l4_n681(x)
- end
-end
-
-def fun_l3_n501(x)
- if (x < 1)
- fun_l4_n544(x)
- else
- fun_l4_n749(x)
- end
-end
-
-def fun_l3_n502(x)
- if (x < 1)
- fun_l4_n505(x)
- else
- fun_l4_n66(x)
- end
-end
-
-def fun_l3_n503(x)
- if (x < 1)
- fun_l4_n900(x)
- else
- fun_l4_n917(x)
- end
-end
-
-def fun_l3_n504(x)
- if (x < 1)
- fun_l4_n982(x)
- else
- fun_l4_n707(x)
- end
-end
-
-def fun_l3_n505(x)
- if (x < 1)
- fun_l4_n102(x)
- else
- fun_l4_n564(x)
- end
-end
-
-def fun_l3_n506(x)
- if (x < 1)
- fun_l4_n332(x)
- else
- fun_l4_n367(x)
- end
-end
-
-def fun_l3_n507(x)
- if (x < 1)
- fun_l4_n969(x)
- else
- fun_l4_n354(x)
- end
-end
-
-def fun_l3_n508(x)
- if (x < 1)
- fun_l4_n405(x)
- else
- fun_l4_n485(x)
- end
-end
-
-def fun_l3_n509(x)
- if (x < 1)
- fun_l4_n477(x)
- else
- fun_l4_n629(x)
- end
-end
-
-def fun_l3_n510(x)
- if (x < 1)
- fun_l4_n753(x)
- else
- fun_l4_n78(x)
- end
-end
-
-def fun_l3_n511(x)
- if (x < 1)
- fun_l4_n221(x)
- else
- fun_l4_n637(x)
- end
-end
-
-def fun_l3_n512(x)
- if (x < 1)
- fun_l4_n540(x)
- else
- fun_l4_n267(x)
- end
-end
-
-def fun_l3_n513(x)
- if (x < 1)
- fun_l4_n750(x)
- else
- fun_l4_n626(x)
- end
-end
-
-def fun_l3_n514(x)
- if (x < 1)
- fun_l4_n160(x)
- else
- fun_l4_n32(x)
- end
-end
-
-def fun_l3_n515(x)
- if (x < 1)
- fun_l4_n914(x)
- else
- fun_l4_n967(x)
- end
-end
-
-def fun_l3_n516(x)
- if (x < 1)
- fun_l4_n380(x)
- else
- fun_l4_n83(x)
- end
-end
-
-def fun_l3_n517(x)
- if (x < 1)
- fun_l4_n175(x)
- else
- fun_l4_n830(x)
- end
-end
-
-def fun_l3_n518(x)
- if (x < 1)
- fun_l4_n579(x)
- else
- fun_l4_n773(x)
- end
-end
-
-def fun_l3_n519(x)
- if (x < 1)
- fun_l4_n707(x)
- else
- fun_l4_n690(x)
- end
-end
-
-def fun_l3_n520(x)
- if (x < 1)
- fun_l4_n587(x)
- else
- fun_l4_n754(x)
- end
-end
-
-def fun_l3_n521(x)
- if (x < 1)
- fun_l4_n922(x)
- else
- fun_l4_n156(x)
- end
-end
-
-def fun_l3_n522(x)
- if (x < 1)
- fun_l4_n299(x)
- else
- fun_l4_n937(x)
- end
-end
-
-def fun_l3_n523(x)
- if (x < 1)
- fun_l4_n996(x)
- else
- fun_l4_n786(x)
- end
-end
-
-def fun_l3_n524(x)
- if (x < 1)
- fun_l4_n988(x)
- else
- fun_l4_n930(x)
- end
-end
-
-def fun_l3_n525(x)
- if (x < 1)
- fun_l4_n475(x)
- else
- fun_l4_n43(x)
- end
-end
-
-def fun_l3_n526(x)
- if (x < 1)
- fun_l4_n367(x)
- else
- fun_l4_n167(x)
- end
-end
-
-def fun_l3_n527(x)
- if (x < 1)
- fun_l4_n31(x)
- else
- fun_l4_n394(x)
- end
-end
-
-def fun_l3_n528(x)
- if (x < 1)
- fun_l4_n92(x)
- else
- fun_l4_n304(x)
- end
-end
-
-def fun_l3_n529(x)
- if (x < 1)
- fun_l4_n369(x)
- else
- fun_l4_n458(x)
- end
-end
-
-def fun_l3_n530(x)
- if (x < 1)
- fun_l4_n475(x)
- else
- fun_l4_n8(x)
- end
-end
-
-def fun_l3_n531(x)
- if (x < 1)
- fun_l4_n678(x)
- else
- fun_l4_n970(x)
- end
-end
-
-def fun_l3_n532(x)
- if (x < 1)
- fun_l4_n349(x)
- else
- fun_l4_n853(x)
- end
-end
-
-def fun_l3_n533(x)
- if (x < 1)
- fun_l4_n918(x)
- else
- fun_l4_n820(x)
- end
-end
-
-def fun_l3_n534(x)
- if (x < 1)
- fun_l4_n369(x)
- else
- fun_l4_n445(x)
- end
-end
-
-def fun_l3_n535(x)
- if (x < 1)
- fun_l4_n437(x)
- else
- fun_l4_n930(x)
- end
-end
-
-def fun_l3_n536(x)
- if (x < 1)
- fun_l4_n143(x)
- else
- fun_l4_n986(x)
- end
-end
-
-def fun_l3_n537(x)
- if (x < 1)
- fun_l4_n603(x)
- else
- fun_l4_n818(x)
- end
-end
-
-def fun_l3_n538(x)
- if (x < 1)
- fun_l4_n14(x)
- else
- fun_l4_n994(x)
- end
-end
-
-def fun_l3_n539(x)
- if (x < 1)
- fun_l4_n650(x)
- else
- fun_l4_n115(x)
- end
-end
-
-def fun_l3_n540(x)
- if (x < 1)
- fun_l4_n74(x)
- else
- fun_l4_n559(x)
- end
-end
-
-def fun_l3_n541(x)
- if (x < 1)
- fun_l4_n601(x)
- else
- fun_l4_n756(x)
- end
-end
-
-def fun_l3_n542(x)
- if (x < 1)
- fun_l4_n733(x)
- else
- fun_l4_n274(x)
- end
-end
-
-def fun_l3_n543(x)
- if (x < 1)
- fun_l4_n819(x)
- else
- fun_l4_n97(x)
- end
-end
-
-def fun_l3_n544(x)
- if (x < 1)
- fun_l4_n949(x)
- else
- fun_l4_n868(x)
- end
-end
-
-def fun_l3_n545(x)
- if (x < 1)
- fun_l4_n346(x)
- else
- fun_l4_n0(x)
- end
-end
-
-def fun_l3_n546(x)
- if (x < 1)
- fun_l4_n820(x)
- else
- fun_l4_n188(x)
- end
-end
-
-def fun_l3_n547(x)
- if (x < 1)
- fun_l4_n403(x)
- else
- fun_l4_n670(x)
- end
-end
-
-def fun_l3_n548(x)
- if (x < 1)
- fun_l4_n449(x)
- else
- fun_l4_n96(x)
- end
-end
-
-def fun_l3_n549(x)
- if (x < 1)
- fun_l4_n585(x)
- else
- fun_l4_n388(x)
- end
-end
-
-def fun_l3_n550(x)
- if (x < 1)
- fun_l4_n963(x)
- else
- fun_l4_n979(x)
- end
-end
-
-def fun_l3_n551(x)
- if (x < 1)
- fun_l4_n892(x)
- else
- fun_l4_n583(x)
- end
-end
-
-def fun_l3_n552(x)
- if (x < 1)
- fun_l4_n846(x)
- else
- fun_l4_n508(x)
- end
-end
-
-def fun_l3_n553(x)
- if (x < 1)
- fun_l4_n160(x)
- else
- fun_l4_n428(x)
- end
-end
-
-def fun_l3_n554(x)
- if (x < 1)
- fun_l4_n538(x)
- else
- fun_l4_n641(x)
- end
-end
-
-def fun_l3_n555(x)
- if (x < 1)
- fun_l4_n523(x)
- else
- fun_l4_n697(x)
- end
-end
-
-def fun_l3_n556(x)
- if (x < 1)
- fun_l4_n212(x)
- else
- fun_l4_n0(x)
- end
-end
-
-def fun_l3_n557(x)
- if (x < 1)
- fun_l4_n255(x)
- else
- fun_l4_n860(x)
- end
-end
-
-def fun_l3_n558(x)
- if (x < 1)
- fun_l4_n807(x)
- else
- fun_l4_n865(x)
- end
-end
-
-def fun_l3_n559(x)
- if (x < 1)
- fun_l4_n735(x)
- else
- fun_l4_n352(x)
- end
-end
-
-def fun_l3_n560(x)
- if (x < 1)
- fun_l4_n327(x)
- else
- fun_l4_n739(x)
- end
-end
-
-def fun_l3_n561(x)
- if (x < 1)
- fun_l4_n637(x)
- else
- fun_l4_n628(x)
- end
-end
-
-def fun_l3_n562(x)
- if (x < 1)
- fun_l4_n281(x)
- else
- fun_l4_n394(x)
- end
-end
-
-def fun_l3_n563(x)
- if (x < 1)
- fun_l4_n440(x)
- else
- fun_l4_n179(x)
- end
-end
-
-def fun_l3_n564(x)
- if (x < 1)
- fun_l4_n893(x)
- else
- fun_l4_n396(x)
- end
-end
-
-def fun_l3_n565(x)
- if (x < 1)
- fun_l4_n94(x)
- else
- fun_l4_n134(x)
- end
-end
-
-def fun_l3_n566(x)
- if (x < 1)
- fun_l4_n968(x)
- else
- fun_l4_n444(x)
- end
-end
-
-def fun_l3_n567(x)
- if (x < 1)
- fun_l4_n85(x)
- else
- fun_l4_n281(x)
- end
-end
-
-def fun_l3_n568(x)
- if (x < 1)
- fun_l4_n164(x)
- else
- fun_l4_n229(x)
- end
-end
-
-def fun_l3_n569(x)
- if (x < 1)
- fun_l4_n594(x)
- else
- fun_l4_n756(x)
- end
-end
-
-def fun_l3_n570(x)
- if (x < 1)
- fun_l4_n77(x)
- else
- fun_l4_n370(x)
- end
-end
-
-def fun_l3_n571(x)
- if (x < 1)
- fun_l4_n724(x)
- else
- fun_l4_n965(x)
- end
-end
-
-def fun_l3_n572(x)
- if (x < 1)
- fun_l4_n394(x)
- else
- fun_l4_n595(x)
- end
-end
-
-def fun_l3_n573(x)
- if (x < 1)
- fun_l4_n54(x)
- else
- fun_l4_n41(x)
- end
-end
-
-def fun_l3_n574(x)
- if (x < 1)
- fun_l4_n951(x)
- else
- fun_l4_n414(x)
- end
-end
-
-def fun_l3_n575(x)
- if (x < 1)
- fun_l4_n297(x)
- else
- fun_l4_n126(x)
- end
-end
-
-def fun_l3_n576(x)
- if (x < 1)
- fun_l4_n538(x)
- else
- fun_l4_n276(x)
- end
-end
-
-def fun_l3_n577(x)
- if (x < 1)
- fun_l4_n882(x)
- else
- fun_l4_n152(x)
- end
-end
-
-def fun_l3_n578(x)
- if (x < 1)
- fun_l4_n950(x)
- else
- fun_l4_n822(x)
- end
-end
-
-def fun_l3_n579(x)
- if (x < 1)
- fun_l4_n484(x)
- else
- fun_l4_n99(x)
- end
-end
-
-def fun_l3_n580(x)
- if (x < 1)
- fun_l4_n160(x)
- else
- fun_l4_n98(x)
- end
-end
-
-def fun_l3_n581(x)
- if (x < 1)
- fun_l4_n10(x)
- else
- fun_l4_n537(x)
- end
-end
-
-def fun_l3_n582(x)
- if (x < 1)
- fun_l4_n419(x)
- else
- fun_l4_n285(x)
- end
-end
-
-def fun_l3_n583(x)
- if (x < 1)
- fun_l4_n330(x)
- else
- fun_l4_n732(x)
- end
-end
-
-def fun_l3_n584(x)
- if (x < 1)
- fun_l4_n64(x)
- else
- fun_l4_n461(x)
- end
-end
-
-def fun_l3_n585(x)
- if (x < 1)
- fun_l4_n326(x)
- else
- fun_l4_n134(x)
- end
-end
-
-def fun_l3_n586(x)
- if (x < 1)
- fun_l4_n423(x)
- else
- fun_l4_n945(x)
- end
-end
-
-def fun_l3_n587(x)
- if (x < 1)
- fun_l4_n192(x)
- else
- fun_l4_n459(x)
- end
-end
-
-def fun_l3_n588(x)
- if (x < 1)
- fun_l4_n292(x)
- else
- fun_l4_n697(x)
- end
-end
-
-def fun_l3_n589(x)
- if (x < 1)
- fun_l4_n612(x)
- else
- fun_l4_n902(x)
- end
-end
-
-def fun_l3_n590(x)
- if (x < 1)
- fun_l4_n842(x)
- else
- fun_l4_n300(x)
- end
-end
-
-def fun_l3_n591(x)
- if (x < 1)
- fun_l4_n265(x)
- else
- fun_l4_n906(x)
- end
-end
-
-def fun_l3_n592(x)
- if (x < 1)
- fun_l4_n82(x)
- else
- fun_l4_n417(x)
- end
-end
-
-def fun_l3_n593(x)
- if (x < 1)
- fun_l4_n896(x)
- else
- fun_l4_n794(x)
- end
-end
-
-def fun_l3_n594(x)
- if (x < 1)
- fun_l4_n760(x)
- else
- fun_l4_n83(x)
- end
-end
-
-def fun_l3_n595(x)
- if (x < 1)
- fun_l4_n750(x)
- else
- fun_l4_n778(x)
- end
-end
-
-def fun_l3_n596(x)
- if (x < 1)
- fun_l4_n655(x)
- else
- fun_l4_n8(x)
- end
-end
-
-def fun_l3_n597(x)
- if (x < 1)
- fun_l4_n810(x)
- else
- fun_l4_n824(x)
- end
-end
-
-def fun_l3_n598(x)
- if (x < 1)
- fun_l4_n904(x)
- else
- fun_l4_n921(x)
- end
-end
-
-def fun_l3_n599(x)
- if (x < 1)
- fun_l4_n16(x)
- else
- fun_l4_n96(x)
- end
-end
-
-def fun_l3_n600(x)
- if (x < 1)
- fun_l4_n879(x)
- else
- fun_l4_n757(x)
- end
-end
-
-def fun_l3_n601(x)
- if (x < 1)
- fun_l4_n840(x)
- else
- fun_l4_n62(x)
- end
-end
-
-def fun_l3_n602(x)
- if (x < 1)
- fun_l4_n547(x)
- else
- fun_l4_n45(x)
- end
-end
-
-def fun_l3_n603(x)
- if (x < 1)
- fun_l4_n978(x)
- else
- fun_l4_n646(x)
- end
-end
-
-def fun_l3_n604(x)
- if (x < 1)
- fun_l4_n100(x)
- else
- fun_l4_n654(x)
- end
-end
-
-def fun_l3_n605(x)
- if (x < 1)
- fun_l4_n257(x)
- else
- fun_l4_n465(x)
- end
-end
-
-def fun_l3_n606(x)
- if (x < 1)
- fun_l4_n427(x)
- else
- fun_l4_n489(x)
- end
-end
-
-def fun_l3_n607(x)
- if (x < 1)
- fun_l4_n465(x)
- else
- fun_l4_n48(x)
- end
-end
-
-def fun_l3_n608(x)
- if (x < 1)
- fun_l4_n571(x)
- else
- fun_l4_n332(x)
- end
-end
-
-def fun_l3_n609(x)
- if (x < 1)
- fun_l4_n813(x)
- else
- fun_l4_n462(x)
- end
-end
-
-def fun_l3_n610(x)
- if (x < 1)
- fun_l4_n931(x)
- else
- fun_l4_n913(x)
- end
-end
-
-def fun_l3_n611(x)
- if (x < 1)
- fun_l4_n20(x)
- else
- fun_l4_n933(x)
- end
-end
-
-def fun_l3_n612(x)
- if (x < 1)
- fun_l4_n913(x)
- else
- fun_l4_n787(x)
- end
-end
-
-def fun_l3_n613(x)
- if (x < 1)
- fun_l4_n523(x)
- else
- fun_l4_n735(x)
- end
-end
-
-def fun_l3_n614(x)
- if (x < 1)
- fun_l4_n315(x)
- else
- fun_l4_n913(x)
- end
-end
-
-def fun_l3_n615(x)
- if (x < 1)
- fun_l4_n308(x)
- else
- fun_l4_n865(x)
- end
-end
-
-def fun_l3_n616(x)
- if (x < 1)
- fun_l4_n847(x)
- else
- fun_l4_n506(x)
- end
-end
-
-def fun_l3_n617(x)
- if (x < 1)
- fun_l4_n387(x)
- else
- fun_l4_n551(x)
- end
-end
-
-def fun_l3_n618(x)
- if (x < 1)
- fun_l4_n276(x)
- else
- fun_l4_n991(x)
- end
-end
-
-def fun_l3_n619(x)
- if (x < 1)
- fun_l4_n524(x)
- else
- fun_l4_n202(x)
- end
-end
-
-def fun_l3_n620(x)
- if (x < 1)
- fun_l4_n836(x)
- else
- fun_l4_n548(x)
- end
-end
-
-def fun_l3_n621(x)
- if (x < 1)
- fun_l4_n76(x)
- else
- fun_l4_n5(x)
- end
-end
-
-def fun_l3_n622(x)
- if (x < 1)
- fun_l4_n223(x)
- else
- fun_l4_n438(x)
- end
-end
-
-def fun_l3_n623(x)
- if (x < 1)
- fun_l4_n31(x)
- else
- fun_l4_n590(x)
- end
-end
-
-def fun_l3_n624(x)
- if (x < 1)
- fun_l4_n609(x)
- else
- fun_l4_n513(x)
- end
-end
-
-def fun_l3_n625(x)
- if (x < 1)
- fun_l4_n966(x)
- else
- fun_l4_n278(x)
- end
-end
-
-def fun_l3_n626(x)
- if (x < 1)
- fun_l4_n82(x)
- else
- fun_l4_n100(x)
- end
-end
-
-def fun_l3_n627(x)
- if (x < 1)
- fun_l4_n312(x)
- else
- fun_l4_n746(x)
- end
-end
-
-def fun_l3_n628(x)
- if (x < 1)
- fun_l4_n682(x)
- else
- fun_l4_n791(x)
- end
-end
-
-def fun_l3_n629(x)
- if (x < 1)
- fun_l4_n166(x)
- else
- fun_l4_n678(x)
- end
-end
-
-def fun_l3_n630(x)
- if (x < 1)
- fun_l4_n507(x)
- else
- fun_l4_n778(x)
- end
-end
-
-def fun_l3_n631(x)
- if (x < 1)
- fun_l4_n97(x)
- else
- fun_l4_n13(x)
- end
-end
-
-def fun_l3_n632(x)
- if (x < 1)
- fun_l4_n976(x)
- else
- fun_l4_n794(x)
- end
-end
-
-def fun_l3_n633(x)
- if (x < 1)
- fun_l4_n994(x)
- else
- fun_l4_n743(x)
- end
-end
-
-def fun_l3_n634(x)
- if (x < 1)
- fun_l4_n212(x)
- else
- fun_l4_n754(x)
- end
-end
-
-def fun_l3_n635(x)
- if (x < 1)
- fun_l4_n602(x)
- else
- fun_l4_n997(x)
- end
-end
-
-def fun_l3_n636(x)
- if (x < 1)
- fun_l4_n282(x)
- else
- fun_l4_n133(x)
- end
-end
-
-def fun_l3_n637(x)
- if (x < 1)
- fun_l4_n413(x)
- else
- fun_l4_n952(x)
- end
-end
-
-def fun_l3_n638(x)
- if (x < 1)
- fun_l4_n843(x)
- else
- fun_l4_n783(x)
- end
-end
-
-def fun_l3_n639(x)
- if (x < 1)
- fun_l4_n946(x)
- else
- fun_l4_n833(x)
- end
-end
-
-def fun_l3_n640(x)
- if (x < 1)
- fun_l4_n384(x)
- else
- fun_l4_n444(x)
- end
-end
-
-def fun_l3_n641(x)
- if (x < 1)
- fun_l4_n699(x)
- else
- fun_l4_n26(x)
- end
-end
-
-def fun_l3_n642(x)
- if (x < 1)
- fun_l4_n96(x)
- else
- fun_l4_n623(x)
- end
-end
-
-def fun_l3_n643(x)
- if (x < 1)
- fun_l4_n928(x)
- else
- fun_l4_n8(x)
- end
-end
-
-def fun_l3_n644(x)
- if (x < 1)
- fun_l4_n804(x)
- else
- fun_l4_n618(x)
- end
-end
-
-def fun_l3_n645(x)
- if (x < 1)
- fun_l4_n513(x)
- else
- fun_l4_n214(x)
- end
-end
-
-def fun_l3_n646(x)
- if (x < 1)
- fun_l4_n605(x)
- else
- fun_l4_n920(x)
- end
-end
-
-def fun_l3_n647(x)
- if (x < 1)
- fun_l4_n774(x)
- else
- fun_l4_n297(x)
- end
-end
-
-def fun_l3_n648(x)
- if (x < 1)
- fun_l4_n871(x)
- else
- fun_l4_n75(x)
- end
-end
-
-def fun_l3_n649(x)
- if (x < 1)
- fun_l4_n196(x)
- else
- fun_l4_n277(x)
- end
-end
-
-def fun_l3_n650(x)
- if (x < 1)
- fun_l4_n25(x)
- else
- fun_l4_n681(x)
- end
-end
-
-def fun_l3_n651(x)
- if (x < 1)
- fun_l4_n603(x)
- else
- fun_l4_n46(x)
- end
-end
-
-def fun_l3_n652(x)
- if (x < 1)
- fun_l4_n623(x)
- else
- fun_l4_n604(x)
- end
-end
-
-def fun_l3_n653(x)
- if (x < 1)
- fun_l4_n854(x)
- else
- fun_l4_n955(x)
- end
-end
-
-def fun_l3_n654(x)
- if (x < 1)
- fun_l4_n667(x)
- else
- fun_l4_n988(x)
- end
-end
-
-def fun_l3_n655(x)
- if (x < 1)
- fun_l4_n263(x)
- else
- fun_l4_n831(x)
- end
-end
-
-def fun_l3_n656(x)
- if (x < 1)
- fun_l4_n591(x)
- else
- fun_l4_n593(x)
- end
-end
-
-def fun_l3_n657(x)
- if (x < 1)
- fun_l4_n308(x)
- else
- fun_l4_n547(x)
- end
-end
-
-def fun_l3_n658(x)
- if (x < 1)
- fun_l4_n780(x)
- else
- fun_l4_n174(x)
- end
-end
-
-def fun_l3_n659(x)
- if (x < 1)
- fun_l4_n54(x)
- else
- fun_l4_n681(x)
- end
-end
-
-def fun_l3_n660(x)
- if (x < 1)
- fun_l4_n279(x)
- else
- fun_l4_n282(x)
- end
-end
-
-def fun_l3_n661(x)
- if (x < 1)
- fun_l4_n953(x)
- else
- fun_l4_n832(x)
- end
-end
-
-def fun_l3_n662(x)
- if (x < 1)
- fun_l4_n525(x)
- else
- fun_l4_n850(x)
- end
-end
-
-def fun_l3_n663(x)
- if (x < 1)
- fun_l4_n606(x)
- else
- fun_l4_n167(x)
- end
-end
-
-def fun_l3_n664(x)
- if (x < 1)
- fun_l4_n941(x)
- else
- fun_l4_n591(x)
- end
-end
-
-def fun_l3_n665(x)
- if (x < 1)
- fun_l4_n781(x)
- else
- fun_l4_n162(x)
- end
-end
-
-def fun_l3_n666(x)
- if (x < 1)
- fun_l4_n848(x)
- else
- fun_l4_n133(x)
- end
-end
-
-def fun_l3_n667(x)
- if (x < 1)
- fun_l4_n341(x)
- else
- fun_l4_n212(x)
- end
-end
-
-def fun_l3_n668(x)
- if (x < 1)
- fun_l4_n320(x)
- else
- fun_l4_n131(x)
- end
-end
-
-def fun_l3_n669(x)
- if (x < 1)
- fun_l4_n18(x)
- else
- fun_l4_n385(x)
- end
-end
-
-def fun_l3_n670(x)
- if (x < 1)
- fun_l4_n917(x)
- else
- fun_l4_n988(x)
- end
-end
-
-def fun_l3_n671(x)
- if (x < 1)
- fun_l4_n50(x)
- else
- fun_l4_n27(x)
- end
-end
-
-def fun_l3_n672(x)
- if (x < 1)
- fun_l4_n277(x)
- else
- fun_l4_n238(x)
- end
-end
-
-def fun_l3_n673(x)
- if (x < 1)
- fun_l4_n303(x)
- else
- fun_l4_n643(x)
- end
-end
-
-def fun_l3_n674(x)
- if (x < 1)
- fun_l4_n794(x)
- else
- fun_l4_n906(x)
- end
-end
-
-def fun_l3_n675(x)
- if (x < 1)
- fun_l4_n688(x)
- else
- fun_l4_n312(x)
- end
-end
-
-def fun_l3_n676(x)
- if (x < 1)
- fun_l4_n833(x)
- else
- fun_l4_n900(x)
- end
-end
-
-def fun_l3_n677(x)
- if (x < 1)
- fun_l4_n649(x)
- else
- fun_l4_n822(x)
- end
-end
-
-def fun_l3_n678(x)
- if (x < 1)
- fun_l4_n958(x)
- else
- fun_l4_n939(x)
- end
-end
-
-def fun_l3_n679(x)
- if (x < 1)
- fun_l4_n949(x)
- else
- fun_l4_n887(x)
- end
-end
-
-def fun_l3_n680(x)
- if (x < 1)
- fun_l4_n630(x)
- else
- fun_l4_n508(x)
- end
-end
-
-def fun_l3_n681(x)
- if (x < 1)
- fun_l4_n553(x)
- else
- fun_l4_n940(x)
- end
-end
-
-def fun_l3_n682(x)
- if (x < 1)
- fun_l4_n180(x)
- else
- fun_l4_n950(x)
- end
-end
-
-def fun_l3_n683(x)
- if (x < 1)
- fun_l4_n898(x)
- else
- fun_l4_n374(x)
- end
-end
-
-def fun_l3_n684(x)
- if (x < 1)
- fun_l4_n802(x)
- else
- fun_l4_n527(x)
- end
-end
-
-def fun_l3_n685(x)
- if (x < 1)
- fun_l4_n751(x)
- else
- fun_l4_n967(x)
- end
-end
-
-def fun_l3_n686(x)
- if (x < 1)
- fun_l4_n235(x)
- else
- fun_l4_n559(x)
- end
-end
-
-def fun_l3_n687(x)
- if (x < 1)
- fun_l4_n694(x)
- else
- fun_l4_n819(x)
- end
-end
-
-def fun_l3_n688(x)
- if (x < 1)
- fun_l4_n167(x)
- else
- fun_l4_n91(x)
- end
-end
-
-def fun_l3_n689(x)
- if (x < 1)
- fun_l4_n692(x)
- else
- fun_l4_n422(x)
- end
-end
-
-def fun_l3_n690(x)
- if (x < 1)
- fun_l4_n344(x)
- else
- fun_l4_n738(x)
- end
-end
-
-def fun_l3_n691(x)
- if (x < 1)
- fun_l4_n394(x)
- else
- fun_l4_n603(x)
- end
-end
-
-def fun_l3_n692(x)
- if (x < 1)
- fun_l4_n909(x)
- else
- fun_l4_n528(x)
- end
-end
-
-def fun_l3_n693(x)
- if (x < 1)
- fun_l4_n180(x)
- else
- fun_l4_n22(x)
- end
-end
-
-def fun_l3_n694(x)
- if (x < 1)
- fun_l4_n6(x)
- else
- fun_l4_n777(x)
- end
-end
-
-def fun_l3_n695(x)
- if (x < 1)
- fun_l4_n327(x)
- else
- fun_l4_n948(x)
- end
-end
-
-def fun_l3_n696(x)
- if (x < 1)
- fun_l4_n748(x)
- else
- fun_l4_n706(x)
- end
-end
-
-def fun_l3_n697(x)
- if (x < 1)
- fun_l4_n720(x)
- else
- fun_l4_n693(x)
- end
-end
-
-def fun_l3_n698(x)
- if (x < 1)
- fun_l4_n282(x)
- else
- fun_l4_n755(x)
- end
-end
-
-def fun_l3_n699(x)
- if (x < 1)
- fun_l4_n975(x)
- else
- fun_l4_n415(x)
- end
-end
-
-def fun_l3_n700(x)
- if (x < 1)
- fun_l4_n684(x)
- else
- fun_l4_n738(x)
- end
-end
-
-def fun_l3_n701(x)
- if (x < 1)
- fun_l4_n58(x)
- else
- fun_l4_n892(x)
- end
-end
-
-def fun_l3_n702(x)
- if (x < 1)
- fun_l4_n366(x)
- else
- fun_l4_n189(x)
- end
-end
-
-def fun_l3_n703(x)
- if (x < 1)
- fun_l4_n422(x)
- else
- fun_l4_n535(x)
- end
-end
-
-def fun_l3_n704(x)
- if (x < 1)
- fun_l4_n886(x)
- else
- fun_l4_n223(x)
- end
-end
-
-def fun_l3_n705(x)
- if (x < 1)
- fun_l4_n57(x)
- else
- fun_l4_n62(x)
- end
-end
-
-def fun_l3_n706(x)
- if (x < 1)
- fun_l4_n629(x)
- else
- fun_l4_n479(x)
- end
-end
-
-def fun_l3_n707(x)
- if (x < 1)
- fun_l4_n477(x)
- else
- fun_l4_n302(x)
- end
-end
-
-def fun_l3_n708(x)
- if (x < 1)
- fun_l4_n790(x)
- else
- fun_l4_n262(x)
- end
-end
-
-def fun_l3_n709(x)
- if (x < 1)
- fun_l4_n772(x)
- else
- fun_l4_n995(x)
- end
-end
-
-def fun_l3_n710(x)
- if (x < 1)
- fun_l4_n549(x)
- else
- fun_l4_n651(x)
- end
-end
-
-def fun_l3_n711(x)
- if (x < 1)
- fun_l4_n77(x)
- else
- fun_l4_n555(x)
- end
-end
-
-def fun_l3_n712(x)
- if (x < 1)
- fun_l4_n515(x)
- else
- fun_l4_n734(x)
- end
-end
-
-def fun_l3_n713(x)
- if (x < 1)
- fun_l4_n778(x)
- else
- fun_l4_n884(x)
- end
-end
-
-def fun_l3_n714(x)
- if (x < 1)
- fun_l4_n235(x)
- else
- fun_l4_n637(x)
- end
-end
-
-def fun_l3_n715(x)
- if (x < 1)
- fun_l4_n516(x)
- else
- fun_l4_n249(x)
- end
-end
-
-def fun_l3_n716(x)
- if (x < 1)
- fun_l4_n44(x)
- else
- fun_l4_n307(x)
- end
-end
-
-def fun_l3_n717(x)
- if (x < 1)
- fun_l4_n482(x)
- else
- fun_l4_n4(x)
- end
-end
-
-def fun_l3_n718(x)
- if (x < 1)
- fun_l4_n195(x)
- else
- fun_l4_n410(x)
- end
-end
-
-def fun_l3_n719(x)
- if (x < 1)
- fun_l4_n862(x)
- else
- fun_l4_n91(x)
- end
-end
-
-def fun_l3_n720(x)
- if (x < 1)
- fun_l4_n591(x)
- else
- fun_l4_n391(x)
- end
-end
-
-def fun_l3_n721(x)
- if (x < 1)
- fun_l4_n776(x)
- else
- fun_l4_n129(x)
- end
-end
-
-def fun_l3_n722(x)
- if (x < 1)
- fun_l4_n857(x)
- else
- fun_l4_n160(x)
- end
-end
-
-def fun_l3_n723(x)
- if (x < 1)
- fun_l4_n772(x)
- else
- fun_l4_n567(x)
- end
-end
-
-def fun_l3_n724(x)
- if (x < 1)
- fun_l4_n582(x)
- else
- fun_l4_n100(x)
- end
-end
-
-def fun_l3_n725(x)
- if (x < 1)
- fun_l4_n962(x)
- else
- fun_l4_n846(x)
- end
-end
-
-def fun_l3_n726(x)
- if (x < 1)
- fun_l4_n892(x)
- else
- fun_l4_n334(x)
- end
-end
-
-def fun_l3_n727(x)
- if (x < 1)
- fun_l4_n17(x)
- else
- fun_l4_n690(x)
- end
-end
-
-def fun_l3_n728(x)
- if (x < 1)
- fun_l4_n453(x)
- else
- fun_l4_n234(x)
- end
-end
-
-def fun_l3_n729(x)
- if (x < 1)
- fun_l4_n562(x)
- else
- fun_l4_n139(x)
- end
-end
-
-def fun_l3_n730(x)
- if (x < 1)
- fun_l4_n87(x)
- else
- fun_l4_n513(x)
- end
-end
-
-def fun_l3_n731(x)
- if (x < 1)
- fun_l4_n565(x)
- else
- fun_l4_n289(x)
- end
-end
-
-def fun_l3_n732(x)
- if (x < 1)
- fun_l4_n821(x)
- else
- fun_l4_n290(x)
- end
-end
-
-def fun_l3_n733(x)
- if (x < 1)
- fun_l4_n464(x)
- else
- fun_l4_n929(x)
- end
-end
-
-def fun_l3_n734(x)
- if (x < 1)
- fun_l4_n617(x)
- else
- fun_l4_n230(x)
- end
-end
-
-def fun_l3_n735(x)
- if (x < 1)
- fun_l4_n942(x)
- else
- fun_l4_n770(x)
- end
-end
-
-def fun_l3_n736(x)
- if (x < 1)
- fun_l4_n826(x)
- else
- fun_l4_n414(x)
- end
-end
-
-def fun_l3_n737(x)
- if (x < 1)
- fun_l4_n47(x)
- else
- fun_l4_n357(x)
- end
-end
-
-def fun_l3_n738(x)
- if (x < 1)
- fun_l4_n582(x)
- else
- fun_l4_n652(x)
- end
-end
-
-def fun_l3_n739(x)
- if (x < 1)
- fun_l4_n641(x)
- else
- fun_l4_n479(x)
- end
-end
-
-def fun_l3_n740(x)
- if (x < 1)
- fun_l4_n11(x)
- else
- fun_l4_n965(x)
- end
-end
-
-def fun_l3_n741(x)
- if (x < 1)
- fun_l4_n402(x)
- else
- fun_l4_n512(x)
- end
-end
-
-def fun_l3_n742(x)
- if (x < 1)
- fun_l4_n300(x)
- else
- fun_l4_n942(x)
- end
-end
-
-def fun_l3_n743(x)
- if (x < 1)
- fun_l4_n770(x)
- else
- fun_l4_n690(x)
- end
-end
-
-def fun_l3_n744(x)
- if (x < 1)
- fun_l4_n575(x)
- else
- fun_l4_n158(x)
- end
-end
-
-def fun_l3_n745(x)
- if (x < 1)
- fun_l4_n760(x)
- else
- fun_l4_n552(x)
- end
-end
-
-def fun_l3_n746(x)
- if (x < 1)
- fun_l4_n887(x)
- else
- fun_l4_n319(x)
- end
-end
-
-def fun_l3_n747(x)
- if (x < 1)
- fun_l4_n967(x)
- else
- fun_l4_n561(x)
- end
-end
-
-def fun_l3_n748(x)
- if (x < 1)
- fun_l4_n4(x)
- else
- fun_l4_n766(x)
- end
-end
-
-def fun_l3_n749(x)
- if (x < 1)
- fun_l4_n993(x)
- else
- fun_l4_n991(x)
- end
-end
-
-def fun_l3_n750(x)
- if (x < 1)
- fun_l4_n890(x)
- else
- fun_l4_n663(x)
- end
-end
-
-def fun_l3_n751(x)
- if (x < 1)
- fun_l4_n267(x)
- else
- fun_l4_n449(x)
- end
-end
-
-def fun_l3_n752(x)
- if (x < 1)
- fun_l4_n540(x)
- else
- fun_l4_n226(x)
- end
-end
-
-def fun_l3_n753(x)
- if (x < 1)
- fun_l4_n893(x)
- else
- fun_l4_n116(x)
- end
-end
-
-def fun_l3_n754(x)
- if (x < 1)
- fun_l4_n570(x)
- else
- fun_l4_n192(x)
- end
-end
-
-def fun_l3_n755(x)
- if (x < 1)
- fun_l4_n712(x)
- else
- fun_l4_n81(x)
- end
-end
-
-def fun_l3_n756(x)
- if (x < 1)
- fun_l4_n833(x)
- else
- fun_l4_n24(x)
- end
-end
-
-def fun_l3_n757(x)
- if (x < 1)
- fun_l4_n740(x)
- else
- fun_l4_n803(x)
- end
-end
-
-def fun_l3_n758(x)
- if (x < 1)
- fun_l4_n552(x)
- else
- fun_l4_n551(x)
- end
-end
-
-def fun_l3_n759(x)
- if (x < 1)
- fun_l4_n570(x)
- else
- fun_l4_n677(x)
- end
-end
-
-def fun_l3_n760(x)
- if (x < 1)
- fun_l4_n243(x)
- else
- fun_l4_n677(x)
- end
-end
-
-def fun_l3_n761(x)
- if (x < 1)
- fun_l4_n65(x)
- else
- fun_l4_n660(x)
- end
-end
-
-def fun_l3_n762(x)
- if (x < 1)
- fun_l4_n989(x)
- else
- fun_l4_n761(x)
- end
-end
-
-def fun_l3_n763(x)
- if (x < 1)
- fun_l4_n971(x)
- else
- fun_l4_n280(x)
- end
-end
-
-def fun_l3_n764(x)
- if (x < 1)
- fun_l4_n441(x)
- else
- fun_l4_n506(x)
- end
-end
-
-def fun_l3_n765(x)
- if (x < 1)
- fun_l4_n577(x)
- else
- fun_l4_n586(x)
- end
-end
-
-def fun_l3_n766(x)
- if (x < 1)
- fun_l4_n385(x)
- else
- fun_l4_n60(x)
- end
-end
-
-def fun_l3_n767(x)
- if (x < 1)
- fun_l4_n380(x)
- else
- fun_l4_n32(x)
- end
-end
-
-def fun_l3_n768(x)
- if (x < 1)
- fun_l4_n797(x)
- else
- fun_l4_n437(x)
- end
-end
-
-def fun_l3_n769(x)
- if (x < 1)
- fun_l4_n615(x)
- else
- fun_l4_n369(x)
- end
-end
-
-def fun_l3_n770(x)
- if (x < 1)
- fun_l4_n779(x)
- else
- fun_l4_n194(x)
- end
-end
-
-def fun_l3_n771(x)
- if (x < 1)
- fun_l4_n287(x)
- else
- fun_l4_n819(x)
- end
-end
-
-def fun_l3_n772(x)
- if (x < 1)
- fun_l4_n405(x)
- else
- fun_l4_n738(x)
- end
-end
-
-def fun_l3_n773(x)
- if (x < 1)
- fun_l4_n706(x)
- else
- fun_l4_n174(x)
- end
-end
-
-def fun_l3_n774(x)
- if (x < 1)
- fun_l4_n690(x)
- else
- fun_l4_n841(x)
- end
-end
-
-def fun_l3_n775(x)
- if (x < 1)
- fun_l4_n256(x)
- else
- fun_l4_n179(x)
- end
-end
-
-def fun_l3_n776(x)
- if (x < 1)
- fun_l4_n342(x)
- else
- fun_l4_n359(x)
- end
-end
-
-def fun_l3_n777(x)
- if (x < 1)
- fun_l4_n371(x)
- else
- fun_l4_n680(x)
- end
-end
-
-def fun_l3_n778(x)
- if (x < 1)
- fun_l4_n996(x)
- else
- fun_l4_n343(x)
- end
-end
-
-def fun_l3_n779(x)
- if (x < 1)
- fun_l4_n96(x)
- else
- fun_l4_n893(x)
- end
-end
-
-def fun_l3_n780(x)
- if (x < 1)
- fun_l4_n706(x)
- else
- fun_l4_n140(x)
- end
-end
-
-def fun_l3_n781(x)
- if (x < 1)
- fun_l4_n349(x)
- else
- fun_l4_n317(x)
- end
-end
-
-def fun_l3_n782(x)
- if (x < 1)
- fun_l4_n491(x)
- else
- fun_l4_n616(x)
- end
-end
-
-def fun_l3_n783(x)
- if (x < 1)
- fun_l4_n227(x)
- else
- fun_l4_n356(x)
- end
-end
-
-def fun_l3_n784(x)
- if (x < 1)
- fun_l4_n387(x)
- else
- fun_l4_n532(x)
- end
-end
-
-def fun_l3_n785(x)
- if (x < 1)
- fun_l4_n648(x)
- else
- fun_l4_n34(x)
- end
-end
-
-def fun_l3_n786(x)
- if (x < 1)
- fun_l4_n562(x)
- else
- fun_l4_n476(x)
- end
-end
-
-def fun_l3_n787(x)
- if (x < 1)
- fun_l4_n162(x)
- else
- fun_l4_n384(x)
- end
-end
-
-def fun_l3_n788(x)
- if (x < 1)
- fun_l4_n221(x)
- else
- fun_l4_n617(x)
- end
-end
-
-def fun_l3_n789(x)
- if (x < 1)
- fun_l4_n670(x)
- else
- fun_l4_n350(x)
- end
-end
-
-def fun_l3_n790(x)
- if (x < 1)
- fun_l4_n202(x)
- else
- fun_l4_n112(x)
- end
-end
-
-def fun_l3_n791(x)
- if (x < 1)
- fun_l4_n390(x)
- else
- fun_l4_n868(x)
- end
-end
-
-def fun_l3_n792(x)
- if (x < 1)
- fun_l4_n746(x)
- else
- fun_l4_n833(x)
- end
-end
-
-def fun_l3_n793(x)
- if (x < 1)
- fun_l4_n471(x)
- else
- fun_l4_n60(x)
- end
-end
-
-def fun_l3_n794(x)
- if (x < 1)
- fun_l4_n583(x)
- else
- fun_l4_n470(x)
- end
-end
-
-def fun_l3_n795(x)
- if (x < 1)
- fun_l4_n567(x)
- else
- fun_l4_n218(x)
- end
-end
-
-def fun_l3_n796(x)
- if (x < 1)
- fun_l4_n140(x)
- else
- fun_l4_n690(x)
- end
-end
-
-def fun_l3_n797(x)
- if (x < 1)
- fun_l4_n190(x)
- else
- fun_l4_n437(x)
- end
-end
-
-def fun_l3_n798(x)
- if (x < 1)
- fun_l4_n684(x)
- else
- fun_l4_n843(x)
- end
-end
-
-def fun_l3_n799(x)
- if (x < 1)
- fun_l4_n825(x)
- else
- fun_l4_n354(x)
- end
-end
-
-def fun_l3_n800(x)
- if (x < 1)
- fun_l4_n711(x)
- else
- fun_l4_n606(x)
- end
-end
-
-def fun_l3_n801(x)
- if (x < 1)
- fun_l4_n756(x)
- else
- fun_l4_n464(x)
- end
-end
-
-def fun_l3_n802(x)
- if (x < 1)
- fun_l4_n143(x)
- else
- fun_l4_n962(x)
- end
-end
-
-def fun_l3_n803(x)
- if (x < 1)
- fun_l4_n223(x)
- else
- fun_l4_n293(x)
- end
-end
-
-def fun_l3_n804(x)
- if (x < 1)
- fun_l4_n832(x)
- else
- fun_l4_n632(x)
- end
-end
-
-def fun_l3_n805(x)
- if (x < 1)
- fun_l4_n649(x)
- else
- fun_l4_n259(x)
- end
-end
-
-def fun_l3_n806(x)
- if (x < 1)
- fun_l4_n617(x)
- else
- fun_l4_n993(x)
- end
-end
-
-def fun_l3_n807(x)
- if (x < 1)
- fun_l4_n257(x)
- else
- fun_l4_n712(x)
- end
-end
-
-def fun_l3_n808(x)
- if (x < 1)
- fun_l4_n632(x)
- else
- fun_l4_n563(x)
- end
-end
-
-def fun_l3_n809(x)
- if (x < 1)
- fun_l4_n154(x)
- else
- fun_l4_n561(x)
- end
-end
-
-def fun_l3_n810(x)
- if (x < 1)
- fun_l4_n411(x)
- else
- fun_l4_n42(x)
- end
-end
-
-def fun_l3_n811(x)
- if (x < 1)
- fun_l4_n560(x)
- else
- fun_l4_n531(x)
- end
-end
-
-def fun_l3_n812(x)
- if (x < 1)
- fun_l4_n759(x)
- else
- fun_l4_n588(x)
- end
-end
-
-def fun_l3_n813(x)
- if (x < 1)
- fun_l4_n311(x)
- else
- fun_l4_n813(x)
- end
-end
-
-def fun_l3_n814(x)
- if (x < 1)
- fun_l4_n521(x)
- else
- fun_l4_n877(x)
- end
-end
-
-def fun_l3_n815(x)
- if (x < 1)
- fun_l4_n578(x)
- else
- fun_l4_n37(x)
- end
-end
-
-def fun_l3_n816(x)
- if (x < 1)
- fun_l4_n337(x)
- else
- fun_l4_n562(x)
- end
-end
-
-def fun_l3_n817(x)
- if (x < 1)
- fun_l4_n523(x)
- else
- fun_l4_n445(x)
- end
-end
-
-def fun_l3_n818(x)
- if (x < 1)
- fun_l4_n256(x)
- else
- fun_l4_n551(x)
- end
-end
-
-def fun_l3_n819(x)
- if (x < 1)
- fun_l4_n718(x)
- else
- fun_l4_n463(x)
- end
-end
-
-def fun_l3_n820(x)
- if (x < 1)
- fun_l4_n780(x)
- else
- fun_l4_n103(x)
- end
-end
-
-def fun_l3_n821(x)
- if (x < 1)
- fun_l4_n729(x)
- else
- fun_l4_n331(x)
- end
-end
-
-def fun_l3_n822(x)
- if (x < 1)
- fun_l4_n84(x)
- else
- fun_l4_n176(x)
- end
-end
-
-def fun_l3_n823(x)
- if (x < 1)
- fun_l4_n231(x)
- else
- fun_l4_n681(x)
- end
-end
-
-def fun_l3_n824(x)
- if (x < 1)
- fun_l4_n675(x)
- else
- fun_l4_n837(x)
- end
-end
-
-def fun_l3_n825(x)
- if (x < 1)
- fun_l4_n140(x)
- else
- fun_l4_n932(x)
- end
-end
-
-def fun_l3_n826(x)
- if (x < 1)
- fun_l4_n268(x)
- else
- fun_l4_n908(x)
- end
-end
-
-def fun_l3_n827(x)
- if (x < 1)
- fun_l4_n959(x)
- else
- fun_l4_n643(x)
- end
-end
-
-def fun_l3_n828(x)
- if (x < 1)
- fun_l4_n290(x)
- else
- fun_l4_n718(x)
- end
-end
-
-def fun_l3_n829(x)
- if (x < 1)
- fun_l4_n430(x)
- else
- fun_l4_n114(x)
- end
-end
-
-def fun_l3_n830(x)
- if (x < 1)
- fun_l4_n817(x)
- else
- fun_l4_n296(x)
- end
-end
-
-def fun_l3_n831(x)
- if (x < 1)
- fun_l4_n586(x)
- else
- fun_l4_n345(x)
- end
-end
-
-def fun_l3_n832(x)
- if (x < 1)
- fun_l4_n321(x)
- else
- fun_l4_n805(x)
- end
-end
-
-def fun_l3_n833(x)
- if (x < 1)
- fun_l4_n57(x)
- else
- fun_l4_n373(x)
- end
-end
-
-def fun_l3_n834(x)
- if (x < 1)
- fun_l4_n344(x)
- else
- fun_l4_n654(x)
- end
-end
-
-def fun_l3_n835(x)
- if (x < 1)
- fun_l4_n761(x)
- else
- fun_l4_n295(x)
- end
-end
-
-def fun_l3_n836(x)
- if (x < 1)
- fun_l4_n169(x)
- else
- fun_l4_n184(x)
- end
-end
-
-def fun_l3_n837(x)
- if (x < 1)
- fun_l4_n482(x)
- else
- fun_l4_n127(x)
- end
-end
-
-def fun_l3_n838(x)
- if (x < 1)
- fun_l4_n260(x)
- else
- fun_l4_n662(x)
- end
-end
-
-def fun_l3_n839(x)
- if (x < 1)
- fun_l4_n548(x)
- else
- fun_l4_n197(x)
- end
-end
-
-def fun_l3_n840(x)
- if (x < 1)
- fun_l4_n96(x)
- else
- fun_l4_n17(x)
- end
-end
-
-def fun_l3_n841(x)
- if (x < 1)
- fun_l4_n946(x)
- else
- fun_l4_n447(x)
- end
-end
-
-def fun_l3_n842(x)
- if (x < 1)
- fun_l4_n66(x)
- else
- fun_l4_n110(x)
- end
-end
-
-def fun_l3_n843(x)
- if (x < 1)
- fun_l4_n574(x)
- else
- fun_l4_n887(x)
- end
-end
-
-def fun_l3_n844(x)
- if (x < 1)
- fun_l4_n912(x)
- else
- fun_l4_n465(x)
- end
-end
-
-def fun_l3_n845(x)
- if (x < 1)
- fun_l4_n401(x)
- else
- fun_l4_n903(x)
- end
-end
-
-def fun_l3_n846(x)
- if (x < 1)
- fun_l4_n929(x)
- else
- fun_l4_n238(x)
- end
-end
-
-def fun_l3_n847(x)
- if (x < 1)
- fun_l4_n579(x)
- else
- fun_l4_n924(x)
- end
-end
-
-def fun_l3_n848(x)
- if (x < 1)
- fun_l4_n697(x)
- else
- fun_l4_n157(x)
- end
-end
-
-def fun_l3_n849(x)
- if (x < 1)
- fun_l4_n608(x)
- else
- fun_l4_n426(x)
- end
-end
-
-def fun_l3_n850(x)
- if (x < 1)
- fun_l4_n710(x)
- else
- fun_l4_n360(x)
- end
-end
-
-def fun_l3_n851(x)
- if (x < 1)
- fun_l4_n558(x)
- else
- fun_l4_n152(x)
- end
-end
-
-def fun_l3_n852(x)
- if (x < 1)
- fun_l4_n276(x)
- else
- fun_l4_n895(x)
- end
-end
-
-def fun_l3_n853(x)
- if (x < 1)
- fun_l4_n945(x)
- else
- fun_l4_n251(x)
- end
-end
-
-def fun_l3_n854(x)
- if (x < 1)
- fun_l4_n131(x)
- else
- fun_l4_n677(x)
- end
-end
-
-def fun_l3_n855(x)
- if (x < 1)
- fun_l4_n493(x)
- else
- fun_l4_n631(x)
- end
-end
-
-def fun_l3_n856(x)
- if (x < 1)
- fun_l4_n608(x)
- else
- fun_l4_n556(x)
- end
-end
-
-def fun_l3_n857(x)
- if (x < 1)
- fun_l4_n808(x)
- else
- fun_l4_n672(x)
- end
-end
-
-def fun_l3_n858(x)
- if (x < 1)
- fun_l4_n407(x)
- else
- fun_l4_n648(x)
- end
-end
-
-def fun_l3_n859(x)
- if (x < 1)
- fun_l4_n217(x)
- else
- fun_l4_n763(x)
- end
-end
-
-def fun_l3_n860(x)
- if (x < 1)
- fun_l4_n941(x)
- else
- fun_l4_n159(x)
- end
-end
-
-def fun_l3_n861(x)
- if (x < 1)
- fun_l4_n364(x)
- else
- fun_l4_n241(x)
- end
-end
-
-def fun_l3_n862(x)
- if (x < 1)
- fun_l4_n915(x)
- else
- fun_l4_n729(x)
- end
-end
-
-def fun_l3_n863(x)
- if (x < 1)
- fun_l4_n137(x)
- else
- fun_l4_n317(x)
- end
-end
-
-def fun_l3_n864(x)
- if (x < 1)
- fun_l4_n818(x)
- else
- fun_l4_n782(x)
- end
-end
-
-def fun_l3_n865(x)
- if (x < 1)
- fun_l4_n577(x)
- else
- fun_l4_n418(x)
- end
-end
-
-def fun_l3_n866(x)
- if (x < 1)
- fun_l4_n882(x)
- else
- fun_l4_n7(x)
- end
-end
-
-def fun_l3_n867(x)
- if (x < 1)
- fun_l4_n238(x)
- else
- fun_l4_n944(x)
- end
-end
-
-def fun_l3_n868(x)
- if (x < 1)
- fun_l4_n105(x)
- else
- fun_l4_n465(x)
- end
-end
-
-def fun_l3_n869(x)
- if (x < 1)
- fun_l4_n841(x)
- else
- fun_l4_n262(x)
- end
-end
-
-def fun_l3_n870(x)
- if (x < 1)
- fun_l4_n32(x)
- else
- fun_l4_n992(x)
- end
-end
-
-def fun_l3_n871(x)
- if (x < 1)
- fun_l4_n431(x)
- else
- fun_l4_n391(x)
- end
-end
-
-def fun_l3_n872(x)
- if (x < 1)
- fun_l4_n829(x)
- else
- fun_l4_n879(x)
- end
-end
-
-def fun_l3_n873(x)
- if (x < 1)
- fun_l4_n617(x)
- else
- fun_l4_n657(x)
- end
-end
-
-def fun_l3_n874(x)
- if (x < 1)
- fun_l4_n529(x)
- else
- fun_l4_n717(x)
- end
-end
-
-def fun_l3_n875(x)
- if (x < 1)
- fun_l4_n928(x)
- else
- fun_l4_n476(x)
- end
-end
-
-def fun_l3_n876(x)
- if (x < 1)
- fun_l4_n388(x)
- else
- fun_l4_n949(x)
- end
-end
-
-def fun_l3_n877(x)
- if (x < 1)
- fun_l4_n826(x)
- else
- fun_l4_n560(x)
- end
-end
-
-def fun_l3_n878(x)
- if (x < 1)
- fun_l4_n863(x)
- else
- fun_l4_n122(x)
- end
-end
-
-def fun_l3_n879(x)
- if (x < 1)
- fun_l4_n964(x)
- else
- fun_l4_n793(x)
- end
-end
-
-def fun_l3_n880(x)
- if (x < 1)
- fun_l4_n141(x)
- else
- fun_l4_n132(x)
- end
-end
-
-def fun_l3_n881(x)
- if (x < 1)
- fun_l4_n735(x)
- else
- fun_l4_n592(x)
- end
-end
-
-def fun_l3_n882(x)
- if (x < 1)
- fun_l4_n585(x)
- else
- fun_l4_n341(x)
- end
-end
-
-def fun_l3_n883(x)
- if (x < 1)
- fun_l4_n843(x)
- else
- fun_l4_n692(x)
- end
-end
-
-def fun_l3_n884(x)
- if (x < 1)
- fun_l4_n360(x)
- else
- fun_l4_n833(x)
- end
-end
-
-def fun_l3_n885(x)
- if (x < 1)
- fun_l4_n31(x)
- else
- fun_l4_n62(x)
- end
-end
-
-def fun_l3_n886(x)
- if (x < 1)
- fun_l4_n756(x)
- else
- fun_l4_n699(x)
- end
-end
-
-def fun_l3_n887(x)
- if (x < 1)
- fun_l4_n71(x)
- else
- fun_l4_n256(x)
- end
-end
-
-def fun_l3_n888(x)
- if (x < 1)
- fun_l4_n406(x)
- else
- fun_l4_n493(x)
- end
-end
-
-def fun_l3_n889(x)
- if (x < 1)
- fun_l4_n489(x)
- else
- fun_l4_n874(x)
- end
-end
-
-def fun_l3_n890(x)
- if (x < 1)
- fun_l4_n365(x)
- else
- fun_l4_n910(x)
- end
-end
-
-def fun_l3_n891(x)
- if (x < 1)
- fun_l4_n262(x)
- else
- fun_l4_n665(x)
- end
-end
-
-def fun_l3_n892(x)
- if (x < 1)
- fun_l4_n274(x)
- else
- fun_l4_n849(x)
- end
-end
-
-def fun_l3_n893(x)
- if (x < 1)
- fun_l4_n880(x)
- else
- fun_l4_n739(x)
- end
-end
-
-def fun_l3_n894(x)
- if (x < 1)
- fun_l4_n504(x)
- else
- fun_l4_n128(x)
- end
-end
-
-def fun_l3_n895(x)
- if (x < 1)
- fun_l4_n555(x)
- else
- fun_l4_n281(x)
- end
-end
-
-def fun_l3_n896(x)
- if (x < 1)
- fun_l4_n270(x)
- else
- fun_l4_n225(x)
- end
-end
-
-def fun_l3_n897(x)
- if (x < 1)
- fun_l4_n38(x)
- else
- fun_l4_n26(x)
- end
-end
-
-def fun_l3_n898(x)
- if (x < 1)
- fun_l4_n944(x)
- else
- fun_l4_n217(x)
- end
-end
-
-def fun_l3_n899(x)
- if (x < 1)
- fun_l4_n967(x)
- else
- fun_l4_n853(x)
- end
-end
-
-def fun_l3_n900(x)
- if (x < 1)
- fun_l4_n686(x)
- else
- fun_l4_n760(x)
- end
-end
-
-def fun_l3_n901(x)
- if (x < 1)
- fun_l4_n698(x)
- else
- fun_l4_n842(x)
- end
-end
-
-def fun_l3_n902(x)
- if (x < 1)
- fun_l4_n344(x)
- else
- fun_l4_n701(x)
- end
-end
-
-def fun_l3_n903(x)
- if (x < 1)
- fun_l4_n756(x)
- else
- fun_l4_n321(x)
- end
-end
-
-def fun_l3_n904(x)
- if (x < 1)
- fun_l4_n504(x)
- else
- fun_l4_n228(x)
- end
-end
-
-def fun_l3_n905(x)
- if (x < 1)
- fun_l4_n135(x)
- else
- fun_l4_n57(x)
- end
-end
-
-def fun_l3_n906(x)
- if (x < 1)
- fun_l4_n279(x)
- else
- fun_l4_n912(x)
- end
-end
-
-def fun_l3_n907(x)
- if (x < 1)
- fun_l4_n962(x)
- else
- fun_l4_n418(x)
- end
-end
-
-def fun_l3_n908(x)
- if (x < 1)
- fun_l4_n972(x)
- else
- fun_l4_n14(x)
- end
-end
-
-def fun_l3_n909(x)
- if (x < 1)
- fun_l4_n231(x)
- else
- fun_l4_n763(x)
- end
-end
-
-def fun_l3_n910(x)
- if (x < 1)
- fun_l4_n859(x)
- else
- fun_l4_n243(x)
- end
-end
-
-def fun_l3_n911(x)
- if (x < 1)
- fun_l4_n153(x)
- else
- fun_l4_n136(x)
- end
-end
-
-def fun_l3_n912(x)
- if (x < 1)
- fun_l4_n325(x)
- else
- fun_l4_n113(x)
- end
-end
-
-def fun_l3_n913(x)
- if (x < 1)
- fun_l4_n625(x)
- else
- fun_l4_n179(x)
- end
-end
-
-def fun_l3_n914(x)
- if (x < 1)
- fun_l4_n54(x)
- else
- fun_l4_n88(x)
- end
-end
-
-def fun_l3_n915(x)
- if (x < 1)
- fun_l4_n332(x)
- else
- fun_l4_n3(x)
- end
-end
-
-def fun_l3_n916(x)
- if (x < 1)
- fun_l4_n748(x)
- else
- fun_l4_n21(x)
- end
-end
-
-def fun_l3_n917(x)
- if (x < 1)
- fun_l4_n132(x)
- else
- fun_l4_n132(x)
- end
-end
-
-def fun_l3_n918(x)
- if (x < 1)
- fun_l4_n295(x)
- else
- fun_l4_n429(x)
- end
-end
-
-def fun_l3_n919(x)
- if (x < 1)
- fun_l4_n105(x)
- else
- fun_l4_n984(x)
- end
-end
-
-def fun_l3_n920(x)
- if (x < 1)
- fun_l4_n319(x)
- else
- fun_l4_n304(x)
- end
-end
-
-def fun_l3_n921(x)
- if (x < 1)
- fun_l4_n756(x)
- else
- fun_l4_n639(x)
- end
-end
-
-def fun_l3_n922(x)
- if (x < 1)
- fun_l4_n678(x)
- else
- fun_l4_n209(x)
- end
-end
-
-def fun_l3_n923(x)
- if (x < 1)
- fun_l4_n755(x)
- else
- fun_l4_n941(x)
- end
-end
-
-def fun_l3_n924(x)
- if (x < 1)
- fun_l4_n311(x)
- else
- fun_l4_n272(x)
- end
-end
-
-def fun_l3_n925(x)
- if (x < 1)
- fun_l4_n543(x)
- else
- fun_l4_n896(x)
- end
-end
-
-def fun_l3_n926(x)
- if (x < 1)
- fun_l4_n994(x)
- else
- fun_l4_n671(x)
- end
-end
-
-def fun_l3_n927(x)
- if (x < 1)
- fun_l4_n125(x)
- else
- fun_l4_n852(x)
- end
-end
-
-def fun_l3_n928(x)
- if (x < 1)
- fun_l4_n483(x)
- else
- fun_l4_n350(x)
- end
-end
-
-def fun_l3_n929(x)
- if (x < 1)
- fun_l4_n622(x)
- else
- fun_l4_n511(x)
- end
-end
-
-def fun_l3_n930(x)
- if (x < 1)
- fun_l4_n134(x)
- else
- fun_l4_n288(x)
- end
-end
-
-def fun_l3_n931(x)
- if (x < 1)
- fun_l4_n278(x)
- else
- fun_l4_n800(x)
- end
-end
-
-def fun_l3_n932(x)
- if (x < 1)
- fun_l4_n139(x)
- else
- fun_l4_n966(x)
- end
-end
-
-def fun_l3_n933(x)
- if (x < 1)
- fun_l4_n275(x)
- else
- fun_l4_n506(x)
- end
-end
-
-def fun_l3_n934(x)
- if (x < 1)
- fun_l4_n503(x)
- else
- fun_l4_n204(x)
- end
-end
-
-def fun_l3_n935(x)
- if (x < 1)
- fun_l4_n993(x)
- else
- fun_l4_n126(x)
- end
-end
-
-def fun_l3_n936(x)
- if (x < 1)
- fun_l4_n704(x)
- else
- fun_l4_n462(x)
- end
-end
-
-def fun_l3_n937(x)
- if (x < 1)
- fun_l4_n922(x)
- else
- fun_l4_n722(x)
- end
-end
-
-def fun_l3_n938(x)
- if (x < 1)
- fun_l4_n937(x)
- else
- fun_l4_n195(x)
- end
-end
-
-def fun_l3_n939(x)
- if (x < 1)
- fun_l4_n661(x)
- else
- fun_l4_n265(x)
- end
-end
-
-def fun_l3_n940(x)
- if (x < 1)
- fun_l4_n423(x)
- else
- fun_l4_n230(x)
- end
-end
-
-def fun_l3_n941(x)
- if (x < 1)
- fun_l4_n698(x)
- else
- fun_l4_n226(x)
- end
-end
-
-def fun_l3_n942(x)
- if (x < 1)
- fun_l4_n501(x)
- else
- fun_l4_n816(x)
- end
-end
-
-def fun_l3_n943(x)
- if (x < 1)
- fun_l4_n650(x)
- else
- fun_l4_n925(x)
- end
-end
-
-def fun_l3_n944(x)
- if (x < 1)
- fun_l4_n829(x)
- else
- fun_l4_n647(x)
- end
-end
-
-def fun_l3_n945(x)
- if (x < 1)
- fun_l4_n401(x)
- else
- fun_l4_n791(x)
- end
-end
-
-def fun_l3_n946(x)
- if (x < 1)
- fun_l4_n551(x)
- else
- fun_l4_n104(x)
- end
-end
-
-def fun_l3_n947(x)
- if (x < 1)
- fun_l4_n927(x)
- else
- fun_l4_n213(x)
- end
-end
-
-def fun_l3_n948(x)
- if (x < 1)
- fun_l4_n912(x)
- else
- fun_l4_n609(x)
- end
-end
-
-def fun_l3_n949(x)
- if (x < 1)
- fun_l4_n302(x)
- else
- fun_l4_n157(x)
- end
-end
-
-def fun_l3_n950(x)
- if (x < 1)
- fun_l4_n955(x)
- else
- fun_l4_n492(x)
- end
-end
-
-def fun_l3_n951(x)
- if (x < 1)
- fun_l4_n486(x)
- else
- fun_l4_n412(x)
- end
-end
-
-def fun_l3_n952(x)
- if (x < 1)
- fun_l4_n850(x)
- else
- fun_l4_n885(x)
- end
-end
-
-def fun_l3_n953(x)
- if (x < 1)
- fun_l4_n84(x)
- else
- fun_l4_n622(x)
- end
-end
-
-def fun_l3_n954(x)
- if (x < 1)
- fun_l4_n235(x)
- else
- fun_l4_n67(x)
- end
-end
-
-def fun_l3_n955(x)
- if (x < 1)
- fun_l4_n347(x)
- else
- fun_l4_n757(x)
- end
-end
-
-def fun_l3_n956(x)
- if (x < 1)
- fun_l4_n825(x)
- else
- fun_l4_n10(x)
- end
-end
-
-def fun_l3_n957(x)
- if (x < 1)
- fun_l4_n393(x)
- else
- fun_l4_n482(x)
- end
-end
-
-def fun_l3_n958(x)
- if (x < 1)
- fun_l4_n0(x)
- else
- fun_l4_n556(x)
- end
-end
-
-def fun_l3_n959(x)
- if (x < 1)
- fun_l4_n806(x)
- else
- fun_l4_n783(x)
- end
-end
-
-def fun_l3_n960(x)
- if (x < 1)
- fun_l4_n964(x)
- else
- fun_l4_n843(x)
- end
-end
-
-def fun_l3_n961(x)
- if (x < 1)
- fun_l4_n508(x)
- else
- fun_l4_n874(x)
- end
-end
-
-def fun_l3_n962(x)
- if (x < 1)
- fun_l4_n15(x)
- else
- fun_l4_n197(x)
- end
-end
-
-def fun_l3_n963(x)
- if (x < 1)
- fun_l4_n989(x)
- else
- fun_l4_n380(x)
- end
-end
-
-def fun_l3_n964(x)
- if (x < 1)
- fun_l4_n315(x)
- else
- fun_l4_n196(x)
- end
-end
-
-def fun_l3_n965(x)
- if (x < 1)
- fun_l4_n510(x)
- else
- fun_l4_n275(x)
- end
-end
-
-def fun_l3_n966(x)
- if (x < 1)
- fun_l4_n725(x)
- else
- fun_l4_n94(x)
- end
-end
-
-def fun_l3_n967(x)
- if (x < 1)
- fun_l4_n733(x)
- else
- fun_l4_n577(x)
- end
-end
-
-def fun_l3_n968(x)
- if (x < 1)
- fun_l4_n280(x)
- else
- fun_l4_n702(x)
- end
-end
-
-def fun_l3_n969(x)
- if (x < 1)
- fun_l4_n41(x)
- else
- fun_l4_n343(x)
- end
-end
-
-def fun_l3_n970(x)
- if (x < 1)
- fun_l4_n102(x)
- else
- fun_l4_n785(x)
- end
-end
-
-def fun_l3_n971(x)
- if (x < 1)
- fun_l4_n460(x)
- else
- fun_l4_n388(x)
- end
-end
-
-def fun_l3_n972(x)
- if (x < 1)
- fun_l4_n31(x)
- else
- fun_l4_n421(x)
- end
-end
-
-def fun_l3_n973(x)
- if (x < 1)
- fun_l4_n587(x)
- else
- fun_l4_n401(x)
- end
-end
-
-def fun_l3_n974(x)
- if (x < 1)
- fun_l4_n593(x)
- else
- fun_l4_n418(x)
- end
-end
-
-def fun_l3_n975(x)
- if (x < 1)
- fun_l4_n12(x)
- else
- fun_l4_n929(x)
- end
-end
-
-def fun_l3_n976(x)
- if (x < 1)
- fun_l4_n516(x)
- else
- fun_l4_n402(x)
- end
-end
-
-def fun_l3_n977(x)
- if (x < 1)
- fun_l4_n590(x)
- else
- fun_l4_n876(x)
- end
-end
-
-def fun_l3_n978(x)
- if (x < 1)
- fun_l4_n505(x)
- else
- fun_l4_n94(x)
- end
-end
-
-def fun_l3_n979(x)
- if (x < 1)
- fun_l4_n625(x)
- else
- fun_l4_n344(x)
- end
-end
-
-def fun_l3_n980(x)
- if (x < 1)
- fun_l4_n128(x)
- else
- fun_l4_n454(x)
- end
-end
-
-def fun_l3_n981(x)
- if (x < 1)
- fun_l4_n937(x)
- else
- fun_l4_n277(x)
- end
-end
-
-def fun_l3_n982(x)
- if (x < 1)
- fun_l4_n237(x)
- else
- fun_l4_n113(x)
- end
-end
-
-def fun_l3_n983(x)
- if (x < 1)
- fun_l4_n668(x)
- else
- fun_l4_n668(x)
- end
-end
-
-def fun_l3_n984(x)
- if (x < 1)
- fun_l4_n783(x)
- else
- fun_l4_n771(x)
- end
-end
-
-def fun_l3_n985(x)
- if (x < 1)
- fun_l4_n135(x)
- else
- fun_l4_n967(x)
- end
-end
-
-def fun_l3_n986(x)
- if (x < 1)
- fun_l4_n29(x)
- else
- fun_l4_n313(x)
- end
-end
-
-def fun_l3_n987(x)
- if (x < 1)
- fun_l4_n765(x)
- else
- fun_l4_n885(x)
- end
-end
-
-def fun_l3_n988(x)
- if (x < 1)
- fun_l4_n242(x)
- else
- fun_l4_n622(x)
- end
-end
-
-def fun_l3_n989(x)
- if (x < 1)
- fun_l4_n916(x)
- else
- fun_l4_n518(x)
- end
-end
-
-def fun_l3_n990(x)
- if (x < 1)
- fun_l4_n523(x)
- else
- fun_l4_n468(x)
- end
-end
-
-def fun_l3_n991(x)
- if (x < 1)
- fun_l4_n904(x)
- else
- fun_l4_n601(x)
- end
-end
-
-def fun_l3_n992(x)
- if (x < 1)
- fun_l4_n437(x)
- else
- fun_l4_n77(x)
- end
-end
-
-def fun_l3_n993(x)
- if (x < 1)
- fun_l4_n957(x)
- else
- fun_l4_n619(x)
- end
-end
-
-def fun_l3_n994(x)
- if (x < 1)
- fun_l4_n540(x)
- else
- fun_l4_n108(x)
- end
-end
-
-def fun_l3_n995(x)
- if (x < 1)
- fun_l4_n8(x)
- else
- fun_l4_n428(x)
- end
-end
-
-def fun_l3_n996(x)
- if (x < 1)
- fun_l4_n53(x)
- else
- fun_l4_n278(x)
- end
-end
-
-def fun_l3_n997(x)
- if (x < 1)
- fun_l4_n930(x)
- else
- fun_l4_n671(x)
- end
-end
-
-def fun_l3_n998(x)
- if (x < 1)
- fun_l4_n574(x)
- else
- fun_l4_n879(x)
- end
-end
-
-def fun_l3_n999(x)
- if (x < 1)
- fun_l4_n316(x)
- else
- fun_l4_n93(x)
- end
-end
-
-def fun_l4_n0(x)
- if (x < 1)
- fun_l5_n524(x)
- else
- fun_l5_n284(x)
- end
-end
-
-def fun_l4_n1(x)
- if (x < 1)
- fun_l5_n845(x)
- else
- fun_l5_n863(x)
- end
-end
-
-def fun_l4_n2(x)
- if (x < 1)
- fun_l5_n258(x)
- else
- fun_l5_n860(x)
- end
-end
-
-def fun_l4_n3(x)
- if (x < 1)
- fun_l5_n253(x)
- else
- fun_l5_n763(x)
- end
-end
-
-def fun_l4_n4(x)
- if (x < 1)
- fun_l5_n833(x)
- else
- fun_l5_n807(x)
- end
-end
-
-def fun_l4_n5(x)
- if (x < 1)
- fun_l5_n890(x)
- else
- fun_l5_n669(x)
- end
-end
-
-def fun_l4_n6(x)
- if (x < 1)
- fun_l5_n396(x)
- else
- fun_l5_n388(x)
- end
-end
-
-def fun_l4_n7(x)
- if (x < 1)
- fun_l5_n926(x)
- else
- fun_l5_n661(x)
- end
-end
-
-def fun_l4_n8(x)
- if (x < 1)
- fun_l5_n990(x)
- else
- fun_l5_n765(x)
- end
-end
-
-def fun_l4_n9(x)
- if (x < 1)
- fun_l5_n978(x)
- else
- fun_l5_n342(x)
- end
-end
-
-def fun_l4_n10(x)
- if (x < 1)
- fun_l5_n500(x)
- else
- fun_l5_n758(x)
- end
-end
-
-def fun_l4_n11(x)
- if (x < 1)
- fun_l5_n10(x)
- else
- fun_l5_n796(x)
- end
-end
-
-def fun_l4_n12(x)
- if (x < 1)
- fun_l5_n173(x)
- else
- fun_l5_n87(x)
- end
-end
-
-def fun_l4_n13(x)
- if (x < 1)
- fun_l5_n852(x)
- else
- fun_l5_n93(x)
- end
-end
-
-def fun_l4_n14(x)
- if (x < 1)
- fun_l5_n526(x)
- else
- fun_l5_n144(x)
- end
-end
-
-def fun_l4_n15(x)
- if (x < 1)
- fun_l5_n398(x)
- else
- fun_l5_n632(x)
- end
-end
-
-def fun_l4_n16(x)
- if (x < 1)
- fun_l5_n774(x)
- else
- fun_l5_n716(x)
- end
-end
-
-def fun_l4_n17(x)
- if (x < 1)
- fun_l5_n412(x)
- else
- fun_l5_n95(x)
- end
-end
-
-def fun_l4_n18(x)
- if (x < 1)
- fun_l5_n446(x)
- else
- fun_l5_n885(x)
- end
-end
-
-def fun_l4_n19(x)
- if (x < 1)
- fun_l5_n420(x)
- else
- fun_l5_n420(x)
- end
-end
-
-def fun_l4_n20(x)
- if (x < 1)
- fun_l5_n274(x)
- else
- fun_l5_n813(x)
- end
-end
-
-def fun_l4_n21(x)
- if (x < 1)
- fun_l5_n174(x)
- else
- fun_l5_n781(x)
- end
-end
-
-def fun_l4_n22(x)
- if (x < 1)
- fun_l5_n903(x)
- else
- fun_l5_n224(x)
- end
-end
-
-def fun_l4_n23(x)
- if (x < 1)
- fun_l5_n317(x)
- else
- fun_l5_n900(x)
- end
-end
-
-def fun_l4_n24(x)
- if (x < 1)
- fun_l5_n600(x)
- else
- fun_l5_n515(x)
- end
-end
-
-def fun_l4_n25(x)
- if (x < 1)
- fun_l5_n151(x)
- else
- fun_l5_n790(x)
- end
-end
-
-def fun_l4_n26(x)
- if (x < 1)
- fun_l5_n256(x)
- else
- fun_l5_n449(x)
- end
-end
-
-def fun_l4_n27(x)
- if (x < 1)
- fun_l5_n985(x)
- else
- fun_l5_n763(x)
- end
-end
-
-def fun_l4_n28(x)
- if (x < 1)
- fun_l5_n961(x)
- else
- fun_l5_n86(x)
- end
-end
-
-def fun_l4_n29(x)
- if (x < 1)
- fun_l5_n359(x)
- else
- fun_l5_n894(x)
- end
-end
-
-def fun_l4_n30(x)
- if (x < 1)
- fun_l5_n426(x)
- else
- fun_l5_n983(x)
- end
-end
-
-def fun_l4_n31(x)
- if (x < 1)
- fun_l5_n996(x)
- else
- fun_l5_n343(x)
- end
-end
-
-def fun_l4_n32(x)
- if (x < 1)
- fun_l5_n300(x)
- else
- fun_l5_n719(x)
- end
-end
-
-def fun_l4_n33(x)
- if (x < 1)
- fun_l5_n755(x)
- else
- fun_l5_n623(x)
- end
-end
-
-def fun_l4_n34(x)
- if (x < 1)
- fun_l5_n681(x)
- else
- fun_l5_n410(x)
- end
-end
-
-def fun_l4_n35(x)
- if (x < 1)
- fun_l5_n356(x)
- else
- fun_l5_n351(x)
- end
-end
-
-def fun_l4_n36(x)
- if (x < 1)
- fun_l5_n463(x)
- else
- fun_l5_n402(x)
- end
-end
-
-def fun_l4_n37(x)
- if (x < 1)
- fun_l5_n250(x)
- else
- fun_l5_n681(x)
- end
-end
-
-def fun_l4_n38(x)
- if (x < 1)
- fun_l5_n573(x)
- else
- fun_l5_n622(x)
- end
-end
-
-def fun_l4_n39(x)
- if (x < 1)
- fun_l5_n545(x)
- else
- fun_l5_n210(x)
- end
-end
-
-def fun_l4_n40(x)
- if (x < 1)
- fun_l5_n264(x)
- else
- fun_l5_n239(x)
- end
-end
-
-def fun_l4_n41(x)
- if (x < 1)
- fun_l5_n635(x)
- else
- fun_l5_n224(x)
- end
-end
-
-def fun_l4_n42(x)
- if (x < 1)
- fun_l5_n806(x)
- else
- fun_l5_n125(x)
- end
-end
-
-def fun_l4_n43(x)
- if (x < 1)
- fun_l5_n480(x)
- else
- fun_l5_n625(x)
- end
-end
-
-def fun_l4_n44(x)
- if (x < 1)
- fun_l5_n644(x)
- else
- fun_l5_n465(x)
- end
-end
-
-def fun_l4_n45(x)
- if (x < 1)
- fun_l5_n999(x)
- else
- fun_l5_n759(x)
- end
-end
-
-def fun_l4_n46(x)
- if (x < 1)
- fun_l5_n866(x)
- else
- fun_l5_n536(x)
- end
-end
-
-def fun_l4_n47(x)
- if (x < 1)
- fun_l5_n328(x)
- else
- fun_l5_n533(x)
- end
-end
-
-def fun_l4_n48(x)
- if (x < 1)
- fun_l5_n902(x)
- else
- fun_l5_n919(x)
- end
-end
-
-def fun_l4_n49(x)
- if (x < 1)
- fun_l5_n197(x)
- else
- fun_l5_n262(x)
- end
-end
-
-def fun_l4_n50(x)
- if (x < 1)
- fun_l5_n172(x)
- else
- fun_l5_n731(x)
- end
-end
-
-def fun_l4_n51(x)
- if (x < 1)
- fun_l5_n502(x)
- else
- fun_l5_n149(x)
- end
-end
-
-def fun_l4_n52(x)
- if (x < 1)
- fun_l5_n69(x)
- else
- fun_l5_n536(x)
- end
-end
-
-def fun_l4_n53(x)
- if (x < 1)
- fun_l5_n932(x)
- else
- fun_l5_n482(x)
- end
-end
-
-def fun_l4_n54(x)
- if (x < 1)
- fun_l5_n982(x)
- else
- fun_l5_n207(x)
- end
-end
-
-def fun_l4_n55(x)
- if (x < 1)
- fun_l5_n949(x)
- else
- fun_l5_n9(x)
- end
-end
-
-def fun_l4_n56(x)
- if (x < 1)
- fun_l5_n672(x)
- else
- fun_l5_n924(x)
- end
-end
-
-def fun_l4_n57(x)
- if (x < 1)
- fun_l5_n757(x)
- else
- fun_l5_n609(x)
- end
-end
-
-def fun_l4_n58(x)
- if (x < 1)
- fun_l5_n251(x)
- else
- fun_l5_n471(x)
- end
-end
-
-def fun_l4_n59(x)
- if (x < 1)
- fun_l5_n878(x)
- else
- fun_l5_n626(x)
- end
-end
-
-def fun_l4_n60(x)
- if (x < 1)
- fun_l5_n859(x)
- else
- fun_l5_n646(x)
- end
-end
-
-def fun_l4_n61(x)
- if (x < 1)
- fun_l5_n417(x)
- else
- fun_l5_n587(x)
- end
-end
-
-def fun_l4_n62(x)
- if (x < 1)
- fun_l5_n164(x)
- else
- fun_l5_n861(x)
- end
-end
-
-def fun_l4_n63(x)
- if (x < 1)
- fun_l5_n591(x)
- else
- fun_l5_n79(x)
- end
-end
-
-def fun_l4_n64(x)
- if (x < 1)
- fun_l5_n269(x)
- else
- fun_l5_n336(x)
- end
-end
-
-def fun_l4_n65(x)
- if (x < 1)
- fun_l5_n420(x)
- else
- fun_l5_n557(x)
- end
-end
-
-def fun_l4_n66(x)
- if (x < 1)
- fun_l5_n61(x)
- else
- fun_l5_n690(x)
- end
-end
-
-def fun_l4_n67(x)
- if (x < 1)
- fun_l5_n939(x)
- else
- fun_l5_n139(x)
- end
-end
-
-def fun_l4_n68(x)
- if (x < 1)
- fun_l5_n430(x)
- else
- fun_l5_n625(x)
- end
-end
-
-def fun_l4_n69(x)
- if (x < 1)
- fun_l5_n532(x)
- else
- fun_l5_n909(x)
- end
-end
-
-def fun_l4_n70(x)
- if (x < 1)
- fun_l5_n937(x)
- else
- fun_l5_n886(x)
- end
-end
-
-def fun_l4_n71(x)
- if (x < 1)
- fun_l5_n554(x)
- else
- fun_l5_n898(x)
- end
-end
-
-def fun_l4_n72(x)
- if (x < 1)
- fun_l5_n390(x)
- else
- fun_l5_n690(x)
- end
-end
-
-def fun_l4_n73(x)
- if (x < 1)
- fun_l5_n980(x)
- else
- fun_l5_n248(x)
- end
-end
-
-def fun_l4_n74(x)
- if (x < 1)
- fun_l5_n438(x)
- else
- fun_l5_n247(x)
- end
-end
-
-def fun_l4_n75(x)
- if (x < 1)
- fun_l5_n798(x)
- else
- fun_l5_n399(x)
- end
-end
-
-def fun_l4_n76(x)
- if (x < 1)
- fun_l5_n419(x)
- else
- fun_l5_n754(x)
- end
-end
-
-def fun_l4_n77(x)
- if (x < 1)
- fun_l5_n875(x)
- else
- fun_l5_n18(x)
- end
-end
-
-def fun_l4_n78(x)
- if (x < 1)
- fun_l5_n695(x)
- else
- fun_l5_n336(x)
- end
-end
-
-def fun_l4_n79(x)
- if (x < 1)
- fun_l5_n185(x)
- else
- fun_l5_n627(x)
- end
-end
-
-def fun_l4_n80(x)
- if (x < 1)
- fun_l5_n359(x)
- else
- fun_l5_n465(x)
- end
-end
-
-def fun_l4_n81(x)
- if (x < 1)
- fun_l5_n284(x)
- else
- fun_l5_n232(x)
- end
-end
-
-def fun_l4_n82(x)
- if (x < 1)
- fun_l5_n947(x)
- else
- fun_l5_n748(x)
- end
-end
-
-def fun_l4_n83(x)
- if (x < 1)
- fun_l5_n254(x)
- else
- fun_l5_n836(x)
- end
-end
-
-def fun_l4_n84(x)
- if (x < 1)
- fun_l5_n181(x)
- else
- fun_l5_n789(x)
- end
-end
-
-def fun_l4_n85(x)
- if (x < 1)
- fun_l5_n682(x)
- else
- fun_l5_n547(x)
- end
-end
-
-def fun_l4_n86(x)
- if (x < 1)
- fun_l5_n35(x)
- else
- fun_l5_n157(x)
- end
-end
-
-def fun_l4_n87(x)
- if (x < 1)
- fun_l5_n981(x)
- else
- fun_l5_n724(x)
- end
-end
-
-def fun_l4_n88(x)
- if (x < 1)
- fun_l5_n35(x)
- else
- fun_l5_n914(x)
- end
-end
-
-def fun_l4_n89(x)
- if (x < 1)
- fun_l5_n844(x)
- else
- fun_l5_n668(x)
- end
-end
-
-def fun_l4_n90(x)
- if (x < 1)
- fun_l5_n615(x)
- else
- fun_l5_n415(x)
- end
-end
-
-def fun_l4_n91(x)
- if (x < 1)
- fun_l5_n141(x)
- else
- fun_l5_n538(x)
- end
-end
-
-def fun_l4_n92(x)
- if (x < 1)
- fun_l5_n563(x)
- else
- fun_l5_n60(x)
- end
-end
-
-def fun_l4_n93(x)
- if (x < 1)
- fun_l5_n967(x)
- else
- fun_l5_n549(x)
- end
-end
-
-def fun_l4_n94(x)
- if (x < 1)
- fun_l5_n992(x)
- else
- fun_l5_n34(x)
- end
-end
-
-def fun_l4_n95(x)
- if (x < 1)
- fun_l5_n187(x)
- else
- fun_l5_n980(x)
- end
-end
-
-def fun_l4_n96(x)
- if (x < 1)
- fun_l5_n543(x)
- else
- fun_l5_n318(x)
- end
-end
-
-def fun_l4_n97(x)
- if (x < 1)
- fun_l5_n253(x)
- else
- fun_l5_n709(x)
- end
-end
-
-def fun_l4_n98(x)
- if (x < 1)
- fun_l5_n233(x)
- else
- fun_l5_n963(x)
- end
-end
-
-def fun_l4_n99(x)
- if (x < 1)
- fun_l5_n944(x)
- else
- fun_l5_n688(x)
- end
-end
-
-def fun_l4_n100(x)
- if (x < 1)
- fun_l5_n422(x)
- else
- fun_l5_n805(x)
- end
-end
-
-def fun_l4_n101(x)
- if (x < 1)
- fun_l5_n125(x)
- else
- fun_l5_n729(x)
- end
-end
-
-def fun_l4_n102(x)
- if (x < 1)
- fun_l5_n339(x)
- else
- fun_l5_n394(x)
- end
-end
-
-def fun_l4_n103(x)
- if (x < 1)
- fun_l5_n149(x)
- else
- fun_l5_n839(x)
- end
-end
-
-def fun_l4_n104(x)
- if (x < 1)
- fun_l5_n750(x)
- else
- fun_l5_n514(x)
- end
-end
-
-def fun_l4_n105(x)
- if (x < 1)
- fun_l5_n726(x)
- else
- fun_l5_n251(x)
- end
-end
-
-def fun_l4_n106(x)
- if (x < 1)
- fun_l5_n810(x)
- else
- fun_l5_n46(x)
- end
-end
-
-def fun_l4_n107(x)
- if (x < 1)
- fun_l5_n702(x)
- else
- fun_l5_n224(x)
- end
-end
-
-def fun_l4_n108(x)
- if (x < 1)
- fun_l5_n604(x)
- else
- fun_l5_n24(x)
- end
-end
-
-def fun_l4_n109(x)
- if (x < 1)
- fun_l5_n511(x)
- else
- fun_l5_n529(x)
- end
-end
-
-def fun_l4_n110(x)
- if (x < 1)
- fun_l5_n193(x)
- else
- fun_l5_n210(x)
- end
-end
-
-def fun_l4_n111(x)
- if (x < 1)
- fun_l5_n599(x)
- else
- fun_l5_n85(x)
- end
-end
-
-def fun_l4_n112(x)
- if (x < 1)
- fun_l5_n910(x)
- else
- fun_l5_n292(x)
- end
-end
-
-def fun_l4_n113(x)
- if (x < 1)
- fun_l5_n851(x)
- else
- fun_l5_n269(x)
- end
-end
-
-def fun_l4_n114(x)
- if (x < 1)
- fun_l5_n739(x)
- else
- fun_l5_n439(x)
- end
-end
-
-def fun_l4_n115(x)
- if (x < 1)
- fun_l5_n580(x)
- else
- fun_l5_n656(x)
- end
-end
-
-def fun_l4_n116(x)
- if (x < 1)
- fun_l5_n992(x)
- else
- fun_l5_n703(x)
- end
-end
-
-def fun_l4_n117(x)
- if (x < 1)
- fun_l5_n549(x)
- else
- fun_l5_n300(x)
- end
-end
-
-def fun_l4_n118(x)
- if (x < 1)
- fun_l5_n785(x)
- else
- fun_l5_n596(x)
- end
-end
-
-def fun_l4_n119(x)
- if (x < 1)
- fun_l5_n236(x)
- else
- fun_l5_n84(x)
- end
-end
-
-def fun_l4_n120(x)
- if (x < 1)
- fun_l5_n78(x)
- else
- fun_l5_n610(x)
- end
-end
-
-def fun_l4_n121(x)
- if (x < 1)
- fun_l5_n591(x)
- else
- fun_l5_n557(x)
- end
-end
-
-def fun_l4_n122(x)
- if (x < 1)
- fun_l5_n927(x)
- else
- fun_l5_n40(x)
- end
-end
-
-def fun_l4_n123(x)
- if (x < 1)
- fun_l5_n620(x)
- else
- fun_l5_n173(x)
- end
-end
-
-def fun_l4_n124(x)
- if (x < 1)
- fun_l5_n558(x)
- else
- fun_l5_n330(x)
- end
-end
-
-def fun_l4_n125(x)
- if (x < 1)
- fun_l5_n535(x)
- else
- fun_l5_n636(x)
- end
-end
-
-def fun_l4_n126(x)
- if (x < 1)
- fun_l5_n401(x)
- else
- fun_l5_n747(x)
- end
-end
-
-def fun_l4_n127(x)
- if (x < 1)
- fun_l5_n172(x)
- else
- fun_l5_n124(x)
- end
-end
-
-def fun_l4_n128(x)
- if (x < 1)
- fun_l5_n449(x)
- else
- fun_l5_n619(x)
- end
-end
-
-def fun_l4_n129(x)
- if (x < 1)
- fun_l5_n564(x)
- else
- fun_l5_n306(x)
- end
-end
-
-def fun_l4_n130(x)
- if (x < 1)
- fun_l5_n196(x)
- else
- fun_l5_n170(x)
- end
-end
-
-def fun_l4_n131(x)
- if (x < 1)
- fun_l5_n383(x)
- else
- fun_l5_n87(x)
- end
-end
-
-def fun_l4_n132(x)
- if (x < 1)
- fun_l5_n568(x)
- else
- fun_l5_n54(x)
- end
-end
-
-def fun_l4_n133(x)
- if (x < 1)
- fun_l5_n780(x)
- else
- fun_l5_n184(x)
- end
-end
-
-def fun_l4_n134(x)
- if (x < 1)
- fun_l5_n880(x)
- else
- fun_l5_n38(x)
- end
-end
-
-def fun_l4_n135(x)
- if (x < 1)
- fun_l5_n819(x)
- else
- fun_l5_n440(x)
- end
-end
-
-def fun_l4_n136(x)
- if (x < 1)
- fun_l5_n301(x)
- else
- fun_l5_n676(x)
- end
-end
-
-def fun_l4_n137(x)
- if (x < 1)
- fun_l5_n69(x)
- else
- fun_l5_n333(x)
- end
-end
-
-def fun_l4_n138(x)
- if (x < 1)
- fun_l5_n303(x)
- else
- fun_l5_n69(x)
- end
-end
-
-def fun_l4_n139(x)
- if (x < 1)
- fun_l5_n939(x)
- else
- fun_l5_n103(x)
- end
-end
-
-def fun_l4_n140(x)
- if (x < 1)
- fun_l5_n517(x)
- else
- fun_l5_n24(x)
- end
-end
-
-def fun_l4_n141(x)
- if (x < 1)
- fun_l5_n923(x)
- else
- fun_l5_n968(x)
- end
-end
-
-def fun_l4_n142(x)
- if (x < 1)
- fun_l5_n196(x)
- else
- fun_l5_n841(x)
- end
-end
-
-def fun_l4_n143(x)
- if (x < 1)
- fun_l5_n726(x)
- else
- fun_l5_n715(x)
- end
-end
-
-def fun_l4_n144(x)
- if (x < 1)
- fun_l5_n434(x)
- else
- fun_l5_n771(x)
- end
-end
-
-def fun_l4_n145(x)
- if (x < 1)
- fun_l5_n211(x)
- else
- fun_l5_n963(x)
- end
-end
-
-def fun_l4_n146(x)
- if (x < 1)
- fun_l5_n534(x)
- else
- fun_l5_n5(x)
- end
-end
-
-def fun_l4_n147(x)
- if (x < 1)
- fun_l5_n409(x)
- else
- fun_l5_n298(x)
- end
-end
-
-def fun_l4_n148(x)
- if (x < 1)
- fun_l5_n447(x)
- else
- fun_l5_n474(x)
- end
-end
-
-def fun_l4_n149(x)
- if (x < 1)
- fun_l5_n181(x)
- else
- fun_l5_n87(x)
- end
-end
-
-def fun_l4_n150(x)
- if (x < 1)
- fun_l5_n871(x)
- else
- fun_l5_n201(x)
- end
-end
-
-def fun_l4_n151(x)
- if (x < 1)
- fun_l5_n539(x)
- else
- fun_l5_n855(x)
- end
-end
-
-def fun_l4_n152(x)
- if (x < 1)
- fun_l5_n387(x)
- else
- fun_l5_n730(x)
- end
-end
-
-def fun_l4_n153(x)
- if (x < 1)
- fun_l5_n785(x)
- else
- fun_l5_n774(x)
- end
-end
-
-def fun_l4_n154(x)
- if (x < 1)
- fun_l5_n924(x)
- else
- fun_l5_n414(x)
- end
-end
-
-def fun_l4_n155(x)
- if (x < 1)
- fun_l5_n110(x)
- else
- fun_l5_n669(x)
- end
-end
-
-def fun_l4_n156(x)
- if (x < 1)
- fun_l5_n551(x)
- else
- fun_l5_n456(x)
- end
-end
-
-def fun_l4_n157(x)
- if (x < 1)
- fun_l5_n872(x)
- else
- fun_l5_n397(x)
- end
-end
-
-def fun_l4_n158(x)
- if (x < 1)
- fun_l5_n208(x)
- else
- fun_l5_n464(x)
- end
-end
-
-def fun_l4_n159(x)
- if (x < 1)
- fun_l5_n236(x)
- else
- fun_l5_n532(x)
- end
-end
-
-def fun_l4_n160(x)
- if (x < 1)
- fun_l5_n820(x)
- else
- fun_l5_n146(x)
- end
-end
-
-def fun_l4_n161(x)
- if (x < 1)
- fun_l5_n154(x)
- else
- fun_l5_n388(x)
- end
-end
-
-def fun_l4_n162(x)
- if (x < 1)
- fun_l5_n456(x)
- else
- fun_l5_n309(x)
- end
-end
-
-def fun_l4_n163(x)
- if (x < 1)
- fun_l5_n201(x)
- else
- fun_l5_n728(x)
- end
-end
-
-def fun_l4_n164(x)
- if (x < 1)
- fun_l5_n806(x)
- else
- fun_l5_n156(x)
- end
-end
-
-def fun_l4_n165(x)
- if (x < 1)
- fun_l5_n984(x)
- else
- fun_l5_n996(x)
- end
-end
-
-def fun_l4_n166(x)
- if (x < 1)
- fun_l5_n253(x)
- else
- fun_l5_n527(x)
- end
-end
-
-def fun_l4_n167(x)
- if (x < 1)
- fun_l5_n513(x)
- else
- fun_l5_n145(x)
- end
-end
-
-def fun_l4_n168(x)
- if (x < 1)
- fun_l5_n694(x)
- else
- fun_l5_n841(x)
- end
-end
-
-def fun_l4_n169(x)
- if (x < 1)
- fun_l5_n463(x)
- else
- fun_l5_n193(x)
- end
-end
-
-def fun_l4_n170(x)
- if (x < 1)
- fun_l5_n638(x)
- else
- fun_l5_n252(x)
- end
-end
-
-def fun_l4_n171(x)
- if (x < 1)
- fun_l5_n166(x)
- else
- fun_l5_n134(x)
- end
-end
-
-def fun_l4_n172(x)
- if (x < 1)
- fun_l5_n172(x)
- else
- fun_l5_n179(x)
- end
-end
-
-def fun_l4_n173(x)
- if (x < 1)
- fun_l5_n218(x)
- else
- fun_l5_n124(x)
- end
-end
-
-def fun_l4_n174(x)
- if (x < 1)
- fun_l5_n370(x)
- else
- fun_l5_n742(x)
- end
-end
-
-def fun_l4_n175(x)
- if (x < 1)
- fun_l5_n593(x)
- else
- fun_l5_n542(x)
- end
-end
-
-def fun_l4_n176(x)
- if (x < 1)
- fun_l5_n438(x)
- else
- fun_l5_n606(x)
- end
-end
-
-def fun_l4_n177(x)
- if (x < 1)
- fun_l5_n316(x)
- else
- fun_l5_n92(x)
- end
-end
-
-def fun_l4_n178(x)
- if (x < 1)
- fun_l5_n222(x)
- else
- fun_l5_n461(x)
- end
-end
-
-def fun_l4_n179(x)
- if (x < 1)
- fun_l5_n244(x)
- else
- fun_l5_n536(x)
- end
-end
-
-def fun_l4_n180(x)
- if (x < 1)
- fun_l5_n120(x)
- else
- fun_l5_n905(x)
- end
-end
-
-def fun_l4_n181(x)
- if (x < 1)
- fun_l5_n601(x)
- else
- fun_l5_n62(x)
- end
-end
-
-def fun_l4_n182(x)
- if (x < 1)
- fun_l5_n701(x)
- else
- fun_l5_n25(x)
- end
-end
-
-def fun_l4_n183(x)
- if (x < 1)
- fun_l5_n361(x)
- else
- fun_l5_n433(x)
- end
-end
-
-def fun_l4_n184(x)
- if (x < 1)
- fun_l5_n29(x)
- else
- fun_l5_n302(x)
- end
-end
-
-def fun_l4_n185(x)
- if (x < 1)
- fun_l5_n697(x)
- else
- fun_l5_n849(x)
- end
-end
-
-def fun_l4_n186(x)
- if (x < 1)
- fun_l5_n76(x)
- else
- fun_l5_n402(x)
- end
-end
-
-def fun_l4_n187(x)
- if (x < 1)
- fun_l5_n38(x)
- else
- fun_l5_n818(x)
- end
-end
-
-def fun_l4_n188(x)
- if (x < 1)
- fun_l5_n730(x)
- else
- fun_l5_n456(x)
- end
-end
-
-def fun_l4_n189(x)
- if (x < 1)
- fun_l5_n828(x)
- else
- fun_l5_n796(x)
- end
-end
-
-def fun_l4_n190(x)
- if (x < 1)
- fun_l5_n86(x)
- else
- fun_l5_n976(x)
- end
-end
-
-def fun_l4_n191(x)
- if (x < 1)
- fun_l5_n267(x)
- else
- fun_l5_n497(x)
- end
-end
-
-def fun_l4_n192(x)
- if (x < 1)
- fun_l5_n534(x)
- else
- fun_l5_n449(x)
- end
-end
-
-def fun_l4_n193(x)
- if (x < 1)
- fun_l5_n97(x)
- else
- fun_l5_n595(x)
- end
-end
-
-def fun_l4_n194(x)
- if (x < 1)
- fun_l5_n821(x)
- else
- fun_l5_n823(x)
- end
-end
-
-def fun_l4_n195(x)
- if (x < 1)
- fun_l5_n936(x)
- else
- fun_l5_n490(x)
- end
-end
-
-def fun_l4_n196(x)
- if (x < 1)
- fun_l5_n579(x)
- else
- fun_l5_n684(x)
- end
-end
-
-def fun_l4_n197(x)
- if (x < 1)
- fun_l5_n742(x)
- else
- fun_l5_n874(x)
- end
-end
-
-def fun_l4_n198(x)
- if (x < 1)
- fun_l5_n904(x)
- else
- fun_l5_n394(x)
- end
-end
-
-def fun_l4_n199(x)
- if (x < 1)
- fun_l5_n229(x)
- else
- fun_l5_n406(x)
- end
-end
-
-def fun_l4_n200(x)
- if (x < 1)
- fun_l5_n332(x)
- else
- fun_l5_n803(x)
- end
-end
-
-def fun_l4_n201(x)
- if (x < 1)
- fun_l5_n635(x)
- else
- fun_l5_n294(x)
- end
-end
-
-def fun_l4_n202(x)
- if (x < 1)
- fun_l5_n397(x)
- else
- fun_l5_n924(x)
- end
-end
-
-def fun_l4_n203(x)
- if (x < 1)
- fun_l5_n199(x)
- else
- fun_l5_n751(x)
- end
-end
-
-def fun_l4_n204(x)
- if (x < 1)
- fun_l5_n570(x)
- else
- fun_l5_n70(x)
- end
-end
-
-def fun_l4_n205(x)
- if (x < 1)
- fun_l5_n344(x)
- else
- fun_l5_n713(x)
- end
-end
-
-def fun_l4_n206(x)
- if (x < 1)
- fun_l5_n568(x)
- else
- fun_l5_n40(x)
- end
-end
-
-def fun_l4_n207(x)
- if (x < 1)
- fun_l5_n460(x)
- else
- fun_l5_n311(x)
- end
-end
-
-def fun_l4_n208(x)
- if (x < 1)
- fun_l5_n995(x)
- else
- fun_l5_n147(x)
- end
-end
-
-def fun_l4_n209(x)
- if (x < 1)
- fun_l5_n295(x)
- else
- fun_l5_n752(x)
- end
-end
-
-def fun_l4_n210(x)
- if (x < 1)
- fun_l5_n644(x)
- else
- fun_l5_n555(x)
- end
-end
-
-def fun_l4_n211(x)
- if (x < 1)
- fun_l5_n196(x)
- else
- fun_l5_n418(x)
- end
-end
-
-def fun_l4_n212(x)
- if (x < 1)
- fun_l5_n761(x)
- else
- fun_l5_n66(x)
- end
-end
-
-def fun_l4_n213(x)
- if (x < 1)
- fun_l5_n906(x)
- else
- fun_l5_n521(x)
- end
-end
-
-def fun_l4_n214(x)
- if (x < 1)
- fun_l5_n97(x)
- else
- fun_l5_n431(x)
- end
-end
-
-def fun_l4_n215(x)
- if (x < 1)
- fun_l5_n450(x)
- else
- fun_l5_n58(x)
- end
-end
-
-def fun_l4_n216(x)
- if (x < 1)
- fun_l5_n576(x)
- else
- fun_l5_n675(x)
- end
-end
-
-def fun_l4_n217(x)
- if (x < 1)
- fun_l5_n764(x)
- else
- fun_l5_n653(x)
- end
-end
-
-def fun_l4_n218(x)
- if (x < 1)
- fun_l5_n591(x)
- else
- fun_l5_n398(x)
- end
-end
-
-def fun_l4_n219(x)
- if (x < 1)
- fun_l5_n94(x)
- else
- fun_l5_n411(x)
- end
-end
-
-def fun_l4_n220(x)
- if (x < 1)
- fun_l5_n13(x)
- else
- fun_l5_n117(x)
- end
-end
-
-def fun_l4_n221(x)
- if (x < 1)
- fun_l5_n872(x)
- else
- fun_l5_n799(x)
- end
-end
-
-def fun_l4_n222(x)
- if (x < 1)
- fun_l5_n692(x)
- else
- fun_l5_n99(x)
- end
-end
-
-def fun_l4_n223(x)
- if (x < 1)
- fun_l5_n861(x)
- else
- fun_l5_n999(x)
- end
-end
-
-def fun_l4_n224(x)
- if (x < 1)
- fun_l5_n547(x)
- else
- fun_l5_n955(x)
- end
-end
-
-def fun_l4_n225(x)
- if (x < 1)
- fun_l5_n305(x)
- else
- fun_l5_n894(x)
- end
-end
-
-def fun_l4_n226(x)
- if (x < 1)
- fun_l5_n128(x)
- else
- fun_l5_n662(x)
- end
-end
-
-def fun_l4_n227(x)
- if (x < 1)
- fun_l5_n858(x)
- else
- fun_l5_n323(x)
- end
-end
-
-def fun_l4_n228(x)
- if (x < 1)
- fun_l5_n923(x)
- else
- fun_l5_n206(x)
- end
-end
-
-def fun_l4_n229(x)
- if (x < 1)
- fun_l5_n486(x)
- else
- fun_l5_n603(x)
- end
-end
-
-def fun_l4_n230(x)
- if (x < 1)
- fun_l5_n116(x)
- else
- fun_l5_n887(x)
- end
-end
-
-def fun_l4_n231(x)
- if (x < 1)
- fun_l5_n791(x)
- else
- fun_l5_n762(x)
- end
-end
-
-def fun_l4_n232(x)
- if (x < 1)
- fun_l5_n511(x)
- else
- fun_l5_n890(x)
- end
-end
-
-def fun_l4_n233(x)
- if (x < 1)
- fun_l5_n600(x)
- else
- fun_l5_n777(x)
- end
-end
-
-def fun_l4_n234(x)
- if (x < 1)
- fun_l5_n458(x)
- else
- fun_l5_n379(x)
- end
-end
-
-def fun_l4_n235(x)
- if (x < 1)
- fun_l5_n907(x)
- else
- fun_l5_n463(x)
- end
-end
-
-def fun_l4_n236(x)
- if (x < 1)
- fun_l5_n177(x)
- else
- fun_l5_n732(x)
- end
-end
-
-def fun_l4_n237(x)
- if (x < 1)
- fun_l5_n761(x)
- else
- fun_l5_n936(x)
- end
-end
-
-def fun_l4_n238(x)
- if (x < 1)
- fun_l5_n757(x)
- else
- fun_l5_n733(x)
- end
-end
-
-def fun_l4_n239(x)
- if (x < 1)
- fun_l5_n844(x)
- else
- fun_l5_n527(x)
- end
-end
-
-def fun_l4_n240(x)
- if (x < 1)
- fun_l5_n594(x)
- else
- fun_l5_n620(x)
- end
-end
-
-def fun_l4_n241(x)
- if (x < 1)
- fun_l5_n722(x)
- else
- fun_l5_n779(x)
- end
-end
-
-def fun_l4_n242(x)
- if (x < 1)
- fun_l5_n663(x)
- else
- fun_l5_n237(x)
- end
-end
-
-def fun_l4_n243(x)
- if (x < 1)
- fun_l5_n256(x)
- else
- fun_l5_n366(x)
- end
-end
-
-def fun_l4_n244(x)
- if (x < 1)
- fun_l5_n614(x)
- else
- fun_l5_n895(x)
- end
-end
-
-def fun_l4_n245(x)
- if (x < 1)
- fun_l5_n459(x)
- else
- fun_l5_n193(x)
- end
-end
-
-def fun_l4_n246(x)
- if (x < 1)
- fun_l5_n780(x)
- else
- fun_l5_n175(x)
- end
-end
-
-def fun_l4_n247(x)
- if (x < 1)
- fun_l5_n186(x)
- else
- fun_l5_n488(x)
- end
-end
-
-def fun_l4_n248(x)
- if (x < 1)
- fun_l5_n156(x)
- else
- fun_l5_n807(x)
- end
-end
-
-def fun_l4_n249(x)
- if (x < 1)
- fun_l5_n862(x)
- else
- fun_l5_n537(x)
- end
-end
-
-def fun_l4_n250(x)
- if (x < 1)
- fun_l5_n880(x)
- else
- fun_l5_n528(x)
- end
-end
-
-def fun_l4_n251(x)
- if (x < 1)
- fun_l5_n163(x)
- else
- fun_l5_n94(x)
- end
-end
-
-def fun_l4_n252(x)
- if (x < 1)
- fun_l5_n937(x)
- else
- fun_l5_n582(x)
- end
-end
-
-def fun_l4_n253(x)
- if (x < 1)
- fun_l5_n368(x)
- else
- fun_l5_n584(x)
- end
-end
-
-def fun_l4_n254(x)
- if (x < 1)
- fun_l5_n566(x)
- else
- fun_l5_n449(x)
- end
-end
-
-def fun_l4_n255(x)
- if (x < 1)
- fun_l5_n876(x)
- else
- fun_l5_n0(x)
- end
-end
-
-def fun_l4_n256(x)
- if (x < 1)
- fun_l5_n842(x)
- else
- fun_l5_n469(x)
- end
-end
-
-def fun_l4_n257(x)
- if (x < 1)
- fun_l5_n85(x)
- else
- fun_l5_n961(x)
- end
-end
-
-def fun_l4_n258(x)
- if (x < 1)
- fun_l5_n120(x)
- else
- fun_l5_n893(x)
- end
-end
-
-def fun_l4_n259(x)
- if (x < 1)
- fun_l5_n243(x)
- else
- fun_l5_n630(x)
- end
-end
-
-def fun_l4_n260(x)
- if (x < 1)
- fun_l5_n710(x)
- else
- fun_l5_n715(x)
- end
-end
-
-def fun_l4_n261(x)
- if (x < 1)
- fun_l5_n423(x)
- else
- fun_l5_n910(x)
- end
-end
-
-def fun_l4_n262(x)
- if (x < 1)
- fun_l5_n505(x)
- else
- fun_l5_n532(x)
- end
-end
-
-def fun_l4_n263(x)
- if (x < 1)
- fun_l5_n775(x)
- else
- fun_l5_n236(x)
- end
-end
-
-def fun_l4_n264(x)
- if (x < 1)
- fun_l5_n140(x)
- else
- fun_l5_n295(x)
- end
-end
-
-def fun_l4_n265(x)
- if (x < 1)
- fun_l5_n554(x)
- else
- fun_l5_n88(x)
- end
-end
-
-def fun_l4_n266(x)
- if (x < 1)
- fun_l5_n831(x)
- else
- fun_l5_n307(x)
- end
-end
-
-def fun_l4_n267(x)
- if (x < 1)
- fun_l5_n303(x)
- else
- fun_l5_n960(x)
- end
-end
-
-def fun_l4_n268(x)
- if (x < 1)
- fun_l5_n322(x)
- else
- fun_l5_n264(x)
- end
-end
-
-def fun_l4_n269(x)
- if (x < 1)
- fun_l5_n823(x)
- else
- fun_l5_n374(x)
- end
-end
-
-def fun_l4_n270(x)
- if (x < 1)
- fun_l5_n76(x)
- else
- fun_l5_n918(x)
- end
-end
-
-def fun_l4_n271(x)
- if (x < 1)
- fun_l5_n591(x)
- else
- fun_l5_n45(x)
- end
-end
-
-def fun_l4_n272(x)
- if (x < 1)
- fun_l5_n686(x)
- else
- fun_l5_n836(x)
- end
-end
-
-def fun_l4_n273(x)
- if (x < 1)
- fun_l5_n13(x)
- else
- fun_l5_n676(x)
- end
-end
-
-def fun_l4_n274(x)
- if (x < 1)
- fun_l5_n120(x)
- else
- fun_l5_n180(x)
- end
-end
-
-def fun_l4_n275(x)
- if (x < 1)
- fun_l5_n901(x)
- else
- fun_l5_n101(x)
- end
-end
-
-def fun_l4_n276(x)
- if (x < 1)
- fun_l5_n289(x)
- else
- fun_l5_n238(x)
- end
-end
-
-def fun_l4_n277(x)
- if (x < 1)
- fun_l5_n513(x)
- else
- fun_l5_n887(x)
- end
-end
-
-def fun_l4_n278(x)
- if (x < 1)
- fun_l5_n799(x)
- else
- fun_l5_n763(x)
- end
-end
-
-def fun_l4_n279(x)
- if (x < 1)
- fun_l5_n628(x)
- else
- fun_l5_n373(x)
- end
-end
-
-def fun_l4_n280(x)
- if (x < 1)
- fun_l5_n661(x)
- else
- fun_l5_n826(x)
- end
-end
-
-def fun_l4_n281(x)
- if (x < 1)
- fun_l5_n35(x)
- else
- fun_l5_n409(x)
- end
-end
-
-def fun_l4_n282(x)
- if (x < 1)
- fun_l5_n721(x)
- else
- fun_l5_n719(x)
- end
-end
-
-def fun_l4_n283(x)
- if (x < 1)
- fun_l5_n729(x)
- else
- fun_l5_n901(x)
- end
-end
-
-def fun_l4_n284(x)
- if (x < 1)
- fun_l5_n17(x)
- else
- fun_l5_n482(x)
- end
-end
-
-def fun_l4_n285(x)
- if (x < 1)
- fun_l5_n166(x)
- else
- fun_l5_n53(x)
- end
-end
-
-def fun_l4_n286(x)
- if (x < 1)
- fun_l5_n873(x)
- else
- fun_l5_n383(x)
- end
-end
-
-def fun_l4_n287(x)
- if (x < 1)
- fun_l5_n269(x)
- else
- fun_l5_n49(x)
- end
-end
-
-def fun_l4_n288(x)
- if (x < 1)
- fun_l5_n292(x)
- else
- fun_l5_n353(x)
- end
-end
-
-def fun_l4_n289(x)
- if (x < 1)
- fun_l5_n651(x)
- else
- fun_l5_n606(x)
- end
-end
-
-def fun_l4_n290(x)
- if (x < 1)
- fun_l5_n287(x)
- else
- fun_l5_n444(x)
- end
-end
-
-def fun_l4_n291(x)
- if (x < 1)
- fun_l5_n181(x)
- else
- fun_l5_n195(x)
- end
-end
-
-def fun_l4_n292(x)
- if (x < 1)
- fun_l5_n20(x)
- else
- fun_l5_n58(x)
- end
-end
-
-def fun_l4_n293(x)
- if (x < 1)
- fun_l5_n185(x)
- else
- fun_l5_n759(x)
- end
-end
-
-def fun_l4_n294(x)
- if (x < 1)
- fun_l5_n938(x)
- else
- fun_l5_n849(x)
- end
-end
-
-def fun_l4_n295(x)
- if (x < 1)
- fun_l5_n187(x)
- else
- fun_l5_n469(x)
- end
-end
-
-def fun_l4_n296(x)
- if (x < 1)
- fun_l5_n516(x)
- else
- fun_l5_n314(x)
- end
-end
-
-def fun_l4_n297(x)
- if (x < 1)
- fun_l5_n585(x)
- else
- fun_l5_n344(x)
- end
-end
-
-def fun_l4_n298(x)
- if (x < 1)
- fun_l5_n637(x)
- else
- fun_l5_n103(x)
- end
-end
-
-def fun_l4_n299(x)
- if (x < 1)
- fun_l5_n185(x)
- else
- fun_l5_n593(x)
- end
-end
-
-def fun_l4_n300(x)
- if (x < 1)
- fun_l5_n773(x)
- else
- fun_l5_n758(x)
- end
-end
-
-def fun_l4_n301(x)
- if (x < 1)
- fun_l5_n444(x)
- else
- fun_l5_n945(x)
- end
-end
-
-def fun_l4_n302(x)
- if (x < 1)
- fun_l5_n728(x)
- else
- fun_l5_n484(x)
- end
-end
-
-def fun_l4_n303(x)
- if (x < 1)
- fun_l5_n412(x)
- else
- fun_l5_n106(x)
- end
-end
-
-def fun_l4_n304(x)
- if (x < 1)
- fun_l5_n399(x)
- else
- fun_l5_n234(x)
- end
-end
-
-def fun_l4_n305(x)
- if (x < 1)
- fun_l5_n886(x)
- else
- fun_l5_n406(x)
- end
-end
-
-def fun_l4_n306(x)
- if (x < 1)
- fun_l5_n535(x)
- else
- fun_l5_n338(x)
- end
-end
-
-def fun_l4_n307(x)
- if (x < 1)
- fun_l5_n898(x)
- else
- fun_l5_n859(x)
- end
-end
-
-def fun_l4_n308(x)
- if (x < 1)
- fun_l5_n25(x)
- else
- fun_l5_n476(x)
- end
-end
-
-def fun_l4_n309(x)
- if (x < 1)
- fun_l5_n451(x)
- else
- fun_l5_n665(x)
- end
-end
-
-def fun_l4_n310(x)
- if (x < 1)
- fun_l5_n937(x)
- else
- fun_l5_n555(x)
- end
-end
-
-def fun_l4_n311(x)
- if (x < 1)
- fun_l5_n982(x)
- else
- fun_l5_n89(x)
- end
-end
-
-def fun_l4_n312(x)
- if (x < 1)
- fun_l5_n32(x)
- else
- fun_l5_n908(x)
- end
-end
-
-def fun_l4_n313(x)
- if (x < 1)
- fun_l5_n963(x)
- else
- fun_l5_n267(x)
- end
-end
-
-def fun_l4_n314(x)
- if (x < 1)
- fun_l5_n3(x)
- else
- fun_l5_n60(x)
- end
-end
-
-def fun_l4_n315(x)
- if (x < 1)
- fun_l5_n763(x)
- else
- fun_l5_n488(x)
- end
-end
-
-def fun_l4_n316(x)
- if (x < 1)
- fun_l5_n696(x)
- else
- fun_l5_n663(x)
- end
-end
-
-def fun_l4_n317(x)
- if (x < 1)
- fun_l5_n851(x)
- else
- fun_l5_n487(x)
- end
-end
-
-def fun_l4_n318(x)
- if (x < 1)
- fun_l5_n327(x)
- else
- fun_l5_n433(x)
- end
-end
-
-def fun_l4_n319(x)
- if (x < 1)
- fun_l5_n242(x)
- else
- fun_l5_n471(x)
- end
-end
-
-def fun_l4_n320(x)
- if (x < 1)
- fun_l5_n786(x)
- else
- fun_l5_n622(x)
- end
-end
-
-def fun_l4_n321(x)
- if (x < 1)
- fun_l5_n94(x)
- else
- fun_l5_n934(x)
- end
-end
-
-def fun_l4_n322(x)
- if (x < 1)
- fun_l5_n665(x)
- else
- fun_l5_n386(x)
- end
-end
-
-def fun_l4_n323(x)
- if (x < 1)
- fun_l5_n96(x)
- else
- fun_l5_n466(x)
- end
-end
-
-def fun_l4_n324(x)
- if (x < 1)
- fun_l5_n394(x)
- else
- fun_l5_n595(x)
- end
-end
-
-def fun_l4_n325(x)
- if (x < 1)
- fun_l5_n544(x)
- else
- fun_l5_n688(x)
- end
-end
-
-def fun_l4_n326(x)
- if (x < 1)
- fun_l5_n295(x)
- else
- fun_l5_n206(x)
- end
-end
-
-def fun_l4_n327(x)
- if (x < 1)
- fun_l5_n128(x)
- else
- fun_l5_n607(x)
- end
-end
-
-def fun_l4_n328(x)
- if (x < 1)
- fun_l5_n987(x)
- else
- fun_l5_n109(x)
- end
-end
-
-def fun_l4_n329(x)
- if (x < 1)
- fun_l5_n842(x)
- else
- fun_l5_n217(x)
- end
-end
-
-def fun_l4_n330(x)
- if (x < 1)
- fun_l5_n92(x)
- else
- fun_l5_n774(x)
- end
-end
-
-def fun_l4_n331(x)
- if (x < 1)
- fun_l5_n761(x)
- else
- fun_l5_n34(x)
- end
-end
-
-def fun_l4_n332(x)
- if (x < 1)
- fun_l5_n867(x)
- else
- fun_l5_n645(x)
- end
-end
-
-def fun_l4_n333(x)
- if (x < 1)
- fun_l5_n273(x)
- else
- fun_l5_n592(x)
- end
-end
-
-def fun_l4_n334(x)
- if (x < 1)
- fun_l5_n29(x)
- else
- fun_l5_n985(x)
- end
-end
-
-def fun_l4_n335(x)
- if (x < 1)
- fun_l5_n430(x)
- else
- fun_l5_n346(x)
- end
-end
-
-def fun_l4_n336(x)
- if (x < 1)
- fun_l5_n367(x)
- else
- fun_l5_n686(x)
- end
-end
-
-def fun_l4_n337(x)
- if (x < 1)
- fun_l5_n868(x)
- else
- fun_l5_n5(x)
- end
-end
-
-def fun_l4_n338(x)
- if (x < 1)
- fun_l5_n998(x)
- else
- fun_l5_n64(x)
- end
-end
-
-def fun_l4_n339(x)
- if (x < 1)
- fun_l5_n594(x)
- else
- fun_l5_n311(x)
- end
-end
-
-def fun_l4_n340(x)
- if (x < 1)
- fun_l5_n547(x)
- else
- fun_l5_n573(x)
- end
-end
-
-def fun_l4_n341(x)
- if (x < 1)
- fun_l5_n590(x)
- else
- fun_l5_n923(x)
- end
-end
-
-def fun_l4_n342(x)
- if (x < 1)
- fun_l5_n538(x)
- else
- fun_l5_n118(x)
- end
-end
-
-def fun_l4_n343(x)
- if (x < 1)
- fun_l5_n322(x)
- else
- fun_l5_n970(x)
- end
-end
-
-def fun_l4_n344(x)
- if (x < 1)
- fun_l5_n809(x)
- else
- fun_l5_n958(x)
- end
-end
-
-def fun_l4_n345(x)
- if (x < 1)
- fun_l5_n613(x)
- else
- fun_l5_n199(x)
- end
-end
-
-def fun_l4_n346(x)
- if (x < 1)
- fun_l5_n298(x)
- else
- fun_l5_n273(x)
- end
-end
-
-def fun_l4_n347(x)
- if (x < 1)
- fun_l5_n560(x)
- else
- fun_l5_n803(x)
- end
-end
-
-def fun_l4_n348(x)
- if (x < 1)
- fun_l5_n672(x)
- else
- fun_l5_n952(x)
- end
-end
-
-def fun_l4_n349(x)
- if (x < 1)
- fun_l5_n58(x)
- else
- fun_l5_n267(x)
- end
-end
-
-def fun_l4_n350(x)
- if (x < 1)
- fun_l5_n933(x)
- else
- fun_l5_n773(x)
- end
-end
-
-def fun_l4_n351(x)
- if (x < 1)
- fun_l5_n574(x)
- else
- fun_l5_n692(x)
- end
-end
-
-def fun_l4_n352(x)
- if (x < 1)
- fun_l5_n537(x)
- else
- fun_l5_n312(x)
- end
-end
-
-def fun_l4_n353(x)
- if (x < 1)
- fun_l5_n696(x)
- else
- fun_l5_n739(x)
- end
-end
-
-def fun_l4_n354(x)
- if (x < 1)
- fun_l5_n871(x)
- else
- fun_l5_n86(x)
- end
-end
-
-def fun_l4_n355(x)
- if (x < 1)
- fun_l5_n3(x)
- else
- fun_l5_n950(x)
- end
-end
-
-def fun_l4_n356(x)
- if (x < 1)
- fun_l5_n560(x)
- else
- fun_l5_n45(x)
- end
-end
-
-def fun_l4_n357(x)
- if (x < 1)
- fun_l5_n666(x)
- else
- fun_l5_n874(x)
- end
-end
-
-def fun_l4_n358(x)
- if (x < 1)
- fun_l5_n457(x)
- else
- fun_l5_n7(x)
- end
-end
-
-def fun_l4_n359(x)
- if (x < 1)
- fun_l5_n674(x)
- else
- fun_l5_n985(x)
- end
-end
-
-def fun_l4_n360(x)
- if (x < 1)
- fun_l5_n960(x)
- else
- fun_l5_n228(x)
- end
-end
-
-def fun_l4_n361(x)
- if (x < 1)
- fun_l5_n597(x)
- else
- fun_l5_n487(x)
- end
-end
-
-def fun_l4_n362(x)
- if (x < 1)
- fun_l5_n145(x)
- else
- fun_l5_n278(x)
- end
-end
-
-def fun_l4_n363(x)
- if (x < 1)
- fun_l5_n949(x)
- else
- fun_l5_n353(x)
- end
-end
-
-def fun_l4_n364(x)
- if (x < 1)
- fun_l5_n604(x)
- else
- fun_l5_n250(x)
- end
-end
-
-def fun_l4_n365(x)
- if (x < 1)
- fun_l5_n347(x)
- else
- fun_l5_n964(x)
- end
-end
-
-def fun_l4_n366(x)
- if (x < 1)
- fun_l5_n331(x)
- else
- fun_l5_n657(x)
- end
-end
-
-def fun_l4_n367(x)
- if (x < 1)
- fun_l5_n74(x)
- else
- fun_l5_n504(x)
- end
-end
-
-def fun_l4_n368(x)
- if (x < 1)
- fun_l5_n9(x)
- else
- fun_l5_n993(x)
- end
-end
-
-def fun_l4_n369(x)
- if (x < 1)
- fun_l5_n492(x)
- else
- fun_l5_n155(x)
- end
-end
-
-def fun_l4_n370(x)
- if (x < 1)
- fun_l5_n848(x)
- else
- fun_l5_n178(x)
- end
-end
-
-def fun_l4_n371(x)
- if (x < 1)
- fun_l5_n395(x)
- else
- fun_l5_n837(x)
- end
-end
-
-def fun_l4_n372(x)
- if (x < 1)
- fun_l5_n834(x)
- else
- fun_l5_n719(x)
- end
-end
-
-def fun_l4_n373(x)
- if (x < 1)
- fun_l5_n422(x)
- else
- fun_l5_n776(x)
- end
-end
-
-def fun_l4_n374(x)
- if (x < 1)
- fun_l5_n293(x)
- else
- fun_l5_n385(x)
- end
-end
-
-def fun_l4_n375(x)
- if (x < 1)
- fun_l5_n487(x)
- else
- fun_l5_n61(x)
- end
-end
-
-def fun_l4_n376(x)
- if (x < 1)
- fun_l5_n493(x)
- else
- fun_l5_n629(x)
- end
-end
-
-def fun_l4_n377(x)
- if (x < 1)
- fun_l5_n429(x)
- else
- fun_l5_n157(x)
- end
-end
-
-def fun_l4_n378(x)
- if (x < 1)
- fun_l5_n145(x)
- else
- fun_l5_n988(x)
- end
-end
-
-def fun_l4_n379(x)
- if (x < 1)
- fun_l5_n430(x)
- else
- fun_l5_n246(x)
- end
-end
-
-def fun_l4_n380(x)
- if (x < 1)
- fun_l5_n320(x)
- else
- fun_l5_n284(x)
- end
-end
-
-def fun_l4_n381(x)
- if (x < 1)
- fun_l5_n278(x)
- else
- fun_l5_n163(x)
- end
-end
-
-def fun_l4_n382(x)
- if (x < 1)
- fun_l5_n999(x)
- else
- fun_l5_n907(x)
- end
-end
-
-def fun_l4_n383(x)
- if (x < 1)
- fun_l5_n979(x)
- else
- fun_l5_n370(x)
- end
-end
-
-def fun_l4_n384(x)
- if (x < 1)
- fun_l5_n58(x)
- else
- fun_l5_n60(x)
- end
-end
-
-def fun_l4_n385(x)
- if (x < 1)
- fun_l5_n558(x)
- else
- fun_l5_n524(x)
- end
-end
-
-def fun_l4_n386(x)
- if (x < 1)
- fun_l5_n438(x)
- else
- fun_l5_n799(x)
- end
-end
-
-def fun_l4_n387(x)
- if (x < 1)
- fun_l5_n696(x)
- else
- fun_l5_n463(x)
- end
-end
-
-def fun_l4_n388(x)
- if (x < 1)
- fun_l5_n376(x)
- else
- fun_l5_n943(x)
- end
-end
-
-def fun_l4_n389(x)
- if (x < 1)
- fun_l5_n21(x)
- else
- fun_l5_n663(x)
- end
-end
-
-def fun_l4_n390(x)
- if (x < 1)
- fun_l5_n8(x)
- else
- fun_l5_n348(x)
- end
-end
-
-def fun_l4_n391(x)
- if (x < 1)
- fun_l5_n908(x)
- else
- fun_l5_n695(x)
- end
-end
-
-def fun_l4_n392(x)
- if (x < 1)
- fun_l5_n97(x)
- else
- fun_l5_n466(x)
- end
-end
-
-def fun_l4_n393(x)
- if (x < 1)
- fun_l5_n480(x)
- else
- fun_l5_n972(x)
- end
-end
-
-def fun_l4_n394(x)
- if (x < 1)
- fun_l5_n85(x)
- else
- fun_l5_n849(x)
- end
-end
-
-def fun_l4_n395(x)
- if (x < 1)
- fun_l5_n897(x)
- else
- fun_l5_n13(x)
- end
-end
-
-def fun_l4_n396(x)
- if (x < 1)
- fun_l5_n628(x)
- else
- fun_l5_n743(x)
- end
-end
-
-def fun_l4_n397(x)
- if (x < 1)
- fun_l5_n29(x)
- else
- fun_l5_n185(x)
- end
-end
-
-def fun_l4_n398(x)
- if (x < 1)
- fun_l5_n464(x)
- else
- fun_l5_n742(x)
- end
-end
-
-def fun_l4_n399(x)
- if (x < 1)
- fun_l5_n348(x)
- else
- fun_l5_n70(x)
- end
-end
-
-def fun_l4_n400(x)
- if (x < 1)
- fun_l5_n397(x)
- else
- fun_l5_n132(x)
- end
-end
-
-def fun_l4_n401(x)
- if (x < 1)
- fun_l5_n433(x)
- else
- fun_l5_n77(x)
- end
-end
-
-def fun_l4_n402(x)
- if (x < 1)
- fun_l5_n24(x)
- else
- fun_l5_n160(x)
- end
-end
-
-def fun_l4_n403(x)
- if (x < 1)
- fun_l5_n738(x)
- else
- fun_l5_n174(x)
- end
-end
-
-def fun_l4_n404(x)
- if (x < 1)
- fun_l5_n585(x)
- else
- fun_l5_n670(x)
- end
-end
-
-def fun_l4_n405(x)
- if (x < 1)
- fun_l5_n320(x)
- else
- fun_l5_n245(x)
- end
-end
-
-def fun_l4_n406(x)
- if (x < 1)
- fun_l5_n357(x)
- else
- fun_l5_n742(x)
- end
-end
-
-def fun_l4_n407(x)
- if (x < 1)
- fun_l5_n16(x)
- else
- fun_l5_n227(x)
- end
-end
-
-def fun_l4_n408(x)
- if (x < 1)
- fun_l5_n360(x)
- else
- fun_l5_n18(x)
- end
-end
-
-def fun_l4_n409(x)
- if (x < 1)
- fun_l5_n210(x)
- else
- fun_l5_n253(x)
- end
-end
-
-def fun_l4_n410(x)
- if (x < 1)
- fun_l5_n915(x)
- else
- fun_l5_n605(x)
- end
-end
-
-def fun_l4_n411(x)
- if (x < 1)
- fun_l5_n511(x)
- else
- fun_l5_n118(x)
- end
-end
-
-def fun_l4_n412(x)
- if (x < 1)
- fun_l5_n680(x)
- else
- fun_l5_n445(x)
- end
-end
-
-def fun_l4_n413(x)
- if (x < 1)
- fun_l5_n722(x)
- else
- fun_l5_n440(x)
- end
-end
-
-def fun_l4_n414(x)
- if (x < 1)
- fun_l5_n382(x)
- else
- fun_l5_n380(x)
- end
-end
-
-def fun_l4_n415(x)
- if (x < 1)
- fun_l5_n548(x)
- else
- fun_l5_n462(x)
- end
-end
-
-def fun_l4_n416(x)
- if (x < 1)
- fun_l5_n12(x)
- else
- fun_l5_n952(x)
- end
-end
-
-def fun_l4_n417(x)
- if (x < 1)
- fun_l5_n814(x)
- else
- fun_l5_n720(x)
- end
-end
-
-def fun_l4_n418(x)
- if (x < 1)
- fun_l5_n804(x)
- else
- fun_l5_n243(x)
- end
-end
-
-def fun_l4_n419(x)
- if (x < 1)
- fun_l5_n654(x)
- else
- fun_l5_n950(x)
- end
-end
-
-def fun_l4_n420(x)
- if (x < 1)
- fun_l5_n998(x)
- else
- fun_l5_n937(x)
- end
-end
-
-def fun_l4_n421(x)
- if (x < 1)
- fun_l5_n476(x)
- else
- fun_l5_n245(x)
- end
-end
-
-def fun_l4_n422(x)
- if (x < 1)
- fun_l5_n778(x)
- else
- fun_l5_n950(x)
- end
-end
-
-def fun_l4_n423(x)
- if (x < 1)
- fun_l5_n255(x)
- else
- fun_l5_n438(x)
- end
-end
-
-def fun_l4_n424(x)
- if (x < 1)
- fun_l5_n906(x)
- else
- fun_l5_n329(x)
- end
-end
-
-def fun_l4_n425(x)
- if (x < 1)
- fun_l5_n644(x)
- else
- fun_l5_n512(x)
- end
-end
-
-def fun_l4_n426(x)
- if (x < 1)
- fun_l5_n558(x)
- else
- fun_l5_n925(x)
- end
-end
-
-def fun_l4_n427(x)
- if (x < 1)
- fun_l5_n745(x)
- else
- fun_l5_n168(x)
- end
-end
-
-def fun_l4_n428(x)
- if (x < 1)
- fun_l5_n682(x)
- else
- fun_l5_n298(x)
- end
-end
-
-def fun_l4_n429(x)
- if (x < 1)
- fun_l5_n211(x)
- else
- fun_l5_n608(x)
- end
-end
-
-def fun_l4_n430(x)
- if (x < 1)
- fun_l5_n100(x)
- else
- fun_l5_n287(x)
- end
-end
-
-def fun_l4_n431(x)
- if (x < 1)
- fun_l5_n513(x)
- else
- fun_l5_n764(x)
- end
-end
-
-def fun_l4_n432(x)
- if (x < 1)
- fun_l5_n925(x)
- else
- fun_l5_n857(x)
- end
-end
-
-def fun_l4_n433(x)
- if (x < 1)
- fun_l5_n279(x)
- else
- fun_l5_n429(x)
- end
-end
-
-def fun_l4_n434(x)
- if (x < 1)
- fun_l5_n376(x)
- else
- fun_l5_n811(x)
- end
-end
-
-def fun_l4_n435(x)
- if (x < 1)
- fun_l5_n893(x)
- else
- fun_l5_n136(x)
- end
-end
-
-def fun_l4_n436(x)
- if (x < 1)
- fun_l5_n283(x)
- else
- fun_l5_n508(x)
- end
-end
-
-def fun_l4_n437(x)
- if (x < 1)
- fun_l5_n478(x)
- else
- fun_l5_n589(x)
- end
-end
-
-def fun_l4_n438(x)
- if (x < 1)
- fun_l5_n460(x)
- else
- fun_l5_n589(x)
- end
-end
-
-def fun_l4_n439(x)
- if (x < 1)
- fun_l5_n745(x)
- else
- fun_l5_n5(x)
- end
-end
-
-def fun_l4_n440(x)
- if (x < 1)
- fun_l5_n601(x)
- else
- fun_l5_n322(x)
- end
-end
-
-def fun_l4_n441(x)
- if (x < 1)
- fun_l5_n703(x)
- else
- fun_l5_n322(x)
- end
-end
-
-def fun_l4_n442(x)
- if (x < 1)
- fun_l5_n810(x)
- else
- fun_l5_n363(x)
- end
-end
-
-def fun_l4_n443(x)
- if (x < 1)
- fun_l5_n62(x)
- else
- fun_l5_n995(x)
- end
-end
-
-def fun_l4_n444(x)
- if (x < 1)
- fun_l5_n196(x)
- else
- fun_l5_n156(x)
- end
-end
-
-def fun_l4_n445(x)
- if (x < 1)
- fun_l5_n456(x)
- else
- fun_l5_n820(x)
- end
-end
-
-def fun_l4_n446(x)
- if (x < 1)
- fun_l5_n592(x)
- else
- fun_l5_n214(x)
- end
-end
-
-def fun_l4_n447(x)
- if (x < 1)
- fun_l5_n44(x)
- else
- fun_l5_n769(x)
- end
-end
-
-def fun_l4_n448(x)
- if (x < 1)
- fun_l5_n694(x)
- else
- fun_l5_n909(x)
- end
-end
-
-def fun_l4_n449(x)
- if (x < 1)
- fun_l5_n297(x)
- else
- fun_l5_n134(x)
- end
-end
-
-def fun_l4_n450(x)
- if (x < 1)
- fun_l5_n878(x)
- else
- fun_l5_n475(x)
- end
-end
-
-def fun_l4_n451(x)
- if (x < 1)
- fun_l5_n338(x)
- else
- fun_l5_n700(x)
- end
-end
-
-def fun_l4_n452(x)
- if (x < 1)
- fun_l5_n813(x)
- else
- fun_l5_n41(x)
- end
-end
-
-def fun_l4_n453(x)
- if (x < 1)
- fun_l5_n176(x)
- else
- fun_l5_n758(x)
- end
-end
-
-def fun_l4_n454(x)
- if (x < 1)
- fun_l5_n60(x)
- else
- fun_l5_n608(x)
- end
-end
-
-def fun_l4_n455(x)
- if (x < 1)
- fun_l5_n550(x)
- else
- fun_l5_n607(x)
- end
-end
-
-def fun_l4_n456(x)
- if (x < 1)
- fun_l5_n535(x)
- else
- fun_l5_n478(x)
- end
-end
-
-def fun_l4_n457(x)
- if (x < 1)
- fun_l5_n768(x)
- else
- fun_l5_n613(x)
- end
-end
-
-def fun_l4_n458(x)
- if (x < 1)
- fun_l5_n686(x)
- else
- fun_l5_n208(x)
- end
-end
-
-def fun_l4_n459(x)
- if (x < 1)
- fun_l5_n167(x)
- else
- fun_l5_n875(x)
- end
-end
-
-def fun_l4_n460(x)
- if (x < 1)
- fun_l5_n202(x)
- else
- fun_l5_n440(x)
- end
-end
-
-def fun_l4_n461(x)
- if (x < 1)
- fun_l5_n64(x)
- else
- fun_l5_n845(x)
- end
-end
-
-def fun_l4_n462(x)
- if (x < 1)
- fun_l5_n914(x)
- else
- fun_l5_n699(x)
- end
-end
-
-def fun_l4_n463(x)
- if (x < 1)
- fun_l5_n204(x)
- else
- fun_l5_n723(x)
- end
-end
-
-def fun_l4_n464(x)
- if (x < 1)
- fun_l5_n549(x)
- else
- fun_l5_n375(x)
- end
-end
-
-def fun_l4_n465(x)
- if (x < 1)
- fun_l5_n610(x)
- else
- fun_l5_n596(x)
- end
-end
-
-def fun_l4_n466(x)
- if (x < 1)
- fun_l5_n571(x)
- else
- fun_l5_n618(x)
- end
-end
-
-def fun_l4_n467(x)
- if (x < 1)
- fun_l5_n428(x)
- else
- fun_l5_n315(x)
- end
-end
-
-def fun_l4_n468(x)
- if (x < 1)
- fun_l5_n19(x)
- else
- fun_l5_n301(x)
- end
-end
-
-def fun_l4_n469(x)
- if (x < 1)
- fun_l5_n38(x)
- else
- fun_l5_n895(x)
- end
-end
-
-def fun_l4_n470(x)
- if (x < 1)
- fun_l5_n815(x)
- else
- fun_l5_n303(x)
- end
-end
-
-def fun_l4_n471(x)
- if (x < 1)
- fun_l5_n876(x)
- else
- fun_l5_n221(x)
- end
-end
-
-def fun_l4_n472(x)
- if (x < 1)
- fun_l5_n199(x)
- else
- fun_l5_n354(x)
- end
-end
-
-def fun_l4_n473(x)
- if (x < 1)
- fun_l5_n56(x)
- else
- fun_l5_n197(x)
- end
-end
-
-def fun_l4_n474(x)
- if (x < 1)
- fun_l5_n573(x)
- else
- fun_l5_n616(x)
- end
-end
-
-def fun_l4_n475(x)
- if (x < 1)
- fun_l5_n313(x)
- else
- fun_l5_n209(x)
- end
-end
-
-def fun_l4_n476(x)
- if (x < 1)
- fun_l5_n229(x)
- else
- fun_l5_n51(x)
- end
-end
-
-def fun_l4_n477(x)
- if (x < 1)
- fun_l5_n768(x)
- else
- fun_l5_n368(x)
- end
-end
-
-def fun_l4_n478(x)
- if (x < 1)
- fun_l5_n80(x)
- else
- fun_l5_n411(x)
- end
-end
-
-def fun_l4_n479(x)
- if (x < 1)
- fun_l5_n221(x)
- else
- fun_l5_n266(x)
- end
-end
-
-def fun_l4_n480(x)
- if (x < 1)
- fun_l5_n463(x)
- else
- fun_l5_n71(x)
- end
-end
-
-def fun_l4_n481(x)
- if (x < 1)
- fun_l5_n446(x)
- else
- fun_l5_n610(x)
- end
-end
-
-def fun_l4_n482(x)
- if (x < 1)
- fun_l5_n402(x)
- else
- fun_l5_n449(x)
- end
-end
-
-def fun_l4_n483(x)
- if (x < 1)
- fun_l5_n497(x)
- else
- fun_l5_n521(x)
- end
-end
-
-def fun_l4_n484(x)
- if (x < 1)
- fun_l5_n895(x)
- else
- fun_l5_n361(x)
- end
-end
-
-def fun_l4_n485(x)
- if (x < 1)
- fun_l5_n254(x)
- else
- fun_l5_n366(x)
- end
-end
-
-def fun_l4_n486(x)
- if (x < 1)
- fun_l5_n179(x)
- else
- fun_l5_n154(x)
- end
-end
-
-def fun_l4_n487(x)
- if (x < 1)
- fun_l5_n905(x)
- else
- fun_l5_n30(x)
- end
-end
-
-def fun_l4_n488(x)
- if (x < 1)
- fun_l5_n989(x)
- else
- fun_l5_n640(x)
- end
-end
-
-def fun_l4_n489(x)
- if (x < 1)
- fun_l5_n664(x)
- else
- fun_l5_n87(x)
- end
-end
-
-def fun_l4_n490(x)
- if (x < 1)
- fun_l5_n518(x)
- else
- fun_l5_n986(x)
- end
-end
-
-def fun_l4_n491(x)
- if (x < 1)
- fun_l5_n443(x)
- else
- fun_l5_n532(x)
- end
-end
-
-def fun_l4_n492(x)
- if (x < 1)
- fun_l5_n349(x)
- else
- fun_l5_n373(x)
- end
-end
-
-def fun_l4_n493(x)
- if (x < 1)
- fun_l5_n208(x)
- else
- fun_l5_n404(x)
- end
-end
-
-def fun_l4_n494(x)
- if (x < 1)
- fun_l5_n12(x)
- else
- fun_l5_n608(x)
- end
-end
-
-def fun_l4_n495(x)
- if (x < 1)
- fun_l5_n12(x)
- else
- fun_l5_n42(x)
- end
-end
-
-def fun_l4_n496(x)
- if (x < 1)
- fun_l5_n442(x)
- else
- fun_l5_n809(x)
- end
-end
-
-def fun_l4_n497(x)
- if (x < 1)
- fun_l5_n266(x)
- else
- fun_l5_n259(x)
- end
-end
-
-def fun_l4_n498(x)
- if (x < 1)
- fun_l5_n342(x)
- else
- fun_l5_n275(x)
- end
-end
-
-def fun_l4_n499(x)
- if (x < 1)
- fun_l5_n806(x)
- else
- fun_l5_n797(x)
- end
-end
-
-def fun_l4_n500(x)
- if (x < 1)
- fun_l5_n646(x)
- else
- fun_l5_n426(x)
- end
-end
-
-def fun_l4_n501(x)
- if (x < 1)
- fun_l5_n593(x)
- else
- fun_l5_n860(x)
- end
-end
-
-def fun_l4_n502(x)
- if (x < 1)
- fun_l5_n355(x)
- else
- fun_l5_n411(x)
- end
-end
-
-def fun_l4_n503(x)
- if (x < 1)
- fun_l5_n602(x)
- else
- fun_l5_n26(x)
- end
-end
-
-def fun_l4_n504(x)
- if (x < 1)
- fun_l5_n875(x)
- else
- fun_l5_n716(x)
- end
-end
-
-def fun_l4_n505(x)
- if (x < 1)
- fun_l5_n248(x)
- else
- fun_l5_n388(x)
- end
-end
-
-def fun_l4_n506(x)
- if (x < 1)
- fun_l5_n273(x)
- else
- fun_l5_n11(x)
- end
-end
-
-def fun_l4_n507(x)
- if (x < 1)
- fun_l5_n291(x)
- else
- fun_l5_n464(x)
- end
-end
-
-def fun_l4_n508(x)
- if (x < 1)
- fun_l5_n309(x)
- else
- fun_l5_n198(x)
- end
-end
-
-def fun_l4_n509(x)
- if (x < 1)
- fun_l5_n85(x)
- else
- fun_l5_n375(x)
- end
-end
-
-def fun_l4_n510(x)
- if (x < 1)
- fun_l5_n993(x)
- else
- fun_l5_n311(x)
- end
-end
-
-def fun_l4_n511(x)
- if (x < 1)
- fun_l5_n824(x)
- else
- fun_l5_n936(x)
- end
-end
-
-def fun_l4_n512(x)
- if (x < 1)
- fun_l5_n897(x)
- else
- fun_l5_n995(x)
- end
-end
-
-def fun_l4_n513(x)
- if (x < 1)
- fun_l5_n443(x)
- else
- fun_l5_n511(x)
- end
-end
-
-def fun_l4_n514(x)
- if (x < 1)
- fun_l5_n965(x)
- else
- fun_l5_n506(x)
- end
-end
-
-def fun_l4_n515(x)
- if (x < 1)
- fun_l5_n480(x)
- else
- fun_l5_n464(x)
- end
-end
-
-def fun_l4_n516(x)
- if (x < 1)
- fun_l5_n396(x)
- else
- fun_l5_n355(x)
- end
-end
-
-def fun_l4_n517(x)
- if (x < 1)
- fun_l5_n782(x)
- else
- fun_l5_n624(x)
- end
-end
-
-def fun_l4_n518(x)
- if (x < 1)
- fun_l5_n460(x)
- else
- fun_l5_n920(x)
- end
-end
-
-def fun_l4_n519(x)
- if (x < 1)
- fun_l5_n258(x)
- else
- fun_l5_n296(x)
- end
-end
-
-def fun_l4_n520(x)
- if (x < 1)
- fun_l5_n344(x)
- else
- fun_l5_n180(x)
- end
-end
-
-def fun_l4_n521(x)
- if (x < 1)
- fun_l5_n489(x)
- else
- fun_l5_n818(x)
- end
-end
-
-def fun_l4_n522(x)
- if (x < 1)
- fun_l5_n246(x)
- else
- fun_l5_n25(x)
- end
-end
-
-def fun_l4_n523(x)
- if (x < 1)
- fun_l5_n165(x)
- else
- fun_l5_n835(x)
- end
-end
-
-def fun_l4_n524(x)
- if (x < 1)
- fun_l5_n836(x)
- else
- fun_l5_n838(x)
- end
-end
-
-def fun_l4_n525(x)
- if (x < 1)
- fun_l5_n781(x)
- else
- fun_l5_n183(x)
- end
-end
-
-def fun_l4_n526(x)
- if (x < 1)
- fun_l5_n335(x)
- else
- fun_l5_n809(x)
- end
-end
-
-def fun_l4_n527(x)
- if (x < 1)
- fun_l5_n748(x)
- else
- fun_l5_n674(x)
- end
-end
-
-def fun_l4_n528(x)
- if (x < 1)
- fun_l5_n612(x)
- else
- fun_l5_n933(x)
- end
-end
-
-def fun_l4_n529(x)
- if (x < 1)
- fun_l5_n781(x)
- else
- fun_l5_n174(x)
- end
-end
-
-def fun_l4_n530(x)
- if (x < 1)
- fun_l5_n299(x)
- else
- fun_l5_n677(x)
- end
-end
-
-def fun_l4_n531(x)
- if (x < 1)
- fun_l5_n455(x)
- else
- fun_l5_n211(x)
- end
-end
-
-def fun_l4_n532(x)
- if (x < 1)
- fun_l5_n981(x)
- else
- fun_l5_n605(x)
- end
-end
-
-def fun_l4_n533(x)
- if (x < 1)
- fun_l5_n299(x)
- else
- fun_l5_n30(x)
- end
-end
-
-def fun_l4_n534(x)
- if (x < 1)
- fun_l5_n642(x)
- else
- fun_l5_n652(x)
- end
-end
-
-def fun_l4_n535(x)
- if (x < 1)
- fun_l5_n904(x)
- else
- fun_l5_n133(x)
- end
-end
-
-def fun_l4_n536(x)
- if (x < 1)
- fun_l5_n253(x)
- else
- fun_l5_n330(x)
- end
-end
-
-def fun_l4_n537(x)
- if (x < 1)
- fun_l5_n357(x)
- else
- fun_l5_n533(x)
- end
-end
-
-def fun_l4_n538(x)
- if (x < 1)
- fun_l5_n484(x)
- else
- fun_l5_n438(x)
- end
-end
-
-def fun_l4_n539(x)
- if (x < 1)
- fun_l5_n200(x)
- else
- fun_l5_n235(x)
- end
-end
-
-def fun_l4_n540(x)
- if (x < 1)
- fun_l5_n929(x)
- else
- fun_l5_n875(x)
- end
-end
-
-def fun_l4_n541(x)
- if (x < 1)
- fun_l5_n237(x)
- else
- fun_l5_n688(x)
- end
-end
-
-def fun_l4_n542(x)
- if (x < 1)
- fun_l5_n723(x)
- else
- fun_l5_n308(x)
- end
-end
-
-def fun_l4_n543(x)
- if (x < 1)
- fun_l5_n591(x)
- else
- fun_l5_n93(x)
- end
-end
-
-def fun_l4_n544(x)
- if (x < 1)
- fun_l5_n258(x)
- else
- fun_l5_n205(x)
- end
-end
-
-def fun_l4_n545(x)
- if (x < 1)
- fun_l5_n910(x)
- else
- fun_l5_n529(x)
- end
-end
-
-def fun_l4_n546(x)
- if (x < 1)
- fun_l5_n255(x)
- else
- fun_l5_n262(x)
- end
-end
-
-def fun_l4_n547(x)
- if (x < 1)
- fun_l5_n674(x)
- else
- fun_l5_n813(x)
- end
-end
-
-def fun_l4_n548(x)
- if (x < 1)
- fun_l5_n9(x)
- else
- fun_l5_n709(x)
- end
-end
-
-def fun_l4_n549(x)
- if (x < 1)
- fun_l5_n146(x)
- else
- fun_l5_n801(x)
- end
-end
-
-def fun_l4_n550(x)
- if (x < 1)
- fun_l5_n593(x)
- else
- fun_l5_n428(x)
- end
-end
-
-def fun_l4_n551(x)
- if (x < 1)
- fun_l5_n953(x)
- else
- fun_l5_n238(x)
- end
-end
-
-def fun_l4_n552(x)
- if (x < 1)
- fun_l5_n900(x)
- else
- fun_l5_n246(x)
- end
-end
-
-def fun_l4_n553(x)
- if (x < 1)
- fun_l5_n400(x)
- else
- fun_l5_n150(x)
- end
-end
-
-def fun_l4_n554(x)
- if (x < 1)
- fun_l5_n697(x)
- else
- fun_l5_n681(x)
- end
-end
-
-def fun_l4_n555(x)
- if (x < 1)
- fun_l5_n487(x)
- else
- fun_l5_n784(x)
- end
-end
-
-def fun_l4_n556(x)
- if (x < 1)
- fun_l5_n485(x)
- else
- fun_l5_n984(x)
- end
-end
-
-def fun_l4_n557(x)
- if (x < 1)
- fun_l5_n774(x)
- else
- fun_l5_n864(x)
- end
-end
-
-def fun_l4_n558(x)
- if (x < 1)
- fun_l5_n823(x)
- else
- fun_l5_n527(x)
- end
-end
-
-def fun_l4_n559(x)
- if (x < 1)
- fun_l5_n204(x)
- else
- fun_l5_n114(x)
- end
-end
-
-def fun_l4_n560(x)
- if (x < 1)
- fun_l5_n835(x)
- else
- fun_l5_n930(x)
- end
-end
-
-def fun_l4_n561(x)
- if (x < 1)
- fun_l5_n481(x)
- else
- fun_l5_n471(x)
- end
-end
-
-def fun_l4_n562(x)
- if (x < 1)
- fun_l5_n459(x)
- else
- fun_l5_n526(x)
- end
-end
-
-def fun_l4_n563(x)
- if (x < 1)
- fun_l5_n148(x)
- else
- fun_l5_n473(x)
- end
-end
-
-def fun_l4_n564(x)
- if (x < 1)
- fun_l5_n448(x)
- else
- fun_l5_n389(x)
- end
-end
-
-def fun_l4_n565(x)
- if (x < 1)
- fun_l5_n600(x)
- else
- fun_l5_n405(x)
- end
-end
-
-def fun_l4_n566(x)
- if (x < 1)
- fun_l5_n67(x)
- else
- fun_l5_n145(x)
- end
-end
-
-def fun_l4_n567(x)
- if (x < 1)
- fun_l5_n63(x)
- else
- fun_l5_n206(x)
- end
-end
-
-def fun_l4_n568(x)
- if (x < 1)
- fun_l5_n463(x)
- else
- fun_l5_n288(x)
- end
-end
-
-def fun_l4_n569(x)
- if (x < 1)
- fun_l5_n143(x)
- else
- fun_l5_n879(x)
- end
-end
-
-def fun_l4_n570(x)
- if (x < 1)
- fun_l5_n552(x)
- else
- fun_l5_n517(x)
- end
-end
-
-def fun_l4_n571(x)
- if (x < 1)
- fun_l5_n527(x)
- else
- fun_l5_n680(x)
- end
-end
-
-def fun_l4_n572(x)
- if (x < 1)
- fun_l5_n853(x)
- else
- fun_l5_n97(x)
- end
-end
-
-def fun_l4_n573(x)
- if (x < 1)
- fun_l5_n277(x)
- else
- fun_l5_n329(x)
- end
-end
-
-def fun_l4_n574(x)
- if (x < 1)
- fun_l5_n952(x)
- else
- fun_l5_n515(x)
- end
-end
-
-def fun_l4_n575(x)
- if (x < 1)
- fun_l5_n64(x)
- else
- fun_l5_n576(x)
- end
-end
-
-def fun_l4_n576(x)
- if (x < 1)
- fun_l5_n57(x)
- else
- fun_l5_n499(x)
- end
-end
-
-def fun_l4_n577(x)
- if (x < 1)
- fun_l5_n10(x)
- else
- fun_l5_n208(x)
- end
-end
-
-def fun_l4_n578(x)
- if (x < 1)
- fun_l5_n361(x)
- else
- fun_l5_n447(x)
- end
-end
-
-def fun_l4_n579(x)
- if (x < 1)
- fun_l5_n788(x)
- else
- fun_l5_n299(x)
- end
-end
-
-def fun_l4_n580(x)
- if (x < 1)
- fun_l5_n973(x)
- else
- fun_l5_n753(x)
- end
-end
-
-def fun_l4_n581(x)
- if (x < 1)
- fun_l5_n862(x)
- else
- fun_l5_n110(x)
- end
-end
-
-def fun_l4_n582(x)
- if (x < 1)
- fun_l5_n760(x)
- else
- fun_l5_n256(x)
- end
-end
-
-def fun_l4_n583(x)
- if (x < 1)
- fun_l5_n8(x)
- else
- fun_l5_n922(x)
- end
-end
-
-def fun_l4_n584(x)
- if (x < 1)
- fun_l5_n100(x)
- else
- fun_l5_n230(x)
- end
-end
-
-def fun_l4_n585(x)
- if (x < 1)
- fun_l5_n183(x)
- else
- fun_l5_n350(x)
- end
-end
-
-def fun_l4_n586(x)
- if (x < 1)
- fun_l5_n294(x)
- else
- fun_l5_n673(x)
- end
-end
-
-def fun_l4_n587(x)
- if (x < 1)
- fun_l5_n51(x)
- else
- fun_l5_n718(x)
- end
-end
-
-def fun_l4_n588(x)
- if (x < 1)
- fun_l5_n257(x)
- else
- fun_l5_n111(x)
- end
-end
-
-def fun_l4_n589(x)
- if (x < 1)
- fun_l5_n727(x)
- else
- fun_l5_n585(x)
- end
-end
-
-def fun_l4_n590(x)
- if (x < 1)
- fun_l5_n205(x)
- else
- fun_l5_n308(x)
- end
-end
-
-def fun_l4_n591(x)
- if (x < 1)
- fun_l5_n618(x)
- else
- fun_l5_n970(x)
- end
-end
-
-def fun_l4_n592(x)
- if (x < 1)
- fun_l5_n631(x)
- else
- fun_l5_n513(x)
- end
-end
-
-def fun_l4_n593(x)
- if (x < 1)
- fun_l5_n270(x)
- else
- fun_l5_n737(x)
- end
-end
-
-def fun_l4_n594(x)
- if (x < 1)
- fun_l5_n464(x)
- else
- fun_l5_n217(x)
- end
-end
-
-def fun_l4_n595(x)
- if (x < 1)
- fun_l5_n650(x)
- else
- fun_l5_n616(x)
- end
-end
-
-def fun_l4_n596(x)
- if (x < 1)
- fun_l5_n542(x)
- else
- fun_l5_n613(x)
- end
-end
-
-def fun_l4_n597(x)
- if (x < 1)
- fun_l5_n312(x)
- else
- fun_l5_n7(x)
- end
-end
-
-def fun_l4_n598(x)
- if (x < 1)
- fun_l5_n164(x)
- else
- fun_l5_n592(x)
- end
-end
-
-def fun_l4_n599(x)
- if (x < 1)
- fun_l5_n326(x)
- else
- fun_l5_n894(x)
- end
-end
-
-def fun_l4_n600(x)
- if (x < 1)
- fun_l5_n243(x)
- else
- fun_l5_n233(x)
- end
-end
-
-def fun_l4_n601(x)
- if (x < 1)
- fun_l5_n600(x)
- else
- fun_l5_n7(x)
- end
-end
-
-def fun_l4_n602(x)
- if (x < 1)
- fun_l5_n334(x)
- else
- fun_l5_n282(x)
- end
-end
-
-def fun_l4_n603(x)
- if (x < 1)
- fun_l5_n202(x)
- else
- fun_l5_n252(x)
- end
-end
-
-def fun_l4_n604(x)
- if (x < 1)
- fun_l5_n173(x)
- else
- fun_l5_n685(x)
- end
-end
-
-def fun_l4_n605(x)
- if (x < 1)
- fun_l5_n953(x)
- else
- fun_l5_n416(x)
- end
-end
-
-def fun_l4_n606(x)
- if (x < 1)
- fun_l5_n775(x)
- else
- fun_l5_n372(x)
- end
-end
-
-def fun_l4_n607(x)
- if (x < 1)
- fun_l5_n723(x)
- else
- fun_l5_n894(x)
- end
-end
-
-def fun_l4_n608(x)
- if (x < 1)
- fun_l5_n690(x)
- else
- fun_l5_n26(x)
- end
-end
-
-def fun_l4_n609(x)
- if (x < 1)
- fun_l5_n555(x)
- else
- fun_l5_n717(x)
- end
-end
-
-def fun_l4_n610(x)
- if (x < 1)
- fun_l5_n597(x)
- else
- fun_l5_n106(x)
- end
-end
-
-def fun_l4_n611(x)
- if (x < 1)
- fun_l5_n405(x)
- else
- fun_l5_n588(x)
- end
-end
-
-def fun_l4_n612(x)
- if (x < 1)
- fun_l5_n41(x)
- else
- fun_l5_n558(x)
- end
-end
-
-def fun_l4_n613(x)
- if (x < 1)
- fun_l5_n875(x)
- else
- fun_l5_n492(x)
- end
-end
-
-def fun_l4_n614(x)
- if (x < 1)
- fun_l5_n605(x)
- else
- fun_l5_n461(x)
- end
-end
-
-def fun_l4_n615(x)
- if (x < 1)
- fun_l5_n726(x)
- else
- fun_l5_n534(x)
- end
-end
-
-def fun_l4_n616(x)
- if (x < 1)
- fun_l5_n919(x)
- else
- fun_l5_n404(x)
- end
-end
-
-def fun_l4_n617(x)
- if (x < 1)
- fun_l5_n383(x)
- else
- fun_l5_n324(x)
- end
-end
-
-def fun_l4_n618(x)
- if (x < 1)
- fun_l5_n286(x)
- else
- fun_l5_n157(x)
- end
-end
-
-def fun_l4_n619(x)
- if (x < 1)
- fun_l5_n713(x)
- else
- fun_l5_n388(x)
- end
-end
-
-def fun_l4_n620(x)
- if (x < 1)
- fun_l5_n773(x)
- else
- fun_l5_n790(x)
- end
-end
-
-def fun_l4_n621(x)
- if (x < 1)
- fun_l5_n797(x)
- else
- fun_l5_n720(x)
- end
-end
-
-def fun_l4_n622(x)
- if (x < 1)
- fun_l5_n799(x)
- else
- fun_l5_n423(x)
- end
-end
-
-def fun_l4_n623(x)
- if (x < 1)
- fun_l5_n390(x)
- else
- fun_l5_n941(x)
- end
-end
-
-def fun_l4_n624(x)
- if (x < 1)
- fun_l5_n584(x)
- else
- fun_l5_n191(x)
- end
-end
-
-def fun_l4_n625(x)
- if (x < 1)
- fun_l5_n243(x)
- else
- fun_l5_n208(x)
- end
-end
-
-def fun_l4_n626(x)
- if (x < 1)
- fun_l5_n136(x)
- else
- fun_l5_n791(x)
- end
-end
-
-def fun_l4_n627(x)
- if (x < 1)
- fun_l5_n684(x)
- else
- fun_l5_n341(x)
- end
-end
-
-def fun_l4_n628(x)
- if (x < 1)
- fun_l5_n876(x)
- else
- fun_l5_n27(x)
- end
-end
-
-def fun_l4_n629(x)
- if (x < 1)
- fun_l5_n18(x)
- else
- fun_l5_n867(x)
- end
-end
-
-def fun_l4_n630(x)
- if (x < 1)
- fun_l5_n4(x)
- else
- fun_l5_n871(x)
- end
-end
-
-def fun_l4_n631(x)
- if (x < 1)
- fun_l5_n578(x)
- else
- fun_l5_n988(x)
- end
-end
-
-def fun_l4_n632(x)
- if (x < 1)
- fun_l5_n388(x)
- else
- fun_l5_n258(x)
- end
-end
-
-def fun_l4_n633(x)
- if (x < 1)
- fun_l5_n680(x)
- else
- fun_l5_n814(x)
- end
-end
-
-def fun_l4_n634(x)
- if (x < 1)
- fun_l5_n857(x)
- else
- fun_l5_n595(x)
- end
-end
-
-def fun_l4_n635(x)
- if (x < 1)
- fun_l5_n547(x)
- else
- fun_l5_n725(x)
- end
-end
-
-def fun_l4_n636(x)
- if (x < 1)
- fun_l5_n644(x)
- else
- fun_l5_n485(x)
- end
-end
-
-def fun_l4_n637(x)
- if (x < 1)
- fun_l5_n528(x)
- else
- fun_l5_n653(x)
- end
-end
-
-def fun_l4_n638(x)
- if (x < 1)
- fun_l5_n924(x)
- else
- fun_l5_n956(x)
- end
-end
-
-def fun_l4_n639(x)
- if (x < 1)
- fun_l5_n654(x)
- else
- fun_l5_n979(x)
- end
-end
-
-def fun_l4_n640(x)
- if (x < 1)
- fun_l5_n287(x)
- else
- fun_l5_n778(x)
- end
-end
-
-def fun_l4_n641(x)
- if (x < 1)
- fun_l5_n197(x)
- else
- fun_l5_n682(x)
- end
-end
-
-def fun_l4_n642(x)
- if (x < 1)
- fun_l5_n559(x)
- else
- fun_l5_n812(x)
- end
-end
-
-def fun_l4_n643(x)
- if (x < 1)
- fun_l5_n970(x)
- else
- fun_l5_n43(x)
- end
-end
-
-def fun_l4_n644(x)
- if (x < 1)
- fun_l5_n222(x)
- else
- fun_l5_n741(x)
- end
-end
-
-def fun_l4_n645(x)
- if (x < 1)
- fun_l5_n788(x)
- else
- fun_l5_n72(x)
- end
-end
-
-def fun_l4_n646(x)
- if (x < 1)
- fun_l5_n877(x)
- else
- fun_l5_n371(x)
- end
-end
-
-def fun_l4_n647(x)
- if (x < 1)
- fun_l5_n710(x)
- else
- fun_l5_n783(x)
- end
-end
-
-def fun_l4_n648(x)
- if (x < 1)
- fun_l5_n957(x)
- else
- fun_l5_n801(x)
- end
-end
-
-def fun_l4_n649(x)
- if (x < 1)
- fun_l5_n127(x)
- else
- fun_l5_n664(x)
- end
-end
-
-def fun_l4_n650(x)
- if (x < 1)
- fun_l5_n176(x)
- else
- fun_l5_n511(x)
- end
-end
-
-def fun_l4_n651(x)
- if (x < 1)
- fun_l5_n830(x)
- else
- fun_l5_n107(x)
- end
-end
-
-def fun_l4_n652(x)
- if (x < 1)
- fun_l5_n207(x)
- else
- fun_l5_n894(x)
- end
-end
-
-def fun_l4_n653(x)
- if (x < 1)
- fun_l5_n611(x)
- else
- fun_l5_n443(x)
- end
-end
-
-def fun_l4_n654(x)
- if (x < 1)
- fun_l5_n953(x)
- else
- fun_l5_n214(x)
- end
-end
-
-def fun_l4_n655(x)
- if (x < 1)
- fun_l5_n109(x)
- else
- fun_l5_n706(x)
- end
-end
-
-def fun_l4_n656(x)
- if (x < 1)
- fun_l5_n312(x)
- else
- fun_l5_n914(x)
- end
-end
-
-def fun_l4_n657(x)
- if (x < 1)
- fun_l5_n774(x)
- else
- fun_l5_n530(x)
- end
-end
-
-def fun_l4_n658(x)
- if (x < 1)
- fun_l5_n79(x)
- else
- fun_l5_n303(x)
- end
-end
-
-def fun_l4_n659(x)
- if (x < 1)
- fun_l5_n718(x)
- else
- fun_l5_n196(x)
- end
-end
-
-def fun_l4_n660(x)
- if (x < 1)
- fun_l5_n196(x)
- else
- fun_l5_n661(x)
- end
-end
-
-def fun_l4_n661(x)
- if (x < 1)
- fun_l5_n654(x)
- else
- fun_l5_n17(x)
- end
-end
-
-def fun_l4_n662(x)
- if (x < 1)
- fun_l5_n413(x)
- else
- fun_l5_n214(x)
- end
-end
-
-def fun_l4_n663(x)
- if (x < 1)
- fun_l5_n491(x)
- else
- fun_l5_n927(x)
- end
-end
-
-def fun_l4_n664(x)
- if (x < 1)
- fun_l5_n671(x)
- else
- fun_l5_n611(x)
- end
-end
-
-def fun_l4_n665(x)
- if (x < 1)
- fun_l5_n153(x)
- else
- fun_l5_n127(x)
- end
-end
-
-def fun_l4_n666(x)
- if (x < 1)
- fun_l5_n661(x)
- else
- fun_l5_n590(x)
- end
-end
-
-def fun_l4_n667(x)
- if (x < 1)
- fun_l5_n539(x)
- else
- fun_l5_n692(x)
- end
-end
-
-def fun_l4_n668(x)
- if (x < 1)
- fun_l5_n390(x)
- else
- fun_l5_n423(x)
- end
-end
-
-def fun_l4_n669(x)
- if (x < 1)
- fun_l5_n615(x)
- else
- fun_l5_n449(x)
- end
-end
-
-def fun_l4_n670(x)
- if (x < 1)
- fun_l5_n49(x)
- else
- fun_l5_n632(x)
- end
-end
-
-def fun_l4_n671(x)
- if (x < 1)
- fun_l5_n891(x)
- else
- fun_l5_n915(x)
- end
-end
-
-def fun_l4_n672(x)
- if (x < 1)
- fun_l5_n257(x)
- else
- fun_l5_n719(x)
- end
-end
-
-def fun_l4_n673(x)
- if (x < 1)
- fun_l5_n620(x)
- else
- fun_l5_n473(x)
- end
-end
-
-def fun_l4_n674(x)
- if (x < 1)
- fun_l5_n422(x)
- else
- fun_l5_n776(x)
- end
-end
-
-def fun_l4_n675(x)
- if (x < 1)
- fun_l5_n973(x)
- else
- fun_l5_n32(x)
- end
-end
-
-def fun_l4_n676(x)
- if (x < 1)
- fun_l5_n434(x)
- else
- fun_l5_n85(x)
- end
-end
-
-def fun_l4_n677(x)
- if (x < 1)
- fun_l5_n430(x)
- else
- fun_l5_n702(x)
- end
-end
-
-def fun_l4_n678(x)
- if (x < 1)
- fun_l5_n698(x)
- else
- fun_l5_n482(x)
- end
-end
-
-def fun_l4_n679(x)
- if (x < 1)
- fun_l5_n365(x)
- else
- fun_l5_n83(x)
- end
-end
-
-def fun_l4_n680(x)
- if (x < 1)
- fun_l5_n397(x)
- else
- fun_l5_n356(x)
- end
-end
-
-def fun_l4_n681(x)
- if (x < 1)
- fun_l5_n48(x)
- else
- fun_l5_n458(x)
- end
-end
-
-def fun_l4_n682(x)
- if (x < 1)
- fun_l5_n205(x)
- else
- fun_l5_n693(x)
- end
-end
-
-def fun_l4_n683(x)
- if (x < 1)
- fun_l5_n971(x)
- else
- fun_l5_n656(x)
- end
-end
-
-def fun_l4_n684(x)
- if (x < 1)
- fun_l5_n147(x)
- else
- fun_l5_n314(x)
- end
-end
-
-def fun_l4_n685(x)
- if (x < 1)
- fun_l5_n347(x)
- else
- fun_l5_n281(x)
- end
-end
-
-def fun_l4_n686(x)
- if (x < 1)
- fun_l5_n259(x)
- else
- fun_l5_n395(x)
- end
-end
-
-def fun_l4_n687(x)
- if (x < 1)
- fun_l5_n899(x)
- else
- fun_l5_n319(x)
- end
-end
-
-def fun_l4_n688(x)
- if (x < 1)
- fun_l5_n293(x)
- else
- fun_l5_n831(x)
- end
-end
-
-def fun_l4_n689(x)
- if (x < 1)
- fun_l5_n88(x)
- else
- fun_l5_n938(x)
- end
-end
-
-def fun_l4_n690(x)
- if (x < 1)
- fun_l5_n72(x)
- else
- fun_l5_n172(x)
- end
-end
-
-def fun_l4_n691(x)
- if (x < 1)
- fun_l5_n330(x)
- else
- fun_l5_n70(x)
- end
-end
-
-def fun_l4_n692(x)
- if (x < 1)
- fun_l5_n901(x)
- else
- fun_l5_n984(x)
- end
-end
-
-def fun_l4_n693(x)
- if (x < 1)
- fun_l5_n528(x)
- else
- fun_l5_n659(x)
- end
-end
-
-def fun_l4_n694(x)
- if (x < 1)
- fun_l5_n522(x)
- else
- fun_l5_n219(x)
- end
-end
-
-def fun_l4_n695(x)
- if (x < 1)
- fun_l5_n568(x)
- else
- fun_l5_n997(x)
- end
-end
-
-def fun_l4_n696(x)
- if (x < 1)
- fun_l5_n248(x)
- else
- fun_l5_n508(x)
- end
-end
-
-def fun_l4_n697(x)
- if (x < 1)
- fun_l5_n71(x)
- else
- fun_l5_n590(x)
- end
-end
-
-def fun_l4_n698(x)
- if (x < 1)
- fun_l5_n398(x)
- else
- fun_l5_n125(x)
- end
-end
-
-def fun_l4_n699(x)
- if (x < 1)
- fun_l5_n405(x)
- else
- fun_l5_n129(x)
- end
-end
-
-def fun_l4_n700(x)
- if (x < 1)
- fun_l5_n818(x)
- else
- fun_l5_n792(x)
- end
-end
-
-def fun_l4_n701(x)
- if (x < 1)
- fun_l5_n530(x)
- else
- fun_l5_n849(x)
- end
-end
-
-def fun_l4_n702(x)
- if (x < 1)
- fun_l5_n640(x)
- else
- fun_l5_n558(x)
- end
-end
-
-def fun_l4_n703(x)
- if (x < 1)
- fun_l5_n717(x)
- else
- fun_l5_n113(x)
- end
-end
-
-def fun_l4_n704(x)
- if (x < 1)
- fun_l5_n139(x)
- else
- fun_l5_n743(x)
- end
-end
-
-def fun_l4_n705(x)
- if (x < 1)
- fun_l5_n720(x)
- else
- fun_l5_n713(x)
- end
-end
-
-def fun_l4_n706(x)
- if (x < 1)
- fun_l5_n774(x)
- else
- fun_l5_n90(x)
- end
-end
-
-def fun_l4_n707(x)
- if (x < 1)
- fun_l5_n579(x)
- else
- fun_l5_n692(x)
- end
-end
-
-def fun_l4_n708(x)
- if (x < 1)
- fun_l5_n448(x)
- else
- fun_l5_n146(x)
- end
-end
-
-def fun_l4_n709(x)
- if (x < 1)
- fun_l5_n249(x)
- else
- fun_l5_n163(x)
- end
-end
-
-def fun_l4_n710(x)
- if (x < 1)
- fun_l5_n694(x)
- else
- fun_l5_n532(x)
- end
-end
-
-def fun_l4_n711(x)
- if (x < 1)
- fun_l5_n739(x)
- else
- fun_l5_n424(x)
- end
-end
-
-def fun_l4_n712(x)
- if (x < 1)
- fun_l5_n700(x)
- else
- fun_l5_n761(x)
- end
-end
-
-def fun_l4_n713(x)
- if (x < 1)
- fun_l5_n403(x)
- else
- fun_l5_n941(x)
- end
-end
-
-def fun_l4_n714(x)
- if (x < 1)
- fun_l5_n724(x)
- else
- fun_l5_n863(x)
- end
-end
-
-def fun_l4_n715(x)
- if (x < 1)
- fun_l5_n392(x)
- else
- fun_l5_n617(x)
- end
-end
-
-def fun_l4_n716(x)
- if (x < 1)
- fun_l5_n76(x)
- else
- fun_l5_n896(x)
- end
-end
-
-def fun_l4_n717(x)
- if (x < 1)
- fun_l5_n355(x)
- else
- fun_l5_n533(x)
- end
-end
-
-def fun_l4_n718(x)
- if (x < 1)
- fun_l5_n225(x)
- else
- fun_l5_n273(x)
- end
-end
-
-def fun_l4_n719(x)
- if (x < 1)
- fun_l5_n828(x)
- else
- fun_l5_n163(x)
- end
-end
-
-def fun_l4_n720(x)
- if (x < 1)
- fun_l5_n309(x)
- else
- fun_l5_n702(x)
- end
-end
-
-def fun_l4_n721(x)
- if (x < 1)
- fun_l5_n959(x)
- else
- fun_l5_n370(x)
- end
-end
-
-def fun_l4_n722(x)
- if (x < 1)
- fun_l5_n640(x)
- else
- fun_l5_n96(x)
- end
-end
-
-def fun_l4_n723(x)
- if (x < 1)
- fun_l5_n590(x)
- else
- fun_l5_n332(x)
- end
-end
-
-def fun_l4_n724(x)
- if (x < 1)
- fun_l5_n14(x)
- else
- fun_l5_n161(x)
- end
-end
-
-def fun_l4_n725(x)
- if (x < 1)
- fun_l5_n871(x)
- else
- fun_l5_n643(x)
- end
-end
-
-def fun_l4_n726(x)
- if (x < 1)
- fun_l5_n885(x)
- else
- fun_l5_n142(x)
- end
-end
-
-def fun_l4_n727(x)
- if (x < 1)
- fun_l5_n994(x)
- else
- fun_l5_n823(x)
- end
-end
-
-def fun_l4_n728(x)
- if (x < 1)
- fun_l5_n825(x)
- else
- fun_l5_n315(x)
- end
-end
-
-def fun_l4_n729(x)
- if (x < 1)
- fun_l5_n312(x)
- else
- fun_l5_n28(x)
- end
-end
-
-def fun_l4_n730(x)
- if (x < 1)
- fun_l5_n545(x)
- else
- fun_l5_n87(x)
- end
-end
-
-def fun_l4_n731(x)
- if (x < 1)
- fun_l5_n604(x)
- else
- fun_l5_n999(x)
- end
-end
-
-def fun_l4_n732(x)
- if (x < 1)
- fun_l5_n21(x)
- else
- fun_l5_n170(x)
- end
-end
-
-def fun_l4_n733(x)
- if (x < 1)
- fun_l5_n662(x)
- else
- fun_l5_n407(x)
- end
-end
-
-def fun_l4_n734(x)
- if (x < 1)
- fun_l5_n808(x)
- else
- fun_l5_n653(x)
- end
-end
-
-def fun_l4_n735(x)
- if (x < 1)
- fun_l5_n665(x)
- else
- fun_l5_n925(x)
- end
-end
-
-def fun_l4_n736(x)
- if (x < 1)
- fun_l5_n186(x)
- else
- fun_l5_n817(x)
- end
-end
-
-def fun_l4_n737(x)
- if (x < 1)
- fun_l5_n360(x)
- else
- fun_l5_n527(x)
- end
-end
-
-def fun_l4_n738(x)
- if (x < 1)
- fun_l5_n278(x)
- else
- fun_l5_n759(x)
- end
-end
-
-def fun_l4_n739(x)
- if (x < 1)
- fun_l5_n710(x)
- else
- fun_l5_n909(x)
- end
-end
-
-def fun_l4_n740(x)
- if (x < 1)
- fun_l5_n770(x)
- else
- fun_l5_n382(x)
- end
-end
-
-def fun_l4_n741(x)
- if (x < 1)
- fun_l5_n969(x)
- else
- fun_l5_n583(x)
- end
-end
-
-def fun_l4_n742(x)
- if (x < 1)
- fun_l5_n653(x)
- else
- fun_l5_n258(x)
- end
-end
-
-def fun_l4_n743(x)
- if (x < 1)
- fun_l5_n966(x)
- else
- fun_l5_n705(x)
- end
-end
-
-def fun_l4_n744(x)
- if (x < 1)
- fun_l5_n454(x)
- else
- fun_l5_n748(x)
- end
-end
-
-def fun_l4_n745(x)
- if (x < 1)
- fun_l5_n595(x)
- else
- fun_l5_n865(x)
- end
-end
-
-def fun_l4_n746(x)
- if (x < 1)
- fun_l5_n593(x)
- else
- fun_l5_n615(x)
- end
-end
-
-def fun_l4_n747(x)
- if (x < 1)
- fun_l5_n638(x)
- else
- fun_l5_n651(x)
- end
-end
-
-def fun_l4_n748(x)
- if (x < 1)
- fun_l5_n331(x)
- else
- fun_l5_n847(x)
- end
-end
-
-def fun_l4_n749(x)
- if (x < 1)
- fun_l5_n59(x)
- else
- fun_l5_n805(x)
- end
-end
-
-def fun_l4_n750(x)
- if (x < 1)
- fun_l5_n269(x)
- else
- fun_l5_n904(x)
- end
-end
-
-def fun_l4_n751(x)
- if (x < 1)
- fun_l5_n292(x)
- else
- fun_l5_n459(x)
- end
-end
-
-def fun_l4_n752(x)
- if (x < 1)
- fun_l5_n581(x)
- else
- fun_l5_n353(x)
- end
-end
-
-def fun_l4_n753(x)
- if (x < 1)
- fun_l5_n785(x)
- else
- fun_l5_n745(x)
- end
-end
-
-def fun_l4_n754(x)
- if (x < 1)
- fun_l5_n317(x)
- else
- fun_l5_n604(x)
- end
-end
-
-def fun_l4_n755(x)
- if (x < 1)
- fun_l5_n208(x)
- else
- fun_l5_n318(x)
- end
-end
-
-def fun_l4_n756(x)
- if (x < 1)
- fun_l5_n986(x)
- else
- fun_l5_n83(x)
- end
-end
-
-def fun_l4_n757(x)
- if (x < 1)
- fun_l5_n946(x)
- else
- fun_l5_n314(x)
- end
-end
-
-def fun_l4_n758(x)
- if (x < 1)
- fun_l5_n571(x)
- else
- fun_l5_n919(x)
- end
-end
-
-def fun_l4_n759(x)
- if (x < 1)
- fun_l5_n129(x)
- else
- fun_l5_n191(x)
- end
-end
-
-def fun_l4_n760(x)
- if (x < 1)
- fun_l5_n838(x)
- else
- fun_l5_n29(x)
- end
-end
-
-def fun_l4_n761(x)
- if (x < 1)
- fun_l5_n250(x)
- else
- fun_l5_n892(x)
- end
-end
-
-def fun_l4_n762(x)
- if (x < 1)
- fun_l5_n588(x)
- else
- fun_l5_n59(x)
- end
-end
-
-def fun_l4_n763(x)
- if (x < 1)
- fun_l5_n831(x)
- else
- fun_l5_n668(x)
- end
-end
-
-def fun_l4_n764(x)
- if (x < 1)
- fun_l5_n337(x)
- else
- fun_l5_n514(x)
- end
-end
-
-def fun_l4_n765(x)
- if (x < 1)
- fun_l5_n56(x)
- else
- fun_l5_n718(x)
- end
-end
-
-def fun_l4_n766(x)
- if (x < 1)
- fun_l5_n189(x)
- else
- fun_l5_n103(x)
- end
-end
-
-def fun_l4_n767(x)
- if (x < 1)
- fun_l5_n395(x)
- else
- fun_l5_n313(x)
- end
-end
-
-def fun_l4_n768(x)
- if (x < 1)
- fun_l5_n388(x)
- else
- fun_l5_n757(x)
- end
-end
-
-def fun_l4_n769(x)
- if (x < 1)
- fun_l5_n933(x)
- else
- fun_l5_n979(x)
- end
-end
-
-def fun_l4_n770(x)
- if (x < 1)
- fun_l5_n765(x)
- else
- fun_l5_n472(x)
- end
-end
-
-def fun_l4_n771(x)
- if (x < 1)
- fun_l5_n381(x)
- else
- fun_l5_n527(x)
- end
-end
-
-def fun_l4_n772(x)
- if (x < 1)
- fun_l5_n314(x)
- else
- fun_l5_n990(x)
- end
-end
-
-def fun_l4_n773(x)
- if (x < 1)
- fun_l5_n457(x)
- else
- fun_l5_n413(x)
- end
-end
-
-def fun_l4_n774(x)
- if (x < 1)
- fun_l5_n245(x)
- else
- fun_l5_n85(x)
- end
-end
-
-def fun_l4_n775(x)
- if (x < 1)
- fun_l5_n432(x)
- else
- fun_l5_n987(x)
- end
-end
-
-def fun_l4_n776(x)
- if (x < 1)
- fun_l5_n588(x)
- else
- fun_l5_n352(x)
- end
-end
-
-def fun_l4_n777(x)
- if (x < 1)
- fun_l5_n414(x)
- else
- fun_l5_n586(x)
- end
-end
-
-def fun_l4_n778(x)
- if (x < 1)
- fun_l5_n290(x)
- else
- fun_l5_n776(x)
- end
-end
-
-def fun_l4_n779(x)
- if (x < 1)
- fun_l5_n324(x)
- else
- fun_l5_n918(x)
- end
-end
-
-def fun_l4_n780(x)
- if (x < 1)
- fun_l5_n928(x)
- else
- fun_l5_n107(x)
- end
-end
-
-def fun_l4_n781(x)
- if (x < 1)
- fun_l5_n244(x)
- else
- fun_l5_n434(x)
- end
-end
-
-def fun_l4_n782(x)
- if (x < 1)
- fun_l5_n828(x)
- else
- fun_l5_n141(x)
- end
-end
-
-def fun_l4_n783(x)
- if (x < 1)
- fun_l5_n634(x)
- else
- fun_l5_n206(x)
- end
-end
-
-def fun_l4_n784(x)
- if (x < 1)
- fun_l5_n387(x)
- else
- fun_l5_n57(x)
- end
-end
-
-def fun_l4_n785(x)
- if (x < 1)
- fun_l5_n731(x)
- else
- fun_l5_n670(x)
- end
-end
-
-def fun_l4_n786(x)
- if (x < 1)
- fun_l5_n173(x)
- else
- fun_l5_n657(x)
- end
-end
-
-def fun_l4_n787(x)
- if (x < 1)
- fun_l5_n661(x)
- else
- fun_l5_n286(x)
- end
-end
-
-def fun_l4_n788(x)
- if (x < 1)
- fun_l5_n364(x)
- else
- fun_l5_n520(x)
- end
-end
-
-def fun_l4_n789(x)
- if (x < 1)
- fun_l5_n545(x)
- else
- fun_l5_n417(x)
- end
-end
-
-def fun_l4_n790(x)
- if (x < 1)
- fun_l5_n270(x)
- else
- fun_l5_n550(x)
- end
-end
-
-def fun_l4_n791(x)
- if (x < 1)
- fun_l5_n873(x)
- else
- fun_l5_n321(x)
- end
-end
-
-def fun_l4_n792(x)
- if (x < 1)
- fun_l5_n243(x)
- else
- fun_l5_n406(x)
- end
-end
-
-def fun_l4_n793(x)
- if (x < 1)
- fun_l5_n229(x)
- else
- fun_l5_n400(x)
- end
-end
-
-def fun_l4_n794(x)
- if (x < 1)
- fun_l5_n670(x)
- else
- fun_l5_n535(x)
- end
-end
-
-def fun_l4_n795(x)
- if (x < 1)
- fun_l5_n911(x)
- else
- fun_l5_n786(x)
- end
-end
-
-def fun_l4_n796(x)
- if (x < 1)
- fun_l5_n247(x)
- else
- fun_l5_n775(x)
- end
-end
-
-def fun_l4_n797(x)
- if (x < 1)
- fun_l5_n944(x)
- else
- fun_l5_n14(x)
- end
-end
-
-def fun_l4_n798(x)
- if (x < 1)
- fun_l5_n57(x)
- else
- fun_l5_n644(x)
- end
-end
-
-def fun_l4_n799(x)
- if (x < 1)
- fun_l5_n583(x)
- else
- fun_l5_n599(x)
- end
-end
-
-def fun_l4_n800(x)
- if (x < 1)
- fun_l5_n685(x)
- else
- fun_l5_n366(x)
- end
-end
-
-def fun_l4_n801(x)
- if (x < 1)
- fun_l5_n671(x)
- else
- fun_l5_n386(x)
- end
-end
-
-def fun_l4_n802(x)
- if (x < 1)
- fun_l5_n19(x)
- else
- fun_l5_n403(x)
- end
-end
-
-def fun_l4_n803(x)
- if (x < 1)
- fun_l5_n952(x)
- else
- fun_l5_n237(x)
- end
-end
-
-def fun_l4_n804(x)
- if (x < 1)
- fun_l5_n929(x)
- else
- fun_l5_n737(x)
- end
-end
-
-def fun_l4_n805(x)
- if (x < 1)
- fun_l5_n197(x)
- else
- fun_l5_n322(x)
- end
-end
-
-def fun_l4_n806(x)
- if (x < 1)
- fun_l5_n966(x)
- else
- fun_l5_n531(x)
- end
-end
-
-def fun_l4_n807(x)
- if (x < 1)
- fun_l5_n928(x)
- else
- fun_l5_n802(x)
- end
-end
-
-def fun_l4_n808(x)
- if (x < 1)
- fun_l5_n34(x)
- else
- fun_l5_n107(x)
- end
-end
-
-def fun_l4_n809(x)
- if (x < 1)
- fun_l5_n615(x)
- else
- fun_l5_n628(x)
- end
-end
-
-def fun_l4_n810(x)
- if (x < 1)
- fun_l5_n187(x)
- else
- fun_l5_n424(x)
- end
-end
-
-def fun_l4_n811(x)
- if (x < 1)
- fun_l5_n189(x)
- else
- fun_l5_n639(x)
- end
-end
-
-def fun_l4_n812(x)
- if (x < 1)
- fun_l5_n177(x)
- else
- fun_l5_n580(x)
- end
-end
-
-def fun_l4_n813(x)
- if (x < 1)
- fun_l5_n699(x)
- else
- fun_l5_n595(x)
- end
-end
-
-def fun_l4_n814(x)
- if (x < 1)
- fun_l5_n44(x)
- else
- fun_l5_n966(x)
- end
-end
-
-def fun_l4_n815(x)
- if (x < 1)
- fun_l5_n883(x)
- else
- fun_l5_n580(x)
- end
-end
-
-def fun_l4_n816(x)
- if (x < 1)
- fun_l5_n306(x)
- else
- fun_l5_n564(x)
- end
-end
-
-def fun_l4_n817(x)
- if (x < 1)
- fun_l5_n337(x)
- else
- fun_l5_n912(x)
- end
-end
-
-def fun_l4_n818(x)
- if (x < 1)
- fun_l5_n36(x)
- else
- fun_l5_n164(x)
- end
-end
-
-def fun_l4_n819(x)
- if (x < 1)
- fun_l5_n987(x)
- else
- fun_l5_n38(x)
- end
-end
-
-def fun_l4_n820(x)
- if (x < 1)
- fun_l5_n656(x)
- else
- fun_l5_n647(x)
- end
-end
-
-def fun_l4_n821(x)
- if (x < 1)
- fun_l5_n364(x)
- else
- fun_l5_n838(x)
- end
-end
-
-def fun_l4_n822(x)
- if (x < 1)
- fun_l5_n301(x)
- else
- fun_l5_n850(x)
- end
-end
-
-def fun_l4_n823(x)
- if (x < 1)
- fun_l5_n191(x)
- else
- fun_l5_n812(x)
- end
-end
-
-def fun_l4_n824(x)
- if (x < 1)
- fun_l5_n148(x)
- else
- fun_l5_n332(x)
- end
-end
-
-def fun_l4_n825(x)
- if (x < 1)
- fun_l5_n315(x)
- else
- fun_l5_n763(x)
- end
-end
-
-def fun_l4_n826(x)
- if (x < 1)
- fun_l5_n612(x)
- else
- fun_l5_n993(x)
- end
-end
-
-def fun_l4_n827(x)
- if (x < 1)
- fun_l5_n229(x)
- else
- fun_l5_n388(x)
- end
-end
-
-def fun_l4_n828(x)
- if (x < 1)
- fun_l5_n131(x)
- else
- fun_l5_n283(x)
- end
-end
-
-def fun_l4_n829(x)
- if (x < 1)
- fun_l5_n59(x)
- else
- fun_l5_n280(x)
- end
-end
-
-def fun_l4_n830(x)
- if (x < 1)
- fun_l5_n993(x)
- else
- fun_l5_n160(x)
- end
-end
-
-def fun_l4_n831(x)
- if (x < 1)
- fun_l5_n394(x)
- else
- fun_l5_n528(x)
- end
-end
-
-def fun_l4_n832(x)
- if (x < 1)
- fun_l5_n376(x)
- else
- fun_l5_n201(x)
- end
-end
-
-def fun_l4_n833(x)
- if (x < 1)
- fun_l5_n890(x)
- else
- fun_l5_n867(x)
- end
-end
-
-def fun_l4_n834(x)
- if (x < 1)
- fun_l5_n320(x)
- else
- fun_l5_n237(x)
- end
-end
-
-def fun_l4_n835(x)
- if (x < 1)
- fun_l5_n771(x)
- else
- fun_l5_n83(x)
- end
-end
-
-def fun_l4_n836(x)
- if (x < 1)
- fun_l5_n751(x)
- else
- fun_l5_n2(x)
- end
-end
-
-def fun_l4_n837(x)
- if (x < 1)
- fun_l5_n825(x)
- else
- fun_l5_n930(x)
- end
-end
-
-def fun_l4_n838(x)
- if (x < 1)
- fun_l5_n968(x)
- else
- fun_l5_n136(x)
- end
-end
-
-def fun_l4_n839(x)
- if (x < 1)
- fun_l5_n529(x)
- else
- fun_l5_n626(x)
- end
-end
-
-def fun_l4_n840(x)
- if (x < 1)
- fun_l5_n228(x)
- else
- fun_l5_n915(x)
- end
-end
-
-def fun_l4_n841(x)
- if (x < 1)
- fun_l5_n270(x)
- else
- fun_l5_n813(x)
- end
-end
-
-def fun_l4_n842(x)
- if (x < 1)
- fun_l5_n392(x)
- else
- fun_l5_n60(x)
- end
-end
-
-def fun_l4_n843(x)
- if (x < 1)
- fun_l5_n470(x)
- else
- fun_l5_n699(x)
- end
-end
-
-def fun_l4_n844(x)
- if (x < 1)
- fun_l5_n68(x)
- else
- fun_l5_n163(x)
- end
-end
-
-def fun_l4_n845(x)
- if (x < 1)
- fun_l5_n469(x)
- else
- fun_l5_n472(x)
- end
-end
-
-def fun_l4_n846(x)
- if (x < 1)
- fun_l5_n640(x)
- else
- fun_l5_n311(x)
- end
-end
-
-def fun_l4_n847(x)
- if (x < 1)
- fun_l5_n968(x)
- else
- fun_l5_n414(x)
- end
-end
-
-def fun_l4_n848(x)
- if (x < 1)
- fun_l5_n111(x)
- else
- fun_l5_n340(x)
- end
-end
-
-def fun_l4_n849(x)
- if (x < 1)
- fun_l5_n906(x)
- else
- fun_l5_n278(x)
- end
-end
-
-def fun_l4_n850(x)
- if (x < 1)
- fun_l5_n353(x)
- else
- fun_l5_n590(x)
- end
-end
-
-def fun_l4_n851(x)
- if (x < 1)
- fun_l5_n218(x)
- else
- fun_l5_n341(x)
- end
-end
-
-def fun_l4_n852(x)
- if (x < 1)
- fun_l5_n527(x)
- else
- fun_l5_n273(x)
- end
-end
-
-def fun_l4_n853(x)
- if (x < 1)
- fun_l5_n589(x)
- else
- fun_l5_n417(x)
- end
-end
-
-def fun_l4_n854(x)
- if (x < 1)
- fun_l5_n411(x)
- else
- fun_l5_n848(x)
- end
-end
-
-def fun_l4_n855(x)
- if (x < 1)
- fun_l5_n607(x)
- else
- fun_l5_n65(x)
- end
-end
-
-def fun_l4_n856(x)
- if (x < 1)
- fun_l5_n240(x)
- else
- fun_l5_n24(x)
- end
-end
-
-def fun_l4_n857(x)
- if (x < 1)
- fun_l5_n165(x)
- else
- fun_l5_n362(x)
- end
-end
-
-def fun_l4_n858(x)
- if (x < 1)
- fun_l5_n559(x)
- else
- fun_l5_n253(x)
- end
-end
-
-def fun_l4_n859(x)
- if (x < 1)
- fun_l5_n834(x)
- else
- fun_l5_n217(x)
- end
-end
-
-def fun_l4_n860(x)
- if (x < 1)
- fun_l5_n891(x)
- else
- fun_l5_n369(x)
- end
-end
-
-def fun_l4_n861(x)
- if (x < 1)
- fun_l5_n676(x)
- else
- fun_l5_n614(x)
- end
-end
-
-def fun_l4_n862(x)
- if (x < 1)
- fun_l5_n527(x)
- else
- fun_l5_n318(x)
- end
-end
-
-def fun_l4_n863(x)
- if (x < 1)
- fun_l5_n991(x)
- else
- fun_l5_n997(x)
- end
-end
-
-def fun_l4_n864(x)
- if (x < 1)
- fun_l5_n842(x)
- else
- fun_l5_n370(x)
- end
-end
-
-def fun_l4_n865(x)
- if (x < 1)
- fun_l5_n623(x)
- else
- fun_l5_n741(x)
- end
-end
-
-def fun_l4_n866(x)
- if (x < 1)
- fun_l5_n58(x)
- else
- fun_l5_n953(x)
- end
-end
-
-def fun_l4_n867(x)
- if (x < 1)
- fun_l5_n269(x)
- else
- fun_l5_n341(x)
- end
-end
-
-def fun_l4_n868(x)
- if (x < 1)
- fun_l5_n814(x)
- else
- fun_l5_n849(x)
- end
-end
-
-def fun_l4_n869(x)
- if (x < 1)
- fun_l5_n163(x)
- else
- fun_l5_n246(x)
- end
-end
-
-def fun_l4_n870(x)
- if (x < 1)
- fun_l5_n739(x)
- else
- fun_l5_n524(x)
- end
-end
-
-def fun_l4_n871(x)
- if (x < 1)
- fun_l5_n589(x)
- else
- fun_l5_n592(x)
- end
-end
-
-def fun_l4_n872(x)
- if (x < 1)
- fun_l5_n922(x)
- else
- fun_l5_n401(x)
- end
-end
-
-def fun_l4_n873(x)
- if (x < 1)
- fun_l5_n600(x)
- else
- fun_l5_n184(x)
- end
-end
-
-def fun_l4_n874(x)
- if (x < 1)
- fun_l5_n424(x)
- else
- fun_l5_n627(x)
- end
-end
-
-def fun_l4_n875(x)
- if (x < 1)
- fun_l5_n48(x)
- else
- fun_l5_n127(x)
- end
-end
-
-def fun_l4_n876(x)
- if (x < 1)
- fun_l5_n687(x)
- else
- fun_l5_n451(x)
- end
-end
-
-def fun_l4_n877(x)
- if (x < 1)
- fun_l5_n849(x)
- else
- fun_l5_n480(x)
- end
-end
-
-def fun_l4_n878(x)
- if (x < 1)
- fun_l5_n801(x)
- else
- fun_l5_n60(x)
- end
-end
-
-def fun_l4_n879(x)
- if (x < 1)
- fun_l5_n964(x)
- else
- fun_l5_n790(x)
- end
-end
-
-def fun_l4_n880(x)
- if (x < 1)
- fun_l5_n483(x)
- else
- fun_l5_n817(x)
- end
-end
-
-def fun_l4_n881(x)
- if (x < 1)
- fun_l5_n91(x)
- else
- fun_l5_n776(x)
- end
-end
-
-def fun_l4_n882(x)
- if (x < 1)
- fun_l5_n8(x)
- else
- fun_l5_n726(x)
- end
-end
-
-def fun_l4_n883(x)
- if (x < 1)
- fun_l5_n63(x)
- else
- fun_l5_n570(x)
- end
-end
-
-def fun_l4_n884(x)
- if (x < 1)
- fun_l5_n691(x)
- else
- fun_l5_n117(x)
- end
-end
-
-def fun_l4_n885(x)
- if (x < 1)
- fun_l5_n262(x)
- else
- fun_l5_n38(x)
- end
-end
-
-def fun_l4_n886(x)
- if (x < 1)
- fun_l5_n678(x)
- else
- fun_l5_n108(x)
- end
-end
-
-def fun_l4_n887(x)
- if (x < 1)
- fun_l5_n775(x)
- else
- fun_l5_n751(x)
- end
-end
-
-def fun_l4_n888(x)
- if (x < 1)
- fun_l5_n917(x)
- else
- fun_l5_n769(x)
- end
-end
-
-def fun_l4_n889(x)
- if (x < 1)
- fun_l5_n191(x)
- else
- fun_l5_n662(x)
- end
-end
-
-def fun_l4_n890(x)
- if (x < 1)
- fun_l5_n34(x)
- else
- fun_l5_n806(x)
- end
-end
-
-def fun_l4_n891(x)
- if (x < 1)
- fun_l5_n705(x)
- else
- fun_l5_n198(x)
- end
-end
-
-def fun_l4_n892(x)
- if (x < 1)
- fun_l5_n647(x)
- else
- fun_l5_n0(x)
- end
-end
-
-def fun_l4_n893(x)
- if (x < 1)
- fun_l5_n336(x)
- else
- fun_l5_n795(x)
- end
-end
-
-def fun_l4_n894(x)
- if (x < 1)
- fun_l5_n984(x)
- else
- fun_l5_n751(x)
- end
-end
-
-def fun_l4_n895(x)
- if (x < 1)
- fun_l5_n373(x)
- else
- fun_l5_n12(x)
- end
-end
-
-def fun_l4_n896(x)
- if (x < 1)
- fun_l5_n672(x)
- else
- fun_l5_n17(x)
- end
-end
-
-def fun_l4_n897(x)
- if (x < 1)
- fun_l5_n67(x)
- else
- fun_l5_n183(x)
- end
-end
-
-def fun_l4_n898(x)
- if (x < 1)
- fun_l5_n557(x)
- else
- fun_l5_n43(x)
- end
-end
-
-def fun_l4_n899(x)
- if (x < 1)
- fun_l5_n210(x)
- else
- fun_l5_n904(x)
- end
-end
-
-def fun_l4_n900(x)
- if (x < 1)
- fun_l5_n665(x)
- else
- fun_l5_n173(x)
- end
-end
-
-def fun_l4_n901(x)
- if (x < 1)
- fun_l5_n268(x)
- else
- fun_l5_n907(x)
- end
-end
-
-def fun_l4_n902(x)
- if (x < 1)
- fun_l5_n19(x)
- else
- fun_l5_n145(x)
- end
-end
-
-def fun_l4_n903(x)
- if (x < 1)
- fun_l5_n158(x)
- else
- fun_l5_n261(x)
- end
-end
-
-def fun_l4_n904(x)
- if (x < 1)
- fun_l5_n677(x)
- else
- fun_l5_n880(x)
- end
-end
-
-def fun_l4_n905(x)
- if (x < 1)
- fun_l5_n262(x)
- else
- fun_l5_n790(x)
- end
-end
-
-def fun_l4_n906(x)
- if (x < 1)
- fun_l5_n775(x)
- else
- fun_l5_n785(x)
- end
-end
-
-def fun_l4_n907(x)
- if (x < 1)
- fun_l5_n629(x)
- else
- fun_l5_n312(x)
- end
-end
-
-def fun_l4_n908(x)
- if (x < 1)
- fun_l5_n84(x)
- else
- fun_l5_n605(x)
- end
-end
-
-def fun_l4_n909(x)
- if (x < 1)
- fun_l5_n346(x)
- else
- fun_l5_n245(x)
- end
-end
-
-def fun_l4_n910(x)
- if (x < 1)
- fun_l5_n768(x)
- else
- fun_l5_n47(x)
- end
-end
-
-def fun_l4_n911(x)
- if (x < 1)
- fun_l5_n48(x)
- else
- fun_l5_n406(x)
- end
-end
-
-def fun_l4_n912(x)
- if (x < 1)
- fun_l5_n493(x)
- else
- fun_l5_n608(x)
- end
-end
-
-def fun_l4_n913(x)
- if (x < 1)
- fun_l5_n456(x)
- else
- fun_l5_n176(x)
- end
-end
-
-def fun_l4_n914(x)
- if (x < 1)
- fun_l5_n201(x)
- else
- fun_l5_n233(x)
- end
-end
-
-def fun_l4_n915(x)
- if (x < 1)
- fun_l5_n910(x)
- else
- fun_l5_n790(x)
- end
-end
-
-def fun_l4_n916(x)
- if (x < 1)
- fun_l5_n734(x)
- else
- fun_l5_n685(x)
- end
-end
-
-def fun_l4_n917(x)
- if (x < 1)
- fun_l5_n132(x)
- else
- fun_l5_n112(x)
- end
-end
-
-def fun_l4_n918(x)
- if (x < 1)
- fun_l5_n897(x)
- else
- fun_l5_n196(x)
- end
-end
-
-def fun_l4_n919(x)
- if (x < 1)
- fun_l5_n395(x)
- else
- fun_l5_n186(x)
- end
-end
-
-def fun_l4_n920(x)
- if (x < 1)
- fun_l5_n19(x)
- else
- fun_l5_n810(x)
- end
-end
-
-def fun_l4_n921(x)
- if (x < 1)
- fun_l5_n546(x)
- else
- fun_l5_n34(x)
- end
-end
-
-def fun_l4_n922(x)
- if (x < 1)
- fun_l5_n863(x)
- else
- fun_l5_n928(x)
- end
-end
-
-def fun_l4_n923(x)
- if (x < 1)
- fun_l5_n485(x)
- else
- fun_l5_n182(x)
- end
-end
-
-def fun_l4_n924(x)
- if (x < 1)
- fun_l5_n303(x)
- else
- fun_l5_n17(x)
- end
-end
-
-def fun_l4_n925(x)
- if (x < 1)
- fun_l5_n78(x)
- else
- fun_l5_n816(x)
- end
-end
-
-def fun_l4_n926(x)
- if (x < 1)
- fun_l5_n797(x)
- else
- fun_l5_n761(x)
- end
-end
-
-def fun_l4_n927(x)
- if (x < 1)
- fun_l5_n975(x)
- else
- fun_l5_n220(x)
- end
-end
-
-def fun_l4_n928(x)
- if (x < 1)
- fun_l5_n213(x)
- else
- fun_l5_n815(x)
- end
-end
-
-def fun_l4_n929(x)
- if (x < 1)
- fun_l5_n280(x)
- else
- fun_l5_n551(x)
- end
-end
-
-def fun_l4_n930(x)
- if (x < 1)
- fun_l5_n631(x)
- else
- fun_l5_n629(x)
- end
-end
-
-def fun_l4_n931(x)
- if (x < 1)
- fun_l5_n60(x)
- else
- fun_l5_n332(x)
- end
-end
-
-def fun_l4_n932(x)
- if (x < 1)
- fun_l5_n336(x)
- else
- fun_l5_n733(x)
- end
-end
-
-def fun_l4_n933(x)
- if (x < 1)
- fun_l5_n94(x)
- else
- fun_l5_n48(x)
- end
-end
-
-def fun_l4_n934(x)
- if (x < 1)
- fun_l5_n527(x)
- else
- fun_l5_n108(x)
- end
-end
-
-def fun_l4_n935(x)
- if (x < 1)
- fun_l5_n994(x)
- else
- fun_l5_n95(x)
- end
-end
-
-def fun_l4_n936(x)
- if (x < 1)
- fun_l5_n631(x)
- else
- fun_l5_n310(x)
- end
-end
-
-def fun_l4_n937(x)
- if (x < 1)
- fun_l5_n851(x)
- else
- fun_l5_n380(x)
- end
-end
-
-def fun_l4_n938(x)
- if (x < 1)
- fun_l5_n256(x)
- else
- fun_l5_n231(x)
- end
-end
-
-def fun_l4_n939(x)
- if (x < 1)
- fun_l5_n686(x)
- else
- fun_l5_n557(x)
- end
-end
-
-def fun_l4_n940(x)
- if (x < 1)
- fun_l5_n311(x)
- else
- fun_l5_n611(x)
- end
-end
-
-def fun_l4_n941(x)
- if (x < 1)
- fun_l5_n770(x)
- else
- fun_l5_n306(x)
- end
-end
-
-def fun_l4_n942(x)
- if (x < 1)
- fun_l5_n649(x)
- else
- fun_l5_n60(x)
- end
-end
-
-def fun_l4_n943(x)
- if (x < 1)
- fun_l5_n935(x)
- else
- fun_l5_n991(x)
- end
-end
-
-def fun_l4_n944(x)
- if (x < 1)
- fun_l5_n851(x)
- else
- fun_l5_n131(x)
- end
-end
-
-def fun_l4_n945(x)
- if (x < 1)
- fun_l5_n422(x)
- else
- fun_l5_n309(x)
- end
-end
-
-def fun_l4_n946(x)
- if (x < 1)
- fun_l5_n906(x)
- else
- fun_l5_n798(x)
- end
-end
-
-def fun_l4_n947(x)
- if (x < 1)
- fun_l5_n817(x)
- else
- fun_l5_n122(x)
- end
-end
-
-def fun_l4_n948(x)
- if (x < 1)
- fun_l5_n233(x)
- else
- fun_l5_n600(x)
- end
-end
-
-def fun_l4_n949(x)
- if (x < 1)
- fun_l5_n908(x)
- else
- fun_l5_n332(x)
- end
-end
-
-def fun_l4_n950(x)
- if (x < 1)
- fun_l5_n71(x)
- else
- fun_l5_n893(x)
- end
-end
-
-def fun_l4_n951(x)
- if (x < 1)
- fun_l5_n281(x)
- else
- fun_l5_n281(x)
- end
-end
-
-def fun_l4_n952(x)
- if (x < 1)
- fun_l5_n312(x)
- else
- fun_l5_n164(x)
- end
-end
-
-def fun_l4_n953(x)
- if (x < 1)
- fun_l5_n292(x)
- else
- fun_l5_n993(x)
- end
-end
-
-def fun_l4_n954(x)
- if (x < 1)
- fun_l5_n271(x)
- else
- fun_l5_n635(x)
- end
-end
-
-def fun_l4_n955(x)
- if (x < 1)
- fun_l5_n10(x)
- else
- fun_l5_n202(x)
- end
-end
-
-def fun_l4_n956(x)
- if (x < 1)
- fun_l5_n574(x)
- else
- fun_l5_n29(x)
- end
-end
-
-def fun_l4_n957(x)
- if (x < 1)
- fun_l5_n154(x)
- else
- fun_l5_n96(x)
- end
-end
-
-def fun_l4_n958(x)
- if (x < 1)
- fun_l5_n287(x)
- else
- fun_l5_n509(x)
- end
-end
-
-def fun_l4_n959(x)
- if (x < 1)
- fun_l5_n400(x)
- else
- fun_l5_n195(x)
- end
-end
-
-def fun_l4_n960(x)
- if (x < 1)
- fun_l5_n94(x)
- else
- fun_l5_n165(x)
- end
-end
-
-def fun_l4_n961(x)
- if (x < 1)
- fun_l5_n276(x)
- else
- fun_l5_n935(x)
- end
-end
-
-def fun_l4_n962(x)
- if (x < 1)
- fun_l5_n504(x)
- else
- fun_l5_n480(x)
- end
-end
-
-def fun_l4_n963(x)
- if (x < 1)
- fun_l5_n152(x)
- else
- fun_l5_n397(x)
- end
-end
-
-def fun_l4_n964(x)
- if (x < 1)
- fun_l5_n303(x)
- else
- fun_l5_n481(x)
- end
-end
-
-def fun_l4_n965(x)
- if (x < 1)
- fun_l5_n882(x)
- else
- fun_l5_n116(x)
- end
-end
-
-def fun_l4_n966(x)
- if (x < 1)
- fun_l5_n329(x)
- else
- fun_l5_n484(x)
- end
-end
-
-def fun_l4_n967(x)
- if (x < 1)
- fun_l5_n369(x)
- else
- fun_l5_n680(x)
- end
-end
-
-def fun_l4_n968(x)
- if (x < 1)
- fun_l5_n30(x)
- else
- fun_l5_n653(x)
- end
-end
-
-def fun_l4_n969(x)
- if (x < 1)
- fun_l5_n292(x)
- else
- fun_l5_n793(x)
- end
-end
-
-def fun_l4_n970(x)
- if (x < 1)
- fun_l5_n796(x)
- else
- fun_l5_n387(x)
- end
-end
-
-def fun_l4_n971(x)
- if (x < 1)
- fun_l5_n735(x)
- else
- fun_l5_n985(x)
- end
-end
-
-def fun_l4_n972(x)
- if (x < 1)
- fun_l5_n925(x)
- else
- fun_l5_n689(x)
- end
-end
-
-def fun_l4_n973(x)
- if (x < 1)
- fun_l5_n154(x)
- else
- fun_l5_n998(x)
- end
-end
-
-def fun_l4_n974(x)
- if (x < 1)
- fun_l5_n708(x)
- else
- fun_l5_n253(x)
- end
-end
-
-def fun_l4_n975(x)
- if (x < 1)
- fun_l5_n716(x)
- else
- fun_l5_n958(x)
- end
-end
-
-def fun_l4_n976(x)
- if (x < 1)
- fun_l5_n488(x)
- else
- fun_l5_n299(x)
- end
-end
-
-def fun_l4_n977(x)
- if (x < 1)
- fun_l5_n872(x)
- else
- fun_l5_n276(x)
- end
-end
-
-def fun_l4_n978(x)
- if (x < 1)
- fun_l5_n219(x)
- else
- fun_l5_n76(x)
- end
-end
-
-def fun_l4_n979(x)
- if (x < 1)
- fun_l5_n937(x)
- else
- fun_l5_n988(x)
- end
-end
-
-def fun_l4_n980(x)
- if (x < 1)
- fun_l5_n681(x)
- else
- fun_l5_n264(x)
- end
-end
-
-def fun_l4_n981(x)
- if (x < 1)
- fun_l5_n630(x)
- else
- fun_l5_n18(x)
- end
-end
-
-def fun_l4_n982(x)
- if (x < 1)
- fun_l5_n910(x)
- else
- fun_l5_n97(x)
- end
-end
-
-def fun_l4_n983(x)
- if (x < 1)
- fun_l5_n551(x)
- else
- fun_l5_n429(x)
- end
-end
-
-def fun_l4_n984(x)
- if (x < 1)
- fun_l5_n304(x)
- else
- fun_l5_n192(x)
- end
-end
-
-def fun_l4_n985(x)
- if (x < 1)
- fun_l5_n696(x)
- else
- fun_l5_n124(x)
- end
-end
-
-def fun_l4_n986(x)
- if (x < 1)
- fun_l5_n603(x)
- else
- fun_l5_n967(x)
- end
-end
-
-def fun_l4_n987(x)
- if (x < 1)
- fun_l5_n317(x)
- else
- fun_l5_n785(x)
- end
-end
-
-def fun_l4_n988(x)
- if (x < 1)
- fun_l5_n762(x)
- else
- fun_l5_n999(x)
- end
-end
-
-def fun_l4_n989(x)
- if (x < 1)
- fun_l5_n61(x)
- else
- fun_l5_n474(x)
- end
-end
-
-def fun_l4_n990(x)
- if (x < 1)
- fun_l5_n465(x)
- else
- fun_l5_n878(x)
- end
-end
-
-def fun_l4_n991(x)
- if (x < 1)
- fun_l5_n907(x)
- else
- fun_l5_n259(x)
- end
-end
-
-def fun_l4_n992(x)
- if (x < 1)
- fun_l5_n594(x)
- else
- fun_l5_n378(x)
- end
-end
-
-def fun_l4_n993(x)
- if (x < 1)
- fun_l5_n202(x)
- else
- fun_l5_n490(x)
- end
-end
-
-def fun_l4_n994(x)
- if (x < 1)
- fun_l5_n105(x)
- else
- fun_l5_n675(x)
- end
-end
-
-def fun_l4_n995(x)
- if (x < 1)
- fun_l5_n99(x)
- else
- fun_l5_n21(x)
- end
-end
-
-def fun_l4_n996(x)
- if (x < 1)
- fun_l5_n831(x)
- else
- fun_l5_n692(x)
- end
-end
-
-def fun_l4_n997(x)
- if (x < 1)
- fun_l5_n186(x)
- else
- fun_l5_n427(x)
- end
-end
-
-def fun_l4_n998(x)
- if (x < 1)
- fun_l5_n597(x)
- else
- fun_l5_n978(x)
- end
-end
-
-def fun_l4_n999(x)
- if (x < 1)
- fun_l5_n537(x)
- else
- fun_l5_n952(x)
- end
-end
-
-def fun_l5_n0(x)
- if (x < 1)
- fun_l6_n104(x)
- else
- fun_l6_n249(x)
- end
-end
-
-def fun_l5_n1(x)
- if (x < 1)
- fun_l6_n260(x)
- else
- fun_l6_n782(x)
- end
-end
-
-def fun_l5_n2(x)
- if (x < 1)
- fun_l6_n974(x)
- else
- fun_l6_n301(x)
- end
-end
-
-def fun_l5_n3(x)
- if (x < 1)
- fun_l6_n883(x)
- else
- fun_l6_n149(x)
- end
-end
-
-def fun_l5_n4(x)
- if (x < 1)
- fun_l6_n134(x)
- else
- fun_l6_n111(x)
- end
-end
-
-def fun_l5_n5(x)
- if (x < 1)
- fun_l6_n573(x)
- else
- fun_l6_n273(x)
- end
-end
-
-def fun_l5_n6(x)
- if (x < 1)
- fun_l6_n221(x)
- else
- fun_l6_n843(x)
- end
-end
-
-def fun_l5_n7(x)
- if (x < 1)
- fun_l6_n572(x)
- else
- fun_l6_n435(x)
- end
-end
-
-def fun_l5_n8(x)
- if (x < 1)
- fun_l6_n43(x)
- else
- fun_l6_n598(x)
- end
-end
-
-def fun_l5_n9(x)
- if (x < 1)
- fun_l6_n352(x)
- else
- fun_l6_n894(x)
- end
-end
-
-def fun_l5_n10(x)
- if (x < 1)
- fun_l6_n161(x)
- else
- fun_l6_n654(x)
- end
-end
-
-def fun_l5_n11(x)
- if (x < 1)
- fun_l6_n432(x)
- else
- fun_l6_n825(x)
- end
-end
-
-def fun_l5_n12(x)
- if (x < 1)
- fun_l6_n863(x)
- else
- fun_l6_n940(x)
- end
-end
-
-def fun_l5_n13(x)
- if (x < 1)
- fun_l6_n478(x)
- else
- fun_l6_n193(x)
- end
-end
-
-def fun_l5_n14(x)
- if (x < 1)
- fun_l6_n327(x)
- else
- fun_l6_n808(x)
- end
-end
-
-def fun_l5_n15(x)
- if (x < 1)
- fun_l6_n86(x)
- else
- fun_l6_n951(x)
- end
-end
-
-def fun_l5_n16(x)
- if (x < 1)
- fun_l6_n492(x)
- else
- fun_l6_n704(x)
- end
-end
-
-def fun_l5_n17(x)
- if (x < 1)
- fun_l6_n196(x)
- else
- fun_l6_n970(x)
- end
-end
-
-def fun_l5_n18(x)
- if (x < 1)
- fun_l6_n325(x)
- else
- fun_l6_n30(x)
- end
-end
-
-def fun_l5_n19(x)
- if (x < 1)
- fun_l6_n559(x)
- else
- fun_l6_n269(x)
- end
-end
-
-def fun_l5_n20(x)
- if (x < 1)
- fun_l6_n716(x)
- else
- fun_l6_n783(x)
- end
-end
-
-def fun_l5_n21(x)
- if (x < 1)
- fun_l6_n978(x)
- else
- fun_l6_n306(x)
- end
-end
-
-def fun_l5_n22(x)
- if (x < 1)
- fun_l6_n220(x)
- else
- fun_l6_n823(x)
- end
-end
-
-def fun_l5_n23(x)
- if (x < 1)
- fun_l6_n675(x)
- else
- fun_l6_n684(x)
- end
-end
-
-def fun_l5_n24(x)
- if (x < 1)
- fun_l6_n851(x)
- else
- fun_l6_n450(x)
- end
-end
-
-def fun_l5_n25(x)
- if (x < 1)
- fun_l6_n745(x)
- else
- fun_l6_n370(x)
- end
-end
-
-def fun_l5_n26(x)
- if (x < 1)
- fun_l6_n431(x)
- else
- fun_l6_n130(x)
- end
-end
-
-def fun_l5_n27(x)
- if (x < 1)
- fun_l6_n105(x)
- else
- fun_l6_n205(x)
- end
-end
-
-def fun_l5_n28(x)
- if (x < 1)
- fun_l6_n718(x)
- else
- fun_l6_n742(x)
- end
-end
-
-def fun_l5_n29(x)
- if (x < 1)
- fun_l6_n977(x)
- else
- fun_l6_n63(x)
- end
-end
-
-def fun_l5_n30(x)
- if (x < 1)
- fun_l6_n902(x)
- else
- fun_l6_n471(x)
- end
-end
-
-def fun_l5_n31(x)
- if (x < 1)
- fun_l6_n76(x)
- else
- fun_l6_n960(x)
- end
-end
-
-def fun_l5_n32(x)
- if (x < 1)
- fun_l6_n75(x)
- else
- fun_l6_n640(x)
- end
-end
-
-def fun_l5_n33(x)
- if (x < 1)
- fun_l6_n631(x)
- else
- fun_l6_n769(x)
- end
-end
-
-def fun_l5_n34(x)
- if (x < 1)
- fun_l6_n201(x)
- else
- fun_l6_n771(x)
- end
-end
-
-def fun_l5_n35(x)
- if (x < 1)
- fun_l6_n734(x)
- else
- fun_l6_n370(x)
- end
-end
-
-def fun_l5_n36(x)
- if (x < 1)
- fun_l6_n490(x)
- else
- fun_l6_n994(x)
- end
-end
-
-def fun_l5_n37(x)
- if (x < 1)
- fun_l6_n566(x)
- else
- fun_l6_n392(x)
- end
-end
-
-def fun_l5_n38(x)
- if (x < 1)
- fun_l6_n120(x)
- else
- fun_l6_n774(x)
- end
-end
-
-def fun_l5_n39(x)
- if (x < 1)
- fun_l6_n402(x)
- else
- fun_l6_n572(x)
- end
-end
-
-def fun_l5_n40(x)
- if (x < 1)
- fun_l6_n911(x)
- else
- fun_l6_n968(x)
- end
-end
-
-def fun_l5_n41(x)
- if (x < 1)
- fun_l6_n200(x)
- else
- fun_l6_n656(x)
- end
-end
-
-def fun_l5_n42(x)
- if (x < 1)
- fun_l6_n59(x)
- else
- fun_l6_n426(x)
- end
-end
-
-def fun_l5_n43(x)
- if (x < 1)
- fun_l6_n650(x)
- else
- fun_l6_n932(x)
- end
-end
-
-def fun_l5_n44(x)
- if (x < 1)
- fun_l6_n365(x)
- else
- fun_l6_n755(x)
- end
-end
-
-def fun_l5_n45(x)
- if (x < 1)
- fun_l6_n738(x)
- else
- fun_l6_n432(x)
- end
-end
-
-def fun_l5_n46(x)
- if (x < 1)
- fun_l6_n82(x)
- else
- fun_l6_n484(x)
- end
-end
-
-def fun_l5_n47(x)
- if (x < 1)
- fun_l6_n64(x)
- else
- fun_l6_n610(x)
- end
-end
-
-def fun_l5_n48(x)
- if (x < 1)
- fun_l6_n875(x)
- else
- fun_l6_n464(x)
- end
-end
-
-def fun_l5_n49(x)
- if (x < 1)
- fun_l6_n798(x)
- else
- fun_l6_n57(x)
- end
-end
-
-def fun_l5_n50(x)
- if (x < 1)
- fun_l6_n76(x)
- else
- fun_l6_n462(x)
- end
-end
-
-def fun_l5_n51(x)
- if (x < 1)
- fun_l6_n225(x)
- else
- fun_l6_n526(x)
- end
-end
-
-def fun_l5_n52(x)
- if (x < 1)
- fun_l6_n388(x)
- else
- fun_l6_n167(x)
- end
-end
-
-def fun_l5_n53(x)
- if (x < 1)
- fun_l6_n270(x)
- else
- fun_l6_n821(x)
- end
-end
-
-def fun_l5_n54(x)
- if (x < 1)
- fun_l6_n790(x)
- else
- fun_l6_n95(x)
- end
-end
-
-def fun_l5_n55(x)
- if (x < 1)
- fun_l6_n38(x)
- else
- fun_l6_n32(x)
- end
-end
-
-def fun_l5_n56(x)
- if (x < 1)
- fun_l6_n400(x)
- else
- fun_l6_n513(x)
- end
-end
-
-def fun_l5_n57(x)
- if (x < 1)
- fun_l6_n251(x)
- else
- fun_l6_n16(x)
- end
-end
-
-def fun_l5_n58(x)
- if (x < 1)
- fun_l6_n303(x)
- else
- fun_l6_n858(x)
- end
-end
-
-def fun_l5_n59(x)
- if (x < 1)
- fun_l6_n173(x)
- else
- fun_l6_n38(x)
- end
-end
-
-def fun_l5_n60(x)
- if (x < 1)
- fun_l6_n466(x)
- else
- fun_l6_n64(x)
- end
-end
-
-def fun_l5_n61(x)
- if (x < 1)
- fun_l6_n687(x)
- else
- fun_l6_n208(x)
- end
-end
-
-def fun_l5_n62(x)
- if (x < 1)
- fun_l6_n891(x)
- else
- fun_l6_n789(x)
- end
-end
-
-def fun_l5_n63(x)
- if (x < 1)
- fun_l6_n664(x)
- else
- fun_l6_n133(x)
- end
-end
-
-def fun_l5_n64(x)
- if (x < 1)
- fun_l6_n121(x)
- else
- fun_l6_n989(x)
- end
-end
-
-def fun_l5_n65(x)
- if (x < 1)
- fun_l6_n411(x)
- else
- fun_l6_n264(x)
- end
-end
-
-def fun_l5_n66(x)
- if (x < 1)
- fun_l6_n528(x)
- else
- fun_l6_n662(x)
- end
-end
-
-def fun_l5_n67(x)
- if (x < 1)
- fun_l6_n824(x)
- else
- fun_l6_n410(x)
- end
-end
-
-def fun_l5_n68(x)
- if (x < 1)
- fun_l6_n29(x)
- else
- fun_l6_n946(x)
- end
-end
-
-def fun_l5_n69(x)
- if (x < 1)
- fun_l6_n566(x)
- else
- fun_l6_n797(x)
- end
-end
-
-def fun_l5_n70(x)
- if (x < 1)
- fun_l6_n816(x)
- else
- fun_l6_n112(x)
- end
-end
-
-def fun_l5_n71(x)
- if (x < 1)
- fun_l6_n920(x)
- else
- fun_l6_n44(x)
- end
-end
-
-def fun_l5_n72(x)
- if (x < 1)
- fun_l6_n725(x)
- else
- fun_l6_n113(x)
- end
-end
-
-def fun_l5_n73(x)
- if (x < 1)
- fun_l6_n406(x)
- else
- fun_l6_n555(x)
- end
-end
-
-def fun_l5_n74(x)
- if (x < 1)
- fun_l6_n527(x)
- else
- fun_l6_n991(x)
- end
-end
-
-def fun_l5_n75(x)
- if (x < 1)
- fun_l6_n46(x)
- else
- fun_l6_n440(x)
- end
-end
-
-def fun_l5_n76(x)
- if (x < 1)
- fun_l6_n242(x)
- else
- fun_l6_n488(x)
- end
-end
-
-def fun_l5_n77(x)
- if (x < 1)
- fun_l6_n211(x)
- else
- fun_l6_n760(x)
- end
-end
-
-def fun_l5_n78(x)
- if (x < 1)
- fun_l6_n821(x)
- else
- fun_l6_n653(x)
- end
-end
-
-def fun_l5_n79(x)
- if (x < 1)
- fun_l6_n559(x)
- else
- fun_l6_n425(x)
- end
-end
-
-def fun_l5_n80(x)
- if (x < 1)
- fun_l6_n792(x)
- else
- fun_l6_n813(x)
- end
-end
-
-def fun_l5_n81(x)
- if (x < 1)
- fun_l6_n463(x)
- else
- fun_l6_n454(x)
- end
-end
-
-def fun_l5_n82(x)
- if (x < 1)
- fun_l6_n731(x)
- else
- fun_l6_n718(x)
- end
-end
-
-def fun_l5_n83(x)
- if (x < 1)
- fun_l6_n377(x)
- else
- fun_l6_n137(x)
- end
-end
-
-def fun_l5_n84(x)
- if (x < 1)
- fun_l6_n829(x)
- else
- fun_l6_n77(x)
- end
-end
-
-def fun_l5_n85(x)
- if (x < 1)
- fun_l6_n714(x)
- else
- fun_l6_n682(x)
- end
-end
-
-def fun_l5_n86(x)
- if (x < 1)
- fun_l6_n47(x)
- else
- fun_l6_n527(x)
- end
-end
-
-def fun_l5_n87(x)
- if (x < 1)
- fun_l6_n976(x)
- else
- fun_l6_n18(x)
- end
-end
-
-def fun_l5_n88(x)
- if (x < 1)
- fun_l6_n710(x)
- else
- fun_l6_n998(x)
- end
-end
-
-def fun_l5_n89(x)
- if (x < 1)
- fun_l6_n222(x)
- else
- fun_l6_n97(x)
- end
-end
-
-def fun_l5_n90(x)
- if (x < 1)
- fun_l6_n862(x)
- else
- fun_l6_n627(x)
- end
-end
-
-def fun_l5_n91(x)
- if (x < 1)
- fun_l6_n642(x)
- else
- fun_l6_n720(x)
- end
-end
-
-def fun_l5_n92(x)
- if (x < 1)
- fun_l6_n444(x)
- else
- fun_l6_n506(x)
- end
-end
-
-def fun_l5_n93(x)
- if (x < 1)
- fun_l6_n776(x)
- else
- fun_l6_n879(x)
- end
-end
-
-def fun_l5_n94(x)
- if (x < 1)
- fun_l6_n629(x)
- else
- fun_l6_n322(x)
- end
-end
-
-def fun_l5_n95(x)
- if (x < 1)
- fun_l6_n119(x)
- else
- fun_l6_n134(x)
- end
-end
-
-def fun_l5_n96(x)
- if (x < 1)
- fun_l6_n385(x)
- else
- fun_l6_n343(x)
- end
-end
-
-def fun_l5_n97(x)
- if (x < 1)
- fun_l6_n110(x)
- else
- fun_l6_n323(x)
- end
-end
-
-def fun_l5_n98(x)
- if (x < 1)
- fun_l6_n547(x)
- else
- fun_l6_n762(x)
- end
-end
-
-def fun_l5_n99(x)
- if (x < 1)
- fun_l6_n811(x)
- else
- fun_l6_n404(x)
- end
-end
-
-def fun_l5_n100(x)
- if (x < 1)
- fun_l6_n893(x)
- else
- fun_l6_n120(x)
- end
-end
-
-def fun_l5_n101(x)
- if (x < 1)
- fun_l6_n755(x)
- else
- fun_l6_n611(x)
- end
-end
-
-def fun_l5_n102(x)
- if (x < 1)
- fun_l6_n65(x)
- else
- fun_l6_n897(x)
- end
-end
-
-def fun_l5_n103(x)
- if (x < 1)
- fun_l6_n629(x)
- else
- fun_l6_n214(x)
- end
-end
-
-def fun_l5_n104(x)
- if (x < 1)
- fun_l6_n211(x)
- else
- fun_l6_n179(x)
- end
-end
-
-def fun_l5_n105(x)
- if (x < 1)
- fun_l6_n650(x)
- else
- fun_l6_n348(x)
- end
-end
-
-def fun_l5_n106(x)
- if (x < 1)
- fun_l6_n966(x)
- else
- fun_l6_n654(x)
- end
-end
-
-def fun_l5_n107(x)
- if (x < 1)
- fun_l6_n596(x)
- else
- fun_l6_n668(x)
- end
-end
-
-def fun_l5_n108(x)
- if (x < 1)
- fun_l6_n392(x)
- else
- fun_l6_n629(x)
- end
-end
-
-def fun_l5_n109(x)
- if (x < 1)
- fun_l6_n96(x)
- else
- fun_l6_n578(x)
- end
-end
-
-def fun_l5_n110(x)
- if (x < 1)
- fun_l6_n88(x)
- else
- fun_l6_n214(x)
- end
-end
-
-def fun_l5_n111(x)
- if (x < 1)
- fun_l6_n622(x)
- else
- fun_l6_n180(x)
- end
-end
-
-def fun_l5_n112(x)
- if (x < 1)
- fun_l6_n100(x)
- else
- fun_l6_n373(x)
- end
-end
-
-def fun_l5_n113(x)
- if (x < 1)
- fun_l6_n464(x)
- else
- fun_l6_n30(x)
- end
-end
-
-def fun_l5_n114(x)
- if (x < 1)
- fun_l6_n703(x)
- else
- fun_l6_n116(x)
- end
-end
-
-def fun_l5_n115(x)
- if (x < 1)
- fun_l6_n63(x)
- else
- fun_l6_n260(x)
- end
-end
-
-def fun_l5_n116(x)
- if (x < 1)
- fun_l6_n935(x)
- else
- fun_l6_n951(x)
- end
-end
-
-def fun_l5_n117(x)
- if (x < 1)
- fun_l6_n415(x)
- else
- fun_l6_n734(x)
- end
-end
-
-def fun_l5_n118(x)
- if (x < 1)
- fun_l6_n873(x)
- else
- fun_l6_n163(x)
- end
-end
-
-def fun_l5_n119(x)
- if (x < 1)
- fun_l6_n134(x)
- else
- fun_l6_n586(x)
- end
-end
-
-def fun_l5_n120(x)
- if (x < 1)
- fun_l6_n793(x)
- else
- fun_l6_n197(x)
- end
-end
-
-def fun_l5_n121(x)
- if (x < 1)
- fun_l6_n585(x)
- else
- fun_l6_n793(x)
- end
-end
-
-def fun_l5_n122(x)
- if (x < 1)
- fun_l6_n10(x)
- else
- fun_l6_n12(x)
- end
-end
-
-def fun_l5_n123(x)
- if (x < 1)
- fun_l6_n786(x)
- else
- fun_l6_n386(x)
- end
-end
-
-def fun_l5_n124(x)
- if (x < 1)
- fun_l6_n891(x)
- else
- fun_l6_n903(x)
- end
-end
-
-def fun_l5_n125(x)
- if (x < 1)
- fun_l6_n389(x)
- else
- fun_l6_n154(x)
- end
-end
-
-def fun_l5_n126(x)
- if (x < 1)
- fun_l6_n214(x)
- else
- fun_l6_n754(x)
- end
-end
-
-def fun_l5_n127(x)
- if (x < 1)
- fun_l6_n646(x)
- else
- fun_l6_n661(x)
- end
-end
-
-def fun_l5_n128(x)
- if (x < 1)
- fun_l6_n662(x)
- else
- fun_l6_n527(x)
- end
-end
-
-def fun_l5_n129(x)
- if (x < 1)
- fun_l6_n329(x)
- else
- fun_l6_n310(x)
- end
-end
-
-def fun_l5_n130(x)
- if (x < 1)
- fun_l6_n352(x)
- else
- fun_l6_n820(x)
- end
-end
-
-def fun_l5_n131(x)
- if (x < 1)
- fun_l6_n551(x)
- else
- fun_l6_n454(x)
- end
-end
-
-def fun_l5_n132(x)
- if (x < 1)
- fun_l6_n586(x)
- else
- fun_l6_n340(x)
- end
-end
-
-def fun_l5_n133(x)
- if (x < 1)
- fun_l6_n111(x)
- else
- fun_l6_n188(x)
- end
-end
-
-def fun_l5_n134(x)
- if (x < 1)
- fun_l6_n261(x)
- else
- fun_l6_n464(x)
- end
-end
-
-def fun_l5_n135(x)
- if (x < 1)
- fun_l6_n540(x)
- else
- fun_l6_n854(x)
- end
-end
-
-def fun_l5_n136(x)
- if (x < 1)
- fun_l6_n120(x)
- else
- fun_l6_n230(x)
- end
-end
-
-def fun_l5_n137(x)
- if (x < 1)
- fun_l6_n837(x)
- else
- fun_l6_n606(x)
- end
-end
-
-def fun_l5_n138(x)
- if (x < 1)
- fun_l6_n663(x)
- else
- fun_l6_n195(x)
- end
-end
-
-def fun_l5_n139(x)
- if (x < 1)
- fun_l6_n572(x)
- else
- fun_l6_n768(x)
- end
-end
-
-def fun_l5_n140(x)
- if (x < 1)
- fun_l6_n747(x)
- else
- fun_l6_n304(x)
- end
-end
-
-def fun_l5_n141(x)
- if (x < 1)
- fun_l6_n927(x)
- else
- fun_l6_n122(x)
- end
-end
-
-def fun_l5_n142(x)
- if (x < 1)
- fun_l6_n311(x)
- else
- fun_l6_n920(x)
- end
-end
-
-def fun_l5_n143(x)
- if (x < 1)
- fun_l6_n887(x)
- else
- fun_l6_n598(x)
- end
-end
-
-def fun_l5_n144(x)
- if (x < 1)
- fun_l6_n289(x)
- else
- fun_l6_n894(x)
- end
-end
-
-def fun_l5_n145(x)
- if (x < 1)
- fun_l6_n333(x)
- else
- fun_l6_n385(x)
- end
-end
-
-def fun_l5_n146(x)
- if (x < 1)
- fun_l6_n926(x)
- else
- fun_l6_n310(x)
- end
-end
-
-def fun_l5_n147(x)
- if (x < 1)
- fun_l6_n754(x)
- else
- fun_l6_n354(x)
- end
-end
-
-def fun_l5_n148(x)
- if (x < 1)
- fun_l6_n800(x)
- else
- fun_l6_n634(x)
- end
-end
-
-def fun_l5_n149(x)
- if (x < 1)
- fun_l6_n5(x)
- else
- fun_l6_n67(x)
- end
-end
-
-def fun_l5_n150(x)
- if (x < 1)
- fun_l6_n766(x)
- else
- fun_l6_n237(x)
- end
-end
-
-def fun_l5_n151(x)
- if (x < 1)
- fun_l6_n277(x)
- else
- fun_l6_n692(x)
- end
-end
-
-def fun_l5_n152(x)
- if (x < 1)
- fun_l6_n328(x)
- else
- fun_l6_n216(x)
- end
-end
-
-def fun_l5_n153(x)
- if (x < 1)
- fun_l6_n328(x)
- else
- fun_l6_n165(x)
- end
-end
-
-def fun_l5_n154(x)
- if (x < 1)
- fun_l6_n884(x)
- else
- fun_l6_n811(x)
- end
-end
-
-def fun_l5_n155(x)
- if (x < 1)
- fun_l6_n376(x)
- else
- fun_l6_n188(x)
- end
-end
-
-def fun_l5_n156(x)
- if (x < 1)
- fun_l6_n276(x)
- else
- fun_l6_n19(x)
- end
-end
-
-def fun_l5_n157(x)
- if (x < 1)
- fun_l6_n443(x)
- else
- fun_l6_n815(x)
- end
-end
-
-def fun_l5_n158(x)
- if (x < 1)
- fun_l6_n610(x)
- else
- fun_l6_n341(x)
- end
-end
-
-def fun_l5_n159(x)
- if (x < 1)
- fun_l6_n147(x)
- else
- fun_l6_n289(x)
- end
-end
-
-def fun_l5_n160(x)
- if (x < 1)
- fun_l6_n258(x)
- else
- fun_l6_n683(x)
- end
-end
-
-def fun_l5_n161(x)
- if (x < 1)
- fun_l6_n544(x)
- else
- fun_l6_n621(x)
- end
-end
-
-def fun_l5_n162(x)
- if (x < 1)
- fun_l6_n119(x)
- else
- fun_l6_n336(x)
- end
-end
-
-def fun_l5_n163(x)
- if (x < 1)
- fun_l6_n297(x)
- else
- fun_l6_n915(x)
- end
-end
-
-def fun_l5_n164(x)
- if (x < 1)
- fun_l6_n782(x)
- else
- fun_l6_n499(x)
- end
-end
-
-def fun_l5_n165(x)
- if (x < 1)
- fun_l6_n660(x)
- else
- fun_l6_n227(x)
- end
-end
-
-def fun_l5_n166(x)
- if (x < 1)
- fun_l6_n820(x)
- else
- fun_l6_n822(x)
- end
-end
-
-def fun_l5_n167(x)
- if (x < 1)
- fun_l6_n878(x)
- else
- fun_l6_n642(x)
- end
-end
-
-def fun_l5_n168(x)
- if (x < 1)
- fun_l6_n123(x)
- else
- fun_l6_n451(x)
- end
-end
-
-def fun_l5_n169(x)
- if (x < 1)
- fun_l6_n741(x)
- else
- fun_l6_n35(x)
- end
-end
-
-def fun_l5_n170(x)
- if (x < 1)
- fun_l6_n522(x)
- else
- fun_l6_n546(x)
- end
-end
-
-def fun_l5_n171(x)
- if (x < 1)
- fun_l6_n555(x)
- else
- fun_l6_n667(x)
- end
-end
-
-def fun_l5_n172(x)
- if (x < 1)
- fun_l6_n760(x)
- else
- fun_l6_n292(x)
- end
-end
-
-def fun_l5_n173(x)
- if (x < 1)
- fun_l6_n375(x)
- else
- fun_l6_n907(x)
- end
-end
-
-def fun_l5_n174(x)
- if (x < 1)
- fun_l6_n382(x)
- else
- fun_l6_n693(x)
- end
-end
-
-def fun_l5_n175(x)
- if (x < 1)
- fun_l6_n728(x)
- else
- fun_l6_n378(x)
- end
-end
-
-def fun_l5_n176(x)
- if (x < 1)
- fun_l6_n79(x)
- else
- fun_l6_n402(x)
- end
-end
-
-def fun_l5_n177(x)
- if (x < 1)
- fun_l6_n444(x)
- else
- fun_l6_n500(x)
- end
-end
-
-def fun_l5_n178(x)
- if (x < 1)
- fun_l6_n535(x)
- else
- fun_l6_n754(x)
- end
-end
-
-def fun_l5_n179(x)
- if (x < 1)
- fun_l6_n831(x)
- else
- fun_l6_n206(x)
- end
-end
-
-def fun_l5_n180(x)
- if (x < 1)
- fun_l6_n878(x)
- else
- fun_l6_n715(x)
- end
-end
-
-def fun_l5_n181(x)
- if (x < 1)
- fun_l6_n433(x)
- else
- fun_l6_n955(x)
- end
-end
-
-def fun_l5_n182(x)
- if (x < 1)
- fun_l6_n611(x)
- else
- fun_l6_n258(x)
- end
-end
-
-def fun_l5_n183(x)
- if (x < 1)
- fun_l6_n618(x)
- else
- fun_l6_n29(x)
- end
-end
-
-def fun_l5_n184(x)
- if (x < 1)
- fun_l6_n838(x)
- else
- fun_l6_n918(x)
- end
-end
-
-def fun_l5_n185(x)
- if (x < 1)
- fun_l6_n307(x)
- else
- fun_l6_n811(x)
- end
-end
-
-def fun_l5_n186(x)
- if (x < 1)
- fun_l6_n564(x)
- else
- fun_l6_n73(x)
- end
-end
-
-def fun_l5_n187(x)
- if (x < 1)
- fun_l6_n871(x)
- else
- fun_l6_n669(x)
- end
-end
-
-def fun_l5_n188(x)
- if (x < 1)
- fun_l6_n546(x)
- else
- fun_l6_n41(x)
- end
-end
-
-def fun_l5_n189(x)
- if (x < 1)
- fun_l6_n312(x)
- else
- fun_l6_n998(x)
- end
-end
-
-def fun_l5_n190(x)
- if (x < 1)
- fun_l6_n519(x)
- else
- fun_l6_n275(x)
- end
-end
-
-def fun_l5_n191(x)
- if (x < 1)
- fun_l6_n525(x)
- else
- fun_l6_n228(x)
- end
-end
-
-def fun_l5_n192(x)
- if (x < 1)
- fun_l6_n115(x)
- else
- fun_l6_n790(x)
- end
-end
-
-def fun_l5_n193(x)
- if (x < 1)
- fun_l6_n976(x)
- else
- fun_l6_n219(x)
- end
-end
-
-def fun_l5_n194(x)
- if (x < 1)
- fun_l6_n785(x)
- else
- fun_l6_n834(x)
- end
-end
-
-def fun_l5_n195(x)
- if (x < 1)
- fun_l6_n238(x)
- else
- fun_l6_n471(x)
- end
-end
-
-def fun_l5_n196(x)
- if (x < 1)
- fun_l6_n275(x)
- else
- fun_l6_n218(x)
- end
-end
-
-def fun_l5_n197(x)
- if (x < 1)
- fun_l6_n590(x)
- else
- fun_l6_n458(x)
- end
-end
-
-def fun_l5_n198(x)
- if (x < 1)
- fun_l6_n498(x)
- else
- fun_l6_n906(x)
- end
-end
-
-def fun_l5_n199(x)
- if (x < 1)
- fun_l6_n547(x)
- else
- fun_l6_n885(x)
- end
-end
-
-def fun_l5_n200(x)
- if (x < 1)
- fun_l6_n631(x)
- else
- fun_l6_n0(x)
- end
-end
-
-def fun_l5_n201(x)
- if (x < 1)
- fun_l6_n31(x)
- else
- fun_l6_n729(x)
- end
-end
-
-def fun_l5_n202(x)
- if (x < 1)
- fun_l6_n303(x)
- else
- fun_l6_n847(x)
- end
-end
-
-def fun_l5_n203(x)
- if (x < 1)
- fun_l6_n912(x)
- else
- fun_l6_n346(x)
- end
-end
-
-def fun_l5_n204(x)
- if (x < 1)
- fun_l6_n153(x)
- else
- fun_l6_n831(x)
- end
-end
-
-def fun_l5_n205(x)
- if (x < 1)
- fun_l6_n424(x)
- else
- fun_l6_n836(x)
- end
-end
-
-def fun_l5_n206(x)
- if (x < 1)
- fun_l6_n214(x)
- else
- fun_l6_n207(x)
- end
-end
-
-def fun_l5_n207(x)
- if (x < 1)
- fun_l6_n362(x)
- else
- fun_l6_n241(x)
- end
-end
-
-def fun_l5_n208(x)
- if (x < 1)
- fun_l6_n796(x)
- else
- fun_l6_n763(x)
- end
-end
-
-def fun_l5_n209(x)
- if (x < 1)
- fun_l6_n523(x)
- else
- fun_l6_n998(x)
- end
-end
-
-def fun_l5_n210(x)
- if (x < 1)
- fun_l6_n326(x)
- else
- fun_l6_n755(x)
- end
-end
-
-def fun_l5_n211(x)
- if (x < 1)
- fun_l6_n345(x)
- else
- fun_l6_n747(x)
- end
-end
-
-def fun_l5_n212(x)
- if (x < 1)
- fun_l6_n631(x)
- else
- fun_l6_n576(x)
- end
-end
-
-def fun_l5_n213(x)
- if (x < 1)
- fun_l6_n713(x)
- else
- fun_l6_n678(x)
- end
-end
-
-def fun_l5_n214(x)
- if (x < 1)
- fun_l6_n470(x)
- else
- fun_l6_n877(x)
- end
-end
-
-def fun_l5_n215(x)
- if (x < 1)
- fun_l6_n78(x)
- else
- fun_l6_n315(x)
- end
-end
-
-def fun_l5_n216(x)
- if (x < 1)
- fun_l6_n281(x)
- else
- fun_l6_n872(x)
- end
-end
-
-def fun_l5_n217(x)
- if (x < 1)
- fun_l6_n200(x)
- else
- fun_l6_n323(x)
- end
-end
-
-def fun_l5_n218(x)
- if (x < 1)
- fun_l6_n483(x)
- else
- fun_l6_n938(x)
- end
-end
-
-def fun_l5_n219(x)
- if (x < 1)
- fun_l6_n102(x)
- else
- fun_l6_n690(x)
- end
-end
-
-def fun_l5_n220(x)
- if (x < 1)
- fun_l6_n740(x)
- else
- fun_l6_n684(x)
- end
-end
-
-def fun_l5_n221(x)
- if (x < 1)
- fun_l6_n366(x)
- else
- fun_l6_n138(x)
- end
-end
-
-def fun_l5_n222(x)
- if (x < 1)
- fun_l6_n306(x)
- else
- fun_l6_n874(x)
- end
-end
-
-def fun_l5_n223(x)
- if (x < 1)
- fun_l6_n828(x)
- else
- fun_l6_n839(x)
- end
-end
-
-def fun_l5_n224(x)
- if (x < 1)
- fun_l6_n739(x)
- else
- fun_l6_n569(x)
- end
-end
-
-def fun_l5_n225(x)
- if (x < 1)
- fun_l6_n332(x)
- else
- fun_l6_n49(x)
- end
-end
-
-def fun_l5_n226(x)
- if (x < 1)
- fun_l6_n783(x)
- else
- fun_l6_n20(x)
- end
-end
-
-def fun_l5_n227(x)
- if (x < 1)
- fun_l6_n774(x)
- else
- fun_l6_n346(x)
- end
-end
-
-def fun_l5_n228(x)
- if (x < 1)
- fun_l6_n637(x)
- else
- fun_l6_n302(x)
- end
-end
-
-def fun_l5_n229(x)
- if (x < 1)
- fun_l6_n10(x)
- else
- fun_l6_n697(x)
- end
-end
-
-def fun_l5_n230(x)
- if (x < 1)
- fun_l6_n804(x)
- else
- fun_l6_n141(x)
- end
-end
-
-def fun_l5_n231(x)
- if (x < 1)
- fun_l6_n232(x)
- else
- fun_l6_n88(x)
- end
-end
-
-def fun_l5_n232(x)
- if (x < 1)
- fun_l6_n248(x)
- else
- fun_l6_n862(x)
- end
-end
-
-def fun_l5_n233(x)
- if (x < 1)
- fun_l6_n287(x)
- else
- fun_l6_n315(x)
- end
-end
-
-def fun_l5_n234(x)
- if (x < 1)
- fun_l6_n543(x)
- else
- fun_l6_n182(x)
- end
-end
-
-def fun_l5_n235(x)
- if (x < 1)
- fun_l6_n162(x)
- else
- fun_l6_n710(x)
- end
-end
-
-def fun_l5_n236(x)
- if (x < 1)
- fun_l6_n879(x)
- else
- fun_l6_n262(x)
- end
-end
-
-def fun_l5_n237(x)
- if (x < 1)
- fun_l6_n706(x)
- else
- fun_l6_n112(x)
- end
-end
-
-def fun_l5_n238(x)
- if (x < 1)
- fun_l6_n578(x)
- else
- fun_l6_n792(x)
- end
-end
-
-def fun_l5_n239(x)
- if (x < 1)
- fun_l6_n685(x)
- else
- fun_l6_n441(x)
- end
-end
-
-def fun_l5_n240(x)
- if (x < 1)
- fun_l6_n706(x)
- else
- fun_l6_n737(x)
- end
-end
-
-def fun_l5_n241(x)
- if (x < 1)
- fun_l6_n360(x)
- else
- fun_l6_n751(x)
- end
-end
-
-def fun_l5_n242(x)
- if (x < 1)
- fun_l6_n823(x)
- else
- fun_l6_n888(x)
- end
-end
-
-def fun_l5_n243(x)
- if (x < 1)
- fun_l6_n743(x)
- else
- fun_l6_n705(x)
- end
-end
-
-def fun_l5_n244(x)
- if (x < 1)
- fun_l6_n340(x)
- else
- fun_l6_n541(x)
- end
-end
-
-def fun_l5_n245(x)
- if (x < 1)
- fun_l6_n324(x)
- else
- fun_l6_n121(x)
- end
-end
-
-def fun_l5_n246(x)
- if (x < 1)
- fun_l6_n241(x)
- else
- fun_l6_n584(x)
- end
-end
-
-def fun_l5_n247(x)
- if (x < 1)
- fun_l6_n468(x)
- else
- fun_l6_n673(x)
- end
-end
-
-def fun_l5_n248(x)
- if (x < 1)
- fun_l6_n595(x)
- else
- fun_l6_n537(x)
- end
-end
-
-def fun_l5_n249(x)
- if (x < 1)
- fun_l6_n166(x)
- else
- fun_l6_n766(x)
- end
-end
-
-def fun_l5_n250(x)
- if (x < 1)
- fun_l6_n322(x)
- else
- fun_l6_n904(x)
- end
-end
-
-def fun_l5_n251(x)
- if (x < 1)
- fun_l6_n273(x)
- else
- fun_l6_n353(x)
- end
-end
-
-def fun_l5_n252(x)
- if (x < 1)
- fun_l6_n990(x)
- else
- fun_l6_n360(x)
- end
-end
-
-def fun_l5_n253(x)
- if (x < 1)
- fun_l6_n552(x)
- else
- fun_l6_n649(x)
- end
-end
-
-def fun_l5_n254(x)
- if (x < 1)
- fun_l6_n917(x)
- else
- fun_l6_n803(x)
- end
-end
-
-def fun_l5_n255(x)
- if (x < 1)
- fun_l6_n763(x)
- else
- fun_l6_n464(x)
- end
-end
-
-def fun_l5_n256(x)
- if (x < 1)
- fun_l6_n577(x)
- else
- fun_l6_n70(x)
- end
-end
-
-def fun_l5_n257(x)
- if (x < 1)
- fun_l6_n618(x)
- else
- fun_l6_n943(x)
- end
-end
-
-def fun_l5_n258(x)
- if (x < 1)
- fun_l6_n683(x)
- else
- fun_l6_n761(x)
- end
-end
-
-def fun_l5_n259(x)
- if (x < 1)
- fun_l6_n284(x)
- else
- fun_l6_n223(x)
- end
-end
-
-def fun_l5_n260(x)
- if (x < 1)
- fun_l6_n189(x)
- else
- fun_l6_n455(x)
- end
-end
-
-def fun_l5_n261(x)
- if (x < 1)
- fun_l6_n632(x)
- else
- fun_l6_n245(x)
- end
-end
-
-def fun_l5_n262(x)
- if (x < 1)
- fun_l6_n940(x)
- else
- fun_l6_n38(x)
- end
-end
-
-def fun_l5_n263(x)
- if (x < 1)
- fun_l6_n289(x)
- else
- fun_l6_n356(x)
- end
-end
-
-def fun_l5_n264(x)
- if (x < 1)
- fun_l6_n268(x)
- else
- fun_l6_n412(x)
- end
-end
-
-def fun_l5_n265(x)
- if (x < 1)
- fun_l6_n370(x)
- else
- fun_l6_n858(x)
- end
-end
-
-def fun_l5_n266(x)
- if (x < 1)
- fun_l6_n523(x)
- else
- fun_l6_n809(x)
- end
-end
-
-def fun_l5_n267(x)
- if (x < 1)
- fun_l6_n469(x)
- else
- fun_l6_n260(x)
- end
-end
-
-def fun_l5_n268(x)
- if (x < 1)
- fun_l6_n442(x)
- else
- fun_l6_n738(x)
- end
-end
-
-def fun_l5_n269(x)
- if (x < 1)
- fun_l6_n663(x)
- else
- fun_l6_n109(x)
- end
-end
-
-def fun_l5_n270(x)
- if (x < 1)
- fun_l6_n302(x)
- else
- fun_l6_n664(x)
- end
-end
-
-def fun_l5_n271(x)
- if (x < 1)
- fun_l6_n201(x)
- else
- fun_l6_n251(x)
- end
-end
-
-def fun_l5_n272(x)
- if (x < 1)
- fun_l6_n776(x)
- else
- fun_l6_n903(x)
- end
-end
-
-def fun_l5_n273(x)
- if (x < 1)
- fun_l6_n683(x)
- else
- fun_l6_n233(x)
- end
-end
-
-def fun_l5_n274(x)
- if (x < 1)
- fun_l6_n530(x)
- else
- fun_l6_n487(x)
- end
-end
-
-def fun_l5_n275(x)
- if (x < 1)
- fun_l6_n848(x)
- else
- fun_l6_n99(x)
- end
-end
-
-def fun_l5_n276(x)
- if (x < 1)
- fun_l6_n126(x)
- else
- fun_l6_n914(x)
- end
-end
-
-def fun_l5_n277(x)
- if (x < 1)
- fun_l6_n304(x)
- else
- fun_l6_n198(x)
- end
-end
-
-def fun_l5_n278(x)
- if (x < 1)
- fun_l6_n47(x)
- else
- fun_l6_n179(x)
- end
-end
-
-def fun_l5_n279(x)
- if (x < 1)
- fun_l6_n846(x)
- else
- fun_l6_n301(x)
- end
-end
-
-def fun_l5_n280(x)
- if (x < 1)
- fun_l6_n576(x)
- else
- fun_l6_n561(x)
- end
-end
-
-def fun_l5_n281(x)
- if (x < 1)
- fun_l6_n307(x)
- else
- fun_l6_n545(x)
- end
-end
-
-def fun_l5_n282(x)
- if (x < 1)
- fun_l6_n434(x)
- else
- fun_l6_n669(x)
- end
-end
-
-def fun_l5_n283(x)
- if (x < 1)
- fun_l6_n606(x)
- else
- fun_l6_n147(x)
- end
-end
-
-def fun_l5_n284(x)
- if (x < 1)
- fun_l6_n212(x)
- else
- fun_l6_n504(x)
- end
-end
-
-def fun_l5_n285(x)
- if (x < 1)
- fun_l6_n193(x)
- else
- fun_l6_n165(x)
- end
-end
-
-def fun_l5_n286(x)
- if (x < 1)
- fun_l6_n569(x)
- else
- fun_l6_n100(x)
- end
-end
-
-def fun_l5_n287(x)
- if (x < 1)
- fun_l6_n59(x)
- else
- fun_l6_n998(x)
- end
-end
-
-def fun_l5_n288(x)
- if (x < 1)
- fun_l6_n544(x)
- else
- fun_l6_n923(x)
- end
-end
-
-def fun_l5_n289(x)
- if (x < 1)
- fun_l6_n317(x)
- else
- fun_l6_n255(x)
- end
-end
-
-def fun_l5_n290(x)
- if (x < 1)
- fun_l6_n476(x)
- else
- fun_l6_n789(x)
- end
-end
-
-def fun_l5_n291(x)
- if (x < 1)
- fun_l6_n324(x)
- else
- fun_l6_n162(x)
- end
-end
-
-def fun_l5_n292(x)
- if (x < 1)
- fun_l6_n704(x)
- else
- fun_l6_n454(x)
- end
-end
-
-def fun_l5_n293(x)
- if (x < 1)
- fun_l6_n994(x)
- else
- fun_l6_n637(x)
- end
-end
-
-def fun_l5_n294(x)
- if (x < 1)
- fun_l6_n801(x)
- else
- fun_l6_n913(x)
- end
-end
-
-def fun_l5_n295(x)
- if (x < 1)
- fun_l6_n579(x)
- else
- fun_l6_n795(x)
- end
-end
-
-def fun_l5_n296(x)
- if (x < 1)
- fun_l6_n689(x)
- else
- fun_l6_n546(x)
- end
-end
-
-def fun_l5_n297(x)
- if (x < 1)
- fun_l6_n971(x)
- else
- fun_l6_n493(x)
- end
-end
-
-def fun_l5_n298(x)
- if (x < 1)
- fun_l6_n67(x)
- else
- fun_l6_n372(x)
- end
-end
-
-def fun_l5_n299(x)
- if (x < 1)
- fun_l6_n654(x)
- else
- fun_l6_n921(x)
- end
-end
-
-def fun_l5_n300(x)
- if (x < 1)
- fun_l6_n402(x)
- else
- fun_l6_n437(x)
- end
-end
-
-def fun_l5_n301(x)
- if (x < 1)
- fun_l6_n448(x)
- else
- fun_l6_n177(x)
- end
-end
-
-def fun_l5_n302(x)
- if (x < 1)
- fun_l6_n308(x)
- else
- fun_l6_n869(x)
- end
-end
-
-def fun_l5_n303(x)
- if (x < 1)
- fun_l6_n825(x)
- else
- fun_l6_n848(x)
- end
-end
-
-def fun_l5_n304(x)
- if (x < 1)
- fun_l6_n735(x)
- else
- fun_l6_n653(x)
- end
-end
-
-def fun_l5_n305(x)
- if (x < 1)
- fun_l6_n393(x)
- else
- fun_l6_n113(x)
- end
-end
-
-def fun_l5_n306(x)
- if (x < 1)
- fun_l6_n821(x)
- else
- fun_l6_n827(x)
- end
-end
-
-def fun_l5_n307(x)
- if (x < 1)
- fun_l6_n734(x)
- else
- fun_l6_n498(x)
- end
-end
-
-def fun_l5_n308(x)
- if (x < 1)
- fun_l6_n833(x)
- else
- fun_l6_n302(x)
- end
-end
-
-def fun_l5_n309(x)
- if (x < 1)
- fun_l6_n596(x)
- else
- fun_l6_n544(x)
- end
-end
-
-def fun_l5_n310(x)
- if (x < 1)
- fun_l6_n61(x)
- else
- fun_l6_n823(x)
- end
-end
-
-def fun_l5_n311(x)
- if (x < 1)
- fun_l6_n596(x)
- else
- fun_l6_n98(x)
- end
-end
-
-def fun_l5_n312(x)
- if (x < 1)
- fun_l6_n78(x)
- else
- fun_l6_n186(x)
- end
-end
-
-def fun_l5_n313(x)
- if (x < 1)
- fun_l6_n286(x)
- else
- fun_l6_n230(x)
- end
-end
-
-def fun_l5_n314(x)
- if (x < 1)
- fun_l6_n613(x)
- else
- fun_l6_n412(x)
- end
-end
-
-def fun_l5_n315(x)
- if (x < 1)
- fun_l6_n0(x)
- else
- fun_l6_n579(x)
- end
-end
-
-def fun_l5_n316(x)
- if (x < 1)
- fun_l6_n991(x)
- else
- fun_l6_n379(x)
- end
-end
-
-def fun_l5_n317(x)
- if (x < 1)
- fun_l6_n825(x)
- else
- fun_l6_n964(x)
- end
-end
-
-def fun_l5_n318(x)
- if (x < 1)
- fun_l6_n707(x)
- else
- fun_l6_n664(x)
- end
-end
-
-def fun_l5_n319(x)
- if (x < 1)
- fun_l6_n326(x)
- else
- fun_l6_n26(x)
- end
-end
-
-def fun_l5_n320(x)
- if (x < 1)
- fun_l6_n684(x)
- else
- fun_l6_n333(x)
- end
-end
-
-def fun_l5_n321(x)
- if (x < 1)
- fun_l6_n165(x)
- else
- fun_l6_n586(x)
- end
-end
-
-def fun_l5_n322(x)
- if (x < 1)
- fun_l6_n28(x)
- else
- fun_l6_n53(x)
- end
-end
-
-def fun_l5_n323(x)
- if (x < 1)
- fun_l6_n693(x)
- else
- fun_l6_n84(x)
- end
-end
-
-def fun_l5_n324(x)
- if (x < 1)
- fun_l6_n500(x)
- else
- fun_l6_n445(x)
- end
-end
-
-def fun_l5_n325(x)
- if (x < 1)
- fun_l6_n189(x)
- else
- fun_l6_n756(x)
- end
-end
-
-def fun_l5_n326(x)
- if (x < 1)
- fun_l6_n147(x)
- else
- fun_l6_n709(x)
- end
-end
-
-def fun_l5_n327(x)
- if (x < 1)
- fun_l6_n893(x)
- else
- fun_l6_n851(x)
- end
-end
-
-def fun_l5_n328(x)
- if (x < 1)
- fun_l6_n685(x)
- else
- fun_l6_n399(x)
- end
-end
-
-def fun_l5_n329(x)
- if (x < 1)
- fun_l6_n281(x)
- else
- fun_l6_n284(x)
- end
-end
-
-def fun_l5_n330(x)
- if (x < 1)
- fun_l6_n579(x)
- else
- fun_l6_n671(x)
- end
-end
-
-def fun_l5_n331(x)
- if (x < 1)
- fun_l6_n176(x)
- else
- fun_l6_n829(x)
- end
-end
-
-def fun_l5_n332(x)
- if (x < 1)
- fun_l6_n209(x)
- else
- fun_l6_n91(x)
- end
-end
-
-def fun_l5_n333(x)
- if (x < 1)
- fun_l6_n302(x)
- else
- fun_l6_n360(x)
- end
-end
-
-def fun_l5_n334(x)
- if (x < 1)
- fun_l6_n701(x)
- else
- fun_l6_n438(x)
- end
-end
-
-def fun_l5_n335(x)
- if (x < 1)
- fun_l6_n923(x)
- else
- fun_l6_n613(x)
- end
-end
-
-def fun_l5_n336(x)
- if (x < 1)
- fun_l6_n490(x)
- else
- fun_l6_n405(x)
- end
-end
-
-def fun_l5_n337(x)
- if (x < 1)
- fun_l6_n187(x)
- else
- fun_l6_n953(x)
- end
-end
-
-def fun_l5_n338(x)
- if (x < 1)
- fun_l6_n396(x)
- else
- fun_l6_n917(x)
- end
-end
-
-def fun_l5_n339(x)
- if (x < 1)
- fun_l6_n822(x)
- else
- fun_l6_n939(x)
- end
-end
-
-def fun_l5_n340(x)
- if (x < 1)
- fun_l6_n665(x)
- else
- fun_l6_n890(x)
- end
-end
-
-def fun_l5_n341(x)
- if (x < 1)
- fun_l6_n125(x)
- else
- fun_l6_n817(x)
- end
-end
-
-def fun_l5_n342(x)
- if (x < 1)
- fun_l6_n825(x)
- else
- fun_l6_n853(x)
- end
-end
-
-def fun_l5_n343(x)
- if (x < 1)
- fun_l6_n724(x)
- else
- fun_l6_n633(x)
- end
-end
-
-def fun_l5_n344(x)
- if (x < 1)
- fun_l6_n901(x)
- else
- fun_l6_n26(x)
- end
-end
-
-def fun_l5_n345(x)
- if (x < 1)
- fun_l6_n406(x)
- else
- fun_l6_n664(x)
- end
-end
-
-def fun_l5_n346(x)
- if (x < 1)
- fun_l6_n720(x)
- else
- fun_l6_n856(x)
- end
-end
-
-def fun_l5_n347(x)
- if (x < 1)
- fun_l6_n617(x)
- else
- fun_l6_n116(x)
- end
-end
-
-def fun_l5_n348(x)
- if (x < 1)
- fun_l6_n560(x)
- else
- fun_l6_n24(x)
- end
-end
-
-def fun_l5_n349(x)
- if (x < 1)
- fun_l6_n758(x)
- else
- fun_l6_n297(x)
- end
-end
-
-def fun_l5_n350(x)
- if (x < 1)
- fun_l6_n583(x)
- else
- fun_l6_n673(x)
- end
-end
-
-def fun_l5_n351(x)
- if (x < 1)
- fun_l6_n990(x)
- else
- fun_l6_n512(x)
- end
-end
-
-def fun_l5_n352(x)
- if (x < 1)
- fun_l6_n250(x)
- else
- fun_l6_n819(x)
- end
-end
-
-def fun_l5_n353(x)
- if (x < 1)
- fun_l6_n186(x)
- else
- fun_l6_n787(x)
- end
-end
-
-def fun_l5_n354(x)
- if (x < 1)
- fun_l6_n217(x)
- else
- fun_l6_n231(x)
- end
-end
-
-def fun_l5_n355(x)
- if (x < 1)
- fun_l6_n827(x)
- else
- fun_l6_n439(x)
- end
-end
-
-def fun_l5_n356(x)
- if (x < 1)
- fun_l6_n456(x)
- else
- fun_l6_n352(x)
- end
-end
-
-def fun_l5_n357(x)
- if (x < 1)
- fun_l6_n306(x)
- else
- fun_l6_n236(x)
- end
-end
-
-def fun_l5_n358(x)
- if (x < 1)
- fun_l6_n515(x)
- else
- fun_l6_n100(x)
- end
-end
-
-def fun_l5_n359(x)
- if (x < 1)
- fun_l6_n28(x)
- else
- fun_l6_n820(x)
- end
-end
-
-def fun_l5_n360(x)
- if (x < 1)
- fun_l6_n683(x)
- else
- fun_l6_n547(x)
- end
-end
-
-def fun_l5_n361(x)
- if (x < 1)
- fun_l6_n573(x)
- else
- fun_l6_n699(x)
- end
-end
-
-def fun_l5_n362(x)
- if (x < 1)
- fun_l6_n807(x)
- else
- fun_l6_n548(x)
- end
-end
-
-def fun_l5_n363(x)
- if (x < 1)
- fun_l6_n712(x)
- else
- fun_l6_n323(x)
- end
-end
-
-def fun_l5_n364(x)
- if (x < 1)
- fun_l6_n457(x)
- else
- fun_l6_n447(x)
- end
-end
-
-def fun_l5_n365(x)
- if (x < 1)
- fun_l6_n684(x)
- else
- fun_l6_n782(x)
- end
-end
-
-def fun_l5_n366(x)
- if (x < 1)
- fun_l6_n217(x)
- else
- fun_l6_n344(x)
- end
-end
-
-def fun_l5_n367(x)
- if (x < 1)
- fun_l6_n670(x)
- else
- fun_l6_n311(x)
- end
-end
-
-def fun_l5_n368(x)
- if (x < 1)
- fun_l6_n224(x)
- else
- fun_l6_n198(x)
- end
-end
-
-def fun_l5_n369(x)
- if (x < 1)
- fun_l6_n517(x)
- else
- fun_l6_n186(x)
- end
-end
-
-def fun_l5_n370(x)
- if (x < 1)
- fun_l6_n511(x)
- else
- fun_l6_n27(x)
- end
-end
-
-def fun_l5_n371(x)
- if (x < 1)
- fun_l6_n485(x)
- else
- fun_l6_n288(x)
- end
-end
-
-def fun_l5_n372(x)
- if (x < 1)
- fun_l6_n931(x)
- else
- fun_l6_n473(x)
- end
-end
-
-def fun_l5_n373(x)
- if (x < 1)
- fun_l6_n381(x)
- else
- fun_l6_n650(x)
- end
-end
-
-def fun_l5_n374(x)
- if (x < 1)
- fun_l6_n132(x)
- else
- fun_l6_n243(x)
- end
-end
-
-def fun_l5_n375(x)
- if (x < 1)
- fun_l6_n900(x)
- else
- fun_l6_n322(x)
- end
-end
-
-def fun_l5_n376(x)
- if (x < 1)
- fun_l6_n787(x)
- else
- fun_l6_n588(x)
- end
-end
-
-def fun_l5_n377(x)
- if (x < 1)
- fun_l6_n233(x)
- else
- fun_l6_n358(x)
- end
-end
-
-def fun_l5_n378(x)
- if (x < 1)
- fun_l6_n601(x)
- else
- fun_l6_n40(x)
- end
-end
-
-def fun_l5_n379(x)
- if (x < 1)
- fun_l6_n682(x)
- else
- fun_l6_n63(x)
- end
-end
-
-def fun_l5_n380(x)
- if (x < 1)
- fun_l6_n279(x)
- else
- fun_l6_n393(x)
- end
-end
-
-def fun_l5_n381(x)
- if (x < 1)
- fun_l6_n83(x)
- else
- fun_l6_n538(x)
- end
-end
-
-def fun_l5_n382(x)
- if (x < 1)
- fun_l6_n956(x)
- else
- fun_l6_n194(x)
- end
-end
-
-def fun_l5_n383(x)
- if (x < 1)
- fun_l6_n55(x)
- else
- fun_l6_n140(x)
- end
-end
-
-def fun_l5_n384(x)
- if (x < 1)
- fun_l6_n165(x)
- else
- fun_l6_n784(x)
- end
-end
-
-def fun_l5_n385(x)
- if (x < 1)
- fun_l6_n582(x)
- else
- fun_l6_n97(x)
- end
-end
-
-def fun_l5_n386(x)
- if (x < 1)
- fun_l6_n362(x)
- else
- fun_l6_n935(x)
- end
-end
-
-def fun_l5_n387(x)
- if (x < 1)
- fun_l6_n496(x)
- else
- fun_l6_n512(x)
- end
-end
-
-def fun_l5_n388(x)
- if (x < 1)
- fun_l6_n793(x)
- else
- fun_l6_n746(x)
- end
-end
-
-def fun_l5_n389(x)
- if (x < 1)
- fun_l6_n172(x)
- else
- fun_l6_n731(x)
- end
-end
-
-def fun_l5_n390(x)
- if (x < 1)
- fun_l6_n895(x)
- else
- fun_l6_n694(x)
- end
-end
-
-def fun_l5_n391(x)
- if (x < 1)
- fun_l6_n336(x)
- else
- fun_l6_n551(x)
- end
-end
-
-def fun_l5_n392(x)
- if (x < 1)
- fun_l6_n453(x)
- else
- fun_l6_n83(x)
- end
-end
-
-def fun_l5_n393(x)
- if (x < 1)
- fun_l6_n571(x)
- else
- fun_l6_n293(x)
- end
-end
-
-def fun_l5_n394(x)
- if (x < 1)
- fun_l6_n872(x)
- else
- fun_l6_n519(x)
- end
-end
-
-def fun_l5_n395(x)
- if (x < 1)
- fun_l6_n912(x)
- else
- fun_l6_n955(x)
- end
-end
-
-def fun_l5_n396(x)
- if (x < 1)
- fun_l6_n961(x)
- else
- fun_l6_n367(x)
- end
-end
-
-def fun_l5_n397(x)
- if (x < 1)
- fun_l6_n255(x)
- else
- fun_l6_n639(x)
- end
-end
-
-def fun_l5_n398(x)
- if (x < 1)
- fun_l6_n970(x)
- else
- fun_l6_n465(x)
- end
-end
-
-def fun_l5_n399(x)
- if (x < 1)
- fun_l6_n625(x)
- else
- fun_l6_n387(x)
- end
-end
-
-def fun_l5_n400(x)
- if (x < 1)
- fun_l6_n537(x)
- else
- fun_l6_n336(x)
- end
-end
-
-def fun_l5_n401(x)
- if (x < 1)
- fun_l6_n61(x)
- else
- fun_l6_n0(x)
- end
-end
-
-def fun_l5_n402(x)
- if (x < 1)
- fun_l6_n358(x)
- else
- fun_l6_n715(x)
- end
-end
-
-def fun_l5_n403(x)
- if (x < 1)
- fun_l6_n864(x)
- else
- fun_l6_n729(x)
- end
-end
-
-def fun_l5_n404(x)
- if (x < 1)
- fun_l6_n393(x)
- else
- fun_l6_n962(x)
- end
-end
-
-def fun_l5_n405(x)
- if (x < 1)
- fun_l6_n995(x)
- else
- fun_l6_n835(x)
- end
-end
-
-def fun_l5_n406(x)
- if (x < 1)
- fun_l6_n605(x)
- else
- fun_l6_n732(x)
- end
-end
-
-def fun_l5_n407(x)
- if (x < 1)
- fun_l6_n132(x)
- else
- fun_l6_n112(x)
- end
-end
-
-def fun_l5_n408(x)
- if (x < 1)
- fun_l6_n311(x)
- else
- fun_l6_n972(x)
- end
-end
-
-def fun_l5_n409(x)
- if (x < 1)
- fun_l6_n460(x)
- else
- fun_l6_n750(x)
- end
-end
-
-def fun_l5_n410(x)
- if (x < 1)
- fun_l6_n237(x)
- else
- fun_l6_n463(x)
- end
-end
-
-def fun_l5_n411(x)
- if (x < 1)
- fun_l6_n251(x)
- else
- fun_l6_n944(x)
- end
-end
-
-def fun_l5_n412(x)
- if (x < 1)
- fun_l6_n123(x)
- else
- fun_l6_n369(x)
- end
-end
-
-def fun_l5_n413(x)
- if (x < 1)
- fun_l6_n371(x)
- else
- fun_l6_n589(x)
- end
-end
-
-def fun_l5_n414(x)
- if (x < 1)
- fun_l6_n232(x)
- else
- fun_l6_n354(x)
- end
-end
-
-def fun_l5_n415(x)
- if (x < 1)
- fun_l6_n580(x)
- else
- fun_l6_n330(x)
- end
-end
-
-def fun_l5_n416(x)
- if (x < 1)
- fun_l6_n483(x)
- else
- fun_l6_n446(x)
- end
-end
-
-def fun_l5_n417(x)
- if (x < 1)
- fun_l6_n834(x)
- else
- fun_l6_n284(x)
- end
-end
-
-def fun_l5_n418(x)
- if (x < 1)
- fun_l6_n864(x)
- else
- fun_l6_n825(x)
- end
-end
-
-def fun_l5_n419(x)
- if (x < 1)
- fun_l6_n406(x)
- else
- fun_l6_n680(x)
- end
-end
-
-def fun_l5_n420(x)
- if (x < 1)
- fun_l6_n101(x)
- else
- fun_l6_n4(x)
- end
-end
-
-def fun_l5_n421(x)
- if (x < 1)
- fun_l6_n628(x)
- else
- fun_l6_n303(x)
- end
-end
-
-def fun_l5_n422(x)
- if (x < 1)
- fun_l6_n521(x)
- else
- fun_l6_n547(x)
- end
-end
-
-def fun_l5_n423(x)
- if (x < 1)
- fun_l6_n589(x)
- else
- fun_l6_n134(x)
- end
-end
-
-def fun_l5_n424(x)
- if (x < 1)
- fun_l6_n161(x)
- else
- fun_l6_n347(x)
- end
-end
-
-def fun_l5_n425(x)
- if (x < 1)
- fun_l6_n59(x)
- else
- fun_l6_n988(x)
- end
-end
-
-def fun_l5_n426(x)
- if (x < 1)
- fun_l6_n388(x)
- else
- fun_l6_n182(x)
- end
-end
-
-def fun_l5_n427(x)
- if (x < 1)
- fun_l6_n500(x)
- else
- fun_l6_n536(x)
- end
-end
-
-def fun_l5_n428(x)
- if (x < 1)
- fun_l6_n792(x)
- else
- fun_l6_n253(x)
- end
-end
-
-def fun_l5_n429(x)
- if (x < 1)
- fun_l6_n774(x)
- else
- fun_l6_n997(x)
- end
-end
-
-def fun_l5_n430(x)
- if (x < 1)
- fun_l6_n876(x)
- else
- fun_l6_n798(x)
- end
-end
-
-def fun_l5_n431(x)
- if (x < 1)
- fun_l6_n606(x)
- else
- fun_l6_n403(x)
- end
-end
-
-def fun_l5_n432(x)
- if (x < 1)
- fun_l6_n920(x)
- else
- fun_l6_n827(x)
- end
-end
-
-def fun_l5_n433(x)
- if (x < 1)
- fun_l6_n887(x)
- else
- fun_l6_n149(x)
- end
-end
-
-def fun_l5_n434(x)
- if (x < 1)
- fun_l6_n413(x)
- else
- fun_l6_n44(x)
- end
-end
-
-def fun_l5_n435(x)
- if (x < 1)
- fun_l6_n474(x)
- else
- fun_l6_n107(x)
- end
-end
-
-def fun_l5_n436(x)
- if (x < 1)
- fun_l6_n807(x)
- else
- fun_l6_n636(x)
- end
-end
-
-def fun_l5_n437(x)
- if (x < 1)
- fun_l6_n616(x)
- else
- fun_l6_n615(x)
- end
-end
-
-def fun_l5_n438(x)
- if (x < 1)
- fun_l6_n384(x)
- else
- fun_l6_n535(x)
- end
-end
-
-def fun_l5_n439(x)
- if (x < 1)
- fun_l6_n326(x)
- else
- fun_l6_n929(x)
- end
-end
-
-def fun_l5_n440(x)
- if (x < 1)
- fun_l6_n852(x)
- else
- fun_l6_n597(x)
- end
-end
-
-def fun_l5_n441(x)
- if (x < 1)
- fun_l6_n246(x)
- else
- fun_l6_n991(x)
- end
-end
-
-def fun_l5_n442(x)
- if (x < 1)
- fun_l6_n258(x)
- else
- fun_l6_n140(x)
- end
-end
-
-def fun_l5_n443(x)
- if (x < 1)
- fun_l6_n815(x)
- else
- fun_l6_n600(x)
- end
-end
-
-def fun_l5_n444(x)
- if (x < 1)
- fun_l6_n153(x)
- else
- fun_l6_n902(x)
- end
-end
-
-def fun_l5_n445(x)
- if (x < 1)
- fun_l6_n289(x)
- else
- fun_l6_n240(x)
- end
-end
-
-def fun_l5_n446(x)
- if (x < 1)
- fun_l6_n398(x)
- else
- fun_l6_n273(x)
- end
-end
-
-def fun_l5_n447(x)
- if (x < 1)
- fun_l6_n537(x)
- else
- fun_l6_n8(x)
- end
-end
-
-def fun_l5_n448(x)
- if (x < 1)
- fun_l6_n801(x)
- else
- fun_l6_n389(x)
- end
-end
-
-def fun_l5_n449(x)
- if (x < 1)
- fun_l6_n363(x)
- else
- fun_l6_n17(x)
- end
-end
-
-def fun_l5_n450(x)
- if (x < 1)
- fun_l6_n511(x)
- else
- fun_l6_n151(x)
- end
-end
-
-def fun_l5_n451(x)
- if (x < 1)
- fun_l6_n640(x)
- else
- fun_l6_n785(x)
- end
-end
-
-def fun_l5_n452(x)
- if (x < 1)
- fun_l6_n961(x)
- else
- fun_l6_n567(x)
- end
-end
-
-def fun_l5_n453(x)
- if (x < 1)
- fun_l6_n608(x)
- else
- fun_l6_n910(x)
- end
-end
-
-def fun_l5_n454(x)
- if (x < 1)
- fun_l6_n898(x)
- else
- fun_l6_n231(x)
- end
-end
-
-def fun_l5_n455(x)
- if (x < 1)
- fun_l6_n205(x)
- else
- fun_l6_n162(x)
- end
-end
-
-def fun_l5_n456(x)
- if (x < 1)
- fun_l6_n374(x)
- else
- fun_l6_n544(x)
- end
-end
-
-def fun_l5_n457(x)
- if (x < 1)
- fun_l6_n514(x)
- else
- fun_l6_n522(x)
- end
-end
-
-def fun_l5_n458(x)
- if (x < 1)
- fun_l6_n385(x)
- else
- fun_l6_n808(x)
- end
-end
-
-def fun_l5_n459(x)
- if (x < 1)
- fun_l6_n525(x)
- else
- fun_l6_n144(x)
- end
-end
-
-def fun_l5_n460(x)
- if (x < 1)
- fun_l6_n781(x)
- else
- fun_l6_n180(x)
- end
-end
-
-def fun_l5_n461(x)
- if (x < 1)
- fun_l6_n681(x)
- else
- fun_l6_n273(x)
- end
-end
-
-def fun_l5_n462(x)
- if (x < 1)
- fun_l6_n497(x)
- else
- fun_l6_n399(x)
- end
-end
-
-def fun_l5_n463(x)
- if (x < 1)
- fun_l6_n261(x)
- else
- fun_l6_n311(x)
- end
-end
-
-def fun_l5_n464(x)
- if (x < 1)
- fun_l6_n64(x)
- else
- fun_l6_n253(x)
- end
-end
-
-def fun_l5_n465(x)
- if (x < 1)
- fun_l6_n388(x)
- else
- fun_l6_n300(x)
- end
-end
-
-def fun_l5_n466(x)
- if (x < 1)
- fun_l6_n822(x)
- else
- fun_l6_n277(x)
- end
-end
-
-def fun_l5_n467(x)
- if (x < 1)
- fun_l6_n909(x)
- else
- fun_l6_n605(x)
- end
-end
-
-def fun_l5_n468(x)
- if (x < 1)
- fun_l6_n879(x)
- else
- fun_l6_n870(x)
- end
-end
-
-def fun_l5_n469(x)
- if (x < 1)
- fun_l6_n351(x)
- else
- fun_l6_n917(x)
- end
-end
-
-def fun_l5_n470(x)
- if (x < 1)
- fun_l6_n202(x)
- else
- fun_l6_n40(x)
- end
-end
-
-def fun_l5_n471(x)
- if (x < 1)
- fun_l6_n782(x)
- else
- fun_l6_n839(x)
- end
-end
-
-def fun_l5_n472(x)
- if (x < 1)
- fun_l6_n370(x)
- else
- fun_l6_n868(x)
- end
-end
-
-def fun_l5_n473(x)
- if (x < 1)
- fun_l6_n556(x)
- else
- fun_l6_n722(x)
- end
-end
-
-def fun_l5_n474(x)
- if (x < 1)
- fun_l6_n220(x)
- else
- fun_l6_n994(x)
- end
-end
-
-def fun_l5_n475(x)
- if (x < 1)
- fun_l6_n266(x)
- else
- fun_l6_n872(x)
- end
-end
-
-def fun_l5_n476(x)
- if (x < 1)
- fun_l6_n720(x)
- else
- fun_l6_n412(x)
- end
-end
-
-def fun_l5_n477(x)
- if (x < 1)
- fun_l6_n284(x)
- else
- fun_l6_n90(x)
- end
-end
-
-def fun_l5_n478(x)
- if (x < 1)
- fun_l6_n716(x)
- else
- fun_l6_n125(x)
- end
-end
-
-def fun_l5_n479(x)
- if (x < 1)
- fun_l6_n136(x)
- else
- fun_l6_n232(x)
- end
-end
-
-def fun_l5_n480(x)
- if (x < 1)
- fun_l6_n627(x)
- else
- fun_l6_n641(x)
- end
-end
-
-def fun_l5_n481(x)
- if (x < 1)
- fun_l6_n411(x)
- else
- fun_l6_n943(x)
- end
-end
-
-def fun_l5_n482(x)
- if (x < 1)
- fun_l6_n86(x)
- else
- fun_l6_n839(x)
- end
-end
-
-def fun_l5_n483(x)
- if (x < 1)
- fun_l6_n988(x)
- else
- fun_l6_n329(x)
- end
-end
-
-def fun_l5_n484(x)
- if (x < 1)
- fun_l6_n595(x)
- else
- fun_l6_n499(x)
- end
-end
-
-def fun_l5_n485(x)
- if (x < 1)
- fun_l6_n912(x)
- else
- fun_l6_n267(x)
- end
-end
-
-def fun_l5_n486(x)
- if (x < 1)
- fun_l6_n334(x)
- else
- fun_l6_n459(x)
- end
-end
-
-def fun_l5_n487(x)
- if (x < 1)
- fun_l6_n771(x)
- else
- fun_l6_n458(x)
- end
-end
-
-def fun_l5_n488(x)
- if (x < 1)
- fun_l6_n609(x)
- else
- fun_l6_n280(x)
- end
-end
-
-def fun_l5_n489(x)
- if (x < 1)
- fun_l6_n564(x)
- else
- fun_l6_n564(x)
- end
-end
-
-def fun_l5_n490(x)
- if (x < 1)
- fun_l6_n271(x)
- else
- fun_l6_n904(x)
- end
-end
-
-def fun_l5_n491(x)
- if (x < 1)
- fun_l6_n338(x)
- else
- fun_l6_n694(x)
- end
-end
-
-def fun_l5_n492(x)
- if (x < 1)
- fun_l6_n596(x)
- else
- fun_l6_n191(x)
- end
-end
-
-def fun_l5_n493(x)
- if (x < 1)
- fun_l6_n369(x)
- else
- fun_l6_n513(x)
- end
-end
-
-def fun_l5_n494(x)
- if (x < 1)
- fun_l6_n972(x)
- else
- fun_l6_n945(x)
- end
-end
-
-def fun_l5_n495(x)
- if (x < 1)
- fun_l6_n747(x)
- else
- fun_l6_n96(x)
- end
-end
-
-def fun_l5_n496(x)
- if (x < 1)
- fun_l6_n220(x)
- else
- fun_l6_n665(x)
- end
-end
-
-def fun_l5_n497(x)
- if (x < 1)
- fun_l6_n793(x)
- else
- fun_l6_n468(x)
- end
-end
-
-def fun_l5_n498(x)
- if (x < 1)
- fun_l6_n227(x)
- else
- fun_l6_n576(x)
- end
-end
-
-def fun_l5_n499(x)
- if (x < 1)
- fun_l6_n356(x)
- else
- fun_l6_n614(x)
- end
-end
-
-def fun_l5_n500(x)
- if (x < 1)
- fun_l6_n256(x)
- else
- fun_l6_n237(x)
- end
-end
-
-def fun_l5_n501(x)
- if (x < 1)
- fun_l6_n503(x)
- else
- fun_l6_n159(x)
- end
-end
-
-def fun_l5_n502(x)
- if (x < 1)
- fun_l6_n523(x)
- else
- fun_l6_n547(x)
- end
-end
-
-def fun_l5_n503(x)
- if (x < 1)
- fun_l6_n778(x)
- else
- fun_l6_n600(x)
- end
-end
-
-def fun_l5_n504(x)
- if (x < 1)
- fun_l6_n654(x)
- else
- fun_l6_n950(x)
- end
-end
-
-def fun_l5_n505(x)
- if (x < 1)
- fun_l6_n105(x)
- else
- fun_l6_n881(x)
- end
-end
-
-def fun_l5_n506(x)
- if (x < 1)
- fun_l6_n956(x)
- else
- fun_l6_n71(x)
- end
-end
-
-def fun_l5_n507(x)
- if (x < 1)
- fun_l6_n33(x)
- else
- fun_l6_n431(x)
- end
-end
-
-def fun_l5_n508(x)
- if (x < 1)
- fun_l6_n587(x)
- else
- fun_l6_n1(x)
- end
-end
-
-def fun_l5_n509(x)
- if (x < 1)
- fun_l6_n258(x)
- else
- fun_l6_n547(x)
- end
-end
-
-def fun_l5_n510(x)
- if (x < 1)
- fun_l6_n816(x)
- else
- fun_l6_n558(x)
- end
-end
-
-def fun_l5_n511(x)
- if (x < 1)
- fun_l6_n61(x)
- else
- fun_l6_n10(x)
- end
-end
-
-def fun_l5_n512(x)
- if (x < 1)
- fun_l6_n674(x)
- else
- fun_l6_n466(x)
- end
-end
-
-def fun_l5_n513(x)
- if (x < 1)
- fun_l6_n580(x)
- else
- fun_l6_n398(x)
- end
-end
-
-def fun_l5_n514(x)
- if (x < 1)
- fun_l6_n495(x)
- else
- fun_l6_n407(x)
- end
-end
-
-def fun_l5_n515(x)
- if (x < 1)
- fun_l6_n639(x)
- else
- fun_l6_n214(x)
- end
-end
-
-def fun_l5_n516(x)
- if (x < 1)
- fun_l6_n15(x)
- else
- fun_l6_n716(x)
- end
-end
-
-def fun_l5_n517(x)
- if (x < 1)
- fun_l6_n645(x)
- else
- fun_l6_n645(x)
- end
-end
-
-def fun_l5_n518(x)
- if (x < 1)
- fun_l6_n615(x)
- else
- fun_l6_n44(x)
- end
-end
-
-def fun_l5_n519(x)
- if (x < 1)
- fun_l6_n399(x)
- else
- fun_l6_n663(x)
- end
-end
-
-def fun_l5_n520(x)
- if (x < 1)
- fun_l6_n85(x)
- else
- fun_l6_n870(x)
- end
-end
-
-def fun_l5_n521(x)
- if (x < 1)
- fun_l6_n14(x)
- else
- fun_l6_n965(x)
- end
-end
-
-def fun_l5_n522(x)
- if (x < 1)
- fun_l6_n24(x)
- else
- fun_l6_n581(x)
- end
-end
-
-def fun_l5_n523(x)
- if (x < 1)
- fun_l6_n501(x)
- else
- fun_l6_n913(x)
- end
-end
-
-def fun_l5_n524(x)
- if (x < 1)
- fun_l6_n772(x)
- else
- fun_l6_n999(x)
- end
-end
-
-def fun_l5_n525(x)
- if (x < 1)
- fun_l6_n847(x)
- else
- fun_l6_n422(x)
- end
-end
-
-def fun_l5_n526(x)
- if (x < 1)
- fun_l6_n377(x)
- else
- fun_l6_n986(x)
- end
-end
-
-def fun_l5_n527(x)
- if (x < 1)
- fun_l6_n548(x)
- else
- fun_l6_n40(x)
- end
-end
-
-def fun_l5_n528(x)
- if (x < 1)
- fun_l6_n392(x)
- else
- fun_l6_n577(x)
- end
-end
-
-def fun_l5_n529(x)
- if (x < 1)
- fun_l6_n101(x)
- else
- fun_l6_n26(x)
- end
-end
-
-def fun_l5_n530(x)
- if (x < 1)
- fun_l6_n800(x)
- else
- fun_l6_n958(x)
- end
-end
-
-def fun_l5_n531(x)
- if (x < 1)
- fun_l6_n72(x)
- else
- fun_l6_n887(x)
- end
-end
-
-def fun_l5_n532(x)
- if (x < 1)
- fun_l6_n467(x)
- else
- fun_l6_n740(x)
- end
-end
-
-def fun_l5_n533(x)
- if (x < 1)
- fun_l6_n264(x)
- else
- fun_l6_n683(x)
- end
-end
-
-def fun_l5_n534(x)
- if (x < 1)
- fun_l6_n953(x)
- else
- fun_l6_n560(x)
- end
-end
-
-def fun_l5_n535(x)
- if (x < 1)
- fun_l6_n854(x)
- else
- fun_l6_n59(x)
- end
-end
-
-def fun_l5_n536(x)
- if (x < 1)
- fun_l6_n940(x)
- else
- fun_l6_n832(x)
- end
-end
-
-def fun_l5_n537(x)
- if (x < 1)
- fun_l6_n297(x)
- else
- fun_l6_n18(x)
- end
-end
-
-def fun_l5_n538(x)
- if (x < 1)
- fun_l6_n188(x)
- else
- fun_l6_n537(x)
- end
-end
-
-def fun_l5_n539(x)
- if (x < 1)
- fun_l6_n992(x)
- else
- fun_l6_n825(x)
- end
-end
-
-def fun_l5_n540(x)
- if (x < 1)
- fun_l6_n691(x)
- else
- fun_l6_n850(x)
- end
-end
-
-def fun_l5_n541(x)
- if (x < 1)
- fun_l6_n858(x)
- else
- fun_l6_n948(x)
- end
-end
-
-def fun_l5_n542(x)
- if (x < 1)
- fun_l6_n923(x)
- else
- fun_l6_n112(x)
- end
-end
-
-def fun_l5_n543(x)
- if (x < 1)
- fun_l6_n419(x)
- else
- fun_l6_n4(x)
- end
-end
-
-def fun_l5_n544(x)
- if (x < 1)
- fun_l6_n766(x)
- else
- fun_l6_n147(x)
- end
-end
-
-def fun_l5_n545(x)
- if (x < 1)
- fun_l6_n327(x)
- else
- fun_l6_n327(x)
- end
-end
-
-def fun_l5_n546(x)
- if (x < 1)
- fun_l6_n94(x)
- else
- fun_l6_n662(x)
- end
-end
-
-def fun_l5_n547(x)
- if (x < 1)
- fun_l6_n764(x)
- else
- fun_l6_n521(x)
- end
-end
-
-def fun_l5_n548(x)
- if (x < 1)
- fun_l6_n509(x)
- else
- fun_l6_n231(x)
- end
-end
-
-def fun_l5_n549(x)
- if (x < 1)
- fun_l6_n370(x)
- else
- fun_l6_n599(x)
- end
-end
-
-def fun_l5_n550(x)
- if (x < 1)
- fun_l6_n710(x)
- else
- fun_l6_n104(x)
- end
-end
-
-def fun_l5_n551(x)
- if (x < 1)
- fun_l6_n677(x)
- else
- fun_l6_n184(x)
- end
-end
-
-def fun_l5_n552(x)
- if (x < 1)
- fun_l6_n700(x)
- else
- fun_l6_n299(x)
- end
-end
-
-def fun_l5_n553(x)
- if (x < 1)
- fun_l6_n688(x)
- else
- fun_l6_n934(x)
- end
-end
-
-def fun_l5_n554(x)
- if (x < 1)
- fun_l6_n771(x)
- else
- fun_l6_n989(x)
- end
-end
-
-def fun_l5_n555(x)
- if (x < 1)
- fun_l6_n164(x)
- else
- fun_l6_n197(x)
- end
-end
-
-def fun_l5_n556(x)
- if (x < 1)
- fun_l6_n901(x)
- else
- fun_l6_n235(x)
- end
-end
-
-def fun_l5_n557(x)
- if (x < 1)
- fun_l6_n990(x)
- else
- fun_l6_n490(x)
- end
-end
-
-def fun_l5_n558(x)
- if (x < 1)
- fun_l6_n476(x)
- else
- fun_l6_n612(x)
- end
-end
-
-def fun_l5_n559(x)
- if (x < 1)
- fun_l6_n761(x)
- else
- fun_l6_n3(x)
- end
-end
-
-def fun_l5_n560(x)
- if (x < 1)
- fun_l6_n461(x)
- else
- fun_l6_n832(x)
- end
-end
-
-def fun_l5_n561(x)
- if (x < 1)
- fun_l6_n206(x)
- else
- fun_l6_n815(x)
- end
-end
-
-def fun_l5_n562(x)
- if (x < 1)
- fun_l6_n180(x)
- else
- fun_l6_n640(x)
- end
-end
-
-def fun_l5_n563(x)
- if (x < 1)
- fun_l6_n612(x)
- else
- fun_l6_n900(x)
- end
-end
-
-def fun_l5_n564(x)
- if (x < 1)
- fun_l6_n31(x)
- else
- fun_l6_n290(x)
- end
-end
-
-def fun_l5_n565(x)
- if (x < 1)
- fun_l6_n322(x)
- else
- fun_l6_n136(x)
- end
-end
-
-def fun_l5_n566(x)
- if (x < 1)
- fun_l6_n657(x)
- else
- fun_l6_n649(x)
- end
-end
-
-def fun_l5_n567(x)
- if (x < 1)
- fun_l6_n683(x)
- else
- fun_l6_n903(x)
- end
-end
-
-def fun_l5_n568(x)
- if (x < 1)
- fun_l6_n391(x)
- else
- fun_l6_n117(x)
- end
-end
-
-def fun_l5_n569(x)
- if (x < 1)
- fun_l6_n868(x)
- else
- fun_l6_n644(x)
- end
-end
-
-def fun_l5_n570(x)
- if (x < 1)
- fun_l6_n493(x)
- else
- fun_l6_n638(x)
- end
-end
-
-def fun_l5_n571(x)
- if (x < 1)
- fun_l6_n207(x)
- else
- fun_l6_n650(x)
- end
-end
-
-def fun_l5_n572(x)
- if (x < 1)
- fun_l6_n575(x)
- else
- fun_l6_n421(x)
- end
-end
-
-def fun_l5_n573(x)
- if (x < 1)
- fun_l6_n757(x)
- else
- fun_l6_n515(x)
- end
-end
-
-def fun_l5_n574(x)
- if (x < 1)
- fun_l6_n619(x)
- else
- fun_l6_n39(x)
- end
-end
-
-def fun_l5_n575(x)
- if (x < 1)
- fun_l6_n91(x)
- else
- fun_l6_n79(x)
- end
-end
-
-def fun_l5_n576(x)
- if (x < 1)
- fun_l6_n492(x)
- else
- fun_l6_n938(x)
- end
-end
-
-def fun_l5_n577(x)
- if (x < 1)
- fun_l6_n181(x)
- else
- fun_l6_n98(x)
- end
-end
-
-def fun_l5_n578(x)
- if (x < 1)
- fun_l6_n823(x)
- else
- fun_l6_n528(x)
- end
-end
-
-def fun_l5_n579(x)
- if (x < 1)
- fun_l6_n218(x)
- else
- fun_l6_n613(x)
- end
-end
-
-def fun_l5_n580(x)
- if (x < 1)
- fun_l6_n81(x)
- else
- fun_l6_n318(x)
- end
-end
-
-def fun_l5_n581(x)
- if (x < 1)
- fun_l6_n953(x)
- else
- fun_l6_n162(x)
- end
-end
-
-def fun_l5_n582(x)
- if (x < 1)
- fun_l6_n225(x)
- else
- fun_l6_n441(x)
- end
-end
-
-def fun_l5_n583(x)
- if (x < 1)
- fun_l6_n862(x)
- else
- fun_l6_n939(x)
- end
-end
-
-def fun_l5_n584(x)
- if (x < 1)
- fun_l6_n401(x)
- else
- fun_l6_n149(x)
- end
-end
-
-def fun_l5_n585(x)
- if (x < 1)
- fun_l6_n94(x)
- else
- fun_l6_n320(x)
- end
-end
-
-def fun_l5_n586(x)
- if (x < 1)
- fun_l6_n609(x)
- else
- fun_l6_n524(x)
- end
-end
-
-def fun_l5_n587(x)
- if (x < 1)
- fun_l6_n412(x)
- else
- fun_l6_n350(x)
- end
-end
-
-def fun_l5_n588(x)
- if (x < 1)
- fun_l6_n874(x)
- else
- fun_l6_n217(x)
- end
-end
-
-def fun_l5_n589(x)
- if (x < 1)
- fun_l6_n989(x)
- else
- fun_l6_n62(x)
- end
-end
-
-def fun_l5_n590(x)
- if (x < 1)
- fun_l6_n91(x)
- else
- fun_l6_n360(x)
- end
-end
-
-def fun_l5_n591(x)
- if (x < 1)
- fun_l6_n392(x)
- else
- fun_l6_n530(x)
- end
-end
-
-def fun_l5_n592(x)
- if (x < 1)
- fun_l6_n635(x)
- else
- fun_l6_n268(x)
- end
-end
-
-def fun_l5_n593(x)
- if (x < 1)
- fun_l6_n747(x)
- else
- fun_l6_n345(x)
- end
-end
-
-def fun_l5_n594(x)
- if (x < 1)
- fun_l6_n450(x)
- else
- fun_l6_n165(x)
- end
-end
-
-def fun_l5_n595(x)
- if (x < 1)
- fun_l6_n960(x)
- else
- fun_l6_n256(x)
- end
-end
-
-def fun_l5_n596(x)
- if (x < 1)
- fun_l6_n724(x)
- else
- fun_l6_n506(x)
- end
-end
-
-def fun_l5_n597(x)
- if (x < 1)
- fun_l6_n809(x)
- else
- fun_l6_n180(x)
- end
-end
-
-def fun_l5_n598(x)
- if (x < 1)
- fun_l6_n799(x)
- else
- fun_l6_n59(x)
- end
-end
-
-def fun_l5_n599(x)
- if (x < 1)
- fun_l6_n412(x)
- else
- fun_l6_n868(x)
- end
-end
-
-def fun_l5_n600(x)
- if (x < 1)
- fun_l6_n459(x)
- else
- fun_l6_n537(x)
- end
-end
-
-def fun_l5_n601(x)
- if (x < 1)
- fun_l6_n321(x)
- else
- fun_l6_n39(x)
- end
-end
-
-def fun_l5_n602(x)
- if (x < 1)
- fun_l6_n561(x)
- else
- fun_l6_n413(x)
- end
-end
-
-def fun_l5_n603(x)
- if (x < 1)
- fun_l6_n173(x)
- else
- fun_l6_n324(x)
- end
-end
-
-def fun_l5_n604(x)
- if (x < 1)
- fun_l6_n583(x)
- else
- fun_l6_n763(x)
- end
-end
-
-def fun_l5_n605(x)
- if (x < 1)
- fun_l6_n200(x)
- else
- fun_l6_n996(x)
- end
-end
-
-def fun_l5_n606(x)
- if (x < 1)
- fun_l6_n465(x)
- else
- fun_l6_n777(x)
- end
-end
-
-def fun_l5_n607(x)
- if (x < 1)
- fun_l6_n744(x)
- else
- fun_l6_n917(x)
- end
-end
-
-def fun_l5_n608(x)
- if (x < 1)
- fun_l6_n825(x)
- else
- fun_l6_n751(x)
- end
-end
-
-def fun_l5_n609(x)
- if (x < 1)
- fun_l6_n357(x)
- else
- fun_l6_n889(x)
- end
-end
-
-def fun_l5_n610(x)
- if (x < 1)
- fun_l6_n534(x)
- else
- fun_l6_n628(x)
- end
-end
-
-def fun_l5_n611(x)
- if (x < 1)
- fun_l6_n242(x)
- else
- fun_l6_n57(x)
- end
-end
-
-def fun_l5_n612(x)
- if (x < 1)
- fun_l6_n426(x)
- else
- fun_l6_n295(x)
- end
-end
-
-def fun_l5_n613(x)
- if (x < 1)
- fun_l6_n218(x)
- else
- fun_l6_n194(x)
- end
-end
-
-def fun_l5_n614(x)
- if (x < 1)
- fun_l6_n618(x)
- else
- fun_l6_n757(x)
- end
-end
-
-def fun_l5_n615(x)
- if (x < 1)
- fun_l6_n708(x)
- else
- fun_l6_n187(x)
- end
-end
-
-def fun_l5_n616(x)
- if (x < 1)
- fun_l6_n824(x)
- else
- fun_l6_n384(x)
- end
-end
-
-def fun_l5_n617(x)
- if (x < 1)
- fun_l6_n149(x)
- else
- fun_l6_n741(x)
- end
-end
-
-def fun_l5_n618(x)
- if (x < 1)
- fun_l6_n889(x)
- else
- fun_l6_n768(x)
- end
-end
-
-def fun_l5_n619(x)
- if (x < 1)
- fun_l6_n144(x)
- else
- fun_l6_n746(x)
- end
-end
-
-def fun_l5_n620(x)
- if (x < 1)
- fun_l6_n338(x)
- else
- fun_l6_n757(x)
- end
-end
-
-def fun_l5_n621(x)
- if (x < 1)
- fun_l6_n623(x)
- else
- fun_l6_n432(x)
- end
-end
-
-def fun_l5_n622(x)
- if (x < 1)
- fun_l6_n139(x)
- else
- fun_l6_n162(x)
- end
-end
-
-def fun_l5_n623(x)
- if (x < 1)
- fun_l6_n371(x)
- else
- fun_l6_n297(x)
- end
-end
-
-def fun_l5_n624(x)
- if (x < 1)
- fun_l6_n166(x)
- else
- fun_l6_n172(x)
- end
-end
-
-def fun_l5_n625(x)
- if (x < 1)
- fun_l6_n506(x)
- else
- fun_l6_n7(x)
- end
-end
-
-def fun_l5_n626(x)
- if (x < 1)
- fun_l6_n334(x)
- else
- fun_l6_n631(x)
- end
-end
-
-def fun_l5_n627(x)
- if (x < 1)
- fun_l6_n209(x)
- else
- fun_l6_n316(x)
- end
-end
-
-def fun_l5_n628(x)
- if (x < 1)
- fun_l6_n461(x)
- else
- fun_l6_n34(x)
- end
-end
-
-def fun_l5_n629(x)
- if (x < 1)
- fun_l6_n6(x)
- else
- fun_l6_n818(x)
- end
-end
-
-def fun_l5_n630(x)
- if (x < 1)
- fun_l6_n265(x)
- else
- fun_l6_n111(x)
- end
-end
-
-def fun_l5_n631(x)
- if (x < 1)
- fun_l6_n493(x)
- else
- fun_l6_n64(x)
- end
-end
-
-def fun_l5_n632(x)
- if (x < 1)
- fun_l6_n513(x)
- else
- fun_l6_n890(x)
- end
-end
-
-def fun_l5_n633(x)
- if (x < 1)
- fun_l6_n295(x)
- else
- fun_l6_n295(x)
- end
-end
-
-def fun_l5_n634(x)
- if (x < 1)
- fun_l6_n158(x)
- else
- fun_l6_n971(x)
- end
-end
-
-def fun_l5_n635(x)
- if (x < 1)
- fun_l6_n171(x)
- else
- fun_l6_n337(x)
- end
-end
-
-def fun_l5_n636(x)
- if (x < 1)
- fun_l6_n943(x)
- else
- fun_l6_n502(x)
- end
-end
-
-def fun_l5_n637(x)
- if (x < 1)
- fun_l6_n339(x)
- else
- fun_l6_n638(x)
- end
-end
-
-def fun_l5_n638(x)
- if (x < 1)
- fun_l6_n155(x)
- else
- fun_l6_n393(x)
- end
-end
-
-def fun_l5_n639(x)
- if (x < 1)
- fun_l6_n29(x)
- else
- fun_l6_n506(x)
- end
-end
-
-def fun_l5_n640(x)
- if (x < 1)
- fun_l6_n677(x)
- else
- fun_l6_n606(x)
- end
-end
-
-def fun_l5_n641(x)
- if (x < 1)
- fun_l6_n306(x)
- else
- fun_l6_n571(x)
- end
-end
-
-def fun_l5_n642(x)
- if (x < 1)
- fun_l6_n490(x)
- else
- fun_l6_n281(x)
- end
-end
-
-def fun_l5_n643(x)
- if (x < 1)
- fun_l6_n392(x)
- else
- fun_l6_n686(x)
- end
-end
-
-def fun_l5_n644(x)
- if (x < 1)
- fun_l6_n257(x)
- else
- fun_l6_n358(x)
- end
-end
-
-def fun_l5_n645(x)
- if (x < 1)
- fun_l6_n949(x)
- else
- fun_l6_n15(x)
- end
-end
-
-def fun_l5_n646(x)
- if (x < 1)
- fun_l6_n866(x)
- else
- fun_l6_n657(x)
- end
-end
-
-def fun_l5_n647(x)
- if (x < 1)
- fun_l6_n624(x)
- else
- fun_l6_n390(x)
- end
-end
-
-def fun_l5_n648(x)
- if (x < 1)
- fun_l6_n394(x)
- else
- fun_l6_n951(x)
- end
-end
-
-def fun_l5_n649(x)
- if (x < 1)
- fun_l6_n99(x)
- else
- fun_l6_n160(x)
- end
-end
-
-def fun_l5_n650(x)
- if (x < 1)
- fun_l6_n84(x)
- else
- fun_l6_n111(x)
- end
-end
-
-def fun_l5_n651(x)
- if (x < 1)
- fun_l6_n635(x)
- else
- fun_l6_n507(x)
- end
-end
-
-def fun_l5_n652(x)
- if (x < 1)
- fun_l6_n674(x)
- else
- fun_l6_n501(x)
- end
-end
-
-def fun_l5_n653(x)
- if (x < 1)
- fun_l6_n171(x)
- else
- fun_l6_n645(x)
- end
-end
-
-def fun_l5_n654(x)
- if (x < 1)
- fun_l6_n327(x)
- else
- fun_l6_n152(x)
- end
-end
-
-def fun_l5_n655(x)
- if (x < 1)
- fun_l6_n210(x)
- else
- fun_l6_n441(x)
- end
-end
-
-def fun_l5_n656(x)
- if (x < 1)
- fun_l6_n691(x)
- else
- fun_l6_n813(x)
- end
-end
-
-def fun_l5_n657(x)
- if (x < 1)
- fun_l6_n671(x)
- else
- fun_l6_n683(x)
- end
-end
-
-def fun_l5_n658(x)
- if (x < 1)
- fun_l6_n939(x)
- else
- fun_l6_n580(x)
- end
-end
-
-def fun_l5_n659(x)
- if (x < 1)
- fun_l6_n152(x)
- else
- fun_l6_n159(x)
- end
-end
-
-def fun_l5_n660(x)
- if (x < 1)
- fun_l6_n50(x)
- else
- fun_l6_n911(x)
- end
-end
-
-def fun_l5_n661(x)
- if (x < 1)
- fun_l6_n700(x)
- else
- fun_l6_n972(x)
- end
-end
-
-def fun_l5_n662(x)
- if (x < 1)
- fun_l6_n22(x)
- else
- fun_l6_n82(x)
- end
-end
-
-def fun_l5_n663(x)
- if (x < 1)
- fun_l6_n51(x)
- else
- fun_l6_n827(x)
- end
-end
-
-def fun_l5_n664(x)
- if (x < 1)
- fun_l6_n997(x)
- else
- fun_l6_n289(x)
- end
-end
-
-def fun_l5_n665(x)
- if (x < 1)
- fun_l6_n666(x)
- else
- fun_l6_n775(x)
- end
-end
-
-def fun_l5_n666(x)
- if (x < 1)
- fun_l6_n373(x)
- else
- fun_l6_n175(x)
- end
-end
-
-def fun_l5_n667(x)
- if (x < 1)
- fun_l6_n551(x)
- else
- fun_l6_n772(x)
- end
-end
-
-def fun_l5_n668(x)
- if (x < 1)
- fun_l6_n107(x)
- else
- fun_l6_n197(x)
- end
-end
-
-def fun_l5_n669(x)
- if (x < 1)
- fun_l6_n244(x)
- else
- fun_l6_n968(x)
- end
-end
-
-def fun_l5_n670(x)
- if (x < 1)
- fun_l6_n798(x)
- else
- fun_l6_n30(x)
- end
-end
-
-def fun_l5_n671(x)
- if (x < 1)
- fun_l6_n48(x)
- else
- fun_l6_n186(x)
- end
-end
-
-def fun_l5_n672(x)
- if (x < 1)
- fun_l6_n373(x)
- else
- fun_l6_n937(x)
- end
-end
-
-def fun_l5_n673(x)
- if (x < 1)
- fun_l6_n759(x)
- else
- fun_l6_n92(x)
- end
-end
-
-def fun_l5_n674(x)
- if (x < 1)
- fun_l6_n380(x)
- else
- fun_l6_n772(x)
- end
-end
-
-def fun_l5_n675(x)
- if (x < 1)
- fun_l6_n916(x)
- else
- fun_l6_n329(x)
- end
-end
-
-def fun_l5_n676(x)
- if (x < 1)
- fun_l6_n110(x)
- else
- fun_l6_n951(x)
- end
-end
-
-def fun_l5_n677(x)
- if (x < 1)
- fun_l6_n363(x)
- else
- fun_l6_n35(x)
- end
-end
-
-def fun_l5_n678(x)
- if (x < 1)
- fun_l6_n484(x)
- else
- fun_l6_n492(x)
- end
-end
-
-def fun_l5_n679(x)
- if (x < 1)
- fun_l6_n801(x)
- else
- fun_l6_n279(x)
- end
-end
-
-def fun_l5_n680(x)
- if (x < 1)
- fun_l6_n499(x)
- else
- fun_l6_n561(x)
- end
-end
-
-def fun_l5_n681(x)
- if (x < 1)
- fun_l6_n800(x)
- else
- fun_l6_n890(x)
- end
-end
-
-def fun_l5_n682(x)
- if (x < 1)
- fun_l6_n191(x)
- else
- fun_l6_n686(x)
- end
-end
-
-def fun_l5_n683(x)
- if (x < 1)
- fun_l6_n318(x)
- else
- fun_l6_n683(x)
- end
-end
-
-def fun_l5_n684(x)
- if (x < 1)
- fun_l6_n500(x)
- else
- fun_l6_n914(x)
- end
-end
-
-def fun_l5_n685(x)
- if (x < 1)
- fun_l6_n24(x)
- else
- fun_l6_n945(x)
- end
-end
-
-def fun_l5_n686(x)
- if (x < 1)
- fun_l6_n602(x)
- else
- fun_l6_n291(x)
- end
-end
-
-def fun_l5_n687(x)
- if (x < 1)
- fun_l6_n999(x)
- else
- fun_l6_n86(x)
- end
-end
-
-def fun_l5_n688(x)
- if (x < 1)
- fun_l6_n106(x)
- else
- fun_l6_n754(x)
- end
-end
-
-def fun_l5_n689(x)
- if (x < 1)
- fun_l6_n452(x)
- else
- fun_l6_n229(x)
- end
-end
-
-def fun_l5_n690(x)
- if (x < 1)
- fun_l6_n672(x)
- else
- fun_l6_n587(x)
- end
-end
-
-def fun_l5_n691(x)
- if (x < 1)
- fun_l6_n532(x)
- else
- fun_l6_n56(x)
- end
-end
-
-def fun_l5_n692(x)
- if (x < 1)
- fun_l6_n606(x)
- else
- fun_l6_n552(x)
- end
-end
-
-def fun_l5_n693(x)
- if (x < 1)
- fun_l6_n742(x)
- else
- fun_l6_n862(x)
- end
-end
-
-def fun_l5_n694(x)
- if (x < 1)
- fun_l6_n964(x)
- else
- fun_l6_n475(x)
- end
-end
-
-def fun_l5_n695(x)
- if (x < 1)
- fun_l6_n179(x)
- else
- fun_l6_n947(x)
- end
-end
-
-def fun_l5_n696(x)
- if (x < 1)
- fun_l6_n563(x)
- else
- fun_l6_n329(x)
- end
-end
-
-def fun_l5_n697(x)
- if (x < 1)
- fun_l6_n786(x)
- else
- fun_l6_n502(x)
- end
-end
-
-def fun_l5_n698(x)
- if (x < 1)
- fun_l6_n178(x)
- else
- fun_l6_n757(x)
- end
-end
-
-def fun_l5_n699(x)
- if (x < 1)
- fun_l6_n248(x)
- else
- fun_l6_n288(x)
- end
-end
-
-def fun_l5_n700(x)
- if (x < 1)
- fun_l6_n262(x)
- else
- fun_l6_n650(x)
- end
-end
-
-def fun_l5_n701(x)
- if (x < 1)
- fun_l6_n90(x)
- else
- fun_l6_n964(x)
- end
-end
-
-def fun_l5_n702(x)
- if (x < 1)
- fun_l6_n864(x)
- else
- fun_l6_n743(x)
- end
-end
-
-def fun_l5_n703(x)
- if (x < 1)
- fun_l6_n816(x)
- else
- fun_l6_n364(x)
- end
-end
-
-def fun_l5_n704(x)
- if (x < 1)
- fun_l6_n590(x)
- else
- fun_l6_n434(x)
- end
-end
-
-def fun_l5_n705(x)
- if (x < 1)
- fun_l6_n875(x)
- else
- fun_l6_n539(x)
- end
-end
-
-def fun_l5_n706(x)
- if (x < 1)
- fun_l6_n964(x)
- else
- fun_l6_n564(x)
- end
-end
-
-def fun_l5_n707(x)
- if (x < 1)
- fun_l6_n315(x)
- else
- fun_l6_n460(x)
- end
-end
-
-def fun_l5_n708(x)
- if (x < 1)
- fun_l6_n139(x)
- else
- fun_l6_n210(x)
- end
-end
-
-def fun_l5_n709(x)
- if (x < 1)
- fun_l6_n593(x)
- else
- fun_l6_n933(x)
- end
-end
-
-def fun_l5_n710(x)
- if (x < 1)
- fun_l6_n37(x)
- else
- fun_l6_n459(x)
- end
-end
-
-def fun_l5_n711(x)
- if (x < 1)
- fun_l6_n768(x)
- else
- fun_l6_n256(x)
- end
-end
-
-def fun_l5_n712(x)
- if (x < 1)
- fun_l6_n506(x)
- else
- fun_l6_n936(x)
- end
-end
-
-def fun_l5_n713(x)
- if (x < 1)
- fun_l6_n971(x)
- else
- fun_l6_n575(x)
- end
-end
-
-def fun_l5_n714(x)
- if (x < 1)
- fun_l6_n498(x)
- else
- fun_l6_n932(x)
- end
-end
-
-def fun_l5_n715(x)
- if (x < 1)
- fun_l6_n362(x)
- else
- fun_l6_n949(x)
- end
-end
-
-def fun_l5_n716(x)
- if (x < 1)
- fun_l6_n706(x)
- else
- fun_l6_n788(x)
- end
-end
-
-def fun_l5_n717(x)
- if (x < 1)
- fun_l6_n405(x)
- else
- fun_l6_n803(x)
- end
-end
-
-def fun_l5_n718(x)
- if (x < 1)
- fun_l6_n166(x)
- else
- fun_l6_n917(x)
- end
-end
-
-def fun_l5_n719(x)
- if (x < 1)
- fun_l6_n899(x)
- else
- fun_l6_n836(x)
- end
-end
-
-def fun_l5_n720(x)
- if (x < 1)
- fun_l6_n805(x)
- else
- fun_l6_n159(x)
- end
-end
-
-def fun_l5_n721(x)
- if (x < 1)
- fun_l6_n960(x)
- else
- fun_l6_n113(x)
- end
-end
-
-def fun_l5_n722(x)
- if (x < 1)
- fun_l6_n807(x)
- else
- fun_l6_n533(x)
- end
-end
-
-def fun_l5_n723(x)
- if (x < 1)
- fun_l6_n480(x)
- else
- fun_l6_n907(x)
- end
-end
-
-def fun_l5_n724(x)
- if (x < 1)
- fun_l6_n951(x)
- else
- fun_l6_n793(x)
- end
-end
-
-def fun_l5_n725(x)
- if (x < 1)
- fun_l6_n951(x)
- else
- fun_l6_n771(x)
- end
-end
-
-def fun_l5_n726(x)
- if (x < 1)
- fun_l6_n435(x)
- else
- fun_l6_n336(x)
- end
-end
-
-def fun_l5_n727(x)
- if (x < 1)
- fun_l6_n222(x)
- else
- fun_l6_n393(x)
- end
-end
-
-def fun_l5_n728(x)
- if (x < 1)
- fun_l6_n988(x)
- else
- fun_l6_n402(x)
- end
-end
-
-def fun_l5_n729(x)
- if (x < 1)
- fun_l6_n9(x)
- else
- fun_l6_n46(x)
- end
-end
-
-def fun_l5_n730(x)
- if (x < 1)
- fun_l6_n722(x)
- else
- fun_l6_n112(x)
- end
-end
-
-def fun_l5_n731(x)
- if (x < 1)
- fun_l6_n543(x)
- else
- fun_l6_n813(x)
- end
-end
-
-def fun_l5_n732(x)
- if (x < 1)
- fun_l6_n337(x)
- else
- fun_l6_n245(x)
- end
-end
-
-def fun_l5_n733(x)
- if (x < 1)
- fun_l6_n84(x)
- else
- fun_l6_n335(x)
- end
-end
-
-def fun_l5_n734(x)
- if (x < 1)
- fun_l6_n697(x)
- else
- fun_l6_n498(x)
- end
-end
-
-def fun_l5_n735(x)
- if (x < 1)
- fun_l6_n2(x)
- else
- fun_l6_n895(x)
- end
-end
-
-def fun_l5_n736(x)
- if (x < 1)
- fun_l6_n619(x)
- else
- fun_l6_n163(x)
- end
-end
-
-def fun_l5_n737(x)
- if (x < 1)
- fun_l6_n237(x)
- else
- fun_l6_n6(x)
- end
-end
-
-def fun_l5_n738(x)
- if (x < 1)
- fun_l6_n259(x)
- else
- fun_l6_n95(x)
- end
-end
-
-def fun_l5_n739(x)
- if (x < 1)
- fun_l6_n98(x)
- else
- fun_l6_n331(x)
- end
-end
-
-def fun_l5_n740(x)
- if (x < 1)
- fun_l6_n489(x)
- else
- fun_l6_n305(x)
- end
-end
-
-def fun_l5_n741(x)
- if (x < 1)
- fun_l6_n493(x)
- else
- fun_l6_n525(x)
- end
-end
-
-def fun_l5_n742(x)
- if (x < 1)
- fun_l6_n269(x)
- else
- fun_l6_n742(x)
- end
-end
-
-def fun_l5_n743(x)
- if (x < 1)
- fun_l6_n194(x)
- else
- fun_l6_n254(x)
- end
-end
-
-def fun_l5_n744(x)
- if (x < 1)
- fun_l6_n247(x)
- else
- fun_l6_n909(x)
- end
-end
-
-def fun_l5_n745(x)
- if (x < 1)
- fun_l6_n388(x)
- else
- fun_l6_n657(x)
- end
-end
-
-def fun_l5_n746(x)
- if (x < 1)
- fun_l6_n27(x)
- else
- fun_l6_n286(x)
- end
-end
-
-def fun_l5_n747(x)
- if (x < 1)
- fun_l6_n659(x)
- else
- fun_l6_n895(x)
- end
-end
-
-def fun_l5_n748(x)
- if (x < 1)
- fun_l6_n538(x)
- else
- fun_l6_n667(x)
- end
-end
-
-def fun_l5_n749(x)
- if (x < 1)
- fun_l6_n208(x)
- else
- fun_l6_n493(x)
- end
-end
-
-def fun_l5_n750(x)
- if (x < 1)
- fun_l6_n326(x)
- else
- fun_l6_n570(x)
- end
-end
-
-def fun_l5_n751(x)
- if (x < 1)
- fun_l6_n437(x)
- else
- fun_l6_n716(x)
- end
-end
-
-def fun_l5_n752(x)
- if (x < 1)
- fun_l6_n957(x)
- else
- fun_l6_n231(x)
- end
-end
-
-def fun_l5_n753(x)
- if (x < 1)
- fun_l6_n846(x)
- else
- fun_l6_n900(x)
- end
-end
-
-def fun_l5_n754(x)
- if (x < 1)
- fun_l6_n81(x)
- else
- fun_l6_n464(x)
- end
-end
-
-def fun_l5_n755(x)
- if (x < 1)
- fun_l6_n735(x)
- else
- fun_l6_n232(x)
- end
-end
-
-def fun_l5_n756(x)
- if (x < 1)
- fun_l6_n577(x)
- else
- fun_l6_n804(x)
- end
-end
-
-def fun_l5_n757(x)
- if (x < 1)
- fun_l6_n363(x)
- else
- fun_l6_n155(x)
- end
-end
-
-def fun_l5_n758(x)
- if (x < 1)
- fun_l6_n534(x)
- else
- fun_l6_n827(x)
- end
-end
-
-def fun_l5_n759(x)
- if (x < 1)
- fun_l6_n711(x)
- else
- fun_l6_n53(x)
- end
-end
-
-def fun_l5_n760(x)
- if (x < 1)
- fun_l6_n80(x)
- else
- fun_l6_n734(x)
- end
-end
-
-def fun_l5_n761(x)
- if (x < 1)
- fun_l6_n811(x)
- else
- fun_l6_n691(x)
- end
-end
-
-def fun_l5_n762(x)
- if (x < 1)
- fun_l6_n847(x)
- else
- fun_l6_n570(x)
- end
-end
-
-def fun_l5_n763(x)
- if (x < 1)
- fun_l6_n30(x)
- else
- fun_l6_n283(x)
- end
-end
-
-def fun_l5_n764(x)
- if (x < 1)
- fun_l6_n270(x)
- else
- fun_l6_n965(x)
- end
-end
-
-def fun_l5_n765(x)
- if (x < 1)
- fun_l6_n936(x)
- else
- fun_l6_n772(x)
- end
-end
-
-def fun_l5_n766(x)
- if (x < 1)
- fun_l6_n181(x)
- else
- fun_l6_n682(x)
- end
-end
-
-def fun_l5_n767(x)
- if (x < 1)
- fun_l6_n327(x)
- else
- fun_l6_n5(x)
- end
-end
-
-def fun_l5_n768(x)
- if (x < 1)
- fun_l6_n296(x)
- else
- fun_l6_n940(x)
- end
-end
-
-def fun_l5_n769(x)
- if (x < 1)
- fun_l6_n543(x)
- else
- fun_l6_n871(x)
- end
-end
-
-def fun_l5_n770(x)
- if (x < 1)
- fun_l6_n670(x)
- else
- fun_l6_n128(x)
- end
-end
-
-def fun_l5_n771(x)
- if (x < 1)
- fun_l6_n184(x)
- else
- fun_l6_n794(x)
- end
-end
-
-def fun_l5_n772(x)
- if (x < 1)
- fun_l6_n571(x)
- else
- fun_l6_n337(x)
- end
-end
-
-def fun_l5_n773(x)
- if (x < 1)
- fun_l6_n674(x)
- else
- fun_l6_n712(x)
- end
-end
-
-def fun_l5_n774(x)
- if (x < 1)
- fun_l6_n572(x)
- else
- fun_l6_n944(x)
- end
-end
-
-def fun_l5_n775(x)
- if (x < 1)
- fun_l6_n122(x)
- else
- fun_l6_n897(x)
- end
-end
-
-def fun_l5_n776(x)
- if (x < 1)
- fun_l6_n461(x)
- else
- fun_l6_n202(x)
- end
-end
-
-def fun_l5_n777(x)
- if (x < 1)
- fun_l6_n99(x)
- else
- fun_l6_n256(x)
- end
-end
-
-def fun_l5_n778(x)
- if (x < 1)
- fun_l6_n547(x)
- else
- fun_l6_n138(x)
- end
-end
-
-def fun_l5_n779(x)
- if (x < 1)
- fun_l6_n56(x)
- else
- fun_l6_n682(x)
- end
-end
-
-def fun_l5_n780(x)
- if (x < 1)
- fun_l6_n10(x)
- else
- fun_l6_n238(x)
- end
-end
-
-def fun_l5_n781(x)
- if (x < 1)
- fun_l6_n577(x)
- else
- fun_l6_n590(x)
- end
-end
-
-def fun_l5_n782(x)
- if (x < 1)
- fun_l6_n415(x)
- else
- fun_l6_n522(x)
- end
-end
-
-def fun_l5_n783(x)
- if (x < 1)
- fun_l6_n255(x)
- else
- fun_l6_n182(x)
- end
-end
-
-def fun_l5_n784(x)
- if (x < 1)
- fun_l6_n755(x)
- else
- fun_l6_n644(x)
- end
-end
-
-def fun_l5_n785(x)
- if (x < 1)
- fun_l6_n39(x)
- else
- fun_l6_n296(x)
- end
-end
-
-def fun_l5_n786(x)
- if (x < 1)
- fun_l6_n17(x)
- else
- fun_l6_n811(x)
- end
-end
-
-def fun_l5_n787(x)
- if (x < 1)
- fun_l6_n814(x)
- else
- fun_l6_n989(x)
- end
-end
-
-def fun_l5_n788(x)
- if (x < 1)
- fun_l6_n791(x)
- else
- fun_l6_n688(x)
- end
-end
-
-def fun_l5_n789(x)
- if (x < 1)
- fun_l6_n415(x)
- else
- fun_l6_n218(x)
- end
-end
-
-def fun_l5_n790(x)
- if (x < 1)
- fun_l6_n227(x)
- else
- fun_l6_n391(x)
- end
-end
-
-def fun_l5_n791(x)
- if (x < 1)
- fun_l6_n232(x)
- else
- fun_l6_n644(x)
- end
-end
-
-def fun_l5_n792(x)
- if (x < 1)
- fun_l6_n325(x)
- else
- fun_l6_n740(x)
- end
-end
-
-def fun_l5_n793(x)
- if (x < 1)
- fun_l6_n926(x)
- else
- fun_l6_n133(x)
- end
-end
-
-def fun_l5_n794(x)
- if (x < 1)
- fun_l6_n114(x)
- else
- fun_l6_n76(x)
- end
-end
-
-def fun_l5_n795(x)
- if (x < 1)
- fun_l6_n332(x)
- else
- fun_l6_n198(x)
- end
-end
-
-def fun_l5_n796(x)
- if (x < 1)
- fun_l6_n584(x)
- else
- fun_l6_n298(x)
- end
-end
-
-def fun_l5_n797(x)
- if (x < 1)
- fun_l6_n966(x)
- else
- fun_l6_n956(x)
- end
-end
-
-def fun_l5_n798(x)
- if (x < 1)
- fun_l6_n604(x)
- else
- fun_l6_n311(x)
- end
-end
-
-def fun_l5_n799(x)
- if (x < 1)
- fun_l6_n444(x)
- else
- fun_l6_n934(x)
- end
-end
-
-def fun_l5_n800(x)
- if (x < 1)
- fun_l6_n805(x)
- else
- fun_l6_n83(x)
- end
-end
-
-def fun_l5_n801(x)
- if (x < 1)
- fun_l6_n996(x)
- else
- fun_l6_n282(x)
- end
-end
-
-def fun_l5_n802(x)
- if (x < 1)
- fun_l6_n759(x)
- else
- fun_l6_n681(x)
- end
-end
-
-def fun_l5_n803(x)
- if (x < 1)
- fun_l6_n480(x)
- else
- fun_l6_n536(x)
- end
-end
-
-def fun_l5_n804(x)
- if (x < 1)
- fun_l6_n536(x)
- else
- fun_l6_n64(x)
- end
-end
-
-def fun_l5_n805(x)
- if (x < 1)
- fun_l6_n992(x)
- else
- fun_l6_n116(x)
- end
-end
-
-def fun_l5_n806(x)
- if (x < 1)
- fun_l6_n446(x)
- else
- fun_l6_n553(x)
- end
-end
-
-def fun_l5_n807(x)
- if (x < 1)
- fun_l6_n822(x)
- else
- fun_l6_n80(x)
- end
-end
-
-def fun_l5_n808(x)
- if (x < 1)
- fun_l6_n912(x)
- else
- fun_l6_n525(x)
- end
-end
-
-def fun_l5_n809(x)
- if (x < 1)
- fun_l6_n824(x)
- else
- fun_l6_n356(x)
- end
-end
-
-def fun_l5_n810(x)
- if (x < 1)
- fun_l6_n144(x)
- else
- fun_l6_n193(x)
- end
-end
-
-def fun_l5_n811(x)
- if (x < 1)
- fun_l6_n27(x)
- else
- fun_l6_n810(x)
- end
-end
-
-def fun_l5_n812(x)
- if (x < 1)
- fun_l6_n244(x)
- else
- fun_l6_n696(x)
- end
-end
-
-def fun_l5_n813(x)
- if (x < 1)
- fun_l6_n408(x)
- else
- fun_l6_n46(x)
- end
-end
-
-def fun_l5_n814(x)
- if (x < 1)
- fun_l6_n496(x)
- else
- fun_l6_n149(x)
- end
-end
-
-def fun_l5_n815(x)
- if (x < 1)
- fun_l6_n100(x)
- else
- fun_l6_n765(x)
- end
-end
-
-def fun_l5_n816(x)
- if (x < 1)
- fun_l6_n731(x)
- else
- fun_l6_n953(x)
- end
-end
-
-def fun_l5_n817(x)
- if (x < 1)
- fun_l6_n997(x)
- else
- fun_l6_n849(x)
- end
-end
-
-def fun_l5_n818(x)
- if (x < 1)
- fun_l6_n570(x)
- else
- fun_l6_n918(x)
- end
-end
-
-def fun_l5_n819(x)
- if (x < 1)
- fun_l6_n473(x)
- else
- fun_l6_n955(x)
- end
-end
-
-def fun_l5_n820(x)
- if (x < 1)
- fun_l6_n691(x)
- else
- fun_l6_n271(x)
- end
-end
-
-def fun_l5_n821(x)
- if (x < 1)
- fun_l6_n935(x)
- else
- fun_l6_n386(x)
- end
-end
-
-def fun_l5_n822(x)
- if (x < 1)
- fun_l6_n210(x)
- else
- fun_l6_n871(x)
- end
-end
-
-def fun_l5_n823(x)
- if (x < 1)
- fun_l6_n907(x)
- else
- fun_l6_n596(x)
- end
-end
-
-def fun_l5_n824(x)
- if (x < 1)
- fun_l6_n701(x)
- else
- fun_l6_n541(x)
- end
-end
-
-def fun_l5_n825(x)
- if (x < 1)
- fun_l6_n477(x)
- else
- fun_l6_n207(x)
- end
-end
-
-def fun_l5_n826(x)
- if (x < 1)
- fun_l6_n95(x)
- else
- fun_l6_n26(x)
- end
-end
-
-def fun_l5_n827(x)
- if (x < 1)
- fun_l6_n908(x)
- else
- fun_l6_n369(x)
- end
-end
-
-def fun_l5_n828(x)
- if (x < 1)
- fun_l6_n213(x)
- else
- fun_l6_n607(x)
- end
-end
-
-def fun_l5_n829(x)
- if (x < 1)
- fun_l6_n763(x)
- else
- fun_l6_n753(x)
- end
-end
-
-def fun_l5_n830(x)
- if (x < 1)
- fun_l6_n24(x)
- else
- fun_l6_n157(x)
- end
-end
-
-def fun_l5_n831(x)
- if (x < 1)
- fun_l6_n262(x)
- else
- fun_l6_n826(x)
- end
-end
-
-def fun_l5_n832(x)
- if (x < 1)
- fun_l6_n743(x)
- else
- fun_l6_n37(x)
- end
-end
-
-def fun_l5_n833(x)
- if (x < 1)
- fun_l6_n532(x)
- else
- fun_l6_n31(x)
- end
-end
-
-def fun_l5_n834(x)
- if (x < 1)
- fun_l6_n309(x)
- else
- fun_l6_n454(x)
- end
-end
-
-def fun_l5_n835(x)
- if (x < 1)
- fun_l6_n917(x)
- else
- fun_l6_n721(x)
- end
-end
-
-def fun_l5_n836(x)
- if (x < 1)
- fun_l6_n376(x)
- else
- fun_l6_n758(x)
- end
-end
-
-def fun_l5_n837(x)
- if (x < 1)
- fun_l6_n558(x)
- else
- fun_l6_n474(x)
- end
-end
-
-def fun_l5_n838(x)
- if (x < 1)
- fun_l6_n436(x)
- else
- fun_l6_n675(x)
- end
-end
-
-def fun_l5_n839(x)
- if (x < 1)
- fun_l6_n720(x)
- else
- fun_l6_n12(x)
- end
-end
-
-def fun_l5_n840(x)
- if (x < 1)
- fun_l6_n957(x)
- else
- fun_l6_n200(x)
- end
-end
-
-def fun_l5_n841(x)
- if (x < 1)
- fun_l6_n180(x)
- else
- fun_l6_n644(x)
- end
-end
-
-def fun_l5_n842(x)
- if (x < 1)
- fun_l6_n510(x)
- else
- fun_l6_n73(x)
- end
-end
-
-def fun_l5_n843(x)
- if (x < 1)
- fun_l6_n812(x)
- else
- fun_l6_n954(x)
- end
-end
-
-def fun_l5_n844(x)
- if (x < 1)
- fun_l6_n566(x)
- else
- fun_l6_n866(x)
- end
-end
-
-def fun_l5_n845(x)
- if (x < 1)
- fun_l6_n641(x)
- else
- fun_l6_n11(x)
- end
-end
-
-def fun_l5_n846(x)
- if (x < 1)
- fun_l6_n607(x)
- else
- fun_l6_n884(x)
- end
-end
-
-def fun_l5_n847(x)
- if (x < 1)
- fun_l6_n479(x)
- else
- fun_l6_n564(x)
- end
-end
-
-def fun_l5_n848(x)
- if (x < 1)
- fun_l6_n365(x)
- else
- fun_l6_n285(x)
- end
-end
-
-def fun_l5_n849(x)
- if (x < 1)
- fun_l6_n296(x)
- else
- fun_l6_n708(x)
- end
-end
-
-def fun_l5_n850(x)
- if (x < 1)
- fun_l6_n429(x)
- else
- fun_l6_n758(x)
- end
-end
-
-def fun_l5_n851(x)
- if (x < 1)
- fun_l6_n881(x)
- else
- fun_l6_n848(x)
- end
-end
-
-def fun_l5_n852(x)
- if (x < 1)
- fun_l6_n257(x)
- else
- fun_l6_n51(x)
- end
-end
-
-def fun_l5_n853(x)
- if (x < 1)
- fun_l6_n441(x)
- else
- fun_l6_n445(x)
- end
-end
-
-def fun_l5_n854(x)
- if (x < 1)
- fun_l6_n80(x)
- else
- fun_l6_n767(x)
- end
-end
-
-def fun_l5_n855(x)
- if (x < 1)
- fun_l6_n196(x)
- else
- fun_l6_n41(x)
- end
-end
-
-def fun_l5_n856(x)
- if (x < 1)
- fun_l6_n548(x)
- else
- fun_l6_n860(x)
- end
-end
-
-def fun_l5_n857(x)
- if (x < 1)
- fun_l6_n380(x)
- else
- fun_l6_n601(x)
- end
-end
-
-def fun_l5_n858(x)
- if (x < 1)
- fun_l6_n272(x)
- else
- fun_l6_n376(x)
- end
-end
-
-def fun_l5_n859(x)
- if (x < 1)
- fun_l6_n179(x)
- else
- fun_l6_n978(x)
- end
-end
-
-def fun_l5_n860(x)
- if (x < 1)
- fun_l6_n52(x)
- else
- fun_l6_n827(x)
- end
-end
-
-def fun_l5_n861(x)
- if (x < 1)
- fun_l6_n611(x)
- else
- fun_l6_n929(x)
- end
-end
-
-def fun_l5_n862(x)
- if (x < 1)
- fun_l6_n179(x)
- else
- fun_l6_n171(x)
- end
-end
-
-def fun_l5_n863(x)
- if (x < 1)
- fun_l6_n611(x)
- else
- fun_l6_n663(x)
- end
-end
-
-def fun_l5_n864(x)
- if (x < 1)
- fun_l6_n539(x)
- else
- fun_l6_n356(x)
- end
-end
-
-def fun_l5_n865(x)
- if (x < 1)
- fun_l6_n401(x)
- else
- fun_l6_n302(x)
- end
-end
-
-def fun_l5_n866(x)
- if (x < 1)
- fun_l6_n94(x)
- else
- fun_l6_n761(x)
- end
-end
-
-def fun_l5_n867(x)
- if (x < 1)
- fun_l6_n818(x)
- else
- fun_l6_n500(x)
- end
-end
-
-def fun_l5_n868(x)
- if (x < 1)
- fun_l6_n956(x)
- else
- fun_l6_n661(x)
- end
-end
-
-def fun_l5_n869(x)
- if (x < 1)
- fun_l6_n628(x)
- else
- fun_l6_n765(x)
- end
-end
-
-def fun_l5_n870(x)
- if (x < 1)
- fun_l6_n654(x)
- else
- fun_l6_n181(x)
- end
-end
-
-def fun_l5_n871(x)
- if (x < 1)
- fun_l6_n70(x)
- else
- fun_l6_n157(x)
- end
-end
-
-def fun_l5_n872(x)
- if (x < 1)
- fun_l6_n133(x)
- else
- fun_l6_n806(x)
- end
-end
-
-def fun_l5_n873(x)
- if (x < 1)
- fun_l6_n100(x)
- else
- fun_l6_n479(x)
- end
-end
-
-def fun_l5_n874(x)
- if (x < 1)
- fun_l6_n401(x)
- else
- fun_l6_n567(x)
- end
-end
-
-def fun_l5_n875(x)
- if (x < 1)
- fun_l6_n399(x)
- else
- fun_l6_n369(x)
- end
-end
-
-def fun_l5_n876(x)
- if (x < 1)
- fun_l6_n412(x)
- else
- fun_l6_n763(x)
- end
-end
-
-def fun_l5_n877(x)
- if (x < 1)
- fun_l6_n498(x)
- else
- fun_l6_n192(x)
- end
-end
-
-def fun_l5_n878(x)
- if (x < 1)
- fun_l6_n798(x)
- else
- fun_l6_n473(x)
- end
-end
-
-def fun_l5_n879(x)
- if (x < 1)
- fun_l6_n166(x)
- else
- fun_l6_n301(x)
- end
-end
-
-def fun_l5_n880(x)
- if (x < 1)
- fun_l6_n616(x)
- else
- fun_l6_n28(x)
- end
-end
-
-def fun_l5_n881(x)
- if (x < 1)
- fun_l6_n315(x)
- else
- fun_l6_n92(x)
- end
-end
-
-def fun_l5_n882(x)
- if (x < 1)
- fun_l6_n548(x)
- else
- fun_l6_n41(x)
- end
-end
-
-def fun_l5_n883(x)
- if (x < 1)
- fun_l6_n279(x)
- else
- fun_l6_n72(x)
- end
-end
-
-def fun_l5_n884(x)
- if (x < 1)
- fun_l6_n206(x)
- else
- fun_l6_n384(x)
- end
-end
-
-def fun_l5_n885(x)
- if (x < 1)
- fun_l6_n191(x)
- else
- fun_l6_n84(x)
- end
-end
-
-def fun_l5_n886(x)
- if (x < 1)
- fun_l6_n960(x)
- else
- fun_l6_n495(x)
- end
-end
-
-def fun_l5_n887(x)
- if (x < 1)
- fun_l6_n459(x)
- else
- fun_l6_n757(x)
- end
-end
-
-def fun_l5_n888(x)
- if (x < 1)
- fun_l6_n634(x)
- else
- fun_l6_n463(x)
- end
-end
-
-def fun_l5_n889(x)
- if (x < 1)
- fun_l6_n611(x)
- else
- fun_l6_n469(x)
- end
-end
-
-def fun_l5_n890(x)
- if (x < 1)
- fun_l6_n787(x)
- else
- fun_l6_n707(x)
- end
-end
-
-def fun_l5_n891(x)
- if (x < 1)
- fun_l6_n201(x)
- else
- fun_l6_n223(x)
- end
-end
-
-def fun_l5_n892(x)
- if (x < 1)
- fun_l6_n214(x)
- else
- fun_l6_n303(x)
- end
-end
-
-def fun_l5_n893(x)
- if (x < 1)
- fun_l6_n85(x)
- else
- fun_l6_n802(x)
- end
-end
-
-def fun_l5_n894(x)
- if (x < 1)
- fun_l6_n816(x)
- else
- fun_l6_n325(x)
- end
-end
-
-def fun_l5_n895(x)
- if (x < 1)
- fun_l6_n491(x)
- else
- fun_l6_n907(x)
- end
-end
-
-def fun_l5_n896(x)
- if (x < 1)
- fun_l6_n809(x)
- else
- fun_l6_n364(x)
- end
-end
-
-def fun_l5_n897(x)
- if (x < 1)
- fun_l6_n739(x)
- else
- fun_l6_n192(x)
- end
-end
-
-def fun_l5_n898(x)
- if (x < 1)
- fun_l6_n461(x)
- else
- fun_l6_n594(x)
- end
-end
-
-def fun_l5_n899(x)
- if (x < 1)
- fun_l6_n256(x)
- else
- fun_l6_n521(x)
- end
-end
-
-def fun_l5_n900(x)
- if (x < 1)
- fun_l6_n6(x)
- else
- fun_l6_n127(x)
- end
-end
-
-def fun_l5_n901(x)
- if (x < 1)
- fun_l6_n655(x)
- else
- fun_l6_n426(x)
- end
-end
-
-def fun_l5_n902(x)
- if (x < 1)
- fun_l6_n936(x)
- else
- fun_l6_n275(x)
- end
-end
-
-def fun_l5_n903(x)
- if (x < 1)
- fun_l6_n738(x)
- else
- fun_l6_n654(x)
- end
-end
-
-def fun_l5_n904(x)
- if (x < 1)
- fun_l6_n583(x)
- else
- fun_l6_n600(x)
- end
-end
-
-def fun_l5_n905(x)
- if (x < 1)
- fun_l6_n228(x)
- else
- fun_l6_n591(x)
- end
-end
-
-def fun_l5_n906(x)
- if (x < 1)
- fun_l6_n292(x)
- else
- fun_l6_n55(x)
- end
-end
-
-def fun_l5_n907(x)
- if (x < 1)
- fun_l6_n457(x)
- else
- fun_l6_n513(x)
- end
-end
-
-def fun_l5_n908(x)
- if (x < 1)
- fun_l6_n542(x)
- else
- fun_l6_n593(x)
- end
-end
-
-def fun_l5_n909(x)
- if (x < 1)
- fun_l6_n478(x)
- else
- fun_l6_n782(x)
- end
-end
-
-def fun_l5_n910(x)
- if (x < 1)
- fun_l6_n780(x)
- else
- fun_l6_n275(x)
- end
-end
-
-def fun_l5_n911(x)
- if (x < 1)
- fun_l6_n631(x)
- else
- fun_l6_n811(x)
- end
-end
-
-def fun_l5_n912(x)
- if (x < 1)
- fun_l6_n17(x)
- else
- fun_l6_n837(x)
- end
-end
-
-def fun_l5_n913(x)
- if (x < 1)
- fun_l6_n607(x)
- else
- fun_l6_n159(x)
- end
-end
-
-def fun_l5_n914(x)
- if (x < 1)
- fun_l6_n23(x)
- else
- fun_l6_n70(x)
- end
-end
-
-def fun_l5_n915(x)
- if (x < 1)
- fun_l6_n778(x)
- else
- fun_l6_n643(x)
- end
-end
-
-def fun_l5_n916(x)
- if (x < 1)
- fun_l6_n707(x)
- else
- fun_l6_n121(x)
- end
-end
-
-def fun_l5_n917(x)
- if (x < 1)
- fun_l6_n816(x)
- else
- fun_l6_n67(x)
- end
-end
-
-def fun_l5_n918(x)
- if (x < 1)
- fun_l6_n963(x)
- else
- fun_l6_n520(x)
- end
-end
-
-def fun_l5_n919(x)
- if (x < 1)
- fun_l6_n251(x)
- else
- fun_l6_n111(x)
- end
-end
-
-def fun_l5_n920(x)
- if (x < 1)
- fun_l6_n198(x)
- else
- fun_l6_n872(x)
- end
-end
-
-def fun_l5_n921(x)
- if (x < 1)
- fun_l6_n364(x)
- else
- fun_l6_n369(x)
- end
-end
-
-def fun_l5_n922(x)
- if (x < 1)
- fun_l6_n7(x)
- else
- fun_l6_n314(x)
- end
-end
-
-def fun_l5_n923(x)
- if (x < 1)
- fun_l6_n578(x)
- else
- fun_l6_n502(x)
- end
-end
-
-def fun_l5_n924(x)
- if (x < 1)
- fun_l6_n450(x)
- else
- fun_l6_n680(x)
- end
-end
-
-def fun_l5_n925(x)
- if (x < 1)
- fun_l6_n469(x)
- else
- fun_l6_n973(x)
- end
-end
-
-def fun_l5_n926(x)
- if (x < 1)
- fun_l6_n114(x)
- else
- fun_l6_n862(x)
- end
-end
-
-def fun_l5_n927(x)
- if (x < 1)
- fun_l6_n786(x)
- else
- fun_l6_n861(x)
- end
-end
-
-def fun_l5_n928(x)
- if (x < 1)
- fun_l6_n40(x)
- else
- fun_l6_n665(x)
- end
-end
-
-def fun_l5_n929(x)
- if (x < 1)
- fun_l6_n997(x)
- else
- fun_l6_n137(x)
- end
-end
-
-def fun_l5_n930(x)
- if (x < 1)
- fun_l6_n547(x)
- else
- fun_l6_n547(x)
- end
-end
-
-def fun_l5_n931(x)
- if (x < 1)
- fun_l6_n310(x)
- else
- fun_l6_n986(x)
- end
-end
-
-def fun_l5_n932(x)
- if (x < 1)
- fun_l6_n339(x)
- else
- fun_l6_n18(x)
- end
-end
-
-def fun_l5_n933(x)
- if (x < 1)
- fun_l6_n825(x)
- else
- fun_l6_n418(x)
- end
-end
-
-def fun_l5_n934(x)
- if (x < 1)
- fun_l6_n509(x)
- else
- fun_l6_n589(x)
- end
-end
-
-def fun_l5_n935(x)
- if (x < 1)
- fun_l6_n936(x)
- else
- fun_l6_n113(x)
- end
-end
-
-def fun_l5_n936(x)
- if (x < 1)
- fun_l6_n530(x)
- else
- fun_l6_n841(x)
- end
-end
-
-def fun_l5_n937(x)
- if (x < 1)
- fun_l6_n431(x)
- else
- fun_l6_n531(x)
- end
-end
-
-def fun_l5_n938(x)
- if (x < 1)
- fun_l6_n791(x)
- else
- fun_l6_n41(x)
- end
-end
-
-def fun_l5_n939(x)
- if (x < 1)
- fun_l6_n873(x)
- else
- fun_l6_n336(x)
- end
-end
-
-def fun_l5_n940(x)
- if (x < 1)
- fun_l6_n925(x)
- else
- fun_l6_n746(x)
- end
-end
-
-def fun_l5_n941(x)
- if (x < 1)
- fun_l6_n995(x)
- else
- fun_l6_n29(x)
- end
-end
-
-def fun_l5_n942(x)
- if (x < 1)
- fun_l6_n984(x)
- else
- fun_l6_n455(x)
- end
-end
-
-def fun_l5_n943(x)
- if (x < 1)
- fun_l6_n660(x)
- else
- fun_l6_n934(x)
- end
-end
-
-def fun_l5_n944(x)
- if (x < 1)
- fun_l6_n625(x)
- else
- fun_l6_n523(x)
- end
-end
-
-def fun_l5_n945(x)
- if (x < 1)
- fun_l6_n407(x)
- else
- fun_l6_n766(x)
- end
-end
-
-def fun_l5_n946(x)
- if (x < 1)
- fun_l6_n80(x)
- else
- fun_l6_n75(x)
- end
-end
-
-def fun_l5_n947(x)
- if (x < 1)
- fun_l6_n465(x)
- else
- fun_l6_n57(x)
- end
-end
-
-def fun_l5_n948(x)
- if (x < 1)
- fun_l6_n750(x)
- else
- fun_l6_n278(x)
- end
-end
-
-def fun_l5_n949(x)
- if (x < 1)
- fun_l6_n917(x)
- else
- fun_l6_n472(x)
- end
-end
-
-def fun_l5_n950(x)
- if (x < 1)
- fun_l6_n917(x)
- else
- fun_l6_n71(x)
- end
-end
-
-def fun_l5_n951(x)
- if (x < 1)
- fun_l6_n420(x)
- else
- fun_l6_n132(x)
- end
-end
-
-def fun_l5_n952(x)
- if (x < 1)
- fun_l6_n112(x)
- else
- fun_l6_n396(x)
- end
-end
-
-def fun_l5_n953(x)
- if (x < 1)
- fun_l6_n705(x)
- else
- fun_l6_n978(x)
- end
-end
-
-def fun_l5_n954(x)
- if (x < 1)
- fun_l6_n761(x)
- else
- fun_l6_n136(x)
- end
-end
-
-def fun_l5_n955(x)
- if (x < 1)
- fun_l6_n518(x)
- else
- fun_l6_n687(x)
- end
-end
-
-def fun_l5_n956(x)
- if (x < 1)
- fun_l6_n308(x)
- else
- fun_l6_n34(x)
- end
-end
-
-def fun_l5_n957(x)
- if (x < 1)
- fun_l6_n904(x)
- else
- fun_l6_n129(x)
- end
-end
-
-def fun_l5_n958(x)
- if (x < 1)
- fun_l6_n271(x)
- else
- fun_l6_n444(x)
- end
-end
-
-def fun_l5_n959(x)
- if (x < 1)
- fun_l6_n690(x)
- else
- fun_l6_n118(x)
- end
-end
-
-def fun_l5_n960(x)
- if (x < 1)
- fun_l6_n509(x)
- else
- fun_l6_n957(x)
- end
-end
-
-def fun_l5_n961(x)
- if (x < 1)
- fun_l6_n889(x)
- else
- fun_l6_n26(x)
- end
-end
-
-def fun_l5_n962(x)
- if (x < 1)
- fun_l6_n802(x)
- else
- fun_l6_n364(x)
- end
-end
-
-def fun_l5_n963(x)
- if (x < 1)
- fun_l6_n368(x)
- else
- fun_l6_n580(x)
- end
-end
-
-def fun_l5_n964(x)
- if (x < 1)
- fun_l6_n879(x)
- else
- fun_l6_n925(x)
- end
-end
-
-def fun_l5_n965(x)
- if (x < 1)
- fun_l6_n114(x)
- else
- fun_l6_n882(x)
- end
-end
-
-def fun_l5_n966(x)
- if (x < 1)
- fun_l6_n9(x)
- else
- fun_l6_n5(x)
- end
-end
-
-def fun_l5_n967(x)
- if (x < 1)
- fun_l6_n536(x)
- else
- fun_l6_n251(x)
- end
-end
-
-def fun_l5_n968(x)
- if (x < 1)
- fun_l6_n804(x)
- else
- fun_l6_n179(x)
- end
-end
-
-def fun_l5_n969(x)
- if (x < 1)
- fun_l6_n469(x)
- else
- fun_l6_n235(x)
- end
-end
-
-def fun_l5_n970(x)
- if (x < 1)
- fun_l6_n328(x)
- else
- fun_l6_n763(x)
- end
-end
-
-def fun_l5_n971(x)
- if (x < 1)
- fun_l6_n342(x)
- else
- fun_l6_n126(x)
- end
-end
-
-def fun_l5_n972(x)
- if (x < 1)
- fun_l6_n901(x)
- else
- fun_l6_n674(x)
- end
-end
-
-def fun_l5_n973(x)
- if (x < 1)
- fun_l6_n853(x)
- else
- fun_l6_n714(x)
- end
-end
-
-def fun_l5_n974(x)
- if (x < 1)
- fun_l6_n670(x)
- else
- fun_l6_n905(x)
- end
-end
-
-def fun_l5_n975(x)
- if (x < 1)
- fun_l6_n873(x)
- else
- fun_l6_n193(x)
- end
-end
-
-def fun_l5_n976(x)
- if (x < 1)
- fun_l6_n603(x)
- else
- fun_l6_n186(x)
- end
-end
-
-def fun_l5_n977(x)
- if (x < 1)
- fun_l6_n474(x)
- else
- fun_l6_n108(x)
- end
-end
-
-def fun_l5_n978(x)
- if (x < 1)
- fun_l6_n347(x)
- else
- fun_l6_n872(x)
- end
-end
-
-def fun_l5_n979(x)
- if (x < 1)
- fun_l6_n593(x)
- else
- fun_l6_n575(x)
- end
-end
-
-def fun_l5_n980(x)
- if (x < 1)
- fun_l6_n692(x)
- else
- fun_l6_n262(x)
- end
-end
-
-def fun_l5_n981(x)
- if (x < 1)
- fun_l6_n226(x)
- else
- fun_l6_n600(x)
- end
-end
-
-def fun_l5_n982(x)
- if (x < 1)
- fun_l6_n357(x)
- else
- fun_l6_n165(x)
- end
-end
-
-def fun_l5_n983(x)
- if (x < 1)
- fun_l6_n784(x)
- else
- fun_l6_n584(x)
- end
-end
-
-def fun_l5_n984(x)
- if (x < 1)
- fun_l6_n339(x)
- else
- fun_l6_n754(x)
- end
-end
-
-def fun_l5_n985(x)
- if (x < 1)
- fun_l6_n536(x)
- else
- fun_l6_n663(x)
- end
-end
-
-def fun_l5_n986(x)
- if (x < 1)
- fun_l6_n239(x)
- else
- fun_l6_n723(x)
- end
-end
-
-def fun_l5_n987(x)
- if (x < 1)
- fun_l6_n928(x)
- else
- fun_l6_n403(x)
- end
-end
-
-def fun_l5_n988(x)
- if (x < 1)
- fun_l6_n328(x)
- else
- fun_l6_n551(x)
- end
-end
-
-def fun_l5_n989(x)
- if (x < 1)
- fun_l6_n847(x)
- else
- fun_l6_n475(x)
- end
-end
-
-def fun_l5_n990(x)
- if (x < 1)
- fun_l6_n405(x)
- else
- fun_l6_n39(x)
- end
-end
-
-def fun_l5_n991(x)
- if (x < 1)
- fun_l6_n705(x)
- else
- fun_l6_n281(x)
- end
-end
-
-def fun_l5_n992(x)
- if (x < 1)
- fun_l6_n59(x)
- else
- fun_l6_n465(x)
- end
-end
-
-def fun_l5_n993(x)
- if (x < 1)
- fun_l6_n828(x)
- else
- fun_l6_n705(x)
- end
-end
-
-def fun_l5_n994(x)
- if (x < 1)
- fun_l6_n687(x)
- else
- fun_l6_n451(x)
- end
-end
-
-def fun_l5_n995(x)
- if (x < 1)
- fun_l6_n600(x)
- else
- fun_l6_n9(x)
- end
-end
-
-def fun_l5_n996(x)
- if (x < 1)
- fun_l6_n205(x)
- else
- fun_l6_n242(x)
- end
-end
-
-def fun_l5_n997(x)
- if (x < 1)
- fun_l6_n438(x)
- else
- fun_l6_n108(x)
- end
-end
-
-def fun_l5_n998(x)
- if (x < 1)
- fun_l6_n164(x)
- else
- fun_l6_n302(x)
- end
-end
-
-def fun_l5_n999(x)
- if (x < 1)
- fun_l6_n533(x)
- else
- fun_l6_n685(x)
- end
-end
-
-def fun_l6_n0(x)
- if (x < 1)
- fun_l7_n74(x)
- else
- fun_l7_n45(x)
- end
-end
-
-def fun_l6_n1(x)
- if (x < 1)
- fun_l7_n685(x)
- else
- fun_l7_n163(x)
- end
-end
-
-def fun_l6_n2(x)
- if (x < 1)
- fun_l7_n325(x)
- else
- fun_l7_n365(x)
- end
-end
-
-def fun_l6_n3(x)
- if (x < 1)
- fun_l7_n855(x)
- else
- fun_l7_n359(x)
- end
-end
-
-def fun_l6_n4(x)
- if (x < 1)
- fun_l7_n939(x)
- else
- fun_l7_n690(x)
- end
-end
-
-def fun_l6_n5(x)
- if (x < 1)
- fun_l7_n689(x)
- else
- fun_l7_n681(x)
- end
-end
-
-def fun_l6_n6(x)
- if (x < 1)
- fun_l7_n226(x)
- else
- fun_l7_n307(x)
- end
-end
-
-def fun_l6_n7(x)
- if (x < 1)
- fun_l7_n779(x)
- else
- fun_l7_n765(x)
- end
-end
-
-def fun_l6_n8(x)
- if (x < 1)
- fun_l7_n85(x)
- else
- fun_l7_n967(x)
- end
-end
-
-def fun_l6_n9(x)
- if (x < 1)
- fun_l7_n539(x)
- else
- fun_l7_n5(x)
- end
-end
-
-def fun_l6_n10(x)
- if (x < 1)
- fun_l7_n503(x)
- else
- fun_l7_n163(x)
- end
-end
-
-def fun_l6_n11(x)
- if (x < 1)
- fun_l7_n24(x)
- else
- fun_l7_n374(x)
- end
-end
-
-def fun_l6_n12(x)
- if (x < 1)
- fun_l7_n633(x)
- else
- fun_l7_n395(x)
- end
-end
-
-def fun_l6_n13(x)
- if (x < 1)
- fun_l7_n250(x)
- else
- fun_l7_n7(x)
- end
-end
-
-def fun_l6_n14(x)
- if (x < 1)
- fun_l7_n22(x)
- else
- fun_l7_n560(x)
- end
-end
-
-def fun_l6_n15(x)
- if (x < 1)
- fun_l7_n209(x)
- else
- fun_l7_n323(x)
- end
-end
-
-def fun_l6_n16(x)
- if (x < 1)
- fun_l7_n770(x)
- else
- fun_l7_n155(x)
- end
-end
-
-def fun_l6_n17(x)
- if (x < 1)
- fun_l7_n976(x)
- else
- fun_l7_n712(x)
- end
-end
-
-def fun_l6_n18(x)
- if (x < 1)
- fun_l7_n762(x)
- else
- fun_l7_n307(x)
- end
-end
-
-def fun_l6_n19(x)
- if (x < 1)
- fun_l7_n911(x)
- else
- fun_l7_n788(x)
- end
-end
-
-def fun_l6_n20(x)
- if (x < 1)
- fun_l7_n40(x)
- else
- fun_l7_n269(x)
- end
-end
-
-def fun_l6_n21(x)
- if (x < 1)
- fun_l7_n707(x)
- else
- fun_l7_n861(x)
- end
-end
-
-def fun_l6_n22(x)
- if (x < 1)
- fun_l7_n591(x)
- else
- fun_l7_n557(x)
- end
-end
-
-def fun_l6_n23(x)
- if (x < 1)
- fun_l7_n890(x)
- else
- fun_l7_n142(x)
- end
-end
-
-def fun_l6_n24(x)
- if (x < 1)
- fun_l7_n563(x)
- else
- fun_l7_n509(x)
- end
-end
-
-def fun_l6_n25(x)
- if (x < 1)
- fun_l7_n630(x)
- else
- fun_l7_n784(x)
- end
-end
-
-def fun_l6_n26(x)
- if (x < 1)
- fun_l7_n30(x)
- else
- fun_l7_n826(x)
- end
-end
-
-def fun_l6_n27(x)
- if (x < 1)
- fun_l7_n223(x)
- else
- fun_l7_n800(x)
- end
-end
-
-def fun_l6_n28(x)
- if (x < 1)
- fun_l7_n51(x)
- else
- fun_l7_n963(x)
- end
-end
-
-def fun_l6_n29(x)
- if (x < 1)
- fun_l7_n603(x)
- else
- fun_l7_n988(x)
- end
-end
-
-def fun_l6_n30(x)
- if (x < 1)
- fun_l7_n258(x)
- else
- fun_l7_n512(x)
- end
-end
-
-def fun_l6_n31(x)
- if (x < 1)
- fun_l7_n649(x)
- else
- fun_l7_n772(x)
- end
-end
-
-def fun_l6_n32(x)
- if (x < 1)
- fun_l7_n999(x)
- else
- fun_l7_n592(x)
- end
-end
-
-def fun_l6_n33(x)
- if (x < 1)
- fun_l7_n371(x)
- else
- fun_l7_n801(x)
- end
-end
-
-def fun_l6_n34(x)
- if (x < 1)
- fun_l7_n905(x)
- else
- fun_l7_n701(x)
- end
-end
-
-def fun_l6_n35(x)
- if (x < 1)
- fun_l7_n142(x)
- else
- fun_l7_n933(x)
- end
-end
-
-def fun_l6_n36(x)
- if (x < 1)
- fun_l7_n987(x)
- else
- fun_l7_n305(x)
- end
-end
-
-def fun_l6_n37(x)
- if (x < 1)
- fun_l7_n360(x)
- else
- fun_l7_n266(x)
- end
-end
-
-def fun_l6_n38(x)
- if (x < 1)
- fun_l7_n799(x)
- else
- fun_l7_n938(x)
- end
-end
-
-def fun_l6_n39(x)
- if (x < 1)
- fun_l7_n921(x)
- else
- fun_l7_n739(x)
- end
-end
-
-def fun_l6_n40(x)
- if (x < 1)
- fun_l7_n553(x)
- else
- fun_l7_n236(x)
- end
-end
-
-def fun_l6_n41(x)
- if (x < 1)
- fun_l7_n592(x)
- else
- fun_l7_n335(x)
- end
-end
-
-def fun_l6_n42(x)
- if (x < 1)
- fun_l7_n33(x)
- else
- fun_l7_n521(x)
- end
-end
-
-def fun_l6_n43(x)
- if (x < 1)
- fun_l7_n278(x)
- else
- fun_l7_n866(x)
- end
-end
-
-def fun_l6_n44(x)
- if (x < 1)
- fun_l7_n808(x)
- else
- fun_l7_n394(x)
- end
-end
-
-def fun_l6_n45(x)
- if (x < 1)
- fun_l7_n556(x)
- else
- fun_l7_n462(x)
- end
-end
-
-def fun_l6_n46(x)
- if (x < 1)
- fun_l7_n72(x)
- else
- fun_l7_n558(x)
- end
-end
-
-def fun_l6_n47(x)
- if (x < 1)
- fun_l7_n583(x)
- else
- fun_l7_n472(x)
- end
-end
-
-def fun_l6_n48(x)
- if (x < 1)
- fun_l7_n577(x)
- else
- fun_l7_n264(x)
- end
-end
-
-def fun_l6_n49(x)
- if (x < 1)
- fun_l7_n167(x)
- else
- fun_l7_n570(x)
- end
-end
-
-def fun_l6_n50(x)
- if (x < 1)
- fun_l7_n707(x)
- else
- fun_l7_n127(x)
- end
-end
-
-def fun_l6_n51(x)
- if (x < 1)
- fun_l7_n151(x)
- else
- fun_l7_n82(x)
- end
-end
-
-def fun_l6_n52(x)
- if (x < 1)
- fun_l7_n729(x)
- else
- fun_l7_n785(x)
- end
-end
-
-def fun_l6_n53(x)
- if (x < 1)
- fun_l7_n236(x)
- else
- fun_l7_n84(x)
- end
-end
-
-def fun_l6_n54(x)
- if (x < 1)
- fun_l7_n573(x)
- else
- fun_l7_n92(x)
- end
-end
-
-def fun_l6_n55(x)
- if (x < 1)
- fun_l7_n601(x)
- else
- fun_l7_n531(x)
- end
-end
-
-def fun_l6_n56(x)
- if (x < 1)
- fun_l7_n623(x)
- else
- fun_l7_n522(x)
- end
-end
-
-def fun_l6_n57(x)
- if (x < 1)
- fun_l7_n707(x)
- else
- fun_l7_n830(x)
- end
-end
-
-def fun_l6_n58(x)
- if (x < 1)
- fun_l7_n240(x)
- else
- fun_l7_n868(x)
- end
-end
-
-def fun_l6_n59(x)
- if (x < 1)
- fun_l7_n233(x)
- else
- fun_l7_n595(x)
- end
-end
-
-def fun_l6_n60(x)
- if (x < 1)
- fun_l7_n384(x)
- else
- fun_l7_n605(x)
- end
-end
-
-def fun_l6_n61(x)
- if (x < 1)
- fun_l7_n721(x)
- else
- fun_l7_n509(x)
- end
-end
-
-def fun_l6_n62(x)
- if (x < 1)
- fun_l7_n741(x)
- else
- fun_l7_n934(x)
- end
-end
-
-def fun_l6_n63(x)
- if (x < 1)
- fun_l7_n724(x)
- else
- fun_l7_n963(x)
- end
-end
-
-def fun_l6_n64(x)
- if (x < 1)
- fun_l7_n144(x)
- else
- fun_l7_n417(x)
- end
-end
-
-def fun_l6_n65(x)
- if (x < 1)
- fun_l7_n618(x)
- else
- fun_l7_n19(x)
- end
-end
-
-def fun_l6_n66(x)
- if (x < 1)
- fun_l7_n128(x)
- else
- fun_l7_n257(x)
- end
-end
-
-def fun_l6_n67(x)
- if (x < 1)
- fun_l7_n623(x)
- else
- fun_l7_n182(x)
- end
-end
-
-def fun_l6_n68(x)
- if (x < 1)
- fun_l7_n256(x)
- else
- fun_l7_n692(x)
- end
-end
-
-def fun_l6_n69(x)
- if (x < 1)
- fun_l7_n360(x)
- else
- fun_l7_n34(x)
- end
-end
-
-def fun_l6_n70(x)
- if (x < 1)
- fun_l7_n690(x)
- else
- fun_l7_n813(x)
- end
-end
-
-def fun_l6_n71(x)
- if (x < 1)
- fun_l7_n533(x)
- else
- fun_l7_n94(x)
- end
-end
-
-def fun_l6_n72(x)
- if (x < 1)
- fun_l7_n245(x)
- else
- fun_l7_n548(x)
- end
-end
-
-def fun_l6_n73(x)
- if (x < 1)
- fun_l7_n919(x)
- else
- fun_l7_n295(x)
- end
-end
-
-def fun_l6_n74(x)
- if (x < 1)
- fun_l7_n925(x)
- else
- fun_l7_n965(x)
- end
-end
-
-def fun_l6_n75(x)
- if (x < 1)
- fun_l7_n825(x)
- else
- fun_l7_n79(x)
- end
-end
-
-def fun_l6_n76(x)
- if (x < 1)
- fun_l7_n812(x)
- else
- fun_l7_n96(x)
- end
-end
-
-def fun_l6_n77(x)
- if (x < 1)
- fun_l7_n688(x)
- else
- fun_l7_n424(x)
- end
-end
-
-def fun_l6_n78(x)
- if (x < 1)
- fun_l7_n171(x)
- else
- fun_l7_n728(x)
- end
-end
-
-def fun_l6_n79(x)
- if (x < 1)
- fun_l7_n786(x)
- else
- fun_l7_n135(x)
- end
-end
-
-def fun_l6_n80(x)
- if (x < 1)
- fun_l7_n622(x)
- else
- fun_l7_n3(x)
- end
-end
-
-def fun_l6_n81(x)
- if (x < 1)
- fun_l7_n386(x)
- else
- fun_l7_n946(x)
- end
-end
-
-def fun_l6_n82(x)
- if (x < 1)
- fun_l7_n192(x)
- else
- fun_l7_n253(x)
- end
-end
-
-def fun_l6_n83(x)
- if (x < 1)
- fun_l7_n534(x)
- else
- fun_l7_n4(x)
- end
-end
-
-def fun_l6_n84(x)
- if (x < 1)
- fun_l7_n198(x)
- else
- fun_l7_n455(x)
- end
-end
-
-def fun_l6_n85(x)
- if (x < 1)
- fun_l7_n471(x)
- else
- fun_l7_n26(x)
- end
-end
-
-def fun_l6_n86(x)
- if (x < 1)
- fun_l7_n147(x)
- else
- fun_l7_n893(x)
- end
-end
-
-def fun_l6_n87(x)
- if (x < 1)
- fun_l7_n424(x)
- else
- fun_l7_n713(x)
- end
-end
-
-def fun_l6_n88(x)
- if (x < 1)
- fun_l7_n867(x)
- else
- fun_l7_n561(x)
- end
-end
-
-def fun_l6_n89(x)
- if (x < 1)
- fun_l7_n64(x)
- else
- fun_l7_n662(x)
- end
-end
-
-def fun_l6_n90(x)
- if (x < 1)
- fun_l7_n849(x)
- else
- fun_l7_n105(x)
- end
-end
-
-def fun_l6_n91(x)
- if (x < 1)
- fun_l7_n564(x)
- else
- fun_l7_n758(x)
- end
-end
-
-def fun_l6_n92(x)
- if (x < 1)
- fun_l7_n433(x)
- else
- fun_l7_n713(x)
- end
-end
-
-def fun_l6_n93(x)
- if (x < 1)
- fun_l7_n283(x)
- else
- fun_l7_n577(x)
- end
-end
-
-def fun_l6_n94(x)
- if (x < 1)
- fun_l7_n951(x)
- else
- fun_l7_n48(x)
- end
-end
-
-def fun_l6_n95(x)
- if (x < 1)
- fun_l7_n966(x)
- else
- fun_l7_n789(x)
- end
-end
-
-def fun_l6_n96(x)
- if (x < 1)
- fun_l7_n954(x)
- else
- fun_l7_n431(x)
- end
-end
-
-def fun_l6_n97(x)
- if (x < 1)
- fun_l7_n720(x)
- else
- fun_l7_n847(x)
- end
-end
-
-def fun_l6_n98(x)
- if (x < 1)
- fun_l7_n517(x)
- else
- fun_l7_n378(x)
- end
-end
-
-def fun_l6_n99(x)
- if (x < 1)
- fun_l7_n951(x)
- else
- fun_l7_n688(x)
- end
-end
-
-def fun_l6_n100(x)
- if (x < 1)
- fun_l7_n163(x)
- else
- fun_l7_n540(x)
- end
-end
-
-def fun_l6_n101(x)
- if (x < 1)
- fun_l7_n423(x)
- else
- fun_l7_n10(x)
- end
-end
-
-def fun_l6_n102(x)
- if (x < 1)
- fun_l7_n346(x)
- else
- fun_l7_n409(x)
- end
-end
-
-def fun_l6_n103(x)
- if (x < 1)
- fun_l7_n686(x)
- else
- fun_l7_n432(x)
- end
-end
-
-def fun_l6_n104(x)
- if (x < 1)
- fun_l7_n144(x)
- else
- fun_l7_n510(x)
- end
-end
-
-def fun_l6_n105(x)
- if (x < 1)
- fun_l7_n568(x)
- else
- fun_l7_n756(x)
- end
-end
-
-def fun_l6_n106(x)
- if (x < 1)
- fun_l7_n708(x)
- else
- fun_l7_n199(x)
- end
-end
-
-def fun_l6_n107(x)
- if (x < 1)
- fun_l7_n823(x)
- else
- fun_l7_n969(x)
- end
-end
-
-def fun_l6_n108(x)
- if (x < 1)
- fun_l7_n156(x)
- else
- fun_l7_n211(x)
- end
-end
-
-def fun_l6_n109(x)
- if (x < 1)
- fun_l7_n527(x)
- else
- fun_l7_n791(x)
- end
-end
-
-def fun_l6_n110(x)
- if (x < 1)
- fun_l7_n392(x)
- else
- fun_l7_n314(x)
- end
-end
-
-def fun_l6_n111(x)
- if (x < 1)
- fun_l7_n355(x)
- else
- fun_l7_n222(x)
- end
-end
-
-def fun_l6_n112(x)
- if (x < 1)
- fun_l7_n683(x)
- else
- fun_l7_n735(x)
- end
-end
-
-def fun_l6_n113(x)
- if (x < 1)
- fun_l7_n38(x)
- else
- fun_l7_n874(x)
- end
-end
-
-def fun_l6_n114(x)
- if (x < 1)
- fun_l7_n190(x)
- else
- fun_l7_n209(x)
- end
-end
-
-def fun_l6_n115(x)
- if (x < 1)
- fun_l7_n544(x)
- else
- fun_l7_n267(x)
- end
-end
-
-def fun_l6_n116(x)
- if (x < 1)
- fun_l7_n701(x)
- else
- fun_l7_n101(x)
- end
-end
-
-def fun_l6_n117(x)
- if (x < 1)
- fun_l7_n283(x)
- else
- fun_l7_n979(x)
- end
-end
-
-def fun_l6_n118(x)
- if (x < 1)
- fun_l7_n902(x)
- else
- fun_l7_n897(x)
- end
-end
-
-def fun_l6_n119(x)
- if (x < 1)
- fun_l7_n115(x)
- else
- fun_l7_n660(x)
- end
-end
-
-def fun_l6_n120(x)
- if (x < 1)
- fun_l7_n804(x)
- else
- fun_l7_n536(x)
- end
-end
-
-def fun_l6_n121(x)
- if (x < 1)
- fun_l7_n278(x)
- else
- fun_l7_n666(x)
- end
-end
-
-def fun_l6_n122(x)
- if (x < 1)
- fun_l7_n254(x)
- else
- fun_l7_n572(x)
- end
-end
-
-def fun_l6_n123(x)
- if (x < 1)
- fun_l7_n474(x)
- else
- fun_l7_n912(x)
- end
-end
-
-def fun_l6_n124(x)
- if (x < 1)
- fun_l7_n0(x)
- else
- fun_l7_n514(x)
- end
-end
-
-def fun_l6_n125(x)
- if (x < 1)
- fun_l7_n916(x)
- else
- fun_l7_n633(x)
- end
-end
-
-def fun_l6_n126(x)
- if (x < 1)
- fun_l7_n184(x)
- else
- fun_l7_n379(x)
- end
-end
-
-def fun_l6_n127(x)
- if (x < 1)
- fun_l7_n316(x)
- else
- fun_l7_n422(x)
- end
-end
-
-def fun_l6_n128(x)
- if (x < 1)
- fun_l7_n402(x)
- else
- fun_l7_n237(x)
- end
-end
-
-def fun_l6_n129(x)
- if (x < 1)
- fun_l7_n303(x)
- else
- fun_l7_n61(x)
- end
-end
-
-def fun_l6_n130(x)
- if (x < 1)
- fun_l7_n918(x)
- else
- fun_l7_n732(x)
- end
-end
-
-def fun_l6_n131(x)
- if (x < 1)
- fun_l7_n74(x)
- else
- fun_l7_n472(x)
- end
-end
-
-def fun_l6_n132(x)
- if (x < 1)
- fun_l7_n648(x)
- else
- fun_l7_n546(x)
- end
-end
-
-def fun_l6_n133(x)
- if (x < 1)
- fun_l7_n388(x)
- else
- fun_l7_n359(x)
- end
-end
-
-def fun_l6_n134(x)
- if (x < 1)
- fun_l7_n594(x)
- else
- fun_l7_n607(x)
- end
-end
-
-def fun_l6_n135(x)
- if (x < 1)
- fun_l7_n642(x)
- else
- fun_l7_n188(x)
- end
-end
-
-def fun_l6_n136(x)
- if (x < 1)
- fun_l7_n879(x)
- else
- fun_l7_n521(x)
- end
-end
-
-def fun_l6_n137(x)
- if (x < 1)
- fun_l7_n362(x)
- else
- fun_l7_n564(x)
- end
-end
-
-def fun_l6_n138(x)
- if (x < 1)
- fun_l7_n590(x)
- else
- fun_l7_n59(x)
- end
-end
-
-def fun_l6_n139(x)
- if (x < 1)
- fun_l7_n464(x)
- else
- fun_l7_n563(x)
- end
-end
-
-def fun_l6_n140(x)
- if (x < 1)
- fun_l7_n710(x)
- else
- fun_l7_n890(x)
- end
-end
-
-def fun_l6_n141(x)
- if (x < 1)
- fun_l7_n63(x)
- else
- fun_l7_n470(x)
- end
-end
-
-def fun_l6_n142(x)
- if (x < 1)
- fun_l7_n160(x)
- else
- fun_l7_n153(x)
- end
-end
-
-def fun_l6_n143(x)
- if (x < 1)
- fun_l7_n908(x)
- else
- fun_l7_n286(x)
- end
-end
-
-def fun_l6_n144(x)
- if (x < 1)
- fun_l7_n193(x)
- else
- fun_l7_n657(x)
- end
-end
-
-def fun_l6_n145(x)
- if (x < 1)
- fun_l7_n885(x)
- else
- fun_l7_n981(x)
- end
-end
-
-def fun_l6_n146(x)
- if (x < 1)
- fun_l7_n479(x)
- else
- fun_l7_n188(x)
- end
-end
-
-def fun_l6_n147(x)
- if (x < 1)
- fun_l7_n378(x)
- else
- fun_l7_n299(x)
- end
-end
-
-def fun_l6_n148(x)
- if (x < 1)
- fun_l7_n239(x)
- else
- fun_l7_n70(x)
- end
-end
-
-def fun_l6_n149(x)
- if (x < 1)
- fun_l7_n864(x)
- else
- fun_l7_n131(x)
- end
-end
-
-def fun_l6_n150(x)
- if (x < 1)
- fun_l7_n748(x)
- else
- fun_l7_n112(x)
- end
-end
-
-def fun_l6_n151(x)
- if (x < 1)
- fun_l7_n466(x)
- else
- fun_l7_n672(x)
- end
-end
-
-def fun_l6_n152(x)
- if (x < 1)
- fun_l7_n242(x)
- else
- fun_l7_n8(x)
- end
-end
-
-def fun_l6_n153(x)
- if (x < 1)
- fun_l7_n408(x)
- else
- fun_l7_n538(x)
- end
-end
-
-def fun_l6_n154(x)
- if (x < 1)
- fun_l7_n984(x)
- else
- fun_l7_n134(x)
- end
-end
-
-def fun_l6_n155(x)
- if (x < 1)
- fun_l7_n384(x)
- else
- fun_l7_n62(x)
- end
-end
-
-def fun_l6_n156(x)
- if (x < 1)
- fun_l7_n576(x)
- else
- fun_l7_n168(x)
- end
-end
-
-def fun_l6_n157(x)
- if (x < 1)
- fun_l7_n371(x)
- else
- fun_l7_n470(x)
- end
-end
-
-def fun_l6_n158(x)
- if (x < 1)
- fun_l7_n30(x)
- else
- fun_l7_n11(x)
- end
-end
-
-def fun_l6_n159(x)
- if (x < 1)
- fun_l7_n45(x)
- else
- fun_l7_n191(x)
- end
-end
-
-def fun_l6_n160(x)
- if (x < 1)
- fun_l7_n659(x)
- else
- fun_l7_n981(x)
- end
-end
-
-def fun_l6_n161(x)
- if (x < 1)
- fun_l7_n586(x)
- else
- fun_l7_n617(x)
- end
-end
-
-def fun_l6_n162(x)
- if (x < 1)
- fun_l7_n844(x)
- else
- fun_l7_n831(x)
- end
-end
-
-def fun_l6_n163(x)
- if (x < 1)
- fun_l7_n14(x)
- else
- fun_l7_n631(x)
- end
-end
-
-def fun_l6_n164(x)
- if (x < 1)
- fun_l7_n388(x)
- else
- fun_l7_n837(x)
- end
-end
-
-def fun_l6_n165(x)
- if (x < 1)
- fun_l7_n825(x)
- else
- fun_l7_n902(x)
- end
-end
-
-def fun_l6_n166(x)
- if (x < 1)
- fun_l7_n490(x)
- else
- fun_l7_n724(x)
- end
-end
-
-def fun_l6_n167(x)
- if (x < 1)
- fun_l7_n612(x)
- else
- fun_l7_n792(x)
- end
-end
-
-def fun_l6_n168(x)
- if (x < 1)
- fun_l7_n344(x)
- else
- fun_l7_n624(x)
- end
-end
-
-def fun_l6_n169(x)
- if (x < 1)
- fun_l7_n255(x)
- else
- fun_l7_n456(x)
- end
-end
-
-def fun_l6_n170(x)
- if (x < 1)
- fun_l7_n893(x)
- else
- fun_l7_n358(x)
- end
-end
-
-def fun_l6_n171(x)
- if (x < 1)
- fun_l7_n926(x)
- else
- fun_l7_n988(x)
- end
-end
-
-def fun_l6_n172(x)
- if (x < 1)
- fun_l7_n856(x)
- else
- fun_l7_n553(x)
- end
-end
-
-def fun_l6_n173(x)
- if (x < 1)
- fun_l7_n694(x)
- else
- fun_l7_n918(x)
- end
-end
-
-def fun_l6_n174(x)
- if (x < 1)
- fun_l7_n884(x)
- else
- fun_l7_n711(x)
- end
-end
-
-def fun_l6_n175(x)
- if (x < 1)
- fun_l7_n884(x)
- else
- fun_l7_n28(x)
- end
-end
-
-def fun_l6_n176(x)
- if (x < 1)
- fun_l7_n378(x)
- else
- fun_l7_n14(x)
- end
-end
-
-def fun_l6_n177(x)
- if (x < 1)
- fun_l7_n844(x)
- else
- fun_l7_n549(x)
- end
-end
-
-def fun_l6_n178(x)
- if (x < 1)
- fun_l7_n396(x)
- else
- fun_l7_n802(x)
- end
-end
-
-def fun_l6_n179(x)
- if (x < 1)
- fun_l7_n407(x)
- else
- fun_l7_n612(x)
- end
-end
-
-def fun_l6_n180(x)
- if (x < 1)
- fun_l7_n403(x)
- else
- fun_l7_n768(x)
- end
-end
-
-def fun_l6_n181(x)
- if (x < 1)
- fun_l7_n412(x)
- else
- fun_l7_n301(x)
- end
-end
-
-def fun_l6_n182(x)
- if (x < 1)
- fun_l7_n479(x)
- else
- fun_l7_n923(x)
- end
-end
-
-def fun_l6_n183(x)
- if (x < 1)
- fun_l7_n664(x)
- else
- fun_l7_n451(x)
- end
-end
-
-def fun_l6_n184(x)
- if (x < 1)
- fun_l7_n854(x)
- else
- fun_l7_n438(x)
- end
-end
-
-def fun_l6_n185(x)
- if (x < 1)
- fun_l7_n994(x)
- else
- fun_l7_n726(x)
- end
-end
-
-def fun_l6_n186(x)
- if (x < 1)
- fun_l7_n128(x)
- else
- fun_l7_n166(x)
- end
-end
-
-def fun_l6_n187(x)
- if (x < 1)
- fun_l7_n515(x)
- else
- fun_l7_n21(x)
- end
-end
-
-def fun_l6_n188(x)
- if (x < 1)
- fun_l7_n487(x)
- else
- fun_l7_n631(x)
- end
-end
-
-def fun_l6_n189(x)
- if (x < 1)
- fun_l7_n16(x)
- else
- fun_l7_n579(x)
- end
-end
-
-def fun_l6_n190(x)
- if (x < 1)
- fun_l7_n30(x)
- else
- fun_l7_n417(x)
- end
-end
-
-def fun_l6_n191(x)
- if (x < 1)
- fun_l7_n737(x)
- else
- fun_l7_n436(x)
- end
-end
-
-def fun_l6_n192(x)
- if (x < 1)
- fun_l7_n260(x)
- else
- fun_l7_n657(x)
- end
-end
-
-def fun_l6_n193(x)
- if (x < 1)
- fun_l7_n722(x)
- else
- fun_l7_n489(x)
- end
-end
-
-def fun_l6_n194(x)
- if (x < 1)
- fun_l7_n53(x)
- else
- fun_l7_n624(x)
- end
-end
-
-def fun_l6_n195(x)
- if (x < 1)
- fun_l7_n91(x)
- else
- fun_l7_n597(x)
- end
-end
-
-def fun_l6_n196(x)
- if (x < 1)
- fun_l7_n980(x)
- else
- fun_l7_n498(x)
- end
-end
-
-def fun_l6_n197(x)
- if (x < 1)
- fun_l7_n918(x)
- else
- fun_l7_n328(x)
- end
-end
-
-def fun_l6_n198(x)
- if (x < 1)
- fun_l7_n184(x)
- else
- fun_l7_n761(x)
- end
-end
-
-def fun_l6_n199(x)
- if (x < 1)
- fun_l7_n692(x)
- else
- fun_l7_n610(x)
- end
-end
-
-def fun_l6_n200(x)
- if (x < 1)
- fun_l7_n597(x)
- else
- fun_l7_n135(x)
- end
-end
-
-def fun_l6_n201(x)
- if (x < 1)
- fun_l7_n973(x)
- else
- fun_l7_n453(x)
- end
-end
-
-def fun_l6_n202(x)
- if (x < 1)
- fun_l7_n433(x)
- else
- fun_l7_n794(x)
- end
-end
-
-def fun_l6_n203(x)
- if (x < 1)
- fun_l7_n294(x)
- else
- fun_l7_n271(x)
- end
-end
-
-def fun_l6_n204(x)
- if (x < 1)
- fun_l7_n783(x)
- else
- fun_l7_n20(x)
- end
-end
-
-def fun_l6_n205(x)
- if (x < 1)
- fun_l7_n941(x)
- else
- fun_l7_n517(x)
- end
-end
-
-def fun_l6_n206(x)
- if (x < 1)
- fun_l7_n306(x)
- else
- fun_l7_n735(x)
- end
-end
-
-def fun_l6_n207(x)
- if (x < 1)
- fun_l7_n63(x)
- else
- fun_l7_n313(x)
- end
-end
-
-def fun_l6_n208(x)
- if (x < 1)
- fun_l7_n766(x)
- else
- fun_l7_n868(x)
- end
-end
-
-def fun_l6_n209(x)
- if (x < 1)
- fun_l7_n780(x)
- else
- fun_l7_n422(x)
- end
-end
-
-def fun_l6_n210(x)
- if (x < 1)
- fun_l7_n279(x)
- else
- fun_l7_n695(x)
- end
-end
-
-def fun_l6_n211(x)
- if (x < 1)
- fun_l7_n981(x)
- else
- fun_l7_n946(x)
- end
-end
-
-def fun_l6_n212(x)
- if (x < 1)
- fun_l7_n885(x)
- else
- fun_l7_n752(x)
- end
-end
-
-def fun_l6_n213(x)
- if (x < 1)
- fun_l7_n238(x)
- else
- fun_l7_n322(x)
- end
-end
-
-def fun_l6_n214(x)
- if (x < 1)
- fun_l7_n832(x)
- else
- fun_l7_n714(x)
- end
-end
-
-def fun_l6_n215(x)
- if (x < 1)
- fun_l7_n369(x)
- else
- fun_l7_n793(x)
- end
-end
-
-def fun_l6_n216(x)
- if (x < 1)
- fun_l7_n897(x)
- else
- fun_l7_n22(x)
- end
-end
-
-def fun_l6_n217(x)
- if (x < 1)
- fun_l7_n94(x)
- else
- fun_l7_n93(x)
- end
-end
-
-def fun_l6_n218(x)
- if (x < 1)
- fun_l7_n638(x)
- else
- fun_l7_n267(x)
- end
-end
-
-def fun_l6_n219(x)
- if (x < 1)
- fun_l7_n254(x)
- else
- fun_l7_n162(x)
- end
-end
-
-def fun_l6_n220(x)
- if (x < 1)
- fun_l7_n969(x)
- else
- fun_l7_n371(x)
- end
-end
-
-def fun_l6_n221(x)
- if (x < 1)
- fun_l7_n692(x)
- else
- fun_l7_n421(x)
- end
-end
-
-def fun_l6_n222(x)
- if (x < 1)
- fun_l7_n312(x)
- else
- fun_l7_n475(x)
- end
-end
-
-def fun_l6_n223(x)
- if (x < 1)
- fun_l7_n566(x)
- else
- fun_l7_n497(x)
- end
-end
-
-def fun_l6_n224(x)
- if (x < 1)
- fun_l7_n560(x)
- else
- fun_l7_n60(x)
- end
-end
-
-def fun_l6_n225(x)
- if (x < 1)
- fun_l7_n484(x)
- else
- fun_l7_n602(x)
- end
-end
-
-def fun_l6_n226(x)
- if (x < 1)
- fun_l7_n399(x)
- else
- fun_l7_n614(x)
- end
-end
-
-def fun_l6_n227(x)
- if (x < 1)
- fun_l7_n344(x)
- else
- fun_l7_n701(x)
- end
-end
-
-def fun_l6_n228(x)
- if (x < 1)
- fun_l7_n840(x)
- else
- fun_l7_n211(x)
- end
-end
-
-def fun_l6_n229(x)
- if (x < 1)
- fun_l7_n423(x)
- else
- fun_l7_n51(x)
- end
-end
-
-def fun_l6_n230(x)
- if (x < 1)
- fun_l7_n978(x)
- else
- fun_l7_n334(x)
- end
-end
-
-def fun_l6_n231(x)
- if (x < 1)
- fun_l7_n136(x)
- else
- fun_l7_n296(x)
- end
-end
-
-def fun_l6_n232(x)
- if (x < 1)
- fun_l7_n24(x)
- else
- fun_l7_n282(x)
- end
-end
-
-def fun_l6_n233(x)
- if (x < 1)
- fun_l7_n803(x)
- else
- fun_l7_n623(x)
- end
-end
-
-def fun_l6_n234(x)
- if (x < 1)
- fun_l7_n720(x)
- else
- fun_l7_n492(x)
- end
-end
-
-def fun_l6_n235(x)
- if (x < 1)
- fun_l7_n627(x)
- else
- fun_l7_n260(x)
- end
-end
-
-def fun_l6_n236(x)
- if (x < 1)
- fun_l7_n460(x)
- else
- fun_l7_n693(x)
- end
-end
-
-def fun_l6_n237(x)
- if (x < 1)
- fun_l7_n635(x)
- else
- fun_l7_n745(x)
- end
-end
-
-def fun_l6_n238(x)
- if (x < 1)
- fun_l7_n76(x)
- else
- fun_l7_n283(x)
- end
-end
-
-def fun_l6_n239(x)
- if (x < 1)
- fun_l7_n183(x)
- else
- fun_l7_n515(x)
- end
-end
-
-def fun_l6_n240(x)
- if (x < 1)
- fun_l7_n266(x)
- else
- fun_l7_n34(x)
- end
-end
-
-def fun_l6_n241(x)
- if (x < 1)
- fun_l7_n480(x)
- else
- fun_l7_n868(x)
- end
-end
-
-def fun_l6_n242(x)
- if (x < 1)
- fun_l7_n998(x)
- else
- fun_l7_n669(x)
- end
-end
-
-def fun_l6_n243(x)
- if (x < 1)
- fun_l7_n414(x)
- else
- fun_l7_n161(x)
- end
-end
-
-def fun_l6_n244(x)
- if (x < 1)
- fun_l7_n104(x)
- else
- fun_l7_n659(x)
- end
-end
-
-def fun_l6_n245(x)
- if (x < 1)
- fun_l7_n881(x)
- else
- fun_l7_n229(x)
- end
-end
-
-def fun_l6_n246(x)
- if (x < 1)
- fun_l7_n328(x)
- else
- fun_l7_n935(x)
- end
-end
-
-def fun_l6_n247(x)
- if (x < 1)
- fun_l7_n433(x)
- else
- fun_l7_n565(x)
- end
-end
-
-def fun_l6_n248(x)
- if (x < 1)
- fun_l7_n161(x)
- else
- fun_l7_n760(x)
- end
-end
-
-def fun_l6_n249(x)
- if (x < 1)
- fun_l7_n115(x)
- else
- fun_l7_n594(x)
- end
-end
-
-def fun_l6_n250(x)
- if (x < 1)
- fun_l7_n350(x)
- else
- fun_l7_n310(x)
- end
-end
-
-def fun_l6_n251(x)
- if (x < 1)
- fun_l7_n920(x)
- else
- fun_l7_n51(x)
- end
-end
-
-def fun_l6_n252(x)
- if (x < 1)
- fun_l7_n132(x)
- else
- fun_l7_n492(x)
- end
-end
-
-def fun_l6_n253(x)
- if (x < 1)
- fun_l7_n618(x)
- else
- fun_l7_n325(x)
- end
-end
-
-def fun_l6_n254(x)
- if (x < 1)
- fun_l7_n682(x)
- else
- fun_l7_n840(x)
- end
-end
-
-def fun_l6_n255(x)
- if (x < 1)
- fun_l7_n462(x)
- else
- fun_l7_n780(x)
- end
-end
-
-def fun_l6_n256(x)
- if (x < 1)
- fun_l7_n712(x)
- else
- fun_l7_n995(x)
- end
-end
-
-def fun_l6_n257(x)
- if (x < 1)
- fun_l7_n111(x)
- else
- fun_l7_n121(x)
- end
-end
-
-def fun_l6_n258(x)
- if (x < 1)
- fun_l7_n255(x)
- else
- fun_l7_n384(x)
- end
-end
-
-def fun_l6_n259(x)
- if (x < 1)
- fun_l7_n610(x)
- else
- fun_l7_n555(x)
- end
-end
-
-def fun_l6_n260(x)
- if (x < 1)
- fun_l7_n778(x)
- else
- fun_l7_n454(x)
- end
-end
-
-def fun_l6_n261(x)
- if (x < 1)
- fun_l7_n376(x)
- else
- fun_l7_n892(x)
- end
-end
-
-def fun_l6_n262(x)
- if (x < 1)
- fun_l7_n454(x)
- else
- fun_l7_n468(x)
- end
-end
-
-def fun_l6_n263(x)
- if (x < 1)
- fun_l7_n708(x)
- else
- fun_l7_n368(x)
- end
-end
-
-def fun_l6_n264(x)
- if (x < 1)
- fun_l7_n517(x)
- else
- fun_l7_n299(x)
- end
-end
-
-def fun_l6_n265(x)
- if (x < 1)
- fun_l7_n987(x)
- else
- fun_l7_n318(x)
- end
-end
-
-def fun_l6_n266(x)
- if (x < 1)
- fun_l7_n372(x)
- else
- fun_l7_n560(x)
- end
-end
-
-def fun_l6_n267(x)
- if (x < 1)
- fun_l7_n493(x)
- else
- fun_l7_n288(x)
- end
-end
-
-def fun_l6_n268(x)
- if (x < 1)
- fun_l7_n278(x)
- else
- fun_l7_n10(x)
- end
-end
-
-def fun_l6_n269(x)
- if (x < 1)
- fun_l7_n417(x)
- else
- fun_l7_n703(x)
- end
-end
-
-def fun_l6_n270(x)
- if (x < 1)
- fun_l7_n410(x)
- else
- fun_l7_n91(x)
- end
-end
-
-def fun_l6_n271(x)
- if (x < 1)
- fun_l7_n281(x)
- else
- fun_l7_n447(x)
- end
-end
-
-def fun_l6_n272(x)
- if (x < 1)
- fun_l7_n263(x)
- else
- fun_l7_n374(x)
- end
-end
-
-def fun_l6_n273(x)
- if (x < 1)
- fun_l7_n622(x)
- else
- fun_l7_n310(x)
- end
-end
-
-def fun_l6_n274(x)
- if (x < 1)
- fun_l7_n176(x)
- else
- fun_l7_n227(x)
- end
-end
-
-def fun_l6_n275(x)
- if (x < 1)
- fun_l7_n848(x)
- else
- fun_l7_n416(x)
- end
-end
-
-def fun_l6_n276(x)
- if (x < 1)
- fun_l7_n998(x)
- else
- fun_l7_n969(x)
- end
-end
-
-def fun_l6_n277(x)
- if (x < 1)
- fun_l7_n356(x)
- else
- fun_l7_n722(x)
- end
-end
-
-def fun_l6_n278(x)
- if (x < 1)
- fun_l7_n888(x)
- else
- fun_l7_n156(x)
- end
-end
-
-def fun_l6_n279(x)
- if (x < 1)
- fun_l7_n779(x)
- else
- fun_l7_n123(x)
- end
-end
-
-def fun_l6_n280(x)
- if (x < 1)
- fun_l7_n393(x)
- else
- fun_l7_n765(x)
- end
-end
-
-def fun_l6_n281(x)
- if (x < 1)
- fun_l7_n257(x)
- else
- fun_l7_n277(x)
- end
-end
-
-def fun_l6_n282(x)
- if (x < 1)
- fun_l7_n780(x)
- else
- fun_l7_n643(x)
- end
-end
-
-def fun_l6_n283(x)
- if (x < 1)
- fun_l7_n63(x)
- else
- fun_l7_n449(x)
- end
-end
-
-def fun_l6_n284(x)
- if (x < 1)
- fun_l7_n200(x)
- else
- fun_l7_n806(x)
- end
-end
-
-def fun_l6_n285(x)
- if (x < 1)
- fun_l7_n575(x)
- else
- fun_l7_n409(x)
- end
-end
-
-def fun_l6_n286(x)
- if (x < 1)
- fun_l7_n377(x)
- else
- fun_l7_n456(x)
- end
-end
-
-def fun_l6_n287(x)
- if (x < 1)
- fun_l7_n519(x)
- else
- fun_l7_n473(x)
- end
-end
-
-def fun_l6_n288(x)
- if (x < 1)
- fun_l7_n525(x)
- else
- fun_l7_n45(x)
- end
-end
-
-def fun_l6_n289(x)
- if (x < 1)
- fun_l7_n678(x)
- else
- fun_l7_n910(x)
- end
-end
-
-def fun_l6_n290(x)
- if (x < 1)
- fun_l7_n628(x)
- else
- fun_l7_n939(x)
- end
-end
-
-def fun_l6_n291(x)
- if (x < 1)
- fun_l7_n967(x)
- else
- fun_l7_n927(x)
- end
-end
-
-def fun_l6_n292(x)
- if (x < 1)
- fun_l7_n634(x)
- else
- fun_l7_n184(x)
- end
-end
-
-def fun_l6_n293(x)
- if (x < 1)
- fun_l7_n857(x)
- else
- fun_l7_n625(x)
- end
-end
-
-def fun_l6_n294(x)
- if (x < 1)
- fun_l7_n105(x)
- else
- fun_l7_n46(x)
- end
-end
-
-def fun_l6_n295(x)
- if (x < 1)
- fun_l7_n642(x)
- else
- fun_l7_n566(x)
- end
-end
-
-def fun_l6_n296(x)
- if (x < 1)
- fun_l7_n173(x)
- else
- fun_l7_n619(x)
- end
-end
-
-def fun_l6_n297(x)
- if (x < 1)
- fun_l7_n257(x)
- else
- fun_l7_n485(x)
- end
-end
-
-def fun_l6_n298(x)
- if (x < 1)
- fun_l7_n447(x)
- else
- fun_l7_n808(x)
- end
-end
-
-def fun_l6_n299(x)
- if (x < 1)
- fun_l7_n838(x)
- else
- fun_l7_n856(x)
- end
-end
-
-def fun_l6_n300(x)
- if (x < 1)
- fun_l7_n893(x)
- else
- fun_l7_n99(x)
- end
-end
-
-def fun_l6_n301(x)
- if (x < 1)
- fun_l7_n180(x)
- else
- fun_l7_n126(x)
- end
-end
-
-def fun_l6_n302(x)
- if (x < 1)
- fun_l7_n62(x)
- else
- fun_l7_n266(x)
- end
-end
-
-def fun_l6_n303(x)
- if (x < 1)
- fun_l7_n709(x)
- else
- fun_l7_n196(x)
- end
-end
-
-def fun_l6_n304(x)
- if (x < 1)
- fun_l7_n408(x)
- else
- fun_l7_n730(x)
- end
-end
-
-def fun_l6_n305(x)
- if (x < 1)
- fun_l7_n736(x)
- else
- fun_l7_n673(x)
- end
-end
-
-def fun_l6_n306(x)
- if (x < 1)
- fun_l7_n734(x)
- else
- fun_l7_n519(x)
- end
-end
-
-def fun_l6_n307(x)
- if (x < 1)
- fun_l7_n629(x)
- else
- fun_l7_n670(x)
- end
-end
-
-def fun_l6_n308(x)
- if (x < 1)
- fun_l7_n839(x)
- else
- fun_l7_n191(x)
- end
-end
-
-def fun_l6_n309(x)
- if (x < 1)
- fun_l7_n123(x)
- else
- fun_l7_n553(x)
- end
-end
-
-def fun_l6_n310(x)
- if (x < 1)
- fun_l7_n812(x)
- else
- fun_l7_n815(x)
- end
-end
-
-def fun_l6_n311(x)
- if (x < 1)
- fun_l7_n860(x)
- else
- fun_l7_n519(x)
- end
-end
-
-def fun_l6_n312(x)
- if (x < 1)
- fun_l7_n181(x)
- else
- fun_l7_n674(x)
- end
-end
-
-def fun_l6_n313(x)
- if (x < 1)
- fun_l7_n654(x)
- else
- fun_l7_n500(x)
- end
-end
-
-def fun_l6_n314(x)
- if (x < 1)
- fun_l7_n690(x)
- else
- fun_l7_n136(x)
- end
-end
-
-def fun_l6_n315(x)
- if (x < 1)
- fun_l7_n944(x)
- else
- fun_l7_n956(x)
- end
-end
-
-def fun_l6_n316(x)
- if (x < 1)
- fun_l7_n471(x)
- else
- fun_l7_n245(x)
- end
-end
-
-def fun_l6_n317(x)
- if (x < 1)
- fun_l7_n520(x)
- else
- fun_l7_n919(x)
- end
-end
-
-def fun_l6_n318(x)
- if (x < 1)
- fun_l7_n843(x)
- else
- fun_l7_n793(x)
- end
-end
-
-def fun_l6_n319(x)
- if (x < 1)
- fun_l7_n765(x)
- else
- fun_l7_n363(x)
- end
-end
-
-def fun_l6_n320(x)
- if (x < 1)
- fun_l7_n483(x)
- else
- fun_l7_n439(x)
- end
-end
-
-def fun_l6_n321(x)
- if (x < 1)
- fun_l7_n232(x)
- else
- fun_l7_n921(x)
- end
-end
-
-def fun_l6_n322(x)
- if (x < 1)
- fun_l7_n398(x)
- else
- fun_l7_n862(x)
- end
-end
-
-def fun_l6_n323(x)
- if (x < 1)
- fun_l7_n550(x)
- else
- fun_l7_n84(x)
- end
-end
-
-def fun_l6_n324(x)
- if (x < 1)
- fun_l7_n788(x)
- else
- fun_l7_n512(x)
- end
-end
-
-def fun_l6_n325(x)
- if (x < 1)
- fun_l7_n512(x)
- else
- fun_l7_n303(x)
- end
-end
-
-def fun_l6_n326(x)
- if (x < 1)
- fun_l7_n86(x)
- else
- fun_l7_n555(x)
- end
-end
-
-def fun_l6_n327(x)
- if (x < 1)
- fun_l7_n857(x)
- else
- fun_l7_n751(x)
- end
-end
-
-def fun_l6_n328(x)
- if (x < 1)
- fun_l7_n341(x)
- else
- fun_l7_n208(x)
- end
-end
-
-def fun_l6_n329(x)
- if (x < 1)
- fun_l7_n707(x)
- else
- fun_l7_n371(x)
- end
-end
-
-def fun_l6_n330(x)
- if (x < 1)
- fun_l7_n217(x)
- else
- fun_l7_n604(x)
- end
-end
-
-def fun_l6_n331(x)
- if (x < 1)
- fun_l7_n607(x)
- else
- fun_l7_n471(x)
- end
-end
-
-def fun_l6_n332(x)
- if (x < 1)
- fun_l7_n818(x)
- else
- fun_l7_n787(x)
- end
-end
-
-def fun_l6_n333(x)
- if (x < 1)
- fun_l7_n28(x)
- else
- fun_l7_n220(x)
- end
-end
-
-def fun_l6_n334(x)
- if (x < 1)
- fun_l7_n666(x)
- else
- fun_l7_n995(x)
- end
-end
-
-def fun_l6_n335(x)
- if (x < 1)
- fun_l7_n3(x)
- else
- fun_l7_n970(x)
- end
-end
-
-def fun_l6_n336(x)
- if (x < 1)
- fun_l7_n977(x)
- else
- fun_l7_n77(x)
- end
-end
-
-def fun_l6_n337(x)
- if (x < 1)
- fun_l7_n54(x)
- else
- fun_l7_n814(x)
- end
-end
-
-def fun_l6_n338(x)
- if (x < 1)
- fun_l7_n129(x)
- else
- fun_l7_n624(x)
- end
-end
-
-def fun_l6_n339(x)
- if (x < 1)
- fun_l7_n866(x)
- else
- fun_l7_n821(x)
- end
-end
-
-def fun_l6_n340(x)
- if (x < 1)
- fun_l7_n912(x)
- else
- fun_l7_n24(x)
- end
-end
-
-def fun_l6_n341(x)
- if (x < 1)
- fun_l7_n684(x)
- else
- fun_l7_n610(x)
- end
-end
-
-def fun_l6_n342(x)
- if (x < 1)
- fun_l7_n816(x)
- else
- fun_l7_n826(x)
- end
-end
-
-def fun_l6_n343(x)
- if (x < 1)
- fun_l7_n479(x)
- else
- fun_l7_n444(x)
- end
-end
-
-def fun_l6_n344(x)
- if (x < 1)
- fun_l7_n51(x)
- else
- fun_l7_n731(x)
- end
-end
-
-def fun_l6_n345(x)
- if (x < 1)
- fun_l7_n690(x)
- else
- fun_l7_n631(x)
- end
-end
-
-def fun_l6_n346(x)
- if (x < 1)
- fun_l7_n254(x)
- else
- fun_l7_n353(x)
- end
-end
-
-def fun_l6_n347(x)
- if (x < 1)
- fun_l7_n905(x)
- else
- fun_l7_n422(x)
- end
-end
-
-def fun_l6_n348(x)
- if (x < 1)
- fun_l7_n249(x)
- else
- fun_l7_n200(x)
- end
-end
-
-def fun_l6_n349(x)
- if (x < 1)
- fun_l7_n11(x)
- else
- fun_l7_n550(x)
- end
-end
-
-def fun_l6_n350(x)
- if (x < 1)
- fun_l7_n818(x)
- else
- fun_l7_n444(x)
- end
-end
-
-def fun_l6_n351(x)
- if (x < 1)
- fun_l7_n422(x)
- else
- fun_l7_n242(x)
- end
-end
-
-def fun_l6_n352(x)
- if (x < 1)
- fun_l7_n653(x)
- else
- fun_l7_n912(x)
- end
-end
-
-def fun_l6_n353(x)
- if (x < 1)
- fun_l7_n605(x)
- else
- fun_l7_n129(x)
- end
-end
-
-def fun_l6_n354(x)
- if (x < 1)
- fun_l7_n622(x)
- else
- fun_l7_n172(x)
- end
-end
-
-def fun_l6_n355(x)
- if (x < 1)
- fun_l7_n568(x)
- else
- fun_l7_n26(x)
- end
-end
-
-def fun_l6_n356(x)
- if (x < 1)
- fun_l7_n777(x)
- else
- fun_l7_n818(x)
- end
-end
-
-def fun_l6_n357(x)
- if (x < 1)
- fun_l7_n807(x)
- else
- fun_l7_n642(x)
- end
-end
-
-def fun_l6_n358(x)
- if (x < 1)
- fun_l7_n745(x)
- else
- fun_l7_n866(x)
- end
-end
-
-def fun_l6_n359(x)
- if (x < 1)
- fun_l7_n603(x)
- else
- fun_l7_n42(x)
- end
-end
-
-def fun_l6_n360(x)
- if (x < 1)
- fun_l7_n818(x)
- else
- fun_l7_n203(x)
- end
-end
-
-def fun_l6_n361(x)
- if (x < 1)
- fun_l7_n451(x)
- else
- fun_l7_n719(x)
- end
-end
-
-def fun_l6_n362(x)
- if (x < 1)
- fun_l7_n31(x)
- else
- fun_l7_n148(x)
- end
-end
-
-def fun_l6_n363(x)
- if (x < 1)
- fun_l7_n148(x)
- else
- fun_l7_n292(x)
- end
-end
-
-def fun_l6_n364(x)
- if (x < 1)
- fun_l7_n175(x)
- else
- fun_l7_n849(x)
- end
-end
-
-def fun_l6_n365(x)
- if (x < 1)
- fun_l7_n414(x)
- else
- fun_l7_n57(x)
- end
-end
-
-def fun_l6_n366(x)
- if (x < 1)
- fun_l7_n771(x)
- else
- fun_l7_n625(x)
- end
-end
-
-def fun_l6_n367(x)
- if (x < 1)
- fun_l7_n232(x)
- else
- fun_l7_n108(x)
- end
-end
-
-def fun_l6_n368(x)
- if (x < 1)
- fun_l7_n123(x)
- else
- fun_l7_n413(x)
- end
-end
-
-def fun_l6_n369(x)
- if (x < 1)
- fun_l7_n587(x)
- else
- fun_l7_n876(x)
- end
-end
-
-def fun_l6_n370(x)
- if (x < 1)
- fun_l7_n750(x)
- else
- fun_l7_n531(x)
- end
-end
-
-def fun_l6_n371(x)
- if (x < 1)
- fun_l7_n55(x)
- else
- fun_l7_n859(x)
- end
-end
-
-def fun_l6_n372(x)
- if (x < 1)
- fun_l7_n848(x)
- else
- fun_l7_n272(x)
- end
-end
-
-def fun_l6_n373(x)
- if (x < 1)
- fun_l7_n480(x)
- else
- fun_l7_n976(x)
- end
-end
-
-def fun_l6_n374(x)
- if (x < 1)
- fun_l7_n298(x)
- else
- fun_l7_n844(x)
- end
-end
-
-def fun_l6_n375(x)
- if (x < 1)
- fun_l7_n564(x)
- else
- fun_l7_n960(x)
- end
-end
-
-def fun_l6_n376(x)
- if (x < 1)
- fun_l7_n684(x)
- else
- fun_l7_n181(x)
- end
-end
-
-def fun_l6_n377(x)
- if (x < 1)
- fun_l7_n153(x)
- else
- fun_l7_n21(x)
- end
-end
-
-def fun_l6_n378(x)
- if (x < 1)
- fun_l7_n377(x)
- else
- fun_l7_n761(x)
- end
-end
-
-def fun_l6_n379(x)
- if (x < 1)
- fun_l7_n737(x)
- else
- fun_l7_n605(x)
- end
-end
-
-def fun_l6_n380(x)
- if (x < 1)
- fun_l7_n536(x)
- else
- fun_l7_n143(x)
- end
-end
-
-def fun_l6_n381(x)
- if (x < 1)
- fun_l7_n314(x)
- else
- fun_l7_n999(x)
- end
-end
-
-def fun_l6_n382(x)
- if (x < 1)
- fun_l7_n995(x)
- else
- fun_l7_n564(x)
- end
-end
-
-def fun_l6_n383(x)
- if (x < 1)
- fun_l7_n772(x)
- else
- fun_l7_n520(x)
- end
-end
-
-def fun_l6_n384(x)
- if (x < 1)
- fun_l7_n250(x)
- else
- fun_l7_n142(x)
- end
-end
-
-def fun_l6_n385(x)
- if (x < 1)
- fun_l7_n993(x)
- else
- fun_l7_n987(x)
- end
-end
-
-def fun_l6_n386(x)
- if (x < 1)
- fun_l7_n717(x)
- else
- fun_l7_n674(x)
- end
-end
-
-def fun_l6_n387(x)
- if (x < 1)
- fun_l7_n585(x)
- else
- fun_l7_n102(x)
- end
-end
-
-def fun_l6_n388(x)
- if (x < 1)
- fun_l7_n779(x)
- else
- fun_l7_n110(x)
- end
-end
-
-def fun_l6_n389(x)
- if (x < 1)
- fun_l7_n815(x)
- else
- fun_l7_n194(x)
- end
-end
-
-def fun_l6_n390(x)
- if (x < 1)
- fun_l7_n261(x)
- else
- fun_l7_n30(x)
- end
-end
-
-def fun_l6_n391(x)
- if (x < 1)
- fun_l7_n746(x)
- else
- fun_l7_n207(x)
- end
-end
-
-def fun_l6_n392(x)
- if (x < 1)
- fun_l7_n866(x)
- else
- fun_l7_n862(x)
- end
-end
-
-def fun_l6_n393(x)
- if (x < 1)
- fun_l7_n47(x)
- else
- fun_l7_n692(x)
- end
-end
-
-def fun_l6_n394(x)
- if (x < 1)
- fun_l7_n140(x)
- else
- fun_l7_n104(x)
- end
-end
-
-def fun_l6_n395(x)
- if (x < 1)
- fun_l7_n170(x)
- else
- fun_l7_n93(x)
- end
-end
-
-def fun_l6_n396(x)
- if (x < 1)
- fun_l7_n184(x)
- else
- fun_l7_n218(x)
- end
-end
-
-def fun_l6_n397(x)
- if (x < 1)
- fun_l7_n268(x)
- else
- fun_l7_n278(x)
- end
-end
-
-def fun_l6_n398(x)
- if (x < 1)
- fun_l7_n859(x)
- else
- fun_l7_n888(x)
- end
-end
-
-def fun_l6_n399(x)
- if (x < 1)
- fun_l7_n540(x)
- else
- fun_l7_n218(x)
- end
-end
-
-def fun_l6_n400(x)
- if (x < 1)
- fun_l7_n148(x)
- else
- fun_l7_n220(x)
- end
-end
-
-def fun_l6_n401(x)
- if (x < 1)
- fun_l7_n169(x)
- else
- fun_l7_n310(x)
- end
-end
-
-def fun_l6_n402(x)
- if (x < 1)
- fun_l7_n256(x)
- else
- fun_l7_n336(x)
- end
-end
-
-def fun_l6_n403(x)
- if (x < 1)
- fun_l7_n257(x)
- else
- fun_l7_n536(x)
- end
-end
-
-def fun_l6_n404(x)
- if (x < 1)
- fun_l7_n47(x)
- else
- fun_l7_n714(x)
- end
-end
-
-def fun_l6_n405(x)
- if (x < 1)
- fun_l7_n913(x)
- else
- fun_l7_n705(x)
- end
-end
-
-def fun_l6_n406(x)
- if (x < 1)
- fun_l7_n816(x)
- else
- fun_l7_n168(x)
- end
-end
-
-def fun_l6_n407(x)
- if (x < 1)
- fun_l7_n506(x)
- else
- fun_l7_n772(x)
- end
-end
-
-def fun_l6_n408(x)
- if (x < 1)
- fun_l7_n983(x)
- else
- fun_l7_n973(x)
- end
-end
-
-def fun_l6_n409(x)
- if (x < 1)
- fun_l7_n752(x)
- else
- fun_l7_n543(x)
- end
-end
-
-def fun_l6_n410(x)
- if (x < 1)
- fun_l7_n580(x)
- else
- fun_l7_n265(x)
- end
-end
-
-def fun_l6_n411(x)
- if (x < 1)
- fun_l7_n744(x)
- else
- fun_l7_n736(x)
- end
-end
-
-def fun_l6_n412(x)
- if (x < 1)
- fun_l7_n950(x)
- else
- fun_l7_n5(x)
- end
-end
-
-def fun_l6_n413(x)
- if (x < 1)
- fun_l7_n734(x)
- else
- fun_l7_n151(x)
- end
-end
-
-def fun_l6_n414(x)
- if (x < 1)
- fun_l7_n907(x)
- else
- fun_l7_n113(x)
- end
-end
-
-def fun_l6_n415(x)
- if (x < 1)
- fun_l7_n621(x)
- else
- fun_l7_n272(x)
- end
-end
-
-def fun_l6_n416(x)
- if (x < 1)
- fun_l7_n598(x)
- else
- fun_l7_n872(x)
- end
-end
-
-def fun_l6_n417(x)
- if (x < 1)
- fun_l7_n811(x)
- else
- fun_l7_n734(x)
- end
-end
-
-def fun_l6_n418(x)
- if (x < 1)
- fun_l7_n18(x)
- else
- fun_l7_n405(x)
- end
-end
-
-def fun_l6_n419(x)
- if (x < 1)
- fun_l7_n89(x)
- else
- fun_l7_n153(x)
- end
-end
-
-def fun_l6_n420(x)
- if (x < 1)
- fun_l7_n438(x)
- else
- fun_l7_n452(x)
- end
-end
-
-def fun_l6_n421(x)
- if (x < 1)
- fun_l7_n601(x)
- else
- fun_l7_n777(x)
- end
-end
-
-def fun_l6_n422(x)
- if (x < 1)
- fun_l7_n202(x)
- else
- fun_l7_n368(x)
- end
-end
-
-def fun_l6_n423(x)
- if (x < 1)
- fun_l7_n636(x)
- else
- fun_l7_n137(x)
- end
-end
-
-def fun_l6_n424(x)
- if (x < 1)
- fun_l7_n222(x)
- else
- fun_l7_n838(x)
- end
-end
-
-def fun_l6_n425(x)
- if (x < 1)
- fun_l7_n388(x)
- else
- fun_l7_n175(x)
- end
-end
-
-def fun_l6_n426(x)
- if (x < 1)
- fun_l7_n629(x)
- else
- fun_l7_n376(x)
- end
-end
-
-def fun_l6_n427(x)
- if (x < 1)
- fun_l7_n293(x)
- else
- fun_l7_n517(x)
- end
-end
-
-def fun_l6_n428(x)
- if (x < 1)
- fun_l7_n859(x)
- else
- fun_l7_n129(x)
- end
-end
-
-def fun_l6_n429(x)
- if (x < 1)
- fun_l7_n854(x)
- else
- fun_l7_n647(x)
- end
-end
-
-def fun_l6_n430(x)
- if (x < 1)
- fun_l7_n117(x)
- else
- fun_l7_n291(x)
- end
-end
-
-def fun_l6_n431(x)
- if (x < 1)
- fun_l7_n505(x)
- else
- fun_l7_n938(x)
- end
-end
-
-def fun_l6_n432(x)
- if (x < 1)
- fun_l7_n536(x)
- else
- fun_l7_n303(x)
- end
-end
-
-def fun_l6_n433(x)
- if (x < 1)
- fun_l7_n443(x)
- else
- fun_l7_n945(x)
- end
-end
-
-def fun_l6_n434(x)
- if (x < 1)
- fun_l7_n74(x)
- else
- fun_l7_n594(x)
- end
-end
-
-def fun_l6_n435(x)
- if (x < 1)
- fun_l7_n273(x)
- else
- fun_l7_n704(x)
- end
-end
-
-def fun_l6_n436(x)
- if (x < 1)
- fun_l7_n451(x)
- else
- fun_l7_n371(x)
- end
-end
-
-def fun_l6_n437(x)
- if (x < 1)
- fun_l7_n628(x)
- else
- fun_l7_n963(x)
- end
-end
-
-def fun_l6_n438(x)
- if (x < 1)
- fun_l7_n361(x)
- else
- fun_l7_n506(x)
- end
-end
-
-def fun_l6_n439(x)
- if (x < 1)
- fun_l7_n8(x)
- else
- fun_l7_n721(x)
- end
-end
-
-def fun_l6_n440(x)
- if (x < 1)
- fun_l7_n728(x)
- else
- fun_l7_n372(x)
- end
-end
-
-def fun_l6_n441(x)
- if (x < 1)
- fun_l7_n988(x)
- else
- fun_l7_n323(x)
- end
-end
-
-def fun_l6_n442(x)
- if (x < 1)
- fun_l7_n5(x)
- else
- fun_l7_n56(x)
- end
-end
-
-def fun_l6_n443(x)
- if (x < 1)
- fun_l7_n553(x)
- else
- fun_l7_n776(x)
- end
-end
-
-def fun_l6_n444(x)
- if (x < 1)
- fun_l7_n194(x)
- else
- fun_l7_n101(x)
- end
-end
-
-def fun_l6_n445(x)
- if (x < 1)
- fun_l7_n613(x)
- else
- fun_l7_n977(x)
- end
-end
-
-def fun_l6_n446(x)
- if (x < 1)
- fun_l7_n23(x)
- else
- fun_l7_n311(x)
- end
-end
-
-def fun_l6_n447(x)
- if (x < 1)
- fun_l7_n686(x)
- else
- fun_l7_n8(x)
- end
-end
-
-def fun_l6_n448(x)
- if (x < 1)
- fun_l7_n812(x)
- else
- fun_l7_n229(x)
- end
-end
-
-def fun_l6_n449(x)
- if (x < 1)
- fun_l7_n222(x)
- else
- fun_l7_n620(x)
- end
-end
-
-def fun_l6_n450(x)
- if (x < 1)
- fun_l7_n599(x)
- else
- fun_l7_n468(x)
- end
-end
-
-def fun_l6_n451(x)
- if (x < 1)
- fun_l7_n347(x)
- else
- fun_l7_n504(x)
- end
-end
-
-def fun_l6_n452(x)
- if (x < 1)
- fun_l7_n95(x)
- else
- fun_l7_n482(x)
- end
-end
-
-def fun_l6_n453(x)
- if (x < 1)
- fun_l7_n217(x)
- else
- fun_l7_n419(x)
- end
-end
-
-def fun_l6_n454(x)
- if (x < 1)
- fun_l7_n28(x)
- else
- fun_l7_n609(x)
- end
-end
-
-def fun_l6_n455(x)
- if (x < 1)
- fun_l7_n932(x)
- else
- fun_l7_n744(x)
- end
-end
-
-def fun_l6_n456(x)
- if (x < 1)
- fun_l7_n901(x)
- else
- fun_l7_n882(x)
- end
-end
-
-def fun_l6_n457(x)
- if (x < 1)
- fun_l7_n368(x)
- else
- fun_l7_n441(x)
- end
-end
-
-def fun_l6_n458(x)
- if (x < 1)
- fun_l7_n49(x)
- else
- fun_l7_n135(x)
- end
-end
-
-def fun_l6_n459(x)
- if (x < 1)
- fun_l7_n228(x)
- else
- fun_l7_n899(x)
- end
-end
-
-def fun_l6_n460(x)
- if (x < 1)
- fun_l7_n90(x)
- else
- fun_l7_n190(x)
- end
-end
-
-def fun_l6_n461(x)
- if (x < 1)
- fun_l7_n892(x)
- else
- fun_l7_n670(x)
- end
-end
-
-def fun_l6_n462(x)
- if (x < 1)
- fun_l7_n961(x)
- else
- fun_l7_n769(x)
- end
-end
-
-def fun_l6_n463(x)
- if (x < 1)
- fun_l7_n828(x)
- else
- fun_l7_n219(x)
- end
-end
-
-def fun_l6_n464(x)
- if (x < 1)
- fun_l7_n17(x)
- else
- fun_l7_n345(x)
- end
-end
-
-def fun_l6_n465(x)
- if (x < 1)
- fun_l7_n412(x)
- else
- fun_l7_n498(x)
- end
-end
-
-def fun_l6_n466(x)
- if (x < 1)
- fun_l7_n659(x)
- else
- fun_l7_n781(x)
- end
-end
-
-def fun_l6_n467(x)
- if (x < 1)
- fun_l7_n528(x)
- else
- fun_l7_n138(x)
- end
-end
-
-def fun_l6_n468(x)
- if (x < 1)
- fun_l7_n272(x)
- else
- fun_l7_n512(x)
- end
-end
-
-def fun_l6_n469(x)
- if (x < 1)
- fun_l7_n458(x)
- else
- fun_l7_n430(x)
- end
-end
-
-def fun_l6_n470(x)
- if (x < 1)
- fun_l7_n192(x)
- else
- fun_l7_n755(x)
- end
-end
-
-def fun_l6_n471(x)
- if (x < 1)
- fun_l7_n188(x)
- else
- fun_l7_n827(x)
- end
-end
-
-def fun_l6_n472(x)
- if (x < 1)
- fun_l7_n467(x)
- else
- fun_l7_n167(x)
- end
-end
-
-def fun_l6_n473(x)
- if (x < 1)
- fun_l7_n648(x)
- else
- fun_l7_n823(x)
- end
-end
-
-def fun_l6_n474(x)
- if (x < 1)
- fun_l7_n788(x)
- else
- fun_l7_n120(x)
- end
-end
-
-def fun_l6_n475(x)
- if (x < 1)
- fun_l7_n199(x)
- else
- fun_l7_n25(x)
- end
-end
-
-def fun_l6_n476(x)
- if (x < 1)
- fun_l7_n812(x)
- else
- fun_l7_n258(x)
- end
-end
-
-def fun_l6_n477(x)
- if (x < 1)
- fun_l7_n525(x)
- else
- fun_l7_n140(x)
- end
-end
-
-def fun_l6_n478(x)
- if (x < 1)
- fun_l7_n728(x)
- else
- fun_l7_n157(x)
- end
-end
-
-def fun_l6_n479(x)
- if (x < 1)
- fun_l7_n527(x)
- else
- fun_l7_n172(x)
- end
-end
-
-def fun_l6_n480(x)
- if (x < 1)
- fun_l7_n295(x)
- else
- fun_l7_n230(x)
- end
-end
-
-def fun_l6_n481(x)
- if (x < 1)
- fun_l7_n619(x)
- else
- fun_l7_n495(x)
- end
-end
-
-def fun_l6_n482(x)
- if (x < 1)
- fun_l7_n412(x)
- else
- fun_l7_n30(x)
- end
-end
-
-def fun_l6_n483(x)
- if (x < 1)
- fun_l7_n236(x)
- else
- fun_l7_n842(x)
- end
-end
-
-def fun_l6_n484(x)
- if (x < 1)
- fun_l7_n59(x)
- else
- fun_l7_n341(x)
- end
-end
-
-def fun_l6_n485(x)
- if (x < 1)
- fun_l7_n841(x)
- else
- fun_l7_n67(x)
- end
-end
-
-def fun_l6_n486(x)
- if (x < 1)
- fun_l7_n299(x)
- else
- fun_l7_n144(x)
- end
-end
-
-def fun_l6_n487(x)
- if (x < 1)
- fun_l7_n672(x)
- else
- fun_l7_n682(x)
- end
-end
-
-def fun_l6_n488(x)
- if (x < 1)
- fun_l7_n110(x)
- else
- fun_l7_n231(x)
- end
-end
-
-def fun_l6_n489(x)
- if (x < 1)
- fun_l7_n984(x)
- else
- fun_l7_n583(x)
- end
-end
-
-def fun_l6_n490(x)
- if (x < 1)
- fun_l7_n354(x)
- else
- fun_l7_n90(x)
- end
-end
-
-def fun_l6_n491(x)
- if (x < 1)
- fun_l7_n541(x)
- else
- fun_l7_n583(x)
- end
-end
-
-def fun_l6_n492(x)
- if (x < 1)
- fun_l7_n35(x)
- else
- fun_l7_n209(x)
- end
-end
-
-def fun_l6_n493(x)
- if (x < 1)
- fun_l7_n547(x)
- else
- fun_l7_n982(x)
- end
-end
-
-def fun_l6_n494(x)
- if (x < 1)
- fun_l7_n3(x)
- else
- fun_l7_n230(x)
- end
-end
-
-def fun_l6_n495(x)
- if (x < 1)
- fun_l7_n777(x)
- else
- fun_l7_n140(x)
- end
-end
-
-def fun_l6_n496(x)
- if (x < 1)
- fun_l7_n927(x)
- else
- fun_l7_n934(x)
- end
-end
-
-def fun_l6_n497(x)
- if (x < 1)
- fun_l7_n201(x)
- else
- fun_l7_n342(x)
- end
-end
-
-def fun_l6_n498(x)
- if (x < 1)
- fun_l7_n973(x)
- else
- fun_l7_n106(x)
- end
-end
-
-def fun_l6_n499(x)
- if (x < 1)
- fun_l7_n373(x)
- else
- fun_l7_n558(x)
- end
-end
-
-def fun_l6_n500(x)
- if (x < 1)
- fun_l7_n835(x)
- else
- fun_l7_n981(x)
- end
-end
-
-def fun_l6_n501(x)
- if (x < 1)
- fun_l7_n135(x)
- else
- fun_l7_n997(x)
- end
-end
-
-def fun_l6_n502(x)
- if (x < 1)
- fun_l7_n129(x)
- else
- fun_l7_n530(x)
- end
-end
-
-def fun_l6_n503(x)
- if (x < 1)
- fun_l7_n924(x)
- else
- fun_l7_n611(x)
- end
-end
-
-def fun_l6_n504(x)
- if (x < 1)
- fun_l7_n125(x)
- else
- fun_l7_n26(x)
- end
-end
-
-def fun_l6_n505(x)
- if (x < 1)
- fun_l7_n592(x)
- else
- fun_l7_n50(x)
- end
-end
-
-def fun_l6_n506(x)
- if (x < 1)
- fun_l7_n220(x)
- else
- fun_l7_n787(x)
- end
-end
-
-def fun_l6_n507(x)
- if (x < 1)
- fun_l7_n908(x)
- else
- fun_l7_n15(x)
- end
-end
-
-def fun_l6_n508(x)
- if (x < 1)
- fun_l7_n475(x)
- else
- fun_l7_n899(x)
- end
-end
-
-def fun_l6_n509(x)
- if (x < 1)
- fun_l7_n704(x)
- else
- fun_l7_n559(x)
- end
-end
-
-def fun_l6_n510(x)
- if (x < 1)
- fun_l7_n625(x)
- else
- fun_l7_n73(x)
- end
-end
-
-def fun_l6_n511(x)
- if (x < 1)
- fun_l7_n234(x)
- else
- fun_l7_n166(x)
- end
-end
-
-def fun_l6_n512(x)
- if (x < 1)
- fun_l7_n502(x)
- else
- fun_l7_n304(x)
- end
-end
-
-def fun_l6_n513(x)
- if (x < 1)
- fun_l7_n686(x)
- else
- fun_l7_n643(x)
- end
-end
-
-def fun_l6_n514(x)
- if (x < 1)
- fun_l7_n804(x)
- else
- fun_l7_n116(x)
- end
-end
-
-def fun_l6_n515(x)
- if (x < 1)
- fun_l7_n365(x)
- else
- fun_l7_n102(x)
- end
-end
-
-def fun_l6_n516(x)
- if (x < 1)
- fun_l7_n563(x)
- else
- fun_l7_n161(x)
- end
-end
-
-def fun_l6_n517(x)
- if (x < 1)
- fun_l7_n695(x)
- else
- fun_l7_n936(x)
- end
-end
-
-def fun_l6_n518(x)
- if (x < 1)
- fun_l7_n220(x)
- else
- fun_l7_n884(x)
- end
-end
-
-def fun_l6_n519(x)
- if (x < 1)
- fun_l7_n602(x)
- else
- fun_l7_n144(x)
- end
-end
-
-def fun_l6_n520(x)
- if (x < 1)
- fun_l7_n409(x)
- else
- fun_l7_n861(x)
- end
-end
-
-def fun_l6_n521(x)
- if (x < 1)
- fun_l7_n258(x)
- else
- fun_l7_n768(x)
- end
-end
-
-def fun_l6_n522(x)
- if (x < 1)
- fun_l7_n878(x)
- else
- fun_l7_n503(x)
- end
-end
-
-def fun_l6_n523(x)
- if (x < 1)
- fun_l7_n570(x)
- else
- fun_l7_n675(x)
- end
-end
-
-def fun_l6_n524(x)
- if (x < 1)
- fun_l7_n741(x)
- else
- fun_l7_n748(x)
- end
-end
-
-def fun_l6_n525(x)
- if (x < 1)
- fun_l7_n729(x)
- else
- fun_l7_n272(x)
- end
-end
-
-def fun_l6_n526(x)
- if (x < 1)
- fun_l7_n734(x)
- else
- fun_l7_n70(x)
- end
-end
-
-def fun_l6_n527(x)
- if (x < 1)
- fun_l7_n235(x)
- else
- fun_l7_n606(x)
- end
-end
-
-def fun_l6_n528(x)
- if (x < 1)
- fun_l7_n67(x)
- else
- fun_l7_n399(x)
- end
-end
-
-def fun_l6_n529(x)
- if (x < 1)
- fun_l7_n706(x)
- else
- fun_l7_n150(x)
- end
-end
-
-def fun_l6_n530(x)
- if (x < 1)
- fun_l7_n35(x)
- else
- fun_l7_n951(x)
- end
-end
-
-def fun_l6_n531(x)
- if (x < 1)
- fun_l7_n517(x)
- else
- fun_l7_n329(x)
- end
-end
-
-def fun_l6_n532(x)
- if (x < 1)
- fun_l7_n392(x)
- else
- fun_l7_n970(x)
- end
-end
-
-def fun_l6_n533(x)
- if (x < 1)
- fun_l7_n466(x)
- else
- fun_l7_n260(x)
- end
-end
-
-def fun_l6_n534(x)
- if (x < 1)
- fun_l7_n957(x)
- else
- fun_l7_n417(x)
- end
-end
-
-def fun_l6_n535(x)
- if (x < 1)
- fun_l7_n184(x)
- else
- fun_l7_n188(x)
- end
-end
-
-def fun_l6_n536(x)
- if (x < 1)
- fun_l7_n298(x)
- else
- fun_l7_n192(x)
- end
-end
-
-def fun_l6_n537(x)
- if (x < 1)
- fun_l7_n28(x)
- else
- fun_l7_n309(x)
- end
-end
-
-def fun_l6_n538(x)
- if (x < 1)
- fun_l7_n801(x)
- else
- fun_l7_n84(x)
- end
-end
-
-def fun_l6_n539(x)
- if (x < 1)
- fun_l7_n894(x)
- else
- fun_l7_n973(x)
- end
-end
-
-def fun_l6_n540(x)
- if (x < 1)
- fun_l7_n895(x)
- else
- fun_l7_n231(x)
- end
-end
-
-def fun_l6_n541(x)
- if (x < 1)
- fun_l7_n728(x)
- else
- fun_l7_n28(x)
- end
-end
-
-def fun_l6_n542(x)
- if (x < 1)
- fun_l7_n655(x)
- else
- fun_l7_n845(x)
- end
-end
-
-def fun_l6_n543(x)
- if (x < 1)
- fun_l7_n952(x)
- else
- fun_l7_n484(x)
- end
-end
-
-def fun_l6_n544(x)
- if (x < 1)
- fun_l7_n835(x)
- else
- fun_l7_n187(x)
- end
-end
-
-def fun_l6_n545(x)
- if (x < 1)
- fun_l7_n748(x)
- else
- fun_l7_n460(x)
- end
-end
-
-def fun_l6_n546(x)
- if (x < 1)
- fun_l7_n734(x)
- else
- fun_l7_n165(x)
- end
-end
-
-def fun_l6_n547(x)
- if (x < 1)
- fun_l7_n499(x)
- else
- fun_l7_n133(x)
- end
-end
-
-def fun_l6_n548(x)
- if (x < 1)
- fun_l7_n751(x)
- else
- fun_l7_n731(x)
- end
-end
-
-def fun_l6_n549(x)
- if (x < 1)
- fun_l7_n269(x)
- else
- fun_l7_n690(x)
- end
-end
-
-def fun_l6_n550(x)
- if (x < 1)
- fun_l7_n320(x)
- else
- fun_l7_n308(x)
- end
-end
-
-def fun_l6_n551(x)
- if (x < 1)
- fun_l7_n182(x)
- else
- fun_l7_n144(x)
- end
-end
-
-def fun_l6_n552(x)
- if (x < 1)
- fun_l7_n683(x)
- else
- fun_l7_n691(x)
- end
-end
-
-def fun_l6_n553(x)
- if (x < 1)
- fun_l7_n502(x)
- else
- fun_l7_n520(x)
- end
-end
-
-def fun_l6_n554(x)
- if (x < 1)
- fun_l7_n60(x)
- else
- fun_l7_n551(x)
- end
-end
-
-def fun_l6_n555(x)
- if (x < 1)
- fun_l7_n185(x)
- else
- fun_l7_n87(x)
- end
-end
-
-def fun_l6_n556(x)
- if (x < 1)
- fun_l7_n140(x)
- else
- fun_l7_n725(x)
- end
-end
-
-def fun_l6_n557(x)
- if (x < 1)
- fun_l7_n76(x)
- else
- fun_l7_n501(x)
- end
-end
-
-def fun_l6_n558(x)
- if (x < 1)
- fun_l7_n553(x)
- else
- fun_l7_n146(x)
- end
-end
-
-def fun_l6_n559(x)
- if (x < 1)
- fun_l7_n535(x)
- else
- fun_l7_n17(x)
- end
-end
-
-def fun_l6_n560(x)
- if (x < 1)
- fun_l7_n566(x)
- else
- fun_l7_n773(x)
- end
-end
-
-def fun_l6_n561(x)
- if (x < 1)
- fun_l7_n358(x)
- else
- fun_l7_n951(x)
- end
-end
-
-def fun_l6_n562(x)
- if (x < 1)
- fun_l7_n492(x)
- else
- fun_l7_n478(x)
- end
-end
-
-def fun_l6_n563(x)
- if (x < 1)
- fun_l7_n796(x)
- else
- fun_l7_n906(x)
- end
-end
-
-def fun_l6_n564(x)
- if (x < 1)
- fun_l7_n751(x)
- else
- fun_l7_n546(x)
- end
-end
-
-def fun_l6_n565(x)
- if (x < 1)
- fun_l7_n179(x)
- else
- fun_l7_n49(x)
- end
-end
-
-def fun_l6_n566(x)
- if (x < 1)
- fun_l7_n550(x)
- else
- fun_l7_n440(x)
- end
-end
-
-def fun_l6_n567(x)
- if (x < 1)
- fun_l7_n715(x)
- else
- fun_l7_n862(x)
- end
-end
-
-def fun_l6_n568(x)
- if (x < 1)
- fun_l7_n124(x)
- else
- fun_l7_n191(x)
- end
-end
-
-def fun_l6_n569(x)
- if (x < 1)
- fun_l7_n709(x)
- else
- fun_l7_n704(x)
- end
-end
-
-def fun_l6_n570(x)
- if (x < 1)
- fun_l7_n864(x)
- else
- fun_l7_n84(x)
- end
-end
-
-def fun_l6_n571(x)
- if (x < 1)
- fun_l7_n302(x)
- else
- fun_l7_n424(x)
- end
-end
-
-def fun_l6_n572(x)
- if (x < 1)
- fun_l7_n488(x)
- else
- fun_l7_n570(x)
- end
-end
-
-def fun_l6_n573(x)
- if (x < 1)
- fun_l7_n590(x)
- else
- fun_l7_n560(x)
- end
-end
-
-def fun_l6_n574(x)
- if (x < 1)
- fun_l7_n38(x)
- else
- fun_l7_n444(x)
- end
-end
-
-def fun_l6_n575(x)
- if (x < 1)
- fun_l7_n401(x)
- else
- fun_l7_n359(x)
- end
-end
-
-def fun_l6_n576(x)
- if (x < 1)
- fun_l7_n518(x)
- else
- fun_l7_n240(x)
- end
-end
-
-def fun_l6_n577(x)
- if (x < 1)
- fun_l7_n247(x)
- else
- fun_l7_n540(x)
- end
-end
-
-def fun_l6_n578(x)
- if (x < 1)
- fun_l7_n223(x)
- else
- fun_l7_n729(x)
- end
-end
-
-def fun_l6_n579(x)
- if (x < 1)
- fun_l7_n524(x)
- else
- fun_l7_n684(x)
- end
-end
-
-def fun_l6_n580(x)
- if (x < 1)
- fun_l7_n113(x)
- else
- fun_l7_n865(x)
- end
-end
-
-def fun_l6_n581(x)
- if (x < 1)
- fun_l7_n920(x)
- else
- fun_l7_n238(x)
- end
-end
-
-def fun_l6_n582(x)
- if (x < 1)
- fun_l7_n78(x)
- else
- fun_l7_n85(x)
- end
-end
-
-def fun_l6_n583(x)
- if (x < 1)
- fun_l7_n713(x)
- else
- fun_l7_n110(x)
- end
-end
-
-def fun_l6_n584(x)
- if (x < 1)
- fun_l7_n170(x)
- else
- fun_l7_n183(x)
- end
-end
-
-def fun_l6_n585(x)
- if (x < 1)
- fun_l7_n100(x)
- else
- fun_l7_n215(x)
- end
-end
-
-def fun_l6_n586(x)
- if (x < 1)
- fun_l7_n126(x)
- else
- fun_l7_n136(x)
- end
-end
-
-def fun_l6_n587(x)
- if (x < 1)
- fun_l7_n592(x)
- else
- fun_l7_n502(x)
- end
-end
-
-def fun_l6_n588(x)
- if (x < 1)
- fun_l7_n155(x)
- else
- fun_l7_n591(x)
- end
-end
-
-def fun_l6_n589(x)
- if (x < 1)
- fun_l7_n840(x)
- else
- fun_l7_n91(x)
- end
-end
-
-def fun_l6_n590(x)
- if (x < 1)
- fun_l7_n146(x)
- else
- fun_l7_n849(x)
- end
-end
-
-def fun_l6_n591(x)
- if (x < 1)
- fun_l7_n161(x)
- else
- fun_l7_n884(x)
- end
-end
-
-def fun_l6_n592(x)
- if (x < 1)
- fun_l7_n994(x)
- else
- fun_l7_n341(x)
- end
-end
-
-def fun_l6_n593(x)
- if (x < 1)
- fun_l7_n974(x)
- else
- fun_l7_n355(x)
- end
-end
-
-def fun_l6_n594(x)
- if (x < 1)
- fun_l7_n726(x)
- else
- fun_l7_n266(x)
- end
-end
-
-def fun_l6_n595(x)
- if (x < 1)
- fun_l7_n142(x)
- else
- fun_l7_n154(x)
- end
-end
-
-def fun_l6_n596(x)
- if (x < 1)
- fun_l7_n287(x)
- else
- fun_l7_n155(x)
- end
-end
-
-def fun_l6_n597(x)
- if (x < 1)
- fun_l7_n594(x)
- else
- fun_l7_n424(x)
- end
-end
-
-def fun_l6_n598(x)
- if (x < 1)
- fun_l7_n227(x)
- else
- fun_l7_n445(x)
- end
-end
-
-def fun_l6_n599(x)
- if (x < 1)
- fun_l7_n660(x)
- else
- fun_l7_n464(x)
- end
-end
-
-def fun_l6_n600(x)
- if (x < 1)
- fun_l7_n930(x)
- else
- fun_l7_n520(x)
- end
-end
-
-def fun_l6_n601(x)
- if (x < 1)
- fun_l7_n714(x)
- else
- fun_l7_n984(x)
- end
-end
-
-def fun_l6_n602(x)
- if (x < 1)
- fun_l7_n226(x)
- else
- fun_l7_n316(x)
- end
-end
-
-def fun_l6_n603(x)
- if (x < 1)
- fun_l7_n104(x)
- else
- fun_l7_n563(x)
- end
-end
-
-def fun_l6_n604(x)
- if (x < 1)
- fun_l7_n149(x)
- else
- fun_l7_n921(x)
- end
-end
-
-def fun_l6_n605(x)
- if (x < 1)
- fun_l7_n195(x)
- else
- fun_l7_n696(x)
- end
-end
-
-def fun_l6_n606(x)
- if (x < 1)
- fun_l7_n337(x)
- else
- fun_l7_n347(x)
- end
-end
-
-def fun_l6_n607(x)
- if (x < 1)
- fun_l7_n657(x)
- else
- fun_l7_n67(x)
- end
-end
-
-def fun_l6_n608(x)
- if (x < 1)
- fun_l7_n796(x)
- else
- fun_l7_n589(x)
- end
-end
-
-def fun_l6_n609(x)
- if (x < 1)
- fun_l7_n230(x)
- else
- fun_l7_n769(x)
- end
-end
-
-def fun_l6_n610(x)
- if (x < 1)
- fun_l7_n427(x)
- else
- fun_l7_n892(x)
- end
-end
-
-def fun_l6_n611(x)
- if (x < 1)
- fun_l7_n741(x)
- else
- fun_l7_n567(x)
- end
-end
-
-def fun_l6_n612(x)
- if (x < 1)
- fun_l7_n471(x)
- else
- fun_l7_n824(x)
- end
-end
-
-def fun_l6_n613(x)
- if (x < 1)
- fun_l7_n522(x)
- else
- fun_l7_n694(x)
- end
-end
-
-def fun_l6_n614(x)
- if (x < 1)
- fun_l7_n95(x)
- else
- fun_l7_n84(x)
- end
-end
-
-def fun_l6_n615(x)
- if (x < 1)
- fun_l7_n632(x)
- else
- fun_l7_n590(x)
- end
-end
-
-def fun_l6_n616(x)
- if (x < 1)
- fun_l7_n372(x)
- else
- fun_l7_n659(x)
- end
-end
-
-def fun_l6_n617(x)
- if (x < 1)
- fun_l7_n547(x)
- else
- fun_l7_n321(x)
- end
-end
-
-def fun_l6_n618(x)
- if (x < 1)
- fun_l7_n53(x)
- else
- fun_l7_n723(x)
- end
-end
-
-def fun_l6_n619(x)
- if (x < 1)
- fun_l7_n653(x)
- else
- fun_l7_n740(x)
- end
-end
-
-def fun_l6_n620(x)
- if (x < 1)
- fun_l7_n16(x)
- else
- fun_l7_n228(x)
- end
-end
-
-def fun_l6_n621(x)
- if (x < 1)
- fun_l7_n655(x)
- else
- fun_l7_n701(x)
- end
-end
-
-def fun_l6_n622(x)
- if (x < 1)
- fun_l7_n212(x)
- else
- fun_l7_n692(x)
- end
-end
-
-def fun_l6_n623(x)
- if (x < 1)
- fun_l7_n959(x)
- else
- fun_l7_n327(x)
- end
-end
-
-def fun_l6_n624(x)
- if (x < 1)
- fun_l7_n607(x)
- else
- fun_l7_n168(x)
- end
-end
-
-def fun_l6_n625(x)
- if (x < 1)
- fun_l7_n229(x)
- else
- fun_l7_n584(x)
- end
-end
-
-def fun_l6_n626(x)
- if (x < 1)
- fun_l7_n776(x)
- else
- fun_l7_n284(x)
- end
-end
-
-def fun_l6_n627(x)
- if (x < 1)
- fun_l7_n770(x)
- else
- fun_l7_n169(x)
- end
-end
-
-def fun_l6_n628(x)
- if (x < 1)
- fun_l7_n550(x)
- else
- fun_l7_n918(x)
- end
-end
-
-def fun_l6_n629(x)
- if (x < 1)
- fun_l7_n450(x)
- else
- fun_l7_n654(x)
- end
-end
-
-def fun_l6_n630(x)
- if (x < 1)
- fun_l7_n968(x)
- else
- fun_l7_n770(x)
- end
-end
-
-def fun_l6_n631(x)
- if (x < 1)
- fun_l7_n118(x)
- else
- fun_l7_n411(x)
- end
-end
-
-def fun_l6_n632(x)
- if (x < 1)
- fun_l7_n352(x)
- else
- fun_l7_n840(x)
- end
-end
-
-def fun_l6_n633(x)
- if (x < 1)
- fun_l7_n588(x)
- else
- fun_l7_n810(x)
- end
-end
-
-def fun_l6_n634(x)
- if (x < 1)
- fun_l7_n955(x)
- else
- fun_l7_n709(x)
- end
-end
-
-def fun_l6_n635(x)
- if (x < 1)
- fun_l7_n137(x)
- else
- fun_l7_n239(x)
- end
-end
-
-def fun_l6_n636(x)
- if (x < 1)
- fun_l7_n955(x)
- else
- fun_l7_n87(x)
- end
-end
-
-def fun_l6_n637(x)
- if (x < 1)
- fun_l7_n479(x)
- else
- fun_l7_n91(x)
- end
-end
-
-def fun_l6_n638(x)
- if (x < 1)
- fun_l7_n366(x)
- else
- fun_l7_n388(x)
- end
-end
-
-def fun_l6_n639(x)
- if (x < 1)
- fun_l7_n90(x)
- else
- fun_l7_n971(x)
- end
-end
-
-def fun_l6_n640(x)
- if (x < 1)
- fun_l7_n330(x)
- else
- fun_l7_n415(x)
- end
-end
-
-def fun_l6_n641(x)
- if (x < 1)
- fun_l7_n233(x)
- else
- fun_l7_n653(x)
- end
-end
-
-def fun_l6_n642(x)
- if (x < 1)
- fun_l7_n106(x)
- else
- fun_l7_n440(x)
- end
-end
-
-def fun_l6_n643(x)
- if (x < 1)
- fun_l7_n156(x)
- else
- fun_l7_n818(x)
- end
-end
-
-def fun_l6_n644(x)
- if (x < 1)
- fun_l7_n68(x)
- else
- fun_l7_n763(x)
- end
-end
-
-def fun_l6_n645(x)
- if (x < 1)
- fun_l7_n858(x)
- else
- fun_l7_n465(x)
- end
-end
-
-def fun_l6_n646(x)
- if (x < 1)
- fun_l7_n886(x)
- else
- fun_l7_n86(x)
- end
-end
-
-def fun_l6_n647(x)
- if (x < 1)
- fun_l7_n689(x)
- else
- fun_l7_n964(x)
- end
-end
-
-def fun_l6_n648(x)
- if (x < 1)
- fun_l7_n748(x)
- else
- fun_l7_n214(x)
- end
-end
-
-def fun_l6_n649(x)
- if (x < 1)
- fun_l7_n830(x)
- else
- fun_l7_n567(x)
- end
-end
-
-def fun_l6_n650(x)
- if (x < 1)
- fun_l7_n907(x)
- else
- fun_l7_n957(x)
- end
-end
-
-def fun_l6_n651(x)
- if (x < 1)
- fun_l7_n242(x)
- else
- fun_l7_n239(x)
- end
-end
-
-def fun_l6_n652(x)
- if (x < 1)
- fun_l7_n347(x)
- else
- fun_l7_n63(x)
- end
-end
-
-def fun_l6_n653(x)
- if (x < 1)
- fun_l7_n480(x)
- else
- fun_l7_n441(x)
- end
-end
-
-def fun_l6_n654(x)
- if (x < 1)
- fun_l7_n304(x)
- else
- fun_l7_n690(x)
- end
-end
-
-def fun_l6_n655(x)
- if (x < 1)
- fun_l7_n511(x)
- else
- fun_l7_n710(x)
- end
-end
-
-def fun_l6_n656(x)
- if (x < 1)
- fun_l7_n202(x)
- else
- fun_l7_n48(x)
- end
-end
-
-def fun_l6_n657(x)
- if (x < 1)
- fun_l7_n232(x)
- else
- fun_l7_n919(x)
- end
-end
-
-def fun_l6_n658(x)
- if (x < 1)
- fun_l7_n627(x)
- else
- fun_l7_n620(x)
- end
-end
-
-def fun_l6_n659(x)
- if (x < 1)
- fun_l7_n716(x)
- else
- fun_l7_n116(x)
- end
-end
-
-def fun_l6_n660(x)
- if (x < 1)
- fun_l7_n105(x)
- else
- fun_l7_n536(x)
- end
-end
-
-def fun_l6_n661(x)
- if (x < 1)
- fun_l7_n376(x)
- else
- fun_l7_n965(x)
- end
-end
-
-def fun_l6_n662(x)
- if (x < 1)
- fun_l7_n417(x)
- else
- fun_l7_n726(x)
- end
-end
-
-def fun_l6_n663(x)
- if (x < 1)
- fun_l7_n567(x)
- else
- fun_l7_n948(x)
- end
-end
-
-def fun_l6_n664(x)
- if (x < 1)
- fun_l7_n640(x)
- else
- fun_l7_n910(x)
- end
-end
-
-def fun_l6_n665(x)
- if (x < 1)
- fun_l7_n874(x)
- else
- fun_l7_n314(x)
- end
-end
-
-def fun_l6_n666(x)
- if (x < 1)
- fun_l7_n946(x)
- else
- fun_l7_n101(x)
- end
-end
-
-def fun_l6_n667(x)
- if (x < 1)
- fun_l7_n960(x)
- else
- fun_l7_n199(x)
- end
-end
-
-def fun_l6_n668(x)
- if (x < 1)
- fun_l7_n389(x)
- else
- fun_l7_n976(x)
- end
-end
-
-def fun_l6_n669(x)
- if (x < 1)
- fun_l7_n31(x)
- else
- fun_l7_n903(x)
- end
-end
-
-def fun_l6_n670(x)
- if (x < 1)
- fun_l7_n288(x)
- else
- fun_l7_n115(x)
- end
-end
-
-def fun_l6_n671(x)
- if (x < 1)
- fun_l7_n418(x)
- else
- fun_l7_n249(x)
- end
-end
-
-def fun_l6_n672(x)
- if (x < 1)
- fun_l7_n733(x)
- else
- fun_l7_n815(x)
- end
-end
-
-def fun_l6_n673(x)
- if (x < 1)
- fun_l7_n227(x)
- else
- fun_l7_n23(x)
- end
-end
-
-def fun_l6_n674(x)
- if (x < 1)
- fun_l7_n936(x)
- else
- fun_l7_n386(x)
- end
-end
-
-def fun_l6_n675(x)
- if (x < 1)
- fun_l7_n638(x)
- else
- fun_l7_n39(x)
- end
-end
-
-def fun_l6_n676(x)
- if (x < 1)
- fun_l7_n304(x)
- else
- fun_l7_n35(x)
- end
-end
-
-def fun_l6_n677(x)
- if (x < 1)
- fun_l7_n676(x)
- else
- fun_l7_n443(x)
- end
-end
-
-def fun_l6_n678(x)
- if (x < 1)
- fun_l7_n648(x)
- else
- fun_l7_n453(x)
- end
-end
-
-def fun_l6_n679(x)
- if (x < 1)
- fun_l7_n15(x)
- else
- fun_l7_n220(x)
- end
-end
-
-def fun_l6_n680(x)
- if (x < 1)
- fun_l7_n201(x)
- else
- fun_l7_n842(x)
- end
-end
-
-def fun_l6_n681(x)
- if (x < 1)
- fun_l7_n67(x)
- else
- fun_l7_n73(x)
- end
-end
-
-def fun_l6_n682(x)
- if (x < 1)
- fun_l7_n280(x)
- else
- fun_l7_n370(x)
- end
-end
-
-def fun_l6_n683(x)
- if (x < 1)
- fun_l7_n822(x)
- else
- fun_l7_n27(x)
- end
-end
-
-def fun_l6_n684(x)
- if (x < 1)
- fun_l7_n720(x)
- else
- fun_l7_n651(x)
- end
-end
-
-def fun_l6_n685(x)
- if (x < 1)
- fun_l7_n414(x)
- else
- fun_l7_n257(x)
- end
-end
-
-def fun_l6_n686(x)
- if (x < 1)
- fun_l7_n477(x)
- else
- fun_l7_n883(x)
- end
-end
-
-def fun_l6_n687(x)
- if (x < 1)
- fun_l7_n467(x)
- else
- fun_l7_n739(x)
- end
-end
-
-def fun_l6_n688(x)
- if (x < 1)
- fun_l7_n421(x)
- else
- fun_l7_n271(x)
- end
-end
-
-def fun_l6_n689(x)
- if (x < 1)
- fun_l7_n444(x)
- else
- fun_l7_n601(x)
- end
-end
-
-def fun_l6_n690(x)
- if (x < 1)
- fun_l7_n104(x)
- else
- fun_l7_n597(x)
- end
-end
-
-def fun_l6_n691(x)
- if (x < 1)
- fun_l7_n273(x)
- else
- fun_l7_n79(x)
- end
-end
-
-def fun_l6_n692(x)
- if (x < 1)
- fun_l7_n310(x)
- else
- fun_l7_n261(x)
- end
-end
-
-def fun_l6_n693(x)
- if (x < 1)
- fun_l7_n190(x)
- else
- fun_l7_n330(x)
- end
-end
-
-def fun_l6_n694(x)
- if (x < 1)
- fun_l7_n103(x)
- else
- fun_l7_n258(x)
- end
-end
-
-def fun_l6_n695(x)
- if (x < 1)
- fun_l7_n524(x)
- else
- fun_l7_n988(x)
- end
-end
-
-def fun_l6_n696(x)
- if (x < 1)
- fun_l7_n885(x)
- else
- fun_l7_n731(x)
- end
-end
-
-def fun_l6_n697(x)
- if (x < 1)
- fun_l7_n212(x)
- else
- fun_l7_n98(x)
- end
-end
-
-def fun_l6_n698(x)
- if (x < 1)
- fun_l7_n735(x)
- else
- fun_l7_n682(x)
- end
-end
-
-def fun_l6_n699(x)
- if (x < 1)
- fun_l7_n610(x)
- else
- fun_l7_n512(x)
- end
-end
-
-def fun_l6_n700(x)
- if (x < 1)
- fun_l7_n828(x)
- else
- fun_l7_n651(x)
- end
-end
-
-def fun_l6_n701(x)
- if (x < 1)
- fun_l7_n269(x)
- else
- fun_l7_n192(x)
- end
-end
-
-def fun_l6_n702(x)
- if (x < 1)
- fun_l7_n775(x)
- else
- fun_l7_n334(x)
- end
-end
-
-def fun_l6_n703(x)
- if (x < 1)
- fun_l7_n880(x)
- else
- fun_l7_n396(x)
- end
-end
-
-def fun_l6_n704(x)
- if (x < 1)
- fun_l7_n907(x)
- else
- fun_l7_n107(x)
- end
-end
-
-def fun_l6_n705(x)
- if (x < 1)
- fun_l7_n425(x)
- else
- fun_l7_n555(x)
- end
-end
-
-def fun_l6_n706(x)
- if (x < 1)
- fun_l7_n458(x)
- else
- fun_l7_n610(x)
- end
-end
-
-def fun_l6_n707(x)
- if (x < 1)
- fun_l7_n527(x)
- else
- fun_l7_n69(x)
- end
-end
-
-def fun_l6_n708(x)
- if (x < 1)
- fun_l7_n518(x)
- else
- fun_l7_n87(x)
- end
-end
-
-def fun_l6_n709(x)
- if (x < 1)
- fun_l7_n441(x)
- else
- fun_l7_n533(x)
- end
-end
-
-def fun_l6_n710(x)
- if (x < 1)
- fun_l7_n872(x)
- else
- fun_l7_n896(x)
- end
-end
-
-def fun_l6_n711(x)
- if (x < 1)
- fun_l7_n388(x)
- else
- fun_l7_n476(x)
- end
-end
-
-def fun_l6_n712(x)
- if (x < 1)
- fun_l7_n913(x)
- else
- fun_l7_n304(x)
- end
-end
-
-def fun_l6_n713(x)
- if (x < 1)
- fun_l7_n203(x)
- else
- fun_l7_n457(x)
- end
-end
-
-def fun_l6_n714(x)
- if (x < 1)
- fun_l7_n593(x)
- else
- fun_l7_n921(x)
- end
-end
-
-def fun_l6_n715(x)
- if (x < 1)
- fun_l7_n452(x)
- else
- fun_l7_n68(x)
- end
-end
-
-def fun_l6_n716(x)
- if (x < 1)
- fun_l7_n203(x)
- else
- fun_l7_n362(x)
- end
-end
-
-def fun_l6_n717(x)
- if (x < 1)
- fun_l7_n455(x)
- else
- fun_l7_n199(x)
- end
-end
-
-def fun_l6_n718(x)
- if (x < 1)
- fun_l7_n500(x)
- else
- fun_l7_n272(x)
- end
-end
-
-def fun_l6_n719(x)
- if (x < 1)
- fun_l7_n970(x)
- else
- fun_l7_n572(x)
- end
-end
-
-def fun_l6_n720(x)
- if (x < 1)
- fun_l7_n74(x)
- else
- fun_l7_n246(x)
- end
-end
-
-def fun_l6_n721(x)
- if (x < 1)
- fun_l7_n943(x)
- else
- fun_l7_n640(x)
- end
-end
-
-def fun_l6_n722(x)
- if (x < 1)
- fun_l7_n106(x)
- else
- fun_l7_n387(x)
- end
-end
-
-def fun_l6_n723(x)
- if (x < 1)
- fun_l7_n474(x)
- else
- fun_l7_n530(x)
- end
-end
-
-def fun_l6_n724(x)
- if (x < 1)
- fun_l7_n246(x)
- else
- fun_l7_n387(x)
- end
-end
-
-def fun_l6_n725(x)
- if (x < 1)
- fun_l7_n572(x)
- else
- fun_l7_n874(x)
- end
-end
-
-def fun_l6_n726(x)
- if (x < 1)
- fun_l7_n858(x)
- else
- fun_l7_n71(x)
- end
-end
-
-def fun_l6_n727(x)
- if (x < 1)
- fun_l7_n615(x)
- else
- fun_l7_n14(x)
- end
-end
-
-def fun_l6_n728(x)
- if (x < 1)
- fun_l7_n840(x)
- else
- fun_l7_n779(x)
- end
-end
-
-def fun_l6_n729(x)
- if (x < 1)
- fun_l7_n811(x)
- else
- fun_l7_n981(x)
- end
-end
-
-def fun_l6_n730(x)
- if (x < 1)
- fun_l7_n196(x)
- else
- fun_l7_n731(x)
- end
-end
-
-def fun_l6_n731(x)
- if (x < 1)
- fun_l7_n202(x)
- else
- fun_l7_n781(x)
- end
-end
-
-def fun_l6_n732(x)
- if (x < 1)
- fun_l7_n867(x)
- else
- fun_l7_n770(x)
- end
-end
-
-def fun_l6_n733(x)
- if (x < 1)
- fun_l7_n90(x)
- else
- fun_l7_n937(x)
- end
-end
-
-def fun_l6_n734(x)
- if (x < 1)
- fun_l7_n890(x)
- else
- fun_l7_n937(x)
- end
-end
-
-def fun_l6_n735(x)
- if (x < 1)
- fun_l7_n967(x)
- else
- fun_l7_n235(x)
- end
-end
-
-def fun_l6_n736(x)
- if (x < 1)
- fun_l7_n612(x)
- else
- fun_l7_n140(x)
- end
-end
-
-def fun_l6_n737(x)
- if (x < 1)
- fun_l7_n156(x)
- else
- fun_l7_n600(x)
- end
-end
-
-def fun_l6_n738(x)
- if (x < 1)
- fun_l7_n462(x)
- else
- fun_l7_n907(x)
- end
-end
-
-def fun_l6_n739(x)
- if (x < 1)
- fun_l7_n226(x)
- else
- fun_l7_n83(x)
- end
-end
-
-def fun_l6_n740(x)
- if (x < 1)
- fun_l7_n419(x)
- else
- fun_l7_n95(x)
- end
-end
-
-def fun_l6_n741(x)
- if (x < 1)
- fun_l7_n358(x)
- else
- fun_l7_n701(x)
- end
-end
-
-def fun_l6_n742(x)
- if (x < 1)
- fun_l7_n451(x)
- else
- fun_l7_n700(x)
- end
-end
-
-def fun_l6_n743(x)
- if (x < 1)
- fun_l7_n561(x)
- else
- fun_l7_n383(x)
- end
-end
-
-def fun_l6_n744(x)
- if (x < 1)
- fun_l7_n28(x)
- else
- fun_l7_n56(x)
- end
-end
-
-def fun_l6_n745(x)
- if (x < 1)
- fun_l7_n127(x)
- else
- fun_l7_n113(x)
- end
-end
-
-def fun_l6_n746(x)
- if (x < 1)
- fun_l7_n767(x)
- else
- fun_l7_n907(x)
- end
-end
-
-def fun_l6_n747(x)
- if (x < 1)
- fun_l7_n174(x)
- else
- fun_l7_n955(x)
- end
-end
-
-def fun_l6_n748(x)
- if (x < 1)
- fun_l7_n51(x)
- else
- fun_l7_n951(x)
- end
-end
-
-def fun_l6_n749(x)
- if (x < 1)
- fun_l7_n172(x)
- else
- fun_l7_n847(x)
- end
-end
-
-def fun_l6_n750(x)
- if (x < 1)
- fun_l7_n240(x)
- else
- fun_l7_n869(x)
- end
-end
-
-def fun_l6_n751(x)
- if (x < 1)
- fun_l7_n435(x)
- else
- fun_l7_n747(x)
- end
-end
-
-def fun_l6_n752(x)
- if (x < 1)
- fun_l7_n673(x)
- else
- fun_l7_n454(x)
- end
-end
-
-def fun_l6_n753(x)
- if (x < 1)
- fun_l7_n98(x)
- else
- fun_l7_n66(x)
- end
-end
-
-def fun_l6_n754(x)
- if (x < 1)
- fun_l7_n63(x)
- else
- fun_l7_n943(x)
- end
-end
-
-def fun_l6_n755(x)
- if (x < 1)
- fun_l7_n863(x)
- else
- fun_l7_n155(x)
- end
-end
-
-def fun_l6_n756(x)
- if (x < 1)
- fun_l7_n197(x)
- else
- fun_l7_n807(x)
- end
-end
-
-def fun_l6_n757(x)
- if (x < 1)
- fun_l7_n992(x)
- else
- fun_l7_n615(x)
- end
-end
-
-def fun_l6_n758(x)
- if (x < 1)
- fun_l7_n172(x)
- else
- fun_l7_n507(x)
- end
-end
-
-def fun_l6_n759(x)
- if (x < 1)
- fun_l7_n756(x)
- else
- fun_l7_n599(x)
- end
-end
-
-def fun_l6_n760(x)
- if (x < 1)
- fun_l7_n876(x)
- else
- fun_l7_n185(x)
- end
-end
-
-def fun_l6_n761(x)
- if (x < 1)
- fun_l7_n522(x)
- else
- fun_l7_n301(x)
- end
-end
-
-def fun_l6_n762(x)
- if (x < 1)
- fun_l7_n994(x)
- else
- fun_l7_n408(x)
- end
-end
-
-def fun_l6_n763(x)
- if (x < 1)
- fun_l7_n201(x)
- else
- fun_l7_n304(x)
- end
-end
-
-def fun_l6_n764(x)
- if (x < 1)
- fun_l7_n200(x)
- else
- fun_l7_n123(x)
- end
-end
-
-def fun_l6_n765(x)
- if (x < 1)
- fun_l7_n156(x)
- else
- fun_l7_n117(x)
- end
-end
-
-def fun_l6_n766(x)
- if (x < 1)
- fun_l7_n918(x)
- else
- fun_l7_n416(x)
- end
-end
-
-def fun_l6_n767(x)
- if (x < 1)
- fun_l7_n538(x)
- else
- fun_l7_n335(x)
- end
-end
-
-def fun_l6_n768(x)
- if (x < 1)
- fun_l7_n699(x)
- else
- fun_l7_n980(x)
- end
-end
-
-def fun_l6_n769(x)
- if (x < 1)
- fun_l7_n903(x)
- else
- fun_l7_n195(x)
- end
-end
-
-def fun_l6_n770(x)
- if (x < 1)
- fun_l7_n419(x)
- else
- fun_l7_n523(x)
- end
-end
-
-def fun_l6_n771(x)
- if (x < 1)
- fun_l7_n221(x)
- else
- fun_l7_n39(x)
- end
-end
-
-def fun_l6_n772(x)
- if (x < 1)
- fun_l7_n369(x)
- else
- fun_l7_n227(x)
- end
-end
-
-def fun_l6_n773(x)
- if (x < 1)
- fun_l7_n861(x)
- else
- fun_l7_n252(x)
- end
-end
-
-def fun_l6_n774(x)
- if (x < 1)
- fun_l7_n682(x)
- else
- fun_l7_n42(x)
- end
-end
-
-def fun_l6_n775(x)
- if (x < 1)
- fun_l7_n777(x)
- else
- fun_l7_n594(x)
- end
-end
-
-def fun_l6_n776(x)
- if (x < 1)
- fun_l7_n794(x)
- else
- fun_l7_n71(x)
- end
-end
-
-def fun_l6_n777(x)
- if (x < 1)
- fun_l7_n669(x)
- else
- fun_l7_n66(x)
- end
-end
-
-def fun_l6_n778(x)
- if (x < 1)
- fun_l7_n824(x)
- else
- fun_l7_n95(x)
- end
-end
-
-def fun_l6_n779(x)
- if (x < 1)
- fun_l7_n833(x)
- else
- fun_l7_n504(x)
- end
-end
-
-def fun_l6_n780(x)
- if (x < 1)
- fun_l7_n50(x)
- else
- fun_l7_n647(x)
- end
-end
-
-def fun_l6_n781(x)
- if (x < 1)
- fun_l7_n139(x)
- else
- fun_l7_n214(x)
- end
-end
-
-def fun_l6_n782(x)
- if (x < 1)
- fun_l7_n450(x)
- else
- fun_l7_n660(x)
- end
-end
-
-def fun_l6_n783(x)
- if (x < 1)
- fun_l7_n164(x)
- else
- fun_l7_n576(x)
- end
-end
-
-def fun_l6_n784(x)
- if (x < 1)
- fun_l7_n722(x)
- else
- fun_l7_n714(x)
- end
-end
-
-def fun_l6_n785(x)
- if (x < 1)
- fun_l7_n90(x)
- else
- fun_l7_n556(x)
- end
-end
-
-def fun_l6_n786(x)
- if (x < 1)
- fun_l7_n413(x)
- else
- fun_l7_n722(x)
- end
-end
-
-def fun_l6_n787(x)
- if (x < 1)
- fun_l7_n141(x)
- else
- fun_l7_n90(x)
- end
-end
-
-def fun_l6_n788(x)
- if (x < 1)
- fun_l7_n750(x)
- else
- fun_l7_n660(x)
- end
-end
-
-def fun_l6_n789(x)
- if (x < 1)
- fun_l7_n581(x)
- else
- fun_l7_n368(x)
- end
-end
-
-def fun_l6_n790(x)
- if (x < 1)
- fun_l7_n922(x)
- else
- fun_l7_n551(x)
- end
-end
-
-def fun_l6_n791(x)
- if (x < 1)
- fun_l7_n842(x)
- else
- fun_l7_n336(x)
- end
-end
-
-def fun_l6_n792(x)
- if (x < 1)
- fun_l7_n264(x)
- else
- fun_l7_n7(x)
- end
-end
-
-def fun_l6_n793(x)
- if (x < 1)
- fun_l7_n902(x)
- else
- fun_l7_n184(x)
- end
-end
-
-def fun_l6_n794(x)
- if (x < 1)
- fun_l7_n788(x)
- else
- fun_l7_n854(x)
- end
-end
-
-def fun_l6_n795(x)
- if (x < 1)
- fun_l7_n375(x)
- else
- fun_l7_n601(x)
- end
-end
-
-def fun_l6_n796(x)
- if (x < 1)
- fun_l7_n674(x)
- else
- fun_l7_n136(x)
- end
-end
-
-def fun_l6_n797(x)
- if (x < 1)
- fun_l7_n836(x)
- else
- fun_l7_n90(x)
- end
-end
-
-def fun_l6_n798(x)
- if (x < 1)
- fun_l7_n461(x)
- else
- fun_l7_n686(x)
- end
-end
-
-def fun_l6_n799(x)
- if (x < 1)
- fun_l7_n308(x)
- else
- fun_l7_n179(x)
- end
-end
-
-def fun_l6_n800(x)
- if (x < 1)
- fun_l7_n154(x)
- else
- fun_l7_n618(x)
- end
-end
-
-def fun_l6_n801(x)
- if (x < 1)
- fun_l7_n242(x)
- else
- fun_l7_n16(x)
- end
-end
-
-def fun_l6_n802(x)
- if (x < 1)
- fun_l7_n880(x)
- else
- fun_l7_n143(x)
- end
-end
-
-def fun_l6_n803(x)
- if (x < 1)
- fun_l7_n577(x)
- else
- fun_l7_n414(x)
- end
-end
-
-def fun_l6_n804(x)
- if (x < 1)
- fun_l7_n409(x)
- else
- fun_l7_n116(x)
- end
-end
-
-def fun_l6_n805(x)
- if (x < 1)
- fun_l7_n259(x)
- else
- fun_l7_n820(x)
- end
-end
-
-def fun_l6_n806(x)
- if (x < 1)
- fun_l7_n384(x)
- else
- fun_l7_n939(x)
- end
-end
-
-def fun_l6_n807(x)
- if (x < 1)
- fun_l7_n138(x)
- else
- fun_l7_n652(x)
- end
-end
-
-def fun_l6_n808(x)
- if (x < 1)
- fun_l7_n455(x)
- else
- fun_l7_n693(x)
- end
-end
-
-def fun_l6_n809(x)
- if (x < 1)
- fun_l7_n892(x)
- else
- fun_l7_n638(x)
- end
-end
-
-def fun_l6_n810(x)
- if (x < 1)
- fun_l7_n498(x)
- else
- fun_l7_n716(x)
- end
-end
-
-def fun_l6_n811(x)
- if (x < 1)
- fun_l7_n713(x)
- else
- fun_l7_n9(x)
- end
-end
-
-def fun_l6_n812(x)
- if (x < 1)
- fun_l7_n854(x)
- else
- fun_l7_n507(x)
- end
-end
-
-def fun_l6_n813(x)
- if (x < 1)
- fun_l7_n385(x)
- else
- fun_l7_n323(x)
- end
-end
-
-def fun_l6_n814(x)
- if (x < 1)
- fun_l7_n437(x)
- else
- fun_l7_n954(x)
- end
-end
-
-def fun_l6_n815(x)
- if (x < 1)
- fun_l7_n471(x)
- else
- fun_l7_n245(x)
- end
-end
-
-def fun_l6_n816(x)
- if (x < 1)
- fun_l7_n485(x)
- else
- fun_l7_n935(x)
- end
-end
-
-def fun_l6_n817(x)
- if (x < 1)
- fun_l7_n319(x)
- else
- fun_l7_n566(x)
- end
-end
-
-def fun_l6_n818(x)
- if (x < 1)
- fun_l7_n339(x)
- else
- fun_l7_n152(x)
- end
-end
-
-def fun_l6_n819(x)
- if (x < 1)
- fun_l7_n21(x)
- else
- fun_l7_n452(x)
- end
-end
-
-def fun_l6_n820(x)
- if (x < 1)
- fun_l7_n16(x)
- else
- fun_l7_n502(x)
- end
-end
-
-def fun_l6_n821(x)
- if (x < 1)
- fun_l7_n813(x)
- else
- fun_l7_n520(x)
- end
-end
-
-def fun_l6_n822(x)
- if (x < 1)
- fun_l7_n519(x)
- else
- fun_l7_n651(x)
- end
-end
-
-def fun_l6_n823(x)
- if (x < 1)
- fun_l7_n890(x)
- else
- fun_l7_n227(x)
- end
-end
-
-def fun_l6_n824(x)
- if (x < 1)
- fun_l7_n517(x)
- else
- fun_l7_n799(x)
- end
-end
-
-def fun_l6_n825(x)
- if (x < 1)
- fun_l7_n404(x)
- else
- fun_l7_n442(x)
- end
-end
-
-def fun_l6_n826(x)
- if (x < 1)
- fun_l7_n308(x)
- else
- fun_l7_n328(x)
- end
-end
-
-def fun_l6_n827(x)
- if (x < 1)
- fun_l7_n953(x)
- else
- fun_l7_n950(x)
- end
-end
-
-def fun_l6_n828(x)
- if (x < 1)
- fun_l7_n206(x)
- else
- fun_l7_n701(x)
- end
-end
-
-def fun_l6_n829(x)
- if (x < 1)
- fun_l7_n499(x)
- else
- fun_l7_n972(x)
- end
-end
-
-def fun_l6_n830(x)
- if (x < 1)
- fun_l7_n578(x)
- else
- fun_l7_n697(x)
- end
-end
-
-def fun_l6_n831(x)
- if (x < 1)
- fun_l7_n116(x)
- else
- fun_l7_n747(x)
- end
-end
-
-def fun_l6_n832(x)
- if (x < 1)
- fun_l7_n423(x)
- else
- fun_l7_n653(x)
- end
-end
-
-def fun_l6_n833(x)
- if (x < 1)
- fun_l7_n524(x)
- else
- fun_l7_n423(x)
- end
-end
-
-def fun_l6_n834(x)
- if (x < 1)
- fun_l7_n940(x)
- else
- fun_l7_n48(x)
- end
-end
-
-def fun_l6_n835(x)
- if (x < 1)
- fun_l7_n336(x)
- else
- fun_l7_n584(x)
- end
-end
-
-def fun_l6_n836(x)
- if (x < 1)
- fun_l7_n66(x)
- else
- fun_l7_n980(x)
- end
-end
-
-def fun_l6_n837(x)
- if (x < 1)
- fun_l7_n176(x)
- else
- fun_l7_n845(x)
- end
-end
-
-def fun_l6_n838(x)
- if (x < 1)
- fun_l7_n736(x)
- else
- fun_l7_n385(x)
- end
-end
-
-def fun_l6_n839(x)
- if (x < 1)
- fun_l7_n948(x)
- else
- fun_l7_n258(x)
- end
-end
-
-def fun_l6_n840(x)
- if (x < 1)
- fun_l7_n926(x)
- else
- fun_l7_n926(x)
- end
-end
-
-def fun_l6_n841(x)
- if (x < 1)
- fun_l7_n334(x)
- else
- fun_l7_n134(x)
- end
-end
-
-def fun_l6_n842(x)
- if (x < 1)
- fun_l7_n757(x)
- else
- fun_l7_n995(x)
- end
-end
-
-def fun_l6_n843(x)
- if (x < 1)
- fun_l7_n75(x)
- else
- fun_l7_n6(x)
- end
-end
-
-def fun_l6_n844(x)
- if (x < 1)
- fun_l7_n632(x)
- else
- fun_l7_n683(x)
- end
-end
-
-def fun_l6_n845(x)
- if (x < 1)
- fun_l7_n788(x)
- else
- fun_l7_n153(x)
- end
-end
-
-def fun_l6_n846(x)
- if (x < 1)
- fun_l7_n668(x)
- else
- fun_l7_n78(x)
- end
-end
-
-def fun_l6_n847(x)
- if (x < 1)
- fun_l7_n509(x)
- else
- fun_l7_n210(x)
- end
-end
-
-def fun_l6_n848(x)
- if (x < 1)
- fun_l7_n862(x)
- else
- fun_l7_n90(x)
- end
-end
-
-def fun_l6_n849(x)
- if (x < 1)
- fun_l7_n837(x)
- else
- fun_l7_n37(x)
- end
-end
-
-def fun_l6_n850(x)
- if (x < 1)
- fun_l7_n792(x)
- else
- fun_l7_n171(x)
- end
-end
-
-def fun_l6_n851(x)
- if (x < 1)
- fun_l7_n869(x)
- else
- fun_l7_n217(x)
- end
-end
-
-def fun_l6_n852(x)
- if (x < 1)
- fun_l7_n585(x)
- else
- fun_l7_n980(x)
- end
-end
-
-def fun_l6_n853(x)
- if (x < 1)
- fun_l7_n752(x)
- else
- fun_l7_n214(x)
- end
-end
-
-def fun_l6_n854(x)
- if (x < 1)
- fun_l7_n151(x)
- else
- fun_l7_n668(x)
- end
-end
-
-def fun_l6_n855(x)
- if (x < 1)
- fun_l7_n145(x)
- else
- fun_l7_n99(x)
- end
-end
-
-def fun_l6_n856(x)
- if (x < 1)
- fun_l7_n114(x)
- else
- fun_l7_n852(x)
- end
-end
-
-def fun_l6_n857(x)
- if (x < 1)
- fun_l7_n571(x)
- else
- fun_l7_n6(x)
- end
-end
-
-def fun_l6_n858(x)
- if (x < 1)
- fun_l7_n724(x)
- else
- fun_l7_n132(x)
- end
-end
-
-def fun_l6_n859(x)
- if (x < 1)
- fun_l7_n146(x)
- else
- fun_l7_n627(x)
- end
-end
-
-def fun_l6_n860(x)
- if (x < 1)
- fun_l7_n515(x)
- else
- fun_l7_n598(x)
- end
-end
-
-def fun_l6_n861(x)
- if (x < 1)
- fun_l7_n49(x)
- else
- fun_l7_n781(x)
- end
-end
-
-def fun_l6_n862(x)
- if (x < 1)
- fun_l7_n378(x)
- else
- fun_l7_n295(x)
- end
-end
-
-def fun_l6_n863(x)
- if (x < 1)
- fun_l7_n122(x)
- else
- fun_l7_n738(x)
- end
-end
-
-def fun_l6_n864(x)
- if (x < 1)
- fun_l7_n421(x)
- else
- fun_l7_n719(x)
- end
-end
-
-def fun_l6_n865(x)
- if (x < 1)
- fun_l7_n965(x)
- else
- fun_l7_n963(x)
- end
-end
-
-def fun_l6_n866(x)
- if (x < 1)
- fun_l7_n551(x)
- else
- fun_l7_n177(x)
- end
-end
-
-def fun_l6_n867(x)
- if (x < 1)
- fun_l7_n136(x)
- else
- fun_l7_n289(x)
- end
-end
-
-def fun_l6_n868(x)
- if (x < 1)
- fun_l7_n26(x)
- else
- fun_l7_n376(x)
- end
-end
-
-def fun_l6_n869(x)
- if (x < 1)
- fun_l7_n888(x)
- else
- fun_l7_n948(x)
- end
-end
-
-def fun_l6_n870(x)
- if (x < 1)
- fun_l7_n636(x)
- else
- fun_l7_n89(x)
- end
-end
-
-def fun_l6_n871(x)
- if (x < 1)
- fun_l7_n953(x)
- else
- fun_l7_n634(x)
- end
-end
-
-def fun_l6_n872(x)
- if (x < 1)
- fun_l7_n74(x)
- else
- fun_l7_n219(x)
- end
-end
-
-def fun_l6_n873(x)
- if (x < 1)
- fun_l7_n317(x)
- else
- fun_l7_n863(x)
- end
-end
-
-def fun_l6_n874(x)
- if (x < 1)
- fun_l7_n495(x)
- else
- fun_l7_n478(x)
- end
-end
-
-def fun_l6_n875(x)
- if (x < 1)
- fun_l7_n908(x)
- else
- fun_l7_n634(x)
- end
-end
-
-def fun_l6_n876(x)
- if (x < 1)
- fun_l7_n780(x)
- else
- fun_l7_n886(x)
- end
-end
-
-def fun_l6_n877(x)
- if (x < 1)
- fun_l7_n768(x)
- else
- fun_l7_n820(x)
- end
-end
-
-def fun_l6_n878(x)
- if (x < 1)
- fun_l7_n501(x)
- else
- fun_l7_n355(x)
- end
-end
-
-def fun_l6_n879(x)
- if (x < 1)
- fun_l7_n412(x)
- else
- fun_l7_n701(x)
- end
-end
-
-def fun_l6_n880(x)
- if (x < 1)
- fun_l7_n541(x)
- else
- fun_l7_n148(x)
- end
-end
-
-def fun_l6_n881(x)
- if (x < 1)
- fun_l7_n460(x)
- else
- fun_l7_n579(x)
- end
-end
-
-def fun_l6_n882(x)
- if (x < 1)
- fun_l7_n576(x)
- else
- fun_l7_n118(x)
- end
-end
-
-def fun_l6_n883(x)
- if (x < 1)
- fun_l7_n218(x)
- else
- fun_l7_n197(x)
- end
-end
-
-def fun_l6_n884(x)
- if (x < 1)
- fun_l7_n279(x)
- else
- fun_l7_n565(x)
- end
-end
-
-def fun_l6_n885(x)
- if (x < 1)
- fun_l7_n934(x)
- else
- fun_l7_n46(x)
- end
-end
-
-def fun_l6_n886(x)
- if (x < 1)
- fun_l7_n894(x)
- else
- fun_l7_n864(x)
- end
-end
-
-def fun_l6_n887(x)
- if (x < 1)
- fun_l7_n45(x)
- else
- fun_l7_n151(x)
- end
-end
-
-def fun_l6_n888(x)
- if (x < 1)
- fun_l7_n190(x)
- else
- fun_l7_n46(x)
- end
-end
-
-def fun_l6_n889(x)
- if (x < 1)
- fun_l7_n56(x)
- else
- fun_l7_n451(x)
- end
-end
-
-def fun_l6_n890(x)
- if (x < 1)
- fun_l7_n7(x)
- else
- fun_l7_n906(x)
- end
-end
-
-def fun_l6_n891(x)
- if (x < 1)
- fun_l7_n507(x)
- else
- fun_l7_n121(x)
- end
-end
-
-def fun_l6_n892(x)
- if (x < 1)
- fun_l7_n757(x)
- else
- fun_l7_n485(x)
- end
-end
-
-def fun_l6_n893(x)
- if (x < 1)
- fun_l7_n242(x)
- else
- fun_l7_n366(x)
- end
-end
-
-def fun_l6_n894(x)
- if (x < 1)
- fun_l7_n563(x)
- else
- fun_l7_n749(x)
- end
-end
-
-def fun_l6_n895(x)
- if (x < 1)
- fun_l7_n976(x)
- else
- fun_l7_n907(x)
- end
-end
-
-def fun_l6_n896(x)
- if (x < 1)
- fun_l7_n525(x)
- else
- fun_l7_n843(x)
- end
-end
-
-def fun_l6_n897(x)
- if (x < 1)
- fun_l7_n255(x)
- else
- fun_l7_n133(x)
- end
-end
-
-def fun_l6_n898(x)
- if (x < 1)
- fun_l7_n796(x)
- else
- fun_l7_n275(x)
- end
-end
-
-def fun_l6_n899(x)
- if (x < 1)
- fun_l7_n985(x)
- else
- fun_l7_n485(x)
- end
-end
-
-def fun_l6_n900(x)
- if (x < 1)
- fun_l7_n32(x)
- else
- fun_l7_n324(x)
- end
-end
-
-def fun_l6_n901(x)
- if (x < 1)
- fun_l7_n334(x)
- else
- fun_l7_n618(x)
- end
-end
-
-def fun_l6_n902(x)
- if (x < 1)
- fun_l7_n762(x)
- else
- fun_l7_n778(x)
- end
-end
-
-def fun_l6_n903(x)
- if (x < 1)
- fun_l7_n343(x)
- else
- fun_l7_n349(x)
- end
-end
-
-def fun_l6_n904(x)
- if (x < 1)
- fun_l7_n310(x)
- else
- fun_l7_n215(x)
- end
-end
-
-def fun_l6_n905(x)
- if (x < 1)
- fun_l7_n162(x)
- else
- fun_l7_n405(x)
- end
-end
-
-def fun_l6_n906(x)
- if (x < 1)
- fun_l7_n667(x)
- else
- fun_l7_n633(x)
- end
-end
-
-def fun_l6_n907(x)
- if (x < 1)
- fun_l7_n652(x)
- else
- fun_l7_n771(x)
- end
-end
-
-def fun_l6_n908(x)
- if (x < 1)
- fun_l7_n198(x)
- else
- fun_l7_n32(x)
- end
-end
-
-def fun_l6_n909(x)
- if (x < 1)
- fun_l7_n577(x)
- else
- fun_l7_n116(x)
- end
-end
-
-def fun_l6_n910(x)
- if (x < 1)
- fun_l7_n63(x)
- else
- fun_l7_n57(x)
- end
-end
-
-def fun_l6_n911(x)
- if (x < 1)
- fun_l7_n908(x)
- else
- fun_l7_n556(x)
- end
-end
-
-def fun_l6_n912(x)
- if (x < 1)
- fun_l7_n420(x)
- else
- fun_l7_n163(x)
- end
-end
-
-def fun_l6_n913(x)
- if (x < 1)
- fun_l7_n795(x)
- else
- fun_l7_n225(x)
- end
-end
-
-def fun_l6_n914(x)
- if (x < 1)
- fun_l7_n855(x)
- else
- fun_l7_n742(x)
- end
-end
-
-def fun_l6_n915(x)
- if (x < 1)
- fun_l7_n386(x)
- else
- fun_l7_n314(x)
- end
-end
-
-def fun_l6_n916(x)
- if (x < 1)
- fun_l7_n587(x)
- else
- fun_l7_n371(x)
- end
-end
-
-def fun_l6_n917(x)
- if (x < 1)
- fun_l7_n570(x)
- else
- fun_l7_n735(x)
- end
-end
-
-def fun_l6_n918(x)
- if (x < 1)
- fun_l7_n985(x)
- else
- fun_l7_n492(x)
- end
-end
-
-def fun_l6_n919(x)
- if (x < 1)
- fun_l7_n991(x)
- else
- fun_l7_n454(x)
- end
-end
-
-def fun_l6_n920(x)
- if (x < 1)
- fun_l7_n925(x)
- else
- fun_l7_n161(x)
- end
-end
-
-def fun_l6_n921(x)
- if (x < 1)
- fun_l7_n398(x)
- else
- fun_l7_n621(x)
- end
-end
-
-def fun_l6_n922(x)
- if (x < 1)
- fun_l7_n732(x)
- else
- fun_l7_n509(x)
- end
-end
-
-def fun_l6_n923(x)
- if (x < 1)
- fun_l7_n879(x)
- else
- fun_l7_n219(x)
- end
-end
-
-def fun_l6_n924(x)
- if (x < 1)
- fun_l7_n19(x)
- else
- fun_l7_n604(x)
- end
-end
-
-def fun_l6_n925(x)
- if (x < 1)
- fun_l7_n474(x)
- else
- fun_l7_n439(x)
- end
-end
-
-def fun_l6_n926(x)
- if (x < 1)
- fun_l7_n807(x)
- else
- fun_l7_n802(x)
- end
-end
-
-def fun_l6_n927(x)
- if (x < 1)
- fun_l7_n146(x)
- else
- fun_l7_n966(x)
- end
-end
-
-def fun_l6_n928(x)
- if (x < 1)
- fun_l7_n72(x)
- else
- fun_l7_n835(x)
- end
-end
-
-def fun_l6_n929(x)
- if (x < 1)
- fun_l7_n389(x)
- else
- fun_l7_n951(x)
- end
-end
-
-def fun_l6_n930(x)
- if (x < 1)
- fun_l7_n104(x)
- else
- fun_l7_n719(x)
- end
-end
-
-def fun_l6_n931(x)
- if (x < 1)
- fun_l7_n250(x)
- else
- fun_l7_n13(x)
- end
-end
-
-def fun_l6_n932(x)
- if (x < 1)
- fun_l7_n470(x)
- else
- fun_l7_n984(x)
- end
-end
-
-def fun_l6_n933(x)
- if (x < 1)
- fun_l7_n485(x)
- else
- fun_l7_n750(x)
- end
-end
-
-def fun_l6_n934(x)
- if (x < 1)
- fun_l7_n371(x)
- else
- fun_l7_n912(x)
- end
-end
-
-def fun_l6_n935(x)
- if (x < 1)
- fun_l7_n686(x)
- else
- fun_l7_n523(x)
- end
-end
-
-def fun_l6_n936(x)
- if (x < 1)
- fun_l7_n998(x)
- else
- fun_l7_n6(x)
- end
-end
-
-def fun_l6_n937(x)
- if (x < 1)
- fun_l7_n753(x)
- else
- fun_l7_n781(x)
- end
-end
-
-def fun_l6_n938(x)
- if (x < 1)
- fun_l7_n518(x)
- else
- fun_l7_n18(x)
- end
-end
-
-def fun_l6_n939(x)
- if (x < 1)
- fun_l7_n771(x)
- else
- fun_l7_n1(x)
- end
-end
-
-def fun_l6_n940(x)
- if (x < 1)
- fun_l7_n43(x)
- else
- fun_l7_n727(x)
- end
-end
-
-def fun_l6_n941(x)
- if (x < 1)
- fun_l7_n282(x)
- else
- fun_l7_n676(x)
- end
-end
-
-def fun_l6_n942(x)
- if (x < 1)
- fun_l7_n284(x)
- else
- fun_l7_n56(x)
- end
-end
-
-def fun_l6_n943(x)
- if (x < 1)
- fun_l7_n304(x)
- else
- fun_l7_n287(x)
- end
-end
-
-def fun_l6_n944(x)
- if (x < 1)
- fun_l7_n968(x)
- else
- fun_l7_n283(x)
- end
-end
-
-def fun_l6_n945(x)
- if (x < 1)
- fun_l7_n892(x)
- else
- fun_l7_n413(x)
- end
-end
-
-def fun_l6_n946(x)
- if (x < 1)
- fun_l7_n750(x)
- else
- fun_l7_n244(x)
- end
-end
-
-def fun_l6_n947(x)
- if (x < 1)
- fun_l7_n599(x)
- else
- fun_l7_n238(x)
- end
-end
-
-def fun_l6_n948(x)
- if (x < 1)
- fun_l7_n447(x)
- else
- fun_l7_n880(x)
- end
-end
-
-def fun_l6_n949(x)
- if (x < 1)
- fun_l7_n242(x)
- else
- fun_l7_n210(x)
- end
-end
-
-def fun_l6_n950(x)
- if (x < 1)
- fun_l7_n143(x)
- else
- fun_l7_n816(x)
- end
-end
-
-def fun_l6_n951(x)
- if (x < 1)
- fun_l7_n125(x)
- else
- fun_l7_n909(x)
- end
-end
-
-def fun_l6_n952(x)
- if (x < 1)
- fun_l7_n134(x)
- else
- fun_l7_n946(x)
- end
-end
-
-def fun_l6_n953(x)
- if (x < 1)
- fun_l7_n858(x)
- else
- fun_l7_n927(x)
- end
-end
-
-def fun_l6_n954(x)
- if (x < 1)
- fun_l7_n853(x)
- else
- fun_l7_n396(x)
- end
-end
-
-def fun_l6_n955(x)
- if (x < 1)
- fun_l7_n725(x)
- else
- fun_l7_n42(x)
- end
-end
-
-def fun_l6_n956(x)
- if (x < 1)
- fun_l7_n108(x)
- else
- fun_l7_n177(x)
- end
-end
-
-def fun_l6_n957(x)
- if (x < 1)
- fun_l7_n742(x)
- else
- fun_l7_n482(x)
- end
-end
-
-def fun_l6_n958(x)
- if (x < 1)
- fun_l7_n385(x)
- else
- fun_l7_n292(x)
- end
-end
-
-def fun_l6_n959(x)
- if (x < 1)
- fun_l7_n325(x)
- else
- fun_l7_n27(x)
- end
-end
-
-def fun_l6_n960(x)
- if (x < 1)
- fun_l7_n558(x)
- else
- fun_l7_n556(x)
- end
-end
-
-def fun_l6_n961(x)
- if (x < 1)
- fun_l7_n472(x)
- else
- fun_l7_n322(x)
- end
-end
-
-def fun_l6_n962(x)
- if (x < 1)
- fun_l7_n754(x)
- else
- fun_l7_n729(x)
- end
-end
-
-def fun_l6_n963(x)
- if (x < 1)
- fun_l7_n35(x)
- else
- fun_l7_n232(x)
- end
-end
-
-def fun_l6_n964(x)
- if (x < 1)
- fun_l7_n113(x)
- else
- fun_l7_n878(x)
- end
-end
-
-def fun_l6_n965(x)
- if (x < 1)
- fun_l7_n982(x)
- else
- fun_l7_n404(x)
- end
-end
-
-def fun_l6_n966(x)
- if (x < 1)
- fun_l7_n385(x)
- else
- fun_l7_n20(x)
- end
-end
-
-def fun_l6_n967(x)
- if (x < 1)
- fun_l7_n394(x)
- else
- fun_l7_n873(x)
- end
-end
-
-def fun_l6_n968(x)
- if (x < 1)
- fun_l7_n230(x)
- else
- fun_l7_n141(x)
- end
-end
-
-def fun_l6_n969(x)
- if (x < 1)
- fun_l7_n742(x)
- else
- fun_l7_n75(x)
- end
-end
-
-def fun_l6_n970(x)
- if (x < 1)
- fun_l7_n583(x)
- else
- fun_l7_n809(x)
- end
-end
-
-def fun_l6_n971(x)
- if (x < 1)
- fun_l7_n535(x)
- else
- fun_l7_n151(x)
- end
-end
-
-def fun_l6_n972(x)
- if (x < 1)
- fun_l7_n42(x)
- else
- fun_l7_n469(x)
- end
-end
-
-def fun_l6_n973(x)
- if (x < 1)
- fun_l7_n964(x)
- else
- fun_l7_n759(x)
- end
-end
-
-def fun_l6_n974(x)
- if (x < 1)
- fun_l7_n897(x)
- else
- fun_l7_n29(x)
- end
-end
-
-def fun_l6_n975(x)
- if (x < 1)
- fun_l7_n331(x)
- else
- fun_l7_n972(x)
- end
-end
-
-def fun_l6_n976(x)
- if (x < 1)
- fun_l7_n825(x)
- else
- fun_l7_n221(x)
- end
-end
-
-def fun_l6_n977(x)
- if (x < 1)
- fun_l7_n207(x)
- else
- fun_l7_n520(x)
- end
-end
-
-def fun_l6_n978(x)
- if (x < 1)
- fun_l7_n231(x)
- else
- fun_l7_n552(x)
- end
-end
-
-def fun_l6_n979(x)
- if (x < 1)
- fun_l7_n621(x)
- else
- fun_l7_n766(x)
- end
-end
-
-def fun_l6_n980(x)
- if (x < 1)
- fun_l7_n461(x)
- else
- fun_l7_n552(x)
- end
-end
-
-def fun_l6_n981(x)
- if (x < 1)
- fun_l7_n891(x)
- else
- fun_l7_n710(x)
- end
-end
-
-def fun_l6_n982(x)
- if (x < 1)
- fun_l7_n253(x)
- else
- fun_l7_n104(x)
- end
-end
-
-def fun_l6_n983(x)
- if (x < 1)
- fun_l7_n726(x)
- else
- fun_l7_n903(x)
- end
-end
-
-def fun_l6_n984(x)
- if (x < 1)
- fun_l7_n524(x)
- else
- fun_l7_n700(x)
- end
-end
-
-def fun_l6_n985(x)
- if (x < 1)
- fun_l7_n234(x)
- else
- fun_l7_n454(x)
- end
-end
-
-def fun_l6_n986(x)
- if (x < 1)
- fun_l7_n379(x)
- else
- fun_l7_n504(x)
- end
-end
-
-def fun_l6_n987(x)
- if (x < 1)
- fun_l7_n194(x)
- else
- fun_l7_n962(x)
- end
-end
-
-def fun_l6_n988(x)
- if (x < 1)
- fun_l7_n60(x)
- else
- fun_l7_n699(x)
- end
-end
-
-def fun_l6_n989(x)
- if (x < 1)
- fun_l7_n692(x)
- else
- fun_l7_n28(x)
- end
-end
-
-def fun_l6_n990(x)
- if (x < 1)
- fun_l7_n456(x)
- else
- fun_l7_n126(x)
- end
-end
-
-def fun_l6_n991(x)
- if (x < 1)
- fun_l7_n104(x)
- else
- fun_l7_n156(x)
- end
-end
-
-def fun_l6_n992(x)
- if (x < 1)
- fun_l7_n269(x)
- else
- fun_l7_n513(x)
- end
-end
-
-def fun_l6_n993(x)
- if (x < 1)
- fun_l7_n20(x)
- else
- fun_l7_n754(x)
- end
-end
-
-def fun_l6_n994(x)
- if (x < 1)
- fun_l7_n445(x)
- else
- fun_l7_n422(x)
- end
-end
-
-def fun_l6_n995(x)
- if (x < 1)
- fun_l7_n320(x)
- else
- fun_l7_n398(x)
- end
-end
-
-def fun_l6_n996(x)
- if (x < 1)
- fun_l7_n479(x)
- else
- fun_l7_n238(x)
- end
-end
-
-def fun_l6_n997(x)
- if (x < 1)
- fun_l7_n254(x)
- else
- fun_l7_n692(x)
- end
-end
-
-def fun_l6_n998(x)
- if (x < 1)
- fun_l7_n774(x)
- else
- fun_l7_n510(x)
- end
-end
-
-def fun_l6_n999(x)
- if (x < 1)
- fun_l7_n158(x)
- else
- fun_l7_n929(x)
- end
-end
-
-def fun_l7_n0(x)
- if (x < 1)
- fun_l8_n414(x)
- else
- fun_l8_n327(x)
- end
-end
-
-def fun_l7_n1(x)
- if (x < 1)
- fun_l8_n446(x)
- else
- fun_l8_n611(x)
- end
-end
-
-def fun_l7_n2(x)
- if (x < 1)
- fun_l8_n116(x)
- else
- fun_l8_n224(x)
- end
-end
-
-def fun_l7_n3(x)
- if (x < 1)
- fun_l8_n809(x)
- else
- fun_l8_n962(x)
- end
-end
-
-def fun_l7_n4(x)
- if (x < 1)
- fun_l8_n137(x)
- else
- fun_l8_n426(x)
- end
-end
-
-def fun_l7_n5(x)
- if (x < 1)
- fun_l8_n686(x)
- else
- fun_l8_n600(x)
- end
-end
-
-def fun_l7_n6(x)
- if (x < 1)
- fun_l8_n430(x)
- else
- fun_l8_n302(x)
- end
-end
-
-def fun_l7_n7(x)
- if (x < 1)
- fun_l8_n865(x)
- else
- fun_l8_n60(x)
- end
-end
-
-def fun_l7_n8(x)
- if (x < 1)
- fun_l8_n895(x)
- else
- fun_l8_n148(x)
- end
-end
-
-def fun_l7_n9(x)
- if (x < 1)
- fun_l8_n740(x)
- else
- fun_l8_n982(x)
- end
-end
-
-def fun_l7_n10(x)
- if (x < 1)
- fun_l8_n757(x)
- else
- fun_l8_n640(x)
- end
-end
-
-def fun_l7_n11(x)
- if (x < 1)
- fun_l8_n744(x)
- else
- fun_l8_n256(x)
- end
-end
-
-def fun_l7_n12(x)
- if (x < 1)
- fun_l8_n272(x)
- else
- fun_l8_n828(x)
- end
-end
-
-def fun_l7_n13(x)
- if (x < 1)
- fun_l8_n395(x)
- else
- fun_l8_n932(x)
- end
-end
-
-def fun_l7_n14(x)
- if (x < 1)
- fun_l8_n178(x)
- else
- fun_l8_n676(x)
- end
-end
-
-def fun_l7_n15(x)
- if (x < 1)
- fun_l8_n40(x)
- else
- fun_l8_n548(x)
- end
-end
-
-def fun_l7_n16(x)
- if (x < 1)
- fun_l8_n506(x)
- else
- fun_l8_n234(x)
- end
-end
-
-def fun_l7_n17(x)
- if (x < 1)
- fun_l8_n239(x)
- else
- fun_l8_n56(x)
- end
-end
-
-def fun_l7_n18(x)
- if (x < 1)
- fun_l8_n381(x)
- else
- fun_l8_n720(x)
- end
-end
-
-def fun_l7_n19(x)
- if (x < 1)
- fun_l8_n781(x)
- else
- fun_l8_n605(x)
- end
-end
-
-def fun_l7_n20(x)
- if (x < 1)
- fun_l8_n479(x)
- else
- fun_l8_n894(x)
- end
-end
-
-def fun_l7_n21(x)
- if (x < 1)
- fun_l8_n437(x)
- else
- fun_l8_n123(x)
- end
-end
-
-def fun_l7_n22(x)
- if (x < 1)
- fun_l8_n20(x)
- else
- fun_l8_n144(x)
- end
-end
-
-def fun_l7_n23(x)
- if (x < 1)
- fun_l8_n684(x)
- else
- fun_l8_n866(x)
- end
-end
-
-def fun_l7_n24(x)
- if (x < 1)
- fun_l8_n527(x)
- else
- fun_l8_n629(x)
- end
-end
-
-def fun_l7_n25(x)
- if (x < 1)
- fun_l8_n399(x)
- else
- fun_l8_n52(x)
- end
-end
-
-def fun_l7_n26(x)
- if (x < 1)
- fun_l8_n353(x)
- else
- fun_l8_n438(x)
- end
-end
-
-def fun_l7_n27(x)
- if (x < 1)
- fun_l8_n916(x)
- else
- fun_l8_n488(x)
- end
-end
-
-def fun_l7_n28(x)
- if (x < 1)
- fun_l8_n833(x)
- else
- fun_l8_n585(x)
- end
-end
-
-def fun_l7_n29(x)
- if (x < 1)
- fun_l8_n38(x)
- else
- fun_l8_n785(x)
- end
-end
-
-def fun_l7_n30(x)
- if (x < 1)
- fun_l8_n157(x)
- else
- fun_l8_n332(x)
- end
-end
-
-def fun_l7_n31(x)
- if (x < 1)
- fun_l8_n467(x)
- else
- fun_l8_n442(x)
- end
-end
-
-def fun_l7_n32(x)
- if (x < 1)
- fun_l8_n704(x)
- else
- fun_l8_n295(x)
- end
-end
-
-def fun_l7_n33(x)
- if (x < 1)
- fun_l8_n829(x)
- else
- fun_l8_n307(x)
- end
-end
-
-def fun_l7_n34(x)
- if (x < 1)
- fun_l8_n227(x)
- else
- fun_l8_n865(x)
- end
-end
-
-def fun_l7_n35(x)
- if (x < 1)
- fun_l8_n930(x)
- else
- fun_l8_n129(x)
- end
-end
-
-def fun_l7_n36(x)
- if (x < 1)
- fun_l8_n519(x)
- else
- fun_l8_n587(x)
- end
-end
-
-def fun_l7_n37(x)
- if (x < 1)
- fun_l8_n132(x)
- else
- fun_l8_n547(x)
- end
-end
-
-def fun_l7_n38(x)
- if (x < 1)
- fun_l8_n627(x)
- else
- fun_l8_n712(x)
- end
-end
-
-def fun_l7_n39(x)
- if (x < 1)
- fun_l8_n752(x)
- else
- fun_l8_n357(x)
- end
-end
-
-def fun_l7_n40(x)
- if (x < 1)
- fun_l8_n542(x)
- else
- fun_l8_n86(x)
- end
-end
-
-def fun_l7_n41(x)
- if (x < 1)
- fun_l8_n89(x)
- else
- fun_l8_n492(x)
- end
-end
-
-def fun_l7_n42(x)
- if (x < 1)
- fun_l8_n508(x)
- else
- fun_l8_n288(x)
- end
-end
-
-def fun_l7_n43(x)
- if (x < 1)
- fun_l8_n627(x)
- else
- fun_l8_n632(x)
- end
-end
-
-def fun_l7_n44(x)
- if (x < 1)
- fun_l8_n513(x)
- else
- fun_l8_n472(x)
- end
-end
-
-def fun_l7_n45(x)
- if (x < 1)
- fun_l8_n599(x)
- else
- fun_l8_n581(x)
- end
-end
-
-def fun_l7_n46(x)
- if (x < 1)
- fun_l8_n907(x)
- else
- fun_l8_n71(x)
- end
-end
-
-def fun_l7_n47(x)
- if (x < 1)
- fun_l8_n609(x)
- else
- fun_l8_n601(x)
- end
-end
-
-def fun_l7_n48(x)
- if (x < 1)
- fun_l8_n985(x)
- else
- fun_l8_n536(x)
- end
-end
-
-def fun_l7_n49(x)
- if (x < 1)
- fun_l8_n220(x)
- else
- fun_l8_n6(x)
- end
-end
-
-def fun_l7_n50(x)
- if (x < 1)
- fun_l8_n445(x)
- else
- fun_l8_n939(x)
- end
-end
-
-def fun_l7_n51(x)
- if (x < 1)
- fun_l8_n973(x)
- else
- fun_l8_n600(x)
- end
-end
-
-def fun_l7_n52(x)
- if (x < 1)
- fun_l8_n377(x)
- else
- fun_l8_n70(x)
- end
-end
-
-def fun_l7_n53(x)
- if (x < 1)
- fun_l8_n745(x)
- else
- fun_l8_n237(x)
- end
-end
-
-def fun_l7_n54(x)
- if (x < 1)
- fun_l8_n782(x)
- else
- fun_l8_n756(x)
- end
-end
-
-def fun_l7_n55(x)
- if (x < 1)
- fun_l8_n438(x)
- else
- fun_l8_n892(x)
- end
-end
-
-def fun_l7_n56(x)
- if (x < 1)
- fun_l8_n564(x)
- else
- fun_l8_n600(x)
- end
-end
-
-def fun_l7_n57(x)
- if (x < 1)
- fun_l8_n480(x)
- else
- fun_l8_n832(x)
- end
-end
-
-def fun_l7_n58(x)
- if (x < 1)
- fun_l8_n239(x)
- else
- fun_l8_n540(x)
- end
-end
-
-def fun_l7_n59(x)
- if (x < 1)
- fun_l8_n904(x)
- else
- fun_l8_n334(x)
- end
-end
-
-def fun_l7_n60(x)
- if (x < 1)
- fun_l8_n407(x)
- else
- fun_l8_n573(x)
- end
-end
-
-def fun_l7_n61(x)
- if (x < 1)
- fun_l8_n705(x)
- else
- fun_l8_n202(x)
- end
-end
-
-def fun_l7_n62(x)
- if (x < 1)
- fun_l8_n715(x)
- else
- fun_l8_n394(x)
- end
-end
-
-def fun_l7_n63(x)
- if (x < 1)
- fun_l8_n935(x)
- else
- fun_l8_n855(x)
- end
-end
-
-def fun_l7_n64(x)
- if (x < 1)
- fun_l8_n525(x)
- else
- fun_l8_n81(x)
- end
-end
-
-def fun_l7_n65(x)
- if (x < 1)
- fun_l8_n692(x)
- else
- fun_l8_n372(x)
- end
-end
-
-def fun_l7_n66(x)
- if (x < 1)
- fun_l8_n286(x)
- else
- fun_l8_n568(x)
- end
-end
-
-def fun_l7_n67(x)
- if (x < 1)
- fun_l8_n829(x)
- else
- fun_l8_n89(x)
- end
-end
-
-def fun_l7_n68(x)
- if (x < 1)
- fun_l8_n542(x)
- else
- fun_l8_n362(x)
- end
-end
-
-def fun_l7_n69(x)
- if (x < 1)
- fun_l8_n673(x)
- else
- fun_l8_n302(x)
- end
-end
-
-def fun_l7_n70(x)
- if (x < 1)
- fun_l8_n649(x)
- else
- fun_l8_n890(x)
- end
-end
-
-def fun_l7_n71(x)
- if (x < 1)
- fun_l8_n639(x)
- else
- fun_l8_n304(x)
- end
-end
-
-def fun_l7_n72(x)
- if (x < 1)
- fun_l8_n797(x)
- else
- fun_l8_n132(x)
- end
-end
-
-def fun_l7_n73(x)
- if (x < 1)
- fun_l8_n301(x)
- else
- fun_l8_n328(x)
- end
-end
-
-def fun_l7_n74(x)
- if (x < 1)
- fun_l8_n438(x)
- else
- fun_l8_n979(x)
- end
-end
-
-def fun_l7_n75(x)
- if (x < 1)
- fun_l8_n679(x)
- else
- fun_l8_n621(x)
- end
-end
-
-def fun_l7_n76(x)
- if (x < 1)
- fun_l8_n136(x)
- else
- fun_l8_n916(x)
- end
-end
-
-def fun_l7_n77(x)
- if (x < 1)
- fun_l8_n39(x)
- else
- fun_l8_n945(x)
- end
-end
-
-def fun_l7_n78(x)
- if (x < 1)
- fun_l8_n365(x)
- else
- fun_l8_n883(x)
- end
-end
-
-def fun_l7_n79(x)
- if (x < 1)
- fun_l8_n514(x)
- else
- fun_l8_n989(x)
- end
-end
-
-def fun_l7_n80(x)
- if (x < 1)
- fun_l8_n378(x)
- else
- fun_l8_n634(x)
- end
-end
-
-def fun_l7_n81(x)
- if (x < 1)
- fun_l8_n200(x)
- else
- fun_l8_n73(x)
- end
-end
-
-def fun_l7_n82(x)
- if (x < 1)
- fun_l8_n521(x)
- else
- fun_l8_n848(x)
- end
-end
-
-def fun_l7_n83(x)
- if (x < 1)
- fun_l8_n184(x)
- else
- fun_l8_n350(x)
- end
-end
-
-def fun_l7_n84(x)
- if (x < 1)
- fun_l8_n215(x)
- else
- fun_l8_n615(x)
- end
-end
-
-def fun_l7_n85(x)
- if (x < 1)
- fun_l8_n556(x)
- else
- fun_l8_n723(x)
- end
-end
-
-def fun_l7_n86(x)
- if (x < 1)
- fun_l8_n565(x)
- else
- fun_l8_n661(x)
- end
-end
-
-def fun_l7_n87(x)
- if (x < 1)
- fun_l8_n22(x)
- else
- fun_l8_n623(x)
- end
-end
-
-def fun_l7_n88(x)
- if (x < 1)
- fun_l8_n995(x)
- else
- fun_l8_n30(x)
- end
-end
-
-def fun_l7_n89(x)
- if (x < 1)
- fun_l8_n912(x)
- else
- fun_l8_n332(x)
- end
-end
-
-def fun_l7_n90(x)
- if (x < 1)
- fun_l8_n776(x)
- else
- fun_l8_n362(x)
- end
-end
-
-def fun_l7_n91(x)
- if (x < 1)
- fun_l8_n720(x)
- else
- fun_l8_n512(x)
- end
-end
-
-def fun_l7_n92(x)
- if (x < 1)
- fun_l8_n437(x)
- else
- fun_l8_n107(x)
- end
-end
-
-def fun_l7_n93(x)
- if (x < 1)
- fun_l8_n143(x)
- else
- fun_l8_n493(x)
- end
-end
-
-def fun_l7_n94(x)
- if (x < 1)
- fun_l8_n814(x)
- else
- fun_l8_n892(x)
- end
-end
-
-def fun_l7_n95(x)
- if (x < 1)
- fun_l8_n117(x)
- else
- fun_l8_n18(x)
- end
-end
-
-def fun_l7_n96(x)
- if (x < 1)
- fun_l8_n769(x)
- else
- fun_l8_n37(x)
- end
-end
-
-def fun_l7_n97(x)
- if (x < 1)
- fun_l8_n213(x)
- else
- fun_l8_n5(x)
- end
-end
-
-def fun_l7_n98(x)
- if (x < 1)
- fun_l8_n608(x)
- else
- fun_l8_n551(x)
- end
-end
-
-def fun_l7_n99(x)
- if (x < 1)
- fun_l8_n130(x)
- else
- fun_l8_n879(x)
- end
-end
-
-def fun_l7_n100(x)
- if (x < 1)
- fun_l8_n279(x)
- else
- fun_l8_n786(x)
- end
-end
-
-def fun_l7_n101(x)
- if (x < 1)
- fun_l8_n254(x)
- else
- fun_l8_n904(x)
- end
-end
-
-def fun_l7_n102(x)
- if (x < 1)
- fun_l8_n661(x)
- else
- fun_l8_n873(x)
- end
-end
-
-def fun_l7_n103(x)
- if (x < 1)
- fun_l8_n360(x)
- else
- fun_l8_n793(x)
- end
-end
-
-def fun_l7_n104(x)
- if (x < 1)
- fun_l8_n687(x)
- else
- fun_l8_n853(x)
- end
-end
-
-def fun_l7_n105(x)
- if (x < 1)
- fun_l8_n168(x)
- else
- fun_l8_n280(x)
- end
-end
-
-def fun_l7_n106(x)
- if (x < 1)
- fun_l8_n742(x)
- else
- fun_l8_n222(x)
- end
-end
-
-def fun_l7_n107(x)
- if (x < 1)
- fun_l8_n470(x)
- else
- fun_l8_n633(x)
- end
-end
-
-def fun_l7_n108(x)
- if (x < 1)
- fun_l8_n495(x)
- else
- fun_l8_n253(x)
- end
-end
-
-def fun_l7_n109(x)
- if (x < 1)
- fun_l8_n369(x)
- else
- fun_l8_n108(x)
- end
-end
-
-def fun_l7_n110(x)
- if (x < 1)
- fun_l8_n254(x)
- else
- fun_l8_n162(x)
- end
-end
-
-def fun_l7_n111(x)
- if (x < 1)
- fun_l8_n835(x)
- else
- fun_l8_n295(x)
- end
-end
-
-def fun_l7_n112(x)
- if (x < 1)
- fun_l8_n349(x)
- else
- fun_l8_n432(x)
- end
-end
-
-def fun_l7_n113(x)
- if (x < 1)
- fun_l8_n237(x)
- else
- fun_l8_n484(x)
- end
-end
-
-def fun_l7_n114(x)
- if (x < 1)
- fun_l8_n755(x)
- else
- fun_l8_n819(x)
- end
-end
-
-def fun_l7_n115(x)
- if (x < 1)
- fun_l8_n542(x)
- else
- fun_l8_n587(x)
- end
-end
-
-def fun_l7_n116(x)
- if (x < 1)
- fun_l8_n837(x)
- else
- fun_l8_n274(x)
- end
-end
-
-def fun_l7_n117(x)
- if (x < 1)
- fun_l8_n742(x)
- else
- fun_l8_n104(x)
- end
-end
-
-def fun_l7_n118(x)
- if (x < 1)
- fun_l8_n201(x)
- else
- fun_l8_n340(x)
- end
-end
-
-def fun_l7_n119(x)
- if (x < 1)
- fun_l8_n349(x)
- else
- fun_l8_n213(x)
- end
-end
-
-def fun_l7_n120(x)
- if (x < 1)
- fun_l8_n563(x)
- else
- fun_l8_n193(x)
- end
-end
-
-def fun_l7_n121(x)
- if (x < 1)
- fun_l8_n738(x)
- else
- fun_l8_n600(x)
- end
-end
-
-def fun_l7_n122(x)
- if (x < 1)
- fun_l8_n261(x)
- else
- fun_l8_n500(x)
- end
-end
-
-def fun_l7_n123(x)
- if (x < 1)
- fun_l8_n870(x)
- else
- fun_l8_n423(x)
- end
-end
-
-def fun_l7_n124(x)
- if (x < 1)
- fun_l8_n405(x)
- else
- fun_l8_n749(x)
- end
-end
-
-def fun_l7_n125(x)
- if (x < 1)
- fun_l8_n848(x)
- else
- fun_l8_n106(x)
- end
-end
-
-def fun_l7_n126(x)
- if (x < 1)
- fun_l8_n382(x)
- else
- fun_l8_n379(x)
- end
-end
-
-def fun_l7_n127(x)
- if (x < 1)
- fun_l8_n232(x)
- else
- fun_l8_n913(x)
- end
-end
-
-def fun_l7_n128(x)
- if (x < 1)
- fun_l8_n7(x)
- else
- fun_l8_n177(x)
- end
-end
-
-def fun_l7_n129(x)
- if (x < 1)
- fun_l8_n86(x)
- else
- fun_l8_n670(x)
- end
-end
-
-def fun_l7_n130(x)
- if (x < 1)
- fun_l8_n361(x)
- else
- fun_l8_n132(x)
- end
-end
-
-def fun_l7_n131(x)
- if (x < 1)
- fun_l8_n125(x)
- else
- fun_l8_n925(x)
- end
-end
-
-def fun_l7_n132(x)
- if (x < 1)
- fun_l8_n529(x)
- else
- fun_l8_n996(x)
- end
-end
-
-def fun_l7_n133(x)
- if (x < 1)
- fun_l8_n283(x)
- else
- fun_l8_n112(x)
- end
-end
-
-def fun_l7_n134(x)
- if (x < 1)
- fun_l8_n974(x)
- else
- fun_l8_n204(x)
- end
-end
-
-def fun_l7_n135(x)
- if (x < 1)
- fun_l8_n903(x)
- else
- fun_l8_n196(x)
- end
-end
-
-def fun_l7_n136(x)
- if (x < 1)
- fun_l8_n59(x)
- else
- fun_l8_n505(x)
- end
-end
-
-def fun_l7_n137(x)
- if (x < 1)
- fun_l8_n530(x)
- else
- fun_l8_n31(x)
- end
-end
-
-def fun_l7_n138(x)
- if (x < 1)
- fun_l8_n990(x)
- else
- fun_l8_n924(x)
- end
-end
-
-def fun_l7_n139(x)
- if (x < 1)
- fun_l8_n202(x)
- else
- fun_l8_n980(x)
- end
-end
-
-def fun_l7_n140(x)
- if (x < 1)
- fun_l8_n354(x)
- else
- fun_l8_n694(x)
- end
-end
-
-def fun_l7_n141(x)
- if (x < 1)
- fun_l8_n306(x)
- else
- fun_l8_n307(x)
- end
-end
-
-def fun_l7_n142(x)
- if (x < 1)
- fun_l8_n433(x)
- else
- fun_l8_n902(x)
- end
-end
-
-def fun_l7_n143(x)
- if (x < 1)
- fun_l8_n522(x)
- else
- fun_l8_n904(x)
- end
-end
-
-def fun_l7_n144(x)
- if (x < 1)
- fun_l8_n86(x)
- else
- fun_l8_n11(x)
- end
-end
-
-def fun_l7_n145(x)
- if (x < 1)
- fun_l8_n147(x)
- else
- fun_l8_n21(x)
- end
-end
-
-def fun_l7_n146(x)
- if (x < 1)
- fun_l8_n47(x)
- else
- fun_l8_n855(x)
- end
-end
-
-def fun_l7_n147(x)
- if (x < 1)
- fun_l8_n306(x)
- else
- fun_l8_n309(x)
- end
-end
-
-def fun_l7_n148(x)
- if (x < 1)
- fun_l8_n757(x)
- else
- fun_l8_n83(x)
- end
-end
-
-def fun_l7_n149(x)
- if (x < 1)
- fun_l8_n377(x)
- else
- fun_l8_n124(x)
- end
-end
-
-def fun_l7_n150(x)
- if (x < 1)
- fun_l8_n276(x)
- else
- fun_l8_n838(x)
- end
-end
-
-def fun_l7_n151(x)
- if (x < 1)
- fun_l8_n148(x)
- else
- fun_l8_n653(x)
- end
-end
-
-def fun_l7_n152(x)
- if (x < 1)
- fun_l8_n315(x)
- else
- fun_l8_n942(x)
- end
-end
-
-def fun_l7_n153(x)
- if (x < 1)
- fun_l8_n794(x)
- else
- fun_l8_n680(x)
- end
-end
-
-def fun_l7_n154(x)
- if (x < 1)
- fun_l8_n508(x)
- else
- fun_l8_n427(x)
- end
-end
-
-def fun_l7_n155(x)
- if (x < 1)
- fun_l8_n249(x)
- else
- fun_l8_n615(x)
- end
-end
-
-def fun_l7_n156(x)
- if (x < 1)
- fun_l8_n339(x)
- else
- fun_l8_n559(x)
- end
-end
-
-def fun_l7_n157(x)
- if (x < 1)
- fun_l8_n772(x)
- else
- fun_l8_n128(x)
- end
-end
-
-def fun_l7_n158(x)
- if (x < 1)
- fun_l8_n247(x)
- else
- fun_l8_n962(x)
- end
-end
-
-def fun_l7_n159(x)
- if (x < 1)
- fun_l8_n648(x)
- else
- fun_l8_n338(x)
- end
-end
-
-def fun_l7_n160(x)
- if (x < 1)
- fun_l8_n104(x)
- else
- fun_l8_n757(x)
- end
-end
-
-def fun_l7_n161(x)
- if (x < 1)
- fun_l8_n74(x)
- else
- fun_l8_n288(x)
- end
-end
-
-def fun_l7_n162(x)
- if (x < 1)
- fun_l8_n849(x)
- else
- fun_l8_n982(x)
- end
-end
-
-def fun_l7_n163(x)
- if (x < 1)
- fun_l8_n433(x)
- else
- fun_l8_n442(x)
- end
-end
-
-def fun_l7_n164(x)
- if (x < 1)
- fun_l8_n268(x)
- else
- fun_l8_n717(x)
- end
-end
-
-def fun_l7_n165(x)
- if (x < 1)
- fun_l8_n185(x)
- else
- fun_l8_n628(x)
- end
-end
-
-def fun_l7_n166(x)
- if (x < 1)
- fun_l8_n207(x)
- else
- fun_l8_n830(x)
- end
-end
-
-def fun_l7_n167(x)
- if (x < 1)
- fun_l8_n334(x)
- else
- fun_l8_n20(x)
- end
-end
-
-def fun_l7_n168(x)
- if (x < 1)
- fun_l8_n835(x)
- else
- fun_l8_n493(x)
- end
-end
-
-def fun_l7_n169(x)
- if (x < 1)
- fun_l8_n559(x)
- else
- fun_l8_n561(x)
- end
-end
-
-def fun_l7_n170(x)
- if (x < 1)
- fun_l8_n942(x)
- else
- fun_l8_n699(x)
- end
-end
-
-def fun_l7_n171(x)
- if (x < 1)
- fun_l8_n833(x)
- else
- fun_l8_n928(x)
- end
-end
-
-def fun_l7_n172(x)
- if (x < 1)
- fun_l8_n564(x)
- else
- fun_l8_n972(x)
- end
-end
-
-def fun_l7_n173(x)
- if (x < 1)
- fun_l8_n509(x)
- else
- fun_l8_n125(x)
- end
-end
-
-def fun_l7_n174(x)
- if (x < 1)
- fun_l8_n643(x)
- else
- fun_l8_n813(x)
- end
-end
-
-def fun_l7_n175(x)
- if (x < 1)
- fun_l8_n763(x)
- else
- fun_l8_n22(x)
- end
-end
-
-def fun_l7_n176(x)
- if (x < 1)
- fun_l8_n955(x)
- else
- fun_l8_n579(x)
- end
-end
-
-def fun_l7_n177(x)
- if (x < 1)
- fun_l8_n577(x)
- else
- fun_l8_n675(x)
- end
-end
-
-def fun_l7_n178(x)
- if (x < 1)
- fun_l8_n867(x)
- else
- fun_l8_n119(x)
- end
-end
-
-def fun_l7_n179(x)
- if (x < 1)
- fun_l8_n357(x)
- else
- fun_l8_n543(x)
- end
-end
-
-def fun_l7_n180(x)
- if (x < 1)
- fun_l8_n67(x)
- else
- fun_l8_n643(x)
- end
-end
-
-def fun_l7_n181(x)
- if (x < 1)
- fun_l8_n377(x)
- else
- fun_l8_n931(x)
- end
-end
-
-def fun_l7_n182(x)
- if (x < 1)
- fun_l8_n962(x)
- else
- fun_l8_n220(x)
- end
-end
-
-def fun_l7_n183(x)
- if (x < 1)
- fun_l8_n568(x)
- else
- fun_l8_n702(x)
- end
-end
-
-def fun_l7_n184(x)
- if (x < 1)
- fun_l8_n877(x)
- else
- fun_l8_n376(x)
- end
-end
-
-def fun_l7_n185(x)
- if (x < 1)
- fun_l8_n171(x)
- else
- fun_l8_n981(x)
- end
-end
-
-def fun_l7_n186(x)
- if (x < 1)
- fun_l8_n283(x)
- else
- fun_l8_n81(x)
- end
-end
-
-def fun_l7_n187(x)
- if (x < 1)
- fun_l8_n318(x)
- else
- fun_l8_n7(x)
- end
-end
-
-def fun_l7_n188(x)
- if (x < 1)
- fun_l8_n874(x)
- else
- fun_l8_n879(x)
- end
-end
-
-def fun_l7_n189(x)
- if (x < 1)
- fun_l8_n944(x)
- else
- fun_l8_n881(x)
- end
-end
-
-def fun_l7_n190(x)
- if (x < 1)
- fun_l8_n462(x)
- else
- fun_l8_n570(x)
- end
-end
-
-def fun_l7_n191(x)
- if (x < 1)
- fun_l8_n815(x)
- else
- fun_l8_n957(x)
- end
-end
-
-def fun_l7_n192(x)
- if (x < 1)
- fun_l8_n217(x)
- else
- fun_l8_n93(x)
- end
-end
-
-def fun_l7_n193(x)
- if (x < 1)
- fun_l8_n708(x)
- else
- fun_l8_n323(x)
- end
-end
-
-def fun_l7_n194(x)
- if (x < 1)
- fun_l8_n420(x)
- else
- fun_l8_n375(x)
- end
-end
-
-def fun_l7_n195(x)
- if (x < 1)
- fun_l8_n307(x)
- else
- fun_l8_n427(x)
- end
-end
-
-def fun_l7_n196(x)
- if (x < 1)
- fun_l8_n200(x)
- else
- fun_l8_n265(x)
- end
-end
-
-def fun_l7_n197(x)
- if (x < 1)
- fun_l8_n547(x)
- else
- fun_l8_n687(x)
- end
-end
-
-def fun_l7_n198(x)
- if (x < 1)
- fun_l8_n693(x)
- else
- fun_l8_n420(x)
- end
-end
-
-def fun_l7_n199(x)
- if (x < 1)
- fun_l8_n297(x)
- else
- fun_l8_n702(x)
- end
-end
-
-def fun_l7_n200(x)
- if (x < 1)
- fun_l8_n418(x)
- else
- fun_l8_n758(x)
- end
-end
-
-def fun_l7_n201(x)
- if (x < 1)
- fun_l8_n204(x)
- else
- fun_l8_n572(x)
- end
-end
-
-def fun_l7_n202(x)
- if (x < 1)
- fun_l8_n847(x)
- else
- fun_l8_n440(x)
- end
-end
-
-def fun_l7_n203(x)
- if (x < 1)
- fun_l8_n692(x)
- else
- fun_l8_n595(x)
- end
-end
-
-def fun_l7_n204(x)
- if (x < 1)
- fun_l8_n922(x)
- else
- fun_l8_n618(x)
- end
-end
-
-def fun_l7_n205(x)
- if (x < 1)
- fun_l8_n431(x)
- else
- fun_l8_n135(x)
- end
-end
-
-def fun_l7_n206(x)
- if (x < 1)
- fun_l8_n92(x)
- else
- fun_l8_n370(x)
- end
-end
-
-def fun_l7_n207(x)
- if (x < 1)
- fun_l8_n141(x)
- else
- fun_l8_n845(x)
- end
-end
-
-def fun_l7_n208(x)
- if (x < 1)
- fun_l8_n552(x)
- else
- fun_l8_n917(x)
- end
-end
-
-def fun_l7_n209(x)
- if (x < 1)
- fun_l8_n341(x)
- else
- fun_l8_n794(x)
- end
-end
-
-def fun_l7_n210(x)
- if (x < 1)
- fun_l8_n772(x)
- else
- fun_l8_n515(x)
- end
-end
-
-def fun_l7_n211(x)
- if (x < 1)
- fun_l8_n37(x)
- else
- fun_l8_n635(x)
- end
-end
-
-def fun_l7_n212(x)
- if (x < 1)
- fun_l8_n164(x)
- else
- fun_l8_n506(x)
- end
-end
-
-def fun_l7_n213(x)
- if (x < 1)
- fun_l8_n621(x)
- else
- fun_l8_n722(x)
- end
-end
-
-def fun_l7_n214(x)
- if (x < 1)
- fun_l8_n475(x)
- else
- fun_l8_n854(x)
- end
-end
-
-def fun_l7_n215(x)
- if (x < 1)
- fun_l8_n275(x)
- else
- fun_l8_n884(x)
- end
-end
-
-def fun_l7_n216(x)
- if (x < 1)
- fun_l8_n894(x)
- else
- fun_l8_n424(x)
- end
-end
-
-def fun_l7_n217(x)
- if (x < 1)
- fun_l8_n32(x)
- else
- fun_l8_n698(x)
- end
-end
-
-def fun_l7_n218(x)
- if (x < 1)
- fun_l8_n707(x)
- else
- fun_l8_n728(x)
- end
-end
-
-def fun_l7_n219(x)
- if (x < 1)
- fun_l8_n294(x)
- else
- fun_l8_n583(x)
- end
-end
-
-def fun_l7_n220(x)
- if (x < 1)
- fun_l8_n577(x)
- else
- fun_l8_n881(x)
- end
-end
-
-def fun_l7_n221(x)
- if (x < 1)
- fun_l8_n925(x)
- else
- fun_l8_n177(x)
- end
-end
-
-def fun_l7_n222(x)
- if (x < 1)
- fun_l8_n495(x)
- else
- fun_l8_n407(x)
- end
-end
-
-def fun_l7_n223(x)
- if (x < 1)
- fun_l8_n11(x)
- else
- fun_l8_n753(x)
- end
-end
-
-def fun_l7_n224(x)
- if (x < 1)
- fun_l8_n366(x)
- else
- fun_l8_n546(x)
- end
-end
-
-def fun_l7_n225(x)
- if (x < 1)
- fun_l8_n644(x)
- else
- fun_l8_n728(x)
- end
-end
-
-def fun_l7_n226(x)
- if (x < 1)
- fun_l8_n731(x)
- else
- fun_l8_n292(x)
- end
-end
-
-def fun_l7_n227(x)
- if (x < 1)
- fun_l8_n653(x)
- else
- fun_l8_n521(x)
- end
-end
-
-def fun_l7_n228(x)
- if (x < 1)
- fun_l8_n479(x)
- else
- fun_l8_n329(x)
- end
-end
-
-def fun_l7_n229(x)
- if (x < 1)
- fun_l8_n151(x)
- else
- fun_l8_n620(x)
- end
-end
-
-def fun_l7_n230(x)
- if (x < 1)
- fun_l8_n58(x)
- else
- fun_l8_n369(x)
- end
-end
-
-def fun_l7_n231(x)
- if (x < 1)
- fun_l8_n301(x)
- else
- fun_l8_n869(x)
- end
-end
-
-def fun_l7_n232(x)
- if (x < 1)
- fun_l8_n810(x)
- else
- fun_l8_n376(x)
- end
-end
-
-def fun_l7_n233(x)
- if (x < 1)
- fun_l8_n19(x)
- else
- fun_l8_n278(x)
- end
-end
-
-def fun_l7_n234(x)
- if (x < 1)
- fun_l8_n509(x)
- else
- fun_l8_n826(x)
- end
-end
-
-def fun_l7_n235(x)
- if (x < 1)
- fun_l8_n302(x)
- else
- fun_l8_n62(x)
- end
-end
-
-def fun_l7_n236(x)
- if (x < 1)
- fun_l8_n289(x)
- else
- fun_l8_n935(x)
- end
-end
-
-def fun_l7_n237(x)
- if (x < 1)
- fun_l8_n217(x)
- else
- fun_l8_n652(x)
- end
-end
-
-def fun_l7_n238(x)
- if (x < 1)
- fun_l8_n234(x)
- else
- fun_l8_n720(x)
- end
-end
-
-def fun_l7_n239(x)
- if (x < 1)
- fun_l8_n158(x)
- else
- fun_l8_n409(x)
- end
-end
-
-def fun_l7_n240(x)
- if (x < 1)
- fun_l8_n478(x)
- else
- fun_l8_n855(x)
- end
-end
-
-def fun_l7_n241(x)
- if (x < 1)
- fun_l8_n115(x)
- else
- fun_l8_n406(x)
- end
-end
-
-def fun_l7_n242(x)
- if (x < 1)
- fun_l8_n278(x)
- else
- fun_l8_n12(x)
- end
-end
-
-def fun_l7_n243(x)
- if (x < 1)
- fun_l8_n273(x)
- else
- fun_l8_n243(x)
- end
-end
-
-def fun_l7_n244(x)
- if (x < 1)
- fun_l8_n909(x)
- else
- fun_l8_n721(x)
- end
-end
-
-def fun_l7_n245(x)
- if (x < 1)
- fun_l8_n415(x)
- else
- fun_l8_n530(x)
- end
-end
-
-def fun_l7_n246(x)
- if (x < 1)
- fun_l8_n770(x)
- else
- fun_l8_n413(x)
- end
-end
-
-def fun_l7_n247(x)
- if (x < 1)
- fun_l8_n228(x)
- else
- fun_l8_n668(x)
- end
-end
-
-def fun_l7_n248(x)
- if (x < 1)
- fun_l8_n174(x)
- else
- fun_l8_n559(x)
- end
-end
-
-def fun_l7_n249(x)
- if (x < 1)
- fun_l8_n740(x)
- else
- fun_l8_n314(x)
- end
-end
-
-def fun_l7_n250(x)
- if (x < 1)
- fun_l8_n293(x)
- else
- fun_l8_n835(x)
- end
-end
-
-def fun_l7_n251(x)
- if (x < 1)
- fun_l8_n584(x)
- else
- fun_l8_n755(x)
- end
-end
-
-def fun_l7_n252(x)
- if (x < 1)
- fun_l8_n792(x)
- else
- fun_l8_n135(x)
- end
-end
-
-def fun_l7_n253(x)
- if (x < 1)
- fun_l8_n116(x)
- else
- fun_l8_n82(x)
- end
-end
-
-def fun_l7_n254(x)
- if (x < 1)
- fun_l8_n478(x)
- else
- fun_l8_n809(x)
- end
-end
-
-def fun_l7_n255(x)
- if (x < 1)
- fun_l8_n924(x)
- else
- fun_l8_n708(x)
- end
-end
-
-def fun_l7_n256(x)
- if (x < 1)
- fun_l8_n345(x)
- else
- fun_l8_n669(x)
- end
-end
-
-def fun_l7_n257(x)
- if (x < 1)
- fun_l8_n300(x)
- else
- fun_l8_n166(x)
- end
-end
-
-def fun_l7_n258(x)
- if (x < 1)
- fun_l8_n979(x)
- else
- fun_l8_n894(x)
- end
-end
-
-def fun_l7_n259(x)
- if (x < 1)
- fun_l8_n765(x)
- else
- fun_l8_n838(x)
- end
-end
-
-def fun_l7_n260(x)
- if (x < 1)
- fun_l8_n812(x)
- else
- fun_l8_n472(x)
- end
-end
-
-def fun_l7_n261(x)
- if (x < 1)
- fun_l8_n220(x)
- else
- fun_l8_n106(x)
- end
-end
-
-def fun_l7_n262(x)
- if (x < 1)
- fun_l8_n727(x)
- else
- fun_l8_n783(x)
- end
-end
-
-def fun_l7_n263(x)
- if (x < 1)
- fun_l8_n560(x)
- else
- fun_l8_n781(x)
- end
-end
-
-def fun_l7_n264(x)
- if (x < 1)
- fun_l8_n709(x)
- else
- fun_l8_n33(x)
- end
-end
-
-def fun_l7_n265(x)
- if (x < 1)
- fun_l8_n904(x)
- else
- fun_l8_n64(x)
- end
-end
-
-def fun_l7_n266(x)
- if (x < 1)
- fun_l8_n944(x)
- else
- fun_l8_n652(x)
- end
-end
-
-def fun_l7_n267(x)
- if (x < 1)
- fun_l8_n154(x)
- else
- fun_l8_n103(x)
- end
-end
-
-def fun_l7_n268(x)
- if (x < 1)
- fun_l8_n55(x)
- else
- fun_l8_n841(x)
- end
-end
-
-def fun_l7_n269(x)
- if (x < 1)
- fun_l8_n914(x)
- else
- fun_l8_n108(x)
- end
-end
-
-def fun_l7_n270(x)
- if (x < 1)
- fun_l8_n733(x)
- else
- fun_l8_n398(x)
- end
-end
-
-def fun_l7_n271(x)
- if (x < 1)
- fun_l8_n145(x)
- else
- fun_l8_n735(x)
- end
-end
-
-def fun_l7_n272(x)
- if (x < 1)
- fun_l8_n404(x)
- else
- fun_l8_n216(x)
- end
-end
-
-def fun_l7_n273(x)
- if (x < 1)
- fun_l8_n380(x)
- else
- fun_l8_n798(x)
- end
-end
-
-def fun_l7_n274(x)
- if (x < 1)
- fun_l8_n63(x)
- else
- fun_l8_n133(x)
- end
-end
-
-def fun_l7_n275(x)
- if (x < 1)
- fun_l8_n878(x)
- else
- fun_l8_n284(x)
- end
-end
-
-def fun_l7_n276(x)
- if (x < 1)
- fun_l8_n718(x)
- else
- fun_l8_n97(x)
- end
-end
-
-def fun_l7_n277(x)
- if (x < 1)
- fun_l8_n509(x)
- else
- fun_l8_n695(x)
- end
-end
-
-def fun_l7_n278(x)
- if (x < 1)
- fun_l8_n581(x)
- else
- fun_l8_n898(x)
- end
-end
-
-def fun_l7_n279(x)
- if (x < 1)
- fun_l8_n247(x)
- else
- fun_l8_n526(x)
- end
-end
-
-def fun_l7_n280(x)
- if (x < 1)
- fun_l8_n995(x)
- else
- fun_l8_n614(x)
- end
-end
-
-def fun_l7_n281(x)
- if (x < 1)
- fun_l8_n301(x)
- else
- fun_l8_n178(x)
- end
-end
-
-def fun_l7_n282(x)
- if (x < 1)
- fun_l8_n575(x)
- else
- fun_l8_n712(x)
- end
-end
-
-def fun_l7_n283(x)
- if (x < 1)
- fun_l8_n261(x)
- else
- fun_l8_n740(x)
- end
-end
-
-def fun_l7_n284(x)
- if (x < 1)
- fun_l8_n284(x)
- else
- fun_l8_n350(x)
- end
-end
-
-def fun_l7_n285(x)
- if (x < 1)
- fun_l8_n521(x)
- else
- fun_l8_n305(x)
- end
-end
-
-def fun_l7_n286(x)
- if (x < 1)
- fun_l8_n271(x)
- else
- fun_l8_n728(x)
- end
-end
-
-def fun_l7_n287(x)
- if (x < 1)
- fun_l8_n292(x)
- else
- fun_l8_n799(x)
- end
-end
-
-def fun_l7_n288(x)
- if (x < 1)
- fun_l8_n852(x)
- else
- fun_l8_n606(x)
- end
-end
-
-def fun_l7_n289(x)
- if (x < 1)
- fun_l8_n177(x)
- else
- fun_l8_n649(x)
- end
-end
-
-def fun_l7_n290(x)
- if (x < 1)
- fun_l8_n488(x)
- else
- fun_l8_n252(x)
- end
-end
-
-def fun_l7_n291(x)
- if (x < 1)
- fun_l8_n815(x)
- else
- fun_l8_n690(x)
- end
-end
-
-def fun_l7_n292(x)
- if (x < 1)
- fun_l8_n999(x)
- else
- fun_l8_n700(x)
- end
-end
-
-def fun_l7_n293(x)
- if (x < 1)
- fun_l8_n9(x)
- else
- fun_l8_n194(x)
- end
-end
-
-def fun_l7_n294(x)
- if (x < 1)
- fun_l8_n390(x)
- else
- fun_l8_n772(x)
- end
-end
-
-def fun_l7_n295(x)
- if (x < 1)
- fun_l8_n487(x)
- else
- fun_l8_n587(x)
- end
-end
-
-def fun_l7_n296(x)
- if (x < 1)
- fun_l8_n892(x)
- else
- fun_l8_n126(x)
- end
-end
-
-def fun_l7_n297(x)
- if (x < 1)
- fun_l8_n199(x)
- else
- fun_l8_n312(x)
- end
-end
-
-def fun_l7_n298(x)
- if (x < 1)
- fun_l8_n534(x)
- else
- fun_l8_n640(x)
- end
-end
-
-def fun_l7_n299(x)
- if (x < 1)
- fun_l8_n344(x)
- else
- fun_l8_n58(x)
- end
-end
-
-def fun_l7_n300(x)
- if (x < 1)
- fun_l8_n11(x)
- else
- fun_l8_n922(x)
- end
-end
-
-def fun_l7_n301(x)
- if (x < 1)
- fun_l8_n848(x)
- else
- fun_l8_n432(x)
- end
-end
-
-def fun_l7_n302(x)
- if (x < 1)
- fun_l8_n292(x)
- else
- fun_l8_n86(x)
- end
-end
-
-def fun_l7_n303(x)
- if (x < 1)
- fun_l8_n239(x)
- else
- fun_l8_n296(x)
- end
-end
-
-def fun_l7_n304(x)
- if (x < 1)
- fun_l8_n350(x)
- else
- fun_l8_n769(x)
- end
-end
-
-def fun_l7_n305(x)
- if (x < 1)
- fun_l8_n959(x)
- else
- fun_l8_n292(x)
- end
-end
-
-def fun_l7_n306(x)
- if (x < 1)
- fun_l8_n371(x)
- else
- fun_l8_n507(x)
- end
-end
-
-def fun_l7_n307(x)
- if (x < 1)
- fun_l8_n910(x)
- else
- fun_l8_n542(x)
- end
-end
-
-def fun_l7_n308(x)
- if (x < 1)
- fun_l8_n299(x)
- else
- fun_l8_n543(x)
- end
-end
-
-def fun_l7_n309(x)
- if (x < 1)
- fun_l8_n145(x)
- else
- fun_l8_n393(x)
- end
-end
-
-def fun_l7_n310(x)
- if (x < 1)
- fun_l8_n1(x)
- else
- fun_l8_n810(x)
- end
-end
-
-def fun_l7_n311(x)
- if (x < 1)
- fun_l8_n866(x)
- else
- fun_l8_n519(x)
- end
-end
-
-def fun_l7_n312(x)
- if (x < 1)
- fun_l8_n730(x)
- else
- fun_l8_n912(x)
- end
-end
-
-def fun_l7_n313(x)
- if (x < 1)
- fun_l8_n128(x)
- else
- fun_l8_n3(x)
- end
-end
-
-def fun_l7_n314(x)
- if (x < 1)
- fun_l8_n393(x)
- else
- fun_l8_n887(x)
- end
-end
-
-def fun_l7_n315(x)
- if (x < 1)
- fun_l8_n165(x)
- else
- fun_l8_n540(x)
- end
-end
-
-def fun_l7_n316(x)
- if (x < 1)
- fun_l8_n641(x)
- else
- fun_l8_n255(x)
- end
-end
-
-def fun_l7_n317(x)
- if (x < 1)
- fun_l8_n265(x)
- else
- fun_l8_n754(x)
- end
-end
-
-def fun_l7_n318(x)
- if (x < 1)
- fun_l8_n433(x)
- else
- fun_l8_n163(x)
- end
-end
-
-def fun_l7_n319(x)
- if (x < 1)
- fun_l8_n409(x)
- else
- fun_l8_n110(x)
- end
-end
-
-def fun_l7_n320(x)
- if (x < 1)
- fun_l8_n704(x)
- else
- fun_l8_n959(x)
- end
-end
-
-def fun_l7_n321(x)
- if (x < 1)
- fun_l8_n334(x)
- else
- fun_l8_n280(x)
- end
-end
-
-def fun_l7_n322(x)
- if (x < 1)
- fun_l8_n107(x)
- else
- fun_l8_n403(x)
- end
-end
-
-def fun_l7_n323(x)
- if (x < 1)
- fun_l8_n108(x)
- else
- fun_l8_n426(x)
- end
-end
-
-def fun_l7_n324(x)
- if (x < 1)
- fun_l8_n310(x)
- else
- fun_l8_n968(x)
- end
-end
-
-def fun_l7_n325(x)
- if (x < 1)
- fun_l8_n600(x)
- else
- fun_l8_n850(x)
- end
-end
-
-def fun_l7_n326(x)
- if (x < 1)
- fun_l8_n736(x)
- else
- fun_l8_n61(x)
- end
-end
-
-def fun_l7_n327(x)
- if (x < 1)
- fun_l8_n86(x)
- else
- fun_l8_n948(x)
- end
-end
-
-def fun_l7_n328(x)
- if (x < 1)
- fun_l8_n625(x)
- else
- fun_l8_n644(x)
- end
-end
-
-def fun_l7_n329(x)
- if (x < 1)
- fun_l8_n507(x)
- else
- fun_l8_n624(x)
- end
-end
-
-def fun_l7_n330(x)
- if (x < 1)
- fun_l8_n956(x)
- else
- fun_l8_n281(x)
- end
-end
-
-def fun_l7_n331(x)
- if (x < 1)
- fun_l8_n72(x)
- else
- fun_l8_n695(x)
- end
-end
-
-def fun_l7_n332(x)
- if (x < 1)
- fun_l8_n445(x)
- else
- fun_l8_n465(x)
- end
-end
-
-def fun_l7_n333(x)
- if (x < 1)
- fun_l8_n438(x)
- else
- fun_l8_n698(x)
- end
-end
-
-def fun_l7_n334(x)
- if (x < 1)
- fun_l8_n242(x)
- else
- fun_l8_n837(x)
- end
-end
-
-def fun_l7_n335(x)
- if (x < 1)
- fun_l8_n299(x)
- else
- fun_l8_n312(x)
- end
-end
-
-def fun_l7_n336(x)
- if (x < 1)
- fun_l8_n264(x)
- else
- fun_l8_n330(x)
- end
-end
-
-def fun_l7_n337(x)
- if (x < 1)
- fun_l8_n251(x)
- else
- fun_l8_n459(x)
- end
-end
-
-def fun_l7_n338(x)
- if (x < 1)
- fun_l8_n876(x)
- else
- fun_l8_n689(x)
- end
-end
-
-def fun_l7_n339(x)
- if (x < 1)
- fun_l8_n547(x)
- else
- fun_l8_n745(x)
- end
-end
-
-def fun_l7_n340(x)
- if (x < 1)
- fun_l8_n493(x)
- else
- fun_l8_n877(x)
- end
-end
-
-def fun_l7_n341(x)
- if (x < 1)
- fun_l8_n143(x)
- else
- fun_l8_n429(x)
- end
-end
-
-def fun_l7_n342(x)
- if (x < 1)
- fun_l8_n650(x)
- else
- fun_l8_n384(x)
- end
-end
-
-def fun_l7_n343(x)
- if (x < 1)
- fun_l8_n897(x)
- else
- fun_l8_n980(x)
- end
-end
-
-def fun_l7_n344(x)
- if (x < 1)
- fun_l8_n699(x)
- else
- fun_l8_n673(x)
- end
-end
-
-def fun_l7_n345(x)
- if (x < 1)
- fun_l8_n25(x)
- else
- fun_l8_n342(x)
- end
-end
-
-def fun_l7_n346(x)
- if (x < 1)
- fun_l8_n345(x)
- else
- fun_l8_n140(x)
- end
-end
-
-def fun_l7_n347(x)
- if (x < 1)
- fun_l8_n661(x)
- else
- fun_l8_n153(x)
- end
-end
-
-def fun_l7_n348(x)
- if (x < 1)
- fun_l8_n477(x)
- else
- fun_l8_n460(x)
- end
-end
-
-def fun_l7_n349(x)
- if (x < 1)
- fun_l8_n641(x)
- else
- fun_l8_n941(x)
- end
-end
-
-def fun_l7_n350(x)
- if (x < 1)
- fun_l8_n952(x)
- else
- fun_l8_n886(x)
- end
-end
-
-def fun_l7_n351(x)
- if (x < 1)
- fun_l8_n338(x)
- else
- fun_l8_n655(x)
- end
-end
-
-def fun_l7_n352(x)
- if (x < 1)
- fun_l8_n717(x)
- else
- fun_l8_n314(x)
- end
-end
-
-def fun_l7_n353(x)
- if (x < 1)
- fun_l8_n645(x)
- else
- fun_l8_n464(x)
- end
-end
-
-def fun_l7_n354(x)
- if (x < 1)
- fun_l8_n114(x)
- else
- fun_l8_n816(x)
- end
-end
-
-def fun_l7_n355(x)
- if (x < 1)
- fun_l8_n18(x)
- else
- fun_l8_n173(x)
- end
-end
-
-def fun_l7_n356(x)
- if (x < 1)
- fun_l8_n214(x)
- else
- fun_l8_n834(x)
- end
-end
-
-def fun_l7_n357(x)
- if (x < 1)
- fun_l8_n6(x)
- else
- fun_l8_n161(x)
- end
-end
-
-def fun_l7_n358(x)
- if (x < 1)
- fun_l8_n823(x)
- else
- fun_l8_n695(x)
- end
-end
-
-def fun_l7_n359(x)
- if (x < 1)
- fun_l8_n86(x)
- else
- fun_l8_n174(x)
- end
-end
-
-def fun_l7_n360(x)
- if (x < 1)
- fun_l8_n904(x)
- else
- fun_l8_n240(x)
- end
-end
-
-def fun_l7_n361(x)
- if (x < 1)
- fun_l8_n857(x)
- else
- fun_l8_n494(x)
- end
-end
-
-def fun_l7_n362(x)
- if (x < 1)
- fun_l8_n780(x)
- else
- fun_l8_n186(x)
- end
-end
-
-def fun_l7_n363(x)
- if (x < 1)
- fun_l8_n575(x)
- else
- fun_l8_n510(x)
- end
-end
-
-def fun_l7_n364(x)
- if (x < 1)
- fun_l8_n412(x)
- else
- fun_l8_n153(x)
- end
-end
-
-def fun_l7_n365(x)
- if (x < 1)
- fun_l8_n840(x)
- else
- fun_l8_n199(x)
- end
-end
-
-def fun_l7_n366(x)
- if (x < 1)
- fun_l8_n162(x)
- else
- fun_l8_n971(x)
- end
-end
-
-def fun_l7_n367(x)
- if (x < 1)
- fun_l8_n200(x)
- else
- fun_l8_n128(x)
- end
-end
-
-def fun_l7_n368(x)
- if (x < 1)
- fun_l8_n404(x)
- else
- fun_l8_n657(x)
- end
-end
-
-def fun_l7_n369(x)
- if (x < 1)
- fun_l8_n631(x)
- else
- fun_l8_n714(x)
- end
-end
-
-def fun_l7_n370(x)
- if (x < 1)
- fun_l8_n177(x)
- else
- fun_l8_n718(x)
- end
-end
-
-def fun_l7_n371(x)
- if (x < 1)
- fun_l8_n284(x)
- else
- fun_l8_n474(x)
- end
-end
-
-def fun_l7_n372(x)
- if (x < 1)
- fun_l8_n138(x)
- else
- fun_l8_n461(x)
- end
-end
-
-def fun_l7_n373(x)
- if (x < 1)
- fun_l8_n78(x)
- else
- fun_l8_n750(x)
- end
-end
-
-def fun_l7_n374(x)
- if (x < 1)
- fun_l8_n231(x)
- else
- fun_l8_n648(x)
- end
-end
-
-def fun_l7_n375(x)
- if (x < 1)
- fun_l8_n238(x)
- else
- fun_l8_n644(x)
- end
-end
-
-def fun_l7_n376(x)
- if (x < 1)
- fun_l8_n509(x)
- else
- fun_l8_n354(x)
- end
-end
-
-def fun_l7_n377(x)
- if (x < 1)
- fun_l8_n332(x)
- else
- fun_l8_n739(x)
- end
-end
-
-def fun_l7_n378(x)
- if (x < 1)
- fun_l8_n76(x)
- else
- fun_l8_n505(x)
- end
-end
-
-def fun_l7_n379(x)
- if (x < 1)
- fun_l8_n781(x)
- else
- fun_l8_n918(x)
- end
-end
-
-def fun_l7_n380(x)
- if (x < 1)
- fun_l8_n854(x)
- else
- fun_l8_n85(x)
- end
-end
-
-def fun_l7_n381(x)
- if (x < 1)
- fun_l8_n67(x)
- else
- fun_l8_n690(x)
- end
-end
-
-def fun_l7_n382(x)
- if (x < 1)
- fun_l8_n425(x)
- else
- fun_l8_n643(x)
- end
-end
-
-def fun_l7_n383(x)
- if (x < 1)
- fun_l8_n210(x)
- else
- fun_l8_n533(x)
- end
-end
-
-def fun_l7_n384(x)
- if (x < 1)
- fun_l8_n469(x)
- else
- fun_l8_n274(x)
- end
-end
-
-def fun_l7_n385(x)
- if (x < 1)
- fun_l8_n398(x)
- else
- fun_l8_n583(x)
- end
-end
-
-def fun_l7_n386(x)
- if (x < 1)
- fun_l8_n483(x)
- else
- fun_l8_n80(x)
- end
-end
-
-def fun_l7_n387(x)
- if (x < 1)
- fun_l8_n557(x)
- else
- fun_l8_n165(x)
- end
-end
-
-def fun_l7_n388(x)
- if (x < 1)
- fun_l8_n335(x)
- else
- fun_l8_n656(x)
- end
-end
-
-def fun_l7_n389(x)
- if (x < 1)
- fun_l8_n810(x)
- else
- fun_l8_n586(x)
- end
-end
-
-def fun_l7_n390(x)
- if (x < 1)
- fun_l8_n90(x)
- else
- fun_l8_n788(x)
- end
-end
-
-def fun_l7_n391(x)
- if (x < 1)
- fun_l8_n709(x)
- else
- fun_l8_n948(x)
- end
-end
-
-def fun_l7_n392(x)
- if (x < 1)
- fun_l8_n139(x)
- else
- fun_l8_n631(x)
- end
-end
-
-def fun_l7_n393(x)
- if (x < 1)
- fun_l8_n341(x)
- else
- fun_l8_n506(x)
- end
-end
-
-def fun_l7_n394(x)
- if (x < 1)
- fun_l8_n435(x)
- else
- fun_l8_n178(x)
- end
-end
-
-def fun_l7_n395(x)
- if (x < 1)
- fun_l8_n186(x)
- else
- fun_l8_n58(x)
- end
-end
-
-def fun_l7_n396(x)
- if (x < 1)
- fun_l8_n512(x)
- else
- fun_l8_n87(x)
- end
-end
-
-def fun_l7_n397(x)
- if (x < 1)
- fun_l8_n763(x)
- else
- fun_l8_n220(x)
- end
-end
-
-def fun_l7_n398(x)
- if (x < 1)
- fun_l8_n266(x)
- else
- fun_l8_n231(x)
- end
-end
-
-def fun_l7_n399(x)
- if (x < 1)
- fun_l8_n308(x)
- else
- fun_l8_n512(x)
- end
-end
-
-def fun_l7_n400(x)
- if (x < 1)
- fun_l8_n26(x)
- else
- fun_l8_n228(x)
- end
-end
-
-def fun_l7_n401(x)
- if (x < 1)
- fun_l8_n143(x)
- else
- fun_l8_n826(x)
- end
-end
-
-def fun_l7_n402(x)
- if (x < 1)
- fun_l8_n893(x)
- else
- fun_l8_n334(x)
- end
-end
-
-def fun_l7_n403(x)
- if (x < 1)
- fun_l8_n9(x)
- else
- fun_l8_n867(x)
- end
-end
-
-def fun_l7_n404(x)
- if (x < 1)
- fun_l8_n85(x)
- else
- fun_l8_n279(x)
- end
-end
-
-def fun_l7_n405(x)
- if (x < 1)
- fun_l8_n30(x)
- else
- fun_l8_n85(x)
- end
-end
-
-def fun_l7_n406(x)
- if (x < 1)
- fun_l8_n38(x)
- else
- fun_l8_n979(x)
- end
-end
-
-def fun_l7_n407(x)
- if (x < 1)
- fun_l8_n630(x)
- else
- fun_l8_n262(x)
- end
-end
-
-def fun_l7_n408(x)
- if (x < 1)
- fun_l8_n430(x)
- else
- fun_l8_n178(x)
- end
-end
-
-def fun_l7_n409(x)
- if (x < 1)
- fun_l8_n131(x)
- else
- fun_l8_n66(x)
- end
-end
-
-def fun_l7_n410(x)
- if (x < 1)
- fun_l8_n373(x)
- else
- fun_l8_n514(x)
- end
-end
-
-def fun_l7_n411(x)
- if (x < 1)
- fun_l8_n334(x)
- else
- fun_l8_n591(x)
- end
-end
-
-def fun_l7_n412(x)
- if (x < 1)
- fun_l8_n619(x)
- else
- fun_l8_n490(x)
- end
-end
-
-def fun_l7_n413(x)
- if (x < 1)
- fun_l8_n318(x)
- else
- fun_l8_n456(x)
- end
-end
-
-def fun_l7_n414(x)
- if (x < 1)
- fun_l8_n576(x)
- else
- fun_l8_n638(x)
- end
-end
-
-def fun_l7_n415(x)
- if (x < 1)
- fun_l8_n407(x)
- else
- fun_l8_n44(x)
- end
-end
-
-def fun_l7_n416(x)
- if (x < 1)
- fun_l8_n970(x)
- else
- fun_l8_n564(x)
- end
-end
-
-def fun_l7_n417(x)
- if (x < 1)
- fun_l8_n163(x)
- else
- fun_l8_n533(x)
- end
-end
-
-def fun_l7_n418(x)
- if (x < 1)
- fun_l8_n216(x)
- else
- fun_l8_n604(x)
- end
-end
-
-def fun_l7_n419(x)
- if (x < 1)
- fun_l8_n505(x)
- else
- fun_l8_n620(x)
- end
-end
-
-def fun_l7_n420(x)
- if (x < 1)
- fun_l8_n746(x)
- else
- fun_l8_n998(x)
- end
-end
-
-def fun_l7_n421(x)
- if (x < 1)
- fun_l8_n266(x)
- else
- fun_l8_n762(x)
- end
-end
-
-def fun_l7_n422(x)
- if (x < 1)
- fun_l8_n216(x)
- else
- fun_l8_n995(x)
- end
-end
-
-def fun_l7_n423(x)
- if (x < 1)
- fun_l8_n824(x)
- else
- fun_l8_n349(x)
- end
-end
-
-def fun_l7_n424(x)
- if (x < 1)
- fun_l8_n177(x)
- else
- fun_l8_n61(x)
- end
-end
-
-def fun_l7_n425(x)
- if (x < 1)
- fun_l8_n286(x)
- else
- fun_l8_n213(x)
- end
-end
-
-def fun_l7_n426(x)
- if (x < 1)
- fun_l8_n794(x)
- else
- fun_l8_n428(x)
- end
-end
-
-def fun_l7_n427(x)
- if (x < 1)
- fun_l8_n404(x)
- else
- fun_l8_n202(x)
- end
-end
-
-def fun_l7_n428(x)
- if (x < 1)
- fun_l8_n571(x)
- else
- fun_l8_n812(x)
- end
-end
-
-def fun_l7_n429(x)
- if (x < 1)
- fun_l8_n165(x)
- else
- fun_l8_n277(x)
- end
-end
-
-def fun_l7_n430(x)
- if (x < 1)
- fun_l8_n138(x)
- else
- fun_l8_n230(x)
- end
-end
-
-def fun_l7_n431(x)
- if (x < 1)
- fun_l8_n832(x)
- else
- fun_l8_n78(x)
- end
-end
-
-def fun_l7_n432(x)
- if (x < 1)
- fun_l8_n866(x)
- else
- fun_l8_n137(x)
- end
-end
-
-def fun_l7_n433(x)
- if (x < 1)
- fun_l8_n92(x)
- else
- fun_l8_n638(x)
- end
-end
-
-def fun_l7_n434(x)
- if (x < 1)
- fun_l8_n788(x)
- else
- fun_l8_n991(x)
- end
-end
-
-def fun_l7_n435(x)
- if (x < 1)
- fun_l8_n584(x)
- else
- fun_l8_n783(x)
- end
-end
-
-def fun_l7_n436(x)
- if (x < 1)
- fun_l8_n786(x)
- else
- fun_l8_n771(x)
- end
-end
-
-def fun_l7_n437(x)
- if (x < 1)
- fun_l8_n650(x)
- else
- fun_l8_n684(x)
- end
-end
-
-def fun_l7_n438(x)
- if (x < 1)
- fun_l8_n964(x)
- else
- fun_l8_n738(x)
- end
-end
-
-def fun_l7_n439(x)
- if (x < 1)
- fun_l8_n356(x)
- else
- fun_l8_n979(x)
- end
-end
-
-def fun_l7_n440(x)
- if (x < 1)
- fun_l8_n630(x)
- else
- fun_l8_n79(x)
- end
-end
-
-def fun_l7_n441(x)
- if (x < 1)
- fun_l8_n326(x)
- else
- fun_l8_n667(x)
- end
-end
-
-def fun_l7_n442(x)
- if (x < 1)
- fun_l8_n561(x)
- else
- fun_l8_n263(x)
- end
-end
-
-def fun_l7_n443(x)
- if (x < 1)
- fun_l8_n62(x)
- else
- fun_l8_n528(x)
- end
-end
-
-def fun_l7_n444(x)
- if (x < 1)
- fun_l8_n156(x)
- else
- fun_l8_n496(x)
- end
-end
-
-def fun_l7_n445(x)
- if (x < 1)
- fun_l8_n971(x)
- else
- fun_l8_n853(x)
- end
-end
-
-def fun_l7_n446(x)
- if (x < 1)
- fun_l8_n217(x)
- else
- fun_l8_n985(x)
- end
-end
-
-def fun_l7_n447(x)
- if (x < 1)
- fun_l8_n569(x)
- else
- fun_l8_n320(x)
- end
-end
-
-def fun_l7_n448(x)
- if (x < 1)
- fun_l8_n133(x)
- else
- fun_l8_n417(x)
- end
-end
-
-def fun_l7_n449(x)
- if (x < 1)
- fun_l8_n369(x)
- else
- fun_l8_n25(x)
- end
-end
-
-def fun_l7_n450(x)
- if (x < 1)
- fun_l8_n735(x)
- else
- fun_l8_n573(x)
- end
-end
-
-def fun_l7_n451(x)
- if (x < 1)
- fun_l8_n764(x)
- else
- fun_l8_n247(x)
- end
-end
-
-def fun_l7_n452(x)
- if (x < 1)
- fun_l8_n512(x)
- else
- fun_l8_n274(x)
- end
-end
-
-def fun_l7_n453(x)
- if (x < 1)
- fun_l8_n388(x)
- else
- fun_l8_n438(x)
- end
-end
-
-def fun_l7_n454(x)
- if (x < 1)
- fun_l8_n565(x)
- else
- fun_l8_n449(x)
- end
-end
-
-def fun_l7_n455(x)
- if (x < 1)
- fun_l8_n771(x)
- else
- fun_l8_n827(x)
- end
-end
-
-def fun_l7_n456(x)
- if (x < 1)
- fun_l8_n538(x)
- else
- fun_l8_n270(x)
- end
-end
-
-def fun_l7_n457(x)
- if (x < 1)
- fun_l8_n288(x)
- else
- fun_l8_n325(x)
- end
-end
-
-def fun_l7_n458(x)
- if (x < 1)
- fun_l8_n345(x)
- else
- fun_l8_n334(x)
- end
-end
-
-def fun_l7_n459(x)
- if (x < 1)
- fun_l8_n696(x)
- else
- fun_l8_n440(x)
- end
-end
-
-def fun_l7_n460(x)
- if (x < 1)
- fun_l8_n509(x)
- else
- fun_l8_n580(x)
- end
-end
-
-def fun_l7_n461(x)
- if (x < 1)
- fun_l8_n254(x)
- else
- fun_l8_n162(x)
- end
-end
-
-def fun_l7_n462(x)
- if (x < 1)
- fun_l8_n541(x)
- else
- fun_l8_n493(x)
- end
-end
-
-def fun_l7_n463(x)
- if (x < 1)
- fun_l8_n371(x)
- else
- fun_l8_n302(x)
- end
-end
-
-def fun_l7_n464(x)
- if (x < 1)
- fun_l8_n44(x)
- else
- fun_l8_n677(x)
- end
-end
-
-def fun_l7_n465(x)
- if (x < 1)
- fun_l8_n312(x)
- else
- fun_l8_n716(x)
- end
-end
-
-def fun_l7_n466(x)
- if (x < 1)
- fun_l8_n252(x)
- else
- fun_l8_n827(x)
- end
-end
-
-def fun_l7_n467(x)
- if (x < 1)
- fun_l8_n871(x)
- else
- fun_l8_n962(x)
- end
-end
-
-def fun_l7_n468(x)
- if (x < 1)
- fun_l8_n323(x)
- else
- fun_l8_n813(x)
- end
-end
-
-def fun_l7_n469(x)
- if (x < 1)
- fun_l8_n100(x)
- else
- fun_l8_n905(x)
- end
-end
-
-def fun_l7_n470(x)
- if (x < 1)
- fun_l8_n95(x)
- else
- fun_l8_n96(x)
- end
-end
-
-def fun_l7_n471(x)
- if (x < 1)
- fun_l8_n398(x)
- else
- fun_l8_n40(x)
- end
-end
-
-def fun_l7_n472(x)
- if (x < 1)
- fun_l8_n280(x)
- else
- fun_l8_n34(x)
- end
-end
-
-def fun_l7_n473(x)
- if (x < 1)
- fun_l8_n262(x)
- else
- fun_l8_n399(x)
- end
-end
-
-def fun_l7_n474(x)
- if (x < 1)
- fun_l8_n126(x)
- else
- fun_l8_n208(x)
- end
-end
-
-def fun_l7_n475(x)
- if (x < 1)
- fun_l8_n371(x)
- else
- fun_l8_n697(x)
- end
-end
-
-def fun_l7_n476(x)
- if (x < 1)
- fun_l8_n617(x)
- else
- fun_l8_n822(x)
- end
-end
-
-def fun_l7_n477(x)
- if (x < 1)
- fun_l8_n24(x)
- else
- fun_l8_n300(x)
- end
-end
-
-def fun_l7_n478(x)
- if (x < 1)
- fun_l8_n864(x)
- else
- fun_l8_n357(x)
- end
-end
-
-def fun_l7_n479(x)
- if (x < 1)
- fun_l8_n231(x)
- else
- fun_l8_n892(x)
- end
-end
-
-def fun_l7_n480(x)
- if (x < 1)
- fun_l8_n200(x)
- else
- fun_l8_n49(x)
- end
-end
-
-def fun_l7_n481(x)
- if (x < 1)
- fun_l8_n43(x)
- else
- fun_l8_n86(x)
- end
-end
-
-def fun_l7_n482(x)
- if (x < 1)
- fun_l8_n617(x)
- else
- fun_l8_n752(x)
- end
-end
-
-def fun_l7_n483(x)
- if (x < 1)
- fun_l8_n65(x)
- else
- fun_l8_n796(x)
- end
-end
-
-def fun_l7_n484(x)
- if (x < 1)
- fun_l8_n960(x)
- else
- fun_l8_n174(x)
- end
-end
-
-def fun_l7_n485(x)
- if (x < 1)
- fun_l8_n383(x)
- else
- fun_l8_n50(x)
- end
-end
-
-def fun_l7_n486(x)
- if (x < 1)
- fun_l8_n269(x)
- else
- fun_l8_n413(x)
- end
-end
-
-def fun_l7_n487(x)
- if (x < 1)
- fun_l8_n762(x)
- else
- fun_l8_n368(x)
- end
-end
-
-def fun_l7_n488(x)
- if (x < 1)
- fun_l8_n635(x)
- else
- fun_l8_n900(x)
- end
-end
-
-def fun_l7_n489(x)
- if (x < 1)
- fun_l8_n707(x)
- else
- fun_l8_n376(x)
- end
-end
-
-def fun_l7_n490(x)
- if (x < 1)
- fun_l8_n215(x)
- else
- fun_l8_n255(x)
- end
-end
-
-def fun_l7_n491(x)
- if (x < 1)
- fun_l8_n730(x)
- else
- fun_l8_n489(x)
- end
-end
-
-def fun_l7_n492(x)
- if (x < 1)
- fun_l8_n896(x)
- else
- fun_l8_n501(x)
- end
-end
-
-def fun_l7_n493(x)
- if (x < 1)
- fun_l8_n359(x)
- else
- fun_l8_n876(x)
- end
-end
-
-def fun_l7_n494(x)
- if (x < 1)
- fun_l8_n13(x)
- else
- fun_l8_n669(x)
- end
-end
-
-def fun_l7_n495(x)
- if (x < 1)
- fun_l8_n442(x)
- else
- fun_l8_n975(x)
- end
-end
-
-def fun_l7_n496(x)
- if (x < 1)
- fun_l8_n349(x)
- else
- fun_l8_n240(x)
- end
-end
-
-def fun_l7_n497(x)
- if (x < 1)
- fun_l8_n174(x)
- else
- fun_l8_n416(x)
- end
-end
-
-def fun_l7_n498(x)
- if (x < 1)
- fun_l8_n141(x)
- else
- fun_l8_n231(x)
- end
-end
-
-def fun_l7_n499(x)
- if (x < 1)
- fun_l8_n868(x)
- else
- fun_l8_n370(x)
- end
-end
-
-def fun_l7_n500(x)
- if (x < 1)
- fun_l8_n888(x)
- else
- fun_l8_n525(x)
- end
-end
-
-def fun_l7_n501(x)
- if (x < 1)
- fun_l8_n418(x)
- else
- fun_l8_n402(x)
- end
-end
-
-def fun_l7_n502(x)
- if (x < 1)
- fun_l8_n910(x)
- else
- fun_l8_n308(x)
- end
-end
-
-def fun_l7_n503(x)
- if (x < 1)
- fun_l8_n435(x)
- else
- fun_l8_n106(x)
- end
-end
-
-def fun_l7_n504(x)
- if (x < 1)
- fun_l8_n716(x)
- else
- fun_l8_n768(x)
- end
-end
-
-def fun_l7_n505(x)
- if (x < 1)
- fun_l8_n690(x)
- else
- fun_l8_n382(x)
- end
-end
-
-def fun_l7_n506(x)
- if (x < 1)
- fun_l8_n786(x)
- else
- fun_l8_n270(x)
- end
-end
-
-def fun_l7_n507(x)
- if (x < 1)
- fun_l8_n317(x)
- else
- fun_l8_n802(x)
- end
-end
-
-def fun_l7_n508(x)
- if (x < 1)
- fun_l8_n423(x)
- else
- fun_l8_n91(x)
- end
-end
-
-def fun_l7_n509(x)
- if (x < 1)
- fun_l8_n853(x)
- else
- fun_l8_n434(x)
- end
-end
-
-def fun_l7_n510(x)
- if (x < 1)
- fun_l8_n691(x)
- else
- fun_l8_n458(x)
- end
-end
-
-def fun_l7_n511(x)
- if (x < 1)
- fun_l8_n806(x)
- else
- fun_l8_n989(x)
- end
-end
-
-def fun_l7_n512(x)
- if (x < 1)
- fun_l8_n696(x)
- else
- fun_l8_n234(x)
- end
-end
-
-def fun_l7_n513(x)
- if (x < 1)
- fun_l8_n370(x)
- else
- fun_l8_n440(x)
- end
-end
-
-def fun_l7_n514(x)
- if (x < 1)
- fun_l8_n889(x)
- else
- fun_l8_n306(x)
- end
-end
-
-def fun_l7_n515(x)
- if (x < 1)
- fun_l8_n147(x)
- else
- fun_l8_n527(x)
- end
-end
-
-def fun_l7_n516(x)
- if (x < 1)
- fun_l8_n18(x)
- else
- fun_l8_n120(x)
- end
-end
-
-def fun_l7_n517(x)
- if (x < 1)
- fun_l8_n93(x)
- else
- fun_l8_n861(x)
- end
-end
-
-def fun_l7_n518(x)
- if (x < 1)
- fun_l8_n954(x)
- else
- fun_l8_n864(x)
- end
-end
-
-def fun_l7_n519(x)
- if (x < 1)
- fun_l8_n886(x)
- else
- fun_l8_n227(x)
- end
-end
-
-def fun_l7_n520(x)
- if (x < 1)
- fun_l8_n525(x)
- else
- fun_l8_n73(x)
- end
-end
-
-def fun_l7_n521(x)
- if (x < 1)
- fun_l8_n550(x)
- else
- fun_l8_n638(x)
- end
-end
-
-def fun_l7_n522(x)
- if (x < 1)
- fun_l8_n36(x)
- else
- fun_l8_n511(x)
- end
-end
-
-def fun_l7_n523(x)
- if (x < 1)
- fun_l8_n346(x)
- else
- fun_l8_n257(x)
- end
-end
-
-def fun_l7_n524(x)
- if (x < 1)
- fun_l8_n973(x)
- else
- fun_l8_n704(x)
- end
-end
-
-def fun_l7_n525(x)
- if (x < 1)
- fun_l8_n21(x)
- else
- fun_l8_n354(x)
- end
-end
-
-def fun_l7_n526(x)
- if (x < 1)
- fun_l8_n394(x)
- else
- fun_l8_n461(x)
- end
-end
-
-def fun_l7_n527(x)
- if (x < 1)
- fun_l8_n444(x)
- else
- fun_l8_n333(x)
- end
-end
-
-def fun_l7_n528(x)
- if (x < 1)
- fun_l8_n743(x)
- else
- fun_l8_n579(x)
- end
-end
-
-def fun_l7_n529(x)
- if (x < 1)
- fun_l8_n135(x)
- else
- fun_l8_n69(x)
- end
-end
-
-def fun_l7_n530(x)
- if (x < 1)
- fun_l8_n66(x)
- else
- fun_l8_n6(x)
- end
-end
-
-def fun_l7_n531(x)
- if (x < 1)
- fun_l8_n84(x)
- else
- fun_l8_n392(x)
- end
-end
-
-def fun_l7_n532(x)
- if (x < 1)
- fun_l8_n178(x)
- else
- fun_l8_n227(x)
- end
-end
-
-def fun_l7_n533(x)
- if (x < 1)
- fun_l8_n695(x)
- else
- fun_l8_n696(x)
- end
-end
-
-def fun_l7_n534(x)
- if (x < 1)
- fun_l8_n266(x)
- else
- fun_l8_n8(x)
- end
-end
-
-def fun_l7_n535(x)
- if (x < 1)
- fun_l8_n806(x)
- else
- fun_l8_n878(x)
- end
-end
-
-def fun_l7_n536(x)
- if (x < 1)
- fun_l8_n775(x)
- else
- fun_l8_n778(x)
- end
-end
-
-def fun_l7_n537(x)
- if (x < 1)
- fun_l8_n133(x)
- else
- fun_l8_n552(x)
- end
-end
-
-def fun_l7_n538(x)
- if (x < 1)
- fun_l8_n71(x)
- else
- fun_l8_n786(x)
- end
-end
-
-def fun_l7_n539(x)
- if (x < 1)
- fun_l8_n679(x)
- else
- fun_l8_n407(x)
- end
-end
-
-def fun_l7_n540(x)
- if (x < 1)
- fun_l8_n532(x)
- else
- fun_l8_n75(x)
- end
-end
-
-def fun_l7_n541(x)
- if (x < 1)
- fun_l8_n367(x)
- else
- fun_l8_n505(x)
- end
-end
-
-def fun_l7_n542(x)
- if (x < 1)
- fun_l8_n74(x)
- else
- fun_l8_n374(x)
- end
-end
-
-def fun_l7_n543(x)
- if (x < 1)
- fun_l8_n207(x)
- else
- fun_l8_n874(x)
- end
-end
-
-def fun_l7_n544(x)
- if (x < 1)
- fun_l8_n774(x)
- else
- fun_l8_n750(x)
- end
-end
-
-def fun_l7_n545(x)
- if (x < 1)
- fun_l8_n503(x)
- else
- fun_l8_n933(x)
- end
-end
-
-def fun_l7_n546(x)
- if (x < 1)
- fun_l8_n125(x)
- else
- fun_l8_n570(x)
- end
-end
-
-def fun_l7_n547(x)
- if (x < 1)
- fun_l8_n743(x)
- else
- fun_l8_n506(x)
- end
-end
-
-def fun_l7_n548(x)
- if (x < 1)
- fun_l8_n297(x)
- else
- fun_l8_n70(x)
- end
-end
-
-def fun_l7_n549(x)
- if (x < 1)
- fun_l8_n692(x)
- else
- fun_l8_n652(x)
- end
-end
-
-def fun_l7_n550(x)
- if (x < 1)
- fun_l8_n446(x)
- else
- fun_l8_n432(x)
- end
-end
-
-def fun_l7_n551(x)
- if (x < 1)
- fun_l8_n947(x)
- else
- fun_l8_n429(x)
- end
-end
-
-def fun_l7_n552(x)
- if (x < 1)
- fun_l8_n417(x)
- else
- fun_l8_n136(x)
- end
-end
-
-def fun_l7_n553(x)
- if (x < 1)
- fun_l8_n236(x)
- else
- fun_l8_n291(x)
- end
-end
-
-def fun_l7_n554(x)
- if (x < 1)
- fun_l8_n60(x)
- else
- fun_l8_n328(x)
- end
-end
-
-def fun_l7_n555(x)
- if (x < 1)
- fun_l8_n97(x)
- else
- fun_l8_n461(x)
- end
-end
-
-def fun_l7_n556(x)
- if (x < 1)
- fun_l8_n158(x)
- else
- fun_l8_n603(x)
- end
-end
-
-def fun_l7_n557(x)
- if (x < 1)
- fun_l8_n328(x)
- else
- fun_l8_n725(x)
- end
-end
-
-def fun_l7_n558(x)
- if (x < 1)
- fun_l8_n25(x)
- else
- fun_l8_n933(x)
- end
-end
-
-def fun_l7_n559(x)
- if (x < 1)
- fun_l8_n352(x)
- else
- fun_l8_n552(x)
- end
-end
-
-def fun_l7_n560(x)
- if (x < 1)
- fun_l8_n427(x)
- else
- fun_l8_n91(x)
- end
-end
-
-def fun_l7_n561(x)
- if (x < 1)
- fun_l8_n293(x)
- else
- fun_l8_n749(x)
- end
-end
-
-def fun_l7_n562(x)
- if (x < 1)
- fun_l8_n672(x)
- else
- fun_l8_n905(x)
- end
-end
-
-def fun_l7_n563(x)
- if (x < 1)
- fun_l8_n201(x)
- else
- fun_l8_n668(x)
- end
-end
-
-def fun_l7_n564(x)
- if (x < 1)
- fun_l8_n109(x)
- else
- fun_l8_n401(x)
- end
-end
-
-def fun_l7_n565(x)
- if (x < 1)
- fun_l8_n678(x)
- else
- fun_l8_n890(x)
- end
-end
-
-def fun_l7_n566(x)
- if (x < 1)
- fun_l8_n876(x)
- else
- fun_l8_n129(x)
- end
-end
-
-def fun_l7_n567(x)
- if (x < 1)
- fun_l8_n908(x)
- else
- fun_l8_n979(x)
- end
-end
-
-def fun_l7_n568(x)
- if (x < 1)
- fun_l8_n899(x)
- else
- fun_l8_n792(x)
- end
-end
-
-def fun_l7_n569(x)
- if (x < 1)
- fun_l8_n742(x)
- else
- fun_l8_n441(x)
- end
-end
-
-def fun_l7_n570(x)
- if (x < 1)
- fun_l8_n338(x)
- else
- fun_l8_n877(x)
- end
-end
-
-def fun_l7_n571(x)
- if (x < 1)
- fun_l8_n684(x)
- else
- fun_l8_n167(x)
- end
-end
-
-def fun_l7_n572(x)
- if (x < 1)
- fun_l8_n366(x)
- else
- fun_l8_n239(x)
- end
-end
-
-def fun_l7_n573(x)
- if (x < 1)
- fun_l8_n925(x)
- else
- fun_l8_n648(x)
- end
-end
-
-def fun_l7_n574(x)
- if (x < 1)
- fun_l8_n825(x)
- else
- fun_l8_n811(x)
- end
-end
-
-def fun_l7_n575(x)
- if (x < 1)
- fun_l8_n348(x)
- else
- fun_l8_n994(x)
- end
-end
-
-def fun_l7_n576(x)
- if (x < 1)
- fun_l8_n721(x)
- else
- fun_l8_n584(x)
- end
-end
-
-def fun_l7_n577(x)
- if (x < 1)
- fun_l8_n827(x)
- else
- fun_l8_n968(x)
- end
-end
-
-def fun_l7_n578(x)
- if (x < 1)
- fun_l8_n649(x)
- else
- fun_l8_n684(x)
- end
-end
-
-def fun_l7_n579(x)
- if (x < 1)
- fun_l8_n43(x)
- else
- fun_l8_n183(x)
- end
-end
-
-def fun_l7_n580(x)
- if (x < 1)
- fun_l8_n516(x)
- else
- fun_l8_n893(x)
- end
-end
-
-def fun_l7_n581(x)
- if (x < 1)
- fun_l8_n334(x)
- else
- fun_l8_n677(x)
- end
-end
-
-def fun_l7_n582(x)
- if (x < 1)
- fun_l8_n731(x)
- else
- fun_l8_n922(x)
- end
-end
-
-def fun_l7_n583(x)
- if (x < 1)
- fun_l8_n653(x)
- else
- fun_l8_n403(x)
- end
-end
-
-def fun_l7_n584(x)
- if (x < 1)
- fun_l8_n534(x)
- else
- fun_l8_n155(x)
- end
-end
-
-def fun_l7_n585(x)
- if (x < 1)
- fun_l8_n1(x)
- else
- fun_l8_n903(x)
- end
-end
-
-def fun_l7_n586(x)
- if (x < 1)
- fun_l8_n956(x)
- else
- fun_l8_n182(x)
- end
-end
-
-def fun_l7_n587(x)
- if (x < 1)
- fun_l8_n590(x)
- else
- fun_l8_n707(x)
- end
-end
-
-def fun_l7_n588(x)
- if (x < 1)
- fun_l8_n74(x)
- else
- fun_l8_n612(x)
- end
-end
-
-def fun_l7_n589(x)
- if (x < 1)
- fun_l8_n17(x)
- else
- fun_l8_n193(x)
- end
-end
-
-def fun_l7_n590(x)
- if (x < 1)
- fun_l8_n650(x)
- else
- fun_l8_n863(x)
- end
-end
-
-def fun_l7_n591(x)
- if (x < 1)
- fun_l8_n974(x)
- else
- fun_l8_n932(x)
- end
-end
-
-def fun_l7_n592(x)
- if (x < 1)
- fun_l8_n17(x)
- else
- fun_l8_n537(x)
- end
-end
-
-def fun_l7_n593(x)
- if (x < 1)
- fun_l8_n118(x)
- else
- fun_l8_n588(x)
- end
-end
-
-def fun_l7_n594(x)
- if (x < 1)
- fun_l8_n241(x)
- else
- fun_l8_n929(x)
- end
-end
-
-def fun_l7_n595(x)
- if (x < 1)
- fun_l8_n667(x)
- else
- fun_l8_n251(x)
- end
-end
-
-def fun_l7_n596(x)
- if (x < 1)
- fun_l8_n473(x)
- else
- fun_l8_n189(x)
- end
-end
-
-def fun_l7_n597(x)
- if (x < 1)
- fun_l8_n687(x)
- else
- fun_l8_n666(x)
- end
-end
-
-def fun_l7_n598(x)
- if (x < 1)
- fun_l8_n700(x)
- else
- fun_l8_n294(x)
- end
-end
-
-def fun_l7_n599(x)
- if (x < 1)
- fun_l8_n144(x)
- else
- fun_l8_n656(x)
- end
-end
-
-def fun_l7_n600(x)
- if (x < 1)
- fun_l8_n375(x)
- else
- fun_l8_n571(x)
- end
-end
-
-def fun_l7_n601(x)
- if (x < 1)
- fun_l8_n506(x)
- else
- fun_l8_n212(x)
- end
-end
-
-def fun_l7_n602(x)
- if (x < 1)
- fun_l8_n770(x)
- else
- fun_l8_n491(x)
- end
-end
-
-def fun_l7_n603(x)
- if (x < 1)
- fun_l8_n325(x)
- else
- fun_l8_n660(x)
- end
-end
-
-def fun_l7_n604(x)
- if (x < 1)
- fun_l8_n255(x)
- else
- fun_l8_n842(x)
- end
-end
-
-def fun_l7_n605(x)
- if (x < 1)
- fun_l8_n149(x)
- else
- fun_l8_n648(x)
- end
-end
-
-def fun_l7_n606(x)
- if (x < 1)
- fun_l8_n845(x)
- else
- fun_l8_n248(x)
- end
-end
-
-def fun_l7_n607(x)
- if (x < 1)
- fun_l8_n484(x)
- else
- fun_l8_n333(x)
- end
-end
-
-def fun_l7_n608(x)
- if (x < 1)
- fun_l8_n287(x)
- else
- fun_l8_n341(x)
- end
-end
-
-def fun_l7_n609(x)
- if (x < 1)
- fun_l8_n873(x)
- else
- fun_l8_n113(x)
- end
-end
-
-def fun_l7_n610(x)
- if (x < 1)
- fun_l8_n45(x)
- else
- fun_l8_n994(x)
- end
-end
-
-def fun_l7_n611(x)
- if (x < 1)
- fun_l8_n427(x)
- else
- fun_l8_n359(x)
- end
-end
-
-def fun_l7_n612(x)
- if (x < 1)
- fun_l8_n433(x)
- else
- fun_l8_n189(x)
- end
-end
-
-def fun_l7_n613(x)
- if (x < 1)
- fun_l8_n25(x)
- else
- fun_l8_n564(x)
- end
-end
-
-def fun_l7_n614(x)
- if (x < 1)
- fun_l8_n789(x)
- else
- fun_l8_n441(x)
- end
-end
-
-def fun_l7_n615(x)
- if (x < 1)
- fun_l8_n353(x)
- else
- fun_l8_n217(x)
- end
-end
-
-def fun_l7_n616(x)
- if (x < 1)
- fun_l8_n334(x)
- else
- fun_l8_n559(x)
- end
-end
-
-def fun_l7_n617(x)
- if (x < 1)
- fun_l8_n709(x)
- else
- fun_l8_n764(x)
- end
-end
-
-def fun_l7_n618(x)
- if (x < 1)
- fun_l8_n710(x)
- else
- fun_l8_n307(x)
- end
-end
-
-def fun_l7_n619(x)
- if (x < 1)
- fun_l8_n246(x)
- else
- fun_l8_n88(x)
- end
-end
-
-def fun_l7_n620(x)
- if (x < 1)
- fun_l8_n259(x)
- else
- fun_l8_n813(x)
- end
-end
-
-def fun_l7_n621(x)
- if (x < 1)
- fun_l8_n250(x)
- else
- fun_l8_n566(x)
- end
-end
-
-def fun_l7_n622(x)
- if (x < 1)
- fun_l8_n223(x)
- else
- fun_l8_n627(x)
- end
-end
-
-def fun_l7_n623(x)
- if (x < 1)
- fun_l8_n345(x)
- else
- fun_l8_n604(x)
- end
-end
-
-def fun_l7_n624(x)
- if (x < 1)
- fun_l8_n405(x)
- else
- fun_l8_n850(x)
- end
-end
-
-def fun_l7_n625(x)
- if (x < 1)
- fun_l8_n278(x)
- else
- fun_l8_n643(x)
- end
-end
-
-def fun_l7_n626(x)
- if (x < 1)
- fun_l8_n359(x)
- else
- fun_l8_n167(x)
- end
-end
-
-def fun_l7_n627(x)
- if (x < 1)
- fun_l8_n589(x)
- else
- fun_l8_n656(x)
- end
-end
-
-def fun_l7_n628(x)
- if (x < 1)
- fun_l8_n612(x)
- else
- fun_l8_n227(x)
- end
-end
-
-def fun_l7_n629(x)
- if (x < 1)
- fun_l8_n845(x)
- else
- fun_l8_n469(x)
- end
-end
-
-def fun_l7_n630(x)
- if (x < 1)
- fun_l8_n833(x)
- else
- fun_l8_n92(x)
- end
-end
-
-def fun_l7_n631(x)
- if (x < 1)
- fun_l8_n411(x)
- else
- fun_l8_n815(x)
- end
-end
-
-def fun_l7_n632(x)
- if (x < 1)
- fun_l8_n844(x)
- else
- fun_l8_n349(x)
- end
-end
-
-def fun_l7_n633(x)
- if (x < 1)
- fun_l8_n333(x)
- else
- fun_l8_n468(x)
- end
-end
-
-def fun_l7_n634(x)
- if (x < 1)
- fun_l8_n12(x)
- else
- fun_l8_n727(x)
- end
-end
-
-def fun_l7_n635(x)
- if (x < 1)
- fun_l8_n65(x)
- else
- fun_l8_n729(x)
- end
-end
-
-def fun_l7_n636(x)
- if (x < 1)
- fun_l8_n54(x)
- else
- fun_l8_n524(x)
- end
-end
-
-def fun_l7_n637(x)
- if (x < 1)
- fun_l8_n547(x)
- else
- fun_l8_n220(x)
- end
-end
-
-def fun_l7_n638(x)
- if (x < 1)
- fun_l8_n679(x)
- else
- fun_l8_n693(x)
- end
-end
-
-def fun_l7_n639(x)
- if (x < 1)
- fun_l8_n428(x)
- else
- fun_l8_n938(x)
- end
-end
-
-def fun_l7_n640(x)
- if (x < 1)
- fun_l8_n779(x)
- else
- fun_l8_n323(x)
- end
-end
-
-def fun_l7_n641(x)
- if (x < 1)
- fun_l8_n254(x)
- else
- fun_l8_n443(x)
- end
-end
-
-def fun_l7_n642(x)
- if (x < 1)
- fun_l8_n623(x)
- else
- fun_l8_n361(x)
- end
-end
-
-def fun_l7_n643(x)
- if (x < 1)
- fun_l8_n524(x)
- else
- fun_l8_n19(x)
- end
-end
-
-def fun_l7_n644(x)
- if (x < 1)
- fun_l8_n77(x)
- else
- fun_l8_n696(x)
- end
-end
-
-def fun_l7_n645(x)
- if (x < 1)
- fun_l8_n468(x)
- else
- fun_l8_n819(x)
- end
-end
-
-def fun_l7_n646(x)
- if (x < 1)
- fun_l8_n319(x)
- else
- fun_l8_n921(x)
- end
-end
-
-def fun_l7_n647(x)
- if (x < 1)
- fun_l8_n681(x)
- else
- fun_l8_n925(x)
- end
-end
-
-def fun_l7_n648(x)
- if (x < 1)
- fun_l8_n146(x)
- else
- fun_l8_n451(x)
- end
-end
-
-def fun_l7_n649(x)
- if (x < 1)
- fun_l8_n871(x)
- else
- fun_l8_n707(x)
- end
-end
-
-def fun_l7_n650(x)
- if (x < 1)
- fun_l8_n782(x)
- else
- fun_l8_n556(x)
- end
-end
-
-def fun_l7_n651(x)
- if (x < 1)
- fun_l8_n721(x)
- else
- fun_l8_n80(x)
- end
-end
-
-def fun_l7_n652(x)
- if (x < 1)
- fun_l8_n110(x)
- else
- fun_l8_n529(x)
- end
-end
-
-def fun_l7_n653(x)
- if (x < 1)
- fun_l8_n107(x)
- else
- fun_l8_n876(x)
- end
-end
-
-def fun_l7_n654(x)
- if (x < 1)
- fun_l8_n902(x)
- else
- fun_l8_n45(x)
- end
-end
-
-def fun_l7_n655(x)
- if (x < 1)
- fun_l8_n714(x)
- else
- fun_l8_n939(x)
- end
-end
-
-def fun_l7_n656(x)
- if (x < 1)
- fun_l8_n761(x)
- else
- fun_l8_n940(x)
- end
-end
-
-def fun_l7_n657(x)
- if (x < 1)
- fun_l8_n165(x)
- else
- fun_l8_n779(x)
- end
-end
-
-def fun_l7_n658(x)
- if (x < 1)
- fun_l8_n848(x)
- else
- fun_l8_n307(x)
- end
-end
-
-def fun_l7_n659(x)
- if (x < 1)
- fun_l8_n414(x)
- else
- fun_l8_n855(x)
- end
-end
-
-def fun_l7_n660(x)
- if (x < 1)
- fun_l8_n963(x)
- else
- fun_l8_n887(x)
- end
-end
-
-def fun_l7_n661(x)
- if (x < 1)
- fun_l8_n71(x)
- else
- fun_l8_n249(x)
- end
-end
-
-def fun_l7_n662(x)
- if (x < 1)
- fun_l8_n426(x)
- else
- fun_l8_n977(x)
- end
-end
-
-def fun_l7_n663(x)
- if (x < 1)
- fun_l8_n924(x)
- else
- fun_l8_n606(x)
- end
-end
-
-def fun_l7_n664(x)
- if (x < 1)
- fun_l8_n88(x)
- else
- fun_l8_n718(x)
- end
-end
-
-def fun_l7_n665(x)
- if (x < 1)
- fun_l8_n611(x)
- else
- fun_l8_n898(x)
- end
-end
-
-def fun_l7_n666(x)
- if (x < 1)
- fun_l8_n656(x)
- else
- fun_l8_n116(x)
- end
-end
-
-def fun_l7_n667(x)
- if (x < 1)
- fun_l8_n196(x)
- else
- fun_l8_n688(x)
- end
-end
-
-def fun_l7_n668(x)
- if (x < 1)
- fun_l8_n873(x)
- else
- fun_l8_n561(x)
- end
-end
-
-def fun_l7_n669(x)
- if (x < 1)
- fun_l8_n947(x)
- else
- fun_l8_n64(x)
- end
-end
-
-def fun_l7_n670(x)
- if (x < 1)
- fun_l8_n309(x)
- else
- fun_l8_n708(x)
- end
-end
-
-def fun_l7_n671(x)
- if (x < 1)
- fun_l8_n699(x)
- else
- fun_l8_n218(x)
- end
-end
-
-def fun_l7_n672(x)
- if (x < 1)
- fun_l8_n930(x)
- else
- fun_l8_n387(x)
- end
-end
-
-def fun_l7_n673(x)
- if (x < 1)
- fun_l8_n598(x)
- else
- fun_l8_n245(x)
- end
-end
-
-def fun_l7_n674(x)
- if (x < 1)
- fun_l8_n411(x)
- else
- fun_l8_n236(x)
- end
-end
-
-def fun_l7_n675(x)
- if (x < 1)
- fun_l8_n193(x)
- else
- fun_l8_n61(x)
- end
-end
-
-def fun_l7_n676(x)
- if (x < 1)
- fun_l8_n2(x)
- else
- fun_l8_n253(x)
- end
-end
-
-def fun_l7_n677(x)
- if (x < 1)
- fun_l8_n839(x)
- else
- fun_l8_n919(x)
- end
-end
-
-def fun_l7_n678(x)
- if (x < 1)
- fun_l8_n643(x)
- else
- fun_l8_n245(x)
- end
-end
-
-def fun_l7_n679(x)
- if (x < 1)
- fun_l8_n625(x)
- else
- fun_l8_n690(x)
- end
-end
-
-def fun_l7_n680(x)
- if (x < 1)
- fun_l8_n899(x)
- else
- fun_l8_n307(x)
- end
-end
-
-def fun_l7_n681(x)
- if (x < 1)
- fun_l8_n894(x)
- else
- fun_l8_n92(x)
- end
-end
-
-def fun_l7_n682(x)
- if (x < 1)
- fun_l8_n139(x)
- else
- fun_l8_n252(x)
- end
-end
-
-def fun_l7_n683(x)
- if (x < 1)
- fun_l8_n978(x)
- else
- fun_l8_n84(x)
- end
-end
-
-def fun_l7_n684(x)
- if (x < 1)
- fun_l8_n426(x)
- else
- fun_l8_n329(x)
- end
-end
-
-def fun_l7_n685(x)
- if (x < 1)
- fun_l8_n241(x)
- else
- fun_l8_n780(x)
- end
-end
-
-def fun_l7_n686(x)
- if (x < 1)
- fun_l8_n793(x)
- else
- fun_l8_n534(x)
- end
-end
-
-def fun_l7_n687(x)
- if (x < 1)
- fun_l8_n409(x)
- else
- fun_l8_n152(x)
- end
-end
-
-def fun_l7_n688(x)
- if (x < 1)
- fun_l8_n838(x)
- else
- fun_l8_n555(x)
- end
-end
-
-def fun_l7_n689(x)
- if (x < 1)
- fun_l8_n634(x)
- else
- fun_l8_n27(x)
- end
-end
-
-def fun_l7_n690(x)
- if (x < 1)
- fun_l8_n629(x)
- else
- fun_l8_n448(x)
- end
-end
-
-def fun_l7_n691(x)
- if (x < 1)
- fun_l8_n487(x)
- else
- fun_l8_n293(x)
- end
-end
-
-def fun_l7_n692(x)
- if (x < 1)
- fun_l8_n739(x)
- else
- fun_l8_n472(x)
- end
-end
-
-def fun_l7_n693(x)
- if (x < 1)
- fun_l8_n619(x)
- else
- fun_l8_n642(x)
- end
-end
-
-def fun_l7_n694(x)
- if (x < 1)
- fun_l8_n123(x)
- else
- fun_l8_n880(x)
- end
-end
-
-def fun_l7_n695(x)
- if (x < 1)
- fun_l8_n695(x)
- else
- fun_l8_n364(x)
- end
-end
-
-def fun_l7_n696(x)
- if (x < 1)
- fun_l8_n610(x)
- else
- fun_l8_n798(x)
- end
-end
-
-def fun_l7_n697(x)
- if (x < 1)
- fun_l8_n396(x)
- else
- fun_l8_n704(x)
- end
-end
-
-def fun_l7_n698(x)
- if (x < 1)
- fun_l8_n759(x)
- else
- fun_l8_n880(x)
- end
-end
-
-def fun_l7_n699(x)
- if (x < 1)
- fun_l8_n885(x)
- else
- fun_l8_n139(x)
- end
-end
-
-def fun_l7_n700(x)
- if (x < 1)
- fun_l8_n244(x)
- else
- fun_l8_n307(x)
- end
-end
-
-def fun_l7_n701(x)
- if (x < 1)
- fun_l8_n698(x)
- else
- fun_l8_n949(x)
- end
-end
-
-def fun_l7_n702(x)
- if (x < 1)
- fun_l8_n585(x)
- else
- fun_l8_n211(x)
- end
-end
-
-def fun_l7_n703(x)
- if (x < 1)
- fun_l8_n834(x)
- else
- fun_l8_n111(x)
- end
-end
-
-def fun_l7_n704(x)
- if (x < 1)
- fun_l8_n690(x)
- else
- fun_l8_n981(x)
- end
-end
-
-def fun_l7_n705(x)
- if (x < 1)
- fun_l8_n377(x)
- else
- fun_l8_n392(x)
- end
-end
-
-def fun_l7_n706(x)
- if (x < 1)
- fun_l8_n988(x)
- else
- fun_l8_n759(x)
- end
-end
-
-def fun_l7_n707(x)
- if (x < 1)
- fun_l8_n917(x)
- else
- fun_l8_n326(x)
- end
-end
-
-def fun_l7_n708(x)
- if (x < 1)
- fun_l8_n662(x)
- else
- fun_l8_n488(x)
- end
-end
-
-def fun_l7_n709(x)
- if (x < 1)
- fun_l8_n530(x)
- else
- fun_l8_n663(x)
- end
-end
-
-def fun_l7_n710(x)
- if (x < 1)
- fun_l8_n344(x)
- else
- fun_l8_n282(x)
- end
-end
-
-def fun_l7_n711(x)
- if (x < 1)
- fun_l8_n908(x)
- else
- fun_l8_n405(x)
- end
-end
-
-def fun_l7_n712(x)
- if (x < 1)
- fun_l8_n332(x)
- else
- fun_l8_n660(x)
- end
-end
-
-def fun_l7_n713(x)
- if (x < 1)
- fun_l8_n37(x)
- else
- fun_l8_n689(x)
- end
-end
-
-def fun_l7_n714(x)
- if (x < 1)
- fun_l8_n642(x)
- else
- fun_l8_n996(x)
- end
-end
-
-def fun_l7_n715(x)
- if (x < 1)
- fun_l8_n322(x)
- else
- fun_l8_n609(x)
- end
-end
-
-def fun_l7_n716(x)
- if (x < 1)
- fun_l8_n567(x)
- else
- fun_l8_n492(x)
- end
-end
-
-def fun_l7_n717(x)
- if (x < 1)
- fun_l8_n934(x)
- else
- fun_l8_n353(x)
- end
-end
-
-def fun_l7_n718(x)
- if (x < 1)
- fun_l8_n572(x)
- else
- fun_l8_n859(x)
- end
-end
-
-def fun_l7_n719(x)
- if (x < 1)
- fun_l8_n777(x)
- else
- fun_l8_n810(x)
- end
-end
-
-def fun_l7_n720(x)
- if (x < 1)
- fun_l8_n121(x)
- else
- fun_l8_n847(x)
- end
-end
-
-def fun_l7_n721(x)
- if (x < 1)
- fun_l8_n177(x)
- else
- fun_l8_n484(x)
- end
-end
-
-def fun_l7_n722(x)
- if (x < 1)
- fun_l8_n73(x)
- else
- fun_l8_n795(x)
- end
-end
-
-def fun_l7_n723(x)
- if (x < 1)
- fun_l8_n950(x)
- else
- fun_l8_n382(x)
- end
-end
-
-def fun_l7_n724(x)
- if (x < 1)
- fun_l8_n349(x)
- else
- fun_l8_n644(x)
- end
-end
-
-def fun_l7_n725(x)
- if (x < 1)
- fun_l8_n480(x)
- else
- fun_l8_n262(x)
- end
-end
-
-def fun_l7_n726(x)
- if (x < 1)
- fun_l8_n39(x)
- else
- fun_l8_n543(x)
- end
-end
-
-def fun_l7_n727(x)
- if (x < 1)
- fun_l8_n934(x)
- else
- fun_l8_n440(x)
- end
-end
-
-def fun_l7_n728(x)
- if (x < 1)
- fun_l8_n312(x)
- else
- fun_l8_n341(x)
- end
-end
-
-def fun_l7_n729(x)
- if (x < 1)
- fun_l8_n284(x)
- else
- fun_l8_n884(x)
- end
-end
-
-def fun_l7_n730(x)
- if (x < 1)
- fun_l8_n841(x)
- else
- fun_l8_n221(x)
- end
-end
-
-def fun_l7_n731(x)
- if (x < 1)
- fun_l8_n719(x)
- else
- fun_l8_n907(x)
- end
-end
-
-def fun_l7_n732(x)
- if (x < 1)
- fun_l8_n422(x)
- else
- fun_l8_n65(x)
- end
-end
-
-def fun_l7_n733(x)
- if (x < 1)
- fun_l8_n324(x)
- else
- fun_l8_n811(x)
- end
-end
-
-def fun_l7_n734(x)
- if (x < 1)
- fun_l8_n643(x)
- else
- fun_l8_n622(x)
- end
-end
-
-def fun_l7_n735(x)
- if (x < 1)
- fun_l8_n20(x)
- else
- fun_l8_n205(x)
- end
-end
-
-def fun_l7_n736(x)
- if (x < 1)
- fun_l8_n487(x)
- else
- fun_l8_n908(x)
- end
-end
-
-def fun_l7_n737(x)
- if (x < 1)
- fun_l8_n576(x)
- else
- fun_l8_n789(x)
- end
-end
-
-def fun_l7_n738(x)
- if (x < 1)
- fun_l8_n353(x)
- else
- fun_l8_n286(x)
- end
-end
-
-def fun_l7_n739(x)
- if (x < 1)
- fun_l8_n614(x)
- else
- fun_l8_n121(x)
- end
-end
-
-def fun_l7_n740(x)
- if (x < 1)
- fun_l8_n79(x)
- else
- fun_l8_n637(x)
- end
-end
-
-def fun_l7_n741(x)
- if (x < 1)
- fun_l8_n808(x)
- else
- fun_l8_n461(x)
- end
-end
-
-def fun_l7_n742(x)
- if (x < 1)
- fun_l8_n590(x)
- else
- fun_l8_n198(x)
- end
-end
-
-def fun_l7_n743(x)
- if (x < 1)
- fun_l8_n498(x)
- else
- fun_l8_n379(x)
- end
-end
-
-def fun_l7_n744(x)
- if (x < 1)
- fun_l8_n599(x)
- else
- fun_l8_n359(x)
- end
-end
-
-def fun_l7_n745(x)
- if (x < 1)
- fun_l8_n898(x)
- else
- fun_l8_n520(x)
- end
-end
-
-def fun_l7_n746(x)
- if (x < 1)
- fun_l8_n835(x)
- else
- fun_l8_n131(x)
- end
-end
-
-def fun_l7_n747(x)
- if (x < 1)
- fun_l8_n648(x)
- else
- fun_l8_n248(x)
- end
-end
-
-def fun_l7_n748(x)
- if (x < 1)
- fun_l8_n451(x)
- else
- fun_l8_n352(x)
- end
-end
-
-def fun_l7_n749(x)
- if (x < 1)
- fun_l8_n69(x)
- else
- fun_l8_n974(x)
- end
-end
-
-def fun_l7_n750(x)
- if (x < 1)
- fun_l8_n108(x)
- else
- fun_l8_n744(x)
- end
-end
-
-def fun_l7_n751(x)
- if (x < 1)
- fun_l8_n171(x)
- else
- fun_l8_n305(x)
- end
-end
-
-def fun_l7_n752(x)
- if (x < 1)
- fun_l8_n180(x)
- else
- fun_l8_n293(x)
- end
-end
-
-def fun_l7_n753(x)
- if (x < 1)
- fun_l8_n555(x)
- else
- fun_l8_n882(x)
- end
-end
-
-def fun_l7_n754(x)
- if (x < 1)
- fun_l8_n756(x)
- else
- fun_l8_n604(x)
- end
-end
-
-def fun_l7_n755(x)
- if (x < 1)
- fun_l8_n782(x)
- else
- fun_l8_n708(x)
- end
-end
-
-def fun_l7_n756(x)
- if (x < 1)
- fun_l8_n65(x)
- else
- fun_l8_n474(x)
- end
-end
-
-def fun_l7_n757(x)
- if (x < 1)
- fun_l8_n43(x)
- else
- fun_l8_n892(x)
- end
-end
-
-def fun_l7_n758(x)
- if (x < 1)
- fun_l8_n90(x)
- else
- fun_l8_n968(x)
- end
-end
-
-def fun_l7_n759(x)
- if (x < 1)
- fun_l8_n599(x)
- else
- fun_l8_n505(x)
- end
-end
-
-def fun_l7_n760(x)
- if (x < 1)
- fun_l8_n344(x)
- else
- fun_l8_n122(x)
- end
-end
-
-def fun_l7_n761(x)
- if (x < 1)
- fun_l8_n289(x)
- else
- fun_l8_n867(x)
- end
-end
-
-def fun_l7_n762(x)
- if (x < 1)
- fun_l8_n107(x)
- else
- fun_l8_n950(x)
- end
-end
-
-def fun_l7_n763(x)
- if (x < 1)
- fun_l8_n405(x)
- else
- fun_l8_n178(x)
- end
-end
-
-def fun_l7_n764(x)
- if (x < 1)
- fun_l8_n91(x)
- else
- fun_l8_n760(x)
- end
-end
-
-def fun_l7_n765(x)
- if (x < 1)
- fun_l8_n268(x)
- else
- fun_l8_n451(x)
- end
-end
-
-def fun_l7_n766(x)
- if (x < 1)
- fun_l8_n693(x)
- else
- fun_l8_n150(x)
- end
-end
-
-def fun_l7_n767(x)
- if (x < 1)
- fun_l8_n622(x)
- else
- fun_l8_n114(x)
- end
-end
-
-def fun_l7_n768(x)
- if (x < 1)
- fun_l8_n662(x)
- else
- fun_l8_n514(x)
- end
-end
-
-def fun_l7_n769(x)
- if (x < 1)
- fun_l8_n440(x)
- else
- fun_l8_n537(x)
- end
-end
-
-def fun_l7_n770(x)
- if (x < 1)
- fun_l8_n207(x)
- else
- fun_l8_n513(x)
- end
-end
-
-def fun_l7_n771(x)
- if (x < 1)
- fun_l8_n394(x)
- else
- fun_l8_n857(x)
- end
-end
-
-def fun_l7_n772(x)
- if (x < 1)
- fun_l8_n635(x)
- else
- fun_l8_n696(x)
- end
-end
-
-def fun_l7_n773(x)
- if (x < 1)
- fun_l8_n687(x)
- else
- fun_l8_n926(x)
- end
-end
-
-def fun_l7_n774(x)
- if (x < 1)
- fun_l8_n54(x)
- else
- fun_l8_n410(x)
- end
-end
-
-def fun_l7_n775(x)
- if (x < 1)
- fun_l8_n825(x)
- else
- fun_l8_n339(x)
- end
-end
-
-def fun_l7_n776(x)
- if (x < 1)
- fun_l8_n130(x)
- else
- fun_l8_n48(x)
- end
-end
-
-def fun_l7_n777(x)
- if (x < 1)
- fun_l8_n627(x)
- else
- fun_l8_n191(x)
- end
-end
-
-def fun_l7_n778(x)
- if (x < 1)
- fun_l8_n843(x)
- else
- fun_l8_n627(x)
- end
-end
-
-def fun_l7_n779(x)
- if (x < 1)
- fun_l8_n950(x)
- else
- fun_l8_n247(x)
- end
-end
-
-def fun_l7_n780(x)
- if (x < 1)
- fun_l8_n865(x)
- else
- fun_l8_n540(x)
- end
-end
-
-def fun_l7_n781(x)
- if (x < 1)
- fun_l8_n440(x)
- else
- fun_l8_n326(x)
- end
-end
-
-def fun_l7_n782(x)
- if (x < 1)
- fun_l8_n463(x)
- else
- fun_l8_n808(x)
- end
-end
-
-def fun_l7_n783(x)
- if (x < 1)
- fun_l8_n44(x)
- else
- fun_l8_n888(x)
- end
-end
-
-def fun_l7_n784(x)
- if (x < 1)
- fun_l8_n690(x)
- else
- fun_l8_n673(x)
- end
-end
-
-def fun_l7_n785(x)
- if (x < 1)
- fun_l8_n641(x)
- else
- fun_l8_n367(x)
- end
-end
-
-def fun_l7_n786(x)
- if (x < 1)
- fun_l8_n193(x)
- else
- fun_l8_n764(x)
- end
-end
-
-def fun_l7_n787(x)
- if (x < 1)
- fun_l8_n604(x)
- else
- fun_l8_n527(x)
- end
-end
-
-def fun_l7_n788(x)
- if (x < 1)
- fun_l8_n626(x)
- else
- fun_l8_n101(x)
- end
-end
-
-def fun_l7_n789(x)
- if (x < 1)
- fun_l8_n152(x)
- else
- fun_l8_n9(x)
- end
-end
-
-def fun_l7_n790(x)
- if (x < 1)
- fun_l8_n541(x)
- else
- fun_l8_n789(x)
- end
-end
-
-def fun_l7_n791(x)
- if (x < 1)
- fun_l8_n706(x)
- else
- fun_l8_n577(x)
- end
-end
-
-def fun_l7_n792(x)
- if (x < 1)
- fun_l8_n480(x)
- else
- fun_l8_n284(x)
- end
-end
-
-def fun_l7_n793(x)
- if (x < 1)
- fun_l8_n157(x)
- else
- fun_l8_n620(x)
- end
-end
-
-def fun_l7_n794(x)
- if (x < 1)
- fun_l8_n666(x)
- else
- fun_l8_n755(x)
- end
-end
-
-def fun_l7_n795(x)
- if (x < 1)
- fun_l8_n487(x)
- else
- fun_l8_n20(x)
- end
-end
-
-def fun_l7_n796(x)
- if (x < 1)
- fun_l8_n750(x)
- else
- fun_l8_n974(x)
- end
-end
-
-def fun_l7_n797(x)
- if (x < 1)
- fun_l8_n812(x)
- else
- fun_l8_n915(x)
- end
-end
-
-def fun_l7_n798(x)
- if (x < 1)
- fun_l8_n297(x)
- else
- fun_l8_n8(x)
- end
-end
-
-def fun_l7_n799(x)
- if (x < 1)
- fun_l8_n385(x)
- else
- fun_l8_n920(x)
- end
-end
-
-def fun_l7_n800(x)
- if (x < 1)
- fun_l8_n322(x)
- else
- fun_l8_n603(x)
- end
-end
-
-def fun_l7_n801(x)
- if (x < 1)
- fun_l8_n825(x)
- else
- fun_l8_n702(x)
- end
-end
-
-def fun_l7_n802(x)
- if (x < 1)
- fun_l8_n902(x)
- else
- fun_l8_n978(x)
- end
-end
-
-def fun_l7_n803(x)
- if (x < 1)
- fun_l8_n921(x)
- else
- fun_l8_n61(x)
- end
-end
-
-def fun_l7_n804(x)
- if (x < 1)
- fun_l8_n171(x)
- else
- fun_l8_n630(x)
- end
-end
-
-def fun_l7_n805(x)
- if (x < 1)
- fun_l8_n469(x)
- else
- fun_l8_n265(x)
- end
-end
-
-def fun_l7_n806(x)
- if (x < 1)
- fun_l8_n367(x)
- else
- fun_l8_n820(x)
- end
-end
-
-def fun_l7_n807(x)
- if (x < 1)
- fun_l8_n242(x)
- else
- fun_l8_n707(x)
- end
-end
-
-def fun_l7_n808(x)
- if (x < 1)
- fun_l8_n512(x)
- else
- fun_l8_n139(x)
- end
-end
-
-def fun_l7_n809(x)
- if (x < 1)
- fun_l8_n17(x)
- else
- fun_l8_n615(x)
- end
-end
-
-def fun_l7_n810(x)
- if (x < 1)
- fun_l8_n600(x)
- else
- fun_l8_n6(x)
- end
-end
-
-def fun_l7_n811(x)
- if (x < 1)
- fun_l8_n342(x)
- else
- fun_l8_n194(x)
- end
-end
-
-def fun_l7_n812(x)
- if (x < 1)
- fun_l8_n191(x)
- else
- fun_l8_n864(x)
- end
-end
-
-def fun_l7_n813(x)
- if (x < 1)
- fun_l8_n577(x)
- else
- fun_l8_n113(x)
- end
-end
-
-def fun_l7_n814(x)
- if (x < 1)
- fun_l8_n729(x)
- else
- fun_l8_n989(x)
- end
-end
-
-def fun_l7_n815(x)
- if (x < 1)
- fun_l8_n707(x)
- else
- fun_l8_n846(x)
- end
-end
-
-def fun_l7_n816(x)
- if (x < 1)
- fun_l8_n874(x)
- else
- fun_l8_n790(x)
- end
-end
-
-def fun_l7_n817(x)
- if (x < 1)
- fun_l8_n968(x)
- else
- fun_l8_n215(x)
- end
-end
-
-def fun_l7_n818(x)
- if (x < 1)
- fun_l8_n444(x)
- else
- fun_l8_n182(x)
- end
-end
-
-def fun_l7_n819(x)
- if (x < 1)
- fun_l8_n103(x)
- else
- fun_l8_n134(x)
- end
-end
-
-def fun_l7_n820(x)
- if (x < 1)
- fun_l8_n718(x)
- else
- fun_l8_n950(x)
- end
-end
-
-def fun_l7_n821(x)
- if (x < 1)
- fun_l8_n439(x)
- else
- fun_l8_n68(x)
- end
-end
-
-def fun_l7_n822(x)
- if (x < 1)
- fun_l8_n961(x)
- else
- fun_l8_n593(x)
- end
-end
-
-def fun_l7_n823(x)
- if (x < 1)
- fun_l8_n212(x)
- else
- fun_l8_n346(x)
- end
-end
-
-def fun_l7_n824(x)
- if (x < 1)
- fun_l8_n926(x)
- else
- fun_l8_n225(x)
- end
-end
-
-def fun_l7_n825(x)
- if (x < 1)
- fun_l8_n880(x)
- else
- fun_l8_n527(x)
- end
-end
-
-def fun_l7_n826(x)
- if (x < 1)
- fun_l8_n13(x)
- else
- fun_l8_n436(x)
- end
-end
-
-def fun_l7_n827(x)
- if (x < 1)
- fun_l8_n19(x)
- else
- fun_l8_n201(x)
- end
-end
-
-def fun_l7_n828(x)
- if (x < 1)
- fun_l8_n568(x)
- else
- fun_l8_n450(x)
- end
-end
-
-def fun_l7_n829(x)
- if (x < 1)
- fun_l8_n543(x)
- else
- fun_l8_n606(x)
- end
-end
-
-def fun_l7_n830(x)
- if (x < 1)
- fun_l8_n503(x)
- else
- fun_l8_n104(x)
- end
-end
-
-def fun_l7_n831(x)
- if (x < 1)
- fun_l8_n185(x)
- else
- fun_l8_n1(x)
- end
-end
-
-def fun_l7_n832(x)
- if (x < 1)
- fun_l8_n598(x)
- else
- fun_l8_n637(x)
- end
-end
-
-def fun_l7_n833(x)
- if (x < 1)
- fun_l8_n936(x)
- else
- fun_l8_n554(x)
- end
-end
-
-def fun_l7_n834(x)
- if (x < 1)
- fun_l8_n864(x)
- else
- fun_l8_n766(x)
- end
-end
-
-def fun_l7_n835(x)
- if (x < 1)
- fun_l8_n11(x)
- else
- fun_l8_n472(x)
- end
-end
-
-def fun_l7_n836(x)
- if (x < 1)
- fun_l8_n596(x)
- else
- fun_l8_n429(x)
- end
-end
-
-def fun_l7_n837(x)
- if (x < 1)
- fun_l8_n643(x)
- else
- fun_l8_n61(x)
- end
-end
-
-def fun_l7_n838(x)
- if (x < 1)
- fun_l8_n905(x)
- else
- fun_l8_n605(x)
- end
-end
-
-def fun_l7_n839(x)
- if (x < 1)
- fun_l8_n371(x)
- else
- fun_l8_n44(x)
- end
-end
-
-def fun_l7_n840(x)
- if (x < 1)
- fun_l8_n195(x)
- else
- fun_l8_n368(x)
- end
-end
-
-def fun_l7_n841(x)
- if (x < 1)
- fun_l8_n432(x)
- else
- fun_l8_n368(x)
- end
-end
-
-def fun_l7_n842(x)
- if (x < 1)
- fun_l8_n145(x)
- else
- fun_l8_n180(x)
- end
-end
-
-def fun_l7_n843(x)
- if (x < 1)
- fun_l8_n124(x)
- else
- fun_l8_n358(x)
- end
-end
-
-def fun_l7_n844(x)
- if (x < 1)
- fun_l8_n87(x)
- else
- fun_l8_n364(x)
- end
-end
-
-def fun_l7_n845(x)
- if (x < 1)
- fun_l8_n133(x)
- else
- fun_l8_n849(x)
- end
-end
-
-def fun_l7_n846(x)
- if (x < 1)
- fun_l8_n686(x)
- else
- fun_l8_n556(x)
- end
-end
-
-def fun_l7_n847(x)
- if (x < 1)
- fun_l8_n732(x)
- else
- fun_l8_n536(x)
- end
-end
-
-def fun_l7_n848(x)
- if (x < 1)
- fun_l8_n950(x)
- else
- fun_l8_n173(x)
- end
-end
-
-def fun_l7_n849(x)
- if (x < 1)
- fun_l8_n694(x)
- else
- fun_l8_n747(x)
- end
-end
-
-def fun_l7_n850(x)
- if (x < 1)
- fun_l8_n421(x)
- else
- fun_l8_n940(x)
- end
-end
-
-def fun_l7_n851(x)
- if (x < 1)
- fun_l8_n359(x)
- else
- fun_l8_n239(x)
- end
-end
-
-def fun_l7_n852(x)
- if (x < 1)
- fun_l8_n731(x)
- else
- fun_l8_n530(x)
- end
-end
-
-def fun_l7_n853(x)
- if (x < 1)
- fun_l8_n887(x)
- else
- fun_l8_n548(x)
- end
-end
-
-def fun_l7_n854(x)
- if (x < 1)
- fun_l8_n47(x)
- else
- fun_l8_n675(x)
- end
-end
-
-def fun_l7_n855(x)
- if (x < 1)
- fun_l8_n534(x)
- else
- fun_l8_n34(x)
- end
-end
-
-def fun_l7_n856(x)
- if (x < 1)
- fun_l8_n935(x)
- else
- fun_l8_n402(x)
- end
-end
-
-def fun_l7_n857(x)
- if (x < 1)
- fun_l8_n873(x)
- else
- fun_l8_n864(x)
- end
-end
-
-def fun_l7_n858(x)
- if (x < 1)
- fun_l8_n325(x)
- else
- fun_l8_n495(x)
- end
-end
-
-def fun_l7_n859(x)
- if (x < 1)
- fun_l8_n758(x)
- else
- fun_l8_n63(x)
- end
-end
-
-def fun_l7_n860(x)
- if (x < 1)
- fun_l8_n811(x)
- else
- fun_l8_n150(x)
- end
-end
-
-def fun_l7_n861(x)
- if (x < 1)
- fun_l8_n666(x)
- else
- fun_l8_n282(x)
- end
-end
-
-def fun_l7_n862(x)
- if (x < 1)
- fun_l8_n123(x)
- else
- fun_l8_n893(x)
- end
-end
-
-def fun_l7_n863(x)
- if (x < 1)
- fun_l8_n681(x)
- else
- fun_l8_n640(x)
- end
-end
-
-def fun_l7_n864(x)
- if (x < 1)
- fun_l8_n861(x)
- else
- fun_l8_n922(x)
- end
-end
-
-def fun_l7_n865(x)
- if (x < 1)
- fun_l8_n8(x)
- else
- fun_l8_n14(x)
- end
-end
-
-def fun_l7_n866(x)
- if (x < 1)
- fun_l8_n713(x)
- else
- fun_l8_n802(x)
- end
-end
-
-def fun_l7_n867(x)
- if (x < 1)
- fun_l8_n654(x)
- else
- fun_l8_n540(x)
- end
-end
-
-def fun_l7_n868(x)
- if (x < 1)
- fun_l8_n308(x)
- else
- fun_l8_n504(x)
- end
-end
-
-def fun_l7_n869(x)
- if (x < 1)
- fun_l8_n67(x)
- else
- fun_l8_n592(x)
- end
-end
-
-def fun_l7_n870(x)
- if (x < 1)
- fun_l8_n295(x)
- else
- fun_l8_n585(x)
- end
-end
-
-def fun_l7_n871(x)
- if (x < 1)
- fun_l8_n121(x)
- else
- fun_l8_n797(x)
- end
-end
-
-def fun_l7_n872(x)
- if (x < 1)
- fun_l8_n234(x)
- else
- fun_l8_n834(x)
- end
-end
-
-def fun_l7_n873(x)
- if (x < 1)
- fun_l8_n287(x)
- else
- fun_l8_n731(x)
- end
-end
-
-def fun_l7_n874(x)
- if (x < 1)
- fun_l8_n460(x)
- else
- fun_l8_n261(x)
- end
-end
-
-def fun_l7_n875(x)
- if (x < 1)
- fun_l8_n211(x)
- else
- fun_l8_n199(x)
- end
-end
-
-def fun_l7_n876(x)
- if (x < 1)
- fun_l8_n256(x)
- else
- fun_l8_n547(x)
- end
-end
-
-def fun_l7_n877(x)
- if (x < 1)
- fun_l8_n560(x)
- else
- fun_l8_n202(x)
- end
-end
-
-def fun_l7_n878(x)
- if (x < 1)
- fun_l8_n5(x)
- else
- fun_l8_n955(x)
- end
-end
-
-def fun_l7_n879(x)
- if (x < 1)
- fun_l8_n908(x)
- else
- fun_l8_n677(x)
- end
-end
-
-def fun_l7_n880(x)
- if (x < 1)
- fun_l8_n366(x)
- else
- fun_l8_n226(x)
- end
-end
-
-def fun_l7_n881(x)
- if (x < 1)
- fun_l8_n970(x)
- else
- fun_l8_n939(x)
- end
-end
-
-def fun_l7_n882(x)
- if (x < 1)
- fun_l8_n562(x)
- else
- fun_l8_n420(x)
- end
-end
-
-def fun_l7_n883(x)
- if (x < 1)
- fun_l8_n377(x)
- else
- fun_l8_n35(x)
- end
-end
-
-def fun_l7_n884(x)
- if (x < 1)
- fun_l8_n459(x)
- else
- fun_l8_n155(x)
- end
-end
-
-def fun_l7_n885(x)
- if (x < 1)
- fun_l8_n257(x)
- else
- fun_l8_n704(x)
- end
-end
-
-def fun_l7_n886(x)
- if (x < 1)
- fun_l8_n393(x)
- else
- fun_l8_n741(x)
- end
-end
-
-def fun_l7_n887(x)
- if (x < 1)
- fun_l8_n333(x)
- else
- fun_l8_n225(x)
- end
-end
-
-def fun_l7_n888(x)
- if (x < 1)
- fun_l8_n614(x)
- else
- fun_l8_n106(x)
- end
-end
-
-def fun_l7_n889(x)
- if (x < 1)
- fun_l8_n229(x)
- else
- fun_l8_n519(x)
- end
-end
-
-def fun_l7_n890(x)
- if (x < 1)
- fun_l8_n651(x)
- else
- fun_l8_n68(x)
- end
-end
-
-def fun_l7_n891(x)
- if (x < 1)
- fun_l8_n987(x)
- else
- fun_l8_n905(x)
- end
-end
-
-def fun_l7_n892(x)
- if (x < 1)
- fun_l8_n698(x)
- else
- fun_l8_n942(x)
- end
-end
-
-def fun_l7_n893(x)
- if (x < 1)
- fun_l8_n559(x)
- else
- fun_l8_n613(x)
- end
-end
-
-def fun_l7_n894(x)
- if (x < 1)
- fun_l8_n402(x)
- else
- fun_l8_n966(x)
- end
-end
-
-def fun_l7_n895(x)
- if (x < 1)
- fun_l8_n475(x)
- else
- fun_l8_n158(x)
- end
-end
-
-def fun_l7_n896(x)
- if (x < 1)
- fun_l8_n420(x)
- else
- fun_l8_n113(x)
- end
-end
-
-def fun_l7_n897(x)
- if (x < 1)
- fun_l8_n366(x)
- else
- fun_l8_n272(x)
- end
-end
-
-def fun_l7_n898(x)
- if (x < 1)
- fun_l8_n252(x)
- else
- fun_l8_n821(x)
- end
-end
-
-def fun_l7_n899(x)
- if (x < 1)
- fun_l8_n736(x)
- else
- fun_l8_n174(x)
- end
-end
-
-def fun_l7_n900(x)
- if (x < 1)
- fun_l8_n151(x)
- else
- fun_l8_n611(x)
- end
-end
-
-def fun_l7_n901(x)
- if (x < 1)
- fun_l8_n3(x)
- else
- fun_l8_n221(x)
- end
-end
-
-def fun_l7_n902(x)
- if (x < 1)
- fun_l8_n319(x)
- else
- fun_l8_n930(x)
- end
-end
-
-def fun_l7_n903(x)
- if (x < 1)
- fun_l8_n619(x)
- else
- fun_l8_n491(x)
- end
-end
-
-def fun_l7_n904(x)
- if (x < 1)
- fun_l8_n144(x)
- else
- fun_l8_n304(x)
- end
-end
-
-def fun_l7_n905(x)
- if (x < 1)
- fun_l8_n721(x)
- else
- fun_l8_n996(x)
- end
-end
-
-def fun_l7_n906(x)
- if (x < 1)
- fun_l8_n700(x)
- else
- fun_l8_n688(x)
- end
-end
-
-def fun_l7_n907(x)
- if (x < 1)
- fun_l8_n202(x)
- else
- fun_l8_n668(x)
- end
-end
-
-def fun_l7_n908(x)
- if (x < 1)
- fun_l8_n514(x)
- else
- fun_l8_n306(x)
- end
-end
-
-def fun_l7_n909(x)
- if (x < 1)
- fun_l8_n592(x)
- else
- fun_l8_n43(x)
- end
-end
-
-def fun_l7_n910(x)
- if (x < 1)
- fun_l8_n743(x)
- else
- fun_l8_n406(x)
- end
-end
-
-def fun_l7_n911(x)
- if (x < 1)
- fun_l8_n801(x)
- else
- fun_l8_n91(x)
- end
-end
-
-def fun_l7_n912(x)
- if (x < 1)
- fun_l8_n392(x)
- else
- fun_l8_n461(x)
- end
-end
-
-def fun_l7_n913(x)
- if (x < 1)
- fun_l8_n175(x)
- else
- fun_l8_n578(x)
- end
-end
-
-def fun_l7_n914(x)
- if (x < 1)
- fun_l8_n155(x)
- else
- fun_l8_n795(x)
- end
-end
-
-def fun_l7_n915(x)
- if (x < 1)
- fun_l8_n394(x)
- else
- fun_l8_n89(x)
- end
-end
-
-def fun_l7_n916(x)
- if (x < 1)
- fun_l8_n59(x)
- else
- fun_l8_n345(x)
- end
-end
-
-def fun_l7_n917(x)
- if (x < 1)
- fun_l8_n450(x)
- else
- fun_l8_n136(x)
- end
-end
-
-def fun_l7_n918(x)
- if (x < 1)
- fun_l8_n530(x)
- else
- fun_l8_n233(x)
- end
-end
-
-def fun_l7_n919(x)
- if (x < 1)
- fun_l8_n632(x)
- else
- fun_l8_n631(x)
- end
-end
-
-def fun_l7_n920(x)
- if (x < 1)
- fun_l8_n252(x)
- else
- fun_l8_n95(x)
- end
-end
-
-def fun_l7_n921(x)
- if (x < 1)
- fun_l8_n980(x)
- else
- fun_l8_n819(x)
- end
-end
-
-def fun_l7_n922(x)
- if (x < 1)
- fun_l8_n866(x)
- else
- fun_l8_n652(x)
- end
-end
-
-def fun_l7_n923(x)
- if (x < 1)
- fun_l8_n239(x)
- else
- fun_l8_n83(x)
- end
-end
-
-def fun_l7_n924(x)
- if (x < 1)
- fun_l8_n162(x)
- else
- fun_l8_n193(x)
- end
-end
-
-def fun_l7_n925(x)
- if (x < 1)
- fun_l8_n78(x)
- else
- fun_l8_n546(x)
- end
-end
-
-def fun_l7_n926(x)
- if (x < 1)
- fun_l8_n102(x)
- else
- fun_l8_n847(x)
- end
-end
-
-def fun_l7_n927(x)
- if (x < 1)
- fun_l8_n84(x)
- else
- fun_l8_n257(x)
- end
-end
-
-def fun_l7_n928(x)
- if (x < 1)
- fun_l8_n195(x)
- else
- fun_l8_n200(x)
- end
-end
-
-def fun_l7_n929(x)
- if (x < 1)
- fun_l8_n245(x)
- else
- fun_l8_n926(x)
- end
-end
-
-def fun_l7_n930(x)
- if (x < 1)
- fun_l8_n651(x)
- else
- fun_l8_n308(x)
- end
-end
-
-def fun_l7_n931(x)
- if (x < 1)
- fun_l8_n312(x)
- else
- fun_l8_n901(x)
- end
-end
-
-def fun_l7_n932(x)
- if (x < 1)
- fun_l8_n221(x)
- else
- fun_l8_n775(x)
- end
-end
-
-def fun_l7_n933(x)
- if (x < 1)
- fun_l8_n397(x)
- else
- fun_l8_n973(x)
- end
-end
-
-def fun_l7_n934(x)
- if (x < 1)
- fun_l8_n788(x)
- else
- fun_l8_n952(x)
- end
-end
-
-def fun_l7_n935(x)
- if (x < 1)
- fun_l8_n965(x)
- else
- fun_l8_n861(x)
- end
-end
-
-def fun_l7_n936(x)
- if (x < 1)
- fun_l8_n969(x)
- else
- fun_l8_n773(x)
- end
-end
-
-def fun_l7_n937(x)
- if (x < 1)
- fun_l8_n742(x)
- else
- fun_l8_n237(x)
- end
-end
-
-def fun_l7_n938(x)
- if (x < 1)
- fun_l8_n369(x)
- else
- fun_l8_n444(x)
- end
-end
-
-def fun_l7_n939(x)
- if (x < 1)
- fun_l8_n863(x)
- else
- fun_l8_n515(x)
- end
-end
-
-def fun_l7_n940(x)
- if (x < 1)
- fun_l8_n573(x)
- else
- fun_l8_n356(x)
- end
-end
-
-def fun_l7_n941(x)
- if (x < 1)
- fun_l8_n188(x)
- else
- fun_l8_n171(x)
- end
-end
-
-def fun_l7_n942(x)
- if (x < 1)
- fun_l8_n483(x)
- else
- fun_l8_n556(x)
- end
-end
-
-def fun_l7_n943(x)
- if (x < 1)
- fun_l8_n935(x)
- else
- fun_l8_n723(x)
- end
-end
-
-def fun_l7_n944(x)
- if (x < 1)
- fun_l8_n451(x)
- else
- fun_l8_n227(x)
- end
-end
-
-def fun_l7_n945(x)
- if (x < 1)
- fun_l8_n651(x)
- else
- fun_l8_n891(x)
- end
-end
-
-def fun_l7_n946(x)
- if (x < 1)
- fun_l8_n225(x)
- else
- fun_l8_n178(x)
- end
-end
-
-def fun_l7_n947(x)
- if (x < 1)
- fun_l8_n704(x)
- else
- fun_l8_n456(x)
- end
-end
-
-def fun_l7_n948(x)
- if (x < 1)
- fun_l8_n995(x)
- else
- fun_l8_n816(x)
- end
-end
-
-def fun_l7_n949(x)
- if (x < 1)
- fun_l8_n287(x)
- else
- fun_l8_n140(x)
- end
-end
-
-def fun_l7_n950(x)
- if (x < 1)
- fun_l8_n302(x)
- else
- fun_l8_n582(x)
- end
-end
-
-def fun_l7_n951(x)
- if (x < 1)
- fun_l8_n58(x)
- else
- fun_l8_n759(x)
- end
-end
-
-def fun_l7_n952(x)
- if (x < 1)
- fun_l8_n54(x)
- else
- fun_l8_n812(x)
- end
-end
-
-def fun_l7_n953(x)
- if (x < 1)
- fun_l8_n263(x)
- else
- fun_l8_n801(x)
- end
-end
-
-def fun_l7_n954(x)
- if (x < 1)
- fun_l8_n507(x)
- else
- fun_l8_n781(x)
- end
-end
-
-def fun_l7_n955(x)
- if (x < 1)
- fun_l8_n328(x)
- else
- fun_l8_n886(x)
- end
-end
-
-def fun_l7_n956(x)
- if (x < 1)
- fun_l8_n653(x)
- else
- fun_l8_n847(x)
- end
-end
-
-def fun_l7_n957(x)
- if (x < 1)
- fun_l8_n594(x)
- else
- fun_l8_n9(x)
- end
-end
-
-def fun_l7_n958(x)
- if (x < 1)
- fun_l8_n818(x)
- else
- fun_l8_n912(x)
- end
-end
-
-def fun_l7_n959(x)
- if (x < 1)
- fun_l8_n941(x)
- else
- fun_l8_n394(x)
- end
-end
-
-def fun_l7_n960(x)
- if (x < 1)
- fun_l8_n151(x)
- else
- fun_l8_n426(x)
- end
-end
-
-def fun_l7_n961(x)
- if (x < 1)
- fun_l8_n276(x)
- else
- fun_l8_n458(x)
- end
-end
-
-def fun_l7_n962(x)
- if (x < 1)
- fun_l8_n310(x)
- else
- fun_l8_n472(x)
- end
-end
-
-def fun_l7_n963(x)
- if (x < 1)
- fun_l8_n103(x)
- else
- fun_l8_n995(x)
- end
-end
-
-def fun_l7_n964(x)
- if (x < 1)
- fun_l8_n808(x)
- else
- fun_l8_n41(x)
- end
-end
-
-def fun_l7_n965(x)
- if (x < 1)
- fun_l8_n840(x)
- else
- fun_l8_n143(x)
- end
-end
-
-def fun_l7_n966(x)
- if (x < 1)
- fun_l8_n855(x)
- else
- fun_l8_n38(x)
- end
-end
-
-def fun_l7_n967(x)
- if (x < 1)
- fun_l8_n316(x)
- else
- fun_l8_n86(x)
- end
-end
-
-def fun_l7_n968(x)
- if (x < 1)
- fun_l8_n856(x)
- else
- fun_l8_n182(x)
- end
-end
-
-def fun_l7_n969(x)
- if (x < 1)
- fun_l8_n436(x)
- else
- fun_l8_n460(x)
- end
-end
-
-def fun_l7_n970(x)
- if (x < 1)
- fun_l8_n187(x)
- else
- fun_l8_n90(x)
- end
-end
-
-def fun_l7_n971(x)
- if (x < 1)
- fun_l8_n689(x)
- else
- fun_l8_n921(x)
- end
-end
-
-def fun_l7_n972(x)
- if (x < 1)
- fun_l8_n207(x)
- else
- fun_l8_n79(x)
- end
-end
-
-def fun_l7_n973(x)
- if (x < 1)
- fun_l8_n137(x)
- else
- fun_l8_n17(x)
- end
-end
-
-def fun_l7_n974(x)
- if (x < 1)
- fun_l8_n813(x)
- else
- fun_l8_n944(x)
- end
-end
-
-def fun_l7_n975(x)
- if (x < 1)
- fun_l8_n589(x)
- else
- fun_l8_n416(x)
- end
-end
-
-def fun_l7_n976(x)
- if (x < 1)
- fun_l8_n763(x)
- else
- fun_l8_n289(x)
- end
-end
-
-def fun_l7_n977(x)
- if (x < 1)
- fun_l8_n118(x)
- else
- fun_l8_n998(x)
- end
-end
-
-def fun_l7_n978(x)
- if (x < 1)
- fun_l8_n382(x)
- else
- fun_l8_n216(x)
- end
-end
-
-def fun_l7_n979(x)
- if (x < 1)
- fun_l8_n304(x)
- else
- fun_l8_n586(x)
- end
-end
-
-def fun_l7_n980(x)
- if (x < 1)
- fun_l8_n693(x)
- else
- fun_l8_n118(x)
- end
-end
-
-def fun_l7_n981(x)
- if (x < 1)
- fun_l8_n669(x)
- else
- fun_l8_n796(x)
- end
-end
-
-def fun_l7_n982(x)
- if (x < 1)
- fun_l8_n187(x)
- else
- fun_l8_n143(x)
- end
-end
-
-def fun_l7_n983(x)
- if (x < 1)
- fun_l8_n848(x)
- else
- fun_l8_n172(x)
- end
-end
-
-def fun_l7_n984(x)
- if (x < 1)
- fun_l8_n782(x)
- else
- fun_l8_n670(x)
- end
-end
-
-def fun_l7_n985(x)
- if (x < 1)
- fun_l8_n275(x)
- else
- fun_l8_n520(x)
- end
-end
-
-def fun_l7_n986(x)
- if (x < 1)
- fun_l8_n841(x)
- else
- fun_l8_n446(x)
- end
-end
-
-def fun_l7_n987(x)
- if (x < 1)
- fun_l8_n712(x)
- else
- fun_l8_n976(x)
- end
-end
-
-def fun_l7_n988(x)
- if (x < 1)
- fun_l8_n115(x)
- else
- fun_l8_n222(x)
- end
-end
-
-def fun_l7_n989(x)
- if (x < 1)
- fun_l8_n23(x)
- else
- fun_l8_n665(x)
- end
-end
-
-def fun_l7_n990(x)
- if (x < 1)
- fun_l8_n416(x)
- else
- fun_l8_n455(x)
- end
-end
-
-def fun_l7_n991(x)
- if (x < 1)
- fun_l8_n556(x)
- else
- fun_l8_n971(x)
- end
-end
-
-def fun_l7_n992(x)
- if (x < 1)
- fun_l8_n726(x)
- else
- fun_l8_n312(x)
- end
-end
-
-def fun_l7_n993(x)
- if (x < 1)
- fun_l8_n354(x)
- else
- fun_l8_n860(x)
- end
-end
-
-def fun_l7_n994(x)
- if (x < 1)
- fun_l8_n62(x)
- else
- fun_l8_n290(x)
- end
-end
-
-def fun_l7_n995(x)
- if (x < 1)
- fun_l8_n695(x)
- else
- fun_l8_n881(x)
- end
-end
-
-def fun_l7_n996(x)
- if (x < 1)
- fun_l8_n938(x)
- else
- fun_l8_n566(x)
- end
-end
-
-def fun_l7_n997(x)
- if (x < 1)
- fun_l8_n379(x)
- else
- fun_l8_n731(x)
- end
-end
-
-def fun_l7_n998(x)
- if (x < 1)
- fun_l8_n320(x)
- else
- fun_l8_n339(x)
- end
-end
-
-def fun_l7_n999(x)
- if (x < 1)
- fun_l8_n219(x)
- else
- fun_l8_n320(x)
- end
-end
-
-def fun_l8_n0(x)
- if (x < 1)
- fun_l9_n590(x)
- else
- fun_l9_n825(x)
- end
-end
-
-def fun_l8_n1(x)
- if (x < 1)
- fun_l9_n301(x)
- else
- fun_l9_n457(x)
- end
-end
-
-def fun_l8_n2(x)
- if (x < 1)
- fun_l9_n637(x)
- else
- fun_l9_n909(x)
- end
-end
-
-def fun_l8_n3(x)
- if (x < 1)
- fun_l9_n485(x)
- else
- fun_l9_n603(x)
- end
-end
-
-def fun_l8_n4(x)
- if (x < 1)
- fun_l9_n465(x)
- else
- fun_l9_n39(x)
- end
-end
-
-def fun_l8_n5(x)
- if (x < 1)
- fun_l9_n861(x)
- else
- fun_l9_n153(x)
- end
-end
-
-def fun_l8_n6(x)
- if (x < 1)
- fun_l9_n130(x)
- else
- fun_l9_n401(x)
- end
-end
-
-def fun_l8_n7(x)
- if (x < 1)
- fun_l9_n726(x)
- else
- fun_l9_n248(x)
- end
-end
-
-def fun_l8_n8(x)
- if (x < 1)
- fun_l9_n607(x)
- else
- fun_l9_n681(x)
- end
-end
-
-def fun_l8_n9(x)
- if (x < 1)
- fun_l9_n862(x)
- else
- fun_l9_n8(x)
- end
-end
-
-def fun_l8_n10(x)
- if (x < 1)
- fun_l9_n607(x)
- else
- fun_l9_n373(x)
- end
-end
-
-def fun_l8_n11(x)
- if (x < 1)
- fun_l9_n692(x)
- else
- fun_l9_n31(x)
- end
-end
-
-def fun_l8_n12(x)
- if (x < 1)
- fun_l9_n412(x)
- else
- fun_l9_n576(x)
- end
-end
-
-def fun_l8_n13(x)
- if (x < 1)
- fun_l9_n582(x)
- else
- fun_l9_n281(x)
- end
-end
-
-def fun_l8_n14(x)
- if (x < 1)
- fun_l9_n986(x)
- else
- fun_l9_n99(x)
- end
-end
-
-def fun_l8_n15(x)
- if (x < 1)
- fun_l9_n807(x)
- else
- fun_l9_n807(x)
- end
-end
-
-def fun_l8_n16(x)
- if (x < 1)
- fun_l9_n635(x)
- else
- fun_l9_n51(x)
- end
-end
-
-def fun_l8_n17(x)
- if (x < 1)
- fun_l9_n193(x)
- else
- fun_l9_n673(x)
- end
-end
-
-def fun_l8_n18(x)
- if (x < 1)
- fun_l9_n897(x)
- else
- fun_l9_n881(x)
- end
-end
-
-def fun_l8_n19(x)
- if (x < 1)
- fun_l9_n288(x)
- else
- fun_l9_n337(x)
- end
-end
-
-def fun_l8_n20(x)
- if (x < 1)
- fun_l9_n754(x)
- else
- fun_l9_n581(x)
- end
-end
-
-def fun_l8_n21(x)
- if (x < 1)
- fun_l9_n265(x)
- else
- fun_l9_n205(x)
- end
-end
-
-def fun_l8_n22(x)
- if (x < 1)
- fun_l9_n784(x)
- else
- fun_l9_n428(x)
- end
-end
-
-def fun_l8_n23(x)
- if (x < 1)
- fun_l9_n821(x)
- else
- fun_l9_n930(x)
- end
-end
-
-def fun_l8_n24(x)
- if (x < 1)
- fun_l9_n237(x)
- else
- fun_l9_n681(x)
- end
-end
-
-def fun_l8_n25(x)
- if (x < 1)
- fun_l9_n32(x)
- else
- fun_l9_n405(x)
- end
-end
-
-def fun_l8_n26(x)
- if (x < 1)
- fun_l9_n370(x)
- else
- fun_l9_n802(x)
- end
-end
-
-def fun_l8_n27(x)
- if (x < 1)
- fun_l9_n4(x)
- else
- fun_l9_n288(x)
- end
-end
-
-def fun_l8_n28(x)
- if (x < 1)
- fun_l9_n9(x)
- else
- fun_l9_n180(x)
- end
-end
-
-def fun_l8_n29(x)
- if (x < 1)
- fun_l9_n585(x)
- else
- fun_l9_n396(x)
- end
-end
-
-def fun_l8_n30(x)
- if (x < 1)
- fun_l9_n954(x)
- else
- fun_l9_n603(x)
- end
-end
-
-def fun_l8_n31(x)
- if (x < 1)
- fun_l9_n808(x)
- else
- fun_l9_n770(x)
- end
-end
-
-def fun_l8_n32(x)
- if (x < 1)
- fun_l9_n442(x)
- else
- fun_l9_n243(x)
- end
-end
-
-def fun_l8_n33(x)
- if (x < 1)
- fun_l9_n139(x)
- else
- fun_l9_n93(x)
- end
-end
-
-def fun_l8_n34(x)
- if (x < 1)
- fun_l9_n270(x)
- else
- fun_l9_n333(x)
- end
-end
-
-def fun_l8_n35(x)
- if (x < 1)
- fun_l9_n542(x)
- else
- fun_l9_n38(x)
- end
-end
-
-def fun_l8_n36(x)
- if (x < 1)
- fun_l9_n892(x)
- else
- fun_l9_n517(x)
- end
-end
-
-def fun_l8_n37(x)
- if (x < 1)
- fun_l9_n599(x)
- else
- fun_l9_n692(x)
- end
-end
-
-def fun_l8_n38(x)
- if (x < 1)
- fun_l9_n0(x)
- else
- fun_l9_n879(x)
- end
-end
-
-def fun_l8_n39(x)
- if (x < 1)
- fun_l9_n835(x)
- else
- fun_l9_n134(x)
- end
-end
-
-def fun_l8_n40(x)
- if (x < 1)
- fun_l9_n151(x)
- else
- fun_l9_n546(x)
- end
-end
-
-def fun_l8_n41(x)
- if (x < 1)
- fun_l9_n214(x)
- else
- fun_l9_n652(x)
- end
-end
-
-def fun_l8_n42(x)
- if (x < 1)
- fun_l9_n239(x)
- else
- fun_l9_n123(x)
- end
-end
-
-def fun_l8_n43(x)
- if (x < 1)
- fun_l9_n763(x)
- else
- fun_l9_n953(x)
- end
-end
-
-def fun_l8_n44(x)
- if (x < 1)
- fun_l9_n449(x)
- else
- fun_l9_n343(x)
- end
-end
-
-def fun_l8_n45(x)
- if (x < 1)
- fun_l9_n727(x)
- else
- fun_l9_n47(x)
- end
-end
-
-def fun_l8_n46(x)
- if (x < 1)
- fun_l9_n684(x)
- else
- fun_l9_n711(x)
- end
-end
-
-def fun_l8_n47(x)
- if (x < 1)
- fun_l9_n895(x)
- else
- fun_l9_n864(x)
- end
-end
-
-def fun_l8_n48(x)
- if (x < 1)
- fun_l9_n544(x)
- else
- fun_l9_n358(x)
- end
-end
-
-def fun_l8_n49(x)
- if (x < 1)
- fun_l9_n829(x)
- else
- fun_l9_n411(x)
- end
-end
-
-def fun_l8_n50(x)
- if (x < 1)
- fun_l9_n673(x)
- else
- fun_l9_n640(x)
- end
-end
-
-def fun_l8_n51(x)
- if (x < 1)
- fun_l9_n9(x)
- else
- fun_l9_n690(x)
- end
-end
-
-def fun_l8_n52(x)
- if (x < 1)
- fun_l9_n293(x)
- else
- fun_l9_n889(x)
- end
-end
-
-def fun_l8_n53(x)
- if (x < 1)
- fun_l9_n141(x)
- else
- fun_l9_n554(x)
- end
-end
-
-def fun_l8_n54(x)
- if (x < 1)
- fun_l9_n982(x)
- else
- fun_l9_n955(x)
- end
-end
-
-def fun_l8_n55(x)
- if (x < 1)
- fun_l9_n382(x)
- else
- fun_l9_n897(x)
- end
-end
-
-def fun_l8_n56(x)
- if (x < 1)
- fun_l9_n332(x)
- else
- fun_l9_n550(x)
- end
-end
-
-def fun_l8_n57(x)
- if (x < 1)
- fun_l9_n46(x)
- else
- fun_l9_n569(x)
- end
-end
-
-def fun_l8_n58(x)
- if (x < 1)
- fun_l9_n556(x)
- else
- fun_l9_n0(x)
- end
-end
-
-def fun_l8_n59(x)
- if (x < 1)
- fun_l9_n931(x)
- else
- fun_l9_n995(x)
- end
-end
-
-def fun_l8_n60(x)
- if (x < 1)
- fun_l9_n470(x)
- else
- fun_l9_n679(x)
- end
-end
-
-def fun_l8_n61(x)
- if (x < 1)
- fun_l9_n269(x)
- else
- fun_l9_n742(x)
- end
-end
-
-def fun_l8_n62(x)
- if (x < 1)
- fun_l9_n542(x)
- else
- fun_l9_n556(x)
- end
-end
-
-def fun_l8_n63(x)
- if (x < 1)
- fun_l9_n713(x)
- else
- fun_l9_n249(x)
- end
-end
-
-def fun_l8_n64(x)
- if (x < 1)
- fun_l9_n842(x)
- else
- fun_l9_n566(x)
- end
-end
-
-def fun_l8_n65(x)
- if (x < 1)
- fun_l9_n708(x)
- else
- fun_l9_n3(x)
- end
-end
-
-def fun_l8_n66(x)
- if (x < 1)
- fun_l9_n845(x)
- else
- fun_l9_n926(x)
- end
-end
-
-def fun_l8_n67(x)
- if (x < 1)
- fun_l9_n823(x)
- else
- fun_l9_n326(x)
- end
-end
-
-def fun_l8_n68(x)
- if (x < 1)
- fun_l9_n457(x)
- else
- fun_l9_n888(x)
- end
-end
-
-def fun_l8_n69(x)
- if (x < 1)
- fun_l9_n454(x)
- else
- fun_l9_n601(x)
- end
-end
-
-def fun_l8_n70(x)
- if (x < 1)
- fun_l9_n636(x)
- else
- fun_l9_n482(x)
- end
-end
-
-def fun_l8_n71(x)
- if (x < 1)
- fun_l9_n778(x)
- else
- fun_l9_n678(x)
- end
-end
-
-def fun_l8_n72(x)
- if (x < 1)
- fun_l9_n715(x)
- else
- fun_l9_n851(x)
- end
-end
-
-def fun_l8_n73(x)
- if (x < 1)
- fun_l9_n330(x)
- else
- fun_l9_n84(x)
- end
-end
-
-def fun_l8_n74(x)
- if (x < 1)
- fun_l9_n524(x)
- else
- fun_l9_n109(x)
- end
-end
-
-def fun_l8_n75(x)
- if (x < 1)
- fun_l9_n610(x)
- else
- fun_l9_n723(x)
- end
-end
-
-def fun_l8_n76(x)
- if (x < 1)
- fun_l9_n964(x)
- else
- fun_l9_n893(x)
- end
-end
-
-def fun_l8_n77(x)
- if (x < 1)
- fun_l9_n653(x)
- else
- fun_l9_n451(x)
- end
-end
-
-def fun_l8_n78(x)
- if (x < 1)
- fun_l9_n582(x)
- else
- fun_l9_n29(x)
- end
-end
-
-def fun_l8_n79(x)
- if (x < 1)
- fun_l9_n219(x)
- else
- fun_l9_n25(x)
- end
-end
-
-def fun_l8_n80(x)
- if (x < 1)
- fun_l9_n471(x)
- else
- fun_l9_n217(x)
- end
-end
-
-def fun_l8_n81(x)
- if (x < 1)
- fun_l9_n339(x)
- else
- fun_l9_n365(x)
- end
-end
-
-def fun_l8_n82(x)
- if (x < 1)
- fun_l9_n808(x)
- else
- fun_l9_n501(x)
- end
-end
-
-def fun_l8_n83(x)
- if (x < 1)
- fun_l9_n23(x)
- else
- fun_l9_n252(x)
- end
-end
-
-def fun_l8_n84(x)
- if (x < 1)
- fun_l9_n628(x)
- else
- fun_l9_n514(x)
- end
-end
-
-def fun_l8_n85(x)
- if (x < 1)
- fun_l9_n22(x)
- else
- fun_l9_n465(x)
- end
-end
-
-def fun_l8_n86(x)
- if (x < 1)
- fun_l9_n553(x)
- else
- fun_l9_n788(x)
- end
-end
-
-def fun_l8_n87(x)
- if (x < 1)
- fun_l9_n852(x)
- else
- fun_l9_n945(x)
- end
-end
-
-def fun_l8_n88(x)
- if (x < 1)
- fun_l9_n886(x)
- else
- fun_l9_n438(x)
- end
-end
-
-def fun_l8_n89(x)
- if (x < 1)
- fun_l9_n821(x)
- else
- fun_l9_n697(x)
- end
-end
-
-def fun_l8_n90(x)
- if (x < 1)
- fun_l9_n388(x)
- else
- fun_l9_n39(x)
- end
-end
-
-def fun_l8_n91(x)
- if (x < 1)
- fun_l9_n135(x)
- else
- fun_l9_n736(x)
- end
-end
-
-def fun_l8_n92(x)
- if (x < 1)
- fun_l9_n225(x)
- else
- fun_l9_n125(x)
- end
-end
-
-def fun_l8_n93(x)
- if (x < 1)
- fun_l9_n201(x)
- else
- fun_l9_n320(x)
- end
-end
-
-def fun_l8_n94(x)
- if (x < 1)
- fun_l9_n30(x)
- else
- fun_l9_n938(x)
- end
-end
-
-def fun_l8_n95(x)
- if (x < 1)
- fun_l9_n987(x)
- else
- fun_l9_n141(x)
- end
-end
-
-def fun_l8_n96(x)
- if (x < 1)
- fun_l9_n968(x)
- else
- fun_l9_n999(x)
- end
-end
-
-def fun_l8_n97(x)
- if (x < 1)
- fun_l9_n852(x)
- else
- fun_l9_n927(x)
- end
-end
-
-def fun_l8_n98(x)
- if (x < 1)
- fun_l9_n720(x)
- else
- fun_l9_n717(x)
- end
-end
-
-def fun_l8_n99(x)
- if (x < 1)
- fun_l9_n907(x)
- else
- fun_l9_n8(x)
- end
-end
-
-def fun_l8_n100(x)
- if (x < 1)
- fun_l9_n973(x)
- else
- fun_l9_n379(x)
- end
-end
-
-def fun_l8_n101(x)
- if (x < 1)
- fun_l9_n370(x)
- else
- fun_l9_n530(x)
- end
-end
-
-def fun_l8_n102(x)
- if (x < 1)
- fun_l9_n411(x)
- else
- fun_l9_n560(x)
- end
-end
-
-def fun_l8_n103(x)
- if (x < 1)
- fun_l9_n54(x)
- else
- fun_l9_n813(x)
- end
-end
-
-def fun_l8_n104(x)
- if (x < 1)
- fun_l9_n217(x)
- else
- fun_l9_n455(x)
- end
-end
-
-def fun_l8_n105(x)
- if (x < 1)
- fun_l9_n667(x)
- else
- fun_l9_n92(x)
- end
-end
-
-def fun_l8_n106(x)
- if (x < 1)
- fun_l9_n933(x)
- else
- fun_l9_n727(x)
- end
-end
-
-def fun_l8_n107(x)
- if (x < 1)
- fun_l9_n578(x)
- else
- fun_l9_n350(x)
- end
-end
-
-def fun_l8_n108(x)
- if (x < 1)
- fun_l9_n75(x)
- else
- fun_l9_n439(x)
- end
-end
-
-def fun_l8_n109(x)
- if (x < 1)
- fun_l9_n21(x)
- else
- fun_l9_n112(x)
- end
-end
-
-def fun_l8_n110(x)
- if (x < 1)
- fun_l9_n57(x)
- else
- fun_l9_n553(x)
- end
-end
-
-def fun_l8_n111(x)
- if (x < 1)
- fun_l9_n347(x)
- else
- fun_l9_n285(x)
- end
-end
-
-def fun_l8_n112(x)
- if (x < 1)
- fun_l9_n837(x)
- else
- fun_l9_n793(x)
- end
-end
-
-def fun_l8_n113(x)
- if (x < 1)
- fun_l9_n517(x)
- else
- fun_l9_n668(x)
- end
-end
-
-def fun_l8_n114(x)
- if (x < 1)
- fun_l9_n486(x)
- else
- fun_l9_n872(x)
- end
-end
-
-def fun_l8_n115(x)
- if (x < 1)
- fun_l9_n454(x)
- else
- fun_l9_n507(x)
- end
-end
-
-def fun_l8_n116(x)
- if (x < 1)
- fun_l9_n110(x)
- else
- fun_l9_n263(x)
- end
-end
-
-def fun_l8_n117(x)
- if (x < 1)
- fun_l9_n878(x)
- else
- fun_l9_n21(x)
- end
-end
-
-def fun_l8_n118(x)
- if (x < 1)
- fun_l9_n564(x)
- else
- fun_l9_n409(x)
- end
-end
-
-def fun_l8_n119(x)
- if (x < 1)
- fun_l9_n511(x)
- else
- fun_l9_n800(x)
- end
-end
-
-def fun_l8_n120(x)
- if (x < 1)
- fun_l9_n501(x)
- else
- fun_l9_n305(x)
- end
-end
-
-def fun_l8_n121(x)
- if (x < 1)
- fun_l9_n630(x)
- else
- fun_l9_n319(x)
- end
-end
-
-def fun_l8_n122(x)
- if (x < 1)
- fun_l9_n271(x)
- else
- fun_l9_n639(x)
- end
-end
-
-def fun_l8_n123(x)
- if (x < 1)
- fun_l9_n812(x)
- else
- fun_l9_n735(x)
- end
-end
-
-def fun_l8_n124(x)
- if (x < 1)
- fun_l9_n828(x)
- else
- fun_l9_n203(x)
- end
-end
-
-def fun_l8_n125(x)
- if (x < 1)
- fun_l9_n228(x)
- else
- fun_l9_n536(x)
- end
-end
-
-def fun_l8_n126(x)
- if (x < 1)
- fun_l9_n426(x)
- else
- fun_l9_n325(x)
- end
-end
-
-def fun_l8_n127(x)
- if (x < 1)
- fun_l9_n19(x)
- else
- fun_l9_n324(x)
- end
-end
-
-def fun_l8_n128(x)
- if (x < 1)
- fun_l9_n419(x)
- else
- fun_l9_n425(x)
- end
-end
-
-def fun_l8_n129(x)
- if (x < 1)
- fun_l9_n384(x)
- else
- fun_l9_n550(x)
- end
-end
-
-def fun_l8_n130(x)
- if (x < 1)
- fun_l9_n956(x)
- else
- fun_l9_n270(x)
- end
-end
-
-def fun_l8_n131(x)
- if (x < 1)
- fun_l9_n20(x)
- else
- fun_l9_n949(x)
- end
-end
-
-def fun_l8_n132(x)
- if (x < 1)
- fun_l9_n317(x)
- else
- fun_l9_n909(x)
- end
-end
-
-def fun_l8_n133(x)
- if (x < 1)
- fun_l9_n131(x)
- else
- fun_l9_n108(x)
- end
-end
-
-def fun_l8_n134(x)
- if (x < 1)
- fun_l9_n648(x)
- else
- fun_l9_n473(x)
- end
-end
-
-def fun_l8_n135(x)
- if (x < 1)
- fun_l9_n837(x)
- else
- fun_l9_n89(x)
- end
-end
-
-def fun_l8_n136(x)
- if (x < 1)
- fun_l9_n637(x)
- else
- fun_l9_n394(x)
- end
-end
-
-def fun_l8_n137(x)
- if (x < 1)
- fun_l9_n608(x)
- else
- fun_l9_n283(x)
- end
-end
-
-def fun_l8_n138(x)
- if (x < 1)
- fun_l9_n728(x)
- else
- fun_l9_n586(x)
- end
-end
-
-def fun_l8_n139(x)
- if (x < 1)
- fun_l9_n689(x)
- else
- fun_l9_n700(x)
- end
-end
-
-def fun_l8_n140(x)
- if (x < 1)
- fun_l9_n532(x)
- else
- fun_l9_n98(x)
- end
-end
-
-def fun_l8_n141(x)
- if (x < 1)
- fun_l9_n696(x)
- else
- fun_l9_n951(x)
- end
-end
-
-def fun_l8_n142(x)
- if (x < 1)
- fun_l9_n28(x)
- else
- fun_l9_n714(x)
- end
-end
-
-def fun_l8_n143(x)
- if (x < 1)
- fun_l9_n438(x)
- else
- fun_l9_n934(x)
- end
-end
-
-def fun_l8_n144(x)
- if (x < 1)
- fun_l9_n738(x)
- else
- fun_l9_n473(x)
- end
-end
-
-def fun_l8_n145(x)
- if (x < 1)
- fun_l9_n201(x)
- else
- fun_l9_n634(x)
- end
-end
-
-def fun_l8_n146(x)
- if (x < 1)
- fun_l9_n391(x)
- else
- fun_l9_n703(x)
- end
-end
-
-def fun_l8_n147(x)
- if (x < 1)
- fun_l9_n740(x)
- else
- fun_l9_n265(x)
- end
-end
-
-def fun_l8_n148(x)
- if (x < 1)
- fun_l9_n303(x)
- else
- fun_l9_n162(x)
- end
-end
-
-def fun_l8_n149(x)
- if (x < 1)
- fun_l9_n518(x)
- else
- fun_l9_n899(x)
- end
-end
-
-def fun_l8_n150(x)
- if (x < 1)
- fun_l9_n847(x)
- else
- fun_l9_n840(x)
- end
-end
-
-def fun_l8_n151(x)
- if (x < 1)
- fun_l9_n567(x)
- else
- fun_l9_n29(x)
- end
-end
-
-def fun_l8_n152(x)
- if (x < 1)
- fun_l9_n426(x)
- else
- fun_l9_n578(x)
- end
-end
-
-def fun_l8_n153(x)
- if (x < 1)
- fun_l9_n617(x)
- else
- fun_l9_n703(x)
- end
-end
-
-def fun_l8_n154(x)
- if (x < 1)
- fun_l9_n673(x)
- else
- fun_l9_n663(x)
- end
-end
-
-def fun_l8_n155(x)
- if (x < 1)
- fun_l9_n456(x)
- else
- fun_l9_n406(x)
- end
-end
-
-def fun_l8_n156(x)
- if (x < 1)
- fun_l9_n297(x)
- else
- fun_l9_n444(x)
- end
-end
-
-def fun_l8_n157(x)
- if (x < 1)
- fun_l9_n300(x)
- else
- fun_l9_n179(x)
- end
-end
-
-def fun_l8_n158(x)
- if (x < 1)
- fun_l9_n646(x)
- else
- fun_l9_n9(x)
- end
-end
-
-def fun_l8_n159(x)
- if (x < 1)
- fun_l9_n133(x)
- else
- fun_l9_n228(x)
- end
-end
-
-def fun_l8_n160(x)
- if (x < 1)
- fun_l9_n814(x)
- else
- fun_l9_n775(x)
- end
-end
-
-def fun_l8_n161(x)
- if (x < 1)
- fun_l9_n748(x)
- else
- fun_l9_n849(x)
- end
-end
-
-def fun_l8_n162(x)
- if (x < 1)
- fun_l9_n209(x)
- else
- fun_l9_n273(x)
- end
-end
-
-def fun_l8_n163(x)
- if (x < 1)
- fun_l9_n116(x)
- else
- fun_l9_n669(x)
- end
-end
-
-def fun_l8_n164(x)
- if (x < 1)
- fun_l9_n714(x)
- else
- fun_l9_n621(x)
- end
-end
-
-def fun_l8_n165(x)
- if (x < 1)
- fun_l9_n619(x)
- else
- fun_l9_n365(x)
- end
-end
-
-def fun_l8_n166(x)
- if (x < 1)
- fun_l9_n756(x)
- else
- fun_l9_n745(x)
- end
-end
-
-def fun_l8_n167(x)
- if (x < 1)
- fun_l9_n12(x)
- else
- fun_l9_n633(x)
- end
-end
-
-def fun_l8_n168(x)
- if (x < 1)
- fun_l9_n619(x)
- else
- fun_l9_n31(x)
- end
-end
-
-def fun_l8_n169(x)
- if (x < 1)
- fun_l9_n685(x)
- else
- fun_l9_n107(x)
- end
-end
-
-def fun_l8_n170(x)
- if (x < 1)
- fun_l9_n636(x)
- else
- fun_l9_n280(x)
- end
-end
-
-def fun_l8_n171(x)
- if (x < 1)
- fun_l9_n254(x)
- else
- fun_l9_n742(x)
- end
-end
-
-def fun_l8_n172(x)
- if (x < 1)
- fun_l9_n829(x)
- else
- fun_l9_n632(x)
- end
-end
-
-def fun_l8_n173(x)
- if (x < 1)
- fun_l9_n341(x)
- else
- fun_l9_n186(x)
- end
-end
-
-def fun_l8_n174(x)
- if (x < 1)
- fun_l9_n903(x)
- else
- fun_l9_n93(x)
- end
-end
-
-def fun_l8_n175(x)
- if (x < 1)
- fun_l9_n416(x)
- else
- fun_l9_n318(x)
- end
-end
-
-def fun_l8_n176(x)
- if (x < 1)
- fun_l9_n893(x)
- else
- fun_l9_n438(x)
- end
-end
-
-def fun_l8_n177(x)
- if (x < 1)
- fun_l9_n551(x)
- else
- fun_l9_n312(x)
- end
-end
-
-def fun_l8_n178(x)
- if (x < 1)
- fun_l9_n582(x)
- else
- fun_l9_n926(x)
- end
-end
-
-def fun_l8_n179(x)
- if (x < 1)
- fun_l9_n547(x)
- else
- fun_l9_n804(x)
- end
-end
-
-def fun_l8_n180(x)
- if (x < 1)
- fun_l9_n589(x)
- else
- fun_l9_n246(x)
- end
-end
-
-def fun_l8_n181(x)
- if (x < 1)
- fun_l9_n67(x)
- else
- fun_l9_n345(x)
- end
-end
-
-def fun_l8_n182(x)
- if (x < 1)
- fun_l9_n958(x)
- else
- fun_l9_n923(x)
- end
-end
-
-def fun_l8_n183(x)
- if (x < 1)
- fun_l9_n418(x)
- else
- fun_l9_n532(x)
- end
-end
-
-def fun_l8_n184(x)
- if (x < 1)
- fun_l9_n372(x)
- else
- fun_l9_n808(x)
- end
-end
-
-def fun_l8_n185(x)
- if (x < 1)
- fun_l9_n849(x)
- else
- fun_l9_n755(x)
- end
-end
-
-def fun_l8_n186(x)
- if (x < 1)
- fun_l9_n544(x)
- else
- fun_l9_n73(x)
- end
-end
-
-def fun_l8_n187(x)
- if (x < 1)
- fun_l9_n729(x)
- else
- fun_l9_n295(x)
- end
-end
-
-def fun_l8_n188(x)
- if (x < 1)
- fun_l9_n782(x)
- else
- fun_l9_n117(x)
- end
-end
-
-def fun_l8_n189(x)
- if (x < 1)
- fun_l9_n947(x)
- else
- fun_l9_n93(x)
- end
-end
-
-def fun_l8_n190(x)
- if (x < 1)
- fun_l9_n989(x)
- else
- fun_l9_n444(x)
- end
-end
-
-def fun_l8_n191(x)
- if (x < 1)
- fun_l9_n394(x)
- else
- fun_l9_n741(x)
- end
-end
-
-def fun_l8_n192(x)
- if (x < 1)
- fun_l9_n582(x)
- else
- fun_l9_n333(x)
- end
-end
-
-def fun_l8_n193(x)
- if (x < 1)
- fun_l9_n73(x)
- else
- fun_l9_n227(x)
- end
-end
-
-def fun_l8_n194(x)
- if (x < 1)
- fun_l9_n946(x)
- else
- fun_l9_n354(x)
- end
-end
-
-def fun_l8_n195(x)
- if (x < 1)
- fun_l9_n383(x)
- else
- fun_l9_n863(x)
- end
-end
-
-def fun_l8_n196(x)
- if (x < 1)
- fun_l9_n441(x)
- else
- fun_l9_n947(x)
- end
-end
-
-def fun_l8_n197(x)
- if (x < 1)
- fun_l9_n506(x)
- else
- fun_l9_n45(x)
- end
-end
-
-def fun_l8_n198(x)
- if (x < 1)
- fun_l9_n890(x)
- else
- fun_l9_n341(x)
- end
-end
-
-def fun_l8_n199(x)
- if (x < 1)
- fun_l9_n75(x)
- else
- fun_l9_n56(x)
- end
-end
-
-def fun_l8_n200(x)
- if (x < 1)
- fun_l9_n386(x)
- else
- fun_l9_n280(x)
- end
-end
-
-def fun_l8_n201(x)
- if (x < 1)
- fun_l9_n364(x)
- else
- fun_l9_n424(x)
- end
-end
-
-def fun_l8_n202(x)
- if (x < 1)
- fun_l9_n923(x)
- else
- fun_l9_n326(x)
- end
-end
-
-def fun_l8_n203(x)
- if (x < 1)
- fun_l9_n692(x)
- else
- fun_l9_n502(x)
- end
-end
-
-def fun_l8_n204(x)
- if (x < 1)
- fun_l9_n508(x)
- else
- fun_l9_n561(x)
- end
-end
-
-def fun_l8_n205(x)
- if (x < 1)
- fun_l9_n496(x)
- else
- fun_l9_n949(x)
- end
-end
-
-def fun_l8_n206(x)
- if (x < 1)
- fun_l9_n852(x)
- else
- fun_l9_n447(x)
- end
-end
-
-def fun_l8_n207(x)
- if (x < 1)
- fun_l9_n757(x)
- else
- fun_l9_n782(x)
- end
-end
-
-def fun_l8_n208(x)
- if (x < 1)
- fun_l9_n505(x)
- else
- fun_l9_n32(x)
- end
-end
-
-def fun_l8_n209(x)
- if (x < 1)
- fun_l9_n591(x)
- else
- fun_l9_n967(x)
- end
-end
-
-def fun_l8_n210(x)
- if (x < 1)
- fun_l9_n537(x)
- else
- fun_l9_n380(x)
- end
-end
-
-def fun_l8_n211(x)
- if (x < 1)
- fun_l9_n19(x)
- else
- fun_l9_n362(x)
- end
-end
-
-def fun_l8_n212(x)
- if (x < 1)
- fun_l9_n759(x)
- else
- fun_l9_n835(x)
- end
-end
-
-def fun_l8_n213(x)
- if (x < 1)
- fun_l9_n518(x)
- else
- fun_l9_n294(x)
- end
-end
-
-def fun_l8_n214(x)
- if (x < 1)
- fun_l9_n921(x)
- else
- fun_l9_n687(x)
- end
-end
-
-def fun_l8_n215(x)
- if (x < 1)
- fun_l9_n114(x)
- else
- fun_l9_n130(x)
- end
-end
-
-def fun_l8_n216(x)
- if (x < 1)
- fun_l9_n829(x)
- else
- fun_l9_n8(x)
- end
-end
-
-def fun_l8_n217(x)
- if (x < 1)
- fun_l9_n875(x)
- else
- fun_l9_n392(x)
- end
-end
-
-def fun_l8_n218(x)
- if (x < 1)
- fun_l9_n13(x)
- else
- fun_l9_n907(x)
- end
-end
-
-def fun_l8_n219(x)
- if (x < 1)
- fun_l9_n457(x)
- else
- fun_l9_n77(x)
- end
-end
-
-def fun_l8_n220(x)
- if (x < 1)
- fun_l9_n404(x)
- else
- fun_l9_n12(x)
- end
-end
-
-def fun_l8_n221(x)
- if (x < 1)
- fun_l9_n244(x)
- else
- fun_l9_n231(x)
- end
-end
-
-def fun_l8_n222(x)
- if (x < 1)
- fun_l9_n205(x)
- else
- fun_l9_n458(x)
- end
-end
-
-def fun_l8_n223(x)
- if (x < 1)
- fun_l9_n570(x)
- else
- fun_l9_n44(x)
- end
-end
-
-def fun_l8_n224(x)
- if (x < 1)
- fun_l9_n651(x)
- else
- fun_l9_n836(x)
- end
-end
-
-def fun_l8_n225(x)
- if (x < 1)
- fun_l9_n518(x)
- else
- fun_l9_n845(x)
- end
-end
-
-def fun_l8_n226(x)
- if (x < 1)
- fun_l9_n92(x)
- else
- fun_l9_n637(x)
- end
-end
-
-def fun_l8_n227(x)
- if (x < 1)
- fun_l9_n990(x)
- else
- fun_l9_n926(x)
- end
-end
-
-def fun_l8_n228(x)
- if (x < 1)
- fun_l9_n465(x)
- else
- fun_l9_n764(x)
- end
-end
-
-def fun_l8_n229(x)
- if (x < 1)
- fun_l9_n7(x)
- else
- fun_l9_n981(x)
- end
-end
-
-def fun_l8_n230(x)
- if (x < 1)
- fun_l9_n250(x)
- else
- fun_l9_n690(x)
- end
-end
-
-def fun_l8_n231(x)
- if (x < 1)
- fun_l9_n101(x)
- else
- fun_l9_n342(x)
- end
-end
-
-def fun_l8_n232(x)
- if (x < 1)
- fun_l9_n659(x)
- else
- fun_l9_n216(x)
- end
-end
-
-def fun_l8_n233(x)
- if (x < 1)
- fun_l9_n129(x)
- else
- fun_l9_n439(x)
- end
-end
-
-def fun_l8_n234(x)
- if (x < 1)
- fun_l9_n616(x)
- else
- fun_l9_n700(x)
- end
-end
-
-def fun_l8_n235(x)
- if (x < 1)
- fun_l9_n850(x)
- else
- fun_l9_n254(x)
- end
-end
-
-def fun_l8_n236(x)
- if (x < 1)
- fun_l9_n186(x)
- else
- fun_l9_n592(x)
- end
-end
-
-def fun_l8_n237(x)
- if (x < 1)
- fun_l9_n895(x)
- else
- fun_l9_n752(x)
- end
-end
-
-def fun_l8_n238(x)
- if (x < 1)
- fun_l9_n496(x)
- else
- fun_l9_n784(x)
- end
-end
-
-def fun_l8_n239(x)
- if (x < 1)
- fun_l9_n579(x)
- else
- fun_l9_n144(x)
- end
-end
-
-def fun_l8_n240(x)
- if (x < 1)
- fun_l9_n805(x)
- else
- fun_l9_n851(x)
- end
-end
-
-def fun_l8_n241(x)
- if (x < 1)
- fun_l9_n756(x)
- else
- fun_l9_n332(x)
- end
-end
-
-def fun_l8_n242(x)
- if (x < 1)
- fun_l9_n898(x)
- else
- fun_l9_n285(x)
- end
-end
-
-def fun_l8_n243(x)
- if (x < 1)
- fun_l9_n729(x)
- else
- fun_l9_n149(x)
- end
-end
-
-def fun_l8_n244(x)
- if (x < 1)
- fun_l9_n881(x)
- else
- fun_l9_n356(x)
- end
-end
-
-def fun_l8_n245(x)
- if (x < 1)
- fun_l9_n351(x)
- else
- fun_l9_n805(x)
- end
-end
-
-def fun_l8_n246(x)
- if (x < 1)
- fun_l9_n493(x)
- else
- fun_l9_n200(x)
- end
-end
-
-def fun_l8_n247(x)
- if (x < 1)
- fun_l9_n706(x)
- else
- fun_l9_n917(x)
- end
-end
-
-def fun_l8_n248(x)
- if (x < 1)
- fun_l9_n370(x)
- else
- fun_l9_n755(x)
- end
-end
-
-def fun_l8_n249(x)
- if (x < 1)
- fun_l9_n859(x)
- else
- fun_l9_n496(x)
- end
-end
-
-def fun_l8_n250(x)
- if (x < 1)
- fun_l9_n443(x)
- else
- fun_l9_n113(x)
- end
-end
-
-def fun_l8_n251(x)
- if (x < 1)
- fun_l9_n631(x)
- else
- fun_l9_n195(x)
- end
-end
-
-def fun_l8_n252(x)
- if (x < 1)
- fun_l9_n357(x)
- else
- fun_l9_n694(x)
- end
-end
-
-def fun_l8_n253(x)
- if (x < 1)
- fun_l9_n387(x)
- else
- fun_l9_n820(x)
- end
-end
-
-def fun_l8_n254(x)
- if (x < 1)
- fun_l9_n909(x)
- else
- fun_l9_n559(x)
- end
-end
-
-def fun_l8_n255(x)
- if (x < 1)
- fun_l9_n474(x)
- else
- fun_l9_n864(x)
- end
-end
-
-def fun_l8_n256(x)
- if (x < 1)
- fun_l9_n914(x)
- else
- fun_l9_n672(x)
- end
-end
-
-def fun_l8_n257(x)
- if (x < 1)
- fun_l9_n915(x)
- else
- fun_l9_n177(x)
- end
-end
-
-def fun_l8_n258(x)
- if (x < 1)
- fun_l9_n917(x)
- else
- fun_l9_n210(x)
- end
-end
-
-def fun_l8_n259(x)
- if (x < 1)
- fun_l9_n851(x)
- else
- fun_l9_n342(x)
- end
-end
-
-def fun_l8_n260(x)
- if (x < 1)
- fun_l9_n205(x)
- else
- fun_l9_n412(x)
- end
-end
-
-def fun_l8_n261(x)
- if (x < 1)
- fun_l9_n110(x)
- else
- fun_l9_n62(x)
- end
-end
-
-def fun_l8_n262(x)
- if (x < 1)
- fun_l9_n706(x)
- else
- fun_l9_n903(x)
- end
-end
-
-def fun_l8_n263(x)
- if (x < 1)
- fun_l9_n403(x)
- else
- fun_l9_n994(x)
- end
-end
-
-def fun_l8_n264(x)
- if (x < 1)
- fun_l9_n631(x)
- else
- fun_l9_n126(x)
- end
-end
-
-def fun_l8_n265(x)
- if (x < 1)
- fun_l9_n216(x)
- else
- fun_l9_n573(x)
- end
-end
-
-def fun_l8_n266(x)
- if (x < 1)
- fun_l9_n174(x)
- else
- fun_l9_n495(x)
- end
-end
-
-def fun_l8_n267(x)
- if (x < 1)
- fun_l9_n802(x)
- else
- fun_l9_n881(x)
- end
-end
-
-def fun_l8_n268(x)
- if (x < 1)
- fun_l9_n148(x)
- else
- fun_l9_n399(x)
- end
-end
-
-def fun_l8_n269(x)
- if (x < 1)
- fun_l9_n675(x)
- else
- fun_l9_n596(x)
- end
-end
-
-def fun_l8_n270(x)
- if (x < 1)
- fun_l9_n306(x)
- else
- fun_l9_n413(x)
- end
-end
-
-def fun_l8_n271(x)
- if (x < 1)
- fun_l9_n205(x)
- else
- fun_l9_n569(x)
- end
-end
-
-def fun_l8_n272(x)
- if (x < 1)
- fun_l9_n6(x)
- else
- fun_l9_n531(x)
- end
-end
-
-def fun_l8_n273(x)
- if (x < 1)
- fun_l9_n516(x)
- else
- fun_l9_n172(x)
- end
-end
-
-def fun_l8_n274(x)
- if (x < 1)
- fun_l9_n641(x)
- else
- fun_l9_n85(x)
- end
-end
-
-def fun_l8_n275(x)
- if (x < 1)
- fun_l9_n258(x)
- else
- fun_l9_n773(x)
- end
-end
-
-def fun_l8_n276(x)
- if (x < 1)
- fun_l9_n233(x)
- else
- fun_l9_n222(x)
- end
-end
-
-def fun_l8_n277(x)
- if (x < 1)
- fun_l9_n615(x)
- else
- fun_l9_n598(x)
- end
-end
-
-def fun_l8_n278(x)
- if (x < 1)
- fun_l9_n126(x)
- else
- fun_l9_n270(x)
- end
-end
-
-def fun_l8_n279(x)
- if (x < 1)
- fun_l9_n186(x)
- else
- fun_l9_n78(x)
- end
-end
-
-def fun_l8_n280(x)
- if (x < 1)
- fun_l9_n731(x)
- else
- fun_l9_n114(x)
- end
-end
-
-def fun_l8_n281(x)
- if (x < 1)
- fun_l9_n513(x)
- else
- fun_l9_n69(x)
- end
-end
-
-def fun_l8_n282(x)
- if (x < 1)
- fun_l9_n208(x)
- else
- fun_l9_n466(x)
- end
-end
-
-def fun_l8_n283(x)
- if (x < 1)
- fun_l9_n958(x)
- else
- fun_l9_n86(x)
- end
-end
-
-def fun_l8_n284(x)
- if (x < 1)
- fun_l9_n663(x)
- else
- fun_l9_n619(x)
- end
-end
-
-def fun_l8_n285(x)
- if (x < 1)
- fun_l9_n698(x)
- else
- fun_l9_n97(x)
- end
-end
-
-def fun_l8_n286(x)
- if (x < 1)
- fun_l9_n544(x)
- else
- fun_l9_n791(x)
- end
-end
-
-def fun_l8_n287(x)
- if (x < 1)
- fun_l9_n51(x)
- else
- fun_l9_n415(x)
- end
-end
-
-def fun_l8_n288(x)
- if (x < 1)
- fun_l9_n942(x)
- else
- fun_l9_n11(x)
- end
-end
-
-def fun_l8_n289(x)
- if (x < 1)
- fun_l9_n386(x)
- else
- fun_l9_n507(x)
- end
-end
-
-def fun_l8_n290(x)
- if (x < 1)
- fun_l9_n983(x)
- else
- fun_l9_n81(x)
- end
-end
-
-def fun_l8_n291(x)
- if (x < 1)
- fun_l9_n403(x)
- else
- fun_l9_n628(x)
- end
-end
-
-def fun_l8_n292(x)
- if (x < 1)
- fun_l9_n479(x)
- else
- fun_l9_n379(x)
- end
-end
-
-def fun_l8_n293(x)
- if (x < 1)
- fun_l9_n284(x)
- else
- fun_l9_n109(x)
- end
-end
-
-def fun_l8_n294(x)
- if (x < 1)
- fun_l9_n29(x)
- else
- fun_l9_n802(x)
- end
-end
-
-def fun_l8_n295(x)
- if (x < 1)
- fun_l9_n579(x)
- else
- fun_l9_n371(x)
- end
-end
-
-def fun_l8_n296(x)
- if (x < 1)
- fun_l9_n96(x)
- else
- fun_l9_n632(x)
- end
-end
-
-def fun_l8_n297(x)
- if (x < 1)
- fun_l9_n442(x)
- else
- fun_l9_n396(x)
- end
-end
-
-def fun_l8_n298(x)
- if (x < 1)
- fun_l9_n902(x)
- else
- fun_l9_n804(x)
- end
-end
-
-def fun_l8_n299(x)
- if (x < 1)
- fun_l9_n561(x)
- else
- fun_l9_n952(x)
- end
-end
-
-def fun_l8_n300(x)
- if (x < 1)
- fun_l9_n757(x)
- else
- fun_l9_n819(x)
- end
-end
-
-def fun_l8_n301(x)
- if (x < 1)
- fun_l9_n97(x)
- else
- fun_l9_n892(x)
- end
-end
-
-def fun_l8_n302(x)
- if (x < 1)
- fun_l9_n67(x)
- else
- fun_l9_n765(x)
- end
-end
-
-def fun_l8_n303(x)
- if (x < 1)
- fun_l9_n166(x)
- else
- fun_l9_n769(x)
- end
-end
-
-def fun_l8_n304(x)
- if (x < 1)
- fun_l9_n592(x)
- else
- fun_l9_n423(x)
- end
-end
-
-def fun_l8_n305(x)
- if (x < 1)
- fun_l9_n354(x)
- else
- fun_l9_n953(x)
- end
-end
-
-def fun_l8_n306(x)
- if (x < 1)
- fun_l9_n857(x)
- else
- fun_l9_n18(x)
- end
-end
-
-def fun_l8_n307(x)
- if (x < 1)
- fun_l9_n445(x)
- else
- fun_l9_n796(x)
- end
-end
-
-def fun_l8_n308(x)
- if (x < 1)
- fun_l9_n293(x)
- else
- fun_l9_n304(x)
- end
-end
-
-def fun_l8_n309(x)
- if (x < 1)
- fun_l9_n859(x)
- else
- fun_l9_n282(x)
- end
-end
-
-def fun_l8_n310(x)
- if (x < 1)
- fun_l9_n133(x)
- else
- fun_l9_n90(x)
- end
-end
-
-def fun_l8_n311(x)
- if (x < 1)
- fun_l9_n997(x)
- else
- fun_l9_n201(x)
- end
-end
-
-def fun_l8_n312(x)
- if (x < 1)
- fun_l9_n140(x)
- else
- fun_l9_n772(x)
- end
-end
-
-def fun_l8_n313(x)
- if (x < 1)
- fun_l9_n761(x)
- else
- fun_l9_n980(x)
- end
-end
-
-def fun_l8_n314(x)
- if (x < 1)
- fun_l9_n357(x)
- else
- fun_l9_n552(x)
- end
-end
-
-def fun_l8_n315(x)
- if (x < 1)
- fun_l9_n312(x)
- else
- fun_l9_n412(x)
- end
-end
-
-def fun_l8_n316(x)
- if (x < 1)
- fun_l9_n700(x)
- else
- fun_l9_n551(x)
- end
-end
-
-def fun_l8_n317(x)
- if (x < 1)
- fun_l9_n623(x)
- else
- fun_l9_n219(x)
- end
-end
-
-def fun_l8_n318(x)
- if (x < 1)
- fun_l9_n613(x)
- else
- fun_l9_n959(x)
- end
-end
-
-def fun_l8_n319(x)
- if (x < 1)
- fun_l9_n978(x)
- else
- fun_l9_n596(x)
- end
-end
-
-def fun_l8_n320(x)
- if (x < 1)
- fun_l9_n542(x)
- else
- fun_l9_n527(x)
- end
-end
-
-def fun_l8_n321(x)
- if (x < 1)
- fun_l9_n877(x)
- else
- fun_l9_n108(x)
- end
-end
-
-def fun_l8_n322(x)
- if (x < 1)
- fun_l9_n817(x)
- else
- fun_l9_n476(x)
- end
-end
-
-def fun_l8_n323(x)
- if (x < 1)
- fun_l9_n765(x)
- else
- fun_l9_n672(x)
- end
-end
-
-def fun_l8_n324(x)
- if (x < 1)
- fun_l9_n863(x)
- else
- fun_l9_n605(x)
- end
-end
-
-def fun_l8_n325(x)
- if (x < 1)
- fun_l9_n566(x)
- else
- fun_l9_n592(x)
- end
-end
-
-def fun_l8_n326(x)
- if (x < 1)
- fun_l9_n607(x)
- else
- fun_l9_n968(x)
- end
-end
-
-def fun_l8_n327(x)
- if (x < 1)
- fun_l9_n36(x)
- else
- fun_l9_n380(x)
- end
-end
-
-def fun_l8_n328(x)
- if (x < 1)
- fun_l9_n597(x)
- else
- fun_l9_n664(x)
- end
-end
-
-def fun_l8_n329(x)
- if (x < 1)
- fun_l9_n195(x)
- else
- fun_l9_n268(x)
- end
-end
-
-def fun_l8_n330(x)
- if (x < 1)
- fun_l9_n419(x)
- else
- fun_l9_n715(x)
- end
-end
-
-def fun_l8_n331(x)
- if (x < 1)
- fun_l9_n451(x)
- else
- fun_l9_n518(x)
- end
-end
-
-def fun_l8_n332(x)
- if (x < 1)
- fun_l9_n106(x)
- else
- fun_l9_n236(x)
- end
-end
-
-def fun_l8_n333(x)
- if (x < 1)
- fun_l9_n611(x)
- else
- fun_l9_n825(x)
- end
-end
-
-def fun_l8_n334(x)
- if (x < 1)
- fun_l9_n394(x)
- else
- fun_l9_n34(x)
- end
-end
-
-def fun_l8_n335(x)
- if (x < 1)
- fun_l9_n63(x)
- else
- fun_l9_n58(x)
- end
-end
-
-def fun_l8_n336(x)
- if (x < 1)
- fun_l9_n475(x)
- else
- fun_l9_n455(x)
- end
-end
-
-def fun_l8_n337(x)
- if (x < 1)
- fun_l9_n836(x)
- else
- fun_l9_n318(x)
- end
-end
-
-def fun_l8_n338(x)
- if (x < 1)
- fun_l9_n844(x)
- else
- fun_l9_n21(x)
- end
-end
-
-def fun_l8_n339(x)
- if (x < 1)
- fun_l9_n628(x)
- else
- fun_l9_n721(x)
- end
-end
-
-def fun_l8_n340(x)
- if (x < 1)
- fun_l9_n966(x)
- else
- fun_l9_n833(x)
- end
-end
-
-def fun_l8_n341(x)
- if (x < 1)
- fun_l9_n267(x)
- else
- fun_l9_n28(x)
- end
-end
-
-def fun_l8_n342(x)
- if (x < 1)
- fun_l9_n204(x)
- else
- fun_l9_n838(x)
- end
-end
-
-def fun_l8_n343(x)
- if (x < 1)
- fun_l9_n151(x)
- else
- fun_l9_n382(x)
- end
-end
-
-def fun_l8_n344(x)
- if (x < 1)
- fun_l9_n409(x)
- else
- fun_l9_n591(x)
- end
-end
-
-def fun_l8_n345(x)
- if (x < 1)
- fun_l9_n680(x)
- else
- fun_l9_n912(x)
- end
-end
-
-def fun_l8_n346(x)
- if (x < 1)
- fun_l9_n150(x)
- else
- fun_l9_n34(x)
- end
-end
-
-def fun_l8_n347(x)
- if (x < 1)
- fun_l9_n538(x)
- else
- fun_l9_n441(x)
- end
-end
-
-def fun_l8_n348(x)
- if (x < 1)
- fun_l9_n707(x)
- else
- fun_l9_n199(x)
- end
-end
-
-def fun_l8_n349(x)
- if (x < 1)
- fun_l9_n245(x)
- else
- fun_l9_n809(x)
- end
-end
-
-def fun_l8_n350(x)
- if (x < 1)
- fun_l9_n16(x)
- else
- fun_l9_n565(x)
- end
-end
-
-def fun_l8_n351(x)
- if (x < 1)
- fun_l9_n857(x)
- else
- fun_l9_n37(x)
- end
-end
-
-def fun_l8_n352(x)
- if (x < 1)
- fun_l9_n816(x)
- else
- fun_l9_n941(x)
- end
-end
-
-def fun_l8_n353(x)
- if (x < 1)
- fun_l9_n605(x)
- else
- fun_l9_n476(x)
- end
-end
-
-def fun_l8_n354(x)
- if (x < 1)
- fun_l9_n641(x)
- else
- fun_l9_n319(x)
- end
-end
-
-def fun_l8_n355(x)
- if (x < 1)
- fun_l9_n133(x)
- else
- fun_l9_n676(x)
- end
-end
-
-def fun_l8_n356(x)
- if (x < 1)
- fun_l9_n826(x)
- else
- fun_l9_n926(x)
- end
-end
-
-def fun_l8_n357(x)
- if (x < 1)
- fun_l9_n17(x)
- else
- fun_l9_n486(x)
- end
-end
-
-def fun_l8_n358(x)
- if (x < 1)
- fun_l9_n90(x)
- else
- fun_l9_n744(x)
- end
-end
-
-def fun_l8_n359(x)
- if (x < 1)
- fun_l9_n745(x)
- else
- fun_l9_n158(x)
- end
-end
-
-def fun_l8_n360(x)
- if (x < 1)
- fun_l9_n261(x)
- else
- fun_l9_n878(x)
- end
-end
-
-def fun_l8_n361(x)
- if (x < 1)
- fun_l9_n832(x)
- else
- fun_l9_n905(x)
- end
-end
-
-def fun_l8_n362(x)
- if (x < 1)
- fun_l9_n879(x)
- else
- fun_l9_n475(x)
- end
-end
-
-def fun_l8_n363(x)
- if (x < 1)
- fun_l9_n586(x)
- else
- fun_l9_n272(x)
- end
-end
-
-def fun_l8_n364(x)
- if (x < 1)
- fun_l9_n469(x)
- else
- fun_l9_n918(x)
- end
-end
-
-def fun_l8_n365(x)
- if (x < 1)
- fun_l9_n568(x)
- else
- fun_l9_n777(x)
- end
-end
-
-def fun_l8_n366(x)
- if (x < 1)
- fun_l9_n662(x)
- else
- fun_l9_n957(x)
- end
-end
-
-def fun_l8_n367(x)
- if (x < 1)
- fun_l9_n26(x)
- else
- fun_l9_n593(x)
- end
-end
-
-def fun_l8_n368(x)
- if (x < 1)
- fun_l9_n766(x)
- else
- fun_l9_n598(x)
- end
-end
-
-def fun_l8_n369(x)
- if (x < 1)
- fun_l9_n362(x)
- else
- fun_l9_n491(x)
- end
-end
-
-def fun_l8_n370(x)
- if (x < 1)
- fun_l9_n205(x)
- else
- fun_l9_n585(x)
- end
-end
-
-def fun_l8_n371(x)
- if (x < 1)
- fun_l9_n301(x)
- else
- fun_l9_n796(x)
- end
-end
-
-def fun_l8_n372(x)
- if (x < 1)
- fun_l9_n527(x)
- else
- fun_l9_n31(x)
- end
-end
-
-def fun_l8_n373(x)
- if (x < 1)
- fun_l9_n461(x)
- else
- fun_l9_n42(x)
- end
-end
-
-def fun_l8_n374(x)
- if (x < 1)
- fun_l9_n288(x)
- else
- fun_l9_n534(x)
- end
-end
-
-def fun_l8_n375(x)
- if (x < 1)
- fun_l9_n558(x)
- else
- fun_l9_n403(x)
- end
-end
-
-def fun_l8_n376(x)
- if (x < 1)
- fun_l9_n835(x)
- else
- fun_l9_n390(x)
- end
-end
-
-def fun_l8_n377(x)
- if (x < 1)
- fun_l9_n658(x)
- else
- fun_l9_n768(x)
- end
-end
-
-def fun_l8_n378(x)
- if (x < 1)
- fun_l9_n856(x)
- else
- fun_l9_n299(x)
- end
-end
-
-def fun_l8_n379(x)
- if (x < 1)
- fun_l9_n196(x)
- else
- fun_l9_n540(x)
- end
-end
-
-def fun_l8_n380(x)
- if (x < 1)
- fun_l9_n70(x)
- else
- fun_l9_n627(x)
- end
-end
-
-def fun_l8_n381(x)
- if (x < 1)
- fun_l9_n28(x)
- else
- fun_l9_n377(x)
- end
-end
-
-def fun_l8_n382(x)
- if (x < 1)
- fun_l9_n955(x)
- else
- fun_l9_n124(x)
- end
-end
-
-def fun_l8_n383(x)
- if (x < 1)
- fun_l9_n16(x)
- else
- fun_l9_n783(x)
- end
-end
-
-def fun_l8_n384(x)
- if (x < 1)
- fun_l9_n843(x)
- else
- fun_l9_n801(x)
- end
-end
-
-def fun_l8_n385(x)
- if (x < 1)
- fun_l9_n876(x)
- else
- fun_l9_n152(x)
- end
-end
-
-def fun_l8_n386(x)
- if (x < 1)
- fun_l9_n6(x)
- else
- fun_l9_n432(x)
- end
-end
-
-def fun_l8_n387(x)
- if (x < 1)
- fun_l9_n636(x)
- else
- fun_l9_n325(x)
- end
-end
-
-def fun_l8_n388(x)
- if (x < 1)
- fun_l9_n267(x)
- else
- fun_l9_n716(x)
- end
-end
-
-def fun_l8_n389(x)
- if (x < 1)
- fun_l9_n898(x)
- else
- fun_l9_n776(x)
- end
-end
-
-def fun_l8_n390(x)
- if (x < 1)
- fun_l9_n481(x)
- else
- fun_l9_n878(x)
- end
-end
-
-def fun_l8_n391(x)
- if (x < 1)
- fun_l9_n398(x)
- else
- fun_l9_n159(x)
- end
-end
-
-def fun_l8_n392(x)
- if (x < 1)
- fun_l9_n889(x)
- else
- fun_l9_n517(x)
- end
-end
-
-def fun_l8_n393(x)
- if (x < 1)
- fun_l9_n460(x)
- else
- fun_l9_n440(x)
- end
-end
-
-def fun_l8_n394(x)
- if (x < 1)
- fun_l9_n576(x)
- else
- fun_l9_n421(x)
- end
-end
-
-def fun_l8_n395(x)
- if (x < 1)
- fun_l9_n310(x)
- else
- fun_l9_n646(x)
- end
-end
-
-def fun_l8_n396(x)
- if (x < 1)
- fun_l9_n914(x)
- else
- fun_l9_n414(x)
- end
-end
-
-def fun_l8_n397(x)
- if (x < 1)
- fun_l9_n330(x)
- else
- fun_l9_n520(x)
- end
-end
-
-def fun_l8_n398(x)
- if (x < 1)
- fun_l9_n175(x)
- else
- fun_l9_n975(x)
- end
-end
-
-def fun_l8_n399(x)
- if (x < 1)
- fun_l9_n443(x)
- else
- fun_l9_n964(x)
- end
-end
-
-def fun_l8_n400(x)
- if (x < 1)
- fun_l9_n810(x)
- else
- fun_l9_n102(x)
- end
-end
-
-def fun_l8_n401(x)
- if (x < 1)
- fun_l9_n352(x)
- else
- fun_l9_n295(x)
- end
-end
-
-def fun_l8_n402(x)
- if (x < 1)
- fun_l9_n980(x)
- else
- fun_l9_n974(x)
- end
-end
-
-def fun_l8_n403(x)
- if (x < 1)
- fun_l9_n169(x)
- else
- fun_l9_n877(x)
- end
-end
-
-def fun_l8_n404(x)
- if (x < 1)
- fun_l9_n333(x)
- else
- fun_l9_n306(x)
- end
-end
-
-def fun_l8_n405(x)
- if (x < 1)
- fun_l9_n183(x)
- else
- fun_l9_n704(x)
- end
-end
-
-def fun_l8_n406(x)
- if (x < 1)
- fun_l9_n532(x)
- else
- fun_l9_n684(x)
- end
-end
-
-def fun_l8_n407(x)
- if (x < 1)
- fun_l9_n526(x)
- else
- fun_l9_n287(x)
- end
-end
-
-def fun_l8_n408(x)
- if (x < 1)
- fun_l9_n377(x)
- else
- fun_l9_n351(x)
- end
-end
-
-def fun_l8_n409(x)
- if (x < 1)
- fun_l9_n770(x)
- else
- fun_l9_n738(x)
- end
-end
-
-def fun_l8_n410(x)
- if (x < 1)
- fun_l9_n61(x)
- else
- fun_l9_n499(x)
- end
-end
-
-def fun_l8_n411(x)
- if (x < 1)
- fun_l9_n156(x)
- else
- fun_l9_n247(x)
- end
-end
-
-def fun_l8_n412(x)
- if (x < 1)
- fun_l9_n431(x)
- else
- fun_l9_n636(x)
- end
-end
-
-def fun_l8_n413(x)
- if (x < 1)
- fun_l9_n540(x)
- else
- fun_l9_n329(x)
- end
-end
-
-def fun_l8_n414(x)
- if (x < 1)
- fun_l9_n49(x)
- else
- fun_l9_n979(x)
- end
-end
-
-def fun_l8_n415(x)
- if (x < 1)
- fun_l9_n94(x)
- else
- fun_l9_n487(x)
- end
-end
-
-def fun_l8_n416(x)
- if (x < 1)
- fun_l9_n679(x)
- else
- fun_l9_n644(x)
- end
-end
-
-def fun_l8_n417(x)
- if (x < 1)
- fun_l9_n907(x)
- else
- fun_l9_n324(x)
- end
-end
-
-def fun_l8_n418(x)
- if (x < 1)
- fun_l9_n426(x)
- else
- fun_l9_n495(x)
- end
-end
-
-def fun_l8_n419(x)
- if (x < 1)
- fun_l9_n273(x)
- else
- fun_l9_n838(x)
- end
-end
-
-def fun_l8_n420(x)
- if (x < 1)
- fun_l9_n631(x)
- else
- fun_l9_n205(x)
- end
-end
-
-def fun_l8_n421(x)
- if (x < 1)
- fun_l9_n484(x)
- else
- fun_l9_n80(x)
- end
-end
-
-def fun_l8_n422(x)
- if (x < 1)
- fun_l9_n908(x)
- else
- fun_l9_n514(x)
- end
-end
-
-def fun_l8_n423(x)
- if (x < 1)
- fun_l9_n265(x)
- else
- fun_l9_n190(x)
- end
-end
-
-def fun_l8_n424(x)
- if (x < 1)
- fun_l9_n463(x)
- else
- fun_l9_n714(x)
- end
-end
-
-def fun_l8_n425(x)
- if (x < 1)
- fun_l9_n780(x)
- else
- fun_l9_n444(x)
- end
-end
-
-def fun_l8_n426(x)
- if (x < 1)
- fun_l9_n418(x)
- else
- fun_l9_n518(x)
- end
-end
-
-def fun_l8_n427(x)
- if (x < 1)
- fun_l9_n912(x)
- else
- fun_l9_n27(x)
- end
-end
-
-def fun_l8_n428(x)
- if (x < 1)
- fun_l9_n157(x)
- else
- fun_l9_n547(x)
- end
-end
-
-def fun_l8_n429(x)
- if (x < 1)
- fun_l9_n760(x)
- else
- fun_l9_n466(x)
- end
-end
-
-def fun_l8_n430(x)
- if (x < 1)
- fun_l9_n726(x)
- else
- fun_l9_n609(x)
- end
-end
-
-def fun_l8_n431(x)
- if (x < 1)
- fun_l9_n206(x)
- else
- fun_l9_n65(x)
- end
-end
-
-def fun_l8_n432(x)
- if (x < 1)
- fun_l9_n396(x)
- else
- fun_l9_n325(x)
- end
-end
-
-def fun_l8_n433(x)
- if (x < 1)
- fun_l9_n100(x)
- else
- fun_l9_n519(x)
- end
-end
-
-def fun_l8_n434(x)
- if (x < 1)
- fun_l9_n923(x)
- else
- fun_l9_n387(x)
- end
-end
-
-def fun_l8_n435(x)
- if (x < 1)
- fun_l9_n334(x)
- else
- fun_l9_n866(x)
- end
-end
-
-def fun_l8_n436(x)
- if (x < 1)
- fun_l9_n896(x)
- else
- fun_l9_n780(x)
- end
-end
-
-def fun_l8_n437(x)
- if (x < 1)
- fun_l9_n328(x)
- else
- fun_l9_n776(x)
- end
-end
-
-def fun_l8_n438(x)
- if (x < 1)
- fun_l9_n414(x)
- else
- fun_l9_n884(x)
- end
-end
-
-def fun_l8_n439(x)
- if (x < 1)
- fun_l9_n528(x)
- else
- fun_l9_n419(x)
- end
-end
-
-def fun_l8_n440(x)
- if (x < 1)
- fun_l9_n192(x)
- else
- fun_l9_n973(x)
- end
-end
-
-def fun_l8_n441(x)
- if (x < 1)
- fun_l9_n679(x)
- else
- fun_l9_n135(x)
- end
-end
-
-def fun_l8_n442(x)
- if (x < 1)
- fun_l9_n294(x)
- else
- fun_l9_n138(x)
- end
-end
-
-def fun_l8_n443(x)
- if (x < 1)
- fun_l9_n784(x)
- else
- fun_l9_n940(x)
- end
-end
-
-def fun_l8_n444(x)
- if (x < 1)
- fun_l9_n834(x)
- else
- fun_l9_n127(x)
- end
-end
-
-def fun_l8_n445(x)
- if (x < 1)
- fun_l9_n217(x)
- else
- fun_l9_n788(x)
- end
-end
-
-def fun_l8_n446(x)
- if (x < 1)
- fun_l9_n173(x)
- else
- fun_l9_n49(x)
- end
-end
-
-def fun_l8_n447(x)
- if (x < 1)
- fun_l9_n493(x)
- else
- fun_l9_n384(x)
- end
-end
-
-def fun_l8_n448(x)
- if (x < 1)
- fun_l9_n770(x)
- else
- fun_l9_n761(x)
- end
-end
-
-def fun_l8_n449(x)
- if (x < 1)
- fun_l9_n633(x)
- else
- fun_l9_n555(x)
- end
-end
-
-def fun_l8_n450(x)
- if (x < 1)
- fun_l9_n25(x)
- else
- fun_l9_n714(x)
- end
-end
-
-def fun_l8_n451(x)
- if (x < 1)
- fun_l9_n960(x)
- else
- fun_l9_n371(x)
- end
-end
-
-def fun_l8_n452(x)
- if (x < 1)
- fun_l9_n733(x)
- else
- fun_l9_n996(x)
- end
-end
-
-def fun_l8_n453(x)
- if (x < 1)
- fun_l9_n628(x)
- else
- fun_l9_n512(x)
- end
-end
-
-def fun_l8_n454(x)
- if (x < 1)
- fun_l9_n406(x)
- else
- fun_l9_n671(x)
- end
-end
-
-def fun_l8_n455(x)
- if (x < 1)
- fun_l9_n47(x)
- else
- fun_l9_n102(x)
- end
-end
-
-def fun_l8_n456(x)
- if (x < 1)
- fun_l9_n85(x)
- else
- fun_l9_n591(x)
- end
-end
-
-def fun_l8_n457(x)
- if (x < 1)
- fun_l9_n234(x)
- else
- fun_l9_n209(x)
- end
-end
-
-def fun_l8_n458(x)
- if (x < 1)
- fun_l9_n186(x)
- else
- fun_l9_n928(x)
- end
-end
-
-def fun_l8_n459(x)
- if (x < 1)
- fun_l9_n36(x)
- else
- fun_l9_n783(x)
- end
-end
-
-def fun_l8_n460(x)
- if (x < 1)
- fun_l9_n775(x)
- else
- fun_l9_n641(x)
- end
-end
-
-def fun_l8_n461(x)
- if (x < 1)
- fun_l9_n426(x)
- else
- fun_l9_n740(x)
- end
-end
-
-def fun_l8_n462(x)
- if (x < 1)
- fun_l9_n770(x)
- else
- fun_l9_n113(x)
- end
-end
-
-def fun_l8_n463(x)
- if (x < 1)
- fun_l9_n94(x)
- else
- fun_l9_n574(x)
- end
-end
-
-def fun_l8_n464(x)
- if (x < 1)
- fun_l9_n457(x)
- else
- fun_l9_n776(x)
- end
-end
-
-def fun_l8_n465(x)
- if (x < 1)
- fun_l9_n252(x)
- else
- fun_l9_n182(x)
- end
-end
-
-def fun_l8_n466(x)
- if (x < 1)
- fun_l9_n157(x)
- else
- fun_l9_n849(x)
- end
-end
-
-def fun_l8_n467(x)
- if (x < 1)
- fun_l9_n393(x)
- else
- fun_l9_n437(x)
- end
-end
-
-def fun_l8_n468(x)
- if (x < 1)
- fun_l9_n269(x)
- else
- fun_l9_n381(x)
- end
-end
-
-def fun_l8_n469(x)
- if (x < 1)
- fun_l9_n97(x)
- else
- fun_l9_n184(x)
- end
-end
-
-def fun_l8_n470(x)
- if (x < 1)
- fun_l9_n157(x)
- else
- fun_l9_n621(x)
- end
-end
-
-def fun_l8_n471(x)
- if (x < 1)
- fun_l9_n627(x)
- else
- fun_l9_n793(x)
- end
-end
-
-def fun_l8_n472(x)
- if (x < 1)
- fun_l9_n117(x)
- else
- fun_l9_n318(x)
- end
-end
-
-def fun_l8_n473(x)
- if (x < 1)
- fun_l9_n238(x)
- else
- fun_l9_n559(x)
- end
-end
-
-def fun_l8_n474(x)
- if (x < 1)
- fun_l9_n81(x)
- else
- fun_l9_n355(x)
- end
-end
-
-def fun_l8_n475(x)
- if (x < 1)
- fun_l9_n889(x)
- else
- fun_l9_n940(x)
- end
-end
-
-def fun_l8_n476(x)
- if (x < 1)
- fun_l9_n358(x)
- else
- fun_l9_n52(x)
- end
-end
-
-def fun_l8_n477(x)
- if (x < 1)
- fun_l9_n144(x)
- else
- fun_l9_n575(x)
- end
-end
-
-def fun_l8_n478(x)
- if (x < 1)
- fun_l9_n975(x)
- else
- fun_l9_n740(x)
- end
-end
-
-def fun_l8_n479(x)
- if (x < 1)
- fun_l9_n552(x)
- else
- fun_l9_n169(x)
- end
-end
-
-def fun_l8_n480(x)
- if (x < 1)
- fun_l9_n854(x)
- else
- fun_l9_n524(x)
- end
-end
-
-def fun_l8_n481(x)
- if (x < 1)
- fun_l9_n461(x)
- else
- fun_l9_n65(x)
- end
-end
-
-def fun_l8_n482(x)
- if (x < 1)
- fun_l9_n809(x)
- else
- fun_l9_n844(x)
- end
-end
-
-def fun_l8_n483(x)
- if (x < 1)
- fun_l9_n741(x)
- else
- fun_l9_n327(x)
- end
-end
-
-def fun_l8_n484(x)
- if (x < 1)
- fun_l9_n560(x)
- else
- fun_l9_n385(x)
- end
-end
-
-def fun_l8_n485(x)
- if (x < 1)
- fun_l9_n798(x)
- else
- fun_l9_n154(x)
- end
-end
-
-def fun_l8_n486(x)
- if (x < 1)
- fun_l9_n892(x)
- else
- fun_l9_n367(x)
- end
-end
-
-def fun_l8_n487(x)
- if (x < 1)
- fun_l9_n423(x)
- else
- fun_l9_n723(x)
- end
-end
-
-def fun_l8_n488(x)
- if (x < 1)
- fun_l9_n618(x)
- else
- fun_l9_n649(x)
- end
-end
-
-def fun_l8_n489(x)
- if (x < 1)
- fun_l9_n261(x)
- else
- fun_l9_n495(x)
- end
-end
-
-def fun_l8_n490(x)
- if (x < 1)
- fun_l9_n566(x)
- else
- fun_l9_n405(x)
- end
-end
-
-def fun_l8_n491(x)
- if (x < 1)
- fun_l9_n718(x)
- else
- fun_l9_n674(x)
- end
-end
-
-def fun_l8_n492(x)
- if (x < 1)
- fun_l9_n487(x)
- else
- fun_l9_n95(x)
- end
-end
-
-def fun_l8_n493(x)
- if (x < 1)
- fun_l9_n473(x)
- else
- fun_l9_n722(x)
- end
-end
-
-def fun_l8_n494(x)
- if (x < 1)
- fun_l9_n460(x)
- else
- fun_l9_n157(x)
- end
-end
-
-def fun_l8_n495(x)
- if (x < 1)
- fun_l9_n812(x)
- else
- fun_l9_n807(x)
- end
-end
-
-def fun_l8_n496(x)
- if (x < 1)
- fun_l9_n609(x)
- else
- fun_l9_n697(x)
- end
-end
-
-def fun_l8_n497(x)
- if (x < 1)
- fun_l9_n894(x)
- else
- fun_l9_n580(x)
- end
-end
-
-def fun_l8_n498(x)
- if (x < 1)
- fun_l9_n642(x)
- else
- fun_l9_n13(x)
- end
-end
-
-def fun_l8_n499(x)
- if (x < 1)
- fun_l9_n961(x)
- else
- fun_l9_n669(x)
- end
-end
-
-def fun_l8_n500(x)
- if (x < 1)
- fun_l9_n587(x)
- else
- fun_l9_n828(x)
- end
-end
-
-def fun_l8_n501(x)
- if (x < 1)
- fun_l9_n30(x)
- else
- fun_l9_n966(x)
- end
-end
-
-def fun_l8_n502(x)
- if (x < 1)
- fun_l9_n436(x)
- else
- fun_l9_n170(x)
- end
-end
-
-def fun_l8_n503(x)
- if (x < 1)
- fun_l9_n20(x)
- else
- fun_l9_n927(x)
- end
-end
-
-def fun_l8_n504(x)
- if (x < 1)
- fun_l9_n326(x)
- else
- fun_l9_n223(x)
- end
-end
-
-def fun_l8_n505(x)
- if (x < 1)
- fun_l9_n911(x)
- else
- fun_l9_n746(x)
- end
-end
-
-def fun_l8_n506(x)
- if (x < 1)
- fun_l9_n333(x)
- else
- fun_l9_n773(x)
- end
-end
-
-def fun_l8_n507(x)
- if (x < 1)
- fun_l9_n514(x)
- else
- fun_l9_n882(x)
- end
-end
-
-def fun_l8_n508(x)
- if (x < 1)
- fun_l9_n918(x)
- else
- fun_l9_n713(x)
- end
-end
-
-def fun_l8_n509(x)
- if (x < 1)
- fun_l9_n694(x)
- else
- fun_l9_n950(x)
- end
-end
-
-def fun_l8_n510(x)
- if (x < 1)
- fun_l9_n77(x)
- else
- fun_l9_n65(x)
- end
-end
-
-def fun_l8_n511(x)
- if (x < 1)
- fun_l9_n506(x)
- else
- fun_l9_n144(x)
- end
-end
-
-def fun_l8_n512(x)
- if (x < 1)
- fun_l9_n69(x)
- else
- fun_l9_n308(x)
- end
-end
-
-def fun_l8_n513(x)
- if (x < 1)
- fun_l9_n377(x)
- else
- fun_l9_n531(x)
- end
-end
-
-def fun_l8_n514(x)
- if (x < 1)
- fun_l9_n342(x)
- else
- fun_l9_n265(x)
- end
-end
-
-def fun_l8_n515(x)
- if (x < 1)
- fun_l9_n453(x)
- else
- fun_l9_n227(x)
- end
-end
-
-def fun_l8_n516(x)
- if (x < 1)
- fun_l9_n396(x)
- else
- fun_l9_n130(x)
- end
-end
-
-def fun_l8_n517(x)
- if (x < 1)
- fun_l9_n715(x)
- else
- fun_l9_n953(x)
- end
-end
-
-def fun_l8_n518(x)
- if (x < 1)
- fun_l9_n326(x)
- else
- fun_l9_n949(x)
- end
-end
-
-def fun_l8_n519(x)
- if (x < 1)
- fun_l9_n535(x)
- else
- fun_l9_n41(x)
- end
-end
-
-def fun_l8_n520(x)
- if (x < 1)
- fun_l9_n985(x)
- else
- fun_l9_n942(x)
- end
-end
-
-def fun_l8_n521(x)
- if (x < 1)
- fun_l9_n347(x)
- else
- fun_l9_n263(x)
- end
-end
-
-def fun_l8_n522(x)
- if (x < 1)
- fun_l9_n532(x)
- else
- fun_l9_n378(x)
- end
-end
-
-def fun_l8_n523(x)
- if (x < 1)
- fun_l9_n362(x)
- else
- fun_l9_n630(x)
- end
-end
-
-def fun_l8_n524(x)
- if (x < 1)
- fun_l9_n382(x)
- else
- fun_l9_n256(x)
- end
-end
-
-def fun_l8_n525(x)
- if (x < 1)
- fun_l9_n444(x)
- else
- fun_l9_n756(x)
- end
-end
-
-def fun_l8_n526(x)
- if (x < 1)
- fun_l9_n5(x)
- else
- fun_l9_n754(x)
- end
-end
-
-def fun_l8_n527(x)
- if (x < 1)
- fun_l9_n157(x)
- else
- fun_l9_n279(x)
- end
-end
-
-def fun_l8_n528(x)
- if (x < 1)
- fun_l9_n110(x)
- else
- fun_l9_n246(x)
- end
-end
-
-def fun_l8_n529(x)
- if (x < 1)
- fun_l9_n312(x)
- else
- fun_l9_n890(x)
- end
-end
-
-def fun_l8_n530(x)
- if (x < 1)
- fun_l9_n624(x)
- else
- fun_l9_n548(x)
- end
-end
-
-def fun_l8_n531(x)
- if (x < 1)
- fun_l9_n615(x)
- else
- fun_l9_n948(x)
- end
-end
-
-def fun_l8_n532(x)
- if (x < 1)
- fun_l9_n519(x)
- else
- fun_l9_n583(x)
- end
-end
-
-def fun_l8_n533(x)
- if (x < 1)
- fun_l9_n292(x)
- else
- fun_l9_n827(x)
- end
-end
-
-def fun_l8_n534(x)
- if (x < 1)
- fun_l9_n893(x)
- else
- fun_l9_n877(x)
- end
-end
-
-def fun_l8_n535(x)
- if (x < 1)
- fun_l9_n873(x)
- else
- fun_l9_n399(x)
- end
-end
-
-def fun_l8_n536(x)
- if (x < 1)
- fun_l9_n497(x)
- else
- fun_l9_n507(x)
- end
-end
-
-def fun_l8_n537(x)
- if (x < 1)
- fun_l9_n404(x)
- else
- fun_l9_n815(x)
- end
-end
-
-def fun_l8_n538(x)
- if (x < 1)
- fun_l9_n258(x)
- else
- fun_l9_n810(x)
- end
-end
-
-def fun_l8_n539(x)
- if (x < 1)
- fun_l9_n907(x)
- else
- fun_l9_n720(x)
- end
-end
-
-def fun_l8_n540(x)
- if (x < 1)
- fun_l9_n752(x)
- else
- fun_l9_n597(x)
- end
-end
-
-def fun_l8_n541(x)
- if (x < 1)
- fun_l9_n802(x)
- else
- fun_l9_n45(x)
- end
-end
-
-def fun_l8_n542(x)
- if (x < 1)
- fun_l9_n635(x)
- else
- fun_l9_n470(x)
- end
-end
-
-def fun_l8_n543(x)
- if (x < 1)
- fun_l9_n353(x)
- else
- fun_l9_n238(x)
- end
-end
-
-def fun_l8_n544(x)
- if (x < 1)
- fun_l9_n656(x)
- else
- fun_l9_n569(x)
- end
-end
-
-def fun_l8_n545(x)
- if (x < 1)
- fun_l9_n494(x)
- else
- fun_l9_n566(x)
- end
-end
-
-def fun_l8_n546(x)
- if (x < 1)
- fun_l9_n65(x)
- else
- fun_l9_n896(x)
- end
-end
-
-def fun_l8_n547(x)
- if (x < 1)
- fun_l9_n995(x)
- else
- fun_l9_n727(x)
- end
-end
-
-def fun_l8_n548(x)
- if (x < 1)
- fun_l9_n562(x)
- else
- fun_l9_n759(x)
- end
-end
-
-def fun_l8_n549(x)
- if (x < 1)
- fun_l9_n210(x)
- else
- fun_l9_n734(x)
- end
-end
-
-def fun_l8_n550(x)
- if (x < 1)
- fun_l9_n482(x)
- else
- fun_l9_n11(x)
- end
-end
-
-def fun_l8_n551(x)
- if (x < 1)
- fun_l9_n86(x)
- else
- fun_l9_n867(x)
- end
-end
-
-def fun_l8_n552(x)
- if (x < 1)
- fun_l9_n647(x)
- else
- fun_l9_n293(x)
- end
-end
-
-def fun_l8_n553(x)
- if (x < 1)
- fun_l9_n98(x)
- else
- fun_l9_n868(x)
- end
-end
-
-def fun_l8_n554(x)
- if (x < 1)
- fun_l9_n380(x)
- else
- fun_l9_n2(x)
- end
-end
-
-def fun_l8_n555(x)
- if (x < 1)
- fun_l9_n274(x)
- else
- fun_l9_n489(x)
- end
-end
-
-def fun_l8_n556(x)
- if (x < 1)
- fun_l9_n623(x)
- else
- fun_l9_n848(x)
- end
-end
-
-def fun_l8_n557(x)
- if (x < 1)
- fun_l9_n642(x)
- else
- fun_l9_n890(x)
- end
-end
-
-def fun_l8_n558(x)
- if (x < 1)
- fun_l9_n247(x)
- else
- fun_l9_n65(x)
- end
-end
-
-def fun_l8_n559(x)
- if (x < 1)
- fun_l9_n896(x)
- else
- fun_l9_n937(x)
- end
-end
-
-def fun_l8_n560(x)
- if (x < 1)
- fun_l9_n592(x)
- else
- fun_l9_n211(x)
- end
-end
-
-def fun_l8_n561(x)
- if (x < 1)
- fun_l9_n205(x)
- else
- fun_l9_n971(x)
- end
-end
-
-def fun_l8_n562(x)
- if (x < 1)
- fun_l9_n663(x)
- else
- fun_l9_n147(x)
- end
-end
-
-def fun_l8_n563(x)
- if (x < 1)
- fun_l9_n722(x)
- else
- fun_l9_n649(x)
- end
-end
-
-def fun_l8_n564(x)
- if (x < 1)
- fun_l9_n605(x)
- else
- fun_l9_n58(x)
- end
-end
-
-def fun_l8_n565(x)
- if (x < 1)
- fun_l9_n914(x)
- else
- fun_l9_n617(x)
- end
-end
-
-def fun_l8_n566(x)
- if (x < 1)
- fun_l9_n772(x)
- else
- fun_l9_n428(x)
- end
-end
-
-def fun_l8_n567(x)
- if (x < 1)
- fun_l9_n870(x)
- else
- fun_l9_n672(x)
- end
-end
-
-def fun_l8_n568(x)
- if (x < 1)
- fun_l9_n946(x)
- else
- fun_l9_n465(x)
- end
-end
-
-def fun_l8_n569(x)
- if (x < 1)
- fun_l9_n507(x)
- else
- fun_l9_n346(x)
- end
-end
-
-def fun_l8_n570(x)
- if (x < 1)
- fun_l9_n157(x)
- else
- fun_l9_n70(x)
- end
-end
-
-def fun_l8_n571(x)
- if (x < 1)
- fun_l9_n549(x)
- else
- fun_l9_n831(x)
- end
-end
-
-def fun_l8_n572(x)
- if (x < 1)
- fun_l9_n463(x)
- else
- fun_l9_n843(x)
- end
-end
-
-def fun_l8_n573(x)
- if (x < 1)
- fun_l9_n676(x)
- else
- fun_l9_n651(x)
- end
-end
-
-def fun_l8_n574(x)
- if (x < 1)
- fun_l9_n648(x)
- else
- fun_l9_n562(x)
- end
-end
-
-def fun_l8_n575(x)
- if (x < 1)
- fun_l9_n771(x)
- else
- fun_l9_n549(x)
- end
-end
-
-def fun_l8_n576(x)
- if (x < 1)
- fun_l9_n899(x)
- else
- fun_l9_n436(x)
- end
-end
-
-def fun_l8_n577(x)
- if (x < 1)
- fun_l9_n110(x)
- else
- fun_l9_n708(x)
- end
-end
-
-def fun_l8_n578(x)
- if (x < 1)
- fun_l9_n49(x)
- else
- fun_l9_n559(x)
- end
-end
-
-def fun_l8_n579(x)
- if (x < 1)
- fun_l9_n937(x)
- else
- fun_l9_n962(x)
- end
-end
-
-def fun_l8_n580(x)
- if (x < 1)
- fun_l9_n970(x)
- else
- fun_l9_n203(x)
- end
-end
-
-def fun_l8_n581(x)
- if (x < 1)
- fun_l9_n901(x)
- else
- fun_l9_n666(x)
- end
-end
-
-def fun_l8_n582(x)
- if (x < 1)
- fun_l9_n79(x)
- else
- fun_l9_n260(x)
- end
-end
-
-def fun_l8_n583(x)
- if (x < 1)
- fun_l9_n167(x)
- else
- fun_l9_n512(x)
- end
-end
-
-def fun_l8_n584(x)
- if (x < 1)
- fun_l9_n750(x)
- else
- fun_l9_n406(x)
- end
-end
-
-def fun_l8_n585(x)
- if (x < 1)
- fun_l9_n118(x)
- else
- fun_l9_n525(x)
- end
-end
-
-def fun_l8_n586(x)
- if (x < 1)
- fun_l9_n573(x)
- else
- fun_l9_n657(x)
- end
-end
-
-def fun_l8_n587(x)
- if (x < 1)
- fun_l9_n228(x)
- else
- fun_l9_n903(x)
- end
-end
-
-def fun_l8_n588(x)
- if (x < 1)
- fun_l9_n971(x)
- else
- fun_l9_n608(x)
- end
-end
-
-def fun_l8_n589(x)
- if (x < 1)
- fun_l9_n334(x)
- else
- fun_l9_n704(x)
- end
-end
-
-def fun_l8_n590(x)
- if (x < 1)
- fun_l9_n398(x)
- else
- fun_l9_n500(x)
- end
-end
-
-def fun_l8_n591(x)
- if (x < 1)
- fun_l9_n196(x)
- else
- fun_l9_n616(x)
- end
-end
-
-def fun_l8_n592(x)
- if (x < 1)
- fun_l9_n756(x)
- else
- fun_l9_n655(x)
- end
-end
-
-def fun_l8_n593(x)
- if (x < 1)
- fun_l9_n864(x)
- else
- fun_l9_n697(x)
- end
-end
-
-def fun_l8_n594(x)
- if (x < 1)
- fun_l9_n35(x)
- else
- fun_l9_n554(x)
- end
-end
-
-def fun_l8_n595(x)
- if (x < 1)
- fun_l9_n480(x)
- else
- fun_l9_n688(x)
- end
-end
-
-def fun_l8_n596(x)
- if (x < 1)
- fun_l9_n846(x)
- else
- fun_l9_n403(x)
- end
-end
-
-def fun_l8_n597(x)
- if (x < 1)
- fun_l9_n522(x)
- else
- fun_l9_n532(x)
- end
-end
-
-def fun_l8_n598(x)
- if (x < 1)
- fun_l9_n800(x)
- else
- fun_l9_n531(x)
- end
-end
-
-def fun_l8_n599(x)
- if (x < 1)
- fun_l9_n64(x)
- else
- fun_l9_n876(x)
- end
-end
-
-def fun_l8_n600(x)
- if (x < 1)
- fun_l9_n614(x)
- else
- fun_l9_n660(x)
- end
-end
-
-def fun_l8_n601(x)
- if (x < 1)
- fun_l9_n119(x)
- else
- fun_l9_n998(x)
- end
-end
-
-def fun_l8_n602(x)
- if (x < 1)
- fun_l9_n549(x)
- else
- fun_l9_n911(x)
- end
-end
-
-def fun_l8_n603(x)
- if (x < 1)
- fun_l9_n659(x)
- else
- fun_l9_n664(x)
- end
-end
-
-def fun_l8_n604(x)
- if (x < 1)
- fun_l9_n570(x)
- else
- fun_l9_n960(x)
- end
-end
-
-def fun_l8_n605(x)
- if (x < 1)
- fun_l9_n82(x)
- else
- fun_l9_n658(x)
- end
-end
-
-def fun_l8_n606(x)
- if (x < 1)
- fun_l9_n379(x)
- else
- fun_l9_n881(x)
- end
-end
-
-def fun_l8_n607(x)
- if (x < 1)
- fun_l9_n104(x)
- else
- fun_l9_n869(x)
- end
-end
-
-def fun_l8_n608(x)
- if (x < 1)
- fun_l9_n874(x)
- else
- fun_l9_n63(x)
- end
-end
-
-def fun_l8_n609(x)
- if (x < 1)
- fun_l9_n921(x)
- else
- fun_l9_n667(x)
- end
-end
-
-def fun_l8_n610(x)
- if (x < 1)
- fun_l9_n1(x)
- else
- fun_l9_n524(x)
- end
-end
-
-def fun_l8_n611(x)
- if (x < 1)
- fun_l9_n523(x)
- else
- fun_l9_n230(x)
- end
-end
-
-def fun_l8_n612(x)
- if (x < 1)
- fun_l9_n914(x)
- else
- fun_l9_n129(x)
- end
-end
-
-def fun_l8_n613(x)
- if (x < 1)
- fun_l9_n591(x)
- else
- fun_l9_n551(x)
- end
-end
-
-def fun_l8_n614(x)
- if (x < 1)
- fun_l9_n860(x)
- else
- fun_l9_n358(x)
- end
-end
-
-def fun_l8_n615(x)
- if (x < 1)
- fun_l9_n387(x)
- else
- fun_l9_n425(x)
- end
-end
-
-def fun_l8_n616(x)
- if (x < 1)
- fun_l9_n426(x)
- else
- fun_l9_n449(x)
- end
-end
-
-def fun_l8_n617(x)
- if (x < 1)
- fun_l9_n627(x)
- else
- fun_l9_n399(x)
- end
-end
-
-def fun_l8_n618(x)
- if (x < 1)
- fun_l9_n244(x)
- else
- fun_l9_n24(x)
- end
-end
-
-def fun_l8_n619(x)
- if (x < 1)
- fun_l9_n574(x)
- else
- fun_l9_n640(x)
- end
-end
-
-def fun_l8_n620(x)
- if (x < 1)
- fun_l9_n20(x)
- else
- fun_l9_n6(x)
- end
-end
-
-def fun_l8_n621(x)
- if (x < 1)
- fun_l9_n148(x)
- else
- fun_l9_n718(x)
- end
-end
-
-def fun_l8_n622(x)
- if (x < 1)
- fun_l9_n151(x)
- else
- fun_l9_n56(x)
- end
-end
-
-def fun_l8_n623(x)
- if (x < 1)
- fun_l9_n672(x)
- else
- fun_l9_n93(x)
- end
-end
-
-def fun_l8_n624(x)
- if (x < 1)
- fun_l9_n948(x)
- else
- fun_l9_n530(x)
- end
-end
-
-def fun_l8_n625(x)
- if (x < 1)
- fun_l9_n0(x)
- else
- fun_l9_n334(x)
- end
-end
-
-def fun_l8_n626(x)
- if (x < 1)
- fun_l9_n736(x)
- else
- fun_l9_n922(x)
- end
-end
-
-def fun_l8_n627(x)
- if (x < 1)
- fun_l9_n291(x)
- else
- fun_l9_n953(x)
- end
-end
-
-def fun_l8_n628(x)
- if (x < 1)
- fun_l9_n493(x)
- else
- fun_l9_n4(x)
- end
-end
-
-def fun_l8_n629(x)
- if (x < 1)
- fun_l9_n890(x)
- else
- fun_l9_n297(x)
- end
-end
-
-def fun_l8_n630(x)
- if (x < 1)
- fun_l9_n860(x)
- else
- fun_l9_n74(x)
- end
-end
-
-def fun_l8_n631(x)
- if (x < 1)
- fun_l9_n400(x)
- else
- fun_l9_n584(x)
- end
-end
-
-def fun_l8_n632(x)
- if (x < 1)
- fun_l9_n714(x)
- else
- fun_l9_n200(x)
- end
-end
-
-def fun_l8_n633(x)
- if (x < 1)
- fun_l9_n433(x)
- else
- fun_l9_n489(x)
- end
-end
-
-def fun_l8_n634(x)
- if (x < 1)
- fun_l9_n974(x)
- else
- fun_l9_n25(x)
- end
-end
-
-def fun_l8_n635(x)
- if (x < 1)
- fun_l9_n739(x)
- else
- fun_l9_n695(x)
- end
-end
-
-def fun_l8_n636(x)
- if (x < 1)
- fun_l9_n855(x)
- else
- fun_l9_n898(x)
- end
-end
-
-def fun_l8_n637(x)
- if (x < 1)
- fun_l9_n868(x)
- else
- fun_l9_n825(x)
- end
-end
-
-def fun_l8_n638(x)
- if (x < 1)
- fun_l9_n537(x)
- else
- fun_l9_n417(x)
- end
-end
-
-def fun_l8_n639(x)
- if (x < 1)
- fun_l9_n975(x)
- else
- fun_l9_n484(x)
- end
-end
-
-def fun_l8_n640(x)
- if (x < 1)
- fun_l9_n228(x)
- else
- fun_l9_n964(x)
- end
-end
-
-def fun_l8_n641(x)
- if (x < 1)
- fun_l9_n743(x)
- else
- fun_l9_n986(x)
- end
-end
-
-def fun_l8_n642(x)
- if (x < 1)
- fun_l9_n763(x)
- else
- fun_l9_n747(x)
- end
-end
-
-def fun_l8_n643(x)
- if (x < 1)
- fun_l9_n77(x)
- else
- fun_l9_n149(x)
- end
-end
-
-def fun_l8_n644(x)
- if (x < 1)
- fun_l9_n393(x)
- else
- fun_l9_n694(x)
- end
-end
-
-def fun_l8_n645(x)
- if (x < 1)
- fun_l9_n196(x)
- else
- fun_l9_n211(x)
- end
-end
-
-def fun_l8_n646(x)
- if (x < 1)
- fun_l9_n94(x)
- else
- fun_l9_n649(x)
- end
-end
-
-def fun_l8_n647(x)
- if (x < 1)
- fun_l9_n669(x)
- else
- fun_l9_n12(x)
- end
-end
-
-def fun_l8_n648(x)
- if (x < 1)
- fun_l9_n175(x)
- else
- fun_l9_n388(x)
- end
-end
-
-def fun_l8_n649(x)
- if (x < 1)
- fun_l9_n122(x)
- else
- fun_l9_n736(x)
- end
-end
-
-def fun_l8_n650(x)
- if (x < 1)
- fun_l9_n817(x)
- else
- fun_l9_n274(x)
- end
-end
-
-def fun_l8_n651(x)
- if (x < 1)
- fun_l9_n919(x)
- else
- fun_l9_n538(x)
- end
-end
-
-def fun_l8_n652(x)
- if (x < 1)
- fun_l9_n171(x)
- else
- fun_l9_n895(x)
- end
-end
-
-def fun_l8_n653(x)
- if (x < 1)
- fun_l9_n417(x)
- else
- fun_l9_n618(x)
- end
-end
-
-def fun_l8_n654(x)
- if (x < 1)
- fun_l9_n709(x)
- else
- fun_l9_n892(x)
- end
-end
-
-def fun_l8_n655(x)
- if (x < 1)
- fun_l9_n906(x)
- else
- fun_l9_n602(x)
- end
-end
-
-def fun_l8_n656(x)
- if (x < 1)
- fun_l9_n769(x)
- else
- fun_l9_n554(x)
- end
-end
-
-def fun_l8_n657(x)
- if (x < 1)
- fun_l9_n468(x)
- else
- fun_l9_n320(x)
- end
-end
-
-def fun_l8_n658(x)
- if (x < 1)
- fun_l9_n38(x)
- else
- fun_l9_n947(x)
- end
-end
-
-def fun_l8_n659(x)
- if (x < 1)
- fun_l9_n635(x)
- else
- fun_l9_n327(x)
- end
-end
-
-def fun_l8_n660(x)
- if (x < 1)
- fun_l9_n452(x)
- else
- fun_l9_n313(x)
- end
-end
-
-def fun_l8_n661(x)
- if (x < 1)
- fun_l9_n568(x)
- else
- fun_l9_n383(x)
- end
-end
-
-def fun_l8_n662(x)
- if (x < 1)
- fun_l9_n795(x)
- else
- fun_l9_n680(x)
- end
-end
-
-def fun_l8_n663(x)
- if (x < 1)
- fun_l9_n152(x)
- else
- fun_l9_n846(x)
- end
-end
-
-def fun_l8_n664(x)
- if (x < 1)
- fun_l9_n585(x)
- else
- fun_l9_n670(x)
- end
-end
-
-def fun_l8_n665(x)
- if (x < 1)
- fun_l9_n133(x)
- else
- fun_l9_n799(x)
- end
-end
-
-def fun_l8_n666(x)
- if (x < 1)
- fun_l9_n699(x)
- else
- fun_l9_n311(x)
- end
-end
-
-def fun_l8_n667(x)
- if (x < 1)
- fun_l9_n558(x)
- else
- fun_l9_n669(x)
- end
-end
-
-def fun_l8_n668(x)
- if (x < 1)
- fun_l9_n825(x)
- else
- fun_l9_n534(x)
- end
-end
-
-def fun_l8_n669(x)
- if (x < 1)
- fun_l9_n143(x)
- else
- fun_l9_n21(x)
- end
-end
-
-def fun_l8_n670(x)
- if (x < 1)
- fun_l9_n827(x)
- else
- fun_l9_n679(x)
- end
-end
-
-def fun_l8_n671(x)
- if (x < 1)
- fun_l9_n704(x)
- else
- fun_l9_n922(x)
- end
-end
-
-def fun_l8_n672(x)
- if (x < 1)
- fun_l9_n776(x)
- else
- fun_l9_n867(x)
- end
-end
-
-def fun_l8_n673(x)
- if (x < 1)
- fun_l9_n871(x)
- else
- fun_l9_n315(x)
- end
-end
-
-def fun_l8_n674(x)
- if (x < 1)
- fun_l9_n860(x)
- else
- fun_l9_n945(x)
- end
-end
-
-def fun_l8_n675(x)
- if (x < 1)
- fun_l9_n890(x)
- else
- fun_l9_n629(x)
- end
-end
-
-def fun_l8_n676(x)
- if (x < 1)
- fun_l9_n91(x)
- else
- fun_l9_n35(x)
- end
-end
-
-def fun_l8_n677(x)
- if (x < 1)
- fun_l9_n825(x)
- else
- fun_l9_n922(x)
- end
-end
-
-def fun_l8_n678(x)
- if (x < 1)
- fun_l9_n457(x)
- else
- fun_l9_n156(x)
- end
-end
-
-def fun_l8_n679(x)
- if (x < 1)
- fun_l9_n455(x)
- else
- fun_l9_n809(x)
- end
-end
-
-def fun_l8_n680(x)
- if (x < 1)
- fun_l9_n213(x)
- else
- fun_l9_n944(x)
- end
-end
-
-def fun_l8_n681(x)
- if (x < 1)
- fun_l9_n760(x)
- else
- fun_l9_n137(x)
- end
-end
-
-def fun_l8_n682(x)
- if (x < 1)
- fun_l9_n998(x)
- else
- fun_l9_n703(x)
- end
-end
-
-def fun_l8_n683(x)
- if (x < 1)
- fun_l9_n988(x)
- else
- fun_l9_n952(x)
- end
-end
-
-def fun_l8_n684(x)
- if (x < 1)
- fun_l9_n583(x)
- else
- fun_l9_n890(x)
- end
-end
-
-def fun_l8_n685(x)
- if (x < 1)
- fun_l9_n879(x)
- else
- fun_l9_n978(x)
- end
-end
-
-def fun_l8_n686(x)
- if (x < 1)
- fun_l9_n6(x)
- else
- fun_l9_n978(x)
- end
-end
-
-def fun_l8_n687(x)
- if (x < 1)
- fun_l9_n67(x)
- else
- fun_l9_n149(x)
- end
-end
-
-def fun_l8_n688(x)
- if (x < 1)
- fun_l9_n386(x)
- else
- fun_l9_n293(x)
- end
-end
-
-def fun_l8_n689(x)
- if (x < 1)
- fun_l9_n493(x)
- else
- fun_l9_n140(x)
- end
-end
-
-def fun_l8_n690(x)
- if (x < 1)
- fun_l9_n92(x)
- else
- fun_l9_n550(x)
- end
-end
-
-def fun_l8_n691(x)
- if (x < 1)
- fun_l9_n456(x)
- else
- fun_l9_n976(x)
- end
-end
-
-def fun_l8_n692(x)
- if (x < 1)
- fun_l9_n516(x)
- else
- fun_l9_n145(x)
- end
-end
-
-def fun_l8_n693(x)
- if (x < 1)
- fun_l9_n757(x)
- else
- fun_l9_n647(x)
- end
-end
-
-def fun_l8_n694(x)
- if (x < 1)
- fun_l9_n348(x)
- else
- fun_l9_n86(x)
- end
-end
-
-def fun_l8_n695(x)
- if (x < 1)
- fun_l9_n546(x)
- else
- fun_l9_n320(x)
- end
-end
-
-def fun_l8_n696(x)
- if (x < 1)
- fun_l9_n588(x)
- else
- fun_l9_n285(x)
- end
-end
-
-def fun_l8_n697(x)
- if (x < 1)
- fun_l9_n635(x)
- else
- fun_l9_n710(x)
- end
-end
-
-def fun_l8_n698(x)
- if (x < 1)
- fun_l9_n312(x)
- else
- fun_l9_n217(x)
- end
-end
-
-def fun_l8_n699(x)
- if (x < 1)
- fun_l9_n714(x)
- else
- fun_l9_n723(x)
- end
-end
-
-def fun_l8_n700(x)
- if (x < 1)
- fun_l9_n378(x)
- else
- fun_l9_n122(x)
- end
-end
-
-def fun_l8_n701(x)
- if (x < 1)
- fun_l9_n696(x)
- else
- fun_l9_n577(x)
- end
-end
-
-def fun_l8_n702(x)
- if (x < 1)
- fun_l9_n388(x)
- else
- fun_l9_n578(x)
- end
-end
-
-def fun_l8_n703(x)
- if (x < 1)
- fun_l9_n502(x)
- else
- fun_l9_n410(x)
- end
-end
-
-def fun_l8_n704(x)
- if (x < 1)
- fun_l9_n532(x)
- else
- fun_l9_n532(x)
- end
-end
-
-def fun_l8_n705(x)
- if (x < 1)
- fun_l9_n662(x)
- else
- fun_l9_n361(x)
- end
-end
-
-def fun_l8_n706(x)
- if (x < 1)
- fun_l9_n109(x)
- else
- fun_l9_n380(x)
- end
-end
-
-def fun_l8_n707(x)
- if (x < 1)
- fun_l9_n653(x)
- else
- fun_l9_n566(x)
- end
-end
-
-def fun_l8_n708(x)
- if (x < 1)
- fun_l9_n587(x)
- else
- fun_l9_n465(x)
- end
-end
-
-def fun_l8_n709(x)
- if (x < 1)
- fun_l9_n523(x)
- else
- fun_l9_n274(x)
- end
-end
-
-def fun_l8_n710(x)
- if (x < 1)
- fun_l9_n459(x)
- else
- fun_l9_n872(x)
- end
-end
-
-def fun_l8_n711(x)
- if (x < 1)
- fun_l9_n71(x)
- else
- fun_l9_n135(x)
- end
-end
-
-def fun_l8_n712(x)
- if (x < 1)
- fun_l9_n770(x)
- else
- fun_l9_n405(x)
- end
-end
-
-def fun_l8_n713(x)
- if (x < 1)
- fun_l9_n233(x)
- else
- fun_l9_n232(x)
- end
-end
-
-def fun_l8_n714(x)
- if (x < 1)
- fun_l9_n29(x)
- else
- fun_l9_n23(x)
- end
-end
-
-def fun_l8_n715(x)
- if (x < 1)
- fun_l9_n44(x)
- else
- fun_l9_n185(x)
- end
-end
-
-def fun_l8_n716(x)
- if (x < 1)
- fun_l9_n980(x)
- else
- fun_l9_n967(x)
- end
-end
-
-def fun_l8_n717(x)
- if (x < 1)
- fun_l9_n323(x)
- else
- fun_l9_n636(x)
- end
-end
-
-def fun_l8_n718(x)
- if (x < 1)
- fun_l9_n733(x)
- else
- fun_l9_n10(x)
- end
-end
-
-def fun_l8_n719(x)
- if (x < 1)
- fun_l9_n100(x)
- else
- fun_l9_n123(x)
- end
-end
-
-def fun_l8_n720(x)
- if (x < 1)
- fun_l9_n572(x)
- else
- fun_l9_n813(x)
- end
-end
-
-def fun_l8_n721(x)
- if (x < 1)
- fun_l9_n634(x)
- else
- fun_l9_n152(x)
- end
-end
-
-def fun_l8_n722(x)
- if (x < 1)
- fun_l9_n527(x)
- else
- fun_l9_n881(x)
- end
-end
-
-def fun_l8_n723(x)
- if (x < 1)
- fun_l9_n202(x)
- else
- fun_l9_n294(x)
- end
-end
-
-def fun_l8_n724(x)
- if (x < 1)
- fun_l9_n668(x)
- else
- fun_l9_n792(x)
- end
-end
-
-def fun_l8_n725(x)
- if (x < 1)
- fun_l9_n309(x)
- else
- fun_l9_n612(x)
- end
-end
-
-def fun_l8_n726(x)
- if (x < 1)
- fun_l9_n320(x)
- else
- fun_l9_n459(x)
- end
-end
-
-def fun_l8_n727(x)
- if (x < 1)
- fun_l9_n355(x)
- else
- fun_l9_n321(x)
- end
-end
-
-def fun_l8_n728(x)
- if (x < 1)
- fun_l9_n237(x)
- else
- fun_l9_n135(x)
- end
-end
-
-def fun_l8_n729(x)
- if (x < 1)
- fun_l9_n980(x)
- else
- fun_l9_n209(x)
- end
-end
-
-def fun_l8_n730(x)
- if (x < 1)
- fun_l9_n957(x)
- else
- fun_l9_n481(x)
- end
-end
-
-def fun_l8_n731(x)
- if (x < 1)
- fun_l9_n594(x)
- else
- fun_l9_n396(x)
- end
-end
-
-def fun_l8_n732(x)
- if (x < 1)
- fun_l9_n916(x)
- else
- fun_l9_n473(x)
- end
-end
-
-def fun_l8_n733(x)
- if (x < 1)
- fun_l9_n376(x)
- else
- fun_l9_n231(x)
- end
-end
-
-def fun_l8_n734(x)
- if (x < 1)
- fun_l9_n758(x)
- else
- fun_l9_n111(x)
- end
-end
-
-def fun_l8_n735(x)
- if (x < 1)
- fun_l9_n131(x)
- else
- fun_l9_n586(x)
- end
-end
-
-def fun_l8_n736(x)
- if (x < 1)
- fun_l9_n290(x)
- else
- fun_l9_n227(x)
- end
-end
-
-def fun_l8_n737(x)
- if (x < 1)
- fun_l9_n784(x)
- else
- fun_l9_n869(x)
- end
-end
-
-def fun_l8_n738(x)
- if (x < 1)
- fun_l9_n94(x)
- else
- fun_l9_n79(x)
- end
-end
-
-def fun_l8_n739(x)
- if (x < 1)
- fun_l9_n489(x)
- else
- fun_l9_n347(x)
- end
-end
-
-def fun_l8_n740(x)
- if (x < 1)
- fun_l9_n4(x)
- else
- fun_l9_n587(x)
- end
-end
-
-def fun_l8_n741(x)
- if (x < 1)
- fun_l9_n949(x)
- else
- fun_l9_n196(x)
- end
-end
-
-def fun_l8_n742(x)
- if (x < 1)
- fun_l9_n577(x)
- else
- fun_l9_n562(x)
- end
-end
-
-def fun_l8_n743(x)
- if (x < 1)
- fun_l9_n656(x)
- else
- fun_l9_n685(x)
- end
-end
-
-def fun_l8_n744(x)
- if (x < 1)
- fun_l9_n792(x)
- else
- fun_l9_n572(x)
- end
-end
-
-def fun_l8_n745(x)
- if (x < 1)
- fun_l9_n318(x)
- else
- fun_l9_n335(x)
- end
-end
-
-def fun_l8_n746(x)
- if (x < 1)
- fun_l9_n59(x)
- else
- fun_l9_n109(x)
- end
-end
-
-def fun_l8_n747(x)
- if (x < 1)
- fun_l9_n276(x)
- else
- fun_l9_n567(x)
- end
-end
-
-def fun_l8_n748(x)
- if (x < 1)
- fun_l9_n902(x)
- else
- fun_l9_n220(x)
- end
-end
-
-def fun_l8_n749(x)
- if (x < 1)
- fun_l9_n208(x)
- else
- fun_l9_n108(x)
- end
-end
-
-def fun_l8_n750(x)
- if (x < 1)
- fun_l9_n927(x)
- else
- fun_l9_n950(x)
- end
-end
-
-def fun_l8_n751(x)
- if (x < 1)
- fun_l9_n371(x)
- else
- fun_l9_n72(x)
- end
-end
-
-def fun_l8_n752(x)
- if (x < 1)
- fun_l9_n455(x)
- else
- fun_l9_n467(x)
- end
-end
-
-def fun_l8_n753(x)
- if (x < 1)
- fun_l9_n344(x)
- else
- fun_l9_n82(x)
- end
-end
-
-def fun_l8_n754(x)
- if (x < 1)
- fun_l9_n902(x)
- else
- fun_l9_n219(x)
- end
-end
-
-def fun_l8_n755(x)
- if (x < 1)
- fun_l9_n101(x)
- else
- fun_l9_n523(x)
- end
-end
-
-def fun_l8_n756(x)
- if (x < 1)
- fun_l9_n517(x)
- else
- fun_l9_n97(x)
- end
-end
-
-def fun_l8_n757(x)
- if (x < 1)
- fun_l9_n571(x)
- else
- fun_l9_n650(x)
- end
-end
-
-def fun_l8_n758(x)
- if (x < 1)
- fun_l9_n701(x)
- else
- fun_l9_n962(x)
- end
-end
-
-def fun_l8_n759(x)
- if (x < 1)
- fun_l9_n589(x)
- else
- fun_l9_n808(x)
- end
-end
-
-def fun_l8_n760(x)
- if (x < 1)
- fun_l9_n570(x)
- else
- fun_l9_n90(x)
- end
-end
-
-def fun_l8_n761(x)
- if (x < 1)
- fun_l9_n792(x)
- else
- fun_l9_n673(x)
- end
-end
-
-def fun_l8_n762(x)
- if (x < 1)
- fun_l9_n514(x)
- else
- fun_l9_n771(x)
- end
-end
-
-def fun_l8_n763(x)
- if (x < 1)
- fun_l9_n404(x)
- else
- fun_l9_n264(x)
- end
-end
-
-def fun_l8_n764(x)
- if (x < 1)
- fun_l9_n270(x)
- else
- fun_l9_n738(x)
- end
-end
-
-def fun_l8_n765(x)
- if (x < 1)
- fun_l9_n915(x)
- else
- fun_l9_n901(x)
- end
-end
-
-def fun_l8_n766(x)
- if (x < 1)
- fun_l9_n120(x)
- else
- fun_l9_n176(x)
- end
-end
-
-def fun_l8_n767(x)
- if (x < 1)
- fun_l9_n470(x)
- else
- fun_l9_n837(x)
- end
-end
-
-def fun_l8_n768(x)
- if (x < 1)
- fun_l9_n912(x)
- else
- fun_l9_n898(x)
- end
-end
-
-def fun_l8_n769(x)
- if (x < 1)
- fun_l9_n76(x)
- else
- fun_l9_n350(x)
- end
-end
-
-def fun_l8_n770(x)
- if (x < 1)
- fun_l9_n487(x)
- else
- fun_l9_n572(x)
- end
-end
-
-def fun_l8_n771(x)
- if (x < 1)
- fun_l9_n823(x)
- else
- fun_l9_n815(x)
- end
-end
-
-def fun_l8_n772(x)
- if (x < 1)
- fun_l9_n655(x)
- else
- fun_l9_n968(x)
- end
-end
-
-def fun_l8_n773(x)
- if (x < 1)
- fun_l9_n824(x)
- else
- fun_l9_n741(x)
- end
-end
-
-def fun_l8_n774(x)
- if (x < 1)
- fun_l9_n143(x)
- else
- fun_l9_n641(x)
- end
-end
-
-def fun_l8_n775(x)
- if (x < 1)
- fun_l9_n985(x)
- else
- fun_l9_n592(x)
- end
-end
-
-def fun_l8_n776(x)
- if (x < 1)
- fun_l9_n686(x)
- else
- fun_l9_n234(x)
- end
-end
-
-def fun_l8_n777(x)
- if (x < 1)
- fun_l9_n540(x)
- else
- fun_l9_n794(x)
- end
-end
-
-def fun_l8_n778(x)
- if (x < 1)
- fun_l9_n154(x)
- else
- fun_l9_n656(x)
- end
-end
-
-def fun_l8_n779(x)
- if (x < 1)
- fun_l9_n836(x)
- else
- fun_l9_n756(x)
- end
-end
-
-def fun_l8_n780(x)
- if (x < 1)
- fun_l9_n98(x)
- else
- fun_l9_n233(x)
- end
-end
-
-def fun_l8_n781(x)
- if (x < 1)
- fun_l9_n584(x)
- else
- fun_l9_n398(x)
- end
-end
-
-def fun_l8_n782(x)
- if (x < 1)
- fun_l9_n851(x)
- else
- fun_l9_n967(x)
- end
-end
-
-def fun_l8_n783(x)
- if (x < 1)
- fun_l9_n868(x)
- else
- fun_l9_n57(x)
- end
-end
-
-def fun_l8_n784(x)
- if (x < 1)
- fun_l9_n782(x)
- else
- fun_l9_n214(x)
- end
-end
-
-def fun_l8_n785(x)
- if (x < 1)
- fun_l9_n79(x)
- else
- fun_l9_n489(x)
- end
-end
-
-def fun_l8_n786(x)
- if (x < 1)
- fun_l9_n757(x)
- else
- fun_l9_n918(x)
- end
-end
-
-def fun_l8_n787(x)
- if (x < 1)
- fun_l9_n985(x)
- else
- fun_l9_n781(x)
- end
-end
-
-def fun_l8_n788(x)
- if (x < 1)
- fun_l9_n921(x)
- else
- fun_l9_n542(x)
- end
-end
-
-def fun_l8_n789(x)
- if (x < 1)
- fun_l9_n982(x)
- else
- fun_l9_n834(x)
- end
-end
-
-def fun_l8_n790(x)
- if (x < 1)
- fun_l9_n482(x)
- else
- fun_l9_n424(x)
- end
-end
-
-def fun_l8_n791(x)
- if (x < 1)
- fun_l9_n289(x)
- else
- fun_l9_n487(x)
- end
-end
-
-def fun_l8_n792(x)
- if (x < 1)
- fun_l9_n820(x)
- else
- fun_l9_n242(x)
- end
-end
-
-def fun_l8_n793(x)
- if (x < 1)
- fun_l9_n110(x)
- else
- fun_l9_n356(x)
- end
-end
-
-def fun_l8_n794(x)
- if (x < 1)
- fun_l9_n142(x)
- else
- fun_l9_n607(x)
- end
-end
-
-def fun_l8_n795(x)
- if (x < 1)
- fun_l9_n21(x)
- else
- fun_l9_n14(x)
- end
-end
-
-def fun_l8_n796(x)
- if (x < 1)
- fun_l9_n147(x)
- else
- fun_l9_n767(x)
- end
-end
-
-def fun_l8_n797(x)
- if (x < 1)
- fun_l9_n427(x)
- else
- fun_l9_n854(x)
- end
-end
-
-def fun_l8_n798(x)
- if (x < 1)
- fun_l9_n557(x)
- else
- fun_l9_n729(x)
- end
-end
-
-def fun_l8_n799(x)
- if (x < 1)
- fun_l9_n150(x)
- else
- fun_l9_n180(x)
- end
-end
-
-def fun_l8_n800(x)
- if (x < 1)
- fun_l9_n888(x)
- else
- fun_l9_n612(x)
- end
-end
-
-def fun_l8_n801(x)
- if (x < 1)
- fun_l9_n631(x)
- else
- fun_l9_n370(x)
- end
-end
-
-def fun_l8_n802(x)
- if (x < 1)
- fun_l9_n759(x)
- else
- fun_l9_n446(x)
- end
-end
-
-def fun_l8_n803(x)
- if (x < 1)
- fun_l9_n182(x)
- else
- fun_l9_n705(x)
- end
-end
-
-def fun_l8_n804(x)
- if (x < 1)
- fun_l9_n474(x)
- else
- fun_l9_n461(x)
- end
-end
-
-def fun_l8_n805(x)
- if (x < 1)
- fun_l9_n897(x)
- else
- fun_l9_n935(x)
- end
-end
-
-def fun_l8_n806(x)
- if (x < 1)
- fun_l9_n793(x)
- else
- fun_l9_n981(x)
- end
-end
-
-def fun_l8_n807(x)
- if (x < 1)
- fun_l9_n124(x)
- else
- fun_l9_n528(x)
- end
-end
-
-def fun_l8_n808(x)
- if (x < 1)
- fun_l9_n637(x)
- else
- fun_l9_n989(x)
- end
-end
-
-def fun_l8_n809(x)
- if (x < 1)
- fun_l9_n388(x)
- else
- fun_l9_n196(x)
- end
-end
-
-def fun_l8_n810(x)
- if (x < 1)
- fun_l9_n333(x)
- else
- fun_l9_n806(x)
- end
-end
-
-def fun_l8_n811(x)
- if (x < 1)
- fun_l9_n541(x)
- else
- fun_l9_n6(x)
- end
-end
-
-def fun_l8_n812(x)
- if (x < 1)
- fun_l9_n346(x)
- else
- fun_l9_n496(x)
- end
-end
-
-def fun_l8_n813(x)
- if (x < 1)
- fun_l9_n374(x)
- else
- fun_l9_n739(x)
- end
-end
-
-def fun_l8_n814(x)
- if (x < 1)
- fun_l9_n121(x)
- else
- fun_l9_n184(x)
- end
-end
-
-def fun_l8_n815(x)
- if (x < 1)
- fun_l9_n460(x)
- else
- fun_l9_n759(x)
- end
-end
-
-def fun_l8_n816(x)
- if (x < 1)
- fun_l9_n598(x)
- else
- fun_l9_n638(x)
- end
-end
-
-def fun_l8_n817(x)
- if (x < 1)
- fun_l9_n986(x)
- else
- fun_l9_n658(x)
- end
-end
-
-def fun_l8_n818(x)
- if (x < 1)
- fun_l9_n169(x)
- else
- fun_l9_n696(x)
- end
-end
-
-def fun_l8_n819(x)
- if (x < 1)
- fun_l9_n885(x)
- else
- fun_l9_n74(x)
- end
-end
-
-def fun_l8_n820(x)
- if (x < 1)
- fun_l9_n24(x)
- else
- fun_l9_n87(x)
- end
-end
-
-def fun_l8_n821(x)
- if (x < 1)
- fun_l9_n59(x)
- else
- fun_l9_n843(x)
- end
-end
-
-def fun_l8_n822(x)
- if (x < 1)
- fun_l9_n640(x)
- else
- fun_l9_n360(x)
- end
-end
-
-def fun_l8_n823(x)
- if (x < 1)
- fun_l9_n355(x)
- else
- fun_l9_n28(x)
- end
-end
-
-def fun_l8_n824(x)
- if (x < 1)
- fun_l9_n553(x)
- else
- fun_l9_n475(x)
- end
-end
-
-def fun_l8_n825(x)
- if (x < 1)
- fun_l9_n757(x)
- else
- fun_l9_n790(x)
- end
-end
-
-def fun_l8_n826(x)
- if (x < 1)
- fun_l9_n787(x)
- else
- fun_l9_n226(x)
- end
-end
-
-def fun_l8_n827(x)
- if (x < 1)
- fun_l9_n622(x)
- else
- fun_l9_n711(x)
- end
-end
-
-def fun_l8_n828(x)
- if (x < 1)
- fun_l9_n399(x)
- else
- fun_l9_n7(x)
- end
-end
-
-def fun_l8_n829(x)
- if (x < 1)
- fun_l9_n589(x)
- else
- fun_l9_n276(x)
- end
-end
-
-def fun_l8_n830(x)
- if (x < 1)
- fun_l9_n83(x)
- else
- fun_l9_n126(x)
- end
-end
-
-def fun_l8_n831(x)
- if (x < 1)
- fun_l9_n576(x)
- else
- fun_l9_n855(x)
- end
-end
-
-def fun_l8_n832(x)
- if (x < 1)
- fun_l9_n756(x)
- else
- fun_l9_n638(x)
- end
-end
-
-def fun_l8_n833(x)
- if (x < 1)
- fun_l9_n388(x)
- else
- fun_l9_n154(x)
- end
-end
-
-def fun_l8_n834(x)
- if (x < 1)
- fun_l9_n268(x)
- else
- fun_l9_n85(x)
- end
-end
-
-def fun_l8_n835(x)
- if (x < 1)
- fun_l9_n32(x)
- else
- fun_l9_n678(x)
- end
-end
-
-def fun_l8_n836(x)
- if (x < 1)
- fun_l9_n537(x)
- else
- fun_l9_n984(x)
- end
-end
-
-def fun_l8_n837(x)
- if (x < 1)
- fun_l9_n798(x)
- else
- fun_l9_n221(x)
- end
-end
-
-def fun_l8_n838(x)
- if (x < 1)
- fun_l9_n153(x)
- else
- fun_l9_n414(x)
- end
-end
-
-def fun_l8_n839(x)
- if (x < 1)
- fun_l9_n904(x)
- else
- fun_l9_n847(x)
- end
-end
-
-def fun_l8_n840(x)
- if (x < 1)
- fun_l9_n501(x)
- else
- fun_l9_n971(x)
- end
-end
-
-def fun_l8_n841(x)
- if (x < 1)
- fun_l9_n94(x)
- else
- fun_l9_n719(x)
- end
-end
-
-def fun_l8_n842(x)
- if (x < 1)
- fun_l9_n343(x)
- else
- fun_l9_n365(x)
- end
-end
-
-def fun_l8_n843(x)
- if (x < 1)
- fun_l9_n541(x)
- else
- fun_l9_n800(x)
- end
-end
-
-def fun_l8_n844(x)
- if (x < 1)
- fun_l9_n122(x)
- else
- fun_l9_n662(x)
- end
-end
-
-def fun_l8_n845(x)
- if (x < 1)
- fun_l9_n312(x)
- else
- fun_l9_n688(x)
- end
-end
-
-def fun_l8_n846(x)
- if (x < 1)
- fun_l9_n668(x)
- else
- fun_l9_n805(x)
- end
-end
-
-def fun_l8_n847(x)
- if (x < 1)
- fun_l9_n785(x)
- else
- fun_l9_n917(x)
- end
-end
-
-def fun_l8_n848(x)
- if (x < 1)
- fun_l9_n333(x)
- else
- fun_l9_n782(x)
- end
-end
-
-def fun_l8_n849(x)
- if (x < 1)
- fun_l9_n402(x)
- else
- fun_l9_n398(x)
- end
-end
-
-def fun_l8_n850(x)
- if (x < 1)
- fun_l9_n708(x)
- else
- fun_l9_n199(x)
- end
-end
-
-def fun_l8_n851(x)
- if (x < 1)
- fun_l9_n950(x)
- else
- fun_l9_n308(x)
- end
-end
-
-def fun_l8_n852(x)
- if (x < 1)
- fun_l9_n524(x)
- else
- fun_l9_n411(x)
- end
-end
-
-def fun_l8_n853(x)
- if (x < 1)
- fun_l9_n467(x)
- else
- fun_l9_n807(x)
- end
-end
-
-def fun_l8_n854(x)
- if (x < 1)
- fun_l9_n316(x)
- else
- fun_l9_n717(x)
- end
-end
-
-def fun_l8_n855(x)
- if (x < 1)
- fun_l9_n955(x)
- else
- fun_l9_n631(x)
- end
-end
-
-def fun_l8_n856(x)
- if (x < 1)
- fun_l9_n244(x)
- else
- fun_l9_n838(x)
- end
-end
-
-def fun_l8_n857(x)
- if (x < 1)
- fun_l9_n574(x)
- else
- fun_l9_n720(x)
- end
-end
-
-def fun_l8_n858(x)
- if (x < 1)
- fun_l9_n80(x)
- else
- fun_l9_n888(x)
- end
-end
-
-def fun_l8_n859(x)
- if (x < 1)
- fun_l9_n675(x)
- else
- fun_l9_n71(x)
- end
-end
-
-def fun_l8_n860(x)
- if (x < 1)
- fun_l9_n375(x)
- else
- fun_l9_n507(x)
- end
-end
-
-def fun_l8_n861(x)
- if (x < 1)
- fun_l9_n450(x)
- else
- fun_l9_n705(x)
- end
-end
-
-def fun_l8_n862(x)
- if (x < 1)
- fun_l9_n358(x)
- else
- fun_l9_n614(x)
- end
-end
-
-def fun_l8_n863(x)
- if (x < 1)
- fun_l9_n690(x)
- else
- fun_l9_n73(x)
- end
-end
-
-def fun_l8_n864(x)
- if (x < 1)
- fun_l9_n806(x)
- else
- fun_l9_n85(x)
- end
-end
-
-def fun_l8_n865(x)
- if (x < 1)
- fun_l9_n251(x)
- else
- fun_l9_n657(x)
- end
-end
-
-def fun_l8_n866(x)
- if (x < 1)
- fun_l9_n921(x)
- else
- fun_l9_n199(x)
- end
-end
-
-def fun_l8_n867(x)
- if (x < 1)
- fun_l9_n265(x)
- else
- fun_l9_n937(x)
- end
-end
-
-def fun_l8_n868(x)
- if (x < 1)
- fun_l9_n610(x)
- else
- fun_l9_n7(x)
- end
-end
-
-def fun_l8_n869(x)
- if (x < 1)
- fun_l9_n703(x)
- else
- fun_l9_n74(x)
- end
-end
-
-def fun_l8_n870(x)
- if (x < 1)
- fun_l9_n869(x)
- else
- fun_l9_n665(x)
- end
-end
-
-def fun_l8_n871(x)
- if (x < 1)
- fun_l9_n808(x)
- else
- fun_l9_n686(x)
- end
-end
-
-def fun_l8_n872(x)
- if (x < 1)
- fun_l9_n678(x)
- else
- fun_l9_n709(x)
- end
-end
-
-def fun_l8_n873(x)
- if (x < 1)
- fun_l9_n557(x)
- else
- fun_l9_n63(x)
- end
-end
-
-def fun_l8_n874(x)
- if (x < 1)
- fun_l9_n214(x)
- else
- fun_l9_n926(x)
- end
-end
-
-def fun_l8_n875(x)
- if (x < 1)
- fun_l9_n218(x)
- else
- fun_l9_n810(x)
- end
-end
-
-def fun_l8_n876(x)
- if (x < 1)
- fun_l9_n365(x)
- else
- fun_l9_n257(x)
- end
-end
-
-def fun_l8_n877(x)
- if (x < 1)
- fun_l9_n51(x)
- else
- fun_l9_n68(x)
- end
-end
-
-def fun_l8_n878(x)
- if (x < 1)
- fun_l9_n20(x)
- else
- fun_l9_n55(x)
- end
-end
-
-def fun_l8_n879(x)
- if (x < 1)
- fun_l9_n686(x)
- else
- fun_l9_n226(x)
- end
-end
-
-def fun_l8_n880(x)
- if (x < 1)
- fun_l9_n283(x)
- else
- fun_l9_n270(x)
- end
-end
-
-def fun_l8_n881(x)
- if (x < 1)
- fun_l9_n811(x)
- else
- fun_l9_n820(x)
- end
-end
-
-def fun_l8_n882(x)
- if (x < 1)
- fun_l9_n342(x)
- else
- fun_l9_n919(x)
- end
-end
-
-def fun_l8_n883(x)
- if (x < 1)
- fun_l9_n515(x)
- else
- fun_l9_n24(x)
- end
-end
-
-def fun_l8_n884(x)
- if (x < 1)
- fun_l9_n0(x)
- else
- fun_l9_n150(x)
- end
-end
-
-def fun_l8_n885(x)
- if (x < 1)
- fun_l9_n481(x)
- else
- fun_l9_n65(x)
- end
-end
-
-def fun_l8_n886(x)
- if (x < 1)
- fun_l9_n252(x)
- else
- fun_l9_n544(x)
- end
-end
-
-def fun_l8_n887(x)
- if (x < 1)
- fun_l9_n635(x)
- else
- fun_l9_n402(x)
- end
-end
-
-def fun_l8_n888(x)
- if (x < 1)
- fun_l9_n78(x)
- else
- fun_l9_n779(x)
- end
-end
-
-def fun_l8_n889(x)
- if (x < 1)
- fun_l9_n249(x)
- else
- fun_l9_n331(x)
- end
-end
-
-def fun_l8_n890(x)
- if (x < 1)
- fun_l9_n914(x)
- else
- fun_l9_n115(x)
- end
-end
-
-def fun_l8_n891(x)
- if (x < 1)
- fun_l9_n832(x)
- else
- fun_l9_n34(x)
- end
-end
-
-def fun_l8_n892(x)
- if (x < 1)
- fun_l9_n919(x)
- else
- fun_l9_n620(x)
- end
-end
-
-def fun_l8_n893(x)
- if (x < 1)
- fun_l9_n360(x)
- else
- fun_l9_n189(x)
- end
-end
-
-def fun_l8_n894(x)
- if (x < 1)
- fun_l9_n736(x)
- else
- fun_l9_n949(x)
- end
-end
-
-def fun_l8_n895(x)
- if (x < 1)
- fun_l9_n56(x)
- else
- fun_l9_n826(x)
- end
-end
-
-def fun_l8_n896(x)
- if (x < 1)
- fun_l9_n159(x)
- else
- fun_l9_n523(x)
- end
-end
-
-def fun_l8_n897(x)
- if (x < 1)
- fun_l9_n630(x)
- else
- fun_l9_n601(x)
- end
-end
-
-def fun_l8_n898(x)
- if (x < 1)
- fun_l9_n434(x)
- else
- fun_l9_n919(x)
- end
-end
-
-def fun_l8_n899(x)
- if (x < 1)
- fun_l9_n872(x)
- else
- fun_l9_n652(x)
- end
-end
-
-def fun_l8_n900(x)
- if (x < 1)
- fun_l9_n550(x)
- else
- fun_l9_n124(x)
- end
-end
-
-def fun_l8_n901(x)
- if (x < 1)
- fun_l9_n56(x)
- else
- fun_l9_n422(x)
- end
-end
-
-def fun_l8_n902(x)
- if (x < 1)
- fun_l9_n297(x)
- else
- fun_l9_n281(x)
- end
-end
-
-def fun_l8_n903(x)
- if (x < 1)
- fun_l9_n764(x)
- else
- fun_l9_n942(x)
- end
-end
-
-def fun_l8_n904(x)
- if (x < 1)
- fun_l9_n700(x)
- else
- fun_l9_n525(x)
- end
-end
-
-def fun_l8_n905(x)
- if (x < 1)
- fun_l9_n370(x)
- else
- fun_l9_n871(x)
- end
-end
-
-def fun_l8_n906(x)
- if (x < 1)
- fun_l9_n385(x)
- else
- fun_l9_n999(x)
- end
-end
-
-def fun_l8_n907(x)
- if (x < 1)
- fun_l9_n63(x)
- else
- fun_l9_n137(x)
- end
-end
-
-def fun_l8_n908(x)
- if (x < 1)
- fun_l9_n793(x)
- else
- fun_l9_n720(x)
- end
-end
-
-def fun_l8_n909(x)
- if (x < 1)
- fun_l9_n141(x)
- else
- fun_l9_n838(x)
- end
-end
-
-def fun_l8_n910(x)
- if (x < 1)
- fun_l9_n764(x)
- else
- fun_l9_n334(x)
- end
-end
-
-def fun_l8_n911(x)
- if (x < 1)
- fun_l9_n429(x)
- else
- fun_l9_n309(x)
- end
-end
-
-def fun_l8_n912(x)
- if (x < 1)
- fun_l9_n852(x)
- else
- fun_l9_n662(x)
- end
-end
-
-def fun_l8_n913(x)
- if (x < 1)
- fun_l9_n467(x)
- else
- fun_l9_n817(x)
- end
-end
-
-def fun_l8_n914(x)
- if (x < 1)
- fun_l9_n318(x)
- else
- fun_l9_n942(x)
- end
-end
-
-def fun_l8_n915(x)
- if (x < 1)
- fun_l9_n442(x)
- else
- fun_l9_n987(x)
- end
-end
-
-def fun_l8_n916(x)
- if (x < 1)
- fun_l9_n657(x)
- else
- fun_l9_n736(x)
- end
-end
-
-def fun_l8_n917(x)
- if (x < 1)
- fun_l9_n839(x)
- else
- fun_l9_n897(x)
- end
-end
-
-def fun_l8_n918(x)
- if (x < 1)
- fun_l9_n659(x)
- else
- fun_l9_n766(x)
- end
-end
-
-def fun_l8_n919(x)
- if (x < 1)
- fun_l9_n523(x)
- else
- fun_l9_n54(x)
- end
-end
-
-def fun_l8_n920(x)
- if (x < 1)
- fun_l9_n298(x)
- else
- fun_l9_n169(x)
- end
-end
-
-def fun_l8_n921(x)
- if (x < 1)
- fun_l9_n752(x)
- else
- fun_l9_n281(x)
- end
-end
-
-def fun_l8_n922(x)
- if (x < 1)
- fun_l9_n703(x)
- else
- fun_l9_n874(x)
- end
-end
-
-def fun_l8_n923(x)
- if (x < 1)
- fun_l9_n218(x)
- else
- fun_l9_n880(x)
- end
-end
-
-def fun_l8_n924(x)
- if (x < 1)
- fun_l9_n699(x)
- else
- fun_l9_n357(x)
- end
-end
-
-def fun_l8_n925(x)
- if (x < 1)
- fun_l9_n279(x)
- else
- fun_l9_n300(x)
- end
-end
-
-def fun_l8_n926(x)
- if (x < 1)
- fun_l9_n955(x)
- else
- fun_l9_n522(x)
- end
-end
-
-def fun_l8_n927(x)
- if (x < 1)
- fun_l9_n943(x)
- else
- fun_l9_n597(x)
- end
-end
-
-def fun_l8_n928(x)
- if (x < 1)
- fun_l9_n828(x)
- else
- fun_l9_n658(x)
- end
-end
-
-def fun_l8_n929(x)
- if (x < 1)
- fun_l9_n160(x)
- else
- fun_l9_n536(x)
- end
-end
-
-def fun_l8_n930(x)
- if (x < 1)
- fun_l9_n422(x)
- else
- fun_l9_n848(x)
- end
-end
-
-def fun_l8_n931(x)
- if (x < 1)
- fun_l9_n66(x)
- else
- fun_l9_n298(x)
- end
-end
-
-def fun_l8_n932(x)
- if (x < 1)
- fun_l9_n871(x)
- else
- fun_l9_n443(x)
- end
-end
-
-def fun_l8_n933(x)
- if (x < 1)
- fun_l9_n876(x)
- else
- fun_l9_n459(x)
- end
-end
-
-def fun_l8_n934(x)
- if (x < 1)
- fun_l9_n319(x)
- else
- fun_l9_n921(x)
- end
-end
-
-def fun_l8_n935(x)
- if (x < 1)
- fun_l9_n741(x)
- else
- fun_l9_n659(x)
- end
-end
-
-def fun_l8_n936(x)
- if (x < 1)
- fun_l9_n713(x)
- else
- fun_l9_n800(x)
- end
-end
-
-def fun_l8_n937(x)
- if (x < 1)
- fun_l9_n945(x)
- else
- fun_l9_n548(x)
- end
-end
-
-def fun_l8_n938(x)
- if (x < 1)
- fun_l9_n732(x)
- else
- fun_l9_n10(x)
- end
-end
-
-def fun_l8_n939(x)
- if (x < 1)
- fun_l9_n5(x)
- else
- fun_l9_n864(x)
- end
-end
-
-def fun_l8_n940(x)
- if (x < 1)
- fun_l9_n353(x)
- else
- fun_l9_n46(x)
- end
-end
-
-def fun_l8_n941(x)
- if (x < 1)
- fun_l9_n622(x)
- else
- fun_l9_n430(x)
- end
-end
-
-def fun_l8_n942(x)
- if (x < 1)
- fun_l9_n120(x)
- else
- fun_l9_n265(x)
- end
-end
-
-def fun_l8_n943(x)
- if (x < 1)
- fun_l9_n272(x)
- else
- fun_l9_n290(x)
- end
-end
-
-def fun_l8_n944(x)
- if (x < 1)
- fun_l9_n527(x)
- else
- fun_l9_n830(x)
- end
-end
-
-def fun_l8_n945(x)
- if (x < 1)
- fun_l9_n202(x)
- else
- fun_l9_n597(x)
- end
-end
-
-def fun_l8_n946(x)
- if (x < 1)
- fun_l9_n797(x)
- else
- fun_l9_n984(x)
- end
-end
-
-def fun_l8_n947(x)
- if (x < 1)
- fun_l9_n3(x)
- else
- fun_l9_n173(x)
- end
-end
-
-def fun_l8_n948(x)
- if (x < 1)
- fun_l9_n658(x)
- else
- fun_l9_n48(x)
- end
-end
-
-def fun_l8_n949(x)
- if (x < 1)
- fun_l9_n302(x)
- else
- fun_l9_n549(x)
- end
-end
-
-def fun_l8_n950(x)
- if (x < 1)
- fun_l9_n450(x)
- else
- fun_l9_n442(x)
- end
-end
-
-def fun_l8_n951(x)
- if (x < 1)
- fun_l9_n32(x)
- else
- fun_l9_n287(x)
- end
-end
-
-def fun_l8_n952(x)
- if (x < 1)
- fun_l9_n427(x)
- else
- fun_l9_n67(x)
- end
-end
-
-def fun_l8_n953(x)
- if (x < 1)
- fun_l9_n153(x)
- else
- fun_l9_n748(x)
- end
-end
-
-def fun_l8_n954(x)
- if (x < 1)
- fun_l9_n528(x)
- else
- fun_l9_n754(x)
- end
-end
-
-def fun_l8_n955(x)
- if (x < 1)
- fun_l9_n722(x)
- else
- fun_l9_n982(x)
- end
-end
-
-def fun_l8_n956(x)
- if (x < 1)
- fun_l9_n857(x)
- else
- fun_l9_n286(x)
- end
-end
-
-def fun_l8_n957(x)
- if (x < 1)
- fun_l9_n579(x)
- else
- fun_l9_n830(x)
- end
-end
-
-def fun_l8_n958(x)
- if (x < 1)
- fun_l9_n913(x)
- else
- fun_l9_n918(x)
- end
-end
-
-def fun_l8_n959(x)
- if (x < 1)
- fun_l9_n575(x)
- else
- fun_l9_n441(x)
- end
-end
-
-def fun_l8_n960(x)
- if (x < 1)
- fun_l9_n774(x)
- else
- fun_l9_n426(x)
- end
-end
-
-def fun_l8_n961(x)
- if (x < 1)
- fun_l9_n415(x)
- else
- fun_l9_n720(x)
- end
-end
-
-def fun_l8_n962(x)
- if (x < 1)
- fun_l9_n187(x)
- else
- fun_l9_n101(x)
- end
-end
-
-def fun_l8_n963(x)
- if (x < 1)
- fun_l9_n146(x)
- else
- fun_l9_n911(x)
- end
-end
-
-def fun_l8_n964(x)
- if (x < 1)
- fun_l9_n758(x)
- else
- fun_l9_n46(x)
- end
-end
-
-def fun_l8_n965(x)
- if (x < 1)
- fun_l9_n316(x)
- else
- fun_l9_n874(x)
- end
-end
-
-def fun_l8_n966(x)
- if (x < 1)
- fun_l9_n604(x)
- else
- fun_l9_n933(x)
- end
-end
-
-def fun_l8_n967(x)
- if (x < 1)
- fun_l9_n185(x)
- else
- fun_l9_n729(x)
- end
-end
-
-def fun_l8_n968(x)
- if (x < 1)
- fun_l9_n735(x)
- else
- fun_l9_n347(x)
- end
-end
-
-def fun_l8_n969(x)
- if (x < 1)
- fun_l9_n796(x)
- else
- fun_l9_n163(x)
- end
-end
-
-def fun_l8_n970(x)
- if (x < 1)
- fun_l9_n535(x)
- else
- fun_l9_n184(x)
- end
-end
-
-def fun_l8_n971(x)
- if (x < 1)
- fun_l9_n919(x)
- else
- fun_l9_n838(x)
- end
-end
-
-def fun_l8_n972(x)
- if (x < 1)
- fun_l9_n296(x)
- else
- fun_l9_n822(x)
- end
-end
-
-def fun_l8_n973(x)
- if (x < 1)
- fun_l9_n503(x)
- else
- fun_l9_n979(x)
- end
-end
-
-def fun_l8_n974(x)
- if (x < 1)
- fun_l9_n598(x)
- else
- fun_l9_n916(x)
- end
-end
-
-def fun_l8_n975(x)
- if (x < 1)
- fun_l9_n119(x)
- else
- fun_l9_n138(x)
- end
-end
-
-def fun_l8_n976(x)
- if (x < 1)
- fun_l9_n92(x)
- else
- fun_l9_n244(x)
- end
-end
-
-def fun_l8_n977(x)
- if (x < 1)
- fun_l9_n250(x)
- else
- fun_l9_n496(x)
- end
-end
-
-def fun_l8_n978(x)
- if (x < 1)
- fun_l9_n665(x)
- else
- fun_l9_n617(x)
- end
-end
-
-def fun_l8_n979(x)
- if (x < 1)
- fun_l9_n212(x)
- else
- fun_l9_n63(x)
- end
-end
-
-def fun_l8_n980(x)
- if (x < 1)
- fun_l9_n304(x)
- else
- fun_l9_n373(x)
- end
-end
-
-def fun_l8_n981(x)
- if (x < 1)
- fun_l9_n70(x)
- else
- fun_l9_n194(x)
- end
-end
-
-def fun_l8_n982(x)
- if (x < 1)
- fun_l9_n996(x)
- else
- fun_l9_n821(x)
- end
-end
-
-def fun_l8_n983(x)
- if (x < 1)
- fun_l9_n109(x)
- else
- fun_l9_n926(x)
- end
-end
-
-def fun_l8_n984(x)
- if (x < 1)
- fun_l9_n342(x)
- else
- fun_l9_n768(x)
- end
-end
-
-def fun_l8_n985(x)
- if (x < 1)
- fun_l9_n12(x)
- else
- fun_l9_n55(x)
- end
-end
-
-def fun_l8_n986(x)
- if (x < 1)
- fun_l9_n663(x)
- else
- fun_l9_n963(x)
- end
-end
-
-def fun_l8_n987(x)
- if (x < 1)
- fun_l9_n108(x)
- else
- fun_l9_n139(x)
- end
-end
-
-def fun_l8_n988(x)
- if (x < 1)
- fun_l9_n256(x)
- else
- fun_l9_n55(x)
- end
-end
-
-def fun_l8_n989(x)
- if (x < 1)
- fun_l9_n261(x)
- else
- fun_l9_n962(x)
- end
-end
-
-def fun_l8_n990(x)
- if (x < 1)
- fun_l9_n581(x)
- else
- fun_l9_n558(x)
- end
-end
-
-def fun_l8_n991(x)
- if (x < 1)
- fun_l9_n379(x)
- else
- fun_l9_n179(x)
- end
-end
-
-def fun_l8_n992(x)
- if (x < 1)
- fun_l9_n256(x)
- else
- fun_l9_n158(x)
- end
-end
-
-def fun_l8_n993(x)
- if (x < 1)
- fun_l9_n75(x)
- else
- fun_l9_n669(x)
- end
-end
-
-def fun_l8_n994(x)
- if (x < 1)
- fun_l9_n1(x)
- else
- fun_l9_n723(x)
- end
-end
-
-def fun_l8_n995(x)
- if (x < 1)
- fun_l9_n52(x)
- else
- fun_l9_n706(x)
- end
-end
-
-def fun_l8_n996(x)
- if (x < 1)
- fun_l9_n583(x)
- else
- fun_l9_n769(x)
- end
-end
-
-def fun_l8_n997(x)
- if (x < 1)
- fun_l9_n91(x)
- else
- fun_l9_n86(x)
- end
-end
-
-def fun_l8_n998(x)
- if (x < 1)
- fun_l9_n605(x)
- else
- fun_l9_n106(x)
- end
-end
-
-def fun_l8_n999(x)
- if (x < 1)
- fun_l9_n634(x)
- else
- fun_l9_n110(x)
- end
-end
-
-def fun_l9_n0(x)
- if (x < 1)
- fun_l10_n583(x)
- else
- fun_l10_n168(x)
- end
-end
-
-def fun_l9_n1(x)
- if (x < 1)
- fun_l10_n523(x)
- else
- fun_l10_n486(x)
- end
-end
-
-def fun_l9_n2(x)
- if (x < 1)
- fun_l10_n869(x)
- else
- fun_l10_n480(x)
- end
-end
-
-def fun_l9_n3(x)
- if (x < 1)
- fun_l10_n227(x)
- else
- fun_l10_n798(x)
- end
-end
-
-def fun_l9_n4(x)
- if (x < 1)
- fun_l10_n8(x)
- else
- fun_l10_n984(x)
- end
-end
-
-def fun_l9_n5(x)
- if (x < 1)
- fun_l10_n757(x)
- else
- fun_l10_n791(x)
- end
-end
-
-def fun_l9_n6(x)
- if (x < 1)
- fun_l10_n131(x)
- else
- fun_l10_n44(x)
- end
-end
-
-def fun_l9_n7(x)
- if (x < 1)
- fun_l10_n292(x)
- else
- fun_l10_n793(x)
- end
-end
-
-def fun_l9_n8(x)
- if (x < 1)
- fun_l10_n237(x)
- else
- fun_l10_n439(x)
- end
-end
-
-def fun_l9_n9(x)
- if (x < 1)
- fun_l10_n99(x)
- else
- fun_l10_n914(x)
- end
-end
-
-def fun_l9_n10(x)
- if (x < 1)
- fun_l10_n702(x)
- else
- fun_l10_n983(x)
- end
-end
-
-def fun_l9_n11(x)
- if (x < 1)
- fun_l10_n843(x)
- else
- fun_l10_n774(x)
- end
-end
-
-def fun_l9_n12(x)
- if (x < 1)
- fun_l10_n720(x)
- else
- fun_l10_n238(x)
- end
-end
-
-def fun_l9_n13(x)
- if (x < 1)
- fun_l10_n339(x)
- else
- fun_l10_n613(x)
- end
-end
-
-def fun_l9_n14(x)
- if (x < 1)
- fun_l10_n711(x)
- else
- fun_l10_n836(x)
- end
-end
-
-def fun_l9_n15(x)
- if (x < 1)
- fun_l10_n542(x)
- else
- fun_l10_n90(x)
- end
-end
-
-def fun_l9_n16(x)
- if (x < 1)
- fun_l10_n931(x)
- else
- fun_l10_n1(x)
- end
-end
-
-def fun_l9_n17(x)
- if (x < 1)
- fun_l10_n568(x)
- else
- fun_l10_n397(x)
- end
-end
-
-def fun_l9_n18(x)
- if (x < 1)
- fun_l10_n108(x)
- else
- fun_l10_n245(x)
- end
-end
-
-def fun_l9_n19(x)
- if (x < 1)
- fun_l10_n413(x)
- else
- fun_l10_n644(x)
- end
-end
-
-def fun_l9_n20(x)
- if (x < 1)
- fun_l10_n533(x)
- else
- fun_l10_n345(x)
- end
-end
-
-def fun_l9_n21(x)
- if (x < 1)
- fun_l10_n84(x)
- else
- fun_l10_n821(x)
- end
-end
-
-def fun_l9_n22(x)
- if (x < 1)
- fun_l10_n391(x)
- else
- fun_l10_n154(x)
- end
-end
-
-def fun_l9_n23(x)
- if (x < 1)
- fun_l10_n591(x)
- else
- fun_l10_n443(x)
- end
-end
-
-def fun_l9_n24(x)
- if (x < 1)
- fun_l10_n105(x)
- else
- fun_l10_n652(x)
- end
-end
-
-def fun_l9_n25(x)
- if (x < 1)
- fun_l10_n495(x)
- else
- fun_l10_n185(x)
- end
-end
-
-def fun_l9_n26(x)
- if (x < 1)
- fun_l10_n160(x)
- else
- fun_l10_n77(x)
- end
-end
-
-def fun_l9_n27(x)
- if (x < 1)
- fun_l10_n307(x)
- else
- fun_l10_n813(x)
- end
-end
-
-def fun_l9_n28(x)
- if (x < 1)
- fun_l10_n651(x)
- else
- fun_l10_n198(x)
- end
-end
-
-def fun_l9_n29(x)
- if (x < 1)
- fun_l10_n689(x)
- else
- fun_l10_n995(x)
- end
-end
-
-def fun_l9_n30(x)
- if (x < 1)
- fun_l10_n52(x)
- else
- fun_l10_n846(x)
- end
-end
-
-def fun_l9_n31(x)
- if (x < 1)
- fun_l10_n151(x)
- else
- fun_l10_n758(x)
- end
-end
-
-def fun_l9_n32(x)
- if (x < 1)
- fun_l10_n675(x)
- else
- fun_l10_n240(x)
- end
-end
-
-def fun_l9_n33(x)
- if (x < 1)
- fun_l10_n660(x)
- else
- fun_l10_n826(x)
- end
-end
-
-def fun_l9_n34(x)
- if (x < 1)
- fun_l10_n858(x)
- else
- fun_l10_n120(x)
- end
-end
-
-def fun_l9_n35(x)
- if (x < 1)
- fun_l10_n28(x)
- else
- fun_l10_n870(x)
- end
-end
-
-def fun_l9_n36(x)
- if (x < 1)
- fun_l10_n275(x)
- else
- fun_l10_n376(x)
- end
-end
-
-def fun_l9_n37(x)
- if (x < 1)
- fun_l10_n852(x)
- else
- fun_l10_n413(x)
- end
-end
-
-def fun_l9_n38(x)
- if (x < 1)
- fun_l10_n608(x)
- else
- fun_l10_n740(x)
- end
-end
-
-def fun_l9_n39(x)
- if (x < 1)
- fun_l10_n856(x)
- else
- fun_l10_n543(x)
- end
-end
-
-def fun_l9_n40(x)
- if (x < 1)
- fun_l10_n979(x)
- else
- fun_l10_n37(x)
- end
-end
-
-def fun_l9_n41(x)
- if (x < 1)
- fun_l10_n752(x)
- else
- fun_l10_n94(x)
- end
-end
-
-def fun_l9_n42(x)
- if (x < 1)
- fun_l10_n653(x)
- else
- fun_l10_n64(x)
- end
-end
-
-def fun_l9_n43(x)
- if (x < 1)
- fun_l10_n860(x)
- else
- fun_l10_n658(x)
- end
-end
-
-def fun_l9_n44(x)
- if (x < 1)
- fun_l10_n952(x)
- else
- fun_l10_n413(x)
- end
-end
-
-def fun_l9_n45(x)
- if (x < 1)
- fun_l10_n70(x)
- else
- fun_l10_n297(x)
- end
-end
-
-def fun_l9_n46(x)
- if (x < 1)
- fun_l10_n100(x)
- else
- fun_l10_n154(x)
- end
-end
-
-def fun_l9_n47(x)
- if (x < 1)
- fun_l10_n746(x)
- else
- fun_l10_n937(x)
- end
-end
-
-def fun_l9_n48(x)
- if (x < 1)
- fun_l10_n341(x)
- else
- fun_l10_n200(x)
- end
-end
-
-def fun_l9_n49(x)
- if (x < 1)
- fun_l10_n317(x)
- else
- fun_l10_n607(x)
- end
-end
-
-def fun_l9_n50(x)
- if (x < 1)
- fun_l10_n194(x)
- else
- fun_l10_n499(x)
- end
-end
-
-def fun_l9_n51(x)
- if (x < 1)
- fun_l10_n936(x)
- else
- fun_l10_n387(x)
- end
-end
-
-def fun_l9_n52(x)
- if (x < 1)
- fun_l10_n660(x)
- else
- fun_l10_n734(x)
- end
-end
-
-def fun_l9_n53(x)
- if (x < 1)
- fun_l10_n523(x)
- else
- fun_l10_n532(x)
- end
-end
-
-def fun_l9_n54(x)
- if (x < 1)
- fun_l10_n847(x)
- else
- fun_l10_n586(x)
- end
-end
-
-def fun_l9_n55(x)
- if (x < 1)
- fun_l10_n378(x)
- else
- fun_l10_n226(x)
- end
-end
-
-def fun_l9_n56(x)
- if (x < 1)
- fun_l10_n55(x)
- else
- fun_l10_n823(x)
- end
-end
-
-def fun_l9_n57(x)
- if (x < 1)
- fun_l10_n931(x)
- else
- fun_l10_n268(x)
- end
-end
-
-def fun_l9_n58(x)
- if (x < 1)
- fun_l10_n603(x)
- else
- fun_l10_n746(x)
- end
-end
-
-def fun_l9_n59(x)
- if (x < 1)
- fun_l10_n174(x)
- else
- fun_l10_n196(x)
- end
-end
-
-def fun_l9_n60(x)
- if (x < 1)
- fun_l10_n45(x)
- else
- fun_l10_n907(x)
- end
-end
-
-def fun_l9_n61(x)
- if (x < 1)
- fun_l10_n282(x)
- else
- fun_l10_n478(x)
- end
-end
-
-def fun_l9_n62(x)
- if (x < 1)
- fun_l10_n558(x)
- else
- fun_l10_n354(x)
- end
-end
-
-def fun_l9_n63(x)
- if (x < 1)
- fun_l10_n729(x)
- else
- fun_l10_n275(x)
- end
-end
-
-def fun_l9_n64(x)
- if (x < 1)
- fun_l10_n804(x)
- else
- fun_l10_n873(x)
- end
-end
-
-def fun_l9_n65(x)
- if (x < 1)
- fun_l10_n901(x)
- else
- fun_l10_n684(x)
- end
-end
-
-def fun_l9_n66(x)
- if (x < 1)
- fun_l10_n542(x)
- else
- fun_l10_n668(x)
- end
-end
-
-def fun_l9_n67(x)
- if (x < 1)
- fun_l10_n112(x)
- else
- fun_l10_n48(x)
- end
-end
-
-def fun_l9_n68(x)
- if (x < 1)
- fun_l10_n78(x)
- else
- fun_l10_n50(x)
- end
-end
-
-def fun_l9_n69(x)
- if (x < 1)
- fun_l10_n595(x)
- else
- fun_l10_n163(x)
- end
-end
-
-def fun_l9_n70(x)
- if (x < 1)
- fun_l10_n839(x)
- else
- fun_l10_n811(x)
- end
-end
-
-def fun_l9_n71(x)
- if (x < 1)
- fun_l10_n704(x)
- else
- fun_l10_n81(x)
- end
-end
-
-def fun_l9_n72(x)
- if (x < 1)
- fun_l10_n708(x)
- else
- fun_l10_n711(x)
- end
-end
-
-def fun_l9_n73(x)
- if (x < 1)
- fun_l10_n948(x)
- else
- fun_l10_n397(x)
- end
-end
-
-def fun_l9_n74(x)
- if (x < 1)
- fun_l10_n168(x)
- else
- fun_l10_n415(x)
- end
-end
-
-def fun_l9_n75(x)
- if (x < 1)
- fun_l10_n191(x)
- else
- fun_l10_n547(x)
- end
-end
-
-def fun_l9_n76(x)
- if (x < 1)
- fun_l10_n163(x)
- else
- fun_l10_n246(x)
- end
-end
-
-def fun_l9_n77(x)
- if (x < 1)
- fun_l10_n948(x)
- else
- fun_l10_n80(x)
- end
-end
-
-def fun_l9_n78(x)
- if (x < 1)
- fun_l10_n178(x)
- else
- fun_l10_n698(x)
- end
-end
-
-def fun_l9_n79(x)
- if (x < 1)
- fun_l10_n150(x)
- else
- fun_l10_n545(x)
- end
-end
-
-def fun_l9_n80(x)
- if (x < 1)
- fun_l10_n808(x)
- else
- fun_l10_n668(x)
- end
-end
-
-def fun_l9_n81(x)
- if (x < 1)
- fun_l10_n597(x)
- else
- fun_l10_n908(x)
- end
-end
-
-def fun_l9_n82(x)
- if (x < 1)
- fun_l10_n868(x)
- else
- fun_l10_n831(x)
- end
-end
-
-def fun_l9_n83(x)
- if (x < 1)
- fun_l10_n432(x)
- else
- fun_l10_n281(x)
- end
-end
-
-def fun_l9_n84(x)
- if (x < 1)
- fun_l10_n906(x)
- else
- fun_l10_n838(x)
- end
-end
-
-def fun_l9_n85(x)
- if (x < 1)
- fun_l10_n828(x)
- else
- fun_l10_n876(x)
- end
-end
-
-def fun_l9_n86(x)
- if (x < 1)
- fun_l10_n537(x)
- else
- fun_l10_n283(x)
- end
-end
-
-def fun_l9_n87(x)
- if (x < 1)
- fun_l10_n108(x)
- else
- fun_l10_n157(x)
- end
-end
-
-def fun_l9_n88(x)
- if (x < 1)
- fun_l10_n576(x)
- else
- fun_l10_n448(x)
- end
-end
-
-def fun_l9_n89(x)
- if (x < 1)
- fun_l10_n633(x)
- else
- fun_l10_n43(x)
- end
-end
-
-def fun_l9_n90(x)
- if (x < 1)
- fun_l10_n114(x)
- else
- fun_l10_n44(x)
- end
-end
-
-def fun_l9_n91(x)
- if (x < 1)
- fun_l10_n656(x)
- else
- fun_l10_n586(x)
- end
-end
-
-def fun_l9_n92(x)
- if (x < 1)
- fun_l10_n366(x)
- else
- fun_l10_n613(x)
- end
-end
-
-def fun_l9_n93(x)
- if (x < 1)
- fun_l10_n174(x)
- else
- fun_l10_n250(x)
- end
-end
-
-def fun_l9_n94(x)
- if (x < 1)
- fun_l10_n911(x)
- else
- fun_l10_n877(x)
- end
-end
-
-def fun_l9_n95(x)
- if (x < 1)
- fun_l10_n940(x)
- else
- fun_l10_n334(x)
- end
-end
-
-def fun_l9_n96(x)
- if (x < 1)
- fun_l10_n473(x)
- else
- fun_l10_n914(x)
- end
-end
-
-def fun_l9_n97(x)
- if (x < 1)
- fun_l10_n550(x)
- else
- fun_l10_n80(x)
- end
-end
-
-def fun_l9_n98(x)
- if (x < 1)
- fun_l10_n46(x)
- else
- fun_l10_n716(x)
- end
-end
-
-def fun_l9_n99(x)
- if (x < 1)
- fun_l10_n294(x)
- else
- fun_l10_n615(x)
- end
-end
-
-def fun_l9_n100(x)
- if (x < 1)
- fun_l10_n286(x)
- else
- fun_l10_n120(x)
- end
-end
-
-def fun_l9_n101(x)
- if (x < 1)
- fun_l10_n674(x)
- else
- fun_l10_n498(x)
- end
-end
-
-def fun_l9_n102(x)
- if (x < 1)
- fun_l10_n700(x)
- else
- fun_l10_n35(x)
- end
-end
-
-def fun_l9_n103(x)
- if (x < 1)
- fun_l10_n225(x)
- else
- fun_l10_n206(x)
- end
-end
-
-def fun_l9_n104(x)
- if (x < 1)
- fun_l10_n594(x)
- else
- fun_l10_n679(x)
- end
-end
-
-def fun_l9_n105(x)
- if (x < 1)
- fun_l10_n148(x)
- else
- fun_l10_n449(x)
- end
-end
-
-def fun_l9_n106(x)
- if (x < 1)
- fun_l10_n125(x)
- else
- fun_l10_n761(x)
- end
-end
-
-def fun_l9_n107(x)
- if (x < 1)
- fun_l10_n642(x)
- else
- fun_l10_n988(x)
- end
-end
-
-def fun_l9_n108(x)
- if (x < 1)
- fun_l10_n952(x)
- else
- fun_l10_n436(x)
- end
-end
-
-def fun_l9_n109(x)
- if (x < 1)
- fun_l10_n955(x)
- else
- fun_l10_n380(x)
- end
-end
-
-def fun_l9_n110(x)
- if (x < 1)
- fun_l10_n813(x)
- else
- fun_l10_n837(x)
- end
-end
-
-def fun_l9_n111(x)
- if (x < 1)
- fun_l10_n471(x)
- else
- fun_l10_n69(x)
- end
-end
-
-def fun_l9_n112(x)
- if (x < 1)
- fun_l10_n614(x)
- else
- fun_l10_n665(x)
- end
-end
-
-def fun_l9_n113(x)
- if (x < 1)
- fun_l10_n485(x)
- else
- fun_l10_n276(x)
- end
-end
-
-def fun_l9_n114(x)
- if (x < 1)
- fun_l10_n171(x)
- else
- fun_l10_n457(x)
- end
-end
-
-def fun_l9_n115(x)
- if (x < 1)
- fun_l10_n106(x)
- else
- fun_l10_n555(x)
- end
-end
-
-def fun_l9_n116(x)
- if (x < 1)
- fun_l10_n231(x)
- else
- fun_l10_n163(x)
- end
-end
-
-def fun_l9_n117(x)
- if (x < 1)
- fun_l10_n569(x)
- else
- fun_l10_n345(x)
- end
-end
-
-def fun_l9_n118(x)
- if (x < 1)
- fun_l10_n946(x)
- else
- fun_l10_n174(x)
- end
-end
-
-def fun_l9_n119(x)
- if (x < 1)
- fun_l10_n716(x)
- else
- fun_l10_n882(x)
- end
-end
-
-def fun_l9_n120(x)
- if (x < 1)
- fun_l10_n628(x)
- else
- fun_l10_n838(x)
- end
-end
-
-def fun_l9_n121(x)
- if (x < 1)
- fun_l10_n699(x)
- else
- fun_l10_n384(x)
- end
-end
-
-def fun_l9_n122(x)
- if (x < 1)
- fun_l10_n180(x)
- else
- fun_l10_n98(x)
- end
-end
-
-def fun_l9_n123(x)
- if (x < 1)
- fun_l10_n177(x)
- else
- fun_l10_n635(x)
- end
-end
-
-def fun_l9_n124(x)
- if (x < 1)
- fun_l10_n398(x)
- else
- fun_l10_n121(x)
- end
-end
-
-def fun_l9_n125(x)
- if (x < 1)
- fun_l10_n866(x)
- else
- fun_l10_n595(x)
- end
-end
-
-def fun_l9_n126(x)
- if (x < 1)
- fun_l10_n9(x)
- else
- fun_l10_n901(x)
- end
-end
-
-def fun_l9_n127(x)
- if (x < 1)
- fun_l10_n579(x)
- else
- fun_l10_n640(x)
- end
-end
-
-def fun_l9_n128(x)
- if (x < 1)
- fun_l10_n884(x)
- else
- fun_l10_n327(x)
- end
-end
-
-def fun_l9_n129(x)
- if (x < 1)
- fun_l10_n553(x)
- else
- fun_l10_n73(x)
- end
-end
-
-def fun_l9_n130(x)
- if (x < 1)
- fun_l10_n372(x)
- else
- fun_l10_n450(x)
- end
-end
-
-def fun_l9_n131(x)
- if (x < 1)
- fun_l10_n748(x)
- else
- fun_l10_n534(x)
- end
-end
-
-def fun_l9_n132(x)
- if (x < 1)
- fun_l10_n529(x)
- else
- fun_l10_n689(x)
- end
-end
-
-def fun_l9_n133(x)
- if (x < 1)
- fun_l10_n24(x)
- else
- fun_l10_n677(x)
- end
-end
-
-def fun_l9_n134(x)
- if (x < 1)
- fun_l10_n4(x)
- else
- fun_l10_n482(x)
- end
-end
-
-def fun_l9_n135(x)
- if (x < 1)
- fun_l10_n314(x)
- else
- fun_l10_n509(x)
- end
-end
-
-def fun_l9_n136(x)
- if (x < 1)
- fun_l10_n160(x)
- else
- fun_l10_n342(x)
- end
-end
-
-def fun_l9_n137(x)
- if (x < 1)
- fun_l10_n289(x)
- else
- fun_l10_n910(x)
- end
-end
-
-def fun_l9_n138(x)
- if (x < 1)
- fun_l10_n926(x)
- else
- fun_l10_n752(x)
- end
-end
-
-def fun_l9_n139(x)
- if (x < 1)
- fun_l10_n303(x)
- else
- fun_l10_n399(x)
- end
-end
-
-def fun_l9_n140(x)
- if (x < 1)
- fun_l10_n11(x)
- else
- fun_l10_n241(x)
- end
-end
-
-def fun_l9_n141(x)
- if (x < 1)
- fun_l10_n528(x)
- else
- fun_l10_n727(x)
- end
-end
-
-def fun_l9_n142(x)
- if (x < 1)
- fun_l10_n572(x)
- else
- fun_l10_n132(x)
- end
-end
-
-def fun_l9_n143(x)
- if (x < 1)
- fun_l10_n858(x)
- else
- fun_l10_n712(x)
- end
-end
-
-def fun_l9_n144(x)
- if (x < 1)
- fun_l10_n662(x)
- else
- fun_l10_n128(x)
- end
-end
-
-def fun_l9_n145(x)
- if (x < 1)
- fun_l10_n668(x)
- else
- fun_l10_n483(x)
- end
-end
-
-def fun_l9_n146(x)
- if (x < 1)
- fun_l10_n401(x)
- else
- fun_l10_n330(x)
- end
-end
-
-def fun_l9_n147(x)
- if (x < 1)
- fun_l10_n103(x)
- else
- fun_l10_n859(x)
- end
-end
-
-def fun_l9_n148(x)
- if (x < 1)
- fun_l10_n129(x)
- else
- fun_l10_n628(x)
- end
-end
-
-def fun_l9_n149(x)
- if (x < 1)
- fun_l10_n898(x)
- else
- fun_l10_n984(x)
- end
-end
-
-def fun_l9_n150(x)
- if (x < 1)
- fun_l10_n574(x)
- else
- fun_l10_n59(x)
- end
-end
-
-def fun_l9_n151(x)
- if (x < 1)
- fun_l10_n759(x)
- else
- fun_l10_n782(x)
- end
-end
-
-def fun_l9_n152(x)
- if (x < 1)
- fun_l10_n588(x)
- else
- fun_l10_n383(x)
- end
-end
-
-def fun_l9_n153(x)
- if (x < 1)
- fun_l10_n889(x)
- else
- fun_l10_n628(x)
- end
-end
-
-def fun_l9_n154(x)
- if (x < 1)
- fun_l10_n376(x)
- else
- fun_l10_n442(x)
- end
-end
-
-def fun_l9_n155(x)
- if (x < 1)
- fun_l10_n497(x)
- else
- fun_l10_n269(x)
- end
-end
-
-def fun_l9_n156(x)
- if (x < 1)
- fun_l10_n976(x)
- else
- fun_l10_n829(x)
- end
-end
-
-def fun_l9_n157(x)
- if (x < 1)
- fun_l10_n366(x)
- else
- fun_l10_n416(x)
- end
-end
-
-def fun_l9_n158(x)
- if (x < 1)
- fun_l10_n712(x)
- else
- fun_l10_n19(x)
- end
-end
-
-def fun_l9_n159(x)
- if (x < 1)
- fun_l10_n151(x)
- else
- fun_l10_n129(x)
- end
-end
-
-def fun_l9_n160(x)
- if (x < 1)
- fun_l10_n621(x)
- else
- fun_l10_n385(x)
- end
-end
-
-def fun_l9_n161(x)
- if (x < 1)
- fun_l10_n626(x)
- else
- fun_l10_n686(x)
- end
-end
-
-def fun_l9_n162(x)
- if (x < 1)
- fun_l10_n165(x)
- else
- fun_l10_n922(x)
- end
-end
-
-def fun_l9_n163(x)
- if (x < 1)
- fun_l10_n670(x)
- else
- fun_l10_n889(x)
- end
-end
-
-def fun_l9_n164(x)
- if (x < 1)
- fun_l10_n346(x)
- else
- fun_l10_n292(x)
- end
-end
-
-def fun_l9_n165(x)
- if (x < 1)
- fun_l10_n812(x)
- else
- fun_l10_n799(x)
- end
-end
-
-def fun_l9_n166(x)
- if (x < 1)
- fun_l10_n21(x)
- else
- fun_l10_n641(x)
- end
-end
-
-def fun_l9_n167(x)
- if (x < 1)
- fun_l10_n268(x)
- else
- fun_l10_n943(x)
- end
-end
-
-def fun_l9_n168(x)
- if (x < 1)
- fun_l10_n349(x)
- else
- fun_l10_n620(x)
- end
-end
-
-def fun_l9_n169(x)
- if (x < 1)
- fun_l10_n894(x)
- else
- fun_l10_n625(x)
- end
-end
-
-def fun_l9_n170(x)
- if (x < 1)
- fun_l10_n732(x)
- else
- fun_l10_n518(x)
- end
-end
-
-def fun_l9_n171(x)
- if (x < 1)
- fun_l10_n272(x)
- else
- fun_l10_n148(x)
- end
-end
-
-def fun_l9_n172(x)
- if (x < 1)
- fun_l10_n701(x)
- else
- fun_l10_n227(x)
- end
-end
-
-def fun_l9_n173(x)
- if (x < 1)
- fun_l10_n833(x)
- else
- fun_l10_n853(x)
- end
-end
-
-def fun_l9_n174(x)
- if (x < 1)
- fun_l10_n643(x)
- else
- fun_l10_n314(x)
- end
-end
-
-def fun_l9_n175(x)
- if (x < 1)
- fun_l10_n217(x)
- else
- fun_l10_n64(x)
- end
-end
-
-def fun_l9_n176(x)
- if (x < 1)
- fun_l10_n204(x)
- else
- fun_l10_n990(x)
- end
-end
-
-def fun_l9_n177(x)
- if (x < 1)
- fun_l10_n130(x)
- else
- fun_l10_n829(x)
- end
-end
-
-def fun_l9_n178(x)
- if (x < 1)
- fun_l10_n260(x)
- else
- fun_l10_n881(x)
- end
-end
-
-def fun_l9_n179(x)
- if (x < 1)
- fun_l10_n728(x)
- else
- fun_l10_n491(x)
- end
-end
-
-def fun_l9_n180(x)
- if (x < 1)
- fun_l10_n456(x)
- else
- fun_l10_n221(x)
- end
-end
-
-def fun_l9_n181(x)
- if (x < 1)
- fun_l10_n634(x)
- else
- fun_l10_n166(x)
- end
-end
-
-def fun_l9_n182(x)
- if (x < 1)
- fun_l10_n427(x)
- else
- fun_l10_n452(x)
- end
-end
-
-def fun_l9_n183(x)
- if (x < 1)
- fun_l10_n754(x)
- else
- fun_l10_n54(x)
- end
-end
-
-def fun_l9_n184(x)
- if (x < 1)
- fun_l10_n137(x)
- else
- fun_l10_n155(x)
- end
-end
-
-def fun_l9_n185(x)
- if (x < 1)
- fun_l10_n611(x)
- else
- fun_l10_n573(x)
- end
-end
-
-def fun_l9_n186(x)
- if (x < 1)
- fun_l10_n694(x)
- else
- fun_l10_n890(x)
- end
-end
-
-def fun_l9_n187(x)
- if (x < 1)
- fun_l10_n533(x)
- else
- fun_l10_n102(x)
- end
-end
-
-def fun_l9_n188(x)
- if (x < 1)
- fun_l10_n400(x)
- else
- fun_l10_n838(x)
- end
-end
-
-def fun_l9_n189(x)
- if (x < 1)
- fun_l10_n783(x)
- else
- fun_l10_n620(x)
- end
-end
-
-def fun_l9_n190(x)
- if (x < 1)
- fun_l10_n209(x)
- else
- fun_l10_n777(x)
- end
-end
-
-def fun_l9_n191(x)
- if (x < 1)
- fun_l10_n760(x)
- else
- fun_l10_n299(x)
- end
-end
-
-def fun_l9_n192(x)
- if (x < 1)
- fun_l10_n306(x)
- else
- fun_l10_n509(x)
- end
-end
-
-def fun_l9_n193(x)
- if (x < 1)
- fun_l10_n842(x)
- else
- fun_l10_n0(x)
- end
-end
-
-def fun_l9_n194(x)
- if (x < 1)
- fun_l10_n620(x)
- else
- fun_l10_n757(x)
- end
-end
-
-def fun_l9_n195(x)
- if (x < 1)
- fun_l10_n944(x)
- else
- fun_l10_n257(x)
- end
-end
-
-def fun_l9_n196(x)
- if (x < 1)
- fun_l10_n222(x)
- else
- fun_l10_n11(x)
- end
-end
-
-def fun_l9_n197(x)
- if (x < 1)
- fun_l10_n419(x)
- else
- fun_l10_n704(x)
- end
-end
-
-def fun_l9_n198(x)
- if (x < 1)
- fun_l10_n656(x)
- else
- fun_l10_n341(x)
- end
-end
-
-def fun_l9_n199(x)
- if (x < 1)
- fun_l10_n129(x)
- else
- fun_l10_n815(x)
- end
-end
-
-def fun_l9_n200(x)
- if (x < 1)
- fun_l10_n768(x)
- else
- fun_l10_n924(x)
- end
-end
-
-def fun_l9_n201(x)
- if (x < 1)
- fun_l10_n439(x)
- else
- fun_l10_n361(x)
- end
-end
-
-def fun_l9_n202(x)
- if (x < 1)
- fun_l10_n421(x)
- else
- fun_l10_n937(x)
- end
-end
-
-def fun_l9_n203(x)
- if (x < 1)
- fun_l10_n323(x)
- else
- fun_l10_n262(x)
- end
-end
-
-def fun_l9_n204(x)
- if (x < 1)
- fun_l10_n335(x)
- else
- fun_l10_n87(x)
- end
-end
-
-def fun_l9_n205(x)
- if (x < 1)
- fun_l10_n973(x)
- else
- fun_l10_n262(x)
- end
-end
-
-def fun_l9_n206(x)
- if (x < 1)
- fun_l10_n494(x)
- else
- fun_l10_n430(x)
- end
-end
-
-def fun_l9_n207(x)
- if (x < 1)
- fun_l10_n482(x)
- else
- fun_l10_n828(x)
- end
-end
-
-def fun_l9_n208(x)
- if (x < 1)
- fun_l10_n820(x)
- else
- fun_l10_n646(x)
- end
-end
-
-def fun_l9_n209(x)
- if (x < 1)
- fun_l10_n669(x)
- else
- fun_l10_n176(x)
- end
-end
-
-def fun_l9_n210(x)
- if (x < 1)
- fun_l10_n165(x)
- else
- fun_l10_n963(x)
- end
-end
-
-def fun_l9_n211(x)
- if (x < 1)
- fun_l10_n772(x)
- else
- fun_l10_n49(x)
- end
-end
-
-def fun_l9_n212(x)
- if (x < 1)
- fun_l10_n167(x)
- else
- fun_l10_n598(x)
- end
-end
-
-def fun_l9_n213(x)
- if (x < 1)
- fun_l10_n552(x)
- else
- fun_l10_n374(x)
- end
-end
-
-def fun_l9_n214(x)
- if (x < 1)
- fun_l10_n39(x)
- else
- fun_l10_n470(x)
- end
-end
-
-def fun_l9_n215(x)
- if (x < 1)
- fun_l10_n489(x)
- else
- fun_l10_n812(x)
- end
-end
-
-def fun_l9_n216(x)
- if (x < 1)
- fun_l10_n390(x)
- else
- fun_l10_n928(x)
- end
-end
-
-def fun_l9_n217(x)
- if (x < 1)
- fun_l10_n909(x)
- else
- fun_l10_n876(x)
- end
-end
-
-def fun_l9_n218(x)
- if (x < 1)
- fun_l10_n781(x)
- else
- fun_l10_n799(x)
- end
-end
-
-def fun_l9_n219(x)
- if (x < 1)
- fun_l10_n958(x)
- else
- fun_l10_n697(x)
- end
-end
-
-def fun_l9_n220(x)
- if (x < 1)
- fun_l10_n577(x)
- else
- fun_l10_n667(x)
- end
-end
-
-def fun_l9_n221(x)
- if (x < 1)
- fun_l10_n206(x)
- else
- fun_l10_n573(x)
- end
-end
-
-def fun_l9_n222(x)
- if (x < 1)
- fun_l10_n389(x)
- else
- fun_l10_n659(x)
- end
-end
-
-def fun_l9_n223(x)
- if (x < 1)
- fun_l10_n951(x)
- else
- fun_l10_n572(x)
- end
-end
-
-def fun_l9_n224(x)
- if (x < 1)
- fun_l10_n158(x)
- else
- fun_l10_n500(x)
- end
-end
-
-def fun_l9_n225(x)
- if (x < 1)
- fun_l10_n681(x)
- else
- fun_l10_n983(x)
- end
-end
-
-def fun_l9_n226(x)
- if (x < 1)
- fun_l10_n987(x)
- else
- fun_l10_n116(x)
- end
-end
-
-def fun_l9_n227(x)
- if (x < 1)
- fun_l10_n347(x)
- else
- fun_l10_n606(x)
- end
-end
-
-def fun_l9_n228(x)
- if (x < 1)
- fun_l10_n566(x)
- else
- fun_l10_n77(x)
- end
-end
-
-def fun_l9_n229(x)
- if (x < 1)
- fun_l10_n879(x)
- else
- fun_l10_n66(x)
- end
-end
-
-def fun_l9_n230(x)
- if (x < 1)
- fun_l10_n355(x)
- else
- fun_l10_n97(x)
- end
-end
-
-def fun_l9_n231(x)
- if (x < 1)
- fun_l10_n938(x)
- else
- fun_l10_n5(x)
- end
-end
-
-def fun_l9_n232(x)
- if (x < 1)
- fun_l10_n684(x)
- else
- fun_l10_n528(x)
- end
-end
-
-def fun_l9_n233(x)
- if (x < 1)
- fun_l10_n500(x)
- else
- fun_l10_n246(x)
- end
-end
-
-def fun_l9_n234(x)
- if (x < 1)
- fun_l10_n610(x)
- else
- fun_l10_n61(x)
- end
-end
-
-def fun_l9_n235(x)
- if (x < 1)
- fun_l10_n199(x)
- else
- fun_l10_n838(x)
- end
-end
-
-def fun_l9_n236(x)
- if (x < 1)
- fun_l10_n820(x)
- else
- fun_l10_n633(x)
- end
-end
-
-def fun_l9_n237(x)
- if (x < 1)
- fun_l10_n216(x)
- else
- fun_l10_n546(x)
- end
-end
-
-def fun_l9_n238(x)
- if (x < 1)
- fun_l10_n555(x)
- else
- fun_l10_n153(x)
- end
-end
-
-def fun_l9_n239(x)
- if (x < 1)
- fun_l10_n236(x)
- else
- fun_l10_n231(x)
- end
-end
-
-def fun_l9_n240(x)
- if (x < 1)
- fun_l10_n775(x)
- else
- fun_l10_n823(x)
- end
-end
-
-def fun_l9_n241(x)
- if (x < 1)
- fun_l10_n275(x)
- else
- fun_l10_n519(x)
- end
-end
-
-def fun_l9_n242(x)
- if (x < 1)
- fun_l10_n239(x)
- else
- fun_l10_n791(x)
- end
-end
-
-def fun_l9_n243(x)
- if (x < 1)
- fun_l10_n639(x)
- else
- fun_l10_n972(x)
- end
-end
-
-def fun_l9_n244(x)
- if (x < 1)
- fun_l10_n5(x)
- else
- fun_l10_n510(x)
- end
-end
-
-def fun_l9_n245(x)
- if (x < 1)
- fun_l10_n256(x)
- else
- fun_l10_n298(x)
- end
-end
-
-def fun_l9_n246(x)
- if (x < 1)
- fun_l10_n139(x)
- else
- fun_l10_n385(x)
- end
-end
-
-def fun_l9_n247(x)
- if (x < 1)
- fun_l10_n4(x)
- else
- fun_l10_n323(x)
- end
-end
-
-def fun_l9_n248(x)
- if (x < 1)
- fun_l10_n166(x)
- else
- fun_l10_n539(x)
- end
-end
-
-def fun_l9_n249(x)
- if (x < 1)
- fun_l10_n374(x)
- else
- fun_l10_n351(x)
- end
-end
-
-def fun_l9_n250(x)
- if (x < 1)
- fun_l10_n650(x)
- else
- fun_l10_n791(x)
- end
-end
-
-def fun_l9_n251(x)
- if (x < 1)
- fun_l10_n799(x)
- else
- fun_l10_n990(x)
- end
-end
-
-def fun_l9_n252(x)
- if (x < 1)
- fun_l10_n388(x)
- else
- fun_l10_n887(x)
- end
-end
-
-def fun_l9_n253(x)
- if (x < 1)
- fun_l10_n564(x)
- else
- fun_l10_n997(x)
- end
-end
-
-def fun_l9_n254(x)
- if (x < 1)
- fun_l10_n580(x)
- else
- fun_l10_n646(x)
- end
-end
-
-def fun_l9_n255(x)
- if (x < 1)
- fun_l10_n0(x)
- else
- fun_l10_n480(x)
- end
-end
-
-def fun_l9_n256(x)
- if (x < 1)
- fun_l10_n606(x)
- else
- fun_l10_n48(x)
- end
-end
-
-def fun_l9_n257(x)
- if (x < 1)
- fun_l10_n601(x)
- else
- fun_l10_n657(x)
- end
-end
-
-def fun_l9_n258(x)
- if (x < 1)
- fun_l10_n419(x)
- else
- fun_l10_n909(x)
- end
-end
-
-def fun_l9_n259(x)
- if (x < 1)
- fun_l10_n194(x)
- else
- fun_l10_n961(x)
- end
-end
-
-def fun_l9_n260(x)
- if (x < 1)
- fun_l10_n876(x)
- else
- fun_l10_n345(x)
- end
-end
-
-def fun_l9_n261(x)
- if (x < 1)
- fun_l10_n643(x)
- else
- fun_l10_n905(x)
- end
-end
-
-def fun_l9_n262(x)
- if (x < 1)
- fun_l10_n105(x)
- else
- fun_l10_n61(x)
- end
-end
-
-def fun_l9_n263(x)
- if (x < 1)
- fun_l10_n610(x)
- else
- fun_l10_n527(x)
- end
-end
-
-def fun_l9_n264(x)
- if (x < 1)
- fun_l10_n183(x)
- else
- fun_l10_n51(x)
- end
-end
-
-def fun_l9_n265(x)
- if (x < 1)
- fun_l10_n800(x)
- else
- fun_l10_n103(x)
- end
-end
-
-def fun_l9_n266(x)
- if (x < 1)
- fun_l10_n501(x)
- else
- fun_l10_n293(x)
- end
-end
-
-def fun_l9_n267(x)
- if (x < 1)
- fun_l10_n207(x)
- else
- fun_l10_n162(x)
- end
-end
-
-def fun_l9_n268(x)
- if (x < 1)
- fun_l10_n901(x)
- else
- fun_l10_n914(x)
- end
-end
-
-def fun_l9_n269(x)
- if (x < 1)
- fun_l10_n711(x)
- else
- fun_l10_n227(x)
- end
-end
-
-def fun_l9_n270(x)
- if (x < 1)
- fun_l10_n445(x)
- else
- fun_l10_n227(x)
- end
-end
-
-def fun_l9_n271(x)
- if (x < 1)
- fun_l10_n585(x)
- else
- fun_l10_n371(x)
- end
-end
-
-def fun_l9_n272(x)
- if (x < 1)
- fun_l10_n137(x)
- else
- fun_l10_n678(x)
- end
-end
-
-def fun_l9_n273(x)
- if (x < 1)
- fun_l10_n284(x)
- else
- fun_l10_n801(x)
- end
-end
-
-def fun_l9_n274(x)
- if (x < 1)
- fun_l10_n829(x)
- else
- fun_l10_n456(x)
- end
-end
-
-def fun_l9_n275(x)
- if (x < 1)
- fun_l10_n663(x)
- else
- fun_l10_n529(x)
- end
-end
-
-def fun_l9_n276(x)
- if (x < 1)
- fun_l10_n154(x)
- else
- fun_l10_n421(x)
- end
-end
-
-def fun_l9_n277(x)
- if (x < 1)
- fun_l10_n778(x)
- else
- fun_l10_n325(x)
- end
-end
-
-def fun_l9_n278(x)
- if (x < 1)
- fun_l10_n179(x)
- else
- fun_l10_n369(x)
- end
-end
-
-def fun_l9_n279(x)
- if (x < 1)
- fun_l10_n800(x)
- else
- fun_l10_n488(x)
- end
-end
-
-def fun_l9_n280(x)
- if (x < 1)
- fun_l10_n617(x)
- else
- fun_l10_n1(x)
- end
-end
-
-def fun_l9_n281(x)
- if (x < 1)
- fun_l10_n951(x)
- else
- fun_l10_n763(x)
- end
-end
-
-def fun_l9_n282(x)
- if (x < 1)
- fun_l10_n537(x)
- else
- fun_l10_n541(x)
- end
-end
-
-def fun_l9_n283(x)
- if (x < 1)
- fun_l10_n664(x)
- else
- fun_l10_n854(x)
- end
-end
-
-def fun_l9_n284(x)
- if (x < 1)
- fun_l10_n711(x)
- else
- fun_l10_n767(x)
- end
-end
-
-def fun_l9_n285(x)
- if (x < 1)
- fun_l10_n211(x)
- else
- fun_l10_n733(x)
- end
-end
-
-def fun_l9_n286(x)
- if (x < 1)
- fun_l10_n524(x)
- else
- fun_l10_n850(x)
- end
-end
-
-def fun_l9_n287(x)
- if (x < 1)
- fun_l10_n270(x)
- else
- fun_l10_n798(x)
- end
-end
-
-def fun_l9_n288(x)
- if (x < 1)
- fun_l10_n906(x)
- else
- fun_l10_n408(x)
- end
-end
-
-def fun_l9_n289(x)
- if (x < 1)
- fun_l10_n873(x)
- else
- fun_l10_n298(x)
- end
-end
-
-def fun_l9_n290(x)
- if (x < 1)
- fun_l10_n535(x)
- else
- fun_l10_n946(x)
- end
-end
-
-def fun_l9_n291(x)
- if (x < 1)
- fun_l10_n290(x)
- else
- fun_l10_n631(x)
- end
-end
-
-def fun_l9_n292(x)
- if (x < 1)
- fun_l10_n223(x)
- else
- fun_l10_n165(x)
- end
-end
-
-def fun_l9_n293(x)
- if (x < 1)
- fun_l10_n768(x)
- else
- fun_l10_n512(x)
- end
-end
-
-def fun_l9_n294(x)
- if (x < 1)
- fun_l10_n133(x)
- else
- fun_l10_n986(x)
- end
-end
-
-def fun_l9_n295(x)
- if (x < 1)
- fun_l10_n657(x)
- else
- fun_l10_n914(x)
- end
-end
-
-def fun_l9_n296(x)
- if (x < 1)
- fun_l10_n444(x)
- else
- fun_l10_n490(x)
- end
-end
-
-def fun_l9_n297(x)
- if (x < 1)
- fun_l10_n478(x)
- else
- fun_l10_n979(x)
- end
-end
-
-def fun_l9_n298(x)
- if (x < 1)
- fun_l10_n994(x)
- else
- fun_l10_n945(x)
- end
-end
-
-def fun_l9_n299(x)
- if (x < 1)
- fun_l10_n865(x)
- else
- fun_l10_n206(x)
- end
-end
-
-def fun_l9_n300(x)
- if (x < 1)
- fun_l10_n678(x)
- else
- fun_l10_n103(x)
- end
-end
-
-def fun_l9_n301(x)
- if (x < 1)
- fun_l10_n115(x)
- else
- fun_l10_n742(x)
- end
-end
-
-def fun_l9_n302(x)
- if (x < 1)
- fun_l10_n677(x)
- else
- fun_l10_n446(x)
- end
-end
-
-def fun_l9_n303(x)
- if (x < 1)
- fun_l10_n144(x)
- else
- fun_l10_n856(x)
- end
-end
-
-def fun_l9_n304(x)
- if (x < 1)
- fun_l10_n751(x)
- else
- fun_l10_n989(x)
- end
-end
-
-def fun_l9_n305(x)
- if (x < 1)
- fun_l10_n200(x)
- else
- fun_l10_n97(x)
- end
-end
-
-def fun_l9_n306(x)
- if (x < 1)
- fun_l10_n685(x)
- else
- fun_l10_n663(x)
- end
-end
-
-def fun_l9_n307(x)
- if (x < 1)
- fun_l10_n831(x)
- else
- fun_l10_n770(x)
- end
-end
-
-def fun_l9_n308(x)
- if (x < 1)
- fun_l10_n467(x)
- else
- fun_l10_n715(x)
- end
-end
-
-def fun_l9_n309(x)
- if (x < 1)
- fun_l10_n676(x)
- else
- fun_l10_n885(x)
- end
-end
-
-def fun_l9_n310(x)
- if (x < 1)
- fun_l10_n382(x)
- else
- fun_l10_n687(x)
- end
-end
-
-def fun_l9_n311(x)
- if (x < 1)
- fun_l10_n489(x)
- else
- fun_l10_n810(x)
- end
-end
-
-def fun_l9_n312(x)
- if (x < 1)
- fun_l10_n922(x)
- else
- fun_l10_n81(x)
- end
-end
-
-def fun_l9_n313(x)
- if (x < 1)
- fun_l10_n788(x)
- else
- fun_l10_n519(x)
- end
-end
-
-def fun_l9_n314(x)
- if (x < 1)
- fun_l10_n830(x)
- else
- fun_l10_n486(x)
- end
-end
-
-def fun_l9_n315(x)
- if (x < 1)
- fun_l10_n848(x)
- else
- fun_l10_n250(x)
- end
-end
-
-def fun_l9_n316(x)
- if (x < 1)
- fun_l10_n933(x)
- else
- fun_l10_n268(x)
- end
-end
-
-def fun_l9_n317(x)
- if (x < 1)
- fun_l10_n659(x)
- else
- fun_l10_n91(x)
- end
-end
-
-def fun_l9_n318(x)
- if (x < 1)
- fun_l10_n417(x)
- else
- fun_l10_n99(x)
- end
-end
-
-def fun_l9_n319(x)
- if (x < 1)
- fun_l10_n781(x)
- else
- fun_l10_n770(x)
- end
-end
-
-def fun_l9_n320(x)
- if (x < 1)
- fun_l10_n820(x)
- else
- fun_l10_n836(x)
- end
-end
-
-def fun_l9_n321(x)
- if (x < 1)
- fun_l10_n865(x)
- else
- fun_l10_n232(x)
- end
-end
-
-def fun_l9_n322(x)
- if (x < 1)
- fun_l10_n793(x)
- else
- fun_l10_n856(x)
- end
-end
-
-def fun_l9_n323(x)
- if (x < 1)
- fun_l10_n91(x)
- else
- fun_l10_n356(x)
- end
-end
-
-def fun_l9_n324(x)
- if (x < 1)
- fun_l10_n262(x)
- else
- fun_l10_n776(x)
- end
-end
-
-def fun_l9_n325(x)
- if (x < 1)
- fun_l10_n733(x)
- else
- fun_l10_n866(x)
- end
-end
-
-def fun_l9_n326(x)
- if (x < 1)
- fun_l10_n798(x)
- else
- fun_l10_n703(x)
- end
-end
-
-def fun_l9_n327(x)
- if (x < 1)
- fun_l10_n478(x)
- else
- fun_l10_n181(x)
- end
-end
-
-def fun_l9_n328(x)
- if (x < 1)
- fun_l10_n66(x)
- else
- fun_l10_n736(x)
- end
-end
-
-def fun_l9_n329(x)
- if (x < 1)
- fun_l10_n388(x)
- else
- fun_l10_n122(x)
- end
-end
-
-def fun_l9_n330(x)
- if (x < 1)
- fun_l10_n382(x)
- else
- fun_l10_n85(x)
- end
-end
-
-def fun_l9_n331(x)
- if (x < 1)
- fun_l10_n987(x)
- else
- fun_l10_n769(x)
- end
-end
-
-def fun_l9_n332(x)
- if (x < 1)
- fun_l10_n644(x)
- else
- fun_l10_n230(x)
- end
-end
-
-def fun_l9_n333(x)
- if (x < 1)
- fun_l10_n604(x)
- else
- fun_l10_n157(x)
- end
-end
-
-def fun_l9_n334(x)
- if (x < 1)
- fun_l10_n50(x)
- else
- fun_l10_n417(x)
- end
-end
-
-def fun_l9_n335(x)
- if (x < 1)
- fun_l10_n37(x)
- else
- fun_l10_n564(x)
- end
-end
-
-def fun_l9_n336(x)
- if (x < 1)
- fun_l10_n265(x)
- else
- fun_l10_n330(x)
- end
-end
-
-def fun_l9_n337(x)
- if (x < 1)
- fun_l10_n816(x)
- else
- fun_l10_n723(x)
- end
-end
-
-def fun_l9_n338(x)
- if (x < 1)
- fun_l10_n583(x)
- else
- fun_l10_n193(x)
- end
-end
-
-def fun_l9_n339(x)
- if (x < 1)
- fun_l10_n552(x)
- else
- fun_l10_n710(x)
- end
-end
-
-def fun_l9_n340(x)
- if (x < 1)
- fun_l10_n594(x)
- else
- fun_l10_n323(x)
- end
-end
-
-def fun_l9_n341(x)
- if (x < 1)
- fun_l10_n727(x)
- else
- fun_l10_n305(x)
- end
-end
-
-def fun_l9_n342(x)
- if (x < 1)
- fun_l10_n621(x)
- else
- fun_l10_n917(x)
- end
-end
-
-def fun_l9_n343(x)
- if (x < 1)
- fun_l10_n634(x)
- else
- fun_l10_n36(x)
- end
-end
-
-def fun_l9_n344(x)
- if (x < 1)
- fun_l10_n792(x)
- else
- fun_l10_n438(x)
- end
-end
-
-def fun_l9_n345(x)
- if (x < 1)
- fun_l10_n399(x)
- else
- fun_l10_n577(x)
- end
-end
-
-def fun_l9_n346(x)
- if (x < 1)
- fun_l10_n110(x)
- else
- fun_l10_n120(x)
- end
-end
-
-def fun_l9_n347(x)
- if (x < 1)
- fun_l10_n521(x)
- else
- fun_l10_n111(x)
- end
-end
-
-def fun_l9_n348(x)
- if (x < 1)
- fun_l10_n134(x)
- else
- fun_l10_n49(x)
- end
-end
-
-def fun_l9_n349(x)
- if (x < 1)
- fun_l10_n353(x)
- else
- fun_l10_n156(x)
- end
-end
-
-def fun_l9_n350(x)
- if (x < 1)
- fun_l10_n532(x)
- else
- fun_l10_n796(x)
- end
-end
-
-def fun_l9_n351(x)
- if (x < 1)
- fun_l10_n896(x)
- else
- fun_l10_n176(x)
- end
-end
-
-def fun_l9_n352(x)
- if (x < 1)
- fun_l10_n857(x)
- else
- fun_l10_n798(x)
- end
-end
-
-def fun_l9_n353(x)
- if (x < 1)
- fun_l10_n676(x)
- else
- fun_l10_n870(x)
- end
-end
-
-def fun_l9_n354(x)
- if (x < 1)
- fun_l10_n806(x)
- else
- fun_l10_n951(x)
- end
-end
-
-def fun_l9_n355(x)
- if (x < 1)
- fun_l10_n841(x)
- else
- fun_l10_n918(x)
- end
-end
-
-def fun_l9_n356(x)
- if (x < 1)
- fun_l10_n226(x)
- else
- fun_l10_n514(x)
- end
-end
-
-def fun_l9_n357(x)
- if (x < 1)
- fun_l10_n289(x)
- else
- fun_l10_n911(x)
- end
-end
-
-def fun_l9_n358(x)
- if (x < 1)
- fun_l10_n697(x)
- else
- fun_l10_n138(x)
- end
-end
-
-def fun_l9_n359(x)
- if (x < 1)
- fun_l10_n432(x)
- else
- fun_l10_n88(x)
- end
-end
-
-def fun_l9_n360(x)
- if (x < 1)
- fun_l10_n351(x)
- else
- fun_l10_n968(x)
- end
-end
-
-def fun_l9_n361(x)
- if (x < 1)
- fun_l10_n782(x)
- else
- fun_l10_n506(x)
- end
-end
-
-def fun_l9_n362(x)
- if (x < 1)
- fun_l10_n875(x)
- else
- fun_l10_n459(x)
- end
-end
-
-def fun_l9_n363(x)
- if (x < 1)
- fun_l10_n2(x)
- else
- fun_l10_n468(x)
- end
-end
-
-def fun_l9_n364(x)
- if (x < 1)
- fun_l10_n151(x)
- else
- fun_l10_n538(x)
- end
-end
-
-def fun_l9_n365(x)
- if (x < 1)
- fun_l10_n203(x)
- else
- fun_l10_n890(x)
- end
-end
-
-def fun_l9_n366(x)
- if (x < 1)
- fun_l10_n612(x)
- else
- fun_l10_n483(x)
- end
-end
-
-def fun_l9_n367(x)
- if (x < 1)
- fun_l10_n465(x)
- else
- fun_l10_n724(x)
- end
-end
-
-def fun_l9_n368(x)
- if (x < 1)
- fun_l10_n745(x)
- else
- fun_l10_n92(x)
- end
-end
-
-def fun_l9_n369(x)
- if (x < 1)
- fun_l10_n312(x)
- else
- fun_l10_n754(x)
- end
-end
-
-def fun_l9_n370(x)
- if (x < 1)
- fun_l10_n432(x)
- else
- fun_l10_n234(x)
- end
-end
-
-def fun_l9_n371(x)
- if (x < 1)
- fun_l10_n629(x)
- else
- fun_l10_n751(x)
- end
-end
-
-def fun_l9_n372(x)
- if (x < 1)
- fun_l10_n142(x)
- else
- fun_l10_n381(x)
- end
-end
-
-def fun_l9_n373(x)
- if (x < 1)
- fun_l10_n490(x)
- else
- fun_l10_n405(x)
- end
-end
-
-def fun_l9_n374(x)
- if (x < 1)
- fun_l10_n197(x)
- else
- fun_l10_n574(x)
- end
-end
-
-def fun_l9_n375(x)
- if (x < 1)
- fun_l10_n808(x)
- else
- fun_l10_n753(x)
- end
-end
-
-def fun_l9_n376(x)
- if (x < 1)
- fun_l10_n195(x)
- else
- fun_l10_n186(x)
- end
-end
-
-def fun_l9_n377(x)
- if (x < 1)
- fun_l10_n172(x)
- else
- fun_l10_n233(x)
- end
-end
-
-def fun_l9_n378(x)
- if (x < 1)
- fun_l10_n723(x)
- else
- fun_l10_n919(x)
- end
-end
-
-def fun_l9_n379(x)
- if (x < 1)
- fun_l10_n937(x)
- else
- fun_l10_n149(x)
- end
-end
-
-def fun_l9_n380(x)
- if (x < 1)
- fun_l10_n676(x)
- else
- fun_l10_n502(x)
- end
-end
-
-def fun_l9_n381(x)
- if (x < 1)
- fun_l10_n756(x)
- else
- fun_l10_n346(x)
- end
-end
-
-def fun_l9_n382(x)
- if (x < 1)
- fun_l10_n477(x)
- else
- fun_l10_n179(x)
- end
-end
-
-def fun_l9_n383(x)
- if (x < 1)
- fun_l10_n729(x)
- else
- fun_l10_n862(x)
- end
-end
-
-def fun_l9_n384(x)
- if (x < 1)
- fun_l10_n406(x)
- else
- fun_l10_n145(x)
- end
-end
-
-def fun_l9_n385(x)
- if (x < 1)
- fun_l10_n239(x)
- else
- fun_l10_n169(x)
- end
-end
-
-def fun_l9_n386(x)
- if (x < 1)
- fun_l10_n596(x)
- else
- fun_l10_n971(x)
- end
-end
-
-def fun_l9_n387(x)
- if (x < 1)
- fun_l10_n466(x)
- else
- fun_l10_n488(x)
- end
-end
-
-def fun_l9_n388(x)
- if (x < 1)
- fun_l10_n711(x)
- else
- fun_l10_n553(x)
- end
-end
-
-def fun_l9_n389(x)
- if (x < 1)
- fun_l10_n776(x)
- else
- fun_l10_n227(x)
- end
-end
-
-def fun_l9_n390(x)
- if (x < 1)
- fun_l10_n872(x)
- else
- fun_l10_n901(x)
- end
-end
-
-def fun_l9_n391(x)
- if (x < 1)
- fun_l10_n579(x)
- else
- fun_l10_n906(x)
- end
-end
-
-def fun_l9_n392(x)
- if (x < 1)
- fun_l10_n734(x)
- else
- fun_l10_n195(x)
- end
-end
-
-def fun_l9_n393(x)
- if (x < 1)
- fun_l10_n691(x)
- else
- fun_l10_n68(x)
- end
-end
-
-def fun_l9_n394(x)
- if (x < 1)
- fun_l10_n446(x)
- else
- fun_l10_n838(x)
- end
-end
-
-def fun_l9_n395(x)
- if (x < 1)
- fun_l10_n708(x)
- else
- fun_l10_n319(x)
- end
-end
-
-def fun_l9_n396(x)
- if (x < 1)
- fun_l10_n414(x)
- else
- fun_l10_n152(x)
- end
-end
-
-def fun_l9_n397(x)
- if (x < 1)
- fun_l10_n637(x)
- else
- fun_l10_n662(x)
- end
-end
-
-def fun_l9_n398(x)
- if (x < 1)
- fun_l10_n990(x)
- else
- fun_l10_n547(x)
- end
-end
-
-def fun_l9_n399(x)
- if (x < 1)
- fun_l10_n43(x)
- else
- fun_l10_n845(x)
- end
-end
-
-def fun_l9_n400(x)
- if (x < 1)
- fun_l10_n843(x)
- else
- fun_l10_n876(x)
- end
-end
-
-def fun_l9_n401(x)
- if (x < 1)
- fun_l10_n925(x)
- else
- fun_l10_n221(x)
- end
-end
-
-def fun_l9_n402(x)
- if (x < 1)
- fun_l10_n420(x)
- else
- fun_l10_n267(x)
- end
-end
-
-def fun_l9_n403(x)
- if (x < 1)
- fun_l10_n78(x)
- else
- fun_l10_n316(x)
- end
-end
-
-def fun_l9_n404(x)
- if (x < 1)
- fun_l10_n291(x)
- else
- fun_l10_n614(x)
- end
-end
-
-def fun_l9_n405(x)
- if (x < 1)
- fun_l10_n956(x)
- else
- fun_l10_n550(x)
- end
-end
-
-def fun_l9_n406(x)
- if (x < 1)
- fun_l10_n232(x)
- else
- fun_l10_n53(x)
- end
-end
-
-def fun_l9_n407(x)
- if (x < 1)
- fun_l10_n171(x)
- else
- fun_l10_n51(x)
- end
-end
-
-def fun_l9_n408(x)
- if (x < 1)
- fun_l10_n401(x)
- else
- fun_l10_n932(x)
- end
-end
-
-def fun_l9_n409(x)
- if (x < 1)
- fun_l10_n863(x)
- else
- fun_l10_n951(x)
- end
-end
-
-def fun_l9_n410(x)
- if (x < 1)
- fun_l10_n64(x)
- else
- fun_l10_n721(x)
- end
-end
-
-def fun_l9_n411(x)
- if (x < 1)
- fun_l10_n539(x)
- else
- fun_l10_n951(x)
- end
-end
-
-def fun_l9_n412(x)
- if (x < 1)
- fun_l10_n660(x)
- else
- fun_l10_n852(x)
- end
-end
-
-def fun_l9_n413(x)
- if (x < 1)
- fun_l10_n777(x)
- else
- fun_l10_n366(x)
- end
-end
-
-def fun_l9_n414(x)
- if (x < 1)
- fun_l10_n695(x)
- else
- fun_l10_n538(x)
- end
-end
-
-def fun_l9_n415(x)
- if (x < 1)
- fun_l10_n208(x)
- else
- fun_l10_n892(x)
- end
-end
-
-def fun_l9_n416(x)
- if (x < 1)
- fun_l10_n632(x)
- else
- fun_l10_n463(x)
- end
-end
-
-def fun_l9_n417(x)
- if (x < 1)
- fun_l10_n238(x)
- else
- fun_l10_n55(x)
- end
-end
-
-def fun_l9_n418(x)
- if (x < 1)
- fun_l10_n276(x)
- else
- fun_l10_n526(x)
- end
-end
-
-def fun_l9_n419(x)
- if (x < 1)
- fun_l10_n625(x)
- else
- fun_l10_n806(x)
- end
-end
-
-def fun_l9_n420(x)
- if (x < 1)
- fun_l10_n899(x)
- else
- fun_l10_n594(x)
- end
-end
-
-def fun_l9_n421(x)
- if (x < 1)
- fun_l10_n725(x)
- else
- fun_l10_n461(x)
- end
-end
-
-def fun_l9_n422(x)
- if (x < 1)
- fun_l10_n187(x)
- else
- fun_l10_n953(x)
- end
-end
-
-def fun_l9_n423(x)
- if (x < 1)
- fun_l10_n698(x)
- else
- fun_l10_n751(x)
- end
-end
-
-def fun_l9_n424(x)
- if (x < 1)
- fun_l10_n115(x)
- else
- fun_l10_n321(x)
- end
-end
-
-def fun_l9_n425(x)
- if (x < 1)
- fun_l10_n775(x)
- else
- fun_l10_n100(x)
- end
-end
-
-def fun_l9_n426(x)
- if (x < 1)
- fun_l10_n177(x)
- else
- fun_l10_n565(x)
- end
-end
-
-def fun_l9_n427(x)
- if (x < 1)
- fun_l10_n568(x)
- else
- fun_l10_n234(x)
- end
-end
-
-def fun_l9_n428(x)
- if (x < 1)
- fun_l10_n787(x)
- else
- fun_l10_n815(x)
- end
-end
-
-def fun_l9_n429(x)
- if (x < 1)
- fun_l10_n580(x)
- else
- fun_l10_n990(x)
- end
-end
-
-def fun_l9_n430(x)
- if (x < 1)
- fun_l10_n680(x)
- else
- fun_l10_n696(x)
- end
-end
-
-def fun_l9_n431(x)
- if (x < 1)
- fun_l10_n650(x)
- else
- fun_l10_n776(x)
- end
-end
-
-def fun_l9_n432(x)
- if (x < 1)
- fun_l10_n377(x)
- else
- fun_l10_n232(x)
- end
-end
-
-def fun_l9_n433(x)
- if (x < 1)
- fun_l10_n621(x)
- else
- fun_l10_n948(x)
- end
-end
-
-def fun_l9_n434(x)
- if (x < 1)
- fun_l10_n126(x)
- else
- fun_l10_n220(x)
- end
-end
-
-def fun_l9_n435(x)
- if (x < 1)
- fun_l10_n395(x)
- else
- fun_l10_n732(x)
- end
-end
-
-def fun_l9_n436(x)
- if (x < 1)
- fun_l10_n194(x)
- else
- fun_l10_n159(x)
- end
-end
-
-def fun_l9_n437(x)
- if (x < 1)
- fun_l10_n123(x)
- else
- fun_l10_n40(x)
- end
-end
-
-def fun_l9_n438(x)
- if (x < 1)
- fun_l10_n241(x)
- else
- fun_l10_n861(x)
- end
-end
-
-def fun_l9_n439(x)
- if (x < 1)
- fun_l10_n333(x)
- else
- fun_l10_n950(x)
- end
-end
-
-def fun_l9_n440(x)
- if (x < 1)
- fun_l10_n116(x)
- else
- fun_l10_n832(x)
- end
-end
-
-def fun_l9_n441(x)
- if (x < 1)
- fun_l10_n598(x)
- else
- fun_l10_n68(x)
- end
-end
-
-def fun_l9_n442(x)
- if (x < 1)
- fun_l10_n234(x)
- else
- fun_l10_n277(x)
- end
-end
-
-def fun_l9_n443(x)
- if (x < 1)
- fun_l10_n943(x)
- else
- fun_l10_n895(x)
- end
-end
-
-def fun_l9_n444(x)
- if (x < 1)
- fun_l10_n490(x)
- else
- fun_l10_n512(x)
- end
-end
-
-def fun_l9_n445(x)
- if (x < 1)
- fun_l10_n54(x)
- else
- fun_l10_n74(x)
- end
-end
-
-def fun_l9_n446(x)
- if (x < 1)
- fun_l10_n214(x)
- else
- fun_l10_n858(x)
- end
-end
-
-def fun_l9_n447(x)
- if (x < 1)
- fun_l10_n274(x)
- else
- fun_l10_n255(x)
- end
-end
-
-def fun_l9_n448(x)
- if (x < 1)
- fun_l10_n307(x)
- else
- fun_l10_n197(x)
- end
-end
-
-def fun_l9_n449(x)
- if (x < 1)
- fun_l10_n152(x)
- else
- fun_l10_n543(x)
- end
-end
-
-def fun_l9_n450(x)
- if (x < 1)
- fun_l10_n773(x)
- else
- fun_l10_n582(x)
- end
-end
-
-def fun_l9_n451(x)
- if (x < 1)
- fun_l10_n757(x)
- else
- fun_l10_n298(x)
- end
-end
-
-def fun_l9_n452(x)
- if (x < 1)
- fun_l10_n648(x)
- else
- fun_l10_n826(x)
- end
-end
-
-def fun_l9_n453(x)
- if (x < 1)
- fun_l10_n209(x)
- else
- fun_l10_n767(x)
- end
-end
-
-def fun_l9_n454(x)
- if (x < 1)
- fun_l10_n448(x)
- else
- fun_l10_n374(x)
- end
-end
-
-def fun_l9_n455(x)
- if (x < 1)
- fun_l10_n975(x)
- else
- fun_l10_n45(x)
- end
-end
-
-def fun_l9_n456(x)
- if (x < 1)
- fun_l10_n938(x)
- else
- fun_l10_n354(x)
- end
-end
-
-def fun_l9_n457(x)
- if (x < 1)
- fun_l10_n723(x)
- else
- fun_l10_n511(x)
- end
-end
-
-def fun_l9_n458(x)
- if (x < 1)
- fun_l10_n864(x)
- else
- fun_l10_n688(x)
- end
-end
-
-def fun_l9_n459(x)
- if (x < 1)
- fun_l10_n283(x)
- else
- fun_l10_n776(x)
- end
-end
-
-def fun_l9_n460(x)
- if (x < 1)
- fun_l10_n167(x)
- else
- fun_l10_n639(x)
- end
-end
-
-def fun_l9_n461(x)
- if (x < 1)
- fun_l10_n493(x)
- else
- fun_l10_n538(x)
- end
-end
-
-def fun_l9_n462(x)
- if (x < 1)
- fun_l10_n392(x)
- else
- fun_l10_n434(x)
- end
-end
-
-def fun_l9_n463(x)
- if (x < 1)
- fun_l10_n958(x)
- else
- fun_l10_n305(x)
- end
-end
-
-def fun_l9_n464(x)
- if (x < 1)
- fun_l10_n516(x)
- else
- fun_l10_n375(x)
- end
-end
-
-def fun_l9_n465(x)
- if (x < 1)
- fun_l10_n371(x)
- else
- fun_l10_n596(x)
- end
-end
-
-def fun_l9_n466(x)
- if (x < 1)
- fun_l10_n435(x)
- else
- fun_l10_n176(x)
- end
-end
-
-def fun_l9_n467(x)
- if (x < 1)
- fun_l10_n391(x)
- else
- fun_l10_n83(x)
- end
-end
-
-def fun_l9_n468(x)
- if (x < 1)
- fun_l10_n751(x)
- else
- fun_l10_n632(x)
- end
-end
-
-def fun_l9_n469(x)
- if (x < 1)
- fun_l10_n14(x)
- else
- fun_l10_n530(x)
- end
-end
-
-def fun_l9_n470(x)
- if (x < 1)
- fun_l10_n663(x)
- else
- fun_l10_n844(x)
- end
-end
-
-def fun_l9_n471(x)
- if (x < 1)
- fun_l10_n82(x)
- else
- fun_l10_n493(x)
- end
-end
-
-def fun_l9_n472(x)
- if (x < 1)
- fun_l10_n614(x)
- else
- fun_l10_n277(x)
- end
-end
-
-def fun_l9_n473(x)
- if (x < 1)
- fun_l10_n492(x)
- else
- fun_l10_n492(x)
- end
-end
-
-def fun_l9_n474(x)
- if (x < 1)
- fun_l10_n440(x)
- else
- fun_l10_n665(x)
- end
-end
-
-def fun_l9_n475(x)
- if (x < 1)
- fun_l10_n284(x)
- else
- fun_l10_n513(x)
- end
-end
-
-def fun_l9_n476(x)
- if (x < 1)
- fun_l10_n690(x)
- else
- fun_l10_n507(x)
- end
-end
-
-def fun_l9_n477(x)
- if (x < 1)
- fun_l10_n281(x)
- else
- fun_l10_n519(x)
- end
-end
-
-def fun_l9_n478(x)
- if (x < 1)
- fun_l10_n903(x)
- else
- fun_l10_n866(x)
- end
-end
-
-def fun_l9_n479(x)
- if (x < 1)
- fun_l10_n880(x)
- else
- fun_l10_n310(x)
- end
-end
-
-def fun_l9_n480(x)
- if (x < 1)
- fun_l10_n69(x)
- else
- fun_l10_n227(x)
- end
-end
-
-def fun_l9_n481(x)
- if (x < 1)
- fun_l10_n316(x)
- else
- fun_l10_n692(x)
- end
-end
-
-def fun_l9_n482(x)
- if (x < 1)
- fun_l10_n875(x)
- else
- fun_l10_n384(x)
- end
-end
-
-def fun_l9_n483(x)
- if (x < 1)
- fun_l10_n496(x)
- else
- fun_l10_n81(x)
- end
-end
-
-def fun_l9_n484(x)
- if (x < 1)
- fun_l10_n336(x)
- else
- fun_l10_n193(x)
- end
-end
-
-def fun_l9_n485(x)
- if (x < 1)
- fun_l10_n541(x)
- else
- fun_l10_n465(x)
- end
-end
-
-def fun_l9_n486(x)
- if (x < 1)
- fun_l10_n197(x)
- else
- fun_l10_n844(x)
- end
-end
-
-def fun_l9_n487(x)
- if (x < 1)
- fun_l10_n652(x)
- else
- fun_l10_n736(x)
- end
-end
-
-def fun_l9_n488(x)
- if (x < 1)
- fun_l10_n960(x)
- else
- fun_l10_n912(x)
- end
-end
-
-def fun_l9_n489(x)
- if (x < 1)
- fun_l10_n238(x)
- else
- fun_l10_n64(x)
- end
-end
-
-def fun_l9_n490(x)
- if (x < 1)
- fun_l10_n505(x)
- else
- fun_l10_n204(x)
- end
-end
-
-def fun_l9_n491(x)
- if (x < 1)
- fun_l10_n960(x)
- else
- fun_l10_n198(x)
- end
-end
-
-def fun_l9_n492(x)
- if (x < 1)
- fun_l10_n148(x)
- else
- fun_l10_n669(x)
- end
-end
-
-def fun_l9_n493(x)
- if (x < 1)
- fun_l10_n860(x)
- else
- fun_l10_n676(x)
- end
-end
-
-def fun_l9_n494(x)
- if (x < 1)
- fun_l10_n77(x)
- else
- fun_l10_n945(x)
- end
-end
-
-def fun_l9_n495(x)
- if (x < 1)
- fun_l10_n151(x)
- else
- fun_l10_n588(x)
- end
-end
-
-def fun_l9_n496(x)
- if (x < 1)
- fun_l10_n159(x)
- else
- fun_l10_n727(x)
- end
-end
-
-def fun_l9_n497(x)
- if (x < 1)
- fun_l10_n803(x)
- else
- fun_l10_n292(x)
- end
-end
-
-def fun_l9_n498(x)
- if (x < 1)
- fun_l10_n308(x)
- else
- fun_l10_n46(x)
- end
-end
-
-def fun_l9_n499(x)
- if (x < 1)
- fun_l10_n511(x)
- else
- fun_l10_n766(x)
- end
-end
-
-def fun_l9_n500(x)
- if (x < 1)
- fun_l10_n753(x)
- else
- fun_l10_n235(x)
- end
-end
-
-def fun_l9_n501(x)
- if (x < 1)
- fun_l10_n776(x)
- else
- fun_l10_n779(x)
- end
-end
-
-def fun_l9_n502(x)
- if (x < 1)
- fun_l10_n114(x)
- else
- fun_l10_n969(x)
- end
-end
-
-def fun_l9_n503(x)
- if (x < 1)
- fun_l10_n511(x)
- else
- fun_l10_n678(x)
- end
-end
-
-def fun_l9_n504(x)
- if (x < 1)
- fun_l10_n578(x)
- else
- fun_l10_n689(x)
- end
-end
-
-def fun_l9_n505(x)
- if (x < 1)
- fun_l10_n434(x)
- else
- fun_l10_n0(x)
- end
-end
-
-def fun_l9_n506(x)
- if (x < 1)
- fun_l10_n121(x)
- else
- fun_l10_n488(x)
- end
-end
-
-def fun_l9_n507(x)
- if (x < 1)
- fun_l10_n865(x)
- else
- fun_l10_n540(x)
- end
-end
-
-def fun_l9_n508(x)
- if (x < 1)
- fun_l10_n809(x)
- else
- fun_l10_n764(x)
- end
-end
-
-def fun_l9_n509(x)
- if (x < 1)
- fun_l10_n463(x)
- else
- fun_l10_n141(x)
- end
-end
-
-def fun_l9_n510(x)
- if (x < 1)
- fun_l10_n442(x)
- else
- fun_l10_n646(x)
- end
-end
-
-def fun_l9_n511(x)
- if (x < 1)
- fun_l10_n971(x)
- else
- fun_l10_n57(x)
- end
-end
-
-def fun_l9_n512(x)
- if (x < 1)
- fun_l10_n892(x)
- else
- fun_l10_n612(x)
- end
-end
-
-def fun_l9_n513(x)
- if (x < 1)
- fun_l10_n864(x)
- else
- fun_l10_n438(x)
- end
-end
-
-def fun_l9_n514(x)
- if (x < 1)
- fun_l10_n504(x)
- else
- fun_l10_n100(x)
- end
-end
-
-def fun_l9_n515(x)
- if (x < 1)
- fun_l10_n881(x)
- else
- fun_l10_n621(x)
- end
-end
-
-def fun_l9_n516(x)
- if (x < 1)
- fun_l10_n170(x)
- else
- fun_l10_n435(x)
- end
-end
-
-def fun_l9_n517(x)
- if (x < 1)
- fun_l10_n712(x)
- else
- fun_l10_n537(x)
- end
-end
-
-def fun_l9_n518(x)
- if (x < 1)
- fun_l10_n369(x)
- else
- fun_l10_n832(x)
- end
-end
-
-def fun_l9_n519(x)
- if (x < 1)
- fun_l10_n654(x)
- else
- fun_l10_n364(x)
- end
-end
-
-def fun_l9_n520(x)
- if (x < 1)
- fun_l10_n410(x)
- else
- fun_l10_n10(x)
- end
-end
-
-def fun_l9_n521(x)
- if (x < 1)
- fun_l10_n814(x)
- else
- fun_l10_n569(x)
- end
-end
-
-def fun_l9_n522(x)
- if (x < 1)
- fun_l10_n787(x)
- else
- fun_l10_n333(x)
- end
-end
-
-def fun_l9_n523(x)
- if (x < 1)
- fun_l10_n336(x)
- else
- fun_l10_n720(x)
- end
-end
-
-def fun_l9_n524(x)
- if (x < 1)
- fun_l10_n34(x)
- else
- fun_l10_n643(x)
- end
-end
-
-def fun_l9_n525(x)
- if (x < 1)
- fun_l10_n147(x)
- else
- fun_l10_n62(x)
- end
-end
-
-def fun_l9_n526(x)
- if (x < 1)
- fun_l10_n431(x)
- else
- fun_l10_n452(x)
- end
-end
-
-def fun_l9_n527(x)
- if (x < 1)
- fun_l10_n374(x)
- else
- fun_l10_n831(x)
- end
-end
-
-def fun_l9_n528(x)
- if (x < 1)
- fun_l10_n604(x)
- else
- fun_l10_n274(x)
- end
-end
-
-def fun_l9_n529(x)
- if (x < 1)
- fun_l10_n470(x)
- else
- fun_l10_n764(x)
- end
-end
-
-def fun_l9_n530(x)
- if (x < 1)
- fun_l10_n552(x)
- else
- fun_l10_n646(x)
- end
-end
-
-def fun_l9_n531(x)
- if (x < 1)
- fun_l10_n427(x)
- else
- fun_l10_n464(x)
- end
-end
-
-def fun_l9_n532(x)
- if (x < 1)
- fun_l10_n553(x)
- else
- fun_l10_n605(x)
- end
-end
-
-def fun_l9_n533(x)
- if (x < 1)
- fun_l10_n59(x)
- else
- fun_l10_n794(x)
- end
-end
-
-def fun_l9_n534(x)
- if (x < 1)
- fun_l10_n168(x)
- else
- fun_l10_n740(x)
- end
-end
-
-def fun_l9_n535(x)
- if (x < 1)
- fun_l10_n227(x)
- else
- fun_l10_n651(x)
- end
-end
-
-def fun_l9_n536(x)
- if (x < 1)
- fun_l10_n904(x)
- else
- fun_l10_n552(x)
- end
-end
-
-def fun_l9_n537(x)
- if (x < 1)
- fun_l10_n389(x)
- else
- fun_l10_n397(x)
- end
-end
-
-def fun_l9_n538(x)
- if (x < 1)
- fun_l10_n622(x)
- else
- fun_l10_n100(x)
- end
-end
-
-def fun_l9_n539(x)
- if (x < 1)
- fun_l10_n117(x)
- else
- fun_l10_n715(x)
- end
-end
-
-def fun_l9_n540(x)
- if (x < 1)
- fun_l10_n959(x)
- else
- fun_l10_n391(x)
- end
-end
-
-def fun_l9_n541(x)
- if (x < 1)
- fun_l10_n733(x)
- else
- fun_l10_n393(x)
- end
-end
-
-def fun_l9_n542(x)
- if (x < 1)
- fun_l10_n171(x)
- else
- fun_l10_n299(x)
- end
-end
-
-def fun_l9_n543(x)
- if (x < 1)
- fun_l10_n655(x)
- else
- fun_l10_n285(x)
- end
-end
-
-def fun_l9_n544(x)
- if (x < 1)
- fun_l10_n819(x)
- else
- fun_l10_n817(x)
- end
-end
-
-def fun_l9_n545(x)
- if (x < 1)
- fun_l10_n938(x)
- else
- fun_l10_n54(x)
- end
-end
-
-def fun_l9_n546(x)
- if (x < 1)
- fun_l10_n712(x)
- else
- fun_l10_n6(x)
- end
-end
-
-def fun_l9_n547(x)
- if (x < 1)
- fun_l10_n203(x)
- else
- fun_l10_n626(x)
- end
-end
-
-def fun_l9_n548(x)
- if (x < 1)
- fun_l10_n643(x)
- else
- fun_l10_n761(x)
- end
-end
-
-def fun_l9_n549(x)
- if (x < 1)
- fun_l10_n450(x)
- else
- fun_l10_n673(x)
- end
-end
-
-def fun_l9_n550(x)
- if (x < 1)
- fun_l10_n496(x)
- else
- fun_l10_n568(x)
- end
-end
-
-def fun_l9_n551(x)
- if (x < 1)
- fun_l10_n30(x)
- else
- fun_l10_n518(x)
- end
-end
-
-def fun_l9_n552(x)
- if (x < 1)
- fun_l10_n398(x)
- else
- fun_l10_n858(x)
- end
-end
-
-def fun_l9_n553(x)
- if (x < 1)
- fun_l10_n253(x)
- else
- fun_l10_n831(x)
- end
-end
-
-def fun_l9_n554(x)
- if (x < 1)
- fun_l10_n493(x)
- else
- fun_l10_n750(x)
- end
-end
-
-def fun_l9_n555(x)
- if (x < 1)
- fun_l10_n111(x)
- else
- fun_l10_n279(x)
- end
-end
-
-def fun_l9_n556(x)
- if (x < 1)
- fun_l10_n927(x)
- else
- fun_l10_n793(x)
- end
-end
-
-def fun_l9_n557(x)
- if (x < 1)
- fun_l10_n530(x)
- else
- fun_l10_n182(x)
- end
-end
-
-def fun_l9_n558(x)
- if (x < 1)
- fun_l10_n434(x)
- else
- fun_l10_n453(x)
- end
-end
-
-def fun_l9_n559(x)
- if (x < 1)
- fun_l10_n480(x)
- else
- fun_l10_n590(x)
- end
-end
-
-def fun_l9_n560(x)
- if (x < 1)
- fun_l10_n906(x)
- else
- fun_l10_n280(x)
- end
-end
-
-def fun_l9_n561(x)
- if (x < 1)
- fun_l10_n107(x)
- else
- fun_l10_n716(x)
- end
-end
-
-def fun_l9_n562(x)
- if (x < 1)
- fun_l10_n15(x)
- else
- fun_l10_n671(x)
- end
-end
-
-def fun_l9_n563(x)
- if (x < 1)
- fun_l10_n544(x)
- else
- fun_l10_n571(x)
- end
-end
-
-def fun_l9_n564(x)
- if (x < 1)
- fun_l10_n482(x)
- else
- fun_l10_n885(x)
- end
-end
-
-def fun_l9_n565(x)
- if (x < 1)
- fun_l10_n465(x)
- else
- fun_l10_n916(x)
- end
-end
-
-def fun_l9_n566(x)
- if (x < 1)
- fun_l10_n413(x)
- else
- fun_l10_n684(x)
- end
-end
-
-def fun_l9_n567(x)
- if (x < 1)
- fun_l10_n413(x)
- else
- fun_l10_n577(x)
- end
-end
-
-def fun_l9_n568(x)
- if (x < 1)
- fun_l10_n604(x)
- else
- fun_l10_n899(x)
- end
-end
-
-def fun_l9_n569(x)
- if (x < 1)
- fun_l10_n138(x)
- else
- fun_l10_n164(x)
- end
-end
-
-def fun_l9_n570(x)
- if (x < 1)
- fun_l10_n993(x)
- else
- fun_l10_n94(x)
- end
-end
-
-def fun_l9_n571(x)
- if (x < 1)
- fun_l10_n602(x)
- else
- fun_l10_n989(x)
- end
-end
-
-def fun_l9_n572(x)
- if (x < 1)
- fun_l10_n700(x)
- else
- fun_l10_n308(x)
- end
-end
-
-def fun_l9_n573(x)
- if (x < 1)
- fun_l10_n773(x)
- else
- fun_l10_n945(x)
- end
-end
-
-def fun_l9_n574(x)
- if (x < 1)
- fun_l10_n148(x)
- else
- fun_l10_n608(x)
- end
-end
-
-def fun_l9_n575(x)
- if (x < 1)
- fun_l10_n439(x)
- else
- fun_l10_n908(x)
- end
-end
-
-def fun_l9_n576(x)
- if (x < 1)
- fun_l10_n174(x)
- else
- fun_l10_n872(x)
- end
-end
-
-def fun_l9_n577(x)
- if (x < 1)
- fun_l10_n291(x)
- else
- fun_l10_n265(x)
- end
-end
-
-def fun_l9_n578(x)
- if (x < 1)
- fun_l10_n425(x)
- else
- fun_l10_n928(x)
- end
-end
-
-def fun_l9_n579(x)
- if (x < 1)
- fun_l10_n674(x)
- else
- fun_l10_n666(x)
- end
-end
-
-def fun_l9_n580(x)
- if (x < 1)
- fun_l10_n784(x)
- else
- fun_l10_n147(x)
- end
-end
-
-def fun_l9_n581(x)
- if (x < 1)
- fun_l10_n550(x)
- else
- fun_l10_n119(x)
- end
-end
-
-def fun_l9_n582(x)
- if (x < 1)
- fun_l10_n953(x)
- else
- fun_l10_n269(x)
- end
-end
-
-def fun_l9_n583(x)
- if (x < 1)
- fun_l10_n575(x)
- else
- fun_l10_n79(x)
- end
-end
-
-def fun_l9_n584(x)
- if (x < 1)
- fun_l10_n498(x)
- else
- fun_l10_n1(x)
- end
-end
-
-def fun_l9_n585(x)
- if (x < 1)
- fun_l10_n728(x)
- else
- fun_l10_n92(x)
- end
-end
-
-def fun_l9_n586(x)
- if (x < 1)
- fun_l10_n344(x)
- else
- fun_l10_n753(x)
- end
-end
-
-def fun_l9_n587(x)
- if (x < 1)
- fun_l10_n911(x)
- else
- fun_l10_n327(x)
- end
-end
-
-def fun_l9_n588(x)
- if (x < 1)
- fun_l10_n422(x)
- else
- fun_l10_n224(x)
- end
-end
-
-def fun_l9_n589(x)
- if (x < 1)
- fun_l10_n311(x)
- else
- fun_l10_n457(x)
- end
-end
-
-def fun_l9_n590(x)
- if (x < 1)
- fun_l10_n705(x)
- else
- fun_l10_n136(x)
- end
-end
-
-def fun_l9_n591(x)
- if (x < 1)
- fun_l10_n338(x)
- else
- fun_l10_n14(x)
- end
-end
-
-def fun_l9_n592(x)
- if (x < 1)
- fun_l10_n144(x)
- else
- fun_l10_n671(x)
- end
-end
-
-def fun_l9_n593(x)
- if (x < 1)
- fun_l10_n402(x)
- else
- fun_l10_n218(x)
- end
-end
-
-def fun_l9_n594(x)
- if (x < 1)
- fun_l10_n854(x)
- else
- fun_l10_n198(x)
- end
-end
-
-def fun_l9_n595(x)
- if (x < 1)
- fun_l10_n932(x)
- else
- fun_l10_n181(x)
- end
-end
-
-def fun_l9_n596(x)
- if (x < 1)
- fun_l10_n373(x)
- else
- fun_l10_n937(x)
- end
-end
-
-def fun_l9_n597(x)
- if (x < 1)
- fun_l10_n181(x)
- else
- fun_l10_n925(x)
- end
-end
-
-def fun_l9_n598(x)
- if (x < 1)
- fun_l10_n263(x)
- else
- fun_l10_n98(x)
- end
-end
-
-def fun_l9_n599(x)
- if (x < 1)
- fun_l10_n736(x)
- else
- fun_l10_n951(x)
- end
-end
-
-def fun_l9_n600(x)
- if (x < 1)
- fun_l10_n576(x)
- else
- fun_l10_n998(x)
- end
-end
-
-def fun_l9_n601(x)
- if (x < 1)
- fun_l10_n577(x)
- else
- fun_l10_n559(x)
- end
-end
-
-def fun_l9_n602(x)
- if (x < 1)
- fun_l10_n143(x)
- else
- fun_l10_n993(x)
- end
-end
-
-def fun_l9_n603(x)
- if (x < 1)
- fun_l10_n35(x)
- else
- fun_l10_n132(x)
- end
-end
-
-def fun_l9_n604(x)
- if (x < 1)
- fun_l10_n715(x)
- else
- fun_l10_n933(x)
- end
-end
-
-def fun_l9_n605(x)
- if (x < 1)
- fun_l10_n570(x)
- else
- fun_l10_n455(x)
- end
-end
-
-def fun_l9_n606(x)
- if (x < 1)
- fun_l10_n225(x)
- else
- fun_l10_n216(x)
- end
-end
-
-def fun_l9_n607(x)
- if (x < 1)
- fun_l10_n431(x)
- else
- fun_l10_n285(x)
- end
-end
-
-def fun_l9_n608(x)
- if (x < 1)
- fun_l10_n647(x)
- else
- fun_l10_n221(x)
- end
-end
-
-def fun_l9_n609(x)
- if (x < 1)
- fun_l10_n348(x)
- else
- fun_l10_n849(x)
- end
-end
-
-def fun_l9_n610(x)
- if (x < 1)
- fun_l10_n301(x)
- else
- fun_l10_n500(x)
- end
-end
-
-def fun_l9_n611(x)
- if (x < 1)
- fun_l10_n152(x)
- else
- fun_l10_n1(x)
- end
-end
-
-def fun_l9_n612(x)
- if (x < 1)
- fun_l10_n339(x)
- else
- fun_l10_n577(x)
- end
-end
-
-def fun_l9_n613(x)
- if (x < 1)
- fun_l10_n427(x)
- else
- fun_l10_n779(x)
- end
-end
-
-def fun_l9_n614(x)
- if (x < 1)
- fun_l10_n60(x)
- else
- fun_l10_n199(x)
- end
-end
-
-def fun_l9_n615(x)
- if (x < 1)
- fun_l10_n616(x)
- else
- fun_l10_n33(x)
- end
-end
-
-def fun_l9_n616(x)
- if (x < 1)
- fun_l10_n940(x)
- else
- fun_l10_n981(x)
- end
-end
-
-def fun_l9_n617(x)
- if (x < 1)
- fun_l10_n594(x)
- else
- fun_l10_n321(x)
- end
-end
-
-def fun_l9_n618(x)
- if (x < 1)
- fun_l10_n233(x)
- else
- fun_l10_n500(x)
- end
-end
-
-def fun_l9_n619(x)
- if (x < 1)
- fun_l10_n169(x)
- else
- fun_l10_n883(x)
- end
-end
-
-def fun_l9_n620(x)
- if (x < 1)
- fun_l10_n611(x)
- else
- fun_l10_n345(x)
- end
-end
-
-def fun_l9_n621(x)
- if (x < 1)
- fun_l10_n155(x)
- else
- fun_l10_n547(x)
- end
-end
-
-def fun_l9_n622(x)
- if (x < 1)
- fun_l10_n244(x)
- else
- fun_l10_n760(x)
- end
-end
-
-def fun_l9_n623(x)
- if (x < 1)
- fun_l10_n893(x)
- else
- fun_l10_n13(x)
- end
-end
-
-def fun_l9_n624(x)
- if (x < 1)
- fun_l10_n465(x)
- else
- fun_l10_n276(x)
- end
-end
-
-def fun_l9_n625(x)
- if (x < 1)
- fun_l10_n196(x)
- else
- fun_l10_n920(x)
- end
-end
-
-def fun_l9_n626(x)
- if (x < 1)
- fun_l10_n235(x)
- else
- fun_l10_n962(x)
- end
-end
-
-def fun_l9_n627(x)
- if (x < 1)
- fun_l10_n361(x)
- else
- fun_l10_n162(x)
- end
-end
-
-def fun_l9_n628(x)
- if (x < 1)
- fun_l10_n110(x)
- else
- fun_l10_n574(x)
- end
-end
-
-def fun_l9_n629(x)
- if (x < 1)
- fun_l10_n861(x)
- else
- fun_l10_n839(x)
- end
-end
-
-def fun_l9_n630(x)
- if (x < 1)
- fun_l10_n386(x)
- else
- fun_l10_n741(x)
- end
-end
-
-def fun_l9_n631(x)
- if (x < 1)
- fun_l10_n426(x)
- else
- fun_l10_n430(x)
- end
-end
-
-def fun_l9_n632(x)
- if (x < 1)
- fun_l10_n231(x)
- else
- fun_l10_n353(x)
- end
-end
-
-def fun_l9_n633(x)
- if (x < 1)
- fun_l10_n945(x)
- else
- fun_l10_n199(x)
- end
-end
-
-def fun_l9_n634(x)
- if (x < 1)
- fun_l10_n607(x)
- else
- fun_l10_n388(x)
- end
-end
-
-def fun_l9_n635(x)
- if (x < 1)
- fun_l10_n214(x)
- else
- fun_l10_n135(x)
- end
-end
-
-def fun_l9_n636(x)
- if (x < 1)
- fun_l10_n642(x)
- else
- fun_l10_n522(x)
- end
-end
-
-def fun_l9_n637(x)
- if (x < 1)
- fun_l10_n605(x)
- else
- fun_l10_n336(x)
- end
-end
-
-def fun_l9_n638(x)
- if (x < 1)
- fun_l10_n719(x)
- else
- fun_l10_n213(x)
- end
-end
-
-def fun_l9_n639(x)
- if (x < 1)
- fun_l10_n202(x)
- else
- fun_l10_n767(x)
- end
-end
-
-def fun_l9_n640(x)
- if (x < 1)
- fun_l10_n242(x)
- else
- fun_l10_n596(x)
- end
-end
-
-def fun_l9_n641(x)
- if (x < 1)
- fun_l10_n851(x)
- else
- fun_l10_n216(x)
- end
-end
-
-def fun_l9_n642(x)
- if (x < 1)
- fun_l10_n645(x)
- else
- fun_l10_n890(x)
- end
-end
-
-def fun_l9_n643(x)
- if (x < 1)
- fun_l10_n241(x)
- else
- fun_l10_n350(x)
- end
-end
-
-def fun_l9_n644(x)
- if (x < 1)
- fun_l10_n597(x)
- else
- fun_l10_n350(x)
- end
-end
-
-def fun_l9_n645(x)
- if (x < 1)
- fun_l10_n170(x)
- else
- fun_l10_n962(x)
- end
-end
-
-def fun_l9_n646(x)
- if (x < 1)
- fun_l10_n229(x)
- else
- fun_l10_n543(x)
- end
-end
-
-def fun_l9_n647(x)
- if (x < 1)
- fun_l10_n473(x)
- else
- fun_l10_n942(x)
- end
-end
-
-def fun_l9_n648(x)
- if (x < 1)
- fun_l10_n630(x)
- else
- fun_l10_n630(x)
- end
-end
-
-def fun_l9_n649(x)
- if (x < 1)
- fun_l10_n183(x)
- else
- fun_l10_n313(x)
- end
-end
-
-def fun_l9_n650(x)
- if (x < 1)
- fun_l10_n951(x)
- else
- fun_l10_n394(x)
- end
-end
-
-def fun_l9_n651(x)
- if (x < 1)
- fun_l10_n107(x)
- else
- fun_l10_n849(x)
- end
-end
-
-def fun_l9_n652(x)
- if (x < 1)
- fun_l10_n678(x)
- else
- fun_l10_n768(x)
- end
-end
-
-def fun_l9_n653(x)
- if (x < 1)
- fun_l10_n534(x)
- else
- fun_l10_n410(x)
- end
-end
-
-def fun_l9_n654(x)
- if (x < 1)
- fun_l10_n694(x)
- else
- fun_l10_n134(x)
- end
-end
-
-def fun_l9_n655(x)
- if (x < 1)
- fun_l10_n751(x)
- else
- fun_l10_n923(x)
- end
-end
-
-def fun_l9_n656(x)
- if (x < 1)
- fun_l10_n957(x)
- else
- fun_l10_n489(x)
- end
-end
-
-def fun_l9_n657(x)
- if (x < 1)
- fun_l10_n612(x)
- else
- fun_l10_n577(x)
- end
-end
-
-def fun_l9_n658(x)
- if (x < 1)
- fun_l10_n814(x)
- else
- fun_l10_n801(x)
- end
-end
-
-def fun_l9_n659(x)
- if (x < 1)
- fun_l10_n297(x)
- else
- fun_l10_n344(x)
- end
-end
-
-def fun_l9_n660(x)
- if (x < 1)
- fun_l10_n674(x)
- else
- fun_l10_n780(x)
- end
-end
-
-def fun_l9_n661(x)
- if (x < 1)
- fun_l10_n302(x)
- else
- fun_l10_n184(x)
- end
-end
-
-def fun_l9_n662(x)
- if (x < 1)
- fun_l10_n308(x)
- else
- fun_l10_n302(x)
- end
-end
-
-def fun_l9_n663(x)
- if (x < 1)
- fun_l10_n825(x)
- else
- fun_l10_n866(x)
- end
-end
-
-def fun_l9_n664(x)
- if (x < 1)
- fun_l10_n771(x)
- else
- fun_l10_n141(x)
- end
-end
-
-def fun_l9_n665(x)
- if (x < 1)
- fun_l10_n369(x)
- else
- fun_l10_n63(x)
- end
-end
-
-def fun_l9_n666(x)
- if (x < 1)
- fun_l10_n198(x)
- else
- fun_l10_n793(x)
- end
-end
-
-def fun_l9_n667(x)
- if (x < 1)
- fun_l10_n800(x)
- else
- fun_l10_n748(x)
- end
-end
-
-def fun_l9_n668(x)
- if (x < 1)
- fun_l10_n809(x)
- else
- fun_l10_n673(x)
- end
-end
-
-def fun_l9_n669(x)
- if (x < 1)
- fun_l10_n438(x)
- else
- fun_l10_n301(x)
- end
-end
-
-def fun_l9_n670(x)
- if (x < 1)
- fun_l10_n802(x)
- else
- fun_l10_n882(x)
- end
-end
-
-def fun_l9_n671(x)
- if (x < 1)
- fun_l10_n690(x)
- else
- fun_l10_n524(x)
- end
-end
-
-def fun_l9_n672(x)
- if (x < 1)
- fun_l10_n996(x)
- else
- fun_l10_n68(x)
- end
-end
-
-def fun_l9_n673(x)
- if (x < 1)
- fun_l10_n773(x)
- else
- fun_l10_n26(x)
- end
-end
-
-def fun_l9_n674(x)
- if (x < 1)
- fun_l10_n252(x)
- else
- fun_l10_n680(x)
- end
-end
-
-def fun_l9_n675(x)
- if (x < 1)
- fun_l10_n466(x)
- else
- fun_l10_n885(x)
- end
-end
-
-def fun_l9_n676(x)
- if (x < 1)
- fun_l10_n746(x)
- else
- fun_l10_n968(x)
- end
-end
-
-def fun_l9_n677(x)
- if (x < 1)
- fun_l10_n827(x)
- else
- fun_l10_n69(x)
- end
-end
-
-def fun_l9_n678(x)
- if (x < 1)
- fun_l10_n158(x)
- else
- fun_l10_n780(x)
- end
-end
-
-def fun_l9_n679(x)
- if (x < 1)
- fun_l10_n267(x)
- else
- fun_l10_n907(x)
- end
-end
-
-def fun_l9_n680(x)
- if (x < 1)
- fun_l10_n378(x)
- else
- fun_l10_n668(x)
- end
-end
-
-def fun_l9_n681(x)
- if (x < 1)
- fun_l10_n481(x)
- else
- fun_l10_n421(x)
- end
-end
-
-def fun_l9_n682(x)
- if (x < 1)
- fun_l10_n501(x)
- else
- fun_l10_n277(x)
- end
-end
-
-def fun_l9_n683(x)
- if (x < 1)
- fun_l10_n533(x)
- else
- fun_l10_n604(x)
- end
-end
-
-def fun_l9_n684(x)
- if (x < 1)
- fun_l10_n483(x)
- else
- fun_l10_n761(x)
- end
-end
-
-def fun_l9_n685(x)
- if (x < 1)
- fun_l10_n41(x)
- else
- fun_l10_n374(x)
- end
-end
-
-def fun_l9_n686(x)
- if (x < 1)
- fun_l10_n549(x)
- else
- fun_l10_n319(x)
- end
-end
-
-def fun_l9_n687(x)
- if (x < 1)
- fun_l10_n246(x)
- else
- fun_l10_n854(x)
- end
-end
-
-def fun_l9_n688(x)
- if (x < 1)
- fun_l10_n634(x)
- else
- fun_l10_n43(x)
- end
-end
-
-def fun_l9_n689(x)
- if (x < 1)
- fun_l10_n994(x)
- else
- fun_l10_n549(x)
- end
-end
-
-def fun_l9_n690(x)
- if (x < 1)
- fun_l10_n439(x)
- else
- fun_l10_n560(x)
- end
-end
-
-def fun_l9_n691(x)
- if (x < 1)
- fun_l10_n227(x)
- else
- fun_l10_n877(x)
- end
-end
-
-def fun_l9_n692(x)
- if (x < 1)
- fun_l10_n644(x)
- else
- fun_l10_n350(x)
- end
-end
-
-def fun_l9_n693(x)
- if (x < 1)
- fun_l10_n543(x)
- else
- fun_l10_n638(x)
- end
-end
-
-def fun_l9_n694(x)
- if (x < 1)
- fun_l10_n537(x)
- else
- fun_l10_n187(x)
- end
-end
-
-def fun_l9_n695(x)
- if (x < 1)
- fun_l10_n1(x)
- else
- fun_l10_n540(x)
- end
-end
-
-def fun_l9_n696(x)
- if (x < 1)
- fun_l10_n306(x)
- else
- fun_l10_n290(x)
- end
-end
-
-def fun_l9_n697(x)
- if (x < 1)
- fun_l10_n140(x)
- else
- fun_l10_n72(x)
- end
-end
-
-def fun_l9_n698(x)
- if (x < 1)
- fun_l10_n43(x)
- else
- fun_l10_n257(x)
- end
-end
-
-def fun_l9_n699(x)
- if (x < 1)
- fun_l10_n91(x)
- else
- fun_l10_n816(x)
- end
-end
-
-def fun_l9_n700(x)
- if (x < 1)
- fun_l10_n420(x)
- else
- fun_l10_n763(x)
- end
-end
-
-def fun_l9_n701(x)
- if (x < 1)
- fun_l10_n429(x)
- else
- fun_l10_n28(x)
- end
-end
-
-def fun_l9_n702(x)
- if (x < 1)
- fun_l10_n615(x)
- else
- fun_l10_n995(x)
- end
-end
-
-def fun_l9_n703(x)
- if (x < 1)
- fun_l10_n776(x)
- else
- fun_l10_n85(x)
- end
-end
-
-def fun_l9_n704(x)
- if (x < 1)
- fun_l10_n795(x)
- else
- fun_l10_n542(x)
- end
-end
-
-def fun_l9_n705(x)
- if (x < 1)
- fun_l10_n114(x)
- else
- fun_l10_n166(x)
- end
-end
-
-def fun_l9_n706(x)
- if (x < 1)
- fun_l10_n99(x)
- else
- fun_l10_n400(x)
- end
-end
-
-def fun_l9_n707(x)
- if (x < 1)
- fun_l10_n292(x)
- else
- fun_l10_n801(x)
- end
-end
-
-def fun_l9_n708(x)
- if (x < 1)
- fun_l10_n303(x)
- else
- fun_l10_n380(x)
- end
-end
-
-def fun_l9_n709(x)
- if (x < 1)
- fun_l10_n369(x)
- else
- fun_l10_n938(x)
- end
-end
-
-def fun_l9_n710(x)
- if (x < 1)
- fun_l10_n652(x)
- else
- fun_l10_n453(x)
- end
-end
-
-def fun_l9_n711(x)
- if (x < 1)
- fun_l10_n770(x)
- else
- fun_l10_n32(x)
- end
-end
-
-def fun_l9_n712(x)
- if (x < 1)
- fun_l10_n261(x)
- else
- fun_l10_n485(x)
- end
-end
-
-def fun_l9_n713(x)
- if (x < 1)
- fun_l10_n935(x)
- else
- fun_l10_n39(x)
- end
-end
-
-def fun_l9_n714(x)
- if (x < 1)
- fun_l10_n332(x)
- else
- fun_l10_n309(x)
- end
-end
-
-def fun_l9_n715(x)
- if (x < 1)
- fun_l10_n824(x)
- else
- fun_l10_n614(x)
- end
-end
-
-def fun_l9_n716(x)
- if (x < 1)
- fun_l10_n468(x)
- else
- fun_l10_n341(x)
- end
-end
-
-def fun_l9_n717(x)
- if (x < 1)
- fun_l10_n425(x)
- else
- fun_l10_n67(x)
- end
-end
-
-def fun_l9_n718(x)
- if (x < 1)
- fun_l10_n199(x)
- else
- fun_l10_n423(x)
- end
-end
-
-def fun_l9_n719(x)
- if (x < 1)
- fun_l10_n294(x)
- else
- fun_l10_n484(x)
- end
-end
-
-def fun_l9_n720(x)
- if (x < 1)
- fun_l10_n276(x)
- else
- fun_l10_n799(x)
- end
-end
-
-def fun_l9_n721(x)
- if (x < 1)
- fun_l10_n98(x)
- else
- fun_l10_n278(x)
- end
-end
-
-def fun_l9_n722(x)
- if (x < 1)
- fun_l10_n689(x)
- else
- fun_l10_n767(x)
- end
-end
-
-def fun_l9_n723(x)
- if (x < 1)
- fun_l10_n786(x)
- else
- fun_l10_n409(x)
- end
-end
-
-def fun_l9_n724(x)
- if (x < 1)
- fun_l10_n874(x)
- else
- fun_l10_n413(x)
- end
-end
-
-def fun_l9_n725(x)
- if (x < 1)
- fun_l10_n806(x)
- else
- fun_l10_n529(x)
- end
-end
-
-def fun_l9_n726(x)
- if (x < 1)
- fun_l10_n847(x)
- else
- fun_l10_n427(x)
- end
-end
-
-def fun_l9_n727(x)
- if (x < 1)
- fun_l10_n285(x)
- else
- fun_l10_n878(x)
- end
-end
-
-def fun_l9_n728(x)
- if (x < 1)
- fun_l10_n829(x)
- else
- fun_l10_n341(x)
- end
-end
-
-def fun_l9_n729(x)
- if (x < 1)
- fun_l10_n797(x)
- else
- fun_l10_n865(x)
- end
-end
-
-def fun_l9_n730(x)
- if (x < 1)
- fun_l10_n689(x)
- else
- fun_l10_n241(x)
- end
-end
-
-def fun_l9_n731(x)
- if (x < 1)
- fun_l10_n764(x)
- else
- fun_l10_n451(x)
- end
-end
-
-def fun_l9_n732(x)
- if (x < 1)
- fun_l10_n147(x)
- else
- fun_l10_n998(x)
- end
-end
-
-def fun_l9_n733(x)
- if (x < 1)
- fun_l10_n192(x)
- else
- fun_l10_n293(x)
- end
-end
-
-def fun_l9_n734(x)
- if (x < 1)
- fun_l10_n207(x)
- else
- fun_l10_n696(x)
- end
-end
-
-def fun_l9_n735(x)
- if (x < 1)
- fun_l10_n457(x)
- else
- fun_l10_n93(x)
- end
-end
-
-def fun_l9_n736(x)
- if (x < 1)
- fun_l10_n130(x)
- else
- fun_l10_n512(x)
- end
-end
-
-def fun_l9_n737(x)
- if (x < 1)
- fun_l10_n86(x)
- else
- fun_l10_n409(x)
- end
-end
-
-def fun_l9_n738(x)
- if (x < 1)
- fun_l10_n783(x)
- else
- fun_l10_n981(x)
- end
-end
-
-def fun_l9_n739(x)
- if (x < 1)
- fun_l10_n927(x)
- else
- fun_l10_n831(x)
- end
-end
-
-def fun_l9_n740(x)
- if (x < 1)
- fun_l10_n719(x)
- else
- fun_l10_n422(x)
- end
-end
-
-def fun_l9_n741(x)
- if (x < 1)
- fun_l10_n287(x)
- else
- fun_l10_n139(x)
- end
-end
-
-def fun_l9_n742(x)
- if (x < 1)
- fun_l10_n533(x)
- else
- fun_l10_n687(x)
- end
-end
-
-def fun_l9_n743(x)
- if (x < 1)
- fun_l10_n550(x)
- else
- fun_l10_n972(x)
- end
-end
-
-def fun_l9_n744(x)
- if (x < 1)
- fun_l10_n5(x)
- else
- fun_l10_n306(x)
- end
-end
-
-def fun_l9_n745(x)
- if (x < 1)
- fun_l10_n755(x)
- else
- fun_l10_n849(x)
- end
-end
-
-def fun_l9_n746(x)
- if (x < 1)
- fun_l10_n912(x)
- else
- fun_l10_n307(x)
- end
-end
-
-def fun_l9_n747(x)
- if (x < 1)
- fun_l10_n181(x)
- else
- fun_l10_n476(x)
- end
-end
-
-def fun_l9_n748(x)
- if (x < 1)
- fun_l10_n353(x)
- else
- fun_l10_n412(x)
- end
-end
-
-def fun_l9_n749(x)
- if (x < 1)
- fun_l10_n187(x)
- else
- fun_l10_n591(x)
- end
-end
-
-def fun_l9_n750(x)
- if (x < 1)
- fun_l10_n464(x)
- else
- fun_l10_n581(x)
- end
-end
-
-def fun_l9_n751(x)
- if (x < 1)
- fun_l10_n1(x)
- else
- fun_l10_n557(x)
- end
-end
-
-def fun_l9_n752(x)
- if (x < 1)
- fun_l10_n788(x)
- else
- fun_l10_n438(x)
- end
-end
-
-def fun_l9_n753(x)
- if (x < 1)
- fun_l10_n535(x)
- else
- fun_l10_n13(x)
- end
-end
-
-def fun_l9_n754(x)
- if (x < 1)
- fun_l10_n811(x)
- else
- fun_l10_n543(x)
- end
-end
-
-def fun_l9_n755(x)
- if (x < 1)
- fun_l10_n328(x)
- else
- fun_l10_n44(x)
- end
-end
-
-def fun_l9_n756(x)
- if (x < 1)
- fun_l10_n839(x)
- else
- fun_l10_n16(x)
- end
-end
-
-def fun_l9_n757(x)
- if (x < 1)
- fun_l10_n778(x)
- else
- fun_l10_n865(x)
- end
-end
-
-def fun_l9_n758(x)
- if (x < 1)
- fun_l10_n552(x)
- else
- fun_l10_n783(x)
- end
-end
-
-def fun_l9_n759(x)
- if (x < 1)
- fun_l10_n293(x)
- else
- fun_l10_n140(x)
- end
-end
-
-def fun_l9_n760(x)
- if (x < 1)
- fun_l10_n814(x)
- else
- fun_l10_n497(x)
- end
-end
-
-def fun_l9_n761(x)
- if (x < 1)
- fun_l10_n922(x)
- else
- fun_l10_n986(x)
- end
-end
-
-def fun_l9_n762(x)
- if (x < 1)
- fun_l10_n100(x)
- else
- fun_l10_n346(x)
- end
-end
-
-def fun_l9_n763(x)
- if (x < 1)
- fun_l10_n738(x)
- else
- fun_l10_n223(x)
- end
-end
-
-def fun_l9_n764(x)
- if (x < 1)
- fun_l10_n168(x)
- else
- fun_l10_n367(x)
- end
-end
-
-def fun_l9_n765(x)
- if (x < 1)
- fun_l10_n929(x)
- else
- fun_l10_n684(x)
- end
-end
-
-def fun_l9_n766(x)
- if (x < 1)
- fun_l10_n940(x)
- else
- fun_l10_n497(x)
- end
-end
-
-def fun_l9_n767(x)
- if (x < 1)
- fun_l10_n198(x)
- else
- fun_l10_n386(x)
- end
-end
-
-def fun_l9_n768(x)
- if (x < 1)
- fun_l10_n667(x)
- else
- fun_l10_n913(x)
- end
-end
-
-def fun_l9_n769(x)
- if (x < 1)
- fun_l10_n210(x)
- else
- fun_l10_n233(x)
- end
-end
-
-def fun_l9_n770(x)
- if (x < 1)
- fun_l10_n819(x)
- else
- fun_l10_n755(x)
- end
-end
-
-def fun_l9_n771(x)
- if (x < 1)
- fun_l10_n519(x)
- else
- fun_l10_n554(x)
- end
-end
-
-def fun_l9_n772(x)
- if (x < 1)
- fun_l10_n880(x)
- else
- fun_l10_n280(x)
- end
-end
-
-def fun_l9_n773(x)
- if (x < 1)
- fun_l10_n368(x)
- else
- fun_l10_n97(x)
- end
-end
-
-def fun_l9_n774(x)
- if (x < 1)
- fun_l10_n447(x)
- else
- fun_l10_n918(x)
- end
-end
-
-def fun_l9_n775(x)
- if (x < 1)
- fun_l10_n222(x)
- else
- fun_l10_n35(x)
- end
-end
-
-def fun_l9_n776(x)
- if (x < 1)
- fun_l10_n339(x)
- else
- fun_l10_n309(x)
- end
-end
-
-def fun_l9_n777(x)
- if (x < 1)
- fun_l10_n948(x)
- else
- fun_l10_n967(x)
- end
-end
-
-def fun_l9_n778(x)
- if (x < 1)
- fun_l10_n561(x)
- else
- fun_l10_n202(x)
- end
-end
-
-def fun_l9_n779(x)
- if (x < 1)
- fun_l10_n863(x)
- else
- fun_l10_n356(x)
- end
-end
-
-def fun_l9_n780(x)
- if (x < 1)
- fun_l10_n459(x)
- else
- fun_l10_n358(x)
- end
-end
-
-def fun_l9_n781(x)
- if (x < 1)
- fun_l10_n543(x)
- else
- fun_l10_n229(x)
- end
-end
-
-def fun_l9_n782(x)
- if (x < 1)
- fun_l10_n422(x)
- else
- fun_l10_n448(x)
- end
-end
-
-def fun_l9_n783(x)
- if (x < 1)
- fun_l10_n222(x)
- else
- fun_l10_n63(x)
- end
-end
-
-def fun_l9_n784(x)
- if (x < 1)
- fun_l10_n520(x)
- else
- fun_l10_n443(x)
- end
-end
-
-def fun_l9_n785(x)
- if (x < 1)
- fun_l10_n894(x)
- else
- fun_l10_n379(x)
- end
-end
-
-def fun_l9_n786(x)
- if (x < 1)
- fun_l10_n362(x)
- else
- fun_l10_n676(x)
- end
-end
-
-def fun_l9_n787(x)
- if (x < 1)
- fun_l10_n545(x)
- else
- fun_l10_n263(x)
- end
-end
-
-def fun_l9_n788(x)
- if (x < 1)
- fun_l10_n322(x)
- else
- fun_l10_n631(x)
- end
-end
-
-def fun_l9_n789(x)
- if (x < 1)
- fun_l10_n916(x)
- else
- fun_l10_n877(x)
- end
-end
-
-def fun_l9_n790(x)
- if (x < 1)
- fun_l10_n443(x)
- else
- fun_l10_n640(x)
- end
-end
-
-def fun_l9_n791(x)
- if (x < 1)
- fun_l10_n202(x)
- else
- fun_l10_n686(x)
- end
-end
-
-def fun_l9_n792(x)
- if (x < 1)
- fun_l10_n143(x)
- else
- fun_l10_n200(x)
- end
-end
-
-def fun_l9_n793(x)
- if (x < 1)
- fun_l10_n939(x)
- else
- fun_l10_n374(x)
- end
-end
-
-def fun_l9_n794(x)
- if (x < 1)
- fun_l10_n506(x)
- else
- fun_l10_n782(x)
- end
-end
-
-def fun_l9_n795(x)
- if (x < 1)
- fun_l10_n619(x)
- else
- fun_l10_n439(x)
- end
-end
-
-def fun_l9_n796(x)
- if (x < 1)
- fun_l10_n748(x)
- else
- fun_l10_n61(x)
- end
-end
-
-def fun_l9_n797(x)
- if (x < 1)
- fun_l10_n217(x)
- else
- fun_l10_n816(x)
- end
-end
-
-def fun_l9_n798(x)
- if (x < 1)
- fun_l10_n310(x)
- else
- fun_l10_n445(x)
- end
-end
-
-def fun_l9_n799(x)
- if (x < 1)
- fun_l10_n262(x)
- else
- fun_l10_n776(x)
- end
-end
-
-def fun_l9_n800(x)
- if (x < 1)
- fun_l10_n807(x)
- else
- fun_l10_n566(x)
- end
-end
-
-def fun_l9_n801(x)
- if (x < 1)
- fun_l10_n466(x)
- else
- fun_l10_n287(x)
- end
-end
-
-def fun_l9_n802(x)
- if (x < 1)
- fun_l10_n205(x)
- else
- fun_l10_n415(x)
- end
-end
-
-def fun_l9_n803(x)
- if (x < 1)
- fun_l10_n618(x)
- else
- fun_l10_n87(x)
- end
-end
-
-def fun_l9_n804(x)
- if (x < 1)
- fun_l10_n248(x)
- else
- fun_l10_n32(x)
- end
-end
-
-def fun_l9_n805(x)
- if (x < 1)
- fun_l10_n537(x)
- else
- fun_l10_n844(x)
- end
-end
-
-def fun_l9_n806(x)
- if (x < 1)
- fun_l10_n554(x)
- else
- fun_l10_n696(x)
- end
-end
-
-def fun_l9_n807(x)
- if (x < 1)
- fun_l10_n774(x)
- else
- fun_l10_n486(x)
- end
-end
-
-def fun_l9_n808(x)
- if (x < 1)
- fun_l10_n500(x)
- else
- fun_l10_n926(x)
- end
-end
-
-def fun_l9_n809(x)
- if (x < 1)
- fun_l10_n601(x)
- else
- fun_l10_n696(x)
- end
-end
-
-def fun_l9_n810(x)
- if (x < 1)
- fun_l10_n770(x)
- else
- fun_l10_n948(x)
- end
-end
-
-def fun_l9_n811(x)
- if (x < 1)
- fun_l10_n658(x)
- else
- fun_l10_n840(x)
- end
-end
-
-def fun_l9_n812(x)
- if (x < 1)
- fun_l10_n913(x)
- else
- fun_l10_n892(x)
- end
-end
-
-def fun_l9_n813(x)
- if (x < 1)
- fun_l10_n440(x)
- else
- fun_l10_n204(x)
- end
-end
-
-def fun_l9_n814(x)
- if (x < 1)
- fun_l10_n273(x)
- else
- fun_l10_n816(x)
- end
-end
-
-def fun_l9_n815(x)
- if (x < 1)
- fun_l10_n190(x)
- else
- fun_l10_n735(x)
- end
-end
-
-def fun_l9_n816(x)
- if (x < 1)
- fun_l10_n77(x)
- else
- fun_l10_n30(x)
- end
-end
-
-def fun_l9_n817(x)
- if (x < 1)
- fun_l10_n697(x)
- else
- fun_l10_n985(x)
- end
-end
-
-def fun_l9_n818(x)
- if (x < 1)
- fun_l10_n583(x)
- else
- fun_l10_n314(x)
- end
-end
-
-def fun_l9_n819(x)
- if (x < 1)
- fun_l10_n149(x)
- else
- fun_l10_n556(x)
- end
-end
-
-def fun_l9_n820(x)
- if (x < 1)
- fun_l10_n634(x)
- else
- fun_l10_n392(x)
- end
-end
-
-def fun_l9_n821(x)
- if (x < 1)
- fun_l10_n401(x)
- else
- fun_l10_n217(x)
- end
-end
-
-def fun_l9_n822(x)
- if (x < 1)
- fun_l10_n564(x)
- else
- fun_l10_n860(x)
- end
-end
-
-def fun_l9_n823(x)
- if (x < 1)
- fun_l10_n901(x)
- else
- fun_l10_n836(x)
- end
-end
-
-def fun_l9_n824(x)
- if (x < 1)
- fun_l10_n526(x)
- else
- fun_l10_n660(x)
- end
-end
-
-def fun_l9_n825(x)
- if (x < 1)
- fun_l10_n245(x)
- else
- fun_l10_n914(x)
- end
-end
-
-def fun_l9_n826(x)
- if (x < 1)
- fun_l10_n712(x)
- else
- fun_l10_n928(x)
- end
-end
-
-def fun_l9_n827(x)
- if (x < 1)
- fun_l10_n596(x)
- else
- fun_l10_n803(x)
- end
-end
-
-def fun_l9_n828(x)
- if (x < 1)
- fun_l10_n454(x)
- else
- fun_l10_n679(x)
- end
-end
-
-def fun_l9_n829(x)
- if (x < 1)
- fun_l10_n104(x)
- else
- fun_l10_n137(x)
- end
-end
-
-def fun_l9_n830(x)
- if (x < 1)
- fun_l10_n516(x)
- else
- fun_l10_n687(x)
- end
-end
-
-def fun_l9_n831(x)
- if (x < 1)
- fun_l10_n720(x)
- else
- fun_l10_n770(x)
- end
-end
-
-def fun_l9_n832(x)
- if (x < 1)
- fun_l10_n939(x)
- else
- fun_l10_n119(x)
- end
-end
-
-def fun_l9_n833(x)
- if (x < 1)
- fun_l10_n515(x)
- else
- fun_l10_n71(x)
- end
-end
-
-def fun_l9_n834(x)
- if (x < 1)
- fun_l10_n668(x)
- else
- fun_l10_n521(x)
- end
-end
-
-def fun_l9_n835(x)
- if (x < 1)
- fun_l10_n405(x)
- else
- fun_l10_n69(x)
- end
-end
-
-def fun_l9_n836(x)
- if (x < 1)
- fun_l10_n201(x)
- else
- fun_l10_n681(x)
- end
-end
-
-def fun_l9_n837(x)
- if (x < 1)
- fun_l10_n161(x)
- else
- fun_l10_n258(x)
- end
-end
-
-def fun_l9_n838(x)
- if (x < 1)
- fun_l10_n913(x)
- else
- fun_l10_n586(x)
- end
-end
-
-def fun_l9_n839(x)
- if (x < 1)
- fun_l10_n566(x)
- else
- fun_l10_n543(x)
- end
-end
-
-def fun_l9_n840(x)
- if (x < 1)
- fun_l10_n547(x)
- else
- fun_l10_n570(x)
- end
-end
-
-def fun_l9_n841(x)
- if (x < 1)
- fun_l10_n888(x)
- else
- fun_l10_n843(x)
- end
-end
-
-def fun_l9_n842(x)
- if (x < 1)
- fun_l10_n497(x)
- else
- fun_l10_n985(x)
- end
-end
-
-def fun_l9_n843(x)
- if (x < 1)
- fun_l10_n754(x)
- else
- fun_l10_n390(x)
- end
-end
-
-def fun_l9_n844(x)
- if (x < 1)
- fun_l10_n625(x)
- else
- fun_l10_n562(x)
- end
-end
-
-def fun_l9_n845(x)
- if (x < 1)
- fun_l10_n858(x)
- else
- fun_l10_n553(x)
- end
-end
-
-def fun_l9_n846(x)
- if (x < 1)
- fun_l10_n145(x)
- else
- fun_l10_n551(x)
- end
-end
-
-def fun_l9_n847(x)
- if (x < 1)
- fun_l10_n916(x)
- else
- fun_l10_n851(x)
- end
-end
-
-def fun_l9_n848(x)
- if (x < 1)
- fun_l10_n935(x)
- else
- fun_l10_n448(x)
- end
-end
-
-def fun_l9_n849(x)
- if (x < 1)
- fun_l10_n664(x)
- else
- fun_l10_n832(x)
- end
-end
-
-def fun_l9_n850(x)
- if (x < 1)
- fun_l10_n904(x)
- else
- fun_l10_n203(x)
- end
-end
-
-def fun_l9_n851(x)
- if (x < 1)
- fun_l10_n863(x)
- else
- fun_l10_n491(x)
- end
-end
-
-def fun_l9_n852(x)
- if (x < 1)
- fun_l10_n930(x)
- else
- fun_l10_n248(x)
- end
-end
-
-def fun_l9_n853(x)
- if (x < 1)
- fun_l10_n637(x)
- else
- fun_l10_n716(x)
- end
-end
-
-def fun_l9_n854(x)
- if (x < 1)
- fun_l10_n35(x)
- else
- fun_l10_n662(x)
- end
-end
-
-def fun_l9_n855(x)
- if (x < 1)
- fun_l10_n57(x)
- else
- fun_l10_n392(x)
- end
-end
-
-def fun_l9_n856(x)
- if (x < 1)
- fun_l10_n480(x)
- else
- fun_l10_n447(x)
- end
-end
-
-def fun_l9_n857(x)
- if (x < 1)
- fun_l10_n134(x)
- else
- fun_l10_n842(x)
- end
-end
-
-def fun_l9_n858(x)
- if (x < 1)
- fun_l10_n384(x)
- else
- fun_l10_n577(x)
- end
-end
-
-def fun_l9_n859(x)
- if (x < 1)
- fun_l10_n718(x)
- else
- fun_l10_n571(x)
- end
-end
-
-def fun_l9_n860(x)
- if (x < 1)
- fun_l10_n237(x)
- else
- fun_l10_n654(x)
- end
-end
-
-def fun_l9_n861(x)
- if (x < 1)
- fun_l10_n807(x)
- else
- fun_l10_n409(x)
- end
-end
-
-def fun_l9_n862(x)
- if (x < 1)
- fun_l10_n801(x)
- else
- fun_l10_n575(x)
- end
-end
-
-def fun_l9_n863(x)
- if (x < 1)
- fun_l10_n500(x)
- else
- fun_l10_n133(x)
- end
-end
-
-def fun_l9_n864(x)
- if (x < 1)
- fun_l10_n403(x)
- else
- fun_l10_n720(x)
- end
-end
-
-def fun_l9_n865(x)
- if (x < 1)
- fun_l10_n648(x)
- else
- fun_l10_n677(x)
- end
-end
-
-def fun_l9_n866(x)
- if (x < 1)
- fun_l10_n873(x)
- else
- fun_l10_n519(x)
- end
-end
-
-def fun_l9_n867(x)
- if (x < 1)
- fun_l10_n459(x)
- else
- fun_l10_n331(x)
- end
-end
-
-def fun_l9_n868(x)
- if (x < 1)
- fun_l10_n159(x)
- else
- fun_l10_n64(x)
- end
-end
-
-def fun_l9_n869(x)
- if (x < 1)
- fun_l10_n155(x)
- else
- fun_l10_n41(x)
- end
-end
-
-def fun_l9_n870(x)
- if (x < 1)
- fun_l10_n947(x)
- else
- fun_l10_n386(x)
- end
-end
-
-def fun_l9_n871(x)
- if (x < 1)
- fun_l10_n868(x)
- else
- fun_l10_n794(x)
- end
-end
-
-def fun_l9_n872(x)
- if (x < 1)
- fun_l10_n77(x)
- else
- fun_l10_n268(x)
- end
-end
-
-def fun_l9_n873(x)
- if (x < 1)
- fun_l10_n119(x)
- else
- fun_l10_n819(x)
- end
-end
-
-def fun_l9_n874(x)
- if (x < 1)
- fun_l10_n143(x)
- else
- fun_l10_n434(x)
- end
-end
-
-def fun_l9_n875(x)
- if (x < 1)
- fun_l10_n238(x)
- else
- fun_l10_n489(x)
- end
-end
-
-def fun_l9_n876(x)
- if (x < 1)
- fun_l10_n687(x)
- else
- fun_l10_n384(x)
- end
-end
-
-def fun_l9_n877(x)
- if (x < 1)
- fun_l10_n27(x)
- else
- fun_l10_n138(x)
- end
-end
-
-def fun_l9_n878(x)
- if (x < 1)
- fun_l10_n208(x)
- else
- fun_l10_n691(x)
- end
-end
-
-def fun_l9_n879(x)
- if (x < 1)
- fun_l10_n793(x)
- else
- fun_l10_n165(x)
- end
-end
-
-def fun_l9_n880(x)
- if (x < 1)
- fun_l10_n358(x)
- else
- fun_l10_n455(x)
- end
-end
-
-def fun_l9_n881(x)
- if (x < 1)
- fun_l10_n558(x)
- else
- fun_l10_n184(x)
- end
-end
-
-def fun_l9_n882(x)
- if (x < 1)
- fun_l10_n461(x)
- else
- fun_l10_n155(x)
- end
-end
-
-def fun_l9_n883(x)
- if (x < 1)
- fun_l10_n503(x)
- else
- fun_l10_n225(x)
- end
-end
-
-def fun_l9_n884(x)
- if (x < 1)
- fun_l10_n384(x)
- else
- fun_l10_n262(x)
- end
-end
-
-def fun_l9_n885(x)
- if (x < 1)
- fun_l10_n565(x)
- else
- fun_l10_n633(x)
- end
-end
-
-def fun_l9_n886(x)
- if (x < 1)
- fun_l10_n626(x)
- else
- fun_l10_n796(x)
- end
-end
-
-def fun_l9_n887(x)
- if (x < 1)
- fun_l10_n424(x)
- else
- fun_l10_n458(x)
- end
-end
-
-def fun_l9_n888(x)
- if (x < 1)
- fun_l10_n687(x)
- else
- fun_l10_n145(x)
- end
-end
-
-def fun_l9_n889(x)
- if (x < 1)
- fun_l10_n787(x)
- else
- fun_l10_n225(x)
- end
-end
-
-def fun_l9_n890(x)
- if (x < 1)
- fun_l10_n249(x)
- else
- fun_l10_n154(x)
- end
-end
-
-def fun_l9_n891(x)
- if (x < 1)
- fun_l10_n38(x)
- else
- fun_l10_n635(x)
- end
-end
-
-def fun_l9_n892(x)
- if (x < 1)
- fun_l10_n920(x)
- else
- fun_l10_n478(x)
- end
-end
-
-def fun_l9_n893(x)
- if (x < 1)
- fun_l10_n13(x)
- else
- fun_l10_n174(x)
- end
-end
-
-def fun_l9_n894(x)
- if (x < 1)
- fun_l10_n304(x)
- else
- fun_l10_n495(x)
- end
-end
-
-def fun_l9_n895(x)
- if (x < 1)
- fun_l10_n226(x)
- else
- fun_l10_n420(x)
- end
-end
-
-def fun_l9_n896(x)
- if (x < 1)
- fun_l10_n86(x)
- else
- fun_l10_n837(x)
- end
-end
-
-def fun_l9_n897(x)
- if (x < 1)
- fun_l10_n927(x)
- else
- fun_l10_n344(x)
- end
-end
-
-def fun_l9_n898(x)
- if (x < 1)
- fun_l10_n87(x)
- else
- fun_l10_n270(x)
- end
-end
-
-def fun_l9_n899(x)
- if (x < 1)
- fun_l10_n549(x)
- else
- fun_l10_n349(x)
- end
-end
-
-def fun_l9_n900(x)
- if (x < 1)
- fun_l10_n456(x)
- else
- fun_l10_n345(x)
- end
-end
-
-def fun_l9_n901(x)
- if (x < 1)
- fun_l10_n154(x)
- else
- fun_l10_n764(x)
- end
-end
-
-def fun_l9_n902(x)
- if (x < 1)
- fun_l10_n614(x)
- else
- fun_l10_n536(x)
- end
-end
-
-def fun_l9_n903(x)
- if (x < 1)
- fun_l10_n108(x)
- else
- fun_l10_n197(x)
- end
-end
-
-def fun_l9_n904(x)
- if (x < 1)
- fun_l10_n616(x)
- else
- fun_l10_n777(x)
- end
-end
-
-def fun_l9_n905(x)
- if (x < 1)
- fun_l10_n515(x)
- else
- fun_l10_n830(x)
- end
-end
-
-def fun_l9_n906(x)
- if (x < 1)
- fun_l10_n288(x)
- else
- fun_l10_n717(x)
- end
-end
-
-def fun_l9_n907(x)
- if (x < 1)
- fun_l10_n704(x)
- else
- fun_l10_n962(x)
- end
-end
-
-def fun_l9_n908(x)
- if (x < 1)
- fun_l10_n85(x)
- else
- fun_l10_n70(x)
- end
-end
-
-def fun_l9_n909(x)
- if (x < 1)
- fun_l10_n806(x)
- else
- fun_l10_n97(x)
- end
-end
-
-def fun_l9_n910(x)
- if (x < 1)
- fun_l10_n567(x)
- else
- fun_l10_n47(x)
- end
-end
-
-def fun_l9_n911(x)
- if (x < 1)
- fun_l10_n919(x)
- else
- fun_l10_n879(x)
- end
-end
-
-def fun_l9_n912(x)
- if (x < 1)
- fun_l10_n229(x)
- else
- fun_l10_n200(x)
- end
-end
-
-def fun_l9_n913(x)
- if (x < 1)
- fun_l10_n502(x)
- else
- fun_l10_n820(x)
- end
-end
-
-def fun_l9_n914(x)
- if (x < 1)
- fun_l10_n57(x)
- else
- fun_l10_n470(x)
- end
-end
-
-def fun_l9_n915(x)
- if (x < 1)
- fun_l10_n909(x)
- else
- fun_l10_n845(x)
- end
-end
-
-def fun_l9_n916(x)
- if (x < 1)
- fun_l10_n658(x)
- else
- fun_l10_n925(x)
- end
-end
-
-def fun_l9_n917(x)
- if (x < 1)
- fun_l10_n886(x)
- else
- fun_l10_n285(x)
- end
-end
-
-def fun_l9_n918(x)
- if (x < 1)
- fun_l10_n484(x)
- else
- fun_l10_n712(x)
- end
-end
-
-def fun_l9_n919(x)
- if (x < 1)
- fun_l10_n299(x)
- else
- fun_l10_n144(x)
- end
-end
-
-def fun_l9_n920(x)
- if (x < 1)
- fun_l10_n830(x)
- else
- fun_l10_n913(x)
- end
-end
-
-def fun_l9_n921(x)
- if (x < 1)
- fun_l10_n306(x)
- else
- fun_l10_n242(x)
- end
-end
-
-def fun_l9_n922(x)
- if (x < 1)
- fun_l10_n442(x)
- else
- fun_l10_n497(x)
- end
-end
-
-def fun_l9_n923(x)
- if (x < 1)
- fun_l10_n22(x)
- else
- fun_l10_n376(x)
- end
-end
-
-def fun_l9_n924(x)
- if (x < 1)
- fun_l10_n737(x)
- else
- fun_l10_n603(x)
- end
-end
-
-def fun_l9_n925(x)
- if (x < 1)
- fun_l10_n300(x)
- else
- fun_l10_n974(x)
- end
-end
-
-def fun_l9_n926(x)
- if (x < 1)
- fun_l10_n644(x)
- else
- fun_l10_n973(x)
- end
-end
-
-def fun_l9_n927(x)
- if (x < 1)
- fun_l10_n413(x)
- else
- fun_l10_n353(x)
- end
-end
-
-def fun_l9_n928(x)
- if (x < 1)
- fun_l10_n438(x)
- else
- fun_l10_n518(x)
- end
-end
-
-def fun_l9_n929(x)
- if (x < 1)
- fun_l10_n30(x)
- else
- fun_l10_n207(x)
- end
-end
-
-def fun_l9_n930(x)
- if (x < 1)
- fun_l10_n976(x)
- else
- fun_l10_n70(x)
- end
-end
-
-def fun_l9_n931(x)
- if (x < 1)
- fun_l10_n5(x)
- else
- fun_l10_n37(x)
- end
-end
-
-def fun_l9_n932(x)
- if (x < 1)
- fun_l10_n612(x)
- else
- fun_l10_n268(x)
- end
-end
-
-def fun_l9_n933(x)
- if (x < 1)
- fun_l10_n81(x)
- else
- fun_l10_n373(x)
- end
-end
-
-def fun_l9_n934(x)
- if (x < 1)
- fun_l10_n30(x)
- else
- fun_l10_n504(x)
- end
-end
-
-def fun_l9_n935(x)
- if (x < 1)
- fun_l10_n131(x)
- else
- fun_l10_n617(x)
- end
-end
-
-def fun_l9_n936(x)
- if (x < 1)
- fun_l10_n114(x)
- else
- fun_l10_n883(x)
- end
-end
-
-def fun_l9_n937(x)
- if (x < 1)
- fun_l10_n859(x)
- else
- fun_l10_n788(x)
- end
-end
-
-def fun_l9_n938(x)
- if (x < 1)
- fun_l10_n993(x)
- else
- fun_l10_n349(x)
- end
-end
-
-def fun_l9_n939(x)
- if (x < 1)
- fun_l10_n775(x)
- else
- fun_l10_n195(x)
- end
-end
-
-def fun_l9_n940(x)
- if (x < 1)
- fun_l10_n829(x)
- else
- fun_l10_n398(x)
- end
-end
-
-def fun_l9_n941(x)
- if (x < 1)
- fun_l10_n906(x)
- else
- fun_l10_n529(x)
- end
-end
-
-def fun_l9_n942(x)
- if (x < 1)
- fun_l10_n965(x)
- else
- fun_l10_n372(x)
- end
-end
-
-def fun_l9_n943(x)
- if (x < 1)
- fun_l10_n953(x)
- else
- fun_l10_n397(x)
- end
-end
-
-def fun_l9_n944(x)
- if (x < 1)
- fun_l10_n984(x)
- else
- fun_l10_n909(x)
- end
-end
-
-def fun_l9_n945(x)
- if (x < 1)
- fun_l10_n649(x)
- else
- fun_l10_n304(x)
- end
-end
-
-def fun_l9_n946(x)
- if (x < 1)
- fun_l10_n0(x)
- else
- fun_l10_n922(x)
- end
-end
-
-def fun_l9_n947(x)
- if (x < 1)
- fun_l10_n460(x)
- else
- fun_l10_n215(x)
- end
-end
-
-def fun_l9_n948(x)
- if (x < 1)
- fun_l10_n251(x)
- else
- fun_l10_n636(x)
- end
-end
-
-def fun_l9_n949(x)
- if (x < 1)
- fun_l10_n14(x)
- else
- fun_l10_n494(x)
- end
-end
-
-def fun_l9_n950(x)
- if (x < 1)
- fun_l10_n6(x)
- else
- fun_l10_n523(x)
- end
-end
-
-def fun_l9_n951(x)
- if (x < 1)
- fun_l10_n705(x)
- else
- fun_l10_n689(x)
- end
-end
-
-def fun_l9_n952(x)
- if (x < 1)
- fun_l10_n830(x)
- else
- fun_l10_n374(x)
- end
-end
-
-def fun_l9_n953(x)
- if (x < 1)
- fun_l10_n451(x)
- else
- fun_l10_n87(x)
- end
-end
-
-def fun_l9_n954(x)
- if (x < 1)
- fun_l10_n202(x)
- else
- fun_l10_n753(x)
- end
-end
-
-def fun_l9_n955(x)
- if (x < 1)
- fun_l10_n384(x)
- else
- fun_l10_n216(x)
- end
-end
-
-def fun_l9_n956(x)
- if (x < 1)
- fun_l10_n381(x)
- else
- fun_l10_n727(x)
- end
-end
-
-def fun_l9_n957(x)
- if (x < 1)
- fun_l10_n876(x)
- else
- fun_l10_n760(x)
- end
-end
-
-def fun_l9_n958(x)
- if (x < 1)
- fun_l10_n975(x)
- else
- fun_l10_n372(x)
- end
-end
-
-def fun_l9_n959(x)
- if (x < 1)
- fun_l10_n714(x)
- else
- fun_l10_n680(x)
- end
-end
-
-def fun_l9_n960(x)
- if (x < 1)
- fun_l10_n733(x)
- else
- fun_l10_n508(x)
- end
-end
-
-def fun_l9_n961(x)
- if (x < 1)
- fun_l10_n319(x)
- else
- fun_l10_n90(x)
- end
-end
-
-def fun_l9_n962(x)
- if (x < 1)
- fun_l10_n964(x)
- else
- fun_l10_n282(x)
- end
-end
-
-def fun_l9_n963(x)
- if (x < 1)
- fun_l10_n179(x)
- else
- fun_l10_n324(x)
- end
-end
-
-def fun_l9_n964(x)
- if (x < 1)
- fun_l10_n627(x)
- else
- fun_l10_n627(x)
- end
-end
-
-def fun_l9_n965(x)
- if (x < 1)
- fun_l10_n7(x)
- else
- fun_l10_n375(x)
- end
-end
-
-def fun_l9_n966(x)
- if (x < 1)
- fun_l10_n960(x)
- else
- fun_l10_n272(x)
- end
-end
-
-def fun_l9_n967(x)
- if (x < 1)
- fun_l10_n869(x)
- else
- fun_l10_n737(x)
- end
-end
-
-def fun_l9_n968(x)
- if (x < 1)
- fun_l10_n621(x)
- else
- fun_l10_n413(x)
- end
-end
-
-def fun_l9_n969(x)
- if (x < 1)
- fun_l10_n258(x)
- else
- fun_l10_n105(x)
- end
-end
-
-def fun_l9_n970(x)
- if (x < 1)
- fun_l10_n817(x)
- else
- fun_l10_n519(x)
- end
-end
-
-def fun_l9_n971(x)
- if (x < 1)
- fun_l10_n462(x)
- else
- fun_l10_n335(x)
- end
-end
-
-def fun_l9_n972(x)
- if (x < 1)
- fun_l10_n770(x)
- else
- fun_l10_n856(x)
- end
-end
-
-def fun_l9_n973(x)
- if (x < 1)
- fun_l10_n607(x)
- else
- fun_l10_n142(x)
- end
-end
-
-def fun_l9_n974(x)
- if (x < 1)
- fun_l10_n498(x)
- else
- fun_l10_n373(x)
- end
-end
-
-def fun_l9_n975(x)
- if (x < 1)
- fun_l10_n239(x)
- else
- fun_l10_n895(x)
- end
-end
-
-def fun_l9_n976(x)
- if (x < 1)
- fun_l10_n312(x)
- else
- fun_l10_n489(x)
- end
-end
-
-def fun_l9_n977(x)
- if (x < 1)
- fun_l10_n595(x)
- else
- fun_l10_n674(x)
- end
-end
-
-def fun_l9_n978(x)
- if (x < 1)
- fun_l10_n928(x)
- else
- fun_l10_n774(x)
- end
-end
-
-def fun_l9_n979(x)
- if (x < 1)
- fun_l10_n964(x)
- else
- fun_l10_n860(x)
- end
-end
-
-def fun_l9_n980(x)
- if (x < 1)
- fun_l10_n63(x)
- else
- fun_l10_n115(x)
- end
-end
-
-def fun_l9_n981(x)
- if (x < 1)
- fun_l10_n930(x)
- else
- fun_l10_n559(x)
- end
-end
-
-def fun_l9_n982(x)
- if (x < 1)
- fun_l10_n391(x)
- else
- fun_l10_n411(x)
- end
-end
-
-def fun_l9_n983(x)
- if (x < 1)
- fun_l10_n71(x)
- else
- fun_l10_n632(x)
- end
-end
-
-def fun_l9_n984(x)
- if (x < 1)
- fun_l10_n613(x)
- else
- fun_l10_n218(x)
- end
-end
-
-def fun_l9_n985(x)
- if (x < 1)
- fun_l10_n263(x)
- else
- fun_l10_n858(x)
- end
-end
-
-def fun_l9_n986(x)
- if (x < 1)
- fun_l10_n974(x)
- else
- fun_l10_n824(x)
- end
-end
-
-def fun_l9_n987(x)
- if (x < 1)
- fun_l10_n636(x)
- else
- fun_l10_n55(x)
- end
-end
-
-def fun_l9_n988(x)
- if (x < 1)
- fun_l10_n367(x)
- else
- fun_l10_n878(x)
- end
-end
-
-def fun_l9_n989(x)
- if (x < 1)
- fun_l10_n316(x)
- else
- fun_l10_n800(x)
- end
-end
-
-def fun_l9_n990(x)
- if (x < 1)
- fun_l10_n581(x)
- else
- fun_l10_n511(x)
- end
-end
-
-def fun_l9_n991(x)
- if (x < 1)
- fun_l10_n667(x)
- else
- fun_l10_n566(x)
- end
-end
-
-def fun_l9_n992(x)
- if (x < 1)
- fun_l10_n144(x)
- else
- fun_l10_n51(x)
- end
-end
-
-def fun_l9_n993(x)
- if (x < 1)
- fun_l10_n652(x)
- else
- fun_l10_n436(x)
- end
-end
-
-def fun_l9_n994(x)
- if (x < 1)
- fun_l10_n283(x)
- else
- fun_l10_n480(x)
- end
-end
-
-def fun_l9_n995(x)
- if (x < 1)
- fun_l10_n908(x)
- else
- fun_l10_n86(x)
- end
-end
-
-def fun_l9_n996(x)
- if (x < 1)
- fun_l10_n43(x)
- else
- fun_l10_n466(x)
- end
-end
-
-def fun_l9_n997(x)
- if (x < 1)
- fun_l10_n968(x)
- else
- fun_l10_n97(x)
- end
-end
-
-def fun_l9_n998(x)
- if (x < 1)
- fun_l10_n38(x)
- else
- fun_l10_n78(x)
- end
-end
-
-def fun_l9_n999(x)
- if (x < 1)
- fun_l10_n947(x)
- else
- fun_l10_n322(x)
- end
-end
-
-def fun_l10_n0(x)
- if (x < 1)
- fun_l11_n424(x)
- else
- fun_l11_n206(x)
- end
-end
-
-def fun_l10_n1(x)
- if (x < 1)
- fun_l11_n263(x)
- else
- fun_l11_n886(x)
- end
-end
-
-def fun_l10_n2(x)
- if (x < 1)
- fun_l11_n31(x)
- else
- fun_l11_n693(x)
- end
-end
-
-def fun_l10_n3(x)
- if (x < 1)
- fun_l11_n924(x)
- else
- fun_l11_n585(x)
- end
-end
-
-def fun_l10_n4(x)
- if (x < 1)
- fun_l11_n552(x)
- else
- fun_l11_n904(x)
- end
-end
-
-def fun_l10_n5(x)
- if (x < 1)
- fun_l11_n912(x)
- else
- fun_l11_n127(x)
- end
-end
-
-def fun_l10_n6(x)
- if (x < 1)
- fun_l11_n284(x)
- else
- fun_l11_n952(x)
- end
-end
-
-def fun_l10_n7(x)
- if (x < 1)
- fun_l11_n294(x)
- else
- fun_l11_n527(x)
- end
-end
-
-def fun_l10_n8(x)
- if (x < 1)
- fun_l11_n675(x)
- else
- fun_l11_n457(x)
- end
-end
-
-def fun_l10_n9(x)
- if (x < 1)
- fun_l11_n908(x)
- else
- fun_l11_n963(x)
- end
-end
-
-def fun_l10_n10(x)
- if (x < 1)
- fun_l11_n361(x)
- else
- fun_l11_n839(x)
- end
-end
-
-def fun_l10_n11(x)
- if (x < 1)
- fun_l11_n402(x)
- else
- fun_l11_n228(x)
- end
-end
-
-def fun_l10_n12(x)
- if (x < 1)
- fun_l11_n871(x)
- else
- fun_l11_n194(x)
- end
-end
-
-def fun_l10_n13(x)
- if (x < 1)
- fun_l11_n255(x)
- else
- fun_l11_n816(x)
- end
-end
-
-def fun_l10_n14(x)
- if (x < 1)
- fun_l11_n987(x)
- else
- fun_l11_n870(x)
- end
-end
-
-def fun_l10_n15(x)
- if (x < 1)
- fun_l11_n538(x)
- else
- fun_l11_n837(x)
- end
-end
-
-def fun_l10_n16(x)
- if (x < 1)
- fun_l11_n205(x)
- else
- fun_l11_n831(x)
- end
-end
-
-def fun_l10_n17(x)
- if (x < 1)
- fun_l11_n737(x)
- else
- fun_l11_n242(x)
- end
-end
-
-def fun_l10_n18(x)
- if (x < 1)
- fun_l11_n18(x)
- else
- fun_l11_n103(x)
- end
-end
-
-def fun_l10_n19(x)
- if (x < 1)
- fun_l11_n928(x)
- else
- fun_l11_n300(x)
- end
-end
-
-def fun_l10_n20(x)
- if (x < 1)
- fun_l11_n816(x)
- else
- fun_l11_n225(x)
- end
-end
-
-def fun_l10_n21(x)
- if (x < 1)
- fun_l11_n52(x)
- else
- fun_l11_n901(x)
- end
-end
-
-def fun_l10_n22(x)
- if (x < 1)
- fun_l11_n316(x)
- else
- fun_l11_n556(x)
- end
-end
-
-def fun_l10_n23(x)
- if (x < 1)
- fun_l11_n103(x)
- else
- fun_l11_n223(x)
- end
-end
-
-def fun_l10_n24(x)
- if (x < 1)
- fun_l11_n14(x)
- else
- fun_l11_n875(x)
- end
-end
-
-def fun_l10_n25(x)
- if (x < 1)
- fun_l11_n359(x)
- else
- fun_l11_n504(x)
- end
-end
-
-def fun_l10_n26(x)
- if (x < 1)
- fun_l11_n416(x)
- else
- fun_l11_n172(x)
- end
-end
-
-def fun_l10_n27(x)
- if (x < 1)
- fun_l11_n142(x)
- else
- fun_l11_n238(x)
- end
-end
-
-def fun_l10_n28(x)
- if (x < 1)
- fun_l11_n319(x)
- else
- fun_l11_n350(x)
- end
-end
-
-def fun_l10_n29(x)
- if (x < 1)
- fun_l11_n53(x)
- else
- fun_l11_n162(x)
- end
-end
-
-def fun_l10_n30(x)
- if (x < 1)
- fun_l11_n121(x)
- else
- fun_l11_n39(x)
- end
-end
-
-def fun_l10_n31(x)
- if (x < 1)
- fun_l11_n447(x)
- else
- fun_l11_n259(x)
- end
-end
-
-def fun_l10_n32(x)
- if (x < 1)
- fun_l11_n931(x)
- else
- fun_l11_n571(x)
- end
-end
-
-def fun_l10_n33(x)
- if (x < 1)
- fun_l11_n705(x)
- else
- fun_l11_n544(x)
- end
-end
-
-def fun_l10_n34(x)
- if (x < 1)
- fun_l11_n990(x)
- else
- fun_l11_n695(x)
- end
-end
-
-def fun_l10_n35(x)
- if (x < 1)
- fun_l11_n197(x)
- else
- fun_l11_n391(x)
- end
-end
-
-def fun_l10_n36(x)
- if (x < 1)
- fun_l11_n686(x)
- else
- fun_l11_n785(x)
- end
-end
-
-def fun_l10_n37(x)
- if (x < 1)
- fun_l11_n466(x)
- else
- fun_l11_n783(x)
- end
-end
-
-def fun_l10_n38(x)
- if (x < 1)
- fun_l11_n351(x)
- else
- fun_l11_n732(x)
- end
-end
-
-def fun_l10_n39(x)
- if (x < 1)
- fun_l11_n22(x)
- else
- fun_l11_n995(x)
- end
-end
-
-def fun_l10_n40(x)
- if (x < 1)
- fun_l11_n264(x)
- else
- fun_l11_n662(x)
- end
-end
-
-def fun_l10_n41(x)
- if (x < 1)
- fun_l11_n91(x)
- else
- fun_l11_n673(x)
- end
-end
-
-def fun_l10_n42(x)
- if (x < 1)
- fun_l11_n993(x)
- else
- fun_l11_n839(x)
- end
-end
-
-def fun_l10_n43(x)
- if (x < 1)
- fun_l11_n158(x)
- else
- fun_l11_n774(x)
- end
-end
-
-def fun_l10_n44(x)
- if (x < 1)
- fun_l11_n977(x)
- else
- fun_l11_n321(x)
- end
-end
-
-def fun_l10_n45(x)
- if (x < 1)
- fun_l11_n121(x)
- else
- fun_l11_n184(x)
- end
-end
-
-def fun_l10_n46(x)
- if (x < 1)
- fun_l11_n446(x)
- else
- fun_l11_n426(x)
- end
-end
-
-def fun_l10_n47(x)
- if (x < 1)
- fun_l11_n524(x)
- else
- fun_l11_n123(x)
- end
-end
-
-def fun_l10_n48(x)
- if (x < 1)
- fun_l11_n435(x)
- else
- fun_l11_n560(x)
- end
-end
-
-def fun_l10_n49(x)
- if (x < 1)
- fun_l11_n94(x)
- else
- fun_l11_n731(x)
- end
-end
-
-def fun_l10_n50(x)
- if (x < 1)
- fun_l11_n177(x)
- else
- fun_l11_n902(x)
- end
-end
-
-def fun_l10_n51(x)
- if (x < 1)
- fun_l11_n648(x)
- else
- fun_l11_n807(x)
- end
-end
-
-def fun_l10_n52(x)
- if (x < 1)
- fun_l11_n414(x)
- else
- fun_l11_n335(x)
- end
-end
-
-def fun_l10_n53(x)
- if (x < 1)
- fun_l11_n754(x)
- else
- fun_l11_n789(x)
- end
-end
-
-def fun_l10_n54(x)
- if (x < 1)
- fun_l11_n843(x)
- else
- fun_l11_n980(x)
- end
-end
-
-def fun_l10_n55(x)
- if (x < 1)
- fun_l11_n706(x)
- else
- fun_l11_n160(x)
- end
-end
-
-def fun_l10_n56(x)
- if (x < 1)
- fun_l11_n564(x)
- else
- fun_l11_n672(x)
- end
-end
-
-def fun_l10_n57(x)
- if (x < 1)
- fun_l11_n158(x)
- else
- fun_l11_n154(x)
- end
-end
-
-def fun_l10_n58(x)
- if (x < 1)
- fun_l11_n120(x)
- else
- fun_l11_n970(x)
- end
-end
-
-def fun_l10_n59(x)
- if (x < 1)
- fun_l11_n561(x)
- else
- fun_l11_n872(x)
- end
-end
-
-def fun_l10_n60(x)
- if (x < 1)
- fun_l11_n93(x)
- else
- fun_l11_n723(x)
- end
-end
-
-def fun_l10_n61(x)
- if (x < 1)
- fun_l11_n921(x)
- else
- fun_l11_n578(x)
- end
-end
-
-def fun_l10_n62(x)
- if (x < 1)
- fun_l11_n527(x)
- else
- fun_l11_n118(x)
- end
-end
-
-def fun_l10_n63(x)
- if (x < 1)
- fun_l11_n225(x)
- else
- fun_l11_n937(x)
- end
-end
-
-def fun_l10_n64(x)
- if (x < 1)
- fun_l11_n634(x)
- else
- fun_l11_n415(x)
- end
-end
-
-def fun_l10_n65(x)
- if (x < 1)
- fun_l11_n718(x)
- else
- fun_l11_n958(x)
- end
-end
-
-def fun_l10_n66(x)
- if (x < 1)
- fun_l11_n972(x)
- else
- fun_l11_n453(x)
- end
-end
-
-def fun_l10_n67(x)
- if (x < 1)
- fun_l11_n85(x)
- else
- fun_l11_n934(x)
- end
-end
-
-def fun_l10_n68(x)
- if (x < 1)
- fun_l11_n386(x)
- else
- fun_l11_n138(x)
- end
-end
-
-def fun_l10_n69(x)
- if (x < 1)
- fun_l11_n312(x)
- else
- fun_l11_n62(x)
- end
-end
-
-def fun_l10_n70(x)
- if (x < 1)
- fun_l11_n591(x)
- else
- fun_l11_n906(x)
- end
-end
-
-def fun_l10_n71(x)
- if (x < 1)
- fun_l11_n571(x)
- else
- fun_l11_n429(x)
- end
-end
-
-def fun_l10_n72(x)
- if (x < 1)
- fun_l11_n996(x)
- else
- fun_l11_n932(x)
- end
-end
-
-def fun_l10_n73(x)
- if (x < 1)
- fun_l11_n691(x)
- else
- fun_l11_n116(x)
- end
-end
-
-def fun_l10_n74(x)
- if (x < 1)
- fun_l11_n670(x)
- else
- fun_l11_n865(x)
- end
-end
-
-def fun_l10_n75(x)
- if (x < 1)
- fun_l11_n568(x)
- else
- fun_l11_n164(x)
- end
-end
-
-def fun_l10_n76(x)
- if (x < 1)
- fun_l11_n747(x)
- else
- fun_l11_n235(x)
- end
-end
-
-def fun_l10_n77(x)
- if (x < 1)
- fun_l11_n402(x)
- else
- fun_l11_n670(x)
- end
-end
-
-def fun_l10_n78(x)
- if (x < 1)
- fun_l11_n525(x)
- else
- fun_l11_n675(x)
- end
-end
-
-def fun_l10_n79(x)
- if (x < 1)
- fun_l11_n6(x)
- else
- fun_l11_n238(x)
- end
-end
-
-def fun_l10_n80(x)
- if (x < 1)
- fun_l11_n905(x)
- else
- fun_l11_n170(x)
- end
-end
-
-def fun_l10_n81(x)
- if (x < 1)
- fun_l11_n610(x)
- else
- fun_l11_n527(x)
- end
-end
-
-def fun_l10_n82(x)
- if (x < 1)
- fun_l11_n796(x)
- else
- fun_l11_n749(x)
- end
-end
-
-def fun_l10_n83(x)
- if (x < 1)
- fun_l11_n634(x)
- else
- fun_l11_n49(x)
- end
-end
-
-def fun_l10_n84(x)
- if (x < 1)
- fun_l11_n376(x)
- else
- fun_l11_n852(x)
- end
-end
-
-def fun_l10_n85(x)
- if (x < 1)
- fun_l11_n593(x)
- else
- fun_l11_n752(x)
- end
-end
-
-def fun_l10_n86(x)
- if (x < 1)
- fun_l11_n821(x)
- else
- fun_l11_n892(x)
- end
-end
-
-def fun_l10_n87(x)
- if (x < 1)
- fun_l11_n950(x)
- else
- fun_l11_n309(x)
- end
-end
-
-def fun_l10_n88(x)
- if (x < 1)
- fun_l11_n360(x)
- else
- fun_l11_n134(x)
- end
-end
-
-def fun_l10_n89(x)
- if (x < 1)
- fun_l11_n935(x)
- else
- fun_l11_n241(x)
- end
-end
-
-def fun_l10_n90(x)
- if (x < 1)
- fun_l11_n524(x)
- else
- fun_l11_n120(x)
- end
-end
-
-def fun_l10_n91(x)
- if (x < 1)
- fun_l11_n25(x)
- else
- fun_l11_n357(x)
- end
-end
-
-def fun_l10_n92(x)
- if (x < 1)
- fun_l11_n248(x)
- else
- fun_l11_n212(x)
- end
-end
-
-def fun_l10_n93(x)
- if (x < 1)
- fun_l11_n860(x)
- else
- fun_l11_n733(x)
- end
-end
-
-def fun_l10_n94(x)
- if (x < 1)
- fun_l11_n147(x)
- else
- fun_l11_n907(x)
- end
-end
-
-def fun_l10_n95(x)
- if (x < 1)
- fun_l11_n758(x)
- else
- fun_l11_n62(x)
- end
-end
-
-def fun_l10_n96(x)
- if (x < 1)
- fun_l11_n205(x)
- else
- fun_l11_n54(x)
- end
-end
-
-def fun_l10_n97(x)
- if (x < 1)
- fun_l11_n8(x)
- else
- fun_l11_n813(x)
- end
-end
-
-def fun_l10_n98(x)
- if (x < 1)
- fun_l11_n296(x)
- else
- fun_l11_n693(x)
- end
-end
-
-def fun_l10_n99(x)
- if (x < 1)
- fun_l11_n181(x)
- else
- fun_l11_n709(x)
- end
-end
-
-def fun_l10_n100(x)
- if (x < 1)
- fun_l11_n109(x)
- else
- fun_l11_n560(x)
- end
-end
-
-def fun_l10_n101(x)
- if (x < 1)
- fun_l11_n290(x)
- else
- fun_l11_n693(x)
- end
-end
-
-def fun_l10_n102(x)
- if (x < 1)
- fun_l11_n826(x)
- else
- fun_l11_n813(x)
- end
-end
-
-def fun_l10_n103(x)
- if (x < 1)
- fun_l11_n3(x)
- else
- fun_l11_n787(x)
- end
-end
-
-def fun_l10_n104(x)
- if (x < 1)
- fun_l11_n477(x)
- else
- fun_l11_n336(x)
- end
-end
-
-def fun_l10_n105(x)
- if (x < 1)
- fun_l11_n131(x)
- else
- fun_l11_n500(x)
- end
-end
-
-def fun_l10_n106(x)
- if (x < 1)
- fun_l11_n278(x)
- else
- fun_l11_n948(x)
- end
-end
-
-def fun_l10_n107(x)
- if (x < 1)
- fun_l11_n950(x)
- else
- fun_l11_n848(x)
- end
-end
-
-def fun_l10_n108(x)
- if (x < 1)
- fun_l11_n490(x)
- else
- fun_l11_n1(x)
- end
-end
-
-def fun_l10_n109(x)
- if (x < 1)
- fun_l11_n297(x)
- else
- fun_l11_n902(x)
- end
-end
-
-def fun_l10_n110(x)
- if (x < 1)
- fun_l11_n808(x)
- else
- fun_l11_n697(x)
- end
-end
-
-def fun_l10_n111(x)
- if (x < 1)
- fun_l11_n330(x)
- else
- fun_l11_n424(x)
- end
-end
-
-def fun_l10_n112(x)
- if (x < 1)
- fun_l11_n254(x)
- else
- fun_l11_n662(x)
- end
-end
-
-def fun_l10_n113(x)
- if (x < 1)
- fun_l11_n811(x)
- else
- fun_l11_n196(x)
- end
-end
-
-def fun_l10_n114(x)
- if (x < 1)
- fun_l11_n868(x)
- else
- fun_l11_n812(x)
- end
-end
-
-def fun_l10_n115(x)
- if (x < 1)
- fun_l11_n308(x)
- else
- fun_l11_n184(x)
- end
-end
-
-def fun_l10_n116(x)
- if (x < 1)
- fun_l11_n64(x)
- else
- fun_l11_n906(x)
- end
-end
-
-def fun_l10_n117(x)
- if (x < 1)
- fun_l11_n339(x)
- else
- fun_l11_n338(x)
- end
-end
-
-def fun_l10_n118(x)
- if (x < 1)
- fun_l11_n993(x)
- else
- fun_l11_n915(x)
- end
-end
-
-def fun_l10_n119(x)
- if (x < 1)
- fun_l11_n729(x)
- else
- fun_l11_n472(x)
- end
-end
-
-def fun_l10_n120(x)
- if (x < 1)
- fun_l11_n646(x)
- else
- fun_l11_n83(x)
- end
-end
-
-def fun_l10_n121(x)
- if (x < 1)
- fun_l11_n294(x)
- else
- fun_l11_n208(x)
- end
-end
-
-def fun_l10_n122(x)
- if (x < 1)
- fun_l11_n309(x)
- else
- fun_l11_n52(x)
- end
-end
-
-def fun_l10_n123(x)
- if (x < 1)
- fun_l11_n5(x)
- else
- fun_l11_n124(x)
- end
-end
-
-def fun_l10_n124(x)
- if (x < 1)
- fun_l11_n288(x)
- else
- fun_l11_n731(x)
- end
-end
-
-def fun_l10_n125(x)
- if (x < 1)
- fun_l11_n835(x)
- else
- fun_l11_n381(x)
- end
-end
-
-def fun_l10_n126(x)
- if (x < 1)
- fun_l11_n269(x)
- else
- fun_l11_n104(x)
- end
-end
-
-def fun_l10_n127(x)
- if (x < 1)
- fun_l11_n377(x)
- else
- fun_l11_n650(x)
- end
-end
-
-def fun_l10_n128(x)
- if (x < 1)
- fun_l11_n749(x)
- else
- fun_l11_n223(x)
- end
-end
-
-def fun_l10_n129(x)
- if (x < 1)
- fun_l11_n493(x)
- else
- fun_l11_n834(x)
- end
-end
-
-def fun_l10_n130(x)
- if (x < 1)
- fun_l11_n826(x)
- else
- fun_l11_n857(x)
- end
-end
-
-def fun_l10_n131(x)
- if (x < 1)
- fun_l11_n19(x)
- else
- fun_l11_n932(x)
- end
-end
-
-def fun_l10_n132(x)
- if (x < 1)
- fun_l11_n585(x)
- else
- fun_l11_n13(x)
- end
-end
-
-def fun_l10_n133(x)
- if (x < 1)
- fun_l11_n91(x)
- else
- fun_l11_n748(x)
- end
-end
-
-def fun_l10_n134(x)
- if (x < 1)
- fun_l11_n218(x)
- else
- fun_l11_n343(x)
- end
-end
-
-def fun_l10_n135(x)
- if (x < 1)
- fun_l11_n386(x)
- else
- fun_l11_n655(x)
- end
-end
-
-def fun_l10_n136(x)
- if (x < 1)
- fun_l11_n43(x)
- else
- fun_l11_n964(x)
- end
-end
-
-def fun_l10_n137(x)
- if (x < 1)
- fun_l11_n50(x)
- else
- fun_l11_n836(x)
- end
-end
-
-def fun_l10_n138(x)
- if (x < 1)
- fun_l11_n915(x)
- else
- fun_l11_n262(x)
- end
-end
-
-def fun_l10_n139(x)
- if (x < 1)
- fun_l11_n187(x)
- else
- fun_l11_n321(x)
- end
-end
-
-def fun_l10_n140(x)
- if (x < 1)
- fun_l11_n473(x)
- else
- fun_l11_n771(x)
- end
-end
-
-def fun_l10_n141(x)
- if (x < 1)
- fun_l11_n125(x)
- else
- fun_l11_n118(x)
- end
-end
-
-def fun_l10_n142(x)
- if (x < 1)
- fun_l11_n993(x)
- else
- fun_l11_n178(x)
- end
-end
-
-def fun_l10_n143(x)
- if (x < 1)
- fun_l11_n223(x)
- else
- fun_l11_n509(x)
- end
-end
-
-def fun_l10_n144(x)
- if (x < 1)
- fun_l11_n62(x)
- else
- fun_l11_n455(x)
- end
-end
-
-def fun_l10_n145(x)
- if (x < 1)
- fun_l11_n155(x)
- else
- fun_l11_n486(x)
- end
-end
-
-def fun_l10_n146(x)
- if (x < 1)
- fun_l11_n414(x)
- else
- fun_l11_n384(x)
- end
-end
-
-def fun_l10_n147(x)
- if (x < 1)
- fun_l11_n840(x)
- else
- fun_l11_n287(x)
- end
-end
-
-def fun_l10_n148(x)
- if (x < 1)
- fun_l11_n605(x)
- else
- fun_l11_n283(x)
- end
-end
-
-def fun_l10_n149(x)
- if (x < 1)
- fun_l11_n101(x)
- else
- fun_l11_n710(x)
- end
-end
-
-def fun_l10_n150(x)
- if (x < 1)
- fun_l11_n51(x)
- else
- fun_l11_n304(x)
- end
-end
-
-def fun_l10_n151(x)
- if (x < 1)
- fun_l11_n501(x)
- else
- fun_l11_n789(x)
- end
-end
-
-def fun_l10_n152(x)
- if (x < 1)
- fun_l11_n265(x)
- else
- fun_l11_n304(x)
- end
-end
-
-def fun_l10_n153(x)
- if (x < 1)
- fun_l11_n500(x)
- else
- fun_l11_n32(x)
- end
-end
-
-def fun_l10_n154(x)
- if (x < 1)
- fun_l11_n464(x)
- else
- fun_l11_n212(x)
- end
-end
-
-def fun_l10_n155(x)
- if (x < 1)
- fun_l11_n729(x)
- else
- fun_l11_n805(x)
- end
-end
-
-def fun_l10_n156(x)
- if (x < 1)
- fun_l11_n225(x)
- else
- fun_l11_n241(x)
- end
-end
-
-def fun_l10_n157(x)
- if (x < 1)
- fun_l11_n600(x)
- else
- fun_l11_n424(x)
- end
-end
-
-def fun_l10_n158(x)
- if (x < 1)
- fun_l11_n684(x)
- else
- fun_l11_n898(x)
- end
-end
-
-def fun_l10_n159(x)
- if (x < 1)
- fun_l11_n354(x)
- else
- fun_l11_n909(x)
- end
-end
-
-def fun_l10_n160(x)
- if (x < 1)
- fun_l11_n879(x)
- else
- fun_l11_n917(x)
- end
-end
-
-def fun_l10_n161(x)
- if (x < 1)
- fun_l11_n547(x)
- else
- fun_l11_n333(x)
- end
-end
-
-def fun_l10_n162(x)
- if (x < 1)
- fun_l11_n769(x)
- else
- fun_l11_n846(x)
- end
-end
-
-def fun_l10_n163(x)
- if (x < 1)
- fun_l11_n292(x)
- else
- fun_l11_n526(x)
- end
-end
-
-def fun_l10_n164(x)
- if (x < 1)
- fun_l11_n355(x)
- else
- fun_l11_n783(x)
- end
-end
-
-def fun_l10_n165(x)
- if (x < 1)
- fun_l11_n413(x)
- else
- fun_l11_n570(x)
- end
-end
-
-def fun_l10_n166(x)
- if (x < 1)
- fun_l11_n535(x)
- else
- fun_l11_n953(x)
- end
-end
-
-def fun_l10_n167(x)
- if (x < 1)
- fun_l11_n661(x)
- else
- fun_l11_n178(x)
- end
-end
-
-def fun_l10_n168(x)
- if (x < 1)
- fun_l11_n749(x)
- else
- fun_l11_n853(x)
- end
-end
-
-def fun_l10_n169(x)
- if (x < 1)
- fun_l11_n208(x)
- else
- fun_l11_n378(x)
- end
-end
-
-def fun_l10_n170(x)
- if (x < 1)
- fun_l11_n385(x)
- else
- fun_l11_n811(x)
- end
-end
-
-def fun_l10_n171(x)
- if (x < 1)
- fun_l11_n960(x)
- else
- fun_l11_n631(x)
- end
-end
-
-def fun_l10_n172(x)
- if (x < 1)
- fun_l11_n104(x)
- else
- fun_l11_n667(x)
- end
-end
-
-def fun_l10_n173(x)
- if (x < 1)
- fun_l11_n532(x)
- else
- fun_l11_n169(x)
- end
-end
-
-def fun_l10_n174(x)
- if (x < 1)
- fun_l11_n794(x)
- else
- fun_l11_n761(x)
- end
-end
-
-def fun_l10_n175(x)
- if (x < 1)
- fun_l11_n306(x)
- else
- fun_l11_n369(x)
- end
-end
-
-def fun_l10_n176(x)
- if (x < 1)
- fun_l11_n693(x)
- else
- fun_l11_n254(x)
- end
-end
-
-def fun_l10_n177(x)
- if (x < 1)
- fun_l11_n927(x)
- else
- fun_l11_n194(x)
- end
-end
-
-def fun_l10_n178(x)
- if (x < 1)
- fun_l11_n197(x)
- else
- fun_l11_n136(x)
- end
-end
-
-def fun_l10_n179(x)
- if (x < 1)
- fun_l11_n482(x)
- else
- fun_l11_n182(x)
- end
-end
-
-def fun_l10_n180(x)
- if (x < 1)
- fun_l11_n20(x)
- else
- fun_l11_n978(x)
- end
-end
-
-def fun_l10_n181(x)
- if (x < 1)
- fun_l11_n101(x)
- else
- fun_l11_n92(x)
- end
-end
-
-def fun_l10_n182(x)
- if (x < 1)
- fun_l11_n179(x)
- else
- fun_l11_n634(x)
- end
-end
-
-def fun_l10_n183(x)
- if (x < 1)
- fun_l11_n221(x)
- else
- fun_l11_n275(x)
- end
-end
-
-def fun_l10_n184(x)
- if (x < 1)
- fun_l11_n826(x)
- else
- fun_l11_n630(x)
- end
-end
-
-def fun_l10_n185(x)
- if (x < 1)
- fun_l11_n706(x)
- else
- fun_l11_n30(x)
- end
-end
-
-def fun_l10_n186(x)
- if (x < 1)
- fun_l11_n491(x)
- else
- fun_l11_n182(x)
- end
-end
-
-def fun_l10_n187(x)
- if (x < 1)
- fun_l11_n404(x)
- else
- fun_l11_n812(x)
- end
-end
-
-def fun_l10_n188(x)
- if (x < 1)
- fun_l11_n41(x)
- else
- fun_l11_n39(x)
- end
-end
-
-def fun_l10_n189(x)
- if (x < 1)
- fun_l11_n620(x)
- else
- fun_l11_n659(x)
- end
-end
-
-def fun_l10_n190(x)
- if (x < 1)
- fun_l11_n717(x)
- else
- fun_l11_n846(x)
- end
-end
-
-def fun_l10_n191(x)
- if (x < 1)
- fun_l11_n328(x)
- else
- fun_l11_n223(x)
- end
-end
-
-def fun_l10_n192(x)
- if (x < 1)
- fun_l11_n280(x)
- else
- fun_l11_n360(x)
- end
-end
-
-def fun_l10_n193(x)
- if (x < 1)
- fun_l11_n798(x)
- else
- fun_l11_n303(x)
- end
-end
-
-def fun_l10_n194(x)
- if (x < 1)
- fun_l11_n617(x)
- else
- fun_l11_n207(x)
- end
-end
-
-def fun_l10_n195(x)
- if (x < 1)
- fun_l11_n918(x)
- else
- fun_l11_n398(x)
- end
-end
-
-def fun_l10_n196(x)
- if (x < 1)
- fun_l11_n998(x)
- else
- fun_l11_n31(x)
- end
-end
-
-def fun_l10_n197(x)
- if (x < 1)
- fun_l11_n740(x)
- else
- fun_l11_n220(x)
- end
-end
-
-def fun_l10_n198(x)
- if (x < 1)
- fun_l11_n847(x)
- else
- fun_l11_n915(x)
- end
-end
-
-def fun_l10_n199(x)
- if (x < 1)
- fun_l11_n946(x)
- else
- fun_l11_n300(x)
- end
-end
-
-def fun_l10_n200(x)
- if (x < 1)
- fun_l11_n494(x)
- else
- fun_l11_n316(x)
- end
-end
-
-def fun_l10_n201(x)
- if (x < 1)
- fun_l11_n871(x)
- else
- fun_l11_n310(x)
- end
-end
-
-def fun_l10_n202(x)
- if (x < 1)
- fun_l11_n660(x)
- else
- fun_l11_n538(x)
- end
-end
-
-def fun_l10_n203(x)
- if (x < 1)
- fun_l11_n478(x)
- else
- fun_l11_n618(x)
- end
-end
-
-def fun_l10_n204(x)
- if (x < 1)
- fun_l11_n134(x)
- else
- fun_l11_n224(x)
- end
-end
-
-def fun_l10_n205(x)
- if (x < 1)
- fun_l11_n128(x)
- else
- fun_l11_n279(x)
- end
-end
-
-def fun_l10_n206(x)
- if (x < 1)
- fun_l11_n718(x)
- else
- fun_l11_n514(x)
- end
-end
-
-def fun_l10_n207(x)
- if (x < 1)
- fun_l11_n466(x)
- else
- fun_l11_n979(x)
- end
-end
-
-def fun_l10_n208(x)
- if (x < 1)
- fun_l11_n990(x)
- else
- fun_l11_n881(x)
- end
-end
-
-def fun_l10_n209(x)
- if (x < 1)
- fun_l11_n860(x)
- else
- fun_l11_n995(x)
- end
-end
-
-def fun_l10_n210(x)
- if (x < 1)
- fun_l11_n269(x)
- else
- fun_l11_n846(x)
- end
-end
-
-def fun_l10_n211(x)
- if (x < 1)
- fun_l11_n155(x)
- else
- fun_l11_n97(x)
- end
-end
-
-def fun_l10_n212(x)
- if (x < 1)
- fun_l11_n377(x)
- else
- fun_l11_n749(x)
- end
-end
-
-def fun_l10_n213(x)
- if (x < 1)
- fun_l11_n647(x)
- else
- fun_l11_n276(x)
- end
-end
-
-def fun_l10_n214(x)
- if (x < 1)
- fun_l11_n290(x)
- else
- fun_l11_n325(x)
- end
-end
-
-def fun_l10_n215(x)
- if (x < 1)
- fun_l11_n445(x)
- else
- fun_l11_n538(x)
- end
-end
-
-def fun_l10_n216(x)
- if (x < 1)
- fun_l11_n433(x)
- else
- fun_l11_n937(x)
- end
-end
-
-def fun_l10_n217(x)
- if (x < 1)
- fun_l11_n288(x)
- else
- fun_l11_n897(x)
- end
-end
-
-def fun_l10_n218(x)
- if (x < 1)
- fun_l11_n386(x)
- else
- fun_l11_n545(x)
- end
-end
-
-def fun_l10_n219(x)
- if (x < 1)
- fun_l11_n678(x)
- else
- fun_l11_n433(x)
- end
-end
-
-def fun_l10_n220(x)
- if (x < 1)
- fun_l11_n203(x)
- else
- fun_l11_n163(x)
- end
-end
-
-def fun_l10_n221(x)
- if (x < 1)
- fun_l11_n134(x)
- else
- fun_l11_n545(x)
- end
-end
-
-def fun_l10_n222(x)
- if (x < 1)
- fun_l11_n556(x)
- else
- fun_l11_n537(x)
- end
-end
-
-def fun_l10_n223(x)
- if (x < 1)
- fun_l11_n743(x)
- else
- fun_l11_n88(x)
- end
-end
-
-def fun_l10_n224(x)
- if (x < 1)
- fun_l11_n678(x)
- else
- fun_l11_n643(x)
- end
-end
-
-def fun_l10_n225(x)
- if (x < 1)
- fun_l11_n13(x)
- else
- fun_l11_n219(x)
- end
-end
-
-def fun_l10_n226(x)
- if (x < 1)
- fun_l11_n454(x)
- else
- fun_l11_n691(x)
- end
-end
-
-def fun_l10_n227(x)
- if (x < 1)
- fun_l11_n117(x)
- else
- fun_l11_n433(x)
- end
-end
-
-def fun_l10_n228(x)
- if (x < 1)
- fun_l11_n559(x)
- else
- fun_l11_n884(x)
- end
-end
-
-def fun_l10_n229(x)
- if (x < 1)
- fun_l11_n58(x)
- else
- fun_l11_n620(x)
- end
-end
-
-def fun_l10_n230(x)
- if (x < 1)
- fun_l11_n688(x)
- else
- fun_l11_n76(x)
- end
-end
-
-def fun_l10_n231(x)
- if (x < 1)
- fun_l11_n726(x)
- else
- fun_l11_n644(x)
- end
-end
-
-def fun_l10_n232(x)
- if (x < 1)
- fun_l11_n918(x)
- else
- fun_l11_n0(x)
- end
-end
-
-def fun_l10_n233(x)
- if (x < 1)
- fun_l11_n761(x)
- else
- fun_l11_n487(x)
- end
-end
-
-def fun_l10_n234(x)
- if (x < 1)
- fun_l11_n657(x)
- else
- fun_l11_n107(x)
- end
-end
-
-def fun_l10_n235(x)
- if (x < 1)
- fun_l11_n897(x)
- else
- fun_l11_n881(x)
- end
-end
-
-def fun_l10_n236(x)
- if (x < 1)
- fun_l11_n851(x)
- else
- fun_l11_n593(x)
- end
-end
-
-def fun_l10_n237(x)
- if (x < 1)
- fun_l11_n319(x)
- else
- fun_l11_n983(x)
- end
-end
-
-def fun_l10_n238(x)
- if (x < 1)
- fun_l11_n648(x)
- else
- fun_l11_n870(x)
- end
-end
-
-def fun_l10_n239(x)
- if (x < 1)
- fun_l11_n195(x)
- else
- fun_l11_n378(x)
- end
-end
-
-def fun_l10_n240(x)
- if (x < 1)
- fun_l11_n398(x)
- else
- fun_l11_n284(x)
- end
-end
-
-def fun_l10_n241(x)
- if (x < 1)
- fun_l11_n118(x)
- else
- fun_l11_n417(x)
- end
-end
-
-def fun_l10_n242(x)
- if (x < 1)
- fun_l11_n220(x)
- else
- fun_l11_n445(x)
- end
-end
-
-def fun_l10_n243(x)
- if (x < 1)
- fun_l11_n783(x)
- else
- fun_l11_n989(x)
- end
-end
-
-def fun_l10_n244(x)
- if (x < 1)
- fun_l11_n229(x)
- else
- fun_l11_n439(x)
- end
-end
-
-def fun_l10_n245(x)
- if (x < 1)
- fun_l11_n78(x)
- else
- fun_l11_n272(x)
- end
-end
-
-def fun_l10_n246(x)
- if (x < 1)
- fun_l11_n481(x)
- else
- fun_l11_n499(x)
- end
-end
-
-def fun_l10_n247(x)
- if (x < 1)
- fun_l11_n213(x)
- else
- fun_l11_n471(x)
- end
-end
-
-def fun_l10_n248(x)
- if (x < 1)
- fun_l11_n45(x)
- else
- fun_l11_n919(x)
- end
-end
-
-def fun_l10_n249(x)
- if (x < 1)
- fun_l11_n13(x)
- else
- fun_l11_n526(x)
- end
-end
-
-def fun_l10_n250(x)
- if (x < 1)
- fun_l11_n997(x)
- else
- fun_l11_n112(x)
- end
-end
-
-def fun_l10_n251(x)
- if (x < 1)
- fun_l11_n662(x)
- else
- fun_l11_n950(x)
- end
-end
-
-def fun_l10_n252(x)
- if (x < 1)
- fun_l11_n272(x)
- else
- fun_l11_n345(x)
- end
-end
-
-def fun_l10_n253(x)
- if (x < 1)
- fun_l11_n28(x)
- else
- fun_l11_n24(x)
- end
-end
-
-def fun_l10_n254(x)
- if (x < 1)
- fun_l11_n326(x)
- else
- fun_l11_n907(x)
- end
-end
-
-def fun_l10_n255(x)
- if (x < 1)
- fun_l11_n612(x)
- else
- fun_l11_n790(x)
- end
-end
-
-def fun_l10_n256(x)
- if (x < 1)
- fun_l11_n50(x)
- else
- fun_l11_n16(x)
- end
-end
-
-def fun_l10_n257(x)
- if (x < 1)
- fun_l11_n350(x)
- else
- fun_l11_n151(x)
- end
-end
-
-def fun_l10_n258(x)
- if (x < 1)
- fun_l11_n290(x)
- else
- fun_l11_n113(x)
- end
-end
-
-def fun_l10_n259(x)
- if (x < 1)
- fun_l11_n751(x)
- else
- fun_l11_n16(x)
- end
-end
-
-def fun_l10_n260(x)
- if (x < 1)
- fun_l11_n337(x)
- else
- fun_l11_n516(x)
- end
-end
-
-def fun_l10_n261(x)
- if (x < 1)
- fun_l11_n530(x)
- else
- fun_l11_n19(x)
- end
-end
-
-def fun_l10_n262(x)
- if (x < 1)
- fun_l11_n977(x)
- else
- fun_l11_n529(x)
- end
-end
-
-def fun_l10_n263(x)
- if (x < 1)
- fun_l11_n769(x)
- else
- fun_l11_n723(x)
- end
-end
-
-def fun_l10_n264(x)
- if (x < 1)
- fun_l11_n673(x)
- else
- fun_l11_n771(x)
- end
-end
-
-def fun_l10_n265(x)
- if (x < 1)
- fun_l11_n28(x)
- else
- fun_l11_n427(x)
- end
-end
-
-def fun_l10_n266(x)
- if (x < 1)
- fun_l11_n92(x)
- else
- fun_l11_n590(x)
- end
-end
-
-def fun_l10_n267(x)
- if (x < 1)
- fun_l11_n762(x)
- else
- fun_l11_n352(x)
- end
-end
-
-def fun_l10_n268(x)
- if (x < 1)
- fun_l11_n988(x)
- else
- fun_l11_n126(x)
- end
-end
-
-def fun_l10_n269(x)
- if (x < 1)
- fun_l11_n92(x)
- else
- fun_l11_n455(x)
- end
-end
-
-def fun_l10_n270(x)
- if (x < 1)
- fun_l11_n233(x)
- else
- fun_l11_n404(x)
- end
-end
-
-def fun_l10_n271(x)
- if (x < 1)
- fun_l11_n122(x)
- else
- fun_l11_n245(x)
- end
-end
-
-def fun_l10_n272(x)
- if (x < 1)
- fun_l11_n277(x)
- else
- fun_l11_n969(x)
- end
-end
-
-def fun_l10_n273(x)
- if (x < 1)
- fun_l11_n848(x)
- else
- fun_l11_n56(x)
- end
-end
-
-def fun_l10_n274(x)
- if (x < 1)
- fun_l11_n640(x)
- else
- fun_l11_n632(x)
- end
-end
-
-def fun_l10_n275(x)
- if (x < 1)
- fun_l11_n38(x)
- else
- fun_l11_n816(x)
- end
-end
-
-def fun_l10_n276(x)
- if (x < 1)
- fun_l11_n706(x)
- else
- fun_l11_n126(x)
- end
-end
-
-def fun_l10_n277(x)
- if (x < 1)
- fun_l11_n710(x)
- else
- fun_l11_n128(x)
- end
-end
-
-def fun_l10_n278(x)
- if (x < 1)
- fun_l11_n175(x)
- else
- fun_l11_n954(x)
- end
-end
-
-def fun_l10_n279(x)
- if (x < 1)
- fun_l11_n379(x)
- else
- fun_l11_n58(x)
- end
-end
-
-def fun_l10_n280(x)
- if (x < 1)
- fun_l11_n926(x)
- else
- fun_l11_n287(x)
- end
-end
-
-def fun_l10_n281(x)
- if (x < 1)
- fun_l11_n981(x)
- else
- fun_l11_n921(x)
- end
-end
-
-def fun_l10_n282(x)
- if (x < 1)
- fun_l11_n222(x)
- else
- fun_l11_n954(x)
- end
-end
-
-def fun_l10_n283(x)
- if (x < 1)
- fun_l11_n295(x)
- else
- fun_l11_n575(x)
- end
-end
-
-def fun_l10_n284(x)
- if (x < 1)
- fun_l11_n554(x)
- else
- fun_l11_n559(x)
- end
-end
-
-def fun_l10_n285(x)
- if (x < 1)
- fun_l11_n476(x)
- else
- fun_l11_n487(x)
- end
-end
-
-def fun_l10_n286(x)
- if (x < 1)
- fun_l11_n102(x)
- else
- fun_l11_n928(x)
- end
-end
-
-def fun_l10_n287(x)
- if (x < 1)
- fun_l11_n949(x)
- else
- fun_l11_n900(x)
- end
-end
-
-def fun_l10_n288(x)
- if (x < 1)
- fun_l11_n717(x)
- else
- fun_l11_n762(x)
- end
-end
-
-def fun_l10_n289(x)
- if (x < 1)
- fun_l11_n304(x)
- else
- fun_l11_n572(x)
- end
-end
-
-def fun_l10_n290(x)
- if (x < 1)
- fun_l11_n748(x)
- else
- fun_l11_n791(x)
- end
-end
-
-def fun_l10_n291(x)
- if (x < 1)
- fun_l11_n557(x)
- else
- fun_l11_n79(x)
- end
-end
-
-def fun_l10_n292(x)
- if (x < 1)
- fun_l11_n74(x)
- else
- fun_l11_n931(x)
- end
-end
-
-def fun_l10_n293(x)
- if (x < 1)
- fun_l11_n31(x)
- else
- fun_l11_n791(x)
- end
-end
-
-def fun_l10_n294(x)
- if (x < 1)
- fun_l11_n29(x)
- else
- fun_l11_n377(x)
- end
-end
-
-def fun_l10_n295(x)
- if (x < 1)
- fun_l11_n509(x)
- else
- fun_l11_n900(x)
- end
-end
-
-def fun_l10_n296(x)
- if (x < 1)
- fun_l11_n594(x)
- else
- fun_l11_n835(x)
- end
-end
-
-def fun_l10_n297(x)
- if (x < 1)
- fun_l11_n943(x)
- else
- fun_l11_n621(x)
- end
-end
-
-def fun_l10_n298(x)
- if (x < 1)
- fun_l11_n860(x)
- else
- fun_l11_n403(x)
- end
-end
-
-def fun_l10_n299(x)
- if (x < 1)
- fun_l11_n676(x)
- else
- fun_l11_n478(x)
- end
-end
-
-def fun_l10_n300(x)
- if (x < 1)
- fun_l11_n513(x)
- else
- fun_l11_n661(x)
- end
-end
-
-def fun_l10_n301(x)
- if (x < 1)
- fun_l11_n513(x)
- else
- fun_l11_n30(x)
- end
-end
-
-def fun_l10_n302(x)
- if (x < 1)
- fun_l11_n763(x)
- else
- fun_l11_n823(x)
- end
-end
-
-def fun_l10_n303(x)
- if (x < 1)
- fun_l11_n469(x)
- else
- fun_l11_n250(x)
- end
-end
-
-def fun_l10_n304(x)
- if (x < 1)
- fun_l11_n637(x)
- else
- fun_l11_n478(x)
- end
-end
-
-def fun_l10_n305(x)
- if (x < 1)
- fun_l11_n825(x)
- else
- fun_l11_n258(x)
- end
-end
-
-def fun_l10_n306(x)
- if (x < 1)
- fun_l11_n264(x)
- else
- fun_l11_n698(x)
- end
-end
-
-def fun_l10_n307(x)
- if (x < 1)
- fun_l11_n426(x)
- else
- fun_l11_n490(x)
- end
-end
-
-def fun_l10_n308(x)
- if (x < 1)
- fun_l11_n157(x)
- else
- fun_l11_n407(x)
- end
-end
-
-def fun_l10_n309(x)
- if (x < 1)
- fun_l11_n68(x)
- else
- fun_l11_n424(x)
- end
-end
-
-def fun_l10_n310(x)
- if (x < 1)
- fun_l11_n844(x)
- else
- fun_l11_n955(x)
- end
-end
-
-def fun_l10_n311(x)
- if (x < 1)
- fun_l11_n316(x)
- else
- fun_l11_n27(x)
- end
-end
-
-def fun_l10_n312(x)
- if (x < 1)
- fun_l11_n771(x)
- else
- fun_l11_n604(x)
- end
-end
-
-def fun_l10_n313(x)
- if (x < 1)
- fun_l11_n436(x)
- else
- fun_l11_n714(x)
- end
-end
-
-def fun_l10_n314(x)
- if (x < 1)
- fun_l11_n791(x)
- else
- fun_l11_n889(x)
- end
-end
-
-def fun_l10_n315(x)
- if (x < 1)
- fun_l11_n621(x)
- else
- fun_l11_n694(x)
- end
-end
-
-def fun_l10_n316(x)
- if (x < 1)
- fun_l11_n403(x)
- else
- fun_l11_n625(x)
- end
-end
-
-def fun_l10_n317(x)
- if (x < 1)
- fun_l11_n532(x)
- else
- fun_l11_n920(x)
- end
-end
-
-def fun_l10_n318(x)
- if (x < 1)
- fun_l11_n895(x)
- else
- fun_l11_n781(x)
- end
-end
-
-def fun_l10_n319(x)
- if (x < 1)
- fun_l11_n109(x)
- else
- fun_l11_n254(x)
- end
-end
-
-def fun_l10_n320(x)
- if (x < 1)
- fun_l11_n842(x)
- else
- fun_l11_n879(x)
- end
-end
-
-def fun_l10_n321(x)
- if (x < 1)
- fun_l11_n655(x)
- else
- fun_l11_n518(x)
- end
-end
-
-def fun_l10_n322(x)
- if (x < 1)
- fun_l11_n727(x)
- else
- fun_l11_n14(x)
- end
-end
-
-def fun_l10_n323(x)
- if (x < 1)
- fun_l11_n808(x)
- else
- fun_l11_n128(x)
- end
-end
-
-def fun_l10_n324(x)
- if (x < 1)
- fun_l11_n412(x)
- else
- fun_l11_n940(x)
- end
-end
-
-def fun_l10_n325(x)
- if (x < 1)
- fun_l11_n944(x)
- else
- fun_l11_n915(x)
- end
-end
-
-def fun_l10_n326(x)
- if (x < 1)
- fun_l11_n120(x)
- else
- fun_l11_n572(x)
- end
-end
-
-def fun_l10_n327(x)
- if (x < 1)
- fun_l11_n444(x)
- else
- fun_l11_n793(x)
- end
-end
-
-def fun_l10_n328(x)
- if (x < 1)
- fun_l11_n892(x)
- else
- fun_l11_n475(x)
- end
-end
-
-def fun_l10_n329(x)
- if (x < 1)
- fun_l11_n919(x)
- else
- fun_l11_n183(x)
- end
-end
-
-def fun_l10_n330(x)
- if (x < 1)
- fun_l11_n80(x)
- else
- fun_l11_n357(x)
- end
-end
-
-def fun_l10_n331(x)
- if (x < 1)
- fun_l11_n340(x)
- else
- fun_l11_n349(x)
- end
-end
-
-def fun_l10_n332(x)
- if (x < 1)
- fun_l11_n579(x)
- else
- fun_l11_n845(x)
- end
-end
-
-def fun_l10_n333(x)
- if (x < 1)
- fun_l11_n169(x)
- else
- fun_l11_n583(x)
- end
-end
-
-def fun_l10_n334(x)
- if (x < 1)
- fun_l11_n544(x)
- else
- fun_l11_n462(x)
- end
-end
-
-def fun_l10_n335(x)
- if (x < 1)
- fun_l11_n51(x)
- else
- fun_l11_n635(x)
- end
-end
-
-def fun_l10_n336(x)
- if (x < 1)
- fun_l11_n965(x)
- else
- fun_l11_n538(x)
- end
-end
-
-def fun_l10_n337(x)
- if (x < 1)
- fun_l11_n930(x)
- else
- fun_l11_n169(x)
- end
-end
-
-def fun_l10_n338(x)
- if (x < 1)
- fun_l11_n732(x)
- else
- fun_l11_n574(x)
- end
-end
-
-def fun_l10_n339(x)
- if (x < 1)
- fun_l11_n51(x)
- else
- fun_l11_n141(x)
- end
-end
-
-def fun_l10_n340(x)
- if (x < 1)
- fun_l11_n149(x)
- else
- fun_l11_n346(x)
- end
-end
-
-def fun_l10_n341(x)
- if (x < 1)
- fun_l11_n163(x)
- else
- fun_l11_n224(x)
- end
-end
-
-def fun_l10_n342(x)
- if (x < 1)
- fun_l11_n175(x)
- else
- fun_l11_n40(x)
- end
-end
-
-def fun_l10_n343(x)
- if (x < 1)
- fun_l11_n156(x)
- else
- fun_l11_n639(x)
- end
-end
-
-def fun_l10_n344(x)
- if (x < 1)
- fun_l11_n934(x)
- else
- fun_l11_n85(x)
- end
-end
-
-def fun_l10_n345(x)
- if (x < 1)
- fun_l11_n182(x)
- else
- fun_l11_n190(x)
- end
-end
-
-def fun_l10_n346(x)
- if (x < 1)
- fun_l11_n879(x)
- else
- fun_l11_n702(x)
- end
-end
-
-def fun_l10_n347(x)
- if (x < 1)
- fun_l11_n540(x)
- else
- fun_l11_n689(x)
- end
-end
-
-def fun_l10_n348(x)
- if (x < 1)
- fun_l11_n945(x)
- else
- fun_l11_n39(x)
- end
-end
-
-def fun_l10_n349(x)
- if (x < 1)
- fun_l11_n683(x)
- else
- fun_l11_n688(x)
- end
-end
-
-def fun_l10_n350(x)
- if (x < 1)
- fun_l11_n750(x)
- else
- fun_l11_n577(x)
- end
-end
-
-def fun_l10_n351(x)
- if (x < 1)
- fun_l11_n74(x)
- else
- fun_l11_n672(x)
- end
-end
-
-def fun_l10_n352(x)
- if (x < 1)
- fun_l11_n252(x)
- else
- fun_l11_n766(x)
- end
-end
-
-def fun_l10_n353(x)
- if (x < 1)
- fun_l11_n702(x)
- else
- fun_l11_n516(x)
- end
-end
-
-def fun_l10_n354(x)
- if (x < 1)
- fun_l11_n19(x)
- else
- fun_l11_n290(x)
- end
-end
-
-def fun_l10_n355(x)
- if (x < 1)
- fun_l11_n70(x)
- else
- fun_l11_n553(x)
- end
-end
-
-def fun_l10_n356(x)
- if (x < 1)
- fun_l11_n654(x)
- else
- fun_l11_n108(x)
- end
-end
-
-def fun_l10_n357(x)
- if (x < 1)
- fun_l11_n820(x)
- else
- fun_l11_n320(x)
- end
-end
-
-def fun_l10_n358(x)
- if (x < 1)
- fun_l11_n417(x)
- else
- fun_l11_n290(x)
- end
-end
-
-def fun_l10_n359(x)
- if (x < 1)
- fun_l11_n832(x)
- else
- fun_l11_n647(x)
- end
-end
-
-def fun_l10_n360(x)
- if (x < 1)
- fun_l11_n625(x)
- else
- fun_l11_n723(x)
- end
-end
-
-def fun_l10_n361(x)
- if (x < 1)
- fun_l11_n257(x)
- else
- fun_l11_n991(x)
- end
-end
-
-def fun_l10_n362(x)
- if (x < 1)
- fun_l11_n101(x)
- else
- fun_l11_n247(x)
- end
-end
-
-def fun_l10_n363(x)
- if (x < 1)
- fun_l11_n484(x)
- else
- fun_l11_n953(x)
- end
-end
-
-def fun_l10_n364(x)
- if (x < 1)
- fun_l11_n281(x)
- else
- fun_l11_n846(x)
- end
-end
-
-def fun_l10_n365(x)
- if (x < 1)
- fun_l11_n425(x)
- else
- fun_l11_n772(x)
- end
-end
-
-def fun_l10_n366(x)
- if (x < 1)
- fun_l11_n724(x)
- else
- fun_l11_n725(x)
- end
-end
-
-def fun_l10_n367(x)
- if (x < 1)
- fun_l11_n943(x)
- else
- fun_l11_n360(x)
- end
-end
-
-def fun_l10_n368(x)
- if (x < 1)
- fun_l11_n874(x)
- else
- fun_l11_n698(x)
- end
-end
-
-def fun_l10_n369(x)
- if (x < 1)
- fun_l11_n419(x)
- else
- fun_l11_n672(x)
- end
-end
-
-def fun_l10_n370(x)
- if (x < 1)
- fun_l11_n655(x)
- else
- fun_l11_n468(x)
- end
-end
-
-def fun_l10_n371(x)
- if (x < 1)
- fun_l11_n577(x)
- else
- fun_l11_n402(x)
- end
-end
-
-def fun_l10_n372(x)
- if (x < 1)
- fun_l11_n531(x)
- else
- fun_l11_n319(x)
- end
-end
-
-def fun_l10_n373(x)
- if (x < 1)
- fun_l11_n972(x)
- else
- fun_l11_n901(x)
- end
-end
-
-def fun_l10_n374(x)
- if (x < 1)
- fun_l11_n59(x)
- else
- fun_l11_n12(x)
- end
-end
-
-def fun_l10_n375(x)
- if (x < 1)
- fun_l11_n409(x)
- else
- fun_l11_n214(x)
- end
-end
-
-def fun_l10_n376(x)
- if (x < 1)
- fun_l11_n52(x)
- else
- fun_l11_n395(x)
- end
-end
-
-def fun_l10_n377(x)
- if (x < 1)
- fun_l11_n594(x)
- else
- fun_l11_n434(x)
- end
-end
-
-def fun_l10_n378(x)
- if (x < 1)
- fun_l11_n795(x)
- else
- fun_l11_n820(x)
- end
-end
-
-def fun_l10_n379(x)
- if (x < 1)
- fun_l11_n962(x)
- else
- fun_l11_n111(x)
- end
-end
-
-def fun_l10_n380(x)
- if (x < 1)
- fun_l11_n762(x)
- else
- fun_l11_n678(x)
- end
-end
-
-def fun_l10_n381(x)
- if (x < 1)
- fun_l11_n324(x)
- else
- fun_l11_n478(x)
- end
-end
-
-def fun_l10_n382(x)
- if (x < 1)
- fun_l11_n360(x)
- else
- fun_l11_n35(x)
- end
-end
-
-def fun_l10_n383(x)
- if (x < 1)
- fun_l11_n710(x)
- else
- fun_l11_n898(x)
- end
-end
-
-def fun_l10_n384(x)
- if (x < 1)
- fun_l11_n584(x)
- else
- fun_l11_n260(x)
- end
-end
-
-def fun_l10_n385(x)
- if (x < 1)
- fun_l11_n514(x)
- else
- fun_l11_n649(x)
- end
-end
-
-def fun_l10_n386(x)
- if (x < 1)
- fun_l11_n426(x)
- else
- fun_l11_n391(x)
- end
-end
-
-def fun_l10_n387(x)
- if (x < 1)
- fun_l11_n713(x)
- else
- fun_l11_n734(x)
- end
-end
-
-def fun_l10_n388(x)
- if (x < 1)
- fun_l11_n236(x)
- else
- fun_l11_n469(x)
- end
-end
-
-def fun_l10_n389(x)
- if (x < 1)
- fun_l11_n267(x)
- else
- fun_l11_n965(x)
- end
-end
-
-def fun_l10_n390(x)
- if (x < 1)
- fun_l11_n943(x)
- else
- fun_l11_n181(x)
- end
-end
-
-def fun_l10_n391(x)
- if (x < 1)
- fun_l11_n869(x)
- else
- fun_l11_n348(x)
- end
-end
-
-def fun_l10_n392(x)
- if (x < 1)
- fun_l11_n144(x)
- else
- fun_l11_n801(x)
- end
-end
-
-def fun_l10_n393(x)
- if (x < 1)
- fun_l11_n907(x)
- else
- fun_l11_n609(x)
- end
-end
-
-def fun_l10_n394(x)
- if (x < 1)
- fun_l11_n801(x)
- else
- fun_l11_n691(x)
- end
-end
-
-def fun_l10_n395(x)
- if (x < 1)
- fun_l11_n629(x)
- else
- fun_l11_n924(x)
- end
-end
-
-def fun_l10_n396(x)
- if (x < 1)
- fun_l11_n191(x)
- else
- fun_l11_n248(x)
- end
-end
-
-def fun_l10_n397(x)
- if (x < 1)
- fun_l11_n339(x)
- else
- fun_l11_n805(x)
- end
-end
-
-def fun_l10_n398(x)
- if (x < 1)
- fun_l11_n798(x)
- else
- fun_l11_n154(x)
- end
-end
-
-def fun_l10_n399(x)
- if (x < 1)
- fun_l11_n847(x)
- else
- fun_l11_n14(x)
- end
-end
-
-def fun_l10_n400(x)
- if (x < 1)
- fun_l11_n296(x)
- else
- fun_l11_n144(x)
- end
-end
-
-def fun_l10_n401(x)
- if (x < 1)
- fun_l11_n853(x)
- else
- fun_l11_n156(x)
- end
-end
-
-def fun_l10_n402(x)
- if (x < 1)
- fun_l11_n54(x)
- else
- fun_l11_n944(x)
- end
-end
-
-def fun_l10_n403(x)
- if (x < 1)
- fun_l11_n617(x)
- else
- fun_l11_n324(x)
- end
-end
-
-def fun_l10_n404(x)
- if (x < 1)
- fun_l11_n962(x)
- else
- fun_l11_n139(x)
- end
-end
-
-def fun_l10_n405(x)
- if (x < 1)
- fun_l11_n466(x)
- else
- fun_l11_n388(x)
- end
-end
-
-def fun_l10_n406(x)
- if (x < 1)
- fun_l11_n914(x)
- else
- fun_l11_n847(x)
- end
-end
-
-def fun_l10_n407(x)
- if (x < 1)
- fun_l11_n741(x)
- else
- fun_l11_n757(x)
- end
-end
-
-def fun_l10_n408(x)
- if (x < 1)
- fun_l11_n36(x)
- else
- fun_l11_n312(x)
- end
-end
-
-def fun_l10_n409(x)
- if (x < 1)
- fun_l11_n203(x)
- else
- fun_l11_n523(x)
- end
-end
-
-def fun_l10_n410(x)
- if (x < 1)
- fun_l11_n187(x)
- else
- fun_l11_n291(x)
- end
-end
-
-def fun_l10_n411(x)
- if (x < 1)
- fun_l11_n13(x)
- else
- fun_l11_n107(x)
- end
-end
-
-def fun_l10_n412(x)
- if (x < 1)
- fun_l11_n960(x)
- else
- fun_l11_n565(x)
- end
-end
-
-def fun_l10_n413(x)
- if (x < 1)
- fun_l11_n549(x)
- else
- fun_l11_n885(x)
- end
-end
-
-def fun_l10_n414(x)
- if (x < 1)
- fun_l11_n559(x)
- else
- fun_l11_n612(x)
- end
-end
-
-def fun_l10_n415(x)
- if (x < 1)
- fun_l11_n18(x)
- else
- fun_l11_n167(x)
- end
-end
-
-def fun_l10_n416(x)
- if (x < 1)
- fun_l11_n125(x)
- else
- fun_l11_n206(x)
- end
-end
-
-def fun_l10_n417(x)
- if (x < 1)
- fun_l11_n980(x)
- else
- fun_l11_n497(x)
- end
-end
-
-def fun_l10_n418(x)
- if (x < 1)
- fun_l11_n703(x)
- else
- fun_l11_n49(x)
- end
-end
-
-def fun_l10_n419(x)
- if (x < 1)
- fun_l11_n690(x)
- else
- fun_l11_n63(x)
- end
-end
-
-def fun_l10_n420(x)
- if (x < 1)
- fun_l11_n219(x)
- else
- fun_l11_n814(x)
- end
-end
-
-def fun_l10_n421(x)
- if (x < 1)
- fun_l11_n864(x)
- else
- fun_l11_n963(x)
- end
-end
-
-def fun_l10_n422(x)
- if (x < 1)
- fun_l11_n672(x)
- else
- fun_l11_n87(x)
- end
-end
-
-def fun_l10_n423(x)
- if (x < 1)
- fun_l11_n41(x)
- else
- fun_l11_n461(x)
- end
-end
-
-def fun_l10_n424(x)
- if (x < 1)
- fun_l11_n334(x)
- else
- fun_l11_n283(x)
- end
-end
-
-def fun_l10_n425(x)
- if (x < 1)
- fun_l11_n369(x)
- else
- fun_l11_n269(x)
- end
-end
-
-def fun_l10_n426(x)
- if (x < 1)
- fun_l11_n832(x)
- else
- fun_l11_n625(x)
- end
-end
-
-def fun_l10_n427(x)
- if (x < 1)
- fun_l11_n272(x)
- else
- fun_l11_n634(x)
- end
-end
-
-def fun_l10_n428(x)
- if (x < 1)
- fun_l11_n122(x)
- else
- fun_l11_n53(x)
- end
-end
-
-def fun_l10_n429(x)
- if (x < 1)
- fun_l11_n895(x)
- else
- fun_l11_n292(x)
- end
-end
-
-def fun_l10_n430(x)
- if (x < 1)
- fun_l11_n460(x)
- else
- fun_l11_n177(x)
- end
-end
-
-def fun_l10_n431(x)
- if (x < 1)
- fun_l11_n238(x)
- else
- fun_l11_n938(x)
- end
-end
-
-def fun_l10_n432(x)
- if (x < 1)
- fun_l11_n302(x)
- else
- fun_l11_n492(x)
- end
-end
-
-def fun_l10_n433(x)
- if (x < 1)
- fun_l11_n307(x)
- else
- fun_l11_n876(x)
- end
-end
-
-def fun_l10_n434(x)
- if (x < 1)
- fun_l11_n64(x)
- else
- fun_l11_n892(x)
- end
-end
-
-def fun_l10_n435(x)
- if (x < 1)
- fun_l11_n940(x)
- else
- fun_l11_n718(x)
- end
-end
-
-def fun_l10_n436(x)
- if (x < 1)
- fun_l11_n988(x)
- else
- fun_l11_n216(x)
- end
-end
-
-def fun_l10_n437(x)
- if (x < 1)
- fun_l11_n282(x)
- else
- fun_l11_n168(x)
- end
-end
-
-def fun_l10_n438(x)
- if (x < 1)
- fun_l11_n529(x)
- else
- fun_l11_n66(x)
- end
-end
-
-def fun_l10_n439(x)
- if (x < 1)
- fun_l11_n286(x)
- else
- fun_l11_n134(x)
- end
-end
-
-def fun_l10_n440(x)
- if (x < 1)
- fun_l11_n454(x)
- else
- fun_l11_n873(x)
- end
-end
-
-def fun_l10_n441(x)
- if (x < 1)
- fun_l11_n871(x)
- else
- fun_l11_n13(x)
- end
-end
-
-def fun_l10_n442(x)
- if (x < 1)
- fun_l11_n314(x)
- else
- fun_l11_n685(x)
- end
-end
-
-def fun_l10_n443(x)
- if (x < 1)
- fun_l11_n752(x)
- else
- fun_l11_n162(x)
- end
-end
-
-def fun_l10_n444(x)
- if (x < 1)
- fun_l11_n686(x)
- else
- fun_l11_n585(x)
- end
-end
-
-def fun_l10_n445(x)
- if (x < 1)
- fun_l11_n42(x)
- else
- fun_l11_n932(x)
- end
-end
-
-def fun_l10_n446(x)
- if (x < 1)
- fun_l11_n433(x)
- else
- fun_l11_n241(x)
- end
-end
-
-def fun_l10_n447(x)
- if (x < 1)
- fun_l11_n99(x)
- else
- fun_l11_n563(x)
- end
-end
-
-def fun_l10_n448(x)
- if (x < 1)
- fun_l11_n463(x)
- else
- fun_l11_n395(x)
- end
-end
-
-def fun_l10_n449(x)
- if (x < 1)
- fun_l11_n393(x)
- else
- fun_l11_n151(x)
- end
-end
-
-def fun_l10_n450(x)
- if (x < 1)
- fun_l11_n255(x)
- else
- fun_l11_n834(x)
- end
-end
-
-def fun_l10_n451(x)
- if (x < 1)
- fun_l11_n195(x)
- else
- fun_l11_n0(x)
- end
-end
-
-def fun_l10_n452(x)
- if (x < 1)
- fun_l11_n372(x)
- else
- fun_l11_n228(x)
- end
-end
-
-def fun_l10_n453(x)
- if (x < 1)
- fun_l11_n526(x)
- else
- fun_l11_n54(x)
- end
-end
-
-def fun_l10_n454(x)
- if (x < 1)
- fun_l11_n594(x)
- else
- fun_l11_n116(x)
- end
-end
-
-def fun_l10_n455(x)
- if (x < 1)
- fun_l11_n25(x)
- else
- fun_l11_n930(x)
- end
-end
-
-def fun_l10_n456(x)
- if (x < 1)
- fun_l11_n83(x)
- else
- fun_l11_n30(x)
- end
-end
-
-def fun_l10_n457(x)
- if (x < 1)
- fun_l11_n644(x)
- else
- fun_l11_n837(x)
- end
-end
-
-def fun_l10_n458(x)
- if (x < 1)
- fun_l11_n311(x)
- else
- fun_l11_n86(x)
- end
-end
-
-def fun_l10_n459(x)
- if (x < 1)
- fun_l11_n139(x)
- else
- fun_l11_n735(x)
- end
-end
-
-def fun_l10_n460(x)
- if (x < 1)
- fun_l11_n431(x)
- else
- fun_l11_n808(x)
- end
-end
-
-def fun_l10_n461(x)
- if (x < 1)
- fun_l11_n488(x)
- else
- fun_l11_n439(x)
- end
-end
-
-def fun_l10_n462(x)
- if (x < 1)
- fun_l11_n448(x)
- else
- fun_l11_n882(x)
- end
-end
-
-def fun_l10_n463(x)
- if (x < 1)
- fun_l11_n362(x)
- else
- fun_l11_n875(x)
- end
-end
-
-def fun_l10_n464(x)
- if (x < 1)
- fun_l11_n88(x)
- else
- fun_l11_n842(x)
- end
-end
-
-def fun_l10_n465(x)
- if (x < 1)
- fun_l11_n651(x)
- else
- fun_l11_n368(x)
- end
-end
-
-def fun_l10_n466(x)
- if (x < 1)
- fun_l11_n121(x)
- else
- fun_l11_n3(x)
- end
-end
-
-def fun_l10_n467(x)
- if (x < 1)
- fun_l11_n654(x)
- else
- fun_l11_n260(x)
- end
-end
-
-def fun_l10_n468(x)
- if (x < 1)
- fun_l11_n765(x)
- else
- fun_l11_n604(x)
- end
-end
-
-def fun_l10_n469(x)
- if (x < 1)
- fun_l11_n881(x)
- else
- fun_l11_n567(x)
- end
-end
-
-def fun_l10_n470(x)
- if (x < 1)
- fun_l11_n41(x)
- else
- fun_l11_n92(x)
- end
-end
-
-def fun_l10_n471(x)
- if (x < 1)
- fun_l11_n905(x)
- else
- fun_l11_n731(x)
- end
-end
-
-def fun_l10_n472(x)
- if (x < 1)
- fun_l11_n797(x)
- else
- fun_l11_n878(x)
- end
-end
-
-def fun_l10_n473(x)
- if (x < 1)
- fun_l11_n487(x)
- else
- fun_l11_n951(x)
- end
-end
-
-def fun_l10_n474(x)
- if (x < 1)
- fun_l11_n998(x)
- else
- fun_l11_n900(x)
- end
-end
-
-def fun_l10_n475(x)
- if (x < 1)
- fun_l11_n451(x)
- else
- fun_l11_n780(x)
- end
-end
-
-def fun_l10_n476(x)
- if (x < 1)
- fun_l11_n427(x)
- else
- fun_l11_n760(x)
- end
-end
-
-def fun_l10_n477(x)
- if (x < 1)
- fun_l11_n758(x)
- else
- fun_l11_n177(x)
- end
-end
-
-def fun_l10_n478(x)
- if (x < 1)
- fun_l11_n359(x)
- else
- fun_l11_n236(x)
- end
-end
-
-def fun_l10_n479(x)
- if (x < 1)
- fun_l11_n70(x)
- else
- fun_l11_n49(x)
- end
-end
-
-def fun_l10_n480(x)
- if (x < 1)
- fun_l11_n338(x)
- else
- fun_l11_n714(x)
- end
-end
-
-def fun_l10_n481(x)
- if (x < 1)
- fun_l11_n6(x)
- else
- fun_l11_n194(x)
- end
-end
-
-def fun_l10_n482(x)
- if (x < 1)
- fun_l11_n801(x)
- else
- fun_l11_n591(x)
- end
-end
-
-def fun_l10_n483(x)
- if (x < 1)
- fun_l11_n362(x)
- else
- fun_l11_n687(x)
- end
-end
-
-def fun_l10_n484(x)
- if (x < 1)
- fun_l11_n659(x)
- else
- fun_l11_n661(x)
- end
-end
-
-def fun_l10_n485(x)
- if (x < 1)
- fun_l11_n903(x)
- else
- fun_l11_n419(x)
- end
-end
-
-def fun_l10_n486(x)
- if (x < 1)
- fun_l11_n279(x)
- else
- fun_l11_n995(x)
- end
-end
-
-def fun_l10_n487(x)
- if (x < 1)
- fun_l11_n529(x)
- else
- fun_l11_n373(x)
- end
-end
-
-def fun_l10_n488(x)
- if (x < 1)
- fun_l11_n198(x)
- else
- fun_l11_n899(x)
- end
-end
-
-def fun_l10_n489(x)
- if (x < 1)
- fun_l11_n174(x)
- else
- fun_l11_n485(x)
- end
-end
-
-def fun_l10_n490(x)
- if (x < 1)
- fun_l11_n19(x)
- else
- fun_l11_n322(x)
- end
-end
-
-def fun_l10_n491(x)
- if (x < 1)
- fun_l11_n0(x)
- else
- fun_l11_n855(x)
- end
-end
-
-def fun_l10_n492(x)
- if (x < 1)
- fun_l11_n126(x)
- else
- fun_l11_n986(x)
- end
-end
-
-def fun_l10_n493(x)
- if (x < 1)
- fun_l11_n263(x)
- else
- fun_l11_n374(x)
- end
-end
-
-def fun_l10_n494(x)
- if (x < 1)
- fun_l11_n21(x)
- else
- fun_l11_n749(x)
- end
-end
-
-def fun_l10_n495(x)
- if (x < 1)
- fun_l11_n618(x)
- else
- fun_l11_n955(x)
- end
-end
-
-def fun_l10_n496(x)
- if (x < 1)
- fun_l11_n157(x)
- else
- fun_l11_n230(x)
- end
-end
-
-def fun_l10_n497(x)
- if (x < 1)
- fun_l11_n387(x)
- else
- fun_l11_n841(x)
- end
-end
-
-def fun_l10_n498(x)
- if (x < 1)
- fun_l11_n496(x)
- else
- fun_l11_n30(x)
- end
-end
-
-def fun_l10_n499(x)
- if (x < 1)
- fun_l11_n581(x)
- else
- fun_l11_n821(x)
- end
-end
-
-def fun_l10_n500(x)
- if (x < 1)
- fun_l11_n202(x)
- else
- fun_l11_n26(x)
- end
-end
-
-def fun_l10_n501(x)
- if (x < 1)
- fun_l11_n273(x)
- else
- fun_l11_n294(x)
- end
-end
-
-def fun_l10_n502(x)
- if (x < 1)
- fun_l11_n604(x)
- else
- fun_l11_n261(x)
- end
-end
-
-def fun_l10_n503(x)
- if (x < 1)
- fun_l11_n632(x)
- else
- fun_l11_n340(x)
- end
-end
-
-def fun_l10_n504(x)
- if (x < 1)
- fun_l11_n162(x)
- else
- fun_l11_n483(x)
- end
-end
-
-def fun_l10_n505(x)
- if (x < 1)
- fun_l11_n824(x)
- else
- fun_l11_n747(x)
- end
-end
-
-def fun_l10_n506(x)
- if (x < 1)
- fun_l11_n575(x)
- else
- fun_l11_n932(x)
- end
-end
-
-def fun_l10_n507(x)
- if (x < 1)
- fun_l11_n645(x)
- else
- fun_l11_n486(x)
- end
-end
-
-def fun_l10_n508(x)
- if (x < 1)
- fun_l11_n876(x)
- else
- fun_l11_n640(x)
- end
-end
-
-def fun_l10_n509(x)
- if (x < 1)
- fun_l11_n280(x)
- else
- fun_l11_n116(x)
- end
-end
-
-def fun_l10_n510(x)
- if (x < 1)
- fun_l11_n570(x)
- else
- fun_l11_n640(x)
- end
-end
-
-def fun_l10_n511(x)
- if (x < 1)
- fun_l11_n576(x)
- else
- fun_l11_n124(x)
- end
-end
-
-def fun_l10_n512(x)
- if (x < 1)
- fun_l11_n328(x)
- else
- fun_l11_n880(x)
- end
-end
-
-def fun_l10_n513(x)
- if (x < 1)
- fun_l11_n185(x)
- else
- fun_l11_n977(x)
- end
-end
-
-def fun_l10_n514(x)
- if (x < 1)
- fun_l11_n560(x)
- else
- fun_l11_n825(x)
- end
-end
-
-def fun_l10_n515(x)
- if (x < 1)
- fun_l11_n28(x)
- else
- fun_l11_n908(x)
- end
-end
-
-def fun_l10_n516(x)
- if (x < 1)
- fun_l11_n902(x)
- else
- fun_l11_n882(x)
- end
-end
-
-def fun_l10_n517(x)
- if (x < 1)
- fun_l11_n429(x)
- else
- fun_l11_n824(x)
- end
-end
-
-def fun_l10_n518(x)
- if (x < 1)
- fun_l11_n706(x)
- else
- fun_l11_n149(x)
- end
-end
-
-def fun_l10_n519(x)
- if (x < 1)
- fun_l11_n837(x)
- else
- fun_l11_n573(x)
- end
-end
-
-def fun_l10_n520(x)
- if (x < 1)
- fun_l11_n934(x)
- else
- fun_l11_n504(x)
- end
-end
-
-def fun_l10_n521(x)
- if (x < 1)
- fun_l11_n254(x)
- else
- fun_l11_n551(x)
- end
-end
-
-def fun_l10_n522(x)
- if (x < 1)
- fun_l11_n53(x)
- else
- fun_l11_n297(x)
- end
-end
-
-def fun_l10_n523(x)
- if (x < 1)
- fun_l11_n648(x)
- else
- fun_l11_n695(x)
- end
-end
-
-def fun_l10_n524(x)
- if (x < 1)
- fun_l11_n737(x)
- else
- fun_l11_n636(x)
- end
-end
-
-def fun_l10_n525(x)
- if (x < 1)
- fun_l11_n249(x)
- else
- fun_l11_n757(x)
- end
-end
-
-def fun_l10_n526(x)
- if (x < 1)
- fun_l11_n42(x)
- else
- fun_l11_n199(x)
- end
-end
-
-def fun_l10_n527(x)
- if (x < 1)
- fun_l11_n783(x)
- else
- fun_l11_n856(x)
- end
-end
-
-def fun_l10_n528(x)
- if (x < 1)
- fun_l11_n708(x)
- else
- fun_l11_n550(x)
- end
-end
-
-def fun_l10_n529(x)
- if (x < 1)
- fun_l11_n749(x)
- else
- fun_l11_n56(x)
- end
-end
-
-def fun_l10_n530(x)
- if (x < 1)
- fun_l11_n838(x)
- else
- fun_l11_n57(x)
- end
-end
-
-def fun_l10_n531(x)
- if (x < 1)
- fun_l11_n293(x)
- else
- fun_l11_n938(x)
- end
-end
-
-def fun_l10_n532(x)
- if (x < 1)
- fun_l11_n245(x)
- else
- fun_l11_n367(x)
- end
-end
-
-def fun_l10_n533(x)
- if (x < 1)
- fun_l11_n255(x)
- else
- fun_l11_n234(x)
- end
-end
-
-def fun_l10_n534(x)
- if (x < 1)
- fun_l11_n315(x)
- else
- fun_l11_n982(x)
- end
-end
-
-def fun_l10_n535(x)
- if (x < 1)
- fun_l11_n841(x)
- else
- fun_l11_n112(x)
- end
-end
-
-def fun_l10_n536(x)
- if (x < 1)
- fun_l11_n481(x)
- else
- fun_l11_n622(x)
- end
-end
-
-def fun_l10_n537(x)
- if (x < 1)
- fun_l11_n666(x)
- else
- fun_l11_n775(x)
- end
-end
-
-def fun_l10_n538(x)
- if (x < 1)
- fun_l11_n409(x)
- else
- fun_l11_n733(x)
- end
-end
-
-def fun_l10_n539(x)
- if (x < 1)
- fun_l11_n633(x)
- else
- fun_l11_n122(x)
- end
-end
-
-def fun_l10_n540(x)
- if (x < 1)
- fun_l11_n453(x)
- else
- fun_l11_n938(x)
- end
-end
-
-def fun_l10_n541(x)
- if (x < 1)
- fun_l11_n55(x)
- else
- fun_l11_n344(x)
- end
-end
-
-def fun_l10_n542(x)
- if (x < 1)
- fun_l11_n167(x)
- else
- fun_l11_n908(x)
- end
-end
-
-def fun_l10_n543(x)
- if (x < 1)
- fun_l11_n318(x)
- else
- fun_l11_n893(x)
- end
-end
-
-def fun_l10_n544(x)
- if (x < 1)
- fun_l11_n683(x)
- else
- fun_l11_n109(x)
- end
-end
-
-def fun_l10_n545(x)
- if (x < 1)
- fun_l11_n728(x)
- else
- fun_l11_n432(x)
- end
-end
-
-def fun_l10_n546(x)
- if (x < 1)
- fun_l11_n343(x)
- else
- fun_l11_n674(x)
- end
-end
-
-def fun_l10_n547(x)
- if (x < 1)
- fun_l11_n374(x)
- else
- fun_l11_n293(x)
- end
-end
-
-def fun_l10_n548(x)
- if (x < 1)
- fun_l11_n661(x)
- else
- fun_l11_n619(x)
- end
-end
-
-def fun_l10_n549(x)
- if (x < 1)
- fun_l11_n984(x)
- else
- fun_l11_n261(x)
- end
-end
-
-def fun_l10_n550(x)
- if (x < 1)
- fun_l11_n729(x)
- else
- fun_l11_n469(x)
- end
-end
-
-def fun_l10_n551(x)
- if (x < 1)
- fun_l11_n829(x)
- else
- fun_l11_n30(x)
- end
-end
-
-def fun_l10_n552(x)
- if (x < 1)
- fun_l11_n457(x)
- else
- fun_l11_n440(x)
- end
-end
-
-def fun_l10_n553(x)
- if (x < 1)
- fun_l11_n128(x)
- else
- fun_l11_n790(x)
- end
-end
-
-def fun_l10_n554(x)
- if (x < 1)
- fun_l11_n135(x)
- else
- fun_l11_n118(x)
- end
-end
-
-def fun_l10_n555(x)
- if (x < 1)
- fun_l11_n558(x)
- else
- fun_l11_n415(x)
- end
-end
-
-def fun_l10_n556(x)
- if (x < 1)
- fun_l11_n388(x)
- else
- fun_l11_n102(x)
- end
-end
-
-def fun_l10_n557(x)
- if (x < 1)
- fun_l11_n575(x)
- else
- fun_l11_n877(x)
- end
-end
-
-def fun_l10_n558(x)
- if (x < 1)
- fun_l11_n266(x)
- else
- fun_l11_n216(x)
- end
-end
-
-def fun_l10_n559(x)
- if (x < 1)
- fun_l11_n681(x)
- else
- fun_l11_n259(x)
- end
-end
-
-def fun_l10_n560(x)
- if (x < 1)
- fun_l11_n922(x)
- else
- fun_l11_n828(x)
- end
-end
-
-def fun_l10_n561(x)
- if (x < 1)
- fun_l11_n135(x)
- else
- fun_l11_n971(x)
- end
-end
-
-def fun_l10_n562(x)
- if (x < 1)
- fun_l11_n940(x)
- else
- fun_l11_n266(x)
- end
-end
-
-def fun_l10_n563(x)
- if (x < 1)
- fun_l11_n291(x)
- else
- fun_l11_n587(x)
- end
-end
-
-def fun_l10_n564(x)
- if (x < 1)
- fun_l11_n143(x)
- else
- fun_l11_n289(x)
- end
-end
-
-def fun_l10_n565(x)
- if (x < 1)
- fun_l11_n947(x)
- else
- fun_l11_n462(x)
- end
-end
-
-def fun_l10_n566(x)
- if (x < 1)
- fun_l11_n307(x)
- else
- fun_l11_n904(x)
- end
-end
-
-def fun_l10_n567(x)
- if (x < 1)
- fun_l11_n945(x)
- else
- fun_l11_n814(x)
- end
-end
-
-def fun_l10_n568(x)
- if (x < 1)
- fun_l11_n689(x)
- else
- fun_l11_n61(x)
- end
-end
-
-def fun_l10_n569(x)
- if (x < 1)
- fun_l11_n446(x)
- else
- fun_l11_n305(x)
- end
-end
-
-def fun_l10_n570(x)
- if (x < 1)
- fun_l11_n209(x)
- else
- fun_l11_n768(x)
- end
-end
-
-def fun_l10_n571(x)
- if (x < 1)
- fun_l11_n904(x)
- else
- fun_l11_n736(x)
- end
-end
-
-def fun_l10_n572(x)
- if (x < 1)
- fun_l11_n87(x)
- else
- fun_l11_n474(x)
- end
-end
-
-def fun_l10_n573(x)
- if (x < 1)
- fun_l11_n886(x)
- else
- fun_l11_n75(x)
- end
-end
-
-def fun_l10_n574(x)
- if (x < 1)
- fun_l11_n761(x)
- else
- fun_l11_n662(x)
- end
-end
-
-def fun_l10_n575(x)
- if (x < 1)
- fun_l11_n255(x)
- else
- fun_l11_n321(x)
- end
-end
-
-def fun_l10_n576(x)
- if (x < 1)
- fun_l11_n154(x)
- else
- fun_l11_n356(x)
- end
-end
-
-def fun_l10_n577(x)
- if (x < 1)
- fun_l11_n802(x)
- else
- fun_l11_n912(x)
- end
-end
-
-def fun_l10_n578(x)
- if (x < 1)
- fun_l11_n709(x)
- else
- fun_l11_n66(x)
- end
-end
-
-def fun_l10_n579(x)
- if (x < 1)
- fun_l11_n994(x)
- else
- fun_l11_n424(x)
- end
-end
-
-def fun_l10_n580(x)
- if (x < 1)
- fun_l11_n520(x)
- else
- fun_l11_n551(x)
- end
-end
-
-def fun_l10_n581(x)
- if (x < 1)
- fun_l11_n386(x)
- else
- fun_l11_n615(x)
- end
-end
-
-def fun_l10_n582(x)
- if (x < 1)
- fun_l11_n125(x)
- else
- fun_l11_n667(x)
- end
-end
-
-def fun_l10_n583(x)
- if (x < 1)
- fun_l11_n829(x)
- else
- fun_l11_n802(x)
- end
-end
-
-def fun_l10_n584(x)
- if (x < 1)
- fun_l11_n649(x)
- else
- fun_l11_n39(x)
- end
-end
-
-def fun_l10_n585(x)
- if (x < 1)
- fun_l11_n454(x)
- else
- fun_l11_n541(x)
- end
-end
-
-def fun_l10_n586(x)
- if (x < 1)
- fun_l11_n281(x)
- else
- fun_l11_n4(x)
- end
-end
-
-def fun_l10_n587(x)
- if (x < 1)
- fun_l11_n382(x)
- else
- fun_l11_n656(x)
- end
-end
-
-def fun_l10_n588(x)
- if (x < 1)
- fun_l11_n177(x)
- else
- fun_l11_n38(x)
- end
-end
-
-def fun_l10_n589(x)
- if (x < 1)
- fun_l11_n555(x)
- else
- fun_l11_n557(x)
- end
-end
-
-def fun_l10_n590(x)
- if (x < 1)
- fun_l11_n999(x)
- else
- fun_l11_n645(x)
- end
-end
-
-def fun_l10_n591(x)
- if (x < 1)
- fun_l11_n714(x)
- else
- fun_l11_n872(x)
- end
-end
-
-def fun_l10_n592(x)
- if (x < 1)
- fun_l11_n779(x)
- else
- fun_l11_n524(x)
- end
-end
-
-def fun_l10_n593(x)
- if (x < 1)
- fun_l11_n557(x)
- else
- fun_l11_n906(x)
- end
-end
-
-def fun_l10_n594(x)
- if (x < 1)
- fun_l11_n379(x)
- else
- fun_l11_n550(x)
- end
-end
-
-def fun_l10_n595(x)
- if (x < 1)
- fun_l11_n138(x)
- else
- fun_l11_n785(x)
- end
-end
-
-def fun_l10_n596(x)
- if (x < 1)
- fun_l11_n486(x)
- else
- fun_l11_n381(x)
- end
-end
-
-def fun_l10_n597(x)
- if (x < 1)
- fun_l11_n374(x)
- else
- fun_l11_n477(x)
- end
-end
-
-def fun_l10_n598(x)
- if (x < 1)
- fun_l11_n113(x)
- else
- fun_l11_n455(x)
- end
-end
-
-def fun_l10_n599(x)
- if (x < 1)
- fun_l11_n31(x)
- else
- fun_l11_n983(x)
- end
-end
-
-def fun_l10_n600(x)
- if (x < 1)
- fun_l11_n758(x)
- else
- fun_l11_n187(x)
- end
-end
-
-def fun_l10_n601(x)
- if (x < 1)
- fun_l11_n198(x)
- else
- fun_l11_n436(x)
- end
-end
-
-def fun_l10_n602(x)
- if (x < 1)
- fun_l11_n207(x)
- else
- fun_l11_n86(x)
- end
-end
-
-def fun_l10_n603(x)
- if (x < 1)
- fun_l11_n827(x)
- else
- fun_l11_n267(x)
- end
-end
-
-def fun_l10_n604(x)
- if (x < 1)
- fun_l11_n760(x)
- else
- fun_l11_n707(x)
- end
-end
-
-def fun_l10_n605(x)
- if (x < 1)
- fun_l11_n791(x)
- else
- fun_l11_n249(x)
- end
-end
-
-def fun_l10_n606(x)
- if (x < 1)
- fun_l11_n634(x)
- else
- fun_l11_n607(x)
- end
-end
-
-def fun_l10_n607(x)
- if (x < 1)
- fun_l11_n605(x)
- else
- fun_l11_n698(x)
- end
-end
-
-def fun_l10_n608(x)
- if (x < 1)
- fun_l11_n401(x)
- else
- fun_l11_n316(x)
- end
-end
-
-def fun_l10_n609(x)
- if (x < 1)
- fun_l11_n928(x)
- else
- fun_l11_n313(x)
- end
-end
-
-def fun_l10_n610(x)
- if (x < 1)
- fun_l11_n601(x)
- else
- fun_l11_n278(x)
- end
-end
-
-def fun_l10_n611(x)
- if (x < 1)
- fun_l11_n554(x)
- else
- fun_l11_n584(x)
- end
-end
-
-def fun_l10_n612(x)
- if (x < 1)
- fun_l11_n906(x)
- else
- fun_l11_n58(x)
- end
-end
-
-def fun_l10_n613(x)
- if (x < 1)
- fun_l11_n85(x)
- else
- fun_l11_n631(x)
- end
-end
-
-def fun_l10_n614(x)
- if (x < 1)
- fun_l11_n221(x)
- else
- fun_l11_n85(x)
- end
-end
-
-def fun_l10_n615(x)
- if (x < 1)
- fun_l11_n88(x)
- else
- fun_l11_n367(x)
- end
-end
-
-def fun_l10_n616(x)
- if (x < 1)
- fun_l11_n693(x)
- else
- fun_l11_n385(x)
- end
-end
-
-def fun_l10_n617(x)
- if (x < 1)
- fun_l11_n18(x)
- else
- fun_l11_n526(x)
- end
-end
-
-def fun_l10_n618(x)
- if (x < 1)
- fun_l11_n307(x)
- else
- fun_l11_n303(x)
- end
-end
-
-def fun_l10_n619(x)
- if (x < 1)
- fun_l11_n972(x)
- else
- fun_l11_n246(x)
- end
-end
-
-def fun_l10_n620(x)
- if (x < 1)
- fun_l11_n185(x)
- else
- fun_l11_n512(x)
- end
-end
-
-def fun_l10_n621(x)
- if (x < 1)
- fun_l11_n87(x)
- else
- fun_l11_n131(x)
- end
-end
-
-def fun_l10_n622(x)
- if (x < 1)
- fun_l11_n617(x)
- else
- fun_l11_n869(x)
- end
-end
-
-def fun_l10_n623(x)
- if (x < 1)
- fun_l11_n514(x)
- else
- fun_l11_n824(x)
- end
-end
-
-def fun_l10_n624(x)
- if (x < 1)
- fun_l11_n551(x)
- else
- fun_l11_n430(x)
- end
-end
-
-def fun_l10_n625(x)
- if (x < 1)
- fun_l11_n266(x)
- else
- fun_l11_n826(x)
- end
-end
-
-def fun_l10_n626(x)
- if (x < 1)
- fun_l11_n90(x)
- else
- fun_l11_n866(x)
- end
-end
-
-def fun_l10_n627(x)
- if (x < 1)
- fun_l11_n34(x)
- else
- fun_l11_n694(x)
- end
-end
-
-def fun_l10_n628(x)
- if (x < 1)
- fun_l11_n455(x)
- else
- fun_l11_n990(x)
- end
-end
-
-def fun_l10_n629(x)
- if (x < 1)
- fun_l11_n573(x)
- else
- fun_l11_n874(x)
- end
-end
-
-def fun_l10_n630(x)
- if (x < 1)
- fun_l11_n836(x)
- else
- fun_l11_n87(x)
- end
-end
-
-def fun_l10_n631(x)
- if (x < 1)
- fun_l11_n234(x)
- else
- fun_l11_n389(x)
- end
-end
-
-def fun_l10_n632(x)
- if (x < 1)
- fun_l11_n647(x)
- else
- fun_l11_n655(x)
- end
-end
-
-def fun_l10_n633(x)
- if (x < 1)
- fun_l11_n649(x)
- else
- fun_l11_n426(x)
- end
-end
-
-def fun_l10_n634(x)
- if (x < 1)
- fun_l11_n613(x)
- else
- fun_l11_n10(x)
- end
-end
-
-def fun_l10_n635(x)
- if (x < 1)
- fun_l11_n315(x)
- else
- fun_l11_n419(x)
- end
-end
-
-def fun_l10_n636(x)
- if (x < 1)
- fun_l11_n575(x)
- else
- fun_l11_n29(x)
- end
-end
-
-def fun_l10_n637(x)
- if (x < 1)
- fun_l11_n75(x)
- else
- fun_l11_n710(x)
- end
-end
-
-def fun_l10_n638(x)
- if (x < 1)
- fun_l11_n42(x)
- else
- fun_l11_n45(x)
- end
-end
-
-def fun_l10_n639(x)
- if (x < 1)
- fun_l11_n629(x)
- else
- fun_l11_n850(x)
- end
-end
-
-def fun_l10_n640(x)
- if (x < 1)
- fun_l11_n491(x)
- else
- fun_l11_n708(x)
- end
-end
-
-def fun_l10_n641(x)
- if (x < 1)
- fun_l11_n673(x)
- else
- fun_l11_n722(x)
- end
-end
-
-def fun_l10_n642(x)
- if (x < 1)
- fun_l11_n922(x)
- else
- fun_l11_n783(x)
- end
-end
-
-def fun_l10_n643(x)
- if (x < 1)
- fun_l11_n855(x)
- else
- fun_l11_n145(x)
- end
-end
-
-def fun_l10_n644(x)
- if (x < 1)
- fun_l11_n897(x)
- else
- fun_l11_n281(x)
- end
-end
-
-def fun_l10_n645(x)
- if (x < 1)
- fun_l11_n148(x)
- else
- fun_l11_n786(x)
- end
-end
-
-def fun_l10_n646(x)
- if (x < 1)
- fun_l11_n743(x)
- else
- fun_l11_n627(x)
- end
-end
-
-def fun_l10_n647(x)
- if (x < 1)
- fun_l11_n343(x)
- else
- fun_l11_n234(x)
- end
-end
-
-def fun_l10_n648(x)
- if (x < 1)
- fun_l11_n995(x)
- else
- fun_l11_n199(x)
- end
-end
-
-def fun_l10_n649(x)
- if (x < 1)
- fun_l11_n155(x)
- else
- fun_l11_n384(x)
- end
-end
-
-def fun_l10_n650(x)
- if (x < 1)
- fun_l11_n329(x)
- else
- fun_l11_n313(x)
- end
-end
-
-def fun_l10_n651(x)
- if (x < 1)
- fun_l11_n254(x)
- else
- fun_l11_n763(x)
- end
-end
-
-def fun_l10_n652(x)
- if (x < 1)
- fun_l11_n839(x)
- else
- fun_l11_n692(x)
- end
-end
-
-def fun_l10_n653(x)
- if (x < 1)
- fun_l11_n388(x)
- else
- fun_l11_n187(x)
- end
-end
-
-def fun_l10_n654(x)
- if (x < 1)
- fun_l11_n919(x)
- else
- fun_l11_n198(x)
- end
-end
-
-def fun_l10_n655(x)
- if (x < 1)
- fun_l11_n313(x)
- else
- fun_l11_n686(x)
- end
-end
-
-def fun_l10_n656(x)
- if (x < 1)
- fun_l11_n91(x)
- else
- fun_l11_n95(x)
- end
-end
-
-def fun_l10_n657(x)
- if (x < 1)
- fun_l11_n801(x)
- else
- fun_l11_n700(x)
- end
-end
-
-def fun_l10_n658(x)
- if (x < 1)
- fun_l11_n938(x)
- else
- fun_l11_n936(x)
- end
-end
-
-def fun_l10_n659(x)
- if (x < 1)
- fun_l11_n78(x)
- else
- fun_l11_n611(x)
- end
-end
-
-def fun_l10_n660(x)
- if (x < 1)
- fun_l11_n261(x)
- else
- fun_l11_n396(x)
- end
-end
-
-def fun_l10_n661(x)
- if (x < 1)
- fun_l11_n154(x)
- else
- fun_l11_n132(x)
- end
-end
-
-def fun_l10_n662(x)
- if (x < 1)
- fun_l11_n603(x)
- else
- fun_l11_n718(x)
- end
-end
-
-def fun_l10_n663(x)
- if (x < 1)
- fun_l11_n512(x)
- else
- fun_l11_n158(x)
- end
-end
-
-def fun_l10_n664(x)
- if (x < 1)
- fun_l11_n178(x)
- else
- fun_l11_n59(x)
- end
-end
-
-def fun_l10_n665(x)
- if (x < 1)
- fun_l11_n703(x)
- else
- fun_l11_n54(x)
- end
-end
-
-def fun_l10_n666(x)
- if (x < 1)
- fun_l11_n623(x)
- else
- fun_l11_n793(x)
- end
-end
-
-def fun_l10_n667(x)
- if (x < 1)
- fun_l11_n350(x)
- else
- fun_l11_n244(x)
- end
-end
-
-def fun_l10_n668(x)
- if (x < 1)
- fun_l11_n253(x)
- else
- fun_l11_n297(x)
- end
-end
-
-def fun_l10_n669(x)
- if (x < 1)
- fun_l11_n137(x)
- else
- fun_l11_n76(x)
- end
-end
-
-def fun_l10_n670(x)
- if (x < 1)
- fun_l11_n755(x)
- else
- fun_l11_n627(x)
- end
-end
-
-def fun_l10_n671(x)
- if (x < 1)
- fun_l11_n393(x)
- else
- fun_l11_n394(x)
- end
-end
-
-def fun_l10_n672(x)
- if (x < 1)
- fun_l11_n858(x)
- else
- fun_l11_n823(x)
- end
-end
-
-def fun_l10_n673(x)
- if (x < 1)
- fun_l11_n202(x)
- else
- fun_l11_n800(x)
- end
-end
-
-def fun_l10_n674(x)
- if (x < 1)
- fun_l11_n977(x)
- else
- fun_l11_n343(x)
- end
-end
-
-def fun_l10_n675(x)
- if (x < 1)
- fun_l11_n352(x)
- else
- fun_l11_n690(x)
- end
-end
-
-def fun_l10_n676(x)
- if (x < 1)
- fun_l11_n598(x)
- else
- fun_l11_n108(x)
- end
-end
-
-def fun_l10_n677(x)
- if (x < 1)
- fun_l11_n126(x)
- else
- fun_l11_n226(x)
- end
-end
-
-def fun_l10_n678(x)
- if (x < 1)
- fun_l11_n937(x)
- else
- fun_l11_n846(x)
- end
-end
-
-def fun_l10_n679(x)
- if (x < 1)
- fun_l11_n231(x)
- else
- fun_l11_n264(x)
- end
-end
-
-def fun_l10_n680(x)
- if (x < 1)
- fun_l11_n657(x)
- else
- fun_l11_n766(x)
- end
-end
-
-def fun_l10_n681(x)
- if (x < 1)
- fun_l11_n444(x)
- else
- fun_l11_n405(x)
- end
-end
-
-def fun_l10_n682(x)
- if (x < 1)
- fun_l11_n410(x)
- else
- fun_l11_n409(x)
- end
-end
-
-def fun_l10_n683(x)
- if (x < 1)
- fun_l11_n690(x)
- else
- fun_l11_n673(x)
- end
-end
-
-def fun_l10_n684(x)
- if (x < 1)
- fun_l11_n737(x)
- else
- fun_l11_n61(x)
- end
-end
-
-def fun_l10_n685(x)
- if (x < 1)
- fun_l11_n54(x)
- else
- fun_l11_n387(x)
- end
-end
-
-def fun_l10_n686(x)
- if (x < 1)
- fun_l11_n271(x)
- else
- fun_l11_n698(x)
- end
-end
-
-def fun_l10_n687(x)
- if (x < 1)
- fun_l11_n988(x)
- else
- fun_l11_n816(x)
- end
-end
-
-def fun_l10_n688(x)
- if (x < 1)
- fun_l11_n309(x)
- else
- fun_l11_n576(x)
- end
-end
-
-def fun_l10_n689(x)
- if (x < 1)
- fun_l11_n390(x)
- else
- fun_l11_n35(x)
- end
-end
-
-def fun_l10_n690(x)
- if (x < 1)
- fun_l11_n93(x)
- else
- fun_l11_n712(x)
- end
-end
-
-def fun_l10_n691(x)
- if (x < 1)
- fun_l11_n285(x)
- else
- fun_l11_n467(x)
- end
-end
-
-def fun_l10_n692(x)
- if (x < 1)
- fun_l11_n403(x)
- else
- fun_l11_n41(x)
- end
-end
-
-def fun_l10_n693(x)
- if (x < 1)
- fun_l11_n228(x)
- else
- fun_l11_n689(x)
- end
-end
-
-def fun_l10_n694(x)
- if (x < 1)
- fun_l11_n581(x)
- else
- fun_l11_n989(x)
- end
-end
-
-def fun_l10_n695(x)
- if (x < 1)
- fun_l11_n451(x)
- else
- fun_l11_n618(x)
- end
-end
-
-def fun_l10_n696(x)
- if (x < 1)
- fun_l11_n640(x)
- else
- fun_l11_n13(x)
- end
-end
-
-def fun_l10_n697(x)
- if (x < 1)
- fun_l11_n968(x)
- else
- fun_l11_n903(x)
- end
-end
-
-def fun_l10_n698(x)
- if (x < 1)
- fun_l11_n918(x)
- else
- fun_l11_n244(x)
- end
-end
-
-def fun_l10_n699(x)
- if (x < 1)
- fun_l11_n17(x)
- else
- fun_l11_n17(x)
- end
-end
-
-def fun_l10_n700(x)
- if (x < 1)
- fun_l11_n918(x)
- else
- fun_l11_n539(x)
- end
-end
-
-def fun_l10_n701(x)
- if (x < 1)
- fun_l11_n924(x)
- else
- fun_l11_n103(x)
- end
-end
-
-def fun_l10_n702(x)
- if (x < 1)
- fun_l11_n908(x)
- else
- fun_l11_n328(x)
- end
-end
-
-def fun_l10_n703(x)
- if (x < 1)
- fun_l11_n393(x)
- else
- fun_l11_n386(x)
- end
-end
-
-def fun_l10_n704(x)
- if (x < 1)
- fun_l11_n194(x)
- else
- fun_l11_n812(x)
- end
-end
-
-def fun_l10_n705(x)
- if (x < 1)
- fun_l11_n382(x)
- else
- fun_l11_n276(x)
- end
-end
-
-def fun_l10_n706(x)
- if (x < 1)
- fun_l11_n257(x)
- else
- fun_l11_n269(x)
- end
-end
-
-def fun_l10_n707(x)
- if (x < 1)
- fun_l11_n940(x)
- else
- fun_l11_n593(x)
- end
-end
-
-def fun_l10_n708(x)
- if (x < 1)
- fun_l11_n710(x)
- else
- fun_l11_n992(x)
- end
-end
-
-def fun_l10_n709(x)
- if (x < 1)
- fun_l11_n244(x)
- else
- fun_l11_n500(x)
- end
-end
-
-def fun_l10_n710(x)
- if (x < 1)
- fun_l11_n712(x)
- else
- fun_l11_n544(x)
- end
-end
-
-def fun_l10_n711(x)
- if (x < 1)
- fun_l11_n701(x)
- else
- fun_l11_n104(x)
- end
-end
-
-def fun_l10_n712(x)
- if (x < 1)
- fun_l11_n706(x)
- else
- fun_l11_n199(x)
- end
-end
-
-def fun_l10_n713(x)
- if (x < 1)
- fun_l11_n189(x)
- else
- fun_l11_n840(x)
- end
-end
-
-def fun_l10_n714(x)
- if (x < 1)
- fun_l11_n122(x)
- else
- fun_l11_n318(x)
- end
-end
-
-def fun_l10_n715(x)
- if (x < 1)
- fun_l11_n915(x)
- else
- fun_l11_n964(x)
- end
-end
-
-def fun_l10_n716(x)
- if (x < 1)
- fun_l11_n341(x)
- else
- fun_l11_n118(x)
- end
-end
-
-def fun_l10_n717(x)
- if (x < 1)
- fun_l11_n846(x)
- else
- fun_l11_n235(x)
- end
-end
-
-def fun_l10_n718(x)
- if (x < 1)
- fun_l11_n679(x)
- else
- fun_l11_n959(x)
- end
-end
-
-def fun_l10_n719(x)
- if (x < 1)
- fun_l11_n121(x)
- else
- fun_l11_n708(x)
- end
-end
-
-def fun_l10_n720(x)
- if (x < 1)
- fun_l11_n651(x)
- else
- fun_l11_n480(x)
- end
-end
-
-def fun_l10_n721(x)
- if (x < 1)
- fun_l11_n773(x)
- else
- fun_l11_n568(x)
- end
-end
-
-def fun_l10_n722(x)
- if (x < 1)
- fun_l11_n809(x)
- else
- fun_l11_n111(x)
- end
-end
-
-def fun_l10_n723(x)
- if (x < 1)
- fun_l11_n586(x)
- else
- fun_l11_n553(x)
- end
-end
-
-def fun_l10_n724(x)
- if (x < 1)
- fun_l11_n473(x)
- else
- fun_l11_n387(x)
- end
-end
-
-def fun_l10_n725(x)
- if (x < 1)
- fun_l11_n584(x)
- else
- fun_l11_n224(x)
- end
-end
-
-def fun_l10_n726(x)
- if (x < 1)
- fun_l11_n110(x)
- else
- fun_l11_n827(x)
- end
-end
-
-def fun_l10_n727(x)
- if (x < 1)
- fun_l11_n753(x)
- else
- fun_l11_n745(x)
- end
-end
-
-def fun_l10_n728(x)
- if (x < 1)
- fun_l11_n550(x)
- else
- fun_l11_n380(x)
- end
-end
-
-def fun_l10_n729(x)
- if (x < 1)
- fun_l11_n844(x)
- else
- fun_l11_n401(x)
- end
-end
-
-def fun_l10_n730(x)
- if (x < 1)
- fun_l11_n837(x)
- else
- fun_l11_n759(x)
- end
-end
-
-def fun_l10_n731(x)
- if (x < 1)
- fun_l11_n850(x)
- else
- fun_l11_n953(x)
- end
-end
-
-def fun_l10_n732(x)
- if (x < 1)
- fun_l11_n872(x)
- else
- fun_l11_n864(x)
- end
-end
-
-def fun_l10_n733(x)
- if (x < 1)
- fun_l11_n894(x)
- else
- fun_l11_n943(x)
- end
-end
-
-def fun_l10_n734(x)
- if (x < 1)
- fun_l11_n830(x)
- else
- fun_l11_n858(x)
- end
-end
-
-def fun_l10_n735(x)
- if (x < 1)
- fun_l11_n661(x)
- else
- fun_l11_n366(x)
- end
-end
-
-def fun_l10_n736(x)
- if (x < 1)
- fun_l11_n736(x)
- else
- fun_l11_n636(x)
- end
-end
-
-def fun_l10_n737(x)
- if (x < 1)
- fun_l11_n316(x)
- else
- fun_l11_n977(x)
- end
-end
-
-def fun_l10_n738(x)
- if (x < 1)
- fun_l11_n54(x)
- else
- fun_l11_n386(x)
- end
-end
-
-def fun_l10_n739(x)
- if (x < 1)
- fun_l11_n985(x)
- else
- fun_l11_n274(x)
- end
-end
-
-def fun_l10_n740(x)
- if (x < 1)
- fun_l11_n756(x)
- else
- fun_l11_n171(x)
- end
-end
-
-def fun_l10_n741(x)
- if (x < 1)
- fun_l11_n457(x)
- else
- fun_l11_n251(x)
- end
-end
-
-def fun_l10_n742(x)
- if (x < 1)
- fun_l11_n751(x)
- else
- fun_l11_n29(x)
- end
-end
-
-def fun_l10_n743(x)
- if (x < 1)
- fun_l11_n6(x)
- else
- fun_l11_n892(x)
- end
-end
-
-def fun_l10_n744(x)
- if (x < 1)
- fun_l11_n85(x)
- else
- fun_l11_n205(x)
- end
-end
-
-def fun_l10_n745(x)
- if (x < 1)
- fun_l11_n887(x)
- else
- fun_l11_n734(x)
- end
-end
-
-def fun_l10_n746(x)
- if (x < 1)
- fun_l11_n478(x)
- else
- fun_l11_n505(x)
- end
-end
-
-def fun_l10_n747(x)
- if (x < 1)
- fun_l11_n760(x)
- else
- fun_l11_n286(x)
- end
-end
-
-def fun_l10_n748(x)
- if (x < 1)
- fun_l11_n391(x)
- else
- fun_l11_n69(x)
- end
-end
-
-def fun_l10_n749(x)
- if (x < 1)
- fun_l11_n780(x)
- else
- fun_l11_n28(x)
- end
-end
-
-def fun_l10_n750(x)
- if (x < 1)
- fun_l11_n337(x)
- else
- fun_l11_n647(x)
- end
-end
-
-def fun_l10_n751(x)
- if (x < 1)
- fun_l11_n92(x)
- else
- fun_l11_n121(x)
- end
-end
-
-def fun_l10_n752(x)
- if (x < 1)
- fun_l11_n358(x)
- else
- fun_l11_n177(x)
- end
-end
-
-def fun_l10_n753(x)
- if (x < 1)
- fun_l11_n642(x)
- else
- fun_l11_n426(x)
- end
-end
-
-def fun_l10_n754(x)
- if (x < 1)
- fun_l11_n66(x)
- else
- fun_l11_n948(x)
- end
-end
-
-def fun_l10_n755(x)
- if (x < 1)
- fun_l11_n45(x)
- else
- fun_l11_n795(x)
- end
-end
-
-def fun_l10_n756(x)
- if (x < 1)
- fun_l11_n734(x)
- else
- fun_l11_n162(x)
- end
-end
-
-def fun_l10_n757(x)
- if (x < 1)
- fun_l11_n689(x)
- else
- fun_l11_n31(x)
- end
-end
-
-def fun_l10_n758(x)
- if (x < 1)
- fun_l11_n33(x)
- else
- fun_l11_n992(x)
- end
-end
-
-def fun_l10_n759(x)
- if (x < 1)
- fun_l11_n210(x)
- else
- fun_l11_n330(x)
- end
-end
-
-def fun_l10_n760(x)
- if (x < 1)
- fun_l11_n727(x)
- else
- fun_l11_n265(x)
- end
-end
-
-def fun_l10_n761(x)
- if (x < 1)
- fun_l11_n710(x)
- else
- fun_l11_n706(x)
- end
-end
-
-def fun_l10_n762(x)
- if (x < 1)
- fun_l11_n791(x)
- else
- fun_l11_n325(x)
- end
-end
-
-def fun_l10_n763(x)
- if (x < 1)
- fun_l11_n350(x)
- else
- fun_l11_n443(x)
- end
-end
-
-def fun_l10_n764(x)
- if (x < 1)
- fun_l11_n522(x)
- else
- fun_l11_n662(x)
- end
-end
-
-def fun_l10_n765(x)
- if (x < 1)
- fun_l11_n786(x)
- else
- fun_l11_n969(x)
- end
-end
-
-def fun_l10_n766(x)
- if (x < 1)
- fun_l11_n486(x)
- else
- fun_l11_n834(x)
- end
-end
-
-def fun_l10_n767(x)
- if (x < 1)
- fun_l11_n84(x)
- else
- fun_l11_n989(x)
- end
-end
-
-def fun_l10_n768(x)
- if (x < 1)
- fun_l11_n511(x)
- else
- fun_l11_n0(x)
- end
-end
-
-def fun_l10_n769(x)
- if (x < 1)
- fun_l11_n459(x)
- else
- fun_l11_n243(x)
- end
-end
-
-def fun_l10_n770(x)
- if (x < 1)
- fun_l11_n59(x)
- else
- fun_l11_n267(x)
- end
-end
-
-def fun_l10_n771(x)
- if (x < 1)
- fun_l11_n435(x)
- else
- fun_l11_n132(x)
- end
-end
-
-def fun_l10_n772(x)
- if (x < 1)
- fun_l11_n986(x)
- else
- fun_l11_n227(x)
- end
-end
-
-def fun_l10_n773(x)
- if (x < 1)
- fun_l11_n931(x)
- else
- fun_l11_n215(x)
- end
-end
-
-def fun_l10_n774(x)
- if (x < 1)
- fun_l11_n586(x)
- else
- fun_l11_n170(x)
- end
-end
-
-def fun_l10_n775(x)
- if (x < 1)
- fun_l11_n334(x)
- else
- fun_l11_n780(x)
- end
-end
-
-def fun_l10_n776(x)
- if (x < 1)
- fun_l11_n81(x)
- else
- fun_l11_n583(x)
- end
-end
-
-def fun_l10_n777(x)
- if (x < 1)
- fun_l11_n118(x)
- else
- fun_l11_n451(x)
- end
-end
-
-def fun_l10_n778(x)
- if (x < 1)
- fun_l11_n767(x)
- else
- fun_l11_n824(x)
- end
-end
-
-def fun_l10_n779(x)
- if (x < 1)
- fun_l11_n270(x)
- else
- fun_l11_n725(x)
- end
-end
-
-def fun_l10_n780(x)
- if (x < 1)
- fun_l11_n146(x)
- else
- fun_l11_n407(x)
- end
-end
-
-def fun_l10_n781(x)
- if (x < 1)
- fun_l11_n103(x)
- else
- fun_l11_n523(x)
- end
-end
-
-def fun_l10_n782(x)
- if (x < 1)
- fun_l11_n499(x)
- else
- fun_l11_n710(x)
- end
-end
-
-def fun_l10_n783(x)
- if (x < 1)
- fun_l11_n971(x)
- else
- fun_l11_n426(x)
- end
-end
-
-def fun_l10_n784(x)
- if (x < 1)
- fun_l11_n457(x)
- else
- fun_l11_n207(x)
- end
-end
-
-def fun_l10_n785(x)
- if (x < 1)
- fun_l11_n307(x)
- else
- fun_l11_n19(x)
- end
-end
-
-def fun_l10_n786(x)
- if (x < 1)
- fun_l11_n458(x)
- else
- fun_l11_n243(x)
- end
-end
-
-def fun_l10_n787(x)
- if (x < 1)
- fun_l11_n488(x)
- else
- fun_l11_n694(x)
- end
-end
-
-def fun_l10_n788(x)
- if (x < 1)
- fun_l11_n422(x)
- else
- fun_l11_n201(x)
- end
-end
-
-def fun_l10_n789(x)
- if (x < 1)
- fun_l11_n45(x)
- else
- fun_l11_n993(x)
- end
-end
-
-def fun_l10_n790(x)
- if (x < 1)
- fun_l11_n443(x)
- else
- fun_l11_n124(x)
- end
-end
-
-def fun_l10_n791(x)
- if (x < 1)
- fun_l11_n875(x)
- else
- fun_l11_n605(x)
- end
-end
-
-def fun_l10_n792(x)
- if (x < 1)
- fun_l11_n836(x)
- else
- fun_l11_n776(x)
- end
-end
-
-def fun_l10_n793(x)
- if (x < 1)
- fun_l11_n58(x)
- else
- fun_l11_n847(x)
- end
-end
-
-def fun_l10_n794(x)
- if (x < 1)
- fun_l11_n334(x)
- else
- fun_l11_n981(x)
- end
-end
-
-def fun_l10_n795(x)
- if (x < 1)
- fun_l11_n187(x)
- else
- fun_l11_n599(x)
- end
-end
-
-def fun_l10_n796(x)
- if (x < 1)
- fun_l11_n37(x)
- else
- fun_l11_n211(x)
- end
-end
-
-def fun_l10_n797(x)
- if (x < 1)
- fun_l11_n770(x)
- else
- fun_l11_n688(x)
- end
-end
-
-def fun_l10_n798(x)
- if (x < 1)
- fun_l11_n728(x)
- else
- fun_l11_n150(x)
- end
-end
-
-def fun_l10_n799(x)
- if (x < 1)
- fun_l11_n175(x)
- else
- fun_l11_n762(x)
- end
-end
-
-def fun_l10_n800(x)
- if (x < 1)
- fun_l11_n977(x)
- else
- fun_l11_n86(x)
- end
-end
-
-def fun_l10_n801(x)
- if (x < 1)
- fun_l11_n669(x)
- else
- fun_l11_n120(x)
- end
-end
-
-def fun_l10_n802(x)
- if (x < 1)
- fun_l11_n630(x)
- else
- fun_l11_n839(x)
- end
-end
-
-def fun_l10_n803(x)
- if (x < 1)
- fun_l11_n505(x)
- else
- fun_l11_n461(x)
- end
-end
-
-def fun_l10_n804(x)
- if (x < 1)
- fun_l11_n757(x)
- else
- fun_l11_n620(x)
- end
-end
-
-def fun_l10_n805(x)
- if (x < 1)
- fun_l11_n379(x)
- else
- fun_l11_n468(x)
- end
-end
-
-def fun_l10_n806(x)
- if (x < 1)
- fun_l11_n708(x)
- else
- fun_l11_n73(x)
- end
-end
-
-def fun_l10_n807(x)
- if (x < 1)
- fun_l11_n340(x)
- else
- fun_l11_n671(x)
- end
-end
-
-def fun_l10_n808(x)
- if (x < 1)
- fun_l11_n628(x)
- else
- fun_l11_n912(x)
- end
-end
-
-def fun_l10_n809(x)
- if (x < 1)
- fun_l11_n455(x)
- else
- fun_l11_n20(x)
- end
-end
-
-def fun_l10_n810(x)
- if (x < 1)
- fun_l11_n211(x)
- else
- fun_l11_n724(x)
- end
-end
-
-def fun_l10_n811(x)
- if (x < 1)
- fun_l11_n982(x)
- else
- fun_l11_n876(x)
- end
-end
-
-def fun_l10_n812(x)
- if (x < 1)
- fun_l11_n455(x)
- else
- fun_l11_n846(x)
- end
-end
-
-def fun_l10_n813(x)
- if (x < 1)
- fun_l11_n317(x)
- else
- fun_l11_n909(x)
- end
-end
-
-def fun_l10_n814(x)
- if (x < 1)
- fun_l11_n622(x)
- else
- fun_l11_n147(x)
- end
-end
-
-def fun_l10_n815(x)
- if (x < 1)
- fun_l11_n174(x)
- else
- fun_l11_n660(x)
- end
-end
-
-def fun_l10_n816(x)
- if (x < 1)
- fun_l11_n63(x)
- else
- fun_l11_n427(x)
- end
-end
-
-def fun_l10_n817(x)
- if (x < 1)
- fun_l11_n944(x)
- else
- fun_l11_n40(x)
- end
-end
-
-def fun_l10_n818(x)
- if (x < 1)
- fun_l11_n887(x)
- else
- fun_l11_n641(x)
- end
-end
-
-def fun_l10_n819(x)
- if (x < 1)
- fun_l11_n237(x)
- else
- fun_l11_n568(x)
- end
-end
-
-def fun_l10_n820(x)
- if (x < 1)
- fun_l11_n415(x)
- else
- fun_l11_n374(x)
- end
-end
-
-def fun_l10_n821(x)
- if (x < 1)
- fun_l11_n183(x)
- else
- fun_l11_n38(x)
- end
-end
-
-def fun_l10_n822(x)
- if (x < 1)
- fun_l11_n835(x)
- else
- fun_l11_n406(x)
- end
-end
-
-def fun_l10_n823(x)
- if (x < 1)
- fun_l11_n233(x)
- else
- fun_l11_n118(x)
- end
-end
-
-def fun_l10_n824(x)
- if (x < 1)
- fun_l11_n898(x)
- else
- fun_l11_n543(x)
- end
-end
-
-def fun_l10_n825(x)
- if (x < 1)
- fun_l11_n971(x)
- else
- fun_l11_n750(x)
- end
-end
-
-def fun_l10_n826(x)
- if (x < 1)
- fun_l11_n254(x)
- else
- fun_l11_n759(x)
- end
-end
-
-def fun_l10_n827(x)
- if (x < 1)
- fun_l11_n953(x)
- else
- fun_l11_n187(x)
- end
-end
-
-def fun_l10_n828(x)
- if (x < 1)
- fun_l11_n403(x)
- else
- fun_l11_n170(x)
- end
-end
-
-def fun_l10_n829(x)
- if (x < 1)
- fun_l11_n251(x)
- else
- fun_l11_n506(x)
- end
-end
-
-def fun_l10_n830(x)
- if (x < 1)
- fun_l11_n426(x)
- else
- fun_l11_n325(x)
- end
-end
-
-def fun_l10_n831(x)
- if (x < 1)
- fun_l11_n958(x)
- else
- fun_l11_n4(x)
- end
-end
-
-def fun_l10_n832(x)
- if (x < 1)
- fun_l11_n628(x)
- else
- fun_l11_n920(x)
- end
-end
-
-def fun_l10_n833(x)
- if (x < 1)
- fun_l11_n241(x)
- else
- fun_l11_n459(x)
- end
-end
-
-def fun_l10_n834(x)
- if (x < 1)
- fun_l11_n559(x)
- else
- fun_l11_n671(x)
- end
-end
-
-def fun_l10_n835(x)
- if (x < 1)
- fun_l11_n980(x)
- else
- fun_l11_n295(x)
- end
-end
-
-def fun_l10_n836(x)
- if (x < 1)
- fun_l11_n306(x)
- else
- fun_l11_n143(x)
- end
-end
-
-def fun_l10_n837(x)
- if (x < 1)
- fun_l11_n176(x)
- else
- fun_l11_n341(x)
- end
-end
-
-def fun_l10_n838(x)
- if (x < 1)
- fun_l11_n130(x)
- else
- fun_l11_n380(x)
- end
-end
-
-def fun_l10_n839(x)
- if (x < 1)
- fun_l11_n630(x)
- else
- fun_l11_n216(x)
- end
-end
-
-def fun_l10_n840(x)
- if (x < 1)
- fun_l11_n500(x)
- else
- fun_l11_n579(x)
- end
-end
-
-def fun_l10_n841(x)
- if (x < 1)
- fun_l11_n312(x)
- else
- fun_l11_n656(x)
- end
-end
-
-def fun_l10_n842(x)
- if (x < 1)
- fun_l11_n209(x)
- else
- fun_l11_n332(x)
- end
-end
-
-def fun_l10_n843(x)
- if (x < 1)
- fun_l11_n555(x)
- else
- fun_l11_n179(x)
- end
-end
-
-def fun_l10_n844(x)
- if (x < 1)
- fun_l11_n154(x)
- else
- fun_l11_n284(x)
- end
-end
-
-def fun_l10_n845(x)
- if (x < 1)
- fun_l11_n912(x)
- else
- fun_l11_n543(x)
- end
-end
-
-def fun_l10_n846(x)
- if (x < 1)
- fun_l11_n346(x)
- else
- fun_l11_n553(x)
- end
-end
-
-def fun_l10_n847(x)
- if (x < 1)
- fun_l11_n117(x)
- else
- fun_l11_n738(x)
- end
-end
-
-def fun_l10_n848(x)
- if (x < 1)
- fun_l11_n664(x)
- else
- fun_l11_n988(x)
- end
-end
-
-def fun_l10_n849(x)
- if (x < 1)
- fun_l11_n298(x)
- else
- fun_l11_n753(x)
- end
-end
-
-def fun_l10_n850(x)
- if (x < 1)
- fun_l11_n177(x)
- else
- fun_l11_n690(x)
- end
-end
-
-def fun_l10_n851(x)
- if (x < 1)
- fun_l11_n259(x)
- else
- fun_l11_n713(x)
- end
-end
-
-def fun_l10_n852(x)
- if (x < 1)
- fun_l11_n151(x)
- else
- fun_l11_n580(x)
- end
-end
-
-def fun_l10_n853(x)
- if (x < 1)
- fun_l11_n274(x)
- else
- fun_l11_n703(x)
- end
-end
-
-def fun_l10_n854(x)
- if (x < 1)
- fun_l11_n295(x)
- else
- fun_l11_n885(x)
- end
-end
-
-def fun_l10_n855(x)
- if (x < 1)
- fun_l11_n513(x)
- else
- fun_l11_n963(x)
- end
-end
-
-def fun_l10_n856(x)
- if (x < 1)
- fun_l11_n855(x)
- else
- fun_l11_n435(x)
- end
-end
-
-def fun_l10_n857(x)
- if (x < 1)
- fun_l11_n573(x)
- else
- fun_l11_n489(x)
- end
-end
-
-def fun_l10_n858(x)
- if (x < 1)
- fun_l11_n880(x)
- else
- fun_l11_n91(x)
- end
-end
-
-def fun_l10_n859(x)
- if (x < 1)
- fun_l11_n993(x)
- else
- fun_l11_n358(x)
- end
-end
-
-def fun_l10_n860(x)
- if (x < 1)
- fun_l11_n836(x)
- else
- fun_l11_n192(x)
- end
-end
-
-def fun_l10_n861(x)
- if (x < 1)
- fun_l11_n493(x)
- else
- fun_l11_n564(x)
- end
-end
-
-def fun_l10_n862(x)
- if (x < 1)
- fun_l11_n111(x)
- else
- fun_l11_n8(x)
- end
-end
-
-def fun_l10_n863(x)
- if (x < 1)
- fun_l11_n596(x)
- else
- fun_l11_n129(x)
- end
-end
-
-def fun_l10_n864(x)
- if (x < 1)
- fun_l11_n0(x)
- else
- fun_l11_n687(x)
- end
-end
-
-def fun_l10_n865(x)
- if (x < 1)
- fun_l11_n543(x)
- else
- fun_l11_n866(x)
- end
-end
-
-def fun_l10_n866(x)
- if (x < 1)
- fun_l11_n398(x)
- else
- fun_l11_n532(x)
- end
-end
-
-def fun_l10_n867(x)
- if (x < 1)
- fun_l11_n15(x)
- else
- fun_l11_n991(x)
- end
-end
-
-def fun_l10_n868(x)
- if (x < 1)
- fun_l11_n890(x)
- else
- fun_l11_n222(x)
- end
-end
-
-def fun_l10_n869(x)
- if (x < 1)
- fun_l11_n206(x)
- else
- fun_l11_n983(x)
- end
-end
-
-def fun_l10_n870(x)
- if (x < 1)
- fun_l11_n869(x)
- else
- fun_l11_n619(x)
- end
-end
-
-def fun_l10_n871(x)
- if (x < 1)
- fun_l11_n417(x)
- else
- fun_l11_n18(x)
- end
-end
-
-def fun_l10_n872(x)
- if (x < 1)
- fun_l11_n738(x)
- else
- fun_l11_n473(x)
- end
-end
-
-def fun_l10_n873(x)
- if (x < 1)
- fun_l11_n773(x)
- else
- fun_l11_n128(x)
- end
-end
-
-def fun_l10_n874(x)
- if (x < 1)
- fun_l11_n930(x)
- else
- fun_l11_n563(x)
- end
-end
-
-def fun_l10_n875(x)
- if (x < 1)
- fun_l11_n868(x)
- else
- fun_l11_n356(x)
- end
-end
-
-def fun_l10_n876(x)
- if (x < 1)
- fun_l11_n533(x)
- else
- fun_l11_n402(x)
- end
-end
-
-def fun_l10_n877(x)
- if (x < 1)
- fun_l11_n959(x)
- else
- fun_l11_n921(x)
- end
-end
-
-def fun_l10_n878(x)
- if (x < 1)
- fun_l11_n717(x)
- else
- fun_l11_n484(x)
- end
-end
-
-def fun_l10_n879(x)
- if (x < 1)
- fun_l11_n583(x)
- else
- fun_l11_n801(x)
- end
-end
-
-def fun_l10_n880(x)
- if (x < 1)
- fun_l11_n576(x)
- else
- fun_l11_n811(x)
- end
-end
-
-def fun_l10_n881(x)
- if (x < 1)
- fun_l11_n382(x)
- else
- fun_l11_n585(x)
- end
-end
-
-def fun_l10_n882(x)
- if (x < 1)
- fun_l11_n648(x)
- else
- fun_l11_n930(x)
- end
-end
-
-def fun_l10_n883(x)
- if (x < 1)
- fun_l11_n246(x)
- else
- fun_l11_n636(x)
- end
-end
-
-def fun_l10_n884(x)
- if (x < 1)
- fun_l11_n112(x)
- else
- fun_l11_n798(x)
- end
-end
-
-def fun_l10_n885(x)
- if (x < 1)
- fun_l11_n517(x)
- else
- fun_l11_n633(x)
- end
-end
-
-def fun_l10_n886(x)
- if (x < 1)
- fun_l11_n651(x)
- else
- fun_l11_n377(x)
- end
-end
-
-def fun_l10_n887(x)
- if (x < 1)
- fun_l11_n652(x)
- else
- fun_l11_n419(x)
- end
-end
-
-def fun_l10_n888(x)
- if (x < 1)
- fun_l11_n346(x)
- else
- fun_l11_n294(x)
- end
-end
-
-def fun_l10_n889(x)
- if (x < 1)
- fun_l11_n809(x)
- else
- fun_l11_n844(x)
- end
-end
-
-def fun_l10_n890(x)
- if (x < 1)
- fun_l11_n382(x)
- else
- fun_l11_n930(x)
- end
-end
-
-def fun_l10_n891(x)
- if (x < 1)
- fun_l11_n900(x)
- else
- fun_l11_n293(x)
- end
-end
-
-def fun_l10_n892(x)
- if (x < 1)
- fun_l11_n912(x)
- else
- fun_l11_n46(x)
- end
-end
-
-def fun_l10_n893(x)
- if (x < 1)
- fun_l11_n429(x)
- else
- fun_l11_n174(x)
- end
-end
-
-def fun_l10_n894(x)
- if (x < 1)
- fun_l11_n142(x)
- else
- fun_l11_n739(x)
- end
-end
-
-def fun_l10_n895(x)
- if (x < 1)
- fun_l11_n300(x)
- else
- fun_l11_n546(x)
- end
-end
-
-def fun_l10_n896(x)
- if (x < 1)
- fun_l11_n253(x)
- else
- fun_l11_n555(x)
- end
-end
-
-def fun_l10_n897(x)
- if (x < 1)
- fun_l11_n29(x)
- else
- fun_l11_n913(x)
- end
-end
-
-def fun_l10_n898(x)
- if (x < 1)
- fun_l11_n879(x)
- else
- fun_l11_n2(x)
- end
-end
-
-def fun_l10_n899(x)
- if (x < 1)
- fun_l11_n191(x)
- else
- fun_l11_n418(x)
- end
-end
-
-def fun_l10_n900(x)
- if (x < 1)
- fun_l11_n239(x)
- else
- fun_l11_n904(x)
- end
-end
-
-def fun_l10_n901(x)
- if (x < 1)
- fun_l11_n962(x)
- else
- fun_l11_n978(x)
- end
-end
-
-def fun_l10_n902(x)
- if (x < 1)
- fun_l11_n343(x)
- else
- fun_l11_n358(x)
- end
-end
-
-def fun_l10_n903(x)
- if (x < 1)
- fun_l11_n334(x)
- else
- fun_l11_n806(x)
- end
-end
-
-def fun_l10_n904(x)
- if (x < 1)
- fun_l11_n973(x)
- else
- fun_l11_n708(x)
- end
-end
-
-def fun_l10_n905(x)
- if (x < 1)
- fun_l11_n990(x)
- else
- fun_l11_n211(x)
- end
-end
-
-def fun_l10_n906(x)
- if (x < 1)
- fun_l11_n499(x)
- else
- fun_l11_n605(x)
- end
-end
-
-def fun_l10_n907(x)
- if (x < 1)
- fun_l11_n335(x)
- else
- fun_l11_n855(x)
- end
-end
-
-def fun_l10_n908(x)
- if (x < 1)
- fun_l11_n197(x)
- else
- fun_l11_n130(x)
- end
-end
-
-def fun_l10_n909(x)
- if (x < 1)
- fun_l11_n462(x)
- else
- fun_l11_n838(x)
- end
-end
-
-def fun_l10_n910(x)
- if (x < 1)
- fun_l11_n254(x)
- else
- fun_l11_n16(x)
- end
-end
-
-def fun_l10_n911(x)
- if (x < 1)
- fun_l11_n321(x)
- else
- fun_l11_n158(x)
- end
-end
-
-def fun_l10_n912(x)
- if (x < 1)
- fun_l11_n113(x)
- else
- fun_l11_n50(x)
- end
-end
-
-def fun_l10_n913(x)
- if (x < 1)
- fun_l11_n492(x)
- else
- fun_l11_n502(x)
- end
-end
-
-def fun_l10_n914(x)
- if (x < 1)
- fun_l11_n221(x)
- else
- fun_l11_n732(x)
- end
-end
-
-def fun_l10_n915(x)
- if (x < 1)
- fun_l11_n853(x)
- else
- fun_l11_n625(x)
- end
-end
-
-def fun_l10_n916(x)
- if (x < 1)
- fun_l11_n172(x)
- else
- fun_l11_n17(x)
- end
-end
-
-def fun_l10_n917(x)
- if (x < 1)
- fun_l11_n438(x)
- else
- fun_l11_n480(x)
- end
-end
-
-def fun_l10_n918(x)
- if (x < 1)
- fun_l11_n646(x)
- else
- fun_l11_n833(x)
- end
-end
-
-def fun_l10_n919(x)
- if (x < 1)
- fun_l11_n628(x)
- else
- fun_l11_n40(x)
- end
-end
-
-def fun_l10_n920(x)
- if (x < 1)
- fun_l11_n387(x)
- else
- fun_l11_n824(x)
- end
-end
-
-def fun_l10_n921(x)
- if (x < 1)
- fun_l11_n641(x)
- else
- fun_l11_n669(x)
- end
-end
-
-def fun_l10_n922(x)
- if (x < 1)
- fun_l11_n484(x)
- else
- fun_l11_n591(x)
- end
-end
-
-def fun_l10_n923(x)
- if (x < 1)
- fun_l11_n610(x)
- else
- fun_l11_n132(x)
- end
-end
-
-def fun_l10_n924(x)
- if (x < 1)
- fun_l11_n90(x)
- else
- fun_l11_n727(x)
- end
-end
-
-def fun_l10_n925(x)
- if (x < 1)
- fun_l11_n44(x)
- else
- fun_l11_n412(x)
- end
-end
-
-def fun_l10_n926(x)
- if (x < 1)
- fun_l11_n912(x)
- else
- fun_l11_n229(x)
- end
-end
-
-def fun_l10_n927(x)
- if (x < 1)
- fun_l11_n647(x)
- else
- fun_l11_n13(x)
- end
-end
-
-def fun_l10_n928(x)
- if (x < 1)
- fun_l11_n820(x)
- else
- fun_l11_n316(x)
- end
-end
-
-def fun_l10_n929(x)
- if (x < 1)
- fun_l11_n850(x)
- else
- fun_l11_n868(x)
- end
-end
-
-def fun_l10_n930(x)
- if (x < 1)
- fun_l11_n373(x)
- else
- fun_l11_n183(x)
- end
-end
-
-def fun_l10_n931(x)
- if (x < 1)
- fun_l11_n217(x)
- else
- fun_l11_n230(x)
- end
-end
-
-def fun_l10_n932(x)
- if (x < 1)
- fun_l11_n77(x)
- else
- fun_l11_n917(x)
- end
-end
-
-def fun_l10_n933(x)
- if (x < 1)
- fun_l11_n264(x)
- else
- fun_l11_n992(x)
- end
-end
-
-def fun_l10_n934(x)
- if (x < 1)
- fun_l11_n125(x)
- else
- fun_l11_n441(x)
- end
-end
-
-def fun_l10_n935(x)
- if (x < 1)
- fun_l11_n586(x)
- else
- fun_l11_n946(x)
- end
-end
-
-def fun_l10_n936(x)
- if (x < 1)
- fun_l11_n186(x)
- else
- fun_l11_n595(x)
- end
-end
-
-def fun_l10_n937(x)
- if (x < 1)
- fun_l11_n210(x)
- else
- fun_l11_n186(x)
- end
-end
-
-def fun_l10_n938(x)
- if (x < 1)
- fun_l11_n131(x)
- else
- fun_l11_n519(x)
- end
-end
-
-def fun_l10_n939(x)
- if (x < 1)
- fun_l11_n863(x)
- else
- fun_l11_n486(x)
- end
-end
-
-def fun_l10_n940(x)
- if (x < 1)
- fun_l11_n753(x)
- else
- fun_l11_n916(x)
- end
-end
-
-def fun_l10_n941(x)
- if (x < 1)
- fun_l11_n8(x)
- else
- fun_l11_n153(x)
- end
-end
-
-def fun_l10_n942(x)
- if (x < 1)
- fun_l11_n798(x)
- else
- fun_l11_n873(x)
- end
-end
-
-def fun_l10_n943(x)
- if (x < 1)
- fun_l11_n862(x)
- else
- fun_l11_n293(x)
- end
-end
-
-def fun_l10_n944(x)
- if (x < 1)
- fun_l11_n554(x)
- else
- fun_l11_n599(x)
- end
-end
-
-def fun_l10_n945(x)
- if (x < 1)
- fun_l11_n134(x)
- else
- fun_l11_n535(x)
- end
-end
-
-def fun_l10_n946(x)
- if (x < 1)
- fun_l11_n992(x)
- else
- fun_l11_n624(x)
- end
-end
-
-def fun_l10_n947(x)
- if (x < 1)
- fun_l11_n436(x)
- else
- fun_l11_n153(x)
- end
-end
-
-def fun_l10_n948(x)
- if (x < 1)
- fun_l11_n72(x)
- else
- fun_l11_n154(x)
- end
-end
-
-def fun_l10_n949(x)
- if (x < 1)
- fun_l11_n61(x)
- else
- fun_l11_n612(x)
- end
-end
-
-def fun_l10_n950(x)
- if (x < 1)
- fun_l11_n964(x)
- else
- fun_l11_n999(x)
- end
-end
-
-def fun_l10_n951(x)
- if (x < 1)
- fun_l11_n689(x)
- else
- fun_l11_n165(x)
- end
-end
-
-def fun_l10_n952(x)
- if (x < 1)
- fun_l11_n856(x)
- else
- fun_l11_n7(x)
- end
-end
-
-def fun_l10_n953(x)
- if (x < 1)
- fun_l11_n421(x)
- else
- fun_l11_n416(x)
- end
-end
-
-def fun_l10_n954(x)
- if (x < 1)
- fun_l11_n969(x)
- else
- fun_l11_n260(x)
- end
-end
-
-def fun_l10_n955(x)
- if (x < 1)
- fun_l11_n716(x)
- else
- fun_l11_n364(x)
- end
-end
-
-def fun_l10_n956(x)
- if (x < 1)
- fun_l11_n491(x)
- else
- fun_l11_n575(x)
- end
-end
-
-def fun_l10_n957(x)
- if (x < 1)
- fun_l11_n522(x)
- else
- fun_l11_n430(x)
- end
-end
-
-def fun_l10_n958(x)
- if (x < 1)
- fun_l11_n712(x)
- else
- fun_l11_n939(x)
- end
-end
-
-def fun_l10_n959(x)
- if (x < 1)
- fun_l11_n230(x)
- else
- fun_l11_n819(x)
- end
-end
-
-def fun_l10_n960(x)
- if (x < 1)
- fun_l11_n790(x)
- else
- fun_l11_n939(x)
- end
-end
-
-def fun_l10_n961(x)
- if (x < 1)
- fun_l11_n844(x)
- else
- fun_l11_n847(x)
- end
-end
-
-def fun_l10_n962(x)
- if (x < 1)
- fun_l11_n105(x)
- else
- fun_l11_n722(x)
- end
-end
-
-def fun_l10_n963(x)
- if (x < 1)
- fun_l11_n166(x)
- else
- fun_l11_n990(x)
- end
-end
-
-def fun_l10_n964(x)
- if (x < 1)
- fun_l11_n224(x)
- else
- fun_l11_n751(x)
- end
-end
-
-def fun_l10_n965(x)
- if (x < 1)
- fun_l11_n809(x)
- else
- fun_l11_n739(x)
- end
-end
-
-def fun_l10_n966(x)
- if (x < 1)
- fun_l11_n840(x)
- else
- fun_l11_n795(x)
- end
-end
-
-def fun_l10_n967(x)
- if (x < 1)
- fun_l11_n791(x)
- else
- fun_l11_n926(x)
- end
-end
-
-def fun_l10_n968(x)
- if (x < 1)
- fun_l11_n484(x)
- else
- fun_l11_n409(x)
- end
-end
-
-def fun_l10_n969(x)
- if (x < 1)
- fun_l11_n22(x)
- else
- fun_l11_n284(x)
- end
-end
-
-def fun_l10_n970(x)
- if (x < 1)
- fun_l11_n539(x)
- else
- fun_l11_n661(x)
- end
-end
-
-def fun_l10_n971(x)
- if (x < 1)
- fun_l11_n453(x)
- else
- fun_l11_n619(x)
- end
-end
-
-def fun_l10_n972(x)
- if (x < 1)
- fun_l11_n80(x)
- else
- fun_l11_n848(x)
- end
-end
-
-def fun_l10_n973(x)
- if (x < 1)
- fun_l11_n599(x)
- else
- fun_l11_n147(x)
- end
-end
-
-def fun_l10_n974(x)
- if (x < 1)
- fun_l11_n784(x)
- else
- fun_l11_n603(x)
- end
-end
-
-def fun_l10_n975(x)
- if (x < 1)
- fun_l11_n166(x)
- else
- fun_l11_n12(x)
- end
-end
-
-def fun_l10_n976(x)
- if (x < 1)
- fun_l11_n739(x)
- else
- fun_l11_n381(x)
- end
-end
-
-def fun_l10_n977(x)
- if (x < 1)
- fun_l11_n45(x)
- else
- fun_l11_n67(x)
- end
-end
-
-def fun_l10_n978(x)
- if (x < 1)
- fun_l11_n243(x)
- else
- fun_l11_n51(x)
- end
-end
-
-def fun_l10_n979(x)
- if (x < 1)
- fun_l11_n964(x)
- else
- fun_l11_n949(x)
- end
-end
-
-def fun_l10_n980(x)
- if (x < 1)
- fun_l11_n881(x)
- else
- fun_l11_n893(x)
- end
-end
-
-def fun_l10_n981(x)
- if (x < 1)
- fun_l11_n808(x)
- else
- fun_l11_n205(x)
- end
-end
-
-def fun_l10_n982(x)
- if (x < 1)
- fun_l11_n897(x)
- else
- fun_l11_n259(x)
- end
-end
-
-def fun_l10_n983(x)
- if (x < 1)
- fun_l11_n671(x)
- else
- fun_l11_n115(x)
- end
-end
-
-def fun_l10_n984(x)
- if (x < 1)
- fun_l11_n9(x)
- else
- fun_l11_n994(x)
- end
-end
-
-def fun_l10_n985(x)
- if (x < 1)
- fun_l11_n663(x)
- else
- fun_l11_n979(x)
- end
-end
-
-def fun_l10_n986(x)
- if (x < 1)
- fun_l11_n8(x)
- else
- fun_l11_n949(x)
- end
-end
-
-def fun_l10_n987(x)
- if (x < 1)
- fun_l11_n230(x)
- else
- fun_l11_n822(x)
- end
-end
-
-def fun_l10_n988(x)
- if (x < 1)
- fun_l11_n767(x)
- else
- fun_l11_n691(x)
- end
-end
-
-def fun_l10_n989(x)
- if (x < 1)
- fun_l11_n524(x)
- else
- fun_l11_n514(x)
- end
-end
-
-def fun_l10_n990(x)
- if (x < 1)
- fun_l11_n556(x)
- else
- fun_l11_n34(x)
- end
-end
-
-def fun_l10_n991(x)
- if (x < 1)
- fun_l11_n516(x)
- else
- fun_l11_n817(x)
- end
-end
-
-def fun_l10_n992(x)
- if (x < 1)
- fun_l11_n273(x)
- else
- fun_l11_n189(x)
- end
-end
-
-def fun_l10_n993(x)
- if (x < 1)
- fun_l11_n726(x)
- else
- fun_l11_n260(x)
- end
-end
-
-def fun_l10_n994(x)
- if (x < 1)
- fun_l11_n789(x)
- else
- fun_l11_n993(x)
- end
-end
-
-def fun_l10_n995(x)
- if (x < 1)
- fun_l11_n187(x)
- else
- fun_l11_n291(x)
- end
-end
-
-def fun_l10_n996(x)
- if (x < 1)
- fun_l11_n145(x)
- else
- fun_l11_n500(x)
- end
-end
-
-def fun_l10_n997(x)
- if (x < 1)
- fun_l11_n437(x)
- else
- fun_l11_n925(x)
- end
-end
-
-def fun_l10_n998(x)
- if (x < 1)
- fun_l11_n945(x)
- else
- fun_l11_n300(x)
- end
-end
-
-def fun_l10_n999(x)
- if (x < 1)
- fun_l11_n703(x)
- else
- fun_l11_n542(x)
- end
-end
-
-def fun_l11_n0(x)
- if (x < 1)
- fun_l12_n539(x)
- else
- fun_l12_n60(x)
- end
-end
-
-def fun_l11_n1(x)
- if (x < 1)
- fun_l12_n659(x)
- else
- fun_l12_n739(x)
- end
-end
-
-def fun_l11_n2(x)
- if (x < 1)
- fun_l12_n273(x)
- else
- fun_l12_n392(x)
- end
-end
-
-def fun_l11_n3(x)
- if (x < 1)
- fun_l12_n394(x)
- else
- fun_l12_n989(x)
- end
-end
-
-def fun_l11_n4(x)
- if (x < 1)
- fun_l12_n254(x)
- else
- fun_l12_n906(x)
- end
-end
-
-def fun_l11_n5(x)
- if (x < 1)
- fun_l12_n229(x)
- else
- fun_l12_n345(x)
- end
-end
-
-def fun_l11_n6(x)
- if (x < 1)
- fun_l12_n15(x)
- else
- fun_l12_n893(x)
- end
-end
-
-def fun_l11_n7(x)
- if (x < 1)
- fun_l12_n185(x)
- else
- fun_l12_n187(x)
- end
-end
-
-def fun_l11_n8(x)
- if (x < 1)
- fun_l12_n761(x)
- else
- fun_l12_n850(x)
- end
-end
-
-def fun_l11_n9(x)
- if (x < 1)
- fun_l12_n644(x)
- else
- fun_l12_n274(x)
- end
-end
-
-def fun_l11_n10(x)
- if (x < 1)
- fun_l12_n652(x)
- else
- fun_l12_n223(x)
- end
-end
-
-def fun_l11_n11(x)
- if (x < 1)
- fun_l12_n905(x)
- else
- fun_l12_n215(x)
- end
-end
-
-def fun_l11_n12(x)
- if (x < 1)
- fun_l12_n58(x)
- else
- fun_l12_n495(x)
- end
-end
-
-def fun_l11_n13(x)
- if (x < 1)
- fun_l12_n529(x)
- else
- fun_l12_n477(x)
- end
-end
-
-def fun_l11_n14(x)
- if (x < 1)
- fun_l12_n743(x)
- else
- fun_l12_n847(x)
- end
-end
-
-def fun_l11_n15(x)
- if (x < 1)
- fun_l12_n558(x)
- else
- fun_l12_n252(x)
- end
-end
-
-def fun_l11_n16(x)
- if (x < 1)
- fun_l12_n115(x)
- else
- fun_l12_n972(x)
- end
-end
-
-def fun_l11_n17(x)
- if (x < 1)
- fun_l12_n374(x)
- else
- fun_l12_n637(x)
- end
-end
-
-def fun_l11_n18(x)
- if (x < 1)
- fun_l12_n978(x)
- else
- fun_l12_n570(x)
- end
-end
-
-def fun_l11_n19(x)
- if (x < 1)
- fun_l12_n264(x)
- else
- fun_l12_n743(x)
- end
-end
-
-def fun_l11_n20(x)
- if (x < 1)
- fun_l12_n936(x)
- else
- fun_l12_n986(x)
- end
-end
-
-def fun_l11_n21(x)
- if (x < 1)
- fun_l12_n107(x)
- else
- fun_l12_n167(x)
- end
-end
-
-def fun_l11_n22(x)
- if (x < 1)
- fun_l12_n777(x)
- else
- fun_l12_n143(x)
- end
-end
-
-def fun_l11_n23(x)
- if (x < 1)
- fun_l12_n510(x)
- else
- fun_l12_n236(x)
- end
-end
-
-def fun_l11_n24(x)
- if (x < 1)
- fun_l12_n180(x)
- else
- fun_l12_n309(x)
- end
-end
-
-def fun_l11_n25(x)
- if (x < 1)
- fun_l12_n850(x)
- else
- fun_l12_n374(x)
- end
-end
-
-def fun_l11_n26(x)
- if (x < 1)
- fun_l12_n573(x)
- else
- fun_l12_n722(x)
- end
-end
-
-def fun_l11_n27(x)
- if (x < 1)
- fun_l12_n800(x)
- else
- fun_l12_n981(x)
- end
-end
-
-def fun_l11_n28(x)
- if (x < 1)
- fun_l12_n705(x)
- else
- fun_l12_n636(x)
- end
-end
-
-def fun_l11_n29(x)
- if (x < 1)
- fun_l12_n618(x)
- else
- fun_l12_n429(x)
- end
-end
-
-def fun_l11_n30(x)
- if (x < 1)
- fun_l12_n139(x)
- else
- fun_l12_n95(x)
- end
-end
-
-def fun_l11_n31(x)
- if (x < 1)
- fun_l12_n861(x)
- else
- fun_l12_n797(x)
- end
-end
-
-def fun_l11_n32(x)
- if (x < 1)
- fun_l12_n576(x)
- else
- fun_l12_n719(x)
- end
-end
-
-def fun_l11_n33(x)
- if (x < 1)
- fun_l12_n236(x)
- else
- fun_l12_n429(x)
- end
-end
-
-def fun_l11_n34(x)
- if (x < 1)
- fun_l12_n375(x)
- else
- fun_l12_n696(x)
- end
-end
-
-def fun_l11_n35(x)
- if (x < 1)
- fun_l12_n291(x)
- else
- fun_l12_n799(x)
- end
-end
-
-def fun_l11_n36(x)
- if (x < 1)
- fun_l12_n180(x)
- else
- fun_l12_n228(x)
- end
-end
-
-def fun_l11_n37(x)
- if (x < 1)
- fun_l12_n455(x)
- else
- fun_l12_n983(x)
- end
-end
-
-def fun_l11_n38(x)
- if (x < 1)
- fun_l12_n486(x)
- else
- fun_l12_n871(x)
- end
-end
-
-def fun_l11_n39(x)
- if (x < 1)
- fun_l12_n945(x)
- else
- fun_l12_n47(x)
- end
-end
-
-def fun_l11_n40(x)
- if (x < 1)
- fun_l12_n531(x)
- else
- fun_l12_n506(x)
- end
-end
-
-def fun_l11_n41(x)
- if (x < 1)
- fun_l12_n248(x)
- else
- fun_l12_n142(x)
- end
-end
-
-def fun_l11_n42(x)
- if (x < 1)
- fun_l12_n415(x)
- else
- fun_l12_n177(x)
- end
-end
-
-def fun_l11_n43(x)
- if (x < 1)
- fun_l12_n560(x)
- else
- fun_l12_n63(x)
- end
-end
-
-def fun_l11_n44(x)
- if (x < 1)
- fun_l12_n180(x)
- else
- fun_l12_n268(x)
- end
-end
-
-def fun_l11_n45(x)
- if (x < 1)
- fun_l12_n814(x)
- else
- fun_l12_n967(x)
- end
-end
-
-def fun_l11_n46(x)
- if (x < 1)
- fun_l12_n273(x)
- else
- fun_l12_n702(x)
- end
-end
-
-def fun_l11_n47(x)
- if (x < 1)
- fun_l12_n626(x)
- else
- fun_l12_n615(x)
- end
-end
-
-def fun_l11_n48(x)
- if (x < 1)
- fun_l12_n374(x)
- else
- fun_l12_n669(x)
- end
-end
-
-def fun_l11_n49(x)
- if (x < 1)
- fun_l12_n681(x)
- else
- fun_l12_n48(x)
- end
-end
-
-def fun_l11_n50(x)
- if (x < 1)
- fun_l12_n3(x)
- else
- fun_l12_n455(x)
- end
-end
-
-def fun_l11_n51(x)
- if (x < 1)
- fun_l12_n461(x)
- else
- fun_l12_n350(x)
- end
-end
-
-def fun_l11_n52(x)
- if (x < 1)
- fun_l12_n129(x)
- else
- fun_l12_n266(x)
- end
-end
-
-def fun_l11_n53(x)
- if (x < 1)
- fun_l12_n802(x)
- else
- fun_l12_n863(x)
- end
-end
-
-def fun_l11_n54(x)
- if (x < 1)
- fun_l12_n216(x)
- else
- fun_l12_n820(x)
- end
-end
-
-def fun_l11_n55(x)
- if (x < 1)
- fun_l12_n626(x)
- else
- fun_l12_n476(x)
- end
-end
-
-def fun_l11_n56(x)
- if (x < 1)
- fun_l12_n162(x)
- else
- fun_l12_n796(x)
- end
-end
-
-def fun_l11_n57(x)
- if (x < 1)
- fun_l12_n45(x)
- else
- fun_l12_n893(x)
- end
-end
-
-def fun_l11_n58(x)
- if (x < 1)
- fun_l12_n227(x)
- else
- fun_l12_n919(x)
- end
-end
-
-def fun_l11_n59(x)
- if (x < 1)
- fun_l12_n300(x)
- else
- fun_l12_n360(x)
- end
-end
-
-def fun_l11_n60(x)
- if (x < 1)
- fun_l12_n265(x)
- else
- fun_l12_n552(x)
- end
-end
-
-def fun_l11_n61(x)
- if (x < 1)
- fun_l12_n927(x)
- else
- fun_l12_n486(x)
- end
-end
-
-def fun_l11_n62(x)
- if (x < 1)
- fun_l12_n94(x)
- else
- fun_l12_n28(x)
- end
-end
-
-def fun_l11_n63(x)
- if (x < 1)
- fun_l12_n295(x)
- else
- fun_l12_n967(x)
- end
-end
-
-def fun_l11_n64(x)
- if (x < 1)
- fun_l12_n713(x)
- else
- fun_l12_n463(x)
- end
-end
-
-def fun_l11_n65(x)
- if (x < 1)
- fun_l12_n454(x)
- else
- fun_l12_n616(x)
- end
-end
-
-def fun_l11_n66(x)
- if (x < 1)
- fun_l12_n121(x)
- else
- fun_l12_n277(x)
- end
-end
-
-def fun_l11_n67(x)
- if (x < 1)
- fun_l12_n524(x)
- else
- fun_l12_n242(x)
- end
-end
-
-def fun_l11_n68(x)
- if (x < 1)
- fun_l12_n570(x)
- else
- fun_l12_n658(x)
- end
-end
-
-def fun_l11_n69(x)
- if (x < 1)
- fun_l12_n343(x)
- else
- fun_l12_n826(x)
- end
-end
-
-def fun_l11_n70(x)
- if (x < 1)
- fun_l12_n732(x)
- else
- fun_l12_n993(x)
- end
-end
-
-def fun_l11_n71(x)
- if (x < 1)
- fun_l12_n380(x)
- else
- fun_l12_n486(x)
- end
-end
-
-def fun_l11_n72(x)
- if (x < 1)
- fun_l12_n55(x)
- else
- fun_l12_n342(x)
- end
-end
-
-def fun_l11_n73(x)
- if (x < 1)
- fun_l12_n789(x)
- else
- fun_l12_n646(x)
- end
-end
-
-def fun_l11_n74(x)
- if (x < 1)
- fun_l12_n106(x)
- else
- fun_l12_n557(x)
- end
-end
-
-def fun_l11_n75(x)
- if (x < 1)
- fun_l12_n368(x)
- else
- fun_l12_n5(x)
- end
-end
-
-def fun_l11_n76(x)
- if (x < 1)
- fun_l12_n992(x)
- else
- fun_l12_n521(x)
- end
-end
-
-def fun_l11_n77(x)
- if (x < 1)
- fun_l12_n754(x)
- else
- fun_l12_n259(x)
- end
-end
-
-def fun_l11_n78(x)
- if (x < 1)
- fun_l12_n855(x)
- else
- fun_l12_n946(x)
- end
-end
-
-def fun_l11_n79(x)
- if (x < 1)
- fun_l12_n727(x)
- else
- fun_l12_n422(x)
- end
-end
-
-def fun_l11_n80(x)
- if (x < 1)
- fun_l12_n649(x)
- else
- fun_l12_n593(x)
- end
-end
-
-def fun_l11_n81(x)
- if (x < 1)
- fun_l12_n206(x)
- else
- fun_l12_n222(x)
- end
-end
-
-def fun_l11_n82(x)
- if (x < 1)
- fun_l12_n995(x)
- else
- fun_l12_n471(x)
- end
-end
-
-def fun_l11_n83(x)
- if (x < 1)
- fun_l12_n926(x)
- else
- fun_l12_n165(x)
- end
-end
-
-def fun_l11_n84(x)
- if (x < 1)
- fun_l12_n988(x)
- else
- fun_l12_n495(x)
- end
-end
-
-def fun_l11_n85(x)
- if (x < 1)
- fun_l12_n839(x)
- else
- fun_l12_n565(x)
- end
-end
-
-def fun_l11_n86(x)
- if (x < 1)
- fun_l12_n381(x)
- else
- fun_l12_n981(x)
- end
-end
-
-def fun_l11_n87(x)
- if (x < 1)
- fun_l12_n64(x)
- else
- fun_l12_n616(x)
- end
-end
-
-def fun_l11_n88(x)
- if (x < 1)
- fun_l12_n714(x)
- else
- fun_l12_n995(x)
- end
-end
-
-def fun_l11_n89(x)
- if (x < 1)
- fun_l12_n796(x)
- else
- fun_l12_n534(x)
- end
-end
-
-def fun_l11_n90(x)
- if (x < 1)
- fun_l12_n31(x)
- else
- fun_l12_n584(x)
- end
-end
-
-def fun_l11_n91(x)
- if (x < 1)
- fun_l12_n741(x)
- else
- fun_l12_n356(x)
- end
-end
-
-def fun_l11_n92(x)
- if (x < 1)
- fun_l12_n418(x)
- else
- fun_l12_n184(x)
- end
-end
-
-def fun_l11_n93(x)
- if (x < 1)
- fun_l12_n427(x)
- else
- fun_l12_n136(x)
- end
-end
-
-def fun_l11_n94(x)
- if (x < 1)
- fun_l12_n968(x)
- else
- fun_l12_n647(x)
- end
-end
-
-def fun_l11_n95(x)
- if (x < 1)
- fun_l12_n641(x)
- else
- fun_l12_n675(x)
- end
-end
-
-def fun_l11_n96(x)
- if (x < 1)
- fun_l12_n465(x)
- else
- fun_l12_n507(x)
- end
-end
-
-def fun_l11_n97(x)
- if (x < 1)
- fun_l12_n910(x)
- else
- fun_l12_n718(x)
- end
-end
-
-def fun_l11_n98(x)
- if (x < 1)
- fun_l12_n686(x)
- else
- fun_l12_n94(x)
- end
-end
-
-def fun_l11_n99(x)
- if (x < 1)
- fun_l12_n94(x)
- else
- fun_l12_n632(x)
- end
-end
-
-def fun_l11_n100(x)
- if (x < 1)
- fun_l12_n270(x)
- else
- fun_l12_n228(x)
- end
-end
-
-def fun_l11_n101(x)
- if (x < 1)
- fun_l12_n569(x)
- else
- fun_l12_n492(x)
- end
-end
-
-def fun_l11_n102(x)
- if (x < 1)
- fun_l12_n187(x)
- else
- fun_l12_n183(x)
- end
-end
-
-def fun_l11_n103(x)
- if (x < 1)
- fun_l12_n894(x)
- else
- fun_l12_n655(x)
- end
-end
-
-def fun_l11_n104(x)
- if (x < 1)
- fun_l12_n347(x)
- else
- fun_l12_n467(x)
- end
-end
-
-def fun_l11_n105(x)
- if (x < 1)
- fun_l12_n198(x)
- else
- fun_l12_n838(x)
- end
-end
-
-def fun_l11_n106(x)
- if (x < 1)
- fun_l12_n941(x)
- else
- fun_l12_n98(x)
- end
-end
-
-def fun_l11_n107(x)
- if (x < 1)
- fun_l12_n406(x)
- else
- fun_l12_n773(x)
- end
-end
-
-def fun_l11_n108(x)
- if (x < 1)
- fun_l12_n980(x)
- else
- fun_l12_n508(x)
- end
-end
-
-def fun_l11_n109(x)
- if (x < 1)
- fun_l12_n286(x)
- else
- fun_l12_n928(x)
- end
-end
-
-def fun_l11_n110(x)
- if (x < 1)
- fun_l12_n710(x)
- else
- fun_l12_n20(x)
- end
-end
-
-def fun_l11_n111(x)
- if (x < 1)
- fun_l12_n358(x)
- else
- fun_l12_n549(x)
- end
-end
-
-def fun_l11_n112(x)
- if (x < 1)
- fun_l12_n359(x)
- else
- fun_l12_n548(x)
- end
-end
-
-def fun_l11_n113(x)
- if (x < 1)
- fun_l12_n665(x)
- else
- fun_l12_n802(x)
- end
-end
-
-def fun_l11_n114(x)
- if (x < 1)
- fun_l12_n199(x)
- else
- fun_l12_n904(x)
- end
-end
-
-def fun_l11_n115(x)
- if (x < 1)
- fun_l12_n995(x)
- else
- fun_l12_n319(x)
- end
-end
-
-def fun_l11_n116(x)
- if (x < 1)
- fun_l12_n873(x)
- else
- fun_l12_n786(x)
- end
-end
-
-def fun_l11_n117(x)
- if (x < 1)
- fun_l12_n147(x)
- else
- fun_l12_n542(x)
- end
-end
-
-def fun_l11_n118(x)
- if (x < 1)
- fun_l12_n669(x)
- else
- fun_l12_n871(x)
- end
-end
-
-def fun_l11_n119(x)
- if (x < 1)
- fun_l12_n552(x)
- else
- fun_l12_n998(x)
- end
-end
-
-def fun_l11_n120(x)
- if (x < 1)
- fun_l12_n300(x)
- else
- fun_l12_n333(x)
- end
-end
-
-def fun_l11_n121(x)
- if (x < 1)
- fun_l12_n846(x)
- else
- fun_l12_n133(x)
- end
-end
-
-def fun_l11_n122(x)
- if (x < 1)
- fun_l12_n946(x)
- else
- fun_l12_n540(x)
- end
-end
-
-def fun_l11_n123(x)
- if (x < 1)
- fun_l12_n71(x)
- else
- fun_l12_n264(x)
- end
-end
-
-def fun_l11_n124(x)
- if (x < 1)
- fun_l12_n410(x)
- else
- fun_l12_n60(x)
- end
-end
-
-def fun_l11_n125(x)
- if (x < 1)
- fun_l12_n62(x)
- else
- fun_l12_n211(x)
- end
-end
-
-def fun_l11_n126(x)
- if (x < 1)
- fun_l12_n252(x)
- else
- fun_l12_n635(x)
- end
-end
-
-def fun_l11_n127(x)
- if (x < 1)
- fun_l12_n444(x)
- else
- fun_l12_n735(x)
- end
-end
-
-def fun_l11_n128(x)
- if (x < 1)
- fun_l12_n3(x)
- else
- fun_l12_n403(x)
- end
-end
-
-def fun_l11_n129(x)
- if (x < 1)
- fun_l12_n121(x)
- else
- fun_l12_n882(x)
- end
-end
-
-def fun_l11_n130(x)
- if (x < 1)
- fun_l12_n985(x)
- else
- fun_l12_n983(x)
- end
-end
-
-def fun_l11_n131(x)
- if (x < 1)
- fun_l12_n413(x)
- else
- fun_l12_n117(x)
- end
-end
-
-def fun_l11_n132(x)
- if (x < 1)
- fun_l12_n856(x)
- else
- fun_l12_n312(x)
- end
-end
-
-def fun_l11_n133(x)
- if (x < 1)
- fun_l12_n249(x)
- else
- fun_l12_n870(x)
- end
-end
-
-def fun_l11_n134(x)
- if (x < 1)
- fun_l12_n367(x)
- else
- fun_l12_n748(x)
- end
-end
-
-def fun_l11_n135(x)
- if (x < 1)
- fun_l12_n670(x)
- else
- fun_l12_n464(x)
- end
-end
-
-def fun_l11_n136(x)
- if (x < 1)
- fun_l12_n698(x)
- else
- fun_l12_n238(x)
- end
-end
-
-def fun_l11_n137(x)
- if (x < 1)
- fun_l12_n856(x)
- else
- fun_l12_n660(x)
- end
-end
-
-def fun_l11_n138(x)
- if (x < 1)
- fun_l12_n693(x)
- else
- fun_l12_n793(x)
- end
-end
-
-def fun_l11_n139(x)
- if (x < 1)
- fun_l12_n959(x)
- else
- fun_l12_n377(x)
- end
-end
-
-def fun_l11_n140(x)
- if (x < 1)
- fun_l12_n24(x)
- else
- fun_l12_n250(x)
- end
-end
-
-def fun_l11_n141(x)
- if (x < 1)
- fun_l12_n270(x)
- else
- fun_l12_n720(x)
- end
-end
-
-def fun_l11_n142(x)
- if (x < 1)
- fun_l12_n775(x)
- else
- fun_l12_n781(x)
- end
-end
-
-def fun_l11_n143(x)
- if (x < 1)
- fun_l12_n266(x)
- else
- fun_l12_n608(x)
- end
-end
-
-def fun_l11_n144(x)
- if (x < 1)
- fun_l12_n196(x)
- else
- fun_l12_n70(x)
- end
-end
-
-def fun_l11_n145(x)
- if (x < 1)
- fun_l12_n100(x)
- else
- fun_l12_n846(x)
- end
-end
-
-def fun_l11_n146(x)
- if (x < 1)
- fun_l12_n406(x)
- else
- fun_l12_n966(x)
- end
-end
-
-def fun_l11_n147(x)
- if (x < 1)
- fun_l12_n816(x)
- else
- fun_l12_n54(x)
- end
-end
-
-def fun_l11_n148(x)
- if (x < 1)
- fun_l12_n856(x)
- else
- fun_l12_n710(x)
- end
-end
-
-def fun_l11_n149(x)
- if (x < 1)
- fun_l12_n597(x)
- else
- fun_l12_n596(x)
- end
-end
-
-def fun_l11_n150(x)
- if (x < 1)
- fun_l12_n938(x)
- else
- fun_l12_n349(x)
- end
-end
-
-def fun_l11_n151(x)
- if (x < 1)
- fun_l12_n987(x)
- else
- fun_l12_n231(x)
- end
-end
-
-def fun_l11_n152(x)
- if (x < 1)
- fun_l12_n67(x)
- else
- fun_l12_n685(x)
- end
-end
-
-def fun_l11_n153(x)
- if (x < 1)
- fun_l12_n786(x)
- else
- fun_l12_n71(x)
- end
-end
-
-def fun_l11_n154(x)
- if (x < 1)
- fun_l12_n245(x)
- else
- fun_l12_n109(x)
- end
-end
-
-def fun_l11_n155(x)
- if (x < 1)
- fun_l12_n665(x)
- else
- fun_l12_n565(x)
- end
-end
-
-def fun_l11_n156(x)
- if (x < 1)
- fun_l12_n885(x)
- else
- fun_l12_n27(x)
- end
-end
-
-def fun_l11_n157(x)
- if (x < 1)
- fun_l12_n704(x)
- else
- fun_l12_n140(x)
- end
-end
-
-def fun_l11_n158(x)
- if (x < 1)
- fun_l12_n505(x)
- else
- fun_l12_n428(x)
- end
-end
-
-def fun_l11_n159(x)
- if (x < 1)
- fun_l12_n646(x)
- else
- fun_l12_n250(x)
- end
-end
-
-def fun_l11_n160(x)
- if (x < 1)
- fun_l12_n125(x)
- else
- fun_l12_n22(x)
- end
-end
-
-def fun_l11_n161(x)
- if (x < 1)
- fun_l12_n49(x)
- else
- fun_l12_n852(x)
- end
-end
-
-def fun_l11_n162(x)
- if (x < 1)
- fun_l12_n992(x)
- else
- fun_l12_n321(x)
- end
-end
-
-def fun_l11_n163(x)
- if (x < 1)
- fun_l12_n457(x)
- else
- fun_l12_n162(x)
- end
-end
-
-def fun_l11_n164(x)
- if (x < 1)
- fun_l12_n612(x)
- else
- fun_l12_n107(x)
- end
-end
-
-def fun_l11_n165(x)
- if (x < 1)
- fun_l12_n786(x)
- else
- fun_l12_n338(x)
- end
-end
-
-def fun_l11_n166(x)
- if (x < 1)
- fun_l12_n623(x)
- else
- fun_l12_n18(x)
- end
-end
-
-def fun_l11_n167(x)
- if (x < 1)
- fun_l12_n605(x)
- else
- fun_l12_n963(x)
- end
-end
-
-def fun_l11_n168(x)
- if (x < 1)
- fun_l12_n111(x)
- else
- fun_l12_n822(x)
- end
-end
-
-def fun_l11_n169(x)
- if (x < 1)
- fun_l12_n502(x)
- else
- fun_l12_n291(x)
- end
-end
-
-def fun_l11_n170(x)
- if (x < 1)
- fun_l12_n984(x)
- else
- fun_l12_n950(x)
- end
-end
-
-def fun_l11_n171(x)
- if (x < 1)
- fun_l12_n915(x)
- else
- fun_l12_n81(x)
- end
-end
-
-def fun_l11_n172(x)
- if (x < 1)
- fun_l12_n839(x)
- else
- fun_l12_n405(x)
- end
-end
-
-def fun_l11_n173(x)
- if (x < 1)
- fun_l12_n331(x)
- else
- fun_l12_n906(x)
- end
-end
-
-def fun_l11_n174(x)
- if (x < 1)
- fun_l12_n698(x)
- else
- fun_l12_n378(x)
- end
-end
-
-def fun_l11_n175(x)
- if (x < 1)
- fun_l12_n648(x)
- else
- fun_l12_n824(x)
- end
-end
-
-def fun_l11_n176(x)
- if (x < 1)
- fun_l12_n876(x)
- else
- fun_l12_n873(x)
- end
-end
-
-def fun_l11_n177(x)
- if (x < 1)
- fun_l12_n932(x)
- else
- fun_l12_n797(x)
- end
-end
-
-def fun_l11_n178(x)
- if (x < 1)
- fun_l12_n975(x)
- else
- fun_l12_n166(x)
- end
-end
-
-def fun_l11_n179(x)
- if (x < 1)
- fun_l12_n66(x)
- else
- fun_l12_n624(x)
- end
-end
-
-def fun_l11_n180(x)
- if (x < 1)
- fun_l12_n676(x)
- else
- fun_l12_n603(x)
- end
-end
-
-def fun_l11_n181(x)
- if (x < 1)
- fun_l12_n80(x)
- else
- fun_l12_n504(x)
- end
-end
-
-def fun_l11_n182(x)
- if (x < 1)
- fun_l12_n465(x)
- else
- fun_l12_n319(x)
- end
-end
-
-def fun_l11_n183(x)
- if (x < 1)
- fun_l12_n493(x)
- else
- fun_l12_n412(x)
- end
-end
-
-def fun_l11_n184(x)
- if (x < 1)
- fun_l12_n278(x)
- else
- fun_l12_n145(x)
- end
-end
-
-def fun_l11_n185(x)
- if (x < 1)
- fun_l12_n328(x)
- else
- fun_l12_n777(x)
- end
-end
-
-def fun_l11_n186(x)
- if (x < 1)
- fun_l12_n120(x)
- else
- fun_l12_n462(x)
- end
-end
-
-def fun_l11_n187(x)
- if (x < 1)
- fun_l12_n755(x)
- else
- fun_l12_n260(x)
- end
-end
-
-def fun_l11_n188(x)
- if (x < 1)
- fun_l12_n378(x)
- else
- fun_l12_n174(x)
- end
-end
-
-def fun_l11_n189(x)
- if (x < 1)
- fun_l12_n100(x)
- else
- fun_l12_n234(x)
- end
-end
-
-def fun_l11_n190(x)
- if (x < 1)
- fun_l12_n132(x)
- else
- fun_l12_n437(x)
- end
-end
-
-def fun_l11_n191(x)
- if (x < 1)
- fun_l12_n399(x)
- else
- fun_l12_n989(x)
- end
-end
-
-def fun_l11_n192(x)
- if (x < 1)
- fun_l12_n355(x)
- else
- fun_l12_n953(x)
- end
-end
-
-def fun_l11_n193(x)
- if (x < 1)
- fun_l12_n139(x)
- else
- fun_l12_n138(x)
- end
-end
-
-def fun_l11_n194(x)
- if (x < 1)
- fun_l12_n294(x)
- else
- fun_l12_n676(x)
- end
-end
-
-def fun_l11_n195(x)
- if (x < 1)
- fun_l12_n581(x)
- else
- fun_l12_n549(x)
- end
-end
-
-def fun_l11_n196(x)
- if (x < 1)
- fun_l12_n555(x)
- else
- fun_l12_n738(x)
- end
-end
-
-def fun_l11_n197(x)
- if (x < 1)
- fun_l12_n170(x)
- else
- fun_l12_n476(x)
- end
-end
-
-def fun_l11_n198(x)
- if (x < 1)
- fun_l12_n350(x)
- else
- fun_l12_n576(x)
- end
-end
-
-def fun_l11_n199(x)
- if (x < 1)
- fun_l12_n647(x)
- else
- fun_l12_n94(x)
- end
-end
-
-def fun_l11_n200(x)
- if (x < 1)
- fun_l12_n28(x)
- else
- fun_l12_n706(x)
- end
-end
-
-def fun_l11_n201(x)
- if (x < 1)
- fun_l12_n189(x)
- else
- fun_l12_n366(x)
- end
-end
-
-def fun_l11_n202(x)
- if (x < 1)
- fun_l12_n690(x)
- else
- fun_l12_n807(x)
- end
-end
-
-def fun_l11_n203(x)
- if (x < 1)
- fun_l12_n402(x)
- else
- fun_l12_n685(x)
- end
-end
-
-def fun_l11_n204(x)
- if (x < 1)
- fun_l12_n232(x)
- else
- fun_l12_n257(x)
- end
-end
-
-def fun_l11_n205(x)
- if (x < 1)
- fun_l12_n108(x)
- else
- fun_l12_n888(x)
- end
-end
-
-def fun_l11_n206(x)
- if (x < 1)
- fun_l12_n494(x)
- else
- fun_l12_n372(x)
- end
-end
-
-def fun_l11_n207(x)
- if (x < 1)
- fun_l12_n607(x)
- else
- fun_l12_n336(x)
- end
-end
-
-def fun_l11_n208(x)
- if (x < 1)
- fun_l12_n913(x)
- else
- fun_l12_n134(x)
- end
-end
-
-def fun_l11_n209(x)
- if (x < 1)
- fun_l12_n996(x)
- else
- fun_l12_n918(x)
- end
-end
-
-def fun_l11_n210(x)
- if (x < 1)
- fun_l12_n674(x)
- else
- fun_l12_n260(x)
- end
-end
-
-def fun_l11_n211(x)
- if (x < 1)
- fun_l12_n344(x)
- else
- fun_l12_n219(x)
- end
-end
-
-def fun_l11_n212(x)
- if (x < 1)
- fun_l12_n161(x)
- else
- fun_l12_n415(x)
- end
-end
-
-def fun_l11_n213(x)
- if (x < 1)
- fun_l12_n65(x)
- else
- fun_l12_n777(x)
- end
-end
-
-def fun_l11_n214(x)
- if (x < 1)
- fun_l12_n369(x)
- else
- fun_l12_n899(x)
- end
-end
-
-def fun_l11_n215(x)
- if (x < 1)
- fun_l12_n310(x)
- else
- fun_l12_n118(x)
- end
-end
-
-def fun_l11_n216(x)
- if (x < 1)
- fun_l12_n326(x)
- else
- fun_l12_n823(x)
- end
-end
-
-def fun_l11_n217(x)
- if (x < 1)
- fun_l12_n981(x)
- else
- fun_l12_n824(x)
- end
-end
-
-def fun_l11_n218(x)
- if (x < 1)
- fun_l12_n425(x)
- else
- fun_l12_n483(x)
- end
-end
-
-def fun_l11_n219(x)
- if (x < 1)
- fun_l12_n931(x)
- else
- fun_l12_n366(x)
- end
-end
-
-def fun_l11_n220(x)
- if (x < 1)
- fun_l12_n325(x)
- else
- fun_l12_n926(x)
- end
-end
-
-def fun_l11_n221(x)
- if (x < 1)
- fun_l12_n924(x)
- else
- fun_l12_n764(x)
- end
-end
-
-def fun_l11_n222(x)
- if (x < 1)
- fun_l12_n407(x)
- else
- fun_l12_n137(x)
- end
-end
-
-def fun_l11_n223(x)
- if (x < 1)
- fun_l12_n584(x)
- else
- fun_l12_n294(x)
- end
-end
-
-def fun_l11_n224(x)
- if (x < 1)
- fun_l12_n39(x)
- else
- fun_l12_n795(x)
- end
-end
-
-def fun_l11_n225(x)
- if (x < 1)
- fun_l12_n37(x)
- else
- fun_l12_n738(x)
- end
-end
-
-def fun_l11_n226(x)
- if (x < 1)
- fun_l12_n779(x)
- else
- fun_l12_n152(x)
- end
-end
-
-def fun_l11_n227(x)
- if (x < 1)
- fun_l12_n116(x)
- else
- fun_l12_n589(x)
- end
-end
-
-def fun_l11_n228(x)
- if (x < 1)
- fun_l12_n500(x)
- else
- fun_l12_n916(x)
- end
-end
-
-def fun_l11_n229(x)
- if (x < 1)
- fun_l12_n443(x)
- else
- fun_l12_n126(x)
- end
-end
-
-def fun_l11_n230(x)
- if (x < 1)
- fun_l12_n311(x)
- else
- fun_l12_n184(x)
- end
-end
-
-def fun_l11_n231(x)
- if (x < 1)
- fun_l12_n604(x)
- else
- fun_l12_n171(x)
- end
-end
-
-def fun_l11_n232(x)
- if (x < 1)
- fun_l12_n287(x)
- else
- fun_l12_n899(x)
- end
-end
-
-def fun_l11_n233(x)
- if (x < 1)
- fun_l12_n834(x)
- else
- fun_l12_n435(x)
- end
-end
-
-def fun_l11_n234(x)
- if (x < 1)
- fun_l12_n187(x)
- else
- fun_l12_n584(x)
- end
-end
-
-def fun_l11_n235(x)
- if (x < 1)
- fun_l12_n711(x)
- else
- fun_l12_n542(x)
- end
-end
-
-def fun_l11_n236(x)
- if (x < 1)
- fun_l12_n797(x)
- else
- fun_l12_n702(x)
- end
-end
-
-def fun_l11_n237(x)
- if (x < 1)
- fun_l12_n645(x)
- else
- fun_l12_n691(x)
- end
-end
-
-def fun_l11_n238(x)
- if (x < 1)
- fun_l12_n920(x)
- else
- fun_l12_n97(x)
- end
-end
-
-def fun_l11_n239(x)
- if (x < 1)
- fun_l12_n491(x)
- else
- fun_l12_n172(x)
- end
-end
-
-def fun_l11_n240(x)
- if (x < 1)
- fun_l12_n882(x)
- else
- fun_l12_n596(x)
- end
-end
-
-def fun_l11_n241(x)
- if (x < 1)
- fun_l12_n178(x)
- else
- fun_l12_n671(x)
- end
-end
-
-def fun_l11_n242(x)
- if (x < 1)
- fun_l12_n483(x)
- else
- fun_l12_n143(x)
- end
-end
-
-def fun_l11_n243(x)
- if (x < 1)
- fun_l12_n677(x)
- else
- fun_l12_n542(x)
- end
-end
-
-def fun_l11_n244(x)
- if (x < 1)
- fun_l12_n676(x)
- else
- fun_l12_n873(x)
- end
-end
-
-def fun_l11_n245(x)
- if (x < 1)
- fun_l12_n393(x)
- else
- fun_l12_n532(x)
- end
-end
-
-def fun_l11_n246(x)
- if (x < 1)
- fun_l12_n704(x)
- else
- fun_l12_n885(x)
- end
-end
-
-def fun_l11_n247(x)
- if (x < 1)
- fun_l12_n668(x)
- else
- fun_l12_n305(x)
- end
-end
-
-def fun_l11_n248(x)
- if (x < 1)
- fun_l12_n925(x)
- else
- fun_l12_n342(x)
- end
-end
-
-def fun_l11_n249(x)
- if (x < 1)
- fun_l12_n487(x)
- else
- fun_l12_n517(x)
- end
-end
-
-def fun_l11_n250(x)
- if (x < 1)
- fun_l12_n889(x)
- else
- fun_l12_n91(x)
- end
-end
-
-def fun_l11_n251(x)
- if (x < 1)
- fun_l12_n908(x)
- else
- fun_l12_n645(x)
- end
-end
-
-def fun_l11_n252(x)
- if (x < 1)
- fun_l12_n747(x)
- else
- fun_l12_n736(x)
- end
-end
-
-def fun_l11_n253(x)
- if (x < 1)
- fun_l12_n749(x)
- else
- fun_l12_n264(x)
- end
-end
-
-def fun_l11_n254(x)
- if (x < 1)
- fun_l12_n353(x)
- else
- fun_l12_n120(x)
- end
-end
-
-def fun_l11_n255(x)
- if (x < 1)
- fun_l12_n231(x)
- else
- fun_l12_n211(x)
- end
-end
-
-def fun_l11_n256(x)
- if (x < 1)
- fun_l12_n66(x)
- else
- fun_l12_n998(x)
- end
-end
-
-def fun_l11_n257(x)
- if (x < 1)
- fun_l12_n818(x)
- else
- fun_l12_n37(x)
- end
-end
-
-def fun_l11_n258(x)
- if (x < 1)
- fun_l12_n96(x)
- else
- fun_l12_n489(x)
- end
-end
-
-def fun_l11_n259(x)
- if (x < 1)
- fun_l12_n86(x)
- else
- fun_l12_n432(x)
- end
-end
-
-def fun_l11_n260(x)
- if (x < 1)
- fun_l12_n774(x)
- else
- fun_l12_n203(x)
- end
-end
-
-def fun_l11_n261(x)
- if (x < 1)
- fun_l12_n935(x)
- else
- fun_l12_n29(x)
- end
-end
-
-def fun_l11_n262(x)
- if (x < 1)
- fun_l12_n599(x)
- else
- fun_l12_n204(x)
- end
-end
-
-def fun_l11_n263(x)
- if (x < 1)
- fun_l12_n63(x)
- else
- fun_l12_n866(x)
- end
-end
-
-def fun_l11_n264(x)
- if (x < 1)
- fun_l12_n892(x)
- else
- fun_l12_n847(x)
- end
-end
-
-def fun_l11_n265(x)
- if (x < 1)
- fun_l12_n695(x)
- else
- fun_l12_n881(x)
- end
-end
-
-def fun_l11_n266(x)
- if (x < 1)
- fun_l12_n176(x)
- else
- fun_l12_n39(x)
- end
-end
-
-def fun_l11_n267(x)
- if (x < 1)
- fun_l12_n448(x)
- else
- fun_l12_n744(x)
- end
-end
-
-def fun_l11_n268(x)
- if (x < 1)
- fun_l12_n587(x)
- else
- fun_l12_n462(x)
- end
-end
-
-def fun_l11_n269(x)
- if (x < 1)
- fun_l12_n670(x)
- else
- fun_l12_n797(x)
- end
-end
-
-def fun_l11_n270(x)
- if (x < 1)
- fun_l12_n856(x)
- else
- fun_l12_n903(x)
- end
-end
-
-def fun_l11_n271(x)
- if (x < 1)
- fun_l12_n914(x)
- else
- fun_l12_n459(x)
- end
-end
-
-def fun_l11_n272(x)
- if (x < 1)
- fun_l12_n932(x)
- else
- fun_l12_n10(x)
- end
-end
-
-def fun_l11_n273(x)
- if (x < 1)
- fun_l12_n554(x)
- else
- fun_l12_n528(x)
- end
-end
-
-def fun_l11_n274(x)
- if (x < 1)
- fun_l12_n698(x)
- else
- fun_l12_n899(x)
- end
-end
-
-def fun_l11_n275(x)
- if (x < 1)
- fun_l12_n907(x)
- else
- fun_l12_n945(x)
- end
-end
-
-def fun_l11_n276(x)
- if (x < 1)
- fun_l12_n421(x)
- else
- fun_l12_n575(x)
- end
-end
-
-def fun_l11_n277(x)
- if (x < 1)
- fun_l12_n757(x)
- else
- fun_l12_n808(x)
- end
-end
-
-def fun_l11_n278(x)
- if (x < 1)
- fun_l12_n527(x)
- else
- fun_l12_n438(x)
- end
-end
-
-def fun_l11_n279(x)
- if (x < 1)
- fun_l12_n263(x)
- else
- fun_l12_n842(x)
- end
-end
-
-def fun_l11_n280(x)
- if (x < 1)
- fun_l12_n603(x)
- else
- fun_l12_n899(x)
- end
-end
-
-def fun_l11_n281(x)
- if (x < 1)
- fun_l12_n486(x)
- else
- fun_l12_n380(x)
- end
-end
-
-def fun_l11_n282(x)
- if (x < 1)
- fun_l12_n699(x)
- else
- fun_l12_n199(x)
- end
-end
-
-def fun_l11_n283(x)
- if (x < 1)
- fun_l12_n422(x)
- else
- fun_l12_n258(x)
- end
-end
-
-def fun_l11_n284(x)
- if (x < 1)
- fun_l12_n255(x)
- else
- fun_l12_n752(x)
- end
-end
-
-def fun_l11_n285(x)
- if (x < 1)
- fun_l12_n506(x)
- else
- fun_l12_n801(x)
- end
-end
-
-def fun_l11_n286(x)
- if (x < 1)
- fun_l12_n535(x)
- else
- fun_l12_n892(x)
- end
-end
-
-def fun_l11_n287(x)
- if (x < 1)
- fun_l12_n547(x)
- else
- fun_l12_n74(x)
- end
-end
-
-def fun_l11_n288(x)
- if (x < 1)
- fun_l12_n923(x)
- else
- fun_l12_n135(x)
- end
-end
-
-def fun_l11_n289(x)
- if (x < 1)
- fun_l12_n78(x)
- else
- fun_l12_n704(x)
- end
-end
-
-def fun_l11_n290(x)
- if (x < 1)
- fun_l12_n771(x)
- else
- fun_l12_n915(x)
- end
-end
-
-def fun_l11_n291(x)
- if (x < 1)
- fun_l12_n184(x)
- else
- fun_l12_n188(x)
- end
-end
-
-def fun_l11_n292(x)
- if (x < 1)
- fun_l12_n736(x)
- else
- fun_l12_n190(x)
- end
-end
-
-def fun_l11_n293(x)
- if (x < 1)
- fun_l12_n301(x)
- else
- fun_l12_n745(x)
- end
-end
-
-def fun_l11_n294(x)
- if (x < 1)
- fun_l12_n525(x)
- else
- fun_l12_n603(x)
- end
-end
-
-def fun_l11_n295(x)
- if (x < 1)
- fun_l12_n339(x)
- else
- fun_l12_n996(x)
- end
-end
-
-def fun_l11_n296(x)
- if (x < 1)
- fun_l12_n491(x)
- else
- fun_l12_n601(x)
- end
-end
-
-def fun_l11_n297(x)
- if (x < 1)
- fun_l12_n449(x)
- else
- fun_l12_n361(x)
- end
-end
-
-def fun_l11_n298(x)
- if (x < 1)
- fun_l12_n617(x)
- else
- fun_l12_n346(x)
- end
-end
-
-def fun_l11_n299(x)
- if (x < 1)
- fun_l12_n578(x)
- else
- fun_l12_n147(x)
- end
-end
-
-def fun_l11_n300(x)
- if (x < 1)
- fun_l12_n73(x)
- else
- fun_l12_n360(x)
- end
-end
-
-def fun_l11_n301(x)
- if (x < 1)
- fun_l12_n398(x)
- else
- fun_l12_n749(x)
- end
-end
-
-def fun_l11_n302(x)
- if (x < 1)
- fun_l12_n871(x)
- else
- fun_l12_n745(x)
- end
-end
-
-def fun_l11_n303(x)
- if (x < 1)
- fun_l12_n669(x)
- else
- fun_l12_n196(x)
- end
-end
-
-def fun_l11_n304(x)
- if (x < 1)
- fun_l12_n202(x)
- else
- fun_l12_n173(x)
- end
-end
-
-def fun_l11_n305(x)
- if (x < 1)
- fun_l12_n975(x)
- else
- fun_l12_n859(x)
- end
-end
-
-def fun_l11_n306(x)
- if (x < 1)
- fun_l12_n776(x)
- else
- fun_l12_n433(x)
- end
-end
-
-def fun_l11_n307(x)
- if (x < 1)
- fun_l12_n760(x)
- else
- fun_l12_n4(x)
- end
-end
-
-def fun_l11_n308(x)
- if (x < 1)
- fun_l12_n834(x)
- else
- fun_l12_n276(x)
- end
-end
-
-def fun_l11_n309(x)
- if (x < 1)
- fun_l12_n162(x)
- else
- fun_l12_n741(x)
- end
-end
-
-def fun_l11_n310(x)
- if (x < 1)
- fun_l12_n231(x)
- else
- fun_l12_n646(x)
- end
-end
-
-def fun_l11_n311(x)
- if (x < 1)
- fun_l12_n90(x)
- else
- fun_l12_n46(x)
- end
-end
-
-def fun_l11_n312(x)
- if (x < 1)
- fun_l12_n101(x)
- else
- fun_l12_n75(x)
- end
-end
-
-def fun_l11_n313(x)
- if (x < 1)
- fun_l12_n415(x)
- else
- fun_l12_n535(x)
- end
-end
-
-def fun_l11_n314(x)
- if (x < 1)
- fun_l12_n550(x)
- else
- fun_l12_n305(x)
- end
-end
-
-def fun_l11_n315(x)
- if (x < 1)
- fun_l12_n971(x)
- else
- fun_l12_n700(x)
- end
-end
-
-def fun_l11_n316(x)
- if (x < 1)
- fun_l12_n942(x)
- else
- fun_l12_n793(x)
- end
-end
-
-def fun_l11_n317(x)
- if (x < 1)
- fun_l12_n771(x)
- else
- fun_l12_n383(x)
- end
-end
-
-def fun_l11_n318(x)
- if (x < 1)
- fun_l12_n846(x)
- else
- fun_l12_n504(x)
- end
-end
-
-def fun_l11_n319(x)
- if (x < 1)
- fun_l12_n28(x)
- else
- fun_l12_n174(x)
- end
-end
-
-def fun_l11_n320(x)
- if (x < 1)
- fun_l12_n437(x)
- else
- fun_l12_n355(x)
- end
-end
-
-def fun_l11_n321(x)
- if (x < 1)
- fun_l12_n954(x)
- else
- fun_l12_n78(x)
- end
-end
-
-def fun_l11_n322(x)
- if (x < 1)
- fun_l12_n256(x)
- else
- fun_l12_n729(x)
- end
-end
-
-def fun_l11_n323(x)
- if (x < 1)
- fun_l12_n41(x)
- else
- fun_l12_n88(x)
- end
-end
-
-def fun_l11_n324(x)
- if (x < 1)
- fun_l12_n256(x)
- else
- fun_l12_n162(x)
- end
-end
-
-def fun_l11_n325(x)
- if (x < 1)
- fun_l12_n143(x)
- else
- fun_l12_n506(x)
- end
-end
-
-def fun_l11_n326(x)
- if (x < 1)
- fun_l12_n686(x)
- else
- fun_l12_n968(x)
- end
-end
-
-def fun_l11_n327(x)
- if (x < 1)
- fun_l12_n235(x)
- else
- fun_l12_n246(x)
- end
-end
-
-def fun_l11_n328(x)
- if (x < 1)
- fun_l12_n85(x)
- else
- fun_l12_n125(x)
- end
-end
-
-def fun_l11_n329(x)
- if (x < 1)
- fun_l12_n877(x)
- else
- fun_l12_n193(x)
- end
-end
-
-def fun_l11_n330(x)
- if (x < 1)
- fun_l12_n678(x)
- else
- fun_l12_n147(x)
- end
-end
-
-def fun_l11_n331(x)
- if (x < 1)
- fun_l12_n402(x)
- else
- fun_l12_n747(x)
- end
-end
-
-def fun_l11_n332(x)
- if (x < 1)
- fun_l12_n390(x)
- else
- fun_l12_n852(x)
- end
-end
-
-def fun_l11_n333(x)
- if (x < 1)
- fun_l12_n299(x)
- else
- fun_l12_n122(x)
- end
-end
-
-def fun_l11_n334(x)
- if (x < 1)
- fun_l12_n398(x)
- else
- fun_l12_n886(x)
- end
-end
-
-def fun_l11_n335(x)
- if (x < 1)
- fun_l12_n128(x)
- else
- fun_l12_n729(x)
- end
-end
-
-def fun_l11_n336(x)
- if (x < 1)
- fun_l12_n611(x)
- else
- fun_l12_n75(x)
- end
-end
-
-def fun_l11_n337(x)
- if (x < 1)
- fun_l12_n327(x)
- else
- fun_l12_n442(x)
- end
-end
-
-def fun_l11_n338(x)
- if (x < 1)
- fun_l12_n353(x)
- else
- fun_l12_n259(x)
- end
-end
-
-def fun_l11_n339(x)
- if (x < 1)
- fun_l12_n173(x)
- else
- fun_l12_n846(x)
- end
-end
-
-def fun_l11_n340(x)
- if (x < 1)
- fun_l12_n579(x)
- else
- fun_l12_n869(x)
- end
-end
-
-def fun_l11_n341(x)
- if (x < 1)
- fun_l12_n336(x)
- else
- fun_l12_n364(x)
- end
-end
-
-def fun_l11_n342(x)
- if (x < 1)
- fun_l12_n355(x)
- else
- fun_l12_n317(x)
- end
-end
-
-def fun_l11_n343(x)
- if (x < 1)
- fun_l12_n560(x)
- else
- fun_l12_n202(x)
- end
-end
-
-def fun_l11_n344(x)
- if (x < 1)
- fun_l12_n232(x)
- else
- fun_l12_n447(x)
- end
-end
-
-def fun_l11_n345(x)
- if (x < 1)
- fun_l12_n712(x)
- else
- fun_l12_n205(x)
- end
-end
-
-def fun_l11_n346(x)
- if (x < 1)
- fun_l12_n102(x)
- else
- fun_l12_n785(x)
- end
-end
-
-def fun_l11_n347(x)
- if (x < 1)
- fun_l12_n545(x)
- else
- fun_l12_n186(x)
- end
-end
-
-def fun_l11_n348(x)
- if (x < 1)
- fun_l12_n530(x)
- else
- fun_l12_n705(x)
- end
-end
-
-def fun_l11_n349(x)
- if (x < 1)
- fun_l12_n428(x)
- else
- fun_l12_n295(x)
- end
-end
-
-def fun_l11_n350(x)
- if (x < 1)
- fun_l12_n855(x)
- else
- fun_l12_n232(x)
- end
-end
-
-def fun_l11_n351(x)
- if (x < 1)
- fun_l12_n759(x)
- else
- fun_l12_n13(x)
- end
-end
-
-def fun_l11_n352(x)
- if (x < 1)
- fun_l12_n366(x)
- else
- fun_l12_n700(x)
- end
-end
-
-def fun_l11_n353(x)
- if (x < 1)
- fun_l12_n814(x)
- else
- fun_l12_n101(x)
- end
-end
-
-def fun_l11_n354(x)
- if (x < 1)
- fun_l12_n788(x)
- else
- fun_l12_n509(x)
- end
-end
-
-def fun_l11_n355(x)
- if (x < 1)
- fun_l12_n619(x)
- else
- fun_l12_n531(x)
- end
-end
-
-def fun_l11_n356(x)
- if (x < 1)
- fun_l12_n142(x)
- else
- fun_l12_n586(x)
- end
-end
-
-def fun_l11_n357(x)
- if (x < 1)
- fun_l12_n772(x)
- else
- fun_l12_n714(x)
- end
-end
-
-def fun_l11_n358(x)
- if (x < 1)
- fun_l12_n506(x)
- else
- fun_l12_n405(x)
- end
-end
-
-def fun_l11_n359(x)
- if (x < 1)
- fun_l12_n991(x)
- else
- fun_l12_n141(x)
- end
-end
-
-def fun_l11_n360(x)
- if (x < 1)
- fun_l12_n156(x)
- else
- fun_l12_n67(x)
- end
-end
-
-def fun_l11_n361(x)
- if (x < 1)
- fun_l12_n525(x)
- else
- fun_l12_n293(x)
- end
-end
-
-def fun_l11_n362(x)
- if (x < 1)
- fun_l12_n396(x)
- else
- fun_l12_n931(x)
- end
-end
-
-def fun_l11_n363(x)
- if (x < 1)
- fun_l12_n153(x)
- else
- fun_l12_n831(x)
- end
-end
-
-def fun_l11_n364(x)
- if (x < 1)
- fun_l12_n240(x)
- else
- fun_l12_n450(x)
- end
-end
-
-def fun_l11_n365(x)
- if (x < 1)
- fun_l12_n514(x)
- else
- fun_l12_n312(x)
- end
-end
-
-def fun_l11_n366(x)
- if (x < 1)
- fun_l12_n456(x)
- else
- fun_l12_n221(x)
- end
-end
-
-def fun_l11_n367(x)
- if (x < 1)
- fun_l12_n920(x)
- else
- fun_l12_n699(x)
- end
-end
-
-def fun_l11_n368(x)
- if (x < 1)
- fun_l12_n738(x)
- else
- fun_l12_n793(x)
- end
-end
-
-def fun_l11_n369(x)
- if (x < 1)
- fun_l12_n13(x)
- else
- fun_l12_n812(x)
- end
-end
-
-def fun_l11_n370(x)
- if (x < 1)
- fun_l12_n392(x)
- else
- fun_l12_n342(x)
- end
-end
-
-def fun_l11_n371(x)
- if (x < 1)
- fun_l12_n470(x)
- else
- fun_l12_n623(x)
- end
-end
-
-def fun_l11_n372(x)
- if (x < 1)
- fun_l12_n26(x)
- else
- fun_l12_n138(x)
- end
-end
-
-def fun_l11_n373(x)
- if (x < 1)
- fun_l12_n70(x)
- else
- fun_l12_n682(x)
- end
-end
-
-def fun_l11_n374(x)
- if (x < 1)
- fun_l12_n413(x)
- else
- fun_l12_n900(x)
- end
-end
-
-def fun_l11_n375(x)
- if (x < 1)
- fun_l12_n328(x)
- else
- fun_l12_n848(x)
- end
-end
-
-def fun_l11_n376(x)
- if (x < 1)
- fun_l12_n604(x)
- else
- fun_l12_n823(x)
- end
-end
-
-def fun_l11_n377(x)
- if (x < 1)
- fun_l12_n469(x)
- else
- fun_l12_n868(x)
- end
-end
-
-def fun_l11_n378(x)
- if (x < 1)
- fun_l12_n241(x)
- else
- fun_l12_n571(x)
- end
-end
-
-def fun_l11_n379(x)
- if (x < 1)
- fun_l12_n669(x)
- else
- fun_l12_n75(x)
- end
-end
-
-def fun_l11_n380(x)
- if (x < 1)
- fun_l12_n587(x)
- else
- fun_l12_n454(x)
- end
-end
-
-def fun_l11_n381(x)
- if (x < 1)
- fun_l12_n210(x)
- else
- fun_l12_n512(x)
- end
-end
-
-def fun_l11_n382(x)
- if (x < 1)
- fun_l12_n73(x)
- else
- fun_l12_n981(x)
- end
-end
-
-def fun_l11_n383(x)
- if (x < 1)
- fun_l12_n59(x)
- else
- fun_l12_n274(x)
- end
-end
-
-def fun_l11_n384(x)
- if (x < 1)
- fun_l12_n242(x)
- else
- fun_l12_n631(x)
- end
-end
-
-def fun_l11_n385(x)
- if (x < 1)
- fun_l12_n933(x)
- else
- fun_l12_n678(x)
- end
-end
-
-def fun_l11_n386(x)
- if (x < 1)
- fun_l12_n695(x)
- else
- fun_l12_n766(x)
- end
-end
-
-def fun_l11_n387(x)
- if (x < 1)
- fun_l12_n49(x)
- else
- fun_l12_n459(x)
- end
-end
-
-def fun_l11_n388(x)
- if (x < 1)
- fun_l12_n751(x)
- else
- fun_l12_n594(x)
- end
-end
-
-def fun_l11_n389(x)
- if (x < 1)
- fun_l12_n149(x)
- else
- fun_l12_n290(x)
- end
-end
-
-def fun_l11_n390(x)
- if (x < 1)
- fun_l12_n307(x)
- else
- fun_l12_n723(x)
- end
-end
-
-def fun_l11_n391(x)
- if (x < 1)
- fun_l12_n606(x)
- else
- fun_l12_n97(x)
- end
-end
-
-def fun_l11_n392(x)
- if (x < 1)
- fun_l12_n31(x)
- else
- fun_l12_n610(x)
- end
-end
-
-def fun_l11_n393(x)
- if (x < 1)
- fun_l12_n798(x)
- else
- fun_l12_n940(x)
- end
-end
-
-def fun_l11_n394(x)
- if (x < 1)
- fun_l12_n131(x)
- else
- fun_l12_n79(x)
- end
-end
-
-def fun_l11_n395(x)
- if (x < 1)
- fun_l12_n230(x)
- else
- fun_l12_n72(x)
- end
-end
-
-def fun_l11_n396(x)
- if (x < 1)
- fun_l12_n506(x)
- else
- fun_l12_n433(x)
- end
-end
-
-def fun_l11_n397(x)
- if (x < 1)
- fun_l12_n410(x)
- else
- fun_l12_n648(x)
- end
-end
-
-def fun_l11_n398(x)
- if (x < 1)
- fun_l12_n946(x)
- else
- fun_l12_n630(x)
- end
-end
-
-def fun_l11_n399(x)
- if (x < 1)
- fun_l12_n394(x)
- else
- fun_l12_n220(x)
- end
-end
-
-def fun_l11_n400(x)
- if (x < 1)
- fun_l12_n761(x)
- else
- fun_l12_n407(x)
- end
-end
-
-def fun_l11_n401(x)
- if (x < 1)
- fun_l12_n386(x)
- else
- fun_l12_n411(x)
- end
-end
-
-def fun_l11_n402(x)
- if (x < 1)
- fun_l12_n290(x)
- else
- fun_l12_n334(x)
- end
-end
-
-def fun_l11_n403(x)
- if (x < 1)
- fun_l12_n600(x)
- else
- fun_l12_n282(x)
- end
-end
-
-def fun_l11_n404(x)
- if (x < 1)
- fun_l12_n334(x)
- else
- fun_l12_n214(x)
- end
-end
-
-def fun_l11_n405(x)
- if (x < 1)
- fun_l12_n103(x)
- else
- fun_l12_n188(x)
- end
-end
-
-def fun_l11_n406(x)
- if (x < 1)
- fun_l12_n755(x)
- else
- fun_l12_n773(x)
- end
-end
-
-def fun_l11_n407(x)
- if (x < 1)
- fun_l12_n269(x)
- else
- fun_l12_n579(x)
- end
-end
-
-def fun_l11_n408(x)
- if (x < 1)
- fun_l12_n54(x)
- else
- fun_l12_n961(x)
- end
-end
-
-def fun_l11_n409(x)
- if (x < 1)
- fun_l12_n699(x)
- else
- fun_l12_n117(x)
- end
-end
-
-def fun_l11_n410(x)
- if (x < 1)
- fun_l12_n802(x)
- else
- fun_l12_n65(x)
- end
-end
-
-def fun_l11_n411(x)
- if (x < 1)
- fun_l12_n776(x)
- else
- fun_l12_n676(x)
- end
-end
-
-def fun_l11_n412(x)
- if (x < 1)
- fun_l12_n520(x)
- else
- fun_l12_n447(x)
- end
-end
-
-def fun_l11_n413(x)
- if (x < 1)
- fun_l12_n856(x)
- else
- fun_l12_n285(x)
- end
-end
-
-def fun_l11_n414(x)
- if (x < 1)
- fun_l12_n797(x)
- else
- fun_l12_n590(x)
- end
-end
-
-def fun_l11_n415(x)
- if (x < 1)
- fun_l12_n128(x)
- else
- fun_l12_n677(x)
- end
-end
-
-def fun_l11_n416(x)
- if (x < 1)
- fun_l12_n422(x)
- else
- fun_l12_n632(x)
- end
-end
-
-def fun_l11_n417(x)
- if (x < 1)
- fun_l12_n159(x)
- else
- fun_l12_n722(x)
- end
-end
-
-def fun_l11_n418(x)
- if (x < 1)
- fun_l12_n989(x)
- else
- fun_l12_n670(x)
- end
-end
-
-def fun_l11_n419(x)
- if (x < 1)
- fun_l12_n952(x)
- else
- fun_l12_n65(x)
- end
-end
-
-def fun_l11_n420(x)
- if (x < 1)
- fun_l12_n796(x)
- else
- fun_l12_n493(x)
- end
-end
-
-def fun_l11_n421(x)
- if (x < 1)
- fun_l12_n897(x)
- else
- fun_l12_n729(x)
- end
-end
-
-def fun_l11_n422(x)
- if (x < 1)
- fun_l12_n557(x)
- else
- fun_l12_n545(x)
- end
-end
-
-def fun_l11_n423(x)
- if (x < 1)
- fun_l12_n716(x)
- else
- fun_l12_n746(x)
- end
-end
-
-def fun_l11_n424(x)
- if (x < 1)
- fun_l12_n335(x)
- else
- fun_l12_n968(x)
- end
-end
-
-def fun_l11_n425(x)
- if (x < 1)
- fun_l12_n891(x)
- else
- fun_l12_n115(x)
- end
-end
-
-def fun_l11_n426(x)
- if (x < 1)
- fun_l12_n757(x)
- else
- fun_l12_n750(x)
- end
-end
-
-def fun_l11_n427(x)
- if (x < 1)
- fun_l12_n391(x)
- else
- fun_l12_n729(x)
- end
-end
-
-def fun_l11_n428(x)
- if (x < 1)
- fun_l12_n249(x)
- else
- fun_l12_n347(x)
- end
-end
-
-def fun_l11_n429(x)
- if (x < 1)
- fun_l12_n234(x)
- else
- fun_l12_n154(x)
- end
-end
-
-def fun_l11_n430(x)
- if (x < 1)
- fun_l12_n890(x)
- else
- fun_l12_n40(x)
- end
-end
-
-def fun_l11_n431(x)
- if (x < 1)
- fun_l12_n804(x)
- else
- fun_l12_n90(x)
- end
-end
-
-def fun_l11_n432(x)
- if (x < 1)
- fun_l12_n936(x)
- else
- fun_l12_n127(x)
- end
-end
-
-def fun_l11_n433(x)
- if (x < 1)
- fun_l12_n551(x)
- else
- fun_l12_n404(x)
- end
-end
-
-def fun_l11_n434(x)
- if (x < 1)
- fun_l12_n246(x)
- else
- fun_l12_n759(x)
- end
-end
-
-def fun_l11_n435(x)
- if (x < 1)
- fun_l12_n708(x)
- else
- fun_l12_n735(x)
- end
-end
-
-def fun_l11_n436(x)
- if (x < 1)
- fun_l12_n535(x)
- else
- fun_l12_n785(x)
- end
-end
-
-def fun_l11_n437(x)
- if (x < 1)
- fun_l12_n322(x)
- else
- fun_l12_n629(x)
- end
-end
-
-def fun_l11_n438(x)
- if (x < 1)
- fun_l12_n986(x)
- else
- fun_l12_n899(x)
- end
-end
-
-def fun_l11_n439(x)
- if (x < 1)
- fun_l12_n147(x)
- else
- fun_l12_n582(x)
- end
-end
-
-def fun_l11_n440(x)
- if (x < 1)
- fun_l12_n375(x)
- else
- fun_l12_n667(x)
- end
-end
-
-def fun_l11_n441(x)
- if (x < 1)
- fun_l12_n467(x)
- else
- fun_l12_n994(x)
- end
-end
-
-def fun_l11_n442(x)
- if (x < 1)
- fun_l12_n176(x)
- else
- fun_l12_n558(x)
- end
-end
-
-def fun_l11_n443(x)
- if (x < 1)
- fun_l12_n452(x)
- else
- fun_l12_n37(x)
- end
-end
-
-def fun_l11_n444(x)
- if (x < 1)
- fun_l12_n701(x)
- else
- fun_l12_n382(x)
- end
-end
-
-def fun_l11_n445(x)
- if (x < 1)
- fun_l12_n881(x)
- else
- fun_l12_n896(x)
- end
-end
-
-def fun_l11_n446(x)
- if (x < 1)
- fun_l12_n901(x)
- else
- fun_l12_n822(x)
- end
-end
-
-def fun_l11_n447(x)
- if (x < 1)
- fun_l12_n6(x)
- else
- fun_l12_n648(x)
- end
-end
-
-def fun_l11_n448(x)
- if (x < 1)
- fun_l12_n359(x)
- else
- fun_l12_n682(x)
- end
-end
-
-def fun_l11_n449(x)
- if (x < 1)
- fun_l12_n675(x)
- else
- fun_l12_n379(x)
- end
-end
-
-def fun_l11_n450(x)
- if (x < 1)
- fun_l12_n254(x)
- else
- fun_l12_n475(x)
- end
-end
-
-def fun_l11_n451(x)
- if (x < 1)
- fun_l12_n951(x)
- else
- fun_l12_n947(x)
- end
-end
-
-def fun_l11_n452(x)
- if (x < 1)
- fun_l12_n909(x)
- else
- fun_l12_n703(x)
- end
-end
-
-def fun_l11_n453(x)
- if (x < 1)
- fun_l12_n555(x)
- else
- fun_l12_n862(x)
- end
-end
-
-def fun_l11_n454(x)
- if (x < 1)
- fun_l12_n379(x)
- else
- fun_l12_n852(x)
- end
-end
-
-def fun_l11_n455(x)
- if (x < 1)
- fun_l12_n85(x)
- else
- fun_l12_n219(x)
- end
-end
-
-def fun_l11_n456(x)
- if (x < 1)
- fun_l12_n84(x)
- else
- fun_l12_n678(x)
- end
-end
-
-def fun_l11_n457(x)
- if (x < 1)
- fun_l12_n663(x)
- else
- fun_l12_n637(x)
- end
-end
-
-def fun_l11_n458(x)
- if (x < 1)
- fun_l12_n627(x)
- else
- fun_l12_n764(x)
- end
-end
-
-def fun_l11_n459(x)
- if (x < 1)
- fun_l12_n3(x)
- else
- fun_l12_n419(x)
- end
-end
-
-def fun_l11_n460(x)
- if (x < 1)
- fun_l12_n69(x)
- else
- fun_l12_n802(x)
- end
-end
-
-def fun_l11_n461(x)
- if (x < 1)
- fun_l12_n708(x)
- else
- fun_l12_n304(x)
- end
-end
-
-def fun_l11_n462(x)
- if (x < 1)
- fun_l12_n323(x)
- else
- fun_l12_n92(x)
- end
-end
-
-def fun_l11_n463(x)
- if (x < 1)
- fun_l12_n987(x)
- else
- fun_l12_n434(x)
- end
-end
-
-def fun_l11_n464(x)
- if (x < 1)
- fun_l12_n532(x)
- else
- fun_l12_n82(x)
- end
-end
-
-def fun_l11_n465(x)
- if (x < 1)
- fun_l12_n664(x)
- else
- fun_l12_n982(x)
- end
-end
-
-def fun_l11_n466(x)
- if (x < 1)
- fun_l12_n488(x)
- else
- fun_l12_n799(x)
- end
-end
-
-def fun_l11_n467(x)
- if (x < 1)
- fun_l12_n882(x)
- else
- fun_l12_n948(x)
- end
-end
-
-def fun_l11_n468(x)
- if (x < 1)
- fun_l12_n585(x)
- else
- fun_l12_n528(x)
- end
-end
-
-def fun_l11_n469(x)
- if (x < 1)
- fun_l12_n318(x)
- else
- fun_l12_n233(x)
- end
-end
-
-def fun_l11_n470(x)
- if (x < 1)
- fun_l12_n537(x)
- else
- fun_l12_n803(x)
- end
-end
-
-def fun_l11_n471(x)
- if (x < 1)
- fun_l12_n391(x)
- else
- fun_l12_n298(x)
- end
-end
-
-def fun_l11_n472(x)
- if (x < 1)
- fun_l12_n266(x)
- else
- fun_l12_n345(x)
- end
-end
-
-def fun_l11_n473(x)
- if (x < 1)
- fun_l12_n355(x)
- else
- fun_l12_n713(x)
- end
-end
-
-def fun_l11_n474(x)
- if (x < 1)
- fun_l12_n352(x)
- else
- fun_l12_n12(x)
- end
-end
-
-def fun_l11_n475(x)
- if (x < 1)
- fun_l12_n23(x)
- else
- fun_l12_n715(x)
- end
-end
-
-def fun_l11_n476(x)
- if (x < 1)
- fun_l12_n342(x)
- else
- fun_l12_n323(x)
- end
-end
-
-def fun_l11_n477(x)
- if (x < 1)
- fun_l12_n563(x)
- else
- fun_l12_n905(x)
- end
-end
-
-def fun_l11_n478(x)
- if (x < 1)
- fun_l12_n313(x)
- else
- fun_l12_n489(x)
- end
-end
-
-def fun_l11_n479(x)
- if (x < 1)
- fun_l12_n75(x)
- else
- fun_l12_n291(x)
- end
-end
-
-def fun_l11_n480(x)
- if (x < 1)
- fun_l12_n693(x)
- else
- fun_l12_n991(x)
- end
-end
-
-def fun_l11_n481(x)
- if (x < 1)
- fun_l12_n246(x)
- else
- fun_l12_n664(x)
- end
-end
-
-def fun_l11_n482(x)
- if (x < 1)
- fun_l12_n524(x)
- else
- fun_l12_n1(x)
- end
-end
-
-def fun_l11_n483(x)
- if (x < 1)
- fun_l12_n712(x)
- else
- fun_l12_n289(x)
- end
-end
-
-def fun_l11_n484(x)
- if (x < 1)
- fun_l12_n435(x)
- else
- fun_l12_n163(x)
- end
-end
-
-def fun_l11_n485(x)
- if (x < 1)
- fun_l12_n338(x)
- else
- fun_l12_n883(x)
- end
-end
-
-def fun_l11_n486(x)
- if (x < 1)
- fun_l12_n958(x)
- else
- fun_l12_n143(x)
- end
-end
-
-def fun_l11_n487(x)
- if (x < 1)
- fun_l12_n22(x)
- else
- fun_l12_n674(x)
- end
-end
-
-def fun_l11_n488(x)
- if (x < 1)
- fun_l12_n905(x)
- else
- fun_l12_n955(x)
- end
-end
-
-def fun_l11_n489(x)
- if (x < 1)
- fun_l12_n590(x)
- else
- fun_l12_n623(x)
- end
-end
-
-def fun_l11_n490(x)
- if (x < 1)
- fun_l12_n434(x)
- else
- fun_l12_n793(x)
- end
-end
-
-def fun_l11_n491(x)
- if (x < 1)
- fun_l12_n274(x)
- else
- fun_l12_n879(x)
- end
-end
-
-def fun_l11_n492(x)
- if (x < 1)
- fun_l12_n639(x)
- else
- fun_l12_n915(x)
- end
-end
-
-def fun_l11_n493(x)
- if (x < 1)
- fun_l12_n547(x)
- else
- fun_l12_n87(x)
- end
-end
-
-def fun_l11_n494(x)
- if (x < 1)
- fun_l12_n364(x)
- else
- fun_l12_n133(x)
- end
-end
-
-def fun_l11_n495(x)
- if (x < 1)
- fun_l12_n568(x)
- else
- fun_l12_n449(x)
- end
-end
-
-def fun_l11_n496(x)
- if (x < 1)
- fun_l12_n751(x)
- else
- fun_l12_n580(x)
- end
-end
-
-def fun_l11_n497(x)
- if (x < 1)
- fun_l12_n864(x)
- else
- fun_l12_n505(x)
- end
-end
-
-def fun_l11_n498(x)
- if (x < 1)
- fun_l12_n68(x)
- else
- fun_l12_n280(x)
- end
-end
-
-def fun_l11_n499(x)
- if (x < 1)
- fun_l12_n821(x)
- else
- fun_l12_n816(x)
- end
-end
-
-def fun_l11_n500(x)
- if (x < 1)
- fun_l12_n793(x)
- else
- fun_l12_n558(x)
- end
-end
-
-def fun_l11_n501(x)
- if (x < 1)
- fun_l12_n460(x)
- else
- fun_l12_n358(x)
- end
-end
-
-def fun_l11_n502(x)
- if (x < 1)
- fun_l12_n99(x)
- else
- fun_l12_n149(x)
- end
-end
-
-def fun_l11_n503(x)
- if (x < 1)
- fun_l12_n599(x)
- else
- fun_l12_n257(x)
- end
-end
-
-def fun_l11_n504(x)
- if (x < 1)
- fun_l12_n853(x)
- else
- fun_l12_n477(x)
- end
-end
-
-def fun_l11_n505(x)
- if (x < 1)
- fun_l12_n845(x)
- else
- fun_l12_n776(x)
- end
-end
-
-def fun_l11_n506(x)
- if (x < 1)
- fun_l12_n533(x)
- else
- fun_l12_n6(x)
- end
-end
-
-def fun_l11_n507(x)
- if (x < 1)
- fun_l12_n700(x)
- else
- fun_l12_n47(x)
- end
-end
-
-def fun_l11_n508(x)
- if (x < 1)
- fun_l12_n449(x)
- else
- fun_l12_n261(x)
- end
-end
-
-def fun_l11_n509(x)
- if (x < 1)
- fun_l12_n773(x)
- else
- fun_l12_n583(x)
- end
-end
-
-def fun_l11_n510(x)
- if (x < 1)
- fun_l12_n252(x)
- else
- fun_l12_n215(x)
- end
-end
-
-def fun_l11_n511(x)
- if (x < 1)
- fun_l12_n280(x)
- else
- fun_l12_n589(x)
- end
-end
-
-def fun_l11_n512(x)
- if (x < 1)
- fun_l12_n796(x)
- else
- fun_l12_n803(x)
- end
-end
-
-def fun_l11_n513(x)
- if (x < 1)
- fun_l12_n450(x)
- else
- fun_l12_n606(x)
- end
-end
-
-def fun_l11_n514(x)
- if (x < 1)
- fun_l12_n509(x)
- else
- fun_l12_n521(x)
- end
-end
-
-def fun_l11_n515(x)
- if (x < 1)
- fun_l12_n658(x)
- else
- fun_l12_n912(x)
- end
-end
-
-def fun_l11_n516(x)
- if (x < 1)
- fun_l12_n181(x)
- else
- fun_l12_n724(x)
- end
-end
-
-def fun_l11_n517(x)
- if (x < 1)
- fun_l12_n167(x)
- else
- fun_l12_n996(x)
- end
-end
-
-def fun_l11_n518(x)
- if (x < 1)
- fun_l12_n654(x)
- else
- fun_l12_n67(x)
- end
-end
-
-def fun_l11_n519(x)
- if (x < 1)
- fun_l12_n192(x)
- else
- fun_l12_n110(x)
- end
-end
-
-def fun_l11_n520(x)
- if (x < 1)
- fun_l12_n271(x)
- else
- fun_l12_n74(x)
- end
-end
-
-def fun_l11_n521(x)
- if (x < 1)
- fun_l12_n324(x)
- else
- fun_l12_n224(x)
- end
-end
-
-def fun_l11_n522(x)
- if (x < 1)
- fun_l12_n535(x)
- else
- fun_l12_n537(x)
- end
-end
-
-def fun_l11_n523(x)
- if (x < 1)
- fun_l12_n103(x)
- else
- fun_l12_n942(x)
- end
-end
-
-def fun_l11_n524(x)
- if (x < 1)
- fun_l12_n755(x)
- else
- fun_l12_n431(x)
- end
-end
-
-def fun_l11_n525(x)
- if (x < 1)
- fun_l12_n243(x)
- else
- fun_l12_n131(x)
- end
-end
-
-def fun_l11_n526(x)
- if (x < 1)
- fun_l12_n270(x)
- else
- fun_l12_n747(x)
- end
-end
-
-def fun_l11_n527(x)
- if (x < 1)
- fun_l12_n566(x)
- else
- fun_l12_n284(x)
- end
-end
-
-def fun_l11_n528(x)
- if (x < 1)
- fun_l12_n510(x)
- else
- fun_l12_n928(x)
- end
-end
-
-def fun_l11_n529(x)
- if (x < 1)
- fun_l12_n354(x)
- else
- fun_l12_n1(x)
- end
-end
-
-def fun_l11_n530(x)
- if (x < 1)
- fun_l12_n271(x)
- else
- fun_l12_n875(x)
- end
-end
-
-def fun_l11_n531(x)
- if (x < 1)
- fun_l12_n871(x)
- else
- fun_l12_n441(x)
- end
-end
-
-def fun_l11_n532(x)
- if (x < 1)
- fun_l12_n727(x)
- else
- fun_l12_n903(x)
- end
-end
-
-def fun_l11_n533(x)
- if (x < 1)
- fun_l12_n843(x)
- else
- fun_l12_n202(x)
- end
-end
-
-def fun_l11_n534(x)
- if (x < 1)
- fun_l12_n798(x)
- else
- fun_l12_n309(x)
- end
-end
-
-def fun_l11_n535(x)
- if (x < 1)
- fun_l12_n397(x)
- else
- fun_l12_n377(x)
- end
-end
-
-def fun_l11_n536(x)
- if (x < 1)
- fun_l12_n441(x)
- else
- fun_l12_n253(x)
- end
-end
-
-def fun_l11_n537(x)
- if (x < 1)
- fun_l12_n861(x)
- else
- fun_l12_n84(x)
- end
-end
-
-def fun_l11_n538(x)
- if (x < 1)
- fun_l12_n268(x)
- else
- fun_l12_n627(x)
- end
-end
-
-def fun_l11_n539(x)
- if (x < 1)
- fun_l12_n923(x)
- else
- fun_l12_n650(x)
- end
-end
-
-def fun_l11_n540(x)
- if (x < 1)
- fun_l12_n503(x)
- else
- fun_l12_n598(x)
- end
-end
-
-def fun_l11_n541(x)
- if (x < 1)
- fun_l12_n355(x)
- else
- fun_l12_n201(x)
- end
-end
-
-def fun_l11_n542(x)
- if (x < 1)
- fun_l12_n956(x)
- else
- fun_l12_n789(x)
- end
-end
-
-def fun_l11_n543(x)
- if (x < 1)
- fun_l12_n438(x)
- else
- fun_l12_n47(x)
- end
-end
-
-def fun_l11_n544(x)
- if (x < 1)
- fun_l12_n425(x)
- else
- fun_l12_n109(x)
- end
-end
-
-def fun_l11_n545(x)
- if (x < 1)
- fun_l12_n540(x)
- else
- fun_l12_n360(x)
- end
-end
-
-def fun_l11_n546(x)
- if (x < 1)
- fun_l12_n228(x)
- else
- fun_l12_n270(x)
- end
-end
-
-def fun_l11_n547(x)
- if (x < 1)
- fun_l12_n528(x)
- else
- fun_l12_n423(x)
- end
-end
-
-def fun_l11_n548(x)
- if (x < 1)
- fun_l12_n656(x)
- else
- fun_l12_n269(x)
- end
-end
-
-def fun_l11_n549(x)
- if (x < 1)
- fun_l12_n541(x)
- else
- fun_l12_n488(x)
- end
-end
-
-def fun_l11_n550(x)
- if (x < 1)
- fun_l12_n240(x)
- else
- fun_l12_n990(x)
- end
-end
-
-def fun_l11_n551(x)
- if (x < 1)
- fun_l12_n279(x)
- else
- fun_l12_n61(x)
- end
-end
-
-def fun_l11_n552(x)
- if (x < 1)
- fun_l12_n996(x)
- else
- fun_l12_n738(x)
- end
-end
-
-def fun_l11_n553(x)
- if (x < 1)
- fun_l12_n334(x)
- else
- fun_l12_n117(x)
- end
-end
-
-def fun_l11_n554(x)
- if (x < 1)
- fun_l12_n943(x)
- else
- fun_l12_n754(x)
- end
-end
-
-def fun_l11_n555(x)
- if (x < 1)
- fun_l12_n256(x)
- else
- fun_l12_n961(x)
- end
-end
-
-def fun_l11_n556(x)
- if (x < 1)
- fun_l12_n530(x)
- else
- fun_l12_n378(x)
- end
-end
-
-def fun_l11_n557(x)
- if (x < 1)
- fun_l12_n681(x)
- else
- fun_l12_n153(x)
- end
-end
-
-def fun_l11_n558(x)
- if (x < 1)
- fun_l12_n145(x)
- else
- fun_l12_n951(x)
- end
-end
-
-def fun_l11_n559(x)
- if (x < 1)
- fun_l12_n107(x)
- else
- fun_l12_n341(x)
- end
-end
-
-def fun_l11_n560(x)
- if (x < 1)
- fun_l12_n570(x)
- else
- fun_l12_n152(x)
- end
-end
-
-def fun_l11_n561(x)
- if (x < 1)
- fun_l12_n351(x)
- else
- fun_l12_n664(x)
- end
-end
-
-def fun_l11_n562(x)
- if (x < 1)
- fun_l12_n825(x)
- else
- fun_l12_n226(x)
- end
-end
-
-def fun_l11_n563(x)
- if (x < 1)
- fun_l12_n898(x)
- else
- fun_l12_n553(x)
- end
-end
-
-def fun_l11_n564(x)
- if (x < 1)
- fun_l12_n122(x)
- else
- fun_l12_n618(x)
- end
-end
-
-def fun_l11_n565(x)
- if (x < 1)
- fun_l12_n185(x)
- else
- fun_l12_n51(x)
- end
-end
-
-def fun_l11_n566(x)
- if (x < 1)
- fun_l12_n359(x)
- else
- fun_l12_n67(x)
- end
-end
-
-def fun_l11_n567(x)
- if (x < 1)
- fun_l12_n471(x)
- else
- fun_l12_n28(x)
- end
-end
-
-def fun_l11_n568(x)
- if (x < 1)
- fun_l12_n195(x)
- else
- fun_l12_n104(x)
- end
-end
-
-def fun_l11_n569(x)
- if (x < 1)
- fun_l12_n556(x)
- else
- fun_l12_n242(x)
- end
-end
-
-def fun_l11_n570(x)
- if (x < 1)
- fun_l12_n203(x)
- else
- fun_l12_n204(x)
- end
-end
-
-def fun_l11_n571(x)
- if (x < 1)
- fun_l12_n217(x)
- else
- fun_l12_n392(x)
- end
-end
-
-def fun_l11_n572(x)
- if (x < 1)
- fun_l12_n223(x)
- else
- fun_l12_n176(x)
- end
-end
-
-def fun_l11_n573(x)
- if (x < 1)
- fun_l12_n184(x)
- else
- fun_l12_n19(x)
- end
-end
-
-def fun_l11_n574(x)
- if (x < 1)
- fun_l12_n799(x)
- else
- fun_l12_n652(x)
- end
-end
-
-def fun_l11_n575(x)
- if (x < 1)
- fun_l12_n311(x)
- else
- fun_l12_n332(x)
- end
-end
-
-def fun_l11_n576(x)
- if (x < 1)
- fun_l12_n928(x)
- else
- fun_l12_n584(x)
- end
-end
-
-def fun_l11_n577(x)
- if (x < 1)
- fun_l12_n796(x)
- else
- fun_l12_n931(x)
- end
-end
-
-def fun_l11_n578(x)
- if (x < 1)
- fun_l12_n991(x)
- else
- fun_l12_n985(x)
- end
-end
-
-def fun_l11_n579(x)
- if (x < 1)
- fun_l12_n246(x)
- else
- fun_l12_n253(x)
- end
-end
-
-def fun_l11_n580(x)
- if (x < 1)
- fun_l12_n492(x)
- else
- fun_l12_n239(x)
- end
-end
-
-def fun_l11_n581(x)
- if (x < 1)
- fun_l12_n428(x)
- else
- fun_l12_n351(x)
- end
-end
-
-def fun_l11_n582(x)
- if (x < 1)
- fun_l12_n184(x)
- else
- fun_l12_n37(x)
- end
-end
-
-def fun_l11_n583(x)
- if (x < 1)
- fun_l12_n809(x)
- else
- fun_l12_n527(x)
- end
-end
-
-def fun_l11_n584(x)
- if (x < 1)
- fun_l12_n661(x)
- else
- fun_l12_n539(x)
- end
-end
-
-def fun_l11_n585(x)
- if (x < 1)
- fun_l12_n696(x)
- else
- fun_l12_n190(x)
- end
-end
-
-def fun_l11_n586(x)
- if (x < 1)
- fun_l12_n178(x)
- else
- fun_l12_n301(x)
- end
-end
-
-def fun_l11_n587(x)
- if (x < 1)
- fun_l12_n316(x)
- else
- fun_l12_n731(x)
- end
-end
-
-def fun_l11_n588(x)
- if (x < 1)
- fun_l12_n502(x)
- else
- fun_l12_n776(x)
- end
-end
-
-def fun_l11_n589(x)
- if (x < 1)
- fun_l12_n273(x)
- else
- fun_l12_n268(x)
- end
-end
-
-def fun_l11_n590(x)
- if (x < 1)
- fun_l12_n623(x)
- else
- fun_l12_n622(x)
- end
-end
-
-def fun_l11_n591(x)
- if (x < 1)
- fun_l12_n359(x)
- else
- fun_l12_n694(x)
- end
-end
-
-def fun_l11_n592(x)
- if (x < 1)
- fun_l12_n71(x)
- else
- fun_l12_n984(x)
- end
-end
-
-def fun_l11_n593(x)
- if (x < 1)
- fun_l12_n790(x)
- else
- fun_l12_n547(x)
- end
-end
-
-def fun_l11_n594(x)
- if (x < 1)
- fun_l12_n313(x)
- else
- fun_l12_n526(x)
- end
-end
-
-def fun_l11_n595(x)
- if (x < 1)
- fun_l12_n239(x)
- else
- fun_l12_n821(x)
- end
-end
-
-def fun_l11_n596(x)
- if (x < 1)
- fun_l12_n36(x)
- else
- fun_l12_n141(x)
- end
-end
-
-def fun_l11_n597(x)
- if (x < 1)
- fun_l12_n450(x)
- else
- fun_l12_n65(x)
- end
-end
-
-def fun_l11_n598(x)
- if (x < 1)
- fun_l12_n226(x)
- else
- fun_l12_n490(x)
- end
-end
-
-def fun_l11_n599(x)
- if (x < 1)
- fun_l12_n716(x)
- else
- fun_l12_n7(x)
- end
-end
-
-def fun_l11_n600(x)
- if (x < 1)
- fun_l12_n694(x)
- else
- fun_l12_n663(x)
- end
-end
-
-def fun_l11_n601(x)
- if (x < 1)
- fun_l12_n690(x)
- else
- fun_l12_n256(x)
- end
-end
-
-def fun_l11_n602(x)
- if (x < 1)
- fun_l12_n251(x)
- else
- fun_l12_n177(x)
- end
-end
-
-def fun_l11_n603(x)
- if (x < 1)
- fun_l12_n659(x)
- else
- fun_l12_n732(x)
- end
-end
-
-def fun_l11_n604(x)
- if (x < 1)
- fun_l12_n440(x)
- else
- fun_l12_n334(x)
- end
-end
-
-def fun_l11_n605(x)
- if (x < 1)
- fun_l12_n396(x)
- else
- fun_l12_n931(x)
- end
-end
-
-def fun_l11_n606(x)
- if (x < 1)
- fun_l12_n687(x)
- else
- fun_l12_n88(x)
- end
-end
-
-def fun_l11_n607(x)
- if (x < 1)
- fun_l12_n647(x)
- else
- fun_l12_n799(x)
- end
-end
-
-def fun_l11_n608(x)
- if (x < 1)
- fun_l12_n383(x)
- else
- fun_l12_n889(x)
- end
-end
-
-def fun_l11_n609(x)
- if (x < 1)
- fun_l12_n174(x)
- else
- fun_l12_n121(x)
- end
-end
-
-def fun_l11_n610(x)
- if (x < 1)
- fun_l12_n818(x)
- else
- fun_l12_n835(x)
- end
-end
-
-def fun_l11_n611(x)
- if (x < 1)
- fun_l12_n684(x)
- else
- fun_l12_n625(x)
- end
-end
-
-def fun_l11_n612(x)
- if (x < 1)
- fun_l12_n961(x)
- else
- fun_l12_n711(x)
- end
-end
-
-def fun_l11_n613(x)
- if (x < 1)
- fun_l12_n15(x)
- else
- fun_l12_n542(x)
- end
-end
-
-def fun_l11_n614(x)
- if (x < 1)
- fun_l12_n378(x)
- else
- fun_l12_n809(x)
- end
-end
-
-def fun_l11_n615(x)
- if (x < 1)
- fun_l12_n970(x)
- else
- fun_l12_n283(x)
- end
-end
-
-def fun_l11_n616(x)
- if (x < 1)
- fun_l12_n391(x)
- else
- fun_l12_n949(x)
- end
-end
-
-def fun_l11_n617(x)
- if (x < 1)
- fun_l12_n135(x)
- else
- fun_l12_n29(x)
- end
-end
-
-def fun_l11_n618(x)
- if (x < 1)
- fun_l12_n449(x)
- else
- fun_l12_n834(x)
- end
-end
-
-def fun_l11_n619(x)
- if (x < 1)
- fun_l12_n555(x)
- else
- fun_l12_n464(x)
- end
-end
-
-def fun_l11_n620(x)
- if (x < 1)
- fun_l12_n414(x)
- else
- fun_l12_n632(x)
- end
-end
-
-def fun_l11_n621(x)
- if (x < 1)
- fun_l12_n964(x)
- else
- fun_l12_n311(x)
- end
-end
-
-def fun_l11_n622(x)
- if (x < 1)
- fun_l12_n184(x)
- else
- fun_l12_n499(x)
- end
-end
-
-def fun_l11_n623(x)
- if (x < 1)
- fun_l12_n441(x)
- else
- fun_l12_n124(x)
- end
-end
-
-def fun_l11_n624(x)
- if (x < 1)
- fun_l12_n884(x)
- else
- fun_l12_n484(x)
- end
-end
-
-def fun_l11_n625(x)
- if (x < 1)
- fun_l12_n878(x)
- else
- fun_l12_n646(x)
- end
-end
-
-def fun_l11_n626(x)
- if (x < 1)
- fun_l12_n918(x)
- else
- fun_l12_n481(x)
- end
-end
-
-def fun_l11_n627(x)
- if (x < 1)
- fun_l12_n162(x)
- else
- fun_l12_n197(x)
- end
-end
-
-def fun_l11_n628(x)
- if (x < 1)
- fun_l12_n852(x)
- else
- fun_l12_n874(x)
- end
-end
-
-def fun_l11_n629(x)
- if (x < 1)
- fun_l12_n654(x)
- else
- fun_l12_n709(x)
- end
-end
-
-def fun_l11_n630(x)
- if (x < 1)
- fun_l12_n819(x)
- else
- fun_l12_n325(x)
- end
-end
-
-def fun_l11_n631(x)
- if (x < 1)
- fun_l12_n776(x)
- else
- fun_l12_n621(x)
- end
-end
-
-def fun_l11_n632(x)
- if (x < 1)
- fun_l12_n648(x)
- else
- fun_l12_n53(x)
- end
-end
-
-def fun_l11_n633(x)
- if (x < 1)
- fun_l12_n182(x)
- else
- fun_l12_n267(x)
- end
-end
-
-def fun_l11_n634(x)
- if (x < 1)
- fun_l12_n17(x)
- else
- fun_l12_n415(x)
- end
-end
-
-def fun_l11_n635(x)
- if (x < 1)
- fun_l12_n123(x)
- else
- fun_l12_n862(x)
- end
-end
-
-def fun_l11_n636(x)
- if (x < 1)
- fun_l12_n594(x)
- else
- fun_l12_n878(x)
- end
-end
-
-def fun_l11_n637(x)
- if (x < 1)
- fun_l12_n913(x)
- else
- fun_l12_n245(x)
- end
-end
-
-def fun_l11_n638(x)
- if (x < 1)
- fun_l12_n976(x)
- else
- fun_l12_n19(x)
- end
-end
-
-def fun_l11_n639(x)
- if (x < 1)
- fun_l12_n490(x)
- else
- fun_l12_n999(x)
- end
-end
-
-def fun_l11_n640(x)
- if (x < 1)
- fun_l12_n345(x)
- else
- fun_l12_n585(x)
- end
-end
-
-def fun_l11_n641(x)
- if (x < 1)
- fun_l12_n245(x)
- else
- fun_l12_n566(x)
- end
-end
-
-def fun_l11_n642(x)
- if (x < 1)
- fun_l12_n680(x)
- else
- fun_l12_n77(x)
- end
-end
-
-def fun_l11_n643(x)
- if (x < 1)
- fun_l12_n330(x)
- else
- fun_l12_n268(x)
- end
-end
-
-def fun_l11_n644(x)
- if (x < 1)
- fun_l12_n651(x)
- else
- fun_l12_n386(x)
- end
-end
-
-def fun_l11_n645(x)
- if (x < 1)
- fun_l12_n276(x)
- else
- fun_l12_n471(x)
- end
-end
-
-def fun_l11_n646(x)
- if (x < 1)
- fun_l12_n784(x)
- else
- fun_l12_n892(x)
- end
-end
-
-def fun_l11_n647(x)
- if (x < 1)
- fun_l12_n963(x)
- else
- fun_l12_n864(x)
- end
-end
-
-def fun_l11_n648(x)
- if (x < 1)
- fun_l12_n58(x)
- else
- fun_l12_n252(x)
- end
-end
-
-def fun_l11_n649(x)
- if (x < 1)
- fun_l12_n321(x)
- else
- fun_l12_n593(x)
- end
-end
-
-def fun_l11_n650(x)
- if (x < 1)
- fun_l12_n598(x)
- else
- fun_l12_n54(x)
- end
-end
-
-def fun_l11_n651(x)
- if (x < 1)
- fun_l12_n201(x)
- else
- fun_l12_n760(x)
- end
-end
-
-def fun_l11_n652(x)
- if (x < 1)
- fun_l12_n880(x)
- else
- fun_l12_n841(x)
- end
-end
-
-def fun_l11_n653(x)
- if (x < 1)
- fun_l12_n61(x)
- else
- fun_l12_n403(x)
- end
-end
-
-def fun_l11_n654(x)
- if (x < 1)
- fun_l12_n114(x)
- else
- fun_l12_n768(x)
- end
-end
-
-def fun_l11_n655(x)
- if (x < 1)
- fun_l12_n511(x)
- else
- fun_l12_n521(x)
- end
-end
-
-def fun_l11_n656(x)
- if (x < 1)
- fun_l12_n27(x)
- else
- fun_l12_n490(x)
- end
-end
-
-def fun_l11_n657(x)
- if (x < 1)
- fun_l12_n217(x)
- else
- fun_l12_n547(x)
- end
-end
-
-def fun_l11_n658(x)
- if (x < 1)
- fun_l12_n549(x)
- else
- fun_l12_n823(x)
- end
-end
-
-def fun_l11_n659(x)
- if (x < 1)
- fun_l12_n327(x)
- else
- fun_l12_n529(x)
- end
-end
-
-def fun_l11_n660(x)
- if (x < 1)
- fun_l12_n395(x)
- else
- fun_l12_n797(x)
- end
-end
-
-def fun_l11_n661(x)
- if (x < 1)
- fun_l12_n867(x)
- else
- fun_l12_n142(x)
- end
-end
-
-def fun_l11_n662(x)
- if (x < 1)
- fun_l12_n818(x)
- else
- fun_l12_n311(x)
- end
-end
-
-def fun_l11_n663(x)
- if (x < 1)
- fun_l12_n628(x)
- else
- fun_l12_n798(x)
- end
-end
-
-def fun_l11_n664(x)
- if (x < 1)
- fun_l12_n260(x)
- else
- fun_l12_n607(x)
- end
-end
-
-def fun_l11_n665(x)
- if (x < 1)
- fun_l12_n911(x)
- else
- fun_l12_n487(x)
- end
-end
-
-def fun_l11_n666(x)
- if (x < 1)
- fun_l12_n340(x)
- else
- fun_l12_n23(x)
- end
-end
-
-def fun_l11_n667(x)
- if (x < 1)
- fun_l12_n744(x)
- else
- fun_l12_n874(x)
- end
-end
-
-def fun_l11_n668(x)
- if (x < 1)
- fun_l12_n53(x)
- else
- fun_l12_n203(x)
- end
-end
-
-def fun_l11_n669(x)
- if (x < 1)
- fun_l12_n775(x)
- else
- fun_l12_n963(x)
- end
-end
-
-def fun_l11_n670(x)
- if (x < 1)
- fun_l12_n922(x)
- else
- fun_l12_n0(x)
- end
-end
-
-def fun_l11_n671(x)
- if (x < 1)
- fun_l12_n23(x)
- else
- fun_l12_n798(x)
- end
-end
-
-def fun_l11_n672(x)
- if (x < 1)
- fun_l12_n453(x)
- else
- fun_l12_n667(x)
- end
-end
-
-def fun_l11_n673(x)
- if (x < 1)
- fun_l12_n991(x)
- else
- fun_l12_n350(x)
- end
-end
-
-def fun_l11_n674(x)
- if (x < 1)
- fun_l12_n865(x)
- else
- fun_l12_n95(x)
- end
-end
-
-def fun_l11_n675(x)
- if (x < 1)
- fun_l12_n404(x)
- else
- fun_l12_n714(x)
- end
-end
-
-def fun_l11_n676(x)
- if (x < 1)
- fun_l12_n576(x)
- else
- fun_l12_n162(x)
- end
-end
-
-def fun_l11_n677(x)
- if (x < 1)
- fun_l12_n530(x)
- else
- fun_l12_n453(x)
- end
-end
-
-def fun_l11_n678(x)
- if (x < 1)
- fun_l12_n127(x)
- else
- fun_l12_n224(x)
- end
-end
-
-def fun_l11_n679(x)
- if (x < 1)
- fun_l12_n658(x)
- else
- fun_l12_n11(x)
- end
-end
-
-def fun_l11_n680(x)
- if (x < 1)
- fun_l12_n778(x)
- else
- fun_l12_n202(x)
- end
-end
-
-def fun_l11_n681(x)
- if (x < 1)
- fun_l12_n745(x)
- else
- fun_l12_n690(x)
- end
-end
-
-def fun_l11_n682(x)
- if (x < 1)
- fun_l12_n920(x)
- else
- fun_l12_n54(x)
- end
-end
-
-def fun_l11_n683(x)
- if (x < 1)
- fun_l12_n726(x)
- else
- fun_l12_n466(x)
- end
-end
-
-def fun_l11_n684(x)
- if (x < 1)
- fun_l12_n709(x)
- else
- fun_l12_n287(x)
- end
-end
-
-def fun_l11_n685(x)
- if (x < 1)
- fun_l12_n304(x)
- else
- fun_l12_n617(x)
- end
-end
-
-def fun_l11_n686(x)
- if (x < 1)
- fun_l12_n834(x)
- else
- fun_l12_n240(x)
- end
-end
-
-def fun_l11_n687(x)
- if (x < 1)
- fun_l12_n406(x)
- else
- fun_l12_n588(x)
- end
-end
-
-def fun_l11_n688(x)
- if (x < 1)
- fun_l12_n308(x)
- else
- fun_l12_n790(x)
- end
-end
-
-def fun_l11_n689(x)
- if (x < 1)
- fun_l12_n969(x)
- else
- fun_l12_n249(x)
- end
-end
-
-def fun_l11_n690(x)
- if (x < 1)
- fun_l12_n760(x)
- else
- fun_l12_n807(x)
- end
-end
-
-def fun_l11_n691(x)
- if (x < 1)
- fun_l12_n417(x)
- else
- fun_l12_n645(x)
- end
-end
-
-def fun_l11_n692(x)
- if (x < 1)
- fun_l12_n722(x)
- else
- fun_l12_n614(x)
- end
-end
-
-def fun_l11_n693(x)
- if (x < 1)
- fun_l12_n19(x)
- else
- fun_l12_n497(x)
- end
-end
-
-def fun_l11_n694(x)
- if (x < 1)
- fun_l12_n580(x)
- else
- fun_l12_n76(x)
- end
-end
-
-def fun_l11_n695(x)
- if (x < 1)
- fun_l12_n527(x)
- else
- fun_l12_n819(x)
- end
-end
-
-def fun_l11_n696(x)
- if (x < 1)
- fun_l12_n71(x)
- else
- fun_l12_n906(x)
- end
-end
-
-def fun_l11_n697(x)
- if (x < 1)
- fun_l12_n95(x)
- else
- fun_l12_n743(x)
- end
-end
-
-def fun_l11_n698(x)
- if (x < 1)
- fun_l12_n544(x)
- else
- fun_l12_n265(x)
- end
-end
-
-def fun_l11_n699(x)
- if (x < 1)
- fun_l12_n833(x)
- else
- fun_l12_n210(x)
- end
-end
-
-def fun_l11_n700(x)
- if (x < 1)
- fun_l12_n865(x)
- else
- fun_l12_n318(x)
- end
-end
-
-def fun_l11_n701(x)
- if (x < 1)
- fun_l12_n88(x)
- else
- fun_l12_n120(x)
- end
-end
-
-def fun_l11_n702(x)
- if (x < 1)
- fun_l12_n165(x)
- else
- fun_l12_n671(x)
- end
-end
-
-def fun_l11_n703(x)
- if (x < 1)
- fun_l12_n607(x)
- else
- fun_l12_n730(x)
- end
-end
-
-def fun_l11_n704(x)
- if (x < 1)
- fun_l12_n690(x)
- else
- fun_l12_n553(x)
- end
-end
-
-def fun_l11_n705(x)
- if (x < 1)
- fun_l12_n826(x)
- else
- fun_l12_n665(x)
- end
-end
-
-def fun_l11_n706(x)
- if (x < 1)
- fun_l12_n125(x)
- else
- fun_l12_n167(x)
- end
-end
-
-def fun_l11_n707(x)
- if (x < 1)
- fun_l12_n961(x)
- else
- fun_l12_n73(x)
- end
-end
-
-def fun_l11_n708(x)
- if (x < 1)
- fun_l12_n446(x)
- else
- fun_l12_n373(x)
- end
-end
-
-def fun_l11_n709(x)
- if (x < 1)
- fun_l12_n199(x)
- else
- fun_l12_n803(x)
- end
-end
-
-def fun_l11_n710(x)
- if (x < 1)
- fun_l12_n960(x)
- else
- fun_l12_n996(x)
- end
-end
-
-def fun_l11_n711(x)
- if (x < 1)
- fun_l12_n602(x)
- else
- fun_l12_n896(x)
- end
-end
-
-def fun_l11_n712(x)
- if (x < 1)
- fun_l12_n198(x)
- else
- fun_l12_n857(x)
- end
-end
-
-def fun_l11_n713(x)
- if (x < 1)
- fun_l12_n19(x)
- else
- fun_l12_n938(x)
- end
-end
-
-def fun_l11_n714(x)
- if (x < 1)
- fun_l12_n530(x)
- else
- fun_l12_n432(x)
- end
-end
-
-def fun_l11_n715(x)
- if (x < 1)
- fun_l12_n99(x)
- else
- fun_l12_n382(x)
- end
-end
-
-def fun_l11_n716(x)
- if (x < 1)
- fun_l12_n623(x)
- else
- fun_l12_n461(x)
- end
-end
-
-def fun_l11_n717(x)
- if (x < 1)
- fun_l12_n658(x)
- else
- fun_l12_n432(x)
- end
-end
-
-def fun_l11_n718(x)
- if (x < 1)
- fun_l12_n17(x)
- else
- fun_l12_n83(x)
- end
-end
-
-def fun_l11_n719(x)
- if (x < 1)
- fun_l12_n439(x)
- else
- fun_l12_n747(x)
- end
-end
-
-def fun_l11_n720(x)
- if (x < 1)
- fun_l12_n259(x)
- else
- fun_l12_n80(x)
- end
-end
-
-def fun_l11_n721(x)
- if (x < 1)
- fun_l12_n749(x)
- else
- fun_l12_n108(x)
- end
-end
-
-def fun_l11_n722(x)
- if (x < 1)
- fun_l12_n20(x)
- else
- fun_l12_n391(x)
- end
-end
-
-def fun_l11_n723(x)
- if (x < 1)
- fun_l12_n181(x)
- else
- fun_l12_n204(x)
- end
-end
-
-def fun_l11_n724(x)
- if (x < 1)
- fun_l12_n426(x)
- else
- fun_l12_n109(x)
- end
-end
-
-def fun_l11_n725(x)
- if (x < 1)
- fun_l12_n436(x)
- else
- fun_l12_n754(x)
- end
-end
-
-def fun_l11_n726(x)
- if (x < 1)
- fun_l12_n496(x)
- else
- fun_l12_n265(x)
- end
-end
-
-def fun_l11_n727(x)
- if (x < 1)
- fun_l12_n58(x)
- else
- fun_l12_n982(x)
- end
-end
-
-def fun_l11_n728(x)
- if (x < 1)
- fun_l12_n236(x)
- else
- fun_l12_n152(x)
- end
-end
-
-def fun_l11_n729(x)
- if (x < 1)
- fun_l12_n818(x)
- else
- fun_l12_n95(x)
- end
-end
-
-def fun_l11_n730(x)
- if (x < 1)
- fun_l12_n696(x)
- else
- fun_l12_n263(x)
- end
-end
-
-def fun_l11_n731(x)
- if (x < 1)
- fun_l12_n539(x)
- else
- fun_l12_n774(x)
- end
-end
-
-def fun_l11_n732(x)
- if (x < 1)
- fun_l12_n788(x)
- else
- fun_l12_n454(x)
- end
-end
-
-def fun_l11_n733(x)
- if (x < 1)
- fun_l12_n131(x)
- else
- fun_l12_n877(x)
- end
-end
-
-def fun_l11_n734(x)
- if (x < 1)
- fun_l12_n449(x)
- else
- fun_l12_n222(x)
- end
-end
-
-def fun_l11_n735(x)
- if (x < 1)
- fun_l12_n71(x)
- else
- fun_l12_n467(x)
- end
-end
-
-def fun_l11_n736(x)
- if (x < 1)
- fun_l12_n220(x)
- else
- fun_l12_n214(x)
- end
-end
-
-def fun_l11_n737(x)
- if (x < 1)
- fun_l12_n537(x)
- else
- fun_l12_n173(x)
- end
-end
-
-def fun_l11_n738(x)
- if (x < 1)
- fun_l12_n897(x)
- else
- fun_l12_n515(x)
- end
-end
-
-def fun_l11_n739(x)
- if (x < 1)
- fun_l12_n724(x)
- else
- fun_l12_n48(x)
- end
-end
-
-def fun_l11_n740(x)
- if (x < 1)
- fun_l12_n61(x)
- else
- fun_l12_n963(x)
- end
-end
-
-def fun_l11_n741(x)
- if (x < 1)
- fun_l12_n40(x)
- else
- fun_l12_n553(x)
- end
-end
-
-def fun_l11_n742(x)
- if (x < 1)
- fun_l12_n361(x)
- else
- fun_l12_n975(x)
- end
-end
-
-def fun_l11_n743(x)
- if (x < 1)
- fun_l12_n306(x)
- else
- fun_l12_n982(x)
- end
-end
-
-def fun_l11_n744(x)
- if (x < 1)
- fun_l12_n951(x)
- else
- fun_l12_n590(x)
- end
-end
-
-def fun_l11_n745(x)
- if (x < 1)
- fun_l12_n224(x)
- else
- fun_l12_n409(x)
- end
-end
-
-def fun_l11_n746(x)
- if (x < 1)
- fun_l12_n24(x)
- else
- fun_l12_n249(x)
- end
-end
-
-def fun_l11_n747(x)
- if (x < 1)
- fun_l12_n533(x)
- else
- fun_l12_n543(x)
- end
-end
-
-def fun_l11_n748(x)
- if (x < 1)
- fun_l12_n616(x)
- else
- fun_l12_n63(x)
- end
-end
-
-def fun_l11_n749(x)
- if (x < 1)
- fun_l12_n365(x)
- else
- fun_l12_n335(x)
- end
-end
-
-def fun_l11_n750(x)
- if (x < 1)
- fun_l12_n134(x)
- else
- fun_l12_n363(x)
- end
-end
-
-def fun_l11_n751(x)
- if (x < 1)
- fun_l12_n413(x)
- else
- fun_l12_n582(x)
- end
-end
-
-def fun_l11_n752(x)
- if (x < 1)
- fun_l12_n987(x)
- else
- fun_l12_n948(x)
- end
-end
-
-def fun_l11_n753(x)
- if (x < 1)
- fun_l12_n696(x)
- else
- fun_l12_n374(x)
- end
-end
-
-def fun_l11_n754(x)
- if (x < 1)
- fun_l12_n730(x)
- else
- fun_l12_n345(x)
- end
-end
-
-def fun_l11_n755(x)
- if (x < 1)
- fun_l12_n857(x)
- else
- fun_l12_n441(x)
- end
-end
-
-def fun_l11_n756(x)
- if (x < 1)
- fun_l12_n711(x)
- else
- fun_l12_n39(x)
- end
-end
-
-def fun_l11_n757(x)
- if (x < 1)
- fun_l12_n946(x)
- else
- fun_l12_n657(x)
- end
-end
-
-def fun_l11_n758(x)
- if (x < 1)
- fun_l12_n470(x)
- else
- fun_l12_n650(x)
- end
-end
-
-def fun_l11_n759(x)
- if (x < 1)
- fun_l12_n119(x)
- else
- fun_l12_n479(x)
- end
-end
-
-def fun_l11_n760(x)
- if (x < 1)
- fun_l12_n429(x)
- else
- fun_l12_n922(x)
- end
-end
-
-def fun_l11_n761(x)
- if (x < 1)
- fun_l12_n13(x)
- else
- fun_l12_n134(x)
- end
-end
-
-def fun_l11_n762(x)
- if (x < 1)
- fun_l12_n797(x)
- else
- fun_l12_n223(x)
- end
-end
-
-def fun_l11_n763(x)
- if (x < 1)
- fun_l12_n945(x)
- else
- fun_l12_n197(x)
- end
-end
-
-def fun_l11_n764(x)
- if (x < 1)
- fun_l12_n612(x)
- else
- fun_l12_n773(x)
- end
-end
-
-def fun_l11_n765(x)
- if (x < 1)
- fun_l12_n478(x)
- else
- fun_l12_n972(x)
- end
-end
-
-def fun_l11_n766(x)
- if (x < 1)
- fun_l12_n946(x)
- else
- fun_l12_n9(x)
- end
-end
-
-def fun_l11_n767(x)
- if (x < 1)
- fun_l12_n247(x)
- else
- fun_l12_n730(x)
- end
-end
-
-def fun_l11_n768(x)
- if (x < 1)
- fun_l12_n223(x)
- else
- fun_l12_n986(x)
- end
-end
-
-def fun_l11_n769(x)
- if (x < 1)
- fun_l12_n676(x)
- else
- fun_l12_n527(x)
- end
-end
-
-def fun_l11_n770(x)
- if (x < 1)
- fun_l12_n112(x)
- else
- fun_l12_n660(x)
- end
-end
-
-def fun_l11_n771(x)
- if (x < 1)
- fun_l12_n457(x)
- else
- fun_l12_n733(x)
- end
-end
-
-def fun_l11_n772(x)
- if (x < 1)
- fun_l12_n633(x)
- else
- fun_l12_n449(x)
- end
-end
-
-def fun_l11_n773(x)
- if (x < 1)
- fun_l12_n910(x)
- else
- fun_l12_n329(x)
- end
-end
-
-def fun_l11_n774(x)
- if (x < 1)
- fun_l12_n354(x)
- else
- fun_l12_n233(x)
- end
-end
-
-def fun_l11_n775(x)
- if (x < 1)
- fun_l12_n887(x)
- else
- fun_l12_n100(x)
- end
-end
-
-def fun_l11_n776(x)
- if (x < 1)
- fun_l12_n65(x)
- else
- fun_l12_n199(x)
- end
-end
-
-def fun_l11_n777(x)
- if (x < 1)
- fun_l12_n978(x)
- else
- fun_l12_n364(x)
- end
-end
-
-def fun_l11_n778(x)
- if (x < 1)
- fun_l12_n502(x)
- else
- fun_l12_n90(x)
- end
-end
-
-def fun_l11_n779(x)
- if (x < 1)
- fun_l12_n37(x)
- else
- fun_l12_n668(x)
- end
-end
-
-def fun_l11_n780(x)
- if (x < 1)
- fun_l12_n80(x)
- else
- fun_l12_n603(x)
- end
-end
-
-def fun_l11_n781(x)
- if (x < 1)
- fun_l12_n435(x)
- else
- fun_l12_n583(x)
- end
-end
-
-def fun_l11_n782(x)
- if (x < 1)
- fun_l12_n899(x)
- else
- fun_l12_n863(x)
- end
-end
-
-def fun_l11_n783(x)
- if (x < 1)
- fun_l12_n414(x)
- else
- fun_l12_n96(x)
- end
-end
-
-def fun_l11_n784(x)
- if (x < 1)
- fun_l12_n286(x)
- else
- fun_l12_n126(x)
- end
-end
-
-def fun_l11_n785(x)
- if (x < 1)
- fun_l12_n444(x)
- else
- fun_l12_n344(x)
- end
-end
-
-def fun_l11_n786(x)
- if (x < 1)
- fun_l12_n484(x)
- else
- fun_l12_n469(x)
- end
-end
-
-def fun_l11_n787(x)
- if (x < 1)
- fun_l12_n686(x)
- else
- fun_l12_n728(x)
- end
-end
-
-def fun_l11_n788(x)
- if (x < 1)
- fun_l12_n938(x)
- else
- fun_l12_n70(x)
- end
-end
-
-def fun_l11_n789(x)
- if (x < 1)
- fun_l12_n958(x)
- else
- fun_l12_n633(x)
- end
-end
-
-def fun_l11_n790(x)
- if (x < 1)
- fun_l12_n984(x)
- else
- fun_l12_n39(x)
- end
-end
-
-def fun_l11_n791(x)
- if (x < 1)
- fun_l12_n877(x)
- else
- fun_l12_n721(x)
- end
-end
-
-def fun_l11_n792(x)
- if (x < 1)
- fun_l12_n710(x)
- else
- fun_l12_n840(x)
- end
-end
-
-def fun_l11_n793(x)
- if (x < 1)
- fun_l12_n955(x)
- else
- fun_l12_n774(x)
- end
-end
-
-def fun_l11_n794(x)
- if (x < 1)
- fun_l12_n816(x)
- else
- fun_l12_n859(x)
- end
-end
-
-def fun_l11_n795(x)
- if (x < 1)
- fun_l12_n722(x)
- else
- fun_l12_n700(x)
- end
-end
-
-def fun_l11_n796(x)
- if (x < 1)
- fun_l12_n508(x)
- else
- fun_l12_n617(x)
- end
-end
-
-def fun_l11_n797(x)
- if (x < 1)
- fun_l12_n382(x)
- else
- fun_l12_n1(x)
- end
-end
-
-def fun_l11_n798(x)
- if (x < 1)
- fun_l12_n857(x)
- else
- fun_l12_n141(x)
- end
-end
-
-def fun_l11_n799(x)
- if (x < 1)
- fun_l12_n711(x)
- else
- fun_l12_n842(x)
- end
-end
-
-def fun_l11_n800(x)
- if (x < 1)
- fun_l12_n588(x)
- else
- fun_l12_n511(x)
- end
-end
-
-def fun_l11_n801(x)
- if (x < 1)
- fun_l12_n114(x)
- else
- fun_l12_n516(x)
- end
-end
-
-def fun_l11_n802(x)
- if (x < 1)
- fun_l12_n792(x)
- else
- fun_l12_n128(x)
- end
-end
-
-def fun_l11_n803(x)
- if (x < 1)
- fun_l12_n833(x)
- else
- fun_l12_n444(x)
- end
-end
-
-def fun_l11_n804(x)
- if (x < 1)
- fun_l12_n564(x)
- else
- fun_l12_n129(x)
- end
-end
-
-def fun_l11_n805(x)
- if (x < 1)
- fun_l12_n234(x)
- else
- fun_l12_n429(x)
- end
-end
-
-def fun_l11_n806(x)
- if (x < 1)
- fun_l12_n841(x)
- else
- fun_l12_n705(x)
- end
-end
-
-def fun_l11_n807(x)
- if (x < 1)
- fun_l12_n72(x)
- else
- fun_l12_n87(x)
- end
-end
-
-def fun_l11_n808(x)
- if (x < 1)
- fun_l12_n131(x)
- else
- fun_l12_n27(x)
- end
-end
-
-def fun_l11_n809(x)
- if (x < 1)
- fun_l12_n136(x)
- else
- fun_l12_n84(x)
- end
-end
-
-def fun_l11_n810(x)
- if (x < 1)
- fun_l12_n464(x)
- else
- fun_l12_n411(x)
- end
-end
-
-def fun_l11_n811(x)
- if (x < 1)
- fun_l12_n939(x)
- else
- fun_l12_n584(x)
- end
-end
-
-def fun_l11_n812(x)
- if (x < 1)
- fun_l12_n24(x)
- else
- fun_l12_n593(x)
- end
-end
-
-def fun_l11_n813(x)
- if (x < 1)
- fun_l12_n980(x)
- else
- fun_l12_n318(x)
- end
-end
-
-def fun_l11_n814(x)
- if (x < 1)
- fun_l12_n73(x)
- else
- fun_l12_n431(x)
- end
-end
-
-def fun_l11_n815(x)
- if (x < 1)
- fun_l12_n938(x)
- else
- fun_l12_n794(x)
- end
-end
-
-def fun_l11_n816(x)
- if (x < 1)
- fun_l12_n305(x)
- else
- fun_l12_n620(x)
- end
-end
-
-def fun_l11_n817(x)
- if (x < 1)
- fun_l12_n881(x)
- else
- fun_l12_n636(x)
- end
-end
-
-def fun_l11_n818(x)
- if (x < 1)
- fun_l12_n493(x)
- else
- fun_l12_n536(x)
- end
-end
-
-def fun_l11_n819(x)
- if (x < 1)
- fun_l12_n32(x)
- else
- fun_l12_n69(x)
- end
-end
-
-def fun_l11_n820(x)
- if (x < 1)
- fun_l12_n131(x)
- else
- fun_l12_n206(x)
- end
-end
-
-def fun_l11_n821(x)
- if (x < 1)
- fun_l12_n130(x)
- else
- fun_l12_n63(x)
- end
-end
-
-def fun_l11_n822(x)
- if (x < 1)
- fun_l12_n228(x)
- else
- fun_l12_n753(x)
- end
-end
-
-def fun_l11_n823(x)
- if (x < 1)
- fun_l12_n171(x)
- else
- fun_l12_n605(x)
- end
-end
-
-def fun_l11_n824(x)
- if (x < 1)
- fun_l12_n69(x)
- else
- fun_l12_n900(x)
- end
-end
-
-def fun_l11_n825(x)
- if (x < 1)
- fun_l12_n802(x)
- else
- fun_l12_n682(x)
- end
-end
-
-def fun_l11_n826(x)
- if (x < 1)
- fun_l12_n311(x)
- else
- fun_l12_n257(x)
- end
-end
-
-def fun_l11_n827(x)
- if (x < 1)
- fun_l12_n994(x)
- else
- fun_l12_n162(x)
- end
-end
-
-def fun_l11_n828(x)
- if (x < 1)
- fun_l12_n780(x)
- else
- fun_l12_n805(x)
- end
-end
-
-def fun_l11_n829(x)
- if (x < 1)
- fun_l12_n744(x)
- else
- fun_l12_n55(x)
- end
-end
-
-def fun_l11_n830(x)
- if (x < 1)
- fun_l12_n655(x)
- else
- fun_l12_n603(x)
- end
-end
-
-def fun_l11_n831(x)
- if (x < 1)
- fun_l12_n245(x)
- else
- fun_l12_n196(x)
- end
-end
-
-def fun_l11_n832(x)
- if (x < 1)
- fun_l12_n381(x)
- else
- fun_l12_n582(x)
- end
-end
-
-def fun_l11_n833(x)
- if (x < 1)
- fun_l12_n185(x)
- else
- fun_l12_n339(x)
- end
-end
-
-def fun_l11_n834(x)
- if (x < 1)
- fun_l12_n601(x)
- else
- fun_l12_n996(x)
- end
-end
-
-def fun_l11_n835(x)
- if (x < 1)
- fun_l12_n934(x)
- else
- fun_l12_n460(x)
- end
-end
-
-def fun_l11_n836(x)
- if (x < 1)
- fun_l12_n550(x)
- else
- fun_l12_n55(x)
- end
-end
-
-def fun_l11_n837(x)
- if (x < 1)
- fun_l12_n183(x)
- else
- fun_l12_n880(x)
- end
-end
-
-def fun_l11_n838(x)
- if (x < 1)
- fun_l12_n742(x)
- else
- fun_l12_n249(x)
- end
-end
-
-def fun_l11_n839(x)
- if (x < 1)
- fun_l12_n979(x)
- else
- fun_l12_n100(x)
- end
-end
-
-def fun_l11_n840(x)
- if (x < 1)
- fun_l12_n889(x)
- else
- fun_l12_n683(x)
- end
-end
-
-def fun_l11_n841(x)
- if (x < 1)
- fun_l12_n964(x)
- else
- fun_l12_n0(x)
- end
-end
-
-def fun_l11_n842(x)
- if (x < 1)
- fun_l12_n461(x)
- else
- fun_l12_n126(x)
- end
-end
-
-def fun_l11_n843(x)
- if (x < 1)
- fun_l12_n839(x)
- else
- fun_l12_n554(x)
- end
-end
-
-def fun_l11_n844(x)
- if (x < 1)
- fun_l12_n150(x)
- else
- fun_l12_n857(x)
- end
-end
-
-def fun_l11_n845(x)
- if (x < 1)
- fun_l12_n114(x)
- else
- fun_l12_n72(x)
- end
-end
-
-def fun_l11_n846(x)
- if (x < 1)
- fun_l12_n953(x)
- else
- fun_l12_n695(x)
- end
-end
-
-def fun_l11_n847(x)
- if (x < 1)
- fun_l12_n16(x)
- else
- fun_l12_n216(x)
- end
-end
-
-def fun_l11_n848(x)
- if (x < 1)
- fun_l12_n440(x)
- else
- fun_l12_n893(x)
- end
-end
-
-def fun_l11_n849(x)
- if (x < 1)
- fun_l12_n176(x)
- else
- fun_l12_n932(x)
- end
-end
-
-def fun_l11_n850(x)
- if (x < 1)
- fun_l12_n723(x)
- else
- fun_l12_n363(x)
- end
-end
-
-def fun_l11_n851(x)
- if (x < 1)
- fun_l12_n779(x)
- else
- fun_l12_n774(x)
- end
-end
-
-def fun_l11_n852(x)
- if (x < 1)
- fun_l12_n618(x)
- else
- fun_l12_n252(x)
- end
-end
-
-def fun_l11_n853(x)
- if (x < 1)
- fun_l12_n298(x)
- else
- fun_l12_n563(x)
- end
-end
-
-def fun_l11_n854(x)
- if (x < 1)
- fun_l12_n972(x)
- else
- fun_l12_n681(x)
- end
-end
-
-def fun_l11_n855(x)
- if (x < 1)
- fun_l12_n412(x)
- else
- fun_l12_n932(x)
- end
-end
-
-def fun_l11_n856(x)
- if (x < 1)
- fun_l12_n132(x)
- else
- fun_l12_n699(x)
- end
-end
-
-def fun_l11_n857(x)
- if (x < 1)
- fun_l12_n208(x)
- else
- fun_l12_n602(x)
- end
-end
-
-def fun_l11_n858(x)
- if (x < 1)
- fun_l12_n705(x)
- else
- fun_l12_n833(x)
- end
-end
-
-def fun_l11_n859(x)
- if (x < 1)
- fun_l12_n408(x)
- else
- fun_l12_n570(x)
- end
-end
-
-def fun_l11_n860(x)
- if (x < 1)
- fun_l12_n720(x)
- else
- fun_l12_n996(x)
- end
-end
-
-def fun_l11_n861(x)
- if (x < 1)
- fun_l12_n926(x)
- else
- fun_l12_n490(x)
- end
-end
-
-def fun_l11_n862(x)
- if (x < 1)
- fun_l12_n985(x)
- else
- fun_l12_n54(x)
- end
-end
-
-def fun_l11_n863(x)
- if (x < 1)
- fun_l12_n214(x)
- else
- fun_l12_n729(x)
- end
-end
-
-def fun_l11_n864(x)
- if (x < 1)
- fun_l12_n351(x)
- else
- fun_l12_n951(x)
- end
-end
-
-def fun_l11_n865(x)
- if (x < 1)
- fun_l12_n514(x)
- else
- fun_l12_n468(x)
- end
-end
-
-def fun_l11_n866(x)
- if (x < 1)
- fun_l12_n793(x)
- else
- fun_l12_n712(x)
- end
-end
-
-def fun_l11_n867(x)
- if (x < 1)
- fun_l12_n697(x)
- else
- fun_l12_n824(x)
- end
-end
-
-def fun_l11_n868(x)
- if (x < 1)
- fun_l12_n144(x)
- else
- fun_l12_n703(x)
- end
-end
-
-def fun_l11_n869(x)
- if (x < 1)
- fun_l12_n552(x)
- else
- fun_l12_n612(x)
- end
-end
-
-def fun_l11_n870(x)
- if (x < 1)
- fun_l12_n2(x)
- else
- fun_l12_n287(x)
- end
-end
-
-def fun_l11_n871(x)
- if (x < 1)
- fun_l12_n604(x)
- else
- fun_l12_n260(x)
- end
-end
-
-def fun_l11_n872(x)
- if (x < 1)
- fun_l12_n517(x)
- else
- fun_l12_n173(x)
- end
-end
-
-def fun_l11_n873(x)
- if (x < 1)
- fun_l12_n640(x)
- else
- fun_l12_n196(x)
- end
-end
-
-def fun_l11_n874(x)
- if (x < 1)
- fun_l12_n874(x)
- else
- fun_l12_n697(x)
- end
-end
-
-def fun_l11_n875(x)
- if (x < 1)
- fun_l12_n180(x)
- else
- fun_l12_n652(x)
- end
-end
-
-def fun_l11_n876(x)
- if (x < 1)
- fun_l12_n432(x)
- else
- fun_l12_n971(x)
- end
-end
-
-def fun_l11_n877(x)
- if (x < 1)
- fun_l12_n111(x)
- else
- fun_l12_n919(x)
- end
-end
-
-def fun_l11_n878(x)
- if (x < 1)
- fun_l12_n631(x)
- else
- fun_l12_n439(x)
- end
-end
-
-def fun_l11_n879(x)
- if (x < 1)
- fun_l12_n39(x)
- else
- fun_l12_n372(x)
- end
-end
-
-def fun_l11_n880(x)
- if (x < 1)
- fun_l12_n675(x)
- else
- fun_l12_n64(x)
- end
-end
-
-def fun_l11_n881(x)
- if (x < 1)
- fun_l12_n831(x)
- else
- fun_l12_n705(x)
- end
-end
-
-def fun_l11_n882(x)
- if (x < 1)
- fun_l12_n126(x)
- else
- fun_l12_n648(x)
- end
-end
-
-def fun_l11_n883(x)
- if (x < 1)
- fun_l12_n768(x)
- else
- fun_l12_n483(x)
- end
-end
-
-def fun_l11_n884(x)
- if (x < 1)
- fun_l12_n328(x)
- else
- fun_l12_n646(x)
- end
-end
-
-def fun_l11_n885(x)
- if (x < 1)
- fun_l12_n890(x)
- else
- fun_l12_n544(x)
- end
-end
-
-def fun_l11_n886(x)
- if (x < 1)
- fun_l12_n651(x)
- else
- fun_l12_n557(x)
- end
-end
-
-def fun_l11_n887(x)
- if (x < 1)
- fun_l12_n479(x)
- else
- fun_l12_n594(x)
- end
-end
-
-def fun_l11_n888(x)
- if (x < 1)
- fun_l12_n649(x)
- else
- fun_l12_n488(x)
- end
-end
-
-def fun_l11_n889(x)
- if (x < 1)
- fun_l12_n347(x)
- else
- fun_l12_n42(x)
- end
-end
-
-def fun_l11_n890(x)
- if (x < 1)
- fun_l12_n111(x)
- else
- fun_l12_n683(x)
- end
-end
-
-def fun_l11_n891(x)
- if (x < 1)
- fun_l12_n965(x)
- else
- fun_l12_n275(x)
- end
-end
-
-def fun_l11_n892(x)
- if (x < 1)
- fun_l12_n148(x)
- else
- fun_l12_n541(x)
- end
-end
-
-def fun_l11_n893(x)
- if (x < 1)
- fun_l12_n633(x)
- else
- fun_l12_n358(x)
- end
-end
-
-def fun_l11_n894(x)
- if (x < 1)
- fun_l12_n681(x)
- else
- fun_l12_n236(x)
- end
-end
-
-def fun_l11_n895(x)
- if (x < 1)
- fun_l12_n292(x)
- else
- fun_l12_n417(x)
- end
-end
-
-def fun_l11_n896(x)
- if (x < 1)
- fun_l12_n165(x)
- else
- fun_l12_n80(x)
- end
-end
-
-def fun_l11_n897(x)
- if (x < 1)
- fun_l12_n132(x)
- else
- fun_l12_n659(x)
- end
-end
-
-def fun_l11_n898(x)
- if (x < 1)
- fun_l12_n329(x)
- else
- fun_l12_n204(x)
- end
-end
-
-def fun_l11_n899(x)
- if (x < 1)
- fun_l12_n339(x)
- else
- fun_l12_n632(x)
- end
-end
-
-def fun_l11_n900(x)
- if (x < 1)
- fun_l12_n957(x)
- else
- fun_l12_n282(x)
- end
-end
-
-def fun_l11_n901(x)
- if (x < 1)
- fun_l12_n709(x)
- else
- fun_l12_n155(x)
- end
-end
-
-def fun_l11_n902(x)
- if (x < 1)
- fun_l12_n227(x)
- else
- fun_l12_n659(x)
- end
-end
-
-def fun_l11_n903(x)
- if (x < 1)
- fun_l12_n224(x)
- else
- fun_l12_n23(x)
- end
-end
-
-def fun_l11_n904(x)
- if (x < 1)
- fun_l12_n494(x)
- else
- fun_l12_n292(x)
- end
-end
-
-def fun_l11_n905(x)
- if (x < 1)
- fun_l12_n309(x)
- else
- fun_l12_n949(x)
- end
-end
-
-def fun_l11_n906(x)
- if (x < 1)
- fun_l12_n960(x)
- else
- fun_l12_n24(x)
- end
-end
-
-def fun_l11_n907(x)
- if (x < 1)
- fun_l12_n98(x)
- else
- fun_l12_n674(x)
- end
-end
-
-def fun_l11_n908(x)
- if (x < 1)
- fun_l12_n84(x)
- else
- fun_l12_n307(x)
- end
-end
-
-def fun_l11_n909(x)
- if (x < 1)
- fun_l12_n786(x)
- else
- fun_l12_n311(x)
- end
-end
-
-def fun_l11_n910(x)
- if (x < 1)
- fun_l12_n631(x)
- else
- fun_l12_n605(x)
- end
-end
-
-def fun_l11_n911(x)
- if (x < 1)
- fun_l12_n352(x)
- else
- fun_l12_n750(x)
- end
-end
-
-def fun_l11_n912(x)
- if (x < 1)
- fun_l12_n75(x)
- else
- fun_l12_n112(x)
- end
-end
-
-def fun_l11_n913(x)
- if (x < 1)
- fun_l12_n404(x)
- else
- fun_l12_n995(x)
- end
-end
-
-def fun_l11_n914(x)
- if (x < 1)
- fun_l12_n656(x)
- else
- fun_l12_n203(x)
- end
-end
-
-def fun_l11_n915(x)
- if (x < 1)
- fun_l12_n625(x)
- else
- fun_l12_n32(x)
- end
-end
-
-def fun_l11_n916(x)
- if (x < 1)
- fun_l12_n785(x)
- else
- fun_l12_n237(x)
- end
-end
-
-def fun_l11_n917(x)
- if (x < 1)
- fun_l12_n643(x)
- else
- fun_l12_n364(x)
- end
-end
-
-def fun_l11_n918(x)
- if (x < 1)
- fun_l12_n920(x)
- else
- fun_l12_n957(x)
- end
-end
-
-def fun_l11_n919(x)
- if (x < 1)
- fun_l12_n336(x)
- else
- fun_l12_n726(x)
- end
-end
-
-def fun_l11_n920(x)
- if (x < 1)
- fun_l12_n329(x)
- else
- fun_l12_n15(x)
- end
-end
-
-def fun_l11_n921(x)
- if (x < 1)
- fun_l12_n911(x)
- else
- fun_l12_n824(x)
- end
-end
-
-def fun_l11_n922(x)
- if (x < 1)
- fun_l12_n907(x)
- else
- fun_l12_n854(x)
- end
-end
-
-def fun_l11_n923(x)
- if (x < 1)
- fun_l12_n779(x)
- else
- fun_l12_n549(x)
- end
-end
-
-def fun_l11_n924(x)
- if (x < 1)
- fun_l12_n833(x)
- else
- fun_l12_n986(x)
- end
-end
-
-def fun_l11_n925(x)
- if (x < 1)
- fun_l12_n450(x)
- else
- fun_l12_n783(x)
- end
-end
-
-def fun_l11_n926(x)
- if (x < 1)
- fun_l12_n405(x)
- else
- fun_l12_n960(x)
- end
-end
-
-def fun_l11_n927(x)
- if (x < 1)
- fun_l12_n603(x)
- else
- fun_l12_n892(x)
- end
-end
-
-def fun_l11_n928(x)
- if (x < 1)
- fun_l12_n137(x)
- else
- fun_l12_n200(x)
- end
-end
-
-def fun_l11_n929(x)
- if (x < 1)
- fun_l12_n161(x)
- else
- fun_l12_n754(x)
- end
-end
-
-def fun_l11_n930(x)
- if (x < 1)
- fun_l12_n107(x)
- else
- fun_l12_n258(x)
- end
-end
-
-def fun_l11_n931(x)
- if (x < 1)
- fun_l12_n794(x)
- else
- fun_l12_n812(x)
- end
-end
-
-def fun_l11_n932(x)
- if (x < 1)
- fun_l12_n956(x)
- else
- fun_l12_n156(x)
- end
-end
-
-def fun_l11_n933(x)
- if (x < 1)
- fun_l12_n676(x)
- else
- fun_l12_n496(x)
- end
-end
-
-def fun_l11_n934(x)
- if (x < 1)
- fun_l12_n229(x)
- else
- fun_l12_n339(x)
- end
-end
-
-def fun_l11_n935(x)
- if (x < 1)
- fun_l12_n353(x)
- else
- fun_l12_n430(x)
- end
-end
-
-def fun_l11_n936(x)
- if (x < 1)
- fun_l12_n721(x)
- else
- fun_l12_n409(x)
- end
-end
-
-def fun_l11_n937(x)
- if (x < 1)
- fun_l12_n151(x)
- else
- fun_l12_n60(x)
- end
-end
-
-def fun_l11_n938(x)
- if (x < 1)
- fun_l12_n362(x)
- else
- fun_l12_n92(x)
- end
-end
-
-def fun_l11_n939(x)
- if (x < 1)
- fun_l12_n315(x)
- else
- fun_l12_n905(x)
- end
-end
-
-def fun_l11_n940(x)
- if (x < 1)
- fun_l12_n788(x)
- else
- fun_l12_n105(x)
- end
-end
-
-def fun_l11_n941(x)
- if (x < 1)
- fun_l12_n124(x)
- else
- fun_l12_n496(x)
- end
-end
-
-def fun_l11_n942(x)
- if (x < 1)
- fun_l12_n546(x)
- else
- fun_l12_n17(x)
- end
-end
-
-def fun_l11_n943(x)
- if (x < 1)
- fun_l12_n594(x)
- else
- fun_l12_n55(x)
- end
-end
-
-def fun_l11_n944(x)
- if (x < 1)
- fun_l12_n187(x)
- else
- fun_l12_n139(x)
- end
-end
-
-def fun_l11_n945(x)
- if (x < 1)
- fun_l12_n117(x)
- else
- fun_l12_n382(x)
- end
-end
-
-def fun_l11_n946(x)
- if (x < 1)
- fun_l12_n579(x)
- else
- fun_l12_n895(x)
- end
-end
-
-def fun_l11_n947(x)
- if (x < 1)
- fun_l12_n541(x)
- else
- fun_l12_n497(x)
- end
-end
-
-def fun_l11_n948(x)
- if (x < 1)
- fun_l12_n250(x)
- else
- fun_l12_n257(x)
- end
-end
-
-def fun_l11_n949(x)
- if (x < 1)
- fun_l12_n553(x)
- else
- fun_l12_n663(x)
- end
-end
-
-def fun_l11_n950(x)
- if (x < 1)
- fun_l12_n779(x)
- else
- fun_l12_n414(x)
- end
-end
-
-def fun_l11_n951(x)
- if (x < 1)
- fun_l12_n748(x)
- else
- fun_l12_n525(x)
- end
-end
-
-def fun_l11_n952(x)
- if (x < 1)
- fun_l12_n669(x)
- else
- fun_l12_n339(x)
- end
-end
-
-def fun_l11_n953(x)
- if (x < 1)
- fun_l12_n665(x)
- else
- fun_l12_n996(x)
- end
-end
-
-def fun_l11_n954(x)
- if (x < 1)
- fun_l12_n366(x)
- else
- fun_l12_n149(x)
- end
-end
-
-def fun_l11_n955(x)
- if (x < 1)
- fun_l12_n549(x)
- else
- fun_l12_n414(x)
- end
-end
-
-def fun_l11_n956(x)
- if (x < 1)
- fun_l12_n258(x)
- else
- fun_l12_n67(x)
- end
-end
-
-def fun_l11_n957(x)
- if (x < 1)
- fun_l12_n439(x)
- else
- fun_l12_n83(x)
- end
-end
-
-def fun_l11_n958(x)
- if (x < 1)
- fun_l12_n601(x)
- else
- fun_l12_n938(x)
- end
-end
-
-def fun_l11_n959(x)
- if (x < 1)
- fun_l12_n953(x)
- else
- fun_l12_n973(x)
- end
-end
-
-def fun_l11_n960(x)
- if (x < 1)
- fun_l12_n426(x)
- else
- fun_l12_n8(x)
- end
-end
-
-def fun_l11_n961(x)
- if (x < 1)
- fun_l12_n719(x)
- else
- fun_l12_n657(x)
- end
-end
-
-def fun_l11_n962(x)
- if (x < 1)
- fun_l12_n391(x)
- else
- fun_l12_n992(x)
- end
-end
-
-def fun_l11_n963(x)
- if (x < 1)
- fun_l12_n141(x)
- else
- fun_l12_n468(x)
- end
-end
-
-def fun_l11_n964(x)
- if (x < 1)
- fun_l12_n463(x)
- else
- fun_l12_n94(x)
- end
-end
-
-def fun_l11_n965(x)
- if (x < 1)
- fun_l12_n765(x)
- else
- fun_l12_n168(x)
- end
-end
-
-def fun_l11_n966(x)
- if (x < 1)
- fun_l12_n237(x)
- else
- fun_l12_n437(x)
- end
-end
-
-def fun_l11_n967(x)
- if (x < 1)
- fun_l12_n741(x)
- else
- fun_l12_n331(x)
- end
-end
-
-def fun_l11_n968(x)
- if (x < 1)
- fun_l12_n617(x)
- else
- fun_l12_n773(x)
- end
-end
-
-def fun_l11_n969(x)
- if (x < 1)
- fun_l12_n880(x)
- else
- fun_l12_n727(x)
- end
-end
-
-def fun_l11_n970(x)
- if (x < 1)
- fun_l12_n781(x)
- else
- fun_l12_n270(x)
- end
-end
-
-def fun_l11_n971(x)
- if (x < 1)
- fun_l12_n511(x)
- else
- fun_l12_n183(x)
- end
-end
-
-def fun_l11_n972(x)
- if (x < 1)
- fun_l12_n448(x)
- else
- fun_l12_n965(x)
- end
-end
-
-def fun_l11_n973(x)
- if (x < 1)
- fun_l12_n816(x)
- else
- fun_l12_n974(x)
- end
-end
-
-def fun_l11_n974(x)
- if (x < 1)
- fun_l12_n583(x)
- else
- fun_l12_n731(x)
- end
-end
-
-def fun_l11_n975(x)
- if (x < 1)
- fun_l12_n42(x)
- else
- fun_l12_n463(x)
- end
-end
-
-def fun_l11_n976(x)
- if (x < 1)
- fun_l12_n267(x)
- else
- fun_l12_n769(x)
- end
-end
-
-def fun_l11_n977(x)
- if (x < 1)
- fun_l12_n993(x)
- else
- fun_l12_n391(x)
- end
-end
-
-def fun_l11_n978(x)
- if (x < 1)
- fun_l12_n507(x)
- else
- fun_l12_n905(x)
- end
-end
-
-def fun_l11_n979(x)
- if (x < 1)
- fun_l12_n486(x)
- else
- fun_l12_n562(x)
- end
-end
-
-def fun_l11_n980(x)
- if (x < 1)
- fun_l12_n252(x)
- else
- fun_l12_n475(x)
- end
-end
-
-def fun_l11_n981(x)
- if (x < 1)
- fun_l12_n979(x)
- else
- fun_l12_n70(x)
- end
-end
-
-def fun_l11_n982(x)
- if (x < 1)
- fun_l12_n11(x)
- else
- fun_l12_n483(x)
- end
-end
-
-def fun_l11_n983(x)
- if (x < 1)
- fun_l12_n208(x)
- else
- fun_l12_n315(x)
- end
-end
-
-def fun_l11_n984(x)
- if (x < 1)
- fun_l12_n452(x)
- else
- fun_l12_n367(x)
- end
-end
-
-def fun_l11_n985(x)
- if (x < 1)
- fun_l12_n937(x)
- else
- fun_l12_n33(x)
- end
-end
-
-def fun_l11_n986(x)
- if (x < 1)
- fun_l12_n227(x)
- else
- fun_l12_n448(x)
- end
-end
-
-def fun_l11_n987(x)
- if (x < 1)
- fun_l12_n928(x)
- else
- fun_l12_n693(x)
- end
-end
-
-def fun_l11_n988(x)
- if (x < 1)
- fun_l12_n731(x)
- else
- fun_l12_n872(x)
- end
-end
-
-def fun_l11_n989(x)
- if (x < 1)
- fun_l12_n355(x)
- else
- fun_l12_n0(x)
- end
-end
-
-def fun_l11_n990(x)
- if (x < 1)
- fun_l12_n203(x)
- else
- fun_l12_n545(x)
- end
-end
-
-def fun_l11_n991(x)
- if (x < 1)
- fun_l12_n237(x)
- else
- fun_l12_n186(x)
- end
-end
-
-def fun_l11_n992(x)
- if (x < 1)
- fun_l12_n22(x)
- else
- fun_l12_n597(x)
- end
-end
-
-def fun_l11_n993(x)
- if (x < 1)
- fun_l12_n711(x)
- else
- fun_l12_n677(x)
- end
-end
-
-def fun_l11_n994(x)
- if (x < 1)
- fun_l12_n892(x)
- else
- fun_l12_n729(x)
- end
-end
-
-def fun_l11_n995(x)
- if (x < 1)
- fun_l12_n51(x)
- else
- fun_l12_n279(x)
- end
-end
-
-def fun_l11_n996(x)
- if (x < 1)
- fun_l12_n430(x)
- else
- fun_l12_n527(x)
- end
-end
-
-def fun_l11_n997(x)
- if (x < 1)
- fun_l12_n153(x)
- else
- fun_l12_n366(x)
- end
-end
-
-def fun_l11_n998(x)
- if (x < 1)
- fun_l12_n574(x)
- else
- fun_l12_n432(x)
- end
-end
-
-def fun_l11_n999(x)
- if (x < 1)
- fun_l12_n100(x)
- else
- fun_l12_n943(x)
- end
-end
-
-def fun_l12_n0(x)
- if (x < 1)
- fun_l13_n874(x)
- else
- fun_l13_n769(x)
- end
-end
-
-def fun_l12_n1(x)
- if (x < 1)
- fun_l13_n354(x)
- else
- fun_l13_n103(x)
- end
-end
-
-def fun_l12_n2(x)
- if (x < 1)
- fun_l13_n265(x)
- else
- fun_l13_n936(x)
- end
-end
-
-def fun_l12_n3(x)
- if (x < 1)
- fun_l13_n683(x)
- else
- fun_l13_n607(x)
- end
-end
-
-def fun_l12_n4(x)
- if (x < 1)
- fun_l13_n398(x)
- else
- fun_l13_n902(x)
- end
-end
-
-def fun_l12_n5(x)
- if (x < 1)
- fun_l13_n694(x)
- else
- fun_l13_n392(x)
- end
-end
-
-def fun_l12_n6(x)
- if (x < 1)
- fun_l13_n170(x)
- else
- fun_l13_n207(x)
- end
-end
-
-def fun_l12_n7(x)
- if (x < 1)
- fun_l13_n978(x)
- else
- fun_l13_n368(x)
- end
-end
-
-def fun_l12_n8(x)
- if (x < 1)
- fun_l13_n970(x)
- else
- fun_l13_n560(x)
- end
-end
-
-def fun_l12_n9(x)
- if (x < 1)
- fun_l13_n56(x)
- else
- fun_l13_n697(x)
- end
-end
-
-def fun_l12_n10(x)
- if (x < 1)
- fun_l13_n860(x)
- else
- fun_l13_n407(x)
- end
-end
-
-def fun_l12_n11(x)
- if (x < 1)
- fun_l13_n581(x)
- else
- fun_l13_n582(x)
- end
-end
-
-def fun_l12_n12(x)
- if (x < 1)
- fun_l13_n835(x)
- else
- fun_l13_n706(x)
- end
-end
-
-def fun_l12_n13(x)
- if (x < 1)
- fun_l13_n862(x)
- else
- fun_l13_n89(x)
- end
-end
-
-def fun_l12_n14(x)
- if (x < 1)
- fun_l13_n379(x)
- else
- fun_l13_n896(x)
- end
-end
-
-def fun_l12_n15(x)
- if (x < 1)
- fun_l13_n175(x)
- else
- fun_l13_n113(x)
- end
-end
-
-def fun_l12_n16(x)
- if (x < 1)
- fun_l13_n553(x)
- else
- fun_l13_n935(x)
- end
-end
-
-def fun_l12_n17(x)
- if (x < 1)
- fun_l13_n171(x)
- else
- fun_l13_n264(x)
- end
-end
-
-def fun_l12_n18(x)
- if (x < 1)
- fun_l13_n61(x)
- else
- fun_l13_n412(x)
- end
-end
-
-def fun_l12_n19(x)
- if (x < 1)
- fun_l13_n213(x)
- else
- fun_l13_n422(x)
- end
-end
-
-def fun_l12_n20(x)
- if (x < 1)
- fun_l13_n401(x)
- else
- fun_l13_n537(x)
- end
-end
-
-def fun_l12_n21(x)
- if (x < 1)
- fun_l13_n207(x)
- else
- fun_l13_n495(x)
- end
-end
-
-def fun_l12_n22(x)
- if (x < 1)
- fun_l13_n941(x)
- else
- fun_l13_n466(x)
- end
-end
-
-def fun_l12_n23(x)
- if (x < 1)
- fun_l13_n195(x)
- else
- fun_l13_n984(x)
- end
-end
-
-def fun_l12_n24(x)
- if (x < 1)
- fun_l13_n106(x)
- else
- fun_l13_n812(x)
- end
-end
-
-def fun_l12_n25(x)
- if (x < 1)
- fun_l13_n979(x)
- else
- fun_l13_n902(x)
- end
-end
-
-def fun_l12_n26(x)
- if (x < 1)
- fun_l13_n726(x)
- else
- fun_l13_n440(x)
- end
-end
-
-def fun_l12_n27(x)
- if (x < 1)
- fun_l13_n229(x)
- else
- fun_l13_n995(x)
- end
-end
-
-def fun_l12_n28(x)
- if (x < 1)
- fun_l13_n764(x)
- else
- fun_l13_n333(x)
- end
-end
-
-def fun_l12_n29(x)
- if (x < 1)
- fun_l13_n971(x)
- else
- fun_l13_n59(x)
- end
-end
-
-def fun_l12_n30(x)
- if (x < 1)
- fun_l13_n731(x)
- else
- fun_l13_n138(x)
- end
-end
-
-def fun_l12_n31(x)
- if (x < 1)
- fun_l13_n591(x)
- else
- fun_l13_n473(x)
- end
-end
-
-def fun_l12_n32(x)
- if (x < 1)
- fun_l13_n50(x)
- else
- fun_l13_n175(x)
- end
-end
-
-def fun_l12_n33(x)
- if (x < 1)
- fun_l13_n26(x)
- else
- fun_l13_n867(x)
- end
-end
-
-def fun_l12_n34(x)
- if (x < 1)
- fun_l13_n349(x)
- else
- fun_l13_n332(x)
- end
-end
-
-def fun_l12_n35(x)
- if (x < 1)
- fun_l13_n180(x)
- else
- fun_l13_n591(x)
- end
-end
-
-def fun_l12_n36(x)
- if (x < 1)
- fun_l13_n339(x)
- else
- fun_l13_n354(x)
- end
-end
-
-def fun_l12_n37(x)
- if (x < 1)
- fun_l13_n289(x)
- else
- fun_l13_n101(x)
- end
-end
-
-def fun_l12_n38(x)
- if (x < 1)
- fun_l13_n410(x)
- else
- fun_l13_n91(x)
- end
-end
-
-def fun_l12_n39(x)
- if (x < 1)
- fun_l13_n617(x)
- else
- fun_l13_n716(x)
- end
-end
-
-def fun_l12_n40(x)
- if (x < 1)
- fun_l13_n116(x)
- else
- fun_l13_n875(x)
- end
-end
-
-def fun_l12_n41(x)
- if (x < 1)
- fun_l13_n162(x)
- else
- fun_l13_n844(x)
- end
-end
-
-def fun_l12_n42(x)
- if (x < 1)
- fun_l13_n79(x)
- else
- fun_l13_n589(x)
- end
-end
-
-def fun_l12_n43(x)
- if (x < 1)
- fun_l13_n835(x)
- else
- fun_l13_n21(x)
- end
-end
-
-def fun_l12_n44(x)
- if (x < 1)
- fun_l13_n420(x)
- else
- fun_l13_n403(x)
- end
-end
-
-def fun_l12_n45(x)
- if (x < 1)
- fun_l13_n203(x)
- else
- fun_l13_n890(x)
- end
-end
-
-def fun_l12_n46(x)
- if (x < 1)
- fun_l13_n529(x)
- else
- fun_l13_n717(x)
- end
-end
-
-def fun_l12_n47(x)
- if (x < 1)
- fun_l13_n766(x)
- else
- fun_l13_n635(x)
- end
-end
-
-def fun_l12_n48(x)
- if (x < 1)
- fun_l13_n223(x)
- else
- fun_l13_n460(x)
- end
-end
-
-def fun_l12_n49(x)
- if (x < 1)
- fun_l13_n799(x)
- else
- fun_l13_n397(x)
- end
-end
-
-def fun_l12_n50(x)
- if (x < 1)
- fun_l13_n200(x)
- else
- fun_l13_n608(x)
- end
-end
-
-def fun_l12_n51(x)
- if (x < 1)
- fun_l13_n212(x)
- else
- fun_l13_n612(x)
- end
-end
-
-def fun_l12_n52(x)
- if (x < 1)
- fun_l13_n271(x)
- else
- fun_l13_n324(x)
- end
-end
-
-def fun_l12_n53(x)
- if (x < 1)
- fun_l13_n639(x)
- else
- fun_l13_n603(x)
- end
-end
-
-def fun_l12_n54(x)
- if (x < 1)
- fun_l13_n125(x)
- else
- fun_l13_n726(x)
- end
-end
-
-def fun_l12_n55(x)
- if (x < 1)
- fun_l13_n266(x)
- else
- fun_l13_n552(x)
- end
-end
-
-def fun_l12_n56(x)
- if (x < 1)
- fun_l13_n412(x)
- else
- fun_l13_n132(x)
- end
-end
-
-def fun_l12_n57(x)
- if (x < 1)
- fun_l13_n235(x)
- else
- fun_l13_n892(x)
- end
-end
-
-def fun_l12_n58(x)
- if (x < 1)
- fun_l13_n515(x)
- else
- fun_l13_n465(x)
- end
-end
-
-def fun_l12_n59(x)
- if (x < 1)
- fun_l13_n38(x)
- else
- fun_l13_n757(x)
- end
-end
-
-def fun_l12_n60(x)
- if (x < 1)
- fun_l13_n544(x)
- else
- fun_l13_n794(x)
- end
-end
-
-def fun_l12_n61(x)
- if (x < 1)
- fun_l13_n622(x)
- else
- fun_l13_n340(x)
- end
-end
-
-def fun_l12_n62(x)
- if (x < 1)
- fun_l13_n563(x)
- else
- fun_l13_n313(x)
- end
-end
-
-def fun_l12_n63(x)
- if (x < 1)
- fun_l13_n936(x)
- else
- fun_l13_n38(x)
- end
-end
-
-def fun_l12_n64(x)
- if (x < 1)
- fun_l13_n951(x)
- else
- fun_l13_n543(x)
- end
-end
-
-def fun_l12_n65(x)
- if (x < 1)
- fun_l13_n577(x)
- else
- fun_l13_n190(x)
- end
-end
-
-def fun_l12_n66(x)
- if (x < 1)
- fun_l13_n649(x)
- else
- fun_l13_n887(x)
- end
-end
-
-def fun_l12_n67(x)
- if (x < 1)
- fun_l13_n218(x)
- else
- fun_l13_n200(x)
- end
-end
-
-def fun_l12_n68(x)
- if (x < 1)
- fun_l13_n111(x)
- else
- fun_l13_n849(x)
- end
-end
-
-def fun_l12_n69(x)
- if (x < 1)
- fun_l13_n431(x)
- else
- fun_l13_n816(x)
- end
-end
-
-def fun_l12_n70(x)
- if (x < 1)
- fun_l13_n970(x)
- else
- fun_l13_n545(x)
- end
-end
-
-def fun_l12_n71(x)
- if (x < 1)
- fun_l13_n3(x)
- else
- fun_l13_n751(x)
- end
-end
-
-def fun_l12_n72(x)
- if (x < 1)
- fun_l13_n58(x)
- else
- fun_l13_n994(x)
- end
-end
-
-def fun_l12_n73(x)
- if (x < 1)
- fun_l13_n397(x)
- else
- fun_l13_n783(x)
- end
-end
-
-def fun_l12_n74(x)
- if (x < 1)
- fun_l13_n705(x)
- else
- fun_l13_n318(x)
- end
-end
-
-def fun_l12_n75(x)
- if (x < 1)
- fun_l13_n406(x)
- else
- fun_l13_n880(x)
- end
-end
-
-def fun_l12_n76(x)
- if (x < 1)
- fun_l13_n867(x)
- else
- fun_l13_n234(x)
- end
-end
-
-def fun_l12_n77(x)
- if (x < 1)
- fun_l13_n447(x)
- else
- fun_l13_n617(x)
- end
-end
-
-def fun_l12_n78(x)
- if (x < 1)
- fun_l13_n631(x)
- else
- fun_l13_n687(x)
- end
-end
-
-def fun_l12_n79(x)
- if (x < 1)
- fun_l13_n735(x)
- else
- fun_l13_n512(x)
- end
-end
-
-def fun_l12_n80(x)
- if (x < 1)
- fun_l13_n826(x)
- else
- fun_l13_n626(x)
- end
-end
-
-def fun_l12_n81(x)
- if (x < 1)
- fun_l13_n959(x)
- else
- fun_l13_n357(x)
- end
-end
-
-def fun_l12_n82(x)
- if (x < 1)
- fun_l13_n17(x)
- else
- fun_l13_n722(x)
- end
-end
-
-def fun_l12_n83(x)
- if (x < 1)
- fun_l13_n702(x)
- else
- fun_l13_n441(x)
- end
-end
-
-def fun_l12_n84(x)
- if (x < 1)
- fun_l13_n939(x)
- else
- fun_l13_n972(x)
- end
-end
-
-def fun_l12_n85(x)
- if (x < 1)
- fun_l13_n747(x)
- else
- fun_l13_n481(x)
- end
-end
-
-def fun_l12_n86(x)
- if (x < 1)
- fun_l13_n813(x)
- else
- fun_l13_n780(x)
- end
-end
-
-def fun_l12_n87(x)
- if (x < 1)
- fun_l13_n87(x)
- else
- fun_l13_n19(x)
- end
-end
-
-def fun_l12_n88(x)
- if (x < 1)
- fun_l13_n422(x)
- else
- fun_l13_n938(x)
- end
-end
-
-def fun_l12_n89(x)
- if (x < 1)
- fun_l13_n575(x)
- else
- fun_l13_n150(x)
- end
-end
-
-def fun_l12_n90(x)
- if (x < 1)
- fun_l13_n294(x)
- else
- fun_l13_n666(x)
- end
-end
-
-def fun_l12_n91(x)
- if (x < 1)
- fun_l13_n216(x)
- else
- fun_l13_n315(x)
- end
-end
-
-def fun_l12_n92(x)
- if (x < 1)
- fun_l13_n580(x)
- else
- fun_l13_n487(x)
- end
-end
-
-def fun_l12_n93(x)
- if (x < 1)
- fun_l13_n500(x)
- else
- fun_l13_n2(x)
- end
-end
-
-def fun_l12_n94(x)
- if (x < 1)
- fun_l13_n362(x)
- else
- fun_l13_n69(x)
- end
-end
-
-def fun_l12_n95(x)
- if (x < 1)
- fun_l13_n50(x)
- else
- fun_l13_n549(x)
- end
-end
-
-def fun_l12_n96(x)
- if (x < 1)
- fun_l13_n407(x)
- else
- fun_l13_n935(x)
- end
-end
-
-def fun_l12_n97(x)
- if (x < 1)
- fun_l13_n715(x)
- else
- fun_l13_n70(x)
- end
-end
-
-def fun_l12_n98(x)
- if (x < 1)
- fun_l13_n184(x)
- else
- fun_l13_n702(x)
- end
-end
-
-def fun_l12_n99(x)
- if (x < 1)
- fun_l13_n612(x)
- else
- fun_l13_n972(x)
- end
-end
-
-def fun_l12_n100(x)
- if (x < 1)
- fun_l13_n778(x)
- else
- fun_l13_n458(x)
- end
-end
-
-def fun_l12_n101(x)
- if (x < 1)
- fun_l13_n387(x)
- else
- fun_l13_n783(x)
- end
-end
-
-def fun_l12_n102(x)
- if (x < 1)
- fun_l13_n764(x)
- else
- fun_l13_n647(x)
- end
-end
-
-def fun_l12_n103(x)
- if (x < 1)
- fun_l13_n310(x)
- else
- fun_l13_n46(x)
- end
-end
-
-def fun_l12_n104(x)
- if (x < 1)
- fun_l13_n643(x)
- else
- fun_l13_n479(x)
- end
-end
-
-def fun_l12_n105(x)
- if (x < 1)
- fun_l13_n909(x)
- else
- fun_l13_n10(x)
- end
-end
-
-def fun_l12_n106(x)
- if (x < 1)
- fun_l13_n181(x)
- else
- fun_l13_n671(x)
- end
-end
-
-def fun_l12_n107(x)
- if (x < 1)
- fun_l13_n592(x)
- else
- fun_l13_n421(x)
- end
-end
-
-def fun_l12_n108(x)
- if (x < 1)
- fun_l13_n438(x)
- else
- fun_l13_n196(x)
- end
-end
-
-def fun_l12_n109(x)
- if (x < 1)
- fun_l13_n605(x)
- else
- fun_l13_n529(x)
- end
-end
-
-def fun_l12_n110(x)
- if (x < 1)
- fun_l13_n31(x)
- else
- fun_l13_n769(x)
- end
-end
-
-def fun_l12_n111(x)
- if (x < 1)
- fun_l13_n790(x)
- else
- fun_l13_n773(x)
- end
-end
-
-def fun_l12_n112(x)
- if (x < 1)
- fun_l13_n778(x)
- else
- fun_l13_n621(x)
- end
-end
-
-def fun_l12_n113(x)
- if (x < 1)
- fun_l13_n892(x)
- else
- fun_l13_n413(x)
- end
-end
-
-def fun_l12_n114(x)
- if (x < 1)
- fun_l13_n675(x)
- else
- fun_l13_n124(x)
- end
-end
-
-def fun_l12_n115(x)
- if (x < 1)
- fun_l13_n366(x)
- else
- fun_l13_n884(x)
- end
-end
-
-def fun_l12_n116(x)
- if (x < 1)
- fun_l13_n552(x)
- else
- fun_l13_n769(x)
- end
-end
-
-def fun_l12_n117(x)
- if (x < 1)
- fun_l13_n11(x)
- else
- fun_l13_n46(x)
- end
-end
-
-def fun_l12_n118(x)
- if (x < 1)
- fun_l13_n766(x)
- else
- fun_l13_n914(x)
- end
-end
-
-def fun_l12_n119(x)
- if (x < 1)
- fun_l13_n980(x)
- else
- fun_l13_n956(x)
- end
-end
-
-def fun_l12_n120(x)
- if (x < 1)
- fun_l13_n668(x)
- else
- fun_l13_n532(x)
- end
-end
-
-def fun_l12_n121(x)
- if (x < 1)
- fun_l13_n864(x)
- else
- fun_l13_n489(x)
- end
-end
-
-def fun_l12_n122(x)
- if (x < 1)
- fun_l13_n581(x)
- else
- fun_l13_n33(x)
- end
-end
-
-def fun_l12_n123(x)
- if (x < 1)
- fun_l13_n188(x)
- else
- fun_l13_n652(x)
- end
-end
-
-def fun_l12_n124(x)
- if (x < 1)
- fun_l13_n631(x)
- else
- fun_l13_n932(x)
- end
-end
-
-def fun_l12_n125(x)
- if (x < 1)
- fun_l13_n646(x)
- else
- fun_l13_n525(x)
- end
-end
-
-def fun_l12_n126(x)
- if (x < 1)
- fun_l13_n878(x)
- else
- fun_l13_n98(x)
- end
-end
-
-def fun_l12_n127(x)
- if (x < 1)
- fun_l13_n120(x)
- else
- fun_l13_n950(x)
- end
-end
-
-def fun_l12_n128(x)
- if (x < 1)
- fun_l13_n405(x)
- else
- fun_l13_n60(x)
- end
-end
-
-def fun_l12_n129(x)
- if (x < 1)
- fun_l13_n635(x)
- else
- fun_l13_n992(x)
- end
-end
-
-def fun_l12_n130(x)
- if (x < 1)
- fun_l13_n711(x)
- else
- fun_l13_n172(x)
- end
-end
-
-def fun_l12_n131(x)
- if (x < 1)
- fun_l13_n2(x)
- else
- fun_l13_n328(x)
- end
-end
-
-def fun_l12_n132(x)
- if (x < 1)
- fun_l13_n506(x)
- else
- fun_l13_n258(x)
- end
-end
-
-def fun_l12_n133(x)
- if (x < 1)
- fun_l13_n737(x)
- else
- fun_l13_n552(x)
- end
-end
-
-def fun_l12_n134(x)
- if (x < 1)
- fun_l13_n596(x)
- else
- fun_l13_n475(x)
- end
-end
-
-def fun_l12_n135(x)
- if (x < 1)
- fun_l13_n751(x)
- else
- fun_l13_n610(x)
- end
-end
-
-def fun_l12_n136(x)
- if (x < 1)
- fun_l13_n778(x)
- else
- fun_l13_n719(x)
- end
-end
-
-def fun_l12_n137(x)
- if (x < 1)
- fun_l13_n779(x)
- else
- fun_l13_n204(x)
- end
-end
-
-def fun_l12_n138(x)
- if (x < 1)
- fun_l13_n765(x)
- else
- fun_l13_n280(x)
- end
-end
-
-def fun_l12_n139(x)
- if (x < 1)
- fun_l13_n896(x)
- else
- fun_l13_n558(x)
- end
-end
-
-def fun_l12_n140(x)
- if (x < 1)
- fun_l13_n16(x)
- else
- fun_l13_n809(x)
- end
-end
-
-def fun_l12_n141(x)
- if (x < 1)
- fun_l13_n182(x)
- else
- fun_l13_n960(x)
- end
-end
-
-def fun_l12_n142(x)
- if (x < 1)
- fun_l13_n196(x)
- else
- fun_l13_n794(x)
- end
-end
-
-def fun_l12_n143(x)
- if (x < 1)
- fun_l13_n993(x)
- else
- fun_l13_n426(x)
- end
-end
-
-def fun_l12_n144(x)
- if (x < 1)
- fun_l13_n926(x)
- else
- fun_l13_n554(x)
- end
-end
-
-def fun_l12_n145(x)
- if (x < 1)
- fun_l13_n839(x)
- else
- fun_l13_n987(x)
- end
-end
-
-def fun_l12_n146(x)
- if (x < 1)
- fun_l13_n412(x)
- else
- fun_l13_n359(x)
- end
-end
-
-def fun_l12_n147(x)
- if (x < 1)
- fun_l13_n147(x)
- else
- fun_l13_n640(x)
- end
-end
-
-def fun_l12_n148(x)
- if (x < 1)
- fun_l13_n831(x)
- else
- fun_l13_n862(x)
- end
-end
-
-def fun_l12_n149(x)
- if (x < 1)
- fun_l13_n161(x)
- else
- fun_l13_n396(x)
- end
-end
-
-def fun_l12_n150(x)
- if (x < 1)
- fun_l13_n734(x)
- else
- fun_l13_n226(x)
- end
-end
-
-def fun_l12_n151(x)
- if (x < 1)
- fun_l13_n390(x)
- else
- fun_l13_n396(x)
- end
-end
-
-def fun_l12_n152(x)
- if (x < 1)
- fun_l13_n722(x)
- else
- fun_l13_n939(x)
- end
-end
-
-def fun_l12_n153(x)
- if (x < 1)
- fun_l13_n554(x)
- else
- fun_l13_n461(x)
- end
-end
-
-def fun_l12_n154(x)
- if (x < 1)
- fun_l13_n223(x)
- else
- fun_l13_n502(x)
- end
-end
-
-def fun_l12_n155(x)
- if (x < 1)
- fun_l13_n526(x)
- else
- fun_l13_n949(x)
- end
-end
-
-def fun_l12_n156(x)
- if (x < 1)
- fun_l13_n764(x)
- else
- fun_l13_n290(x)
- end
-end
-
-def fun_l12_n157(x)
- if (x < 1)
- fun_l13_n904(x)
- else
- fun_l13_n562(x)
- end
-end
-
-def fun_l12_n158(x)
- if (x < 1)
- fun_l13_n308(x)
- else
- fun_l13_n646(x)
- end
-end
-
-def fun_l12_n159(x)
- if (x < 1)
- fun_l13_n417(x)
- else
- fun_l13_n576(x)
- end
-end
-
-def fun_l12_n160(x)
- if (x < 1)
- fun_l13_n846(x)
- else
- fun_l13_n989(x)
- end
-end
-
-def fun_l12_n161(x)
- if (x < 1)
- fun_l13_n59(x)
- else
- fun_l13_n877(x)
- end
-end
-
-def fun_l12_n162(x)
- if (x < 1)
- fun_l13_n194(x)
- else
- fun_l13_n654(x)
- end
-end
-
-def fun_l12_n163(x)
- if (x < 1)
- fun_l13_n350(x)
- else
- fun_l13_n412(x)
- end
-end
-
-def fun_l12_n164(x)
- if (x < 1)
- fun_l13_n482(x)
- else
- fun_l13_n820(x)
- end
-end
-
-def fun_l12_n165(x)
- if (x < 1)
- fun_l13_n251(x)
- else
- fun_l13_n421(x)
- end
-end
-
-def fun_l12_n166(x)
- if (x < 1)
- fun_l13_n832(x)
- else
- fun_l13_n505(x)
- end
-end
-
-def fun_l12_n167(x)
- if (x < 1)
- fun_l13_n316(x)
- else
- fun_l13_n355(x)
- end
-end
-
-def fun_l12_n168(x)
- if (x < 1)
- fun_l13_n325(x)
- else
- fun_l13_n755(x)
- end
-end
-
-def fun_l12_n169(x)
- if (x < 1)
- fun_l13_n536(x)
- else
- fun_l13_n753(x)
- end
-end
-
-def fun_l12_n170(x)
- if (x < 1)
- fun_l13_n819(x)
- else
- fun_l13_n532(x)
- end
-end
-
-def fun_l12_n171(x)
- if (x < 1)
- fun_l13_n633(x)
- else
- fun_l13_n96(x)
- end
-end
-
-def fun_l12_n172(x)
- if (x < 1)
- fun_l13_n229(x)
- else
- fun_l13_n105(x)
- end
-end
-
-def fun_l12_n173(x)
- if (x < 1)
- fun_l13_n796(x)
- else
- fun_l13_n466(x)
- end
-end
-
-def fun_l12_n174(x)
- if (x < 1)
- fun_l13_n520(x)
- else
- fun_l13_n329(x)
- end
-end
-
-def fun_l12_n175(x)
- if (x < 1)
- fun_l13_n358(x)
- else
- fun_l13_n201(x)
- end
-end
-
-def fun_l12_n176(x)
- if (x < 1)
- fun_l13_n42(x)
- else
- fun_l13_n649(x)
- end
-end
-
-def fun_l12_n177(x)
- if (x < 1)
- fun_l13_n933(x)
- else
- fun_l13_n719(x)
- end
-end
-
-def fun_l12_n178(x)
- if (x < 1)
- fun_l13_n236(x)
- else
- fun_l13_n723(x)
- end
-end
-
-def fun_l12_n179(x)
- if (x < 1)
- fun_l13_n992(x)
- else
- fun_l13_n436(x)
- end
-end
-
-def fun_l12_n180(x)
- if (x < 1)
- fun_l13_n221(x)
- else
- fun_l13_n294(x)
- end
-end
-
-def fun_l12_n181(x)
- if (x < 1)
- fun_l13_n580(x)
- else
- fun_l13_n939(x)
- end
-end
-
-def fun_l12_n182(x)
- if (x < 1)
- fun_l13_n608(x)
- else
- fun_l13_n709(x)
- end
-end
-
-def fun_l12_n183(x)
- if (x < 1)
- fun_l13_n644(x)
- else
- fun_l13_n717(x)
- end
-end
-
-def fun_l12_n184(x)
- if (x < 1)
- fun_l13_n605(x)
- else
- fun_l13_n665(x)
- end
-end
-
-def fun_l12_n185(x)
- if (x < 1)
- fun_l13_n729(x)
- else
- fun_l13_n876(x)
- end
-end
-
-def fun_l12_n186(x)
- if (x < 1)
- fun_l13_n43(x)
- else
- fun_l13_n366(x)
- end
-end
-
-def fun_l12_n187(x)
- if (x < 1)
- fun_l13_n401(x)
- else
- fun_l13_n610(x)
- end
-end
-
-def fun_l12_n188(x)
- if (x < 1)
- fun_l13_n489(x)
- else
- fun_l13_n107(x)
- end
-end
-
-def fun_l12_n189(x)
- if (x < 1)
- fun_l13_n859(x)
- else
- fun_l13_n355(x)
- end
-end
-
-def fun_l12_n190(x)
- if (x < 1)
- fun_l13_n631(x)
- else
- fun_l13_n399(x)
- end
-end
-
-def fun_l12_n191(x)
- if (x < 1)
- fun_l13_n332(x)
- else
- fun_l13_n333(x)
- end
-end
-
-def fun_l12_n192(x)
- if (x < 1)
- fun_l13_n535(x)
- else
- fun_l13_n191(x)
- end
-end
-
-def fun_l12_n193(x)
- if (x < 1)
- fun_l13_n157(x)
- else
- fun_l13_n927(x)
- end
-end
-
-def fun_l12_n194(x)
- if (x < 1)
- fun_l13_n733(x)
- else
- fun_l13_n798(x)
- end
-end
-
-def fun_l12_n195(x)
- if (x < 1)
- fun_l13_n31(x)
- else
- fun_l13_n703(x)
- end
-end
-
-def fun_l12_n196(x)
- if (x < 1)
- fun_l13_n976(x)
- else
- fun_l13_n862(x)
- end
-end
-
-def fun_l12_n197(x)
- if (x < 1)
- fun_l13_n267(x)
- else
- fun_l13_n803(x)
- end
-end
-
-def fun_l12_n198(x)
- if (x < 1)
- fun_l13_n598(x)
- else
- fun_l13_n255(x)
- end
-end
-
-def fun_l12_n199(x)
- if (x < 1)
- fun_l13_n566(x)
- else
- fun_l13_n668(x)
- end
-end
-
-def fun_l12_n200(x)
- if (x < 1)
- fun_l13_n48(x)
- else
- fun_l13_n406(x)
- end
-end
-
-def fun_l12_n201(x)
- if (x < 1)
- fun_l13_n971(x)
- else
- fun_l13_n225(x)
- end
-end
-
-def fun_l12_n202(x)
- if (x < 1)
- fun_l13_n120(x)
- else
- fun_l13_n72(x)
- end
-end
-
-def fun_l12_n203(x)
- if (x < 1)
- fun_l13_n333(x)
- else
- fun_l13_n381(x)
- end
-end
-
-def fun_l12_n204(x)
- if (x < 1)
- fun_l13_n558(x)
- else
- fun_l13_n474(x)
- end
-end
-
-def fun_l12_n205(x)
- if (x < 1)
- fun_l13_n796(x)
- else
- fun_l13_n420(x)
- end
-end
-
-def fun_l12_n206(x)
- if (x < 1)
- fun_l13_n287(x)
- else
- fun_l13_n43(x)
- end
-end
-
-def fun_l12_n207(x)
- if (x < 1)
- fun_l13_n778(x)
- else
- fun_l13_n560(x)
- end
-end
-
-def fun_l12_n208(x)
- if (x < 1)
- fun_l13_n707(x)
- else
- fun_l13_n824(x)
- end
-end
-
-def fun_l12_n209(x)
- if (x < 1)
- fun_l13_n788(x)
- else
- fun_l13_n625(x)
- end
-end
-
-def fun_l12_n210(x)
- if (x < 1)
- fun_l13_n818(x)
- else
- fun_l13_n667(x)
- end
-end
-
-def fun_l12_n211(x)
- if (x < 1)
- fun_l13_n710(x)
- else
- fun_l13_n508(x)
- end
-end
-
-def fun_l12_n212(x)
- if (x < 1)
- fun_l13_n497(x)
- else
- fun_l13_n20(x)
- end
-end
-
-def fun_l12_n213(x)
- if (x < 1)
- fun_l13_n648(x)
- else
- fun_l13_n33(x)
- end
-end
-
-def fun_l12_n214(x)
- if (x < 1)
- fun_l13_n404(x)
- else
- fun_l13_n918(x)
- end
-end
-
-def fun_l12_n215(x)
- if (x < 1)
- fun_l13_n595(x)
- else
- fun_l13_n440(x)
- end
-end
-
-def fun_l12_n216(x)
- if (x < 1)
- fun_l13_n302(x)
- else
- fun_l13_n388(x)
- end
-end
-
-def fun_l12_n217(x)
- if (x < 1)
- fun_l13_n301(x)
- else
- fun_l13_n416(x)
- end
-end
-
-def fun_l12_n218(x)
- if (x < 1)
- fun_l13_n114(x)
- else
- fun_l13_n650(x)
- end
-end
-
-def fun_l12_n219(x)
- if (x < 1)
- fun_l13_n221(x)
- else
- fun_l13_n539(x)
- end
-end
-
-def fun_l12_n220(x)
- if (x < 1)
- fun_l13_n529(x)
- else
- fun_l13_n438(x)
- end
-end
-
-def fun_l12_n221(x)
- if (x < 1)
- fun_l13_n528(x)
- else
- fun_l13_n284(x)
- end
-end
-
-def fun_l12_n222(x)
- if (x < 1)
- fun_l13_n746(x)
- else
- fun_l13_n634(x)
- end
-end
-
-def fun_l12_n223(x)
- if (x < 1)
- fun_l13_n726(x)
- else
- fun_l13_n142(x)
- end
-end
-
-def fun_l12_n224(x)
- if (x < 1)
- fun_l13_n57(x)
- else
- fun_l13_n625(x)
- end
-end
-
-def fun_l12_n225(x)
- if (x < 1)
- fun_l13_n739(x)
- else
- fun_l13_n667(x)
- end
-end
-
-def fun_l12_n226(x)
- if (x < 1)
- fun_l13_n693(x)
- else
- fun_l13_n819(x)
- end
-end
-
-def fun_l12_n227(x)
- if (x < 1)
- fun_l13_n316(x)
- else
- fun_l13_n866(x)
- end
-end
-
-def fun_l12_n228(x)
- if (x < 1)
- fun_l13_n88(x)
- else
- fun_l13_n336(x)
- end
-end
-
-def fun_l12_n229(x)
- if (x < 1)
- fun_l13_n387(x)
- else
- fun_l13_n226(x)
- end
-end
-
-def fun_l12_n230(x)
- if (x < 1)
- fun_l13_n644(x)
- else
- fun_l13_n933(x)
- end
-end
-
-def fun_l12_n231(x)
- if (x < 1)
- fun_l13_n952(x)
- else
- fun_l13_n747(x)
- end
-end
-
-def fun_l12_n232(x)
- if (x < 1)
- fun_l13_n107(x)
- else
- fun_l13_n0(x)
- end
-end
-
-def fun_l12_n233(x)
- if (x < 1)
- fun_l13_n589(x)
- else
- fun_l13_n712(x)
- end
-end
-
-def fun_l12_n234(x)
- if (x < 1)
- fun_l13_n429(x)
- else
- fun_l13_n845(x)
- end
-end
-
-def fun_l12_n235(x)
- if (x < 1)
- fun_l13_n733(x)
- else
- fun_l13_n203(x)
- end
-end
-
-def fun_l12_n236(x)
- if (x < 1)
- fun_l13_n842(x)
- else
- fun_l13_n134(x)
- end
-end
-
-def fun_l12_n237(x)
- if (x < 1)
- fun_l13_n114(x)
- else
- fun_l13_n794(x)
- end
-end
-
-def fun_l12_n238(x)
- if (x < 1)
- fun_l13_n463(x)
- else
- fun_l13_n127(x)
- end
-end
-
-def fun_l12_n239(x)
- if (x < 1)
- fun_l13_n443(x)
- else
- fun_l13_n13(x)
- end
-end
-
-def fun_l12_n240(x)
- if (x < 1)
- fun_l13_n713(x)
- else
- fun_l13_n447(x)
- end
-end
-
-def fun_l12_n241(x)
- if (x < 1)
- fun_l13_n404(x)
- else
- fun_l13_n796(x)
- end
-end
-
-def fun_l12_n242(x)
- if (x < 1)
- fun_l13_n277(x)
- else
- fun_l13_n106(x)
- end
-end
-
-def fun_l12_n243(x)
- if (x < 1)
- fun_l13_n584(x)
- else
- fun_l13_n262(x)
- end
-end
-
-def fun_l12_n244(x)
- if (x < 1)
- fun_l13_n670(x)
- else
- fun_l13_n989(x)
- end
-end
-
-def fun_l12_n245(x)
- if (x < 1)
- fun_l13_n588(x)
- else
- fun_l13_n513(x)
- end
-end
-
-def fun_l12_n246(x)
- if (x < 1)
- fun_l13_n98(x)
- else
- fun_l13_n400(x)
- end
-end
-
-def fun_l12_n247(x)
- if (x < 1)
- fun_l13_n119(x)
- else
- fun_l13_n321(x)
- end
-end
-
-def fun_l12_n248(x)
- if (x < 1)
- fun_l13_n157(x)
- else
- fun_l13_n557(x)
- end
-end
-
-def fun_l12_n249(x)
- if (x < 1)
- fun_l13_n243(x)
- else
- fun_l13_n596(x)
- end
-end
-
-def fun_l12_n250(x)
- if (x < 1)
- fun_l13_n280(x)
- else
- fun_l13_n779(x)
- end
-end
-
-def fun_l12_n251(x)
- if (x < 1)
- fun_l13_n437(x)
- else
- fun_l13_n829(x)
- end
-end
-
-def fun_l12_n252(x)
- if (x < 1)
- fun_l13_n472(x)
- else
- fun_l13_n224(x)
- end
-end
-
-def fun_l12_n253(x)
- if (x < 1)
- fun_l13_n151(x)
- else
- fun_l13_n168(x)
- end
-end
-
-def fun_l12_n254(x)
- if (x < 1)
- fun_l13_n724(x)
- else
- fun_l13_n355(x)
- end
-end
-
-def fun_l12_n255(x)
- if (x < 1)
- fun_l13_n27(x)
- else
- fun_l13_n776(x)
- end
-end
-
-def fun_l12_n256(x)
- if (x < 1)
- fun_l13_n116(x)
- else
- fun_l13_n52(x)
- end
-end
-
-def fun_l12_n257(x)
- if (x < 1)
- fun_l13_n201(x)
- else
- fun_l13_n982(x)
- end
-end
-
-def fun_l12_n258(x)
- if (x < 1)
- fun_l13_n152(x)
- else
- fun_l13_n818(x)
- end
-end
-
-def fun_l12_n259(x)
- if (x < 1)
- fun_l13_n859(x)
- else
- fun_l13_n555(x)
- end
-end
-
-def fun_l12_n260(x)
- if (x < 1)
- fun_l13_n29(x)
- else
- fun_l13_n416(x)
- end
-end
-
-def fun_l12_n261(x)
- if (x < 1)
- fun_l13_n811(x)
- else
- fun_l13_n827(x)
- end
-end
-
-def fun_l12_n262(x)
- if (x < 1)
- fun_l13_n867(x)
- else
- fun_l13_n298(x)
- end
-end
-
-def fun_l12_n263(x)
- if (x < 1)
- fun_l13_n464(x)
- else
- fun_l13_n420(x)
- end
-end
-
-def fun_l12_n264(x)
- if (x < 1)
- fun_l13_n494(x)
- else
- fun_l13_n368(x)
- end
-end
-
-def fun_l12_n265(x)
- if (x < 1)
- fun_l13_n959(x)
- else
- fun_l13_n425(x)
- end
-end
-
-def fun_l12_n266(x)
- if (x < 1)
- fun_l13_n841(x)
- else
- fun_l13_n874(x)
- end
-end
-
-def fun_l12_n267(x)
- if (x < 1)
- fun_l13_n885(x)
- else
- fun_l13_n631(x)
- end
-end
-
-def fun_l12_n268(x)
- if (x < 1)
- fun_l13_n645(x)
- else
- fun_l13_n342(x)
- end
-end
-
-def fun_l12_n269(x)
- if (x < 1)
- fun_l13_n4(x)
- else
- fun_l13_n81(x)
- end
-end
-
-def fun_l12_n270(x)
- if (x < 1)
- fun_l13_n44(x)
- else
- fun_l13_n924(x)
- end
-end
-
-def fun_l12_n271(x)
- if (x < 1)
- fun_l13_n955(x)
- else
- fun_l13_n834(x)
- end
-end
-
-def fun_l12_n272(x)
- if (x < 1)
- fun_l13_n969(x)
- else
- fun_l13_n699(x)
- end
-end
-
-def fun_l12_n273(x)
- if (x < 1)
- fun_l13_n590(x)
- else
- fun_l13_n608(x)
- end
-end
-
-def fun_l12_n274(x)
- if (x < 1)
- fun_l13_n170(x)
- else
- fun_l13_n343(x)
- end
-end
-
-def fun_l12_n275(x)
- if (x < 1)
- fun_l13_n317(x)
- else
- fun_l13_n998(x)
- end
-end
-
-def fun_l12_n276(x)
- if (x < 1)
- fun_l13_n864(x)
- else
- fun_l13_n644(x)
- end
-end
-
-def fun_l12_n277(x)
- if (x < 1)
- fun_l13_n42(x)
- else
- fun_l13_n663(x)
- end
-end
-
-def fun_l12_n278(x)
- if (x < 1)
- fun_l13_n39(x)
- else
- fun_l13_n624(x)
- end
-end
-
-def fun_l12_n279(x)
- if (x < 1)
- fun_l13_n578(x)
- else
- fun_l13_n592(x)
- end
-end
-
-def fun_l12_n280(x)
- if (x < 1)
- fun_l13_n345(x)
- else
- fun_l13_n462(x)
- end
-end
-
-def fun_l12_n281(x)
- if (x < 1)
- fun_l13_n741(x)
- else
- fun_l13_n93(x)
- end
-end
-
-def fun_l12_n282(x)
- if (x < 1)
- fun_l13_n845(x)
- else
- fun_l13_n981(x)
- end
-end
-
-def fun_l12_n283(x)
- if (x < 1)
- fun_l13_n479(x)
- else
- fun_l13_n823(x)
- end
-end
-
-def fun_l12_n284(x)
- if (x < 1)
- fun_l13_n201(x)
- else
- fun_l13_n526(x)
- end
-end
-
-def fun_l12_n285(x)
- if (x < 1)
- fun_l13_n890(x)
- else
- fun_l13_n237(x)
- end
-end
-
-def fun_l12_n286(x)
- if (x < 1)
- fun_l13_n377(x)
- else
- fun_l13_n249(x)
- end
-end
-
-def fun_l12_n287(x)
- if (x < 1)
- fun_l13_n147(x)
- else
- fun_l13_n306(x)
- end
-end
-
-def fun_l12_n288(x)
- if (x < 1)
- fun_l13_n822(x)
- else
- fun_l13_n220(x)
- end
-end
-
-def fun_l12_n289(x)
- if (x < 1)
- fun_l13_n106(x)
- else
- fun_l13_n648(x)
- end
-end
-
-def fun_l12_n290(x)
- if (x < 1)
- fun_l13_n278(x)
- else
- fun_l13_n255(x)
- end
-end
-
-def fun_l12_n291(x)
- if (x < 1)
- fun_l13_n994(x)
- else
- fun_l13_n36(x)
- end
-end
-
-def fun_l12_n292(x)
- if (x < 1)
- fun_l13_n731(x)
- else
- fun_l13_n473(x)
- end
-end
-
-def fun_l12_n293(x)
- if (x < 1)
- fun_l13_n321(x)
- else
- fun_l13_n518(x)
- end
-end
-
-def fun_l12_n294(x)
- if (x < 1)
- fun_l13_n91(x)
- else
- fun_l13_n765(x)
- end
-end
-
-def fun_l12_n295(x)
- if (x < 1)
- fun_l13_n39(x)
- else
- fun_l13_n639(x)
- end
-end
-
-def fun_l12_n296(x)
- if (x < 1)
- fun_l13_n800(x)
- else
- fun_l13_n821(x)
- end
-end
-
-def fun_l12_n297(x)
- if (x < 1)
- fun_l13_n553(x)
- else
- fun_l13_n898(x)
- end
-end
-
-def fun_l12_n298(x)
- if (x < 1)
- fun_l13_n487(x)
- else
- fun_l13_n470(x)
- end
-end
-
-def fun_l12_n299(x)
- if (x < 1)
- fun_l13_n743(x)
- else
- fun_l13_n684(x)
- end
-end
-
-def fun_l12_n300(x)
- if (x < 1)
- fun_l13_n177(x)
- else
- fun_l13_n375(x)
- end
-end
-
-def fun_l12_n301(x)
- if (x < 1)
- fun_l13_n714(x)
- else
- fun_l13_n922(x)
- end
-end
-
-def fun_l12_n302(x)
- if (x < 1)
- fun_l13_n845(x)
- else
- fun_l13_n93(x)
- end
-end
-
-def fun_l12_n303(x)
- if (x < 1)
- fun_l13_n806(x)
- else
- fun_l13_n706(x)
- end
-end
-
-def fun_l12_n304(x)
- if (x < 1)
- fun_l13_n428(x)
- else
- fun_l13_n942(x)
- end
-end
-
-def fun_l12_n305(x)
- if (x < 1)
- fun_l13_n170(x)
- else
- fun_l13_n634(x)
- end
-end
-
-def fun_l12_n306(x)
- if (x < 1)
- fun_l13_n998(x)
- else
- fun_l13_n224(x)
- end
-end
-
-def fun_l12_n307(x)
- if (x < 1)
- fun_l13_n15(x)
- else
- fun_l13_n753(x)
- end
-end
-
-def fun_l12_n308(x)
- if (x < 1)
- fun_l13_n323(x)
- else
- fun_l13_n846(x)
- end
-end
-
-def fun_l12_n309(x)
- if (x < 1)
- fun_l13_n779(x)
- else
- fun_l13_n330(x)
- end
-end
-
-def fun_l12_n310(x)
- if (x < 1)
- fun_l13_n652(x)
- else
- fun_l13_n560(x)
- end
-end
-
-def fun_l12_n311(x)
- if (x < 1)
- fun_l13_n54(x)
- else
- fun_l13_n144(x)
- end
-end
-
-def fun_l12_n312(x)
- if (x < 1)
- fun_l13_n674(x)
- else
- fun_l13_n779(x)
- end
-end
-
-def fun_l12_n313(x)
- if (x < 1)
- fun_l13_n975(x)
- else
- fun_l13_n109(x)
- end
-end
-
-def fun_l12_n314(x)
- if (x < 1)
- fun_l13_n997(x)
- else
- fun_l13_n827(x)
- end
-end
-
-def fun_l12_n315(x)
- if (x < 1)
- fun_l13_n822(x)
- else
- fun_l13_n349(x)
- end
-end
-
-def fun_l12_n316(x)
- if (x < 1)
- fun_l13_n516(x)
- else
- fun_l13_n974(x)
- end
-end
-
-def fun_l12_n317(x)
- if (x < 1)
- fun_l13_n538(x)
- else
- fun_l13_n786(x)
- end
-end
-
-def fun_l12_n318(x)
- if (x < 1)
- fun_l13_n125(x)
- else
- fun_l13_n809(x)
- end
-end
-
-def fun_l12_n319(x)
- if (x < 1)
- fun_l13_n642(x)
- else
- fun_l13_n188(x)
- end
-end
-
-def fun_l12_n320(x)
- if (x < 1)
- fun_l13_n904(x)
- else
- fun_l13_n396(x)
- end
-end
-
-def fun_l12_n321(x)
- if (x < 1)
- fun_l13_n278(x)
- else
- fun_l13_n752(x)
- end
-end
-
-def fun_l12_n322(x)
- if (x < 1)
- fun_l13_n566(x)
- else
- fun_l13_n894(x)
- end
-end
-
-def fun_l12_n323(x)
- if (x < 1)
- fun_l13_n357(x)
- else
- fun_l13_n742(x)
- end
-end
-
-def fun_l12_n324(x)
- if (x < 1)
- fun_l13_n667(x)
- else
- fun_l13_n764(x)
- end
-end
-
-def fun_l12_n325(x)
- if (x < 1)
- fun_l13_n333(x)
- else
- fun_l13_n445(x)
- end
-end
-
-def fun_l12_n326(x)
- if (x < 1)
- fun_l13_n669(x)
- else
- fun_l13_n484(x)
- end
-end
-
-def fun_l12_n327(x)
- if (x < 1)
- fun_l13_n662(x)
- else
- fun_l13_n610(x)
- end
-end
-
-def fun_l12_n328(x)
- if (x < 1)
- fun_l13_n869(x)
- else
- fun_l13_n993(x)
- end
-end
-
-def fun_l12_n329(x)
- if (x < 1)
- fun_l13_n305(x)
- else
- fun_l13_n45(x)
- end
-end
-
-def fun_l12_n330(x)
- if (x < 1)
- fun_l13_n32(x)
- else
- fun_l13_n253(x)
- end
-end
-
-def fun_l12_n331(x)
- if (x < 1)
- fun_l13_n45(x)
- else
- fun_l13_n327(x)
- end
-end
-
-def fun_l12_n332(x)
- if (x < 1)
- fun_l13_n685(x)
- else
- fun_l13_n562(x)
- end
-end
-
-def fun_l12_n333(x)
- if (x < 1)
- fun_l13_n274(x)
- else
- fun_l13_n461(x)
- end
-end
-
-def fun_l12_n334(x)
- if (x < 1)
- fun_l13_n93(x)
- else
- fun_l13_n7(x)
- end
-end
-
-def fun_l12_n335(x)
- if (x < 1)
- fun_l13_n742(x)
- else
- fun_l13_n259(x)
- end
-end
-
-def fun_l12_n336(x)
- if (x < 1)
- fun_l13_n518(x)
- else
- fun_l13_n108(x)
- end
-end
-
-def fun_l12_n337(x)
- if (x < 1)
- fun_l13_n439(x)
- else
- fun_l13_n21(x)
- end
-end
-
-def fun_l12_n338(x)
- if (x < 1)
- fun_l13_n34(x)
- else
- fun_l13_n869(x)
- end
-end
-
-def fun_l12_n339(x)
- if (x < 1)
- fun_l13_n995(x)
- else
- fun_l13_n810(x)
- end
-end
-
-def fun_l12_n340(x)
- if (x < 1)
- fun_l13_n640(x)
- else
- fun_l13_n108(x)
- end
-end
-
-def fun_l12_n341(x)
- if (x < 1)
- fun_l13_n332(x)
- else
- fun_l13_n174(x)
- end
-end
-
-def fun_l12_n342(x)
- if (x < 1)
- fun_l13_n425(x)
- else
- fun_l13_n523(x)
- end
-end
-
-def fun_l12_n343(x)
- if (x < 1)
- fun_l13_n886(x)
- else
- fun_l13_n9(x)
- end
-end
-
-def fun_l12_n344(x)
- if (x < 1)
- fun_l13_n644(x)
- else
- fun_l13_n558(x)
- end
-end
-
-def fun_l12_n345(x)
- if (x < 1)
- fun_l13_n40(x)
- else
- fun_l13_n569(x)
- end
-end
-
-def fun_l12_n346(x)
- if (x < 1)
- fun_l13_n530(x)
- else
- fun_l13_n52(x)
- end
-end
-
-def fun_l12_n347(x)
- if (x < 1)
- fun_l13_n624(x)
- else
- fun_l13_n525(x)
- end
-end
-
-def fun_l12_n348(x)
- if (x < 1)
- fun_l13_n106(x)
- else
- fun_l13_n101(x)
- end
-end
-
-def fun_l12_n349(x)
- if (x < 1)
- fun_l13_n164(x)
- else
- fun_l13_n675(x)
- end
-end
-
-def fun_l12_n350(x)
- if (x < 1)
- fun_l13_n349(x)
- else
- fun_l13_n125(x)
- end
-end
-
-def fun_l12_n351(x)
- if (x < 1)
- fun_l13_n536(x)
- else
- fun_l13_n949(x)
- end
-end
-
-def fun_l12_n352(x)
- if (x < 1)
- fun_l13_n872(x)
- else
- fun_l13_n678(x)
- end
-end
-
-def fun_l12_n353(x)
- if (x < 1)
- fun_l13_n566(x)
- else
- fun_l13_n576(x)
- end
-end
-
-def fun_l12_n354(x)
- if (x < 1)
- fun_l13_n978(x)
- else
- fun_l13_n539(x)
- end
-end
-
-def fun_l12_n355(x)
- if (x < 1)
- fun_l13_n929(x)
- else
- fun_l13_n301(x)
- end
-end
-
-def fun_l12_n356(x)
- if (x < 1)
- fun_l13_n768(x)
- else
- fun_l13_n292(x)
- end
-end
-
-def fun_l12_n357(x)
- if (x < 1)
- fun_l13_n873(x)
- else
- fun_l13_n201(x)
- end
-end
-
-def fun_l12_n358(x)
- if (x < 1)
- fun_l13_n852(x)
- else
- fun_l13_n144(x)
- end
-end
-
-def fun_l12_n359(x)
- if (x < 1)
- fun_l13_n220(x)
- else
- fun_l13_n318(x)
- end
-end
-
-def fun_l12_n360(x)
- if (x < 1)
- fun_l13_n339(x)
- else
- fun_l13_n896(x)
- end
-end
-
-def fun_l12_n361(x)
- if (x < 1)
- fun_l13_n896(x)
- else
- fun_l13_n611(x)
- end
-end
-
-def fun_l12_n362(x)
- if (x < 1)
- fun_l13_n237(x)
- else
- fun_l13_n781(x)
- end
-end
-
-def fun_l12_n363(x)
- if (x < 1)
- fun_l13_n994(x)
- else
- fun_l13_n306(x)
- end
-end
-
-def fun_l12_n364(x)
- if (x < 1)
- fun_l13_n437(x)
- else
- fun_l13_n634(x)
- end
-end
-
-def fun_l12_n365(x)
- if (x < 1)
- fun_l13_n367(x)
- else
- fun_l13_n798(x)
- end
-end
-
-def fun_l12_n366(x)
- if (x < 1)
- fun_l13_n831(x)
- else
- fun_l13_n352(x)
- end
-end
-
-def fun_l12_n367(x)
- if (x < 1)
- fun_l13_n554(x)
- else
- fun_l13_n999(x)
- end
-end
-
-def fun_l12_n368(x)
- if (x < 1)
- fun_l13_n214(x)
- else
- fun_l13_n67(x)
- end
-end
-
-def fun_l12_n369(x)
- if (x < 1)
- fun_l13_n628(x)
- else
- fun_l13_n637(x)
- end
-end
-
-def fun_l12_n370(x)
- if (x < 1)
- fun_l13_n42(x)
- else
- fun_l13_n631(x)
- end
-end
-
-def fun_l12_n371(x)
- if (x < 1)
- fun_l13_n53(x)
- else
- fun_l13_n226(x)
- end
-end
-
-def fun_l12_n372(x)
- if (x < 1)
- fun_l13_n810(x)
- else
- fun_l13_n853(x)
- end
-end
-
-def fun_l12_n373(x)
- if (x < 1)
- fun_l13_n257(x)
- else
- fun_l13_n480(x)
- end
-end
-
-def fun_l12_n374(x)
- if (x < 1)
- fun_l13_n715(x)
- else
- fun_l13_n481(x)
- end
-end
-
-def fun_l12_n375(x)
- if (x < 1)
- fun_l13_n499(x)
- else
- fun_l13_n694(x)
- end
-end
-
-def fun_l12_n376(x)
- if (x < 1)
- fun_l13_n376(x)
- else
- fun_l13_n99(x)
- end
-end
-
-def fun_l12_n377(x)
- if (x < 1)
- fun_l13_n672(x)
- else
- fun_l13_n421(x)
- end
-end
-
-def fun_l12_n378(x)
- if (x < 1)
- fun_l13_n320(x)
- else
- fun_l13_n590(x)
- end
-end
-
-def fun_l12_n379(x)
- if (x < 1)
- fun_l13_n678(x)
- else
- fun_l13_n727(x)
- end
-end
-
-def fun_l12_n380(x)
- if (x < 1)
- fun_l13_n269(x)
- else
- fun_l13_n74(x)
- end
-end
-
-def fun_l12_n381(x)
- if (x < 1)
- fun_l13_n838(x)
- else
- fun_l13_n105(x)
- end
-end
-
-def fun_l12_n382(x)
- if (x < 1)
- fun_l13_n482(x)
- else
- fun_l13_n400(x)
- end
-end
-
-def fun_l12_n383(x)
- if (x < 1)
- fun_l13_n376(x)
- else
- fun_l13_n829(x)
- end
-end
-
-def fun_l12_n384(x)
- if (x < 1)
- fun_l13_n81(x)
- else
- fun_l13_n895(x)
- end
-end
-
-def fun_l12_n385(x)
- if (x < 1)
- fun_l13_n718(x)
- else
- fun_l13_n641(x)
- end
-end
-
-def fun_l12_n386(x)
- if (x < 1)
- fun_l13_n825(x)
- else
- fun_l13_n761(x)
- end
-end
-
-def fun_l12_n387(x)
- if (x < 1)
- fun_l13_n930(x)
- else
- fun_l13_n204(x)
- end
-end
-
-def fun_l12_n388(x)
- if (x < 1)
- fun_l13_n81(x)
- else
- fun_l13_n319(x)
- end
-end
-
-def fun_l12_n389(x)
- if (x < 1)
- fun_l13_n40(x)
- else
- fun_l13_n57(x)
- end
-end
-
-def fun_l12_n390(x)
- if (x < 1)
- fun_l13_n206(x)
- else
- fun_l13_n219(x)
- end
-end
-
-def fun_l12_n391(x)
- if (x < 1)
- fun_l13_n538(x)
- else
- fun_l13_n239(x)
- end
-end
-
-def fun_l12_n392(x)
- if (x < 1)
- fun_l13_n326(x)
- else
- fun_l13_n613(x)
- end
-end
-
-def fun_l12_n393(x)
- if (x < 1)
- fun_l13_n860(x)
- else
- fun_l13_n712(x)
- end
-end
-
-def fun_l12_n394(x)
- if (x < 1)
- fun_l13_n829(x)
- else
- fun_l13_n153(x)
- end
-end
-
-def fun_l12_n395(x)
- if (x < 1)
- fun_l13_n734(x)
- else
- fun_l13_n926(x)
- end
-end
-
-def fun_l12_n396(x)
- if (x < 1)
- fun_l13_n188(x)
- else
- fun_l13_n821(x)
- end
-end
-
-def fun_l12_n397(x)
- if (x < 1)
- fun_l13_n161(x)
- else
- fun_l13_n284(x)
- end
-end
-
-def fun_l12_n398(x)
- if (x < 1)
- fun_l13_n402(x)
- else
- fun_l13_n481(x)
- end
-end
-
-def fun_l12_n399(x)
- if (x < 1)
- fun_l13_n469(x)
- else
- fun_l13_n348(x)
- end
-end
-
-def fun_l12_n400(x)
- if (x < 1)
- fun_l13_n567(x)
- else
- fun_l13_n702(x)
- end
-end
-
-def fun_l12_n401(x)
- if (x < 1)
- fun_l13_n787(x)
- else
- fun_l13_n5(x)
- end
-end
-
-def fun_l12_n402(x)
- if (x < 1)
- fun_l13_n525(x)
- else
- fun_l13_n983(x)
- end
-end
-
-def fun_l12_n403(x)
- if (x < 1)
- fun_l13_n185(x)
- else
- fun_l13_n315(x)
- end
-end
-
-def fun_l12_n404(x)
- if (x < 1)
- fun_l13_n746(x)
- else
- fun_l13_n892(x)
- end
-end
-
-def fun_l12_n405(x)
- if (x < 1)
- fun_l13_n990(x)
- else
- fun_l13_n868(x)
- end
-end
-
-def fun_l12_n406(x)
- if (x < 1)
- fun_l13_n399(x)
- else
- fun_l13_n298(x)
- end
-end
-
-def fun_l12_n407(x)
- if (x < 1)
- fun_l13_n283(x)
- else
- fun_l13_n87(x)
- end
-end
-
-def fun_l12_n408(x)
- if (x < 1)
- fun_l13_n597(x)
- else
- fun_l13_n355(x)
- end
-end
-
-def fun_l12_n409(x)
- if (x < 1)
- fun_l13_n517(x)
- else
- fun_l13_n700(x)
- end
-end
-
-def fun_l12_n410(x)
- if (x < 1)
- fun_l13_n796(x)
- else
- fun_l13_n282(x)
- end
-end
-
-def fun_l12_n411(x)
- if (x < 1)
- fun_l13_n876(x)
- else
- fun_l13_n562(x)
- end
-end
-
-def fun_l12_n412(x)
- if (x < 1)
- fun_l13_n344(x)
- else
- fun_l13_n182(x)
- end
-end
-
-def fun_l12_n413(x)
- if (x < 1)
- fun_l13_n879(x)
- else
- fun_l13_n443(x)
- end
-end
-
-def fun_l12_n414(x)
- if (x < 1)
- fun_l13_n335(x)
- else
- fun_l13_n451(x)
- end
-end
-
-def fun_l12_n415(x)
- if (x < 1)
- fun_l13_n112(x)
- else
- fun_l13_n391(x)
- end
-end
-
-def fun_l12_n416(x)
- if (x < 1)
- fun_l13_n217(x)
- else
- fun_l13_n221(x)
- end
-end
-
-def fun_l12_n417(x)
- if (x < 1)
- fun_l13_n113(x)
- else
- fun_l13_n563(x)
- end
-end
-
-def fun_l12_n418(x)
- if (x < 1)
- fun_l13_n486(x)
- else
- fun_l13_n374(x)
- end
-end
-
-def fun_l12_n419(x)
- if (x < 1)
- fun_l13_n970(x)
- else
- fun_l13_n393(x)
- end
-end
-
-def fun_l12_n420(x)
- if (x < 1)
- fun_l13_n273(x)
- else
- fun_l13_n64(x)
- end
-end
-
-def fun_l12_n421(x)
- if (x < 1)
- fun_l13_n69(x)
- else
- fun_l13_n158(x)
- end
-end
-
-def fun_l12_n422(x)
- if (x < 1)
- fun_l13_n308(x)
- else
- fun_l13_n609(x)
- end
-end
-
-def fun_l12_n423(x)
- if (x < 1)
- fun_l13_n964(x)
- else
- fun_l13_n36(x)
- end
-end
-
-def fun_l12_n424(x)
- if (x < 1)
- fun_l13_n783(x)
- else
- fun_l13_n513(x)
- end
-end
-
-def fun_l12_n425(x)
- if (x < 1)
- fun_l13_n792(x)
- else
- fun_l13_n960(x)
- end
-end
-
-def fun_l12_n426(x)
- if (x < 1)
- fun_l13_n160(x)
- else
- fun_l13_n911(x)
- end
-end
-
-def fun_l12_n427(x)
- if (x < 1)
- fun_l13_n374(x)
- else
- fun_l13_n672(x)
- end
-end
-
-def fun_l12_n428(x)
- if (x < 1)
- fun_l13_n694(x)
- else
- fun_l13_n166(x)
- end
-end
-
-def fun_l12_n429(x)
- if (x < 1)
- fun_l13_n807(x)
- else
- fun_l13_n929(x)
- end
-end
-
-def fun_l12_n430(x)
- if (x < 1)
- fun_l13_n997(x)
- else
- fun_l13_n938(x)
- end
-end
-
-def fun_l12_n431(x)
- if (x < 1)
- fun_l13_n934(x)
- else
- fun_l13_n365(x)
- end
-end
-
-def fun_l12_n432(x)
- if (x < 1)
- fun_l13_n546(x)
- else
- fun_l13_n272(x)
- end
-end
-
-def fun_l12_n433(x)
- if (x < 1)
- fun_l13_n176(x)
- else
- fun_l13_n629(x)
- end
-end
-
-def fun_l12_n434(x)
- if (x < 1)
- fun_l13_n536(x)
- else
- fun_l13_n165(x)
- end
-end
-
-def fun_l12_n435(x)
- if (x < 1)
- fun_l13_n915(x)
- else
- fun_l13_n823(x)
- end
-end
-
-def fun_l12_n436(x)
- if (x < 1)
- fun_l13_n580(x)
- else
- fun_l13_n214(x)
- end
-end
-
-def fun_l12_n437(x)
- if (x < 1)
- fun_l13_n353(x)
- else
- fun_l13_n626(x)
- end
-end
-
-def fun_l12_n438(x)
- if (x < 1)
- fun_l13_n888(x)
- else
- fun_l13_n874(x)
- end
-end
-
-def fun_l12_n439(x)
- if (x < 1)
- fun_l13_n670(x)
- else
- fun_l13_n279(x)
- end
-end
-
-def fun_l12_n440(x)
- if (x < 1)
- fun_l13_n818(x)
- else
- fun_l13_n927(x)
- end
-end
-
-def fun_l12_n441(x)
- if (x < 1)
- fun_l13_n686(x)
- else
- fun_l13_n32(x)
- end
-end
-
-def fun_l12_n442(x)
- if (x < 1)
- fun_l13_n882(x)
- else
- fun_l13_n932(x)
- end
-end
-
-def fun_l12_n443(x)
- if (x < 1)
- fun_l13_n677(x)
- else
- fun_l13_n267(x)
- end
-end
-
-def fun_l12_n444(x)
- if (x < 1)
- fun_l13_n632(x)
- else
- fun_l13_n808(x)
- end
-end
-
-def fun_l12_n445(x)
- if (x < 1)
- fun_l13_n159(x)
- else
- fun_l13_n251(x)
- end
-end
-
-def fun_l12_n446(x)
- if (x < 1)
- fun_l13_n939(x)
- else
- fun_l13_n231(x)
- end
-end
-
-def fun_l12_n447(x)
- if (x < 1)
- fun_l13_n971(x)
- else
- fun_l13_n103(x)
- end
-end
-
-def fun_l12_n448(x)
- if (x < 1)
- fun_l13_n556(x)
- else
- fun_l13_n356(x)
- end
-end
-
-def fun_l12_n449(x)
- if (x < 1)
- fun_l13_n999(x)
- else
- fun_l13_n722(x)
- end
-end
-
-def fun_l12_n450(x)
- if (x < 1)
- fun_l13_n387(x)
- else
- fun_l13_n15(x)
- end
-end
-
-def fun_l12_n451(x)
- if (x < 1)
- fun_l13_n736(x)
- else
- fun_l13_n869(x)
- end
-end
-
-def fun_l12_n452(x)
- if (x < 1)
- fun_l13_n984(x)
- else
- fun_l13_n396(x)
- end
-end
-
-def fun_l12_n453(x)
- if (x < 1)
- fun_l13_n375(x)
- else
- fun_l13_n275(x)
- end
-end
-
-def fun_l12_n454(x)
- if (x < 1)
- fun_l13_n100(x)
- else
- fun_l13_n956(x)
- end
-end
-
-def fun_l12_n455(x)
- if (x < 1)
- fun_l13_n575(x)
- else
- fun_l13_n22(x)
- end
-end
-
-def fun_l12_n456(x)
- if (x < 1)
- fun_l13_n515(x)
- else
- fun_l13_n716(x)
- end
-end
-
-def fun_l12_n457(x)
- if (x < 1)
- fun_l13_n953(x)
- else
- fun_l13_n823(x)
- end
-end
-
-def fun_l12_n458(x)
- if (x < 1)
- fun_l13_n343(x)
- else
- fun_l13_n843(x)
- end
-end
-
-def fun_l12_n459(x)
- if (x < 1)
- fun_l13_n209(x)
- else
- fun_l13_n464(x)
- end
-end
-
-def fun_l12_n460(x)
- if (x < 1)
- fun_l13_n281(x)
- else
- fun_l13_n165(x)
- end
-end
-
-def fun_l12_n461(x)
- if (x < 1)
- fun_l13_n416(x)
- else
- fun_l13_n896(x)
- end
-end
-
-def fun_l12_n462(x)
- if (x < 1)
- fun_l13_n677(x)
- else
- fun_l13_n767(x)
- end
-end
-
-def fun_l12_n463(x)
- if (x < 1)
- fun_l13_n271(x)
- else
- fun_l13_n515(x)
- end
-end
-
-def fun_l12_n464(x)
- if (x < 1)
- fun_l13_n589(x)
- else
- fun_l13_n447(x)
- end
-end
-
-def fun_l12_n465(x)
- if (x < 1)
- fun_l13_n316(x)
- else
- fun_l13_n309(x)
- end
-end
-
-def fun_l12_n466(x)
- if (x < 1)
- fun_l13_n48(x)
- else
- fun_l13_n999(x)
- end
-end
-
-def fun_l12_n467(x)
- if (x < 1)
- fun_l13_n334(x)
- else
- fun_l13_n138(x)
- end
-end
-
-def fun_l12_n468(x)
- if (x < 1)
- fun_l13_n483(x)
- else
- fun_l13_n353(x)
- end
-end
-
-def fun_l12_n469(x)
- if (x < 1)
- fun_l13_n893(x)
- else
- fun_l13_n114(x)
- end
-end
-
-def fun_l12_n470(x)
- if (x < 1)
- fun_l13_n945(x)
- else
- fun_l13_n438(x)
- end
-end
-
-def fun_l12_n471(x)
- if (x < 1)
- fun_l13_n546(x)
- else
- fun_l13_n181(x)
- end
-end
-
-def fun_l12_n472(x)
- if (x < 1)
- fun_l13_n443(x)
- else
- fun_l13_n35(x)
- end
-end
-
-def fun_l12_n473(x)
- if (x < 1)
- fun_l13_n611(x)
- else
- fun_l13_n106(x)
- end
-end
-
-def fun_l12_n474(x)
- if (x < 1)
- fun_l13_n408(x)
- else
- fun_l13_n162(x)
- end
-end
-
-def fun_l12_n475(x)
- if (x < 1)
- fun_l13_n104(x)
- else
- fun_l13_n173(x)
- end
-end
-
-def fun_l12_n476(x)
- if (x < 1)
- fun_l13_n922(x)
- else
- fun_l13_n593(x)
- end
-end
-
-def fun_l12_n477(x)
- if (x < 1)
- fun_l13_n650(x)
- else
- fun_l13_n659(x)
- end
-end
-
-def fun_l12_n478(x)
- if (x < 1)
- fun_l13_n746(x)
- else
- fun_l13_n484(x)
- end
-end
-
-def fun_l12_n479(x)
- if (x < 1)
- fun_l13_n366(x)
- else
- fun_l13_n318(x)
- end
-end
-
-def fun_l12_n480(x)
- if (x < 1)
- fun_l13_n995(x)
- else
- fun_l13_n108(x)
- end
-end
-
-def fun_l12_n481(x)
- if (x < 1)
- fun_l13_n61(x)
- else
- fun_l13_n426(x)
- end
-end
-
-def fun_l12_n482(x)
- if (x < 1)
- fun_l13_n578(x)
- else
- fun_l13_n955(x)
- end
-end
-
-def fun_l12_n483(x)
- if (x < 1)
- fun_l13_n650(x)
- else
- fun_l13_n588(x)
- end
-end
-
-def fun_l12_n484(x)
- if (x < 1)
- fun_l13_n842(x)
- else
- fun_l13_n198(x)
- end
-end
-
-def fun_l12_n485(x)
- if (x < 1)
- fun_l13_n439(x)
- else
- fun_l13_n372(x)
- end
-end
-
-def fun_l12_n486(x)
- if (x < 1)
- fun_l13_n94(x)
- else
- fun_l13_n531(x)
- end
-end
-
-def fun_l12_n487(x)
- if (x < 1)
- fun_l13_n743(x)
- else
- fun_l13_n955(x)
- end
-end
-
-def fun_l12_n488(x)
- if (x < 1)
- fun_l13_n648(x)
- else
- fun_l13_n849(x)
- end
-end
-
-def fun_l12_n489(x)
- if (x < 1)
- fun_l13_n371(x)
- else
- fun_l13_n972(x)
- end
-end
-
-def fun_l12_n490(x)
- if (x < 1)
- fun_l13_n128(x)
- else
- fun_l13_n617(x)
- end
-end
-
-def fun_l12_n491(x)
- if (x < 1)
- fun_l13_n22(x)
- else
- fun_l13_n201(x)
- end
-end
-
-def fun_l12_n492(x)
- if (x < 1)
- fun_l13_n209(x)
- else
- fun_l13_n679(x)
- end
-end
-
-def fun_l12_n493(x)
- if (x < 1)
- fun_l13_n415(x)
- else
- fun_l13_n765(x)
- end
-end
-
-def fun_l12_n494(x)
- if (x < 1)
- fun_l13_n498(x)
- else
- fun_l13_n719(x)
- end
-end
-
-def fun_l12_n495(x)
- if (x < 1)
- fun_l13_n492(x)
- else
- fun_l13_n161(x)
- end
-end
-
-def fun_l12_n496(x)
- if (x < 1)
- fun_l13_n162(x)
- else
- fun_l13_n54(x)
- end
-end
-
-def fun_l12_n497(x)
- if (x < 1)
- fun_l13_n743(x)
- else
- fun_l13_n834(x)
- end
-end
-
-def fun_l12_n498(x)
- if (x < 1)
- fun_l13_n376(x)
- else
- fun_l13_n676(x)
- end
-end
-
-def fun_l12_n499(x)
- if (x < 1)
- fun_l13_n626(x)
- else
- fun_l13_n357(x)
- end
-end
-
-def fun_l12_n500(x)
- if (x < 1)
- fun_l13_n874(x)
- else
- fun_l13_n53(x)
- end
-end
-
-def fun_l12_n501(x)
- if (x < 1)
- fun_l13_n146(x)
- else
- fun_l13_n732(x)
- end
-end
-
-def fun_l12_n502(x)
- if (x < 1)
- fun_l13_n908(x)
- else
- fun_l13_n933(x)
- end
-end
-
-def fun_l12_n503(x)
- if (x < 1)
- fun_l13_n758(x)
- else
- fun_l13_n289(x)
- end
-end
-
-def fun_l12_n504(x)
- if (x < 1)
- fun_l13_n913(x)
- else
- fun_l13_n770(x)
- end
-end
-
-def fun_l12_n505(x)
- if (x < 1)
- fun_l13_n305(x)
- else
- fun_l13_n990(x)
- end
-end
-
-def fun_l12_n506(x)
- if (x < 1)
- fun_l13_n79(x)
- else
- fun_l13_n199(x)
- end
-end
-
-def fun_l12_n507(x)
- if (x < 1)
- fun_l13_n430(x)
- else
- fun_l13_n394(x)
- end
-end
-
-def fun_l12_n508(x)
- if (x < 1)
- fun_l13_n835(x)
- else
- fun_l13_n64(x)
- end
-end
-
-def fun_l12_n509(x)
- if (x < 1)
- fun_l13_n661(x)
- else
- fun_l13_n301(x)
- end
-end
-
-def fun_l12_n510(x)
- if (x < 1)
- fun_l13_n672(x)
- else
- fun_l13_n498(x)
- end
-end
-
-def fun_l12_n511(x)
- if (x < 1)
- fun_l13_n540(x)
- else
- fun_l13_n57(x)
- end
-end
-
-def fun_l12_n512(x)
- if (x < 1)
- fun_l13_n634(x)
- else
- fun_l13_n790(x)
- end
-end
-
-def fun_l12_n513(x)
- if (x < 1)
- fun_l13_n998(x)
- else
- fun_l13_n3(x)
- end
-end
-
-def fun_l12_n514(x)
- if (x < 1)
- fun_l13_n482(x)
- else
- fun_l13_n116(x)
- end
-end
-
-def fun_l12_n515(x)
- if (x < 1)
- fun_l13_n967(x)
- else
- fun_l13_n17(x)
- end
-end
-
-def fun_l12_n516(x)
- if (x < 1)
- fun_l13_n614(x)
- else
- fun_l13_n260(x)
- end
-end
-
-def fun_l12_n517(x)
- if (x < 1)
- fun_l13_n273(x)
- else
- fun_l13_n982(x)
- end
-end
-
-def fun_l12_n518(x)
- if (x < 1)
- fun_l13_n786(x)
- else
- fun_l13_n186(x)
- end
-end
-
-def fun_l12_n519(x)
- if (x < 1)
- fun_l13_n990(x)
- else
- fun_l13_n223(x)
- end
-end
-
-def fun_l12_n520(x)
- if (x < 1)
- fun_l13_n406(x)
- else
- fun_l13_n374(x)
- end
-end
-
-def fun_l12_n521(x)
- if (x < 1)
- fun_l13_n548(x)
- else
- fun_l13_n160(x)
- end
-end
-
-def fun_l12_n522(x)
- if (x < 1)
- fun_l13_n249(x)
- else
- fun_l13_n295(x)
- end
-end
-
-def fun_l12_n523(x)
- if (x < 1)
- fun_l13_n434(x)
- else
- fun_l13_n73(x)
- end
-end
-
-def fun_l12_n524(x)
- if (x < 1)
- fun_l13_n550(x)
- else
- fun_l13_n472(x)
- end
-end
-
-def fun_l12_n525(x)
- if (x < 1)
- fun_l13_n720(x)
- else
- fun_l13_n979(x)
- end
-end
-
-def fun_l12_n526(x)
- if (x < 1)
- fun_l13_n806(x)
- else
- fun_l13_n156(x)
- end
-end
-
-def fun_l12_n527(x)
- if (x < 1)
- fun_l13_n689(x)
- else
- fun_l13_n781(x)
- end
-end
-
-def fun_l12_n528(x)
- if (x < 1)
- fun_l13_n130(x)
- else
- fun_l13_n909(x)
- end
-end
-
-def fun_l12_n529(x)
- if (x < 1)
- fun_l13_n762(x)
- else
- fun_l13_n301(x)
- end
-end
-
-def fun_l12_n530(x)
- if (x < 1)
- fun_l13_n580(x)
- else
- fun_l13_n269(x)
- end
-end
-
-def fun_l12_n531(x)
- if (x < 1)
- fun_l13_n427(x)
- else
- fun_l13_n279(x)
- end
-end
-
-def fun_l12_n532(x)
- if (x < 1)
- fun_l13_n408(x)
- else
- fun_l13_n523(x)
- end
-end
-
-def fun_l12_n533(x)
- if (x < 1)
- fun_l13_n358(x)
- else
- fun_l13_n386(x)
- end
-end
-
-def fun_l12_n534(x)
- if (x < 1)
- fun_l13_n401(x)
- else
- fun_l13_n148(x)
- end
-end
-
-def fun_l12_n535(x)
- if (x < 1)
- fun_l13_n588(x)
- else
- fun_l13_n607(x)
- end
-end
-
-def fun_l12_n536(x)
- if (x < 1)
- fun_l13_n445(x)
- else
- fun_l13_n681(x)
- end
-end
-
-def fun_l12_n537(x)
- if (x < 1)
- fun_l13_n16(x)
- else
- fun_l13_n931(x)
- end
-end
-
-def fun_l12_n538(x)
- if (x < 1)
- fun_l13_n567(x)
- else
- fun_l13_n9(x)
- end
-end
-
-def fun_l12_n539(x)
- if (x < 1)
- fun_l13_n584(x)
- else
- fun_l13_n46(x)
- end
-end
-
-def fun_l12_n540(x)
- if (x < 1)
- fun_l13_n147(x)
- else
- fun_l13_n498(x)
- end
-end
-
-def fun_l12_n541(x)
- if (x < 1)
- fun_l13_n727(x)
- else
- fun_l13_n152(x)
- end
-end
-
-def fun_l12_n542(x)
- if (x < 1)
- fun_l13_n797(x)
- else
- fun_l13_n789(x)
- end
-end
-
-def fun_l12_n543(x)
- if (x < 1)
- fun_l13_n711(x)
- else
- fun_l13_n939(x)
- end
-end
-
-def fun_l12_n544(x)
- if (x < 1)
- fun_l13_n276(x)
- else
- fun_l13_n325(x)
- end
-end
-
-def fun_l12_n545(x)
- if (x < 1)
- fun_l13_n800(x)
- else
- fun_l13_n974(x)
- end
-end
-
-def fun_l12_n546(x)
- if (x < 1)
- fun_l13_n654(x)
- else
- fun_l13_n331(x)
- end
-end
-
-def fun_l12_n547(x)
- if (x < 1)
- fun_l13_n179(x)
- else
- fun_l13_n395(x)
- end
-end
-
-def fun_l12_n548(x)
- if (x < 1)
- fun_l13_n348(x)
- else
- fun_l13_n210(x)
- end
-end
-
-def fun_l12_n549(x)
- if (x < 1)
- fun_l13_n669(x)
- else
- fun_l13_n459(x)
- end
-end
-
-def fun_l12_n550(x)
- if (x < 1)
- fun_l13_n316(x)
- else
- fun_l13_n846(x)
- end
-end
-
-def fun_l12_n551(x)
- if (x < 1)
- fun_l13_n262(x)
- else
- fun_l13_n430(x)
- end
-end
-
-def fun_l12_n552(x)
- if (x < 1)
- fun_l13_n224(x)
- else
- fun_l13_n866(x)
- end
-end
-
-def fun_l12_n553(x)
- if (x < 1)
- fun_l13_n551(x)
- else
- fun_l13_n30(x)
- end
-end
-
-def fun_l12_n554(x)
- if (x < 1)
- fun_l13_n864(x)
- else
- fun_l13_n931(x)
- end
-end
-
-def fun_l12_n555(x)
- if (x < 1)
- fun_l13_n427(x)
- else
- fun_l13_n138(x)
- end
-end
-
-def fun_l12_n556(x)
- if (x < 1)
- fun_l13_n603(x)
- else
- fun_l13_n167(x)
- end
-end
-
-def fun_l12_n557(x)
- if (x < 1)
- fun_l13_n858(x)
- else
- fun_l13_n123(x)
- end
-end
-
-def fun_l12_n558(x)
- if (x < 1)
- fun_l13_n729(x)
- else
- fun_l13_n769(x)
- end
-end
-
-def fun_l12_n559(x)
- if (x < 1)
- fun_l13_n529(x)
- else
- fun_l13_n114(x)
- end
-end
-
-def fun_l12_n560(x)
- if (x < 1)
- fun_l13_n727(x)
- else
- fun_l13_n673(x)
- end
-end
-
-def fun_l12_n561(x)
- if (x < 1)
- fun_l13_n742(x)
- else
- fun_l13_n981(x)
- end
-end
-
-def fun_l12_n562(x)
- if (x < 1)
- fun_l13_n29(x)
- else
- fun_l13_n493(x)
- end
-end
-
-def fun_l12_n563(x)
- if (x < 1)
- fun_l13_n207(x)
- else
- fun_l13_n361(x)
- end
-end
-
-def fun_l12_n564(x)
- if (x < 1)
- fun_l13_n370(x)
- else
- fun_l13_n185(x)
- end
-end
-
-def fun_l12_n565(x)
- if (x < 1)
- fun_l13_n755(x)
- else
- fun_l13_n28(x)
- end
-end
-
-def fun_l12_n566(x)
- if (x < 1)
- fun_l13_n332(x)
- else
- fun_l13_n718(x)
- end
-end
-
-def fun_l12_n567(x)
- if (x < 1)
- fun_l13_n329(x)
- else
- fun_l13_n623(x)
- end
-end
-
-def fun_l12_n568(x)
- if (x < 1)
- fun_l13_n592(x)
- else
- fun_l13_n870(x)
- end
-end
-
-def fun_l12_n569(x)
- if (x < 1)
- fun_l13_n539(x)
- else
- fun_l13_n68(x)
- end
-end
-
-def fun_l12_n570(x)
- if (x < 1)
- fun_l13_n794(x)
- else
- fun_l13_n617(x)
- end
-end
-
-def fun_l12_n571(x)
- if (x < 1)
- fun_l13_n801(x)
- else
- fun_l13_n610(x)
- end
-end
-
-def fun_l12_n572(x)
- if (x < 1)
- fun_l13_n781(x)
- else
- fun_l13_n879(x)
- end
-end
-
-def fun_l12_n573(x)
- if (x < 1)
- fun_l13_n519(x)
- else
- fun_l13_n748(x)
- end
-end
-
-def fun_l12_n574(x)
- if (x < 1)
- fun_l13_n416(x)
- else
- fun_l13_n908(x)
- end
-end
-
-def fun_l12_n575(x)
- if (x < 1)
- fun_l13_n288(x)
- else
- fun_l13_n925(x)
- end
-end
-
-def fun_l12_n576(x)
- if (x < 1)
- fun_l13_n398(x)
- else
- fun_l13_n185(x)
- end
-end
-
-def fun_l12_n577(x)
- if (x < 1)
- fun_l13_n742(x)
- else
- fun_l13_n768(x)
- end
-end
-
-def fun_l12_n578(x)
- if (x < 1)
- fun_l13_n472(x)
- else
- fun_l13_n474(x)
- end
-end
-
-def fun_l12_n579(x)
- if (x < 1)
- fun_l13_n229(x)
- else
- fun_l13_n479(x)
- end
-end
-
-def fun_l12_n580(x)
- if (x < 1)
- fun_l13_n483(x)
- else
- fun_l13_n60(x)
- end
-end
-
-def fun_l12_n581(x)
- if (x < 1)
- fun_l13_n971(x)
- else
- fun_l13_n958(x)
- end
-end
-
-def fun_l12_n582(x)
- if (x < 1)
- fun_l13_n612(x)
- else
- fun_l13_n491(x)
- end
-end
-
-def fun_l12_n583(x)
- if (x < 1)
- fun_l13_n320(x)
- else
- fun_l13_n356(x)
- end
-end
-
-def fun_l12_n584(x)
- if (x < 1)
- fun_l13_n521(x)
- else
- fun_l13_n126(x)
- end
-end
-
-def fun_l12_n585(x)
- if (x < 1)
- fun_l13_n778(x)
- else
- fun_l13_n503(x)
- end
-end
-
-def fun_l12_n586(x)
- if (x < 1)
- fun_l13_n715(x)
- else
- fun_l13_n849(x)
- end
-end
-
-def fun_l12_n587(x)
- if (x < 1)
- fun_l13_n192(x)
- else
- fun_l13_n278(x)
- end
-end
-
-def fun_l12_n588(x)
- if (x < 1)
- fun_l13_n882(x)
- else
- fun_l13_n992(x)
- end
-end
-
-def fun_l12_n589(x)
- if (x < 1)
- fun_l13_n693(x)
- else
- fun_l13_n734(x)
- end
-end
-
-def fun_l12_n590(x)
- if (x < 1)
- fun_l13_n207(x)
- else
- fun_l13_n674(x)
- end
-end
-
-def fun_l12_n591(x)
- if (x < 1)
- fun_l13_n409(x)
- else
- fun_l13_n937(x)
- end
-end
-
-def fun_l12_n592(x)
- if (x < 1)
- fun_l13_n424(x)
- else
- fun_l13_n709(x)
- end
-end
-
-def fun_l12_n593(x)
- if (x < 1)
- fun_l13_n530(x)
- else
- fun_l13_n50(x)
- end
-end
-
-def fun_l12_n594(x)
- if (x < 1)
- fun_l13_n451(x)
- else
- fun_l13_n513(x)
- end
-end
-
-def fun_l12_n595(x)
- if (x < 1)
- fun_l13_n522(x)
- else
- fun_l13_n414(x)
- end
-end
-
-def fun_l12_n596(x)
- if (x < 1)
- fun_l13_n352(x)
- else
- fun_l13_n323(x)
- end
-end
-
-def fun_l12_n597(x)
- if (x < 1)
- fun_l13_n342(x)
- else
- fun_l13_n362(x)
- end
-end
-
-def fun_l12_n598(x)
- if (x < 1)
- fun_l13_n870(x)
- else
- fun_l13_n366(x)
- end
-end
-
-def fun_l12_n599(x)
- if (x < 1)
- fun_l13_n562(x)
- else
- fun_l13_n455(x)
- end
-end
-
-def fun_l12_n600(x)
- if (x < 1)
- fun_l13_n554(x)
- else
- fun_l13_n929(x)
- end
-end
-
-def fun_l12_n601(x)
- if (x < 1)
- fun_l13_n498(x)
- else
- fun_l13_n287(x)
- end
-end
-
-def fun_l12_n602(x)
- if (x < 1)
- fun_l13_n9(x)
- else
- fun_l13_n258(x)
- end
-end
-
-def fun_l12_n603(x)
- if (x < 1)
- fun_l13_n976(x)
- else
- fun_l13_n604(x)
- end
-end
-
-def fun_l12_n604(x)
- if (x < 1)
- fun_l13_n411(x)
- else
- fun_l13_n238(x)
- end
-end
-
-def fun_l12_n605(x)
- if (x < 1)
- fun_l13_n80(x)
- else
- fun_l13_n665(x)
- end
-end
-
-def fun_l12_n606(x)
- if (x < 1)
- fun_l13_n453(x)
- else
- fun_l13_n642(x)
- end
-end
-
-def fun_l12_n607(x)
- if (x < 1)
- fun_l13_n247(x)
- else
- fun_l13_n651(x)
- end
-end
-
-def fun_l12_n608(x)
- if (x < 1)
- fun_l13_n586(x)
- else
- fun_l13_n372(x)
- end
-end
-
-def fun_l12_n609(x)
- if (x < 1)
- fun_l13_n623(x)
- else
- fun_l13_n380(x)
- end
-end
-
-def fun_l12_n610(x)
- if (x < 1)
- fun_l13_n399(x)
- else
- fun_l13_n43(x)
- end
-end
-
-def fun_l12_n611(x)
- if (x < 1)
- fun_l13_n191(x)
- else
- fun_l13_n211(x)
- end
-end
-
-def fun_l12_n612(x)
- if (x < 1)
- fun_l13_n719(x)
- else
- fun_l13_n663(x)
- end
-end
-
-def fun_l12_n613(x)
- if (x < 1)
- fun_l13_n849(x)
- else
- fun_l13_n39(x)
- end
-end
-
-def fun_l12_n614(x)
- if (x < 1)
- fun_l13_n822(x)
- else
- fun_l13_n927(x)
- end
-end
-
-def fun_l12_n615(x)
- if (x < 1)
- fun_l13_n358(x)
- else
- fun_l13_n364(x)
- end
-end
-
-def fun_l12_n616(x)
- if (x < 1)
- fun_l13_n685(x)
- else
- fun_l13_n897(x)
- end
-end
-
-def fun_l12_n617(x)
- if (x < 1)
- fun_l13_n243(x)
- else
- fun_l13_n138(x)
- end
-end
-
-def fun_l12_n618(x)
- if (x < 1)
- fun_l13_n737(x)
- else
- fun_l13_n187(x)
- end
-end
-
-def fun_l12_n619(x)
- if (x < 1)
- fun_l13_n56(x)
- else
- fun_l13_n684(x)
- end
-end
-
-def fun_l12_n620(x)
- if (x < 1)
- fun_l13_n865(x)
- else
- fun_l13_n886(x)
- end
-end
-
-def fun_l12_n621(x)
- if (x < 1)
- fun_l13_n749(x)
- else
- fun_l13_n554(x)
- end
-end
-
-def fun_l12_n622(x)
- if (x < 1)
- fun_l13_n162(x)
- else
- fun_l13_n600(x)
- end
-end
-
-def fun_l12_n623(x)
- if (x < 1)
- fun_l13_n763(x)
- else
- fun_l13_n227(x)
- end
-end
-
-def fun_l12_n624(x)
- if (x < 1)
- fun_l13_n767(x)
- else
- fun_l13_n431(x)
- end
-end
-
-def fun_l12_n625(x)
- if (x < 1)
- fun_l13_n347(x)
- else
- fun_l13_n214(x)
- end
-end
-
-def fun_l12_n626(x)
- if (x < 1)
- fun_l13_n365(x)
- else
- fun_l13_n747(x)
- end
-end
-
-def fun_l12_n627(x)
- if (x < 1)
- fun_l13_n783(x)
- else
- fun_l13_n597(x)
- end
-end
-
-def fun_l12_n628(x)
- if (x < 1)
- fun_l13_n249(x)
- else
- fun_l13_n906(x)
- end
-end
-
-def fun_l12_n629(x)
- if (x < 1)
- fun_l13_n803(x)
- else
- fun_l13_n855(x)
- end
-end
-
-def fun_l12_n630(x)
- if (x < 1)
- fun_l13_n981(x)
- else
- fun_l13_n38(x)
- end
-end
-
-def fun_l12_n631(x)
- if (x < 1)
- fun_l13_n437(x)
- else
- fun_l13_n158(x)
- end
-end
-
-def fun_l12_n632(x)
- if (x < 1)
- fun_l13_n611(x)
- else
- fun_l13_n142(x)
- end
-end
-
-def fun_l12_n633(x)
- if (x < 1)
- fun_l13_n880(x)
- else
- fun_l13_n172(x)
- end
-end
-
-def fun_l12_n634(x)
- if (x < 1)
- fun_l13_n135(x)
- else
- fun_l13_n529(x)
- end
-end
-
-def fun_l12_n635(x)
- if (x < 1)
- fun_l13_n694(x)
- else
- fun_l13_n949(x)
- end
-end
-
-def fun_l12_n636(x)
- if (x < 1)
- fun_l13_n153(x)
- else
- fun_l13_n326(x)
- end
-end
-
-def fun_l12_n637(x)
- if (x < 1)
- fun_l13_n318(x)
- else
- fun_l13_n372(x)
- end
-end
-
-def fun_l12_n638(x)
- if (x < 1)
- fun_l13_n467(x)
- else
- fun_l13_n450(x)
- end
-end
-
-def fun_l12_n639(x)
- if (x < 1)
- fun_l13_n397(x)
- else
- fun_l13_n138(x)
- end
-end
-
-def fun_l12_n640(x)
- if (x < 1)
- fun_l13_n408(x)
- else
- fun_l13_n335(x)
- end
-end
-
-def fun_l12_n641(x)
- if (x < 1)
- fun_l13_n342(x)
- else
- fun_l13_n856(x)
- end
-end
-
-def fun_l12_n642(x)
- if (x < 1)
- fun_l13_n163(x)
- else
- fun_l13_n979(x)
- end
-end
-
-def fun_l12_n643(x)
- if (x < 1)
- fun_l13_n509(x)
- else
- fun_l13_n153(x)
- end
-end
-
-def fun_l12_n644(x)
- if (x < 1)
- fun_l13_n3(x)
- else
- fun_l13_n55(x)
- end
-end
-
-def fun_l12_n645(x)
- if (x < 1)
- fun_l13_n730(x)
- else
- fun_l13_n52(x)
- end
-end
-
-def fun_l12_n646(x)
- if (x < 1)
- fun_l13_n553(x)
- else
- fun_l13_n885(x)
- end
-end
-
-def fun_l12_n647(x)
- if (x < 1)
- fun_l13_n866(x)
- else
- fun_l13_n684(x)
- end
-end
-
-def fun_l12_n648(x)
- if (x < 1)
- fun_l13_n989(x)
- else
- fun_l13_n511(x)
- end
-end
-
-def fun_l12_n649(x)
- if (x < 1)
- fun_l13_n527(x)
- else
- fun_l13_n166(x)
- end
-end
-
-def fun_l12_n650(x)
- if (x < 1)
- fun_l13_n507(x)
- else
- fun_l13_n527(x)
- end
-end
-
-def fun_l12_n651(x)
- if (x < 1)
- fun_l13_n174(x)
- else
- fun_l13_n881(x)
- end
-end
-
-def fun_l12_n652(x)
- if (x < 1)
- fun_l13_n302(x)
- else
- fun_l13_n3(x)
- end
-end
-
-def fun_l12_n653(x)
- if (x < 1)
- fun_l13_n971(x)
- else
- fun_l13_n601(x)
- end
-end
-
-def fun_l12_n654(x)
- if (x < 1)
- fun_l13_n440(x)
- else
- fun_l13_n286(x)
- end
-end
-
-def fun_l12_n655(x)
- if (x < 1)
- fun_l13_n208(x)
- else
- fun_l13_n275(x)
- end
-end
-
-def fun_l12_n656(x)
- if (x < 1)
- fun_l13_n954(x)
- else
- fun_l13_n991(x)
- end
-end
-
-def fun_l12_n657(x)
- if (x < 1)
- fun_l13_n212(x)
- else
- fun_l13_n640(x)
- end
-end
-
-def fun_l12_n658(x)
- if (x < 1)
- fun_l13_n733(x)
- else
- fun_l13_n459(x)
- end
-end
-
-def fun_l12_n659(x)
- if (x < 1)
- fun_l13_n767(x)
- else
- fun_l13_n581(x)
- end
-end
-
-def fun_l12_n660(x)
- if (x < 1)
- fun_l13_n421(x)
- else
- fun_l13_n19(x)
- end
-end
-
-def fun_l12_n661(x)
- if (x < 1)
- fun_l13_n500(x)
- else
- fun_l13_n464(x)
- end
-end
-
-def fun_l12_n662(x)
- if (x < 1)
- fun_l13_n26(x)
- else
- fun_l13_n300(x)
- end
-end
-
-def fun_l12_n663(x)
- if (x < 1)
- fun_l13_n160(x)
- else
- fun_l13_n112(x)
- end
-end
-
-def fun_l12_n664(x)
- if (x < 1)
- fun_l13_n181(x)
- else
- fun_l13_n511(x)
- end
-end
-
-def fun_l12_n665(x)
- if (x < 1)
- fun_l13_n573(x)
- else
- fun_l13_n283(x)
- end
-end
-
-def fun_l12_n666(x)
- if (x < 1)
- fun_l13_n562(x)
- else
- fun_l13_n992(x)
- end
-end
-
-def fun_l12_n667(x)
- if (x < 1)
- fun_l13_n426(x)
- else
- fun_l13_n921(x)
- end
-end
-
-def fun_l12_n668(x)
- if (x < 1)
- fun_l13_n319(x)
- else
- fun_l13_n226(x)
- end
-end
-
-def fun_l12_n669(x)
- if (x < 1)
- fun_l13_n832(x)
- else
- fun_l13_n690(x)
- end
-end
-
-def fun_l12_n670(x)
- if (x < 1)
- fun_l13_n921(x)
- else
- fun_l13_n964(x)
- end
-end
-
-def fun_l12_n671(x)
- if (x < 1)
- fun_l13_n823(x)
- else
- fun_l13_n903(x)
- end
-end
-
-def fun_l12_n672(x)
- if (x < 1)
- fun_l13_n469(x)
- else
- fun_l13_n914(x)
- end
-end
-
-def fun_l12_n673(x)
- if (x < 1)
- fun_l13_n478(x)
- else
- fun_l13_n481(x)
- end
-end
-
-def fun_l12_n674(x)
- if (x < 1)
- fun_l13_n762(x)
- else
- fun_l13_n464(x)
- end
-end
-
-def fun_l12_n675(x)
- if (x < 1)
- fun_l13_n930(x)
- else
- fun_l13_n587(x)
- end
-end
-
-def fun_l12_n676(x)
- if (x < 1)
- fun_l13_n351(x)
- else
- fun_l13_n239(x)
- end
-end
-
-def fun_l12_n677(x)
- if (x < 1)
- fun_l13_n989(x)
- else
- fun_l13_n424(x)
- end
-end
-
-def fun_l12_n678(x)
- if (x < 1)
- fun_l13_n505(x)
- else
- fun_l13_n186(x)
- end
-end
-
-def fun_l12_n679(x)
- if (x < 1)
- fun_l13_n665(x)
- else
- fun_l13_n536(x)
- end
-end
-
-def fun_l12_n680(x)
- if (x < 1)
- fun_l13_n734(x)
- else
- fun_l13_n36(x)
- end
-end
-
-def fun_l12_n681(x)
- if (x < 1)
- fun_l13_n380(x)
- else
- fun_l13_n340(x)
- end
-end
-
-def fun_l12_n682(x)
- if (x < 1)
- fun_l13_n293(x)
- else
- fun_l13_n205(x)
- end
-end
-
-def fun_l12_n683(x)
- if (x < 1)
- fun_l13_n412(x)
- else
- fun_l13_n13(x)
- end
-end
-
-def fun_l12_n684(x)
- if (x < 1)
- fun_l13_n187(x)
- else
- fun_l13_n186(x)
- end
-end
-
-def fun_l12_n685(x)
- if (x < 1)
- fun_l13_n299(x)
- else
- fun_l13_n875(x)
- end
-end
-
-def fun_l12_n686(x)
- if (x < 1)
- fun_l13_n943(x)
- else
- fun_l13_n96(x)
- end
-end
-
-def fun_l12_n687(x)
- if (x < 1)
- fun_l13_n736(x)
- else
- fun_l13_n377(x)
- end
-end
-
-def fun_l12_n688(x)
- if (x < 1)
- fun_l13_n559(x)
- else
- fun_l13_n410(x)
- end
-end
-
-def fun_l12_n689(x)
- if (x < 1)
- fun_l13_n538(x)
- else
- fun_l13_n521(x)
- end
-end
-
-def fun_l12_n690(x)
- if (x < 1)
- fun_l13_n568(x)
- else
- fun_l13_n838(x)
- end
-end
-
-def fun_l12_n691(x)
- if (x < 1)
- fun_l13_n556(x)
- else
- fun_l13_n42(x)
- end
-end
-
-def fun_l12_n692(x)
- if (x < 1)
- fun_l13_n137(x)
- else
- fun_l13_n939(x)
- end
-end
-
-def fun_l12_n693(x)
- if (x < 1)
- fun_l13_n974(x)
- else
- fun_l13_n308(x)
- end
-end
-
-def fun_l12_n694(x)
- if (x < 1)
- fun_l13_n459(x)
- else
- fun_l13_n323(x)
- end
-end
-
-def fun_l12_n695(x)
- if (x < 1)
- fun_l13_n829(x)
- else
- fun_l13_n909(x)
- end
-end
-
-def fun_l12_n696(x)
- if (x < 1)
- fun_l13_n710(x)
- else
- fun_l13_n648(x)
- end
-end
-
-def fun_l12_n697(x)
- if (x < 1)
- fun_l13_n27(x)
- else
- fun_l13_n500(x)
- end
-end
-
-def fun_l12_n698(x)
- if (x < 1)
- fun_l13_n553(x)
- else
- fun_l13_n865(x)
- end
-end
-
-def fun_l12_n699(x)
- if (x < 1)
- fun_l13_n126(x)
- else
- fun_l13_n789(x)
- end
-end
-
-def fun_l12_n700(x)
- if (x < 1)
- fun_l13_n408(x)
- else
- fun_l13_n391(x)
- end
-end
-
-def fun_l12_n701(x)
- if (x < 1)
- fun_l13_n469(x)
- else
- fun_l13_n48(x)
- end
-end
-
-def fun_l12_n702(x)
- if (x < 1)
- fun_l13_n646(x)
- else
- fun_l13_n117(x)
- end
-end
-
-def fun_l12_n703(x)
- if (x < 1)
- fun_l13_n461(x)
- else
- fun_l13_n114(x)
- end
-end
-
-def fun_l12_n704(x)
- if (x < 1)
- fun_l13_n603(x)
- else
- fun_l13_n27(x)
- end
-end
-
-def fun_l12_n705(x)
- if (x < 1)
- fun_l13_n842(x)
- else
- fun_l13_n792(x)
- end
-end
-
-def fun_l12_n706(x)
- if (x < 1)
- fun_l13_n194(x)
- else
- fun_l13_n405(x)
- end
-end
-
-def fun_l12_n707(x)
- if (x < 1)
- fun_l13_n975(x)
- else
- fun_l13_n933(x)
- end
-end
-
-def fun_l12_n708(x)
- if (x < 1)
- fun_l13_n919(x)
- else
- fun_l13_n558(x)
- end
-end
-
-def fun_l12_n709(x)
- if (x < 1)
- fun_l13_n293(x)
- else
- fun_l13_n868(x)
- end
-end
-
-def fun_l12_n710(x)
- if (x < 1)
- fun_l13_n577(x)
- else
- fun_l13_n816(x)
- end
-end
-
-def fun_l12_n711(x)
- if (x < 1)
- fun_l13_n625(x)
- else
- fun_l13_n319(x)
- end
-end
-
-def fun_l12_n712(x)
- if (x < 1)
- fun_l13_n100(x)
- else
- fun_l13_n421(x)
- end
-end
-
-def fun_l12_n713(x)
- if (x < 1)
- fun_l13_n120(x)
- else
- fun_l13_n727(x)
- end
-end
-
-def fun_l12_n714(x)
- if (x < 1)
- fun_l13_n346(x)
- else
- fun_l13_n399(x)
- end
-end
-
-def fun_l12_n715(x)
- if (x < 1)
- fun_l13_n64(x)
- else
- fun_l13_n895(x)
- end
-end
-
-def fun_l12_n716(x)
- if (x < 1)
- fun_l13_n810(x)
- else
- fun_l13_n958(x)
- end
-end
-
-def fun_l12_n717(x)
- if (x < 1)
- fun_l13_n24(x)
- else
- fun_l13_n851(x)
- end
-end
-
-def fun_l12_n718(x)
- if (x < 1)
- fun_l13_n716(x)
- else
- fun_l13_n859(x)
- end
-end
-
-def fun_l12_n719(x)
- if (x < 1)
- fun_l13_n556(x)
- else
- fun_l13_n999(x)
- end
-end
-
-def fun_l12_n720(x)
- if (x < 1)
- fun_l13_n388(x)
- else
- fun_l13_n127(x)
- end
-end
-
-def fun_l12_n721(x)
- if (x < 1)
- fun_l13_n447(x)
- else
- fun_l13_n880(x)
- end
-end
-
-def fun_l12_n722(x)
- if (x < 1)
- fun_l13_n415(x)
- else
- fun_l13_n636(x)
- end
-end
-
-def fun_l12_n723(x)
- if (x < 1)
- fun_l13_n315(x)
- else
- fun_l13_n766(x)
- end
-end
-
-def fun_l12_n724(x)
- if (x < 1)
- fun_l13_n600(x)
- else
- fun_l13_n223(x)
- end
-end
-
-def fun_l12_n725(x)
- if (x < 1)
- fun_l13_n773(x)
- else
- fun_l13_n523(x)
- end
-end
-
-def fun_l12_n726(x)
- if (x < 1)
- fun_l13_n662(x)
- else
- fun_l13_n775(x)
- end
-end
-
-def fun_l12_n727(x)
- if (x < 1)
- fun_l13_n553(x)
- else
- fun_l13_n247(x)
- end
-end
-
-def fun_l12_n728(x)
- if (x < 1)
- fun_l13_n180(x)
- else
- fun_l13_n815(x)
- end
-end
-
-def fun_l12_n729(x)
- if (x < 1)
- fun_l13_n786(x)
- else
- fun_l13_n729(x)
- end
-end
-
-def fun_l12_n730(x)
- if (x < 1)
- fun_l13_n1(x)
- else
- fun_l13_n791(x)
- end
-end
-
-def fun_l12_n731(x)
- if (x < 1)
- fun_l13_n216(x)
- else
- fun_l13_n682(x)
- end
-end
-
-def fun_l12_n732(x)
- if (x < 1)
- fun_l13_n953(x)
- else
- fun_l13_n364(x)
- end
-end
-
-def fun_l12_n733(x)
- if (x < 1)
- fun_l13_n164(x)
- else
- fun_l13_n277(x)
- end
-end
-
-def fun_l12_n734(x)
- if (x < 1)
- fun_l13_n486(x)
- else
- fun_l13_n741(x)
- end
-end
-
-def fun_l12_n735(x)
- if (x < 1)
- fun_l13_n310(x)
- else
- fun_l13_n940(x)
- end
-end
-
-def fun_l12_n736(x)
- if (x < 1)
- fun_l13_n312(x)
- else
- fun_l13_n46(x)
- end
-end
-
-def fun_l12_n737(x)
- if (x < 1)
- fun_l13_n473(x)
- else
- fun_l13_n728(x)
- end
-end
-
-def fun_l12_n738(x)
- if (x < 1)
- fun_l13_n602(x)
- else
- fun_l13_n652(x)
- end
-end
-
-def fun_l12_n739(x)
- if (x < 1)
- fun_l13_n397(x)
- else
- fun_l13_n855(x)
- end
-end
-
-def fun_l12_n740(x)
- if (x < 1)
- fun_l13_n81(x)
- else
- fun_l13_n32(x)
- end
-end
-
-def fun_l12_n741(x)
- if (x < 1)
- fun_l13_n822(x)
- else
- fun_l13_n231(x)
- end
-end
-
-def fun_l12_n742(x)
- if (x < 1)
- fun_l13_n200(x)
- else
- fun_l13_n440(x)
- end
-end
-
-def fun_l12_n743(x)
- if (x < 1)
- fun_l13_n415(x)
- else
- fun_l13_n631(x)
- end
-end
-
-def fun_l12_n744(x)
- if (x < 1)
- fun_l13_n353(x)
- else
- fun_l13_n536(x)
- end
-end
-
-def fun_l12_n745(x)
- if (x < 1)
- fun_l13_n986(x)
- else
- fun_l13_n384(x)
- end
-end
-
-def fun_l12_n746(x)
- if (x < 1)
- fun_l13_n237(x)
- else
- fun_l13_n583(x)
- end
-end
-
-def fun_l12_n747(x)
- if (x < 1)
- fun_l13_n518(x)
- else
- fun_l13_n717(x)
- end
-end
-
-def fun_l12_n748(x)
- if (x < 1)
- fun_l13_n242(x)
- else
- fun_l13_n180(x)
- end
-end
-
-def fun_l12_n749(x)
- if (x < 1)
- fun_l13_n369(x)
- else
- fun_l13_n249(x)
- end
-end
-
-def fun_l12_n750(x)
- if (x < 1)
- fun_l13_n335(x)
- else
- fun_l13_n180(x)
- end
-end
-
-def fun_l12_n751(x)
- if (x < 1)
- fun_l13_n952(x)
- else
- fun_l13_n506(x)
- end
-end
-
-def fun_l12_n752(x)
- if (x < 1)
- fun_l13_n941(x)
- else
- fun_l13_n251(x)
- end
-end
-
-def fun_l12_n753(x)
- if (x < 1)
- fun_l13_n21(x)
- else
- fun_l13_n536(x)
- end
-end
-
-def fun_l12_n754(x)
- if (x < 1)
- fun_l13_n123(x)
- else
- fun_l13_n976(x)
- end
-end
-
-def fun_l12_n755(x)
- if (x < 1)
- fun_l13_n229(x)
- else
- fun_l13_n535(x)
- end
-end
-
-def fun_l12_n756(x)
- if (x < 1)
- fun_l13_n23(x)
- else
- fun_l13_n976(x)
- end
-end
-
-def fun_l12_n757(x)
- if (x < 1)
- fun_l13_n755(x)
- else
- fun_l13_n677(x)
- end
-end
-
-def fun_l12_n758(x)
- if (x < 1)
- fun_l13_n692(x)
- else
- fun_l13_n334(x)
- end
-end
-
-def fun_l12_n759(x)
- if (x < 1)
- fun_l13_n380(x)
- else
- fun_l13_n903(x)
- end
-end
-
-def fun_l12_n760(x)
- if (x < 1)
- fun_l13_n16(x)
- else
- fun_l13_n750(x)
- end
-end
-
-def fun_l12_n761(x)
- if (x < 1)
- fun_l13_n186(x)
- else
- fun_l13_n639(x)
- end
-end
-
-def fun_l12_n762(x)
- if (x < 1)
- fun_l13_n163(x)
- else
- fun_l13_n273(x)
- end
-end
-
-def fun_l12_n763(x)
- if (x < 1)
- fun_l13_n791(x)
- else
- fun_l13_n55(x)
- end
-end
-
-def fun_l12_n764(x)
- if (x < 1)
- fun_l13_n10(x)
- else
- fun_l13_n672(x)
- end
-end
-
-def fun_l12_n765(x)
- if (x < 1)
- fun_l13_n382(x)
- else
- fun_l13_n284(x)
- end
-end
-
-def fun_l12_n766(x)
- if (x < 1)
- fun_l13_n940(x)
- else
- fun_l13_n716(x)
- end
-end
-
-def fun_l12_n767(x)
- if (x < 1)
- fun_l13_n414(x)
- else
- fun_l13_n997(x)
- end
-end
-
-def fun_l12_n768(x)
- if (x < 1)
- fun_l13_n345(x)
- else
- fun_l13_n511(x)
- end
-end
-
-def fun_l12_n769(x)
- if (x < 1)
- fun_l13_n915(x)
- else
- fun_l13_n907(x)
- end
-end
-
-def fun_l12_n770(x)
- if (x < 1)
- fun_l13_n508(x)
- else
- fun_l13_n144(x)
- end
-end
-
-def fun_l12_n771(x)
- if (x < 1)
- fun_l13_n764(x)
- else
- fun_l13_n211(x)
- end
-end
-
-def fun_l12_n772(x)
- if (x < 1)
- fun_l13_n571(x)
- else
- fun_l13_n486(x)
- end
-end
-
-def fun_l12_n773(x)
- if (x < 1)
- fun_l13_n503(x)
- else
- fun_l13_n561(x)
- end
-end
-
-def fun_l12_n774(x)
- if (x < 1)
- fun_l13_n831(x)
- else
- fun_l13_n608(x)
- end
-end
-
-def fun_l12_n775(x)
- if (x < 1)
- fun_l13_n254(x)
- else
- fun_l13_n626(x)
- end
-end
-
-def fun_l12_n776(x)
- if (x < 1)
- fun_l13_n155(x)
- else
- fun_l13_n602(x)
- end
-end
-
-def fun_l12_n777(x)
- if (x < 1)
- fun_l13_n331(x)
- else
- fun_l13_n837(x)
- end
-end
-
-def fun_l12_n778(x)
- if (x < 1)
- fun_l13_n109(x)
- else
- fun_l13_n558(x)
- end
-end
-
-def fun_l12_n779(x)
- if (x < 1)
- fun_l13_n557(x)
- else
- fun_l13_n784(x)
- end
-end
-
-def fun_l12_n780(x)
- if (x < 1)
- fun_l13_n719(x)
- else
- fun_l13_n933(x)
- end
-end
-
-def fun_l12_n781(x)
- if (x < 1)
- fun_l13_n63(x)
- else
- fun_l13_n776(x)
- end
-end
-
-def fun_l12_n782(x)
- if (x < 1)
- fun_l13_n146(x)
- else
- fun_l13_n32(x)
- end
-end
-
-def fun_l12_n783(x)
- if (x < 1)
- fun_l13_n452(x)
- else
- fun_l13_n621(x)
- end
-end
-
-def fun_l12_n784(x)
- if (x < 1)
- fun_l13_n821(x)
- else
- fun_l13_n454(x)
- end
-end
-
-def fun_l12_n785(x)
- if (x < 1)
- fun_l13_n943(x)
- else
- fun_l13_n835(x)
- end
-end
-
-def fun_l12_n786(x)
- if (x < 1)
- fun_l13_n47(x)
- else
- fun_l13_n252(x)
- end
-end
-
-def fun_l12_n787(x)
- if (x < 1)
- fun_l13_n759(x)
- else
- fun_l13_n820(x)
- end
-end
-
-def fun_l12_n788(x)
- if (x < 1)
- fun_l13_n883(x)
- else
- fun_l13_n218(x)
- end
-end
-
-def fun_l12_n789(x)
- if (x < 1)
- fun_l13_n10(x)
- else
- fun_l13_n765(x)
- end
-end
-
-def fun_l12_n790(x)
- if (x < 1)
- fun_l13_n6(x)
- else
- fun_l13_n424(x)
- end
-end
-
-def fun_l12_n791(x)
- if (x < 1)
- fun_l13_n645(x)
- else
- fun_l13_n598(x)
- end
-end
-
-def fun_l12_n792(x)
- if (x < 1)
- fun_l13_n237(x)
- else
- fun_l13_n141(x)
- end
-end
-
-def fun_l12_n793(x)
- if (x < 1)
- fun_l13_n793(x)
- else
- fun_l13_n109(x)
- end
-end
-
-def fun_l12_n794(x)
- if (x < 1)
- fun_l13_n404(x)
- else
- fun_l13_n864(x)
- end
-end
-
-def fun_l12_n795(x)
- if (x < 1)
- fun_l13_n511(x)
- else
- fun_l13_n620(x)
- end
-end
-
-def fun_l12_n796(x)
- if (x < 1)
- fun_l13_n880(x)
- else
- fun_l13_n330(x)
- end
-end
-
-def fun_l12_n797(x)
- if (x < 1)
- fun_l13_n637(x)
- else
- fun_l13_n13(x)
- end
-end
-
-def fun_l12_n798(x)
- if (x < 1)
- fun_l13_n567(x)
- else
- fun_l13_n958(x)
- end
-end
-
-def fun_l12_n799(x)
- if (x < 1)
- fun_l13_n715(x)
- else
- fun_l13_n983(x)
- end
-end
-
-def fun_l12_n800(x)
- if (x < 1)
- fun_l13_n502(x)
- else
- fun_l13_n600(x)
- end
-end
-
-def fun_l12_n801(x)
- if (x < 1)
- fun_l13_n645(x)
- else
- fun_l13_n713(x)
- end
-end
-
-def fun_l12_n802(x)
- if (x < 1)
- fun_l13_n804(x)
- else
- fun_l13_n475(x)
- end
-end
-
-def fun_l12_n803(x)
- if (x < 1)
- fun_l13_n286(x)
- else
- fun_l13_n135(x)
- end
-end
-
-def fun_l12_n804(x)
- if (x < 1)
- fun_l13_n420(x)
- else
- fun_l13_n534(x)
- end
-end
-
-def fun_l12_n805(x)
- if (x < 1)
- fun_l13_n345(x)
- else
- fun_l13_n833(x)
- end
-end
-
-def fun_l12_n806(x)
- if (x < 1)
- fun_l13_n558(x)
- else
- fun_l13_n831(x)
- end
-end
-
-def fun_l12_n807(x)
- if (x < 1)
- fun_l13_n82(x)
- else
- fun_l13_n56(x)
- end
-end
-
-def fun_l12_n808(x)
- if (x < 1)
- fun_l13_n809(x)
- else
- fun_l13_n12(x)
- end
-end
-
-def fun_l12_n809(x)
- if (x < 1)
- fun_l13_n450(x)
- else
- fun_l13_n326(x)
- end
-end
-
-def fun_l12_n810(x)
- if (x < 1)
- fun_l13_n567(x)
- else
- fun_l13_n437(x)
- end
-end
-
-def fun_l12_n811(x)
- if (x < 1)
- fun_l13_n880(x)
- else
- fun_l13_n785(x)
- end
-end
-
-def fun_l12_n812(x)
- if (x < 1)
- fun_l13_n585(x)
- else
- fun_l13_n610(x)
- end
-end
-
-def fun_l12_n813(x)
- if (x < 1)
- fun_l13_n41(x)
- else
- fun_l13_n911(x)
- end
-end
-
-def fun_l12_n814(x)
- if (x < 1)
- fun_l13_n438(x)
- else
- fun_l13_n300(x)
- end
-end
-
-def fun_l12_n815(x)
- if (x < 1)
- fun_l13_n363(x)
- else
- fun_l13_n357(x)
- end
-end
-
-def fun_l12_n816(x)
- if (x < 1)
- fun_l13_n172(x)
- else
- fun_l13_n25(x)
- end
-end
-
-def fun_l12_n817(x)
- if (x < 1)
- fun_l13_n593(x)
- else
- fun_l13_n853(x)
- end
-end
-
-def fun_l12_n818(x)
- if (x < 1)
- fun_l13_n790(x)
- else
- fun_l13_n575(x)
- end
-end
-
-def fun_l12_n819(x)
- if (x < 1)
- fun_l13_n795(x)
- else
- fun_l13_n877(x)
- end
-end
-
-def fun_l12_n820(x)
- if (x < 1)
- fun_l13_n563(x)
- else
- fun_l13_n170(x)
- end
-end
-
-def fun_l12_n821(x)
- if (x < 1)
- fun_l13_n405(x)
- else
- fun_l13_n985(x)
- end
-end
-
-def fun_l12_n822(x)
- if (x < 1)
- fun_l13_n668(x)
- else
- fun_l13_n702(x)
- end
-end
-
-def fun_l12_n823(x)
- if (x < 1)
- fun_l13_n210(x)
- else
- fun_l13_n450(x)
- end
-end
-
-def fun_l12_n824(x)
- if (x < 1)
- fun_l13_n817(x)
- else
- fun_l13_n693(x)
- end
-end
-
-def fun_l12_n825(x)
- if (x < 1)
- fun_l13_n909(x)
- else
- fun_l13_n857(x)
- end
-end
-
-def fun_l12_n826(x)
- if (x < 1)
- fun_l13_n944(x)
- else
- fun_l13_n601(x)
- end
-end
-
-def fun_l12_n827(x)
- if (x < 1)
- fun_l13_n152(x)
- else
- fun_l13_n187(x)
- end
-end
-
-def fun_l12_n828(x)
- if (x < 1)
- fun_l13_n735(x)
- else
- fun_l13_n198(x)
- end
-end
-
-def fun_l12_n829(x)
- if (x < 1)
- fun_l13_n892(x)
- else
- fun_l13_n362(x)
- end
-end
-
-def fun_l12_n830(x)
- if (x < 1)
- fun_l13_n636(x)
- else
- fun_l13_n779(x)
- end
-end
-
-def fun_l12_n831(x)
- if (x < 1)
- fun_l13_n597(x)
- else
- fun_l13_n186(x)
- end
-end
-
-def fun_l12_n832(x)
- if (x < 1)
- fun_l13_n680(x)
- else
- fun_l13_n477(x)
- end
-end
-
-def fun_l12_n833(x)
- if (x < 1)
- fun_l13_n334(x)
- else
- fun_l13_n508(x)
- end
-end
-
-def fun_l12_n834(x)
- if (x < 1)
- fun_l13_n927(x)
- else
- fun_l13_n111(x)
- end
-end
-
-def fun_l12_n835(x)
- if (x < 1)
- fun_l13_n424(x)
- else
- fun_l13_n326(x)
- end
-end
-
-def fun_l12_n836(x)
- if (x < 1)
- fun_l13_n624(x)
- else
- fun_l13_n270(x)
- end
-end
-
-def fun_l12_n837(x)
- if (x < 1)
- fun_l13_n458(x)
- else
- fun_l13_n736(x)
- end
-end
-
-def fun_l12_n838(x)
- if (x < 1)
- fun_l13_n881(x)
- else
- fun_l13_n702(x)
- end
-end
-
-def fun_l12_n839(x)
- if (x < 1)
- fun_l13_n778(x)
- else
- fun_l13_n374(x)
- end
-end
-
-def fun_l12_n840(x)
- if (x < 1)
- fun_l13_n118(x)
- else
- fun_l13_n543(x)
- end
-end
-
-def fun_l12_n841(x)
- if (x < 1)
- fun_l13_n270(x)
- else
- fun_l13_n810(x)
- end
-end
-
-def fun_l12_n842(x)
- if (x < 1)
- fun_l13_n122(x)
- else
- fun_l13_n905(x)
- end
-end
-
-def fun_l12_n843(x)
- if (x < 1)
- fun_l13_n154(x)
- else
- fun_l13_n636(x)
- end
-end
-
-def fun_l12_n844(x)
- if (x < 1)
- fun_l13_n603(x)
- else
- fun_l13_n586(x)
- end
-end
-
-def fun_l12_n845(x)
- if (x < 1)
- fun_l13_n264(x)
- else
- fun_l13_n492(x)
- end
-end
-
-def fun_l12_n846(x)
- if (x < 1)
- fun_l13_n264(x)
- else
- fun_l13_n214(x)
- end
-end
-
-def fun_l12_n847(x)
- if (x < 1)
- fun_l13_n337(x)
- else
- fun_l13_n339(x)
- end
-end
-
-def fun_l12_n848(x)
- if (x < 1)
- fun_l13_n83(x)
- else
- fun_l13_n454(x)
- end
-end
-
-def fun_l12_n849(x)
- if (x < 1)
- fun_l13_n129(x)
- else
- fun_l13_n30(x)
- end
-end
-
-def fun_l12_n850(x)
- if (x < 1)
- fun_l13_n602(x)
- else
- fun_l13_n355(x)
- end
-end
-
-def fun_l12_n851(x)
- if (x < 1)
- fun_l13_n650(x)
- else
- fun_l13_n715(x)
- end
-end
-
-def fun_l12_n852(x)
- if (x < 1)
- fun_l13_n482(x)
- else
- fun_l13_n852(x)
- end
-end
-
-def fun_l12_n853(x)
- if (x < 1)
- fun_l13_n946(x)
- else
- fun_l13_n393(x)
- end
-end
-
-def fun_l12_n854(x)
- if (x < 1)
- fun_l13_n16(x)
- else
- fun_l13_n512(x)
- end
-end
-
-def fun_l12_n855(x)
- if (x < 1)
- fun_l13_n469(x)
- else
- fun_l13_n567(x)
- end
-end
-
-def fun_l12_n856(x)
- if (x < 1)
- fun_l13_n531(x)
- else
- fun_l13_n39(x)
- end
-end
-
-def fun_l12_n857(x)
- if (x < 1)
- fun_l13_n673(x)
- else
- fun_l13_n670(x)
- end
-end
-
-def fun_l12_n858(x)
- if (x < 1)
- fun_l13_n83(x)
- else
- fun_l13_n588(x)
- end
-end
-
-def fun_l12_n859(x)
- if (x < 1)
- fun_l13_n247(x)
- else
- fun_l13_n460(x)
- end
-end
-
-def fun_l12_n860(x)
- if (x < 1)
- fun_l13_n621(x)
- else
- fun_l13_n229(x)
- end
-end
-
-def fun_l12_n861(x)
- if (x < 1)
- fun_l13_n121(x)
- else
- fun_l13_n147(x)
- end
-end
-
-def fun_l12_n862(x)
- if (x < 1)
- fun_l13_n293(x)
- else
- fun_l13_n976(x)
- end
-end
-
-def fun_l12_n863(x)
- if (x < 1)
- fun_l13_n64(x)
- else
- fun_l13_n569(x)
- end
-end
-
-def fun_l12_n864(x)
- if (x < 1)
- fun_l13_n802(x)
- else
- fun_l13_n962(x)
- end
-end
-
-def fun_l12_n865(x)
- if (x < 1)
- fun_l13_n406(x)
- else
- fun_l13_n571(x)
- end
-end
-
-def fun_l12_n866(x)
- if (x < 1)
- fun_l13_n798(x)
- else
- fun_l13_n418(x)
- end
-end
-
-def fun_l12_n867(x)
- if (x < 1)
- fun_l13_n725(x)
- else
- fun_l13_n716(x)
- end
-end
-
-def fun_l12_n868(x)
- if (x < 1)
- fun_l13_n245(x)
- else
- fun_l13_n154(x)
- end
-end
-
-def fun_l12_n869(x)
- if (x < 1)
- fun_l13_n954(x)
- else
- fun_l13_n242(x)
- end
-end
-
-def fun_l12_n870(x)
- if (x < 1)
- fun_l13_n649(x)
- else
- fun_l13_n160(x)
- end
-end
-
-def fun_l12_n871(x)
- if (x < 1)
- fun_l13_n700(x)
- else
- fun_l13_n863(x)
- end
-end
-
-def fun_l12_n872(x)
- if (x < 1)
- fun_l13_n60(x)
- else
- fun_l13_n359(x)
- end
-end
-
-def fun_l12_n873(x)
- if (x < 1)
- fun_l13_n820(x)
- else
- fun_l13_n247(x)
- end
-end
-
-def fun_l12_n874(x)
- if (x < 1)
- fun_l13_n294(x)
- else
- fun_l13_n179(x)
- end
-end
-
-def fun_l12_n875(x)
- if (x < 1)
- fun_l13_n599(x)
- else
- fun_l13_n309(x)
- end
-end
-
-def fun_l12_n876(x)
- if (x < 1)
- fun_l13_n922(x)
- else
- fun_l13_n632(x)
- end
-end
-
-def fun_l12_n877(x)
- if (x < 1)
- fun_l13_n921(x)
- else
- fun_l13_n200(x)
- end
-end
-
-def fun_l12_n878(x)
- if (x < 1)
- fun_l13_n375(x)
- else
- fun_l13_n109(x)
- end
-end
-
-def fun_l12_n879(x)
- if (x < 1)
- fun_l13_n771(x)
- else
- fun_l13_n758(x)
- end
-end
-
-def fun_l12_n880(x)
- if (x < 1)
- fun_l13_n887(x)
- else
- fun_l13_n958(x)
- end
-end
-
-def fun_l12_n881(x)
- if (x < 1)
- fun_l13_n668(x)
- else
- fun_l13_n508(x)
- end
-end
-
-def fun_l12_n882(x)
- if (x < 1)
- fun_l13_n822(x)
- else
- fun_l13_n933(x)
- end
-end
-
-def fun_l12_n883(x)
- if (x < 1)
- fun_l13_n328(x)
- else
- fun_l13_n152(x)
- end
-end
-
-def fun_l12_n884(x)
- if (x < 1)
- fun_l13_n978(x)
- else
- fun_l13_n282(x)
- end
-end
-
-def fun_l12_n885(x)
- if (x < 1)
- fun_l13_n91(x)
- else
- fun_l13_n592(x)
- end
-end
-
-def fun_l12_n886(x)
- if (x < 1)
- fun_l13_n844(x)
- else
- fun_l13_n254(x)
- end
-end
-
-def fun_l12_n887(x)
- if (x < 1)
- fun_l13_n49(x)
- else
- fun_l13_n430(x)
- end
-end
-
-def fun_l12_n888(x)
- if (x < 1)
- fun_l13_n653(x)
- else
- fun_l13_n612(x)
- end
-end
-
-def fun_l12_n889(x)
- if (x < 1)
- fun_l13_n352(x)
- else
- fun_l13_n228(x)
- end
-end
-
-def fun_l12_n890(x)
- if (x < 1)
- fun_l13_n952(x)
- else
- fun_l13_n505(x)
- end
-end
-
-def fun_l12_n891(x)
- if (x < 1)
- fun_l13_n381(x)
- else
- fun_l13_n799(x)
- end
-end
-
-def fun_l12_n892(x)
- if (x < 1)
- fun_l13_n160(x)
- else
- fun_l13_n78(x)
- end
-end
-
-def fun_l12_n893(x)
- if (x < 1)
- fun_l13_n554(x)
- else
- fun_l13_n383(x)
- end
-end
-
-def fun_l12_n894(x)
- if (x < 1)
- fun_l13_n475(x)
- else
- fun_l13_n853(x)
- end
-end
-
-def fun_l12_n895(x)
- if (x < 1)
- fun_l13_n588(x)
- else
- fun_l13_n452(x)
- end
-end
-
-def fun_l12_n896(x)
- if (x < 1)
- fun_l13_n991(x)
- else
- fun_l13_n758(x)
- end
-end
-
-def fun_l12_n897(x)
- if (x < 1)
- fun_l13_n808(x)
- else
- fun_l13_n742(x)
- end
-end
-
-def fun_l12_n898(x)
- if (x < 1)
- fun_l13_n654(x)
- else
- fun_l13_n772(x)
- end
-end
-
-def fun_l12_n899(x)
- if (x < 1)
- fun_l13_n365(x)
- else
- fun_l13_n3(x)
- end
-end
-
-def fun_l12_n900(x)
- if (x < 1)
- fun_l13_n322(x)
- else
- fun_l13_n143(x)
- end
-end
-
-def fun_l12_n901(x)
- if (x < 1)
- fun_l13_n833(x)
- else
- fun_l13_n19(x)
- end
-end
-
-def fun_l12_n902(x)
- if (x < 1)
- fun_l13_n796(x)
- else
- fun_l13_n140(x)
- end
-end
-
-def fun_l12_n903(x)
- if (x < 1)
- fun_l13_n866(x)
- else
- fun_l13_n227(x)
- end
-end
-
-def fun_l12_n904(x)
- if (x < 1)
- fun_l13_n814(x)
- else
- fun_l13_n714(x)
- end
-end
-
-def fun_l12_n905(x)
- if (x < 1)
- fun_l13_n841(x)
- else
- fun_l13_n802(x)
- end
-end
-
-def fun_l12_n906(x)
- if (x < 1)
- fun_l13_n212(x)
- else
- fun_l13_n14(x)
- end
-end
-
-def fun_l12_n907(x)
- if (x < 1)
- fun_l13_n35(x)
- else
- fun_l13_n952(x)
- end
-end
-
-def fun_l12_n908(x)
- if (x < 1)
- fun_l13_n181(x)
- else
- fun_l13_n539(x)
- end
-end
-
-def fun_l12_n909(x)
- if (x < 1)
- fun_l13_n770(x)
- else
- fun_l13_n80(x)
- end
-end
-
-def fun_l12_n910(x)
- if (x < 1)
- fun_l13_n421(x)
- else
- fun_l13_n512(x)
- end
-end
-
-def fun_l12_n911(x)
- if (x < 1)
- fun_l13_n710(x)
- else
- fun_l13_n666(x)
- end
-end
-
-def fun_l12_n912(x)
- if (x < 1)
- fun_l13_n319(x)
- else
- fun_l13_n491(x)
- end
-end
-
-def fun_l12_n913(x)
- if (x < 1)
- fun_l13_n924(x)
- else
- fun_l13_n198(x)
- end
-end
-
-def fun_l12_n914(x)
- if (x < 1)
- fun_l13_n707(x)
- else
- fun_l13_n91(x)
- end
-end
-
-def fun_l12_n915(x)
- if (x < 1)
- fun_l13_n29(x)
- else
- fun_l13_n134(x)
- end
-end
-
-def fun_l12_n916(x)
- if (x < 1)
- fun_l13_n314(x)
- else
- fun_l13_n831(x)
- end
-end
-
-def fun_l12_n917(x)
- if (x < 1)
- fun_l13_n986(x)
- else
- fun_l13_n732(x)
- end
-end
-
-def fun_l12_n918(x)
- if (x < 1)
- fun_l13_n787(x)
- else
- fun_l13_n232(x)
- end
-end
-
-def fun_l12_n919(x)
- if (x < 1)
- fun_l13_n452(x)
- else
- fun_l13_n386(x)
- end
-end
-
-def fun_l12_n920(x)
- if (x < 1)
- fun_l13_n12(x)
- else
- fun_l13_n264(x)
- end
-end
-
-def fun_l12_n921(x)
- if (x < 1)
- fun_l13_n734(x)
- else
- fun_l13_n885(x)
- end
-end
-
-def fun_l12_n922(x)
- if (x < 1)
- fun_l13_n180(x)
- else
- fun_l13_n509(x)
- end
-end
-
-def fun_l12_n923(x)
- if (x < 1)
- fun_l13_n783(x)
- else
- fun_l13_n212(x)
- end
-end
-
-def fun_l12_n924(x)
- if (x < 1)
- fun_l13_n623(x)
- else
- fun_l13_n159(x)
- end
-end
-
-def fun_l12_n925(x)
- if (x < 1)
- fun_l13_n361(x)
- else
- fun_l13_n47(x)
- end
-end
-
-def fun_l12_n926(x)
- if (x < 1)
- fun_l13_n355(x)
- else
- fun_l13_n337(x)
- end
-end
-
-def fun_l12_n927(x)
- if (x < 1)
- fun_l13_n892(x)
- else
- fun_l13_n814(x)
- end
-end
-
-def fun_l12_n928(x)
- if (x < 1)
- fun_l13_n173(x)
- else
- fun_l13_n613(x)
- end
-end
-
-def fun_l12_n929(x)
- if (x < 1)
- fun_l13_n140(x)
- else
- fun_l13_n782(x)
- end
-end
-
-def fun_l12_n930(x)
- if (x < 1)
- fun_l13_n964(x)
- else
- fun_l13_n830(x)
- end
-end
-
-def fun_l12_n931(x)
- if (x < 1)
- fun_l13_n110(x)
- else
- fun_l13_n767(x)
- end
-end
-
-def fun_l12_n932(x)
- if (x < 1)
- fun_l13_n738(x)
- else
- fun_l13_n73(x)
- end
-end
-
-def fun_l12_n933(x)
- if (x < 1)
- fun_l13_n92(x)
- else
- fun_l13_n113(x)
- end
-end
-
-def fun_l12_n934(x)
- if (x < 1)
- fun_l13_n377(x)
- else
- fun_l13_n464(x)
- end
-end
-
-def fun_l12_n935(x)
- if (x < 1)
- fun_l13_n544(x)
- else
- fun_l13_n808(x)
- end
-end
-
-def fun_l12_n936(x)
- if (x < 1)
- fun_l13_n36(x)
- else
- fun_l13_n343(x)
- end
-end
-
-def fun_l12_n937(x)
- if (x < 1)
- fun_l13_n745(x)
- else
- fun_l13_n342(x)
- end
-end
-
-def fun_l12_n938(x)
- if (x < 1)
- fun_l13_n238(x)
- else
- fun_l13_n703(x)
- end
-end
-
-def fun_l12_n939(x)
- if (x < 1)
- fun_l13_n229(x)
- else
- fun_l13_n118(x)
- end
-end
-
-def fun_l12_n940(x)
- if (x < 1)
- fun_l13_n90(x)
- else
- fun_l13_n0(x)
- end
-end
-
-def fun_l12_n941(x)
- if (x < 1)
- fun_l13_n586(x)
- else
- fun_l13_n99(x)
- end
-end
-
-def fun_l12_n942(x)
- if (x < 1)
- fun_l13_n755(x)
- else
- fun_l13_n573(x)
- end
-end
-
-def fun_l12_n943(x)
- if (x < 1)
- fun_l13_n74(x)
- else
- fun_l13_n805(x)
- end
-end
-
-def fun_l12_n944(x)
- if (x < 1)
- fun_l13_n574(x)
- else
- fun_l13_n876(x)
- end
-end
-
-def fun_l12_n945(x)
- if (x < 1)
- fun_l13_n0(x)
- else
- fun_l13_n478(x)
- end
-end
-
-def fun_l12_n946(x)
- if (x < 1)
- fun_l13_n536(x)
- else
- fun_l13_n957(x)
- end
-end
-
-def fun_l12_n947(x)
- if (x < 1)
- fun_l13_n644(x)
- else
- fun_l13_n285(x)
- end
-end
-
-def fun_l12_n948(x)
- if (x < 1)
- fun_l13_n215(x)
- else
- fun_l13_n914(x)
- end
-end
-
-def fun_l12_n949(x)
- if (x < 1)
- fun_l13_n265(x)
- else
- fun_l13_n262(x)
- end
-end
-
-def fun_l12_n950(x)
- if (x < 1)
- fun_l13_n44(x)
- else
- fun_l13_n917(x)
- end
-end
-
-def fun_l12_n951(x)
- if (x < 1)
- fun_l13_n222(x)
- else
- fun_l13_n53(x)
- end
-end
-
-def fun_l12_n952(x)
- if (x < 1)
- fun_l13_n149(x)
- else
- fun_l13_n11(x)
- end
-end
-
-def fun_l12_n953(x)
- if (x < 1)
- fun_l13_n827(x)
- else
- fun_l13_n737(x)
- end
-end
-
-def fun_l12_n954(x)
- if (x < 1)
- fun_l13_n655(x)
- else
- fun_l13_n308(x)
- end
-end
-
-def fun_l12_n955(x)
- if (x < 1)
- fun_l13_n108(x)
- else
- fun_l13_n940(x)
- end
-end
-
-def fun_l12_n956(x)
- if (x < 1)
- fun_l13_n236(x)
- else
- fun_l13_n259(x)
- end
-end
-
-def fun_l12_n957(x)
- if (x < 1)
- fun_l13_n886(x)
- else
- fun_l13_n955(x)
- end
-end
-
-def fun_l12_n958(x)
- if (x < 1)
- fun_l13_n688(x)
- else
- fun_l13_n391(x)
- end
-end
-
-def fun_l12_n959(x)
- if (x < 1)
- fun_l13_n521(x)
- else
- fun_l13_n395(x)
- end
-end
-
-def fun_l12_n960(x)
- if (x < 1)
- fun_l13_n877(x)
- else
- fun_l13_n808(x)
- end
-end
-
-def fun_l12_n961(x)
- if (x < 1)
- fun_l13_n29(x)
- else
- fun_l13_n422(x)
- end
-end
-
-def fun_l12_n962(x)
- if (x < 1)
- fun_l13_n417(x)
- else
- fun_l13_n310(x)
- end
-end
-
-def fun_l12_n963(x)
- if (x < 1)
- fun_l13_n987(x)
- else
- fun_l13_n462(x)
- end
-end
-
-def fun_l12_n964(x)
- if (x < 1)
- fun_l13_n914(x)
- else
- fun_l13_n115(x)
- end
-end
-
-def fun_l12_n965(x)
- if (x < 1)
- fun_l13_n895(x)
- else
- fun_l13_n504(x)
- end
-end
-
-def fun_l12_n966(x)
- if (x < 1)
- fun_l13_n304(x)
- else
- fun_l13_n788(x)
- end
-end
-
-def fun_l12_n967(x)
- if (x < 1)
- fun_l13_n354(x)
- else
- fun_l13_n592(x)
- end
-end
-
-def fun_l12_n968(x)
- if (x < 1)
- fun_l13_n231(x)
- else
- fun_l13_n214(x)
- end
-end
-
-def fun_l12_n969(x)
- if (x < 1)
- fun_l13_n435(x)
- else
- fun_l13_n779(x)
- end
-end
-
-def fun_l12_n970(x)
- if (x < 1)
- fun_l13_n261(x)
- else
- fun_l13_n139(x)
- end
-end
-
-def fun_l12_n971(x)
- if (x < 1)
- fun_l13_n320(x)
- else
- fun_l13_n749(x)
- end
-end
-
-def fun_l12_n972(x)
- if (x < 1)
- fun_l13_n56(x)
- else
- fun_l13_n207(x)
- end
-end
-
-def fun_l12_n973(x)
- if (x < 1)
- fun_l13_n238(x)
- else
- fun_l13_n637(x)
- end
-end
-
-def fun_l12_n974(x)
- if (x < 1)
- fun_l13_n474(x)
- else
- fun_l13_n512(x)
- end
-end
-
-def fun_l12_n975(x)
- if (x < 1)
- fun_l13_n552(x)
- else
- fun_l13_n355(x)
- end
-end
-
-def fun_l12_n976(x)
- if (x < 1)
- fun_l13_n127(x)
- else
- fun_l13_n571(x)
- end
-end
-
-def fun_l12_n977(x)
- if (x < 1)
- fun_l13_n261(x)
- else
- fun_l13_n845(x)
- end
-end
-
-def fun_l12_n978(x)
- if (x < 1)
- fun_l13_n280(x)
- else
- fun_l13_n465(x)
- end
-end
-
-def fun_l12_n979(x)
- if (x < 1)
- fun_l13_n249(x)
- else
- fun_l13_n66(x)
- end
-end
-
-def fun_l12_n980(x)
- if (x < 1)
- fun_l13_n306(x)
- else
- fun_l13_n53(x)
- end
-end
-
-def fun_l12_n981(x)
- if (x < 1)
- fun_l13_n827(x)
- else
- fun_l13_n395(x)
- end
-end
-
-def fun_l12_n982(x)
- if (x < 1)
- fun_l13_n858(x)
- else
- fun_l13_n644(x)
- end
-end
-
-def fun_l12_n983(x)
- if (x < 1)
- fun_l13_n50(x)
- else
- fun_l13_n671(x)
- end
-end
-
-def fun_l12_n984(x)
- if (x < 1)
- fun_l13_n629(x)
- else
- fun_l13_n55(x)
- end
-end
-
-def fun_l12_n985(x)
- if (x < 1)
- fun_l13_n73(x)
- else
- fun_l13_n958(x)
- end
-end
-
-def fun_l12_n986(x)
- if (x < 1)
- fun_l13_n197(x)
- else
- fun_l13_n444(x)
- end
-end
-
-def fun_l12_n987(x)
- if (x < 1)
- fun_l13_n108(x)
- else
- fun_l13_n898(x)
- end
-end
-
-def fun_l12_n988(x)
- if (x < 1)
- fun_l13_n153(x)
- else
- fun_l13_n278(x)
- end
-end
-
-def fun_l12_n989(x)
- if (x < 1)
- fun_l13_n764(x)
- else
- fun_l13_n712(x)
- end
-end
-
-def fun_l12_n990(x)
- if (x < 1)
- fun_l13_n711(x)
- else
- fun_l13_n825(x)
- end
-end
-
-def fun_l12_n991(x)
- if (x < 1)
- fun_l13_n767(x)
- else
- fun_l13_n169(x)
- end
-end
-
-def fun_l12_n992(x)
- if (x < 1)
- fun_l13_n917(x)
- else
- fun_l13_n524(x)
- end
-end
-
-def fun_l12_n993(x)
- if (x < 1)
- fun_l13_n589(x)
- else
- fun_l13_n695(x)
- end
-end
-
-def fun_l12_n994(x)
- if (x < 1)
- fun_l13_n733(x)
- else
- fun_l13_n764(x)
- end
-end
-
-def fun_l12_n995(x)
- if (x < 1)
- fun_l13_n86(x)
- else
- fun_l13_n547(x)
- end
-end
-
-def fun_l12_n996(x)
- if (x < 1)
- fun_l13_n236(x)
- else
- fun_l13_n197(x)
- end
-end
-
-def fun_l12_n997(x)
- if (x < 1)
- fun_l13_n592(x)
- else
- fun_l13_n313(x)
- end
-end
-
-def fun_l12_n998(x)
- if (x < 1)
- fun_l13_n878(x)
- else
- fun_l13_n439(x)
- end
-end
-
-def fun_l12_n999(x)
- if (x < 1)
- fun_l13_n904(x)
- else
- fun_l13_n651(x)
- end
-end
-
-def fun_l13_n0(x)
- if (x < 1)
- fun_l14_n72(x)
- else
- fun_l14_n951(x)
- end
-end
-
-def fun_l13_n1(x)
- if (x < 1)
- fun_l14_n950(x)
- else
- fun_l14_n170(x)
- end
-end
-
-def fun_l13_n2(x)
- if (x < 1)
- fun_l14_n773(x)
- else
- fun_l14_n351(x)
- end
-end
-
-def fun_l13_n3(x)
- if (x < 1)
- fun_l14_n814(x)
- else
- fun_l14_n304(x)
- end
-end
-
-def fun_l13_n4(x)
- if (x < 1)
- fun_l14_n395(x)
- else
- fun_l14_n187(x)
- end
-end
-
-def fun_l13_n5(x)
- if (x < 1)
- fun_l14_n60(x)
- else
- fun_l14_n165(x)
- end
-end
-
-def fun_l13_n6(x)
- if (x < 1)
- fun_l14_n711(x)
- else
- fun_l14_n815(x)
- end
-end
-
-def fun_l13_n7(x)
- if (x < 1)
- fun_l14_n396(x)
- else
- fun_l14_n614(x)
- end
-end
-
-def fun_l13_n8(x)
- if (x < 1)
- fun_l14_n477(x)
- else
- fun_l14_n427(x)
- end
-end
-
-def fun_l13_n9(x)
- if (x < 1)
- fun_l14_n803(x)
- else
- fun_l14_n655(x)
- end
-end
-
-def fun_l13_n10(x)
- if (x < 1)
- fun_l14_n261(x)
- else
- fun_l14_n324(x)
- end
-end
-
-def fun_l13_n11(x)
- if (x < 1)
- fun_l14_n485(x)
- else
- fun_l14_n302(x)
- end
-end
-
-def fun_l13_n12(x)
- if (x < 1)
- fun_l14_n324(x)
- else
- fun_l14_n840(x)
- end
-end
-
-def fun_l13_n13(x)
- if (x < 1)
- fun_l14_n811(x)
- else
- fun_l14_n357(x)
- end
-end
-
-def fun_l13_n14(x)
- if (x < 1)
- fun_l14_n736(x)
- else
- fun_l14_n763(x)
- end
-end
-
-def fun_l13_n15(x)
- if (x < 1)
- fun_l14_n572(x)
- else
- fun_l14_n557(x)
- end
-end
-
-def fun_l13_n16(x)
- if (x < 1)
- fun_l14_n406(x)
- else
- fun_l14_n200(x)
- end
-end
-
-def fun_l13_n17(x)
- if (x < 1)
- fun_l14_n500(x)
- else
- fun_l14_n480(x)
- end
-end
-
-def fun_l13_n18(x)
- if (x < 1)
- fun_l14_n215(x)
- else
- fun_l14_n241(x)
- end
-end
-
-def fun_l13_n19(x)
- if (x < 1)
- fun_l14_n341(x)
- else
- fun_l14_n142(x)
- end
-end
-
-def fun_l13_n20(x)
- if (x < 1)
- fun_l14_n649(x)
- else
- fun_l14_n853(x)
- end
-end
-
-def fun_l13_n21(x)
- if (x < 1)
- fun_l14_n153(x)
- else
- fun_l14_n295(x)
- end
-end
-
-def fun_l13_n22(x)
- if (x < 1)
- fun_l14_n210(x)
- else
- fun_l14_n947(x)
- end
-end
-
-def fun_l13_n23(x)
- if (x < 1)
- fun_l14_n764(x)
- else
- fun_l14_n810(x)
- end
-end
-
-def fun_l13_n24(x)
- if (x < 1)
- fun_l14_n96(x)
- else
- fun_l14_n359(x)
- end
-end
-
-def fun_l13_n25(x)
- if (x < 1)
- fun_l14_n542(x)
- else
- fun_l14_n506(x)
- end
-end
-
-def fun_l13_n26(x)
- if (x < 1)
- fun_l14_n583(x)
- else
- fun_l14_n754(x)
- end
-end
-
-def fun_l13_n27(x)
- if (x < 1)
- fun_l14_n881(x)
- else
- fun_l14_n693(x)
- end
-end
-
-def fun_l13_n28(x)
- if (x < 1)
- fun_l14_n385(x)
- else
- fun_l14_n628(x)
- end
-end
-
-def fun_l13_n29(x)
- if (x < 1)
- fun_l14_n429(x)
- else
- fun_l14_n370(x)
- end
-end
-
-def fun_l13_n30(x)
- if (x < 1)
- fun_l14_n484(x)
- else
- fun_l14_n724(x)
- end
-end
-
-def fun_l13_n31(x)
- if (x < 1)
- fun_l14_n328(x)
- else
- fun_l14_n857(x)
- end
-end
-
-def fun_l13_n32(x)
- if (x < 1)
- fun_l14_n367(x)
- else
- fun_l14_n441(x)
- end
-end
-
-def fun_l13_n33(x)
- if (x < 1)
- fun_l14_n322(x)
- else
- fun_l14_n390(x)
- end
-end
-
-def fun_l13_n34(x)
- if (x < 1)
- fun_l14_n935(x)
- else
- fun_l14_n46(x)
- end
-end
-
-def fun_l13_n35(x)
- if (x < 1)
- fun_l14_n274(x)
- else
- fun_l14_n536(x)
- end
-end
-
-def fun_l13_n36(x)
- if (x < 1)
- fun_l14_n645(x)
- else
- fun_l14_n396(x)
- end
-end
-
-def fun_l13_n37(x)
- if (x < 1)
- fun_l14_n905(x)
- else
- fun_l14_n19(x)
- end
-end
-
-def fun_l13_n38(x)
- if (x < 1)
- fun_l14_n562(x)
- else
- fun_l14_n983(x)
- end
-end
-
-def fun_l13_n39(x)
- if (x < 1)
- fun_l14_n846(x)
- else
- fun_l14_n140(x)
- end
-end
-
-def fun_l13_n40(x)
- if (x < 1)
- fun_l14_n308(x)
- else
- fun_l14_n968(x)
- end
-end
-
-def fun_l13_n41(x)
- if (x < 1)
- fun_l14_n299(x)
- else
- fun_l14_n364(x)
- end
-end
-
-def fun_l13_n42(x)
- if (x < 1)
- fun_l14_n266(x)
- else
- fun_l14_n368(x)
- end
-end
-
-def fun_l13_n43(x)
- if (x < 1)
- fun_l14_n216(x)
- else
- fun_l14_n894(x)
- end
-end
-
-def fun_l13_n44(x)
- if (x < 1)
- fun_l14_n30(x)
- else
- fun_l14_n118(x)
- end
-end
-
-def fun_l13_n45(x)
- if (x < 1)
- fun_l14_n66(x)
- else
- fun_l14_n677(x)
- end
-end
-
-def fun_l13_n46(x)
- if (x < 1)
- fun_l14_n415(x)
- else
- fun_l14_n311(x)
- end
-end
-
-def fun_l13_n47(x)
- if (x < 1)
- fun_l14_n63(x)
- else
- fun_l14_n410(x)
- end
-end
-
-def fun_l13_n48(x)
- if (x < 1)
- fun_l14_n640(x)
- else
- fun_l14_n161(x)
- end
-end
-
-def fun_l13_n49(x)
- if (x < 1)
- fun_l14_n546(x)
- else
- fun_l14_n655(x)
- end
-end
-
-def fun_l13_n50(x)
- if (x < 1)
- fun_l14_n102(x)
- else
- fun_l14_n791(x)
- end
-end
-
-def fun_l13_n51(x)
- if (x < 1)
- fun_l14_n333(x)
- else
- fun_l14_n641(x)
- end
-end
-
-def fun_l13_n52(x)
- if (x < 1)
- fun_l14_n16(x)
- else
- fun_l14_n653(x)
- end
-end
-
-def fun_l13_n53(x)
- if (x < 1)
- fun_l14_n842(x)
- else
- fun_l14_n780(x)
- end
-end
-
-def fun_l13_n54(x)
- if (x < 1)
- fun_l14_n663(x)
- else
- fun_l14_n903(x)
- end
-end
-
-def fun_l13_n55(x)
- if (x < 1)
- fun_l14_n745(x)
- else
- fun_l14_n925(x)
- end
-end
-
-def fun_l13_n56(x)
- if (x < 1)
- fun_l14_n688(x)
- else
- fun_l14_n930(x)
- end
-end
-
-def fun_l13_n57(x)
- if (x < 1)
- fun_l14_n58(x)
- else
- fun_l14_n864(x)
- end
-end
-
-def fun_l13_n58(x)
- if (x < 1)
- fun_l14_n107(x)
- else
- fun_l14_n197(x)
- end
-end
-
-def fun_l13_n59(x)
- if (x < 1)
- fun_l14_n334(x)
- else
- fun_l14_n147(x)
- end
-end
-
-def fun_l13_n60(x)
- if (x < 1)
- fun_l14_n814(x)
- else
- fun_l14_n417(x)
- end
-end
-
-def fun_l13_n61(x)
- if (x < 1)
- fun_l14_n696(x)
- else
- fun_l14_n973(x)
- end
-end
-
-def fun_l13_n62(x)
- if (x < 1)
- fun_l14_n378(x)
- else
- fun_l14_n968(x)
- end
-end
-
-def fun_l13_n63(x)
- if (x < 1)
- fun_l14_n107(x)
- else
- fun_l14_n100(x)
- end
-end
-
-def fun_l13_n64(x)
- if (x < 1)
- fun_l14_n105(x)
- else
- fun_l14_n393(x)
- end
-end
-
-def fun_l13_n65(x)
- if (x < 1)
- fun_l14_n833(x)
- else
- fun_l14_n424(x)
- end
-end
-
-def fun_l13_n66(x)
- if (x < 1)
- fun_l14_n125(x)
- else
- fun_l14_n697(x)
- end
-end
-
-def fun_l13_n67(x)
- if (x < 1)
- fun_l14_n684(x)
- else
- fun_l14_n458(x)
- end
-end
-
-def fun_l13_n68(x)
- if (x < 1)
- fun_l14_n301(x)
- else
- fun_l14_n711(x)
- end
-end
-
-def fun_l13_n69(x)
- if (x < 1)
- fun_l14_n131(x)
- else
- fun_l14_n552(x)
- end
-end
-
-def fun_l13_n70(x)
- if (x < 1)
- fun_l14_n425(x)
- else
- fun_l14_n241(x)
- end
-end
-
-def fun_l13_n71(x)
- if (x < 1)
- fun_l14_n531(x)
- else
- fun_l14_n364(x)
- end
-end
-
-def fun_l13_n72(x)
- if (x < 1)
- fun_l14_n801(x)
- else
- fun_l14_n951(x)
- end
-end
-
-def fun_l13_n73(x)
- if (x < 1)
- fun_l14_n415(x)
- else
- fun_l14_n294(x)
- end
-end
-
-def fun_l13_n74(x)
- if (x < 1)
- fun_l14_n715(x)
- else
- fun_l14_n606(x)
- end
-end
-
-def fun_l13_n75(x)
- if (x < 1)
- fun_l14_n932(x)
- else
- fun_l14_n928(x)
- end
-end
-
-def fun_l13_n76(x)
- if (x < 1)
- fun_l14_n930(x)
- else
- fun_l14_n102(x)
- end
-end
-
-def fun_l13_n77(x)
- if (x < 1)
- fun_l14_n293(x)
- else
- fun_l14_n301(x)
- end
-end
-
-def fun_l13_n78(x)
- if (x < 1)
- fun_l14_n270(x)
- else
- fun_l14_n715(x)
- end
-end
-
-def fun_l13_n79(x)
- if (x < 1)
- fun_l14_n862(x)
- else
- fun_l14_n589(x)
- end
-end
-
-def fun_l13_n80(x)
- if (x < 1)
- fun_l14_n337(x)
- else
- fun_l14_n940(x)
- end
-end
-
-def fun_l13_n81(x)
- if (x < 1)
- fun_l14_n394(x)
- else
- fun_l14_n902(x)
- end
-end
-
-def fun_l13_n82(x)
- if (x < 1)
- fun_l14_n468(x)
- else
- fun_l14_n816(x)
- end
-end
-
-def fun_l13_n83(x)
- if (x < 1)
- fun_l14_n517(x)
- else
- fun_l14_n633(x)
- end
-end
-
-def fun_l13_n84(x)
- if (x < 1)
- fun_l14_n312(x)
- else
- fun_l14_n473(x)
- end
-end
-
-def fun_l13_n85(x)
- if (x < 1)
- fun_l14_n377(x)
- else
- fun_l14_n616(x)
- end
-end
-
-def fun_l13_n86(x)
- if (x < 1)
- fun_l14_n541(x)
- else
- fun_l14_n77(x)
- end
-end
-
-def fun_l13_n87(x)
- if (x < 1)
- fun_l14_n66(x)
- else
- fun_l14_n162(x)
- end
-end
-
-def fun_l13_n88(x)
- if (x < 1)
- fun_l14_n202(x)
- else
- fun_l14_n158(x)
- end
-end
-
-def fun_l13_n89(x)
- if (x < 1)
- fun_l14_n549(x)
- else
- fun_l14_n947(x)
- end
-end
-
-def fun_l13_n90(x)
- if (x < 1)
- fun_l14_n82(x)
- else
- fun_l14_n747(x)
- end
-end
-
-def fun_l13_n91(x)
- if (x < 1)
- fun_l14_n374(x)
- else
- fun_l14_n738(x)
- end
-end
-
-def fun_l13_n92(x)
- if (x < 1)
- fun_l14_n124(x)
- else
- fun_l14_n673(x)
- end
-end
-
-def fun_l13_n93(x)
- if (x < 1)
- fun_l14_n405(x)
- else
- fun_l14_n562(x)
- end
-end
-
-def fun_l13_n94(x)
- if (x < 1)
- fun_l14_n766(x)
- else
- fun_l14_n466(x)
- end
-end
-
-def fun_l13_n95(x)
- if (x < 1)
- fun_l14_n908(x)
- else
- fun_l14_n208(x)
- end
-end
-
-def fun_l13_n96(x)
- if (x < 1)
- fun_l14_n439(x)
- else
- fun_l14_n964(x)
- end
-end
-
-def fun_l13_n97(x)
- if (x < 1)
- fun_l14_n529(x)
- else
- fun_l14_n374(x)
- end
-end
-
-def fun_l13_n98(x)
- if (x < 1)
- fun_l14_n723(x)
- else
- fun_l14_n464(x)
- end
-end
-
-def fun_l13_n99(x)
- if (x < 1)
- fun_l14_n849(x)
- else
- fun_l14_n951(x)
- end
-end
-
-def fun_l13_n100(x)
- if (x < 1)
- fun_l14_n797(x)
- else
- fun_l14_n421(x)
- end
-end
-
-def fun_l13_n101(x)
- if (x < 1)
- fun_l14_n989(x)
- else
- fun_l14_n392(x)
- end
-end
-
-def fun_l13_n102(x)
- if (x < 1)
- fun_l14_n8(x)
- else
- fun_l14_n913(x)
- end
-end
-
-def fun_l13_n103(x)
- if (x < 1)
- fun_l14_n498(x)
- else
- fun_l14_n248(x)
- end
-end
-
-def fun_l13_n104(x)
- if (x < 1)
- fun_l14_n989(x)
- else
- fun_l14_n83(x)
- end
-end
-
-def fun_l13_n105(x)
- if (x < 1)
- fun_l14_n943(x)
- else
- fun_l14_n358(x)
- end
-end
-
-def fun_l13_n106(x)
- if (x < 1)
- fun_l14_n252(x)
- else
- fun_l14_n626(x)
- end
-end
-
-def fun_l13_n107(x)
- if (x < 1)
- fun_l14_n495(x)
- else
- fun_l14_n627(x)
- end
-end
-
-def fun_l13_n108(x)
- if (x < 1)
- fun_l14_n286(x)
- else
- fun_l14_n500(x)
- end
-end
-
-def fun_l13_n109(x)
- if (x < 1)
- fun_l14_n927(x)
- else
- fun_l14_n627(x)
- end
-end
-
-def fun_l13_n110(x)
- if (x < 1)
- fun_l14_n103(x)
- else
- fun_l14_n319(x)
- end
-end
-
-def fun_l13_n111(x)
- if (x < 1)
- fun_l14_n730(x)
- else
- fun_l14_n960(x)
- end
-end
-
-def fun_l13_n112(x)
- if (x < 1)
- fun_l14_n188(x)
- else
- fun_l14_n145(x)
- end
-end
-
-def fun_l13_n113(x)
- if (x < 1)
- fun_l14_n361(x)
- else
- fun_l14_n707(x)
- end
-end
-
-def fun_l13_n114(x)
- if (x < 1)
- fun_l14_n629(x)
- else
- fun_l14_n536(x)
- end
-end
-
-def fun_l13_n115(x)
- if (x < 1)
- fun_l14_n276(x)
- else
- fun_l14_n244(x)
- end
-end
-
-def fun_l13_n116(x)
- if (x < 1)
- fun_l14_n512(x)
- else
- fun_l14_n578(x)
- end
-end
-
-def fun_l13_n117(x)
- if (x < 1)
- fun_l14_n448(x)
- else
- fun_l14_n437(x)
- end
-end
-
-def fun_l13_n118(x)
- if (x < 1)
- fun_l14_n855(x)
- else
- fun_l14_n617(x)
- end
-end
-
-def fun_l13_n119(x)
- if (x < 1)
- fun_l14_n467(x)
- else
- fun_l14_n594(x)
- end
-end
-
-def fun_l13_n120(x)
- if (x < 1)
- fun_l14_n54(x)
- else
- fun_l14_n765(x)
- end
-end
-
-def fun_l13_n121(x)
- if (x < 1)
- fun_l14_n700(x)
- else
- fun_l14_n189(x)
- end
-end
-
-def fun_l13_n122(x)
- if (x < 1)
- fun_l14_n731(x)
- else
- fun_l14_n469(x)
- end
-end
-
-def fun_l13_n123(x)
- if (x < 1)
- fun_l14_n6(x)
- else
- fun_l14_n451(x)
- end
-end
-
-def fun_l13_n124(x)
- if (x < 1)
- fun_l14_n402(x)
- else
- fun_l14_n445(x)
- end
-end
-
-def fun_l13_n125(x)
- if (x < 1)
- fun_l14_n412(x)
- else
- fun_l14_n551(x)
- end
-end
-
-def fun_l13_n126(x)
- if (x < 1)
- fun_l14_n295(x)
- else
- fun_l14_n180(x)
- end
-end
-
-def fun_l13_n127(x)
- if (x < 1)
- fun_l14_n873(x)
- else
- fun_l14_n209(x)
- end
-end
-
-def fun_l13_n128(x)
- if (x < 1)
- fun_l14_n181(x)
- else
- fun_l14_n198(x)
- end
-end
-
-def fun_l13_n129(x)
- if (x < 1)
- fun_l14_n817(x)
- else
- fun_l14_n894(x)
- end
-end
-
-def fun_l13_n130(x)
- if (x < 1)
- fun_l14_n306(x)
- else
- fun_l14_n429(x)
- end
-end
-
-def fun_l13_n131(x)
- if (x < 1)
- fun_l14_n573(x)
- else
- fun_l14_n120(x)
- end
-end
-
-def fun_l13_n132(x)
- if (x < 1)
- fun_l14_n433(x)
- else
- fun_l14_n668(x)
- end
-end
-
-def fun_l13_n133(x)
- if (x < 1)
- fun_l14_n653(x)
- else
- fun_l14_n934(x)
- end
-end
-
-def fun_l13_n134(x)
- if (x < 1)
- fun_l14_n280(x)
- else
- fun_l14_n533(x)
- end
-end
-
-def fun_l13_n135(x)
- if (x < 1)
- fun_l14_n471(x)
- else
- fun_l14_n612(x)
- end
-end
-
-def fun_l13_n136(x)
- if (x < 1)
- fun_l14_n55(x)
- else
- fun_l14_n684(x)
- end
-end
-
-def fun_l13_n137(x)
- if (x < 1)
- fun_l14_n458(x)
- else
- fun_l14_n107(x)
- end
-end
-
-def fun_l13_n138(x)
- if (x < 1)
- fun_l14_n415(x)
- else
- fun_l14_n189(x)
- end
-end
-
-def fun_l13_n139(x)
- if (x < 1)
- fun_l14_n877(x)
- else
- fun_l14_n862(x)
- end
-end
-
-def fun_l13_n140(x)
- if (x < 1)
- fun_l14_n471(x)
- else
- fun_l14_n533(x)
- end
-end
-
-def fun_l13_n141(x)
- if (x < 1)
- fun_l14_n817(x)
- else
- fun_l14_n121(x)
- end
-end
-
-def fun_l13_n142(x)
- if (x < 1)
- fun_l14_n523(x)
- else
- fun_l14_n894(x)
- end
-end
-
-def fun_l13_n143(x)
- if (x < 1)
- fun_l14_n893(x)
- else
- fun_l14_n187(x)
- end
-end
-
-def fun_l13_n144(x)
- if (x < 1)
- fun_l14_n921(x)
- else
- fun_l14_n253(x)
- end
-end
-
-def fun_l13_n145(x)
- if (x < 1)
- fun_l14_n0(x)
- else
- fun_l14_n608(x)
- end
-end
-
-def fun_l13_n146(x)
- if (x < 1)
- fun_l14_n83(x)
- else
- fun_l14_n450(x)
- end
-end
-
-def fun_l13_n147(x)
- if (x < 1)
- fun_l14_n689(x)
- else
- fun_l14_n19(x)
- end
-end
-
-def fun_l13_n148(x)
- if (x < 1)
- fun_l14_n922(x)
- else
- fun_l14_n417(x)
- end
-end
-
-def fun_l13_n149(x)
- if (x < 1)
- fun_l14_n449(x)
- else
- fun_l14_n273(x)
- end
-end
-
-def fun_l13_n150(x)
- if (x < 1)
- fun_l14_n601(x)
- else
- fun_l14_n442(x)
- end
-end
-
-def fun_l13_n151(x)
- if (x < 1)
- fun_l14_n96(x)
- else
- fun_l14_n552(x)
- end
-end
-
-def fun_l13_n152(x)
- if (x < 1)
- fun_l14_n667(x)
- else
- fun_l14_n273(x)
- end
-end
-
-def fun_l13_n153(x)
- if (x < 1)
- fun_l14_n445(x)
- else
- fun_l14_n81(x)
- end
-end
-
-def fun_l13_n154(x)
- if (x < 1)
- fun_l14_n906(x)
- else
- fun_l14_n960(x)
- end
-end
-
-def fun_l13_n155(x)
- if (x < 1)
- fun_l14_n781(x)
- else
- fun_l14_n763(x)
- end
-end
-
-def fun_l13_n156(x)
- if (x < 1)
- fun_l14_n201(x)
- else
- fun_l14_n886(x)
- end
-end
-
-def fun_l13_n157(x)
- if (x < 1)
- fun_l14_n926(x)
- else
- fun_l14_n852(x)
- end
-end
-
-def fun_l13_n158(x)
- if (x < 1)
- fun_l14_n114(x)
- else
- fun_l14_n23(x)
- end
-end
-
-def fun_l13_n159(x)
- if (x < 1)
- fun_l14_n967(x)
- else
- fun_l14_n885(x)
- end
-end
-
-def fun_l13_n160(x)
- if (x < 1)
- fun_l14_n563(x)
- else
- fun_l14_n309(x)
- end
-end
-
-def fun_l13_n161(x)
- if (x < 1)
- fun_l14_n26(x)
- else
- fun_l14_n232(x)
- end
-end
-
-def fun_l13_n162(x)
- if (x < 1)
- fun_l14_n212(x)
- else
- fun_l14_n147(x)
- end
-end
-
-def fun_l13_n163(x)
- if (x < 1)
- fun_l14_n841(x)
- else
- fun_l14_n636(x)
- end
-end
-
-def fun_l13_n164(x)
- if (x < 1)
- fun_l14_n405(x)
- else
- fun_l14_n709(x)
- end
-end
-
-def fun_l13_n165(x)
- if (x < 1)
- fun_l14_n803(x)
- else
- fun_l14_n398(x)
- end
-end
-
-def fun_l13_n166(x)
- if (x < 1)
- fun_l14_n112(x)
- else
- fun_l14_n197(x)
- end
-end
-
-def fun_l13_n167(x)
- if (x < 1)
- fun_l14_n414(x)
- else
- fun_l14_n509(x)
- end
-end
-
-def fun_l13_n168(x)
- if (x < 1)
- fun_l14_n585(x)
- else
- fun_l14_n166(x)
- end
-end
-
-def fun_l13_n169(x)
- if (x < 1)
- fun_l14_n653(x)
- else
- fun_l14_n581(x)
- end
-end
-
-def fun_l13_n170(x)
- if (x < 1)
- fun_l14_n291(x)
- else
- fun_l14_n520(x)
- end
-end
-
-def fun_l13_n171(x)
- if (x < 1)
- fun_l14_n920(x)
- else
- fun_l14_n599(x)
- end
-end
-
-def fun_l13_n172(x)
- if (x < 1)
- fun_l14_n125(x)
- else
- fun_l14_n84(x)
- end
-end
-
-def fun_l13_n173(x)
- if (x < 1)
- fun_l14_n635(x)
- else
- fun_l14_n224(x)
- end
-end
-
-def fun_l13_n174(x)
- if (x < 1)
- fun_l14_n23(x)
- else
- fun_l14_n922(x)
- end
-end
-
-def fun_l13_n175(x)
- if (x < 1)
- fun_l14_n736(x)
- else
- fun_l14_n685(x)
- end
-end
-
-def fun_l13_n176(x)
- if (x < 1)
- fun_l14_n235(x)
- else
- fun_l14_n157(x)
- end
-end
-
-def fun_l13_n177(x)
- if (x < 1)
- fun_l14_n284(x)
- else
- fun_l14_n601(x)
- end
-end
-
-def fun_l13_n178(x)
- if (x < 1)
- fun_l14_n785(x)
- else
- fun_l14_n498(x)
- end
-end
-
-def fun_l13_n179(x)
- if (x < 1)
- fun_l14_n416(x)
- else
- fun_l14_n624(x)
- end
-end
-
-def fun_l13_n180(x)
- if (x < 1)
- fun_l14_n747(x)
- else
- fun_l14_n824(x)
- end
-end
-
-def fun_l13_n181(x)
- if (x < 1)
- fun_l14_n658(x)
- else
- fun_l14_n814(x)
- end
-end
-
-def fun_l13_n182(x)
- if (x < 1)
- fun_l14_n723(x)
- else
- fun_l14_n365(x)
- end
-end
-
-def fun_l13_n183(x)
- if (x < 1)
- fun_l14_n772(x)
- else
- fun_l14_n831(x)
- end
-end
-
-def fun_l13_n184(x)
- if (x < 1)
- fun_l14_n560(x)
- else
- fun_l14_n933(x)
- end
-end
-
-def fun_l13_n185(x)
- if (x < 1)
- fun_l14_n550(x)
- else
- fun_l14_n716(x)
- end
-end
-
-def fun_l13_n186(x)
- if (x < 1)
- fun_l14_n72(x)
- else
- fun_l14_n224(x)
- end
-end
-
-def fun_l13_n187(x)
- if (x < 1)
- fun_l14_n910(x)
- else
- fun_l14_n31(x)
- end
-end
-
-def fun_l13_n188(x)
- if (x < 1)
- fun_l14_n792(x)
- else
- fun_l14_n69(x)
- end
-end
-
-def fun_l13_n189(x)
- if (x < 1)
- fun_l14_n42(x)
- else
- fun_l14_n942(x)
- end
-end
-
-def fun_l13_n190(x)
- if (x < 1)
- fun_l14_n520(x)
- else
- fun_l14_n826(x)
- end
-end
-
-def fun_l13_n191(x)
- if (x < 1)
- fun_l14_n723(x)
- else
- fun_l14_n5(x)
- end
-end
-
-def fun_l13_n192(x)
- if (x < 1)
- fun_l14_n448(x)
- else
- fun_l14_n243(x)
- end
-end
-
-def fun_l13_n193(x)
- if (x < 1)
- fun_l14_n722(x)
- else
- fun_l14_n450(x)
- end
-end
-
-def fun_l13_n194(x)
- if (x < 1)
- fun_l14_n31(x)
- else
- fun_l14_n968(x)
- end
-end
-
-def fun_l13_n195(x)
- if (x < 1)
- fun_l14_n381(x)
- else
- fun_l14_n964(x)
- end
-end
-
-def fun_l13_n196(x)
- if (x < 1)
- fun_l14_n797(x)
- else
- fun_l14_n216(x)
- end
-end
-
-def fun_l13_n197(x)
- if (x < 1)
- fun_l14_n351(x)
- else
- fun_l14_n439(x)
- end
-end
-
-def fun_l13_n198(x)
- if (x < 1)
- fun_l14_n983(x)
- else
- fun_l14_n363(x)
- end
-end
-
-def fun_l13_n199(x)
- if (x < 1)
- fun_l14_n939(x)
- else
- fun_l14_n806(x)
- end
-end
-
-def fun_l13_n200(x)
- if (x < 1)
- fun_l14_n710(x)
- else
- fun_l14_n513(x)
- end
-end
-
-def fun_l13_n201(x)
- if (x < 1)
- fun_l14_n431(x)
- else
- fun_l14_n81(x)
- end
-end
-
-def fun_l13_n202(x)
- if (x < 1)
- fun_l14_n41(x)
- else
- fun_l14_n916(x)
- end
-end
-
-def fun_l13_n203(x)
- if (x < 1)
- fun_l14_n368(x)
- else
- fun_l14_n626(x)
- end
-end
-
-def fun_l13_n204(x)
- if (x < 1)
- fun_l14_n505(x)
- else
- fun_l14_n750(x)
- end
-end
-
-def fun_l13_n205(x)
- if (x < 1)
- fun_l14_n263(x)
- else
- fun_l14_n636(x)
- end
-end
-
-def fun_l13_n206(x)
- if (x < 1)
- fun_l14_n589(x)
- else
- fun_l14_n215(x)
- end
-end
-
-def fun_l13_n207(x)
- if (x < 1)
- fun_l14_n435(x)
- else
- fun_l14_n69(x)
- end
-end
-
-def fun_l13_n208(x)
- if (x < 1)
- fun_l14_n114(x)
- else
- fun_l14_n222(x)
- end
-end
-
-def fun_l13_n209(x)
- if (x < 1)
- fun_l14_n784(x)
- else
- fun_l14_n337(x)
- end
-end
-
-def fun_l13_n210(x)
- if (x < 1)
- fun_l14_n434(x)
- else
- fun_l14_n79(x)
- end
-end
-
-def fun_l13_n211(x)
- if (x < 1)
- fun_l14_n152(x)
- else
- fun_l14_n428(x)
- end
-end
-
-def fun_l13_n212(x)
- if (x < 1)
- fun_l14_n24(x)
- else
- fun_l14_n101(x)
- end
-end
-
-def fun_l13_n213(x)
- if (x < 1)
- fun_l14_n880(x)
- else
- fun_l14_n672(x)
- end
-end
-
-def fun_l13_n214(x)
- if (x < 1)
- fun_l14_n824(x)
- else
- fun_l14_n351(x)
- end
-end
-
-def fun_l13_n215(x)
- if (x < 1)
- fun_l14_n657(x)
- else
- fun_l14_n822(x)
- end
-end
-
-def fun_l13_n216(x)
- if (x < 1)
- fun_l14_n603(x)
- else
- fun_l14_n993(x)
- end
-end
-
-def fun_l13_n217(x)
- if (x < 1)
- fun_l14_n593(x)
- else
- fun_l14_n808(x)
- end
-end
-
-def fun_l13_n218(x)
- if (x < 1)
- fun_l14_n30(x)
- else
- fun_l14_n632(x)
- end
-end
-
-def fun_l13_n219(x)
- if (x < 1)
- fun_l14_n175(x)
- else
- fun_l14_n124(x)
- end
-end
-
-def fun_l13_n220(x)
- if (x < 1)
- fun_l14_n878(x)
- else
- fun_l14_n342(x)
- end
-end
-
-def fun_l13_n221(x)
- if (x < 1)
- fun_l14_n857(x)
- else
- fun_l14_n204(x)
- end
-end
-
-def fun_l13_n222(x)
- if (x < 1)
- fun_l14_n29(x)
- else
- fun_l14_n573(x)
- end
-end
-
-def fun_l13_n223(x)
- if (x < 1)
- fun_l14_n329(x)
- else
- fun_l14_n35(x)
- end
-end
-
-def fun_l13_n224(x)
- if (x < 1)
- fun_l14_n31(x)
- else
- fun_l14_n323(x)
- end
-end
-
-def fun_l13_n225(x)
- if (x < 1)
- fun_l14_n921(x)
- else
- fun_l14_n161(x)
- end
-end
-
-def fun_l13_n226(x)
- if (x < 1)
- fun_l14_n599(x)
- else
- fun_l14_n566(x)
- end
-end
-
-def fun_l13_n227(x)
- if (x < 1)
- fun_l14_n994(x)
- else
- fun_l14_n549(x)
- end
-end
-
-def fun_l13_n228(x)
- if (x < 1)
- fun_l14_n989(x)
- else
- fun_l14_n212(x)
- end
-end
-
-def fun_l13_n229(x)
- if (x < 1)
- fun_l14_n22(x)
- else
- fun_l14_n656(x)
- end
-end
-
-def fun_l13_n230(x)
- if (x < 1)
- fun_l14_n232(x)
- else
- fun_l14_n658(x)
- end
-end
-
-def fun_l13_n231(x)
- if (x < 1)
- fun_l14_n522(x)
- else
- fun_l14_n596(x)
- end
-end
-
-def fun_l13_n232(x)
- if (x < 1)
- fun_l14_n296(x)
- else
- fun_l14_n53(x)
- end
-end
-
-def fun_l13_n233(x)
- if (x < 1)
- fun_l14_n958(x)
- else
- fun_l14_n818(x)
- end
-end
-
-def fun_l13_n234(x)
- if (x < 1)
- fun_l14_n267(x)
- else
- fun_l14_n299(x)
- end
-end
-
-def fun_l13_n235(x)
- if (x < 1)
- fun_l14_n776(x)
- else
- fun_l14_n99(x)
- end
-end
-
-def fun_l13_n236(x)
- if (x < 1)
- fun_l14_n204(x)
- else
- fun_l14_n34(x)
- end
-end
-
-def fun_l13_n237(x)
- if (x < 1)
- fun_l14_n704(x)
- else
- fun_l14_n808(x)
- end
-end
-
-def fun_l13_n238(x)
- if (x < 1)
- fun_l14_n82(x)
- else
- fun_l14_n352(x)
- end
-end
-
-def fun_l13_n239(x)
- if (x < 1)
- fun_l14_n382(x)
- else
- fun_l14_n447(x)
- end
-end
-
-def fun_l13_n240(x)
- if (x < 1)
- fun_l14_n200(x)
- else
- fun_l14_n623(x)
- end
-end
-
-def fun_l13_n241(x)
- if (x < 1)
- fun_l14_n563(x)
- else
- fun_l14_n259(x)
- end
-end
-
-def fun_l13_n242(x)
- if (x < 1)
- fun_l14_n126(x)
- else
- fun_l14_n337(x)
- end
-end
-
-def fun_l13_n243(x)
- if (x < 1)
- fun_l14_n287(x)
- else
- fun_l14_n441(x)
- end
-end
-
-def fun_l13_n244(x)
- if (x < 1)
- fun_l14_n271(x)
- else
- fun_l14_n961(x)
- end
-end
-
-def fun_l13_n245(x)
- if (x < 1)
- fun_l14_n677(x)
- else
- fun_l14_n310(x)
- end
-end
-
-def fun_l13_n246(x)
- if (x < 1)
- fun_l14_n504(x)
- else
- fun_l14_n504(x)
- end
-end
-
-def fun_l13_n247(x)
- if (x < 1)
- fun_l14_n61(x)
- else
- fun_l14_n560(x)
- end
-end
-
-def fun_l13_n248(x)
- if (x < 1)
- fun_l14_n813(x)
- else
- fun_l14_n337(x)
- end
-end
-
-def fun_l13_n249(x)
- if (x < 1)
- fun_l14_n89(x)
- else
- fun_l14_n733(x)
- end
-end
-
-def fun_l13_n250(x)
- if (x < 1)
- fun_l14_n203(x)
- else
- fun_l14_n342(x)
- end
-end
-
-def fun_l13_n251(x)
- if (x < 1)
- fun_l14_n605(x)
- else
- fun_l14_n767(x)
- end
-end
-
-def fun_l13_n252(x)
- if (x < 1)
- fun_l14_n35(x)
- else
- fun_l14_n338(x)
- end
-end
-
-def fun_l13_n253(x)
- if (x < 1)
- fun_l14_n894(x)
- else
- fun_l14_n905(x)
- end
-end
-
-def fun_l13_n254(x)
- if (x < 1)
- fun_l14_n516(x)
- else
- fun_l14_n832(x)
- end
-end
-
-def fun_l13_n255(x)
- if (x < 1)
- fun_l14_n106(x)
- else
- fun_l14_n672(x)
- end
-end
-
-def fun_l13_n256(x)
- if (x < 1)
- fun_l14_n978(x)
- else
- fun_l14_n940(x)
- end
-end
-
-def fun_l13_n257(x)
- if (x < 1)
- fun_l14_n808(x)
- else
- fun_l14_n906(x)
- end
-end
-
-def fun_l13_n258(x)
- if (x < 1)
- fun_l14_n435(x)
- else
- fun_l14_n55(x)
- end
-end
-
-def fun_l13_n259(x)
- if (x < 1)
- fun_l14_n981(x)
- else
- fun_l14_n550(x)
- end
-end
-
-def fun_l13_n260(x)
- if (x < 1)
- fun_l14_n689(x)
- else
- fun_l14_n533(x)
- end
-end
-
-def fun_l13_n261(x)
- if (x < 1)
- fun_l14_n995(x)
- else
- fun_l14_n174(x)
- end
-end
-
-def fun_l13_n262(x)
- if (x < 1)
- fun_l14_n161(x)
- else
- fun_l14_n357(x)
- end
-end
-
-def fun_l13_n263(x)
- if (x < 1)
- fun_l14_n248(x)
- else
- fun_l14_n509(x)
- end
-end
-
-def fun_l13_n264(x)
- if (x < 1)
- fun_l14_n521(x)
- else
- fun_l14_n41(x)
- end
-end
-
-def fun_l13_n265(x)
- if (x < 1)
- fun_l14_n771(x)
- else
- fun_l14_n387(x)
- end
-end
-
-def fun_l13_n266(x)
- if (x < 1)
- fun_l14_n149(x)
- else
- fun_l14_n814(x)
- end
-end
-
-def fun_l13_n267(x)
- if (x < 1)
- fun_l14_n958(x)
- else
- fun_l14_n172(x)
- end
-end
-
-def fun_l13_n268(x)
- if (x < 1)
- fun_l14_n167(x)
- else
- fun_l14_n889(x)
- end
-end
-
-def fun_l13_n269(x)
- if (x < 1)
- fun_l14_n321(x)
- else
- fun_l14_n152(x)
- end
-end
-
-def fun_l13_n270(x)
- if (x < 1)
- fun_l14_n851(x)
- else
- fun_l14_n793(x)
- end
-end
-
-def fun_l13_n271(x)
- if (x < 1)
- fun_l14_n306(x)
- else
- fun_l14_n843(x)
- end
-end
-
-def fun_l13_n272(x)
- if (x < 1)
- fun_l14_n499(x)
- else
- fun_l14_n118(x)
- end
-end
-
-def fun_l13_n273(x)
- if (x < 1)
- fun_l14_n958(x)
- else
- fun_l14_n597(x)
- end
-end
-
-def fun_l13_n274(x)
- if (x < 1)
- fun_l14_n884(x)
- else
- fun_l14_n23(x)
- end
-end
-
-def fun_l13_n275(x)
- if (x < 1)
- fun_l14_n203(x)
- else
- fun_l14_n796(x)
- end
-end
-
-def fun_l13_n276(x)
- if (x < 1)
- fun_l14_n944(x)
- else
- fun_l14_n239(x)
- end
-end
-
-def fun_l13_n277(x)
- if (x < 1)
- fun_l14_n511(x)
- else
- fun_l14_n464(x)
- end
-end
-
-def fun_l13_n278(x)
- if (x < 1)
- fun_l14_n906(x)
- else
- fun_l14_n713(x)
- end
-end
-
-def fun_l13_n279(x)
- if (x < 1)
- fun_l14_n872(x)
- else
- fun_l14_n77(x)
- end
-end
-
-def fun_l13_n280(x)
- if (x < 1)
- fun_l14_n888(x)
- else
- fun_l14_n117(x)
- end
-end
-
-def fun_l13_n281(x)
- if (x < 1)
- fun_l14_n298(x)
- else
- fun_l14_n695(x)
- end
-end
-
-def fun_l13_n282(x)
- if (x < 1)
- fun_l14_n740(x)
- else
- fun_l14_n668(x)
- end
-end
-
-def fun_l13_n283(x)
- if (x < 1)
- fun_l14_n438(x)
- else
- fun_l14_n322(x)
- end
-end
-
-def fun_l13_n284(x)
- if (x < 1)
- fun_l14_n39(x)
- else
- fun_l14_n39(x)
- end
-end
-
-def fun_l13_n285(x)
- if (x < 1)
- fun_l14_n271(x)
- else
- fun_l14_n984(x)
- end
-end
-
-def fun_l13_n286(x)
- if (x < 1)
- fun_l14_n278(x)
- else
- fun_l14_n453(x)
- end
-end
-
-def fun_l13_n287(x)
- if (x < 1)
- fun_l14_n303(x)
- else
- fun_l14_n812(x)
- end
-end
-
-def fun_l13_n288(x)
- if (x < 1)
- fun_l14_n891(x)
- else
- fun_l14_n843(x)
- end
-end
-
-def fun_l13_n289(x)
- if (x < 1)
- fun_l14_n672(x)
- else
- fun_l14_n543(x)
- end
-end
-
-def fun_l13_n290(x)
- if (x < 1)
- fun_l14_n115(x)
- else
- fun_l14_n33(x)
- end
-end
-
-def fun_l13_n291(x)
- if (x < 1)
- fun_l14_n467(x)
- else
- fun_l14_n427(x)
- end
-end
-
-def fun_l13_n292(x)
- if (x < 1)
- fun_l14_n528(x)
- else
- fun_l14_n51(x)
- end
-end
-
-def fun_l13_n293(x)
- if (x < 1)
- fun_l14_n50(x)
- else
- fun_l14_n917(x)
- end
-end
-
-def fun_l13_n294(x)
- if (x < 1)
- fun_l14_n245(x)
- else
- fun_l14_n289(x)
- end
-end
-
-def fun_l13_n295(x)
- if (x < 1)
- fun_l14_n108(x)
- else
- fun_l14_n772(x)
- end
-end
-
-def fun_l13_n296(x)
- if (x < 1)
- fun_l14_n451(x)
- else
- fun_l14_n127(x)
- end
-end
-
-def fun_l13_n297(x)
- if (x < 1)
- fun_l14_n374(x)
- else
- fun_l14_n20(x)
- end
-end
-
-def fun_l13_n298(x)
- if (x < 1)
- fun_l14_n588(x)
- else
- fun_l14_n95(x)
- end
-end
-
-def fun_l13_n299(x)
- if (x < 1)
- fun_l14_n33(x)
- else
- fun_l14_n146(x)
- end
-end
-
-def fun_l13_n300(x)
- if (x < 1)
- fun_l14_n812(x)
- else
- fun_l14_n373(x)
- end
-end
-
-def fun_l13_n301(x)
- if (x < 1)
- fun_l14_n39(x)
- else
- fun_l14_n228(x)
- end
-end
-
-def fun_l13_n302(x)
- if (x < 1)
- fun_l14_n992(x)
- else
- fun_l14_n578(x)
- end
-end
-
-def fun_l13_n303(x)
- if (x < 1)
- fun_l14_n106(x)
- else
- fun_l14_n413(x)
- end
-end
-
-def fun_l13_n304(x)
- if (x < 1)
- fun_l14_n463(x)
- else
- fun_l14_n884(x)
- end
-end
-
-def fun_l13_n305(x)
- if (x < 1)
- fun_l14_n754(x)
- else
- fun_l14_n114(x)
- end
-end
-
-def fun_l13_n306(x)
- if (x < 1)
- fun_l14_n960(x)
- else
- fun_l14_n596(x)
- end
-end
-
-def fun_l13_n307(x)
- if (x < 1)
- fun_l14_n858(x)
- else
- fun_l14_n488(x)
- end
-end
-
-def fun_l13_n308(x)
- if (x < 1)
- fun_l14_n968(x)
- else
- fun_l14_n507(x)
- end
-end
-
-def fun_l13_n309(x)
- if (x < 1)
- fun_l14_n956(x)
- else
- fun_l14_n125(x)
- end
-end
-
-def fun_l13_n310(x)
- if (x < 1)
- fun_l14_n190(x)
- else
- fun_l14_n817(x)
- end
-end
-
-def fun_l13_n311(x)
- if (x < 1)
- fun_l14_n574(x)
- else
- fun_l14_n447(x)
- end
-end
-
-def fun_l13_n312(x)
- if (x < 1)
- fun_l14_n403(x)
- else
- fun_l14_n591(x)
- end
-end
-
-def fun_l13_n313(x)
- if (x < 1)
- fun_l14_n499(x)
- else
- fun_l14_n458(x)
- end
-end
-
-def fun_l13_n314(x)
- if (x < 1)
- fun_l14_n994(x)
- else
- fun_l14_n77(x)
- end
-end
-
-def fun_l13_n315(x)
- if (x < 1)
- fun_l14_n421(x)
- else
- fun_l14_n810(x)
- end
-end
-
-def fun_l13_n316(x)
- if (x < 1)
- fun_l14_n304(x)
- else
- fun_l14_n785(x)
- end
-end
-
-def fun_l13_n317(x)
- if (x < 1)
- fun_l14_n624(x)
- else
- fun_l14_n399(x)
- end
-end
-
-def fun_l13_n318(x)
- if (x < 1)
- fun_l14_n882(x)
- else
- fun_l14_n3(x)
- end
-end
-
-def fun_l13_n319(x)
- if (x < 1)
- fun_l14_n267(x)
- else
- fun_l14_n955(x)
- end
-end
-
-def fun_l13_n320(x)
- if (x < 1)
- fun_l14_n690(x)
- else
- fun_l14_n281(x)
- end
-end
-
-def fun_l13_n321(x)
- if (x < 1)
- fun_l14_n453(x)
- else
- fun_l14_n969(x)
- end
-end
-
-def fun_l13_n322(x)
- if (x < 1)
- fun_l14_n297(x)
- else
- fun_l14_n50(x)
- end
-end
-
-def fun_l13_n323(x)
- if (x < 1)
- fun_l14_n342(x)
- else
- fun_l14_n618(x)
- end
-end
-
-def fun_l13_n324(x)
- if (x < 1)
- fun_l14_n74(x)
- else
- fun_l14_n638(x)
- end
-end
-
-def fun_l13_n325(x)
- if (x < 1)
- fun_l14_n218(x)
- else
- fun_l14_n169(x)
- end
-end
-
-def fun_l13_n326(x)
- if (x < 1)
- fun_l14_n128(x)
- else
- fun_l14_n504(x)
- end
-end
-
-def fun_l13_n327(x)
- if (x < 1)
- fun_l14_n612(x)
- else
- fun_l14_n62(x)
- end
-end
-
-def fun_l13_n328(x)
- if (x < 1)
- fun_l14_n83(x)
- else
- fun_l14_n67(x)
- end
-end
-
-def fun_l13_n329(x)
- if (x < 1)
- fun_l14_n515(x)
- else
- fun_l14_n15(x)
- end
-end
-
-def fun_l13_n330(x)
- if (x < 1)
- fun_l14_n448(x)
- else
- fun_l14_n951(x)
- end
-end
-
-def fun_l13_n331(x)
- if (x < 1)
- fun_l14_n804(x)
- else
- fun_l14_n315(x)
- end
-end
-
-def fun_l13_n332(x)
- if (x < 1)
- fun_l14_n522(x)
- else
- fun_l14_n761(x)
- end
-end
-
-def fun_l13_n333(x)
- if (x < 1)
- fun_l14_n421(x)
- else
- fun_l14_n542(x)
- end
-end
-
-def fun_l13_n334(x)
- if (x < 1)
- fun_l14_n952(x)
- else
- fun_l14_n390(x)
- end
-end
-
-def fun_l13_n335(x)
- if (x < 1)
- fun_l14_n324(x)
- else
- fun_l14_n60(x)
- end
-end
-
-def fun_l13_n336(x)
- if (x < 1)
- fun_l14_n887(x)
- else
- fun_l14_n474(x)
- end
-end
-
-def fun_l13_n337(x)
- if (x < 1)
- fun_l14_n355(x)
- else
- fun_l14_n840(x)
- end
-end
-
-def fun_l13_n338(x)
- if (x < 1)
- fun_l14_n21(x)
- else
- fun_l14_n133(x)
- end
-end
-
-def fun_l13_n339(x)
- if (x < 1)
- fun_l14_n12(x)
- else
- fun_l14_n30(x)
- end
-end
-
-def fun_l13_n340(x)
- if (x < 1)
- fun_l14_n678(x)
- else
- fun_l14_n583(x)
- end
-end
-
-def fun_l13_n341(x)
- if (x < 1)
- fun_l14_n289(x)
- else
- fun_l14_n490(x)
- end
-end
-
-def fun_l13_n342(x)
- if (x < 1)
- fun_l14_n232(x)
- else
- fun_l14_n288(x)
- end
-end
-
-def fun_l13_n343(x)
- if (x < 1)
- fun_l14_n744(x)
- else
- fun_l14_n963(x)
- end
-end
-
-def fun_l13_n344(x)
- if (x < 1)
- fun_l14_n651(x)
- else
- fun_l14_n377(x)
- end
-end
-
-def fun_l13_n345(x)
- if (x < 1)
- fun_l14_n13(x)
- else
- fun_l14_n749(x)
- end
-end
-
-def fun_l13_n346(x)
- if (x < 1)
- fun_l14_n789(x)
- else
- fun_l14_n621(x)
- end
-end
-
-def fun_l13_n347(x)
- if (x < 1)
- fun_l14_n346(x)
- else
- fun_l14_n663(x)
- end
-end
-
-def fun_l13_n348(x)
- if (x < 1)
- fun_l14_n252(x)
- else
- fun_l14_n202(x)
- end
-end
-
-def fun_l13_n349(x)
- if (x < 1)
- fun_l14_n919(x)
- else
- fun_l14_n997(x)
- end
-end
-
-def fun_l13_n350(x)
- if (x < 1)
- fun_l14_n472(x)
- else
- fun_l14_n900(x)
- end
-end
-
-def fun_l13_n351(x)
- if (x < 1)
- fun_l14_n954(x)
- else
- fun_l14_n606(x)
- end
-end
-
-def fun_l13_n352(x)
- if (x < 1)
- fun_l14_n227(x)
- else
- fun_l14_n344(x)
- end
-end
-
-def fun_l13_n353(x)
- if (x < 1)
- fun_l14_n110(x)
- else
- fun_l14_n266(x)
- end
-end
-
-def fun_l13_n354(x)
- if (x < 1)
- fun_l14_n840(x)
- else
- fun_l14_n905(x)
- end
-end
-
-def fun_l13_n355(x)
- if (x < 1)
- fun_l14_n950(x)
- else
- fun_l14_n307(x)
- end
-end
-
-def fun_l13_n356(x)
- if (x < 1)
- fun_l14_n572(x)
- else
- fun_l14_n480(x)
- end
-end
-
-def fun_l13_n357(x)
- if (x < 1)
- fun_l14_n122(x)
- else
- fun_l14_n408(x)
- end
-end
-
-def fun_l13_n358(x)
- if (x < 1)
- fun_l14_n105(x)
- else
- fun_l14_n173(x)
- end
-end
-
-def fun_l13_n359(x)
- if (x < 1)
- fun_l14_n358(x)
- else
- fun_l14_n336(x)
- end
-end
-
-def fun_l13_n360(x)
- if (x < 1)
- fun_l14_n457(x)
- else
- fun_l14_n434(x)
- end
-end
-
-def fun_l13_n361(x)
- if (x < 1)
- fun_l14_n679(x)
- else
- fun_l14_n771(x)
- end
-end
-
-def fun_l13_n362(x)
- if (x < 1)
- fun_l14_n419(x)
- else
- fun_l14_n909(x)
- end
-end
-
-def fun_l13_n363(x)
- if (x < 1)
- fun_l14_n672(x)
- else
- fun_l14_n132(x)
- end
-end
-
-def fun_l13_n364(x)
- if (x < 1)
- fun_l14_n947(x)
- else
- fun_l14_n328(x)
- end
-end
-
-def fun_l13_n365(x)
- if (x < 1)
- fun_l14_n959(x)
- else
- fun_l14_n122(x)
- end
-end
-
-def fun_l13_n366(x)
- if (x < 1)
- fun_l14_n534(x)
- else
- fun_l14_n611(x)
- end
-end
-
-def fun_l13_n367(x)
- if (x < 1)
- fun_l14_n349(x)
- else
- fun_l14_n149(x)
- end
-end
-
-def fun_l13_n368(x)
- if (x < 1)
- fun_l14_n94(x)
- else
- fun_l14_n870(x)
- end
-end
-
-def fun_l13_n369(x)
- if (x < 1)
- fun_l14_n774(x)
- else
- fun_l14_n696(x)
- end
-end
-
-def fun_l13_n370(x)
- if (x < 1)
- fun_l14_n311(x)
- else
- fun_l14_n479(x)
- end
-end
-
-def fun_l13_n371(x)
- if (x < 1)
- fun_l14_n650(x)
- else
- fun_l14_n66(x)
- end
-end
-
-def fun_l13_n372(x)
- if (x < 1)
- fun_l14_n825(x)
- else
- fun_l14_n910(x)
- end
-end
-
-def fun_l13_n373(x)
- if (x < 1)
- fun_l14_n454(x)
- else
- fun_l14_n492(x)
- end
-end
-
-def fun_l13_n374(x)
- if (x < 1)
- fun_l14_n785(x)
- else
- fun_l14_n352(x)
- end
-end
-
-def fun_l13_n375(x)
- if (x < 1)
- fun_l14_n124(x)
- else
- fun_l14_n664(x)
- end
-end
-
-def fun_l13_n376(x)
- if (x < 1)
- fun_l14_n427(x)
- else
- fun_l14_n615(x)
- end
-end
-
-def fun_l13_n377(x)
- if (x < 1)
- fun_l14_n926(x)
- else
- fun_l14_n307(x)
- end
-end
-
-def fun_l13_n378(x)
- if (x < 1)
- fun_l14_n575(x)
- else
- fun_l14_n561(x)
- end
-end
-
-def fun_l13_n379(x)
- if (x < 1)
- fun_l14_n497(x)
- else
- fun_l14_n690(x)
- end
-end
-
-def fun_l13_n380(x)
- if (x < 1)
- fun_l14_n350(x)
- else
- fun_l14_n641(x)
- end
-end
-
-def fun_l13_n381(x)
- if (x < 1)
- fun_l14_n292(x)
- else
- fun_l14_n739(x)
- end
-end
-
-def fun_l13_n382(x)
- if (x < 1)
- fun_l14_n302(x)
- else
- fun_l14_n583(x)
- end
-end
-
-def fun_l13_n383(x)
- if (x < 1)
- fun_l14_n36(x)
- else
- fun_l14_n603(x)
- end
-end
-
-def fun_l13_n384(x)
- if (x < 1)
- fun_l14_n953(x)
- else
- fun_l14_n394(x)
- end
-end
-
-def fun_l13_n385(x)
- if (x < 1)
- fun_l14_n107(x)
- else
- fun_l14_n149(x)
- end
-end
-
-def fun_l13_n386(x)
- if (x < 1)
- fun_l14_n77(x)
- else
- fun_l14_n880(x)
- end
-end
-
-def fun_l13_n387(x)
- if (x < 1)
- fun_l14_n670(x)
- else
- fun_l14_n649(x)
- end
-end
-
-def fun_l13_n388(x)
- if (x < 1)
- fun_l14_n277(x)
- else
- fun_l14_n922(x)
- end
-end
-
-def fun_l13_n389(x)
- if (x < 1)
- fun_l14_n981(x)
- else
- fun_l14_n427(x)
- end
-end
-
-def fun_l13_n390(x)
- if (x < 1)
- fun_l14_n411(x)
- else
- fun_l14_n804(x)
- end
-end
-
-def fun_l13_n391(x)
- if (x < 1)
- fun_l14_n52(x)
- else
- fun_l14_n770(x)
- end
-end
-
-def fun_l13_n392(x)
- if (x < 1)
- fun_l14_n592(x)
- else
- fun_l14_n672(x)
- end
-end
-
-def fun_l13_n393(x)
- if (x < 1)
- fun_l14_n274(x)
- else
- fun_l14_n778(x)
- end
-end
-
-def fun_l13_n394(x)
- if (x < 1)
- fun_l14_n708(x)
- else
- fun_l14_n262(x)
- end
-end
-
-def fun_l13_n395(x)
- if (x < 1)
- fun_l14_n449(x)
- else
- fun_l14_n273(x)
- end
-end
-
-def fun_l13_n396(x)
- if (x < 1)
- fun_l14_n567(x)
- else
- fun_l14_n148(x)
- end
-end
-
-def fun_l13_n397(x)
- if (x < 1)
- fun_l14_n127(x)
- else
- fun_l14_n309(x)
- end
-end
-
-def fun_l13_n398(x)
- if (x < 1)
- fun_l14_n150(x)
- else
- fun_l14_n540(x)
- end
-end
-
-def fun_l13_n399(x)
- if (x < 1)
- fun_l14_n791(x)
- else
- fun_l14_n517(x)
- end
-end
-
-def fun_l13_n400(x)
- if (x < 1)
- fun_l14_n152(x)
- else
- fun_l14_n319(x)
- end
-end
-
-def fun_l13_n401(x)
- if (x < 1)
- fun_l14_n911(x)
- else
- fun_l14_n544(x)
- end
-end
-
-def fun_l13_n402(x)
- if (x < 1)
- fun_l14_n915(x)
- else
- fun_l14_n208(x)
- end
-end
-
-def fun_l13_n403(x)
- if (x < 1)
- fun_l14_n452(x)
- else
- fun_l14_n62(x)
- end
-end
-
-def fun_l13_n404(x)
- if (x < 1)
- fun_l14_n823(x)
- else
- fun_l14_n913(x)
- end
-end
-
-def fun_l13_n405(x)
- if (x < 1)
- fun_l14_n808(x)
- else
- fun_l14_n49(x)
- end
-end
-
-def fun_l13_n406(x)
- if (x < 1)
- fun_l14_n498(x)
- else
- fun_l14_n470(x)
- end
-end
-
-def fun_l13_n407(x)
- if (x < 1)
- fun_l14_n314(x)
- else
- fun_l14_n248(x)
- end
-end
-
-def fun_l13_n408(x)
- if (x < 1)
- fun_l14_n61(x)
- else
- fun_l14_n190(x)
- end
-end
-
-def fun_l13_n409(x)
- if (x < 1)
- fun_l14_n126(x)
- else
- fun_l14_n505(x)
- end
-end
-
-def fun_l13_n410(x)
- if (x < 1)
- fun_l14_n646(x)
- else
- fun_l14_n319(x)
- end
-end
-
-def fun_l13_n411(x)
- if (x < 1)
- fun_l14_n741(x)
- else
- fun_l14_n979(x)
- end
-end
-
-def fun_l13_n412(x)
- if (x < 1)
- fun_l14_n840(x)
- else
- fun_l14_n211(x)
- end
-end
-
-def fun_l13_n413(x)
- if (x < 1)
- fun_l14_n217(x)
- else
- fun_l14_n98(x)
- end
-end
-
-def fun_l13_n414(x)
- if (x < 1)
- fun_l14_n398(x)
- else
- fun_l14_n701(x)
- end
-end
-
-def fun_l13_n415(x)
- if (x < 1)
- fun_l14_n470(x)
- else
- fun_l14_n394(x)
- end
-end
-
-def fun_l13_n416(x)
- if (x < 1)
- fun_l14_n113(x)
- else
- fun_l14_n792(x)
- end
-end
-
-def fun_l13_n417(x)
- if (x < 1)
- fun_l14_n969(x)
- else
- fun_l14_n99(x)
- end
-end
-
-def fun_l13_n418(x)
- if (x < 1)
- fun_l14_n54(x)
- else
- fun_l14_n800(x)
- end
-end
-
-def fun_l13_n419(x)
- if (x < 1)
- fun_l14_n763(x)
- else
- fun_l14_n510(x)
- end
-end
-
-def fun_l13_n420(x)
- if (x < 1)
- fun_l14_n660(x)
- else
- fun_l14_n904(x)
- end
-end
-
-def fun_l13_n421(x)
- if (x < 1)
- fun_l14_n345(x)
- else
- fun_l14_n200(x)
- end
-end
-
-def fun_l13_n422(x)
- if (x < 1)
- fun_l14_n831(x)
- else
- fun_l14_n35(x)
- end
-end
-
-def fun_l13_n423(x)
- if (x < 1)
- fun_l14_n644(x)
- else
- fun_l14_n963(x)
- end
-end
-
-def fun_l13_n424(x)
- if (x < 1)
- fun_l14_n0(x)
- else
- fun_l14_n625(x)
- end
-end
-
-def fun_l13_n425(x)
- if (x < 1)
- fun_l14_n186(x)
- else
- fun_l14_n409(x)
- end
-end
-
-def fun_l13_n426(x)
- if (x < 1)
- fun_l14_n869(x)
- else
- fun_l14_n852(x)
- end
-end
-
-def fun_l13_n427(x)
- if (x < 1)
- fun_l14_n322(x)
- else
- fun_l14_n160(x)
- end
-end
-
-def fun_l13_n428(x)
- if (x < 1)
- fun_l14_n974(x)
- else
- fun_l14_n139(x)
- end
-end
-
-def fun_l13_n429(x)
- if (x < 1)
- fun_l14_n570(x)
- else
- fun_l14_n10(x)
- end
-end
-
-def fun_l13_n430(x)
- if (x < 1)
- fun_l14_n199(x)
- else
- fun_l14_n829(x)
- end
-end
-
-def fun_l13_n431(x)
- if (x < 1)
- fun_l14_n700(x)
- else
- fun_l14_n362(x)
- end
-end
-
-def fun_l13_n432(x)
- if (x < 1)
- fun_l14_n925(x)
- else
- fun_l14_n365(x)
- end
-end
-
-def fun_l13_n433(x)
- if (x < 1)
- fun_l14_n837(x)
- else
- fun_l14_n119(x)
- end
-end
-
-def fun_l13_n434(x)
- if (x < 1)
- fun_l14_n355(x)
- else
- fun_l14_n374(x)
- end
-end
-
-def fun_l13_n435(x)
- if (x < 1)
- fun_l14_n126(x)
- else
- fun_l14_n568(x)
- end
-end
-
-def fun_l13_n436(x)
- if (x < 1)
- fun_l14_n468(x)
- else
- fun_l14_n299(x)
- end
-end
-
-def fun_l13_n437(x)
- if (x < 1)
- fun_l14_n667(x)
- else
- fun_l14_n795(x)
- end
-end
-
-def fun_l13_n438(x)
- if (x < 1)
- fun_l14_n989(x)
- else
- fun_l14_n484(x)
- end
-end
-
-def fun_l13_n439(x)
- if (x < 1)
- fun_l14_n109(x)
- else
- fun_l14_n534(x)
- end
-end
-
-def fun_l13_n440(x)
- if (x < 1)
- fun_l14_n999(x)
- else
- fun_l14_n69(x)
- end
-end
-
-def fun_l13_n441(x)
- if (x < 1)
- fun_l14_n616(x)
- else
- fun_l14_n794(x)
- end
-end
-
-def fun_l13_n442(x)
- if (x < 1)
- fun_l14_n719(x)
- else
- fun_l14_n967(x)
- end
-end
-
-def fun_l13_n443(x)
- if (x < 1)
- fun_l14_n279(x)
- else
- fun_l14_n240(x)
- end
-end
-
-def fun_l13_n444(x)
- if (x < 1)
- fun_l14_n660(x)
- else
- fun_l14_n146(x)
- end
-end
-
-def fun_l13_n445(x)
- if (x < 1)
- fun_l14_n164(x)
- else
- fun_l14_n903(x)
- end
-end
-
-def fun_l13_n446(x)
- if (x < 1)
- fun_l14_n474(x)
- else
- fun_l14_n137(x)
- end
-end
-
-def fun_l13_n447(x)
- if (x < 1)
- fun_l14_n198(x)
- else
- fun_l14_n66(x)
- end
-end
-
-def fun_l13_n448(x)
- if (x < 1)
- fun_l14_n948(x)
- else
- fun_l14_n682(x)
- end
-end
-
-def fun_l13_n449(x)
- if (x < 1)
- fun_l14_n545(x)
- else
- fun_l14_n928(x)
- end
-end
-
-def fun_l13_n450(x)
- if (x < 1)
- fun_l14_n822(x)
- else
- fun_l14_n846(x)
- end
-end
-
-def fun_l13_n451(x)
- if (x < 1)
- fun_l14_n514(x)
- else
- fun_l14_n54(x)
- end
-end
-
-def fun_l13_n452(x)
- if (x < 1)
- fun_l14_n539(x)
- else
- fun_l14_n199(x)
- end
-end
-
-def fun_l13_n453(x)
- if (x < 1)
- fun_l14_n917(x)
- else
- fun_l14_n173(x)
- end
-end
-
-def fun_l13_n454(x)
- if (x < 1)
- fun_l14_n924(x)
- else
- fun_l14_n51(x)
- end
-end
-
-def fun_l13_n455(x)
- if (x < 1)
- fun_l14_n675(x)
- else
- fun_l14_n139(x)
- end
-end
-
-def fun_l13_n456(x)
- if (x < 1)
- fun_l14_n335(x)
- else
- fun_l14_n138(x)
- end
-end
-
-def fun_l13_n457(x)
- if (x < 1)
- fun_l14_n112(x)
- else
- fun_l14_n707(x)
- end
-end
-
-def fun_l13_n458(x)
- if (x < 1)
- fun_l14_n784(x)
- else
- fun_l14_n278(x)
- end
-end
-
-def fun_l13_n459(x)
- if (x < 1)
- fun_l14_n165(x)
- else
- fun_l14_n985(x)
- end
-end
-
-def fun_l13_n460(x)
- if (x < 1)
- fun_l14_n843(x)
- else
- fun_l14_n262(x)
- end
-end
-
-def fun_l13_n461(x)
- if (x < 1)
- fun_l14_n492(x)
- else
- fun_l14_n21(x)
- end
-end
-
-def fun_l13_n462(x)
- if (x < 1)
- fun_l14_n864(x)
- else
- fun_l14_n248(x)
- end
-end
-
-def fun_l13_n463(x)
- if (x < 1)
- fun_l14_n940(x)
- else
- fun_l14_n713(x)
- end
-end
-
-def fun_l13_n464(x)
- if (x < 1)
- fun_l14_n8(x)
- else
- fun_l14_n771(x)
- end
-end
-
-def fun_l13_n465(x)
- if (x < 1)
- fun_l14_n83(x)
- else
- fun_l14_n663(x)
- end
-end
-
-def fun_l13_n466(x)
- if (x < 1)
- fun_l14_n411(x)
- else
- fun_l14_n570(x)
- end
-end
-
-def fun_l13_n467(x)
- if (x < 1)
- fun_l14_n464(x)
- else
- fun_l14_n497(x)
- end
-end
-
-def fun_l13_n468(x)
- if (x < 1)
- fun_l14_n49(x)
- else
- fun_l14_n153(x)
- end
-end
-
-def fun_l13_n469(x)
- if (x < 1)
- fun_l14_n33(x)
- else
- fun_l14_n562(x)
- end
-end
-
-def fun_l13_n470(x)
- if (x < 1)
- fun_l14_n207(x)
- else
- fun_l14_n328(x)
- end
-end
-
-def fun_l13_n471(x)
- if (x < 1)
- fun_l14_n356(x)
- else
- fun_l14_n834(x)
- end
-end
-
-def fun_l13_n472(x)
- if (x < 1)
- fun_l14_n46(x)
- else
- fun_l14_n842(x)
- end
-end
-
-def fun_l13_n473(x)
- if (x < 1)
- fun_l14_n14(x)
- else
- fun_l14_n488(x)
- end
-end
-
-def fun_l13_n474(x)
- if (x < 1)
- fun_l14_n307(x)
- else
- fun_l14_n647(x)
- end
-end
-
-def fun_l13_n475(x)
- if (x < 1)
- fun_l14_n474(x)
- else
- fun_l14_n369(x)
- end
-end
-
-def fun_l13_n476(x)
- if (x < 1)
- fun_l14_n471(x)
- else
- fun_l14_n956(x)
- end
-end
-
-def fun_l13_n477(x)
- if (x < 1)
- fun_l14_n368(x)
- else
- fun_l14_n478(x)
- end
-end
-
-def fun_l13_n478(x)
- if (x < 1)
- fun_l14_n377(x)
- else
- fun_l14_n675(x)
- end
-end
-
-def fun_l13_n479(x)
- if (x < 1)
- fun_l14_n370(x)
- else
- fun_l14_n819(x)
- end
-end
-
-def fun_l13_n480(x)
- if (x < 1)
- fun_l14_n459(x)
- else
- fun_l14_n59(x)
- end
-end
-
-def fun_l13_n481(x)
- if (x < 1)
- fun_l14_n200(x)
- else
- fun_l14_n681(x)
- end
-end
-
-def fun_l13_n482(x)
- if (x < 1)
- fun_l14_n893(x)
- else
- fun_l14_n518(x)
- end
-end
-
-def fun_l13_n483(x)
- if (x < 1)
- fun_l14_n130(x)
- else
- fun_l14_n902(x)
- end
-end
-
-def fun_l13_n484(x)
- if (x < 1)
- fun_l14_n598(x)
- else
- fun_l14_n533(x)
- end
-end
-
-def fun_l13_n485(x)
- if (x < 1)
- fun_l14_n254(x)
- else
- fun_l14_n294(x)
- end
-end
-
-def fun_l13_n486(x)
- if (x < 1)
- fun_l14_n608(x)
- else
- fun_l14_n858(x)
- end
-end
-
-def fun_l13_n487(x)
- if (x < 1)
- fun_l14_n82(x)
- else
- fun_l14_n379(x)
- end
-end
-
-def fun_l13_n488(x)
- if (x < 1)
- fun_l14_n605(x)
- else
- fun_l14_n530(x)
- end
-end
-
-def fun_l13_n489(x)
- if (x < 1)
- fun_l14_n572(x)
- else
- fun_l14_n199(x)
- end
-end
-
-def fun_l13_n490(x)
- if (x < 1)
- fun_l14_n3(x)
- else
- fun_l14_n103(x)
- end
-end
-
-def fun_l13_n491(x)
- if (x < 1)
- fun_l14_n922(x)
- else
- fun_l14_n372(x)
- end
-end
-
-def fun_l13_n492(x)
- if (x < 1)
- fun_l14_n306(x)
- else
- fun_l14_n378(x)
- end
-end
-
-def fun_l13_n493(x)
- if (x < 1)
- fun_l14_n980(x)
- else
- fun_l14_n617(x)
- end
-end
-
-def fun_l13_n494(x)
- if (x < 1)
- fun_l14_n127(x)
- else
- fun_l14_n348(x)
- end
-end
-
-def fun_l13_n495(x)
- if (x < 1)
- fun_l14_n631(x)
- else
- fun_l14_n281(x)
- end
-end
-
-def fun_l13_n496(x)
- if (x < 1)
- fun_l14_n552(x)
- else
- fun_l14_n493(x)
- end
-end
-
-def fun_l13_n497(x)
- if (x < 1)
- fun_l14_n342(x)
- else
- fun_l14_n931(x)
- end
-end
-
-def fun_l13_n498(x)
- if (x < 1)
- fun_l14_n297(x)
- else
- fun_l14_n512(x)
- end
-end
-
-def fun_l13_n499(x)
- if (x < 1)
- fun_l14_n950(x)
- else
- fun_l14_n952(x)
- end
-end
-
-def fun_l13_n500(x)
- if (x < 1)
- fun_l14_n355(x)
- else
- fun_l14_n383(x)
- end
-end
-
-def fun_l13_n501(x)
- if (x < 1)
- fun_l14_n278(x)
- else
- fun_l14_n442(x)
- end
-end
-
-def fun_l13_n502(x)
- if (x < 1)
- fun_l14_n16(x)
- else
- fun_l14_n150(x)
- end
-end
-
-def fun_l13_n503(x)
- if (x < 1)
- fun_l14_n399(x)
- else
- fun_l14_n989(x)
- end
-end
-
-def fun_l13_n504(x)
- if (x < 1)
- fun_l14_n289(x)
- else
- fun_l14_n925(x)
- end
-end
-
-def fun_l13_n505(x)
- if (x < 1)
- fun_l14_n743(x)
- else
- fun_l14_n784(x)
- end
-end
-
-def fun_l13_n506(x)
- if (x < 1)
- fun_l14_n916(x)
- else
- fun_l14_n111(x)
- end
-end
-
-def fun_l13_n507(x)
- if (x < 1)
- fun_l14_n912(x)
- else
- fun_l14_n448(x)
- end
-end
-
-def fun_l13_n508(x)
- if (x < 1)
- fun_l14_n10(x)
- else
- fun_l14_n451(x)
- end
-end
-
-def fun_l13_n509(x)
- if (x < 1)
- fun_l14_n15(x)
- else
- fun_l14_n697(x)
- end
-end
-
-def fun_l13_n510(x)
- if (x < 1)
- fun_l14_n565(x)
- else
- fun_l14_n511(x)
- end
-end
-
-def fun_l13_n511(x)
- if (x < 1)
- fun_l14_n843(x)
- else
- fun_l14_n272(x)
- end
-end
-
-def fun_l13_n512(x)
- if (x < 1)
- fun_l14_n70(x)
- else
- fun_l14_n333(x)
- end
-end
-
-def fun_l13_n513(x)
- if (x < 1)
- fun_l14_n100(x)
- else
- fun_l14_n399(x)
- end
-end
-
-def fun_l13_n514(x)
- if (x < 1)
- fun_l14_n678(x)
- else
- fun_l14_n247(x)
- end
-end
-
-def fun_l13_n515(x)
- if (x < 1)
- fun_l14_n823(x)
- else
- fun_l14_n371(x)
- end
-end
-
-def fun_l13_n516(x)
- if (x < 1)
- fun_l14_n994(x)
- else
- fun_l14_n322(x)
- end
-end
-
-def fun_l13_n517(x)
- if (x < 1)
- fun_l14_n399(x)
- else
- fun_l14_n567(x)
- end
-end
-
-def fun_l13_n518(x)
- if (x < 1)
- fun_l14_n898(x)
- else
- fun_l14_n59(x)
- end
-end
-
-def fun_l13_n519(x)
- if (x < 1)
- fun_l14_n33(x)
- else
- fun_l14_n640(x)
- end
-end
-
-def fun_l13_n520(x)
- if (x < 1)
- fun_l14_n475(x)
- else
- fun_l14_n67(x)
- end
-end
-
-def fun_l13_n521(x)
- if (x < 1)
- fun_l14_n896(x)
- else
- fun_l14_n312(x)
- end
-end
-
-def fun_l13_n522(x)
- if (x < 1)
- fun_l14_n454(x)
- else
- fun_l14_n520(x)
- end
-end
-
-def fun_l13_n523(x)
- if (x < 1)
- fun_l14_n334(x)
- else
- fun_l14_n879(x)
- end
-end
-
-def fun_l13_n524(x)
- if (x < 1)
- fun_l14_n267(x)
- else
- fun_l14_n526(x)
- end
-end
-
-def fun_l13_n525(x)
- if (x < 1)
- fun_l14_n552(x)
- else
- fun_l14_n103(x)
- end
-end
-
-def fun_l13_n526(x)
- if (x < 1)
- fun_l14_n224(x)
- else
- fun_l14_n211(x)
- end
-end
-
-def fun_l13_n527(x)
- if (x < 1)
- fun_l14_n113(x)
- else
- fun_l14_n193(x)
- end
-end
-
-def fun_l13_n528(x)
- if (x < 1)
- fun_l14_n389(x)
- else
- fun_l14_n332(x)
- end
-end
-
-def fun_l13_n529(x)
- if (x < 1)
- fun_l14_n881(x)
- else
- fun_l14_n655(x)
- end
-end
-
-def fun_l13_n530(x)
- if (x < 1)
- fun_l14_n857(x)
- else
- fun_l14_n588(x)
- end
-end
-
-def fun_l13_n531(x)
- if (x < 1)
- fun_l14_n70(x)
- else
- fun_l14_n232(x)
- end
-end
-
-def fun_l13_n532(x)
- if (x < 1)
- fun_l14_n617(x)
- else
- fun_l14_n477(x)
- end
-end
-
-def fun_l13_n533(x)
- if (x < 1)
- fun_l14_n655(x)
- else
- fun_l14_n801(x)
- end
-end
-
-def fun_l13_n534(x)
- if (x < 1)
- fun_l14_n665(x)
- else
- fun_l14_n22(x)
- end
-end
-
-def fun_l13_n535(x)
- if (x < 1)
- fun_l14_n314(x)
- else
- fun_l14_n924(x)
- end
-end
-
-def fun_l13_n536(x)
- if (x < 1)
- fun_l14_n619(x)
- else
- fun_l14_n455(x)
- end
-end
-
-def fun_l13_n537(x)
- if (x < 1)
- fun_l14_n183(x)
- else
- fun_l14_n767(x)
- end
-end
-
-def fun_l13_n538(x)
- if (x < 1)
- fun_l14_n862(x)
- else
- fun_l14_n352(x)
- end
-end
-
-def fun_l13_n539(x)
- if (x < 1)
- fun_l14_n540(x)
- else
- fun_l14_n813(x)
- end
-end
-
-def fun_l13_n540(x)
- if (x < 1)
- fun_l14_n429(x)
- else
- fun_l14_n515(x)
- end
-end
-
-def fun_l13_n541(x)
- if (x < 1)
- fun_l14_n294(x)
- else
- fun_l14_n341(x)
- end
-end
-
-def fun_l13_n542(x)
- if (x < 1)
- fun_l14_n910(x)
- else
- fun_l14_n882(x)
- end
-end
-
-def fun_l13_n543(x)
- if (x < 1)
- fun_l14_n971(x)
- else
- fun_l14_n19(x)
- end
-end
-
-def fun_l13_n544(x)
- if (x < 1)
- fun_l14_n344(x)
- else
- fun_l14_n419(x)
- end
-end
-
-def fun_l13_n545(x)
- if (x < 1)
- fun_l14_n410(x)
- else
- fun_l14_n996(x)
- end
-end
-
-def fun_l13_n546(x)
- if (x < 1)
- fun_l14_n857(x)
- else
- fun_l14_n431(x)
- end
-end
-
-def fun_l13_n547(x)
- if (x < 1)
- fun_l14_n548(x)
- else
- fun_l14_n934(x)
- end
-end
-
-def fun_l13_n548(x)
- if (x < 1)
- fun_l14_n420(x)
- else
- fun_l14_n506(x)
- end
-end
-
-def fun_l13_n549(x)
- if (x < 1)
- fun_l14_n992(x)
- else
- fun_l14_n213(x)
- end
-end
-
-def fun_l13_n550(x)
- if (x < 1)
- fun_l14_n754(x)
- else
- fun_l14_n666(x)
- end
-end
-
-def fun_l13_n551(x)
- if (x < 1)
- fun_l14_n412(x)
- else
- fun_l14_n908(x)
- end
-end
-
-def fun_l13_n552(x)
- if (x < 1)
- fun_l14_n708(x)
- else
- fun_l14_n308(x)
- end
-end
-
-def fun_l13_n553(x)
- if (x < 1)
- fun_l14_n797(x)
- else
- fun_l14_n622(x)
- end
-end
-
-def fun_l13_n554(x)
- if (x < 1)
- fun_l14_n26(x)
- else
- fun_l14_n102(x)
- end
-end
-
-def fun_l13_n555(x)
- if (x < 1)
- fun_l14_n614(x)
- else
- fun_l14_n110(x)
- end
-end
-
-def fun_l13_n556(x)
- if (x < 1)
- fun_l14_n368(x)
- else
- fun_l14_n718(x)
- end
-end
-
-def fun_l13_n557(x)
- if (x < 1)
- fun_l14_n782(x)
- else
- fun_l14_n659(x)
- end
-end
-
-def fun_l13_n558(x)
- if (x < 1)
- fun_l14_n544(x)
- else
- fun_l14_n507(x)
- end
-end
-
-def fun_l13_n559(x)
- if (x < 1)
- fun_l14_n39(x)
- else
- fun_l14_n97(x)
- end
-end
-
-def fun_l13_n560(x)
- if (x < 1)
- fun_l14_n390(x)
- else
- fun_l14_n93(x)
- end
-end
-
-def fun_l13_n561(x)
- if (x < 1)
- fun_l14_n28(x)
- else
- fun_l14_n267(x)
- end
-end
-
-def fun_l13_n562(x)
- if (x < 1)
- fun_l14_n10(x)
- else
- fun_l14_n990(x)
- end
-end
-
-def fun_l13_n563(x)
- if (x < 1)
- fun_l14_n428(x)
- else
- fun_l14_n878(x)
- end
-end
-
-def fun_l13_n564(x)
- if (x < 1)
- fun_l14_n587(x)
- else
- fun_l14_n724(x)
- end
-end
-
-def fun_l13_n565(x)
- if (x < 1)
- fun_l14_n524(x)
- else
- fun_l14_n87(x)
- end
-end
-
-def fun_l13_n566(x)
- if (x < 1)
- fun_l14_n213(x)
- else
- fun_l14_n718(x)
- end
-end
-
-def fun_l13_n567(x)
- if (x < 1)
- fun_l14_n821(x)
- else
- fun_l14_n478(x)
- end
-end
-
-def fun_l13_n568(x)
- if (x < 1)
- fun_l14_n580(x)
- else
- fun_l14_n731(x)
- end
-end
-
-def fun_l13_n569(x)
- if (x < 1)
- fun_l14_n673(x)
- else
- fun_l14_n780(x)
- end
-end
-
-def fun_l13_n570(x)
- if (x < 1)
- fun_l14_n791(x)
- else
- fun_l14_n691(x)
- end
-end
-
-def fun_l13_n571(x)
- if (x < 1)
- fun_l14_n192(x)
- else
- fun_l14_n712(x)
- end
-end
-
-def fun_l13_n572(x)
- if (x < 1)
- fun_l14_n201(x)
- else
- fun_l14_n732(x)
- end
-end
-
-def fun_l13_n573(x)
- if (x < 1)
- fun_l14_n180(x)
- else
- fun_l14_n260(x)
- end
-end
-
-def fun_l13_n574(x)
- if (x < 1)
- fun_l14_n609(x)
- else
- fun_l14_n110(x)
- end
-end
-
-def fun_l13_n575(x)
- if (x < 1)
- fun_l14_n993(x)
- else
- fun_l14_n510(x)
- end
-end
-
-def fun_l13_n576(x)
- if (x < 1)
- fun_l14_n318(x)
- else
- fun_l14_n915(x)
- end
-end
-
-def fun_l13_n577(x)
- if (x < 1)
- fun_l14_n635(x)
- else
- fun_l14_n21(x)
- end
-end
-
-def fun_l13_n578(x)
- if (x < 1)
- fun_l14_n330(x)
- else
- fun_l14_n860(x)
- end
-end
-
-def fun_l13_n579(x)
- if (x < 1)
- fun_l14_n24(x)
- else
- fun_l14_n87(x)
- end
-end
-
-def fun_l13_n580(x)
- if (x < 1)
- fun_l14_n404(x)
- else
- fun_l14_n530(x)
- end
-end
-
-def fun_l13_n581(x)
- if (x < 1)
- fun_l14_n831(x)
- else
- fun_l14_n384(x)
- end
-end
-
-def fun_l13_n582(x)
- if (x < 1)
- fun_l14_n272(x)
- else
- fun_l14_n438(x)
- end
-end
-
-def fun_l13_n583(x)
- if (x < 1)
- fun_l14_n297(x)
- else
- fun_l14_n414(x)
- end
-end
-
-def fun_l13_n584(x)
- if (x < 1)
- fun_l14_n38(x)
- else
- fun_l14_n676(x)
- end
-end
-
-def fun_l13_n585(x)
- if (x < 1)
- fun_l14_n104(x)
- else
- fun_l14_n566(x)
- end
-end
-
-def fun_l13_n586(x)
- if (x < 1)
- fun_l14_n322(x)
- else
- fun_l14_n601(x)
- end
-end
-
-def fun_l13_n587(x)
- if (x < 1)
- fun_l14_n20(x)
- else
- fun_l14_n242(x)
- end
-end
-
-def fun_l13_n588(x)
- if (x < 1)
- fun_l14_n291(x)
- else
- fun_l14_n744(x)
- end
-end
-
-def fun_l13_n589(x)
- if (x < 1)
- fun_l14_n702(x)
- else
- fun_l14_n456(x)
- end
-end
-
-def fun_l13_n590(x)
- if (x < 1)
- fun_l14_n39(x)
- else
- fun_l14_n493(x)
- end
-end
-
-def fun_l13_n591(x)
- if (x < 1)
- fun_l14_n51(x)
- else
- fun_l14_n193(x)
- end
-end
-
-def fun_l13_n592(x)
- if (x < 1)
- fun_l14_n512(x)
- else
- fun_l14_n382(x)
- end
-end
-
-def fun_l13_n593(x)
- if (x < 1)
- fun_l14_n550(x)
- else
- fun_l14_n711(x)
- end
-end
-
-def fun_l13_n594(x)
- if (x < 1)
- fun_l14_n586(x)
- else
- fun_l14_n130(x)
- end
-end
-
-def fun_l13_n595(x)
- if (x < 1)
- fun_l14_n348(x)
- else
- fun_l14_n214(x)
- end
-end
-
-def fun_l13_n596(x)
- if (x < 1)
- fun_l14_n193(x)
- else
- fun_l14_n490(x)
- end
-end
-
-def fun_l13_n597(x)
- if (x < 1)
- fun_l14_n736(x)
- else
- fun_l14_n824(x)
- end
-end
-
-def fun_l13_n598(x)
- if (x < 1)
- fun_l14_n555(x)
- else
- fun_l14_n546(x)
- end
-end
-
-def fun_l13_n599(x)
- if (x < 1)
- fun_l14_n244(x)
- else
- fun_l14_n903(x)
- end
-end
-
-def fun_l13_n600(x)
- if (x < 1)
- fun_l14_n786(x)
- else
- fun_l14_n817(x)
- end
-end
-
-def fun_l13_n601(x)
- if (x < 1)
- fun_l14_n991(x)
- else
- fun_l14_n691(x)
- end
-end
-
-def fun_l13_n602(x)
- if (x < 1)
- fun_l14_n369(x)
- else
- fun_l14_n85(x)
- end
-end
-
-def fun_l13_n603(x)
- if (x < 1)
- fun_l14_n232(x)
- else
- fun_l14_n287(x)
- end
-end
-
-def fun_l13_n604(x)
- if (x < 1)
- fun_l14_n397(x)
- else
- fun_l14_n59(x)
- end
-end
-
-def fun_l13_n605(x)
- if (x < 1)
- fun_l14_n394(x)
- else
- fun_l14_n297(x)
- end
-end
-
-def fun_l13_n606(x)
- if (x < 1)
- fun_l14_n676(x)
- else
- fun_l14_n444(x)
- end
-end
-
-def fun_l13_n607(x)
- if (x < 1)
- fun_l14_n894(x)
- else
- fun_l14_n147(x)
- end
-end
-
-def fun_l13_n608(x)
- if (x < 1)
- fun_l14_n593(x)
- else
- fun_l14_n880(x)
- end
-end
-
-def fun_l13_n609(x)
- if (x < 1)
- fun_l14_n306(x)
- else
- fun_l14_n610(x)
- end
-end
-
-def fun_l13_n610(x)
- if (x < 1)
- fun_l14_n884(x)
- else
- fun_l14_n202(x)
- end
-end
-
-def fun_l13_n611(x)
- if (x < 1)
- fun_l14_n763(x)
- else
- fun_l14_n592(x)
- end
-end
-
-def fun_l13_n612(x)
- if (x < 1)
- fun_l14_n477(x)
- else
- fun_l14_n614(x)
- end
-end
-
-def fun_l13_n613(x)
- if (x < 1)
- fun_l14_n372(x)
- else
- fun_l14_n330(x)
- end
-end
-
-def fun_l13_n614(x)
- if (x < 1)
- fun_l14_n767(x)
- else
- fun_l14_n277(x)
- end
-end
-
-def fun_l13_n615(x)
- if (x < 1)
- fun_l14_n530(x)
- else
- fun_l14_n24(x)
- end
-end
-
-def fun_l13_n616(x)
- if (x < 1)
- fun_l14_n657(x)
- else
- fun_l14_n709(x)
- end
-end
-
-def fun_l13_n617(x)
- if (x < 1)
- fun_l14_n559(x)
- else
- fun_l14_n125(x)
- end
-end
-
-def fun_l13_n618(x)
- if (x < 1)
- fun_l14_n855(x)
- else
- fun_l14_n353(x)
- end
-end
-
-def fun_l13_n619(x)
- if (x < 1)
- fun_l14_n635(x)
- else
- fun_l14_n907(x)
- end
-end
-
-def fun_l13_n620(x)
- if (x < 1)
- fun_l14_n229(x)
- else
- fun_l14_n7(x)
- end
-end
-
-def fun_l13_n621(x)
- if (x < 1)
- fun_l14_n568(x)
- else
- fun_l14_n393(x)
- end
-end
-
-def fun_l13_n622(x)
- if (x < 1)
- fun_l14_n153(x)
- else
- fun_l14_n641(x)
- end
-end
-
-def fun_l13_n623(x)
- if (x < 1)
- fun_l14_n249(x)
- else
- fun_l14_n139(x)
- end
-end
-
-def fun_l13_n624(x)
- if (x < 1)
- fun_l14_n961(x)
- else
- fun_l14_n897(x)
- end
-end
-
-def fun_l13_n625(x)
- if (x < 1)
- fun_l14_n535(x)
- else
- fun_l14_n252(x)
- end
-end
-
-def fun_l13_n626(x)
- if (x < 1)
- fun_l14_n832(x)
- else
- fun_l14_n995(x)
- end
-end
-
-def fun_l13_n627(x)
- if (x < 1)
- fun_l14_n896(x)
- else
- fun_l14_n173(x)
- end
-end
-
-def fun_l13_n628(x)
- if (x < 1)
- fun_l14_n939(x)
- else
- fun_l14_n852(x)
- end
-end
-
-def fun_l13_n629(x)
- if (x < 1)
- fun_l14_n424(x)
- else
- fun_l14_n161(x)
- end
-end
-
-def fun_l13_n630(x)
- if (x < 1)
- fun_l14_n822(x)
- else
- fun_l14_n523(x)
- end
-end
-
-def fun_l13_n631(x)
- if (x < 1)
- fun_l14_n697(x)
- else
- fun_l14_n939(x)
- end
-end
-
-def fun_l13_n632(x)
- if (x < 1)
- fun_l14_n831(x)
- else
- fun_l14_n722(x)
- end
-end
-
-def fun_l13_n633(x)
- if (x < 1)
- fun_l14_n837(x)
- else
- fun_l14_n994(x)
- end
-end
-
-def fun_l13_n634(x)
- if (x < 1)
- fun_l14_n568(x)
- else
- fun_l14_n636(x)
- end
-end
-
-def fun_l13_n635(x)
- if (x < 1)
- fun_l14_n573(x)
- else
- fun_l14_n156(x)
- end
-end
-
-def fun_l13_n636(x)
- if (x < 1)
- fun_l14_n682(x)
- else
- fun_l14_n999(x)
- end
-end
-
-def fun_l13_n637(x)
- if (x < 1)
- fun_l14_n648(x)
- else
- fun_l14_n567(x)
- end
-end
-
-def fun_l13_n638(x)
- if (x < 1)
- fun_l14_n395(x)
- else
- fun_l14_n837(x)
- end
-end
-
-def fun_l13_n639(x)
- if (x < 1)
- fun_l14_n294(x)
- else
- fun_l14_n508(x)
- end
-end
-
-def fun_l13_n640(x)
- if (x < 1)
- fun_l14_n530(x)
- else
- fun_l14_n542(x)
- end
-end
-
-def fun_l13_n641(x)
- if (x < 1)
- fun_l14_n227(x)
- else
- fun_l14_n939(x)
- end
-end
-
-def fun_l13_n642(x)
- if (x < 1)
- fun_l14_n415(x)
- else
- fun_l14_n79(x)
- end
-end
-
-def fun_l13_n643(x)
- if (x < 1)
- fun_l14_n354(x)
- else
- fun_l14_n606(x)
- end
-end
-
-def fun_l13_n644(x)
- if (x < 1)
- fun_l14_n270(x)
- else
- fun_l14_n644(x)
- end
-end
-
-def fun_l13_n645(x)
- if (x < 1)
- fun_l14_n345(x)
- else
- fun_l14_n299(x)
- end
-end
-
-def fun_l13_n646(x)
- if (x < 1)
- fun_l14_n384(x)
- else
- fun_l14_n97(x)
- end
-end
-
-def fun_l13_n647(x)
- if (x < 1)
- fun_l14_n86(x)
- else
- fun_l14_n103(x)
- end
-end
-
-def fun_l13_n648(x)
- if (x < 1)
- fun_l14_n765(x)
- else
- fun_l14_n498(x)
- end
-end
-
-def fun_l13_n649(x)
- if (x < 1)
- fun_l14_n135(x)
- else
- fun_l14_n993(x)
- end
-end
-
-def fun_l13_n650(x)
- if (x < 1)
- fun_l14_n837(x)
- else
- fun_l14_n576(x)
- end
-end
-
-def fun_l13_n651(x)
- if (x < 1)
- fun_l14_n75(x)
- else
- fun_l14_n351(x)
- end
-end
-
-def fun_l13_n652(x)
- if (x < 1)
- fun_l14_n932(x)
- else
- fun_l14_n646(x)
- end
-end
-
-def fun_l13_n653(x)
- if (x < 1)
- fun_l14_n908(x)
- else
- fun_l14_n384(x)
- end
-end
-
-def fun_l13_n654(x)
- if (x < 1)
- fun_l14_n540(x)
- else
- fun_l14_n946(x)
- end
-end
-
-def fun_l13_n655(x)
- if (x < 1)
- fun_l14_n686(x)
- else
- fun_l14_n926(x)
- end
-end
-
-def fun_l13_n656(x)
- if (x < 1)
- fun_l14_n567(x)
- else
- fun_l14_n815(x)
- end
-end
-
-def fun_l13_n657(x)
- if (x < 1)
- fun_l14_n101(x)
- else
- fun_l14_n960(x)
- end
-end
-
-def fun_l13_n658(x)
- if (x < 1)
- fun_l14_n956(x)
- else
- fun_l14_n980(x)
- end
-end
-
-def fun_l13_n659(x)
- if (x < 1)
- fun_l14_n196(x)
- else
- fun_l14_n632(x)
- end
-end
-
-def fun_l13_n660(x)
- if (x < 1)
- fun_l14_n83(x)
- else
- fun_l14_n288(x)
- end
-end
-
-def fun_l13_n661(x)
- if (x < 1)
- fun_l14_n907(x)
- else
- fun_l14_n719(x)
- end
-end
-
-def fun_l13_n662(x)
- if (x < 1)
- fun_l14_n922(x)
- else
- fun_l14_n186(x)
- end
-end
-
-def fun_l13_n663(x)
- if (x < 1)
- fun_l14_n439(x)
- else
- fun_l14_n890(x)
- end
-end
-
-def fun_l13_n664(x)
- if (x < 1)
- fun_l14_n310(x)
- else
- fun_l14_n534(x)
- end
-end
-
-def fun_l13_n665(x)
- if (x < 1)
- fun_l14_n584(x)
- else
- fun_l14_n322(x)
- end
-end
-
-def fun_l13_n666(x)
- if (x < 1)
- fun_l14_n385(x)
- else
- fun_l14_n466(x)
- end
-end
-
-def fun_l13_n667(x)
- if (x < 1)
- fun_l14_n387(x)
- else
- fun_l14_n284(x)
- end
-end
-
-def fun_l13_n668(x)
- if (x < 1)
- fun_l14_n834(x)
- else
- fun_l14_n446(x)
- end
-end
-
-def fun_l13_n669(x)
- if (x < 1)
- fun_l14_n839(x)
- else
- fun_l14_n820(x)
- end
-end
-
-def fun_l13_n670(x)
- if (x < 1)
- fun_l14_n666(x)
- else
- fun_l14_n690(x)
- end
-end
-
-def fun_l13_n671(x)
- if (x < 1)
- fun_l14_n640(x)
- else
- fun_l14_n83(x)
- end
-end
-
-def fun_l13_n672(x)
- if (x < 1)
- fun_l14_n663(x)
- else
- fun_l14_n332(x)
- end
-end
-
-def fun_l13_n673(x)
- if (x < 1)
- fun_l14_n776(x)
- else
- fun_l14_n818(x)
- end
-end
-
-def fun_l13_n674(x)
- if (x < 1)
- fun_l14_n82(x)
- else
- fun_l14_n594(x)
- end
-end
-
-def fun_l13_n675(x)
- if (x < 1)
- fun_l14_n491(x)
- else
- fun_l14_n0(x)
- end
-end
-
-def fun_l13_n676(x)
- if (x < 1)
- fun_l14_n963(x)
- else
- fun_l14_n634(x)
- end
-end
-
-def fun_l13_n677(x)
- if (x < 1)
- fun_l14_n716(x)
- else
- fun_l14_n99(x)
- end
-end
-
-def fun_l13_n678(x)
- if (x < 1)
- fun_l14_n997(x)
- else
- fun_l14_n933(x)
- end
-end
-
-def fun_l13_n679(x)
- if (x < 1)
- fun_l14_n171(x)
- else
- fun_l14_n356(x)
- end
-end
-
-def fun_l13_n680(x)
- if (x < 1)
- fun_l14_n214(x)
- else
- fun_l14_n360(x)
- end
-end
-
-def fun_l13_n681(x)
- if (x < 1)
- fun_l14_n758(x)
- else
- fun_l14_n185(x)
- end
-end
-
-def fun_l13_n682(x)
- if (x < 1)
- fun_l14_n480(x)
- else
- fun_l14_n572(x)
- end
-end
-
-def fun_l13_n683(x)
- if (x < 1)
- fun_l14_n595(x)
- else
- fun_l14_n534(x)
- end
-end
-
-def fun_l13_n684(x)
- if (x < 1)
- fun_l14_n462(x)
- else
- fun_l14_n481(x)
- end
-end
-
-def fun_l13_n685(x)
- if (x < 1)
- fun_l14_n946(x)
- else
- fun_l14_n726(x)
- end
-end
-
-def fun_l13_n686(x)
- if (x < 1)
- fun_l14_n428(x)
- else
- fun_l14_n256(x)
- end
-end
-
-def fun_l13_n687(x)
- if (x < 1)
- fun_l14_n562(x)
- else
- fun_l14_n290(x)
- end
-end
-
-def fun_l13_n688(x)
- if (x < 1)
- fun_l14_n679(x)
- else
- fun_l14_n787(x)
- end
-end
-
-def fun_l13_n689(x)
- if (x < 1)
- fun_l14_n972(x)
- else
- fun_l14_n809(x)
- end
-end
-
-def fun_l13_n690(x)
- if (x < 1)
- fun_l14_n700(x)
- else
- fun_l14_n239(x)
- end
-end
-
-def fun_l13_n691(x)
- if (x < 1)
- fun_l14_n525(x)
- else
- fun_l14_n251(x)
- end
-end
-
-def fun_l13_n692(x)
- if (x < 1)
- fun_l14_n4(x)
- else
- fun_l14_n889(x)
- end
-end
-
-def fun_l13_n693(x)
- if (x < 1)
- fun_l14_n362(x)
- else
- fun_l14_n495(x)
- end
-end
-
-def fun_l13_n694(x)
- if (x < 1)
- fun_l14_n466(x)
- else
- fun_l14_n820(x)
- end
-end
-
-def fun_l13_n695(x)
- if (x < 1)
- fun_l14_n244(x)
- else
- fun_l14_n233(x)
- end
-end
-
-def fun_l13_n696(x)
- if (x < 1)
- fun_l14_n920(x)
- else
- fun_l14_n124(x)
- end
-end
-
-def fun_l13_n697(x)
- if (x < 1)
- fun_l14_n926(x)
- else
- fun_l14_n417(x)
- end
-end
-
-def fun_l13_n698(x)
- if (x < 1)
- fun_l14_n756(x)
- else
- fun_l14_n683(x)
- end
-end
-
-def fun_l13_n699(x)
- if (x < 1)
- fun_l14_n487(x)
- else
- fun_l14_n191(x)
- end
-end
-
-def fun_l13_n700(x)
- if (x < 1)
- fun_l14_n316(x)
- else
- fun_l14_n123(x)
- end
-end
-
-def fun_l13_n701(x)
- if (x < 1)
- fun_l14_n851(x)
- else
- fun_l14_n695(x)
- end
-end
-
-def fun_l13_n702(x)
- if (x < 1)
- fun_l14_n766(x)
- else
- fun_l14_n603(x)
- end
-end
-
-def fun_l13_n703(x)
- if (x < 1)
- fun_l14_n689(x)
- else
- fun_l14_n524(x)
- end
-end
-
-def fun_l13_n704(x)
- if (x < 1)
- fun_l14_n23(x)
- else
- fun_l14_n866(x)
- end
-end
-
-def fun_l13_n705(x)
- if (x < 1)
- fun_l14_n62(x)
- else
- fun_l14_n926(x)
- end
-end
-
-def fun_l13_n706(x)
- if (x < 1)
- fun_l14_n53(x)
- else
- fun_l14_n567(x)
- end
-end
-
-def fun_l13_n707(x)
- if (x < 1)
- fun_l14_n756(x)
- else
- fun_l14_n595(x)
- end
-end
-
-def fun_l13_n708(x)
- if (x < 1)
- fun_l14_n495(x)
- else
- fun_l14_n698(x)
- end
-end
-
-def fun_l13_n709(x)
- if (x < 1)
- fun_l14_n511(x)
- else
- fun_l14_n131(x)
- end
-end
-
-def fun_l13_n710(x)
- if (x < 1)
- fun_l14_n593(x)
- else
- fun_l14_n233(x)
- end
-end
-
-def fun_l13_n711(x)
- if (x < 1)
- fun_l14_n846(x)
- else
- fun_l14_n166(x)
- end
-end
-
-def fun_l13_n712(x)
- if (x < 1)
- fun_l14_n759(x)
- else
- fun_l14_n103(x)
- end
-end
-
-def fun_l13_n713(x)
- if (x < 1)
- fun_l14_n364(x)
- else
- fun_l14_n805(x)
- end
-end
-
-def fun_l13_n714(x)
- if (x < 1)
- fun_l14_n957(x)
- else
- fun_l14_n85(x)
- end
-end
-
-def fun_l13_n715(x)
- if (x < 1)
- fun_l14_n877(x)
- else
- fun_l14_n111(x)
- end
-end
-
-def fun_l13_n716(x)
- if (x < 1)
- fun_l14_n290(x)
- else
- fun_l14_n894(x)
- end
-end
-
-def fun_l13_n717(x)
- if (x < 1)
- fun_l14_n354(x)
- else
- fun_l14_n646(x)
- end
-end
-
-def fun_l13_n718(x)
- if (x < 1)
- fun_l14_n364(x)
- else
- fun_l14_n810(x)
- end
-end
-
-def fun_l13_n719(x)
- if (x < 1)
- fun_l14_n392(x)
- else
- fun_l14_n537(x)
- end
-end
-
-def fun_l13_n720(x)
- if (x < 1)
- fun_l14_n546(x)
- else
- fun_l14_n681(x)
- end
-end
-
-def fun_l13_n721(x)
- if (x < 1)
- fun_l14_n153(x)
- else
- fun_l14_n925(x)
- end
-end
-
-def fun_l13_n722(x)
- if (x < 1)
- fun_l14_n107(x)
- else
- fun_l14_n482(x)
- end
-end
-
-def fun_l13_n723(x)
- if (x < 1)
- fun_l14_n981(x)
- else
- fun_l14_n364(x)
- end
-end
-
-def fun_l13_n724(x)
- if (x < 1)
- fun_l14_n869(x)
- else
- fun_l14_n871(x)
- end
-end
-
-def fun_l13_n725(x)
- if (x < 1)
- fun_l14_n693(x)
- else
- fun_l14_n690(x)
- end
-end
-
-def fun_l13_n726(x)
- if (x < 1)
- fun_l14_n587(x)
- else
- fun_l14_n654(x)
- end
-end
-
-def fun_l13_n727(x)
- if (x < 1)
- fun_l14_n150(x)
- else
- fun_l14_n904(x)
- end
-end
-
-def fun_l13_n728(x)
- if (x < 1)
- fun_l14_n843(x)
- else
- fun_l14_n556(x)
- end
-end
-
-def fun_l13_n729(x)
- if (x < 1)
- fun_l14_n726(x)
- else
- fun_l14_n114(x)
- end
-end
-
-def fun_l13_n730(x)
- if (x < 1)
- fun_l14_n976(x)
- else
- fun_l14_n740(x)
- end
-end
-
-def fun_l13_n731(x)
- if (x < 1)
- fun_l14_n709(x)
- else
- fun_l14_n293(x)
- end
-end
-
-def fun_l13_n732(x)
- if (x < 1)
- fun_l14_n858(x)
- else
- fun_l14_n530(x)
- end
-end
-
-def fun_l13_n733(x)
- if (x < 1)
- fun_l14_n789(x)
- else
- fun_l14_n475(x)
- end
-end
-
-def fun_l13_n734(x)
- if (x < 1)
- fun_l14_n813(x)
- else
- fun_l14_n359(x)
- end
-end
-
-def fun_l13_n735(x)
- if (x < 1)
- fun_l14_n209(x)
- else
- fun_l14_n29(x)
- end
-end
-
-def fun_l13_n736(x)
- if (x < 1)
- fun_l14_n710(x)
- else
- fun_l14_n823(x)
- end
-end
-
-def fun_l13_n737(x)
- if (x < 1)
- fun_l14_n434(x)
- else
- fun_l14_n864(x)
- end
-end
-
-def fun_l13_n738(x)
- if (x < 1)
- fun_l14_n184(x)
- else
- fun_l14_n902(x)
- end
-end
-
-def fun_l13_n739(x)
- if (x < 1)
- fun_l14_n206(x)
- else
- fun_l14_n65(x)
- end
-end
-
-def fun_l13_n740(x)
- if (x < 1)
- fun_l14_n670(x)
- else
- fun_l14_n956(x)
- end
-end
-
-def fun_l13_n741(x)
- if (x < 1)
- fun_l14_n91(x)
- else
- fun_l14_n341(x)
- end
-end
-
-def fun_l13_n742(x)
- if (x < 1)
- fun_l14_n864(x)
- else
- fun_l14_n864(x)
- end
-end
-
-def fun_l13_n743(x)
- if (x < 1)
- fun_l14_n426(x)
- else
- fun_l14_n302(x)
- end
-end
-
-def fun_l13_n744(x)
- if (x < 1)
- fun_l14_n241(x)
- else
- fun_l14_n151(x)
- end
-end
-
-def fun_l13_n745(x)
- if (x < 1)
- fun_l14_n161(x)
- else
- fun_l14_n715(x)
- end
-end
-
-def fun_l13_n746(x)
- if (x < 1)
- fun_l14_n925(x)
- else
- fun_l14_n840(x)
- end
-end
-
-def fun_l13_n747(x)
- if (x < 1)
- fun_l14_n864(x)
- else
- fun_l14_n610(x)
- end
-end
-
-def fun_l13_n748(x)
- if (x < 1)
- fun_l14_n322(x)
- else
- fun_l14_n69(x)
- end
-end
-
-def fun_l13_n749(x)
- if (x < 1)
- fun_l14_n847(x)
- else
- fun_l14_n3(x)
- end
-end
-
-def fun_l13_n750(x)
- if (x < 1)
- fun_l14_n124(x)
- else
- fun_l14_n915(x)
- end
-end
-
-def fun_l13_n751(x)
- if (x < 1)
- fun_l14_n163(x)
- else
- fun_l14_n136(x)
- end
-end
-
-def fun_l13_n752(x)
- if (x < 1)
- fun_l14_n525(x)
- else
- fun_l14_n197(x)
- end
-end
-
-def fun_l13_n753(x)
- if (x < 1)
- fun_l14_n109(x)
- else
- fun_l14_n208(x)
- end
-end
-
-def fun_l13_n754(x)
- if (x < 1)
- fun_l14_n597(x)
- else
- fun_l14_n307(x)
- end
-end
-
-def fun_l13_n755(x)
- if (x < 1)
- fun_l14_n36(x)
- else
- fun_l14_n948(x)
- end
-end
-
-def fun_l13_n756(x)
- if (x < 1)
- fun_l14_n236(x)
- else
- fun_l14_n716(x)
- end
-end
-
-def fun_l13_n757(x)
- if (x < 1)
- fun_l14_n326(x)
- else
- fun_l14_n870(x)
- end
-end
-
-def fun_l13_n758(x)
- if (x < 1)
- fun_l14_n333(x)
- else
- fun_l14_n224(x)
- end
-end
-
-def fun_l13_n759(x)
- if (x < 1)
- fun_l14_n141(x)
- else
- fun_l14_n232(x)
- end
-end
-
-def fun_l13_n760(x)
- if (x < 1)
- fun_l14_n653(x)
- else
- fun_l14_n559(x)
- end
-end
-
-def fun_l13_n761(x)
- if (x < 1)
- fun_l14_n305(x)
- else
- fun_l14_n296(x)
- end
-end
-
-def fun_l13_n762(x)
- if (x < 1)
- fun_l14_n318(x)
- else
- fun_l14_n351(x)
- end
-end
-
-def fun_l13_n763(x)
- if (x < 1)
- fun_l14_n685(x)
- else
- fun_l14_n643(x)
- end
-end
-
-def fun_l13_n764(x)
- if (x < 1)
- fun_l14_n180(x)
- else
- fun_l14_n348(x)
- end
-end
-
-def fun_l13_n765(x)
- if (x < 1)
- fun_l14_n72(x)
- else
- fun_l14_n99(x)
- end
-end
-
-def fun_l13_n766(x)
- if (x < 1)
- fun_l14_n463(x)
- else
- fun_l14_n135(x)
- end
-end
-
-def fun_l13_n767(x)
- if (x < 1)
- fun_l14_n461(x)
- else
- fun_l14_n989(x)
- end
-end
-
-def fun_l13_n768(x)
- if (x < 1)
- fun_l14_n759(x)
- else
- fun_l14_n907(x)
- end
-end
-
-def fun_l13_n769(x)
- if (x < 1)
- fun_l14_n330(x)
- else
- fun_l14_n268(x)
- end
-end
-
-def fun_l13_n770(x)
- if (x < 1)
- fun_l14_n809(x)
- else
- fun_l14_n46(x)
- end
-end
-
-def fun_l13_n771(x)
- if (x < 1)
- fun_l14_n396(x)
- else
- fun_l14_n114(x)
- end
-end
-
-def fun_l13_n772(x)
- if (x < 1)
- fun_l14_n300(x)
- else
- fun_l14_n60(x)
- end
-end
-
-def fun_l13_n773(x)
- if (x < 1)
- fun_l14_n938(x)
- else
- fun_l14_n112(x)
- end
-end
-
-def fun_l13_n774(x)
- if (x < 1)
- fun_l14_n862(x)
- else
- fun_l14_n503(x)
- end
-end
-
-def fun_l13_n775(x)
- if (x < 1)
- fun_l14_n305(x)
- else
- fun_l14_n11(x)
- end
-end
-
-def fun_l13_n776(x)
- if (x < 1)
- fun_l14_n638(x)
- else
- fun_l14_n161(x)
- end
-end
-
-def fun_l13_n777(x)
- if (x < 1)
- fun_l14_n2(x)
- else
- fun_l14_n176(x)
- end
-end
-
-def fun_l13_n778(x)
- if (x < 1)
- fun_l14_n967(x)
- else
- fun_l14_n739(x)
- end
-end
-
-def fun_l13_n779(x)
- if (x < 1)
- fun_l14_n961(x)
- else
- fun_l14_n609(x)
- end
-end
-
-def fun_l13_n780(x)
- if (x < 1)
- fun_l14_n207(x)
- else
- fun_l14_n910(x)
- end
-end
-
-def fun_l13_n781(x)
- if (x < 1)
- fun_l14_n370(x)
- else
- fun_l14_n163(x)
- end
-end
-
-def fun_l13_n782(x)
- if (x < 1)
- fun_l14_n140(x)
- else
- fun_l14_n816(x)
- end
-end
-
-def fun_l13_n783(x)
- if (x < 1)
- fun_l14_n351(x)
- else
- fun_l14_n406(x)
- end
-end
-
-def fun_l13_n784(x)
- if (x < 1)
- fun_l14_n790(x)
- else
- fun_l14_n175(x)
- end
-end
-
-def fun_l13_n785(x)
- if (x < 1)
- fun_l14_n644(x)
- else
- fun_l14_n713(x)
- end
-end
-
-def fun_l13_n786(x)
- if (x < 1)
- fun_l14_n800(x)
- else
- fun_l14_n257(x)
- end
-end
-
-def fun_l13_n787(x)
- if (x < 1)
- fun_l14_n248(x)
- else
- fun_l14_n709(x)
- end
-end
-
-def fun_l13_n788(x)
- if (x < 1)
- fun_l14_n280(x)
- else
- fun_l14_n485(x)
- end
-end
-
-def fun_l13_n789(x)
- if (x < 1)
- fun_l14_n900(x)
- else
- fun_l14_n675(x)
- end
-end
-
-def fun_l13_n790(x)
- if (x < 1)
- fun_l14_n65(x)
- else
- fun_l14_n426(x)
- end
-end
-
-def fun_l13_n791(x)
- if (x < 1)
- fun_l14_n410(x)
- else
- fun_l14_n484(x)
- end
-end
-
-def fun_l13_n792(x)
- if (x < 1)
- fun_l14_n741(x)
- else
- fun_l14_n13(x)
- end
-end
-
-def fun_l13_n793(x)
- if (x < 1)
- fun_l14_n550(x)
- else
- fun_l14_n884(x)
- end
-end
-
-def fun_l13_n794(x)
- if (x < 1)
- fun_l14_n120(x)
- else
- fun_l14_n262(x)
- end
-end
-
-def fun_l13_n795(x)
- if (x < 1)
- fun_l14_n537(x)
- else
- fun_l14_n980(x)
- end
-end
-
-def fun_l13_n796(x)
- if (x < 1)
- fun_l14_n742(x)
- else
- fun_l14_n6(x)
- end
-end
-
-def fun_l13_n797(x)
- if (x < 1)
- fun_l14_n986(x)
- else
- fun_l14_n434(x)
- end
-end
-
-def fun_l13_n798(x)
- if (x < 1)
- fun_l14_n39(x)
- else
- fun_l14_n658(x)
- end
-end
-
-def fun_l13_n799(x)
- if (x < 1)
- fun_l14_n838(x)
- else
- fun_l14_n810(x)
- end
-end
-
-def fun_l13_n800(x)
- if (x < 1)
- fun_l14_n79(x)
- else
- fun_l14_n695(x)
- end
-end
-
-def fun_l13_n801(x)
- if (x < 1)
- fun_l14_n99(x)
- else
- fun_l14_n26(x)
- end
-end
-
-def fun_l13_n802(x)
- if (x < 1)
- fun_l14_n839(x)
- else
- fun_l14_n430(x)
- end
-end
-
-def fun_l13_n803(x)
- if (x < 1)
- fun_l14_n410(x)
- else
- fun_l14_n403(x)
- end
-end
-
-def fun_l13_n804(x)
- if (x < 1)
- fun_l14_n143(x)
- else
- fun_l14_n689(x)
- end
-end
-
-def fun_l13_n805(x)
- if (x < 1)
- fun_l14_n695(x)
- else
- fun_l14_n721(x)
- end
-end
-
-def fun_l13_n806(x)
- if (x < 1)
- fun_l14_n418(x)
- else
- fun_l14_n508(x)
- end
-end
-
-def fun_l13_n807(x)
- if (x < 1)
- fun_l14_n569(x)
- else
- fun_l14_n86(x)
- end
-end
-
-def fun_l13_n808(x)
- if (x < 1)
- fun_l14_n670(x)
- else
- fun_l14_n690(x)
- end
-end
-
-def fun_l13_n809(x)
- if (x < 1)
- fun_l14_n283(x)
- else
- fun_l14_n630(x)
- end
-end
-
-def fun_l13_n810(x)
- if (x < 1)
- fun_l14_n54(x)
- else
- fun_l14_n180(x)
- end
-end
-
-def fun_l13_n811(x)
- if (x < 1)
- fun_l14_n669(x)
- else
- fun_l14_n131(x)
- end
-end
-
-def fun_l13_n812(x)
- if (x < 1)
- fun_l14_n972(x)
- else
- fun_l14_n948(x)
- end
-end
-
-def fun_l13_n813(x)
- if (x < 1)
- fun_l14_n585(x)
- else
- fun_l14_n244(x)
- end
-end
-
-def fun_l13_n814(x)
- if (x < 1)
- fun_l14_n277(x)
- else
- fun_l14_n530(x)
- end
-end
-
-def fun_l13_n815(x)
- if (x < 1)
- fun_l14_n908(x)
- else
- fun_l14_n380(x)
- end
-end
-
-def fun_l13_n816(x)
- if (x < 1)
- fun_l14_n520(x)
- else
- fun_l14_n382(x)
- end
-end
-
-def fun_l13_n817(x)
- if (x < 1)
- fun_l14_n40(x)
- else
- fun_l14_n757(x)
- end
-end
-
-def fun_l13_n818(x)
- if (x < 1)
- fun_l14_n220(x)
- else
- fun_l14_n781(x)
- end
-end
-
-def fun_l13_n819(x)
- if (x < 1)
- fun_l14_n507(x)
- else
- fun_l14_n602(x)
- end
-end
-
-def fun_l13_n820(x)
- if (x < 1)
- fun_l14_n39(x)
- else
- fun_l14_n798(x)
- end
-end
-
-def fun_l13_n821(x)
- if (x < 1)
- fun_l14_n412(x)
- else
- fun_l14_n58(x)
- end
-end
-
-def fun_l13_n822(x)
- if (x < 1)
- fun_l14_n599(x)
- else
- fun_l14_n206(x)
- end
-end
-
-def fun_l13_n823(x)
- if (x < 1)
- fun_l14_n294(x)
- else
- fun_l14_n711(x)
- end
-end
-
-def fun_l13_n824(x)
- if (x < 1)
- fun_l14_n421(x)
- else
- fun_l14_n191(x)
- end
-end
-
-def fun_l13_n825(x)
- if (x < 1)
- fun_l14_n598(x)
- else
- fun_l14_n547(x)
- end
-end
-
-def fun_l13_n826(x)
- if (x < 1)
- fun_l14_n131(x)
- else
- fun_l14_n29(x)
- end
-end
-
-def fun_l13_n827(x)
- if (x < 1)
- fun_l14_n19(x)
- else
- fun_l14_n213(x)
- end
-end
-
-def fun_l13_n828(x)
- if (x < 1)
- fun_l14_n202(x)
- else
- fun_l14_n195(x)
- end
-end
-
-def fun_l13_n829(x)
- if (x < 1)
- fun_l14_n133(x)
- else
- fun_l14_n949(x)
- end
-end
-
-def fun_l13_n830(x)
- if (x < 1)
- fun_l14_n402(x)
- else
- fun_l14_n762(x)
- end
-end
-
-def fun_l13_n831(x)
- if (x < 1)
- fun_l14_n233(x)
- else
- fun_l14_n984(x)
- end
-end
-
-def fun_l13_n832(x)
- if (x < 1)
- fun_l14_n309(x)
- else
- fun_l14_n545(x)
- end
-end
-
-def fun_l13_n833(x)
- if (x < 1)
- fun_l14_n160(x)
- else
- fun_l14_n434(x)
- end
-end
-
-def fun_l13_n834(x)
- if (x < 1)
- fun_l14_n909(x)
- else
- fun_l14_n681(x)
- end
-end
-
-def fun_l13_n835(x)
- if (x < 1)
- fun_l14_n747(x)
- else
- fun_l14_n813(x)
- end
-end
-
-def fun_l13_n836(x)
- if (x < 1)
- fun_l14_n338(x)
- else
- fun_l14_n592(x)
- end
-end
-
-def fun_l13_n837(x)
- if (x < 1)
- fun_l14_n707(x)
- else
- fun_l14_n587(x)
- end
-end
-
-def fun_l13_n838(x)
- if (x < 1)
- fun_l14_n655(x)
- else
- fun_l14_n207(x)
- end
-end
-
-def fun_l13_n839(x)
- if (x < 1)
- fun_l14_n231(x)
- else
- fun_l14_n459(x)
- end
-end
-
-def fun_l13_n840(x)
- if (x < 1)
- fun_l14_n351(x)
- else
- fun_l14_n228(x)
- end
-end
-
-def fun_l13_n841(x)
- if (x < 1)
- fun_l14_n205(x)
- else
- fun_l14_n628(x)
- end
-end
-
-def fun_l13_n842(x)
- if (x < 1)
- fun_l14_n725(x)
- else
- fun_l14_n246(x)
- end
-end
-
-def fun_l13_n843(x)
- if (x < 1)
- fun_l14_n297(x)
- else
- fun_l14_n891(x)
- end
-end
-
-def fun_l13_n844(x)
- if (x < 1)
- fun_l14_n598(x)
- else
- fun_l14_n168(x)
- end
-end
-
-def fun_l13_n845(x)
- if (x < 1)
- fun_l14_n101(x)
- else
- fun_l14_n681(x)
- end
-end
-
-def fun_l13_n846(x)
- if (x < 1)
- fun_l14_n162(x)
- else
- fun_l14_n270(x)
- end
-end
-
-def fun_l13_n847(x)
- if (x < 1)
- fun_l14_n84(x)
- else
- fun_l14_n957(x)
- end
-end
-
-def fun_l13_n848(x)
- if (x < 1)
- fun_l14_n16(x)
- else
- fun_l14_n708(x)
- end
-end
-
-def fun_l13_n849(x)
- if (x < 1)
- fun_l14_n636(x)
- else
- fun_l14_n518(x)
- end
-end
-
-def fun_l13_n850(x)
- if (x < 1)
- fun_l14_n379(x)
- else
- fun_l14_n595(x)
- end
-end
-
-def fun_l13_n851(x)
- if (x < 1)
- fun_l14_n258(x)
- else
- fun_l14_n757(x)
- end
-end
-
-def fun_l13_n852(x)
- if (x < 1)
- fun_l14_n995(x)
- else
- fun_l14_n380(x)
- end
-end
-
-def fun_l13_n853(x)
- if (x < 1)
- fun_l14_n505(x)
- else
- fun_l14_n934(x)
- end
-end
-
-def fun_l13_n854(x)
- if (x < 1)
- fun_l14_n268(x)
- else
- fun_l14_n36(x)
- end
-end
-
-def fun_l13_n855(x)
- if (x < 1)
- fun_l14_n795(x)
- else
- fun_l14_n905(x)
- end
-end
-
-def fun_l13_n856(x)
- if (x < 1)
- fun_l14_n136(x)
- else
- fun_l14_n750(x)
- end
-end
-
-def fun_l13_n857(x)
- if (x < 1)
- fun_l14_n120(x)
- else
- fun_l14_n156(x)
- end
-end
-
-def fun_l13_n858(x)
- if (x < 1)
- fun_l14_n157(x)
- else
- fun_l14_n414(x)
- end
-end
-
-def fun_l13_n859(x)
- if (x < 1)
- fun_l14_n926(x)
- else
- fun_l14_n718(x)
- end
-end
-
-def fun_l13_n860(x)
- if (x < 1)
- fun_l14_n904(x)
- else
- fun_l14_n821(x)
- end
-end
-
-def fun_l13_n861(x)
- if (x < 1)
- fun_l14_n887(x)
- else
- fun_l14_n407(x)
- end
-end
-
-def fun_l13_n862(x)
- if (x < 1)
- fun_l14_n870(x)
- else
- fun_l14_n950(x)
- end
-end
-
-def fun_l13_n863(x)
- if (x < 1)
- fun_l14_n267(x)
- else
- fun_l14_n712(x)
- end
-end
-
-def fun_l13_n864(x)
- if (x < 1)
- fun_l14_n409(x)
- else
- fun_l14_n309(x)
- end
-end
-
-def fun_l13_n865(x)
- if (x < 1)
- fun_l14_n345(x)
- else
- fun_l14_n110(x)
- end
-end
-
-def fun_l13_n866(x)
- if (x < 1)
- fun_l14_n401(x)
- else
- fun_l14_n970(x)
- end
-end
-
-def fun_l13_n867(x)
- if (x < 1)
- fun_l14_n814(x)
- else
- fun_l14_n260(x)
- end
-end
-
-def fun_l13_n868(x)
- if (x < 1)
- fun_l14_n490(x)
- else
- fun_l14_n31(x)
- end
-end
-
-def fun_l13_n869(x)
- if (x < 1)
- fun_l14_n214(x)
- else
- fun_l14_n425(x)
- end
-end
-
-def fun_l13_n870(x)
- if (x < 1)
- fun_l14_n660(x)
- else
- fun_l14_n703(x)
- end
-end
-
-def fun_l13_n871(x)
- if (x < 1)
- fun_l14_n650(x)
- else
- fun_l14_n257(x)
- end
-end
-
-def fun_l13_n872(x)
- if (x < 1)
- fun_l14_n701(x)
- else
- fun_l14_n55(x)
- end
-end
-
-def fun_l13_n873(x)
- if (x < 1)
- fun_l14_n225(x)
- else
- fun_l14_n701(x)
- end
-end
-
-def fun_l13_n874(x)
- if (x < 1)
- fun_l14_n525(x)
- else
- fun_l14_n793(x)
- end
-end
-
-def fun_l13_n875(x)
- if (x < 1)
- fun_l14_n87(x)
- else
- fun_l14_n807(x)
- end
-end
-
-def fun_l13_n876(x)
- if (x < 1)
- fun_l14_n24(x)
- else
- fun_l14_n15(x)
- end
-end
-
-def fun_l13_n877(x)
- if (x < 1)
- fun_l14_n120(x)
- else
- fun_l14_n551(x)
- end
-end
-
-def fun_l13_n878(x)
- if (x < 1)
- fun_l14_n703(x)
- else
- fun_l14_n67(x)
- end
-end
-
-def fun_l13_n879(x)
- if (x < 1)
- fun_l14_n496(x)
- else
- fun_l14_n197(x)
- end
-end
-
-def fun_l13_n880(x)
- if (x < 1)
- fun_l14_n369(x)
- else
- fun_l14_n834(x)
- end
-end
-
-def fun_l13_n881(x)
- if (x < 1)
- fun_l14_n892(x)
- else
- fun_l14_n210(x)
- end
-end
-
-def fun_l13_n882(x)
- if (x < 1)
- fun_l14_n587(x)
- else
- fun_l14_n472(x)
- end
-end
-
-def fun_l13_n883(x)
- if (x < 1)
- fun_l14_n1(x)
- else
- fun_l14_n778(x)
- end
-end
-
-def fun_l13_n884(x)
- if (x < 1)
- fun_l14_n762(x)
- else
- fun_l14_n286(x)
- end
-end
-
-def fun_l13_n885(x)
- if (x < 1)
- fun_l14_n36(x)
- else
- fun_l14_n326(x)
- end
-end
-
-def fun_l13_n886(x)
- if (x < 1)
- fun_l14_n857(x)
- else
- fun_l14_n564(x)
- end
-end
-
-def fun_l13_n887(x)
- if (x < 1)
- fun_l14_n461(x)
- else
- fun_l14_n415(x)
- end
-end
-
-def fun_l13_n888(x)
- if (x < 1)
- fun_l14_n225(x)
- else
- fun_l14_n783(x)
- end
-end
-
-def fun_l13_n889(x)
- if (x < 1)
- fun_l14_n10(x)
- else
- fun_l14_n114(x)
- end
-end
-
-def fun_l13_n890(x)
- if (x < 1)
- fun_l14_n670(x)
- else
- fun_l14_n473(x)
- end
-end
-
-def fun_l13_n891(x)
- if (x < 1)
- fun_l14_n777(x)
- else
- fun_l14_n98(x)
- end
-end
-
-def fun_l13_n892(x)
- if (x < 1)
- fun_l14_n600(x)
- else
- fun_l14_n808(x)
- end
-end
-
-def fun_l13_n893(x)
- if (x < 1)
- fun_l14_n605(x)
- else
- fun_l14_n687(x)
- end
-end
-
-def fun_l13_n894(x)
- if (x < 1)
- fun_l14_n29(x)
- else
- fun_l14_n190(x)
- end
-end
-
-def fun_l13_n895(x)
- if (x < 1)
- fun_l14_n26(x)
- else
- fun_l14_n887(x)
- end
-end
-
-def fun_l13_n896(x)
- if (x < 1)
- fun_l14_n680(x)
- else
- fun_l14_n413(x)
- end
-end
-
-def fun_l13_n897(x)
- if (x < 1)
- fun_l14_n634(x)
- else
- fun_l14_n184(x)
- end
-end
-
-def fun_l13_n898(x)
- if (x < 1)
- fun_l14_n420(x)
- else
- fun_l14_n603(x)
- end
-end
-
-def fun_l13_n899(x)
- if (x < 1)
- fun_l14_n702(x)
- else
- fun_l14_n54(x)
- end
-end
-
-def fun_l13_n900(x)
- if (x < 1)
- fun_l14_n620(x)
- else
- fun_l14_n849(x)
- end
-end
-
-def fun_l13_n901(x)
- if (x < 1)
- fun_l14_n848(x)
- else
- fun_l14_n384(x)
- end
-end
-
-def fun_l13_n902(x)
- if (x < 1)
- fun_l14_n726(x)
- else
- fun_l14_n624(x)
- end
-end
-
-def fun_l13_n903(x)
- if (x < 1)
- fun_l14_n663(x)
- else
- fun_l14_n395(x)
- end
-end
-
-def fun_l13_n904(x)
- if (x < 1)
- fun_l14_n803(x)
- else
- fun_l14_n979(x)
- end
-end
-
-def fun_l13_n905(x)
- if (x < 1)
- fun_l14_n487(x)
- else
- fun_l14_n530(x)
- end
-end
-
-def fun_l13_n906(x)
- if (x < 1)
- fun_l14_n737(x)
- else
- fun_l14_n679(x)
- end
-end
-
-def fun_l13_n907(x)
- if (x < 1)
- fun_l14_n815(x)
- else
- fun_l14_n84(x)
- end
-end
-
-def fun_l13_n908(x)
- if (x < 1)
- fun_l14_n116(x)
- else
- fun_l14_n820(x)
- end
-end
-
-def fun_l13_n909(x)
- if (x < 1)
- fun_l14_n353(x)
- else
- fun_l14_n949(x)
- end
-end
-
-def fun_l13_n910(x)
- if (x < 1)
- fun_l14_n271(x)
- else
- fun_l14_n168(x)
- end
-end
-
-def fun_l13_n911(x)
- if (x < 1)
- fun_l14_n54(x)
- else
- fun_l14_n236(x)
- end
-end
-
-def fun_l13_n912(x)
- if (x < 1)
- fun_l14_n391(x)
- else
- fun_l14_n152(x)
- end
-end
-
-def fun_l13_n913(x)
- if (x < 1)
- fun_l14_n450(x)
- else
- fun_l14_n521(x)
- end
-end
-
-def fun_l13_n914(x)
- if (x < 1)
- fun_l14_n36(x)
- else
- fun_l14_n995(x)
- end
-end
-
-def fun_l13_n915(x)
- if (x < 1)
- fun_l14_n177(x)
- else
- fun_l14_n358(x)
- end
-end
-
-def fun_l13_n916(x)
- if (x < 1)
- fun_l14_n36(x)
- else
- fun_l14_n32(x)
- end
-end
-
-def fun_l13_n917(x)
- if (x < 1)
- fun_l14_n970(x)
- else
- fun_l14_n957(x)
- end
-end
-
-def fun_l13_n918(x)
- if (x < 1)
- fun_l14_n229(x)
- else
- fun_l14_n138(x)
- end
-end
-
-def fun_l13_n919(x)
- if (x < 1)
- fun_l14_n439(x)
- else
- fun_l14_n641(x)
- end
-end
-
-def fun_l13_n920(x)
- if (x < 1)
- fun_l14_n318(x)
- else
- fun_l14_n649(x)
- end
-end
-
-def fun_l13_n921(x)
- if (x < 1)
- fun_l14_n455(x)
- else
- fun_l14_n312(x)
- end
-end
-
-def fun_l13_n922(x)
- if (x < 1)
- fun_l14_n15(x)
- else
- fun_l14_n825(x)
- end
-end
-
-def fun_l13_n923(x)
- if (x < 1)
- fun_l14_n546(x)
- else
- fun_l14_n629(x)
- end
-end
-
-def fun_l13_n924(x)
- if (x < 1)
- fun_l14_n298(x)
- else
- fun_l14_n563(x)
- end
-end
-
-def fun_l13_n925(x)
- if (x < 1)
- fun_l14_n312(x)
- else
- fun_l14_n736(x)
- end
-end
-
-def fun_l13_n926(x)
- if (x < 1)
- fun_l14_n767(x)
- else
- fun_l14_n107(x)
- end
-end
-
-def fun_l13_n927(x)
- if (x < 1)
- fun_l14_n966(x)
- else
- fun_l14_n765(x)
- end
-end
-
-def fun_l13_n928(x)
- if (x < 1)
- fun_l14_n545(x)
- else
- fun_l14_n383(x)
- end
-end
-
-def fun_l13_n929(x)
- if (x < 1)
- fun_l14_n389(x)
- else
- fun_l14_n48(x)
- end
-end
-
-def fun_l13_n930(x)
- if (x < 1)
- fun_l14_n142(x)
- else
- fun_l14_n632(x)
- end
-end
-
-def fun_l13_n931(x)
- if (x < 1)
- fun_l14_n146(x)
- else
- fun_l14_n275(x)
- end
-end
-
-def fun_l13_n932(x)
- if (x < 1)
- fun_l14_n754(x)
- else
- fun_l14_n380(x)
- end
-end
-
-def fun_l13_n933(x)
- if (x < 1)
- fun_l14_n561(x)
- else
- fun_l14_n677(x)
- end
-end
-
-def fun_l13_n934(x)
- if (x < 1)
- fun_l14_n253(x)
- else
- fun_l14_n86(x)
- end
-end
-
-def fun_l13_n935(x)
- if (x < 1)
- fun_l14_n528(x)
- else
- fun_l14_n177(x)
- end
-end
-
-def fun_l13_n936(x)
- if (x < 1)
- fun_l14_n938(x)
- else
- fun_l14_n265(x)
- end
-end
-
-def fun_l13_n937(x)
- if (x < 1)
- fun_l14_n763(x)
- else
- fun_l14_n662(x)
- end
-end
-
-def fun_l13_n938(x)
- if (x < 1)
- fun_l14_n836(x)
- else
- fun_l14_n734(x)
- end
-end
-
-def fun_l13_n939(x)
- if (x < 1)
- fun_l14_n127(x)
- else
- fun_l14_n111(x)
- end
-end
-
-def fun_l13_n940(x)
- if (x < 1)
- fun_l14_n356(x)
- else
- fun_l14_n544(x)
- end
-end
-
-def fun_l13_n941(x)
- if (x < 1)
- fun_l14_n525(x)
- else
- fun_l14_n762(x)
- end
-end
-
-def fun_l13_n942(x)
- if (x < 1)
- fun_l14_n333(x)
- else
- fun_l14_n639(x)
- end
-end
-
-def fun_l13_n943(x)
- if (x < 1)
- fun_l14_n452(x)
- else
- fun_l14_n944(x)
- end
-end
-
-def fun_l13_n944(x)
- if (x < 1)
- fun_l14_n827(x)
- else
- fun_l14_n961(x)
- end
-end
-
-def fun_l13_n945(x)
- if (x < 1)
- fun_l14_n991(x)
- else
- fun_l14_n431(x)
- end
-end
-
-def fun_l13_n946(x)
- if (x < 1)
- fun_l14_n646(x)
- else
- fun_l14_n183(x)
- end
-end
-
-def fun_l13_n947(x)
- if (x < 1)
- fun_l14_n107(x)
- else
- fun_l14_n273(x)
- end
-end
-
-def fun_l13_n948(x)
- if (x < 1)
- fun_l14_n210(x)
- else
- fun_l14_n664(x)
- end
-end
-
-def fun_l13_n949(x)
- if (x < 1)
- fun_l14_n542(x)
- else
- fun_l14_n462(x)
- end
-end
-
-def fun_l13_n950(x)
- if (x < 1)
- fun_l14_n891(x)
- else
- fun_l14_n486(x)
- end
-end
-
-def fun_l13_n951(x)
- if (x < 1)
- fun_l14_n527(x)
- else
- fun_l14_n721(x)
- end
-end
-
-def fun_l13_n952(x)
- if (x < 1)
- fun_l14_n745(x)
- else
- fun_l14_n11(x)
- end
-end
-
-def fun_l13_n953(x)
- if (x < 1)
- fun_l14_n427(x)
- else
- fun_l14_n521(x)
- end
-end
-
-def fun_l13_n954(x)
- if (x < 1)
- fun_l14_n907(x)
- else
- fun_l14_n878(x)
- end
-end
-
-def fun_l13_n955(x)
- if (x < 1)
- fun_l14_n818(x)
- else
- fun_l14_n722(x)
- end
-end
-
-def fun_l13_n956(x)
- if (x < 1)
- fun_l14_n567(x)
- else
- fun_l14_n71(x)
- end
-end
-
-def fun_l13_n957(x)
- if (x < 1)
- fun_l14_n203(x)
- else
- fun_l14_n221(x)
- end
-end
-
-def fun_l13_n958(x)
- if (x < 1)
- fun_l14_n173(x)
- else
- fun_l14_n854(x)
- end
-end
-
-def fun_l13_n959(x)
- if (x < 1)
- fun_l14_n201(x)
- else
- fun_l14_n930(x)
- end
-end
-
-def fun_l13_n960(x)
- if (x < 1)
- fun_l14_n736(x)
- else
- fun_l14_n539(x)
- end
-end
-
-def fun_l13_n961(x)
- if (x < 1)
- fun_l14_n459(x)
- else
- fun_l14_n771(x)
- end
-end
-
-def fun_l13_n962(x)
- if (x < 1)
- fun_l14_n682(x)
- else
- fun_l14_n19(x)
- end
-end
-
-def fun_l13_n963(x)
- if (x < 1)
- fun_l14_n897(x)
- else
- fun_l14_n650(x)
- end
-end
-
-def fun_l13_n964(x)
- if (x < 1)
- fun_l14_n814(x)
- else
- fun_l14_n726(x)
- end
-end
-
-def fun_l13_n965(x)
- if (x < 1)
- fun_l14_n31(x)
- else
- fun_l14_n211(x)
- end
-end
-
-def fun_l13_n966(x)
- if (x < 1)
- fun_l14_n89(x)
- else
- fun_l14_n407(x)
- end
-end
-
-def fun_l13_n967(x)
- if (x < 1)
- fun_l14_n772(x)
- else
- fun_l14_n7(x)
- end
-end
-
-def fun_l13_n968(x)
- if (x < 1)
- fun_l14_n764(x)
- else
- fun_l14_n523(x)
- end
-end
-
-def fun_l13_n969(x)
- if (x < 1)
- fun_l14_n680(x)
- else
- fun_l14_n674(x)
- end
-end
-
-def fun_l13_n970(x)
- if (x < 1)
- fun_l14_n517(x)
- else
- fun_l14_n346(x)
- end
-end
-
-def fun_l13_n971(x)
- if (x < 1)
- fun_l14_n136(x)
- else
- fun_l14_n921(x)
- end
-end
-
-def fun_l13_n972(x)
- if (x < 1)
- fun_l14_n400(x)
- else
- fun_l14_n901(x)
- end
-end
-
-def fun_l13_n973(x)
- if (x < 1)
- fun_l14_n62(x)
- else
- fun_l14_n784(x)
- end
-end
-
-def fun_l13_n974(x)
- if (x < 1)
- fun_l14_n411(x)
- else
- fun_l14_n889(x)
- end
-end
-
-def fun_l13_n975(x)
- if (x < 1)
- fun_l14_n291(x)
- else
- fun_l14_n198(x)
- end
-end
-
-def fun_l13_n976(x)
- if (x < 1)
- fun_l14_n229(x)
- else
- fun_l14_n346(x)
- end
-end
-
-def fun_l13_n977(x)
- if (x < 1)
- fun_l14_n769(x)
- else
- fun_l14_n381(x)
- end
-end
-
-def fun_l13_n978(x)
- if (x < 1)
- fun_l14_n430(x)
- else
- fun_l14_n205(x)
- end
-end
-
-def fun_l13_n979(x)
- if (x < 1)
- fun_l14_n170(x)
- else
- fun_l14_n927(x)
- end
-end
-
-def fun_l13_n980(x)
- if (x < 1)
- fun_l14_n12(x)
- else
- fun_l14_n605(x)
- end
-end
-
-def fun_l13_n981(x)
- if (x < 1)
- fun_l14_n613(x)
- else
- fun_l14_n912(x)
- end
-end
-
-def fun_l13_n982(x)
- if (x < 1)
- fun_l14_n982(x)
- else
- fun_l14_n707(x)
- end
-end
-
-def fun_l13_n983(x)
- if (x < 1)
- fun_l14_n230(x)
- else
- fun_l14_n239(x)
- end
-end
-
-def fun_l13_n984(x)
- if (x < 1)
- fun_l14_n55(x)
- else
- fun_l14_n337(x)
- end
-end
-
-def fun_l13_n985(x)
- if (x < 1)
- fun_l14_n853(x)
- else
- fun_l14_n425(x)
- end
-end
-
-def fun_l13_n986(x)
- if (x < 1)
- fun_l14_n14(x)
- else
- fun_l14_n921(x)
- end
-end
-
-def fun_l13_n987(x)
- if (x < 1)
- fun_l14_n166(x)
- else
- fun_l14_n948(x)
- end
-end
-
-def fun_l13_n988(x)
- if (x < 1)
- fun_l14_n752(x)
- else
- fun_l14_n226(x)
- end
-end
-
-def fun_l13_n989(x)
- if (x < 1)
- fun_l14_n730(x)
- else
- fun_l14_n671(x)
- end
-end
-
-def fun_l13_n990(x)
- if (x < 1)
- fun_l14_n603(x)
- else
- fun_l14_n903(x)
- end
-end
-
-def fun_l13_n991(x)
- if (x < 1)
- fun_l14_n598(x)
- else
- fun_l14_n842(x)
- end
-end
-
-def fun_l13_n992(x)
- if (x < 1)
- fun_l14_n230(x)
- else
- fun_l14_n704(x)
- end
-end
-
-def fun_l13_n993(x)
- if (x < 1)
- fun_l14_n897(x)
- else
- fun_l14_n190(x)
- end
-end
-
-def fun_l13_n994(x)
- if (x < 1)
- fun_l14_n640(x)
- else
- fun_l14_n622(x)
- end
-end
-
-def fun_l13_n995(x)
- if (x < 1)
- fun_l14_n988(x)
- else
- fun_l14_n471(x)
- end
-end
-
-def fun_l13_n996(x)
- if (x < 1)
- fun_l14_n721(x)
- else
- fun_l14_n672(x)
- end
-end
-
-def fun_l13_n997(x)
- if (x < 1)
- fun_l14_n425(x)
- else
- fun_l14_n885(x)
- end
-end
-
-def fun_l13_n998(x)
- if (x < 1)
- fun_l14_n279(x)
- else
- fun_l14_n966(x)
- end
-end
-
-def fun_l13_n999(x)
- if (x < 1)
- fun_l14_n610(x)
- else
- fun_l14_n319(x)
- end
-end
-
-def fun_l14_n0(x)
- if (x < 1)
- fun_l15_n46(x)
- else
- fun_l15_n966(x)
- end
-end
-
-def fun_l14_n1(x)
- if (x < 1)
- fun_l15_n360(x)
- else
- fun_l15_n637(x)
- end
-end
-
-def fun_l14_n2(x)
- if (x < 1)
- fun_l15_n381(x)
- else
- fun_l15_n728(x)
- end
-end
-
-def fun_l14_n3(x)
- if (x < 1)
- fun_l15_n189(x)
- else
- fun_l15_n826(x)
- end
-end
-
-def fun_l14_n4(x)
- if (x < 1)
- fun_l15_n789(x)
- else
- fun_l15_n157(x)
- end
-end
-
-def fun_l14_n5(x)
- if (x < 1)
- fun_l15_n132(x)
- else
- fun_l15_n703(x)
- end
-end
-
-def fun_l14_n6(x)
- if (x < 1)
- fun_l15_n64(x)
- else
- fun_l15_n537(x)
- end
-end
-
-def fun_l14_n7(x)
- if (x < 1)
- fun_l15_n423(x)
- else
- fun_l15_n162(x)
- end
-end
-
-def fun_l14_n8(x)
- if (x < 1)
- fun_l15_n177(x)
- else
- fun_l15_n923(x)
- end
-end
-
-def fun_l14_n9(x)
- if (x < 1)
- fun_l15_n508(x)
- else
- fun_l15_n135(x)
- end
-end
-
-def fun_l14_n10(x)
- if (x < 1)
- fun_l15_n640(x)
- else
- fun_l15_n869(x)
- end
-end
-
-def fun_l14_n11(x)
- if (x < 1)
- fun_l15_n592(x)
- else
- fun_l15_n519(x)
- end
-end
-
-def fun_l14_n12(x)
- if (x < 1)
- fun_l15_n332(x)
- else
- fun_l15_n263(x)
- end
-end
-
-def fun_l14_n13(x)
- if (x < 1)
- fun_l15_n644(x)
- else
- fun_l15_n21(x)
- end
-end
-
-def fun_l14_n14(x)
- if (x < 1)
- fun_l15_n436(x)
- else
- fun_l15_n566(x)
- end
-end
-
-def fun_l14_n15(x)
- if (x < 1)
- fun_l15_n160(x)
- else
- fun_l15_n291(x)
- end
-end
-
-def fun_l14_n16(x)
- if (x < 1)
- fun_l15_n726(x)
- else
- fun_l15_n704(x)
- end
-end
-
-def fun_l14_n17(x)
- if (x < 1)
- fun_l15_n237(x)
- else
- fun_l15_n962(x)
- end
-end
-
-def fun_l14_n18(x)
- if (x < 1)
- fun_l15_n941(x)
- else
- fun_l15_n217(x)
- end
-end
-
-def fun_l14_n19(x)
- if (x < 1)
- fun_l15_n904(x)
- else
- fun_l15_n36(x)
- end
-end
-
-def fun_l14_n20(x)
- if (x < 1)
- fun_l15_n74(x)
- else
- fun_l15_n790(x)
- end
-end
-
-def fun_l14_n21(x)
- if (x < 1)
- fun_l15_n694(x)
- else
- fun_l15_n298(x)
- end
-end
-
-def fun_l14_n22(x)
- if (x < 1)
- fun_l15_n757(x)
- else
- fun_l15_n636(x)
- end
-end
-
-def fun_l14_n23(x)
- if (x < 1)
- fun_l15_n989(x)
- else
- fun_l15_n508(x)
- end
-end
-
-def fun_l14_n24(x)
- if (x < 1)
- fun_l15_n80(x)
- else
- fun_l15_n686(x)
- end
-end
-
-def fun_l14_n25(x)
- if (x < 1)
- fun_l15_n365(x)
- else
- fun_l15_n922(x)
- end
-end
-
-def fun_l14_n26(x)
- if (x < 1)
- fun_l15_n922(x)
- else
- fun_l15_n207(x)
- end
-end
-
-def fun_l14_n27(x)
- if (x < 1)
- fun_l15_n406(x)
- else
- fun_l15_n481(x)
- end
-end
-
-def fun_l14_n28(x)
- if (x < 1)
- fun_l15_n986(x)
- else
- fun_l15_n181(x)
- end
-end
-
-def fun_l14_n29(x)
- if (x < 1)
- fun_l15_n958(x)
- else
- fun_l15_n804(x)
- end
-end
-
-def fun_l14_n30(x)
- if (x < 1)
- fun_l15_n233(x)
- else
- fun_l15_n877(x)
- end
-end
-
-def fun_l14_n31(x)
- if (x < 1)
- fun_l15_n648(x)
- else
- fun_l15_n547(x)
- end
-end
-
-def fun_l14_n32(x)
- if (x < 1)
- fun_l15_n641(x)
- else
- fun_l15_n628(x)
- end
-end
-
-def fun_l14_n33(x)
- if (x < 1)
- fun_l15_n351(x)
- else
- fun_l15_n280(x)
- end
-end
-
-def fun_l14_n34(x)
- if (x < 1)
- fun_l15_n373(x)
- else
- fun_l15_n948(x)
- end
-end
-
-def fun_l14_n35(x)
- if (x < 1)
- fun_l15_n761(x)
- else
- fun_l15_n384(x)
- end
-end
-
-def fun_l14_n36(x)
- if (x < 1)
- fun_l15_n75(x)
- else
- fun_l15_n581(x)
- end
-end
-
-def fun_l14_n37(x)
- if (x < 1)
- fun_l15_n962(x)
- else
- fun_l15_n723(x)
- end
-end
-
-def fun_l14_n38(x)
- if (x < 1)
- fun_l15_n422(x)
- else
- fun_l15_n953(x)
- end
-end
-
-def fun_l14_n39(x)
- if (x < 1)
- fun_l15_n123(x)
- else
- fun_l15_n989(x)
- end
-end
-
-def fun_l14_n40(x)
- if (x < 1)
- fun_l15_n789(x)
- else
- fun_l15_n472(x)
- end
-end
-
-def fun_l14_n41(x)
- if (x < 1)
- fun_l15_n261(x)
- else
- fun_l15_n997(x)
- end
-end
-
-def fun_l14_n42(x)
- if (x < 1)
- fun_l15_n231(x)
- else
- fun_l15_n703(x)
- end
-end
-
-def fun_l14_n43(x)
- if (x < 1)
- fun_l15_n520(x)
- else
- fun_l15_n252(x)
- end
-end
-
-def fun_l14_n44(x)
- if (x < 1)
- fun_l15_n966(x)
- else
- fun_l15_n244(x)
- end
-end
-
-def fun_l14_n45(x)
- if (x < 1)
- fun_l15_n192(x)
- else
- fun_l15_n280(x)
- end
-end
-
-def fun_l14_n46(x)
- if (x < 1)
- fun_l15_n422(x)
- else
- fun_l15_n847(x)
- end
-end
-
-def fun_l14_n47(x)
- if (x < 1)
- fun_l15_n228(x)
- else
- fun_l15_n564(x)
- end
-end
-
-def fun_l14_n48(x)
- if (x < 1)
- fun_l15_n263(x)
- else
- fun_l15_n226(x)
- end
-end
-
-def fun_l14_n49(x)
- if (x < 1)
- fun_l15_n440(x)
- else
- fun_l15_n592(x)
- end
-end
-
-def fun_l14_n50(x)
- if (x < 1)
- fun_l15_n464(x)
- else
- fun_l15_n135(x)
- end
-end
-
-def fun_l14_n51(x)
- if (x < 1)
- fun_l15_n903(x)
- else
- fun_l15_n821(x)
- end
-end
-
-def fun_l14_n52(x)
- if (x < 1)
- fun_l15_n472(x)
- else
- fun_l15_n322(x)
- end
-end
-
-def fun_l14_n53(x)
- if (x < 1)
- fun_l15_n107(x)
- else
- fun_l15_n497(x)
- end
-end
-
-def fun_l14_n54(x)
- if (x < 1)
- fun_l15_n692(x)
- else
- fun_l15_n392(x)
- end
-end
-
-def fun_l14_n55(x)
- if (x < 1)
- fun_l15_n694(x)
- else
- fun_l15_n995(x)
- end
-end
-
-def fun_l14_n56(x)
- if (x < 1)
- fun_l15_n181(x)
- else
- fun_l15_n200(x)
- end
-end
-
-def fun_l14_n57(x)
- if (x < 1)
- fun_l15_n721(x)
- else
- fun_l15_n849(x)
- end
-end
-
-def fun_l14_n58(x)
- if (x < 1)
- fun_l15_n626(x)
- else
- fun_l15_n866(x)
- end
-end
-
-def fun_l14_n59(x)
- if (x < 1)
- fun_l15_n689(x)
- else
- fun_l15_n387(x)
- end
-end
-
-def fun_l14_n60(x)
- if (x < 1)
- fun_l15_n805(x)
- else
- fun_l15_n842(x)
- end
-end
-
-def fun_l14_n61(x)
- if (x < 1)
- fun_l15_n457(x)
- else
- fun_l15_n472(x)
- end
-end
-
-def fun_l14_n62(x)
- if (x < 1)
- fun_l15_n884(x)
- else
- fun_l15_n786(x)
- end
-end
-
-def fun_l14_n63(x)
- if (x < 1)
- fun_l15_n509(x)
- else
- fun_l15_n106(x)
- end
-end
-
-def fun_l14_n64(x)
- if (x < 1)
- fun_l15_n600(x)
- else
- fun_l15_n314(x)
- end
-end
-
-def fun_l14_n65(x)
- if (x < 1)
- fun_l15_n761(x)
- else
- fun_l15_n362(x)
- end
-end
-
-def fun_l14_n66(x)
- if (x < 1)
- fun_l15_n812(x)
- else
- fun_l15_n640(x)
- end
-end
-
-def fun_l14_n67(x)
- if (x < 1)
- fun_l15_n862(x)
- else
- fun_l15_n627(x)
- end
-end
-
-def fun_l14_n68(x)
- if (x < 1)
- fun_l15_n503(x)
- else
- fun_l15_n381(x)
- end
-end
-
-def fun_l14_n69(x)
- if (x < 1)
- fun_l15_n482(x)
- else
- fun_l15_n851(x)
- end
-end
-
-def fun_l14_n70(x)
- if (x < 1)
- fun_l15_n253(x)
- else
- fun_l15_n728(x)
- end
-end
-
-def fun_l14_n71(x)
- if (x < 1)
- fun_l15_n195(x)
- else
- fun_l15_n537(x)
- end
-end
-
-def fun_l14_n72(x)
- if (x < 1)
- fun_l15_n482(x)
- else
- fun_l15_n604(x)
- end
-end
-
-def fun_l14_n73(x)
- if (x < 1)
- fun_l15_n373(x)
- else
- fun_l15_n502(x)
- end
-end
-
-def fun_l14_n74(x)
- if (x < 1)
- fun_l15_n183(x)
- else
- fun_l15_n50(x)
- end
-end
-
-def fun_l14_n75(x)
- if (x < 1)
- fun_l15_n397(x)
- else
- fun_l15_n467(x)
- end
-end
-
-def fun_l14_n76(x)
- if (x < 1)
- fun_l15_n207(x)
- else
- fun_l15_n566(x)
- end
-end
-
-def fun_l14_n77(x)
- if (x < 1)
- fun_l15_n416(x)
- else
- fun_l15_n846(x)
- end
-end
-
-def fun_l14_n78(x)
- if (x < 1)
- fun_l15_n426(x)
- else
- fun_l15_n142(x)
- end
-end
-
-def fun_l14_n79(x)
- if (x < 1)
- fun_l15_n234(x)
- else
- fun_l15_n5(x)
- end
-end
-
-def fun_l14_n80(x)
- if (x < 1)
- fun_l15_n133(x)
- else
- fun_l15_n216(x)
- end
-end
-
-def fun_l14_n81(x)
- if (x < 1)
- fun_l15_n23(x)
- else
- fun_l15_n126(x)
- end
-end
-
-def fun_l14_n82(x)
- if (x < 1)
- fun_l15_n129(x)
- else
- fun_l15_n614(x)
- end
-end
-
-def fun_l14_n83(x)
- if (x < 1)
- fun_l15_n560(x)
- else
- fun_l15_n559(x)
- end
-end
-
-def fun_l14_n84(x)
- if (x < 1)
- fun_l15_n113(x)
- else
- fun_l15_n300(x)
- end
-end
-
-def fun_l14_n85(x)
- if (x < 1)
- fun_l15_n584(x)
- else
- fun_l15_n249(x)
- end
-end
-
-def fun_l14_n86(x)
- if (x < 1)
- fun_l15_n933(x)
- else
- fun_l15_n280(x)
- end
-end
-
-def fun_l14_n87(x)
- if (x < 1)
- fun_l15_n528(x)
- else
- fun_l15_n350(x)
- end
-end
-
-def fun_l14_n88(x)
- if (x < 1)
- fun_l15_n568(x)
- else
- fun_l15_n762(x)
- end
-end
-
-def fun_l14_n89(x)
- if (x < 1)
- fun_l15_n190(x)
- else
- fun_l15_n858(x)
- end
-end
-
-def fun_l14_n90(x)
- if (x < 1)
- fun_l15_n896(x)
- else
- fun_l15_n543(x)
- end
-end
-
-def fun_l14_n91(x)
- if (x < 1)
- fun_l15_n937(x)
- else
- fun_l15_n593(x)
- end
-end
-
-def fun_l14_n92(x)
- if (x < 1)
- fun_l15_n135(x)
- else
- fun_l15_n5(x)
- end
-end
-
-def fun_l14_n93(x)
- if (x < 1)
- fun_l15_n351(x)
- else
- fun_l15_n779(x)
- end
-end
-
-def fun_l14_n94(x)
- if (x < 1)
- fun_l15_n617(x)
- else
- fun_l15_n375(x)
- end
-end
-
-def fun_l14_n95(x)
- if (x < 1)
- fun_l15_n111(x)
- else
- fun_l15_n870(x)
- end
-end
-
-def fun_l14_n96(x)
- if (x < 1)
- fun_l15_n187(x)
- else
- fun_l15_n881(x)
- end
-end
-
-def fun_l14_n97(x)
- if (x < 1)
- fun_l15_n150(x)
- else
- fun_l15_n98(x)
- end
-end
-
-def fun_l14_n98(x)
- if (x < 1)
- fun_l15_n629(x)
- else
- fun_l15_n548(x)
- end
-end
-
-def fun_l14_n99(x)
- if (x < 1)
- fun_l15_n37(x)
- else
- fun_l15_n383(x)
- end
-end
-
-def fun_l14_n100(x)
- if (x < 1)
- fun_l15_n719(x)
- else
- fun_l15_n503(x)
- end
-end
-
-def fun_l14_n101(x)
- if (x < 1)
- fun_l15_n415(x)
- else
- fun_l15_n650(x)
- end
-end
-
-def fun_l14_n102(x)
- if (x < 1)
- fun_l15_n924(x)
- else
- fun_l15_n520(x)
- end
-end
-
-def fun_l14_n103(x)
- if (x < 1)
- fun_l15_n194(x)
- else
- fun_l15_n613(x)
- end
-end
-
-def fun_l14_n104(x)
- if (x < 1)
- fun_l15_n909(x)
- else
- fun_l15_n333(x)
- end
-end
-
-def fun_l14_n105(x)
- if (x < 1)
- fun_l15_n586(x)
- else
- fun_l15_n2(x)
- end
-end
-
-def fun_l14_n106(x)
- if (x < 1)
- fun_l15_n373(x)
- else
- fun_l15_n316(x)
- end
-end
-
-def fun_l14_n107(x)
- if (x < 1)
- fun_l15_n737(x)
- else
- fun_l15_n469(x)
- end
-end
-
-def fun_l14_n108(x)
- if (x < 1)
- fun_l15_n841(x)
- else
- fun_l15_n888(x)
- end
-end
-
-def fun_l14_n109(x)
- if (x < 1)
- fun_l15_n165(x)
- else
- fun_l15_n108(x)
- end
-end
-
-def fun_l14_n110(x)
- if (x < 1)
- fun_l15_n344(x)
- else
- fun_l15_n893(x)
- end
-end
-
-def fun_l14_n111(x)
- if (x < 1)
- fun_l15_n424(x)
- else
- fun_l15_n702(x)
- end
-end
-
-def fun_l14_n112(x)
- if (x < 1)
- fun_l15_n161(x)
- else
- fun_l15_n827(x)
- end
-end
-
-def fun_l14_n113(x)
- if (x < 1)
- fun_l15_n982(x)
- else
- fun_l15_n172(x)
- end
-end
-
-def fun_l14_n114(x)
- if (x < 1)
- fun_l15_n233(x)
- else
- fun_l15_n178(x)
- end
-end
-
-def fun_l14_n115(x)
- if (x < 1)
- fun_l15_n130(x)
- else
- fun_l15_n266(x)
- end
-end
-
-def fun_l14_n116(x)
- if (x < 1)
- fun_l15_n32(x)
- else
- fun_l15_n63(x)
- end
-end
-
-def fun_l14_n117(x)
- if (x < 1)
- fun_l15_n117(x)
- else
- fun_l15_n659(x)
- end
-end
-
-def fun_l14_n118(x)
- if (x < 1)
- fun_l15_n607(x)
- else
- fun_l15_n516(x)
- end
-end
-
-def fun_l14_n119(x)
- if (x < 1)
- fun_l15_n30(x)
- else
- fun_l15_n130(x)
- end
-end
-
-def fun_l14_n120(x)
- if (x < 1)
- fun_l15_n510(x)
- else
- fun_l15_n789(x)
- end
-end
-
-def fun_l14_n121(x)
- if (x < 1)
- fun_l15_n906(x)
- else
- fun_l15_n700(x)
- end
-end
-
-def fun_l14_n122(x)
- if (x < 1)
- fun_l15_n51(x)
- else
- fun_l15_n378(x)
- end
-end
-
-def fun_l14_n123(x)
- if (x < 1)
- fun_l15_n243(x)
- else
- fun_l15_n896(x)
- end
-end
-
-def fun_l14_n124(x)
- if (x < 1)
- fun_l15_n23(x)
- else
- fun_l15_n648(x)
- end
-end
-
-def fun_l14_n125(x)
- if (x < 1)
- fun_l15_n290(x)
- else
- fun_l15_n604(x)
- end
-end
-
-def fun_l14_n126(x)
- if (x < 1)
- fun_l15_n410(x)
- else
- fun_l15_n646(x)
- end
-end
-
-def fun_l14_n127(x)
- if (x < 1)
- fun_l15_n162(x)
- else
- fun_l15_n43(x)
- end
-end
-
-def fun_l14_n128(x)
- if (x < 1)
- fun_l15_n775(x)
- else
- fun_l15_n176(x)
- end
-end
-
-def fun_l14_n129(x)
- if (x < 1)
- fun_l15_n642(x)
- else
- fun_l15_n709(x)
- end
-end
-
-def fun_l14_n130(x)
- if (x < 1)
- fun_l15_n669(x)
- else
- fun_l15_n936(x)
- end
-end
-
-def fun_l14_n131(x)
- if (x < 1)
- fun_l15_n301(x)
- else
- fun_l15_n578(x)
- end
-end
-
-def fun_l14_n132(x)
- if (x < 1)
- fun_l15_n112(x)
- else
- fun_l15_n72(x)
- end
-end
-
-def fun_l14_n133(x)
- if (x < 1)
- fun_l15_n293(x)
- else
- fun_l15_n516(x)
- end
-end
-
-def fun_l14_n134(x)
- if (x < 1)
- fun_l15_n525(x)
- else
- fun_l15_n199(x)
- end
-end
-
-def fun_l14_n135(x)
- if (x < 1)
- fun_l15_n168(x)
- else
- fun_l15_n430(x)
- end
-end
-
-def fun_l14_n136(x)
- if (x < 1)
- fun_l15_n889(x)
- else
- fun_l15_n635(x)
- end
-end
-
-def fun_l14_n137(x)
- if (x < 1)
- fun_l15_n348(x)
- else
- fun_l15_n445(x)
- end
-end
-
-def fun_l14_n138(x)
- if (x < 1)
- fun_l15_n828(x)
- else
- fun_l15_n23(x)
- end
-end
-
-def fun_l14_n139(x)
- if (x < 1)
- fun_l15_n621(x)
- else
- fun_l15_n25(x)
- end
-end
-
-def fun_l14_n140(x)
- if (x < 1)
- fun_l15_n268(x)
- else
- fun_l15_n105(x)
- end
-end
-
-def fun_l14_n141(x)
- if (x < 1)
- fun_l15_n296(x)
- else
- fun_l15_n856(x)
- end
-end
-
-def fun_l14_n142(x)
- if (x < 1)
- fun_l15_n206(x)
- else
- fun_l15_n417(x)
- end
-end
-
-def fun_l14_n143(x)
- if (x < 1)
- fun_l15_n203(x)
- else
- fun_l15_n240(x)
- end
-end
-
-def fun_l14_n144(x)
- if (x < 1)
- fun_l15_n556(x)
- else
- fun_l15_n47(x)
- end
-end
-
-def fun_l14_n145(x)
- if (x < 1)
- fun_l15_n340(x)
- else
- fun_l15_n511(x)
- end
-end
-
-def fun_l14_n146(x)
- if (x < 1)
- fun_l15_n250(x)
- else
- fun_l15_n402(x)
- end
-end
-
-def fun_l14_n147(x)
- if (x < 1)
- fun_l15_n4(x)
- else
- fun_l15_n26(x)
- end
-end
-
-def fun_l14_n148(x)
- if (x < 1)
- fun_l15_n52(x)
- else
- fun_l15_n366(x)
- end
-end
-
-def fun_l14_n149(x)
- if (x < 1)
- fun_l15_n163(x)
- else
- fun_l15_n884(x)
- end
-end
-
-def fun_l14_n150(x)
- if (x < 1)
- fun_l15_n677(x)
- else
- fun_l15_n509(x)
- end
-end
-
-def fun_l14_n151(x)
- if (x < 1)
- fun_l15_n949(x)
- else
- fun_l15_n393(x)
- end
-end
-
-def fun_l14_n152(x)
- if (x < 1)
- fun_l15_n719(x)
- else
- fun_l15_n307(x)
- end
-end
-
-def fun_l14_n153(x)
- if (x < 1)
- fun_l15_n12(x)
- else
- fun_l15_n985(x)
- end
-end
-
-def fun_l14_n154(x)
- if (x < 1)
- fun_l15_n639(x)
- else
- fun_l15_n367(x)
- end
-end
-
-def fun_l14_n155(x)
- if (x < 1)
- fun_l15_n401(x)
- else
- fun_l15_n431(x)
- end
-end
-
-def fun_l14_n156(x)
- if (x < 1)
- fun_l15_n897(x)
- else
- fun_l15_n136(x)
- end
-end
-
-def fun_l14_n157(x)
- if (x < 1)
- fun_l15_n792(x)
- else
- fun_l15_n865(x)
- end
-end
-
-def fun_l14_n158(x)
- if (x < 1)
- fun_l15_n851(x)
- else
- fun_l15_n167(x)
- end
-end
-
-def fun_l14_n159(x)
- if (x < 1)
- fun_l15_n643(x)
- else
- fun_l15_n458(x)
- end
-end
-
-def fun_l14_n160(x)
- if (x < 1)
- fun_l15_n539(x)
- else
- fun_l15_n36(x)
- end
-end
-
-def fun_l14_n161(x)
- if (x < 1)
- fun_l15_n91(x)
- else
- fun_l15_n130(x)
- end
-end
-
-def fun_l14_n162(x)
- if (x < 1)
- fun_l15_n214(x)
- else
- fun_l15_n712(x)
- end
-end
-
-def fun_l14_n163(x)
- if (x < 1)
- fun_l15_n47(x)
- else
- fun_l15_n799(x)
- end
-end
-
-def fun_l14_n164(x)
- if (x < 1)
- fun_l15_n715(x)
- else
- fun_l15_n888(x)
- end
-end
-
-def fun_l14_n165(x)
- if (x < 1)
- fun_l15_n904(x)
- else
- fun_l15_n484(x)
- end
-end
-
-def fun_l14_n166(x)
- if (x < 1)
- fun_l15_n870(x)
- else
- fun_l15_n121(x)
- end
-end
-
-def fun_l14_n167(x)
- if (x < 1)
- fun_l15_n960(x)
- else
- fun_l15_n33(x)
- end
-end
-
-def fun_l14_n168(x)
- if (x < 1)
- fun_l15_n16(x)
- else
- fun_l15_n24(x)
- end
-end
-
-def fun_l14_n169(x)
- if (x < 1)
- fun_l15_n913(x)
- else
- fun_l15_n793(x)
- end
-end
-
-def fun_l14_n170(x)
- if (x < 1)
- fun_l15_n35(x)
- else
- fun_l15_n204(x)
- end
-end
-
-def fun_l14_n171(x)
- if (x < 1)
- fun_l15_n526(x)
- else
- fun_l15_n92(x)
- end
-end
-
-def fun_l14_n172(x)
- if (x < 1)
- fun_l15_n648(x)
- else
- fun_l15_n535(x)
- end
-end
-
-def fun_l14_n173(x)
- if (x < 1)
- fun_l15_n415(x)
- else
- fun_l15_n610(x)
- end
-end
-
-def fun_l14_n174(x)
- if (x < 1)
- fun_l15_n352(x)
- else
- fun_l15_n256(x)
- end
-end
-
-def fun_l14_n175(x)
- if (x < 1)
- fun_l15_n692(x)
- else
- fun_l15_n686(x)
- end
-end
-
-def fun_l14_n176(x)
- if (x < 1)
- fun_l15_n189(x)
- else
- fun_l15_n307(x)
- end
-end
-
-def fun_l14_n177(x)
- if (x < 1)
- fun_l15_n725(x)
- else
- fun_l15_n714(x)
- end
-end
-
-def fun_l14_n178(x)
- if (x < 1)
- fun_l15_n43(x)
- else
- fun_l15_n392(x)
- end
-end
-
-def fun_l14_n179(x)
- if (x < 1)
- fun_l15_n890(x)
- else
- fun_l15_n887(x)
- end
-end
-
-def fun_l14_n180(x)
- if (x < 1)
- fun_l15_n499(x)
- else
- fun_l15_n729(x)
- end
-end
-
-def fun_l14_n181(x)
- if (x < 1)
- fun_l15_n714(x)
- else
- fun_l15_n417(x)
- end
-end
-
-def fun_l14_n182(x)
- if (x < 1)
- fun_l15_n935(x)
- else
- fun_l15_n671(x)
- end
-end
-
-def fun_l14_n183(x)
- if (x < 1)
- fun_l15_n123(x)
- else
- fun_l15_n349(x)
- end
-end
-
-def fun_l14_n184(x)
- if (x < 1)
- fun_l15_n653(x)
- else
- fun_l15_n160(x)
- end
-end
-
-def fun_l14_n185(x)
- if (x < 1)
- fun_l15_n43(x)
- else
- fun_l15_n965(x)
- end
-end
-
-def fun_l14_n186(x)
- if (x < 1)
- fun_l15_n38(x)
- else
- fun_l15_n411(x)
- end
-end
-
-def fun_l14_n187(x)
- if (x < 1)
- fun_l15_n788(x)
- else
- fun_l15_n297(x)
- end
-end
-
-def fun_l14_n188(x)
- if (x < 1)
- fun_l15_n83(x)
- else
- fun_l15_n784(x)
- end
-end
-
-def fun_l14_n189(x)
- if (x < 1)
- fun_l15_n403(x)
- else
- fun_l15_n469(x)
- end
-end
-
-def fun_l14_n190(x)
- if (x < 1)
- fun_l15_n77(x)
- else
- fun_l15_n55(x)
- end
-end
-
-def fun_l14_n191(x)
- if (x < 1)
- fun_l15_n835(x)
- else
- fun_l15_n462(x)
- end
-end
-
-def fun_l14_n192(x)
- if (x < 1)
- fun_l15_n830(x)
- else
- fun_l15_n680(x)
- end
-end
-
-def fun_l14_n193(x)
- if (x < 1)
- fun_l15_n750(x)
- else
- fun_l15_n580(x)
- end
-end
-
-def fun_l14_n194(x)
- if (x < 1)
- fun_l15_n668(x)
- else
- fun_l15_n911(x)
- end
-end
-
-def fun_l14_n195(x)
- if (x < 1)
- fun_l15_n90(x)
- else
- fun_l15_n232(x)
- end
-end
-
-def fun_l14_n196(x)
- if (x < 1)
- fun_l15_n936(x)
- else
- fun_l15_n127(x)
- end
-end
-
-def fun_l14_n197(x)
- if (x < 1)
- fun_l15_n566(x)
- else
- fun_l15_n687(x)
- end
-end
-
-def fun_l14_n198(x)
- if (x < 1)
- fun_l15_n797(x)
- else
- fun_l15_n835(x)
- end
-end
-
-def fun_l14_n199(x)
- if (x < 1)
- fun_l15_n96(x)
- else
- fun_l15_n917(x)
- end
-end
-
-def fun_l14_n200(x)
- if (x < 1)
- fun_l15_n891(x)
- else
- fun_l15_n566(x)
- end
-end
-
-def fun_l14_n201(x)
- if (x < 1)
- fun_l15_n697(x)
- else
- fun_l15_n218(x)
- end
-end
-
-def fun_l14_n202(x)
- if (x < 1)
- fun_l15_n802(x)
- else
- fun_l15_n977(x)
- end
-end
-
-def fun_l14_n203(x)
- if (x < 1)
- fun_l15_n38(x)
- else
- fun_l15_n992(x)
- end
-end
-
-def fun_l14_n204(x)
- if (x < 1)
- fun_l15_n591(x)
- else
- fun_l15_n394(x)
- end
-end
-
-def fun_l14_n205(x)
- if (x < 1)
- fun_l15_n552(x)
- else
- fun_l15_n522(x)
- end
-end
-
-def fun_l14_n206(x)
- if (x < 1)
- fun_l15_n90(x)
- else
- fun_l15_n470(x)
- end
-end
-
-def fun_l14_n207(x)
- if (x < 1)
- fun_l15_n92(x)
- else
- fun_l15_n148(x)
- end
-end
-
-def fun_l14_n208(x)
- if (x < 1)
- fun_l15_n954(x)
- else
- fun_l15_n769(x)
- end
-end
-
-def fun_l14_n209(x)
- if (x < 1)
- fun_l15_n32(x)
- else
- fun_l15_n211(x)
- end
-end
-
-def fun_l14_n210(x)
- if (x < 1)
- fun_l15_n338(x)
- else
- fun_l15_n678(x)
- end
-end
-
-def fun_l14_n211(x)
- if (x < 1)
- fun_l15_n113(x)
- else
- fun_l15_n605(x)
- end
-end
-
-def fun_l14_n212(x)
- if (x < 1)
- fun_l15_n359(x)
- else
- fun_l15_n970(x)
- end
-end
-
-def fun_l14_n213(x)
- if (x < 1)
- fun_l15_n437(x)
- else
- fun_l15_n279(x)
- end
-end
-
-def fun_l14_n214(x)
- if (x < 1)
- fun_l15_n782(x)
- else
- fun_l15_n344(x)
- end
-end
-
-def fun_l14_n215(x)
- if (x < 1)
- fun_l15_n501(x)
- else
- fun_l15_n19(x)
- end
-end
-
-def fun_l14_n216(x)
- if (x < 1)
- fun_l15_n525(x)
- else
- fun_l15_n269(x)
- end
-end
-
-def fun_l14_n217(x)
- if (x < 1)
- fun_l15_n35(x)
- else
- fun_l15_n786(x)
- end
-end
-
-def fun_l14_n218(x)
- if (x < 1)
- fun_l15_n759(x)
- else
- fun_l15_n547(x)
- end
-end
-
-def fun_l14_n219(x)
- if (x < 1)
- fun_l15_n260(x)
- else
- fun_l15_n155(x)
- end
-end
-
-def fun_l14_n220(x)
- if (x < 1)
- fun_l15_n691(x)
- else
- fun_l15_n969(x)
- end
-end
-
-def fun_l14_n221(x)
- if (x < 1)
- fun_l15_n632(x)
- else
- fun_l15_n803(x)
- end
-end
-
-def fun_l14_n222(x)
- if (x < 1)
- fun_l15_n652(x)
- else
- fun_l15_n70(x)
- end
-end
-
-def fun_l14_n223(x)
- if (x < 1)
- fun_l15_n710(x)
- else
- fun_l15_n873(x)
- end
-end
-
-def fun_l14_n224(x)
- if (x < 1)
- fun_l15_n3(x)
- else
- fun_l15_n509(x)
- end
-end
-
-def fun_l14_n225(x)
- if (x < 1)
- fun_l15_n37(x)
- else
- fun_l15_n814(x)
- end
-end
-
-def fun_l14_n226(x)
- if (x < 1)
- fun_l15_n88(x)
- else
- fun_l15_n683(x)
- end
-end
-
-def fun_l14_n227(x)
- if (x < 1)
- fun_l15_n898(x)
- else
- fun_l15_n996(x)
- end
-end
-
-def fun_l14_n228(x)
- if (x < 1)
- fun_l15_n510(x)
- else
- fun_l15_n315(x)
- end
-end
-
-def fun_l14_n229(x)
- if (x < 1)
- fun_l15_n509(x)
- else
- fun_l15_n75(x)
- end
-end
-
-def fun_l14_n230(x)
- if (x < 1)
- fun_l15_n184(x)
- else
- fun_l15_n650(x)
- end
-end
-
-def fun_l14_n231(x)
- if (x < 1)
- fun_l15_n227(x)
- else
- fun_l15_n607(x)
- end
-end
-
-def fun_l14_n232(x)
- if (x < 1)
- fun_l15_n245(x)
- else
- fun_l15_n347(x)
- end
-end
-
-def fun_l14_n233(x)
- if (x < 1)
- fun_l15_n728(x)
- else
- fun_l15_n457(x)
- end
-end
-
-def fun_l14_n234(x)
- if (x < 1)
- fun_l15_n619(x)
- else
- fun_l15_n936(x)
- end
-end
-
-def fun_l14_n235(x)
- if (x < 1)
- fun_l15_n855(x)
- else
- fun_l15_n774(x)
- end
-end
-
-def fun_l14_n236(x)
- if (x < 1)
- fun_l15_n217(x)
- else
- fun_l15_n908(x)
- end
-end
-
-def fun_l14_n237(x)
- if (x < 1)
- fun_l15_n537(x)
- else
- fun_l15_n441(x)
- end
-end
-
-def fun_l14_n238(x)
- if (x < 1)
- fun_l15_n930(x)
- else
- fun_l15_n601(x)
- end
-end
-
-def fun_l14_n239(x)
- if (x < 1)
- fun_l15_n976(x)
- else
- fun_l15_n903(x)
- end
-end
-
-def fun_l14_n240(x)
- if (x < 1)
- fun_l15_n792(x)
- else
- fun_l15_n882(x)
- end
-end
-
-def fun_l14_n241(x)
- if (x < 1)
- fun_l15_n662(x)
- else
- fun_l15_n197(x)
- end
-end
-
-def fun_l14_n242(x)
- if (x < 1)
- fun_l15_n839(x)
- else
- fun_l15_n486(x)
- end
-end
-
-def fun_l14_n243(x)
- if (x < 1)
- fun_l15_n122(x)
- else
- fun_l15_n165(x)
- end
-end
-
-def fun_l14_n244(x)
- if (x < 1)
- fun_l15_n209(x)
- else
- fun_l15_n977(x)
- end
-end
-
-def fun_l14_n245(x)
- if (x < 1)
- fun_l15_n231(x)
- else
- fun_l15_n318(x)
- end
-end
-
-def fun_l14_n246(x)
- if (x < 1)
- fun_l15_n53(x)
- else
- fun_l15_n995(x)
- end
-end
-
-def fun_l14_n247(x)
- if (x < 1)
- fun_l15_n276(x)
- else
- fun_l15_n458(x)
- end
-end
-
-def fun_l14_n248(x)
- if (x < 1)
- fun_l15_n964(x)
- else
- fun_l15_n753(x)
- end
-end
-
-def fun_l14_n249(x)
- if (x < 1)
- fun_l15_n964(x)
- else
- fun_l15_n783(x)
- end
-end
-
-def fun_l14_n250(x)
- if (x < 1)
- fun_l15_n865(x)
- else
- fun_l15_n736(x)
- end
-end
-
-def fun_l14_n251(x)
- if (x < 1)
- fun_l15_n861(x)
- else
- fun_l15_n414(x)
- end
-end
-
-def fun_l14_n252(x)
- if (x < 1)
- fun_l15_n327(x)
- else
- fun_l15_n440(x)
- end
-end
-
-def fun_l14_n253(x)
- if (x < 1)
- fun_l15_n800(x)
- else
- fun_l15_n186(x)
- end
-end
-
-def fun_l14_n254(x)
- if (x < 1)
- fun_l15_n687(x)
- else
- fun_l15_n245(x)
- end
-end
-
-def fun_l14_n255(x)
- if (x < 1)
- fun_l15_n421(x)
- else
- fun_l15_n421(x)
- end
-end
-
-def fun_l14_n256(x)
- if (x < 1)
- fun_l15_n417(x)
- else
- fun_l15_n975(x)
- end
-end
-
-def fun_l14_n257(x)
- if (x < 1)
- fun_l15_n835(x)
- else
- fun_l15_n697(x)
- end
-end
-
-def fun_l14_n258(x)
- if (x < 1)
- fun_l15_n433(x)
- else
- fun_l15_n811(x)
- end
-end
-
-def fun_l14_n259(x)
- if (x < 1)
- fun_l15_n473(x)
- else
- fun_l15_n747(x)
- end
-end
-
-def fun_l14_n260(x)
- if (x < 1)
- fun_l15_n636(x)
- else
- fun_l15_n718(x)
- end
-end
-
-def fun_l14_n261(x)
- if (x < 1)
- fun_l15_n472(x)
- else
- fun_l15_n971(x)
- end
-end
-
-def fun_l14_n262(x)
- if (x < 1)
- fun_l15_n91(x)
- else
- fun_l15_n18(x)
- end
-end
-
-def fun_l14_n263(x)
- if (x < 1)
- fun_l15_n582(x)
- else
- fun_l15_n629(x)
- end
-end
-
-def fun_l14_n264(x)
- if (x < 1)
- fun_l15_n493(x)
- else
- fun_l15_n718(x)
- end
-end
-
-def fun_l14_n265(x)
- if (x < 1)
- fun_l15_n857(x)
- else
- fun_l15_n134(x)
- end
-end
-
-def fun_l14_n266(x)
- if (x < 1)
- fun_l15_n351(x)
- else
- fun_l15_n454(x)
- end
-end
-
-def fun_l14_n267(x)
- if (x < 1)
- fun_l15_n578(x)
- else
- fun_l15_n453(x)
- end
-end
-
-def fun_l14_n268(x)
- if (x < 1)
- fun_l15_n679(x)
- else
- fun_l15_n886(x)
- end
-end
-
-def fun_l14_n269(x)
- if (x < 1)
- fun_l15_n446(x)
- else
- fun_l15_n7(x)
- end
-end
-
-def fun_l14_n270(x)
- if (x < 1)
- fun_l15_n375(x)
- else
- fun_l15_n83(x)
- end
-end
-
-def fun_l14_n271(x)
- if (x < 1)
- fun_l15_n688(x)
- else
- fun_l15_n863(x)
- end
-end
-
-def fun_l14_n272(x)
- if (x < 1)
- fun_l15_n382(x)
- else
- fun_l15_n997(x)
- end
-end
-
-def fun_l14_n273(x)
- if (x < 1)
- fun_l15_n281(x)
- else
- fun_l15_n909(x)
- end
-end
-
-def fun_l14_n274(x)
- if (x < 1)
- fun_l15_n618(x)
- else
- fun_l15_n967(x)
- end
-end
-
-def fun_l14_n275(x)
- if (x < 1)
- fun_l15_n651(x)
- else
- fun_l15_n826(x)
- end
-end
-
-def fun_l14_n276(x)
- if (x < 1)
- fun_l15_n326(x)
- else
- fun_l15_n11(x)
- end
-end
-
-def fun_l14_n277(x)
- if (x < 1)
- fun_l15_n193(x)
- else
- fun_l15_n719(x)
- end
-end
-
-def fun_l14_n278(x)
- if (x < 1)
- fun_l15_n973(x)
- else
- fun_l15_n313(x)
- end
-end
-
-def fun_l14_n279(x)
- if (x < 1)
- fun_l15_n33(x)
- else
- fun_l15_n526(x)
- end
-end
-
-def fun_l14_n280(x)
- if (x < 1)
- fun_l15_n334(x)
- else
- fun_l15_n158(x)
- end
-end
-
-def fun_l14_n281(x)
- if (x < 1)
- fun_l15_n627(x)
- else
- fun_l15_n346(x)
- end
-end
-
-def fun_l14_n282(x)
- if (x < 1)
- fun_l15_n537(x)
- else
- fun_l15_n198(x)
- end
-end
-
-def fun_l14_n283(x)
- if (x < 1)
- fun_l15_n779(x)
- else
- fun_l15_n0(x)
- end
-end
-
-def fun_l14_n284(x)
- if (x < 1)
- fun_l15_n487(x)
- else
- fun_l15_n489(x)
- end
-end
-
-def fun_l14_n285(x)
- if (x < 1)
- fun_l15_n793(x)
- else
- fun_l15_n803(x)
- end
-end
-
-def fun_l14_n286(x)
- if (x < 1)
- fun_l15_n206(x)
- else
- fun_l15_n936(x)
- end
-end
-
-def fun_l14_n287(x)
- if (x < 1)
- fun_l15_n223(x)
- else
- fun_l15_n278(x)
- end
-end
-
-def fun_l14_n288(x)
- if (x < 1)
- fun_l15_n601(x)
- else
- fun_l15_n251(x)
- end
-end
-
-def fun_l14_n289(x)
- if (x < 1)
- fun_l15_n144(x)
- else
- fun_l15_n420(x)
- end
-end
-
-def fun_l14_n290(x)
- if (x < 1)
- fun_l15_n964(x)
- else
- fun_l15_n319(x)
- end
-end
-
-def fun_l14_n291(x)
- if (x < 1)
- fun_l15_n385(x)
- else
- fun_l15_n498(x)
- end
-end
-
-def fun_l14_n292(x)
- if (x < 1)
- fun_l15_n19(x)
- else
- fun_l15_n959(x)
- end
-end
-
-def fun_l14_n293(x)
- if (x < 1)
- fun_l15_n77(x)
- else
- fun_l15_n849(x)
- end
-end
-
-def fun_l14_n294(x)
- if (x < 1)
- fun_l15_n96(x)
- else
- fun_l15_n964(x)
- end
-end
-
-def fun_l14_n295(x)
- if (x < 1)
- fun_l15_n374(x)
- else
- fun_l15_n337(x)
- end
-end
-
-def fun_l14_n296(x)
- if (x < 1)
- fun_l15_n210(x)
- else
- fun_l15_n621(x)
- end
-end
-
-def fun_l14_n297(x)
- if (x < 1)
- fun_l15_n992(x)
- else
- fun_l15_n90(x)
- end
-end
-
-def fun_l14_n298(x)
- if (x < 1)
- fun_l15_n442(x)
- else
- fun_l15_n799(x)
- end
-end
-
-def fun_l14_n299(x)
- if (x < 1)
- fun_l15_n133(x)
- else
- fun_l15_n21(x)
- end
-end
-
-def fun_l14_n300(x)
- if (x < 1)
- fun_l15_n619(x)
- else
- fun_l15_n46(x)
- end
-end
-
-def fun_l14_n301(x)
- if (x < 1)
- fun_l15_n359(x)
- else
- fun_l15_n386(x)
- end
-end
-
-def fun_l14_n302(x)
- if (x < 1)
- fun_l15_n163(x)
- else
- fun_l15_n197(x)
- end
-end
-
-def fun_l14_n303(x)
- if (x < 1)
- fun_l15_n382(x)
- else
- fun_l15_n693(x)
- end
-end
-
-def fun_l14_n304(x)
- if (x < 1)
- fun_l15_n700(x)
- else
- fun_l15_n167(x)
- end
-end
-
-def fun_l14_n305(x)
- if (x < 1)
- fun_l15_n124(x)
- else
- fun_l15_n448(x)
- end
-end
-
-def fun_l14_n306(x)
- if (x < 1)
- fun_l15_n829(x)
- else
- fun_l15_n986(x)
- end
-end
-
-def fun_l14_n307(x)
- if (x < 1)
- fun_l15_n39(x)
- else
- fun_l15_n557(x)
- end
-end
-
-def fun_l14_n308(x)
- if (x < 1)
- fun_l15_n495(x)
- else
- fun_l15_n259(x)
- end
-end
-
-def fun_l14_n309(x)
- if (x < 1)
- fun_l15_n462(x)
- else
- fun_l15_n121(x)
- end
-end
-
-def fun_l14_n310(x)
- if (x < 1)
- fun_l15_n110(x)
- else
- fun_l15_n159(x)
- end
-end
-
-def fun_l14_n311(x)
- if (x < 1)
- fun_l15_n144(x)
- else
- fun_l15_n969(x)
- end
-end
-
-def fun_l14_n312(x)
- if (x < 1)
- fun_l15_n679(x)
- else
- fun_l15_n610(x)
- end
-end
-
-def fun_l14_n313(x)
- if (x < 1)
- fun_l15_n332(x)
- else
- fun_l15_n759(x)
- end
-end
-
-def fun_l14_n314(x)
- if (x < 1)
- fun_l15_n819(x)
- else
- fun_l15_n595(x)
- end
-end
-
-def fun_l14_n315(x)
- if (x < 1)
- fun_l15_n180(x)
- else
- fun_l15_n555(x)
- end
-end
-
-def fun_l14_n316(x)
- if (x < 1)
- fun_l15_n218(x)
- else
- fun_l15_n844(x)
- end
-end
-
-def fun_l14_n317(x)
- if (x < 1)
- fun_l15_n486(x)
- else
- fun_l15_n666(x)
- end
-end
-
-def fun_l14_n318(x)
- if (x < 1)
- fun_l15_n277(x)
- else
- fun_l15_n486(x)
- end
-end
-
-def fun_l14_n319(x)
- if (x < 1)
- fun_l15_n874(x)
- else
- fun_l15_n802(x)
- end
-end
-
-def fun_l14_n320(x)
- if (x < 1)
- fun_l15_n717(x)
- else
- fun_l15_n348(x)
- end
-end
-
-def fun_l14_n321(x)
- if (x < 1)
- fun_l15_n701(x)
- else
- fun_l15_n897(x)
- end
-end
-
-def fun_l14_n322(x)
- if (x < 1)
- fun_l15_n229(x)
- else
- fun_l15_n976(x)
- end
-end
-
-def fun_l14_n323(x)
- if (x < 1)
- fun_l15_n288(x)
- else
- fun_l15_n801(x)
- end
-end
-
-def fun_l14_n324(x)
- if (x < 1)
- fun_l15_n25(x)
- else
- fun_l15_n566(x)
- end
-end
-
-def fun_l14_n325(x)
- if (x < 1)
- fun_l15_n489(x)
- else
- fun_l15_n165(x)
- end
-end
-
-def fun_l14_n326(x)
- if (x < 1)
- fun_l15_n646(x)
- else
- fun_l15_n529(x)
- end
-end
-
-def fun_l14_n327(x)
- if (x < 1)
- fun_l15_n126(x)
- else
- fun_l15_n247(x)
- end
-end
-
-def fun_l14_n328(x)
- if (x < 1)
- fun_l15_n180(x)
- else
- fun_l15_n838(x)
- end
-end
-
-def fun_l14_n329(x)
- if (x < 1)
- fun_l15_n827(x)
- else
- fun_l15_n251(x)
- end
-end
-
-def fun_l14_n330(x)
- if (x < 1)
- fun_l15_n232(x)
- else
- fun_l15_n371(x)
- end
-end
-
-def fun_l14_n331(x)
- if (x < 1)
- fun_l15_n742(x)
- else
- fun_l15_n365(x)
- end
-end
-
-def fun_l14_n332(x)
- if (x < 1)
- fun_l15_n254(x)
- else
- fun_l15_n895(x)
- end
-end
-
-def fun_l14_n333(x)
- if (x < 1)
- fun_l15_n267(x)
- else
- fun_l15_n716(x)
- end
-end
-
-def fun_l14_n334(x)
- if (x < 1)
- fun_l15_n907(x)
- else
- fun_l15_n846(x)
- end
-end
-
-def fun_l14_n335(x)
- if (x < 1)
- fun_l15_n432(x)
- else
- fun_l15_n207(x)
- end
-end
-
-def fun_l14_n336(x)
- if (x < 1)
- fun_l15_n342(x)
- else
- fun_l15_n533(x)
- end
-end
-
-def fun_l14_n337(x)
- if (x < 1)
- fun_l15_n155(x)
- else
- fun_l15_n626(x)
- end
-end
-
-def fun_l14_n338(x)
- if (x < 1)
- fun_l15_n457(x)
- else
- fun_l15_n226(x)
- end
-end
-
-def fun_l14_n339(x)
- if (x < 1)
- fun_l15_n621(x)
- else
- fun_l15_n685(x)
- end
-end
-
-def fun_l14_n340(x)
- if (x < 1)
- fun_l15_n502(x)
- else
- fun_l15_n604(x)
- end
-end
-
-def fun_l14_n341(x)
- if (x < 1)
- fun_l15_n578(x)
- else
- fun_l15_n250(x)
- end
-end
-
-def fun_l14_n342(x)
- if (x < 1)
- fun_l15_n16(x)
- else
- fun_l15_n897(x)
- end
-end
-
-def fun_l14_n343(x)
- if (x < 1)
- fun_l15_n173(x)
- else
- fun_l15_n441(x)
- end
-end
-
-def fun_l14_n344(x)
- if (x < 1)
- fun_l15_n882(x)
- else
- fun_l15_n287(x)
- end
-end
-
-def fun_l14_n345(x)
- if (x < 1)
- fun_l15_n549(x)
- else
- fun_l15_n559(x)
- end
-end
-
-def fun_l14_n346(x)
- if (x < 1)
- fun_l15_n587(x)
- else
- fun_l15_n712(x)
- end
-end
-
-def fun_l14_n347(x)
- if (x < 1)
- fun_l15_n2(x)
- else
- fun_l15_n279(x)
- end
-end
-
-def fun_l14_n348(x)
- if (x < 1)
- fun_l15_n602(x)
- else
- fun_l15_n801(x)
- end
-end
-
-def fun_l14_n349(x)
- if (x < 1)
- fun_l15_n114(x)
- else
- fun_l15_n181(x)
- end
-end
-
-def fun_l14_n350(x)
- if (x < 1)
- fun_l15_n751(x)
- else
- fun_l15_n760(x)
- end
-end
-
-def fun_l14_n351(x)
- if (x < 1)
- fun_l15_n570(x)
- else
- fun_l15_n168(x)
- end
-end
-
-def fun_l14_n352(x)
- if (x < 1)
- fun_l15_n342(x)
- else
- fun_l15_n401(x)
- end
-end
-
-def fun_l14_n353(x)
- if (x < 1)
- fun_l15_n775(x)
- else
- fun_l15_n175(x)
- end
-end
-
-def fun_l14_n354(x)
- if (x < 1)
- fun_l15_n0(x)
- else
- fun_l15_n831(x)
- end
-end
-
-def fun_l14_n355(x)
- if (x < 1)
- fun_l15_n127(x)
- else
- fun_l15_n751(x)
- end
-end
-
-def fun_l14_n356(x)
- if (x < 1)
- fun_l15_n57(x)
- else
- fun_l15_n58(x)
- end
-end
-
-def fun_l14_n357(x)
- if (x < 1)
- fun_l15_n696(x)
- else
- fun_l15_n694(x)
- end
-end
-
-def fun_l14_n358(x)
- if (x < 1)
- fun_l15_n240(x)
- else
- fun_l15_n525(x)
- end
-end
-
-def fun_l14_n359(x)
- if (x < 1)
- fun_l15_n552(x)
- else
- fun_l15_n126(x)
- end
-end
-
-def fun_l14_n360(x)
- if (x < 1)
- fun_l15_n435(x)
- else
- fun_l15_n24(x)
- end
-end
-
-def fun_l14_n361(x)
- if (x < 1)
- fun_l15_n366(x)
- else
- fun_l15_n397(x)
- end
-end
-
-def fun_l14_n362(x)
- if (x < 1)
- fun_l15_n626(x)
- else
- fun_l15_n288(x)
- end
-end
-
-def fun_l14_n363(x)
- if (x < 1)
- fun_l15_n474(x)
- else
- fun_l15_n205(x)
- end
-end
-
-def fun_l14_n364(x)
- if (x < 1)
- fun_l15_n299(x)
- else
- fun_l15_n9(x)
- end
-end
-
-def fun_l14_n365(x)
- if (x < 1)
- fun_l15_n115(x)
- else
- fun_l15_n126(x)
- end
-end
-
-def fun_l14_n366(x)
- if (x < 1)
- fun_l15_n777(x)
- else
- fun_l15_n714(x)
- end
-end
-
-def fun_l14_n367(x)
- if (x < 1)
- fun_l15_n697(x)
- else
- fun_l15_n663(x)
- end
-end
-
-def fun_l14_n368(x)
- if (x < 1)
- fun_l15_n72(x)
- else
- fun_l15_n339(x)
- end
-end
-
-def fun_l14_n369(x)
- if (x < 1)
- fun_l15_n703(x)
- else
- fun_l15_n901(x)
- end
-end
-
-def fun_l14_n370(x)
- if (x < 1)
- fun_l15_n38(x)
- else
- fun_l15_n920(x)
- end
-end
-
-def fun_l14_n371(x)
- if (x < 1)
- fun_l15_n97(x)
- else
- fun_l15_n418(x)
- end
-end
-
-def fun_l14_n372(x)
- if (x < 1)
- fun_l15_n831(x)
- else
- fun_l15_n295(x)
- end
-end
-
-def fun_l14_n373(x)
- if (x < 1)
- fun_l15_n849(x)
- else
- fun_l15_n818(x)
- end
-end
-
-def fun_l14_n374(x)
- if (x < 1)
- fun_l15_n308(x)
- else
- fun_l15_n379(x)
- end
-end
-
-def fun_l14_n375(x)
- if (x < 1)
- fun_l15_n552(x)
- else
- fun_l15_n109(x)
- end
-end
-
-def fun_l14_n376(x)
- if (x < 1)
- fun_l15_n444(x)
- else
- fun_l15_n509(x)
- end
-end
-
-def fun_l14_n377(x)
- if (x < 1)
- fun_l15_n498(x)
- else
- fun_l15_n363(x)
- end
-end
-
-def fun_l14_n378(x)
- if (x < 1)
- fun_l15_n475(x)
- else
- fun_l15_n250(x)
- end
-end
-
-def fun_l14_n379(x)
- if (x < 1)
- fun_l15_n635(x)
- else
- fun_l15_n550(x)
- end
-end
-
-def fun_l14_n380(x)
- if (x < 1)
- fun_l15_n835(x)
- else
- fun_l15_n261(x)
- end
-end
-
-def fun_l14_n381(x)
- if (x < 1)
- fun_l15_n903(x)
- else
- fun_l15_n492(x)
- end
-end
-
-def fun_l14_n382(x)
- if (x < 1)
- fun_l15_n447(x)
- else
- fun_l15_n570(x)
- end
-end
-
-def fun_l14_n383(x)
- if (x < 1)
- fun_l15_n785(x)
- else
- fun_l15_n711(x)
- end
-end
-
-def fun_l14_n384(x)
- if (x < 1)
- fun_l15_n321(x)
- else
- fun_l15_n966(x)
- end
-end
-
-def fun_l14_n385(x)
- if (x < 1)
- fun_l15_n786(x)
- else
- fun_l15_n667(x)
- end
-end
-
-def fun_l14_n386(x)
- if (x < 1)
- fun_l15_n954(x)
- else
- fun_l15_n101(x)
- end
-end
-
-def fun_l14_n387(x)
- if (x < 1)
- fun_l15_n868(x)
- else
- fun_l15_n1(x)
- end
-end
-
-def fun_l14_n388(x)
- if (x < 1)
- fun_l15_n380(x)
- else
- fun_l15_n949(x)
- end
-end
-
-def fun_l14_n389(x)
- if (x < 1)
- fun_l15_n456(x)
- else
- fun_l15_n122(x)
- end
-end
-
-def fun_l14_n390(x)
- if (x < 1)
- fun_l15_n644(x)
- else
- fun_l15_n601(x)
- end
-end
-
-def fun_l14_n391(x)
- if (x < 1)
- fun_l15_n523(x)
- else
- fun_l15_n754(x)
- end
-end
-
-def fun_l14_n392(x)
- if (x < 1)
- fun_l15_n882(x)
- else
- fun_l15_n453(x)
- end
-end
-
-def fun_l14_n393(x)
- if (x < 1)
- fun_l15_n249(x)
- else
- fun_l15_n773(x)
- end
-end
-
-def fun_l14_n394(x)
- if (x < 1)
- fun_l15_n453(x)
- else
- fun_l15_n490(x)
- end
-end
-
-def fun_l14_n395(x)
- if (x < 1)
- fun_l15_n699(x)
- else
- fun_l15_n95(x)
- end
-end
-
-def fun_l14_n396(x)
- if (x < 1)
- fun_l15_n726(x)
- else
- fun_l15_n632(x)
- end
-end
-
-def fun_l14_n397(x)
- if (x < 1)
- fun_l15_n139(x)
- else
- fun_l15_n682(x)
- end
-end
-
-def fun_l14_n398(x)
- if (x < 1)
- fun_l15_n246(x)
- else
- fun_l15_n74(x)
- end
-end
-
-def fun_l14_n399(x)
- if (x < 1)
- fun_l15_n334(x)
- else
- fun_l15_n504(x)
- end
-end
-
-def fun_l14_n400(x)
- if (x < 1)
- fun_l15_n450(x)
- else
- fun_l15_n778(x)
- end
-end
-
-def fun_l14_n401(x)
- if (x < 1)
- fun_l15_n428(x)
- else
- fun_l15_n101(x)
- end
-end
-
-def fun_l14_n402(x)
- if (x < 1)
- fun_l15_n779(x)
- else
- fun_l15_n924(x)
- end
-end
-
-def fun_l14_n403(x)
- if (x < 1)
- fun_l15_n957(x)
- else
- fun_l15_n83(x)
- end
-end
-
-def fun_l14_n404(x)
- if (x < 1)
- fun_l15_n0(x)
- else
- fun_l15_n781(x)
- end
-end
-
-def fun_l14_n405(x)
- if (x < 1)
- fun_l15_n100(x)
- else
- fun_l15_n21(x)
- end
-end
-
-def fun_l14_n406(x)
- if (x < 1)
- fun_l15_n262(x)
- else
- fun_l15_n925(x)
- end
-end
-
-def fun_l14_n407(x)
- if (x < 1)
- fun_l15_n935(x)
- else
- fun_l15_n193(x)
- end
-end
-
-def fun_l14_n408(x)
- if (x < 1)
- fun_l15_n140(x)
- else
- fun_l15_n459(x)
- end
-end
-
-def fun_l14_n409(x)
- if (x < 1)
- fun_l15_n484(x)
- else
- fun_l15_n584(x)
- end
-end
-
-def fun_l14_n410(x)
- if (x < 1)
- fun_l15_n762(x)
- else
- fun_l15_n640(x)
- end
-end
-
-def fun_l14_n411(x)
- if (x < 1)
- fun_l15_n347(x)
- else
- fun_l15_n395(x)
- end
-end
-
-def fun_l14_n412(x)
- if (x < 1)
- fun_l15_n809(x)
- else
- fun_l15_n105(x)
- end
-end
-
-def fun_l14_n413(x)
- if (x < 1)
- fun_l15_n929(x)
- else
- fun_l15_n265(x)
- end
-end
-
-def fun_l14_n414(x)
- if (x < 1)
- fun_l15_n228(x)
- else
- fun_l15_n88(x)
- end
-end
-
-def fun_l14_n415(x)
- if (x < 1)
- fun_l15_n650(x)
- else
- fun_l15_n785(x)
- end
-end
-
-def fun_l14_n416(x)
- if (x < 1)
- fun_l15_n806(x)
- else
- fun_l15_n743(x)
- end
-end
-
-def fun_l14_n417(x)
- if (x < 1)
- fun_l15_n417(x)
- else
- fun_l15_n454(x)
- end
-end
-
-def fun_l14_n418(x)
- if (x < 1)
- fun_l15_n571(x)
- else
- fun_l15_n651(x)
- end
-end
-
-def fun_l14_n419(x)
- if (x < 1)
- fun_l15_n341(x)
- else
- fun_l15_n242(x)
- end
-end
-
-def fun_l14_n420(x)
- if (x < 1)
- fun_l15_n613(x)
- else
- fun_l15_n339(x)
- end
-end
-
-def fun_l14_n421(x)
- if (x < 1)
- fun_l15_n657(x)
- else
- fun_l15_n759(x)
- end
-end
-
-def fun_l14_n422(x)
- if (x < 1)
- fun_l15_n33(x)
- else
- fun_l15_n669(x)
- end
-end
-
-def fun_l14_n423(x)
- if (x < 1)
- fun_l15_n628(x)
- else
- fun_l15_n963(x)
- end
-end
-
-def fun_l14_n424(x)
- if (x < 1)
- fun_l15_n940(x)
- else
- fun_l15_n773(x)
- end
-end
-
-def fun_l14_n425(x)
- if (x < 1)
- fun_l15_n489(x)
- else
- fun_l15_n625(x)
- end
-end
-
-def fun_l14_n426(x)
- if (x < 1)
- fun_l15_n501(x)
- else
- fun_l15_n278(x)
- end
-end
-
-def fun_l14_n427(x)
- if (x < 1)
- fun_l15_n620(x)
- else
- fun_l15_n426(x)
- end
-end
-
-def fun_l14_n428(x)
- if (x < 1)
- fun_l15_n606(x)
- else
- fun_l15_n123(x)
- end
-end
-
-def fun_l14_n429(x)
- if (x < 1)
- fun_l15_n622(x)
- else
- fun_l15_n873(x)
- end
-end
-
-def fun_l14_n430(x)
- if (x < 1)
- fun_l15_n660(x)
- else
- fun_l15_n736(x)
- end
-end
-
-def fun_l14_n431(x)
- if (x < 1)
- fun_l15_n927(x)
- else
- fun_l15_n893(x)
- end
-end
-
-def fun_l14_n432(x)
- if (x < 1)
- fun_l15_n492(x)
- else
- fun_l15_n947(x)
- end
-end
-
-def fun_l14_n433(x)
- if (x < 1)
- fun_l15_n164(x)
- else
- fun_l15_n853(x)
- end
-end
-
-def fun_l14_n434(x)
- if (x < 1)
- fun_l15_n730(x)
- else
- fun_l15_n265(x)
- end
-end
-
-def fun_l14_n435(x)
- if (x < 1)
- fun_l15_n548(x)
- else
- fun_l15_n272(x)
- end
-end
-
-def fun_l14_n436(x)
- if (x < 1)
- fun_l15_n944(x)
- else
- fun_l15_n344(x)
- end
-end
-
-def fun_l14_n437(x)
- if (x < 1)
- fun_l15_n931(x)
- else
- fun_l15_n376(x)
- end
-end
-
-def fun_l14_n438(x)
- if (x < 1)
- fun_l15_n261(x)
- else
- fun_l15_n270(x)
- end
-end
-
-def fun_l14_n439(x)
- if (x < 1)
- fun_l15_n705(x)
- else
- fun_l15_n700(x)
- end
-end
-
-def fun_l14_n440(x)
- if (x < 1)
- fun_l15_n115(x)
- else
- fun_l15_n964(x)
- end
-end
-
-def fun_l14_n441(x)
- if (x < 1)
- fun_l15_n396(x)
- else
- fun_l15_n780(x)
- end
-end
-
-def fun_l14_n442(x)
- if (x < 1)
- fun_l15_n813(x)
- else
- fun_l15_n25(x)
- end
-end
-
-def fun_l14_n443(x)
- if (x < 1)
- fun_l15_n405(x)
- else
- fun_l15_n264(x)
- end
-end
-
-def fun_l14_n444(x)
- if (x < 1)
- fun_l15_n816(x)
- else
- fun_l15_n857(x)
- end
-end
-
-def fun_l14_n445(x)
- if (x < 1)
- fun_l15_n191(x)
- else
- fun_l15_n886(x)
- end
-end
-
-def fun_l14_n446(x)
- if (x < 1)
- fun_l15_n415(x)
- else
- fun_l15_n611(x)
- end
-end
-
-def fun_l14_n447(x)
- if (x < 1)
- fun_l15_n473(x)
- else
- fun_l15_n701(x)
- end
-end
-
-def fun_l14_n448(x)
- if (x < 1)
- fun_l15_n532(x)
- else
- fun_l15_n501(x)
- end
-end
-
-def fun_l14_n449(x)
- if (x < 1)
- fun_l15_n731(x)
- else
- fun_l15_n631(x)
- end
-end
-
-def fun_l14_n450(x)
- if (x < 1)
- fun_l15_n75(x)
- else
- fun_l15_n356(x)
- end
-end
-
-def fun_l14_n451(x)
- if (x < 1)
- fun_l15_n614(x)
- else
- fun_l15_n600(x)
- end
-end
-
-def fun_l14_n452(x)
- if (x < 1)
- fun_l15_n592(x)
- else
- fun_l15_n995(x)
- end
-end
-
-def fun_l14_n453(x)
- if (x < 1)
- fun_l15_n712(x)
- else
- fun_l15_n815(x)
- end
-end
-
-def fun_l14_n454(x)
- if (x < 1)
- fun_l15_n859(x)
- else
- fun_l15_n560(x)
- end
-end
-
-def fun_l14_n455(x)
- if (x < 1)
- fun_l15_n665(x)
- else
- fun_l15_n408(x)
- end
-end
-
-def fun_l14_n456(x)
- if (x < 1)
- fun_l15_n693(x)
- else
- fun_l15_n491(x)
- end
-end
-
-def fun_l14_n457(x)
- if (x < 1)
- fun_l15_n29(x)
- else
- fun_l15_n515(x)
- end
-end
-
-def fun_l14_n458(x)
- if (x < 1)
- fun_l15_n598(x)
- else
- fun_l15_n448(x)
- end
-end
-
-def fun_l14_n459(x)
- if (x < 1)
- fun_l15_n937(x)
- else
- fun_l15_n199(x)
- end
-end
-
-def fun_l14_n460(x)
- if (x < 1)
- fun_l15_n950(x)
- else
- fun_l15_n874(x)
- end
-end
-
-def fun_l14_n461(x)
- if (x < 1)
- fun_l15_n38(x)
- else
- fun_l15_n650(x)
- end
-end
-
-def fun_l14_n462(x)
- if (x < 1)
- fun_l15_n366(x)
- else
- fun_l15_n271(x)
- end
-end
-
-def fun_l14_n463(x)
- if (x < 1)
- fun_l15_n21(x)
- else
- fun_l15_n690(x)
- end
-end
-
-def fun_l14_n464(x)
- if (x < 1)
- fun_l15_n660(x)
- else
- fun_l15_n71(x)
- end
-end
-
-def fun_l14_n465(x)
- if (x < 1)
- fun_l15_n889(x)
- else
- fun_l15_n324(x)
- end
-end
-
-def fun_l14_n466(x)
- if (x < 1)
- fun_l15_n808(x)
- else
- fun_l15_n532(x)
- end
-end
-
-def fun_l14_n467(x)
- if (x < 1)
- fun_l15_n72(x)
- else
- fun_l15_n52(x)
- end
-end
-
-def fun_l14_n468(x)
- if (x < 1)
- fun_l15_n563(x)
- else
- fun_l15_n327(x)
- end
-end
-
-def fun_l14_n469(x)
- if (x < 1)
- fun_l15_n570(x)
- else
- fun_l15_n794(x)
- end
-end
-
-def fun_l14_n470(x)
- if (x < 1)
- fun_l15_n8(x)
- else
- fun_l15_n594(x)
- end
-end
-
-def fun_l14_n471(x)
- if (x < 1)
- fun_l15_n859(x)
- else
- fun_l15_n519(x)
- end
-end
-
-def fun_l14_n472(x)
- if (x < 1)
- fun_l15_n539(x)
- else
- fun_l15_n432(x)
- end
-end
-
-def fun_l14_n473(x)
- if (x < 1)
- fun_l15_n795(x)
- else
- fun_l15_n916(x)
- end
-end
-
-def fun_l14_n474(x)
- if (x < 1)
- fun_l15_n851(x)
- else
- fun_l15_n157(x)
- end
-end
-
-def fun_l14_n475(x)
- if (x < 1)
- fun_l15_n274(x)
- else
- fun_l15_n678(x)
- end
-end
-
-def fun_l14_n476(x)
- if (x < 1)
- fun_l15_n221(x)
- else
- fun_l15_n906(x)
- end
-end
-
-def fun_l14_n477(x)
- if (x < 1)
- fun_l15_n116(x)
- else
- fun_l15_n778(x)
- end
-end
-
-def fun_l14_n478(x)
- if (x < 1)
- fun_l15_n715(x)
- else
- fun_l15_n855(x)
- end
-end
-
-def fun_l14_n479(x)
- if (x < 1)
- fun_l15_n705(x)
- else
- fun_l15_n935(x)
- end
-end
-
-def fun_l14_n480(x)
- if (x < 1)
- fun_l15_n119(x)
- else
- fun_l15_n559(x)
- end
-end
-
-def fun_l14_n481(x)
- if (x < 1)
- fun_l15_n996(x)
- else
- fun_l15_n768(x)
- end
-end
-
-def fun_l14_n482(x)
- if (x < 1)
- fun_l15_n619(x)
- else
- fun_l15_n475(x)
- end
-end
-
-def fun_l14_n483(x)
- if (x < 1)
- fun_l15_n189(x)
- else
- fun_l15_n398(x)
- end
-end
-
-def fun_l14_n484(x)
- if (x < 1)
- fun_l15_n758(x)
- else
- fun_l15_n864(x)
- end
-end
-
-def fun_l14_n485(x)
- if (x < 1)
- fun_l15_n508(x)
- else
- fun_l15_n393(x)
- end
-end
-
-def fun_l14_n486(x)
- if (x < 1)
- fun_l15_n825(x)
- else
- fun_l15_n337(x)
- end
-end
-
-def fun_l14_n487(x)
- if (x < 1)
- fun_l15_n449(x)
- else
- fun_l15_n389(x)
- end
-end
-
-def fun_l14_n488(x)
- if (x < 1)
- fun_l15_n328(x)
- else
- fun_l15_n658(x)
- end
-end
-
-def fun_l14_n489(x)
- if (x < 1)
- fun_l15_n138(x)
- else
- fun_l15_n938(x)
- end
-end
-
-def fun_l14_n490(x)
- if (x < 1)
- fun_l15_n387(x)
- else
- fun_l15_n865(x)
- end
-end
-
-def fun_l14_n491(x)
- if (x < 1)
- fun_l15_n621(x)
- else
- fun_l15_n516(x)
- end
-end
-
-def fun_l14_n492(x)
- if (x < 1)
- fun_l15_n962(x)
- else
- fun_l15_n821(x)
- end
-end
-
-def fun_l14_n493(x)
- if (x < 1)
- fun_l15_n544(x)
- else
- fun_l15_n625(x)
- end
-end
-
-def fun_l14_n494(x)
- if (x < 1)
- fun_l15_n610(x)
- else
- fun_l15_n404(x)
- end
-end
-
-def fun_l14_n495(x)
- if (x < 1)
- fun_l15_n329(x)
- else
- fun_l15_n537(x)
- end
-end
-
-def fun_l14_n496(x)
- if (x < 1)
- fun_l15_n659(x)
- else
- fun_l15_n837(x)
- end
-end
-
-def fun_l14_n497(x)
- if (x < 1)
- fun_l15_n974(x)
- else
- fun_l15_n55(x)
- end
-end
-
-def fun_l14_n498(x)
- if (x < 1)
- fun_l15_n243(x)
- else
- fun_l15_n810(x)
- end
-end
-
-def fun_l14_n499(x)
- if (x < 1)
- fun_l15_n260(x)
- else
- fun_l15_n412(x)
- end
-end
-
-def fun_l14_n500(x)
- if (x < 1)
- fun_l15_n940(x)
- else
- fun_l15_n920(x)
- end
-end
-
-def fun_l14_n501(x)
- if (x < 1)
- fun_l15_n829(x)
- else
- fun_l15_n877(x)
- end
-end
-
-def fun_l14_n502(x)
- if (x < 1)
- fun_l15_n457(x)
- else
- fun_l15_n307(x)
- end
-end
-
-def fun_l14_n503(x)
- if (x < 1)
- fun_l15_n301(x)
- else
- fun_l15_n812(x)
- end
-end
-
-def fun_l14_n504(x)
- if (x < 1)
- fun_l15_n175(x)
- else
- fun_l15_n715(x)
- end
-end
-
-def fun_l14_n505(x)
- if (x < 1)
- fun_l15_n897(x)
- else
- fun_l15_n103(x)
- end
-end
-
-def fun_l14_n506(x)
- if (x < 1)
- fun_l15_n357(x)
- else
- fun_l15_n606(x)
- end
-end
-
-def fun_l14_n507(x)
- if (x < 1)
- fun_l15_n974(x)
- else
- fun_l15_n389(x)
- end
-end
-
-def fun_l14_n508(x)
- if (x < 1)
- fun_l15_n641(x)
- else
- fun_l15_n450(x)
- end
-end
-
-def fun_l14_n509(x)
- if (x < 1)
- fun_l15_n4(x)
- else
- fun_l15_n533(x)
- end
-end
-
-def fun_l14_n510(x)
- if (x < 1)
- fun_l15_n258(x)
- else
- fun_l15_n716(x)
- end
-end
-
-def fun_l14_n511(x)
- if (x < 1)
- fun_l15_n919(x)
- else
- fun_l15_n881(x)
- end
-end
-
-def fun_l14_n512(x)
- if (x < 1)
- fun_l15_n313(x)
- else
- fun_l15_n282(x)
- end
-end
-
-def fun_l14_n513(x)
- if (x < 1)
- fun_l15_n116(x)
- else
- fun_l15_n861(x)
- end
-end
-
-def fun_l14_n514(x)
- if (x < 1)
- fun_l15_n178(x)
- else
- fun_l15_n717(x)
- end
-end
-
-def fun_l14_n515(x)
- if (x < 1)
- fun_l15_n896(x)
- else
- fun_l15_n583(x)
- end
-end
-
-def fun_l14_n516(x)
- if (x < 1)
- fun_l15_n203(x)
- else
- fun_l15_n802(x)
- end
-end
-
-def fun_l14_n517(x)
- if (x < 1)
- fun_l15_n810(x)
- else
- fun_l15_n34(x)
- end
-end
-
-def fun_l14_n518(x)
- if (x < 1)
- fun_l15_n908(x)
- else
- fun_l15_n623(x)
- end
-end
-
-def fun_l14_n519(x)
- if (x < 1)
- fun_l15_n954(x)
- else
- fun_l15_n411(x)
- end
-end
-
-def fun_l14_n520(x)
- if (x < 1)
- fun_l15_n880(x)
- else
- fun_l15_n38(x)
- end
-end
-
-def fun_l14_n521(x)
- if (x < 1)
- fun_l15_n954(x)
- else
- fun_l15_n917(x)
- end
-end
-
-def fun_l14_n522(x)
- if (x < 1)
- fun_l15_n693(x)
- else
- fun_l15_n950(x)
- end
-end
-
-def fun_l14_n523(x)
- if (x < 1)
- fun_l15_n654(x)
- else
- fun_l15_n27(x)
- end
-end
-
-def fun_l14_n524(x)
- if (x < 1)
- fun_l15_n316(x)
- else
- fun_l15_n873(x)
- end
-end
-
-def fun_l14_n525(x)
- if (x < 1)
- fun_l15_n554(x)
- else
- fun_l15_n656(x)
- end
-end
-
-def fun_l14_n526(x)
- if (x < 1)
- fun_l15_n739(x)
- else
- fun_l15_n69(x)
- end
-end
-
-def fun_l14_n527(x)
- if (x < 1)
- fun_l15_n851(x)
- else
- fun_l15_n366(x)
- end
-end
-
-def fun_l14_n528(x)
- if (x < 1)
- fun_l15_n113(x)
- else
- fun_l15_n271(x)
- end
-end
-
-def fun_l14_n529(x)
- if (x < 1)
- fun_l15_n652(x)
- else
- fun_l15_n831(x)
- end
-end
-
-def fun_l14_n530(x)
- if (x < 1)
- fun_l15_n746(x)
- else
- fun_l15_n841(x)
- end
-end
-
-def fun_l14_n531(x)
- if (x < 1)
- fun_l15_n758(x)
- else
- fun_l15_n893(x)
- end
-end
-
-def fun_l14_n532(x)
- if (x < 1)
- fun_l15_n976(x)
- else
- fun_l15_n514(x)
- end
-end
-
-def fun_l14_n533(x)
- if (x < 1)
- fun_l15_n375(x)
- else
- fun_l15_n84(x)
- end
-end
-
-def fun_l14_n534(x)
- if (x < 1)
- fun_l15_n226(x)
- else
- fun_l15_n770(x)
- end
-end
-
-def fun_l14_n535(x)
- if (x < 1)
- fun_l15_n106(x)
- else
- fun_l15_n230(x)
- end
-end
-
-def fun_l14_n536(x)
- if (x < 1)
- fun_l15_n18(x)
- else
- fun_l15_n335(x)
- end
-end
-
-def fun_l14_n537(x)
- if (x < 1)
- fun_l15_n755(x)
- else
- fun_l15_n16(x)
- end
-end
-
-def fun_l14_n538(x)
- if (x < 1)
- fun_l15_n653(x)
- else
- fun_l15_n486(x)
- end
-end
-
-def fun_l14_n539(x)
- if (x < 1)
- fun_l15_n665(x)
- else
- fun_l15_n768(x)
- end
-end
-
-def fun_l14_n540(x)
- if (x < 1)
- fun_l15_n282(x)
- else
- fun_l15_n780(x)
- end
-end
-
-def fun_l14_n541(x)
- if (x < 1)
- fun_l15_n633(x)
- else
- fun_l15_n240(x)
- end
-end
-
-def fun_l14_n542(x)
- if (x < 1)
- fun_l15_n141(x)
- else
- fun_l15_n474(x)
- end
-end
-
-def fun_l14_n543(x)
- if (x < 1)
- fun_l15_n80(x)
- else
- fun_l15_n708(x)
- end
-end
-
-def fun_l14_n544(x)
- if (x < 1)
- fun_l15_n309(x)
- else
- fun_l15_n808(x)
- end
-end
-
-def fun_l14_n545(x)
- if (x < 1)
- fun_l15_n744(x)
- else
- fun_l15_n51(x)
- end
-end
-
-def fun_l14_n546(x)
- if (x < 1)
- fun_l15_n571(x)
- else
- fun_l15_n581(x)
- end
-end
-
-def fun_l14_n547(x)
- if (x < 1)
- fun_l15_n272(x)
- else
- fun_l15_n867(x)
- end
-end
-
-def fun_l14_n548(x)
- if (x < 1)
- fun_l15_n96(x)
- else
- fun_l15_n83(x)
- end
-end
-
-def fun_l14_n549(x)
- if (x < 1)
- fun_l15_n828(x)
- else
- fun_l15_n109(x)
- end
-end
-
-def fun_l14_n550(x)
- if (x < 1)
- fun_l15_n94(x)
- else
- fun_l15_n839(x)
- end
-end
-
-def fun_l14_n551(x)
- if (x < 1)
- fun_l15_n704(x)
- else
- fun_l15_n88(x)
- end
-end
-
-def fun_l14_n552(x)
- if (x < 1)
- fun_l15_n531(x)
- else
- fun_l15_n865(x)
- end
-end
-
-def fun_l14_n553(x)
- if (x < 1)
- fun_l15_n506(x)
- else
- fun_l15_n16(x)
- end
-end
-
-def fun_l14_n554(x)
- if (x < 1)
- fun_l15_n583(x)
- else
- fun_l15_n186(x)
- end
-end
-
-def fun_l14_n555(x)
- if (x < 1)
- fun_l15_n673(x)
- else
- fun_l15_n560(x)
- end
-end
-
-def fun_l14_n556(x)
- if (x < 1)
- fun_l15_n947(x)
- else
- fun_l15_n268(x)
- end
-end
-
-def fun_l14_n557(x)
- if (x < 1)
- fun_l15_n88(x)
- else
- fun_l15_n43(x)
- end
-end
-
-def fun_l14_n558(x)
- if (x < 1)
- fun_l15_n690(x)
- else
- fun_l15_n145(x)
- end
-end
-
-def fun_l14_n559(x)
- if (x < 1)
- fun_l15_n24(x)
- else
- fun_l15_n631(x)
- end
-end
-
-def fun_l14_n560(x)
- if (x < 1)
- fun_l15_n381(x)
- else
- fun_l15_n3(x)
- end
-end
-
-def fun_l14_n561(x)
- if (x < 1)
- fun_l15_n954(x)
- else
- fun_l15_n816(x)
- end
-end
-
-def fun_l14_n562(x)
- if (x < 1)
- fun_l15_n948(x)
- else
- fun_l15_n886(x)
- end
-end
-
-def fun_l14_n563(x)
- if (x < 1)
- fun_l15_n749(x)
- else
- fun_l15_n558(x)
- end
-end
-
-def fun_l14_n564(x)
- if (x < 1)
- fun_l15_n715(x)
- else
- fun_l15_n157(x)
- end
-end
-
-def fun_l14_n565(x)
- if (x < 1)
- fun_l15_n674(x)
- else
- fun_l15_n643(x)
- end
-end
-
-def fun_l14_n566(x)
- if (x < 1)
- fun_l15_n151(x)
- else
- fun_l15_n686(x)
- end
-end
-
-def fun_l14_n567(x)
- if (x < 1)
- fun_l15_n362(x)
- else
- fun_l15_n37(x)
- end
-end
-
-def fun_l14_n568(x)
- if (x < 1)
- fun_l15_n132(x)
- else
- fun_l15_n146(x)
- end
-end
-
-def fun_l14_n569(x)
- if (x < 1)
- fun_l15_n32(x)
- else
- fun_l15_n203(x)
- end
-end
-
-def fun_l14_n570(x)
- if (x < 1)
- fun_l15_n477(x)
- else
- fun_l15_n403(x)
- end
-end
-
-def fun_l14_n571(x)
- if (x < 1)
- fun_l15_n976(x)
- else
- fun_l15_n632(x)
- end
-end
-
-def fun_l14_n572(x)
- if (x < 1)
- fun_l15_n735(x)
- else
- fun_l15_n100(x)
- end
-end
-
-def fun_l14_n573(x)
- if (x < 1)
- fun_l15_n186(x)
- else
- fun_l15_n83(x)
- end
-end
-
-def fun_l14_n574(x)
- if (x < 1)
- fun_l15_n246(x)
- else
- fun_l15_n573(x)
- end
-end
-
-def fun_l14_n575(x)
- if (x < 1)
- fun_l15_n316(x)
- else
- fun_l15_n618(x)
- end
-end
-
-def fun_l14_n576(x)
- if (x < 1)
- fun_l15_n426(x)
- else
- fun_l15_n616(x)
- end
-end
-
-def fun_l14_n577(x)
- if (x < 1)
- fun_l15_n810(x)
- else
- fun_l15_n817(x)
- end
-end
-
-def fun_l14_n578(x)
- if (x < 1)
- fun_l15_n262(x)
- else
- fun_l15_n815(x)
- end
-end
-
-def fun_l14_n579(x)
- if (x < 1)
- fun_l15_n851(x)
- else
- fun_l15_n524(x)
- end
-end
-
-def fun_l14_n580(x)
- if (x < 1)
- fun_l15_n748(x)
- else
- fun_l15_n843(x)
- end
-end
-
-def fun_l14_n581(x)
- if (x < 1)
- fun_l15_n284(x)
- else
- fun_l15_n108(x)
- end
-end
-
-def fun_l14_n582(x)
- if (x < 1)
- fun_l15_n976(x)
- else
- fun_l15_n294(x)
- end
-end
-
-def fun_l14_n583(x)
- if (x < 1)
- fun_l15_n609(x)
- else
- fun_l15_n866(x)
- end
-end
-
-def fun_l14_n584(x)
- if (x < 1)
- fun_l15_n293(x)
- else
- fun_l15_n980(x)
- end
-end
-
-def fun_l14_n585(x)
- if (x < 1)
- fun_l15_n548(x)
- else
- fun_l15_n319(x)
- end
-end
-
-def fun_l14_n586(x)
- if (x < 1)
- fun_l15_n566(x)
- else
- fun_l15_n843(x)
- end
-end
-
-def fun_l14_n587(x)
- if (x < 1)
- fun_l15_n963(x)
- else
- fun_l15_n120(x)
- end
-end
-
-def fun_l14_n588(x)
- if (x < 1)
- fun_l15_n149(x)
- else
- fun_l15_n17(x)
- end
-end
-
-def fun_l14_n589(x)
- if (x < 1)
- fun_l15_n11(x)
- else
- fun_l15_n396(x)
- end
-end
-
-def fun_l14_n590(x)
- if (x < 1)
- fun_l15_n40(x)
- else
- fun_l15_n687(x)
- end
-end
-
-def fun_l14_n591(x)
- if (x < 1)
- fun_l15_n617(x)
- else
- fun_l15_n564(x)
- end
-end
-
-def fun_l14_n592(x)
- if (x < 1)
- fun_l15_n26(x)
- else
- fun_l15_n812(x)
- end
-end
-
-def fun_l14_n593(x)
- if (x < 1)
- fun_l15_n890(x)
- else
- fun_l15_n403(x)
- end
-end
-
-def fun_l14_n594(x)
- if (x < 1)
- fun_l15_n455(x)
- else
- fun_l15_n248(x)
- end
-end
-
-def fun_l14_n595(x)
- if (x < 1)
- fun_l15_n880(x)
- else
- fun_l15_n488(x)
- end
-end
-
-def fun_l14_n596(x)
- if (x < 1)
- fun_l15_n412(x)
- else
- fun_l15_n986(x)
- end
-end
-
-def fun_l14_n597(x)
- if (x < 1)
- fun_l15_n487(x)
- else
- fun_l15_n75(x)
- end
-end
-
-def fun_l14_n598(x)
- if (x < 1)
- fun_l15_n911(x)
- else
- fun_l15_n789(x)
- end
-end
-
-def fun_l14_n599(x)
- if (x < 1)
- fun_l15_n856(x)
- else
- fun_l15_n773(x)
- end
-end
-
-def fun_l14_n600(x)
- if (x < 1)
- fun_l15_n57(x)
- else
- fun_l15_n538(x)
- end
-end
-
-def fun_l14_n601(x)
- if (x < 1)
- fun_l15_n828(x)
- else
- fun_l15_n165(x)
- end
-end
-
-def fun_l14_n602(x)
- if (x < 1)
- fun_l15_n230(x)
- else
- fun_l15_n326(x)
- end
-end
-
-def fun_l14_n603(x)
- if (x < 1)
- fun_l15_n463(x)
- else
- fun_l15_n906(x)
- end
-end
-
-def fun_l14_n604(x)
- if (x < 1)
- fun_l15_n584(x)
- else
- fun_l15_n205(x)
- end
-end
-
-def fun_l14_n605(x)
- if (x < 1)
- fun_l15_n243(x)
- else
- fun_l15_n0(x)
- end
-end
-
-def fun_l14_n606(x)
- if (x < 1)
- fun_l15_n258(x)
- else
- fun_l15_n574(x)
- end
-end
-
-def fun_l14_n607(x)
- if (x < 1)
- fun_l15_n821(x)
- else
- fun_l15_n786(x)
- end
-end
-
-def fun_l14_n608(x)
- if (x < 1)
- fun_l15_n553(x)
- else
- fun_l15_n183(x)
- end
-end
-
-def fun_l14_n609(x)
- if (x < 1)
- fun_l15_n853(x)
- else
- fun_l15_n600(x)
- end
-end
-
-def fun_l14_n610(x)
- if (x < 1)
- fun_l15_n606(x)
- else
- fun_l15_n76(x)
- end
-end
-
-def fun_l14_n611(x)
- if (x < 1)
- fun_l15_n488(x)
- else
- fun_l15_n313(x)
- end
-end
-
-def fun_l14_n612(x)
- if (x < 1)
- fun_l15_n261(x)
- else
- fun_l15_n320(x)
- end
-end
-
-def fun_l14_n613(x)
- if (x < 1)
- fun_l15_n410(x)
- else
- fun_l15_n225(x)
- end
-end
-
-def fun_l14_n614(x)
- if (x < 1)
- fun_l15_n653(x)
- else
- fun_l15_n699(x)
- end
-end
-
-def fun_l14_n615(x)
- if (x < 1)
- fun_l15_n917(x)
- else
- fun_l15_n199(x)
- end
-end
-
-def fun_l14_n616(x)
- if (x < 1)
- fun_l15_n583(x)
- else
- fun_l15_n676(x)
- end
-end
-
-def fun_l14_n617(x)
- if (x < 1)
- fun_l15_n708(x)
- else
- fun_l15_n323(x)
- end
-end
-
-def fun_l14_n618(x)
- if (x < 1)
- fun_l15_n935(x)
- else
- fun_l15_n570(x)
- end
-end
-
-def fun_l14_n619(x)
- if (x < 1)
- fun_l15_n440(x)
- else
- fun_l15_n765(x)
- end
-end
-
-def fun_l14_n620(x)
- if (x < 1)
- fun_l15_n621(x)
- else
- fun_l15_n239(x)
- end
-end
-
-def fun_l14_n621(x)
- if (x < 1)
- fun_l15_n498(x)
- else
- fun_l15_n586(x)
- end
-end
-
-def fun_l14_n622(x)
- if (x < 1)
- fun_l15_n786(x)
- else
- fun_l15_n894(x)
- end
-end
-
-def fun_l14_n623(x)
- if (x < 1)
- fun_l15_n637(x)
- else
- fun_l15_n502(x)
- end
-end
-
-def fun_l14_n624(x)
- if (x < 1)
- fun_l15_n982(x)
- else
- fun_l15_n690(x)
- end
-end
-
-def fun_l14_n625(x)
- if (x < 1)
- fun_l15_n696(x)
- else
- fun_l15_n407(x)
- end
-end
-
-def fun_l14_n626(x)
- if (x < 1)
- fun_l15_n324(x)
- else
- fun_l15_n937(x)
- end
-end
-
-def fun_l14_n627(x)
- if (x < 1)
- fun_l15_n223(x)
- else
- fun_l15_n538(x)
- end
-end
-
-def fun_l14_n628(x)
- if (x < 1)
- fun_l15_n865(x)
- else
- fun_l15_n459(x)
- end
-end
-
-def fun_l14_n629(x)
- if (x < 1)
- fun_l15_n990(x)
- else
- fun_l15_n602(x)
- end
-end
-
-def fun_l14_n630(x)
- if (x < 1)
- fun_l15_n289(x)
- else
- fun_l15_n608(x)
- end
-end
-
-def fun_l14_n631(x)
- if (x < 1)
- fun_l15_n802(x)
- else
- fun_l15_n254(x)
- end
-end
-
-def fun_l14_n632(x)
- if (x < 1)
- fun_l15_n8(x)
- else
- fun_l15_n114(x)
- end
-end
-
-def fun_l14_n633(x)
- if (x < 1)
- fun_l15_n91(x)
- else
- fun_l15_n130(x)
- end
-end
-
-def fun_l14_n634(x)
- if (x < 1)
- fun_l15_n691(x)
- else
- fun_l15_n961(x)
- end
-end
-
-def fun_l14_n635(x)
- if (x < 1)
- fun_l15_n590(x)
- else
- fun_l15_n739(x)
- end
-end
-
-def fun_l14_n636(x)
- if (x < 1)
- fun_l15_n552(x)
- else
- fun_l15_n526(x)
- end
-end
-
-def fun_l14_n637(x)
- if (x < 1)
- fun_l15_n741(x)
- else
- fun_l15_n506(x)
- end
-end
-
-def fun_l14_n638(x)
- if (x < 1)
- fun_l15_n458(x)
- else
- fun_l15_n1(x)
- end
-end
-
-def fun_l14_n639(x)
- if (x < 1)
- fun_l15_n933(x)
- else
- fun_l15_n500(x)
- end
-end
-
-def fun_l14_n640(x)
- if (x < 1)
- fun_l15_n267(x)
- else
- fun_l15_n450(x)
- end
-end
-
-def fun_l14_n641(x)
- if (x < 1)
- fun_l15_n51(x)
- else
- fun_l15_n591(x)
- end
-end
-
-def fun_l14_n642(x)
- if (x < 1)
- fun_l15_n262(x)
- else
- fun_l15_n254(x)
- end
-end
-
-def fun_l14_n643(x)
- if (x < 1)
- fun_l15_n320(x)
- else
- fun_l15_n610(x)
- end
-end
-
-def fun_l14_n644(x)
- if (x < 1)
- fun_l15_n137(x)
- else
- fun_l15_n802(x)
- end
-end
-
-def fun_l14_n645(x)
- if (x < 1)
- fun_l15_n365(x)
- else
- fun_l15_n779(x)
- end
-end
-
-def fun_l14_n646(x)
- if (x < 1)
- fun_l15_n863(x)
- else
- fun_l15_n273(x)
- end
-end
-
-def fun_l14_n647(x)
- if (x < 1)
- fun_l15_n334(x)
- else
- fun_l15_n519(x)
- end
-end
-
-def fun_l14_n648(x)
- if (x < 1)
- fun_l15_n232(x)
- else
- fun_l15_n876(x)
- end
-end
-
-def fun_l14_n649(x)
- if (x < 1)
- fun_l15_n850(x)
- else
- fun_l15_n51(x)
- end
-end
-
-def fun_l14_n650(x)
- if (x < 1)
- fun_l15_n610(x)
- else
- fun_l15_n52(x)
- end
-end
-
-def fun_l14_n651(x)
- if (x < 1)
- fun_l15_n701(x)
- else
- fun_l15_n143(x)
- end
-end
-
-def fun_l14_n652(x)
- if (x < 1)
- fun_l15_n933(x)
- else
- fun_l15_n748(x)
- end
-end
-
-def fun_l14_n653(x)
- if (x < 1)
- fun_l15_n280(x)
- else
- fun_l15_n632(x)
- end
-end
-
-def fun_l14_n654(x)
- if (x < 1)
- fun_l15_n361(x)
- else
- fun_l15_n107(x)
- end
-end
-
-def fun_l14_n655(x)
- if (x < 1)
- fun_l15_n743(x)
- else
- fun_l15_n899(x)
- end
-end
-
-def fun_l14_n656(x)
- if (x < 1)
- fun_l15_n383(x)
- else
- fun_l15_n441(x)
- end
-end
-
-def fun_l14_n657(x)
- if (x < 1)
- fun_l15_n244(x)
- else
- fun_l15_n349(x)
- end
-end
-
-def fun_l14_n658(x)
- if (x < 1)
- fun_l15_n69(x)
- else
- fun_l15_n758(x)
- end
-end
-
-def fun_l14_n659(x)
- if (x < 1)
- fun_l15_n570(x)
- else
- fun_l15_n760(x)
- end
-end
-
-def fun_l14_n660(x)
- if (x < 1)
- fun_l15_n554(x)
- else
- fun_l15_n258(x)
- end
-end
-
-def fun_l14_n661(x)
- if (x < 1)
- fun_l15_n417(x)
- else
- fun_l15_n934(x)
- end
-end
-
-def fun_l14_n662(x)
- if (x < 1)
- fun_l15_n717(x)
- else
- fun_l15_n99(x)
- end
-end
-
-def fun_l14_n663(x)
- if (x < 1)
- fun_l15_n882(x)
- else
- fun_l15_n515(x)
- end
-end
-
-def fun_l14_n664(x)
- if (x < 1)
- fun_l15_n623(x)
- else
- fun_l15_n679(x)
- end
-end
-
-def fun_l14_n665(x)
- if (x < 1)
- fun_l15_n974(x)
- else
- fun_l15_n127(x)
- end
-end
-
-def fun_l14_n666(x)
- if (x < 1)
- fun_l15_n592(x)
- else
- fun_l15_n322(x)
- end
-end
-
-def fun_l14_n667(x)
- if (x < 1)
- fun_l15_n698(x)
- else
- fun_l15_n670(x)
- end
-end
-
-def fun_l14_n668(x)
- if (x < 1)
- fun_l15_n164(x)
- else
- fun_l15_n670(x)
- end
-end
-
-def fun_l14_n669(x)
- if (x < 1)
- fun_l15_n837(x)
- else
- fun_l15_n113(x)
- end
-end
-
-def fun_l14_n670(x)
- if (x < 1)
- fun_l15_n200(x)
- else
- fun_l15_n486(x)
- end
-end
-
-def fun_l14_n671(x)
- if (x < 1)
- fun_l15_n593(x)
- else
- fun_l15_n822(x)
- end
-end
-
-def fun_l14_n672(x)
- if (x < 1)
- fun_l15_n191(x)
- else
- fun_l15_n842(x)
- end
-end
-
-def fun_l14_n673(x)
- if (x < 1)
- fun_l15_n391(x)
- else
- fun_l15_n119(x)
- end
-end
-
-def fun_l14_n674(x)
- if (x < 1)
- fun_l15_n914(x)
- else
- fun_l15_n453(x)
- end
-end
-
-def fun_l14_n675(x)
- if (x < 1)
- fun_l15_n73(x)
- else
- fun_l15_n366(x)
- end
-end
-
-def fun_l14_n676(x)
- if (x < 1)
- fun_l15_n58(x)
- else
- fun_l15_n804(x)
- end
-end
-
-def fun_l14_n677(x)
- if (x < 1)
- fun_l15_n905(x)
- else
- fun_l15_n969(x)
- end
-end
-
-def fun_l14_n678(x)
- if (x < 1)
- fun_l15_n301(x)
- else
- fun_l15_n838(x)
- end
-end
-
-def fun_l14_n679(x)
- if (x < 1)
- fun_l15_n14(x)
- else
- fun_l15_n567(x)
- end
-end
-
-def fun_l14_n680(x)
- if (x < 1)
- fun_l15_n262(x)
- else
- fun_l15_n325(x)
- end
-end
-
-def fun_l14_n681(x)
- if (x < 1)
- fun_l15_n985(x)
- else
- fun_l15_n181(x)
- end
-end
-
-def fun_l14_n682(x)
- if (x < 1)
- fun_l15_n197(x)
- else
- fun_l15_n175(x)
- end
-end
-
-def fun_l14_n683(x)
- if (x < 1)
- fun_l15_n714(x)
- else
- fun_l15_n276(x)
- end
-end
-
-def fun_l14_n684(x)
- if (x < 1)
- fun_l15_n720(x)
- else
- fun_l15_n517(x)
- end
-end
-
-def fun_l14_n685(x)
- if (x < 1)
- fun_l15_n351(x)
- else
- fun_l15_n917(x)
- end
-end
-
-def fun_l14_n686(x)
- if (x < 1)
- fun_l15_n199(x)
- else
- fun_l15_n163(x)
- end
-end
-
-def fun_l14_n687(x)
- if (x < 1)
- fun_l15_n769(x)
- else
- fun_l15_n205(x)
- end
-end
-
-def fun_l14_n688(x)
- if (x < 1)
- fun_l15_n840(x)
- else
- fun_l15_n756(x)
- end
-end
-
-def fun_l14_n689(x)
- if (x < 1)
- fun_l15_n306(x)
- else
- fun_l15_n273(x)
- end
-end
-
-def fun_l14_n690(x)
- if (x < 1)
- fun_l15_n549(x)
- else
- fun_l15_n192(x)
- end
-end
-
-def fun_l14_n691(x)
- if (x < 1)
- fun_l15_n167(x)
- else
- fun_l15_n403(x)
- end
-end
-
-def fun_l14_n692(x)
- if (x < 1)
- fun_l15_n175(x)
- else
- fun_l15_n361(x)
- end
-end
-
-def fun_l14_n693(x)
- if (x < 1)
- fun_l15_n208(x)
- else
- fun_l15_n582(x)
- end
-end
-
-def fun_l14_n694(x)
- if (x < 1)
- fun_l15_n347(x)
- else
- fun_l15_n962(x)
- end
-end
-
-def fun_l14_n695(x)
- if (x < 1)
- fun_l15_n381(x)
- else
- fun_l15_n865(x)
- end
-end
-
-def fun_l14_n696(x)
- if (x < 1)
- fun_l15_n76(x)
- else
- fun_l15_n140(x)
- end
-end
-
-def fun_l14_n697(x)
- if (x < 1)
- fun_l15_n801(x)
- else
- fun_l15_n267(x)
- end
-end
-
-def fun_l14_n698(x)
- if (x < 1)
- fun_l15_n137(x)
- else
- fun_l15_n518(x)
- end
-end
-
-def fun_l14_n699(x)
- if (x < 1)
- fun_l15_n56(x)
- else
- fun_l15_n758(x)
- end
-end
-
-def fun_l14_n700(x)
- if (x < 1)
- fun_l15_n178(x)
- else
- fun_l15_n641(x)
- end
-end
-
-def fun_l14_n701(x)
- if (x < 1)
- fun_l15_n815(x)
- else
- fun_l15_n692(x)
- end
-end
-
-def fun_l14_n702(x)
- if (x < 1)
- fun_l15_n355(x)
- else
- fun_l15_n338(x)
- end
-end
-
-def fun_l14_n703(x)
- if (x < 1)
- fun_l15_n894(x)
- else
- fun_l15_n843(x)
- end
-end
-
-def fun_l14_n704(x)
- if (x < 1)
- fun_l15_n728(x)
- else
- fun_l15_n140(x)
- end
-end
-
-def fun_l14_n705(x)
- if (x < 1)
- fun_l15_n304(x)
- else
- fun_l15_n237(x)
- end
-end
-
-def fun_l14_n706(x)
- if (x < 1)
- fun_l15_n57(x)
- else
- fun_l15_n947(x)
- end
-end
-
-def fun_l14_n707(x)
- if (x < 1)
- fun_l15_n90(x)
- else
- fun_l15_n831(x)
- end
-end
-
-def fun_l14_n708(x)
- if (x < 1)
- fun_l15_n487(x)
- else
- fun_l15_n937(x)
- end
-end
-
-def fun_l14_n709(x)
- if (x < 1)
- fun_l15_n898(x)
- else
- fun_l15_n151(x)
- end
-end
-
-def fun_l14_n710(x)
- if (x < 1)
- fun_l15_n306(x)
- else
- fun_l15_n687(x)
- end
-end
-
-def fun_l14_n711(x)
- if (x < 1)
- fun_l15_n151(x)
- else
- fun_l15_n239(x)
- end
-end
-
-def fun_l14_n712(x)
- if (x < 1)
- fun_l15_n512(x)
- else
- fun_l15_n203(x)
- end
-end
-
-def fun_l14_n713(x)
- if (x < 1)
- fun_l15_n611(x)
- else
- fun_l15_n474(x)
- end
-end
-
-def fun_l14_n714(x)
- if (x < 1)
- fun_l15_n109(x)
- else
- fun_l15_n149(x)
- end
-end
-
-def fun_l14_n715(x)
- if (x < 1)
- fun_l15_n187(x)
- else
- fun_l15_n563(x)
- end
-end
-
-def fun_l14_n716(x)
- if (x < 1)
- fun_l15_n877(x)
- else
- fun_l15_n644(x)
- end
-end
-
-def fun_l14_n717(x)
- if (x < 1)
- fun_l15_n960(x)
- else
- fun_l15_n471(x)
- end
-end
-
-def fun_l14_n718(x)
- if (x < 1)
- fun_l15_n250(x)
- else
- fun_l15_n93(x)
- end
-end
-
-def fun_l14_n719(x)
- if (x < 1)
- fun_l15_n177(x)
- else
- fun_l15_n14(x)
- end
-end
-
-def fun_l14_n720(x)
- if (x < 1)
- fun_l15_n912(x)
- else
- fun_l15_n95(x)
- end
-end
-
-def fun_l14_n721(x)
- if (x < 1)
- fun_l15_n776(x)
- else
- fun_l15_n256(x)
- end
-end
-
-def fun_l14_n722(x)
- if (x < 1)
- fun_l15_n968(x)
- else
- fun_l15_n857(x)
- end
-end
-
-def fun_l14_n723(x)
- if (x < 1)
- fun_l15_n402(x)
- else
- fun_l15_n60(x)
- end
-end
-
-def fun_l14_n724(x)
- if (x < 1)
- fun_l15_n345(x)
- else
- fun_l15_n688(x)
- end
-end
-
-def fun_l14_n725(x)
- if (x < 1)
- fun_l15_n72(x)
- else
- fun_l15_n943(x)
- end
-end
-
-def fun_l14_n726(x)
- if (x < 1)
- fun_l15_n535(x)
- else
- fun_l15_n916(x)
- end
-end
-
-def fun_l14_n727(x)
- if (x < 1)
- fun_l15_n717(x)
- else
- fun_l15_n354(x)
- end
-end
-
-def fun_l14_n728(x)
- if (x < 1)
- fun_l15_n679(x)
- else
- fun_l15_n348(x)
- end
-end
-
-def fun_l14_n729(x)
- if (x < 1)
- fun_l15_n187(x)
- else
- fun_l15_n910(x)
- end
-end
-
-def fun_l14_n730(x)
- if (x < 1)
- fun_l15_n151(x)
- else
- fun_l15_n689(x)
- end
-end
-
-def fun_l14_n731(x)
- if (x < 1)
- fun_l15_n653(x)
- else
- fun_l15_n380(x)
- end
-end
-
-def fun_l14_n732(x)
- if (x < 1)
- fun_l15_n627(x)
- else
- fun_l15_n214(x)
- end
-end
-
-def fun_l14_n733(x)
- if (x < 1)
- fun_l15_n53(x)
- else
- fun_l15_n882(x)
- end
-end
-
-def fun_l14_n734(x)
- if (x < 1)
- fun_l15_n628(x)
- else
- fun_l15_n632(x)
- end
-end
-
-def fun_l14_n735(x)
- if (x < 1)
- fun_l15_n415(x)
- else
- fun_l15_n719(x)
- end
-end
-
-def fun_l14_n736(x)
- if (x < 1)
- fun_l15_n474(x)
- else
- fun_l15_n966(x)
- end
-end
-
-def fun_l14_n737(x)
- if (x < 1)
- fun_l15_n140(x)
- else
- fun_l15_n79(x)
- end
-end
-
-def fun_l14_n738(x)
- if (x < 1)
- fun_l15_n682(x)
- else
- fun_l15_n788(x)
- end
-end
-
-def fun_l14_n739(x)
- if (x < 1)
- fun_l15_n62(x)
- else
- fun_l15_n289(x)
- end
-end
-
-def fun_l14_n740(x)
- if (x < 1)
- fun_l15_n256(x)
- else
- fun_l15_n53(x)
- end
-end
-
-def fun_l14_n741(x)
- if (x < 1)
- fun_l15_n571(x)
- else
- fun_l15_n912(x)
- end
-end
-
-def fun_l14_n742(x)
- if (x < 1)
- fun_l15_n477(x)
- else
- fun_l15_n757(x)
- end
-end
-
-def fun_l14_n743(x)
- if (x < 1)
- fun_l15_n914(x)
- else
- fun_l15_n216(x)
- end
-end
-
-def fun_l14_n744(x)
- if (x < 1)
- fun_l15_n474(x)
- else
- fun_l15_n860(x)
- end
-end
-
-def fun_l14_n745(x)
- if (x < 1)
- fun_l15_n303(x)
- else
- fun_l15_n417(x)
- end
-end
-
-def fun_l14_n746(x)
- if (x < 1)
- fun_l15_n601(x)
- else
- fun_l15_n872(x)
- end
-end
-
-def fun_l14_n747(x)
- if (x < 1)
- fun_l15_n70(x)
- else
- fun_l15_n245(x)
- end
-end
-
-def fun_l14_n748(x)
- if (x < 1)
- fun_l15_n628(x)
- else
- fun_l15_n503(x)
- end
-end
-
-def fun_l14_n749(x)
- if (x < 1)
- fun_l15_n965(x)
- else
- fun_l15_n89(x)
- end
-end
-
-def fun_l14_n750(x)
- if (x < 1)
- fun_l15_n910(x)
- else
- fun_l15_n386(x)
- end
-end
-
-def fun_l14_n751(x)
- if (x < 1)
- fun_l15_n444(x)
- else
- fun_l15_n765(x)
- end
-end
-
-def fun_l14_n752(x)
- if (x < 1)
- fun_l15_n481(x)
- else
- fun_l15_n356(x)
- end
-end
-
-def fun_l14_n753(x)
- if (x < 1)
- fun_l15_n45(x)
- else
- fun_l15_n644(x)
- end
-end
-
-def fun_l14_n754(x)
- if (x < 1)
- fun_l15_n262(x)
- else
- fun_l15_n681(x)
- end
-end
-
-def fun_l14_n755(x)
- if (x < 1)
- fun_l15_n984(x)
- else
- fun_l15_n488(x)
- end
-end
-
-def fun_l14_n756(x)
- if (x < 1)
- fun_l15_n751(x)
- else
- fun_l15_n165(x)
- end
-end
-
-def fun_l14_n757(x)
- if (x < 1)
- fun_l15_n716(x)
- else
- fun_l15_n483(x)
- end
-end
-
-def fun_l14_n758(x)
- if (x < 1)
- fun_l15_n863(x)
- else
- fun_l15_n841(x)
- end
-end
-
-def fun_l14_n759(x)
- if (x < 1)
- fun_l15_n654(x)
- else
- fun_l15_n782(x)
- end
-end
-
-def fun_l14_n760(x)
- if (x < 1)
- fun_l15_n390(x)
- else
- fun_l15_n254(x)
- end
-end
-
-def fun_l14_n761(x)
- if (x < 1)
- fun_l15_n888(x)
- else
- fun_l15_n739(x)
- end
-end
-
-def fun_l14_n762(x)
- if (x < 1)
- fun_l15_n775(x)
- else
- fun_l15_n310(x)
- end
-end
-
-def fun_l14_n763(x)
- if (x < 1)
- fun_l15_n713(x)
- else
- fun_l15_n246(x)
- end
-end
-
-def fun_l14_n764(x)
- if (x < 1)
- fun_l15_n318(x)
- else
- fun_l15_n121(x)
- end
-end
-
-def fun_l14_n765(x)
- if (x < 1)
- fun_l15_n424(x)
- else
- fun_l15_n538(x)
- end
-end
-
-def fun_l14_n766(x)
- if (x < 1)
- fun_l15_n58(x)
- else
- fun_l15_n487(x)
- end
-end
-
-def fun_l14_n767(x)
- if (x < 1)
- fun_l15_n48(x)
- else
- fun_l15_n776(x)
- end
-end
-
-def fun_l14_n768(x)
- if (x < 1)
- fun_l15_n156(x)
- else
- fun_l15_n340(x)
- end
-end
-
-def fun_l14_n769(x)
- if (x < 1)
- fun_l15_n66(x)
- else
- fun_l15_n655(x)
- end
-end
-
-def fun_l14_n770(x)
- if (x < 1)
- fun_l15_n15(x)
- else
- fun_l15_n392(x)
- end
-end
-
-def fun_l14_n771(x)
- if (x < 1)
- fun_l15_n331(x)
- else
- fun_l15_n114(x)
- end
-end
-
-def fun_l14_n772(x)
- if (x < 1)
- fun_l15_n267(x)
- else
- fun_l15_n711(x)
- end
-end
-
-def fun_l14_n773(x)
- if (x < 1)
- fun_l15_n567(x)
- else
- fun_l15_n869(x)
- end
-end
-
-def fun_l14_n774(x)
- if (x < 1)
- fun_l15_n915(x)
- else
- fun_l15_n594(x)
- end
-end
-
-def fun_l14_n775(x)
- if (x < 1)
- fun_l15_n139(x)
- else
- fun_l15_n285(x)
- end
-end
-
-def fun_l14_n776(x)
- if (x < 1)
- fun_l15_n994(x)
- else
- fun_l15_n116(x)
- end
-end
-
-def fun_l14_n777(x)
- if (x < 1)
- fun_l15_n999(x)
- else
- fun_l15_n356(x)
- end
-end
-
-def fun_l14_n778(x)
- if (x < 1)
- fun_l15_n46(x)
- else
- fun_l15_n845(x)
- end
-end
-
-def fun_l14_n779(x)
- if (x < 1)
- fun_l15_n313(x)
- else
- fun_l15_n785(x)
- end
-end
-
-def fun_l14_n780(x)
- if (x < 1)
- fun_l15_n282(x)
- else
- fun_l15_n489(x)
- end
-end
-
-def fun_l14_n781(x)
- if (x < 1)
- fun_l15_n101(x)
- else
- fun_l15_n928(x)
- end
-end
-
-def fun_l14_n782(x)
- if (x < 1)
- fun_l15_n307(x)
- else
- fun_l15_n808(x)
- end
-end
-
-def fun_l14_n783(x)
- if (x < 1)
- fun_l15_n475(x)
- else
- fun_l15_n347(x)
- end
-end
-
-def fun_l14_n784(x)
- if (x < 1)
- fun_l15_n404(x)
- else
- fun_l15_n65(x)
- end
-end
-
-def fun_l14_n785(x)
- if (x < 1)
- fun_l15_n61(x)
- else
- fun_l15_n145(x)
- end
-end
-
-def fun_l14_n786(x)
- if (x < 1)
- fun_l15_n919(x)
- else
- fun_l15_n700(x)
- end
-end
-
-def fun_l14_n787(x)
- if (x < 1)
- fun_l15_n333(x)
- else
- fun_l15_n702(x)
- end
-end
-
-def fun_l14_n788(x)
- if (x < 1)
- fun_l15_n924(x)
- else
- fun_l15_n354(x)
- end
-end
-
-def fun_l14_n789(x)
- if (x < 1)
- fun_l15_n171(x)
- else
- fun_l15_n643(x)
- end
-end
-
-def fun_l14_n790(x)
- if (x < 1)
- fun_l15_n852(x)
- else
- fun_l15_n421(x)
- end
-end
-
-def fun_l14_n791(x)
- if (x < 1)
- fun_l15_n706(x)
- else
- fun_l15_n260(x)
- end
-end
-
-def fun_l14_n792(x)
- if (x < 1)
- fun_l15_n908(x)
- else
- fun_l15_n145(x)
- end
-end
-
-def fun_l14_n793(x)
- if (x < 1)
- fun_l15_n802(x)
- else
- fun_l15_n365(x)
- end
-end
-
-def fun_l14_n794(x)
- if (x < 1)
- fun_l15_n727(x)
- else
- fun_l15_n758(x)
- end
-end
-
-def fun_l14_n795(x)
- if (x < 1)
- fun_l15_n463(x)
- else
- fun_l15_n58(x)
- end
-end
-
-def fun_l14_n796(x)
- if (x < 1)
- fun_l15_n413(x)
- else
- fun_l15_n525(x)
- end
-end
-
-def fun_l14_n797(x)
- if (x < 1)
- fun_l15_n970(x)
- else
- fun_l15_n480(x)
- end
-end
-
-def fun_l14_n798(x)
- if (x < 1)
- fun_l15_n476(x)
- else
- fun_l15_n316(x)
- end
-end
-
-def fun_l14_n799(x)
- if (x < 1)
- fun_l15_n578(x)
- else
- fun_l15_n586(x)
- end
-end
-
-def fun_l14_n800(x)
- if (x < 1)
- fun_l15_n848(x)
- else
- fun_l15_n286(x)
- end
-end
-
-def fun_l14_n801(x)
- if (x < 1)
- fun_l15_n745(x)
- else
- fun_l15_n144(x)
- end
-end
-
-def fun_l14_n802(x)
- if (x < 1)
- fun_l15_n369(x)
- else
- fun_l15_n819(x)
- end
-end
-
-def fun_l14_n803(x)
- if (x < 1)
- fun_l15_n498(x)
- else
- fun_l15_n206(x)
- end
-end
-
-def fun_l14_n804(x)
- if (x < 1)
- fun_l15_n817(x)
- else
- fun_l15_n707(x)
- end
-end
-
-def fun_l14_n805(x)
- if (x < 1)
- fun_l15_n935(x)
- else
- fun_l15_n43(x)
- end
-end
-
-def fun_l14_n806(x)
- if (x < 1)
- fun_l15_n285(x)
- else
- fun_l15_n605(x)
- end
-end
-
-def fun_l14_n807(x)
- if (x < 1)
- fun_l15_n392(x)
- else
- fun_l15_n672(x)
- end
-end
-
-def fun_l14_n808(x)
- if (x < 1)
- fun_l15_n965(x)
- else
- fun_l15_n610(x)
- end
-end
-
-def fun_l14_n809(x)
- if (x < 1)
- fun_l15_n266(x)
- else
- fun_l15_n233(x)
- end
-end
-
-def fun_l14_n810(x)
- if (x < 1)
- fun_l15_n514(x)
- else
- fun_l15_n204(x)
- end
-end
-
-def fun_l14_n811(x)
- if (x < 1)
- fun_l15_n973(x)
- else
- fun_l15_n768(x)
- end
-end
-
-def fun_l14_n812(x)
- if (x < 1)
- fun_l15_n241(x)
- else
- fun_l15_n329(x)
- end
-end
-
-def fun_l14_n813(x)
- if (x < 1)
- fun_l15_n150(x)
- else
- fun_l15_n264(x)
- end
-end
-
-def fun_l14_n814(x)
- if (x < 1)
- fun_l15_n205(x)
- else
- fun_l15_n595(x)
- end
-end
-
-def fun_l14_n815(x)
- if (x < 1)
- fun_l15_n452(x)
- else
- fun_l15_n288(x)
- end
-end
-
-def fun_l14_n816(x)
- if (x < 1)
- fun_l15_n385(x)
- else
- fun_l15_n633(x)
- end
-end
-
-def fun_l14_n817(x)
- if (x < 1)
- fun_l15_n290(x)
- else
- fun_l15_n656(x)
- end
-end
-
-def fun_l14_n818(x)
- if (x < 1)
- fun_l15_n463(x)
- else
- fun_l15_n785(x)
- end
-end
-
-def fun_l14_n819(x)
- if (x < 1)
- fun_l15_n183(x)
- else
- fun_l15_n787(x)
- end
-end
-
-def fun_l14_n820(x)
- if (x < 1)
- fun_l15_n515(x)
- else
- fun_l15_n104(x)
- end
-end
-
-def fun_l14_n821(x)
- if (x < 1)
- fun_l15_n848(x)
- else
- fun_l15_n745(x)
- end
-end
-
-def fun_l14_n822(x)
- if (x < 1)
- fun_l15_n268(x)
- else
- fun_l15_n140(x)
- end
-end
-
-def fun_l14_n823(x)
- if (x < 1)
- fun_l15_n607(x)
- else
- fun_l15_n785(x)
- end
-end
-
-def fun_l14_n824(x)
- if (x < 1)
- fun_l15_n261(x)
- else
- fun_l15_n659(x)
- end
-end
-
-def fun_l14_n825(x)
- if (x < 1)
- fun_l15_n628(x)
- else
- fun_l15_n427(x)
- end
-end
-
-def fun_l14_n826(x)
- if (x < 1)
- fun_l15_n293(x)
- else
- fun_l15_n141(x)
- end
-end
-
-def fun_l14_n827(x)
- if (x < 1)
- fun_l15_n112(x)
- else
- fun_l15_n135(x)
- end
-end
-
-def fun_l14_n828(x)
- if (x < 1)
- fun_l15_n779(x)
- else
- fun_l15_n323(x)
- end
-end
-
-def fun_l14_n829(x)
- if (x < 1)
- fun_l15_n295(x)
- else
- fun_l15_n753(x)
- end
-end
-
-def fun_l14_n830(x)
- if (x < 1)
- fun_l15_n683(x)
- else
- fun_l15_n303(x)
- end
-end
-
-def fun_l14_n831(x)
- if (x < 1)
- fun_l15_n522(x)
- else
- fun_l15_n983(x)
- end
-end
-
-def fun_l14_n832(x)
- if (x < 1)
- fun_l15_n338(x)
- else
- fun_l15_n835(x)
- end
-end
-
-def fun_l14_n833(x)
- if (x < 1)
- fun_l15_n888(x)
- else
- fun_l15_n95(x)
- end
-end
-
-def fun_l14_n834(x)
- if (x < 1)
- fun_l15_n510(x)
- else
- fun_l15_n342(x)
- end
-end
-
-def fun_l14_n835(x)
- if (x < 1)
- fun_l15_n168(x)
- else
- fun_l15_n864(x)
- end
-end
-
-def fun_l14_n836(x)
- if (x < 1)
- fun_l15_n392(x)
- else
- fun_l15_n779(x)
- end
-end
-
-def fun_l14_n837(x)
- if (x < 1)
- fun_l15_n176(x)
- else
- fun_l15_n354(x)
- end
-end
-
-def fun_l14_n838(x)
- if (x < 1)
- fun_l15_n477(x)
- else
- fun_l15_n95(x)
- end
-end
-
-def fun_l14_n839(x)
- if (x < 1)
- fun_l15_n223(x)
- else
- fun_l15_n213(x)
- end
-end
-
-def fun_l14_n840(x)
- if (x < 1)
- fun_l15_n228(x)
- else
- fun_l15_n897(x)
- end
-end
-
-def fun_l14_n841(x)
- if (x < 1)
- fun_l15_n551(x)
- else
- fun_l15_n649(x)
- end
-end
-
-def fun_l14_n842(x)
- if (x < 1)
- fun_l15_n541(x)
- else
- fun_l15_n741(x)
- end
-end
-
-def fun_l14_n843(x)
- if (x < 1)
- fun_l15_n464(x)
- else
- fun_l15_n403(x)
- end
-end
-
-def fun_l14_n844(x)
- if (x < 1)
- fun_l15_n853(x)
- else
- fun_l15_n223(x)
- end
-end
-
-def fun_l14_n845(x)
- if (x < 1)
- fun_l15_n443(x)
- else
- fun_l15_n441(x)
- end
-end
-
-def fun_l14_n846(x)
- if (x < 1)
- fun_l15_n864(x)
- else
- fun_l15_n912(x)
- end
-end
-
-def fun_l14_n847(x)
- if (x < 1)
- fun_l15_n631(x)
- else
- fun_l15_n764(x)
- end
-end
-
-def fun_l14_n848(x)
- if (x < 1)
- fun_l15_n198(x)
- else
- fun_l15_n825(x)
- end
-end
-
-def fun_l14_n849(x)
- if (x < 1)
- fun_l15_n525(x)
- else
- fun_l15_n31(x)
- end
-end
-
-def fun_l14_n850(x)
- if (x < 1)
- fun_l15_n928(x)
- else
- fun_l15_n893(x)
- end
-end
-
-def fun_l14_n851(x)
- if (x < 1)
- fun_l15_n499(x)
- else
- fun_l15_n297(x)
- end
-end
-
-def fun_l14_n852(x)
- if (x < 1)
- fun_l15_n777(x)
- else
- fun_l15_n239(x)
- end
-end
-
-def fun_l14_n853(x)
- if (x < 1)
- fun_l15_n120(x)
- else
- fun_l15_n134(x)
- end
-end
-
-def fun_l14_n854(x)
- if (x < 1)
- fun_l15_n613(x)
- else
- fun_l15_n324(x)
- end
-end
-
-def fun_l14_n855(x)
- if (x < 1)
- fun_l15_n22(x)
- else
- fun_l15_n192(x)
- end
-end
-
-def fun_l14_n856(x)
- if (x < 1)
- fun_l15_n609(x)
- else
- fun_l15_n284(x)
- end
-end
-
-def fun_l14_n857(x)
- if (x < 1)
- fun_l15_n130(x)
- else
- fun_l15_n256(x)
- end
-end
-
-def fun_l14_n858(x)
- if (x < 1)
- fun_l15_n40(x)
- else
- fun_l15_n340(x)
- end
-end
-
-def fun_l14_n859(x)
- if (x < 1)
- fun_l15_n644(x)
- else
- fun_l15_n522(x)
- end
-end
-
-def fun_l14_n860(x)
- if (x < 1)
- fun_l15_n363(x)
- else
- fun_l15_n52(x)
- end
-end
-
-def fun_l14_n861(x)
- if (x < 1)
- fun_l15_n166(x)
- else
- fun_l15_n452(x)
- end
-end
-
-def fun_l14_n862(x)
- if (x < 1)
- fun_l15_n552(x)
- else
- fun_l15_n534(x)
- end
-end
-
-def fun_l14_n863(x)
- if (x < 1)
- fun_l15_n489(x)
- else
- fun_l15_n181(x)
- end
-end
-
-def fun_l14_n864(x)
- if (x < 1)
- fun_l15_n584(x)
- else
- fun_l15_n871(x)
- end
-end
-
-def fun_l14_n865(x)
- if (x < 1)
- fun_l15_n868(x)
- else
- fun_l15_n807(x)
- end
-end
-
-def fun_l14_n866(x)
- if (x < 1)
- fun_l15_n159(x)
- else
- fun_l15_n226(x)
- end
-end
-
-def fun_l14_n867(x)
- if (x < 1)
- fun_l15_n440(x)
- else
- fun_l15_n318(x)
- end
-end
-
-def fun_l14_n868(x)
- if (x < 1)
- fun_l15_n603(x)
- else
- fun_l15_n440(x)
- end
-end
-
-def fun_l14_n869(x)
- if (x < 1)
- fun_l15_n478(x)
- else
- fun_l15_n896(x)
- end
-end
-
-def fun_l14_n870(x)
- if (x < 1)
- fun_l15_n593(x)
- else
- fun_l15_n973(x)
- end
-end
-
-def fun_l14_n871(x)
- if (x < 1)
- fun_l15_n767(x)
- else
- fun_l15_n828(x)
- end
-end
-
-def fun_l14_n872(x)
- if (x < 1)
- fun_l15_n578(x)
- else
- fun_l15_n309(x)
- end
-end
-
-def fun_l14_n873(x)
- if (x < 1)
- fun_l15_n959(x)
- else
- fun_l15_n263(x)
- end
-end
-
-def fun_l14_n874(x)
- if (x < 1)
- fun_l15_n170(x)
- else
- fun_l15_n700(x)
- end
-end
-
-def fun_l14_n875(x)
- if (x < 1)
- fun_l15_n800(x)
- else
- fun_l15_n703(x)
- end
-end
-
-def fun_l14_n876(x)
- if (x < 1)
- fun_l15_n556(x)
- else
- fun_l15_n854(x)
- end
-end
-
-def fun_l14_n877(x)
- if (x < 1)
- fun_l15_n472(x)
- else
- fun_l15_n893(x)
- end
-end
-
-def fun_l14_n878(x)
- if (x < 1)
- fun_l15_n847(x)
- else
- fun_l15_n438(x)
- end
-end
-
-def fun_l14_n879(x)
- if (x < 1)
- fun_l15_n401(x)
- else
- fun_l15_n59(x)
- end
-end
-
-def fun_l14_n880(x)
- if (x < 1)
- fun_l15_n321(x)
- else
- fun_l15_n57(x)
- end
-end
-
-def fun_l14_n881(x)
- if (x < 1)
- fun_l15_n664(x)
- else
- fun_l15_n448(x)
- end
-end
-
-def fun_l14_n882(x)
- if (x < 1)
- fun_l15_n113(x)
- else
- fun_l15_n270(x)
- end
-end
-
-def fun_l14_n883(x)
- if (x < 1)
- fun_l15_n596(x)
- else
- fun_l15_n354(x)
- end
-end
-
-def fun_l14_n884(x)
- if (x < 1)
- fun_l15_n681(x)
- else
- fun_l15_n801(x)
- end
-end
-
-def fun_l14_n885(x)
- if (x < 1)
- fun_l15_n802(x)
- else
- fun_l15_n327(x)
- end
-end
-
-def fun_l14_n886(x)
- if (x < 1)
- fun_l15_n657(x)
- else
- fun_l15_n325(x)
- end
-end
-
-def fun_l14_n887(x)
- if (x < 1)
- fun_l15_n108(x)
- else
- fun_l15_n11(x)
- end
-end
-
-def fun_l14_n888(x)
- if (x < 1)
- fun_l15_n696(x)
- else
- fun_l15_n88(x)
- end
-end
-
-def fun_l14_n889(x)
- if (x < 1)
- fun_l15_n220(x)
- else
- fun_l15_n282(x)
- end
-end
-
-def fun_l14_n890(x)
- if (x < 1)
- fun_l15_n702(x)
- else
- fun_l15_n550(x)
- end
-end
-
-def fun_l14_n891(x)
- if (x < 1)
- fun_l15_n67(x)
- else
- fun_l15_n763(x)
- end
-end
-
-def fun_l14_n892(x)
- if (x < 1)
- fun_l15_n386(x)
- else
- fun_l15_n938(x)
- end
-end
-
-def fun_l14_n893(x)
- if (x < 1)
- fun_l15_n193(x)
- else
- fun_l15_n110(x)
- end
-end
-
-def fun_l14_n894(x)
- if (x < 1)
- fun_l15_n408(x)
- else
- fun_l15_n392(x)
- end
-end
-
-def fun_l14_n895(x)
- if (x < 1)
- fun_l15_n488(x)
- else
- fun_l15_n445(x)
- end
-end
-
-def fun_l14_n896(x)
- if (x < 1)
- fun_l15_n572(x)
- else
- fun_l15_n645(x)
- end
-end
-
-def fun_l14_n897(x)
- if (x < 1)
- fun_l15_n432(x)
- else
- fun_l15_n288(x)
- end
-end
-
-def fun_l14_n898(x)
- if (x < 1)
- fun_l15_n466(x)
- else
- fun_l15_n877(x)
- end
-end
-
-def fun_l14_n899(x)
- if (x < 1)
- fun_l15_n981(x)
- else
- fun_l15_n546(x)
- end
-end
-
-def fun_l14_n900(x)
- if (x < 1)
- fun_l15_n334(x)
- else
- fun_l15_n198(x)
- end
-end
-
-def fun_l14_n901(x)
- if (x < 1)
- fun_l15_n447(x)
- else
- fun_l15_n881(x)
- end
-end
-
-def fun_l14_n902(x)
- if (x < 1)
- fun_l15_n818(x)
- else
- fun_l15_n882(x)
- end
-end
-
-def fun_l14_n903(x)
- if (x < 1)
- fun_l15_n86(x)
- else
- fun_l15_n864(x)
- end
-end
-
-def fun_l14_n904(x)
- if (x < 1)
- fun_l15_n981(x)
- else
- fun_l15_n472(x)
- end
-end
-
-def fun_l14_n905(x)
- if (x < 1)
- fun_l15_n684(x)
- else
- fun_l15_n314(x)
- end
-end
-
-def fun_l14_n906(x)
- if (x < 1)
- fun_l15_n792(x)
- else
- fun_l15_n270(x)
- end
-end
-
-def fun_l14_n907(x)
- if (x < 1)
- fun_l15_n958(x)
- else
- fun_l15_n293(x)
- end
-end
-
-def fun_l14_n908(x)
- if (x < 1)
- fun_l15_n953(x)
- else
- fun_l15_n837(x)
- end
-end
-
-def fun_l14_n909(x)
- if (x < 1)
- fun_l15_n448(x)
- else
- fun_l15_n985(x)
- end
-end
-
-def fun_l14_n910(x)
- if (x < 1)
- fun_l15_n148(x)
- else
- fun_l15_n210(x)
- end
-end
-
-def fun_l14_n911(x)
- if (x < 1)
- fun_l15_n51(x)
- else
- fun_l15_n714(x)
- end
-end
-
-def fun_l14_n912(x)
- if (x < 1)
- fun_l15_n538(x)
- else
- fun_l15_n653(x)
- end
-end
-
-def fun_l14_n913(x)
- if (x < 1)
- fun_l15_n374(x)
- else
- fun_l15_n836(x)
- end
-end
-
-def fun_l14_n914(x)
- if (x < 1)
- fun_l15_n5(x)
- else
- fun_l15_n307(x)
- end
-end
-
-def fun_l14_n915(x)
- if (x < 1)
- fun_l15_n670(x)
- else
- fun_l15_n961(x)
- end
-end
-
-def fun_l14_n916(x)
- if (x < 1)
- fun_l15_n600(x)
- else
- fun_l15_n843(x)
- end
-end
-
-def fun_l14_n917(x)
- if (x < 1)
- fun_l15_n235(x)
- else
- fun_l15_n542(x)
- end
-end
-
-def fun_l14_n918(x)
- if (x < 1)
- fun_l15_n883(x)
- else
- fun_l15_n990(x)
- end
-end
-
-def fun_l14_n919(x)
- if (x < 1)
- fun_l15_n988(x)
- else
- fun_l15_n678(x)
- end
-end
-
-def fun_l14_n920(x)
- if (x < 1)
- fun_l15_n246(x)
- else
- fun_l15_n942(x)
- end
-end
-
-def fun_l14_n921(x)
- if (x < 1)
- fun_l15_n316(x)
- else
- fun_l15_n503(x)
- end
-end
-
-def fun_l14_n922(x)
- if (x < 1)
- fun_l15_n392(x)
- else
- fun_l15_n948(x)
- end
-end
-
-def fun_l14_n923(x)
- if (x < 1)
- fun_l15_n79(x)
- else
- fun_l15_n375(x)
- end
-end
-
-def fun_l14_n924(x)
- if (x < 1)
- fun_l15_n139(x)
- else
- fun_l15_n350(x)
- end
-end
-
-def fun_l14_n925(x)
- if (x < 1)
- fun_l15_n132(x)
- else
- fun_l15_n27(x)
- end
-end
-
-def fun_l14_n926(x)
- if (x < 1)
- fun_l15_n608(x)
- else
- fun_l15_n910(x)
- end
-end
-
-def fun_l14_n927(x)
- if (x < 1)
- fun_l15_n447(x)
- else
- fun_l15_n361(x)
- end
-end
-
-def fun_l14_n928(x)
- if (x < 1)
- fun_l15_n432(x)
- else
- fun_l15_n943(x)
- end
-end
-
-def fun_l14_n929(x)
- if (x < 1)
- fun_l15_n726(x)
- else
- fun_l15_n19(x)
- end
-end
-
-def fun_l14_n930(x)
- if (x < 1)
- fun_l15_n311(x)
- else
- fun_l15_n683(x)
- end
-end
-
-def fun_l14_n931(x)
- if (x < 1)
- fun_l15_n988(x)
- else
- fun_l15_n731(x)
- end
-end
-
-def fun_l14_n932(x)
- if (x < 1)
- fun_l15_n916(x)
- else
- fun_l15_n625(x)
- end
-end
-
-def fun_l14_n933(x)
- if (x < 1)
- fun_l15_n723(x)
- else
- fun_l15_n954(x)
- end
-end
-
-def fun_l14_n934(x)
- if (x < 1)
- fun_l15_n82(x)
- else
- fun_l15_n140(x)
- end
-end
-
-def fun_l14_n935(x)
- if (x < 1)
- fun_l15_n11(x)
- else
- fun_l15_n407(x)
- end
-end
-
-def fun_l14_n936(x)
- if (x < 1)
- fun_l15_n261(x)
- else
- fun_l15_n733(x)
- end
-end
-
-def fun_l14_n937(x)
- if (x < 1)
- fun_l15_n37(x)
- else
- fun_l15_n617(x)
- end
-end
-
-def fun_l14_n938(x)
- if (x < 1)
- fun_l15_n733(x)
- else
- fun_l15_n178(x)
- end
-end
-
-def fun_l14_n939(x)
- if (x < 1)
- fun_l15_n989(x)
- else
- fun_l15_n917(x)
- end
-end
-
-def fun_l14_n940(x)
- if (x < 1)
- fun_l15_n297(x)
- else
- fun_l15_n393(x)
- end
-end
-
-def fun_l14_n941(x)
- if (x < 1)
- fun_l15_n167(x)
- else
- fun_l15_n498(x)
- end
-end
-
-def fun_l14_n942(x)
- if (x < 1)
- fun_l15_n365(x)
- else
- fun_l15_n158(x)
- end
-end
-
-def fun_l14_n943(x)
- if (x < 1)
- fun_l15_n340(x)
- else
- fun_l15_n813(x)
- end
-end
-
-def fun_l14_n944(x)
- if (x < 1)
- fun_l15_n417(x)
- else
- fun_l15_n150(x)
- end
-end
-
-def fun_l14_n945(x)
- if (x < 1)
- fun_l15_n477(x)
- else
- fun_l15_n639(x)
- end
-end
-
-def fun_l14_n946(x)
- if (x < 1)
- fun_l15_n243(x)
- else
- fun_l15_n439(x)
- end
-end
-
-def fun_l14_n947(x)
- if (x < 1)
- fun_l15_n149(x)
- else
- fun_l15_n881(x)
- end
-end
-
-def fun_l14_n948(x)
- if (x < 1)
- fun_l15_n383(x)
- else
- fun_l15_n525(x)
- end
-end
-
-def fun_l14_n949(x)
- if (x < 1)
- fun_l15_n482(x)
- else
- fun_l15_n625(x)
- end
-end
-
-def fun_l14_n950(x)
- if (x < 1)
- fun_l15_n376(x)
- else
- fun_l15_n743(x)
- end
-end
-
-def fun_l14_n951(x)
- if (x < 1)
- fun_l15_n53(x)
- else
- fun_l15_n734(x)
- end
-end
-
-def fun_l14_n952(x)
- if (x < 1)
- fun_l15_n437(x)
- else
- fun_l15_n829(x)
- end
-end
-
-def fun_l14_n953(x)
- if (x < 1)
- fun_l15_n673(x)
- else
- fun_l15_n540(x)
- end
-end
-
-def fun_l14_n954(x)
- if (x < 1)
- fun_l15_n477(x)
- else
- fun_l15_n488(x)
- end
-end
-
-def fun_l14_n955(x)
- if (x < 1)
- fun_l15_n876(x)
- else
- fun_l15_n710(x)
- end
-end
-
-def fun_l14_n956(x)
- if (x < 1)
- fun_l15_n823(x)
- else
- fun_l15_n841(x)
- end
-end
-
-def fun_l14_n957(x)
- if (x < 1)
- fun_l15_n948(x)
- else
- fun_l15_n378(x)
- end
-end
-
-def fun_l14_n958(x)
- if (x < 1)
- fun_l15_n941(x)
- else
- fun_l15_n555(x)
- end
-end
-
-def fun_l14_n959(x)
- if (x < 1)
- fun_l15_n204(x)
- else
- fun_l15_n792(x)
- end
-end
-
-def fun_l14_n960(x)
- if (x < 1)
- fun_l15_n897(x)
- else
- fun_l15_n287(x)
- end
-end
-
-def fun_l14_n961(x)
- if (x < 1)
- fun_l15_n771(x)
- else
- fun_l15_n409(x)
- end
-end
-
-def fun_l14_n962(x)
- if (x < 1)
- fun_l15_n597(x)
- else
- fun_l15_n190(x)
- end
-end
-
-def fun_l14_n963(x)
- if (x < 1)
- fun_l15_n573(x)
- else
- fun_l15_n982(x)
- end
-end
-
-def fun_l14_n964(x)
- if (x < 1)
- fun_l15_n186(x)
- else
- fun_l15_n363(x)
- end
-end
-
-def fun_l14_n965(x)
- if (x < 1)
- fun_l15_n694(x)
- else
- fun_l15_n319(x)
- end
-end
-
-def fun_l14_n966(x)
- if (x < 1)
- fun_l15_n312(x)
- else
- fun_l15_n332(x)
- end
-end
-
-def fun_l14_n967(x)
- if (x < 1)
- fun_l15_n754(x)
- else
- fun_l15_n965(x)
- end
-end
-
-def fun_l14_n968(x)
- if (x < 1)
- fun_l15_n18(x)
- else
- fun_l15_n723(x)
- end
-end
-
-def fun_l14_n969(x)
- if (x < 1)
- fun_l15_n111(x)
- else
- fun_l15_n447(x)
- end
-end
-
-def fun_l14_n970(x)
- if (x < 1)
- fun_l15_n3(x)
- else
- fun_l15_n302(x)
- end
-end
-
-def fun_l14_n971(x)
- if (x < 1)
- fun_l15_n121(x)
- else
- fun_l15_n764(x)
- end
-end
-
-def fun_l14_n972(x)
- if (x < 1)
- fun_l15_n192(x)
- else
- fun_l15_n692(x)
- end
-end
-
-def fun_l14_n973(x)
- if (x < 1)
- fun_l15_n596(x)
- else
- fun_l15_n514(x)
- end
-end
-
-def fun_l14_n974(x)
- if (x < 1)
- fun_l15_n845(x)
- else
- fun_l15_n245(x)
- end
-end
-
-def fun_l14_n975(x)
- if (x < 1)
- fun_l15_n566(x)
- else
- fun_l15_n58(x)
- end
-end
-
-def fun_l14_n976(x)
- if (x < 1)
- fun_l15_n843(x)
- else
- fun_l15_n35(x)
- end
-end
-
-def fun_l14_n977(x)
- if (x < 1)
- fun_l15_n995(x)
- else
- fun_l15_n723(x)
- end
-end
-
-def fun_l14_n978(x)
- if (x < 1)
- fun_l15_n534(x)
- else
- fun_l15_n704(x)
- end
-end
-
-def fun_l14_n979(x)
- if (x < 1)
- fun_l15_n533(x)
- else
- fun_l15_n492(x)
- end
-end
-
-def fun_l14_n980(x)
- if (x < 1)
- fun_l15_n758(x)
- else
- fun_l15_n655(x)
- end
-end
-
-def fun_l14_n981(x)
- if (x < 1)
- fun_l15_n94(x)
- else
- fun_l15_n246(x)
- end
-end
-
-def fun_l14_n982(x)
- if (x < 1)
- fun_l15_n873(x)
- else
- fun_l15_n996(x)
- end
-end
-
-def fun_l14_n983(x)
- if (x < 1)
- fun_l15_n681(x)
- else
- fun_l15_n522(x)
- end
-end
-
-def fun_l14_n984(x)
- if (x < 1)
- fun_l15_n272(x)
- else
- fun_l15_n501(x)
- end
-end
-
-def fun_l14_n985(x)
- if (x < 1)
- fun_l15_n345(x)
- else
- fun_l15_n61(x)
- end
-end
-
-def fun_l14_n986(x)
- if (x < 1)
- fun_l15_n517(x)
- else
- fun_l15_n151(x)
- end
-end
-
-def fun_l14_n987(x)
- if (x < 1)
- fun_l15_n792(x)
- else
- fun_l15_n969(x)
- end
-end
-
-def fun_l14_n988(x)
- if (x < 1)
- fun_l15_n683(x)
- else
- fun_l15_n537(x)
- end
-end
-
-def fun_l14_n989(x)
- if (x < 1)
- fun_l15_n310(x)
- else
- fun_l15_n367(x)
- end
-end
-
-def fun_l14_n990(x)
- if (x < 1)
- fun_l15_n249(x)
- else
- fun_l15_n897(x)
- end
-end
-
-def fun_l14_n991(x)
- if (x < 1)
- fun_l15_n389(x)
- else
- fun_l15_n176(x)
- end
-end
-
-def fun_l14_n992(x)
- if (x < 1)
- fun_l15_n233(x)
- else
- fun_l15_n220(x)
- end
-end
-
-def fun_l14_n993(x)
- if (x < 1)
- fun_l15_n161(x)
- else
- fun_l15_n642(x)
- end
-end
-
-def fun_l14_n994(x)
- if (x < 1)
- fun_l15_n163(x)
- else
- fun_l15_n5(x)
- end
-end
-
-def fun_l14_n995(x)
- if (x < 1)
- fun_l15_n678(x)
- else
- fun_l15_n108(x)
- end
-end
-
-def fun_l14_n996(x)
- if (x < 1)
- fun_l15_n732(x)
- else
- fun_l15_n26(x)
- end
-end
-
-def fun_l14_n997(x)
- if (x < 1)
- fun_l15_n805(x)
- else
- fun_l15_n726(x)
- end
-end
-
-def fun_l14_n998(x)
- if (x < 1)
- fun_l15_n543(x)
- else
- fun_l15_n102(x)
- end
-end
-
-def fun_l14_n999(x)
- if (x < 1)
- fun_l15_n358(x)
- else
- fun_l15_n986(x)
- end
-end
-
-def fun_l15_n0(x)
- if (x < 1)
- fun_l16_n832(x)
- else
- fun_l16_n319(x)
- end
-end
-
-def fun_l15_n1(x)
- if (x < 1)
- fun_l16_n920(x)
- else
- fun_l16_n27(x)
- end
-end
-
-def fun_l15_n2(x)
- if (x < 1)
- fun_l16_n929(x)
- else
- fun_l16_n230(x)
- end
-end
-
-def fun_l15_n3(x)
- if (x < 1)
- fun_l16_n135(x)
- else
- fun_l16_n427(x)
- end
-end
-
-def fun_l15_n4(x)
- if (x < 1)
- fun_l16_n299(x)
- else
- fun_l16_n811(x)
- end
-end
-
-def fun_l15_n5(x)
- if (x < 1)
- fun_l16_n821(x)
- else
- fun_l16_n717(x)
- end
-end
-
-def fun_l15_n6(x)
- if (x < 1)
- fun_l16_n907(x)
- else
- fun_l16_n348(x)
- end
-end
-
-def fun_l15_n7(x)
- if (x < 1)
- fun_l16_n708(x)
- else
- fun_l16_n180(x)
- end
-end
-
-def fun_l15_n8(x)
- if (x < 1)
- fun_l16_n835(x)
- else
- fun_l16_n754(x)
- end
-end
-
-def fun_l15_n9(x)
- if (x < 1)
- fun_l16_n25(x)
- else
- fun_l16_n607(x)
- end
-end
-
-def fun_l15_n10(x)
- if (x < 1)
- fun_l16_n73(x)
- else
- fun_l16_n784(x)
- end
-end
-
-def fun_l15_n11(x)
- if (x < 1)
- fun_l16_n413(x)
- else
- fun_l16_n914(x)
- end
-end
-
-def fun_l15_n12(x)
- if (x < 1)
- fun_l16_n734(x)
- else
- fun_l16_n688(x)
- end
-end
-
-def fun_l15_n13(x)
- if (x < 1)
- fun_l16_n658(x)
- else
- fun_l16_n491(x)
- end
-end
-
-def fun_l15_n14(x)
- if (x < 1)
- fun_l16_n839(x)
- else
- fun_l16_n740(x)
- end
-end
-
-def fun_l15_n15(x)
- if (x < 1)
- fun_l16_n378(x)
- else
- fun_l16_n800(x)
- end
-end
-
-def fun_l15_n16(x)
- if (x < 1)
- fun_l16_n980(x)
- else
- fun_l16_n83(x)
- end
-end
-
-def fun_l15_n17(x)
- if (x < 1)
- fun_l16_n338(x)
- else
- fun_l16_n871(x)
- end
-end
-
-def fun_l15_n18(x)
- if (x < 1)
- fun_l16_n497(x)
- else
- fun_l16_n347(x)
- end
-end
-
-def fun_l15_n19(x)
- if (x < 1)
- fun_l16_n483(x)
- else
- fun_l16_n913(x)
- end
-end
-
-def fun_l15_n20(x)
- if (x < 1)
- fun_l16_n663(x)
- else
- fun_l16_n432(x)
- end
-end
-
-def fun_l15_n21(x)
- if (x < 1)
- fun_l16_n787(x)
- else
- fun_l16_n248(x)
- end
-end
-
-def fun_l15_n22(x)
- if (x < 1)
- fun_l16_n257(x)
- else
- fun_l16_n944(x)
- end
-end
-
-def fun_l15_n23(x)
- if (x < 1)
- fun_l16_n11(x)
- else
- fun_l16_n343(x)
- end
-end
-
-def fun_l15_n24(x)
- if (x < 1)
- fun_l16_n860(x)
- else
- fun_l16_n752(x)
- end
-end
-
-def fun_l15_n25(x)
- if (x < 1)
- fun_l16_n766(x)
- else
- fun_l16_n719(x)
- end
-end
-
-def fun_l15_n26(x)
- if (x < 1)
- fun_l16_n144(x)
- else
- fun_l16_n963(x)
- end
-end
-
-def fun_l15_n27(x)
- if (x < 1)
- fun_l16_n659(x)
- else
- fun_l16_n916(x)
- end
-end
-
-def fun_l15_n28(x)
- if (x < 1)
- fun_l16_n429(x)
- else
- fun_l16_n272(x)
- end
-end
-
-def fun_l15_n29(x)
- if (x < 1)
- fun_l16_n54(x)
- else
- fun_l16_n794(x)
- end
-end
-
-def fun_l15_n30(x)
- if (x < 1)
- fun_l16_n273(x)
- else
- fun_l16_n929(x)
- end
-end
-
-def fun_l15_n31(x)
- if (x < 1)
- fun_l16_n868(x)
- else
- fun_l16_n967(x)
- end
-end
-
-def fun_l15_n32(x)
- if (x < 1)
- fun_l16_n888(x)
- else
- fun_l16_n283(x)
- end
-end
-
-def fun_l15_n33(x)
- if (x < 1)
- fun_l16_n6(x)
- else
- fun_l16_n677(x)
- end
-end
-
-def fun_l15_n34(x)
- if (x < 1)
- fun_l16_n248(x)
- else
- fun_l16_n831(x)
- end
-end
-
-def fun_l15_n35(x)
- if (x < 1)
- fun_l16_n832(x)
- else
- fun_l16_n634(x)
- end
-end
-
-def fun_l15_n36(x)
- if (x < 1)
- fun_l16_n221(x)
- else
- fun_l16_n401(x)
- end
-end
-
-def fun_l15_n37(x)
- if (x < 1)
- fun_l16_n403(x)
- else
- fun_l16_n29(x)
- end
-end
-
-def fun_l15_n38(x)
- if (x < 1)
- fun_l16_n11(x)
- else
- fun_l16_n517(x)
- end
-end
-
-def fun_l15_n39(x)
- if (x < 1)
- fun_l16_n234(x)
- else
- fun_l16_n231(x)
- end
-end
-
-def fun_l15_n40(x)
- if (x < 1)
- fun_l16_n185(x)
- else
- fun_l16_n818(x)
- end
-end
-
-def fun_l15_n41(x)
- if (x < 1)
- fun_l16_n169(x)
- else
- fun_l16_n239(x)
- end
-end
-
-def fun_l15_n42(x)
- if (x < 1)
- fun_l16_n111(x)
- else
- fun_l16_n836(x)
- end
-end
-
-def fun_l15_n43(x)
- if (x < 1)
- fun_l16_n832(x)
- else
- fun_l16_n714(x)
- end
-end
-
-def fun_l15_n44(x)
- if (x < 1)
- fun_l16_n167(x)
- else
- fun_l16_n65(x)
- end
-end
-
-def fun_l15_n45(x)
- if (x < 1)
- fun_l16_n801(x)
- else
- fun_l16_n456(x)
- end
-end
-
-def fun_l15_n46(x)
- if (x < 1)
- fun_l16_n894(x)
- else
- fun_l16_n103(x)
- end
-end
-
-def fun_l15_n47(x)
- if (x < 1)
- fun_l16_n156(x)
- else
- fun_l16_n228(x)
- end
-end
-
-def fun_l15_n48(x)
- if (x < 1)
- fun_l16_n167(x)
- else
- fun_l16_n317(x)
- end
-end
-
-def fun_l15_n49(x)
- if (x < 1)
- fun_l16_n864(x)
- else
- fun_l16_n425(x)
- end
-end
-
-def fun_l15_n50(x)
- if (x < 1)
- fun_l16_n11(x)
- else
- fun_l16_n498(x)
- end
-end
-
-def fun_l15_n51(x)
- if (x < 1)
- fun_l16_n209(x)
- else
- fun_l16_n399(x)
- end
-end
-
-def fun_l15_n52(x)
- if (x < 1)
- fun_l16_n320(x)
- else
- fun_l16_n912(x)
- end
-end
-
-def fun_l15_n53(x)
- if (x < 1)
- fun_l16_n135(x)
- else
- fun_l16_n349(x)
- end
-end
-
-def fun_l15_n54(x)
- if (x < 1)
- fun_l16_n410(x)
- else
- fun_l16_n849(x)
- end
-end
-
-def fun_l15_n55(x)
- if (x < 1)
- fun_l16_n989(x)
- else
- fun_l16_n700(x)
- end
-end
-
-def fun_l15_n56(x)
- if (x < 1)
- fun_l16_n79(x)
- else
- fun_l16_n549(x)
- end
-end
-
-def fun_l15_n57(x)
- if (x < 1)
- fun_l16_n396(x)
- else
- fun_l16_n182(x)
- end
-end
-
-def fun_l15_n58(x)
- if (x < 1)
- fun_l16_n765(x)
- else
- fun_l16_n225(x)
- end
-end
-
-def fun_l15_n59(x)
- if (x < 1)
- fun_l16_n124(x)
- else
- fun_l16_n694(x)
- end
-end
-
-def fun_l15_n60(x)
- if (x < 1)
- fun_l16_n813(x)
- else
- fun_l16_n319(x)
- end
-end
-
-def fun_l15_n61(x)
- if (x < 1)
- fun_l16_n568(x)
- else
- fun_l16_n581(x)
- end
-end
-
-def fun_l15_n62(x)
- if (x < 1)
- fun_l16_n667(x)
- else
- fun_l16_n12(x)
- end
-end
-
-def fun_l15_n63(x)
- if (x < 1)
- fun_l16_n176(x)
- else
- fun_l16_n136(x)
- end
-end
-
-def fun_l15_n64(x)
- if (x < 1)
- fun_l16_n620(x)
- else
- fun_l16_n937(x)
- end
-end
-
-def fun_l15_n65(x)
- if (x < 1)
- fun_l16_n130(x)
- else
- fun_l16_n503(x)
- end
-end
-
-def fun_l15_n66(x)
- if (x < 1)
- fun_l16_n774(x)
- else
- fun_l16_n109(x)
- end
-end
-
-def fun_l15_n67(x)
- if (x < 1)
- fun_l16_n817(x)
- else
- fun_l16_n497(x)
- end
-end
-
-def fun_l15_n68(x)
- if (x < 1)
- fun_l16_n123(x)
- else
- fun_l16_n482(x)
- end
-end
-
-def fun_l15_n69(x)
- if (x < 1)
- fun_l16_n173(x)
- else
- fun_l16_n22(x)
- end
-end
-
-def fun_l15_n70(x)
- if (x < 1)
- fun_l16_n648(x)
- else
- fun_l16_n671(x)
- end
-end
-
-def fun_l15_n71(x)
- if (x < 1)
- fun_l16_n831(x)
- else
- fun_l16_n126(x)
- end
-end
-
-def fun_l15_n72(x)
- if (x < 1)
- fun_l16_n731(x)
- else
- fun_l16_n273(x)
- end
-end
-
-def fun_l15_n73(x)
- if (x < 1)
- fun_l16_n695(x)
- else
- fun_l16_n772(x)
- end
-end
-
-def fun_l15_n74(x)
- if (x < 1)
- fun_l16_n831(x)
- else
- fun_l16_n49(x)
- end
-end
-
-def fun_l15_n75(x)
- if (x < 1)
- fun_l16_n501(x)
- else
- fun_l16_n4(x)
- end
-end
-
-def fun_l15_n76(x)
- if (x < 1)
- fun_l16_n712(x)
- else
- fun_l16_n762(x)
- end
-end
-
-def fun_l15_n77(x)
- if (x < 1)
- fun_l16_n585(x)
- else
- fun_l16_n398(x)
- end
-end
-
-def fun_l15_n78(x)
- if (x < 1)
- fun_l16_n811(x)
- else
- fun_l16_n866(x)
- end
-end
-
-def fun_l15_n79(x)
- if (x < 1)
- fun_l16_n69(x)
- else
- fun_l16_n502(x)
- end
-end
-
-def fun_l15_n80(x)
- if (x < 1)
- fun_l16_n885(x)
- else
- fun_l16_n116(x)
- end
-end
-
-def fun_l15_n81(x)
- if (x < 1)
- fun_l16_n30(x)
- else
- fun_l16_n1(x)
- end
-end
-
-def fun_l15_n82(x)
- if (x < 1)
- fun_l16_n105(x)
- else
- fun_l16_n526(x)
- end
-end
-
-def fun_l15_n83(x)
- if (x < 1)
- fun_l16_n760(x)
- else
- fun_l16_n206(x)
- end
-end
-
-def fun_l15_n84(x)
- if (x < 1)
- fun_l16_n722(x)
- else
- fun_l16_n211(x)
- end
-end
-
-def fun_l15_n85(x)
- if (x < 1)
- fun_l16_n145(x)
- else
- fun_l16_n222(x)
- end
-end
-
-def fun_l15_n86(x)
- if (x < 1)
- fun_l16_n691(x)
- else
- fun_l16_n885(x)
- end
-end
-
-def fun_l15_n87(x)
- if (x < 1)
- fun_l16_n2(x)
- else
- fun_l16_n180(x)
- end
-end
-
-def fun_l15_n88(x)
- if (x < 1)
- fun_l16_n272(x)
- else
- fun_l16_n433(x)
- end
-end
-
-def fun_l15_n89(x)
- if (x < 1)
- fun_l16_n31(x)
- else
- fun_l16_n854(x)
- end
-end
-
-def fun_l15_n90(x)
- if (x < 1)
- fun_l16_n264(x)
- else
- fun_l16_n231(x)
- end
-end
-
-def fun_l15_n91(x)
- if (x < 1)
- fun_l16_n637(x)
- else
- fun_l16_n96(x)
- end
-end
-
-def fun_l15_n92(x)
- if (x < 1)
- fun_l16_n317(x)
- else
- fun_l16_n56(x)
- end
-end
-
-def fun_l15_n93(x)
- if (x < 1)
- fun_l16_n523(x)
- else
- fun_l16_n948(x)
- end
-end
-
-def fun_l15_n94(x)
- if (x < 1)
- fun_l16_n694(x)
- else
- fun_l16_n948(x)
- end
-end
-
-def fun_l15_n95(x)
- if (x < 1)
- fun_l16_n708(x)
- else
- fun_l16_n581(x)
- end
-end
-
-def fun_l15_n96(x)
- if (x < 1)
- fun_l16_n725(x)
- else
- fun_l16_n931(x)
- end
-end
-
-def fun_l15_n97(x)
- if (x < 1)
- fun_l16_n432(x)
- else
- fun_l16_n367(x)
- end
-end
-
-def fun_l15_n98(x)
- if (x < 1)
- fun_l16_n671(x)
- else
- fun_l16_n165(x)
- end
-end
-
-def fun_l15_n99(x)
- if (x < 1)
- fun_l16_n617(x)
- else
- fun_l16_n498(x)
- end
-end
-
-def fun_l15_n100(x)
- if (x < 1)
- fun_l16_n32(x)
- else
- fun_l16_n103(x)
- end
-end
-
-def fun_l15_n101(x)
- if (x < 1)
- fun_l16_n619(x)
- else
- fun_l16_n556(x)
- end
-end
-
-def fun_l15_n102(x)
- if (x < 1)
- fun_l16_n0(x)
- else
- fun_l16_n925(x)
- end
-end
-
-def fun_l15_n103(x)
- if (x < 1)
- fun_l16_n484(x)
- else
- fun_l16_n889(x)
- end
-end
-
-def fun_l15_n104(x)
- if (x < 1)
- fun_l16_n557(x)
- else
- fun_l16_n465(x)
- end
-end
-
-def fun_l15_n105(x)
- if (x < 1)
- fun_l16_n486(x)
- else
- fun_l16_n720(x)
- end
-end
-
-def fun_l15_n106(x)
- if (x < 1)
- fun_l16_n281(x)
- else
- fun_l16_n61(x)
- end
-end
-
-def fun_l15_n107(x)
- if (x < 1)
- fun_l16_n861(x)
- else
- fun_l16_n944(x)
- end
-end
-
-def fun_l15_n108(x)
- if (x < 1)
- fun_l16_n739(x)
- else
- fun_l16_n192(x)
- end
-end
-
-def fun_l15_n109(x)
- if (x < 1)
- fun_l16_n327(x)
- else
- fun_l16_n423(x)
- end
-end
-
-def fun_l15_n110(x)
- if (x < 1)
- fun_l16_n541(x)
- else
- fun_l16_n927(x)
- end
-end
-
-def fun_l15_n111(x)
- if (x < 1)
- fun_l16_n86(x)
- else
- fun_l16_n170(x)
- end
-end
-
-def fun_l15_n112(x)
- if (x < 1)
- fun_l16_n508(x)
- else
- fun_l16_n554(x)
- end
-end
-
-def fun_l15_n113(x)
- if (x < 1)
- fun_l16_n326(x)
- else
- fun_l16_n289(x)
- end
-end
-
-def fun_l15_n114(x)
- if (x < 1)
- fun_l16_n309(x)
- else
- fun_l16_n125(x)
- end
-end
-
-def fun_l15_n115(x)
- if (x < 1)
- fun_l16_n936(x)
- else
- fun_l16_n64(x)
- end
-end
-
-def fun_l15_n116(x)
- if (x < 1)
- fun_l16_n942(x)
- else
- fun_l16_n737(x)
- end
-end
-
-def fun_l15_n117(x)
- if (x < 1)
- fun_l16_n717(x)
- else
- fun_l16_n701(x)
- end
-end
-
-def fun_l15_n118(x)
- if (x < 1)
- fun_l16_n789(x)
- else
- fun_l16_n901(x)
- end
-end
-
-def fun_l15_n119(x)
- if (x < 1)
- fun_l16_n49(x)
- else
- fun_l16_n610(x)
- end
-end
-
-def fun_l15_n120(x)
- if (x < 1)
- fun_l16_n578(x)
- else
- fun_l16_n372(x)
- end
-end
-
-def fun_l15_n121(x)
- if (x < 1)
- fun_l16_n262(x)
- else
- fun_l16_n441(x)
- end
-end
-
-def fun_l15_n122(x)
- if (x < 1)
- fun_l16_n29(x)
- else
- fun_l16_n837(x)
- end
-end
-
-def fun_l15_n123(x)
- if (x < 1)
- fun_l16_n796(x)
- else
- fun_l16_n771(x)
- end
-end
-
-def fun_l15_n124(x)
- if (x < 1)
- fun_l16_n354(x)
- else
- fun_l16_n818(x)
- end
-end
-
-def fun_l15_n125(x)
- if (x < 1)
- fun_l16_n971(x)
- else
- fun_l16_n305(x)
- end
-end
-
-def fun_l15_n126(x)
- if (x < 1)
- fun_l16_n435(x)
- else
- fun_l16_n307(x)
- end
-end
-
-def fun_l15_n127(x)
- if (x < 1)
- fun_l16_n809(x)
- else
- fun_l16_n884(x)
- end
-end
-
-def fun_l15_n128(x)
- if (x < 1)
- fun_l16_n794(x)
- else
- fun_l16_n480(x)
- end
-end
-
-def fun_l15_n129(x)
- if (x < 1)
- fun_l16_n797(x)
- else
- fun_l16_n193(x)
- end
-end
-
-def fun_l15_n130(x)
- if (x < 1)
- fun_l16_n415(x)
- else
- fun_l16_n255(x)
- end
-end
-
-def fun_l15_n131(x)
- if (x < 1)
- fun_l16_n736(x)
- else
- fun_l16_n904(x)
- end
-end
-
-def fun_l15_n132(x)
- if (x < 1)
- fun_l16_n753(x)
- else
- fun_l16_n408(x)
- end
-end
-
-def fun_l15_n133(x)
- if (x < 1)
- fun_l16_n61(x)
- else
- fun_l16_n231(x)
- end
-end
-
-def fun_l15_n134(x)
- if (x < 1)
- fun_l16_n541(x)
- else
- fun_l16_n93(x)
- end
-end
-
-def fun_l15_n135(x)
- if (x < 1)
- fun_l16_n617(x)
- else
- fun_l16_n765(x)
- end
-end
-
-def fun_l15_n136(x)
- if (x < 1)
- fun_l16_n749(x)
- else
- fun_l16_n344(x)
- end
-end
-
-def fun_l15_n137(x)
- if (x < 1)
- fun_l16_n431(x)
- else
- fun_l16_n354(x)
- end
-end
-
-def fun_l15_n138(x)
- if (x < 1)
- fun_l16_n116(x)
- else
- fun_l16_n963(x)
- end
-end
-
-def fun_l15_n139(x)
- if (x < 1)
- fun_l16_n500(x)
- else
- fun_l16_n380(x)
- end
-end
-
-def fun_l15_n140(x)
- if (x < 1)
- fun_l16_n120(x)
- else
- fun_l16_n953(x)
- end
-end
-
-def fun_l15_n141(x)
- if (x < 1)
- fun_l16_n287(x)
- else
- fun_l16_n154(x)
- end
-end
-
-def fun_l15_n142(x)
- if (x < 1)
- fun_l16_n347(x)
- else
- fun_l16_n841(x)
- end
-end
-
-def fun_l15_n143(x)
- if (x < 1)
- fun_l16_n562(x)
- else
- fun_l16_n674(x)
- end
-end
-
-def fun_l15_n144(x)
- if (x < 1)
- fun_l16_n146(x)
- else
- fun_l16_n788(x)
- end
-end
-
-def fun_l15_n145(x)
- if (x < 1)
- fun_l16_n463(x)
- else
- fun_l16_n590(x)
- end
-end
-
-def fun_l15_n146(x)
- if (x < 1)
- fun_l16_n452(x)
- else
- fun_l16_n732(x)
- end
-end
-
-def fun_l15_n147(x)
- if (x < 1)
- fun_l16_n840(x)
- else
- fun_l16_n254(x)
- end
-end
-
-def fun_l15_n148(x)
- if (x < 1)
- fun_l16_n224(x)
- else
- fun_l16_n826(x)
- end
-end
-
-def fun_l15_n149(x)
- if (x < 1)
- fun_l16_n40(x)
- else
- fun_l16_n267(x)
- end
-end
-
-def fun_l15_n150(x)
- if (x < 1)
- fun_l16_n160(x)
- else
- fun_l16_n745(x)
- end
-end
-
-def fun_l15_n151(x)
- if (x < 1)
- fun_l16_n926(x)
- else
- fun_l16_n567(x)
- end
-end
-
-def fun_l15_n152(x)
- if (x < 1)
- fun_l16_n392(x)
- else
- fun_l16_n487(x)
- end
-end
-
-def fun_l15_n153(x)
- if (x < 1)
- fun_l16_n603(x)
- else
- fun_l16_n549(x)
- end
-end
-
-def fun_l15_n154(x)
- if (x < 1)
- fun_l16_n993(x)
- else
- fun_l16_n451(x)
- end
-end
-
-def fun_l15_n155(x)
- if (x < 1)
- fun_l16_n358(x)
- else
- fun_l16_n52(x)
- end
-end
-
-def fun_l15_n156(x)
- if (x < 1)
- fun_l16_n694(x)
- else
- fun_l16_n419(x)
- end
-end
-
-def fun_l15_n157(x)
- if (x < 1)
- fun_l16_n138(x)
- else
- fun_l16_n127(x)
- end
-end
-
-def fun_l15_n158(x)
- if (x < 1)
- fun_l16_n619(x)
- else
- fun_l16_n328(x)
- end
-end
-
-def fun_l15_n159(x)
- if (x < 1)
- fun_l16_n281(x)
- else
- fun_l16_n503(x)
- end
-end
-
-def fun_l15_n160(x)
- if (x < 1)
- fun_l16_n631(x)
- else
- fun_l16_n69(x)
- end
-end
-
-def fun_l15_n161(x)
- if (x < 1)
- fun_l16_n41(x)
- else
- fun_l16_n734(x)
- end
-end
-
-def fun_l15_n162(x)
- if (x < 1)
- fun_l16_n809(x)
- else
- fun_l16_n303(x)
- end
-end
-
-def fun_l15_n163(x)
- if (x < 1)
- fun_l16_n851(x)
- else
- fun_l16_n420(x)
- end
-end
-
-def fun_l15_n164(x)
- if (x < 1)
- fun_l16_n534(x)
- else
- fun_l16_n686(x)
- end
-end
-
-def fun_l15_n165(x)
- if (x < 1)
- fun_l16_n639(x)
- else
- fun_l16_n155(x)
- end
-end
-
-def fun_l15_n166(x)
- if (x < 1)
- fun_l16_n196(x)
- else
- fun_l16_n478(x)
- end
-end
-
-def fun_l15_n167(x)
- if (x < 1)
- fun_l16_n926(x)
- else
- fun_l16_n506(x)
- end
-end
-
-def fun_l15_n168(x)
- if (x < 1)
- fun_l16_n74(x)
- else
- fun_l16_n442(x)
- end
-end
-
-def fun_l15_n169(x)
- if (x < 1)
- fun_l16_n122(x)
- else
- fun_l16_n150(x)
- end
-end
-
-def fun_l15_n170(x)
- if (x < 1)
- fun_l16_n805(x)
- else
- fun_l16_n46(x)
- end
-end
-
-def fun_l15_n171(x)
- if (x < 1)
- fun_l16_n741(x)
- else
- fun_l16_n88(x)
- end
-end
-
-def fun_l15_n172(x)
- if (x < 1)
- fun_l16_n749(x)
- else
- fun_l16_n896(x)
- end
-end
-
-def fun_l15_n173(x)
- if (x < 1)
- fun_l16_n310(x)
- else
- fun_l16_n517(x)
- end
-end
-
-def fun_l15_n174(x)
- if (x < 1)
- fun_l16_n237(x)
- else
- fun_l16_n948(x)
- end
-end
-
-def fun_l15_n175(x)
- if (x < 1)
- fun_l16_n402(x)
- else
- fun_l16_n332(x)
- end
-end
-
-def fun_l15_n176(x)
- if (x < 1)
- fun_l16_n189(x)
- else
- fun_l16_n223(x)
- end
-end
-
-def fun_l15_n177(x)
- if (x < 1)
- fun_l16_n1(x)
- else
- fun_l16_n577(x)
- end
-end
-
-def fun_l15_n178(x)
- if (x < 1)
- fun_l16_n738(x)
- else
- fun_l16_n775(x)
- end
-end
-
-def fun_l15_n179(x)
- if (x < 1)
- fun_l16_n80(x)
- else
- fun_l16_n652(x)
- end
-end
-
-def fun_l15_n180(x)
- if (x < 1)
- fun_l16_n72(x)
- else
- fun_l16_n635(x)
- end
-end
-
-def fun_l15_n181(x)
- if (x < 1)
- fun_l16_n721(x)
- else
- fun_l16_n661(x)
- end
-end
-
-def fun_l15_n182(x)
- if (x < 1)
- fun_l16_n354(x)
- else
- fun_l16_n681(x)
- end
-end
-
-def fun_l15_n183(x)
- if (x < 1)
- fun_l16_n689(x)
- else
- fun_l16_n775(x)
- end
-end
-
-def fun_l15_n184(x)
- if (x < 1)
- fun_l16_n923(x)
- else
- fun_l16_n719(x)
- end
-end
-
-def fun_l15_n185(x)
- if (x < 1)
- fun_l16_n33(x)
- else
- fun_l16_n98(x)
- end
-end
-
-def fun_l15_n186(x)
- if (x < 1)
- fun_l16_n155(x)
- else
- fun_l16_n880(x)
- end
-end
-
-def fun_l15_n187(x)
- if (x < 1)
- fun_l16_n625(x)
- else
- fun_l16_n314(x)
- end
-end
-
-def fun_l15_n188(x)
- if (x < 1)
- fun_l16_n284(x)
- else
- fun_l16_n229(x)
- end
-end
-
-def fun_l15_n189(x)
- if (x < 1)
- fun_l16_n471(x)
- else
- fun_l16_n740(x)
- end
-end
-
-def fun_l15_n190(x)
- if (x < 1)
- fun_l16_n102(x)
- else
- fun_l16_n766(x)
- end
-end
-
-def fun_l15_n191(x)
- if (x < 1)
- fun_l16_n812(x)
- else
- fun_l16_n94(x)
- end
-end
-
-def fun_l15_n192(x)
- if (x < 1)
- fun_l16_n797(x)
- else
- fun_l16_n736(x)
- end
-end
-
-def fun_l15_n193(x)
- if (x < 1)
- fun_l16_n976(x)
- else
- fun_l16_n4(x)
- end
-end
-
-def fun_l15_n194(x)
- if (x < 1)
- fun_l16_n423(x)
- else
- fun_l16_n612(x)
- end
-end
-
-def fun_l15_n195(x)
- if (x < 1)
- fun_l16_n510(x)
- else
- fun_l16_n237(x)
- end
-end
-
-def fun_l15_n196(x)
- if (x < 1)
- fun_l16_n116(x)
- else
- fun_l16_n624(x)
- end
-end
-
-def fun_l15_n197(x)
- if (x < 1)
- fun_l16_n515(x)
- else
- fun_l16_n979(x)
- end
-end
-
-def fun_l15_n198(x)
- if (x < 1)
- fun_l16_n700(x)
- else
- fun_l16_n284(x)
- end
-end
-
-def fun_l15_n199(x)
- if (x < 1)
- fun_l16_n226(x)
- else
- fun_l16_n32(x)
- end
-end
-
-def fun_l15_n200(x)
- if (x < 1)
- fun_l16_n453(x)
- else
- fun_l16_n959(x)
- end
-end
-
-def fun_l15_n201(x)
- if (x < 1)
- fun_l16_n132(x)
- else
- fun_l16_n323(x)
- end
-end
-
-def fun_l15_n202(x)
- if (x < 1)
- fun_l16_n539(x)
- else
- fun_l16_n670(x)
- end
-end
-
-def fun_l15_n203(x)
- if (x < 1)
- fun_l16_n786(x)
- else
- fun_l16_n633(x)
- end
-end
-
-def fun_l15_n204(x)
- if (x < 1)
- fun_l16_n498(x)
- else
- fun_l16_n520(x)
- end
-end
-
-def fun_l15_n205(x)
- if (x < 1)
- fun_l16_n423(x)
- else
- fun_l16_n573(x)
- end
-end
-
-def fun_l15_n206(x)
- if (x < 1)
- fun_l16_n746(x)
- else
- fun_l16_n562(x)
- end
-end
-
-def fun_l15_n207(x)
- if (x < 1)
- fun_l16_n500(x)
- else
- fun_l16_n951(x)
- end
-end
-
-def fun_l15_n208(x)
- if (x < 1)
- fun_l16_n331(x)
- else
- fun_l16_n596(x)
- end
-end
-
-def fun_l15_n209(x)
- if (x < 1)
- fun_l16_n1(x)
- else
- fun_l16_n69(x)
- end
-end
-
-def fun_l15_n210(x)
- if (x < 1)
- fun_l16_n19(x)
- else
- fun_l16_n148(x)
- end
-end
-
-def fun_l15_n211(x)
- if (x < 1)
- fun_l16_n770(x)
- else
- fun_l16_n216(x)
- end
-end
-
-def fun_l15_n212(x)
- if (x < 1)
- fun_l16_n863(x)
- else
- fun_l16_n319(x)
- end
-end
-
-def fun_l15_n213(x)
- if (x < 1)
- fun_l16_n675(x)
- else
- fun_l16_n797(x)
- end
-end
-
-def fun_l15_n214(x)
- if (x < 1)
- fun_l16_n392(x)
- else
- fun_l16_n593(x)
- end
-end
-
-def fun_l15_n215(x)
- if (x < 1)
- fun_l16_n120(x)
- else
- fun_l16_n232(x)
- end
-end
-
-def fun_l15_n216(x)
- if (x < 1)
- fun_l16_n549(x)
- else
- fun_l16_n175(x)
- end
-end
-
-def fun_l15_n217(x)
- if (x < 1)
- fun_l16_n784(x)
- else
- fun_l16_n8(x)
- end
-end
-
-def fun_l15_n218(x)
- if (x < 1)
- fun_l16_n296(x)
- else
- fun_l16_n454(x)
- end
-end
-
-def fun_l15_n219(x)
- if (x < 1)
- fun_l16_n585(x)
- else
- fun_l16_n628(x)
- end
-end
-
-def fun_l15_n220(x)
- if (x < 1)
- fun_l16_n375(x)
- else
- fun_l16_n294(x)
- end
-end
-
-def fun_l15_n221(x)
- if (x < 1)
- fun_l16_n69(x)
- else
- fun_l16_n771(x)
- end
-end
-
-def fun_l15_n222(x)
- if (x < 1)
- fun_l16_n885(x)
- else
- fun_l16_n476(x)
- end
-end
-
-def fun_l15_n223(x)
- if (x < 1)
- fun_l16_n929(x)
- else
- fun_l16_n850(x)
- end
-end
-
-def fun_l15_n224(x)
- if (x < 1)
- fun_l16_n489(x)
- else
- fun_l16_n234(x)
- end
-end
-
-def fun_l15_n225(x)
- if (x < 1)
- fun_l16_n478(x)
- else
- fun_l16_n744(x)
- end
-end
-
-def fun_l15_n226(x)
- if (x < 1)
- fun_l16_n714(x)
- else
- fun_l16_n323(x)
- end
-end
-
-def fun_l15_n227(x)
- if (x < 1)
- fun_l16_n146(x)
- else
- fun_l16_n937(x)
- end
-end
-
-def fun_l15_n228(x)
- if (x < 1)
- fun_l16_n611(x)
- else
- fun_l16_n320(x)
- end
-end
-
-def fun_l15_n229(x)
- if (x < 1)
- fun_l16_n184(x)
- else
- fun_l16_n129(x)
- end
-end
-
-def fun_l15_n230(x)
- if (x < 1)
- fun_l16_n563(x)
- else
- fun_l16_n581(x)
- end
-end
-
-def fun_l15_n231(x)
- if (x < 1)
- fun_l16_n585(x)
- else
- fun_l16_n63(x)
- end
-end
-
-def fun_l15_n232(x)
- if (x < 1)
- fun_l16_n895(x)
- else
- fun_l16_n622(x)
- end
-end
-
-def fun_l15_n233(x)
- if (x < 1)
- fun_l16_n998(x)
- else
- fun_l16_n95(x)
- end
-end
-
-def fun_l15_n234(x)
- if (x < 1)
- fun_l16_n770(x)
- else
- fun_l16_n557(x)
- end
-end
-
-def fun_l15_n235(x)
- if (x < 1)
- fun_l16_n418(x)
- else
- fun_l16_n382(x)
- end
-end
-
-def fun_l15_n236(x)
- if (x < 1)
- fun_l16_n842(x)
- else
- fun_l16_n543(x)
- end
-end
-
-def fun_l15_n237(x)
- if (x < 1)
- fun_l16_n677(x)
- else
- fun_l16_n108(x)
- end
-end
-
-def fun_l15_n238(x)
- if (x < 1)
- fun_l16_n557(x)
- else
- fun_l16_n288(x)
- end
-end
-
-def fun_l15_n239(x)
- if (x < 1)
- fun_l16_n467(x)
- else
- fun_l16_n661(x)
- end
-end
-
-def fun_l15_n240(x)
- if (x < 1)
- fun_l16_n267(x)
- else
- fun_l16_n559(x)
- end
-end
-
-def fun_l15_n241(x)
- if (x < 1)
- fun_l16_n655(x)
- else
- fun_l16_n990(x)
- end
-end
-
-def fun_l15_n242(x)
- if (x < 1)
- fun_l16_n673(x)
- else
- fun_l16_n390(x)
- end
-end
-
-def fun_l15_n243(x)
- if (x < 1)
- fun_l16_n691(x)
- else
- fun_l16_n901(x)
- end
-end
-
-def fun_l15_n244(x)
- if (x < 1)
- fun_l16_n490(x)
- else
- fun_l16_n627(x)
- end
-end
-
-def fun_l15_n245(x)
- if (x < 1)
- fun_l16_n293(x)
- else
- fun_l16_n569(x)
- end
-end
-
-def fun_l15_n246(x)
- if (x < 1)
- fun_l16_n818(x)
- else
- fun_l16_n74(x)
- end
-end
-
-def fun_l15_n247(x)
- if (x < 1)
- fun_l16_n141(x)
- else
- fun_l16_n743(x)
- end
-end
-
-def fun_l15_n248(x)
- if (x < 1)
- fun_l16_n819(x)
- else
- fun_l16_n141(x)
- end
-end
-
-def fun_l15_n249(x)
- if (x < 1)
- fun_l16_n423(x)
- else
- fun_l16_n53(x)
- end
-end
-
-def fun_l15_n250(x)
- if (x < 1)
- fun_l16_n694(x)
- else
- fun_l16_n463(x)
- end
-end
-
-def fun_l15_n251(x)
- if (x < 1)
- fun_l16_n828(x)
- else
- fun_l16_n739(x)
- end
-end
-
-def fun_l15_n252(x)
- if (x < 1)
- fun_l16_n18(x)
- else
- fun_l16_n694(x)
- end
-end
-
-def fun_l15_n253(x)
- if (x < 1)
- fun_l16_n668(x)
- else
- fun_l16_n501(x)
- end
-end
-
-def fun_l15_n254(x)
- if (x < 1)
- fun_l16_n649(x)
- else
- fun_l16_n397(x)
- end
-end
-
-def fun_l15_n255(x)
- if (x < 1)
- fun_l16_n376(x)
- else
- fun_l16_n375(x)
- end
-end
-
-def fun_l15_n256(x)
- if (x < 1)
- fun_l16_n451(x)
- else
- fun_l16_n537(x)
- end
-end
-
-def fun_l15_n257(x)
- if (x < 1)
- fun_l16_n360(x)
- else
- fun_l16_n330(x)
- end
-end
-
-def fun_l15_n258(x)
- if (x < 1)
- fun_l16_n581(x)
- else
- fun_l16_n193(x)
- end
-end
-
-def fun_l15_n259(x)
- if (x < 1)
- fun_l16_n738(x)
- else
- fun_l16_n662(x)
- end
-end
-
-def fun_l15_n260(x)
- if (x < 1)
- fun_l16_n450(x)
- else
- fun_l16_n942(x)
- end
-end
-
-def fun_l15_n261(x)
- if (x < 1)
- fun_l16_n23(x)
- else
- fun_l16_n534(x)
- end
-end
-
-def fun_l15_n262(x)
- if (x < 1)
- fun_l16_n364(x)
- else
- fun_l16_n716(x)
- end
-end
-
-def fun_l15_n263(x)
- if (x < 1)
- fun_l16_n528(x)
- else
- fun_l16_n185(x)
- end
-end
-
-def fun_l15_n264(x)
- if (x < 1)
- fun_l16_n491(x)
- else
- fun_l16_n686(x)
- end
-end
-
-def fun_l15_n265(x)
- if (x < 1)
- fun_l16_n242(x)
- else
- fun_l16_n986(x)
- end
-end
-
-def fun_l15_n266(x)
- if (x < 1)
- fun_l16_n726(x)
- else
- fun_l16_n88(x)
- end
-end
-
-def fun_l15_n267(x)
- if (x < 1)
- fun_l16_n611(x)
- else
- fun_l16_n11(x)
- end
-end
-
-def fun_l15_n268(x)
- if (x < 1)
- fun_l16_n993(x)
- else
- fun_l16_n269(x)
- end
-end
-
-def fun_l15_n269(x)
- if (x < 1)
- fun_l16_n296(x)
- else
- fun_l16_n8(x)
- end
-end
-
-def fun_l15_n270(x)
- if (x < 1)
- fun_l16_n700(x)
- else
- fun_l16_n692(x)
- end
-end
-
-def fun_l15_n271(x)
- if (x < 1)
- fun_l16_n902(x)
- else
- fun_l16_n548(x)
- end
-end
-
-def fun_l15_n272(x)
- if (x < 1)
- fun_l16_n39(x)
- else
- fun_l16_n635(x)
- end
-end
-
-def fun_l15_n273(x)
- if (x < 1)
- fun_l16_n520(x)
- else
- fun_l16_n49(x)
- end
-end
-
-def fun_l15_n274(x)
- if (x < 1)
- fun_l16_n24(x)
- else
- fun_l16_n466(x)
- end
-end
-
-def fun_l15_n275(x)
- if (x < 1)
- fun_l16_n144(x)
- else
- fun_l16_n555(x)
- end
-end
-
-def fun_l15_n276(x)
- if (x < 1)
- fun_l16_n719(x)
- else
- fun_l16_n693(x)
- end
-end
-
-def fun_l15_n277(x)
- if (x < 1)
- fun_l16_n687(x)
- else
- fun_l16_n987(x)
- end
-end
-
-def fun_l15_n278(x)
- if (x < 1)
- fun_l16_n426(x)
- else
- fun_l16_n179(x)
- end
-end
-
-def fun_l15_n279(x)
- if (x < 1)
- fun_l16_n659(x)
- else
- fun_l16_n36(x)
- end
-end
-
-def fun_l15_n280(x)
- if (x < 1)
- fun_l16_n460(x)
- else
- fun_l16_n450(x)
- end
-end
-
-def fun_l15_n281(x)
- if (x < 1)
- fun_l16_n42(x)
- else
- fun_l16_n230(x)
- end
-end
-
-def fun_l15_n282(x)
- if (x < 1)
- fun_l16_n168(x)
- else
- fun_l16_n422(x)
- end
-end
-
-def fun_l15_n283(x)
- if (x < 1)
- fun_l16_n305(x)
- else
- fun_l16_n554(x)
- end
-end
-
-def fun_l15_n284(x)
- if (x < 1)
- fun_l16_n680(x)
- else
- fun_l16_n147(x)
- end
-end
-
-def fun_l15_n285(x)
- if (x < 1)
- fun_l16_n632(x)
- else
- fun_l16_n767(x)
- end
-end
-
-def fun_l15_n286(x)
- if (x < 1)
- fun_l16_n735(x)
- else
- fun_l16_n465(x)
- end
-end
-
-def fun_l15_n287(x)
- if (x < 1)
- fun_l16_n17(x)
- else
- fun_l16_n638(x)
- end
-end
-
-def fun_l15_n288(x)
- if (x < 1)
- fun_l16_n517(x)
- else
- fun_l16_n47(x)
- end
-end
-
-def fun_l15_n289(x)
- if (x < 1)
- fun_l16_n101(x)
- else
- fun_l16_n882(x)
- end
-end
-
-def fun_l15_n290(x)
- if (x < 1)
- fun_l16_n697(x)
- else
- fun_l16_n963(x)
- end
-end
-
-def fun_l15_n291(x)
- if (x < 1)
- fun_l16_n468(x)
- else
- fun_l16_n340(x)
- end
-end
-
-def fun_l15_n292(x)
- if (x < 1)
- fun_l16_n817(x)
- else
- fun_l16_n454(x)
- end
-end
-
-def fun_l15_n293(x)
- if (x < 1)
- fun_l16_n885(x)
- else
- fun_l16_n733(x)
- end
-end
-
-def fun_l15_n294(x)
- if (x < 1)
- fun_l16_n844(x)
- else
- fun_l16_n564(x)
- end
-end
-
-def fun_l15_n295(x)
- if (x < 1)
- fun_l16_n667(x)
- else
- fun_l16_n286(x)
- end
-end
-
-def fun_l15_n296(x)
- if (x < 1)
- fun_l16_n694(x)
- else
- fun_l16_n660(x)
- end
-end
-
-def fun_l15_n297(x)
- if (x < 1)
- fun_l16_n839(x)
- else
- fun_l16_n274(x)
- end
-end
-
-def fun_l15_n298(x)
- if (x < 1)
- fun_l16_n385(x)
- else
- fun_l16_n821(x)
- end
-end
-
-def fun_l15_n299(x)
- if (x < 1)
- fun_l16_n137(x)
- else
- fun_l16_n548(x)
- end
-end
-
-def fun_l15_n300(x)
- if (x < 1)
- fun_l16_n662(x)
- else
- fun_l16_n2(x)
- end
-end
-
-def fun_l15_n301(x)
- if (x < 1)
- fun_l16_n998(x)
- else
- fun_l16_n186(x)
- end
-end
-
-def fun_l15_n302(x)
- if (x < 1)
- fun_l16_n667(x)
- else
- fun_l16_n454(x)
- end
-end
-
-def fun_l15_n303(x)
- if (x < 1)
- fun_l16_n765(x)
- else
- fun_l16_n519(x)
- end
-end
-
-def fun_l15_n304(x)
- if (x < 1)
- fun_l16_n936(x)
- else
- fun_l16_n213(x)
- end
-end
-
-def fun_l15_n305(x)
- if (x < 1)
- fun_l16_n695(x)
- else
- fun_l16_n545(x)
- end
-end
-
-def fun_l15_n306(x)
- if (x < 1)
- fun_l16_n221(x)
- else
- fun_l16_n545(x)
- end
-end
-
-def fun_l15_n307(x)
- if (x < 1)
- fun_l16_n555(x)
- else
- fun_l16_n570(x)
- end
-end
-
-def fun_l15_n308(x)
- if (x < 1)
- fun_l16_n57(x)
- else
- fun_l16_n91(x)
- end
-end
-
-def fun_l15_n309(x)
- if (x < 1)
- fun_l16_n37(x)
- else
- fun_l16_n516(x)
- end
-end
-
-def fun_l15_n310(x)
- if (x < 1)
- fun_l16_n661(x)
- else
- fun_l16_n98(x)
- end
-end
-
-def fun_l15_n311(x)
- if (x < 1)
- fun_l16_n119(x)
- else
- fun_l16_n613(x)
- end
-end
-
-def fun_l15_n312(x)
- if (x < 1)
- fun_l16_n982(x)
- else
- fun_l16_n20(x)
- end
-end
-
-def fun_l15_n313(x)
- if (x < 1)
- fun_l16_n241(x)
- else
- fun_l16_n555(x)
- end
-end
-
-def fun_l15_n314(x)
- if (x < 1)
- fun_l16_n638(x)
- else
- fun_l16_n854(x)
- end
-end
-
-def fun_l15_n315(x)
- if (x < 1)
- fun_l16_n580(x)
- else
- fun_l16_n39(x)
- end
-end
-
-def fun_l15_n316(x)
- if (x < 1)
- fun_l16_n705(x)
- else
- fun_l16_n240(x)
- end
-end
-
-def fun_l15_n317(x)
- if (x < 1)
- fun_l16_n395(x)
- else
- fun_l16_n114(x)
- end
-end
-
-def fun_l15_n318(x)
- if (x < 1)
- fun_l16_n554(x)
- else
- fun_l16_n239(x)
- end
-end
-
-def fun_l15_n319(x)
- if (x < 1)
- fun_l16_n108(x)
- else
- fun_l16_n537(x)
- end
-end
-
-def fun_l15_n320(x)
- if (x < 1)
- fun_l16_n554(x)
- else
- fun_l16_n902(x)
- end
-end
-
-def fun_l15_n321(x)
- if (x < 1)
- fun_l16_n665(x)
- else
- fun_l16_n369(x)
- end
-end
-
-def fun_l15_n322(x)
- if (x < 1)
- fun_l16_n4(x)
- else
- fun_l16_n572(x)
- end
-end
-
-def fun_l15_n323(x)
- if (x < 1)
- fun_l16_n579(x)
- else
- fun_l16_n182(x)
- end
-end
-
-def fun_l15_n324(x)
- if (x < 1)
- fun_l16_n593(x)
- else
- fun_l16_n203(x)
- end
-end
-
-def fun_l15_n325(x)
- if (x < 1)
- fun_l16_n678(x)
- else
- fun_l16_n0(x)
- end
-end
-
-def fun_l15_n326(x)
- if (x < 1)
- fun_l16_n809(x)
- else
- fun_l16_n833(x)
- end
-end
-
-def fun_l15_n327(x)
- if (x < 1)
- fun_l16_n618(x)
- else
- fun_l16_n381(x)
- end
-end
-
-def fun_l15_n328(x)
- if (x < 1)
- fun_l16_n133(x)
- else
- fun_l16_n744(x)
- end
-end
-
-def fun_l15_n329(x)
- if (x < 1)
- fun_l16_n488(x)
- else
- fun_l16_n88(x)
- end
-end
-
-def fun_l15_n330(x)
- if (x < 1)
- fun_l16_n205(x)
- else
- fun_l16_n402(x)
- end
-end
-
-def fun_l15_n331(x)
- if (x < 1)
- fun_l16_n515(x)
- else
- fun_l16_n145(x)
- end
-end
-
-def fun_l15_n332(x)
- if (x < 1)
- fun_l16_n581(x)
- else
- fun_l16_n607(x)
- end
-end
-
-def fun_l15_n333(x)
- if (x < 1)
- fun_l16_n356(x)
- else
- fun_l16_n155(x)
- end
-end
-
-def fun_l15_n334(x)
- if (x < 1)
- fun_l16_n936(x)
- else
- fun_l16_n272(x)
- end
-end
-
-def fun_l15_n335(x)
- if (x < 1)
- fun_l16_n714(x)
- else
- fun_l16_n245(x)
- end
-end
-
-def fun_l15_n336(x)
- if (x < 1)
- fun_l16_n581(x)
- else
- fun_l16_n877(x)
- end
-end
-
-def fun_l15_n337(x)
- if (x < 1)
- fun_l16_n558(x)
- else
- fun_l16_n944(x)
- end
-end
-
-def fun_l15_n338(x)
- if (x < 1)
- fun_l16_n49(x)
- else
- fun_l16_n501(x)
- end
-end
-
-def fun_l15_n339(x)
- if (x < 1)
- fun_l16_n68(x)
- else
- fun_l16_n448(x)
- end
-end
-
-def fun_l15_n340(x)
- if (x < 1)
- fun_l16_n249(x)
- else
- fun_l16_n210(x)
- end
-end
-
-def fun_l15_n341(x)
- if (x < 1)
- fun_l16_n720(x)
- else
- fun_l16_n977(x)
- end
-end
-
-def fun_l15_n342(x)
- if (x < 1)
- fun_l16_n771(x)
- else
- fun_l16_n519(x)
- end
-end
-
-def fun_l15_n343(x)
- if (x < 1)
- fun_l16_n995(x)
- else
- fun_l16_n759(x)
- end
-end
-
-def fun_l15_n344(x)
- if (x < 1)
- fun_l16_n972(x)
- else
- fun_l16_n558(x)
- end
-end
-
-def fun_l15_n345(x)
- if (x < 1)
- fun_l16_n184(x)
- else
- fun_l16_n774(x)
- end
-end
-
-def fun_l15_n346(x)
- if (x < 1)
- fun_l16_n881(x)
- else
- fun_l16_n858(x)
- end
-end
-
-def fun_l15_n347(x)
- if (x < 1)
- fun_l16_n921(x)
- else
- fun_l16_n640(x)
- end
-end
-
-def fun_l15_n348(x)
- if (x < 1)
- fun_l16_n840(x)
- else
- fun_l16_n366(x)
- end
-end
-
-def fun_l15_n349(x)
- if (x < 1)
- fun_l16_n835(x)
- else
- fun_l16_n701(x)
- end
-end
-
-def fun_l15_n350(x)
- if (x < 1)
- fun_l16_n304(x)
- else
- fun_l16_n144(x)
- end
-end
-
-def fun_l15_n351(x)
- if (x < 1)
- fun_l16_n867(x)
- else
- fun_l16_n247(x)
- end
-end
-
-def fun_l15_n352(x)
- if (x < 1)
- fun_l16_n595(x)
- else
- fun_l16_n676(x)
- end
-end
-
-def fun_l15_n353(x)
- if (x < 1)
- fun_l16_n125(x)
- else
- fun_l16_n99(x)
- end
-end
-
-def fun_l15_n354(x)
- if (x < 1)
- fun_l16_n659(x)
- else
- fun_l16_n559(x)
- end
-end
-
-def fun_l15_n355(x)
- if (x < 1)
- fun_l16_n405(x)
- else
- fun_l16_n182(x)
- end
-end
-
-def fun_l15_n356(x)
- if (x < 1)
- fun_l16_n347(x)
- else
- fun_l16_n482(x)
- end
-end
-
-def fun_l15_n357(x)
- if (x < 1)
- fun_l16_n742(x)
- else
- fun_l16_n531(x)
- end
-end
-
-def fun_l15_n358(x)
- if (x < 1)
- fun_l16_n954(x)
- else
- fun_l16_n908(x)
- end
-end
-
-def fun_l15_n359(x)
- if (x < 1)
- fun_l16_n670(x)
- else
- fun_l16_n401(x)
- end
-end
-
-def fun_l15_n360(x)
- if (x < 1)
- fun_l16_n423(x)
- else
- fun_l16_n802(x)
- end
-end
-
-def fun_l15_n361(x)
- if (x < 1)
- fun_l16_n12(x)
- else
- fun_l16_n985(x)
- end
-end
-
-def fun_l15_n362(x)
- if (x < 1)
- fun_l16_n644(x)
- else
- fun_l16_n40(x)
- end
-end
-
-def fun_l15_n363(x)
- if (x < 1)
- fun_l16_n491(x)
- else
- fun_l16_n255(x)
- end
-end
-
-def fun_l15_n364(x)
- if (x < 1)
- fun_l16_n14(x)
- else
- fun_l16_n433(x)
- end
-end
-
-def fun_l15_n365(x)
- if (x < 1)
- fun_l16_n652(x)
- else
- fun_l16_n418(x)
- end
-end
-
-def fun_l15_n366(x)
- if (x < 1)
- fun_l16_n815(x)
- else
- fun_l16_n325(x)
- end
-end
-
-def fun_l15_n367(x)
- if (x < 1)
- fun_l16_n623(x)
- else
- fun_l16_n34(x)
- end
-end
-
-def fun_l15_n368(x)
- if (x < 1)
- fun_l16_n596(x)
- else
- fun_l16_n382(x)
- end
-end
-
-def fun_l15_n369(x)
- if (x < 1)
- fun_l16_n144(x)
- else
- fun_l16_n18(x)
- end
-end
-
-def fun_l15_n370(x)
- if (x < 1)
- fun_l16_n37(x)
- else
- fun_l16_n626(x)
- end
-end
-
-def fun_l15_n371(x)
- if (x < 1)
- fun_l16_n275(x)
- else
- fun_l16_n343(x)
- end
-end
-
-def fun_l15_n372(x)
- if (x < 1)
- fun_l16_n951(x)
- else
- fun_l16_n93(x)
- end
-end
-
-def fun_l15_n373(x)
- if (x < 1)
- fun_l16_n893(x)
- else
- fun_l16_n137(x)
- end
-end
-
-def fun_l15_n374(x)
- if (x < 1)
- fun_l16_n32(x)
- else
- fun_l16_n663(x)
- end
-end
-
-def fun_l15_n375(x)
- if (x < 1)
- fun_l16_n888(x)
- else
- fun_l16_n708(x)
- end
-end
-
-def fun_l15_n376(x)
- if (x < 1)
- fun_l16_n745(x)
- else
- fun_l16_n275(x)
- end
-end
-
-def fun_l15_n377(x)
- if (x < 1)
- fun_l16_n957(x)
- else
- fun_l16_n766(x)
- end
-end
-
-def fun_l15_n378(x)
- if (x < 1)
- fun_l16_n242(x)
- else
- fun_l16_n309(x)
- end
-end
-
-def fun_l15_n379(x)
- if (x < 1)
- fun_l16_n855(x)
- else
- fun_l16_n289(x)
- end
-end
-
-def fun_l15_n380(x)
- if (x < 1)
- fun_l16_n511(x)
- else
- fun_l16_n261(x)
- end
-end
-
-def fun_l15_n381(x)
- if (x < 1)
- fun_l16_n867(x)
- else
- fun_l16_n169(x)
- end
-end
-
-def fun_l15_n382(x)
- if (x < 1)
- fun_l16_n646(x)
- else
- fun_l16_n821(x)
- end
-end
-
-def fun_l15_n383(x)
- if (x < 1)
- fun_l16_n181(x)
- else
- fun_l16_n798(x)
- end
-end
-
-def fun_l15_n384(x)
- if (x < 1)
- fun_l16_n290(x)
- else
- fun_l16_n756(x)
- end
-end
-
-def fun_l15_n385(x)
- if (x < 1)
- fun_l16_n896(x)
- else
- fun_l16_n14(x)
- end
-end
-
-def fun_l15_n386(x)
- if (x < 1)
- fun_l16_n602(x)
- else
- fun_l16_n817(x)
- end
-end
-
-def fun_l15_n387(x)
- if (x < 1)
- fun_l16_n908(x)
- else
- fun_l16_n773(x)
- end
-end
-
-def fun_l15_n388(x)
- if (x < 1)
- fun_l16_n708(x)
- else
- fun_l16_n416(x)
- end
-end
-
-def fun_l15_n389(x)
- if (x < 1)
- fun_l16_n42(x)
- else
- fun_l16_n325(x)
- end
-end
-
-def fun_l15_n390(x)
- if (x < 1)
- fun_l16_n245(x)
- else
- fun_l16_n211(x)
- end
-end
-
-def fun_l15_n391(x)
- if (x < 1)
- fun_l16_n674(x)
- else
- fun_l16_n854(x)
- end
-end
-
-def fun_l15_n392(x)
- if (x < 1)
- fun_l16_n294(x)
- else
- fun_l16_n299(x)
- end
-end
-
-def fun_l15_n393(x)
- if (x < 1)
- fun_l16_n873(x)
- else
- fun_l16_n17(x)
- end
-end
-
-def fun_l15_n394(x)
- if (x < 1)
- fun_l16_n375(x)
- else
- fun_l16_n976(x)
- end
-end
-
-def fun_l15_n395(x)
- if (x < 1)
- fun_l16_n753(x)
- else
- fun_l16_n362(x)
- end
-end
-
-def fun_l15_n396(x)
- if (x < 1)
- fun_l16_n326(x)
- else
- fun_l16_n878(x)
- end
-end
-
-def fun_l15_n397(x)
- if (x < 1)
- fun_l16_n118(x)
- else
- fun_l16_n552(x)
- end
-end
-
-def fun_l15_n398(x)
- if (x < 1)
- fun_l16_n931(x)
- else
- fun_l16_n552(x)
- end
-end
-
-def fun_l15_n399(x)
- if (x < 1)
- fun_l16_n125(x)
- else
- fun_l16_n817(x)
- end
-end
-
-def fun_l15_n400(x)
- if (x < 1)
- fun_l16_n747(x)
- else
- fun_l16_n328(x)
- end
-end
-
-def fun_l15_n401(x)
- if (x < 1)
- fun_l16_n204(x)
- else
- fun_l16_n644(x)
- end
-end
-
-def fun_l15_n402(x)
- if (x < 1)
- fun_l16_n730(x)
- else
- fun_l16_n622(x)
- end
-end
-
-def fun_l15_n403(x)
- if (x < 1)
- fun_l16_n718(x)
- else
- fun_l16_n616(x)
- end
-end
-
-def fun_l15_n404(x)
- if (x < 1)
- fun_l16_n260(x)
- else
- fun_l16_n96(x)
- end
-end
-
-def fun_l15_n405(x)
- if (x < 1)
- fun_l16_n123(x)
- else
- fun_l16_n377(x)
- end
-end
-
-def fun_l15_n406(x)
- if (x < 1)
- fun_l16_n425(x)
- else
- fun_l16_n601(x)
- end
-end
-
-def fun_l15_n407(x)
- if (x < 1)
- fun_l16_n842(x)
- else
- fun_l16_n936(x)
- end
-end
-
-def fun_l15_n408(x)
- if (x < 1)
- fun_l16_n797(x)
- else
- fun_l16_n194(x)
- end
-end
-
-def fun_l15_n409(x)
- if (x < 1)
- fun_l16_n930(x)
- else
- fun_l16_n976(x)
- end
-end
-
-def fun_l15_n410(x)
- if (x < 1)
- fun_l16_n163(x)
- else
- fun_l16_n703(x)
- end
-end
-
-def fun_l15_n411(x)
- if (x < 1)
- fun_l16_n109(x)
- else
- fun_l16_n276(x)
- end
-end
-
-def fun_l15_n412(x)
- if (x < 1)
- fun_l16_n37(x)
- else
- fun_l16_n372(x)
- end
-end
-
-def fun_l15_n413(x)
- if (x < 1)
- fun_l16_n995(x)
- else
- fun_l16_n762(x)
- end
-end
-
-def fun_l15_n414(x)
- if (x < 1)
- fun_l16_n789(x)
- else
- fun_l16_n601(x)
- end
-end
-
-def fun_l15_n415(x)
- if (x < 1)
- fun_l16_n699(x)
- else
- fun_l16_n853(x)
- end
-end
-
-def fun_l15_n416(x)
- if (x < 1)
- fun_l16_n936(x)
- else
- fun_l16_n478(x)
- end
-end
-
-def fun_l15_n417(x)
- if (x < 1)
- fun_l16_n50(x)
- else
- fun_l16_n67(x)
- end
-end
-
-def fun_l15_n418(x)
- if (x < 1)
- fun_l16_n563(x)
- else
- fun_l16_n248(x)
- end
-end
-
-def fun_l15_n419(x)
- if (x < 1)
- fun_l16_n238(x)
- else
- fun_l16_n188(x)
- end
-end
-
-def fun_l15_n420(x)
- if (x < 1)
- fun_l16_n369(x)
- else
- fun_l16_n706(x)
- end
-end
-
-def fun_l15_n421(x)
- if (x < 1)
- fun_l16_n641(x)
- else
- fun_l16_n869(x)
- end
-end
-
-def fun_l15_n422(x)
- if (x < 1)
- fun_l16_n219(x)
- else
- fun_l16_n333(x)
- end
-end
-
-def fun_l15_n423(x)
- if (x < 1)
- fun_l16_n156(x)
- else
- fun_l16_n22(x)
- end
-end
-
-def fun_l15_n424(x)
- if (x < 1)
- fun_l16_n443(x)
- else
- fun_l16_n1(x)
- end
-end
-
-def fun_l15_n425(x)
- if (x < 1)
- fun_l16_n892(x)
- else
- fun_l16_n937(x)
- end
-end
-
-def fun_l15_n426(x)
- if (x < 1)
- fun_l16_n586(x)
- else
- fun_l16_n636(x)
- end
-end
-
-def fun_l15_n427(x)
- if (x < 1)
- fun_l16_n519(x)
- else
- fun_l16_n269(x)
- end
-end
-
-def fun_l15_n428(x)
- if (x < 1)
- fun_l16_n379(x)
- else
- fun_l16_n994(x)
- end
-end
-
-def fun_l15_n429(x)
- if (x < 1)
- fun_l16_n588(x)
- else
- fun_l16_n532(x)
- end
-end
-
-def fun_l15_n430(x)
- if (x < 1)
- fun_l16_n584(x)
- else
- fun_l16_n445(x)
- end
-end
-
-def fun_l15_n431(x)
- if (x < 1)
- fun_l16_n63(x)
- else
- fun_l16_n678(x)
- end
-end
-
-def fun_l15_n432(x)
- if (x < 1)
- fun_l16_n487(x)
- else
- fun_l16_n435(x)
- end
-end
-
-def fun_l15_n433(x)
- if (x < 1)
- fun_l16_n673(x)
- else
- fun_l16_n220(x)
- end
-end
-
-def fun_l15_n434(x)
- if (x < 1)
- fun_l16_n131(x)
- else
- fun_l16_n751(x)
- end
-end
-
-def fun_l15_n435(x)
- if (x < 1)
- fun_l16_n557(x)
- else
- fun_l16_n340(x)
- end
-end
-
-def fun_l15_n436(x)
- if (x < 1)
- fun_l16_n511(x)
- else
- fun_l16_n751(x)
- end
-end
-
-def fun_l15_n437(x)
- if (x < 1)
- fun_l16_n983(x)
- else
- fun_l16_n632(x)
- end
-end
-
-def fun_l15_n438(x)
- if (x < 1)
- fun_l16_n350(x)
- else
- fun_l16_n492(x)
- end
-end
-
-def fun_l15_n439(x)
- if (x < 1)
- fun_l16_n994(x)
- else
- fun_l16_n76(x)
- end
-end
-
-def fun_l15_n440(x)
- if (x < 1)
- fun_l16_n756(x)
- else
- fun_l16_n177(x)
- end
-end
-
-def fun_l15_n441(x)
- if (x < 1)
- fun_l16_n619(x)
- else
- fun_l16_n473(x)
- end
-end
-
-def fun_l15_n442(x)
- if (x < 1)
- fun_l16_n667(x)
- else
- fun_l16_n714(x)
- end
-end
-
-def fun_l15_n443(x)
- if (x < 1)
- fun_l16_n790(x)
- else
- fun_l16_n848(x)
- end
-end
-
-def fun_l15_n444(x)
- if (x < 1)
- fun_l16_n925(x)
- else
- fun_l16_n113(x)
- end
-end
-
-def fun_l15_n445(x)
- if (x < 1)
- fun_l16_n990(x)
- else
- fun_l16_n566(x)
- end
-end
-
-def fun_l15_n446(x)
- if (x < 1)
- fun_l16_n589(x)
- else
- fun_l16_n881(x)
- end
-end
-
-def fun_l15_n447(x)
- if (x < 1)
- fun_l16_n961(x)
- else
- fun_l16_n786(x)
- end
-end
-
-def fun_l15_n448(x)
- if (x < 1)
- fun_l16_n928(x)
- else
- fun_l16_n631(x)
- end
-end
-
-def fun_l15_n449(x)
- if (x < 1)
- fun_l16_n317(x)
- else
- fun_l16_n980(x)
- end
-end
-
-def fun_l15_n450(x)
- if (x < 1)
- fun_l16_n276(x)
- else
- fun_l16_n941(x)
- end
-end
-
-def fun_l15_n451(x)
- if (x < 1)
- fun_l16_n552(x)
- else
- fun_l16_n545(x)
- end
-end
-
-def fun_l15_n452(x)
- if (x < 1)
- fun_l16_n334(x)
- else
- fun_l16_n340(x)
- end
-end
-
-def fun_l15_n453(x)
- if (x < 1)
- fun_l16_n800(x)
- else
- fun_l16_n548(x)
- end
-end
-
-def fun_l15_n454(x)
- if (x < 1)
- fun_l16_n676(x)
- else
- fun_l16_n742(x)
- end
-end
-
-def fun_l15_n455(x)
- if (x < 1)
- fun_l16_n722(x)
- else
- fun_l16_n446(x)
- end
-end
-
-def fun_l15_n456(x)
- if (x < 1)
- fun_l16_n570(x)
- else
- fun_l16_n203(x)
- end
-end
-
-def fun_l15_n457(x)
- if (x < 1)
- fun_l16_n425(x)
- else
- fun_l16_n401(x)
- end
-end
-
-def fun_l15_n458(x)
- if (x < 1)
- fun_l16_n3(x)
- else
- fun_l16_n483(x)
- end
-end
-
-def fun_l15_n459(x)
- if (x < 1)
- fun_l16_n450(x)
- else
- fun_l16_n468(x)
- end
-end
-
-def fun_l15_n460(x)
- if (x < 1)
- fun_l16_n447(x)
- else
- fun_l16_n758(x)
- end
-end
-
-def fun_l15_n461(x)
- if (x < 1)
- fun_l16_n531(x)
- else
- fun_l16_n268(x)
- end
-end
-
-def fun_l15_n462(x)
- if (x < 1)
- fun_l16_n628(x)
- else
- fun_l16_n142(x)
- end
-end
-
-def fun_l15_n463(x)
- if (x < 1)
- fun_l16_n823(x)
- else
- fun_l16_n97(x)
- end
-end
-
-def fun_l15_n464(x)
- if (x < 1)
- fun_l16_n807(x)
- else
- fun_l16_n231(x)
- end
-end
-
-def fun_l15_n465(x)
- if (x < 1)
- fun_l16_n113(x)
- else
- fun_l16_n438(x)
- end
-end
-
-def fun_l15_n466(x)
- if (x < 1)
- fun_l16_n234(x)
- else
- fun_l16_n369(x)
- end
-end
-
-def fun_l15_n467(x)
- if (x < 1)
- fun_l16_n242(x)
- else
- fun_l16_n121(x)
- end
-end
-
-def fun_l15_n468(x)
- if (x < 1)
- fun_l16_n38(x)
- else
- fun_l16_n223(x)
- end
-end
-
-def fun_l15_n469(x)
- if (x < 1)
- fun_l16_n618(x)
- else
- fun_l16_n550(x)
- end
-end
-
-def fun_l15_n470(x)
- if (x < 1)
- fun_l16_n318(x)
- else
- fun_l16_n182(x)
- end
-end
-
-def fun_l15_n471(x)
- if (x < 1)
- fun_l16_n782(x)
- else
- fun_l16_n876(x)
- end
-end
-
-def fun_l15_n472(x)
- if (x < 1)
- fun_l16_n995(x)
- else
- fun_l16_n4(x)
- end
-end
-
-def fun_l15_n473(x)
- if (x < 1)
- fun_l16_n425(x)
- else
- fun_l16_n891(x)
- end
-end
-
-def fun_l15_n474(x)
- if (x < 1)
- fun_l16_n263(x)
- else
- fun_l16_n278(x)
- end
-end
-
-def fun_l15_n475(x)
- if (x < 1)
- fun_l16_n116(x)
- else
- fun_l16_n62(x)
- end
-end
-
-def fun_l15_n476(x)
- if (x < 1)
- fun_l16_n855(x)
- else
- fun_l16_n153(x)
- end
-end
-
-def fun_l15_n477(x)
- if (x < 1)
- fun_l16_n979(x)
- else
- fun_l16_n957(x)
- end
-end
-
-def fun_l15_n478(x)
- if (x < 1)
- fun_l16_n671(x)
- else
- fun_l16_n694(x)
- end
-end
-
-def fun_l15_n479(x)
- if (x < 1)
- fun_l16_n479(x)
- else
- fun_l16_n400(x)
- end
-end
-
-def fun_l15_n480(x)
- if (x < 1)
- fun_l16_n740(x)
- else
- fun_l16_n940(x)
- end
-end
-
-def fun_l15_n481(x)
- if (x < 1)
- fun_l16_n270(x)
- else
- fun_l16_n802(x)
- end
-end
-
-def fun_l15_n482(x)
- if (x < 1)
- fun_l16_n489(x)
- else
- fun_l16_n402(x)
- end
-end
-
-def fun_l15_n483(x)
- if (x < 1)
- fun_l16_n505(x)
- else
- fun_l16_n97(x)
- end
-end
-
-def fun_l15_n484(x)
- if (x < 1)
- fun_l16_n64(x)
- else
- fun_l16_n748(x)
- end
-end
-
-def fun_l15_n485(x)
- if (x < 1)
- fun_l16_n7(x)
- else
- fun_l16_n627(x)
- end
-end
-
-def fun_l15_n486(x)
- if (x < 1)
- fun_l16_n302(x)
- else
- fun_l16_n331(x)
- end
-end
-
-def fun_l15_n487(x)
- if (x < 1)
- fun_l16_n771(x)
- else
- fun_l16_n895(x)
- end
-end
-
-def fun_l15_n488(x)
- if (x < 1)
- fun_l16_n306(x)
- else
- fun_l16_n740(x)
- end
-end
-
-def fun_l15_n489(x)
- if (x < 1)
- fun_l16_n722(x)
- else
- fun_l16_n848(x)
- end
-end
-
-def fun_l15_n490(x)
- if (x < 1)
- fun_l16_n764(x)
- else
- fun_l16_n851(x)
- end
-end
-
-def fun_l15_n491(x)
- if (x < 1)
- fun_l16_n357(x)
- else
- fun_l16_n117(x)
- end
-end
-
-def fun_l15_n492(x)
- if (x < 1)
- fun_l16_n483(x)
- else
- fun_l16_n187(x)
- end
-end
-
-def fun_l15_n493(x)
- if (x < 1)
- fun_l16_n695(x)
- else
- fun_l16_n727(x)
- end
-end
-
-def fun_l15_n494(x)
- if (x < 1)
- fun_l16_n460(x)
- else
- fun_l16_n154(x)
- end
-end
-
-def fun_l15_n495(x)
- if (x < 1)
- fun_l16_n130(x)
- else
- fun_l16_n999(x)
- end
-end
-
-def fun_l15_n496(x)
- if (x < 1)
- fun_l16_n963(x)
- else
- fun_l16_n746(x)
- end
-end
-
-def fun_l15_n497(x)
- if (x < 1)
- fun_l16_n630(x)
- else
- fun_l16_n852(x)
- end
-end
-
-def fun_l15_n498(x)
- if (x < 1)
- fun_l16_n847(x)
- else
- fun_l16_n836(x)
- end
-end
-
-def fun_l15_n499(x)
- if (x < 1)
- fun_l16_n100(x)
- else
- fun_l16_n40(x)
- end
-end
-
-def fun_l15_n500(x)
- if (x < 1)
- fun_l16_n246(x)
- else
- fun_l16_n442(x)
- end
-end
-
-def fun_l15_n501(x)
- if (x < 1)
- fun_l16_n355(x)
- else
- fun_l16_n405(x)
- end
-end
-
-def fun_l15_n502(x)
- if (x < 1)
- fun_l16_n857(x)
- else
- fun_l16_n652(x)
- end
-end
-
-def fun_l15_n503(x)
- if (x < 1)
- fun_l16_n612(x)
- else
- fun_l16_n779(x)
- end
-end
-
-def fun_l15_n504(x)
- if (x < 1)
- fun_l16_n836(x)
- else
- fun_l16_n625(x)
- end
-end
-
-def fun_l15_n505(x)
- if (x < 1)
- fun_l16_n872(x)
- else
- fun_l16_n905(x)
- end
-end
-
-def fun_l15_n506(x)
- if (x < 1)
- fun_l16_n953(x)
- else
- fun_l16_n955(x)
- end
-end
-
-def fun_l15_n507(x)
- if (x < 1)
- fun_l16_n678(x)
- else
- fun_l16_n663(x)
- end
-end
-
-def fun_l15_n508(x)
- if (x < 1)
- fun_l16_n848(x)
- else
- fun_l16_n438(x)
- end
-end
-
-def fun_l15_n509(x)
- if (x < 1)
- fun_l16_n558(x)
- else
- fun_l16_n430(x)
- end
-end
-
-def fun_l15_n510(x)
- if (x < 1)
- fun_l16_n424(x)
- else
- fun_l16_n473(x)
- end
-end
-
-def fun_l15_n511(x)
- if (x < 1)
- fun_l16_n897(x)
- else
- fun_l16_n359(x)
- end
-end
-
-def fun_l15_n512(x)
- if (x < 1)
- fun_l16_n229(x)
- else
- fun_l16_n205(x)
- end
-end
-
-def fun_l15_n513(x)
- if (x < 1)
- fun_l16_n553(x)
- else
- fun_l16_n438(x)
- end
-end
-
-def fun_l15_n514(x)
- if (x < 1)
- fun_l16_n300(x)
- else
- fun_l16_n588(x)
- end
-end
-
-def fun_l15_n515(x)
- if (x < 1)
- fun_l16_n819(x)
- else
- fun_l16_n467(x)
- end
-end
-
-def fun_l15_n516(x)
- if (x < 1)
- fun_l16_n767(x)
- else
- fun_l16_n786(x)
- end
-end
-
-def fun_l15_n517(x)
- if (x < 1)
- fun_l16_n50(x)
- else
- fun_l16_n309(x)
- end
-end
-
-def fun_l15_n518(x)
- if (x < 1)
- fun_l16_n671(x)
- else
- fun_l16_n635(x)
- end
-end
-
-def fun_l15_n519(x)
- if (x < 1)
- fun_l16_n935(x)
- else
- fun_l16_n497(x)
- end
-end
-
-def fun_l15_n520(x)
- if (x < 1)
- fun_l16_n343(x)
- else
- fun_l16_n175(x)
- end
-end
-
-def fun_l15_n521(x)
- if (x < 1)
- fun_l16_n212(x)
- else
- fun_l16_n987(x)
- end
-end
-
-def fun_l15_n522(x)
- if (x < 1)
- fun_l16_n780(x)
- else
- fun_l16_n331(x)
- end
-end
-
-def fun_l15_n523(x)
- if (x < 1)
- fun_l16_n452(x)
- else
- fun_l16_n393(x)
- end
-end
-
-def fun_l15_n524(x)
- if (x < 1)
- fun_l16_n823(x)
- else
- fun_l16_n212(x)
- end
-end
-
-def fun_l15_n525(x)
- if (x < 1)
- fun_l16_n516(x)
- else
- fun_l16_n906(x)
- end
-end
-
-def fun_l15_n526(x)
- if (x < 1)
- fun_l16_n590(x)
- else
- fun_l16_n278(x)
- end
-end
-
-def fun_l15_n527(x)
- if (x < 1)
- fun_l16_n392(x)
- else
- fun_l16_n714(x)
- end
-end
-
-def fun_l15_n528(x)
- if (x < 1)
- fun_l16_n729(x)
- else
- fun_l16_n751(x)
- end
-end
-
-def fun_l15_n529(x)
- if (x < 1)
- fun_l16_n863(x)
- else
- fun_l16_n478(x)
- end
-end
-
-def fun_l15_n530(x)
- if (x < 1)
- fun_l16_n472(x)
- else
- fun_l16_n672(x)
- end
-end
-
-def fun_l15_n531(x)
- if (x < 1)
- fun_l16_n811(x)
- else
- fun_l16_n201(x)
- end
-end
-
-def fun_l15_n532(x)
- if (x < 1)
- fun_l16_n558(x)
- else
- fun_l16_n602(x)
- end
-end
-
-def fun_l15_n533(x)
- if (x < 1)
- fun_l16_n788(x)
- else
- fun_l16_n175(x)
- end
-end
-
-def fun_l15_n534(x)
- if (x < 1)
- fun_l16_n497(x)
- else
- fun_l16_n807(x)
- end
-end
-
-def fun_l15_n535(x)
- if (x < 1)
- fun_l16_n712(x)
- else
- fun_l16_n870(x)
- end
-end
-
-def fun_l15_n536(x)
- if (x < 1)
- fun_l16_n699(x)
- else
- fun_l16_n879(x)
- end
-end
-
-def fun_l15_n537(x)
- if (x < 1)
- fun_l16_n215(x)
- else
- fun_l16_n807(x)
- end
-end
-
-def fun_l15_n538(x)
- if (x < 1)
- fun_l16_n569(x)
- else
- fun_l16_n385(x)
- end
-end
-
-def fun_l15_n539(x)
- if (x < 1)
- fun_l16_n807(x)
- else
- fun_l16_n699(x)
- end
-end
-
-def fun_l15_n540(x)
- if (x < 1)
- fun_l16_n982(x)
- else
- fun_l16_n436(x)
- end
-end
-
-def fun_l15_n541(x)
- if (x < 1)
- fun_l16_n852(x)
- else
- fun_l16_n800(x)
- end
-end
-
-def fun_l15_n542(x)
- if (x < 1)
- fun_l16_n401(x)
- else
- fun_l16_n478(x)
- end
-end
-
-def fun_l15_n543(x)
- if (x < 1)
- fun_l16_n373(x)
- else
- fun_l16_n465(x)
- end
-end
-
-def fun_l15_n544(x)
- if (x < 1)
- fun_l16_n299(x)
- else
- fun_l16_n337(x)
- end
-end
-
-def fun_l15_n545(x)
- if (x < 1)
- fun_l16_n931(x)
- else
- fun_l16_n68(x)
- end
-end
-
-def fun_l15_n546(x)
- if (x < 1)
- fun_l16_n87(x)
- else
- fun_l16_n947(x)
- end
-end
-
-def fun_l15_n547(x)
- if (x < 1)
- fun_l16_n287(x)
- else
- fun_l16_n530(x)
- end
-end
-
-def fun_l15_n548(x)
- if (x < 1)
- fun_l16_n910(x)
- else
- fun_l16_n112(x)
- end
-end
-
-def fun_l15_n549(x)
- if (x < 1)
- fun_l16_n878(x)
- else
- fun_l16_n737(x)
- end
-end
-
-def fun_l15_n550(x)
- if (x < 1)
- fun_l16_n538(x)
- else
- fun_l16_n634(x)
- end
-end
-
-def fun_l15_n551(x)
- if (x < 1)
- fun_l16_n109(x)
- else
- fun_l16_n493(x)
- end
-end
-
-def fun_l15_n552(x)
- if (x < 1)
- fun_l16_n631(x)
- else
- fun_l16_n244(x)
- end
-end
-
-def fun_l15_n553(x)
- if (x < 1)
- fun_l16_n107(x)
- else
- fun_l16_n718(x)
- end
-end
-
-def fun_l15_n554(x)
- if (x < 1)
- fun_l16_n572(x)
- else
- fun_l16_n199(x)
- end
-end
-
-def fun_l15_n555(x)
- if (x < 1)
- fun_l16_n109(x)
- else
- fun_l16_n705(x)
- end
-end
-
-def fun_l15_n556(x)
- if (x < 1)
- fun_l16_n679(x)
- else
- fun_l16_n999(x)
- end
-end
-
-def fun_l15_n557(x)
- if (x < 1)
- fun_l16_n714(x)
- else
- fun_l16_n121(x)
- end
-end
-
-def fun_l15_n558(x)
- if (x < 1)
- fun_l16_n408(x)
- else
- fun_l16_n239(x)
- end
-end
-
-def fun_l15_n559(x)
- if (x < 1)
- fun_l16_n861(x)
- else
- fun_l16_n83(x)
- end
-end
-
-def fun_l15_n560(x)
- if (x < 1)
- fun_l16_n597(x)
- else
- fun_l16_n413(x)
- end
-end
-
-def fun_l15_n561(x)
- if (x < 1)
- fun_l16_n485(x)
- else
- fun_l16_n42(x)
- end
-end
-
-def fun_l15_n562(x)
- if (x < 1)
- fun_l16_n798(x)
- else
- fun_l16_n340(x)
- end
-end
-
-def fun_l15_n563(x)
- if (x < 1)
- fun_l16_n50(x)
- else
- fun_l16_n858(x)
- end
-end
-
-def fun_l15_n564(x)
- if (x < 1)
- fun_l16_n92(x)
- else
- fun_l16_n3(x)
- end
-end
-
-def fun_l15_n565(x)
- if (x < 1)
- fun_l16_n311(x)
- else
- fun_l16_n953(x)
- end
-end
-
-def fun_l15_n566(x)
- if (x < 1)
- fun_l16_n649(x)
- else
- fun_l16_n670(x)
- end
-end
-
-def fun_l15_n567(x)
- if (x < 1)
- fun_l16_n598(x)
- else
- fun_l16_n268(x)
- end
-end
-
-def fun_l15_n568(x)
- if (x < 1)
- fun_l16_n425(x)
- else
- fun_l16_n821(x)
- end
-end
-
-def fun_l15_n569(x)
- if (x < 1)
- fun_l16_n447(x)
- else
- fun_l16_n940(x)
- end
-end
-
-def fun_l15_n570(x)
- if (x < 1)
- fun_l16_n755(x)
- else
- fun_l16_n26(x)
- end
-end
-
-def fun_l15_n571(x)
- if (x < 1)
- fun_l16_n157(x)
- else
- fun_l16_n582(x)
- end
-end
-
-def fun_l15_n572(x)
- if (x < 1)
- fun_l16_n530(x)
- else
- fun_l16_n202(x)
- end
-end
-
-def fun_l15_n573(x)
- if (x < 1)
- fun_l16_n95(x)
- else
- fun_l16_n137(x)
- end
-end
-
-def fun_l15_n574(x)
- if (x < 1)
- fun_l16_n789(x)
- else
- fun_l16_n531(x)
- end
-end
-
-def fun_l15_n575(x)
- if (x < 1)
- fun_l16_n677(x)
- else
- fun_l16_n686(x)
- end
-end
-
-def fun_l15_n576(x)
- if (x < 1)
- fun_l16_n253(x)
- else
- fun_l16_n101(x)
- end
-end
-
-def fun_l15_n577(x)
- if (x < 1)
- fun_l16_n579(x)
- else
- fun_l16_n250(x)
- end
-end
-
-def fun_l15_n578(x)
- if (x < 1)
- fun_l16_n104(x)
- else
- fun_l16_n860(x)
- end
-end
-
-def fun_l15_n579(x)
- if (x < 1)
- fun_l16_n415(x)
- else
- fun_l16_n480(x)
- end
-end
-
-def fun_l15_n580(x)
- if (x < 1)
- fun_l16_n255(x)
- else
- fun_l16_n123(x)
- end
-end
-
-def fun_l15_n581(x)
- if (x < 1)
- fun_l16_n40(x)
- else
- fun_l16_n36(x)
- end
-end
-
-def fun_l15_n582(x)
- if (x < 1)
- fun_l16_n612(x)
- else
- fun_l16_n46(x)
- end
-end
-
-def fun_l15_n583(x)
- if (x < 1)
- fun_l16_n328(x)
- else
- fun_l16_n638(x)
- end
-end
-
-def fun_l15_n584(x)
- if (x < 1)
- fun_l16_n219(x)
- else
- fun_l16_n672(x)
- end
-end
-
-def fun_l15_n585(x)
- if (x < 1)
- fun_l16_n67(x)
- else
- fun_l16_n584(x)
- end
-end
-
-def fun_l15_n586(x)
- if (x < 1)
- fun_l16_n222(x)
- else
- fun_l16_n366(x)
- end
-end
-
-def fun_l15_n587(x)
- if (x < 1)
- fun_l16_n194(x)
- else
- fun_l16_n54(x)
- end
-end
-
-def fun_l15_n588(x)
- if (x < 1)
- fun_l16_n742(x)
- else
- fun_l16_n725(x)
- end
-end
-
-def fun_l15_n589(x)
- if (x < 1)
- fun_l16_n557(x)
- else
- fun_l16_n688(x)
- end
-end
-
-def fun_l15_n590(x)
- if (x < 1)
- fun_l16_n588(x)
- else
- fun_l16_n296(x)
- end
-end
-
-def fun_l15_n591(x)
- if (x < 1)
- fun_l16_n756(x)
- else
- fun_l16_n619(x)
- end
-end
-
-def fun_l15_n592(x)
- if (x < 1)
- fun_l16_n919(x)
- else
- fun_l16_n607(x)
- end
-end
-
-def fun_l15_n593(x)
- if (x < 1)
- fun_l16_n168(x)
- else
- fun_l16_n425(x)
- end
-end
-
-def fun_l15_n594(x)
- if (x < 1)
- fun_l16_n641(x)
- else
- fun_l16_n980(x)
- end
-end
-
-def fun_l15_n595(x)
- if (x < 1)
- fun_l16_n132(x)
- else
- fun_l16_n120(x)
- end
-end
-
-def fun_l15_n596(x)
- if (x < 1)
- fun_l16_n998(x)
- else
- fun_l16_n383(x)
- end
-end
-
-def fun_l15_n597(x)
- if (x < 1)
- fun_l16_n987(x)
- else
- fun_l16_n685(x)
- end
-end
-
-def fun_l15_n598(x)
- if (x < 1)
- fun_l16_n898(x)
- else
- fun_l16_n53(x)
- end
-end
-
-def fun_l15_n599(x)
- if (x < 1)
- fun_l16_n589(x)
- else
- fun_l16_n25(x)
- end
-end
-
-def fun_l15_n600(x)
- if (x < 1)
- fun_l16_n841(x)
- else
- fun_l16_n623(x)
- end
-end
-
-def fun_l15_n601(x)
- if (x < 1)
- fun_l16_n63(x)
- else
- fun_l16_n515(x)
- end
-end
-
-def fun_l15_n602(x)
- if (x < 1)
- fun_l16_n708(x)
- else
- fun_l16_n318(x)
- end
-end
-
-def fun_l15_n603(x)
- if (x < 1)
- fun_l16_n679(x)
- else
- fun_l16_n31(x)
- end
-end
-
-def fun_l15_n604(x)
- if (x < 1)
- fun_l16_n617(x)
- else
- fun_l16_n20(x)
- end
-end
-
-def fun_l15_n605(x)
- if (x < 1)
- fun_l16_n635(x)
- else
- fun_l16_n990(x)
- end
-end
-
-def fun_l15_n606(x)
- if (x < 1)
- fun_l16_n174(x)
- else
- fun_l16_n977(x)
- end
-end
-
-def fun_l15_n607(x)
- if (x < 1)
- fun_l16_n449(x)
- else
- fun_l16_n658(x)
- end
-end
-
-def fun_l15_n608(x)
- if (x < 1)
- fun_l16_n208(x)
- else
- fun_l16_n875(x)
- end
-end
-
-def fun_l15_n609(x)
- if (x < 1)
- fun_l16_n665(x)
- else
- fun_l16_n431(x)
- end
-end
-
-def fun_l15_n610(x)
- if (x < 1)
- fun_l16_n6(x)
- else
- fun_l16_n78(x)
- end
-end
-
-def fun_l15_n611(x)
- if (x < 1)
- fun_l16_n335(x)
- else
- fun_l16_n558(x)
- end
-end
-
-def fun_l15_n612(x)
- if (x < 1)
- fun_l16_n259(x)
- else
- fun_l16_n893(x)
- end
-end
-
-def fun_l15_n613(x)
- if (x < 1)
- fun_l16_n511(x)
- else
- fun_l16_n519(x)
- end
-end
-
-def fun_l15_n614(x)
- if (x < 1)
- fun_l16_n96(x)
- else
- fun_l16_n28(x)
- end
-end
-
-def fun_l15_n615(x)
- if (x < 1)
- fun_l16_n166(x)
- else
- fun_l16_n417(x)
- end
-end
-
-def fun_l15_n616(x)
- if (x < 1)
- fun_l16_n666(x)
- else
- fun_l16_n932(x)
- end
-end
-
-def fun_l15_n617(x)
- if (x < 1)
- fun_l16_n745(x)
- else
- fun_l16_n967(x)
- end
-end
-
-def fun_l15_n618(x)
- if (x < 1)
- fun_l16_n5(x)
- else
- fun_l16_n769(x)
- end
-end
-
-def fun_l15_n619(x)
- if (x < 1)
- fun_l16_n108(x)
- else
- fun_l16_n658(x)
- end
-end
-
-def fun_l15_n620(x)
- if (x < 1)
- fun_l16_n454(x)
- else
- fun_l16_n666(x)
- end
-end
-
-def fun_l15_n621(x)
- if (x < 1)
- fun_l16_n756(x)
- else
- fun_l16_n580(x)
- end
-end
-
-def fun_l15_n622(x)
- if (x < 1)
- fun_l16_n419(x)
- else
- fun_l16_n450(x)
- end
-end
-
-def fun_l15_n623(x)
- if (x < 1)
- fun_l16_n793(x)
- else
- fun_l16_n268(x)
- end
-end
-
-def fun_l15_n624(x)
- if (x < 1)
- fun_l16_n78(x)
- else
- fun_l16_n311(x)
- end
-end
-
-def fun_l15_n625(x)
- if (x < 1)
- fun_l16_n35(x)
- else
- fun_l16_n378(x)
- end
-end
-
-def fun_l15_n626(x)
- if (x < 1)
- fun_l16_n974(x)
- else
- fun_l16_n483(x)
- end
-end
-
-def fun_l15_n627(x)
- if (x < 1)
- fun_l16_n67(x)
- else
- fun_l16_n497(x)
- end
-end
-
-def fun_l15_n628(x)
- if (x < 1)
- fun_l16_n640(x)
- else
- fun_l16_n32(x)
- end
-end
-
-def fun_l15_n629(x)
- if (x < 1)
- fun_l16_n297(x)
- else
- fun_l16_n63(x)
- end
-end
-
-def fun_l15_n630(x)
- if (x < 1)
- fun_l16_n546(x)
- else
- fun_l16_n931(x)
- end
-end
-
-def fun_l15_n631(x)
- if (x < 1)
- fun_l16_n688(x)
- else
- fun_l16_n542(x)
- end
-end
-
-def fun_l15_n632(x)
- if (x < 1)
- fun_l16_n313(x)
- else
- fun_l16_n1(x)
- end
-end
-
-def fun_l15_n633(x)
- if (x < 1)
- fun_l16_n743(x)
- else
- fun_l16_n382(x)
- end
-end
-
-def fun_l15_n634(x)
- if (x < 1)
- fun_l16_n224(x)
- else
- fun_l16_n311(x)
- end
-end
-
-def fun_l15_n635(x)
- if (x < 1)
- fun_l16_n926(x)
- else
- fun_l16_n329(x)
- end
-end
-
-def fun_l15_n636(x)
- if (x < 1)
- fun_l16_n735(x)
- else
- fun_l16_n759(x)
- end
-end
-
-def fun_l15_n637(x)
- if (x < 1)
- fun_l16_n699(x)
- else
- fun_l16_n27(x)
- end
-end
-
-def fun_l15_n638(x)
- if (x < 1)
- fun_l16_n710(x)
- else
- fun_l16_n194(x)
- end
-end
-
-def fun_l15_n639(x)
- if (x < 1)
- fun_l16_n245(x)
- else
- fun_l16_n950(x)
- end
-end
-
-def fun_l15_n640(x)
- if (x < 1)
- fun_l16_n488(x)
- else
- fun_l16_n357(x)
- end
-end
-
-def fun_l15_n641(x)
- if (x < 1)
- fun_l16_n331(x)
- else
- fun_l16_n962(x)
- end
-end
-
-def fun_l15_n642(x)
- if (x < 1)
- fun_l16_n144(x)
- else
- fun_l16_n877(x)
- end
-end
-
-def fun_l15_n643(x)
- if (x < 1)
- fun_l16_n605(x)
- else
- fun_l16_n733(x)
- end
-end
-
-def fun_l15_n644(x)
- if (x < 1)
- fun_l16_n22(x)
- else
- fun_l16_n176(x)
- end
-end
-
-def fun_l15_n645(x)
- if (x < 1)
- fun_l16_n934(x)
- else
- fun_l16_n351(x)
- end
-end
-
-def fun_l15_n646(x)
- if (x < 1)
- fun_l16_n224(x)
- else
- fun_l16_n308(x)
- end
-end
-
-def fun_l15_n647(x)
- if (x < 1)
- fun_l16_n374(x)
- else
- fun_l16_n612(x)
- end
-end
-
-def fun_l15_n648(x)
- if (x < 1)
- fun_l16_n105(x)
- else
- fun_l16_n563(x)
- end
-end
-
-def fun_l15_n649(x)
- if (x < 1)
- fun_l16_n955(x)
- else
- fun_l16_n63(x)
- end
-end
-
-def fun_l15_n650(x)
- if (x < 1)
- fun_l16_n734(x)
- else
- fun_l16_n194(x)
- end
-end
-
-def fun_l15_n651(x)
- if (x < 1)
- fun_l16_n237(x)
- else
- fun_l16_n425(x)
- end
-end
-
-def fun_l15_n652(x)
- if (x < 1)
- fun_l16_n135(x)
- else
- fun_l16_n217(x)
- end
-end
-
-def fun_l15_n653(x)
- if (x < 1)
- fun_l16_n565(x)
- else
- fun_l16_n437(x)
- end
-end
-
-def fun_l15_n654(x)
- if (x < 1)
- fun_l16_n471(x)
- else
- fun_l16_n426(x)
- end
-end
-
-def fun_l15_n655(x)
- if (x < 1)
- fun_l16_n570(x)
- else
- fun_l16_n64(x)
- end
-end
-
-def fun_l15_n656(x)
- if (x < 1)
- fun_l16_n456(x)
- else
- fun_l16_n479(x)
- end
-end
-
-def fun_l15_n657(x)
- if (x < 1)
- fun_l16_n446(x)
- else
- fun_l16_n362(x)
- end
-end
-
-def fun_l15_n658(x)
- if (x < 1)
- fun_l16_n294(x)
- else
- fun_l16_n485(x)
- end
-end
-
-def fun_l15_n659(x)
- if (x < 1)
- fun_l16_n96(x)
- else
- fun_l16_n60(x)
- end
-end
-
-def fun_l15_n660(x)
- if (x < 1)
- fun_l16_n436(x)
- else
- fun_l16_n12(x)
- end
-end
-
-def fun_l15_n661(x)
- if (x < 1)
- fun_l16_n5(x)
- else
- fun_l16_n452(x)
- end
-end
-
-def fun_l15_n662(x)
- if (x < 1)
- fun_l16_n70(x)
- else
- fun_l16_n564(x)
- end
-end
-
-def fun_l15_n663(x)
- if (x < 1)
- fun_l16_n92(x)
- else
- fun_l16_n333(x)
- end
-end
-
-def fun_l15_n664(x)
- if (x < 1)
- fun_l16_n884(x)
- else
- fun_l16_n381(x)
- end
-end
-
-def fun_l15_n665(x)
- if (x < 1)
- fun_l16_n816(x)
- else
- fun_l16_n243(x)
- end
-end
-
-def fun_l15_n666(x)
- if (x < 1)
- fun_l16_n680(x)
- else
- fun_l16_n306(x)
- end
-end
-
-def fun_l15_n667(x)
- if (x < 1)
- fun_l16_n470(x)
- else
- fun_l16_n559(x)
- end
-end
-
-def fun_l15_n668(x)
- if (x < 1)
- fun_l16_n34(x)
- else
- fun_l16_n261(x)
- end
-end
-
-def fun_l15_n669(x)
- if (x < 1)
- fun_l16_n644(x)
- else
- fun_l16_n389(x)
- end
-end
-
-def fun_l15_n670(x)
- if (x < 1)
- fun_l16_n313(x)
- else
- fun_l16_n575(x)
- end
-end
-
-def fun_l15_n671(x)
- if (x < 1)
- fun_l16_n241(x)
- else
- fun_l16_n304(x)
- end
-end
-
-def fun_l15_n672(x)
- if (x < 1)
- fun_l16_n280(x)
- else
- fun_l16_n996(x)
- end
-end
-
-def fun_l15_n673(x)
- if (x < 1)
- fun_l16_n723(x)
- else
- fun_l16_n42(x)
- end
-end
-
-def fun_l15_n674(x)
- if (x < 1)
- fun_l16_n503(x)
- else
- fun_l16_n837(x)
- end
-end
-
-def fun_l15_n675(x)
- if (x < 1)
- fun_l16_n105(x)
- else
- fun_l16_n815(x)
- end
-end
-
-def fun_l15_n676(x)
- if (x < 1)
- fun_l16_n441(x)
- else
- fun_l16_n313(x)
- end
-end
-
-def fun_l15_n677(x)
- if (x < 1)
- fun_l16_n277(x)
- else
- fun_l16_n653(x)
- end
-end
-
-def fun_l15_n678(x)
- if (x < 1)
- fun_l16_n105(x)
- else
- fun_l16_n907(x)
- end
-end
-
-def fun_l15_n679(x)
- if (x < 1)
- fun_l16_n549(x)
- else
- fun_l16_n956(x)
- end
-end
-
-def fun_l15_n680(x)
- if (x < 1)
- fun_l16_n177(x)
- else
- fun_l16_n238(x)
- end
-end
-
-def fun_l15_n681(x)
- if (x < 1)
- fun_l16_n931(x)
- else
- fun_l16_n278(x)
- end
-end
-
-def fun_l15_n682(x)
- if (x < 1)
- fun_l16_n923(x)
- else
- fun_l16_n924(x)
- end
-end
-
-def fun_l15_n683(x)
- if (x < 1)
- fun_l16_n926(x)
- else
- fun_l16_n76(x)
- end
-end
-
-def fun_l15_n684(x)
- if (x < 1)
- fun_l16_n828(x)
- else
- fun_l16_n961(x)
- end
-end
-
-def fun_l15_n685(x)
- if (x < 1)
- fun_l16_n298(x)
- else
- fun_l16_n95(x)
- end
-end
-
-def fun_l15_n686(x)
- if (x < 1)
- fun_l16_n929(x)
- else
- fun_l16_n239(x)
- end
-end
-
-def fun_l15_n687(x)
- if (x < 1)
- fun_l16_n488(x)
- else
- fun_l16_n543(x)
- end
-end
-
-def fun_l15_n688(x)
- if (x < 1)
- fun_l16_n562(x)
- else
- fun_l16_n879(x)
- end
-end
-
-def fun_l15_n689(x)
- if (x < 1)
- fun_l16_n348(x)
- else
- fun_l16_n458(x)
- end
-end
-
-def fun_l15_n690(x)
- if (x < 1)
- fun_l16_n431(x)
- else
- fun_l16_n653(x)
- end
-end
-
-def fun_l15_n691(x)
- if (x < 1)
- fun_l16_n173(x)
- else
- fun_l16_n600(x)
- end
-end
-
-def fun_l15_n692(x)
- if (x < 1)
- fun_l16_n820(x)
- else
- fun_l16_n793(x)
- end
-end
-
-def fun_l15_n693(x)
- if (x < 1)
- fun_l16_n611(x)
- else
- fun_l16_n308(x)
- end
-end
-
-def fun_l15_n694(x)
- if (x < 1)
- fun_l16_n325(x)
- else
- fun_l16_n791(x)
- end
-end
-
-def fun_l15_n695(x)
- if (x < 1)
- fun_l16_n890(x)
- else
- fun_l16_n98(x)
- end
-end
-
-def fun_l15_n696(x)
- if (x < 1)
- fun_l16_n803(x)
- else
- fun_l16_n890(x)
- end
-end
-
-def fun_l15_n697(x)
- if (x < 1)
- fun_l16_n182(x)
- else
- fun_l16_n229(x)
- end
-end
-
-def fun_l15_n698(x)
- if (x < 1)
- fun_l16_n238(x)
- else
- fun_l16_n395(x)
- end
-end
-
-def fun_l15_n699(x)
- if (x < 1)
- fun_l16_n349(x)
- else
- fun_l16_n903(x)
- end
-end
-
-def fun_l15_n700(x)
- if (x < 1)
- fun_l16_n328(x)
- else
- fun_l16_n664(x)
- end
-end
-
-def fun_l15_n701(x)
- if (x < 1)
- fun_l16_n924(x)
- else
- fun_l16_n415(x)
- end
-end
-
-def fun_l15_n702(x)
- if (x < 1)
- fun_l16_n504(x)
- else
- fun_l16_n180(x)
- end
-end
-
-def fun_l15_n703(x)
- if (x < 1)
- fun_l16_n754(x)
- else
- fun_l16_n580(x)
- end
-end
-
-def fun_l15_n704(x)
- if (x < 1)
- fun_l16_n686(x)
- else
- fun_l16_n75(x)
- end
-end
-
-def fun_l15_n705(x)
- if (x < 1)
- fun_l16_n295(x)
- else
- fun_l16_n789(x)
- end
-end
-
-def fun_l15_n706(x)
- if (x < 1)
- fun_l16_n796(x)
- else
- fun_l16_n628(x)
- end
-end
-
-def fun_l15_n707(x)
- if (x < 1)
- fun_l16_n603(x)
- else
- fun_l16_n864(x)
- end
-end
-
-def fun_l15_n708(x)
- if (x < 1)
- fun_l16_n420(x)
- else
- fun_l16_n506(x)
- end
-end
-
-def fun_l15_n709(x)
- if (x < 1)
- fun_l16_n417(x)
- else
- fun_l16_n677(x)
- end
-end
-
-def fun_l15_n710(x)
- if (x < 1)
- fun_l16_n484(x)
- else
- fun_l16_n210(x)
- end
-end
-
-def fun_l15_n711(x)
- if (x < 1)
- fun_l16_n127(x)
- else
- fun_l16_n423(x)
- end
-end
-
-def fun_l15_n712(x)
- if (x < 1)
- fun_l16_n395(x)
- else
- fun_l16_n75(x)
- end
-end
-
-def fun_l15_n713(x)
- if (x < 1)
- fun_l16_n388(x)
- else
- fun_l16_n261(x)
- end
-end
-
-def fun_l15_n714(x)
- if (x < 1)
- fun_l16_n508(x)
- else
- fun_l16_n160(x)
- end
-end
-
-def fun_l15_n715(x)
- if (x < 1)
- fun_l16_n468(x)
- else
- fun_l16_n784(x)
- end
-end
-
-def fun_l15_n716(x)
- if (x < 1)
- fun_l16_n156(x)
- else
- fun_l16_n769(x)
- end
-end
-
-def fun_l15_n717(x)
- if (x < 1)
- fun_l16_n219(x)
- else
- fun_l16_n618(x)
- end
-end
-
-def fun_l15_n718(x)
- if (x < 1)
- fun_l16_n921(x)
- else
- fun_l16_n83(x)
- end
-end
-
-def fun_l15_n719(x)
- if (x < 1)
- fun_l16_n262(x)
- else
- fun_l16_n170(x)
- end
-end
-
-def fun_l15_n720(x)
- if (x < 1)
- fun_l16_n420(x)
- else
- fun_l16_n504(x)
- end
-end
-
-def fun_l15_n721(x)
- if (x < 1)
- fun_l16_n485(x)
- else
- fun_l16_n782(x)
- end
-end
-
-def fun_l15_n722(x)
- if (x < 1)
- fun_l16_n607(x)
- else
- fun_l16_n706(x)
- end
-end
-
-def fun_l15_n723(x)
- if (x < 1)
- fun_l16_n116(x)
- else
- fun_l16_n73(x)
- end
-end
-
-def fun_l15_n724(x)
- if (x < 1)
- fun_l16_n946(x)
- else
- fun_l16_n694(x)
- end
-end
-
-def fun_l15_n725(x)
- if (x < 1)
- fun_l16_n73(x)
- else
- fun_l16_n223(x)
- end
-end
-
-def fun_l15_n726(x)
- if (x < 1)
- fun_l16_n54(x)
- else
- fun_l16_n681(x)
- end
-end
-
-def fun_l15_n727(x)
- if (x < 1)
- fun_l16_n474(x)
- else
- fun_l16_n339(x)
- end
-end
-
-def fun_l15_n728(x)
- if (x < 1)
- fun_l16_n780(x)
- else
- fun_l16_n364(x)
- end
-end
-
-def fun_l15_n729(x)
- if (x < 1)
- fun_l16_n537(x)
- else
- fun_l16_n1(x)
- end
-end
-
-def fun_l15_n730(x)
- if (x < 1)
- fun_l16_n81(x)
- else
- fun_l16_n591(x)
- end
-end
-
-def fun_l15_n731(x)
- if (x < 1)
- fun_l16_n631(x)
- else
- fun_l16_n626(x)
- end
-end
-
-def fun_l15_n732(x)
- if (x < 1)
- fun_l16_n904(x)
- else
- fun_l16_n988(x)
- end
-end
-
-def fun_l15_n733(x)
- if (x < 1)
- fun_l16_n933(x)
- else
- fun_l16_n761(x)
- end
-end
-
-def fun_l15_n734(x)
- if (x < 1)
- fun_l16_n687(x)
- else
- fun_l16_n611(x)
- end
-end
-
-def fun_l15_n735(x)
- if (x < 1)
- fun_l16_n197(x)
- else
- fun_l16_n210(x)
- end
-end
-
-def fun_l15_n736(x)
- if (x < 1)
- fun_l16_n227(x)
- else
- fun_l16_n82(x)
- end
-end
-
-def fun_l15_n737(x)
- if (x < 1)
- fun_l16_n981(x)
- else
- fun_l16_n18(x)
- end
-end
-
-def fun_l15_n738(x)
- if (x < 1)
- fun_l16_n673(x)
- else
- fun_l16_n452(x)
- end
-end
-
-def fun_l15_n739(x)
- if (x < 1)
- fun_l16_n225(x)
- else
- fun_l16_n555(x)
- end
-end
-
-def fun_l15_n740(x)
- if (x < 1)
- fun_l16_n409(x)
- else
- fun_l16_n29(x)
- end
-end
-
-def fun_l15_n741(x)
- if (x < 1)
- fun_l16_n550(x)
- else
- fun_l16_n880(x)
- end
-end
-
-def fun_l15_n742(x)
- if (x < 1)
- fun_l16_n930(x)
- else
- fun_l16_n280(x)
- end
-end
-
-def fun_l15_n743(x)
- if (x < 1)
- fun_l16_n622(x)
- else
- fun_l16_n438(x)
- end
-end
-
-def fun_l15_n744(x)
- if (x < 1)
- fun_l16_n874(x)
- else
- fun_l16_n921(x)
- end
-end
-
-def fun_l15_n745(x)
- if (x < 1)
- fun_l16_n337(x)
- else
- fun_l16_n879(x)
- end
-end
-
-def fun_l15_n746(x)
- if (x < 1)
- fun_l16_n668(x)
- else
- fun_l16_n858(x)
- end
-end
-
-def fun_l15_n747(x)
- if (x < 1)
- fun_l16_n588(x)
- else
- fun_l16_n433(x)
- end
-end
-
-def fun_l15_n748(x)
- if (x < 1)
- fun_l16_n263(x)
- else
- fun_l16_n389(x)
- end
-end
-
-def fun_l15_n749(x)
- if (x < 1)
- fun_l16_n79(x)
- else
- fun_l16_n218(x)
- end
-end
-
-def fun_l15_n750(x)
- if (x < 1)
- fun_l16_n586(x)
- else
- fun_l16_n426(x)
- end
-end
-
-def fun_l15_n751(x)
- if (x < 1)
- fun_l16_n29(x)
- else
- fun_l16_n183(x)
- end
-end
-
-def fun_l15_n752(x)
- if (x < 1)
- fun_l16_n423(x)
- else
- fun_l16_n994(x)
- end
-end
-
-def fun_l15_n753(x)
- if (x < 1)
- fun_l16_n176(x)
- else
- fun_l16_n425(x)
- end
-end
-
-def fun_l15_n754(x)
- if (x < 1)
- fun_l16_n58(x)
- else
- fun_l16_n980(x)
- end
-end
-
-def fun_l15_n755(x)
- if (x < 1)
- fun_l16_n333(x)
- else
- fun_l16_n949(x)
- end
-end
-
-def fun_l15_n756(x)
- if (x < 1)
- fun_l16_n846(x)
- else
- fun_l16_n449(x)
- end
-end
-
-def fun_l15_n757(x)
- if (x < 1)
- fun_l16_n341(x)
- else
- fun_l16_n200(x)
- end
-end
-
-def fun_l15_n758(x)
- if (x < 1)
- fun_l16_n32(x)
- else
- fun_l16_n271(x)
- end
-end
-
-def fun_l15_n759(x)
- if (x < 1)
- fun_l16_n654(x)
- else
- fun_l16_n978(x)
- end
-end
-
-def fun_l15_n760(x)
- if (x < 1)
- fun_l16_n438(x)
- else
- fun_l16_n426(x)
- end
-end
-
-def fun_l15_n761(x)
- if (x < 1)
- fun_l16_n218(x)
- else
- fun_l16_n393(x)
- end
-end
-
-def fun_l15_n762(x)
- if (x < 1)
- fun_l16_n873(x)
- else
- fun_l16_n231(x)
- end
-end
-
-def fun_l15_n763(x)
- if (x < 1)
- fun_l16_n957(x)
- else
- fun_l16_n801(x)
- end
-end
-
-def fun_l15_n764(x)
- if (x < 1)
- fun_l16_n571(x)
- else
- fun_l16_n369(x)
- end
-end
-
-def fun_l15_n765(x)
- if (x < 1)
- fun_l16_n806(x)
- else
- fun_l16_n527(x)
- end
-end
-
-def fun_l15_n766(x)
- if (x < 1)
- fun_l16_n511(x)
- else
- fun_l16_n911(x)
- end
-end
-
-def fun_l15_n767(x)
- if (x < 1)
- fun_l16_n589(x)
- else
- fun_l16_n468(x)
- end
-end
-
-def fun_l15_n768(x)
- if (x < 1)
- fun_l16_n846(x)
- else
- fun_l16_n325(x)
- end
-end
-
-def fun_l15_n769(x)
- if (x < 1)
- fun_l16_n350(x)
- else
- fun_l16_n268(x)
- end
-end
-
-def fun_l15_n770(x)
- if (x < 1)
- fun_l16_n200(x)
- else
- fun_l16_n151(x)
- end
-end
-
-def fun_l15_n771(x)
- if (x < 1)
- fun_l16_n246(x)
- else
- fun_l16_n442(x)
- end
-end
-
-def fun_l15_n772(x)
- if (x < 1)
- fun_l16_n768(x)
- else
- fun_l16_n303(x)
- end
-end
-
-def fun_l15_n773(x)
- if (x < 1)
- fun_l16_n414(x)
- else
- fun_l16_n857(x)
- end
-end
-
-def fun_l15_n774(x)
- if (x < 1)
- fun_l16_n654(x)
- else
- fun_l16_n151(x)
- end
-end
-
-def fun_l15_n775(x)
- if (x < 1)
- fun_l16_n283(x)
- else
- fun_l16_n565(x)
- end
-end
-
-def fun_l15_n776(x)
- if (x < 1)
- fun_l16_n375(x)
- else
- fun_l16_n897(x)
- end
-end
-
-def fun_l15_n777(x)
- if (x < 1)
- fun_l16_n711(x)
- else
- fun_l16_n487(x)
- end
-end
-
-def fun_l15_n778(x)
- if (x < 1)
- fun_l16_n445(x)
- else
- fun_l16_n99(x)
- end
-end
-
-def fun_l15_n779(x)
- if (x < 1)
- fun_l16_n320(x)
- else
- fun_l16_n614(x)
- end
-end
-
-def fun_l15_n780(x)
- if (x < 1)
- fun_l16_n330(x)
- else
- fun_l16_n478(x)
- end
-end
-
-def fun_l15_n781(x)
- if (x < 1)
- fun_l16_n680(x)
- else
- fun_l16_n882(x)
- end
-end
-
-def fun_l15_n782(x)
- if (x < 1)
- fun_l16_n799(x)
- else
- fun_l16_n511(x)
- end
-end
-
-def fun_l15_n783(x)
- if (x < 1)
- fun_l16_n630(x)
- else
- fun_l16_n946(x)
- end
-end
-
-def fun_l15_n784(x)
- if (x < 1)
- fun_l16_n867(x)
- else
- fun_l16_n4(x)
- end
-end
-
-def fun_l15_n785(x)
- if (x < 1)
- fun_l16_n154(x)
- else
- fun_l16_n400(x)
- end
-end
-
-def fun_l15_n786(x)
- if (x < 1)
- fun_l16_n166(x)
- else
- fun_l16_n224(x)
- end
-end
-
-def fun_l15_n787(x)
- if (x < 1)
- fun_l16_n120(x)
- else
- fun_l16_n518(x)
- end
-end
-
-def fun_l15_n788(x)
- if (x < 1)
- fun_l16_n648(x)
- else
- fun_l16_n56(x)
- end
-end
-
-def fun_l15_n789(x)
- if (x < 1)
- fun_l16_n965(x)
- else
- fun_l16_n760(x)
- end
-end
-
-def fun_l15_n790(x)
- if (x < 1)
- fun_l16_n880(x)
- else
- fun_l16_n809(x)
- end
-end
-
-def fun_l15_n791(x)
- if (x < 1)
- fun_l16_n836(x)
- else
- fun_l16_n61(x)
- end
-end
-
-def fun_l15_n792(x)
- if (x < 1)
- fun_l16_n874(x)
- else
- fun_l16_n559(x)
- end
-end
-
-def fun_l15_n793(x)
- if (x < 1)
- fun_l16_n896(x)
- else
- fun_l16_n72(x)
- end
-end
-
-def fun_l15_n794(x)
- if (x < 1)
- fun_l16_n994(x)
- else
- fun_l16_n411(x)
- end
-end
-
-def fun_l15_n795(x)
- if (x < 1)
- fun_l16_n289(x)
- else
- fun_l16_n151(x)
- end
-end
-
-def fun_l15_n796(x)
- if (x < 1)
- fun_l16_n190(x)
- else
- fun_l16_n693(x)
- end
-end
-
-def fun_l15_n797(x)
- if (x < 1)
- fun_l16_n320(x)
- else
- fun_l16_n955(x)
- end
-end
-
-def fun_l15_n798(x)
- if (x < 1)
- fun_l16_n572(x)
- else
- fun_l16_n626(x)
- end
-end
-
-def fun_l15_n799(x)
- if (x < 1)
- fun_l16_n35(x)
- else
- fun_l16_n838(x)
- end
-end
-
-def fun_l15_n800(x)
- if (x < 1)
- fun_l16_n423(x)
- else
- fun_l16_n834(x)
- end
-end
-
-def fun_l15_n801(x)
- if (x < 1)
- fun_l16_n964(x)
- else
- fun_l16_n824(x)
- end
-end
-
-def fun_l15_n802(x)
- if (x < 1)
- fun_l16_n77(x)
- else
- fun_l16_n62(x)
- end
-end
-
-def fun_l15_n803(x)
- if (x < 1)
- fun_l16_n226(x)
- else
- fun_l16_n373(x)
- end
-end
-
-def fun_l15_n804(x)
- if (x < 1)
- fun_l16_n832(x)
- else
- fun_l16_n915(x)
- end
-end
-
-def fun_l15_n805(x)
- if (x < 1)
- fun_l16_n421(x)
- else
- fun_l16_n621(x)
- end
-end
-
-def fun_l15_n806(x)
- if (x < 1)
- fun_l16_n303(x)
- else
- fun_l16_n713(x)
- end
-end
-
-def fun_l15_n807(x)
- if (x < 1)
- fun_l16_n393(x)
- else
- fun_l16_n698(x)
- end
-end
-
-def fun_l15_n808(x)
- if (x < 1)
- fun_l16_n303(x)
- else
- fun_l16_n341(x)
- end
-end
-
-def fun_l15_n809(x)
- if (x < 1)
- fun_l16_n116(x)
- else
- fun_l16_n976(x)
- end
-end
-
-def fun_l15_n810(x)
- if (x < 1)
- fun_l16_n873(x)
- else
- fun_l16_n822(x)
- end
-end
-
-def fun_l15_n811(x)
- if (x < 1)
- fun_l16_n358(x)
- else
- fun_l16_n334(x)
- end
-end
-
-def fun_l15_n812(x)
- if (x < 1)
- fun_l16_n599(x)
- else
- fun_l16_n527(x)
- end
-end
-
-def fun_l15_n813(x)
- if (x < 1)
- fun_l16_n842(x)
- else
- fun_l16_n791(x)
- end
-end
-
-def fun_l15_n814(x)
- if (x < 1)
- fun_l16_n45(x)
- else
- fun_l16_n280(x)
- end
-end
-
-def fun_l15_n815(x)
- if (x < 1)
- fun_l16_n187(x)
- else
- fun_l16_n151(x)
- end
-end
-
-def fun_l15_n816(x)
- if (x < 1)
- fun_l16_n8(x)
- else
- fun_l16_n409(x)
- end
-end
-
-def fun_l15_n817(x)
- if (x < 1)
- fun_l16_n670(x)
- else
- fun_l16_n569(x)
- end
-end
-
-def fun_l15_n818(x)
- if (x < 1)
- fun_l16_n344(x)
- else
- fun_l16_n618(x)
- end
-end
-
-def fun_l15_n819(x)
- if (x < 1)
- fun_l16_n659(x)
- else
- fun_l16_n321(x)
- end
-end
-
-def fun_l15_n820(x)
- if (x < 1)
- fun_l16_n890(x)
- else
- fun_l16_n911(x)
- end
-end
-
-def fun_l15_n821(x)
- if (x < 1)
- fun_l16_n360(x)
- else
- fun_l16_n742(x)
- end
-end
-
-def fun_l15_n822(x)
- if (x < 1)
- fun_l16_n166(x)
- else
- fun_l16_n803(x)
- end
-end
-
-def fun_l15_n823(x)
- if (x < 1)
- fun_l16_n765(x)
- else
- fun_l16_n958(x)
- end
-end
-
-def fun_l15_n824(x)
- if (x < 1)
- fun_l16_n439(x)
- else
- fun_l16_n931(x)
- end
-end
-
-def fun_l15_n825(x)
- if (x < 1)
- fun_l16_n740(x)
- else
- fun_l16_n901(x)
- end
-end
-
-def fun_l15_n826(x)
- if (x < 1)
- fun_l16_n223(x)
- else
- fun_l16_n878(x)
- end
-end
-
-def fun_l15_n827(x)
- if (x < 1)
- fun_l16_n969(x)
- else
- fun_l16_n553(x)
- end
-end
-
-def fun_l15_n828(x)
- if (x < 1)
- fun_l16_n42(x)
- else
- fun_l16_n915(x)
- end
-end
-
-def fun_l15_n829(x)
- if (x < 1)
- fun_l16_n386(x)
- else
- fun_l16_n430(x)
- end
-end
-
-def fun_l15_n830(x)
- if (x < 1)
- fun_l16_n164(x)
- else
- fun_l16_n337(x)
- end
-end
-
-def fun_l15_n831(x)
- if (x < 1)
- fun_l16_n465(x)
- else
- fun_l16_n898(x)
- end
-end
-
-def fun_l15_n832(x)
- if (x < 1)
- fun_l16_n145(x)
- else
- fun_l16_n688(x)
- end
-end
-
-def fun_l15_n833(x)
- if (x < 1)
- fun_l16_n238(x)
- else
- fun_l16_n624(x)
- end
-end
-
-def fun_l15_n834(x)
- if (x < 1)
- fun_l16_n973(x)
- else
- fun_l16_n507(x)
- end
-end
-
-def fun_l15_n835(x)
- if (x < 1)
- fun_l16_n24(x)
- else
- fun_l16_n607(x)
- end
-end
-
-def fun_l15_n836(x)
- if (x < 1)
- fun_l16_n307(x)
- else
- fun_l16_n265(x)
- end
-end
-
-def fun_l15_n837(x)
- if (x < 1)
- fun_l16_n91(x)
- else
- fun_l16_n543(x)
- end
-end
-
-def fun_l15_n838(x)
- if (x < 1)
- fun_l16_n544(x)
- else
- fun_l16_n397(x)
- end
-end
-
-def fun_l15_n839(x)
- if (x < 1)
- fun_l16_n121(x)
- else
- fun_l16_n503(x)
- end
-end
-
-def fun_l15_n840(x)
- if (x < 1)
- fun_l16_n806(x)
- else
- fun_l16_n831(x)
- end
-end
-
-def fun_l15_n841(x)
- if (x < 1)
- fun_l16_n629(x)
- else
- fun_l16_n553(x)
- end
-end
-
-def fun_l15_n842(x)
- if (x < 1)
- fun_l16_n674(x)
- else
- fun_l16_n945(x)
- end
-end
-
-def fun_l15_n843(x)
- if (x < 1)
- fun_l16_n409(x)
- else
- fun_l16_n469(x)
- end
-end
-
-def fun_l15_n844(x)
- if (x < 1)
- fun_l16_n779(x)
- else
- fun_l16_n168(x)
- end
-end
-
-def fun_l15_n845(x)
- if (x < 1)
- fun_l16_n258(x)
- else
- fun_l16_n501(x)
- end
-end
-
-def fun_l15_n846(x)
- if (x < 1)
- fun_l16_n408(x)
- else
- fun_l16_n211(x)
- end
-end
-
-def fun_l15_n847(x)
- if (x < 1)
- fun_l16_n844(x)
- else
- fun_l16_n458(x)
- end
-end
-
-def fun_l15_n848(x)
- if (x < 1)
- fun_l16_n565(x)
- else
- fun_l16_n177(x)
- end
-end
-
-def fun_l15_n849(x)
- if (x < 1)
- fun_l16_n111(x)
- else
- fun_l16_n995(x)
- end
-end
-
-def fun_l15_n850(x)
- if (x < 1)
- fun_l16_n883(x)
- else
- fun_l16_n776(x)
- end
-end
-
-def fun_l15_n851(x)
- if (x < 1)
- fun_l16_n821(x)
- else
- fun_l16_n352(x)
- end
-end
-
-def fun_l15_n852(x)
- if (x < 1)
- fun_l16_n977(x)
- else
- fun_l16_n520(x)
- end
-end
-
-def fun_l15_n853(x)
- if (x < 1)
- fun_l16_n602(x)
- else
- fun_l16_n88(x)
- end
-end
-
-def fun_l15_n854(x)
- if (x < 1)
- fun_l16_n819(x)
- else
- fun_l16_n177(x)
- end
-end
-
-def fun_l15_n855(x)
- if (x < 1)
- fun_l16_n878(x)
- else
- fun_l16_n648(x)
- end
-end
-
-def fun_l15_n856(x)
- if (x < 1)
- fun_l16_n69(x)
- else
- fun_l16_n134(x)
- end
-end
-
-def fun_l15_n857(x)
- if (x < 1)
- fun_l16_n728(x)
- else
- fun_l16_n282(x)
- end
-end
-
-def fun_l15_n858(x)
- if (x < 1)
- fun_l16_n152(x)
- else
- fun_l16_n725(x)
- end
-end
-
-def fun_l15_n859(x)
- if (x < 1)
- fun_l16_n140(x)
- else
- fun_l16_n12(x)
- end
-end
-
-def fun_l15_n860(x)
- if (x < 1)
- fun_l16_n691(x)
- else
- fun_l16_n159(x)
- end
-end
-
-def fun_l15_n861(x)
- if (x < 1)
- fun_l16_n366(x)
- else
- fun_l16_n97(x)
- end
-end
-
-def fun_l15_n862(x)
- if (x < 1)
- fun_l16_n812(x)
- else
- fun_l16_n178(x)
- end
-end
-
-def fun_l15_n863(x)
- if (x < 1)
- fun_l16_n491(x)
- else
- fun_l16_n167(x)
- end
-end
-
-def fun_l15_n864(x)
- if (x < 1)
- fun_l16_n280(x)
- else
- fun_l16_n463(x)
- end
-end
-
-def fun_l15_n865(x)
- if (x < 1)
- fun_l16_n405(x)
- else
- fun_l16_n108(x)
- end
-end
-
-def fun_l15_n866(x)
- if (x < 1)
- fun_l16_n956(x)
- else
- fun_l16_n840(x)
- end
-end
-
-def fun_l15_n867(x)
- if (x < 1)
- fun_l16_n866(x)
- else
- fun_l16_n291(x)
- end
-end
-
-def fun_l15_n868(x)
- if (x < 1)
- fun_l16_n176(x)
- else
- fun_l16_n192(x)
- end
-end
-
-def fun_l15_n869(x)
- if (x < 1)
- fun_l16_n833(x)
- else
- fun_l16_n503(x)
- end
-end
-
-def fun_l15_n870(x)
- if (x < 1)
- fun_l16_n648(x)
- else
- fun_l16_n778(x)
- end
-end
-
-def fun_l15_n871(x)
- if (x < 1)
- fun_l16_n237(x)
- else
- fun_l16_n206(x)
- end
-end
-
-def fun_l15_n872(x)
- if (x < 1)
- fun_l16_n676(x)
- else
- fun_l16_n868(x)
- end
-end
-
-def fun_l15_n873(x)
- if (x < 1)
- fun_l16_n547(x)
- else
- fun_l16_n731(x)
- end
-end
-
-def fun_l15_n874(x)
- if (x < 1)
- fun_l16_n870(x)
- else
- fun_l16_n43(x)
- end
-end
-
-def fun_l15_n875(x)
- if (x < 1)
- fun_l16_n246(x)
- else
- fun_l16_n654(x)
- end
-end
-
-def fun_l15_n876(x)
- if (x < 1)
- fun_l16_n570(x)
- else
- fun_l16_n842(x)
- end
-end
-
-def fun_l15_n877(x)
- if (x < 1)
- fun_l16_n272(x)
- else
- fun_l16_n784(x)
- end
-end
-
-def fun_l15_n878(x)
- if (x < 1)
- fun_l16_n702(x)
- else
- fun_l16_n758(x)
- end
-end
-
-def fun_l15_n879(x)
- if (x < 1)
- fun_l16_n691(x)
- else
- fun_l16_n303(x)
- end
-end
-
-def fun_l15_n880(x)
- if (x < 1)
- fun_l16_n944(x)
- else
- fun_l16_n449(x)
- end
-end
-
-def fun_l15_n881(x)
- if (x < 1)
- fun_l16_n741(x)
- else
- fun_l16_n254(x)
- end
-end
-
-def fun_l15_n882(x)
- if (x < 1)
- fun_l16_n195(x)
- else
- fun_l16_n294(x)
- end
-end
-
-def fun_l15_n883(x)
- if (x < 1)
- fun_l16_n776(x)
- else
- fun_l16_n147(x)
- end
-end
-
-def fun_l15_n884(x)
- if (x < 1)
- fun_l16_n145(x)
- else
- fun_l16_n856(x)
- end
-end
-
-def fun_l15_n885(x)
- if (x < 1)
- fun_l16_n671(x)
- else
- fun_l16_n429(x)
- end
-end
-
-def fun_l15_n886(x)
- if (x < 1)
- fun_l16_n72(x)
- else
- fun_l16_n455(x)
- end
-end
-
-def fun_l15_n887(x)
- if (x < 1)
- fun_l16_n775(x)
- else
- fun_l16_n43(x)
- end
-end
-
-def fun_l15_n888(x)
- if (x < 1)
- fun_l16_n936(x)
- else
- fun_l16_n642(x)
- end
-end
-
-def fun_l15_n889(x)
- if (x < 1)
- fun_l16_n794(x)
- else
- fun_l16_n277(x)
- end
-end
-
-def fun_l15_n890(x)
- if (x < 1)
- fun_l16_n72(x)
- else
- fun_l16_n450(x)
- end
-end
-
-def fun_l15_n891(x)
- if (x < 1)
- fun_l16_n417(x)
- else
- fun_l16_n5(x)
- end
-end
-
-def fun_l15_n892(x)
- if (x < 1)
- fun_l16_n69(x)
- else
- fun_l16_n355(x)
- end
-end
-
-def fun_l15_n893(x)
- if (x < 1)
- fun_l16_n352(x)
- else
- fun_l16_n635(x)
- end
-end
-
-def fun_l15_n894(x)
- if (x < 1)
- fun_l16_n168(x)
- else
- fun_l16_n16(x)
- end
-end
-
-def fun_l15_n895(x)
- if (x < 1)
- fun_l16_n922(x)
- else
- fun_l16_n440(x)
- end
-end
-
-def fun_l15_n896(x)
- if (x < 1)
- fun_l16_n808(x)
- else
- fun_l16_n896(x)
- end
-end
-
-def fun_l15_n897(x)
- if (x < 1)
- fun_l16_n736(x)
- else
- fun_l16_n596(x)
- end
-end
-
-def fun_l15_n898(x)
- if (x < 1)
- fun_l16_n886(x)
- else
- fun_l16_n386(x)
- end
-end
-
-def fun_l15_n899(x)
- if (x < 1)
- fun_l16_n374(x)
- else
- fun_l16_n746(x)
- end
-end
-
-def fun_l15_n900(x)
- if (x < 1)
- fun_l16_n623(x)
- else
- fun_l16_n329(x)
- end
-end
-
-def fun_l15_n901(x)
- if (x < 1)
- fun_l16_n313(x)
- else
- fun_l16_n102(x)
- end
-end
-
-def fun_l15_n902(x)
- if (x < 1)
- fun_l16_n234(x)
- else
- fun_l16_n425(x)
- end
-end
-
-def fun_l15_n903(x)
- if (x < 1)
- fun_l16_n836(x)
- else
- fun_l16_n492(x)
- end
-end
-
-def fun_l15_n904(x)
- if (x < 1)
- fun_l16_n690(x)
- else
- fun_l16_n241(x)
- end
-end
-
-def fun_l15_n905(x)
- if (x < 1)
- fun_l16_n129(x)
- else
- fun_l16_n57(x)
- end
-end
-
-def fun_l15_n906(x)
- if (x < 1)
- fun_l16_n50(x)
- else
- fun_l16_n24(x)
- end
-end
-
-def fun_l15_n907(x)
- if (x < 1)
- fun_l16_n609(x)
- else
- fun_l16_n4(x)
- end
-end
-
-def fun_l15_n908(x)
- if (x < 1)
- fun_l16_n483(x)
- else
- fun_l16_n708(x)
- end
-end
-
-def fun_l15_n909(x)
- if (x < 1)
- fun_l16_n656(x)
- else
- fun_l16_n234(x)
- end
-end
-
-def fun_l15_n910(x)
- if (x < 1)
- fun_l16_n945(x)
- else
- fun_l16_n753(x)
- end
-end
-
-def fun_l15_n911(x)
- if (x < 1)
- fun_l16_n152(x)
- else
- fun_l16_n739(x)
- end
-end
-
-def fun_l15_n912(x)
- if (x < 1)
- fun_l16_n855(x)
- else
- fun_l16_n518(x)
- end
-end
-
-def fun_l15_n913(x)
- if (x < 1)
- fun_l16_n295(x)
- else
- fun_l16_n719(x)
- end
-end
-
-def fun_l15_n914(x)
- if (x < 1)
- fun_l16_n442(x)
- else
- fun_l16_n803(x)
- end
-end
-
-def fun_l15_n915(x)
- if (x < 1)
- fun_l16_n672(x)
- else
- fun_l16_n935(x)
- end
-end
-
-def fun_l15_n916(x)
- if (x < 1)
- fun_l16_n908(x)
- else
- fun_l16_n900(x)
- end
-end
-
-def fun_l15_n917(x)
- if (x < 1)
- fun_l16_n853(x)
- else
- fun_l16_n896(x)
- end
-end
-
-def fun_l15_n918(x)
- if (x < 1)
- fun_l16_n90(x)
- else
- fun_l16_n56(x)
- end
-end
-
-def fun_l15_n919(x)
- if (x < 1)
- fun_l16_n944(x)
- else
- fun_l16_n763(x)
- end
-end
-
-def fun_l15_n920(x)
- if (x < 1)
- fun_l16_n303(x)
- else
- fun_l16_n328(x)
- end
-end
-
-def fun_l15_n921(x)
- if (x < 1)
- fun_l16_n599(x)
- else
- fun_l16_n648(x)
- end
-end
-
-def fun_l15_n922(x)
- if (x < 1)
- fun_l16_n113(x)
- else
- fun_l16_n665(x)
- end
-end
-
-def fun_l15_n923(x)
- if (x < 1)
- fun_l16_n97(x)
- else
- fun_l16_n757(x)
- end
-end
-
-def fun_l15_n924(x)
- if (x < 1)
- fun_l16_n815(x)
- else
- fun_l16_n821(x)
- end
-end
-
-def fun_l15_n925(x)
- if (x < 1)
- fun_l16_n146(x)
- else
- fun_l16_n970(x)
- end
-end
-
-def fun_l15_n926(x)
- if (x < 1)
- fun_l16_n74(x)
- else
- fun_l16_n203(x)
- end
-end
-
-def fun_l15_n927(x)
- if (x < 1)
- fun_l16_n573(x)
- else
- fun_l16_n763(x)
- end
-end
-
-def fun_l15_n928(x)
- if (x < 1)
- fun_l16_n656(x)
- else
- fun_l16_n691(x)
- end
-end
-
-def fun_l15_n929(x)
- if (x < 1)
- fun_l16_n240(x)
- else
- fun_l16_n536(x)
- end
-end
-
-def fun_l15_n930(x)
- if (x < 1)
- fun_l16_n168(x)
- else
- fun_l16_n145(x)
- end
-end
-
-def fun_l15_n931(x)
- if (x < 1)
- fun_l16_n502(x)
- else
- fun_l16_n603(x)
- end
-end
-
-def fun_l15_n932(x)
- if (x < 1)
- fun_l16_n998(x)
- else
- fun_l16_n259(x)
- end
-end
-
-def fun_l15_n933(x)
- if (x < 1)
- fun_l16_n633(x)
- else
- fun_l16_n66(x)
- end
-end
-
-def fun_l15_n934(x)
- if (x < 1)
- fun_l16_n657(x)
- else
- fun_l16_n727(x)
- end
-end
-
-def fun_l15_n935(x)
- if (x < 1)
- fun_l16_n641(x)
- else
- fun_l16_n975(x)
- end
-end
-
-def fun_l15_n936(x)
- if (x < 1)
- fun_l16_n610(x)
- else
- fun_l16_n256(x)
- end
-end
-
-def fun_l15_n937(x)
- if (x < 1)
- fun_l16_n760(x)
- else
- fun_l16_n304(x)
- end
-end
-
-def fun_l15_n938(x)
- if (x < 1)
- fun_l16_n395(x)
- else
- fun_l16_n302(x)
- end
-end
-
-def fun_l15_n939(x)
- if (x < 1)
- fun_l16_n810(x)
- else
- fun_l16_n549(x)
- end
-end
-
-def fun_l15_n940(x)
- if (x < 1)
- fun_l16_n452(x)
- else
- fun_l16_n914(x)
- end
-end
-
-def fun_l15_n941(x)
- if (x < 1)
- fun_l16_n472(x)
- else
- fun_l16_n328(x)
- end
-end
-
-def fun_l15_n942(x)
- if (x < 1)
- fun_l16_n886(x)
- else
- fun_l16_n535(x)
- end
-end
-
-def fun_l15_n943(x)
- if (x < 1)
- fun_l16_n162(x)
- else
- fun_l16_n449(x)
- end
-end
-
-def fun_l15_n944(x)
- if (x < 1)
- fun_l16_n152(x)
- else
- fun_l16_n790(x)
- end
-end
-
-def fun_l15_n945(x)
- if (x < 1)
- fun_l16_n228(x)
- else
- fun_l16_n391(x)
- end
-end
-
-def fun_l15_n946(x)
- if (x < 1)
- fun_l16_n115(x)
- else
- fun_l16_n371(x)
- end
-end
-
-def fun_l15_n947(x)
- if (x < 1)
- fun_l16_n359(x)
- else
- fun_l16_n928(x)
- end
-end
-
-def fun_l15_n948(x)
- if (x < 1)
- fun_l16_n246(x)
- else
- fun_l16_n907(x)
- end
-end
-
-def fun_l15_n949(x)
- if (x < 1)
- fun_l16_n448(x)
- else
- fun_l16_n845(x)
- end
-end
-
-def fun_l15_n950(x)
- if (x < 1)
- fun_l16_n457(x)
- else
- fun_l16_n954(x)
- end
-end
-
-def fun_l15_n951(x)
- if (x < 1)
- fun_l16_n627(x)
- else
- fun_l16_n684(x)
- end
-end
-
-def fun_l15_n952(x)
- if (x < 1)
- fun_l16_n887(x)
- else
- fun_l16_n928(x)
- end
-end
-
-def fun_l15_n953(x)
- if (x < 1)
- fun_l16_n782(x)
- else
- fun_l16_n619(x)
- end
-end
-
-def fun_l15_n954(x)
- if (x < 1)
- fun_l16_n436(x)
- else
- fun_l16_n745(x)
- end
-end
-
-def fun_l15_n955(x)
- if (x < 1)
- fun_l16_n9(x)
- else
- fun_l16_n604(x)
- end
-end
-
-def fun_l15_n956(x)
- if (x < 1)
- fun_l16_n149(x)
- else
- fun_l16_n357(x)
- end
-end
-
-def fun_l15_n957(x)
- if (x < 1)
- fun_l16_n664(x)
- else
- fun_l16_n371(x)
- end
-end
-
-def fun_l15_n958(x)
- if (x < 1)
- fun_l16_n236(x)
- else
- fun_l16_n402(x)
- end
-end
-
-def fun_l15_n959(x)
- if (x < 1)
- fun_l16_n681(x)
- else
- fun_l16_n410(x)
- end
-end
-
-def fun_l15_n960(x)
- if (x < 1)
- fun_l16_n909(x)
- else
- fun_l16_n958(x)
- end
-end
-
-def fun_l15_n961(x)
- if (x < 1)
- fun_l16_n400(x)
- else
- fun_l16_n497(x)
- end
-end
-
-def fun_l15_n962(x)
- if (x < 1)
- fun_l16_n949(x)
- else
- fun_l16_n794(x)
- end
-end
-
-def fun_l15_n963(x)
- if (x < 1)
- fun_l16_n774(x)
- else
- fun_l16_n770(x)
- end
-end
-
-def fun_l15_n964(x)
- if (x < 1)
- fun_l16_n573(x)
- else
- fun_l16_n73(x)
- end
-end
-
-def fun_l15_n965(x)
- if (x < 1)
- fun_l16_n33(x)
- else
- fun_l16_n978(x)
- end
-end
-
-def fun_l15_n966(x)
- if (x < 1)
- fun_l16_n8(x)
- else
- fun_l16_n542(x)
- end
-end
-
-def fun_l15_n967(x)
- if (x < 1)
- fun_l16_n780(x)
- else
- fun_l16_n96(x)
- end
-end
-
-def fun_l15_n968(x)
- if (x < 1)
- fun_l16_n75(x)
- else
- fun_l16_n560(x)
- end
-end
-
-def fun_l15_n969(x)
- if (x < 1)
- fun_l16_n950(x)
- else
- fun_l16_n610(x)
- end
-end
-
-def fun_l15_n970(x)
- if (x < 1)
- fun_l16_n254(x)
- else
- fun_l16_n2(x)
- end
-end
-
-def fun_l15_n971(x)
- if (x < 1)
- fun_l16_n793(x)
- else
- fun_l16_n89(x)
- end
-end
-
-def fun_l15_n972(x)
- if (x < 1)
- fun_l16_n409(x)
- else
- fun_l16_n967(x)
- end
-end
-
-def fun_l15_n973(x)
- if (x < 1)
- fun_l16_n356(x)
- else
- fun_l16_n421(x)
- end
-end
-
-def fun_l15_n974(x)
- if (x < 1)
- fun_l16_n539(x)
- else
- fun_l16_n997(x)
- end
-end
-
-def fun_l15_n975(x)
- if (x < 1)
- fun_l16_n772(x)
- else
- fun_l16_n304(x)
- end
-end
-
-def fun_l15_n976(x)
- if (x < 1)
- fun_l16_n228(x)
- else
- fun_l16_n420(x)
- end
-end
-
-def fun_l15_n977(x)
- if (x < 1)
- fun_l16_n508(x)
- else
- fun_l16_n352(x)
- end
-end
-
-def fun_l15_n978(x)
- if (x < 1)
- fun_l16_n878(x)
- else
- fun_l16_n316(x)
- end
-end
-
-def fun_l15_n979(x)
- if (x < 1)
- fun_l16_n279(x)
- else
- fun_l16_n325(x)
- end
-end
-
-def fun_l15_n980(x)
- if (x < 1)
- fun_l16_n98(x)
- else
- fun_l16_n10(x)
- end
-end
-
-def fun_l15_n981(x)
- if (x < 1)
- fun_l16_n320(x)
- else
- fun_l16_n578(x)
- end
-end
-
-def fun_l15_n982(x)
- if (x < 1)
- fun_l16_n112(x)
- else
- fun_l16_n353(x)
- end
-end
-
-def fun_l15_n983(x)
- if (x < 1)
- fun_l16_n579(x)
- else
- fun_l16_n946(x)
- end
-end
-
-def fun_l15_n984(x)
- if (x < 1)
- fun_l16_n183(x)
- else
- fun_l16_n638(x)
- end
-end
-
-def fun_l15_n985(x)
- if (x < 1)
- fun_l16_n500(x)
- else
- fun_l16_n11(x)
- end
-end
-
-def fun_l15_n986(x)
- if (x < 1)
- fun_l16_n773(x)
- else
- fun_l16_n135(x)
- end
-end
-
-def fun_l15_n987(x)
- if (x < 1)
- fun_l16_n997(x)
- else
- fun_l16_n645(x)
- end
-end
-
-def fun_l15_n988(x)
- if (x < 1)
- fun_l16_n392(x)
- else
- fun_l16_n172(x)
- end
-end
-
-def fun_l15_n989(x)
- if (x < 1)
- fun_l16_n150(x)
- else
- fun_l16_n163(x)
- end
-end
-
-def fun_l15_n990(x)
- if (x < 1)
- fun_l16_n351(x)
- else
- fun_l16_n297(x)
- end
-end
-
-def fun_l15_n991(x)
- if (x < 1)
- fun_l16_n676(x)
- else
- fun_l16_n31(x)
- end
-end
-
-def fun_l15_n992(x)
- if (x < 1)
- fun_l16_n257(x)
- else
- fun_l16_n45(x)
- end
-end
-
-def fun_l15_n993(x)
- if (x < 1)
- fun_l16_n971(x)
- else
- fun_l16_n60(x)
- end
-end
-
-def fun_l15_n994(x)
- if (x < 1)
- fun_l16_n472(x)
- else
- fun_l16_n774(x)
- end
-end
-
-def fun_l15_n995(x)
- if (x < 1)
- fun_l16_n559(x)
- else
- fun_l16_n605(x)
- end
-end
-
-def fun_l15_n996(x)
- if (x < 1)
- fun_l16_n122(x)
- else
- fun_l16_n695(x)
- end
-end
-
-def fun_l15_n997(x)
- if (x < 1)
- fun_l16_n118(x)
- else
- fun_l16_n613(x)
- end
-end
-
-def fun_l15_n998(x)
- if (x < 1)
- fun_l16_n973(x)
- else
- fun_l16_n193(x)
- end
-end
-
-def fun_l15_n999(x)
- if (x < 1)
- fun_l16_n652(x)
- else
- fun_l16_n658(x)
- end
-end
-
-def fun_l16_n0(x)
- if (x < 1)
- fun_l17_n352(x)
- else
- fun_l17_n155(x)
- end
-end
-
-def fun_l16_n1(x)
- if (x < 1)
- fun_l17_n786(x)
- else
- fun_l17_n961(x)
- end
-end
-
-def fun_l16_n2(x)
- if (x < 1)
- fun_l17_n760(x)
- else
- fun_l17_n629(x)
- end
-end
-
-def fun_l16_n3(x)
- if (x < 1)
- fun_l17_n788(x)
- else
- fun_l17_n70(x)
- end
-end
-
-def fun_l16_n4(x)
- if (x < 1)
- fun_l17_n116(x)
- else
- fun_l17_n616(x)
- end
-end
-
-def fun_l16_n5(x)
- if (x < 1)
- fun_l17_n470(x)
- else
- fun_l17_n859(x)
- end
-end
-
-def fun_l16_n6(x)
- if (x < 1)
- fun_l17_n830(x)
- else
- fun_l17_n987(x)
- end
-end
-
-def fun_l16_n7(x)
- if (x < 1)
- fun_l17_n339(x)
- else
- fun_l17_n284(x)
- end
-end
-
-def fun_l16_n8(x)
- if (x < 1)
- fun_l17_n677(x)
- else
- fun_l17_n77(x)
- end
-end
-
-def fun_l16_n9(x)
- if (x < 1)
- fun_l17_n7(x)
- else
- fun_l17_n159(x)
- end
-end
-
-def fun_l16_n10(x)
- if (x < 1)
- fun_l17_n275(x)
- else
- fun_l17_n37(x)
- end
-end
-
-def fun_l16_n11(x)
- if (x < 1)
- fun_l17_n406(x)
- else
- fun_l17_n588(x)
- end
-end
-
-def fun_l16_n12(x)
- if (x < 1)
- fun_l17_n132(x)
- else
- fun_l17_n208(x)
- end
-end
-
-def fun_l16_n13(x)
- if (x < 1)
- fun_l17_n87(x)
- else
- fun_l17_n850(x)
- end
-end
-
-def fun_l16_n14(x)
- if (x < 1)
- fun_l17_n965(x)
- else
- fun_l17_n106(x)
- end
-end
-
-def fun_l16_n15(x)
- if (x < 1)
- fun_l17_n176(x)
- else
- fun_l17_n966(x)
- end
-end
-
-def fun_l16_n16(x)
- if (x < 1)
- fun_l17_n825(x)
- else
- fun_l17_n815(x)
- end
-end
-
-def fun_l16_n17(x)
- if (x < 1)
- fun_l17_n939(x)
- else
- fun_l17_n591(x)
- end
-end
-
-def fun_l16_n18(x)
- if (x < 1)
- fun_l17_n166(x)
- else
- fun_l17_n732(x)
- end
-end
-
-def fun_l16_n19(x)
- if (x < 1)
- fun_l17_n471(x)
- else
- fun_l17_n175(x)
- end
-end
-
-def fun_l16_n20(x)
- if (x < 1)
- fun_l17_n887(x)
- else
- fun_l17_n304(x)
- end
-end
-
-def fun_l16_n21(x)
- if (x < 1)
- fun_l17_n545(x)
- else
- fun_l17_n221(x)
- end
-end
-
-def fun_l16_n22(x)
- if (x < 1)
- fun_l17_n879(x)
- else
- fun_l17_n143(x)
- end
-end
-
-def fun_l16_n23(x)
- if (x < 1)
- fun_l17_n732(x)
- else
- fun_l17_n902(x)
- end
-end
-
-def fun_l16_n24(x)
- if (x < 1)
- fun_l17_n490(x)
- else
- fun_l17_n327(x)
- end
-end
-
-def fun_l16_n25(x)
- if (x < 1)
- fun_l17_n588(x)
- else
- fun_l17_n658(x)
- end
-end
-
-def fun_l16_n26(x)
- if (x < 1)
- fun_l17_n555(x)
- else
- fun_l17_n507(x)
- end
-end
-
-def fun_l16_n27(x)
- if (x < 1)
- fun_l17_n228(x)
- else
- fun_l17_n808(x)
- end
-end
-
-def fun_l16_n28(x)
- if (x < 1)
- fun_l17_n705(x)
- else
- fun_l17_n696(x)
- end
-end
-
-def fun_l16_n29(x)
- if (x < 1)
- fun_l17_n711(x)
- else
- fun_l17_n913(x)
- end
-end
-
-def fun_l16_n30(x)
- if (x < 1)
- fun_l17_n264(x)
- else
- fun_l17_n287(x)
- end
-end
-
-def fun_l16_n31(x)
- if (x < 1)
- fun_l17_n624(x)
- else
- fun_l17_n358(x)
- end
-end
-
-def fun_l16_n32(x)
- if (x < 1)
- fun_l17_n102(x)
- else
- fun_l17_n303(x)
- end
-end
-
-def fun_l16_n33(x)
- if (x < 1)
- fun_l17_n613(x)
- else
- fun_l17_n921(x)
- end
-end
-
-def fun_l16_n34(x)
- if (x < 1)
- fun_l17_n637(x)
- else
- fun_l17_n142(x)
- end
-end
-
-def fun_l16_n35(x)
- if (x < 1)
- fun_l17_n8(x)
- else
- fun_l17_n752(x)
- end
-end
-
-def fun_l16_n36(x)
- if (x < 1)
- fun_l17_n748(x)
- else
- fun_l17_n956(x)
- end
-end
-
-def fun_l16_n37(x)
- if (x < 1)
- fun_l17_n985(x)
- else
- fun_l17_n133(x)
- end
-end
-
-def fun_l16_n38(x)
- if (x < 1)
- fun_l17_n422(x)
- else
- fun_l17_n608(x)
- end
-end
-
-def fun_l16_n39(x)
- if (x < 1)
- fun_l17_n455(x)
- else
- fun_l17_n247(x)
- end
-end
-
-def fun_l16_n40(x)
- if (x < 1)
- fun_l17_n363(x)
- else
- fun_l17_n874(x)
- end
-end
-
-def fun_l16_n41(x)
- if (x < 1)
- fun_l17_n299(x)
- else
- fun_l17_n971(x)
- end
-end
-
-def fun_l16_n42(x)
- if (x < 1)
- fun_l17_n788(x)
- else
- fun_l17_n535(x)
- end
-end
-
-def fun_l16_n43(x)
- if (x < 1)
- fun_l17_n282(x)
- else
- fun_l17_n468(x)
- end
-end
-
-def fun_l16_n44(x)
- if (x < 1)
- fun_l17_n493(x)
- else
- fun_l17_n931(x)
- end
-end
-
-def fun_l16_n45(x)
- if (x < 1)
- fun_l17_n750(x)
- else
- fun_l17_n725(x)
- end
-end
-
-def fun_l16_n46(x)
- if (x < 1)
- fun_l17_n227(x)
- else
- fun_l17_n769(x)
- end
-end
-
-def fun_l16_n47(x)
- if (x < 1)
- fun_l17_n348(x)
- else
- fun_l17_n83(x)
- end
-end
-
-def fun_l16_n48(x)
- if (x < 1)
- fun_l17_n624(x)
- else
- fun_l17_n398(x)
- end
-end
-
-def fun_l16_n49(x)
- if (x < 1)
- fun_l17_n645(x)
- else
- fun_l17_n645(x)
- end
-end
-
-def fun_l16_n50(x)
- if (x < 1)
- fun_l17_n191(x)
- else
- fun_l17_n256(x)
- end
-end
-
-def fun_l16_n51(x)
- if (x < 1)
- fun_l17_n947(x)
- else
- fun_l17_n188(x)
- end
-end
-
-def fun_l16_n52(x)
- if (x < 1)
- fun_l17_n135(x)
- else
- fun_l17_n923(x)
- end
-end
-
-def fun_l16_n53(x)
- if (x < 1)
- fun_l17_n867(x)
- else
- fun_l17_n520(x)
- end
-end
-
-def fun_l16_n54(x)
- if (x < 1)
- fun_l17_n450(x)
- else
- fun_l17_n864(x)
- end
-end
-
-def fun_l16_n55(x)
- if (x < 1)
- fun_l17_n116(x)
- else
- fun_l17_n370(x)
- end
-end
-
-def fun_l16_n56(x)
- if (x < 1)
- fun_l17_n754(x)
- else
- fun_l17_n919(x)
- end
-end
-
-def fun_l16_n57(x)
- if (x < 1)
- fun_l17_n360(x)
- else
- fun_l17_n513(x)
- end
-end
-
-def fun_l16_n58(x)
- if (x < 1)
- fun_l17_n436(x)
- else
- fun_l17_n618(x)
- end
-end
-
-def fun_l16_n59(x)
- if (x < 1)
- fun_l17_n795(x)
- else
- fun_l17_n851(x)
- end
-end
-
-def fun_l16_n60(x)
- if (x < 1)
- fun_l17_n624(x)
- else
- fun_l17_n305(x)
- end
-end
-
-def fun_l16_n61(x)
- if (x < 1)
- fun_l17_n520(x)
- else
- fun_l17_n360(x)
- end
-end
-
-def fun_l16_n62(x)
- if (x < 1)
- fun_l17_n297(x)
- else
- fun_l17_n218(x)
- end
-end
-
-def fun_l16_n63(x)
- if (x < 1)
- fun_l17_n116(x)
- else
- fun_l17_n888(x)
- end
-end
-
-def fun_l16_n64(x)
- if (x < 1)
- fun_l17_n800(x)
- else
- fun_l17_n985(x)
- end
-end
-
-def fun_l16_n65(x)
- if (x < 1)
- fun_l17_n875(x)
- else
- fun_l17_n821(x)
- end
-end
-
-def fun_l16_n66(x)
- if (x < 1)
- fun_l17_n677(x)
- else
- fun_l17_n705(x)
- end
-end
-
-def fun_l16_n67(x)
- if (x < 1)
- fun_l17_n643(x)
- else
- fun_l17_n240(x)
- end
-end
-
-def fun_l16_n68(x)
- if (x < 1)
- fun_l17_n290(x)
- else
- fun_l17_n885(x)
- end
-end
-
-def fun_l16_n69(x)
- if (x < 1)
- fun_l17_n987(x)
- else
- fun_l17_n611(x)
- end
-end
-
-def fun_l16_n70(x)
- if (x < 1)
- fun_l17_n546(x)
- else
- fun_l17_n95(x)
- end
-end
-
-def fun_l16_n71(x)
- if (x < 1)
- fun_l17_n301(x)
- else
- fun_l17_n260(x)
- end
-end
-
-def fun_l16_n72(x)
- if (x < 1)
- fun_l17_n118(x)
- else
- fun_l17_n110(x)
- end
-end
-
-def fun_l16_n73(x)
- if (x < 1)
- fun_l17_n254(x)
- else
- fun_l17_n602(x)
- end
-end
-
-def fun_l16_n74(x)
- if (x < 1)
- fun_l17_n725(x)
- else
- fun_l17_n606(x)
- end
-end
-
-def fun_l16_n75(x)
- if (x < 1)
- fun_l17_n114(x)
- else
- fun_l17_n336(x)
- end
-end
-
-def fun_l16_n76(x)
- if (x < 1)
- fun_l17_n930(x)
- else
- fun_l17_n513(x)
- end
-end
-
-def fun_l16_n77(x)
- if (x < 1)
- fun_l17_n217(x)
- else
- fun_l17_n158(x)
- end
-end
-
-def fun_l16_n78(x)
- if (x < 1)
- fun_l17_n987(x)
- else
- fun_l17_n538(x)
- end
-end
-
-def fun_l16_n79(x)
- if (x < 1)
- fun_l17_n467(x)
- else
- fun_l17_n675(x)
- end
-end
-
-def fun_l16_n80(x)
- if (x < 1)
- fun_l17_n553(x)
- else
- fun_l17_n77(x)
- end
-end
-
-def fun_l16_n81(x)
- if (x < 1)
- fun_l17_n643(x)
- else
- fun_l17_n156(x)
- end
-end
-
-def fun_l16_n82(x)
- if (x < 1)
- fun_l17_n858(x)
- else
- fun_l17_n300(x)
- end
-end
-
-def fun_l16_n83(x)
- if (x < 1)
- fun_l17_n136(x)
- else
- fun_l17_n637(x)
- end
-end
-
-def fun_l16_n84(x)
- if (x < 1)
- fun_l17_n71(x)
- else
- fun_l17_n979(x)
- end
-end
-
-def fun_l16_n85(x)
- if (x < 1)
- fun_l17_n135(x)
- else
- fun_l17_n893(x)
- end
-end
-
-def fun_l16_n86(x)
- if (x < 1)
- fun_l17_n734(x)
- else
- fun_l17_n254(x)
- end
-end
-
-def fun_l16_n87(x)
- if (x < 1)
- fun_l17_n809(x)
- else
- fun_l17_n475(x)
- end
-end
-
-def fun_l16_n88(x)
- if (x < 1)
- fun_l17_n931(x)
- else
- fun_l17_n110(x)
- end
-end
-
-def fun_l16_n89(x)
- if (x < 1)
- fun_l17_n957(x)
- else
- fun_l17_n489(x)
- end
-end
-
-def fun_l16_n90(x)
- if (x < 1)
- fun_l17_n145(x)
- else
- fun_l17_n861(x)
- end
-end
-
-def fun_l16_n91(x)
- if (x < 1)
- fun_l17_n276(x)
- else
- fun_l17_n967(x)
- end
-end
-
-def fun_l16_n92(x)
- if (x < 1)
- fun_l17_n657(x)
- else
- fun_l17_n638(x)
- end
-end
-
-def fun_l16_n93(x)
- if (x < 1)
- fun_l17_n714(x)
- else
- fun_l17_n52(x)
- end
-end
-
-def fun_l16_n94(x)
- if (x < 1)
- fun_l17_n487(x)
- else
- fun_l17_n380(x)
- end
-end
-
-def fun_l16_n95(x)
- if (x < 1)
- fun_l17_n58(x)
- else
- fun_l17_n67(x)
- end
-end
-
-def fun_l16_n96(x)
- if (x < 1)
- fun_l17_n9(x)
- else
- fun_l17_n896(x)
- end
-end
-
-def fun_l16_n97(x)
- if (x < 1)
- fun_l17_n723(x)
- else
- fun_l17_n16(x)
- end
-end
-
-def fun_l16_n98(x)
- if (x < 1)
- fun_l17_n143(x)
- else
- fun_l17_n31(x)
- end
-end
-
-def fun_l16_n99(x)
- if (x < 1)
- fun_l17_n33(x)
- else
- fun_l17_n615(x)
- end
-end
-
-def fun_l16_n100(x)
- if (x < 1)
- fun_l17_n318(x)
- else
- fun_l17_n83(x)
- end
-end
-
-def fun_l16_n101(x)
- if (x < 1)
- fun_l17_n694(x)
- else
- fun_l17_n851(x)
- end
-end
-
-def fun_l16_n102(x)
- if (x < 1)
- fun_l17_n31(x)
- else
- fun_l17_n881(x)
- end
-end
-
-def fun_l16_n103(x)
- if (x < 1)
- fun_l17_n739(x)
- else
- fun_l17_n680(x)
- end
-end
-
-def fun_l16_n104(x)
- if (x < 1)
- fun_l17_n123(x)
- else
- fun_l17_n969(x)
- end
-end
-
-def fun_l16_n105(x)
- if (x < 1)
- fun_l17_n526(x)
- else
- fun_l17_n529(x)
- end
-end
-
-def fun_l16_n106(x)
- if (x < 1)
- fun_l17_n613(x)
- else
- fun_l17_n738(x)
- end
-end
-
-def fun_l16_n107(x)
- if (x < 1)
- fun_l17_n48(x)
- else
- fun_l17_n107(x)
- end
-end
-
-def fun_l16_n108(x)
- if (x < 1)
- fun_l17_n493(x)
- else
- fun_l17_n875(x)
- end
-end
-
-def fun_l16_n109(x)
- if (x < 1)
- fun_l17_n101(x)
- else
- fun_l17_n295(x)
- end
-end
-
-def fun_l16_n110(x)
- if (x < 1)
- fun_l17_n257(x)
- else
- fun_l17_n132(x)
- end
-end
-
-def fun_l16_n111(x)
- if (x < 1)
- fun_l17_n702(x)
- else
- fun_l17_n635(x)
- end
-end
-
-def fun_l16_n112(x)
- if (x < 1)
- fun_l17_n193(x)
- else
- fun_l17_n931(x)
- end
-end
-
-def fun_l16_n113(x)
- if (x < 1)
- fun_l17_n973(x)
- else
- fun_l17_n708(x)
- end
-end
-
-def fun_l16_n114(x)
- if (x < 1)
- fun_l17_n110(x)
- else
- fun_l17_n247(x)
- end
-end
-
-def fun_l16_n115(x)
- if (x < 1)
- fun_l17_n769(x)
- else
- fun_l17_n872(x)
- end
-end
-
-def fun_l16_n116(x)
- if (x < 1)
- fun_l17_n63(x)
- else
- fun_l17_n90(x)
- end
-end
-
-def fun_l16_n117(x)
- if (x < 1)
- fun_l17_n392(x)
- else
- fun_l17_n3(x)
- end
-end
-
-def fun_l16_n118(x)
- if (x < 1)
- fun_l17_n73(x)
- else
- fun_l17_n354(x)
- end
-end
-
-def fun_l16_n119(x)
- if (x < 1)
- fun_l17_n173(x)
- else
- fun_l17_n573(x)
- end
-end
-
-def fun_l16_n120(x)
- if (x < 1)
- fun_l17_n481(x)
- else
- fun_l17_n571(x)
- end
-end
-
-def fun_l16_n121(x)
- if (x < 1)
- fun_l17_n838(x)
- else
- fun_l17_n736(x)
- end
-end
-
-def fun_l16_n122(x)
- if (x < 1)
- fun_l17_n400(x)
- else
- fun_l17_n169(x)
- end
-end
-
-def fun_l16_n123(x)
- if (x < 1)
- fun_l17_n806(x)
- else
- fun_l17_n954(x)
- end
-end
-
-def fun_l16_n124(x)
- if (x < 1)
- fun_l17_n328(x)
- else
- fun_l17_n200(x)
- end
-end
-
-def fun_l16_n125(x)
- if (x < 1)
- fun_l17_n388(x)
- else
- fun_l17_n875(x)
- end
-end
-
-def fun_l16_n126(x)
- if (x < 1)
- fun_l17_n178(x)
- else
- fun_l17_n122(x)
- end
-end
-
-def fun_l16_n127(x)
- if (x < 1)
- fun_l17_n974(x)
- else
- fun_l17_n490(x)
- end
-end
-
-def fun_l16_n128(x)
- if (x < 1)
- fun_l17_n731(x)
- else
- fun_l17_n807(x)
- end
-end
-
-def fun_l16_n129(x)
- if (x < 1)
- fun_l17_n939(x)
- else
- fun_l17_n532(x)
- end
-end
-
-def fun_l16_n130(x)
- if (x < 1)
- fun_l17_n482(x)
- else
- fun_l17_n926(x)
- end
-end
-
-def fun_l16_n131(x)
- if (x < 1)
- fun_l17_n884(x)
- else
- fun_l17_n179(x)
- end
-end
-
-def fun_l16_n132(x)
- if (x < 1)
- fun_l17_n683(x)
- else
- fun_l17_n24(x)
- end
-end
-
-def fun_l16_n133(x)
- if (x < 1)
- fun_l17_n968(x)
- else
- fun_l17_n536(x)
- end
-end
-
-def fun_l16_n134(x)
- if (x < 1)
- fun_l17_n229(x)
- else
- fun_l17_n280(x)
- end
-end
-
-def fun_l16_n135(x)
- if (x < 1)
- fun_l17_n47(x)
- else
- fun_l17_n12(x)
- end
-end
-
-def fun_l16_n136(x)
- if (x < 1)
- fun_l17_n905(x)
- else
- fun_l17_n461(x)
- end
-end
-
-def fun_l16_n137(x)
- if (x < 1)
- fun_l17_n992(x)
- else
- fun_l17_n294(x)
- end
-end
-
-def fun_l16_n138(x)
- if (x < 1)
- fun_l17_n383(x)
- else
- fun_l17_n916(x)
- end
-end
-
-def fun_l16_n139(x)
- if (x < 1)
- fun_l17_n116(x)
- else
- fun_l17_n96(x)
- end
-end
-
-def fun_l16_n140(x)
- if (x < 1)
- fun_l17_n702(x)
- else
- fun_l17_n294(x)
- end
-end
-
-def fun_l16_n141(x)
- if (x < 1)
- fun_l17_n528(x)
- else
- fun_l17_n650(x)
- end
-end
-
-def fun_l16_n142(x)
- if (x < 1)
- fun_l17_n341(x)
- else
- fun_l17_n168(x)
- end
-end
-
-def fun_l16_n143(x)
- if (x < 1)
- fun_l17_n85(x)
- else
- fun_l17_n384(x)
- end
-end
-
-def fun_l16_n144(x)
- if (x < 1)
- fun_l17_n738(x)
- else
- fun_l17_n842(x)
- end
-end
-
-def fun_l16_n145(x)
- if (x < 1)
- fun_l17_n359(x)
- else
- fun_l17_n691(x)
- end
-end
-
-def fun_l16_n146(x)
- if (x < 1)
- fun_l17_n465(x)
- else
- fun_l17_n310(x)
- end
-end
-
-def fun_l16_n147(x)
- if (x < 1)
- fun_l17_n610(x)
- else
- fun_l17_n133(x)
- end
-end
-
-def fun_l16_n148(x)
- if (x < 1)
- fun_l17_n829(x)
- else
- fun_l17_n449(x)
- end
-end
-
-def fun_l16_n149(x)
- if (x < 1)
- fun_l17_n319(x)
- else
- fun_l17_n875(x)
- end
-end
-
-def fun_l16_n150(x)
- if (x < 1)
- fun_l17_n493(x)
- else
- fun_l17_n39(x)
- end
-end
-
-def fun_l16_n151(x)
- if (x < 1)
- fun_l17_n801(x)
- else
- fun_l17_n294(x)
- end
-end
-
-def fun_l16_n152(x)
- if (x < 1)
- fun_l17_n39(x)
- else
- fun_l17_n113(x)
- end
-end
-
-def fun_l16_n153(x)
- if (x < 1)
- fun_l17_n299(x)
- else
- fun_l17_n560(x)
- end
-end
-
-def fun_l16_n154(x)
- if (x < 1)
- fun_l17_n220(x)
- else
- fun_l17_n485(x)
- end
-end
-
-def fun_l16_n155(x)
- if (x < 1)
- fun_l17_n219(x)
- else
- fun_l17_n210(x)
- end
-end
-
-def fun_l16_n156(x)
- if (x < 1)
- fun_l17_n44(x)
- else
- fun_l17_n394(x)
- end
-end
-
-def fun_l16_n157(x)
- if (x < 1)
- fun_l17_n858(x)
- else
- fun_l17_n9(x)
- end
-end
-
-def fun_l16_n158(x)
- if (x < 1)
- fun_l17_n298(x)
- else
- fun_l17_n584(x)
- end
-end
-
-def fun_l16_n159(x)
- if (x < 1)
- fun_l17_n627(x)
- else
- fun_l17_n991(x)
- end
-end
-
-def fun_l16_n160(x)
- if (x < 1)
- fun_l17_n459(x)
- else
- fun_l17_n686(x)
- end
-end
-
-def fun_l16_n161(x)
- if (x < 1)
- fun_l17_n694(x)
- else
- fun_l17_n503(x)
- end
-end
-
-def fun_l16_n162(x)
- if (x < 1)
- fun_l17_n331(x)
- else
- fun_l17_n869(x)
- end
-end
-
-def fun_l16_n163(x)
- if (x < 1)
- fun_l17_n958(x)
- else
- fun_l17_n102(x)
- end
-end
-
-def fun_l16_n164(x)
- if (x < 1)
- fun_l17_n254(x)
- else
- fun_l17_n888(x)
- end
-end
-
-def fun_l16_n165(x)
- if (x < 1)
- fun_l17_n639(x)
- else
- fun_l17_n342(x)
- end
-end
-
-def fun_l16_n166(x)
- if (x < 1)
- fun_l17_n859(x)
- else
- fun_l17_n2(x)
- end
-end
-
-def fun_l16_n167(x)
- if (x < 1)
- fun_l17_n504(x)
- else
- fun_l17_n726(x)
- end
-end
-
-def fun_l16_n168(x)
- if (x < 1)
- fun_l17_n426(x)
- else
- fun_l17_n532(x)
- end
-end
-
-def fun_l16_n169(x)
- if (x < 1)
- fun_l17_n919(x)
- else
- fun_l17_n515(x)
- end
-end
-
-def fun_l16_n170(x)
- if (x < 1)
- fun_l17_n394(x)
- else
- fun_l17_n259(x)
- end
-end
-
-def fun_l16_n171(x)
- if (x < 1)
- fun_l17_n920(x)
- else
- fun_l17_n502(x)
- end
-end
-
-def fun_l16_n172(x)
- if (x < 1)
- fun_l17_n898(x)
- else
- fun_l17_n984(x)
- end
-end
-
-def fun_l16_n173(x)
- if (x < 1)
- fun_l17_n869(x)
- else
- fun_l17_n470(x)
- end
-end
-
-def fun_l16_n174(x)
- if (x < 1)
- fun_l17_n959(x)
- else
- fun_l17_n283(x)
- end
-end
-
-def fun_l16_n175(x)
- if (x < 1)
- fun_l17_n1(x)
- else
- fun_l17_n68(x)
- end
-end
-
-def fun_l16_n176(x)
- if (x < 1)
- fun_l17_n91(x)
- else
- fun_l17_n684(x)
- end
-end
-
-def fun_l16_n177(x)
- if (x < 1)
- fun_l17_n803(x)
- else
- fun_l17_n335(x)
- end
-end
-
-def fun_l16_n178(x)
- if (x < 1)
- fun_l17_n242(x)
- else
- fun_l17_n671(x)
- end
-end
-
-def fun_l16_n179(x)
- if (x < 1)
- fun_l17_n944(x)
- else
- fun_l17_n136(x)
- end
-end
-
-def fun_l16_n180(x)
- if (x < 1)
- fun_l17_n681(x)
- else
- fun_l17_n587(x)
- end
-end
-
-def fun_l16_n181(x)
- if (x < 1)
- fun_l17_n564(x)
- else
- fun_l17_n965(x)
- end
-end
-
-def fun_l16_n182(x)
- if (x < 1)
- fun_l17_n107(x)
- else
- fun_l17_n229(x)
- end
-end
-
-def fun_l16_n183(x)
- if (x < 1)
- fun_l17_n467(x)
- else
- fun_l17_n155(x)
- end
-end
-
-def fun_l16_n184(x)
- if (x < 1)
- fun_l17_n62(x)
- else
- fun_l17_n507(x)
- end
-end
-
-def fun_l16_n185(x)
- if (x < 1)
- fun_l17_n632(x)
- else
- fun_l17_n792(x)
- end
-end
-
-def fun_l16_n186(x)
- if (x < 1)
- fun_l17_n174(x)
- else
- fun_l17_n623(x)
- end
-end
-
-def fun_l16_n187(x)
- if (x < 1)
- fun_l17_n733(x)
- else
- fun_l17_n640(x)
- end
-end
-
-def fun_l16_n188(x)
- if (x < 1)
- fun_l17_n968(x)
- else
- fun_l17_n554(x)
- end
-end
-
-def fun_l16_n189(x)
- if (x < 1)
- fun_l17_n363(x)
- else
- fun_l17_n381(x)
- end
-end
-
-def fun_l16_n190(x)
- if (x < 1)
- fun_l17_n34(x)
- else
- fun_l17_n145(x)
- end
-end
-
-def fun_l16_n191(x)
- if (x < 1)
- fun_l17_n407(x)
- else
- fun_l17_n567(x)
- end
-end
-
-def fun_l16_n192(x)
- if (x < 1)
- fun_l17_n497(x)
- else
- fun_l17_n842(x)
- end
-end
-
-def fun_l16_n193(x)
- if (x < 1)
- fun_l17_n935(x)
- else
- fun_l17_n394(x)
- end
-end
-
-def fun_l16_n194(x)
- if (x < 1)
- fun_l17_n728(x)
- else
- fun_l17_n885(x)
- end
-end
-
-def fun_l16_n195(x)
- if (x < 1)
- fun_l17_n974(x)
- else
- fun_l17_n678(x)
- end
-end
-
-def fun_l16_n196(x)
- if (x < 1)
- fun_l17_n420(x)
- else
- fun_l17_n894(x)
- end
-end
-
-def fun_l16_n197(x)
- if (x < 1)
- fun_l17_n651(x)
- else
- fun_l17_n569(x)
- end
-end
-
-def fun_l16_n198(x)
- if (x < 1)
- fun_l17_n274(x)
- else
- fun_l17_n683(x)
- end
-end
-
-def fun_l16_n199(x)
- if (x < 1)
- fun_l17_n624(x)
- else
- fun_l17_n343(x)
- end
-end
-
-def fun_l16_n200(x)
- if (x < 1)
- fun_l17_n82(x)
- else
- fun_l17_n472(x)
- end
-end
-
-def fun_l16_n201(x)
- if (x < 1)
- fun_l17_n519(x)
- else
- fun_l17_n54(x)
- end
-end
-
-def fun_l16_n202(x)
- if (x < 1)
- fun_l17_n858(x)
- else
- fun_l17_n379(x)
- end
-end
-
-def fun_l16_n203(x)
- if (x < 1)
- fun_l17_n515(x)
- else
- fun_l17_n59(x)
- end
-end
-
-def fun_l16_n204(x)
- if (x < 1)
- fun_l17_n736(x)
- else
- fun_l17_n880(x)
- end
-end
-
-def fun_l16_n205(x)
- if (x < 1)
- fun_l17_n724(x)
- else
- fun_l17_n890(x)
- end
-end
-
-def fun_l16_n206(x)
- if (x < 1)
- fun_l17_n92(x)
- else
- fun_l17_n305(x)
- end
-end
-
-def fun_l16_n207(x)
- if (x < 1)
- fun_l17_n123(x)
- else
- fun_l17_n455(x)
- end
-end
-
-def fun_l16_n208(x)
- if (x < 1)
- fun_l17_n722(x)
- else
- fun_l17_n142(x)
- end
-end
-
-def fun_l16_n209(x)
- if (x < 1)
- fun_l17_n250(x)
- else
- fun_l17_n810(x)
- end
-end
-
-def fun_l16_n210(x)
- if (x < 1)
- fun_l17_n118(x)
- else
- fun_l17_n902(x)
- end
-end
-
-def fun_l16_n211(x)
- if (x < 1)
- fun_l17_n8(x)
- else
- fun_l17_n874(x)
- end
-end
-
-def fun_l16_n212(x)
- if (x < 1)
- fun_l17_n589(x)
- else
- fun_l17_n731(x)
- end
-end
-
-def fun_l16_n213(x)
- if (x < 1)
- fun_l17_n786(x)
- else
- fun_l17_n249(x)
- end
-end
-
-def fun_l16_n214(x)
- if (x < 1)
- fun_l17_n80(x)
- else
- fun_l17_n763(x)
- end
-end
-
-def fun_l16_n215(x)
- if (x < 1)
- fun_l17_n733(x)
- else
- fun_l17_n657(x)
- end
-end
-
-def fun_l16_n216(x)
- if (x < 1)
- fun_l17_n168(x)
- else
- fun_l17_n881(x)
- end
-end
-
-def fun_l16_n217(x)
- if (x < 1)
- fun_l17_n568(x)
- else
- fun_l17_n698(x)
- end
-end
-
-def fun_l16_n218(x)
- if (x < 1)
- fun_l17_n727(x)
- else
- fun_l17_n388(x)
- end
-end
-
-def fun_l16_n219(x)
- if (x < 1)
- fun_l17_n443(x)
- else
- fun_l17_n600(x)
- end
-end
-
-def fun_l16_n220(x)
- if (x < 1)
- fun_l17_n901(x)
- else
- fun_l17_n875(x)
- end
-end
-
-def fun_l16_n221(x)
- if (x < 1)
- fun_l17_n374(x)
- else
- fun_l17_n819(x)
- end
-end
-
-def fun_l16_n222(x)
- if (x < 1)
- fun_l17_n563(x)
- else
- fun_l17_n341(x)
- end
-end
-
-def fun_l16_n223(x)
- if (x < 1)
- fun_l17_n404(x)
- else
- fun_l17_n201(x)
- end
-end
-
-def fun_l16_n224(x)
- if (x < 1)
- fun_l17_n932(x)
- else
- fun_l17_n803(x)
- end
-end
-
-def fun_l16_n225(x)
- if (x < 1)
- fun_l17_n970(x)
- else
- fun_l17_n717(x)
- end
-end
-
-def fun_l16_n226(x)
- if (x < 1)
- fun_l17_n599(x)
- else
- fun_l17_n692(x)
- end
-end
-
-def fun_l16_n227(x)
- if (x < 1)
- fun_l17_n351(x)
- else
- fun_l17_n177(x)
- end
-end
-
-def fun_l16_n228(x)
- if (x < 1)
- fun_l17_n891(x)
- else
- fun_l17_n79(x)
- end
-end
-
-def fun_l16_n229(x)
- if (x < 1)
- fun_l17_n143(x)
- else
- fun_l17_n702(x)
- end
-end
-
-def fun_l16_n230(x)
- if (x < 1)
- fun_l17_n591(x)
- else
- fun_l17_n317(x)
- end
-end
-
-def fun_l16_n231(x)
- if (x < 1)
- fun_l17_n727(x)
- else
- fun_l17_n881(x)
- end
-end
-
-def fun_l16_n232(x)
- if (x < 1)
- fun_l17_n390(x)
- else
- fun_l17_n580(x)
- end
-end
-
-def fun_l16_n233(x)
- if (x < 1)
- fun_l17_n530(x)
- else
- fun_l17_n102(x)
- end
-end
-
-def fun_l16_n234(x)
- if (x < 1)
- fun_l17_n891(x)
- else
- fun_l17_n783(x)
- end
-end
-
-def fun_l16_n235(x)
- if (x < 1)
- fun_l17_n91(x)
- else
- fun_l17_n142(x)
- end
-end
-
-def fun_l16_n236(x)
- if (x < 1)
- fun_l17_n55(x)
- else
- fun_l17_n897(x)
- end
-end
-
-def fun_l16_n237(x)
- if (x < 1)
- fun_l17_n471(x)
- else
- fun_l17_n24(x)
- end
-end
-
-def fun_l16_n238(x)
- if (x < 1)
- fun_l17_n812(x)
- else
- fun_l17_n833(x)
- end
-end
-
-def fun_l16_n239(x)
- if (x < 1)
- fun_l17_n879(x)
- else
- fun_l17_n560(x)
- end
-end
-
-def fun_l16_n240(x)
- if (x < 1)
- fun_l17_n882(x)
- else
- fun_l17_n473(x)
- end
-end
-
-def fun_l16_n241(x)
- if (x < 1)
- fun_l17_n30(x)
- else
- fun_l17_n299(x)
- end
-end
-
-def fun_l16_n242(x)
- if (x < 1)
- fun_l17_n855(x)
- else
- fun_l17_n751(x)
- end
-end
-
-def fun_l16_n243(x)
- if (x < 1)
- fun_l17_n184(x)
- else
- fun_l17_n997(x)
- end
-end
-
-def fun_l16_n244(x)
- if (x < 1)
- fun_l17_n151(x)
- else
- fun_l17_n495(x)
- end
-end
-
-def fun_l16_n245(x)
- if (x < 1)
- fun_l17_n181(x)
- else
- fun_l17_n360(x)
- end
-end
-
-def fun_l16_n246(x)
- if (x < 1)
- fun_l17_n208(x)
- else
- fun_l17_n767(x)
- end
-end
-
-def fun_l16_n247(x)
- if (x < 1)
- fun_l17_n969(x)
- else
- fun_l17_n15(x)
- end
-end
-
-def fun_l16_n248(x)
- if (x < 1)
- fun_l17_n529(x)
- else
- fun_l17_n879(x)
- end
-end
-
-def fun_l16_n249(x)
- if (x < 1)
- fun_l17_n729(x)
- else
- fun_l17_n355(x)
- end
-end
-
-def fun_l16_n250(x)
- if (x < 1)
- fun_l17_n239(x)
- else
- fun_l17_n414(x)
- end
-end
-
-def fun_l16_n251(x)
- if (x < 1)
- fun_l17_n257(x)
- else
- fun_l17_n362(x)
- end
-end
-
-def fun_l16_n252(x)
- if (x < 1)
- fun_l17_n832(x)
- else
- fun_l17_n924(x)
- end
-end
-
-def fun_l16_n253(x)
- if (x < 1)
- fun_l17_n907(x)
- else
- fun_l17_n548(x)
- end
-end
-
-def fun_l16_n254(x)
- if (x < 1)
- fun_l17_n391(x)
- else
- fun_l17_n316(x)
- end
-end
-
-def fun_l16_n255(x)
- if (x < 1)
- fun_l17_n163(x)
- else
- fun_l17_n164(x)
- end
-end
-
-def fun_l16_n256(x)
- if (x < 1)
- fun_l17_n86(x)
- else
- fun_l17_n473(x)
- end
-end
-
-def fun_l16_n257(x)
- if (x < 1)
- fun_l17_n519(x)
- else
- fun_l17_n556(x)
- end
-end
-
-def fun_l16_n258(x)
- if (x < 1)
- fun_l17_n819(x)
- else
- fun_l17_n41(x)
- end
-end
-
-def fun_l16_n259(x)
- if (x < 1)
- fun_l17_n330(x)
- else
- fun_l17_n334(x)
- end
-end
-
-def fun_l16_n260(x)
- if (x < 1)
- fun_l17_n441(x)
- else
- fun_l17_n529(x)
- end
-end
-
-def fun_l16_n261(x)
- if (x < 1)
- fun_l17_n116(x)
- else
- fun_l17_n597(x)
- end
-end
-
-def fun_l16_n262(x)
- if (x < 1)
- fun_l17_n537(x)
- else
- fun_l17_n594(x)
- end
-end
-
-def fun_l16_n263(x)
- if (x < 1)
- fun_l17_n511(x)
- else
- fun_l17_n56(x)
- end
-end
-
-def fun_l16_n264(x)
- if (x < 1)
- fun_l17_n264(x)
- else
- fun_l17_n641(x)
- end
-end
-
-def fun_l16_n265(x)
- if (x < 1)
- fun_l17_n806(x)
- else
- fun_l17_n432(x)
- end
-end
-
-def fun_l16_n266(x)
- if (x < 1)
- fun_l17_n428(x)
- else
- fun_l17_n463(x)
- end
-end
-
-def fun_l16_n267(x)
- if (x < 1)
- fun_l17_n39(x)
- else
- fun_l17_n362(x)
- end
-end
-
-def fun_l16_n268(x)
- if (x < 1)
- fun_l17_n502(x)
- else
- fun_l17_n87(x)
- end
-end
-
-def fun_l16_n269(x)
- if (x < 1)
- fun_l17_n143(x)
- else
- fun_l17_n92(x)
- end
-end
-
-def fun_l16_n270(x)
- if (x < 1)
- fun_l17_n675(x)
- else
- fun_l17_n629(x)
- end
-end
-
-def fun_l16_n271(x)
- if (x < 1)
- fun_l17_n33(x)
- else
- fun_l17_n158(x)
- end
-end
-
-def fun_l16_n272(x)
- if (x < 1)
- fun_l17_n480(x)
- else
- fun_l17_n204(x)
- end
-end
-
-def fun_l16_n273(x)
- if (x < 1)
- fun_l17_n81(x)
- else
- fun_l17_n855(x)
- end
-end
-
-def fun_l16_n274(x)
- if (x < 1)
- fun_l17_n608(x)
- else
- fun_l17_n969(x)
- end
-end
-
-def fun_l16_n275(x)
- if (x < 1)
- fun_l17_n606(x)
- else
- fun_l17_n292(x)
- end
-end
-
-def fun_l16_n276(x)
- if (x < 1)
- fun_l17_n494(x)
- else
- fun_l17_n689(x)
- end
-end
-
-def fun_l16_n277(x)
- if (x < 1)
- fun_l17_n3(x)
- else
- fun_l17_n207(x)
- end
-end
-
-def fun_l16_n278(x)
- if (x < 1)
- fun_l17_n85(x)
- else
- fun_l17_n59(x)
- end
-end
-
-def fun_l16_n279(x)
- if (x < 1)
- fun_l17_n363(x)
- else
- fun_l17_n651(x)
- end
-end
-
-def fun_l16_n280(x)
- if (x < 1)
- fun_l17_n199(x)
- else
- fun_l17_n77(x)
- end
-end
-
-def fun_l16_n281(x)
- if (x < 1)
- fun_l17_n83(x)
- else
- fun_l17_n865(x)
- end
-end
-
-def fun_l16_n282(x)
- if (x < 1)
- fun_l17_n120(x)
- else
- fun_l17_n466(x)
- end
-end
-
-def fun_l16_n283(x)
- if (x < 1)
- fun_l17_n667(x)
- else
- fun_l17_n867(x)
- end
-end
-
-def fun_l16_n284(x)
- if (x < 1)
- fun_l17_n248(x)
- else
- fun_l17_n480(x)
- end
-end
-
-def fun_l16_n285(x)
- if (x < 1)
- fun_l17_n766(x)
- else
- fun_l17_n609(x)
- end
-end
-
-def fun_l16_n286(x)
- if (x < 1)
- fun_l17_n95(x)
- else
- fun_l17_n341(x)
- end
-end
-
-def fun_l16_n287(x)
- if (x < 1)
- fun_l17_n234(x)
- else
- fun_l17_n552(x)
- end
-end
-
-def fun_l16_n288(x)
- if (x < 1)
- fun_l17_n955(x)
- else
- fun_l17_n434(x)
- end
-end
-
-def fun_l16_n289(x)
- if (x < 1)
- fun_l17_n954(x)
- else
- fun_l17_n554(x)
- end
-end
-
-def fun_l16_n290(x)
- if (x < 1)
- fun_l17_n981(x)
- else
- fun_l17_n374(x)
- end
-end
-
-def fun_l16_n291(x)
- if (x < 1)
- fun_l17_n153(x)
- else
- fun_l17_n849(x)
- end
-end
-
-def fun_l16_n292(x)
- if (x < 1)
- fun_l17_n89(x)
- else
- fun_l17_n491(x)
- end
-end
-
-def fun_l16_n293(x)
- if (x < 1)
- fun_l17_n908(x)
- else
- fun_l17_n75(x)
- end
-end
-
-def fun_l16_n294(x)
- if (x < 1)
- fun_l17_n772(x)
- else
- fun_l17_n474(x)
- end
-end
-
-def fun_l16_n295(x)
- if (x < 1)
- fun_l17_n577(x)
- else
- fun_l17_n470(x)
- end
-end
-
-def fun_l16_n296(x)
- if (x < 1)
- fun_l17_n699(x)
- else
- fun_l17_n172(x)
- end
-end
-
-def fun_l16_n297(x)
- if (x < 1)
- fun_l17_n408(x)
- else
- fun_l17_n314(x)
- end
-end
-
-def fun_l16_n298(x)
- if (x < 1)
- fun_l17_n521(x)
- else
- fun_l17_n940(x)
- end
-end
-
-def fun_l16_n299(x)
- if (x < 1)
- fun_l17_n804(x)
- else
- fun_l17_n503(x)
- end
-end
-
-def fun_l16_n300(x)
- if (x < 1)
- fun_l17_n712(x)
- else
- fun_l17_n227(x)
- end
-end
-
-def fun_l16_n301(x)
- if (x < 1)
- fun_l17_n700(x)
- else
- fun_l17_n102(x)
- end
-end
-
-def fun_l16_n302(x)
- if (x < 1)
- fun_l17_n290(x)
- else
- fun_l17_n212(x)
- end
-end
-
-def fun_l16_n303(x)
- if (x < 1)
- fun_l17_n525(x)
- else
- fun_l17_n273(x)
- end
-end
-
-def fun_l16_n304(x)
- if (x < 1)
- fun_l17_n356(x)
- else
- fun_l17_n359(x)
- end
-end
-
-def fun_l16_n305(x)
- if (x < 1)
- fun_l17_n84(x)
- else
- fun_l17_n207(x)
- end
-end
-
-def fun_l16_n306(x)
- if (x < 1)
- fun_l17_n566(x)
- else
- fun_l17_n945(x)
- end
-end
-
-def fun_l16_n307(x)
- if (x < 1)
- fun_l17_n692(x)
- else
- fun_l17_n326(x)
- end
-end
-
-def fun_l16_n308(x)
- if (x < 1)
- fun_l17_n727(x)
- else
- fun_l17_n205(x)
- end
-end
-
-def fun_l16_n309(x)
- if (x < 1)
- fun_l17_n568(x)
- else
- fun_l17_n386(x)
- end
-end
-
-def fun_l16_n310(x)
- if (x < 1)
- fun_l17_n244(x)
- else
- fun_l17_n472(x)
- end
-end
-
-def fun_l16_n311(x)
- if (x < 1)
- fun_l17_n956(x)
- else
- fun_l17_n546(x)
- end
-end
-
-def fun_l16_n312(x)
- if (x < 1)
- fun_l17_n807(x)
- else
- fun_l17_n924(x)
- end
-end
-
-def fun_l16_n313(x)
- if (x < 1)
- fun_l17_n931(x)
- else
- fun_l17_n962(x)
- end
-end
-
-def fun_l16_n314(x)
- if (x < 1)
- fun_l17_n64(x)
- else
- fun_l17_n178(x)
- end
-end
-
-def fun_l16_n315(x)
- if (x < 1)
- fun_l17_n460(x)
- else
- fun_l17_n438(x)
- end
-end
-
-def fun_l16_n316(x)
- if (x < 1)
- fun_l17_n185(x)
- else
- fun_l17_n25(x)
- end
-end
-
-def fun_l16_n317(x)
- if (x < 1)
- fun_l17_n732(x)
- else
- fun_l17_n460(x)
- end
-end
-
-def fun_l16_n318(x)
- if (x < 1)
- fun_l17_n5(x)
- else
- fun_l17_n947(x)
- end
-end
-
-def fun_l16_n319(x)
- if (x < 1)
- fun_l17_n682(x)
- else
- fun_l17_n644(x)
- end
-end
-
-def fun_l16_n320(x)
- if (x < 1)
- fun_l17_n151(x)
- else
- fun_l17_n578(x)
- end
-end
-
-def fun_l16_n321(x)
- if (x < 1)
- fun_l17_n219(x)
- else
- fun_l17_n4(x)
- end
-end
-
-def fun_l16_n322(x)
- if (x < 1)
- fun_l17_n214(x)
- else
- fun_l17_n594(x)
- end
-end
-
-def fun_l16_n323(x)
- if (x < 1)
- fun_l17_n970(x)
- else
- fun_l17_n275(x)
- end
-end
-
-def fun_l16_n324(x)
- if (x < 1)
- fun_l17_n442(x)
- else
- fun_l17_n377(x)
- end
-end
-
-def fun_l16_n325(x)
- if (x < 1)
- fun_l17_n783(x)
- else
- fun_l17_n731(x)
- end
-end
-
-def fun_l16_n326(x)
- if (x < 1)
- fun_l17_n43(x)
- else
- fun_l17_n884(x)
- end
-end
-
-def fun_l16_n327(x)
- if (x < 1)
- fun_l17_n857(x)
- else
- fun_l17_n593(x)
- end
-end
-
-def fun_l16_n328(x)
- if (x < 1)
- fun_l17_n942(x)
- else
- fun_l17_n772(x)
- end
-end
-
-def fun_l16_n329(x)
- if (x < 1)
- fun_l17_n309(x)
- else
- fun_l17_n508(x)
- end
-end
-
-def fun_l16_n330(x)
- if (x < 1)
- fun_l17_n30(x)
- else
- fun_l17_n165(x)
- end
-end
-
-def fun_l16_n331(x)
- if (x < 1)
- fun_l17_n981(x)
- else
- fun_l17_n355(x)
- end
-end
-
-def fun_l16_n332(x)
- if (x < 1)
- fun_l17_n159(x)
- else
- fun_l17_n228(x)
- end
-end
-
-def fun_l16_n333(x)
- if (x < 1)
- fun_l17_n499(x)
- else
- fun_l17_n565(x)
- end
-end
-
-def fun_l16_n334(x)
- if (x < 1)
- fun_l17_n371(x)
- else
- fun_l17_n856(x)
- end
-end
-
-def fun_l16_n335(x)
- if (x < 1)
- fun_l17_n717(x)
- else
- fun_l17_n229(x)
- end
-end
-
-def fun_l16_n336(x)
- if (x < 1)
- fun_l17_n678(x)
- else
- fun_l17_n236(x)
- end
-end
-
-def fun_l16_n337(x)
- if (x < 1)
- fun_l17_n472(x)
- else
- fun_l17_n566(x)
- end
-end
-
-def fun_l16_n338(x)
- if (x < 1)
- fun_l17_n74(x)
- else
- fun_l17_n247(x)
- end
-end
-
-def fun_l16_n339(x)
- if (x < 1)
- fun_l17_n379(x)
- else
- fun_l17_n443(x)
- end
-end
-
-def fun_l16_n340(x)
- if (x < 1)
- fun_l17_n233(x)
- else
- fun_l17_n79(x)
- end
-end
-
-def fun_l16_n341(x)
- if (x < 1)
- fun_l17_n136(x)
- else
- fun_l17_n900(x)
- end
-end
-
-def fun_l16_n342(x)
- if (x < 1)
- fun_l17_n785(x)
- else
- fun_l17_n63(x)
- end
-end
-
-def fun_l16_n343(x)
- if (x < 1)
- fun_l17_n429(x)
- else
- fun_l17_n111(x)
- end
-end
-
-def fun_l16_n344(x)
- if (x < 1)
- fun_l17_n226(x)
- else
- fun_l17_n137(x)
- end
-end
-
-def fun_l16_n345(x)
- if (x < 1)
- fun_l17_n428(x)
- else
- fun_l17_n674(x)
- end
-end
-
-def fun_l16_n346(x)
- if (x < 1)
- fun_l17_n940(x)
- else
- fun_l17_n987(x)
- end
-end
-
-def fun_l16_n347(x)
- if (x < 1)
- fun_l17_n579(x)
- else
- fun_l17_n220(x)
- end
-end
-
-def fun_l16_n348(x)
- if (x < 1)
- fun_l17_n502(x)
- else
- fun_l17_n530(x)
- end
-end
-
-def fun_l16_n349(x)
- if (x < 1)
- fun_l17_n334(x)
- else
- fun_l17_n955(x)
- end
-end
-
-def fun_l16_n350(x)
- if (x < 1)
- fun_l17_n680(x)
- else
- fun_l17_n41(x)
- end
-end
-
-def fun_l16_n351(x)
- if (x < 1)
- fun_l17_n821(x)
- else
- fun_l17_n750(x)
- end
-end
-
-def fun_l16_n352(x)
- if (x < 1)
- fun_l17_n212(x)
- else
- fun_l17_n537(x)
- end
-end
-
-def fun_l16_n353(x)
- if (x < 1)
- fun_l17_n555(x)
- else
- fun_l17_n834(x)
- end
-end
-
-def fun_l16_n354(x)
- if (x < 1)
- fun_l17_n532(x)
- else
- fun_l17_n940(x)
- end
-end
-
-def fun_l16_n355(x)
- if (x < 1)
- fun_l17_n771(x)
- else
- fun_l17_n915(x)
- end
-end
-
-def fun_l16_n356(x)
- if (x < 1)
- fun_l17_n844(x)
- else
- fun_l17_n235(x)
- end
-end
-
-def fun_l16_n357(x)
- if (x < 1)
- fun_l17_n604(x)
- else
- fun_l17_n241(x)
- end
-end
-
-def fun_l16_n358(x)
- if (x < 1)
- fun_l17_n156(x)
- else
- fun_l17_n832(x)
- end
-end
-
-def fun_l16_n359(x)
- if (x < 1)
- fun_l17_n335(x)
- else
- fun_l17_n115(x)
- end
-end
-
-def fun_l16_n360(x)
- if (x < 1)
- fun_l17_n563(x)
- else
- fun_l17_n779(x)
- end
-end
-
-def fun_l16_n361(x)
- if (x < 1)
- fun_l17_n280(x)
- else
- fun_l17_n946(x)
- end
-end
-
-def fun_l16_n362(x)
- if (x < 1)
- fun_l17_n497(x)
- else
- fun_l17_n390(x)
- end
-end
-
-def fun_l16_n363(x)
- if (x < 1)
- fun_l17_n59(x)
- else
- fun_l17_n178(x)
- end
-end
-
-def fun_l16_n364(x)
- if (x < 1)
- fun_l17_n509(x)
- else
- fun_l17_n963(x)
- end
-end
-
-def fun_l16_n365(x)
- if (x < 1)
- fun_l17_n670(x)
- else
- fun_l17_n455(x)
- end
-end
-
-def fun_l16_n366(x)
- if (x < 1)
- fun_l17_n852(x)
- else
- fun_l17_n590(x)
- end
-end
-
-def fun_l16_n367(x)
- if (x < 1)
- fun_l17_n714(x)
- else
- fun_l17_n98(x)
- end
-end
-
-def fun_l16_n368(x)
- if (x < 1)
- fun_l17_n456(x)
- else
- fun_l17_n754(x)
- end
-end
-
-def fun_l16_n369(x)
- if (x < 1)
- fun_l17_n809(x)
- else
- fun_l17_n38(x)
- end
-end
-
-def fun_l16_n370(x)
- if (x < 1)
- fun_l17_n127(x)
- else
- fun_l17_n395(x)
- end
-end
-
-def fun_l16_n371(x)
- if (x < 1)
- fun_l17_n700(x)
- else
- fun_l17_n175(x)
- end
-end
-
-def fun_l16_n372(x)
- if (x < 1)
- fun_l17_n705(x)
- else
- fun_l17_n598(x)
- end
-end
-
-def fun_l16_n373(x)
- if (x < 1)
- fun_l17_n808(x)
- else
- fun_l17_n253(x)
- end
-end
-
-def fun_l16_n374(x)
- if (x < 1)
- fun_l17_n195(x)
- else
- fun_l17_n47(x)
- end
-end
-
-def fun_l16_n375(x)
- if (x < 1)
- fun_l17_n124(x)
- else
- fun_l17_n438(x)
- end
-end
-
-def fun_l16_n376(x)
- if (x < 1)
- fun_l17_n261(x)
- else
- fun_l17_n317(x)
- end
-end
-
-def fun_l16_n377(x)
- if (x < 1)
- fun_l17_n702(x)
- else
- fun_l17_n67(x)
- end
-end
-
-def fun_l16_n378(x)
- if (x < 1)
- fun_l17_n194(x)
- else
- fun_l17_n990(x)
- end
-end
-
-def fun_l16_n379(x)
- if (x < 1)
- fun_l17_n574(x)
- else
- fun_l17_n379(x)
- end
-end
-
-def fun_l16_n380(x)
- if (x < 1)
- fun_l17_n182(x)
- else
- fun_l17_n902(x)
- end
-end
-
-def fun_l16_n381(x)
- if (x < 1)
- fun_l17_n963(x)
- else
- fun_l17_n627(x)
- end
-end
-
-def fun_l16_n382(x)
- if (x < 1)
- fun_l17_n200(x)
- else
- fun_l17_n889(x)
- end
-end
-
-def fun_l16_n383(x)
- if (x < 1)
- fun_l17_n14(x)
- else
- fun_l17_n422(x)
- end
-end
-
-def fun_l16_n384(x)
- if (x < 1)
- fun_l17_n543(x)
- else
- fun_l17_n940(x)
- end
-end
-
-def fun_l16_n385(x)
- if (x < 1)
- fun_l17_n762(x)
- else
- fun_l17_n493(x)
- end
-end
-
-def fun_l16_n386(x)
- if (x < 1)
- fun_l17_n824(x)
- else
- fun_l17_n963(x)
- end
-end
-
-def fun_l16_n387(x)
- if (x < 1)
- fun_l17_n298(x)
- else
- fun_l17_n831(x)
- end
-end
-
-def fun_l16_n388(x)
- if (x < 1)
- fun_l17_n284(x)
- else
- fun_l17_n784(x)
- end
-end
-
-def fun_l16_n389(x)
- if (x < 1)
- fun_l17_n461(x)
- else
- fun_l17_n684(x)
- end
-end
-
-def fun_l16_n390(x)
- if (x < 1)
- fun_l17_n829(x)
- else
- fun_l17_n788(x)
- end
-end
-
-def fun_l16_n391(x)
- if (x < 1)
- fun_l17_n263(x)
- else
- fun_l17_n21(x)
- end
-end
-
-def fun_l16_n392(x)
- if (x < 1)
- fun_l17_n994(x)
- else
- fun_l17_n646(x)
- end
-end
-
-def fun_l16_n393(x)
- if (x < 1)
- fun_l17_n438(x)
- else
- fun_l17_n84(x)
- end
-end
-
-def fun_l16_n394(x)
- if (x < 1)
- fun_l17_n660(x)
- else
- fun_l17_n269(x)
- end
-end
-
-def fun_l16_n395(x)
- if (x < 1)
- fun_l17_n939(x)
- else
- fun_l17_n676(x)
- end
-end
-
-def fun_l16_n396(x)
- if (x < 1)
- fun_l17_n608(x)
- else
- fun_l17_n483(x)
- end
-end
-
-def fun_l16_n397(x)
- if (x < 1)
- fun_l17_n504(x)
- else
- fun_l17_n499(x)
- end
-end
-
-def fun_l16_n398(x)
- if (x < 1)
- fun_l17_n793(x)
- else
- fun_l17_n489(x)
- end
-end
-
-def fun_l16_n399(x)
- if (x < 1)
- fun_l17_n28(x)
- else
- fun_l17_n158(x)
- end
-end
-
-def fun_l16_n400(x)
- if (x < 1)
- fun_l17_n30(x)
- else
- fun_l17_n21(x)
- end
-end
-
-def fun_l16_n401(x)
- if (x < 1)
- fun_l17_n532(x)
- else
- fun_l17_n730(x)
- end
-end
-
-def fun_l16_n402(x)
- if (x < 1)
- fun_l17_n593(x)
- else
- fun_l17_n4(x)
- end
-end
-
-def fun_l16_n403(x)
- if (x < 1)
- fun_l17_n881(x)
- else
- fun_l17_n956(x)
- end
-end
-
-def fun_l16_n404(x)
- if (x < 1)
- fun_l17_n676(x)
- else
- fun_l17_n625(x)
- end
-end
-
-def fun_l16_n405(x)
- if (x < 1)
- fun_l17_n192(x)
- else
- fun_l17_n301(x)
- end
-end
-
-def fun_l16_n406(x)
- if (x < 1)
- fun_l17_n170(x)
- else
- fun_l17_n970(x)
- end
-end
-
-def fun_l16_n407(x)
- if (x < 1)
- fun_l17_n268(x)
- else
- fun_l17_n765(x)
- end
-end
-
-def fun_l16_n408(x)
- if (x < 1)
- fun_l17_n310(x)
- else
- fun_l17_n578(x)
- end
-end
-
-def fun_l16_n409(x)
- if (x < 1)
- fun_l17_n301(x)
- else
- fun_l17_n870(x)
- end
-end
-
-def fun_l16_n410(x)
- if (x < 1)
- fun_l17_n390(x)
- else
- fun_l17_n769(x)
- end
-end
-
-def fun_l16_n411(x)
- if (x < 1)
- fun_l17_n973(x)
- else
- fun_l17_n545(x)
- end
-end
-
-def fun_l16_n412(x)
- if (x < 1)
- fun_l17_n108(x)
- else
- fun_l17_n731(x)
- end
-end
-
-def fun_l16_n413(x)
- if (x < 1)
- fun_l17_n842(x)
- else
- fun_l17_n106(x)
- end
-end
-
-def fun_l16_n414(x)
- if (x < 1)
- fun_l17_n10(x)
- else
- fun_l17_n421(x)
- end
-end
-
-def fun_l16_n415(x)
- if (x < 1)
- fun_l17_n765(x)
- else
- fun_l17_n584(x)
- end
-end
-
-def fun_l16_n416(x)
- if (x < 1)
- fun_l17_n480(x)
- else
- fun_l17_n494(x)
- end
-end
-
-def fun_l16_n417(x)
- if (x < 1)
- fun_l17_n977(x)
- else
- fun_l17_n66(x)
- end
-end
-
-def fun_l16_n418(x)
- if (x < 1)
- fun_l17_n291(x)
- else
- fun_l17_n161(x)
- end
-end
-
-def fun_l16_n419(x)
- if (x < 1)
- fun_l17_n400(x)
- else
- fun_l17_n99(x)
- end
-end
-
-def fun_l16_n420(x)
- if (x < 1)
- fun_l17_n621(x)
- else
- fun_l17_n778(x)
- end
-end
-
-def fun_l16_n421(x)
- if (x < 1)
- fun_l17_n286(x)
- else
- fun_l17_n784(x)
- end
-end
-
-def fun_l16_n422(x)
- if (x < 1)
- fun_l17_n575(x)
- else
- fun_l17_n606(x)
- end
-end
-
-def fun_l16_n423(x)
- if (x < 1)
- fun_l17_n459(x)
- else
- fun_l17_n198(x)
- end
-end
-
-def fun_l16_n424(x)
- if (x < 1)
- fun_l17_n190(x)
- else
- fun_l17_n597(x)
- end
-end
-
-def fun_l16_n425(x)
- if (x < 1)
- fun_l17_n365(x)
- else
- fun_l17_n73(x)
- end
-end
-
-def fun_l16_n426(x)
- if (x < 1)
- fun_l17_n769(x)
- else
- fun_l17_n658(x)
- end
-end
-
-def fun_l16_n427(x)
- if (x < 1)
- fun_l17_n980(x)
- else
- fun_l17_n594(x)
- end
-end
-
-def fun_l16_n428(x)
- if (x < 1)
- fun_l17_n210(x)
- else
- fun_l17_n33(x)
- end
-end
-
-def fun_l16_n429(x)
- if (x < 1)
- fun_l17_n585(x)
- else
- fun_l17_n997(x)
- end
-end
-
-def fun_l16_n430(x)
- if (x < 1)
- fun_l17_n660(x)
- else
- fun_l17_n883(x)
- end
-end
-
-def fun_l16_n431(x)
- if (x < 1)
- fun_l17_n613(x)
- else
- fun_l17_n7(x)
- end
-end
-
-def fun_l16_n432(x)
- if (x < 1)
- fun_l17_n764(x)
- else
- fun_l17_n150(x)
- end
-end
-
-def fun_l16_n433(x)
- if (x < 1)
- fun_l17_n582(x)
- else
- fun_l17_n197(x)
- end
-end
-
-def fun_l16_n434(x)
- if (x < 1)
- fun_l17_n553(x)
- else
- fun_l17_n107(x)
- end
-end
-
-def fun_l16_n435(x)
- if (x < 1)
- fun_l17_n975(x)
- else
- fun_l17_n865(x)
- end
-end
-
-def fun_l16_n436(x)
- if (x < 1)
- fun_l17_n622(x)
- else
- fun_l17_n351(x)
- end
-end
-
-def fun_l16_n437(x)
- if (x < 1)
- fun_l17_n681(x)
- else
- fun_l17_n472(x)
- end
-end
-
-def fun_l16_n438(x)
- if (x < 1)
- fun_l17_n329(x)
- else
- fun_l17_n54(x)
- end
-end
-
-def fun_l16_n439(x)
- if (x < 1)
- fun_l17_n340(x)
- else
- fun_l17_n567(x)
- end
-end
-
-def fun_l16_n440(x)
- if (x < 1)
- fun_l17_n563(x)
- else
- fun_l17_n134(x)
- end
-end
-
-def fun_l16_n441(x)
- if (x < 1)
- fun_l17_n194(x)
- else
- fun_l17_n986(x)
- end
-end
-
-def fun_l16_n442(x)
- if (x < 1)
- fun_l17_n926(x)
- else
- fun_l17_n35(x)
- end
-end
-
-def fun_l16_n443(x)
- if (x < 1)
- fun_l17_n771(x)
- else
- fun_l17_n383(x)
- end
-end
-
-def fun_l16_n444(x)
- if (x < 1)
- fun_l17_n682(x)
- else
- fun_l17_n1(x)
- end
-end
-
-def fun_l16_n445(x)
- if (x < 1)
- fun_l17_n633(x)
- else
- fun_l17_n757(x)
- end
-end
-
-def fun_l16_n446(x)
- if (x < 1)
- fun_l17_n95(x)
- else
- fun_l17_n256(x)
- end
-end
-
-def fun_l16_n447(x)
- if (x < 1)
- fun_l17_n183(x)
- else
- fun_l17_n214(x)
- end
-end
-
-def fun_l16_n448(x)
- if (x < 1)
- fun_l17_n140(x)
- else
- fun_l17_n371(x)
- end
-end
-
-def fun_l16_n449(x)
- if (x < 1)
- fun_l17_n188(x)
- else
- fun_l17_n898(x)
- end
-end
-
-def fun_l16_n450(x)
- if (x < 1)
- fun_l17_n710(x)
- else
- fun_l17_n512(x)
- end
-end
-
-def fun_l16_n451(x)
- if (x < 1)
- fun_l17_n796(x)
- else
- fun_l17_n56(x)
- end
-end
-
-def fun_l16_n452(x)
- if (x < 1)
- fun_l17_n124(x)
- else
- fun_l17_n304(x)
- end
-end
-
-def fun_l16_n453(x)
- if (x < 1)
- fun_l17_n150(x)
- else
- fun_l17_n503(x)
- end
-end
-
-def fun_l16_n454(x)
- if (x < 1)
- fun_l17_n369(x)
- else
- fun_l17_n623(x)
- end
-end
-
-def fun_l16_n455(x)
- if (x < 1)
- fun_l17_n514(x)
- else
- fun_l17_n672(x)
- end
-end
-
-def fun_l16_n456(x)
- if (x < 1)
- fun_l17_n80(x)
- else
- fun_l17_n332(x)
- end
-end
-
-def fun_l16_n457(x)
- if (x < 1)
- fun_l17_n80(x)
- else
- fun_l17_n32(x)
- end
-end
-
-def fun_l16_n458(x)
- if (x < 1)
- fun_l17_n310(x)
- else
- fun_l17_n90(x)
- end
-end
-
-def fun_l16_n459(x)
- if (x < 1)
- fun_l17_n730(x)
- else
- fun_l17_n170(x)
- end
-end
-
-def fun_l16_n460(x)
- if (x < 1)
- fun_l17_n908(x)
- else
- fun_l17_n865(x)
- end
-end
-
-def fun_l16_n461(x)
- if (x < 1)
- fun_l17_n399(x)
- else
- fun_l17_n536(x)
- end
-end
-
-def fun_l16_n462(x)
- if (x < 1)
- fun_l17_n123(x)
- else
- fun_l17_n216(x)
- end
-end
-
-def fun_l16_n463(x)
- if (x < 1)
- fun_l17_n577(x)
- else
- fun_l17_n757(x)
- end
-end
-
-def fun_l16_n464(x)
- if (x < 1)
- fun_l17_n750(x)
- else
- fun_l17_n916(x)
- end
-end
-
-def fun_l16_n465(x)
- if (x < 1)
- fun_l17_n621(x)
- else
- fun_l17_n386(x)
- end
-end
-
-def fun_l16_n466(x)
- if (x < 1)
- fun_l17_n904(x)
- else
- fun_l17_n732(x)
- end
-end
-
-def fun_l16_n467(x)
- if (x <