passenger 5.1.4 → 5.1.5
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of passenger might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.editorconfig +9 -0
- data/CHANGELOG +9 -0
- data/build/cxx_tests.rb +11 -1
- data/build/documentation.rb +0 -32
- data/build/support/cxx_dependency_map.rb +602 -2
- data/build/test_basics.rb +3 -3
- data/dev/boost-patches/0001-Patch-boost-thread-so-that-oxt-thread-can-use-it.patch +48 -0
- data/dev/boost-patches/0002-Make-boost-thread_interrupted-derive-from-oxt-tracab.patch +33 -0
- data/dev/boost-patches/0003-Disable-a-Clang-pragma-to-prevent-warnings-on-OS-X.patch +25 -0
- data/dev/ci/README.md +121 -0
- data/dev/ci/lib/functions.sh +129 -0
- data/dev/ci/lib/set-container-envvars.sh +46 -0
- data/dev/ci/lib/setup-container.sh +43 -0
- data/dev/ci/run-tests-natively +24 -0
- data/dev/ci/run-tests-with-docker +42 -0
- data/dev/ci/scripts/debug-console-wrapper.sh +27 -0
- data/dev/ci/scripts/docker-entrypoint-stage2.sh +17 -0
- data/dev/ci/scripts/docker-entrypoint.sh +17 -0
- data/dev/ci/scripts/inituidgid +17 -0
- data/dev/ci/scripts/run-tests-natively-stage2.sh +17 -0
- data/dev/ci/scripts/setup-host-natively.sh +11 -0
- data/dev/ci/setup-host +50 -0
- data/dev/ci/tests/apache2/run +6 -0
- data/dev/ci/tests/apache2/setup +4 -0
- data/dev/ci/tests/cxx/run +9 -0
- data/dev/ci/tests/cxx/setup +4 -0
- data/dev/ci/tests/nginx-dynamic/run +20 -0
- data/dev/ci/tests/nginx-dynamic/setup +4 -0
- data/dev/ci/tests/nginx/run +5 -0
- data/dev/ci/tests/nginx/setup +4 -0
- data/dev/ci/tests/nodejs/run +4 -0
- data/dev/ci/tests/nodejs/setup +4 -0
- data/dev/ci/tests/ruby/run +4 -0
- data/dev/ci/tests/ruby/setup +4 -0
- data/dev/ci/tests/source-packaging/run +4 -0
- data/dev/ci/tests/source-packaging/setup +4 -0
- data/dev/ci/tests/standalone/run +4 -0
- data/dev/ci/tests/standalone/setup +4 -0
- data/dev/copy_boost_headers +8 -2
- data/src/agent/Core/ApiServer.h +11 -5
- data/src/agent/Core/Controller.h +12 -46
- data/src/agent/Core/Controller/CheckoutSession.cpp +1 -1
- data/src/agent/Core/Controller/Config.h +369 -0
- data/src/agent/Core/Controller/ForwardResponse.cpp +4 -4
- data/src/agent/Core/Controller/Hooks.cpp +15 -3
- data/src/agent/Core/Controller/Implementation.cpp +1 -1
- data/src/agent/Core/Controller/InitRequest.cpp +28 -39
- data/src/agent/Core/Controller/InitializationAndShutdown.cpp +25 -60
- data/src/agent/Core/Controller/InternalUtils.cpp +0 -16
- data/src/agent/Core/Controller/Miscellaneous.cpp +0 -17
- data/src/agent/Core/Controller/Request.h +2 -0
- data/src/agent/Core/Controller/SendRequest.cpp +4 -4
- data/src/agent/Core/Controller/{StateInspectionAndConfiguration.cpp → StateInspection.cpp} +0 -22
- data/src/agent/Core/Controller/TurboCaching.h +11 -10
- data/src/agent/Core/CoreMain.cpp +16 -6
- data/src/agent/Core/ResponseCache.h +3 -3
- data/src/agent/Core/SpawningKit/SmartSpawner.h +9 -3
- data/src/agent/Core/SpawningKit/Spawner.h +7 -3
- data/src/agent/UstRouter/ApiServer.h +3 -2
- data/src/agent/UstRouter/Controller.h +66 -32
- data/src/agent/UstRouter/UstRouterMain.cpp +10 -2
- data/src/agent/Watchdog/ApiServer.h +3 -2
- data/src/agent/Watchdog/WatchdogMain.cpp +3 -1
- data/src/apache2_module/ConfigurationCommands.cpp +1 -1
- data/src/cxx_supportlib/ConfigKit/Common.h +125 -0
- data/src/cxx_supportlib/ConfigKit/ConfigKit.h +34 -0
- data/src/cxx_supportlib/ConfigKit/README.md +895 -0
- data/src/cxx_supportlib/ConfigKit/Schema.h +331 -0
- data/src/cxx_supportlib/ConfigKit/Store.h +385 -0
- data/src/cxx_supportlib/ConfigKit/TableTranslator.h +185 -0
- data/src/cxx_supportlib/ConfigKit/Utils.h +141 -0
- data/src/cxx_supportlib/ConfigKit/VariantMapUtils.h +81 -0
- data/src/cxx_supportlib/Constants.h +1 -1
- data/src/cxx_supportlib/Crypto.cpp +2 -2
- data/src/cxx_supportlib/Logging.h +0 -35
- data/src/cxx_supportlib/ServerKit/HttpServer.h +35 -16
- data/src/cxx_supportlib/ServerKit/Server.h +65 -25
- data/src/cxx_supportlib/oxt/macros.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/replace.hpp +0 -2
- data/src/cxx_supportlib/vendor-modified/boost/array.hpp +53 -42
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_template.hpp +11 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +13 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_x86.hpp +23 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_msvc_x86.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/interlocked.hpp +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_emulated.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_alpha.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_atomic.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_sparc.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_sync.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86_dcas.hpp +28 -17
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_linux_arm.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_arm.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_x86.hpp +9 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/platform.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/bind/arg.hpp +10 -3
- data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +90 -18
- data/src/cxx_supportlib/vendor-modified/boost/cerrno.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/chrono/duration.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +8 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +35 -6
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/comeau.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/compaq_cxx.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +19 -4
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/greenhills.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/hp_acc.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +29 -7
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/kai.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pgi.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sgi_mipspro.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +10 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +44 -16
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/cygwin.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/linux.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/select_compiler_config.hpp +21 -21
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +42 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcomo.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +40 -7
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +39 -6
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/modena.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/msl.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/roguewave.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/sgi.hpp +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/stlport.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/vacpp.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/suffix.hpp +33 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +0 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +0 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +34 -27
- data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +62 -26
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/addressof.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/construct_in_place.hpp +39 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +49 -32
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +175 -7
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +223 -98
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_sorted.hpp +57 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +88 -41
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +7 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mutex.hpp +4 -9
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +45 -18
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +205 -26
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +290 -181
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_init.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/variadic_templates_tools.hpp +24 -19
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +38 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +320 -46
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +91 -18
- data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +23 -19
- data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +491 -120
- data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +0 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/node_handle.hpp +399 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/deque.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/flat_map.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/flat_set.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/list.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/map.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/set.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/slist.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/small_vector.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/stable_vector.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/string.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/vector.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +101 -20
- data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +19 -14
- data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +117 -59
- data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +8 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +33 -28
- data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +414 -70
- data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator_fwd.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +134 -117
- data/src/cxx_supportlib/vendor-modified/boost/core/addressof.hpp +202 -99
- data/src/cxx_supportlib/vendor-modified/boost/core/demangle.hpp +8 -10
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +217 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/scoped_enum.hpp +29 -27
- data/src/cxx_supportlib/vendor-modified/boost/current_function.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/c_time.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/date_time/constrained_value.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_duration.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_duration_types.hpp +6 -5
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_facet.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_names_put.hpp +8 -7
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_calendar.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_date.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_day.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_day_of_year.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_duration.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_duration_types.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_facet.hpp +27 -7
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_month.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_serialize.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_weekday.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_year.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian_calendar.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/local_date_time.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/posix_time_zone.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/period.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/date_duration_operators.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_config.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_duration.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/ptime.hpp +6 -5
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_parsers.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_duration.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_facet.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_zone_base.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/year_month_day.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/detail/iterator.hpp +13 -0
- data/src/cxx_supportlib/vendor-modified/boost/detail/lcast_precision.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/detail/workaround.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/error_info_impl.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/shared_ptr.hpp +17 -0
- data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +25 -3
- data/src/cxx_supportlib/vendor-modified/boost/exception/get_error_info.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +114 -1
- data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +116 -142
- data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +57 -69
- data/src/cxx_supportlib/vendor-modified/boost/functional/hash/detail/hash_float.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/functional/hash/extensions.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/functional/hash/hash.hpp +27 -13
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/any_hook.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set.hpp +99 -12
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set_hook.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +35 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +37 -6
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set.hpp +95 -8
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set_hook.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +209 -72
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +86 -20
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +11 -11
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/algo_type.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +58 -45
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/avltree_node.hpp +27 -26
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/bstree_algorithms_base.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/config_begin.hpp +8 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/default_header_holder.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +27 -26
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/equal_to_value.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/exception_disposer.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +9 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/has_member_function_callable_with.hpp +83 -57
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +30 -30
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +9 -8
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iiterator.hpp +8 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iterator.hpp +16 -15
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/key_nodeptr_comp.hpp +70 -44
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_iterator.hpp +22 -21
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_node.hpp +7 -6
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/parent_from_member.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/rbtree_node.hpp +29 -28
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/reverse_iterator.hpp +33 -12
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/size_holder.hpp +19 -12
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_iterator.hpp +21 -20
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_node.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/to_raw_pointer.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/transform_iterator.hpp +23 -22
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_iterator.hpp +23 -22
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_node.hpp +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +103 -29
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +295 -211
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +20 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/list_hook.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/member_value_traits.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/options.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/parent_from_member.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/priority_compare.hpp +22 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree.hpp +36 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +43 -13
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/set.hpp +95 -8
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/set_hook.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sg_set.hpp +96 -12
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +102 -5
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +48 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +20 -11
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist_hook.hpp +9 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set.hpp +95 -8
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree.hpp +36 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap.hpp +167 -23
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +28 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_set.hpp +100 -46
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/trivial_value_traits.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +37 -27
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +30 -14
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +35 -36
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +6 -28
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +20 -5
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/posix_api.cpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex.cpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/once.cpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +11 -7
- data/src/cxx_supportlib/vendor-modified/boost/math/policies/policy.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/fpclassify.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/math_fwd.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/math/tools/config.hpp +10 -2
- data/src/cxx_supportlib/vendor-modified/boost/move/adl_move_swap.hpp +40 -7
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +67 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +63 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +2437 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/basic_op.hpp +121 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/insertion_sort.hpp +127 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge.hpp +637 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge_sort.hpp +139 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/move.hpp +155 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algorithm.hpp +1 -116
- data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +14 -13
- data/src/cxx_supportlib/vendor-modified/boost/move/default_delete.hpp +17 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/config_begin.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/destruct_n.hpp +67 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/fwd_macros.hpp +227 -32
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_traits.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +30 -9
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils_core.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/move_helpers.hpp +84 -80
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/placement_new.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/reverse_iterator.hpp +171 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +14 -20
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/unique_ptr_meta_utils.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +14 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/iterator.hpp +32 -33
- data/src/cxx_supportlib/vendor-modified/boost/move/make_unique.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/unique_ptr.hpp +49 -49
- data/src/cxx_supportlib/vendor-modified/boost/move/utility.hpp +8 -7
- data/src/cxx_supportlib/vendor-modified/boost/move/utility_core.hpp +17 -16
- data/src/cxx_supportlib/vendor-modified/boost/mpl/print.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/none.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/none_t.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/operators.hpp +197 -255
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +1059 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_aligned_storage.hpp +75 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_config.hpp +116 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_factory_support.hpp +36 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +253 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_relops.hpp +196 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_swap.hpp +117 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +372 -554
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional_fwd.hpp +12 -1
- data/src/cxx_supportlib/vendor-modified/boost/pool/detail/mutex.hpp +15 -7
- data/src/cxx_supportlib/vendor-modified/boost/pool/pool_alloc.hpp +24 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/intel.h +9 -2
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/visualc.h +15 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd.h +16 -4
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86.h +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86_amd.h +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86_amd/versions.h +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/cygwin.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/predef/version_number.h +20 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/cat.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/config/config.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/binary_transform.hpp +5 -6
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/to_list_msvc.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/to_list.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/const_iterator.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/range/size_type.hpp +0 -5
- data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +16 -16
- data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/pending/unicode_iterator.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +102 -87
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +45 -21
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cpp_regex_traits.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/fileiter.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/instances.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +14 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/mem_block_cache.hpp +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +5 -14
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +116 -13
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_recursive.hpp +34 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +1004 -159
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/bad_weak_ptr.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +4 -58
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_clang.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +0 -8
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_sync.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_noexcept.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/enable_shared_from_this.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +28 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ref_counter.hpp +187 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_array.hpp +52 -144
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_object.hpp +120 -450
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_array.hpp +7 -6
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +70 -8
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/weak_ptr.hpp +6 -5
- data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +9 -8
- data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/thread/barrier.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/completion_latch.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/queue_views.hpp +0 -11
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_timed_queue.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/config.hpp +11 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +11 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/exceptions.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/executor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/generic_executor_ref.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/loop_executor.hpp +22 -18
- data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +163 -55
- data/src/cxx_supportlib/vendor-modified/boost/thread/futures/launch.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/futures/wait_for_all.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/lock_types.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/thread/locks.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable.hpp +6 -7
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable_fwd.hpp +17 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/shared_mutex.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_data.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/timespec.hpp +29 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/scoped_thread.hpp +23 -18
- data/src/cxx_supportlib/vendor-modified/boost/thread/synchronized_value.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/thread/thread_functors.hpp +19 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/thread_guard.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/thread/user_scheduler.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_index.hpp +265 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_index/stl_type_index.hpp +272 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_index/type_index_facade.hpp +300 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_reference.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/aligned_storage.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/common_type.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/common_arithmetic_type.hpp +9 -3
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/mp_defer.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/extent.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_assign.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_constructor.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_destructor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_assign.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_copy.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_destructor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_assign.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_constructor.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_abstract.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_array.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_assignable.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_const.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_default_constructible.hpp +21 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_destructible.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_assignable.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_constructible.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_pod.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_rvalue_reference.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_virtual_base_of.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_volatile.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_void.hpp +52 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/rank.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_all_extents.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_const.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_cv.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_extent.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_pointer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_volatile.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/type_with_alignment.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fwd.hpp +40 -6
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +4986 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/map.hpp +107 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/set.hpp +105 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +1814 -1255
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +41 -45
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +1498 -1161
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +40 -44
- data/src/cxx_supportlib/vendor-modified/boost/utility.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/utility/base_from_member.hpp +7 -6
- data/src/cxx_supportlib/vendor-modified/boost/utility/compare_pointees.hpp +10 -2
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_ref.hpp +39 -22
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +690 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_view_fwd.hpp +39 -0
- data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
- data/src/helper-scripts/crash-watch.rb +3 -0
- data/src/ruby_supportlib/phusion_passenger.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +1 -0
- data/src/ruby_supportlib/phusion_passenger/packaging.rb +2 -12
- metadata +77 -38
- data/dev/ci/inituidgid +0 -24
- data/dev/ci/run_jenkins.sh +0 -70
- data/dev/ci/run_travis.sh +0 -314
- data/doc/Design and Architecture.html +0 -2421
- data/doc/Design and Architecture.txt +0 -511
- data/doc/Security of user switching support.html +0 -1833
- data/doc/Users guide Apache.html +0 -3101
- data/doc/Users guide Apache.idmap.txt +0 -451
- data/doc/Users guide Apache.txt +0 -534
- data/doc/Users guide Nginx.html +0 -3026
- data/doc/Users guide Nginx.idmap.txt +0 -431
- data/doc/Users guide Nginx.txt +0 -451
- data/doc/Users guide Standalone.html +0 -2092
- data/doc/Users guide Standalone.idmap.txt +0 -137
- data/doc/Users guide Standalone.txt +0 -81
- data/doc/Users guide.html +0 -1606
- data/doc/Users guide.txt +0 -8
- data/src/cxx_supportlib/vendor-modified/boost/align/align.hpp +0 -20
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/address.hpp +0 -29
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/align.hpp +0 -40
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/align_cxx11.hpp +0 -22
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/is_alignment.hpp +0 -29
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/hash_table.hpp +0 -383
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_allocator.hpp +0 -318
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_count_impl.hpp +0 -67
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_traits.hpp +0 -60
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_utility.hpp +0 -214
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_if_array.hpp +0 -34
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/allocate.hpp +0 -1128
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/buckets.hpp +0 -928
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/equivalent.hpp +0 -686
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/extract_key.hpp +0 -188
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/table.hpp +0 -873
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/unique.hpp +0 -628
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/util.hpp +0 -266
data/doc/Users guide Apache.html
DELETED
@@ -1,3101 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html lang="en">
|
3
|
-
<head>
|
4
|
-
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
5
|
-
<meta name="generator" content="AsciiDoc 8.6.7">
|
6
|
-
<title>Phusion Passenger users guide, Apache version</title>
|
7
|
-
<style type="text/css">
|
8
|
-
/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
|
9
|
-
|
10
|
-
/* Default font. */
|
11
|
-
body {
|
12
|
-
font-family: Georgia,serif;
|
13
|
-
}
|
14
|
-
|
15
|
-
/* Title font. */
|
16
|
-
h1, h2, h3, h4, h5, h6,
|
17
|
-
div.title, caption.title,
|
18
|
-
thead, p.table.header,
|
19
|
-
#toctitle,
|
20
|
-
#author, #revnumber, #revdate, #revremark,
|
21
|
-
#footer {
|
22
|
-
font-family: Arial,Helvetica,sans-serif;
|
23
|
-
}
|
24
|
-
|
25
|
-
body {
|
26
|
-
margin: 1em 5% 1em 5%;
|
27
|
-
}
|
28
|
-
|
29
|
-
a {
|
30
|
-
color: blue;
|
31
|
-
text-decoration: underline;
|
32
|
-
}
|
33
|
-
a:visited {
|
34
|
-
color: fuchsia;
|
35
|
-
}
|
36
|
-
|
37
|
-
em {
|
38
|
-
font-style: italic;
|
39
|
-
color: navy;
|
40
|
-
}
|
41
|
-
|
42
|
-
strong {
|
43
|
-
font-weight: bold;
|
44
|
-
color: #083194;
|
45
|
-
}
|
46
|
-
|
47
|
-
h1, h2, h3, h4, h5, h6 {
|
48
|
-
color: #527bbd;
|
49
|
-
margin-top: 1.2em;
|
50
|
-
margin-bottom: 0.5em;
|
51
|
-
line-height: 1.3;
|
52
|
-
}
|
53
|
-
|
54
|
-
h1, h2, h3 {
|
55
|
-
border-bottom: 2px solid silver;
|
56
|
-
}
|
57
|
-
h2 {
|
58
|
-
padding-top: 0.5em;
|
59
|
-
}
|
60
|
-
h3 {
|
61
|
-
float: left;
|
62
|
-
}
|
63
|
-
h3 + * {
|
64
|
-
clear: left;
|
65
|
-
}
|
66
|
-
h5 {
|
67
|
-
font-size: 1.0em;
|
68
|
-
}
|
69
|
-
|
70
|
-
div.sectionbody {
|
71
|
-
margin-left: 0;
|
72
|
-
}
|
73
|
-
|
74
|
-
hr {
|
75
|
-
border: 1px solid silver;
|
76
|
-
}
|
77
|
-
|
78
|
-
p {
|
79
|
-
margin-top: 0.5em;
|
80
|
-
margin-bottom: 0.5em;
|
81
|
-
}
|
82
|
-
|
83
|
-
ul, ol, li > p {
|
84
|
-
margin-top: 0;
|
85
|
-
}
|
86
|
-
ul > li { color: #aaa; }
|
87
|
-
ul > li > * { color: black; }
|
88
|
-
|
89
|
-
pre {
|
90
|
-
padding: 0;
|
91
|
-
margin: 0;
|
92
|
-
overflow: auto;
|
93
|
-
}
|
94
|
-
|
95
|
-
#author {
|
96
|
-
color: #527bbd;
|
97
|
-
font-weight: bold;
|
98
|
-
font-size: 1.1em;
|
99
|
-
}
|
100
|
-
#email {
|
101
|
-
}
|
102
|
-
#revnumber, #revdate, #revremark {
|
103
|
-
}
|
104
|
-
|
105
|
-
#footer {
|
106
|
-
font-size: small;
|
107
|
-
border-top: 2px solid silver;
|
108
|
-
padding-top: 0.5em;
|
109
|
-
margin-top: 4.0em;
|
110
|
-
}
|
111
|
-
#footer-text {
|
112
|
-
float: left;
|
113
|
-
padding-bottom: 0.5em;
|
114
|
-
}
|
115
|
-
#footer-badges {
|
116
|
-
float: right;
|
117
|
-
padding-bottom: 0.5em;
|
118
|
-
}
|
119
|
-
|
120
|
-
#preamble {
|
121
|
-
margin-top: 1.5em;
|
122
|
-
margin-bottom: 1.5em;
|
123
|
-
}
|
124
|
-
div.imageblock, div.exampleblock, div.verseblock,
|
125
|
-
div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
|
126
|
-
div.admonitionblock {
|
127
|
-
margin-top: 1.0em;
|
128
|
-
margin-bottom: 1.5em;
|
129
|
-
}
|
130
|
-
div.admonitionblock {
|
131
|
-
margin-top: 2.0em;
|
132
|
-
margin-bottom: 2.0em;
|
133
|
-
margin-right: 10%;
|
134
|
-
color: #606060;
|
135
|
-
}
|
136
|
-
|
137
|
-
div.content { /* Block element content. */
|
138
|
-
padding: 0;
|
139
|
-
}
|
140
|
-
|
141
|
-
/* Block element titles. */
|
142
|
-
div.title, caption.title {
|
143
|
-
color: #527bbd;
|
144
|
-
font-weight: bold;
|
145
|
-
text-align: left;
|
146
|
-
margin-top: 1.0em;
|
147
|
-
margin-bottom: 0.5em;
|
148
|
-
}
|
149
|
-
div.title + * {
|
150
|
-
margin-top: 0;
|
151
|
-
}
|
152
|
-
|
153
|
-
td div.title:first-child {
|
154
|
-
margin-top: 0.0em;
|
155
|
-
}
|
156
|
-
div.content div.title:first-child {
|
157
|
-
margin-top: 0.0em;
|
158
|
-
}
|
159
|
-
div.content + div.title {
|
160
|
-
margin-top: 0.0em;
|
161
|
-
}
|
162
|
-
|
163
|
-
div.sidebarblock > div.content {
|
164
|
-
background: #ffffee;
|
165
|
-
border: 1px solid #dddddd;
|
166
|
-
border-left: 4px solid #f0f0f0;
|
167
|
-
padding: 0.5em;
|
168
|
-
}
|
169
|
-
|
170
|
-
div.listingblock > div.content {
|
171
|
-
border: 1px solid #dddddd;
|
172
|
-
border-left: 5px solid #f0f0f0;
|
173
|
-
background: #f8f8f8;
|
174
|
-
padding: 0.5em;
|
175
|
-
}
|
176
|
-
|
177
|
-
div.quoteblock, div.verseblock {
|
178
|
-
padding-left: 1.0em;
|
179
|
-
margin-left: 1.0em;
|
180
|
-
margin-right: 10%;
|
181
|
-
border-left: 5px solid #f0f0f0;
|
182
|
-
color: #777777;
|
183
|
-
}
|
184
|
-
|
185
|
-
div.quoteblock > div.attribution {
|
186
|
-
padding-top: 0.5em;
|
187
|
-
text-align: right;
|
188
|
-
}
|
189
|
-
|
190
|
-
div.verseblock > pre.content {
|
191
|
-
font-family: inherit;
|
192
|
-
font-size: inherit;
|
193
|
-
}
|
194
|
-
div.verseblock > div.attribution {
|
195
|
-
padding-top: 0.75em;
|
196
|
-
text-align: left;
|
197
|
-
}
|
198
|
-
/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
|
199
|
-
div.verseblock + div.attribution {
|
200
|
-
text-align: left;
|
201
|
-
}
|
202
|
-
|
203
|
-
div.admonitionblock .icon {
|
204
|
-
vertical-align: top;
|
205
|
-
font-size: 1.1em;
|
206
|
-
font-weight: bold;
|
207
|
-
text-decoration: underline;
|
208
|
-
color: #527bbd;
|
209
|
-
padding-right: 0.5em;
|
210
|
-
}
|
211
|
-
div.admonitionblock td.content {
|
212
|
-
padding-left: 0.5em;
|
213
|
-
border-left: 3px solid #dddddd;
|
214
|
-
}
|
215
|
-
|
216
|
-
div.exampleblock > div.content {
|
217
|
-
border-left: 3px solid #dddddd;
|
218
|
-
padding-left: 0.5em;
|
219
|
-
}
|
220
|
-
|
221
|
-
div.imageblock div.content { padding-left: 0; }
|
222
|
-
span.image img { border-style: none; }
|
223
|
-
a.image:visited { color: white; }
|
224
|
-
|
225
|
-
dl {
|
226
|
-
margin-top: 0.8em;
|
227
|
-
margin-bottom: 0.8em;
|
228
|
-
}
|
229
|
-
dt {
|
230
|
-
margin-top: 0.5em;
|
231
|
-
margin-bottom: 0;
|
232
|
-
font-style: normal;
|
233
|
-
color: navy;
|
234
|
-
}
|
235
|
-
dd > *:first-child {
|
236
|
-
margin-top: 0.1em;
|
237
|
-
}
|
238
|
-
|
239
|
-
ul, ol {
|
240
|
-
list-style-position: outside;
|
241
|
-
}
|
242
|
-
ol.arabic {
|
243
|
-
list-style-type: decimal;
|
244
|
-
}
|
245
|
-
ol.loweralpha {
|
246
|
-
list-style-type: lower-alpha;
|
247
|
-
}
|
248
|
-
ol.upperalpha {
|
249
|
-
list-style-type: upper-alpha;
|
250
|
-
}
|
251
|
-
ol.lowerroman {
|
252
|
-
list-style-type: lower-roman;
|
253
|
-
}
|
254
|
-
ol.upperroman {
|
255
|
-
list-style-type: upper-roman;
|
256
|
-
}
|
257
|
-
|
258
|
-
div.compact ul, div.compact ol,
|
259
|
-
div.compact p, div.compact p,
|
260
|
-
div.compact div, div.compact div {
|
261
|
-
margin-top: 0.1em;
|
262
|
-
margin-bottom: 0.1em;
|
263
|
-
}
|
264
|
-
|
265
|
-
tfoot {
|
266
|
-
font-weight: bold;
|
267
|
-
}
|
268
|
-
td > div.verse {
|
269
|
-
white-space: pre;
|
270
|
-
}
|
271
|
-
|
272
|
-
div.hdlist {
|
273
|
-
margin-top: 0.8em;
|
274
|
-
margin-bottom: 0.8em;
|
275
|
-
}
|
276
|
-
div.hdlist tr {
|
277
|
-
padding-bottom: 15px;
|
278
|
-
}
|
279
|
-
dt.hdlist1.strong, td.hdlist1.strong {
|
280
|
-
font-weight: bold;
|
281
|
-
}
|
282
|
-
td.hdlist1 {
|
283
|
-
vertical-align: top;
|
284
|
-
font-style: normal;
|
285
|
-
padding-right: 0.8em;
|
286
|
-
color: navy;
|
287
|
-
}
|
288
|
-
td.hdlist2 {
|
289
|
-
vertical-align: top;
|
290
|
-
}
|
291
|
-
div.hdlist.compact tr {
|
292
|
-
margin: 0;
|
293
|
-
padding-bottom: 0;
|
294
|
-
}
|
295
|
-
|
296
|
-
.comment {
|
297
|
-
background: yellow;
|
298
|
-
}
|
299
|
-
|
300
|
-
.footnote, .footnoteref {
|
301
|
-
font-size: 0.8em;
|
302
|
-
}
|
303
|
-
|
304
|
-
span.footnote, span.footnoteref {
|
305
|
-
vertical-align: super;
|
306
|
-
}
|
307
|
-
|
308
|
-
#footnotes {
|
309
|
-
margin: 20px 0 20px 0;
|
310
|
-
padding: 7px 0 0 0;
|
311
|
-
}
|
312
|
-
|
313
|
-
#footnotes div.footnote {
|
314
|
-
margin: 0 0 5px 0;
|
315
|
-
}
|
316
|
-
|
317
|
-
#footnotes hr {
|
318
|
-
border: none;
|
319
|
-
border-top: 1px solid silver;
|
320
|
-
height: 1px;
|
321
|
-
text-align: left;
|
322
|
-
margin-left: 0;
|
323
|
-
width: 20%;
|
324
|
-
min-width: 100px;
|
325
|
-
}
|
326
|
-
|
327
|
-
div.colist td {
|
328
|
-
padding-right: 0.5em;
|
329
|
-
padding-bottom: 0.3em;
|
330
|
-
vertical-align: top;
|
331
|
-
}
|
332
|
-
div.colist td img {
|
333
|
-
margin-top: 0.3em;
|
334
|
-
}
|
335
|
-
|
336
|
-
@media print {
|
337
|
-
#footer-badges { display: none; }
|
338
|
-
}
|
339
|
-
|
340
|
-
#toc {
|
341
|
-
margin-bottom: 2.5em;
|
342
|
-
}
|
343
|
-
|
344
|
-
#toctitle {
|
345
|
-
color: #527bbd;
|
346
|
-
font-size: 1.1em;
|
347
|
-
font-weight: bold;
|
348
|
-
margin-top: 1.0em;
|
349
|
-
margin-bottom: 0.1em;
|
350
|
-
}
|
351
|
-
|
352
|
-
div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
|
353
|
-
margin-top: 0;
|
354
|
-
margin-bottom: 0;
|
355
|
-
}
|
356
|
-
div.toclevel2 {
|
357
|
-
margin-left: 2em;
|
358
|
-
font-size: 0.9em;
|
359
|
-
}
|
360
|
-
div.toclevel3 {
|
361
|
-
margin-left: 4em;
|
362
|
-
font-size: 0.9em;
|
363
|
-
}
|
364
|
-
div.toclevel4 {
|
365
|
-
margin-left: 6em;
|
366
|
-
font-size: 0.9em;
|
367
|
-
}
|
368
|
-
|
369
|
-
span.aqua { color: aqua; }
|
370
|
-
span.black { color: black; }
|
371
|
-
span.blue { color: blue; }
|
372
|
-
span.fuchsia { color: fuchsia; }
|
373
|
-
span.gray { color: gray; }
|
374
|
-
span.green { color: green; }
|
375
|
-
span.lime { color: lime; }
|
376
|
-
span.maroon { color: maroon; }
|
377
|
-
span.navy { color: navy; }
|
378
|
-
span.olive { color: olive; }
|
379
|
-
span.purple { color: purple; }
|
380
|
-
span.red { color: red; }
|
381
|
-
span.silver { color: silver; }
|
382
|
-
span.teal { color: teal; }
|
383
|
-
span.white { color: white; }
|
384
|
-
span.yellow { color: yellow; }
|
385
|
-
|
386
|
-
span.aqua-background { background: aqua; }
|
387
|
-
span.black-background { background: black; }
|
388
|
-
span.blue-background { background: blue; }
|
389
|
-
span.fuchsia-background { background: fuchsia; }
|
390
|
-
span.gray-background { background: gray; }
|
391
|
-
span.green-background { background: green; }
|
392
|
-
span.lime-background { background: lime; }
|
393
|
-
span.maroon-background { background: maroon; }
|
394
|
-
span.navy-background { background: navy; }
|
395
|
-
span.olive-background { background: olive; }
|
396
|
-
span.purple-background { background: purple; }
|
397
|
-
span.red-background { background: red; }
|
398
|
-
span.silver-background { background: silver; }
|
399
|
-
span.teal-background { background: teal; }
|
400
|
-
span.white-background { background: white; }
|
401
|
-
span.yellow-background { background: yellow; }
|
402
|
-
|
403
|
-
span.big { font-size: 2em; }
|
404
|
-
span.small { font-size: 0.6em; }
|
405
|
-
|
406
|
-
span.underline { text-decoration: underline; }
|
407
|
-
span.overline { text-decoration: overline; }
|
408
|
-
span.line-through { text-decoration: line-through; }
|
409
|
-
|
410
|
-
|
411
|
-
/*
|
412
|
-
* xhtml11 specific
|
413
|
-
*
|
414
|
-
* */
|
415
|
-
|
416
|
-
tt {
|
417
|
-
font-family: monospace;
|
418
|
-
font-size: inherit;
|
419
|
-
color: navy;
|
420
|
-
}
|
421
|
-
|
422
|
-
div.tableblock {
|
423
|
-
margin-top: 1.0em;
|
424
|
-
margin-bottom: 1.5em;
|
425
|
-
}
|
426
|
-
div.tableblock > table {
|
427
|
-
border: 3px solid #527bbd;
|
428
|
-
}
|
429
|
-
thead, p.table.header {
|
430
|
-
font-weight: bold;
|
431
|
-
color: #527bbd;
|
432
|
-
}
|
433
|
-
p.table {
|
434
|
-
margin-top: 0;
|
435
|
-
}
|
436
|
-
/* Because the table frame attribute is overriden by CSS in most browsers. */
|
437
|
-
div.tableblock > table[frame="void"] {
|
438
|
-
border-style: none;
|
439
|
-
}
|
440
|
-
div.tableblock > table[frame="hsides"] {
|
441
|
-
border-left-style: none;
|
442
|
-
border-right-style: none;
|
443
|
-
}
|
444
|
-
div.tableblock > table[frame="vsides"] {
|
445
|
-
border-top-style: none;
|
446
|
-
border-bottom-style: none;
|
447
|
-
}
|
448
|
-
|
449
|
-
|
450
|
-
/*
|
451
|
-
* html5 specific
|
452
|
-
*
|
453
|
-
* */
|
454
|
-
|
455
|
-
.monospaced {
|
456
|
-
font-family: monospace;
|
457
|
-
font-size: inherit;
|
458
|
-
color: navy;
|
459
|
-
}
|
460
|
-
|
461
|
-
table.tableblock {
|
462
|
-
margin-top: 1.0em;
|
463
|
-
margin-bottom: 1.5em;
|
464
|
-
}
|
465
|
-
thead, p.tableblock.header {
|
466
|
-
font-weight: bold;
|
467
|
-
color: #527bbd;
|
468
|
-
}
|
469
|
-
p.tableblock {
|
470
|
-
margin-top: 0;
|
471
|
-
}
|
472
|
-
table.tableblock {
|
473
|
-
border-width: 3px;
|
474
|
-
border-spacing: 0px;
|
475
|
-
border-style: solid;
|
476
|
-
border-color: #527bbd;
|
477
|
-
border-collapse: collapse;
|
478
|
-
}
|
479
|
-
th.tableblock, td.tableblock {
|
480
|
-
border-width: 1px;
|
481
|
-
padding: 4px;
|
482
|
-
border-style: solid;
|
483
|
-
border-color: #527bbd;
|
484
|
-
}
|
485
|
-
|
486
|
-
table.tableblock.frame-topbot {
|
487
|
-
border-left-style: hidden;
|
488
|
-
border-right-style: hidden;
|
489
|
-
}
|
490
|
-
table.tableblock.frame-sides {
|
491
|
-
border-top-style: hidden;
|
492
|
-
border-bottom-style: hidden;
|
493
|
-
}
|
494
|
-
table.tableblock.frame-none {
|
495
|
-
border-style: hidden;
|
496
|
-
}
|
497
|
-
|
498
|
-
th.tableblock.halign-left, td.tableblock.halign-left {
|
499
|
-
text-align: left;
|
500
|
-
}
|
501
|
-
th.tableblock.halign-center, td.tableblock.halign-center {
|
502
|
-
text-align: center;
|
503
|
-
}
|
504
|
-
th.tableblock.halign-right, td.tableblock.halign-right {
|
505
|
-
text-align: right;
|
506
|
-
}
|
507
|
-
|
508
|
-
th.tableblock.valign-top, td.tableblock.valign-top {
|
509
|
-
vertical-align: top;
|
510
|
-
}
|
511
|
-
th.tableblock.valign-middle, td.tableblock.valign-middle {
|
512
|
-
vertical-align: middle;
|
513
|
-
}
|
514
|
-
th.tableblock.valign-bottom, td.tableblock.valign-bottom {
|
515
|
-
vertical-align: bottom;
|
516
|
-
}
|
517
|
-
|
518
|
-
|
519
|
-
/*
|
520
|
-
* manpage specific
|
521
|
-
*
|
522
|
-
* */
|
523
|
-
|
524
|
-
body.manpage h1 {
|
525
|
-
padding-top: 0.5em;
|
526
|
-
padding-bottom: 0.5em;
|
527
|
-
border-top: 2px solid silver;
|
528
|
-
border-bottom: 2px solid silver;
|
529
|
-
}
|
530
|
-
body.manpage h2 {
|
531
|
-
border-style: none;
|
532
|
-
}
|
533
|
-
body.manpage div.sectionbody {
|
534
|
-
margin-left: 3em;
|
535
|
-
}
|
536
|
-
|
537
|
-
@media print {
|
538
|
-
body.manpage div#toc { display: none; }
|
539
|
-
}
|
540
|
-
|
541
|
-
|
542
|
-
/*
|
543
|
-
* Theme specific overrides of the preceding (asciidoc.css) CSS.
|
544
|
-
*
|
545
|
-
*/
|
546
|
-
body {
|
547
|
-
font-family: Garamond, Georgia, serif;
|
548
|
-
font-size: 17px;
|
549
|
-
color: #3E4349;
|
550
|
-
line-height: 1.3em;
|
551
|
-
}
|
552
|
-
h1, h2, h3, h4, h5, h6,
|
553
|
-
div.title, caption.title,
|
554
|
-
thead, p.table.header,
|
555
|
-
#toctitle,
|
556
|
-
#author, #revnumber, #revdate, #revremark,
|
557
|
-
#footer {
|
558
|
-
font-family: Garmond, Georgia, serif;
|
559
|
-
font-weight: normal;
|
560
|
-
border-bottom-width: 0;
|
561
|
-
color: #3E4349;
|
562
|
-
}
|
563
|
-
div.title, caption.title { color: #596673; font-weight: bold; }
|
564
|
-
h1 { font-size: 240%; }
|
565
|
-
h2 { font-size: 180%; }
|
566
|
-
h3 { font-size: 150%; }
|
567
|
-
h4 { font-size: 130%; }
|
568
|
-
h5 { font-size: 115%; }
|
569
|
-
h6 { font-size: 100%; }
|
570
|
-
#header h1 { margin-top: 0; }
|
571
|
-
#toc {
|
572
|
-
color: #444444;
|
573
|
-
line-height: 1.5;
|
574
|
-
padding-top: 1.5em;
|
575
|
-
}
|
576
|
-
#toctitle {
|
577
|
-
font-size: 20px;
|
578
|
-
}
|
579
|
-
#toc a {
|
580
|
-
border-bottom: 1px dotted #999999;
|
581
|
-
color: #444444 !important;
|
582
|
-
text-decoration: none !important;
|
583
|
-
}
|
584
|
-
#toc a:hover {
|
585
|
-
border-bottom: 1px solid #6D4100;
|
586
|
-
color: #6D4100 !important;
|
587
|
-
text-decoration: none !important;
|
588
|
-
}
|
589
|
-
div.toclevel1 { margin-top: 0.2em; font-size: 16px; }
|
590
|
-
div.toclevel2 { margin-top: 0.15em; font-size: 14px; }
|
591
|
-
em, dt, td.hdlist1 { color: black; }
|
592
|
-
strong { color: #3E4349; }
|
593
|
-
a { color: #004B6B; text-decoration: none; border-bottom: 1px dotted #004B6B; }
|
594
|
-
a:visited { color: #615FA0; border-bottom: 1px dotted #615FA0; }
|
595
|
-
a:hover { color: #6D4100; border-bottom: 1px solid #6D4100; }
|
596
|
-
div.tableblock > table, table.tableblock { border: 3px solid #E8E8E8; }
|
597
|
-
th.tableblock, td.tableblock { border: 1px solid #E8E8E8; }
|
598
|
-
ul > li > * { color: #3E4349; }
|
599
|
-
pre, tt, .monospaced { font-family: Consolas,Menlo,'Deja Vu Sans Mono','Bitstream Vera Sans Mono',monospace; }
|
600
|
-
tt, .monospaced { font-size: 0.9em; color: black;
|
601
|
-
}
|
602
|
-
div.exampleblock > div.content, div.sidebarblock > div.content, div.listingblock > div.content { border-width: 0 0 0 3px; border-color: #E8E8E8; }
|
603
|
-
div.verseblock { border-left-width: 0; margin-left: 3em; }
|
604
|
-
div.quoteblock { border-left-width: 3px; margin-left: 0; margin-right: 0;}
|
605
|
-
div.admonitionblock td.content { border-left: 3px solid #E8E8E8; }
|
606
|
-
</style>
|
607
|
-
<script type="text/javascript">
|
608
|
-
/*<![CDATA[*/
|
609
|
-
var asciidoc = { // Namespace.
|
610
|
-
|
611
|
-
/////////////////////////////////////////////////////////////////////
|
612
|
-
// Table Of Contents generator
|
613
|
-
/////////////////////////////////////////////////////////////////////
|
614
|
-
|
615
|
-
/* Author: Mihai Bazon, September 2002
|
616
|
-
* http://students.infoiasi.ro/~mishoo
|
617
|
-
*
|
618
|
-
* Table Of Content generator
|
619
|
-
* Version: 0.4
|
620
|
-
*
|
621
|
-
* Feel free to use this script under the terms of the GNU General Public
|
622
|
-
* License, as long as you do not remove or alter this notice.
|
623
|
-
*/
|
624
|
-
|
625
|
-
/* modified by Troy D. Hanson, September 2006. License: GPL */
|
626
|
-
/* modified by Stuart Rackham, 2006, 2009. License: GPL */
|
627
|
-
|
628
|
-
// toclevels = 1..4.
|
629
|
-
toc: function (toclevels) {
|
630
|
-
|
631
|
-
function getText(el) {
|
632
|
-
var text = "";
|
633
|
-
for (var i = el.firstChild; i != null; i = i.nextSibling) {
|
634
|
-
if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
|
635
|
-
text += i.data;
|
636
|
-
else if (i.firstChild != null)
|
637
|
-
text += getText(i);
|
638
|
-
}
|
639
|
-
return text;
|
640
|
-
}
|
641
|
-
|
642
|
-
function TocEntry(el, text, toclevel) {
|
643
|
-
this.element = el;
|
644
|
-
this.text = text;
|
645
|
-
this.toclevel = toclevel;
|
646
|
-
}
|
647
|
-
|
648
|
-
function tocEntries(el, toclevels) {
|
649
|
-
var result = new Array;
|
650
|
-
var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
|
651
|
-
// Function that scans the DOM tree for header elements (the DOM2
|
652
|
-
// nodeIterator API would be a better technique but not supported by all
|
653
|
-
// browsers).
|
654
|
-
var iterate = function (el) {
|
655
|
-
for (var i = el.firstChild; i != null; i = i.nextSibling) {
|
656
|
-
if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
|
657
|
-
var mo = re.exec(i.tagName);
|
658
|
-
if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
|
659
|
-
result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
|
660
|
-
}
|
661
|
-
iterate(i);
|
662
|
-
}
|
663
|
-
}
|
664
|
-
}
|
665
|
-
iterate(el);
|
666
|
-
return result;
|
667
|
-
}
|
668
|
-
|
669
|
-
var toc = document.getElementById("toc");
|
670
|
-
if (!toc) {
|
671
|
-
return;
|
672
|
-
}
|
673
|
-
|
674
|
-
// Delete existing TOC entries in case we're reloading the TOC.
|
675
|
-
var tocEntriesToRemove = [];
|
676
|
-
var i;
|
677
|
-
for (i = 0; i < toc.childNodes.length; i++) {
|
678
|
-
var entry = toc.childNodes[i];
|
679
|
-
if (entry.nodeName.toLowerCase() == 'div'
|
680
|
-
&& entry.getAttribute("class")
|
681
|
-
&& entry.getAttribute("class").match(/^toclevel/))
|
682
|
-
tocEntriesToRemove.push(entry);
|
683
|
-
}
|
684
|
-
for (i = 0; i < tocEntriesToRemove.length; i++) {
|
685
|
-
toc.removeChild(tocEntriesToRemove[i]);
|
686
|
-
}
|
687
|
-
|
688
|
-
// Rebuild TOC entries.
|
689
|
-
var entries = tocEntries(document.getElementById("content"), toclevels);
|
690
|
-
for (var i = 0; i < entries.length; ++i) {
|
691
|
-
var entry = entries[i];
|
692
|
-
if (entry.element.id == "")
|
693
|
-
entry.element.id = "_toc_" + i;
|
694
|
-
var a = document.createElement("a");
|
695
|
-
a.href = "#" + entry.element.id;
|
696
|
-
a.appendChild(document.createTextNode(entry.text));
|
697
|
-
var div = document.createElement("div");
|
698
|
-
div.appendChild(a);
|
699
|
-
div.className = "toclevel" + entry.toclevel;
|
700
|
-
toc.appendChild(div);
|
701
|
-
}
|
702
|
-
if (entries.length == 0)
|
703
|
-
toc.parentNode.removeChild(toc);
|
704
|
-
},
|
705
|
-
|
706
|
-
|
707
|
-
/////////////////////////////////////////////////////////////////////
|
708
|
-
// Footnotes generator
|
709
|
-
/////////////////////////////////////////////////////////////////////
|
710
|
-
|
711
|
-
/* Based on footnote generation code from:
|
712
|
-
* http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
|
713
|
-
*/
|
714
|
-
|
715
|
-
footnotes: function () {
|
716
|
-
// Delete existing footnote entries in case we're reloading the footnodes.
|
717
|
-
var i;
|
718
|
-
var noteholder = document.getElementById("footnotes");
|
719
|
-
if (!noteholder) {
|
720
|
-
return;
|
721
|
-
}
|
722
|
-
var entriesToRemove = [];
|
723
|
-
for (i = 0; i < noteholder.childNodes.length; i++) {
|
724
|
-
var entry = noteholder.childNodes[i];
|
725
|
-
if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
|
726
|
-
entriesToRemove.push(entry);
|
727
|
-
}
|
728
|
-
for (i = 0; i < entriesToRemove.length; i++) {
|
729
|
-
noteholder.removeChild(entriesToRemove[i]);
|
730
|
-
}
|
731
|
-
|
732
|
-
// Rebuild footnote entries.
|
733
|
-
var cont = document.getElementById("content");
|
734
|
-
var spans = cont.getElementsByTagName("span");
|
735
|
-
var refs = {};
|
736
|
-
var n = 0;
|
737
|
-
for (i=0; i<spans.length; i++) {
|
738
|
-
if (spans[i].className == "footnote") {
|
739
|
-
n++;
|
740
|
-
var note = spans[i].getAttribute("data-note");
|
741
|
-
if (!note) {
|
742
|
-
// Use [\s\S] in place of . so multi-line matches work.
|
743
|
-
// Because JavaScript has no s (dotall) regex flag.
|
744
|
-
note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
|
745
|
-
spans[i].innerHTML =
|
746
|
-
"[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
|
747
|
-
"' title='View footnote' class='footnote'>" + n + "</a>]";
|
748
|
-
spans[i].setAttribute("data-note", note);
|
749
|
-
}
|
750
|
-
noteholder.innerHTML +=
|
751
|
-
"<div class='footnote' id='_footnote_" + n + "'>" +
|
752
|
-
"<a href='#_footnoteref_" + n + "' title='Return to text'>" +
|
753
|
-
n + "</a>. " + note + "</div>";
|
754
|
-
var id =spans[i].getAttribute("id");
|
755
|
-
if (id != null) refs["#"+id] = n;
|
756
|
-
}
|
757
|
-
}
|
758
|
-
if (n == 0)
|
759
|
-
noteholder.parentNode.removeChild(noteholder);
|
760
|
-
else {
|
761
|
-
// Process footnoterefs.
|
762
|
-
for (i=0; i<spans.length; i++) {
|
763
|
-
if (spans[i].className == "footnoteref") {
|
764
|
-
var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
|
765
|
-
href = href.match(/#.*/)[0]; // Because IE return full URL.
|
766
|
-
n = refs[href];
|
767
|
-
spans[i].innerHTML =
|
768
|
-
"[<a href='#_footnote_" + n +
|
769
|
-
"' title='View footnote' class='footnote'>" + n + "</a>]";
|
770
|
-
}
|
771
|
-
}
|
772
|
-
}
|
773
|
-
},
|
774
|
-
|
775
|
-
install: function(toclevels) {
|
776
|
-
var timerId;
|
777
|
-
|
778
|
-
function reinstall() {
|
779
|
-
asciidoc.footnotes();
|
780
|
-
if (toclevels) {
|
781
|
-
asciidoc.toc(toclevels);
|
782
|
-
}
|
783
|
-
}
|
784
|
-
|
785
|
-
function reinstallAndRemoveTimer() {
|
786
|
-
clearInterval(timerId);
|
787
|
-
reinstall();
|
788
|
-
}
|
789
|
-
|
790
|
-
timerId = setInterval(reinstall, 500);
|
791
|
-
if (document.addEventListener)
|
792
|
-
document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
|
793
|
-
else
|
794
|
-
window.onload = reinstallAndRemoveTimer;
|
795
|
-
}
|
796
|
-
|
797
|
-
}
|
798
|
-
asciidoc.install();
|
799
|
-
/*]]>*/
|
800
|
-
</script>
|
801
|
-
<style type="text/css">
|
802
|
-
body {
|
803
|
-
margin: 1em auto 1em auto;
|
804
|
-
padding: 0 1em 0 1em;
|
805
|
-
max-width: 800px;
|
806
|
-
}
|
807
|
-
|
808
|
-
a.image {
|
809
|
-
border: none;
|
810
|
-
}
|
811
|
-
|
812
|
-
.comments {
|
813
|
-
display: block;
|
814
|
-
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAgCAYAAAB6kdqOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAB0wAAAdMBc2+PegAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAASjSURBVFiFvZdPaBxVHMc/b/7sbNLdxG13s0sbE1jBxELVbVGEgqmQiiBiDxZqKRWhR0Fqe/BSmoNQSNmrt4ISTyV3byWLHorVU5dYtgVpk4DGhXZ1a7rZmXkeMm99eZn9k1b9wY/3Z2f2fX7f3++9mRFSSnQTQgjAAkTkaO2zmtRaCYTSABBqrIEkS6VS9vTp069lMpmClFL4vt8BCsNwWwsQBAHm7+Y4CAKEEEGtVvtlYWHhbqvVagJ/AE90MCGlVDD2xYsXiydPnvza87wXksnk8NDQUFIPQPW7zfXyMAwJw5BGo/FXs9ncvHfv3tKFCxe+aLfbDyKwQEopFZBdLpdfnp2d/Tafz4+5rhsxghAC1d+h/y5gzH69XvdrtdqDs2fPfuT7/jLQkFIGlhBC5HK5oZmZmW8KhUI+kUgIy7KwLAvbtrFte1vfdHVtnKtg9L7yffv2OcViceLSpUufA88DSSGEcABrfn7+zdHR0UnXdWNv1tXqpY6phGVZnRoy/0MIQT6fdw4ePHgUKAK/AU8sQOzfv/+tdDq9x4xKd1MVU51uSvTzVCrlTU9PTwN7AGEBYmRk5FXXdTvk+gI6kJnGQQG6KQQwMjLiTk1NTQIJBQTgmAWst2rhfiBxC3ab00wAbtRugZjb2LzR3O7d2rh7+s2Ztg1IwajChK2DTSlggpuFrHs34H7BOHELqN0Rl5K4P+4GNQioPt8BUqeoqpd+MGYQvQ7DfrCxKVNAcTCws0B7RdrvhO4HtS1lCkYtbKrT7WB8GihdQf2B3FFIPbEH2cY6iAljjk1l4qB2KKSrMwjMblXqpVpfIF2lXjBxULsB06HigDb1lA2ijgm0WyithmS73faJ3iYdgHq9/tOBAwfe9jyvJ4wam1H1O196QT18+HBzeXl5FQgVkLxz5873k5OTzWw2m+oHE6dMHEw3EGBbuh4/fuyvrKysAS1AOkA4Nzf3w5EjR+6m0+mS/tTvBhMH1U2lXgqtra21l5aWvgNWgCYQ2tH/hY1G48epqal3Pc/b4ziOGLQegiCIPVv0ubhDcXV1dfP27dv3y+Xyl0AVqAO+/pKfmpiYeHFubm4+m82+kkgkPNd1nbjI9TaZTNqu61rRQpbrujiOs+O6MAx59OhRuL6+3mq1Wq1KpXJjYWFhMYK5DzSljF7yo7RYwBCQBfKlUml6bGxsMggCLwgC/Ruts4CRPpFMJodnZmbeKBaLLxUKheFMJmPr6a5Wq0+uXLmyWK1WK8DPwBrwO7AhpQxB+y6LoARbhe4Bw0AyGlv0N/Vd56VSqb3nzp378PDhw+/ncrnnCoWCZ1kWvu9z69at9fPnz3+6sbFxE/gVaEkNYhuQBqUvsBtTSnrAKDB25syZ944dO/ZxNpvNjY+PDzebTb9Sqdy8fPnyZ0AN+FOpEwv0rKYFZEdgaSB7/PjxoydOnPgkl8tNAN7169fLi4uLX7G1w/5RadDnz9N4pJbNVupzwHSpVPrg6tWrN65du/broUOHZoEMYHXu+S+BYsA8YC9QHB8ff/3UqVPvREC2uvZfT1kvi9KpNo7LVo1uApsqZf8rkAHWMX2X/Q1tcUY1hl3QyQAAAABJRU5ErkJggg==') top left no-repeat;
|
815
|
-
float: left;
|
816
|
-
margin-left: -55px;
|
817
|
-
width: 36px;
|
818
|
-
height: 48px;
|
819
|
-
line-height: 0;
|
820
|
-
color: black;
|
821
|
-
text-decoration: none !important;
|
822
|
-
border: none !important;
|
823
|
-
}
|
824
|
-
|
825
|
-
#toc .comments {
|
826
|
-
margin-top: 0.25em;
|
827
|
-
}
|
828
|
-
|
829
|
-
.sect1 .comments {
|
830
|
-
margin-top: 0.5em;
|
831
|
-
}
|
832
|
-
|
833
|
-
.sect2 .comments {
|
834
|
-
margin-top: 1.15em;
|
835
|
-
}
|
836
|
-
|
837
|
-
.sect3 .comments {
|
838
|
-
margin-top: -1em;
|
839
|
-
}
|
840
|
-
|
841
|
-
.comments.empty {
|
842
|
-
opacity: 0.2;
|
843
|
-
}
|
844
|
-
|
845
|
-
.comments.empty:hover,
|
846
|
-
.comments.nonempty {
|
847
|
-
opacity: 1;
|
848
|
-
}
|
849
|
-
|
850
|
-
.comments .count {
|
851
|
-
display: block;
|
852
|
-
font-size: 80%;
|
853
|
-
padding-top: 12px;
|
854
|
-
text-align: center;
|
855
|
-
text-shadow: 1px 1px 2px white;
|
856
|
-
}
|
857
|
-
|
858
|
-
#comments_lightbox_shadow {
|
859
|
-
position: fixed;
|
860
|
-
top: 0;
|
861
|
-
left: 0;
|
862
|
-
right: 0;
|
863
|
-
bottom: 0;
|
864
|
-
background: black;
|
865
|
-
opacity: 0.7;
|
866
|
-
z-index: 10;
|
867
|
-
}
|
868
|
-
|
869
|
-
#comments_lightbox_contents {
|
870
|
-
position: fixed;
|
871
|
-
top: 10%;
|
872
|
-
left: 20%;
|
873
|
-
right: 20%;
|
874
|
-
bottom: 10%;
|
875
|
-
background: white;
|
876
|
-
overflow: auto;
|
877
|
-
z-index: 11;
|
878
|
-
}
|
879
|
-
|
880
|
-
#comments_lightbox_contents > .shell {
|
881
|
-
margin: 2em;
|
882
|
-
}
|
883
|
-
|
884
|
-
pre {
|
885
|
-
overflow: auto;
|
886
|
-
}
|
887
|
-
|
888
|
-
@media print {
|
889
|
-
body {
|
890
|
-
font-size: 18pt;
|
891
|
-
}
|
892
|
-
|
893
|
-
#header h1 {
|
894
|
-
page-break-after: always;
|
895
|
-
font-size: 500%;
|
896
|
-
vertical-align: middle;
|
897
|
-
}
|
898
|
-
|
899
|
-
#header {
|
900
|
-
page-break-after: always;
|
901
|
-
}
|
902
|
-
|
903
|
-
#toctitle {
|
904
|
-
font-size: 200%;
|
905
|
-
margin-bottom: 1em;
|
906
|
-
}
|
907
|
-
|
908
|
-
div.toclevel1 {
|
909
|
-
font-size: 100%;
|
910
|
-
}
|
911
|
-
|
912
|
-
div.toclevel2 {
|
913
|
-
font-size: 90%;
|
914
|
-
}
|
915
|
-
|
916
|
-
div.toclevel3 {
|
917
|
-
font-size: 80%;
|
918
|
-
}
|
919
|
-
|
920
|
-
#content .comments {
|
921
|
-
display: none;
|
922
|
-
}
|
923
|
-
|
924
|
-
@page :left {
|
925
|
-
@bottom-left {
|
926
|
-
content: counter(page);
|
927
|
-
}
|
928
|
-
}
|
929
|
-
}
|
930
|
-
|
931
|
-
#topbar {
|
932
|
-
position: fixed;
|
933
|
-
left: 0;
|
934
|
-
top: 0;
|
935
|
-
right: 0;
|
936
|
-
height: 2.5em;
|
937
|
-
padding-left: 10%;
|
938
|
-
padding-right: 10%;
|
939
|
-
z-index: 1;
|
940
|
-
background: #880000;
|
941
|
-
overflow: hidden;
|
942
|
-
white-space: nowrap;
|
943
|
-
box-shadow: 0px 3px 6px #555555;
|
944
|
-
-moz-box-shadow: 0px 3px 6px #555555;
|
945
|
-
-webkit-box-shadow: 0px 3px 6px #555555;
|
946
|
-
-o-box-shadow: 0px 3px 6px #555555;
|
947
|
-
}
|
948
|
-
|
949
|
-
#topbar .title {
|
950
|
-
display: inline-block;
|
951
|
-
margin: 0.6em 1em 0 0;
|
952
|
-
vertical-align: top;
|
953
|
-
}
|
954
|
-
|
955
|
-
#topbar .title img {
|
956
|
-
display: none;
|
957
|
-
margin-right: 6px;
|
958
|
-
vertical-align: middle;
|
959
|
-
}
|
960
|
-
|
961
|
-
#topbar .title a {
|
962
|
-
color: #fffafa;
|
963
|
-
border: 0;
|
964
|
-
}
|
965
|
-
|
966
|
-
#topbar .title:hover img,
|
967
|
-
.mobile #topbar .title img {
|
968
|
-
display: inline-block;
|
969
|
-
margin-left: -17px;
|
970
|
-
}
|
971
|
-
|
972
|
-
#topbar .title:hover a,
|
973
|
-
.mobile #topbar .title a {
|
974
|
-
color: #ffffdd;
|
975
|
-
}
|
976
|
-
|
977
|
-
#floattoc {
|
978
|
-
position: fixed;
|
979
|
-
z-index: 1;
|
980
|
-
top: 2em;
|
981
|
-
bottom: 20%;
|
982
|
-
width: 50%;
|
983
|
-
background: #f0f0f0;
|
984
|
-
color: black;
|
985
|
-
box-shadow: 0px 6px 6px #555555;
|
986
|
-
-moz-box-shadow: 0px 6px 6px #555555;
|
987
|
-
-webkit-box-shadow: 0px 6px 6px #555555;
|
988
|
-
-o-box-shadow: 0px 6px 6px #555555;
|
989
|
-
overflow: auto;
|
990
|
-
padding: 1em;
|
991
|
-
border-radius: 6px;
|
992
|
-
-webkit-border-radius: 8px;
|
993
|
-
-webkit-border-top-left-radius: 0;
|
994
|
-
-webkit-border-top-right-radius: 0;
|
995
|
-
-moz-border-radius: 8px;
|
996
|
-
-moz-border-radius-topleft: 0;
|
997
|
-
-moz-border-top-right-radius: 0;
|
998
|
-
-o-border-radius: 8px;
|
999
|
-
-o-border-radius-topleft: 0;
|
1000
|
-
-o-border-top-right-radius: 0;
|
1001
|
-
border-radius: 8px;
|
1002
|
-
border-top-left-radius: 0;
|
1003
|
-
border-top-right-radius: 0;
|
1004
|
-
}
|
1005
|
-
|
1006
|
-
#floattoc a.current {
|
1007
|
-
font-weight: bold;
|
1008
|
-
color: black;
|
1009
|
-
}
|
1010
|
-
|
1011
|
-
#current_section {
|
1012
|
-
display: inline-block;
|
1013
|
-
margin: 0.5em 0 0 0;
|
1014
|
-
padding: 0.2em 0.5em 0.2em 0.5em;
|
1015
|
-
background: #550000;
|
1016
|
-
font-size: 90%;
|
1017
|
-
vertical-align: top;
|
1018
|
-
color: white;
|
1019
|
-
border: none;
|
1020
|
-
-webkit-border-radius: 8px;
|
1021
|
-
-moz-border-radius: 8px;
|
1022
|
-
-o-border-radius: 8px;
|
1023
|
-
border-radius: 8px;
|
1024
|
-
}
|
1025
|
-
|
1026
|
-
#current_section:hover {
|
1027
|
-
text-decoration: none;
|
1028
|
-
border: none;
|
1029
|
-
}
|
1030
|
-
|
1031
|
-
#current_section.pressed {
|
1032
|
-
background: #f0f0f0;
|
1033
|
-
color: black;
|
1034
|
-
-webkit-border-top-left-radius: 8px;
|
1035
|
-
-webkit-border-top-right-radius: 8px;
|
1036
|
-
-webkit-border-bottom-left-radius: 0;
|
1037
|
-
-webkit-border-bottom-right-radius: 0;
|
1038
|
-
-moz-border-radius-topleft: 8px;
|
1039
|
-
-moz-border-radius-topright: 8px;
|
1040
|
-
-moz-border-bottom-left-radius: 0;
|
1041
|
-
-moz-border-bottom-right-radius: 0;
|
1042
|
-
border-top-left-radius: 8px;
|
1043
|
-
border-top-right-radius: 8px;
|
1044
|
-
border-bottom-left-radius: 0;
|
1045
|
-
border-bottom-right-radius: 0;
|
1046
|
-
}
|
1047
|
-
|
1048
|
-
/* http://nicolasgallagher.com/jump-links-and-viewport-positioning/ */
|
1049
|
-
.anchor_helper {
|
1050
|
-
position: relative;
|
1051
|
-
display: block;
|
1052
|
-
top: -50px;
|
1053
|
-
width: 1px;
|
1054
|
-
height: 1px;
|
1055
|
-
}
|
1056
|
-
|
1057
|
-
</style>
|
1058
|
-
</head>
|
1059
|
-
<body class="article">
|
1060
|
-
<div id="topbar" style="display: none">
|
1061
|
-
<div class="title">
|
1062
|
-
<!-- Don't put a space between the img and a. That will break the hover layout. -->
|
1063
|
-
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAKCAYAAAEV95QVAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sGCRMSACDxkZwAAAAidEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVAgb24gYSBNYWOHqHdDAAAAZUlEQVQY032PSxbAIAjEIlfygL6ePF3UUvpzNjgSYWwqAMEhUQnANnsC7TQPeJpsVWzMuh2sog4vDTUbqP081zECrW4dtdaQGSIKlWluPyjK+VXxAz5XfcKufCzA130AfQHWB30HZxlPaP080xsAAAAASUVORK5CYII=" width="11" height="10" alt=""><a href="javascript:void(Mizuho.smoothlyScrollToToc())">Phusion Passenger users guide, Apache version</a>
|
1064
|
-
</div>
|
1065
|
-
<a href="javascript:void(0)" id="current_section"></a>
|
1066
|
-
</div>
|
1067
|
-
<div id="header">
|
1068
|
-
<h1>Phusion Passenger users guide, Apache version</h1>
|
1069
|
-
<div id="preamble">
|
1070
|
-
<div class="sectionbody">
|
1071
|
-
<div class="paragraph"><p><span class="image">
|
1072
|
-
<a class="image" href="http://www.phusion.nl/">
|
1073
|
-
<img src="images/phusion_banner.png" alt="images/phusion_banner.png">
|
1074
|
-
</a>
|
1075
|
-
</span></p></div>
|
1076
|
-
<div class="paragraph"><p>This is the old, deprecated Passenger for Apache documentation. Please visit <a href="https://www.phusionpassenger.com/library/">https://www.phusionpassenger.com/library/</a> for the new documentation.</p></div>
|
1077
|
-
</div>
|
1078
|
-
</div>
|
1079
|
-
<div id="toc">
|
1080
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><div id="toctitle">Table of Contents</div>
|
1081
|
-
<div class="foo toclevel2"><a href="#_support_information">1. Support information</a></div>
|
1082
|
-
<div class="foo toclevel3"><a href="#_supported_operating_systems_and_languages">1.1. Supported operating systems and languages</a></div>
|
1083
|
-
<div class="foo toclevel3"><a href="#where_to_get_support">1.2. Where to get support</a></div>
|
1084
|
-
<div class="foo toclevel2"><a href="#installation">2. Installation</a></div>
|
1085
|
-
<div class="foo toclevel3"><a href="#_synopsis">2.1. Synopsis</a></div>
|
1086
|
-
<div class="foo toclevel3"><a href="#install_osx_homebrew">2.2. Installing or upgrading on Mac OS X with Homebrew</a></div>
|
1087
|
-
<div class="foo toclevel3"><a href="#install_on_debian_ubuntu">2.3. Installing or upgrading on Debian or Ubuntu</a></div>
|
1088
|
-
<div class="foo toclevel4"><a href="#install_add_apt_repo">2.3.1. Adding our APT repository</a></div>
|
1089
|
-
<div class="foo toclevel4"><a href="#_installing_packages">2.3.2. Installing packages</a></div>
|
1090
|
-
<div class="foo toclevel3"><a href="#installing_or_upgrading_on_red_hat">2.4. Installing or upgrading on Red Hat or CentOS</a></div>
|
1091
|
-
<div class="foo toclevel4"><a href="#install_add_yum_repo">2.4.1. Adding our YUM repository</a></div>
|
1092
|
-
<div class="foo toclevel4"><a href="#_installing_packages_2">2.4.2. Installing packages</a></div>
|
1093
|
-
<div class="foo toclevel3"><a href="#_installing_or_upgrading_on_heroku">2.5. Installing or upgrading on Heroku</a></div>
|
1094
|
-
<div class="foo toclevel3"><a href="#rubygems_generic_install">2.6. Generic installation, upgrade and downgrade method: via RubyGems</a></div>
|
1095
|
-
<div class="foo toclevel3"><a href="#tarball_generic_install">2.7. Generic installation, upgrade and downgrade method: via tarball</a></div>
|
1096
|
-
<div class="foo toclevel3"><a href="#_upgrading_from_open_source_to_enterprise">2.8. Upgrading from open source to Enterprise</a></div>
|
1097
|
-
<div class="foo toclevel3"><a href="#_cryptographic_verification_of_installation_files">2.9. Cryptographic verification of installation files</a></div>
|
1098
|
-
<div class="foo toclevel4"><a href="#_synopsis_2">2.9.1. Synopsis</a></div>
|
1099
|
-
<div class="foo toclevel4"><a href="#_importing_the_phusion_software_signing_key">2.9.2. Importing the Phusion Software Signing key</a></div>
|
1100
|
-
<div class="foo toclevel4"><a href="#_verifying_the_phusion_software_signing_key">2.9.3. Verifying the Phusion Software Signing key</a></div>
|
1101
|
-
<div class="foo toclevel4"><a href="#_verifying_the_gem_and_tarball">2.9.4. Verifying the gem and tarball</a></div>
|
1102
|
-
<div class="foo toclevel4"><a href="#_verifying_git_signatures">2.9.5. Verifying Git signatures</a></div>
|
1103
|
-
<div class="foo toclevel4"><a href="#_verifying_debian_packages">2.9.6. Verifying Debian packages</a></div>
|
1104
|
-
<div class="foo toclevel4"><a href="#_verifying_rpm_packages">2.9.7. Verifying RPM packages</a></div>
|
1105
|
-
<div class="foo toclevel4"><a href="#_revocation">2.9.8. Revocation</a></div>
|
1106
|
-
<div class="foo toclevel3"><a href="#_non_interactive_automatic_headless_installs_or_upgrades">2.10. Non-interactive, automatic, headless installs or upgrades</a></div>
|
1107
|
-
<div class="foo toclevel3"><a href="#_customizing_the_compilation_process">2.11. Customizing the compilation process</a></div>
|
1108
|
-
<div class="foo toclevel4"><a href="#_setting_the_compiler">2.11.1. Setting the compiler</a></div>
|
1109
|
-
<div class="foo toclevel4"><a href="#_adding_additional_compiler_or_linker_flags">2.11.2. Adding additional compiler or linker flags</a></div>
|
1110
|
-
<div class="foo toclevel4"><a href="#forcing_location_of_command_line_tools_and_dependencies">2.11.3. Forcing location of command line tools and dependencies</a></div>
|
1111
|
-
<div class="foo toclevel3"><a href="#multiple_apache_installs">2.12. Dealing with multiple Apache installations</a></div>
|
1112
|
-
<div class="foo toclevel3"><a href="#working_with_apache_conf">2.13. Working with the Apache configuration file</a></div>
|
1113
|
-
<div class="foo toclevel3"><a href="#_disabling_without_uninstalling">2.14. Disabling without uninstalling</a></div>
|
1114
|
-
<div class="foo toclevel3"><a href="#uninstalling">2.15. Uninstalling</a></div>
|
1115
|
-
<div class="foo toclevel3"><a href="#moving_phusion_passenger">2.16. Moving to a different directory</a></div>
|
1116
|
-
<div class="foo toclevel2"><a href="#_deploying_a_rack_based_ruby_application">3. Deploying a Rack-based Ruby application</a></div>
|
1117
|
-
<div class="foo toclevel3"><a href="#_tutorial_example_writing_and_deploying_a_hello_world_rack_application">3.1. Tutorial/example: writing and deploying a Hello World Rack application</a></div>
|
1118
|
-
<div class="foo toclevel3"><a href="#_deploying_to_a_virtual_host_8217_s_root">3.2. Deploying to a virtual host’s root</a></div>
|
1119
|
-
<div class="foo toclevel3"><a href="#deploying_rack_to_sub_uri">3.3. Deploying to a sub URI</a></div>
|
1120
|
-
<div class="foo toclevel3"><a href="#_redeploying_restarting_the_rack_application">3.4. Redeploying (restarting the Rack application)</a></div>
|
1121
|
-
<div class="foo toclevel3"><a href="#_rackup_specifications_for_various_web_frameworks">3.5. Rackup specifications for various web frameworks</a></div>
|
1122
|
-
<div class="foo toclevel2"><a href="#_deploying_a_wsgi_python_application">4. Deploying a WSGI (Python) application</a></div>
|
1123
|
-
<div class="foo toclevel3"><a href="#_tutorial_example_writing_and_deploying_a_hello_world_wsgi_application">4.1. Tutorial/example: writing and deploying a Hello World WSGI application</a></div>
|
1124
|
-
<div class="foo toclevel3"><a href="#_deploying_to_a_virtual_host_8217_s_root_2">4.2. Deploying to a virtual host’s root</a></div>
|
1125
|
-
<div class="foo toclevel3"><a href="#deploying_python_to_sub_uri">4.3. Deploying to a sub URI</a></div>
|
1126
|
-
<div class="foo toclevel3"><a href="#_redeploying_restarting_the_wsgi_application">4.4. Redeploying (restarting the WSGI application)</a></div>
|
1127
|
-
<div class="foo toclevel3"><a href="#_sample_span_class_monospaced_passenger_wsgi_py_span_for_django">4.5. Sample passenger_wsgi.py for Django</a></div>
|
1128
|
-
<div class="foo toclevel2"><a href="#_deploying_a_node_js_application">5. Deploying a Node.js application</a></div>
|
1129
|
-
<div class="foo toclevel2"><a href="#_deploying_a_meteor_application">6. Deploying a Meteor application</a></div>
|
1130
|
-
<div class="foo toclevel2"><a href="#_configuring_phusion_passenger">7. Configuring Phusion Passenger</a></div>
|
1131
|
-
<div class="foo toclevel3"><a href="#PassengerRoot">7.1. PassengerRoot <directory></a></div>
|
1132
|
-
<div class="foo toclevel3"><a href="#PassengerDefaultRuby">7.2. PassengerDefaultRuby <filename></a></div>
|
1133
|
-
<div class="foo toclevel3"><a href="#_deployment_options">7.3. Deployment options</a></div>
|
1134
|
-
<div class="foo toclevel4"><a href="#PassengerEnabled">7.3.1. PassengerEnabled <on|off></a></div>
|
1135
|
-
<div class="foo toclevel4"><a href="#PassengerBaseURI">7.3.2. PassengerBaseURI <uri></a></div>
|
1136
|
-
<div class="foo toclevel3"><a href="#_application_loading_options">7.4. Application loading options</a></div>
|
1137
|
-
<div class="foo toclevel4"><a href="#PassengerRuby">7.4.1. PassengerRuby <filename></a></div>
|
1138
|
-
<div class="foo toclevel4"><a href="#_passengerpython_lt_filename_gt">7.4.2. PassengerPython <filename></a></div>
|
1139
|
-
<div class="foo toclevel4"><a href="#_passengernodejs_lt_filename_gt">7.4.3. PassengerNodejs <filename></a></div>
|
1140
|
-
<div class="foo toclevel4"><a href="#_passengermeteorappsettings_lt_filename_gt">7.4.4. PassengerMeteorAppSettings <filename></a></div>
|
1141
|
-
<div class="foo toclevel4"><a href="#PassengerAppEnv">7.4.5. PassengerAppEnv <string></a></div>
|
1142
|
-
<div class="foo toclevel4"><a href="#rails_env">7.4.6. RailsEnv <string></a></div>
|
1143
|
-
<div class="foo toclevel4"><a href="#rack_env">7.4.7. RackEnv <string></a></div>
|
1144
|
-
<div class="foo toclevel4"><a href="#PassengerAppRoot">7.4.8. PassengerAppRoot <path/to/root></a></div>
|
1145
|
-
<div class="foo toclevel4"><a href="#PassengerAppGroupName">7.4.9. PassengerAppGroupName <name></a></div>
|
1146
|
-
<div class="foo toclevel4"><a href="#PassengerAppType">7.4.10. PassengerAppType <name></a></div>
|
1147
|
-
<div class="foo toclevel4"><a href="#PassengerStartupFile">7.4.11. PassengerStartupFile <filename></a></div>
|
1148
|
-
<div class="foo toclevel4"><a href="#_passengerrestartdir_lt_directory_gt">7.4.12. PassengerRestartDir <directory></a></div>
|
1149
|
-
<div class="foo toclevel4"><a href="#PassengerSpawnMethod">7.4.13. PassengerSpawnMethod <string></a></div>
|
1150
|
-
<div class="foo toclevel4"><a href="#PassengerLoadShellEnvvars">7.4.14. PassengerLoadShellEnvvars <on|off></a></div>
|
1151
|
-
<div class="foo toclevel4"><a href="#PassengerRollingRestarts">7.4.15. PassengerRollingRestarts <on|off></a></div>
|
1152
|
-
<div class="foo toclevel4"><a href="#PassengerResistDeploymentErrors">7.4.16. PassengerResistDeploymentErrors <on|off></a></div>
|
1153
|
-
<div class="foo toclevel3"><a href="#_security_options">7.5. Security options</a></div>
|
1154
|
-
<div class="foo toclevel4"><a href="#PassengerUserSwitching">7.5.1. PassengerUserSwitching <on|off></a></div>
|
1155
|
-
<div class="foo toclevel4"><a href="#PassengerUser">7.5.2. PassengerUser <username></a></div>
|
1156
|
-
<div class="foo toclevel4"><a href="#PassengerGroup">7.5.3. PassengerGroup <group name></a></div>
|
1157
|
-
<div class="foo toclevel4"><a href="#PassengerDefaultUser">7.5.4. PassengerDefaultUser <username></a></div>
|
1158
|
-
<div class="foo toclevel4"><a href="#PassengerDefaultGroup">7.5.5. PassengerDefaultGroup <group name></a></div>
|
1159
|
-
<div class="foo toclevel4"><a href="#_passengershowversioninheader_lt_on_off_gt">7.5.6. PassengerShowVersionInHeader <on|off></a></div>
|
1160
|
-
<div class="foo toclevel4"><a href="#PassengerFriendlyErrorPages">7.5.7. PassengerFriendlyErrorPages <on|off></a></div>
|
1161
|
-
<div class="foo toclevel3"><a href="#_resource_control_and_optimization_options">7.6. Resource control and optimization options</a></div>
|
1162
|
-
<div class="foo toclevel4"><a href="#PassengerMaxPoolSize">7.6.1. PassengerMaxPoolSize <integer></a></div>
|
1163
|
-
<div class="foo toclevel4"><a href="#PassengerMinInstances">7.6.2. PassengerMinInstances <integer></a></div>
|
1164
|
-
<div class="foo toclevel4"><a href="#PassengerMaxInstances">7.6.3. PassengerMaxInstances <integer></a></div>
|
1165
|
-
<div class="foo toclevel4"><a href="#_passengermaxinstancesperapp_lt_integer_gt">7.6.4. PassengerMaxInstancesPerApp <integer></a></div>
|
1166
|
-
<div class="foo toclevel4"><a href="#PassengerPoolIdleTime">7.6.5. PassengerPoolIdleTime <integer></a></div>
|
1167
|
-
<div class="foo toclevel4"><a href="#PassengerMaxPreloaderIdleTime">7.6.6. PassengerMaxPreloaderIdleTime <integer></a></div>
|
1168
|
-
<div class="foo toclevel4"><a href="#_passengerstarttimeout_lt_seconds_gt">7.6.7. PassengerStartTimeout <seconds></a></div>
|
1169
|
-
<div class="foo toclevel4"><a href="#PassengerConcurrencyModel">7.6.8. PassengerConcurrencyModel <process|thread></a></div>
|
1170
|
-
<div class="foo toclevel4"><a href="#PassengerThreadCount">7.6.9. PassengerThreadCount <number></a></div>
|
1171
|
-
<div class="foo toclevel4"><a href="#PassengerMaxRequests">7.6.10. PassengerMaxRequests <integer></a></div>
|
1172
|
-
<div class="foo toclevel4"><a href="#PassengerMaxRequestTime">7.6.11. PassengerMaxRequestTime <seconds></a></div>
|
1173
|
-
<div class="foo toclevel4"><a href="#PassengerMemoryLimit">7.6.12. PassengerMemoryLimit <integer></a></div>
|
1174
|
-
<div class="foo toclevel4"><a href="#_passengerstatthrottlerate_lt_integer_gt">7.6.13. PassengerStatThrottleRate <integer></a></div>
|
1175
|
-
<div class="foo toclevel4"><a href="#PassengerPreStart">7.6.14. PassengerPreStart <url></a></div>
|
1176
|
-
<div class="foo toclevel4"><a href="#PassengerHighPerformance">7.6.15. PassengerHighPerformance <on|off></a></div>
|
1177
|
-
<div class="foo toclevel3"><a href="#_connection_handling_options">7.7. Connection handling options</a></div>
|
1178
|
-
<div class="foo toclevel4"><a href="#PassengerBufferUpload">7.7.1. PassengerBufferUpload <on|off></a></div>
|
1179
|
-
<div class="foo toclevel4"><a href="#PassengerBufferResponse">7.7.2. PassengerBufferResponse <on|off></a></div>
|
1180
|
-
<div class="foo toclevel4"><a href="#PassengerResponseBufferHighWatermark">7.7.3. PassengerResponseBufferHighWatermark <bytes></a></div>
|
1181
|
-
<div class="foo toclevel4"><a href="#PassengerErrorOverride">7.7.4. PassengerErrorOverride <on|off></a></div>
|
1182
|
-
<div class="foo toclevel4"><a href="#PassengerMaxRequestQueueSize">7.7.5. PassengerMaxRequestQueueSize <number></a></div>
|
1183
|
-
<div class="foo toclevel4"><a href="#PassengerStickySessions">7.7.6. PassengerStickySessions <on|off></a></div>
|
1184
|
-
<div class="foo toclevel4"><a href="#PassengerStickySessionsCookieName">7.7.7. PassengerStickySessionsCookieName</a></div>
|
1185
|
-
<div class="foo toclevel3"><a href="#_compatibility_options">7.8. Compatibility options</a></div>
|
1186
|
-
<div class="foo toclevel4"><a href="#PassengerResolveSymlinksInDocumentRoot">7.8.1. PassengerResolveSymlinksInDocumentRoot <on|off></a></div>
|
1187
|
-
<div class="foo toclevel4"><a href="#_passengerallowencodedslashes_lt_on_off_gt">7.8.2. PassengerAllowEncodedSlashes <on|off></a></div>
|
1188
|
-
<div class="foo toclevel3"><a href="#_logging_and_debugging_options">7.9. Logging and debugging options</a></div>
|
1189
|
-
<div class="foo toclevel4"><a href="#PassengerLogLevel">7.9.1. PassengerLogLevel <integer></a></div>
|
1190
|
-
<div class="foo toclevel4"><a href="#PassengerLogFile">7.9.2. PassengerLogFile <filename></a></div>
|
1191
|
-
<div class="foo toclevel4"><a href="#_passengerfiledescriptorlogfile_lt_filename_gt">7.9.3. PassengerFileDescriptorLogFile <filename></a></div>
|
1192
|
-
<div class="foo toclevel4"><a href="#_passengerdebugger_lt_on_off_gt">7.9.4. PassengerDebugger <on|off></a></div>
|
1193
|
-
<div class="foo toclevel3"><a href="#_advanced_options">7.10. Advanced options</a></div>
|
1194
|
-
<div class="foo toclevel4"><a href="#PassengerInstanceRegistryDir">7.10.1. PassengerInstanceRegistryDir <directory></a></div>
|
1195
|
-
<div class="foo toclevel4"><a href="#PassengerDataBufferDir">7.10.2. PassengerDataBufferDir <directory></a></div>
|
1196
|
-
<div class="foo toclevel3"><a href="#_deprecated_or_removed_options">7.11. Deprecated or removed options</a></div>
|
1197
|
-
<div class="foo toclevel4"><a href="#_railsruby">7.11.1. RailsRuby</a></div>
|
1198
|
-
<div class="foo toclevel4"><a href="#_railsbaseuri_and_rackbaseuri">7.11.2. RailsBaseURI and RackBaseURI</a></div>
|
1199
|
-
<div class="foo toclevel4"><a href="#_railsuserswitching">7.11.3. RailsUserSwitching</a></div>
|
1200
|
-
<div class="foo toclevel4"><a href="#_railsdefaultuser">7.11.4. RailsDefaultUser</a></div>
|
1201
|
-
<div class="foo toclevel4"><a href="#_railsallowmodrewrite">7.11.5. RailsAllowModRewrite</a></div>
|
1202
|
-
<div class="foo toclevel4"><a href="#_railsspawnmethod">7.11.6. RailsSpawnMethod</a></div>
|
1203
|
-
<div class="foo toclevel4"><a href="#_railsautodetect_rackautodetect_and_wsgiautodetect">7.11.7. RailsAutoDetect, RackAutoDetect and WsgiAutoDetect</a></div>
|
1204
|
-
<div class="foo toclevel4"><a href="#_railsappspawneridletime">7.11.8. RailsAppSpawnerIdleTime</a></div>
|
1205
|
-
<div class="foo toclevel4"><a href="#_railsframeworkspawneridletime">7.11.9. RailsFrameworkSpawnerIdleTime</a></div>
|
1206
|
-
<div class="foo toclevel4"><a href="#_passengerdebuglogfile">7.11.10. PassengerDebugLogFile</a></div>
|
1207
|
-
<div class="foo toclevel2"><a href="#troubleshooting">8. Troubleshooting</a></div>
|
1208
|
-
<div class="foo toclevel3"><a href="#_generic_troubleshooting_tips">8.1. Generic troubleshooting tips</a></div>
|
1209
|
-
<div class="foo toclevel3"><a href="#_why_does_the_first_request_take_a_long_time">8.2. Why does the first request take a long time?</a></div>
|
1210
|
-
<div class="foo toclevel3"><a href="#_i_get_command_not_found_when_running_a_phusion_passenger_command_through_sudo">8.3. I get "command not found" when running a Phusion Passenger command through sudo</a></div>
|
1211
|
-
<div class="foo toclevel3"><a href="#_os_x_the_installer_cannot_locate_mamp_8217_s_apache">8.4. OS X: The installer cannot locate MAMP’s Apache</a></div>
|
1212
|
-
<div class="foo toclevel3"><a href="#_apache_reports_a_403_forbidden_error">8.5. Apache reports a "403 Forbidden" error</a></div>
|
1213
|
-
<div class="foo toclevel3"><a href="#_static_assets_such_as_images_and_stylesheets_aren_8217_t_being_displayed">8.6. Static assets such as images and stylesheets aren’t being displayed</a></div>
|
1214
|
-
<div class="foo toclevel3"><a href="#apache_selinux_permissions">8.7. Apache cannot access my app’s files because of SELinux errors</a></div>
|
1215
|
-
<div class="foo toclevel3"><a href="#_the_application_thinks_its_not_on_ssl_even_though_it_is">8.8. The application thinks its not on SSL even though it is</a></div>
|
1216
|
-
<div class="foo toclevel3"><a href="#_ruby_on_rails_specific_troubleshooting">8.9. Ruby on Rails-specific troubleshooting</a></div>
|
1217
|
-
<div class="foo toclevel4"><a href="#_the_about_your_application_8217_s_environment_link_does_not_work">8.9.1. The "About your application’s environment" link does not work</a></div>
|
1218
|
-
<div class="foo toclevel4"><a href="#_the_rails_application_reports_that_it_8217_s_unable_to_start_because_of_a_permission_error">8.9.2. The Rails application reports that it’s unable to start because of a permission error</a></div>
|
1219
|
-
<div class="foo toclevel4"><a href="#_the_rails_application_8217_s_log_file_is_not_being_written_to">8.9.3. The Rails application’s log file is not being written to</a></div>
|
1220
|
-
<div class="foo toclevel3"><a href="#conflicting_apache_modules">8.10. Conflicting Apache modules</a></div>
|
1221
|
-
<div class="foo toclevel4"><a href="#_mod_userdir">8.10.1. mod_userdir</a></div>
|
1222
|
-
<div class="foo toclevel4"><a href="#_multiviews_mod_negotiation">8.10.2. MultiViews (mod_negotiation)</a></div>
|
1223
|
-
<div class="foo toclevel4"><a href="#_virtualdocumentroot">8.10.3. VirtualDocumentRoot</a></div>
|
1224
|
-
<div class="foo toclevel2"><a href="#_analysis_and_system_maintenance">9. Analysis and system maintenance</a></div>
|
1225
|
-
<div class="foo toclevel3"><a href="#_inspecting_memory_usage">9.1. Inspecting memory usage</a></div>
|
1226
|
-
<div class="foo toclevel3"><a href="#_inspecting_phusion_passenger_8217_s_internal_status">9.2. Inspecting Phusion Passenger’s internal status</a></div>
|
1227
|
-
<div class="foo toclevel3"><a href="#debugging_frozen">9.3. Debugging frozen applications</a></div>
|
1228
|
-
<div class="foo toclevel3"><a href="#_accessing_individual_application_processes">9.4. Accessing individual application processes</a></div>
|
1229
|
-
<div class="foo toclevel3"><a href="#_attaching_an_irb_console_to_an_application_process">9.5. Attaching an IRB console to an application process</a></div>
|
1230
|
-
<div class="foo toclevel2"><a href="#_tips">10. Tips</a></div>
|
1231
|
-
<div class="foo toclevel3"><a href="#user_switching">10.1. User Switching (security feature)</a></div>
|
1232
|
-
<div class="foo toclevel4"><a href="#_requirements">10.1.1. Requirements</a></div>
|
1233
|
-
<div class="foo toclevel4"><a href="#_effects">10.1.2. Effects</a></div>
|
1234
|
-
<div class="foo toclevel4"><a href="#_caveats_amp_troubleshooting">10.1.3. Caveats & troubleshooting</a></div>
|
1235
|
-
<div class="foo toclevel4"><a href="#user_switching_rpm_caveats">10.1.4. Red Hat and CentOS caveats</a></div>
|
1236
|
-
<div class="foo toclevel4"><a href="#finding_out_app_user">10.1.5. Finding out what user an application is running as</a></div>
|
1237
|
-
<div class="foo toclevel3"><a href="#reducing_memory_usage">10.2. Copy-on-write memory support (reducing memory consumption of Ruby applications)</a></div>
|
1238
|
-
<div class="foo toclevel3"><a href="#tuning_sse_websockets">10.3. Tuning for Server Sent Events and WebSockets</a></div>
|
1239
|
-
<div class="foo toclevel3"><a href="#bundler_support">10.4. Bundler support</a></div>
|
1240
|
-
<div class="foo toclevel4"><a href="#add_passenger_to_gemfile">10.4.1. Does Phusion Passenger itself need to be added to the Gemfile?</a></div>
|
1241
|
-
<div class="foo toclevel3"><a href="#_installing_multiple_ruby_on_rails_versions">10.5. Installing multiple Ruby on Rails versions</a></div>
|
1242
|
-
<div class="foo toclevel3"><a href="#_making_the_application_restart_after_each_request">10.6. Making the application restart after each request</a></div>
|
1243
|
-
<div class="foo toclevel3"><a href="#sub_uri_deployment_uri_fix">10.7. How to fix broken images/CSS/JavaScript URIs in sub-URI deployments</a></div>
|
1244
|
-
<div class="foo toclevel3"><a href="#_out_of_band_work_and_out_of_band_garbage_collection">10.8. Out-of-Band Work and Out-of-Band Garbage Collection</a></div>
|
1245
|
-
<div class="foo toclevel3"><a href="#_hooks">10.9. Hooks</a></div>
|
1246
|
-
<div class="foo toclevel4"><a href="#_example">10.9.1. Example</a></div>
|
1247
|
-
<div class="foo toclevel4"><a href="#_environment">10.9.2. Environment</a></div>
|
1248
|
-
<div class="foo toclevel4"><a href="#_blocking_and_concurrency">10.9.3. Blocking and concurrency</a></div>
|
1249
|
-
<div class="foo toclevel4"><a href="#_error_handling">10.9.4. Error handling</a></div>
|
1250
|
-
<div class="foo toclevel4"><a href="#_compatibility">10.9.5. Compatibility</a></div>
|
1251
|
-
<div class="foo toclevel4"><a href="#_available_hooks">10.9.6. Available hooks</a></div>
|
1252
|
-
<div class="foo toclevel3"><a href="#flying_passenger">10.10. Flying Passenger</a></div>
|
1253
|
-
<div class="foo toclevel4"><a href="#_requirements_2">10.10.1. Requirements</a></div>
|
1254
|
-
<div class="foo toclevel4"><a href="#_basic_usage">10.10.2. Basic usage</a></div>
|
1255
|
-
<div class="foo toclevel4"><a href="#configuring_flying_passenger">10.10.3. Configuring Flying Passenger</a></div>
|
1256
|
-
<div class="foo toclevel4"><a href="#_managing_the_flying_passenger_daemon">10.10.4. Managing the Flying Passenger daemon</a></div>
|
1257
|
-
<div class="foo toclevel4"><a href="#using_flying_passenger_with_mri_18_or_jruby">10.10.5. Using Flying Passenger with MRI 1.8 or JRuby</a></div>
|
1258
|
-
<div class="foo toclevel4"><a href="#flying_passenger_caveats">10.10.6. Caveats and limitations</a></div>
|
1259
|
-
<div class="foo toclevel3"><a href="#_x_sendfile_support">10.11. X-Sendfile support</a></div>
|
1260
|
-
<div class="foo toclevel3"><a href="#_upload_progress">10.12. Upload progress</a></div>
|
1261
|
-
<div class="foo toclevel2"><a href="#_under_the_hood">11. Under the hood</a></div>
|
1262
|
-
<div class="foo toclevel3"><a href="#_page_caching_support">11.1. Page caching support</a></div>
|
1263
|
-
<div class="foo toclevel3"><a href="#relationship_with_ruby">11.2. Phusion Passenger and its relationship with Ruby</a></div>
|
1264
|
-
<div class="foo toclevel4"><a href="#_how_ruby_is_used">11.2.1. How Ruby is used</a></div>
|
1265
|
-
<div class="foo toclevel4"><a href="#_when_the_system_has_multiple_ruby_interpreters">11.2.2. When the system has multiple Ruby interpreters</a></div>
|
1266
|
-
<div class="foo toclevel3"><a href="#_static_assets_serving">11.3. Static assets serving</a></div>
|
1267
|
-
<div class="foo toclevel3"><a href="#application_detection">11.4. How Phusion Passenger detects whether a virtual host is a web application</a></div>
|
1268
|
-
<div class="foo toclevel2"><a href="#_appendix_a_about_this_document">12. Appendix A: About this document</a></div>
|
1269
|
-
<div class="foo toclevel2"><a href="#_appendix_b_terminology">13. Appendix B: Terminology</a></div>
|
1270
|
-
<div class="foo toclevel3"><a href="#application_root">13.1. Application root</a></div>
|
1271
|
-
<div class="foo toclevel3"><a href="#idle_process">13.2. Idle process</a></div>
|
1272
|
-
<div class="foo toclevel3"><a href="#inactive_process">13.3. Inactive process</a></div>
|
1273
|
-
<div class="foo toclevel2"><a href="#spawning_methods_explained">14. Appendix C: Spawning methods explained</a></div>
|
1274
|
-
<div class="foo toclevel3"><a href="#_the_most_straightforward_and_traditional_way_direct_spawning">14.1. The most straightforward and traditional way: direct spawning</a></div>
|
1275
|
-
<div class="foo toclevel3"><a href="#_the_smart_spawning_method">14.2. The smart spawning method</a></div>
|
1276
|
-
<div class="foo toclevel4"><a href="#_how_it_works">14.2.1. How it works</a></div>
|
1277
|
-
<div class="foo toclevel4"><a href="#_summary_of_benefits">14.2.2. Summary of benefits</a></div>
|
1278
|
-
<div class="foo toclevel3"><a href="#_smart_spawning_caveat_1_unintentional_file_descriptor_sharing">14.3. Smart spawning caveat #1: unintentional file descriptor sharing</a></div>
|
1279
|
-
<div class="foo toclevel4"><a href="#_example_1_memcached_connection_sharing_harmful">14.3.1. Example 1: Memcached connection sharing (harmful)</a></div>
|
1280
|
-
<div class="foo toclevel4"><a href="#_example_2_log_file_sharing_not_harmful">14.3.2. Example 2: Log file sharing (not harmful)</a></div>
|
1281
|
-
<div class="foo toclevel3"><a href="#_smart_spawning_caveat_2_the_need_to_revive_threads">14.4. Smart spawning caveat #2: the need to revive threads</a></div>
|
1282
|
-
<div class="foo toclevel2"><a href="#about_environment_variables">15. Appendix D: About environment variables</a></div>
|
1283
|
-
<div class="foo toclevel3"><a href="#_working_with_environment_variables">15.1. Working with environment variables</a></div>
|
1284
|
-
<div class="foo toclevel3"><a href="#the_path_env_var">15.2. The PATH environment variable</a></div>
|
1285
|
-
<div class="foo toclevel4"><a href="#_adding_phusion_passenger_8217_s_administration_tools_to_path">15.2.1. Adding Phusion Passenger’s administration tools to PATH</a></div>
|
1286
|
-
<div class="foo toclevel3"><a href="#_making_environment_variables_permanent">15.3. Making environment variables permanent</a></div>
|
1287
|
-
<div class="foo toclevel4"><a href="#_bash">15.3.1. bash</a></div>
|
1288
|
-
<div class="foo toclevel4"><a href="#_apache">15.3.2. Apache</a></div>
|
1289
|
-
<div class="foo toclevel4"><a href="#_nginx">15.3.3. Nginx</a></div>
|
1290
|
-
<div class="foo toclevel4"><a href="#_cron">15.3.4. cron</a></div>
|
1291
|
-
<div class="foo toclevel4"><a href="#env_vars_passenger_apps">15.3.5. Phusion Passenger-served apps</a></div>
|
1292
|
-
<div class="foo toclevel3"><a href="#env_vars_and_sudo">15.4. Environment variables and sudo</a></div>
|
1293
|
-
</div>
|
1294
|
-
</div>
|
1295
|
-
<div id="content">
|
1296
|
-
|
1297
|
-
<div class="sect1">
|
1298
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_support_information"></span><h2 data-comment-topic="support-information-zkewk3" data-anchor="_support_information">1. Support information</h2>
|
1299
|
-
<div class="sectionbody">
|
1300
|
-
<div class="sect2">
|
1301
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_supported_operating_systems_and_languages"></span><h3 data-comment-topic="supported-operating-systems-rhbg35" data-anchor="_supported_operating_systems_and_languages">1.1. Supported operating systems and languages</h3>
|
1302
|
-
<div class="paragraph"><p>This documentation has moved. <a href="https://www.phusionpassenger.com/library/install/supported_operating_systems_and_languages.html">https://www.phusionpassenger.com/library/install/supported_operating_systems_and_languages.html</a></p></div>
|
1303
|
-
</div>
|
1304
|
-
<div class="sect2">
|
1305
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="where_to_get_support"></span><h3 data-comment-topic="where-to-get-support-f3pbrb" data-anchor="where_to_get_support">1.2. Where to get support</h3>
|
1306
|
-
<div class="ulist"><ul>
|
1307
|
-
<li>
|
1308
|
-
<p>
|
1309
|
-
<a href="http://groups.google.com/group/phusion-passenger">Community discussion forum</a> - post a
|
1310
|
-
message here if you’re experiencing problems. Support on this forum is provided by the community on a best-effort basis, so a (timely) response is not guaranteed.
|
1311
|
-
</p>
|
1312
|
-
</li>
|
1313
|
-
<li>
|
1314
|
-
<p>
|
1315
|
-
<a href="https://github.com/phusion/passenger/issues">Issue tracker</a> - report
|
1316
|
-
bugs here.
|
1317
|
-
</p>
|
1318
|
-
</li>
|
1319
|
-
<li>
|
1320
|
-
<p>
|
1321
|
-
Email <a href="mailto:support@phusion.nl">support@phusion.nl</a> if you are a <a href="https://www.phusionpassenger.com/enterprise">Phusion Passenger Enterprise</a> customer. Please mention your order reference. If you are not an Enterprise customer, we kindly redirect you to the community discussion forum instead.
|
1322
|
-
</p>
|
1323
|
-
</li>
|
1324
|
-
<li>
|
1325
|
-
<p>
|
1326
|
-
<a href="https://www.phusionpassenger.com/commercial_support">Commercial support contracts</a> are also available.
|
1327
|
-
</p>
|
1328
|
-
</li>
|
1329
|
-
<li>
|
1330
|
-
<p>
|
1331
|
-
Report security vulnerabilities to <a href="mailto:security@phusion.nl">security@phusion.nl</a>. We will do our best to respond to you as quickly as we can, so please do not disclose the vulnerability until then.
|
1332
|
-
</p>
|
1333
|
-
</li>
|
1334
|
-
</ul></div>
|
1335
|
-
<div class="paragraph"><p>Please consult <a href="https://www.phusionpassenger.com/support">the Phusion Passenger website</a> for a full list of support resources.</p></div>
|
1336
|
-
</div>
|
1337
|
-
</div>
|
1338
|
-
</div>
|
1339
|
-
<div class="sect1">
|
1340
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="installation"></span><h2 data-comment-topic="installing-upgrading-and-uninstalling-phusion-passenger-laryvs" data-anchor="installation">2. Installation</h2>
|
1341
|
-
<div class="sectionbody">
|
1342
|
-
<div class="sect2">
|
1343
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_synopsis"></span><h3 data-comment-topic="synopsis-l0om5d" data-anchor="_synopsis">2.1. Synopsis</h3>
|
1344
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/install/">https://www.phusionpassenger.com/library/install/</a></p></div>
|
1345
|
-
</div>
|
1346
|
-
<div class="sect2">
|
1347
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="install_osx_homebrew"></span><h3 data-comment-topic="installing-or-upgrading-on-mac-os-x-with-homebrew-1pia1cx" data-anchor="install_osx_homebrew">2.2. Installing or upgrading on Mac OS X with Homebrew</h3>
|
1348
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/install/">https://www.phusionpassenger.com/library/install/</a></p></div>
|
1349
|
-
</div>
|
1350
|
-
<div class="sect2">
|
1351
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="install_on_debian_ubuntu"></span><h3 data-comment-topic="installing-or-upgrading-on-ubuntu-1xg22xs" data-anchor="install_on_debian_ubuntu">2.3. Installing or upgrading on Debian or Ubuntu</h3>
|
1352
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/install/apt_repo/">https://www.phusionpassenger.com/library/install/apt_repo/</a></p></div>
|
1353
|
-
<div class="sect3">
|
1354
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="install_add_apt_repo"></span><h4 data-comment-topic="adding-our-apt-repository-1l8plxk" data-anchor="install_add_apt_repo">2.3.1. Adding our APT repository</h4>
|
1355
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/install/apt_repo/">https://www.phusionpassenger.com/library/install/apt_repo/</a></p></div>
|
1356
|
-
</div>
|
1357
|
-
<div class="sect3">
|
1358
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_installing_packages"></span><h4 data-comment-topic="installing-packages-1jxn722" data-anchor="_installing_packages">2.3.2. Installing packages</h4>
|
1359
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/install/apt_repo/">https://www.phusionpassenger.com/library/install/apt_repo/</a></p></div>
|
1360
|
-
</div>
|
1361
|
-
</div>
|
1362
|
-
<div class="sect2">
|
1363
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="installing_or_upgrading_on_red_hat"></span><h3 data-comment-topic="installing-or-upgrading-on-red-hat-fedora-centos-or-scientificlinux-1y5ie8b" data-anchor="installing_or_upgrading_on_red_hat">2.4. Installing or upgrading on Red Hat or CentOS</h3>
|
1364
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/install/yum_repo/">https://www.phusionpassenger.com/library/install/yum_repo/</a></p></div>
|
1365
|
-
<div class="sect3">
|
1366
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="install_add_yum_repo"></span><h4 data-comment-topic="adding-our-yum-repository-1fb671i" data-anchor="install_add_yum_repo">2.4.1. Adding our YUM repository</h4>
|
1367
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/install/yum_repo/">https://www.phusionpassenger.com/library/install/yum_repo/</a></p></div>
|
1368
|
-
</div>
|
1369
|
-
<div class="sect3">
|
1370
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_installing_packages_2"></span><h4 data-comment-topic="installing-packages-12a3uty" data-anchor="_installing_packages_2">2.4.2. Installing packages</h4>
|
1371
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/install/yum_repo/">https://www.phusionpassenger.com/library/install/yum_repo/</a></p></div>
|
1372
|
-
</div>
|
1373
|
-
</div>
|
1374
|
-
<div class="sect2">
|
1375
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_installing_or_upgrading_on_heroku"></span><h3 data-comment-topic="installing-or-upgrading-on-heroku-o0o2mk" data-anchor="_installing_or_upgrading_on_heroku">2.5. Installing or upgrading on Heroku</h3>
|
1376
|
-
<div class="paragraph"><p>Please refer to our <a href="https://github.com/phusion/passenger-ruby-heroku-demo#readme">Heroku Ruby demo</a> for installation and upgrade instructions for Heroku.</p></div>
|
1377
|
-
</div>
|
1378
|
-
<div class="sect2">
|
1379
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="rubygems_generic_install"></span><h3 data-comment-topic="installing-via-the-gem-39jw1u" data-anchor="rubygems_generic_install">2.6. Generic installation, upgrade and downgrade method: via RubyGems</h3>
|
1380
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/install/">https://www.phusionpassenger.com/library/install/</a></p></div>
|
1381
|
-
</div>
|
1382
|
-
<div class="sect2">
|
1383
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="tarball_generic_install"></span><h3 data-comment-topic="installing-via-the-source-tarball-1cgxrqc" data-anchor="tarball_generic_install">2.7. Generic installation, upgrade and downgrade method: via tarball</h3>
|
1384
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/install/">https://www.phusionpassenger.com/library/install/</a></p></div>
|
1385
|
-
</div>
|
1386
|
-
<div class="sect2">
|
1387
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_upgrading_from_open_source_to_enterprise"></span><h3 data-comment-topic="upgrading-from-open-source-to-enterprise-b17h8g" data-anchor="_upgrading_from_open_source_to_enterprise">2.8. Upgrading from open source to Enterprise</h3>
|
1388
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/install/nginx/upgrading_from_oss_to_enterprise.html">https://www.phusionpassenger.com/library/install/nginx/upgrading_from_oss_to_enterprise.html</a></p></div>
|
1389
|
-
</div>
|
1390
|
-
<div class="sect2">
|
1391
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_cryptographic_verification_of_installation_files"></span><h3 data-comment-topic="cryptographic-verification-of-installation-files-ed3r9v" data-anchor="_cryptographic_verification_of_installation_files">2.9. Cryptographic verification of installation files</h3>
|
1392
|
-
<div class="sect3">
|
1393
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_synopsis_2"></span><h4 data-comment-topic="synopsis-uwnz2o" data-anchor="_synopsis_2">2.9.1. Synopsis</h4>
|
1394
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/install/crypto_verify_install.html">https://www.phusionpassenger.com/library/install/crypto_verify_install.html</a></p></div>
|
1395
|
-
</div>
|
1396
|
-
<div class="sect3">
|
1397
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_importing_the_phusion_software_signing_key"></span><h4 data-comment-topic="importing-the-phusion-software-signing-key-1x0rhv" data-anchor="_importing_the_phusion_software_signing_key">2.9.2. Importing the Phusion Software Signing key</h4>
|
1398
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/install/crypto_verify_install.html">https://www.phusionpassenger.com/library/install/crypto_verify_install.html</a></p></div>
|
1399
|
-
</div>
|
1400
|
-
<div class="sect3">
|
1401
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_verifying_the_phusion_software_signing_key"></span><h4 data-comment-topic="verifying-the-phusion-software-signing-key-10430lg" data-anchor="_verifying_the_phusion_software_signing_key">2.9.3. Verifying the Phusion Software Signing key</h4>
|
1402
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/install/crypto_verify_install.html">https://www.phusionpassenger.com/library/install/crypto_verify_install.html</a></p></div>
|
1403
|
-
</div>
|
1404
|
-
<div class="sect3">
|
1405
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_verifying_the_gem_and_tarball"></span><h4 data-comment-topic="verifying-the-gem-and-tarball-1nf0uov" data-anchor="_verifying_the_gem_and_tarball">2.9.4. Verifying the gem and tarball</h4>
|
1406
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/install/crypto_verify_install.html">https://www.phusionpassenger.com/library/install/crypto_verify_install.html</a></p></div>
|
1407
|
-
</div>
|
1408
|
-
<div class="sect3">
|
1409
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_verifying_git_signatures"></span><h4 data-comment-topic="verifying-git-signatures-oaafwd" data-anchor="_verifying_git_signatures">2.9.5. Verifying Git signatures</h4>
|
1410
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/install/crypto_verify_install.html">https://www.phusionpassenger.com/library/install/crypto_verify_install.html</a></p></div>
|
1411
|
-
</div>
|
1412
|
-
<div class="sect3">
|
1413
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_verifying_debian_packages"></span><h4 data-comment-topic="verifying-deb-and-rpm-packages-vgtv04" data-anchor="_verifying_debian_packages">2.9.6. Verifying Debian packages</h4>
|
1414
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/install/crypto_verify_install.html">https://www.phusionpassenger.com/library/install/crypto_verify_install.html</a></p></div>
|
1415
|
-
</div>
|
1416
|
-
<div class="sect3">
|
1417
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_verifying_rpm_packages"></span><h4 data-comment-topic="verifying-rpm-packages-1nlx51r" data-anchor="_verifying_rpm_packages">2.9.7. Verifying RPM packages</h4>
|
1418
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/install/crypto_verify_install.html">https://www.phusionpassenger.com/library/install/crypto_verify_install.html</a></p></div>
|
1419
|
-
</div>
|
1420
|
-
<div class="sect3">
|
1421
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_revocation"></span><h4 data-comment-topic="revocation-4o01n2" data-anchor="_revocation">2.9.8. Revocation</h4>
|
1422
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/install/crypto_verify_install.html">https://www.phusionpassenger.com/library/install/crypto_verify_install.html</a></p></div>
|
1423
|
-
</div>
|
1424
|
-
</div>
|
1425
|
-
<div class="sect2">
|
1426
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_non_interactive_automatic_headless_installs_or_upgrades"></span><h3 data-comment-topic="non-interactive-automatic-headless-installs-or-upgrades-1arnxii" data-anchor="_non_interactive_automatic_headless_installs_or_upgrades">2.10. Non-interactive, automatic, headless installs or upgrades</h3>
|
1427
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/install/apache/noninteractive_install.html">https://www.phusionpassenger.com/library/install/apache/noninteractive_install.html</a></p></div>
|
1428
|
-
</div>
|
1429
|
-
<div class="sect2">
|
1430
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_customizing_the_compilation_process"></span><h3 data-comment-topic="customizing-the-compilation-process-1sds3od" data-anchor="_customizing_the_compilation_process">2.11. Customizing the compilation process</h3>
|
1431
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/install/apache/customizing_compilation_process.html">https://www.phusionpassenger.com/library/install/apache/customizing_compilation_process.html</a></p></div>
|
1432
|
-
<div class="sect3">
|
1433
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_setting_the_compiler"></span><h4 data-comment-topic="setting-the-compiler-1symq7h" data-anchor="_setting_the_compiler">2.11.1. Setting the compiler</h4>
|
1434
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/install/apache/customizing_compilation_process.html">https://www.phusionpassenger.com/library/install/apache/customizing_compilation_process.html</a></p></div>
|
1435
|
-
</div>
|
1436
|
-
<div class="sect3">
|
1437
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_adding_additional_compiler_or_linker_flags"></span><h4 data-comment-topic="adding-additional-compiler-or-linker-flags-wzu0ey" data-anchor="_adding_additional_compiler_or_linker_flags">2.11.2. Adding additional compiler or linker flags</h4>
|
1438
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/install/apache/customizing_compilation_process.html">https://www.phusionpassenger.com/library/install/apache/customizing_compilation_process.html</a></p></div>
|
1439
|
-
</div>
|
1440
|
-
<div class="sect3">
|
1441
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="forcing_location_of_command_line_tools_and_dependencies"></span><h4 data-comment-topic="forcing-location-of-certain-command-line-tools-1hym30u" data-anchor="forcing_location_of_command_line_tools_and_dependencies">2.11.3. Forcing location of command line tools and dependencies</h4>
|
1442
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/install/apache/customizing_compilation_process.html">https://www.phusionpassenger.com/library/install/apache/customizing_compilation_process.html</a></p></div>
|
1443
|
-
</div>
|
1444
|
-
</div>
|
1445
|
-
<div class="sect2">
|
1446
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="multiple_apache_installs"></span><h3 data-comment-topic="dealing-with-multiple-apache-installations-ks5nkz" data-anchor="multiple_apache_installs">2.12. Dealing with multiple Apache installations</h3>
|
1447
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/install/apache/multiple_apache_installs.html">https://www.phusionpassenger.com/library/install/apache/multiple_apache_installs.html</a></p></div>
|
1448
|
-
</div>
|
1449
|
-
<div class="sect2">
|
1450
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="working_with_apache_conf"></span><h3 data-comment-topic="locating-the-apache-configuration-file-1fterqv" data-anchor="working_with_apache_conf">2.13. Working with the Apache configuration file</h3>
|
1451
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/install/apache/working_with_the_apache_config_file.html">https://www.phusionpassenger.com/library/install/apache/working_with_the_apache_config_file.html</a></p></div>
|
1452
|
-
</div>
|
1453
|
-
<div class="sect2">
|
1454
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_disabling_without_uninstalling"></span><h3 data-comment-topic="unloading-disabling-phusion-passenger-from-apache-without-uninstalling-it-s1axnx" data-anchor="_disabling_without_uninstalling">2.14. Disabling without uninstalling</h3>
|
1455
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/install/apache/disable.html">https://www.phusionpassenger.com/library/install/apache/disable.html</a></p></div>
|
1456
|
-
</div>
|
1457
|
-
<div class="sect2">
|
1458
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="uninstalling"></span><h3 data-comment-topic="uninstalling-phusion-passenger-1qb4ssq" data-anchor="uninstalling">2.15. Uninstalling</h3>
|
1459
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/install/apache/uninstall/">https://www.phusionpassenger.com/library/install/apache/uninstall/</a></p></div>
|
1460
|
-
</div>
|
1461
|
-
<div class="sect2">
|
1462
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="moving_phusion_passenger"></span><h3 data-comment-topic="moving-to-a-different-directory-1n0gkwh" data-anchor="moving_phusion_passenger">2.16. Moving to a different directory</h3>
|
1463
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/install/apache/moving.html">https://www.phusionpassenger.com/library/install/apache/moving.html</a></p></div>
|
1464
|
-
</div>
|
1465
|
-
</div>
|
1466
|
-
</div>
|
1467
|
-
<div class="sect1">
|
1468
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_deploying_a_rack_based_ruby_application"></span><h2 data-comment-topic="deploying-a-rack-based-ruby-application-including-rails-3--hcs66f" data-anchor="_deploying_a_rack_based_ruby_application">3. Deploying a Rack-based Ruby application</h2>
|
1469
|
-
<div class="sectionbody">
|
1470
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/deploy/apache/">https://www.phusionpassenger.com/library/deploy/apache/</a></p></div>
|
1471
|
-
<div class="sect2">
|
1472
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_tutorial_example_writing_and_deploying_a_hello_world_rack_application"></span><h3 data-comment-topic="tutorial-example-writing-and-deploying-a-hello-world-rack-application-axp5z5" data-anchor="_tutorial_example_writing_and_deploying_a_hello_world_rack_application">3.1. Tutorial/example: writing and deploying a Hello World Rack application</h3>
|
1473
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/deploy/apache/">https://www.phusionpassenger.com/library/deploy/apache/</a></p></div>
|
1474
|
-
</div>
|
1475
|
-
<div class="sect2">
|
1476
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_deploying_to_a_virtual_host_8217_s_root"></span><h3 data-comment-topic="deploying-to-a-virtual-host-s-root-ab4zj6" data-anchor="_deploying_to_a_virtual_host_8217_s_root">3.2. Deploying to a virtual host’s root</h3>
|
1477
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/deploy/apache/">https://www.phusionpassenger.com/library/deploy/apache/</a></p></div>
|
1478
|
-
</div>
|
1479
|
-
<div class="sect2">
|
1480
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="deploying_rack_to_sub_uri"></span><h3 data-comment-topic="deploying-to-a-sub-uri-13rfygg" data-anchor="deploying_rack_to_sub_uri">3.3. Deploying to a sub URI</h3>
|
1481
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/deploy/apache/">https://www.phusionpassenger.com/library/deploy/apache/</a></p></div>
|
1482
|
-
</div>
|
1483
|
-
<div class="sect2">
|
1484
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_redeploying_restarting_the_rack_application"></span><h3 data-comment-topic="redeploying-restarting-the-rack-application--18m41m1" data-anchor="_redeploying_restarting_the_rack_application">3.4. Redeploying (restarting the Rack application)</h3>
|
1485
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/admin/apache/restart_app.html">https://www.phusionpassenger.com/library/admin/apache/restart_app.html</a></p></div>
|
1486
|
-
</div>
|
1487
|
-
<div class="sect2">
|
1488
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_rackup_specifications_for_various_web_frameworks"></span><h3 data-comment-topic="rackup-specifications-for-various-web-frameworks-ndsqc2" data-anchor="_rackup_specifications_for_various_web_frameworks">3.5. Rackup specifications for various web frameworks</h3>
|
1489
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/deploy/config_ru.html">https://www.phusionpassenger.com/library/deploy/config_ru.html</a></p></div>
|
1490
|
-
</div>
|
1491
|
-
</div>
|
1492
|
-
</div>
|
1493
|
-
<div class="sect1">
|
1494
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_deploying_a_wsgi_python_application"></span><h2 data-comment-topic="deploying-a-wsgi-python-application-7aygdl" data-anchor="_deploying_a_wsgi_python_application">4. Deploying a WSGI (Python) application</h2>
|
1495
|
-
<div class="sectionbody">
|
1496
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/deploy/apache/">https://www.phusionpassenger.com/library/deploy/apache/</a></p></div>
|
1497
|
-
<div class="sect2">
|
1498
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_tutorial_example_writing_and_deploying_a_hello_world_wsgi_application"></span><h3 data-comment-topic="tutorial-example-writing-and-deploying-a-hello-world-wsgi-application-9ziqy8" data-anchor="_tutorial_example_writing_and_deploying_a_hello_world_wsgi_application">4.1. Tutorial/example: writing and deploying a Hello World WSGI application</h3>
|
1499
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/deploy/apache/">https://www.phusionpassenger.com/library/deploy/apache/</a></p></div>
|
1500
|
-
</div>
|
1501
|
-
<div class="sect2">
|
1502
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_deploying_to_a_virtual_host_8217_s_root_2"></span><h3 data-comment-topic="deploying-to-a-virtual-host-s-root-u9bfax" data-anchor="_deploying_to_a_virtual_host_8217_s_root_2">4.2. Deploying to a virtual host’s root</h3>
|
1503
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/deploy/apache/">https://www.phusionpassenger.com/library/deploy/apache/</a></p></div>
|
1504
|
-
</div>
|
1505
|
-
<div class="sect2">
|
1506
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="deploying_python_to_sub_uri"></span><h3 data-comment-topic="deploying-to-a-sub-uri-zekba6" data-anchor="deploying_python_to_sub_uri">4.3. Deploying to a sub URI</h3>
|
1507
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/deploy/apache/">https://www.phusionpassenger.com/library/deploy/apache/</a></p></div>
|
1508
|
-
</div>
|
1509
|
-
<div class="sect2">
|
1510
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_redeploying_restarting_the_wsgi_application"></span><h3 data-comment-topic="redeploying-restarting-the-wsgi-application--na7pmf" data-anchor="_redeploying_restarting_the_wsgi_application">4.4. Redeploying (restarting the WSGI application)</h3>
|
1511
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/admin/apache/restart_app.html">https://www.phusionpassenger.com/library/admin/apache/restart_app.html</a></p></div>
|
1512
|
-
</div>
|
1513
|
-
<div class="sect2">
|
1514
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_sample_span_class_monospaced_passenger_wsgi_py_span_for_django"></span><h3 data-comment-topic="sample-passenger-wsgi-py-for-django-slb9m8" data-anchor="_sample_span_class_monospaced_passenger_wsgi_py_span_for_django">4.5. Sample <span class="monospaced">passenger_wsgi.py</span> for Django</h3>
|
1515
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/deploy/wsgi_spec.html">https://www.phusionpassenger.com/library/deploy/wsgi_spec.html</a></p></div>
|
1516
|
-
</div>
|
1517
|
-
</div>
|
1518
|
-
</div>
|
1519
|
-
<div class="sect1">
|
1520
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_deploying_a_node_js_application"></span><h2 data-comment-topic="deploying-a-node-js-application-882ecy" data-anchor="_deploying_a_node_js_application">5. Deploying a Node.js application</h2>
|
1521
|
-
<div class="sectionbody">
|
1522
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/deploy/apache/">https://www.phusionpassenger.com/library/deploy/apache/</a></p></div>
|
1523
|
-
</div>
|
1524
|
-
</div>
|
1525
|
-
<div class="sect1">
|
1526
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_deploying_a_meteor_application"></span><h2 data-comment-topic="deploying-a-meteor-application-mxfmir" data-anchor="_deploying_a_meteor_application">6. Deploying a Meteor application</h2>
|
1527
|
-
<div class="sectionbody">
|
1528
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/deploy/apache/">https://www.phusionpassenger.com/library/deploy/apache/</a></p></div>
|
1529
|
-
</div>
|
1530
|
-
</div>
|
1531
|
-
<div class="sect1">
|
1532
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_configuring_phusion_passenger"></span><h2 data-comment-topic="configuring-phusion-passenger-11oztoe" data-anchor="_configuring_phusion_passenger">7. Configuring Phusion Passenger</h2>
|
1533
|
-
<div class="sectionbody">
|
1534
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/">https://www.phusionpassenger.com/library/config/apache/</a></p></div>
|
1535
|
-
<div class="sect2">
|
1536
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerRoot"></span><h3 data-comment-topic="passengerroot-directory--sere8l" data-anchor="PassengerRoot">7.1. PassengerRoot <directory></h3>
|
1537
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerroot">https://www.phusionpassenger.com/library/config/apache/reference/#passengerroot</a></p></div>
|
1538
|
-
</div>
|
1539
|
-
<div class="sect2">
|
1540
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerDefaultRuby"></span><h3 data-comment-topic="passengerdefaultruby-and-passengerruby-7zblp8" data-anchor="PassengerDefaultRuby">7.2. PassengerDefaultRuby <filename></h3>
|
1541
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerdefaultruby">https://www.phusionpassenger.com/library/config/apache/reference/#passengerdefaultruby</a></p></div>
|
1542
|
-
</div>
|
1543
|
-
<div class="sect2">
|
1544
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_deployment_options"></span><h3 data-comment-topic="deployment-options-1unzrll" data-anchor="_deployment_options">7.3. Deployment options</h3>
|
1545
|
-
<div class="sect3">
|
1546
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerEnabled"></span><h4 data-comment-topic="passengerenabled-on-off--74rzth" data-anchor="PassengerEnabled">7.3.1. PassengerEnabled <on|off></h4>
|
1547
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerenabled">https://www.phusionpassenger.com/library/config/apache/reference/#passengerenabled</a></p></div>
|
1548
|
-
</div>
|
1549
|
-
<div class="sect3">
|
1550
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerBaseURI"></span><h4 data-comment-topic="passengerbaseuri-uri--97i9mm" data-anchor="PassengerBaseURI">7.3.2. PassengerBaseURI <uri></h4>
|
1551
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerbaseuri">https://www.phusionpassenger.com/library/config/apache/reference/#passengerbaseuri</a></p></div>
|
1552
|
-
</div>
|
1553
|
-
</div>
|
1554
|
-
<div class="sect2">
|
1555
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_application_loading_options"></span><h3 data-comment-topic="application-loading-options-1uedd4o" data-anchor="_application_loading_options">7.4. Application loading options</h3>
|
1556
|
-
<div class="sect3">
|
1557
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerRuby"></span><h4 data-comment-topic="passengerruby-filename--1r3fv73" data-anchor="PassengerRuby">7.4.1. PassengerRuby <filename></h4>
|
1558
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerruby">https://www.phusionpassenger.com/library/config/apache/reference/#passengerruby</a></p></div>
|
1559
|
-
</div>
|
1560
|
-
<div class="sect3">
|
1561
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengerpython_lt_filename_gt"></span><h4 data-comment-topic="passengerpython-filename--1ssesv3" data-anchor="_passengerpython_lt_filename_gt">7.4.2. PassengerPython <filename></h4>
|
1562
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerpython">https://www.phusionpassenger.com/library/config/apache/reference/#passengerpython</a></p></div>
|
1563
|
-
</div>
|
1564
|
-
<div class="sect3">
|
1565
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengernodejs_lt_filename_gt"></span><h4 data-comment-topic="passengernodejs-filename--2mjb1j" data-anchor="_passengernodejs_lt_filename_gt">7.4.3. PassengerNodejs <filename></h4>
|
1566
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengernodejs">https://www.phusionpassenger.com/library/config/apache/reference/#passengernodejs</a></p></div>
|
1567
|
-
</div>
|
1568
|
-
<div class="sect3">
|
1569
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengermeteorappsettings_lt_filename_gt"></span><h4 data-comment-topic="passengermeteorappsettings-filename--inl1bd" data-anchor="_passengermeteorappsettings_lt_filename_gt">7.4.4. PassengerMeteorAppSettings <filename></h4>
|
1570
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengermeteorappsettings">https://www.phusionpassenger.com/library/config/apache/reference/#passengermeteorappsettings</a></p></div>
|
1571
|
-
</div>
|
1572
|
-
<div class="sect3">
|
1573
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerAppEnv"></span><h4 data-comment-topic="passengerappenv-string--s3ojlc" data-anchor="PassengerAppEnv">7.4.5. PassengerAppEnv <string></h4>
|
1574
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerappenv">https://www.phusionpassenger.com/library/config/apache/reference/#passengerappenv</a></p></div>
|
1575
|
-
</div>
|
1576
|
-
<div class="sect3">
|
1577
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="rails_env"></span><h4 data-comment-topic="railsenv-string--1b0xxvu" data-anchor="rails_env">7.4.6. RailsEnv <string></h4>
|
1578
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#railsenv-rackenv">https://www.phusionpassenger.com/library/config/apache/reference/#railsenv-rackenv</a></p></div>
|
1579
|
-
</div>
|
1580
|
-
<div class="sect3">
|
1581
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="rack_env"></span><h4 data-comment-topic="rackenv-string--vve9py" data-anchor="rack_env">7.4.7. RackEnv <string></h4>
|
1582
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#railsenv-rackenv">https://www.phusionpassenger.com/library/config/apache/reference/#railsenv-rackenv</a></p></div>
|
1583
|
-
</div>
|
1584
|
-
<div class="sect3">
|
1585
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerAppRoot"></span><h4 data-comment-topic="passengerapproot-path-to-root--uf24yd" data-anchor="PassengerAppRoot">7.4.8. PassengerAppRoot <path/to/root></h4>
|
1586
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerapproot">https://www.phusionpassenger.com/library/config/apache/reference/#passengerapproot</a></p></div>
|
1587
|
-
</div>
|
1588
|
-
<div class="sect3">
|
1589
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerAppGroupName"></span><h4 data-comment-topic="passenger-app-group-name-name--6unn5c" data-anchor="PassengerAppGroupName">7.4.9. PassengerAppGroupName <name></h4>
|
1590
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerappgroupname">https://www.phusionpassenger.com/library/config/apache/reference/#passengerappgroupname</a></p></div>
|
1591
|
-
</div>
|
1592
|
-
<div class="sect3">
|
1593
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerAppType"></span><h4 data-comment-topic="passengerapptype-name--62jzqf" data-anchor="PassengerAppType">7.4.10. PassengerAppType <name></h4>
|
1594
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerapptype">https://www.phusionpassenger.com/library/config/apache/reference/#passengerapptype</a></p></div>
|
1595
|
-
</div>
|
1596
|
-
<div class="sect3">
|
1597
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerStartupFile"></span><h4 data-comment-topic="passengerstartupfile-filename--14vhvn9" data-anchor="PassengerStartupFile">7.4.11. PassengerStartupFile <filename></h4>
|
1598
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerstartupfile">https://www.phusionpassenger.com/library/config/apache/reference/#passengerstartupfile</a></p></div>
|
1599
|
-
</div>
|
1600
|
-
<div class="sect3">
|
1601
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengerrestartdir_lt_directory_gt"></span><h4 data-comment-topic="passengerrestartdir-directory--1fmhmv0" data-anchor="_passengerrestartdir_lt_directory_gt">7.4.12. PassengerRestartDir <directory></h4>
|
1602
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerrestartdir">https://www.phusionpassenger.com/library/config/apache/reference/#passengerrestartdir</a></p></div>
|
1603
|
-
</div>
|
1604
|
-
<div class="sect3">
|
1605
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerSpawnMethod"></span><h4 data-comment-topic="passengerspawnmethod-string--sodg2y" data-anchor="PassengerSpawnMethod">7.4.13. PassengerSpawnMethod <string></h4>
|
1606
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerspawnmethod">https://www.phusionpassenger.com/library/config/apache/reference/#passengerspawnmethod</a></p></div>
|
1607
|
-
</div>
|
1608
|
-
<div class="sect3">
|
1609
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerLoadShellEnvvars"></span><h4 data-comment-topic="passengerloadshellenvvars-on-off--1290yz1" data-anchor="PassengerLoadShellEnvvars">7.4.14. PassengerLoadShellEnvvars <on|off></h4>
|
1610
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerloadshellenvvars">https://www.phusionpassenger.com/library/config/apache/reference/#passengerloadshellenvvars</a></p></div>
|
1611
|
-
</div>
|
1612
|
-
<div class="sect3">
|
1613
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerRollingRestarts"></span><h4 data-comment-topic="passengerrollingrestarts" data-anchor="PassengerRollingRestarts">7.4.15. PassengerRollingRestarts <on|off></h4>
|
1614
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerrollingrestarts">https://www.phusionpassenger.com/library/config/apache/reference/#passengerrollingrestarts</a></p></div>
|
1615
|
-
</div>
|
1616
|
-
<div class="sect3">
|
1617
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerResistDeploymentErrors"></span><h4 data-comment-topic="passengerresistdeploymenterrors" data-anchor="PassengerResistDeploymentErrors">7.4.16. PassengerResistDeploymentErrors <on|off></h4>
|
1618
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerresistdeploymenterrors">https://www.phusionpassenger.com/library/config/apache/reference/#passengerresistdeploymenterrors</a></p></div>
|
1619
|
-
</div>
|
1620
|
-
</div>
|
1621
|
-
<div class="sect2">
|
1622
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_security_options"></span><h3 data-comment-topic="security-options-1pb75ho" data-anchor="_security_options">7.5. Security options</h3>
|
1623
|
-
<div class="sect3">
|
1624
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerUserSwitching"></span><h4 data-comment-topic="passengeruserswitching" data-anchor="PassengerUserSwitching">7.5.1. PassengerUserSwitching <on|off></h4>
|
1625
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengeruserswitching">https://www.phusionpassenger.com/library/config/apache/reference/#passengeruserswitching</a></p></div>
|
1626
|
-
</div>
|
1627
|
-
<div class="sect3">
|
1628
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerUser"></span><h4 data-comment-topic="passengeruser" data-anchor="PassengerUser">7.5.2. PassengerUser <username></h4>
|
1629
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengeruser">https://www.phusionpassenger.com/library/config/apache/reference/#passengeruser</a></p></div>
|
1630
|
-
</div>
|
1631
|
-
<div class="sect3">
|
1632
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerGroup"></span><h4 data-comment-topic="passengergroup" data-anchor="PassengerGroup">7.5.3. PassengerGroup <group name></h4>
|
1633
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengergroup">https://www.phusionpassenger.com/library/config/apache/reference/#passengergroup</a></p></div>
|
1634
|
-
</div>
|
1635
|
-
<div class="sect3">
|
1636
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerDefaultUser"></span><h4 data-comment-topic="passengerdefaultuser" data-anchor="PassengerDefaultUser">7.5.4. PassengerDefaultUser <username></h4>
|
1637
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerdefaultuser">https://www.phusionpassenger.com/library/config/apache/reference/#passengerdefaultuser</a></p></div>
|
1638
|
-
</div>
|
1639
|
-
<div class="sect3">
|
1640
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerDefaultGroup"></span><h4 data-comment-topic="passengerdefaultgroup" data-anchor="PassengerDefaultGroup">7.5.5. PassengerDefaultGroup <group name></h4>
|
1641
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerdefaultgroup">https://www.phusionpassenger.com/library/config/apache/reference/#passengerdefaultgroup</a></p></div>
|
1642
|
-
</div>
|
1643
|
-
<div class="sect3">
|
1644
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengershowversioninheader_lt_on_off_gt"></span><h4 data-comment-topic="passengershowversioninheader-on-off--2iocj2" data-anchor="_passengershowversioninheader_lt_on_off_gt">7.5.6. PassengerShowVersionInHeader <on|off></h4>
|
1645
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengershowversioninheader">https://www.phusionpassenger.com/library/config/apache/reference/#passengershowversioninheader</a></p></div>
|
1646
|
-
</div>
|
1647
|
-
<div class="sect3">
|
1648
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerFriendlyErrorPages"></span><h4 data-comment-topic="passengerfriendlyerrorpages" data-anchor="PassengerFriendlyErrorPages">7.5.7. PassengerFriendlyErrorPages <on|off></h4>
|
1649
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerfriendlyerrorpages">https://www.phusionpassenger.com/library/config/apache/reference/#passengerfriendlyerrorpages</a></p></div>
|
1650
|
-
</div>
|
1651
|
-
</div>
|
1652
|
-
<div class="sect2">
|
1653
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_resource_control_and_optimization_options"></span><h3 data-comment-topic="resource-control-and-optimization-options-zu2f7u" data-anchor="_resource_control_and_optimization_options">7.6. Resource control and optimization options</h3>
|
1654
|
-
<div class="sect3">
|
1655
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerMaxPoolSize"></span><h4 data-comment-topic="passengermaxpoolsize-integer--am64q8" data-anchor="PassengerMaxPoolSize">7.6.1. PassengerMaxPoolSize <integer></h4>
|
1656
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengermaxpoolsize">https://www.phusionpassenger.com/library/config/apache/reference/#passengermaxpoolsize</a></p></div>
|
1657
|
-
</div>
|
1658
|
-
<div class="sect3">
|
1659
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerMinInstances"></span><h4 data-comment-topic="passengermininstances-integer--wegq6b" data-anchor="PassengerMinInstances">7.6.2. PassengerMinInstances <integer></h4>
|
1660
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengermininstances">https://www.phusionpassenger.com/library/config/apache/reference/#passengermininstances</a></p></div>
|
1661
|
-
</div>
|
1662
|
-
<div class="sect3">
|
1663
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerMaxInstances"></span><h4 data-comment-topic="passengermaxinstances" data-anchor="PassengerMaxInstances">7.6.3. PassengerMaxInstances <integer></h4>
|
1664
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengermaxinstances">https://www.phusionpassenger.com/library/config/apache/reference/#passengermaxinstances</a></p></div>
|
1665
|
-
</div>
|
1666
|
-
<div class="sect3">
|
1667
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengermaxinstancesperapp_lt_integer_gt"></span><h4 data-comment-topic="passengermaxinstancesperapp" data-anchor="_passengermaxinstancesperapp_lt_integer_gt">7.6.4. PassengerMaxInstancesPerApp <integer></h4>
|
1668
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengermaxinstancesperapp">https://www.phusionpassenger.com/library/config/apache/reference/#passengermaxinstancesperapp</a></p></div>
|
1669
|
-
</div>
|
1670
|
-
<div class="sect3">
|
1671
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerPoolIdleTime"></span><h4 data-comment-topic="passengerpoolidletime-integer--a3gunq" data-anchor="PassengerPoolIdleTime">7.6.5. PassengerPoolIdleTime <integer></h4>
|
1672
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerpoolidletime">https://www.phusionpassenger.com/library/config/apache/reference/#passengerpoolidletime</a></p></div>
|
1673
|
-
</div>
|
1674
|
-
<div class="sect3">
|
1675
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerMaxPreloaderIdleTime"></span><h4 data-comment-topic="railsappspawneridletime-integer--1awgog1" data-anchor="PassengerMaxPreloaderIdleTime">7.6.6. PassengerMaxPreloaderIdleTime <integer></h4>
|
1676
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengermaxpreloaderidletime">https://www.phusionpassenger.com/library/config/apache/reference/#passengermaxpreloaderidletime</a></p></div>
|
1677
|
-
</div>
|
1678
|
-
<div class="sect3">
|
1679
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengerstarttimeout_lt_seconds_gt"></span><h4 data-comment-topic="passengerstarttimeout-seconds--ihnfku" data-anchor="_passengerstarttimeout_lt_seconds_gt">7.6.7. PassengerStartTimeout <seconds></h4>
|
1680
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerstarttimeout">https://www.phusionpassenger.com/library/config/apache/reference/#passengerstarttimeout</a></p></div>
|
1681
|
-
</div>
|
1682
|
-
<div class="sect3">
|
1683
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerConcurrencyModel"></span><h4 data-comment-topic="passengerconcurrencymodel-process-thread--1eipofj" data-anchor="PassengerConcurrencyModel">7.6.8. PassengerConcurrencyModel <process|thread></h4>
|
1684
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerconcurrencymodel">https://www.phusionpassenger.com/library/config/apache/reference/#passengerconcurrencymodel</a></p></div>
|
1685
|
-
</div>
|
1686
|
-
<div class="sect3">
|
1687
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerThreadCount"></span><h4 data-comment-topic="passengerthreadcount-number--10jl64a" data-anchor="PassengerThreadCount">7.6.9. PassengerThreadCount <number></h4>
|
1688
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerthreadcount">https://www.phusionpassenger.com/library/config/apache/reference/#passengerthreadcount</a></p></div>
|
1689
|
-
</div>
|
1690
|
-
<div class="sect3">
|
1691
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerMaxRequests"></span><h4 data-comment-topic="passengermaxrequests-integer--17qkw9n" data-anchor="PassengerMaxRequests">7.6.10. PassengerMaxRequests <integer></h4>
|
1692
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengermaxrequests">https://www.phusionpassenger.com/library/config/apache/reference/#passengermaxrequests</a></p></div>
|
1693
|
-
</div>
|
1694
|
-
<div class="sect3">
|
1695
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerMaxRequestTime"></span><h4 data-comment-topic="passengermaxrequesttime-seconds--127v1i2" data-anchor="PassengerMaxRequestTime">7.6.11. PassengerMaxRequestTime <seconds></h4>
|
1696
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengermaxrequesttime">https://www.phusionpassenger.com/library/config/apache/reference/#passengermaxrequesttime</a></p></div>
|
1697
|
-
</div>
|
1698
|
-
<div class="sect3">
|
1699
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerMemoryLimit"></span><h4 data-comment-topic="passengermemorylimit-integer--18irza1" data-anchor="PassengerMemoryLimit">7.6.12. PassengerMemoryLimit <integer></h4>
|
1700
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengermemorylimit">https://www.phusionpassenger.com/library/config/apache/reference/#passengermemorylimit</a></p></div>
|
1701
|
-
</div>
|
1702
|
-
<div class="sect3">
|
1703
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengerstatthrottlerate_lt_integer_gt"></span><h4 data-comment-topic="passengerstatthrottlerate-integer--1dcfda3" data-anchor="_passengerstatthrottlerate_lt_integer_gt">7.6.13. PassengerStatThrottleRate <integer></h4>
|
1704
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerstatthrottlerate">https://www.phusionpassenger.com/library/config/apache/reference/#passengerstatthrottlerate</a></p></div>
|
1705
|
-
</div>
|
1706
|
-
<div class="sect3">
|
1707
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerPreStart"></span><h4 data-comment-topic="passengerprestart-url--1utb57k" data-anchor="PassengerPreStart">7.6.14. PassengerPreStart <url></h4>
|
1708
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerprestart">https://www.phusionpassenger.com/library/config/apache/reference/#passengerprestart</a></p></div>
|
1709
|
-
</div>
|
1710
|
-
<div class="sect3">
|
1711
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerHighPerformance"></span><h4 data-comment-topic="passengerhighperformance-on-off--nvfa86" data-anchor="PassengerHighPerformance">7.6.15. PassengerHighPerformance <on|off></h4>
|
1712
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerhighperformance">https://www.phusionpassenger.com/library/config/apache/reference/#passengerhighperformance</a></p></div>
|
1713
|
-
</div>
|
1714
|
-
</div>
|
1715
|
-
<div class="sect2">
|
1716
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_connection_handling_options"></span><h3 data-comment-topic="connection-handling-options-1k3zd1a" data-anchor="_connection_handling_options">7.7. Connection handling options</h3>
|
1717
|
-
<div class="sect3">
|
1718
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerBufferUpload"></span><h4 data-comment-topic="passengerbufferupload-on-off--1lsjr93" data-anchor="PassengerBufferUpload">7.7.1. PassengerBufferUpload <on|off></h4>
|
1719
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerbufferupload">https://www.phusionpassenger.com/library/config/apache/reference/#passengerbufferupload</a></p></div>
|
1720
|
-
</div>
|
1721
|
-
<div class="sect3">
|
1722
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerBufferResponse"></span><h4 data-comment-topic="passengerbufferresponse-on-off--1y7ilka" data-anchor="PassengerBufferResponse">7.7.2. PassengerBufferResponse <on|off></h4>
|
1723
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerbufferresponse">https://www.phusionpassenger.com/library/config/apache/reference/#passengerbufferresponse</a></p></div>
|
1724
|
-
</div>
|
1725
|
-
<div class="sect3">
|
1726
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerResponseBufferHighWatermark"></span><h4 data-comment-topic="passengerresponsebufferhighwatermark-bytes--1kj32df" data-anchor="PassengerResponseBufferHighWatermark">7.7.3. PassengerResponseBufferHighWatermark <bytes></h4>
|
1727
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerresponsebufferhighwatermark">https://www.phusionpassenger.com/library/config/apache/reference/#passengerresponsebufferhighwatermark</a></p></div>
|
1728
|
-
</div>
|
1729
|
-
<div class="sect3">
|
1730
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerErrorOverride"></span><h4 data-comment-topic="passengererroroverride-on-off--1pq9nez" data-anchor="PassengerErrorOverride">7.7.4. PassengerErrorOverride <on|off></h4>
|
1731
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengererroroverride">https://www.phusionpassenger.com/library/config/apache/reference/#passengererroroverride</a></p></div>
|
1732
|
-
</div>
|
1733
|
-
<div class="sect3">
|
1734
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerMaxRequestQueueSize"></span><h4 data-comment-topic="passenger-max-request-queue-size-number--1f1uocd" data-anchor="PassengerMaxRequestQueueSize">7.7.5. PassengerMaxRequestQueueSize <number></h4>
|
1735
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengermaxrequestqueuesize">https://www.phusionpassenger.com/library/config/apache/reference/#passengermaxrequestqueuesize</a></p></div>
|
1736
|
-
</div>
|
1737
|
-
<div class="sect3">
|
1738
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerStickySessions"></span><h4 data-comment-topic="passengerstickysessions-on-off--fx1jkt" data-anchor="PassengerStickySessions">7.7.6. PassengerStickySessions <on|off></h4>
|
1739
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerstickysessions">https://www.phusionpassenger.com/library/config/apache/reference/#passengerstickysessions</a></p></div>
|
1740
|
-
</div>
|
1741
|
-
<div class="sect3">
|
1742
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerStickySessionsCookieName"></span><h4 data-comment-topic="passenger-sticky-sessions-cookie-name-stktkx" data-anchor="PassengerStickySessionsCookieName">7.7.7. PassengerStickySessionsCookieName</h4>
|
1743
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerstickysessionscookiename">https://www.phusionpassenger.com/library/config/apache/reference/#passengerstickysessionscookiename</a></p></div>
|
1744
|
-
</div>
|
1745
|
-
</div>
|
1746
|
-
<div class="sect2">
|
1747
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_compatibility_options"></span><h3 data-comment-topic="compatibility-options-8jve5a" data-anchor="_compatibility_options">7.8. Compatibility options</h3>
|
1748
|
-
<div class="sect3">
|
1749
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerResolveSymlinksInDocumentRoot"></span><h4 data-comment-topic="passengerresolvesymlinksindocumentroot-on-off--1r0qcp8" data-anchor="PassengerResolveSymlinksInDocumentRoot">7.8.1. PassengerResolveSymlinksInDocumentRoot <on|off></h4>
|
1750
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerresolvesymlinksindocumentroot">https://www.phusionpassenger.com/library/config/apache/reference/#passengerresolvesymlinksindocumentroot</a></p></div>
|
1751
|
-
</div>
|
1752
|
-
<div class="sect3">
|
1753
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengerallowencodedslashes_lt_on_off_gt"></span><h4 data-comment-topic="passengerallowencodedslashes-on-off--1y3s1ww" data-anchor="_passengerallowencodedslashes_lt_on_off_gt">7.8.2. PassengerAllowEncodedSlashes <on|off></h4>
|
1754
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerallowencodedslashes">https://www.phusionpassenger.com/library/config/apache/reference/#passengerallowencodedslashes</a></p></div>
|
1755
|
-
</div>
|
1756
|
-
</div>
|
1757
|
-
<div class="sect2">
|
1758
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_logging_and_debugging_options"></span><h3 data-comment-topic="logging-and-debugging-options-el2cuc" data-anchor="_logging_and_debugging_options">7.9. Logging and debugging options</h3>
|
1759
|
-
<div class="sect3">
|
1760
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerLogLevel"></span><h4 data-comment-topic="passengerloglevel-integer--s3kbil" data-anchor="PassengerLogLevel">7.9.1. PassengerLogLevel <integer></h4>
|
1761
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerloglevel">https://www.phusionpassenger.com/library/config/apache/reference/#passengerloglevel</a></p></div>
|
1762
|
-
</div>
|
1763
|
-
<div class="sect3">
|
1764
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerLogFile"></span><h4 data-comment-topic="passengerdebuglogfile-filename--1wjm2j1" data-anchor="PassengerLogFile">7.9.2. PassengerLogFile <filename></h4>
|
1765
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerlogfile">https://www.phusionpassenger.com/library/config/apache/reference/#passengerlogfile</a></p></div>
|
1766
|
-
</div>
|
1767
|
-
<div class="sect3">
|
1768
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengerfiledescriptorlogfile_lt_filename_gt"></span><h4 data-comment-topic="passengerfiledescriptorlogfile-filename--1su5dcn" data-anchor="_passengerfiledescriptorlogfile_lt_filename_gt">7.9.3. PassengerFileDescriptorLogFile <filename></h4>
|
1769
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerfiledescriptorlogfile">https://www.phusionpassenger.com/library/config/apache/reference/#passengerfiledescriptorlogfile</a></p></div>
|
1770
|
-
</div>
|
1771
|
-
<div class="sect3">
|
1772
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengerdebugger_lt_on_off_gt"></span><h4 data-comment-topic="passengerdebugger-on-off--19you7e" data-anchor="_passengerdebugger_lt_on_off_gt">7.9.4. PassengerDebugger <on|off></h4>
|
1773
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerdebugger">https://www.phusionpassenger.com/library/config/apache/reference/#passengerdebugger</a></p></div>
|
1774
|
-
</div>
|
1775
|
-
</div>
|
1776
|
-
<div class="sect2">
|
1777
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_advanced_options"></span><h3 data-comment-topic="advanced-options-1ab1jkq" data-anchor="_advanced_options">7.10. Advanced options</h3>
|
1778
|
-
<div class="sect3">
|
1779
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerInstanceRegistryDir"></span><h4 data-comment-topic="passengerinstanceregistrydir-directory--7r1ks8" data-anchor="PassengerInstanceRegistryDir">7.10.1. PassengerInstanceRegistryDir <directory></h4>
|
1780
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerinstanceregistrydir">https://www.phusionpassenger.com/library/config/apache/reference/#passengerinstanceregistrydir</a></p></div>
|
1781
|
-
</div>
|
1782
|
-
<div class="sect3">
|
1783
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="PassengerDataBufferDir"></span><h4 data-comment-topic="passengerdatabufferdir-directory--170fjqg" data-anchor="PassengerDataBufferDir">7.10.2. PassengerDataBufferDir <directory></h4>
|
1784
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerdatabufferdir">https://www.phusionpassenger.com/library/config/apache/reference/#passengerdatabufferdir</a></p></div>
|
1785
|
-
</div>
|
1786
|
-
</div>
|
1787
|
-
<div class="sect2">
|
1788
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_deprecated_or_removed_options"></span><h3 data-comment-topic="deprecated-options-pm9m57" data-anchor="_deprecated_or_removed_options">7.11. Deprecated or removed options</h3>
|
1789
|
-
<div class="sect3">
|
1790
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_railsruby"></span><h4 data-comment-topic="railsruby-ht09ei" data-anchor="_railsruby">7.11.1. RailsRuby</h4>
|
1791
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#railsruby">https://www.phusionpassenger.com/library/config/apache/reference/#railsruby</a></p></div>
|
1792
|
-
</div>
|
1793
|
-
<div class="sect3">
|
1794
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_railsbaseuri_and_rackbaseuri"></span><h4 data-comment-topic="railsbaseuri-uri--1txrw3k" data-anchor="_railsbaseuri_and_rackbaseuri">7.11.2. RailsBaseURI and RackBaseURI</h4>
|
1795
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#railsbaseuri-rackbaseuri">https://www.phusionpassenger.com/library/config/apache/reference/#railsbaseuri-rackbaseuri</a></p></div>
|
1796
|
-
</div>
|
1797
|
-
<div class="sect3">
|
1798
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_railsuserswitching"></span><h4 data-comment-topic="railsuserswitching-1npx8y4" data-anchor="_railsuserswitching">7.11.3. RailsUserSwitching</h4>
|
1799
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#railsuserswitching">https://www.phusionpassenger.com/library/config/apache/reference/#railsuserswitching</a></p></div>
|
1800
|
-
</div>
|
1801
|
-
<div class="sect3">
|
1802
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_railsdefaultuser"></span><h4 data-comment-topic="railsdefaultuser-19j7n3m" data-anchor="_railsdefaultuser">7.11.4. RailsDefaultUser</h4>
|
1803
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#railsdefaultuser">https://www.phusionpassenger.com/library/config/apache/reference/#railsdefaultuser</a></p></div>
|
1804
|
-
</div>
|
1805
|
-
<div class="sect3">
|
1806
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_railsallowmodrewrite"></span><h4 data-comment-topic="railsallowmodrewrite-1vkziro" data-anchor="_railsallowmodrewrite">7.11.5. RailsAllowModRewrite</h4>
|
1807
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#railsallowmodrewrite">https://www.phusionpassenger.com/library/config/apache/reference/#railsallowmodrewrite</a></p></div>
|
1808
|
-
</div>
|
1809
|
-
<div class="sect3">
|
1810
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_railsspawnmethod"></span><h4 data-comment-topic="railsspawnmethod-1aljgpa" data-anchor="_railsspawnmethod">7.11.6. RailsSpawnMethod</h4>
|
1811
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#railsspawnmethod">https://www.phusionpassenger.com/library/config/apache/reference/#railsspawnmethod</a></p></div>
|
1812
|
-
</div>
|
1813
|
-
<div class="sect3">
|
1814
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_railsautodetect_rackautodetect_and_wsgiautodetect"></span><h4 data-comment-topic="railsautodetect-rackautodetect-and-wsgiautodetect-1qgakzs" data-anchor="_railsautodetect_rackautodetect_and_wsgiautodetect">7.11.7. RailsAutoDetect, RackAutoDetect and WsgiAutoDetect</h4>
|
1815
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#railsautodetect-rackautodetect-and-wsgiautodetect">https://www.phusionpassenger.com/library/config/apache/reference/#railsautodetect-rackautodetect-and-wsgiautodetect</a></p></div>
|
1816
|
-
</div>
|
1817
|
-
<div class="sect3">
|
1818
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_railsappspawneridletime"></span><h4 data-comment-topic="railsappspawneridletime-heh41r" data-anchor="_railsappspawneridletime">7.11.8. RailsAppSpawnerIdleTime</h4>
|
1819
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#railsappspawneridletime">https://www.phusionpassenger.com/library/config/apache/reference/#railsappspawneridletime</a></p></div>
|
1820
|
-
</div>
|
1821
|
-
<div class="sect3">
|
1822
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_railsframeworkspawneridletime"></span><h4 data-comment-topic="railsframeworkspawneridletime-adcf9k" data-anchor="_railsframeworkspawneridletime">7.11.9. RailsFrameworkSpawnerIdleTime</h4>
|
1823
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#railsframeworkspawneridletime">https://www.phusionpassenger.com/library/config/apache/reference/#railsframeworkspawneridletime</a></p></div>
|
1824
|
-
</div>
|
1825
|
-
<div class="sect3">
|
1826
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_passengerdebuglogfile"></span><h4 data-comment-topic="passengerdebuglogfile-1mb9h6h" data-anchor="_passengerdebuglogfile">7.11.10. PassengerDebugLogFile</h4>
|
1827
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/reference/#passengerdebuglogfile">https://www.phusionpassenger.com/library/config/apache/reference/#passengerdebuglogfile</a></p></div>
|
1828
|
-
</div>
|
1829
|
-
</div>
|
1830
|
-
</div>
|
1831
|
-
</div>
|
1832
|
-
<div class="sect1">
|
1833
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="troubleshooting"></span><h2 data-comment-topic="troubleshooting-2ihihi" data-anchor="troubleshooting">8. Troubleshooting</h2>
|
1834
|
-
<div class="sectionbody">
|
1835
|
-
<div class="sect2">
|
1836
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_generic_troubleshooting_tips"></span><h3 data-comment-topic="generic-troubleshooting-tips-130iuhe" data-anchor="_generic_troubleshooting_tips">8.1. Generic troubleshooting tips</h3>
|
1837
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/admin/apache/troubleshooting/">https://www.phusionpassenger.com/library/admin/apache/troubleshooting/</a></p></div>
|
1838
|
-
</div>
|
1839
|
-
<div class="sect2">
|
1840
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_why_does_the_first_request_take_a_long_time"></span><h3 data-comment-topic="why-does-the-first-request-take-a-long-time--12mg452" data-anchor="_why_does_the_first_request_take_a_long_time">8.2. Why does the first request take a long time?</h3>
|
1841
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/admin/apache/troubleshooting/?a=why-does-the-first-request-take-a-long-time">https://www.phusionpassenger.com/library/admin/apache/troubleshooting/?a=why-does-the-first-request-take-a-long-time</a></p></div>
|
1842
|
-
</div>
|
1843
|
-
<div class="sect2">
|
1844
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_i_get_command_not_found_when_running_a_phusion_passenger_command_through_sudo"></span><h3 data-comment-topic="i-get-command-not-found-when-running-a-phusion-passenger-command-through-sudo-v9z223" data-anchor="_i_get_command_not_found_when_running_a_phusion_passenger_command_through_sudo">8.3. I get "command not found" when running a Phusion Passenger command through sudo</h3>
|
1845
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/admin/apache/troubleshooting/?a=i-get-command-not-found-when-running-a-passenger-command-through-sudo">https://www.phusionpassenger.com/library/admin/apache/troubleshooting/?a=i-get-command-not-found-when-running-a-passenger-command-through-sudo</a></p></div>
|
1846
|
-
</div>
|
1847
|
-
<div class="sect2">
|
1848
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_os_x_the_installer_cannot_locate_mamp_8217_s_apache"></span><h3 data-comment-topic="macos-x-the-installer-cannot-locate-mamp-s-apache-or908n" data-anchor="_os_x_the_installer_cannot_locate_mamp_8217_s_apache">8.4. OS X: The installer cannot locate MAMP’s Apache</h3>
|
1849
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/admin/apache/troubleshooting/?a=os-x-the-installer-cannot-locate-mamp-s-apache">https://www.phusionpassenger.com/library/admin/apache/troubleshooting/?a=os-x-the-installer-cannot-locate-mamp-s-apache</a></p></div>
|
1850
|
-
</div>
|
1851
|
-
<div class="sect2">
|
1852
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_apache_reports_a_403_forbidden_error"></span><h3 data-comment-topic="apache-reports-a-403-forbidden-error-140tb4p" data-anchor="_apache_reports_a_403_forbidden_error">8.5. Apache reports a "403 Forbidden" error</h3>
|
1853
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/admin/apache/troubleshooting/?a=static-assets-such-as-images-and-stylesheets-aren-t-being-displayed">https://www.phusionpassenger.com/library/admin/apache/troubleshooting/?a=static-assets-such-as-images-and-stylesheets-aren-t-being-displayed</a></p></div>
|
1854
|
-
</div>
|
1855
|
-
<div class="sect2">
|
1856
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_static_assets_such_as_images_and_stylesheets_aren_8217_t_being_displayed"></span><h3 data-comment-topic="static-assets-such-as-images-and-stylesheets-aren-t-being-displayed-uaptpi" data-anchor="_static_assets_such_as_images_and_stylesheets_aren_8217_t_being_displayed">8.6. Static assets such as images and stylesheets aren’t being displayed</h3>
|
1857
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/admin/apache/troubleshooting/?a=static-assets-such-as-images-and-stylesheets-aren-t-being-displayed">https://www.phusionpassenger.com/library/admin/apache/troubleshooting/?a=static-assets-such-as-images-and-stylesheets-aren-t-being-displayed</a></p></div>
|
1858
|
-
</div>
|
1859
|
-
<div class="sect2">
|
1860
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="apache_selinux_permissions"></span><h3 data-comment-topic="apache-cannot-access-my-app-s-files-because-of-selinux-errors-6febhd" data-anchor="apache_selinux_permissions">8.7. Apache cannot access my app’s files because of SELinux errors</h3>
|
1861
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/admin/apache/troubleshooting/?a=apache-cannot-access-my-app-s-files-because-of-selinux-errors">https://www.phusionpassenger.com/library/admin/apache/troubleshooting/?a=apache-cannot-access-my-app-s-files-because-of-selinux-errors</a></p></div>
|
1862
|
-
</div>
|
1863
|
-
<div class="sect2">
|
1864
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_the_application_thinks_its_not_on_ssl_even_though_it_is"></span><h3 data-comment-topic="the-application-thinks-its-not-on-ssl-even-though-it-is-u9fcp1" data-anchor="_the_application_thinks_its_not_on_ssl_even_though_it_is">8.8. The application thinks its not on SSL even though it is</h3>
|
1865
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/admin/apache/troubleshooting/?a=the-application-thinks-its-not-on-ssl-even-though-it-is">https://www.phusionpassenger.com/library/admin/apache/troubleshooting/?a=the-application-thinks-its-not-on-ssl-even-though-it-is</a></p></div>
|
1866
|
-
</div>
|
1867
|
-
<div class="sect2">
|
1868
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_ruby_on_rails_specific_troubleshooting"></span><h3 data-comment-topic="ruby-on-rails-specific-problems-6umss5" data-anchor="_ruby_on_rails_specific_troubleshooting">8.9. Ruby on Rails-specific troubleshooting</h3>
|
1869
|
-
<div class="sect3">
|
1870
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_the_about_your_application_8217_s_environment_link_does_not_work"></span><h4 data-comment-topic="the-about-your-application-s-environment-link-does-not-work-7k4tlm" data-anchor="_the_about_your_application_8217_s_environment_link_does_not_work">8.9.1. The "About your application’s environment" link does not work</h4>
|
1871
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/admin/apache/troubleshooting/ruby/#the-about-your-application-s-environment-link-does-not-work">https://www.phusionpassenger.com/library/admin/apache/troubleshooting/ruby/#the-about-your-application-s-environment-link-does-not-work</a></p></div>
|
1872
|
-
</div>
|
1873
|
-
<div class="sect3">
|
1874
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_the_rails_application_reports_that_it_8217_s_unable_to_start_because_of_a_permission_error"></span><h4 data-comment-topic="the-rails-application-reports-that-it-s-unable-to-start-because-of-a-permission-error-v53i6s" data-anchor="_the_rails_application_reports_that_it_8217_s_unable_to_start_because_of_a_permission_error">8.9.2. The Rails application reports that it’s unable to start because of a permission error</h4>
|
1875
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/admin/apache/troubleshooting/ruby/#the-rails-application-reports-that-it-s-unable-to-start-because-of-a-permission-error">https://www.phusionpassenger.com/library/admin/apache/troubleshooting/ruby/#the-rails-application-reports-that-it-s-unable-to-start-because-of-a-permission-error</a></p></div>
|
1876
|
-
</div>
|
1877
|
-
<div class="sect3">
|
1878
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_the_rails_application_8217_s_log_file_is_not_being_written_to"></span><h4 data-comment-topic="my-rails-application-s-log-file-is-not-being-written-to-3i747l" data-anchor="_the_rails_application_8217_s_log_file_is_not_being_written_to">8.9.3. The Rails application’s log file is not being written to</h4>
|
1879
|
-
<div class="paragraph"><p>There are a couple things that you should be aware of:</p></div>
|
1880
|
-
<div class="ulist"><ul>
|
1881
|
-
<li>
|
1882
|
-
<p>
|
1883
|
-
By default, Phusion Passenger runs Rails applications in <em>production</em> mode,
|
1884
|
-
so please be sure to check <span class="monospaced">production.log</span> instead of <span class="monospaced">development.log</span>.
|
1885
|
-
</p>
|
1886
|
-
<div class="paragraph"><p>See
|
1887
|
-
<a href="#RailsEnv">RailsEnv</a>
|
1888
|
-
for configuration.
|
1889
|
-
- By default, Phusion Passenger runs Rails applications as the owner of <span class="monospaced">config.ru</span>.
|
1890
|
-
So the log file can only be written to if that user has write permission to the
|
1891
|
-
log file. Please <span class="monospaced">chmod</span> or <span class="monospaced">chown</span> your log file accordingly.</p></div>
|
1892
|
-
<div class="paragraph"><p>See <a href="#User_switching">User switching (security)</a> for details.</p></div>
|
1893
|
-
</li>
|
1894
|
-
</ul></div>
|
1895
|
-
<div class="paragraph"><p>If you’re using a RedHat-derived Linux distribution (such as Fedora or CentOS)
|
1896
|
-
then it is <a href="http://code.google.com/p/phusion-passenger/issues/detail?id=4">possible
|
1897
|
-
that SELinux is interfering</a>. RedHat’s SELinux policy only allows Apache to read/write
|
1898
|
-
directories that have the <em>httpd_sys_content_t</em> security context. Please run the
|
1899
|
-
following command to give your Rails application folder that context:</p></div>
|
1900
|
-
<div class="listingblock">
|
1901
|
-
<div class="content monospaced">
|
1902
|
-
<pre>chcon -R -h -t httpd_sys_content_t /path/to/your/rails/app</pre>
|
1903
|
-
</div>
|
1904
|
-
</div>
|
1905
|
-
</div>
|
1906
|
-
</div>
|
1907
|
-
<div class="sect2">
|
1908
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="conflicting_apache_modules"></span><h3 data-comment-topic="conflicting-apache-modules-1uwpixk" data-anchor="conflicting_apache_modules">8.10. Conflicting Apache modules</h3>
|
1909
|
-
<div class="sect3">
|
1910
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_mod_userdir"></span><h4 data-comment-topic="mod-userdir-x5e2te" data-anchor="_mod_userdir">8.10.1. mod_userdir</h4>
|
1911
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/admin/apache/troubleshooting/?a=conflicting-apache-modules">https://www.phusionpassenger.com/library/admin/apache/troubleshooting/?a=conflicting-apache-modules</a></p></div>
|
1912
|
-
</div>
|
1913
|
-
<div class="sect3">
|
1914
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_multiviews_mod_negotiation"></span><h4 data-comment-topic="multiviews-mod-negotiation--zchfg0" data-anchor="_multiviews_mod_negotiation">8.10.2. MultiViews (mod_negotiation)</h4>
|
1915
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/admin/apache/troubleshooting/?a=conflicting-apache-modules">https://www.phusionpassenger.com/library/admin/apache/troubleshooting/?a=conflicting-apache-modules</a></p></div>
|
1916
|
-
</div>
|
1917
|
-
<div class="sect3">
|
1918
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_virtualdocumentroot"></span><h4 data-comment-topic="virtualdocumentroot-14cwd7l" data-anchor="_virtualdocumentroot">8.10.3. VirtualDocumentRoot</h4>
|
1919
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/admin/apache/troubleshooting/?a=conflicting-apache-modules">https://www.phusionpassenger.com/library/admin/apache/troubleshooting/?a=conflicting-apache-modules</a></p></div>
|
1920
|
-
</div>
|
1921
|
-
</div>
|
1922
|
-
</div>
|
1923
|
-
</div>
|
1924
|
-
<div class="sect1">
|
1925
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_analysis_and_system_maintenance"></span><h2 data-comment-topic="analysis-and-system-maintenance-qvkwzr" data-anchor="_analysis_and_system_maintenance">9. Analysis and system maintenance</h2>
|
1926
|
-
<div class="sectionbody">
|
1927
|
-
<div class="sect2">
|
1928
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_inspecting_memory_usage"></span><h3 data-comment-topic="inspecting-memory-usage-1bkis6i" data-anchor="_inspecting_memory_usage">9.1. Inspecting memory usage</h3>
|
1929
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/admin/apache/overall_status_report.html">https://www.phusionpassenger.com/library/admin/apache/overall_status_report.html</a></p></div>
|
1930
|
-
</div>
|
1931
|
-
<div class="sect2">
|
1932
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_inspecting_phusion_passenger_8217_s_internal_status"></span><h3 data-comment-topic="inspecting-phusion-passenger-s-internal-status-ukekf7" data-anchor="_inspecting_phusion_passenger_8217_s_internal_status">9.2. Inspecting Phusion Passenger’s internal status</h3>
|
1933
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/admin/apache/overall_status_report.html">https://www.phusionpassenger.com/library/admin/apache/overall_status_report.html</a></p></div>
|
1934
|
-
</div>
|
1935
|
-
<div class="sect2">
|
1936
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="debugging_frozen"></span><h3 data-comment-topic="debugging-frozen-applications-1qsjqq7" data-anchor="debugging_frozen">9.3. Debugging frozen applications</h3>
|
1937
|
-
<div class="paragraph"><p>If one of your application processes is frozen (stopped responding), then you
|
1938
|
-
can figure out where it is frozen by killing it with <em>SIGABRT</em>. This will cause the
|
1939
|
-
processs to print a backtrace, after which it aborts. The backtrace information is
|
1940
|
-
logged into the web server error log file.</p></div>
|
1941
|
-
<div class="paragraph"><p>In case of Ruby applications, you can also send the <em>SIGQUIT</em> signal to have it print
|
1942
|
-
a backtrace without aborting.</p></div>
|
1943
|
-
</div>
|
1944
|
-
<div class="sect2">
|
1945
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_accessing_individual_application_processes"></span><h3 data-comment-topic="accessing-individual-application-processes-1p0j4jb" data-anchor="_accessing_individual_application_processes">9.4. Accessing individual application processes</h3>
|
1946
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/admin/apache/request_individual_processes.html">https://www.phusionpassenger.com/library/admin/apache/request_individual_processes.html</a></p></div>
|
1947
|
-
</div>
|
1948
|
-
<div class="sect2">
|
1949
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_attaching_an_irb_console_to_an_application_process"></span><h3 data-comment-topic="attaching-an-irb-console-to-an-application-process-1cma32j" data-anchor="_attaching_an_irb_console_to_an_application_process">9.5. Attaching an IRB console to an application process</h3>
|
1950
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/admin/apache/debugging_console/">https://www.phusionpassenger.com/library/admin/apache/debugging_console/</a></p></div>
|
1951
|
-
</div>
|
1952
|
-
</div>
|
1953
|
-
</div>
|
1954
|
-
<div class="sect1">
|
1955
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_tips"></span><h2 data-comment-topic="tips-19cwwf7" data-anchor="_tips">10. Tips</h2>
|
1956
|
-
<div class="sectionbody">
|
1957
|
-
<div class="sect2">
|
1958
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="user_switching"></span><h3 data-comment-topic="user-switching-security--8njx1x" data-anchor="user_switching">10.1. User Switching (security feature)</h3>
|
1959
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/deploy/apache/user_sandboxing.html">https://www.phusionpassenger.com/library/deploy/apache/user_sandboxing.html</a></p></div>
|
1960
|
-
<div class="sect3">
|
1961
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_requirements"></span><h4 data-comment-topic="requirements-yxvtxo" data-anchor="_requirements">10.1.1. Requirements</h4>
|
1962
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/deploy/apache/user_sandboxing.html">https://www.phusionpassenger.com/library/deploy/apache/user_sandboxing.html</a></p></div>
|
1963
|
-
</div>
|
1964
|
-
<div class="sect3">
|
1965
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_effects"></span><h4 data-comment-topic="effects-1lko7vo" data-anchor="_effects">10.1.2. Effects</h4>
|
1966
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/deploy/apache/user_sandboxing.html">https://www.phusionpassenger.com/library/deploy/apache/user_sandboxing.html</a></p></div>
|
1967
|
-
</div>
|
1968
|
-
<div class="sect3">
|
1969
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_caveats_amp_troubleshooting"></span><h4 data-comment-topic="caveats-troubleshooting-161hgge" data-anchor="_caveats_amp_troubleshooting">10.1.3. Caveats & troubleshooting</h4>
|
1970
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/deploy/apache/user_sandboxing.html">https://www.phusionpassenger.com/library/deploy/apache/user_sandboxing.html</a></p></div>
|
1971
|
-
</div>
|
1972
|
-
<div class="sect3">
|
1973
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="user_switching_rpm_caveats"></span><h4 data-comment-topic="red-hat-and-centos-caveats-1335bpz" data-anchor="user_switching_rpm_caveats">10.1.4. Red Hat and CentOS caveats</h4>
|
1974
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/deploy/apache/user_sandboxing.html">https://www.phusionpassenger.com/library/deploy/apache/user_sandboxing.html</a></p></div>
|
1975
|
-
</div>
|
1976
|
-
<div class="sect3">
|
1977
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="finding_out_app_user"></span><h4 data-comment-topic="finding-out-what-user-an-application-is-running-as-7uwrol" data-anchor="finding_out_app_user">10.1.5. Finding out what user an application is running as</h4>
|
1978
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/deploy/apache/user_sandboxing.html">https://www.phusionpassenger.com/library/deploy/apache/user_sandboxing.html</a></p></div>
|
1979
|
-
</div>
|
1980
|
-
</div>
|
1981
|
-
<div class="sect2">
|
1982
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="reducing_memory_usage"></span><h3 data-comment-topic="reducing-memory-consumption-of-ruby-on-rails-applications-by-33--1ubxnq0" data-anchor="reducing_memory_usage">10.2. Copy-on-write memory support (reducing memory consumption of Ruby applications)</h3>
|
1983
|
-
<div class="paragraph"><p>Phusion Passenger automatically leverages operating system virtual memory copy-on-write features in order to reduce the memory usage of Ruby applications. Experience has shown that this reduces memory usage by 33% on average. For this mechanism to work, a Ruby interpreter with a copy-on-write friendly garbage collector is required. The following Ruby interpreters have copy-on-write friendly garbage collectors:</p></div>
|
1984
|
-
<div class="ulist"><ul>
|
1985
|
-
<li>
|
1986
|
-
<p>
|
1987
|
-
MRI Ruby >= 2.0. Versions prior to 2.0 did not have a copy-on-write friendly garbage collector.
|
1988
|
-
</p>
|
1989
|
-
</li>
|
1990
|
-
<li>
|
1991
|
-
<p>
|
1992
|
-
<a href="http://www.rubyenterpriseedition.com/">Ruby Enterprise Edition</a>, which was Phusion’s branch of MRI Ruby 1.8 with a copy-on-write friendly garbage collector and other enhancement. It has reached End-Of-Life as of 2012, but remains available for legacy systems.
|
1993
|
-
</p>
|
1994
|
-
</li>
|
1995
|
-
</ul></div>
|
1996
|
-
</div>
|
1997
|
-
<div class="sect2">
|
1998
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="tuning_sse_websockets"></span><h3 data-comment-topic="tuning-for-server-sent-events-and-websockets-1hy6qa9" data-anchor="tuning_sse_websockets">10.3. Tuning for Server Sent Events and WebSockets</h3>
|
1999
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/config/apache/tuning_sse_and_websockets.html">https://www.phusionpassenger.com/library/config/apache/tuning_sse_and_websockets.html</a></p></div>
|
2000
|
-
</div>
|
2001
|
-
<div class="sect2">
|
2002
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="bundler_support"></span><h3 data-comment-topic="bundler-support-cf72ih" data-anchor="bundler_support">10.4. Bundler support</h3>
|
2003
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/indepth/ruby/bundler.html">https://www.phusionpassenger.com/library/indepth/ruby/bundler.html</a></p></div>
|
2004
|
-
<div class="sect3">
|
2005
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="add_passenger_to_gemfile"></span><h4 data-comment-topic="does-phusion-passenger-itself-need-to-be-added-to-the-gemfile--17whimp" data-anchor="add_passenger_to_gemfile">10.4.1. Does Phusion Passenger itself need to be added to the Gemfile?</h4>
|
2006
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/indepth/ruby/bundler.html#does-passenger-itself-need-to-be-added-to-the-gemfile">https://www.phusionpassenger.com/library/indepth/ruby/bundler.html#does-passenger-itself-need-to-be-added-to-the-gemfile</a></p></div>
|
2007
|
-
</div>
|
2008
|
-
</div>
|
2009
|
-
<div class="sect2">
|
2010
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_installing_multiple_ruby_on_rails_versions"></span><h3 data-comment-topic="installing-multiple-ruby-on-rails-versions-mi5j14" data-anchor="_installing_multiple_ruby_on_rails_versions">10.5. Installing multiple Ruby on Rails versions</h3>
|
2011
|
-
<div class="paragraph"><p>Each Ruby on Rails applications that are going to be deployed may require a
|
2012
|
-
specific Ruby on Rails version. You can install a specific version with
|
2013
|
-
this command:</p></div>
|
2014
|
-
<div class="listingblock">
|
2015
|
-
<div class="content monospaced">
|
2016
|
-
<pre>gem install rails -v X.X.X</pre>
|
2017
|
-
</div>
|
2018
|
-
</div>
|
2019
|
-
<div class="paragraph"><p>where <em>X.X.X</em> is the version number of Ruby on Rails.</p></div>
|
2020
|
-
<div class="paragraph"><p>All of these versions will exist in parallel, and will not conflict with each
|
2021
|
-
other. Phusion Passenger will automatically make use of the correct version.</p></div>
|
2022
|
-
</div>
|
2023
|
-
<div class="sect2">
|
2024
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_making_the_application_restart_after_each_request"></span><h3 data-comment-topic="making-the-application-restart-after-each-request-183bezx" data-anchor="_making_the_application_restart_after_each_request">10.6. Making the application restart after each request</h3>
|
2025
|
-
<div class="paragraph"><p>In some situations it might be desirable to restart the web application after
|
2026
|
-
each request, for example when developing a non-Rails application that doesn’t
|
2027
|
-
support code reloading, or when developing a web framework.</p></div>
|
2028
|
-
<div class="paragraph"><p>To achieve this, simply create the file <em>tmp/always_restart.txt</em> in your
|
2029
|
-
application’s root folder. Unlike <em>restart.txt</em>, Phusion Passenger does not
|
2030
|
-
check for this file’s timestamp: Phusion Passenger will always restart the
|
2031
|
-
application, as long as <em>always_restart.txt</em> exists.</p></div>
|
2032
|
-
<div class="admonitionblock">
|
2033
|
-
<table><tr>
|
2034
|
-
<td class="icon">
|
2035
|
-
<img src="./images/icons/note.png" alt="Note">
|
2036
|
-
</td>
|
2037
|
-
<td class="content">If you’re just developing a Rails application then you probably don’t need
|
2038
|
-
this feature. If you set
|
2039
|
-
<em>RailsEnv development</em>
|
2040
|
-
in your web server configuration,
|
2041
|
-
then Rails will automatically reload your application code after each request.
|
2042
|
-
<em>always_restart.txt</em> is mostly useful when you’re using a web framework that
|
2043
|
-
doesn’t support code reloading by itself, of when you’re working on a web framework
|
2044
|
-
yourself.</td>
|
2045
|
-
</tr></table>
|
2046
|
-
</div>
|
2047
|
-
</div>
|
2048
|
-
<div class="sect2">
|
2049
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="sub_uri_deployment_uri_fix"></span><h3 data-comment-topic="how-to-fix-broken-images-css-javascript-uris-in-sub-uri-deployments-a63b6r" data-anchor="sub_uri_deployment_uri_fix">10.7. How to fix broken images/CSS/JavaScript URIs in sub-URI deployments</h3>
|
2050
|
-
<div class="paragraph"><p>Some people experience broken images and other broken static assets when they
|
2051
|
-
deploy their application to a sub-URI (i.e. <em>http://mysite.com/railsapp/</em>).
|
2052
|
-
The reason for this usually is that you used a
|
2053
|
-
static URI for your image in the views. This means your <em>img</em> source probably refers
|
2054
|
-
to something like <em>/images/foo.jpg</em>. The leading slash means that it’s an absolute URI:
|
2055
|
-
you’re telling the browser to always load <em>http://mysite.com/images/foo.jpg</em> no
|
2056
|
-
matter what. The problem is that the image is actually at
|
2057
|
-
<em>http://mysite.com/railsapp/images/foo.jpg</em>. There are two ways to fix this.</p></div>
|
2058
|
-
<div class="paragraph"><p>The first way (not recommended) is to change your view templates to refer to
|
2059
|
-
<em>images/foo.jpg</em>. This is a relative URI: note the lack of a leading slash). What
|
2060
|
-
this does is making the path relative to the current URI. The problem is that if you
|
2061
|
-
use restful URIs, then your images will probably break again when you add a level to
|
2062
|
-
the URI.
|
2063
|
-
For example, when you’re at <em>http://mysite.com/railsapp</em> the browser will look for
|
2064
|
-
<em>http://mysite.com/railsapp/images/foo.jpg</em>. But when you’re at
|
2065
|
-
<em>http://mysite.com/railsapp/controller</em>. the browser will look for
|
2066
|
-
<em>http://mysite.com/railsapp/controller/images/foo.jpg</em>.
|
2067
|
-
So relative URIs usually don’t work well with layout templates.</p></div>
|
2068
|
-
<div class="paragraph"><p>The second and highly recommended way is to always use Rails helper methods to
|
2069
|
-
output tags for static assets. These helper methods automatically take care
|
2070
|
-
of prepending the base URI that you’ve deployed the application to. For images
|
2071
|
-
there is <span class="monospaced">image_tag</span>, for JavaScript there is <span class="monospaced">javascript_include_tag</span> and for
|
2072
|
-
CSS there is <span class="monospaced">stylesheet_link_tag</span>. In the above example you would simply remove
|
2073
|
-
the <em><img></em> HTML tag and replace it with inline Ruby like this:</p></div>
|
2074
|
-
<div class="listingblock">
|
2075
|
-
<div class="content monospaced">
|
2076
|
-
<pre><%= image_tag("foo.jpg") %></pre>
|
2077
|
-
</div>
|
2078
|
-
</div>
|
2079
|
-
<div class="paragraph"><p>This will generate the proper image tag to <span class="monospaced">$RAILS_ROOT/public/images/foo.jpg</span>
|
2080
|
-
so that your images will always work no matter what sub-URI you’ve deployed to.</p></div>
|
2081
|
-
<div class="paragraph"><p>These helper methods are more valuable than you may think. For example they also
|
2082
|
-
append a timestamp to the URI to better facilitate HTTP caching. For more information,
|
2083
|
-
please refer to
|
2084
|
-
<a href="http://api.rubyonrails.org/classes/ActionView/Helpers/AssetTagHelper.html">the Rails API docs</a>.</p></div>
|
2085
|
-
</div>
|
2086
|
-
<div class="sect2">
|
2087
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_out_of_band_work_and_out_of_band_garbage_collection"></span><h3 data-comment-topic="out-of-band-work-and-out-of-band-garbage-collection-kav2p8" data-anchor="_out_of_band_work_and_out_of_band_garbage_collection">10.8. Out-of-Band Work and Out-of-Band Garbage Collection</h3>
|
2088
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/indepth/ruby/out_of_band_work.html">https://www.phusionpassenger.com/library/indepth/ruby/out_of_band_work.html</a></p></div>
|
2089
|
-
</div>
|
2090
|
-
<div class="sect2">
|
2091
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_hooks"></span><h3 data-comment-topic="hooks-bcltgp" data-anchor="_hooks">10.9. Hooks</h3>
|
2092
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/indepth/hooks.html">https://www.phusionpassenger.com/library/indepth/hooks.html</a></p></div>
|
2093
|
-
<div class="sect3">
|
2094
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_example"></span><h4 data-comment-topic="example-icjf0z" data-anchor="_example">10.9.1. Example</h4>
|
2095
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/indepth/hooks.html#example">https://www.phusionpassenger.com/library/indepth/hooks.html#example</a></p></div>
|
2096
|
-
</div>
|
2097
|
-
<div class="sect3">
|
2098
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_environment"></span><h4 data-comment-topic="environment-1amls4v" data-anchor="_environment">10.9.2. Environment</h4>
|
2099
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/indepth/hooks.html#environment">https://www.phusionpassenger.com/library/indepth/hooks.html#environment</a></p></div>
|
2100
|
-
</div>
|
2101
|
-
<div class="sect3">
|
2102
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_blocking_and_concurrency"></span><h4 data-comment-topic="blocking-and-concurrency-cxpbyu" data-anchor="_blocking_and_concurrency">10.9.3. Blocking and concurrency</h4>
|
2103
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/indepth/hooks.html#blocking-and-concurrency">https://www.phusionpassenger.com/library/indepth/hooks.html#blocking-and-concurrency</a></p></div>
|
2104
|
-
</div>
|
2105
|
-
<div class="sect3">
|
2106
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_error_handling"></span><h4 data-comment-topic="error-handling-1a1uvod" data-anchor="_error_handling">10.9.4. Error handling</h4>
|
2107
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/indepth/hooks.html#error-handling">https://www.phusionpassenger.com/library/indepth/hooks.html#error-handling</a></p></div>
|
2108
|
-
</div>
|
2109
|
-
<div class="sect3">
|
2110
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_compatibility"></span><h4 data-comment-topic="compatibility-18tl6g3" data-anchor="_compatibility">10.9.5. Compatibility</h4>
|
2111
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/indepth/hooks.html#compatibility">https://www.phusionpassenger.com/library/indepth/hooks.html#compatibility</a></p></div>
|
2112
|
-
</div>
|
2113
|
-
<div class="sect3">
|
2114
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_available_hooks"></span><h4 data-comment-topic="available-hooks-159anc3" data-anchor="_available_hooks">10.9.6. Available hooks</h4>
|
2115
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/indepth/hooks.html#available-hooks">https://www.phusionpassenger.com/library/indepth/hooks.html#available-hooks</a></p></div>
|
2116
|
-
</div>
|
2117
|
-
</div>
|
2118
|
-
<div class="sect2">
|
2119
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="flying_passenger"></span><h3 data-comment-topic="flying-passenger-q916f7" data-anchor="flying_passenger">10.10. Flying Passenger</h3>
|
2120
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/deploy/apache/flying_passenger.html">https://www.phusionpassenger.com/library/deploy/apache/flying_passenger.html</a></p></div>
|
2121
|
-
<div class="sect3">
|
2122
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_requirements_2"></span><h4 data-comment-topic="requirements-1ntkin3" data-anchor="_requirements_2">10.10.1. Requirements</h4>
|
2123
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/deploy/apache/flying_passenger.html">https://www.phusionpassenger.com/library/deploy/apache/flying_passenger.html</a></p></div>
|
2124
|
-
</div>
|
2125
|
-
<div class="sect3">
|
2126
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_basic_usage"></span><h4 data-comment-topic="basic-usage-joifsk" data-anchor="_basic_usage">10.10.2. Basic usage</h4>
|
2127
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/deploy/apache/flying_passenger.html">https://www.phusionpassenger.com/library/deploy/apache/flying_passenger.html</a></p></div>
|
2128
|
-
</div>
|
2129
|
-
<div class="sect3">
|
2130
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="configuring_flying_passenger"></span><h4 data-comment-topic="configuring-flying-passenger-1v35vgg" data-anchor="configuring_flying_passenger">10.10.3. Configuring Flying Passenger</h4>
|
2131
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/deploy/apache/flying_passenger.html">https://www.phusionpassenger.com/library/deploy/apache/flying_passenger.html</a></p></div>
|
2132
|
-
</div>
|
2133
|
-
<div class="sect3">
|
2134
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_managing_the_flying_passenger_daemon"></span><h4 data-comment-topic="managing-the-flying-passenger-daemon-1bng2bu" data-anchor="_managing_the_flying_passenger_daemon">10.10.4. Managing the Flying Passenger daemon</h4>
|
2135
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/deploy/apache/flying_passenger.html">https://www.phusionpassenger.com/library/deploy/apache/flying_passenger.html</a></p></div>
|
2136
|
-
</div>
|
2137
|
-
<div class="sect3">
|
2138
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="using_flying_passenger_with_mri_18_or_jruby"></span><h4 data-comment-topic="using-flying-passenger-with-mri-1-8-or-jruby-f5tbvs" data-anchor="using_flying_passenger_with_mri_18_or_jruby">10.10.5. Using Flying Passenger with MRI 1.8 or JRuby</h4>
|
2139
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/deploy/apache/flying_passenger.html">https://www.phusionpassenger.com/library/deploy/apache/flying_passenger.html</a></p></div>
|
2140
|
-
</div>
|
2141
|
-
<div class="sect3">
|
2142
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="flying_passenger_caveats"></span><h4 data-comment-topic="caveats-and-limitations-lz3rbb" data-anchor="flying_passenger_caveats">10.10.6. Caveats and limitations</h4>
|
2143
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/deploy/apache/flying_passenger.html">https://www.phusionpassenger.com/library/deploy/apache/flying_passenger.html</a></p></div>
|
2144
|
-
</div>
|
2145
|
-
</div>
|
2146
|
-
<div class="sect2">
|
2147
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_x_sendfile_support"></span><h3 data-comment-topic="x-sendfile-support-1cgyykw" data-anchor="_x_sendfile_support">10.11. X-Sendfile support</h3>
|
2148
|
-
<div class="paragraph"><p>Phusion Passenger does not provide X-Sendfile support by itself. Please install
|
2149
|
-
<a href="http://tn123.ath.cx/mod_xsendfile/">mod_xsendfile</a> for X-Sendfile support.</p></div>
|
2150
|
-
</div>
|
2151
|
-
<div class="sect2">
|
2152
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_upload_progress"></span><h3 data-comment-topic="upload-progress-71cyl7" data-anchor="_upload_progress">10.12. Upload progress</h3>
|
2153
|
-
<div class="paragraph"><p>Phusion Passenger does not provide upload progress support by itself. Please
|
2154
|
-
try drogus’s <a href="http://github.com/drogus/apache-upload-progress-module/tree/master">
|
2155
|
-
Apache upload progress module</a> instead.</p></div>
|
2156
|
-
</div>
|
2157
|
-
</div>
|
2158
|
-
</div>
|
2159
|
-
<div class="sect1">
|
2160
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_under_the_hood"></span><h2 data-comment-topic="under-the-hood-21ue5t" data-anchor="_under_the_hood">11. Under the hood</h2>
|
2161
|
-
<div class="sectionbody">
|
2162
|
-
<div class="paragraph"><p>Phusion Passenger hides a lot of complexity for the end user (i.e. the web server
|
2163
|
-
system administrator), but sometimes it is desirable to know what is going on.
|
2164
|
-
This section describes a few things that Phusion Passenger does under the hood.</p></div>
|
2165
|
-
<div class="sect2">
|
2166
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_page_caching_support"></span><h3 data-comment-topic="page-caching-support-kwq9b9" data-anchor="_page_caching_support">11.1. Page caching support</h3>
|
2167
|
-
<div class="paragraph"><p>For each HTTP request, Phusion Passenger will automatically look for a corresponding
|
2168
|
-
page cache file, and serve that if it exists. It does this by appending ".html" to
|
2169
|
-
the filename that the URI normally maps to, and checking whether that file exists.
|
2170
|
-
This check occurs after checking whether the original mapped filename exists (as part
|
2171
|
-
of static asset serving). All this is done without the need for special mod_rewrite
|
2172
|
-
rules.</p></div>
|
2173
|
-
<div class="paragraph"><p>For example, suppose that the browser requests <em>/foo/bar</em>.</p></div>
|
2174
|
-
<div class="olist arabic"><ol class="arabic">
|
2175
|
-
<li>
|
2176
|
-
<p>
|
2177
|
-
Phusion Passenger will first check whether this URI maps to a static file, i.e.
|
2178
|
-
whether the file <em>foo/bar</em> exists in the web application’s <em>public</em> directory.
|
2179
|
-
If it does then Phusion Passenger will serve this file through the web server immediately.
|
2180
|
-
</p>
|
2181
|
-
</li>
|
2182
|
-
<li>
|
2183
|
-
<p>
|
2184
|
-
If that doesn’t exist, then Phusion Passenger will check whether the file
|
2185
|
-
<em>foo/bar.html</em> exists. If it does then Phusion Passenger will serve this file
|
2186
|
-
through the web server immediately.
|
2187
|
-
</p>
|
2188
|
-
</li>
|
2189
|
-
<li>
|
2190
|
-
<p>
|
2191
|
-
If <em>foo/bar.html</em> doesn’t exist either, then Phusion Passenger will forward the
|
2192
|
-
request to the underlying web application.
|
2193
|
-
</p>
|
2194
|
-
</li>
|
2195
|
-
</ol></div>
|
2196
|
-
<div class="paragraph"><p>Note that Phusion Passenger’s page caching support doesn’t work if your web
|
2197
|
-
application uses a non-standard page cache directory, i.e. if it doesn’t cache to
|
2198
|
-
the <em>public</em> directory. In that case you’ll need to use mod_rewrite to serve such
|
2199
|
-
page cache files.</p></div>
|
2200
|
-
</div>
|
2201
|
-
<div class="sect2">
|
2202
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="relationship_with_ruby"></span><h3 data-comment-topic="phusion-passenger-and-its-relationship-with-ruby-1eq08ff" data-anchor="relationship_with_ruby">11.2. Phusion Passenger and its relationship with Ruby</h3>
|
2203
|
-
<div class="sect3">
|
2204
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_how_ruby_is_used"></span><h4 data-comment-topic="how-ruby-is-used-14r83nr" data-anchor="_how_ruby_is_used">11.2.1. How Ruby is used</h4>
|
2205
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/indepth/lightweight_ruby_dependency.html">https://www.phusionpassenger.com/library/indepth/lightweight_ruby_dependency.html</a></p></div>
|
2206
|
-
</div>
|
2207
|
-
<div class="sect3">
|
2208
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_when_the_system_has_multiple_ruby_interpreters"></span><h4 data-comment-topic="when-the-system-has-multiple-ruby-interpreters-10tm1fq" data-anchor="_when_the_system_has_multiple_ruby_interpreters">11.2.2. When the system has multiple Ruby interpreters</h4>
|
2209
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/indepth/ruby/multiple_rubies.html">https://www.phusionpassenger.com/library/indepth/ruby/multiple_rubies.html</a></p></div>
|
2210
|
-
</div>
|
2211
|
-
</div>
|
2212
|
-
<div class="sect2">
|
2213
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_static_assets_serving"></span><h3 data-comment-topic="static-assets-serving-wo2d9v" data-anchor="_static_assets_serving">11.3. Static assets serving</h3>
|
2214
|
-
<div class="paragraph"><p>Phusion Passenger accelerates serving of static files. This means that, if an URI
|
2215
|
-
maps to a file that exists, then Phusion Passenger will let Apache serve that file
|
2216
|
-
directly, without hitting the web application.</p></div>
|
2217
|
-
<div class="paragraph"><p>Phusion Passenger does all this without the need for any mod_rewrite rules. People
|
2218
|
-
who are switching from an old Mongrel-based setup might have mod_rewrite rules such
|
2219
|
-
as these:</p></div>
|
2220
|
-
<div class="listingblock">
|
2221
|
-
<div class="content monospaced">
|
2222
|
-
<pre># Check whether this request has a corresponding file; if that
|
2223
|
-
# exists, let Apache serve it, otherwise forward the request to
|
2224
|
-
# Mongrel.
|
2225
|
-
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
|
2226
|
-
RewriteRule ^(.*)$ balancer://mongrel%{REQUEST_URI} [P,QSA,L]</pre>
|
2227
|
-
</div>
|
2228
|
-
</div>
|
2229
|
-
<div class="paragraph"><p>These kind of mod_rewrite rules are no longer required, and you can safely remove
|
2230
|
-
them.</p></div>
|
2231
|
-
</div>
|
2232
|
-
<div class="sect2">
|
2233
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="application_detection"></span><h3 data-comment-topic="how-phusion-passenger-detects-whether-a-virtual-host-is-a-web-application-179mp8m" data-anchor="application_detection">11.4. How Phusion Passenger detects whether a virtual host is a web application</h3>
|
2234
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/indepth/app_autodetection/apache/">https://www.phusionpassenger.com/library/indepth/app_autodetection/apache/</a></p></div>
|
2235
|
-
</div>
|
2236
|
-
</div>
|
2237
|
-
</div>
|
2238
|
-
<div class="sect1">
|
2239
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_appendix_a_about_this_document"></span><h2 data-comment-topic="appendix-a-about-this-document-103toqs" data-anchor="_appendix_a_about_this_document">12. Appendix A: About this document</h2>
|
2240
|
-
<div class="sectionbody">
|
2241
|
-
<div class="paragraph"><p>The text of this document is licensed under the
|
2242
|
-
<a href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons
|
2243
|
-
Attribution-Share Alike 3.0 Unported License</a>.</p></div>
|
2244
|
-
<div class="paragraph"><p><span class="image">
|
2245
|
-
<a class="image" href="http://creativecommons.org/licenses/by-sa/3.0/">
|
2246
|
-
<img src="images/by_sa.png" alt="images/by_sa.png">
|
2247
|
-
</a>
|
2248
|
-
</span></p></div>
|
2249
|
-
<div class="paragraph"><p>Phusion Passenger is brought to you by <a href="http://www.phusion.nl/">Phusion</a>.</p></div>
|
2250
|
-
<div class="paragraph"><p><span class="image">
|
2251
|
-
<a class="image" href="http://www.phusion.nl/">
|
2252
|
-
<img src="images/phusion_banner.png" alt="images/phusion_banner.png">
|
2253
|
-
</a>
|
2254
|
-
</span></p></div>
|
2255
|
-
<div class="paragraph"><p>"Passenger", "Phusion Passenger" and "Union Station" are registered trademarks of Phusion Holding B.V.</p></div>
|
2256
|
-
</div>
|
2257
|
-
</div>
|
2258
|
-
<div class="sect1">
|
2259
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_appendix_b_terminology"></span><h2 data-comment-topic="appendix-b-terminology-h4eaf4" data-anchor="_appendix_b_terminology">13. Appendix B: Terminology</h2>
|
2260
|
-
<div class="sectionbody">
|
2261
|
-
<div class="sect2">
|
2262
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="application_root"></span><h3 data-comment-topic="application-root-otx6xf" data-anchor="application_root">13.1. Application root</h3>
|
2263
|
-
<div class="paragraph"><p>The root directory of an application that’s served by Phusion Passenger.</p></div>
|
2264
|
-
<div class="paragraph"><p>In case of Ruby on Rails applications, this is the directory that contains
|
2265
|
-
<em>Rakefile</em>, <em>app/</em>, <em>config/</em>, <em>public/</em>, etc. In other words, the directory
|
2266
|
-
pointed to by <span class="monospaced">RAILS_ROOT</span>. For example, take the following directory structure:</p></div>
|
2267
|
-
<div class="listingblock">
|
2268
|
-
<div class="content monospaced">
|
2269
|
-
<pre>/apps/foo/ <------ This is the Rails application's application root!
|
2270
|
-
|
|
2271
|
-
+- app/
|
2272
|
-
| |
|
2273
|
-
| +- controllers/
|
2274
|
-
| |
|
2275
|
-
| +- models/
|
2276
|
-
| |
|
2277
|
-
| +- views/
|
2278
|
-
|
|
2279
|
-
+- config/
|
2280
|
-
| |
|
2281
|
-
| +- environment.rb
|
2282
|
-
| |
|
2283
|
-
| +- ...
|
2284
|
-
|
|
2285
|
-
+- public/
|
2286
|
-
| |
|
2287
|
-
| +- ...
|
2288
|
-
|
|
2289
|
-
+- ...</pre>
|
2290
|
-
</div>
|
2291
|
-
</div>
|
2292
|
-
<div class="paragraph"><p>In case of Rack applications, this is the directory that contains <em>config.ru</em>.
|
2293
|
-
For example, take the following directory structure:</p></div>
|
2294
|
-
<div class="listingblock">
|
2295
|
-
<div class="content monospaced">
|
2296
|
-
<pre>/apps/bar/ <----- This is the Rack application's application root!
|
2297
|
-
|
|
2298
|
-
+- public/
|
2299
|
-
| |
|
2300
|
-
| +- ...
|
2301
|
-
|
|
2302
|
-
+- config.ru
|
2303
|
-
|
|
2304
|
-
+- ...</pre>
|
2305
|
-
</div>
|
2306
|
-
</div>
|
2307
|
-
<div class="paragraph"><p>In case of Python (WSGI) applications, this is the directory that contains
|
2308
|
-
<em>passenger_wsgi.py</em>. For example, take the following directory structure:</p></div>
|
2309
|
-
<div class="listingblock">
|
2310
|
-
<div class="content monospaced">
|
2311
|
-
<pre>/apps/baz/ <----- This is the WSGI application's application root!
|
2312
|
-
|
|
2313
|
-
+- public/
|
2314
|
-
| |
|
2315
|
-
| +- ...
|
2316
|
-
|
|
2317
|
-
+- passenger_wsgi.py
|
2318
|
-
|
|
2319
|
-
+- ...</pre>
|
2320
|
-
</div>
|
2321
|
-
</div>
|
2322
|
-
</div>
|
2323
|
-
<div class="sect2">
|
2324
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="idle_process"></span><h3 data-comment-topic="idle-process-potb6g" data-anchor="idle_process">13.2. Idle process</h3>
|
2325
|
-
<div class="paragraph"><p>An "idle process" refers to a process that hasn’t processed any requests for a while.</p></div>
|
2326
|
-
</div>
|
2327
|
-
<div class="sect2">
|
2328
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="inactive_process"></span><h3 data-comment-topic="inactive-process-16gjv2e" data-anchor="inactive_process">13.3. Inactive process</h3>
|
2329
|
-
<div class="paragraph"><p>An "inactive process" refers to a process that’s current not processing any requests. An idle process is always inactive, but an inactive process is not always considered idle.</p></div>
|
2330
|
-
</div>
|
2331
|
-
</div>
|
2332
|
-
</div>
|
2333
|
-
<div class="sect1">
|
2334
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="spawning_methods_explained"></span><h2 data-comment-topic="appendix-c-spawning-methods-explained-owghi9" data-anchor="spawning_methods_explained">14. Appendix C: Spawning methods explained</h2>
|
2335
|
-
<div class="sectionbody">
|
2336
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/indepth/spawn_methods/">https://www.phusionpassenger.com/library/indepth/spawn_methods/</a></p></div>
|
2337
|
-
<div class="sect2">
|
2338
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_the_most_straightforward_and_traditional_way_direct_spawning"></span><h3 data-comment-topic="the-most-straightforward-and-traditional-way-conservative-spawning-1ybbli2" data-anchor="_the_most_straightforward_and_traditional_way_direct_spawning">14.1. The most straightforward and traditional way: direct spawning</h3>
|
2339
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/indepth/spawn_methods/">https://www.phusionpassenger.com/library/indepth/spawn_methods/</a></p></div>
|
2340
|
-
</div>
|
2341
|
-
<div class="sect2">
|
2342
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_the_smart_spawning_method"></span><h3 data-comment-topic="the-smart-spawning-method-1cvu9dd" data-anchor="_the_smart_spawning_method">14.2. The smart spawning method</h3>
|
2343
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/indepth/spawn_methods/">https://www.phusionpassenger.com/library/indepth/spawn_methods/</a></p></div>
|
2344
|
-
<div class="sect3">
|
2345
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_how_it_works"></span><h4 data-comment-topic="how-it-works-672zja" data-anchor="_how_it_works">14.2.1. How it works</h4>
|
2346
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/indepth/spawn_methods/">https://www.phusionpassenger.com/library/indepth/spawn_methods/</a></p></div>
|
2347
|
-
</div>
|
2348
|
-
<div class="sect3">
|
2349
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_summary_of_benefits"></span><h4 data-comment-topic="summary-of-benefits-1yrihfb" data-anchor="_summary_of_benefits">14.2.2. Summary of benefits</h4>
|
2350
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/indepth/spawn_methods/">https://www.phusionpassenger.com/library/indepth/spawn_methods/</a></p></div>
|
2351
|
-
</div>
|
2352
|
-
</div>
|
2353
|
-
<div class="sect2">
|
2354
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_smart_spawning_caveat_1_unintentional_file_descriptor_sharing"></span><h3 data-comment-topic="smart-spawning-gotcha-1-unintentional-file-descriptor-sharing-z1y55l" data-anchor="_smart_spawning_caveat_1_unintentional_file_descriptor_sharing">14.3. Smart spawning caveat #1: unintentional file descriptor sharing</h3>
|
2355
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/indepth/spawn_methods/">https://www.phusionpassenger.com/library/indepth/spawn_methods/</a></p></div>
|
2356
|
-
<div class="sect3">
|
2357
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_example_1_memcached_connection_sharing_harmful"></span><h4 data-comment-topic="example-1-memcached-connection-sharing-harmful--c71wqw" data-anchor="_example_1_memcached_connection_sharing_harmful">14.3.1. Example 1: Memcached connection sharing (harmful)</h4>
|
2358
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/indepth/spawn_methods/">https://www.phusionpassenger.com/library/indepth/spawn_methods/</a></p></div>
|
2359
|
-
</div>
|
2360
|
-
<div class="sect3">
|
2361
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_example_2_log_file_sharing_not_harmful"></span><h4 data-comment-topic="example-2-log-file-sharing-not-harmful--1p2yuol" data-anchor="_example_2_log_file_sharing_not_harmful">14.3.2. Example 2: Log file sharing (not harmful)</h4>
|
2362
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/indepth/spawn_methods/">https://www.phusionpassenger.com/library/indepth/spawn_methods/</a></p></div>
|
2363
|
-
</div>
|
2364
|
-
</div>
|
2365
|
-
<div class="sect2">
|
2366
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_smart_spawning_caveat_2_the_need_to_revive_threads"></span><h3 data-comment-topic="smart-spawning-gotcha-2-the-need-to-revive-threads-1k6cj7d" data-anchor="_smart_spawning_caveat_2_the_need_to_revive_threads">14.4. Smart spawning caveat #2: the need to revive threads</h3>
|
2367
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/indepth/spawn_methods/">https://www.phusionpassenger.com/library/indepth/spawn_methods/</a></p></div>
|
2368
|
-
</div>
|
2369
|
-
</div>
|
2370
|
-
</div>
|
2371
|
-
<div class="sect1">
|
2372
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="about_environment_variables"></span><h2 data-comment-topic="appendix-d-about-environment-variables-1lebv1u" data-anchor="about_environment_variables">15. Appendix D: About environment variables</h2>
|
2373
|
-
<div class="sectionbody">
|
2374
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/indepth/environment_variables.html">https://www.phusionpassenger.com/library/indepth/environment_variables.html</a></p></div>
|
2375
|
-
<div class="sect2">
|
2376
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_working_with_environment_variables"></span><h3 data-comment-topic="working-with-environment-variables-85e6aa" data-anchor="_working_with_environment_variables">15.1. Working with environment variables</h3>
|
2377
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/indepth/environment_variables.html#working-with-environment-variables">https://www.phusionpassenger.com/library/indepth/environment_variables.html#working-with-environment-variables</a></p></div>
|
2378
|
-
</div>
|
2379
|
-
<div class="sect2">
|
2380
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="the_path_env_var"></span><h3 data-comment-topic="the-path-environment-variable-p8e32r" data-anchor="the_path_env_var">15.2. The PATH environment variable</h3>
|
2381
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/indepth/environment_variables.html#the-path-environment-variable">https://www.phusionpassenger.com/library/indepth/environment_variables.html#the-path-environment-variable</a></p></div>
|
2382
|
-
<div class="sect3">
|
2383
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_adding_phusion_passenger_8217_s_administration_tools_to_path"></span><h4 data-comment-topic="adding-phusion-passenger-s-administration-tools-to-path-xwppud" data-anchor="_adding_phusion_passenger_8217_s_administration_tools_to_path">15.2.1. Adding Phusion Passenger’s administration tools to PATH</h4>
|
2384
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/indepth/environment_variables.html#adding-passenger-s-administration-tools-to-path">https://www.phusionpassenger.com/library/indepth/environment_variables.html#adding-passenger-s-administration-tools-to-path</a></p></div>
|
2385
|
-
</div>
|
2386
|
-
</div>
|
2387
|
-
<div class="sect2">
|
2388
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_making_environment_variables_permanent"></span><h3 data-comment-topic="making-environment-variables-permanent-13x0l4h" data-anchor="_making_environment_variables_permanent">15.3. Making environment variables permanent</h3>
|
2389
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/indepth/environment_variables.html#making-environment-variables-permanent">https://www.phusionpassenger.com/library/indepth/environment_variables.html#making-environment-variables-permanent</a></p></div>
|
2390
|
-
<div class="sect3">
|
2391
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_bash"></span><h4 data-comment-topic="bash-1pktn63" data-anchor="_bash">15.3.1. bash</h4>
|
2392
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/indepth/environment_variables.html#bash">https://www.phusionpassenger.com/library/indepth/environment_variables.html#bash</a></p></div>
|
2393
|
-
</div>
|
2394
|
-
<div class="sect3">
|
2395
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_apache"></span><h4 data-comment-topic="apache-15zqjvi" data-anchor="_apache">15.3.2. Apache</h4>
|
2396
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/indepth/environment_variables.html#apache">https://www.phusionpassenger.com/library/indepth/environment_variables.html#apache</a></p></div>
|
2397
|
-
</div>
|
2398
|
-
<div class="sect3">
|
2399
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_nginx"></span><h4 data-comment-topic="nginx-l7ztbb" data-anchor="_nginx">15.3.3. Nginx</h4>
|
2400
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/indepth/environment_variables.html#nginx">https://www.phusionpassenger.com/library/indepth/environment_variables.html#nginx</a></p></div>
|
2401
|
-
</div>
|
2402
|
-
<div class="sect3">
|
2403
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="_cron"></span><h4 data-comment-topic="cron-1kjp7ck" data-anchor="_cron">15.3.4. cron</h4>
|
2404
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/indepth/environment_variables.html#cron">https://www.phusionpassenger.com/library/indepth/environment_variables.html#cron</a></p></div>
|
2405
|
-
</div>
|
2406
|
-
<div class="sect3">
|
2407
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="env_vars_passenger_apps"></span><h4 data-comment-topic="phusion-passenger-served-apps-478vyt" data-anchor="env_vars_passenger_apps">15.3.5. Phusion Passenger-served apps</h4>
|
2408
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/indepth/environment_variables.html#passenger-served-apps">https://www.phusionpassenger.com/library/indepth/environment_variables.html#passenger-served-apps</a></p></div>
|
2409
|
-
</div>
|
2410
|
-
</div>
|
2411
|
-
<div class="sect2">
|
2412
|
-
<a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><span class="anchor_helper" id="env_vars_and_sudo"></span><h3 data-comment-topic="environment-variables-and-sudo-1odzcpz" data-anchor="env_vars_and_sudo">15.4. Environment variables and sudo</h3>
|
2413
|
-
<div class="paragraph"><p>This documentation has moved. Please visit <a href="https://www.phusionpassenger.com/library/indepth/environment_variables.html#environment-variables-and-sudo">https://www.phusionpassenger.com/library/indepth/environment_variables.html#environment-variables-and-sudo</a></p></div>
|
2414
|
-
</div>
|
2415
|
-
</div>
|
2416
|
-
</div>
|
2417
|
-
</div>
|
2418
|
-
<div id="footnotes"><hr></div>
|
2419
|
-
<div id="footer">
|
2420
|
-
|
2421
|
-
</div>
|
2422
|
-
<script>/*! jQuery v1.7.1 jquery.com | jquery.org/license */
|
2423
|
-
(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function cb(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function ca(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bE.test(a)?d(a,e):ca(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)ca(a+"["+e+"]",b[e],c,d);else d(a,b)}function b_(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function b$(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bT,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=b$(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=b$(a,c,d,e,"*",g));return l}function bZ(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bP),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bC(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bx:by,g=0,h=e.length;if(d>0){if(c!=="border")for(;g<h;g++)c||(d-=parseFloat(f.css(a,"padding"+e[g]))||0),c==="margin"?d+=parseFloat(f.css(a,c+e[g]))||0:d-=parseFloat(f.css(a,"border"+e[g]+"Width"))||0;return d+"px"}d=bz(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0;if(c)for(;g<h;g++)d+=parseFloat(f.css(a,"padding"+e[g]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+e[g]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+e[g]))||0);return d+"px"}function bp(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c+(i[c][d].namespace?".":"")+i[c][d].namespace,i[c][d],i[c][d].data)}h.data&&(h.data=f.extend({},h.data))}}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function T(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?m(g):h==="function"&&(!a.unique||!o.has(g))&&c.push(g)},n=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,l=j||0,j=0,k=c.length;for(;c&&l<k;l++)if(c[l].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}i=!1,c&&(a.once?e===!0?o.disable():c=[]:d&&d.length&&(e=d.shift(),o.fireWith(e[0],e[1])))},o={add:function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){i&&f<=k&&(k--,f<=l&&l--),c.splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock:function(){d=b,(!e||e===!0)&&o.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(i?a.once||d.push([b,c]):(!a.once||!e)&&n(b,c));return this},fire:function(){o.fireWith(this,arguments);return this},fired:function(){return!!e}};return o};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p,q=c.createElement("div"),r=c.documentElement;q.setAttribute("className","t"),q.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="<div "+n+"><div></div></div>"+"<table "+n+" cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="<div style='width:4px;'></div>",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d,e,g,h=null;if(typeof a=="undefined"){if(this.length){h=f.data(this[0]);if(this[0].nodeType===1&&!f._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var i=0,j=e.length;i<j;i++)g=e[i].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),l(this[0],g,h[g]));f._data(this[0],"parsedAttrs",!0)}}return h}if(typeof a=="object")return this.each(function(){f.data(this,a)});d=a.split("."),d[1]=d[1]?"."+d[1]:"";if(c===b){h=this.triggerHandler("getData"+d[1]+"!",[d[0]]),h===b&&this.length&&(h=f.data(this[0],a),h=l(this[0],a,h));return h===b&&d[1]?this.data(d[0]):h}return this.each(function(){var b=f(this),e=[d[0],c];b.triggerHandler("setData"+d[1]+"!",e),f.data(this,a,c),b.triggerHandler("changeData"+d[1]+"!",e)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once memory"),!0))h++,l.add(m);m();return d.promise()}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h<g;h++)e=d[h],e&&(c=f.propFix[e]||e,f.attr(a,e,""),a.removeAttribute(v?e:c),u.test(e)&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button"))return w.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,"button"))return w.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get"in g&&(e=g.get(a,c))!==null?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},v||(y={name:!0,id:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.attrHooks.tabindex.set=w.set,f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.enctype||(f.propFix.enctype="encoding"),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};
|
2424
|
-
f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:g,quick:G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d==="**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p.remove&&p.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.handle,q&&(q.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered))return;h.indexOf("!")>=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namespace,i=[],j,k,l,m,n,o,p,q,r,s,t;g[0]=c,c.delegateTarget=this;if(e&&!c.target.disabled&&(!c.button||c.type!=="click")){m=f(this),m.context=this.ownerDocument||this;for(l=c.target;l!=this;l=l.parentNode||this){o={},q=[],m[0]=l;for(j=0;j<e;j++)r=d[j],s=r.selector,o[s]===b&&(o[s]=r.quick?H(l,r.quick):m.is(s)),o[s]&&q.push(r);q.length&&i.push({elem:l,matches:q})}}d.length>e&&i.push({elem:this,matches:d.slice(e)});for(j=0;j<i.length&&!c.isPropagationStopped();j++){p=i[j],c.currentTarget=p.elem;for(k=0;k<p.matches.length&&!c.isImmediatePropagationStopped();k++){r=p.matches[k];if(h||!c.namespace&&!r.namespace||c.namespace_re&&c.namespace_re.test(r.namespace))c.data=r.data,c.handleObj=r,n=((f.event.special[r.origType]||{}).handle||r.handler).apply(p.elem,g),n!==b&&(c.result=n,n===!1&&(c.preventDefault(),c.stopPropagation()))}}return c.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!(this instanceof f.Event))return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0)}),d._submit_attached=!0)})},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c!="string"&&(d=c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on.call(this,a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.type+"."+e.namespace:e.type,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset=h);if(typeof b!="string"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).length>0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){return m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a]).length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g)return[];break}}if(a===q)if(g==null)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1||d===9){if(typeof a.textContent=="string")return a.textContent;if(typeof a.innerText=="string")return a.innerText.replace(k,"");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3||d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));return e},o=m.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!l.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&m.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(j,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i,j,k=b[1],l=a;switch(k){case"only":case"first":while(l=l.previousSibling)if(l.nodeType===1)return!1;if(k==="first")return!0;l=a;case"last":while(l=l.nextSibling)if(l.nodeType===1)return!1;return!0;case"nth":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.nextSibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j===0:j%c===0&&j/c>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h<i;h++)m(a,g[h],e,c);return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find=m,f.expr=m.selectors,f.expr[":"]=f.expr.filters,f.unique=m.uniqueSort,f.text=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var L=/Until$/,M=/^(?:parents|prevUntil|prevAll)/,N=/,/,O=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,Q=f.expr.match.POS,R={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(T(this,a,!1),"not",a)},filter:function(a){return this.pushStack(T(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?Q.test(a)?f(a,this.context).index(this[0])>=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d<a.length;d++)f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=g.parentNode,h++}return c}var i=Q.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(i?i.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|style)/i,bb=/<(?:script|object|embed|option|style)/i,bc=new RegExp("<(?:"+V+")","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function()
|
2425
|
-
{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bi(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bp)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i,j=a[0];b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof j=="string"&&j.length<512&&i===c&&j.charAt(0)==="<"&&!bb.test(j)&&(f.support.checkClone||!bd.test(j))&&(f.support.html5Clone||!bc.test(j))&&(g=!0,h=f.fragments[j],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[j]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1></$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bn(k[i]);else bn(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||be.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.event.special,g=f.support.deleteExpando;for(var h=0,i;(i=a[h])!=null;h++){if(i.nodeName&&f.noData[i.nodeName.toLowerCase()])continue;c=i[f.expando];if(c){b=d[c];if(b&&b.events){for(var j in b.events)e[j]?f.event.remove(i,j):f.removeEvent(i,j,b.handle);b.handle&&(b.handle.elem=null)}g?delete i[f.expando]:i.removeAttribute&&i.removeAttribute(f.expando),delete d[c]}}}});var bq=/alpha\([^)]*\)/i,br=/opacity=([^)]*)/,bs=/([A-Z]|^ms)/g,bt=/^-?\d+(?:px)?$/i,bu=/^-?\d/,bv=/^([\-+])=([\-+.\de]+)/,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bz(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bv.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bz)return bz(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return bC(a,b,d);f.swap(a,bw,function(){e=bC(a,b,d)});return e}},set:function(a,b){if(!bt.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cv(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cu("hide",3),a,b,c);var d,e,g=0,h=this.length;for(;g<h;g++)d=this[g],d.style&&(e=f.css(d,"display"),e!=="none"&&!f._data(d,"olddisplay")&&f._data(d,"olddisplay",e));for(g=0;g<h;g++)this[g].style&&(this[g].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cu("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){function g(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(!f.support.inlineBlockNeedsLayout||cv(this.nodeName)==="inline"?this.style.display="inline-block":this.style.zoom=1))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)j=new f.fx(this,b,i),h=a[i],cn.test(h)?(o=f._data(this,"toggle"+i)||(h==="toggle"?d?"show":"hide":0),o?(f._data(this,"toggle"+i,o==="show"?"hide":"show"),j[o]()):j[h]()):(k=co.exec(h),l=j.cur(),k?(m=parseFloat(k[2]),n=k[3]||(f.cssNumber[i]?"":"px"),n!=="px"&&(f.style(this,i,(m||1)+n),l=(m||1)/j.cur()*l,f.style(this,i,l+n)),k[1]&&(m=(k[1]==="-="?-1:1)*m+l),j.custom(l,m,n)):j.custom(l,h,""));return!0}var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return e.queue===!1?this.each(g):this.queue(e.queue,g)},stop:function(a,c,d){typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]);return this.each(function(){function h(a,b,c){var e=b[c];f.removeData(a,c,!0),e.stop(d)}var b,c=!1,e=f.timers,g=f._data(this);d||f._unmark(!0,this);if(a==null)for(b in g)g[b]&&g[b].stop&&b.indexOf(".run")===b.length-4&&h(this,g,b);else g[b=a+".run"]&&g[b].stop&&h(this,g,b);for(b=e.length;b--;)e[b].elem===this&&(a==null||e[b].queue===a)&&(d?e[b](!0):e[b].saveState(),c=!0,e.splice(b,1));(!d||!c)&&f.dequeue(this,a)})}}),f.each({slideDown:cu("show",1),slideUp:cu("hide",1),slideToggle:cu("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue?f.dequeue(this,d.queue):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,c,d){function h(a){return e.step(a)}var e=this,g=f.fx;this.startTime=cr||cs(),this.end=c,this.now=this.start=a,this.pos=this.state=0,this.unit=d||this.unit||(f.cssNumber[this.prop]?"":"px"),h.queue=this.options.queue,h.elem=this.elem,h.saveState=function(){e.options.hide&&f._data(e.elem,"fxshow"+e.prop)===b&&f._data(e.elem,"fxshow"+e.prop,e.start)},h()&&f.timers.push(h)&&!cp&&(cp=setInterval(g.tick,g.interval))},show:function(){var a=f._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=a||f.style(this.elem,this.prop),this.options.show=!0,a!==b?this.custom(this.cur(),a):this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f._data(this.elem,"fxshow"+this.prop)||f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b,c,d,e=cr||cs(),g=!0,h=this.elem,i=this.options;if(a||e>=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cp),cp=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=a.now+a.unit:a.elem[a.prop]=a.now}}}),f.each(["width","height"],function(a,b){f.fx.step[b]=function(a){f.style(a.elem,b,Math.max(0,a.now)+a.unit)}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cy(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.support.fixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.support.doesNotAddBorder&&(!f.support.doesAddBorderForTableAndCells||!cw.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.support.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.support.fixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window);
|
2426
|
-
/**
|
2427
|
-
* jQuery hashchange 1.0.0
|
2428
|
-
*
|
2429
|
-
* (based on jquery.history)
|
2430
|
-
*
|
2431
|
-
* Copyright (c) 2008 Chris Leishman (chrisleishman.com)
|
2432
|
-
* Dual licensed under the MIT (MIT-LICENSE.txt)
|
2433
|
-
* and GPL (GPL-LICENSE.txt) licenses.
|
2434
|
-
*/
|
2435
|
-
(function($) {
|
2436
|
-
|
2437
|
-
$.fn.extend({
|
2438
|
-
hashchange: function(callback) { this.bind('hashchange', callback) },
|
2439
|
-
openOnClick: function(href) {
|
2440
|
-
if (href === undefined || href.length == 0)
|
2441
|
-
href = '#';
|
2442
|
-
return this.click(function(ev) {
|
2443
|
-
if (href && href.charAt(0) == '#') {
|
2444
|
-
// execute load in separate call stack
|
2445
|
-
window.setTimeout(function() { $.locationHash(href) }, 0);
|
2446
|
-
} else {
|
2447
|
-
window.location(href);
|
2448
|
-
}
|
2449
|
-
ev.stopPropagation();
|
2450
|
-
return false;
|
2451
|
-
});
|
2452
|
-
}
|
2453
|
-
});
|
2454
|
-
|
2455
|
-
// IE 8 introduces the hashchange event natively - so nothing more to do
|
2456
|
-
if ($.browser.msie && document.documentMode && document.documentMode >= 8) {
|
2457
|
-
$.extend({
|
2458
|
-
locationHash: function(hash) {
|
2459
|
-
if (!hash) hash = '#';
|
2460
|
-
else if (hash.charAt(0) != '#') hash = '#' + hash;
|
2461
|
-
location.hash = hash;
|
2462
|
-
}
|
2463
|
-
});
|
2464
|
-
return;
|
2465
|
-
}
|
2466
|
-
|
2467
|
-
var curHash;
|
2468
|
-
// hidden iframe for IE (earlier than 8)
|
2469
|
-
var iframe;
|
2470
|
-
|
2471
|
-
$.extend({
|
2472
|
-
locationHash: function(hash) {
|
2473
|
-
if (curHash === undefined) return;
|
2474
|
-
|
2475
|
-
if (!hash) hash = '#';
|
2476
|
-
else if (hash.charAt(0) != '#') hash = '#' + hash;
|
2477
|
-
|
2478
|
-
location.hash = hash;
|
2479
|
-
|
2480
|
-
if (curHash == hash) return;
|
2481
|
-
curHash = hash;
|
2482
|
-
|
2483
|
-
if ($.browser.msie) updateIEFrame(hash);
|
2484
|
-
$.event.trigger('hashchange');
|
2485
|
-
}
|
2486
|
-
});
|
2487
|
-
|
2488
|
-
$(document).ready(function() {
|
2489
|
-
curHash = location.hash;
|
2490
|
-
if ($.browser.msie) {
|
2491
|
-
// stop the callback firing twice during init if no hash present
|
2492
|
-
if (curHash == '') curHash = '#';
|
2493
|
-
// add hidden iframe for IE
|
2494
|
-
iframe = $('<iframe />').hide().get(0);
|
2495
|
-
$('body').prepend(iframe);
|
2496
|
-
updateIEFrame(location.hash);
|
2497
|
-
setInterval(checkHashIE, 100);
|
2498
|
-
} else {
|
2499
|
-
setInterval(checkHash, 100);
|
2500
|
-
}
|
2501
|
-
});
|
2502
|
-
$(window).unload(function() { iframe = null });
|
2503
|
-
|
2504
|
-
function checkHash() {
|
2505
|
-
var hash = location.hash;
|
2506
|
-
if (hash != curHash) {
|
2507
|
-
curHash = hash;
|
2508
|
-
$.event.trigger('hashchange');
|
2509
|
-
}
|
2510
|
-
}
|
2511
|
-
|
2512
|
-
if ($.browser.msie) {
|
2513
|
-
// Attach a live handler for any anchor links
|
2514
|
-
$('a[href^=#]').live('click', function() {
|
2515
|
-
var hash = $(this).attr('href');
|
2516
|
-
// Don't intercept the click if there is an existing anchor on the page
|
2517
|
-
// that matches this hash
|
2518
|
-
if ($(hash).length == 0 && $('a[name='+hash.slice(1)+']').length == 0) {
|
2519
|
-
$.locationHash(hash);
|
2520
|
-
return false;
|
2521
|
-
}
|
2522
|
-
});
|
2523
|
-
}
|
2524
|
-
|
2525
|
-
function checkHashIE() {
|
2526
|
-
// On IE, check for location.hash of iframe
|
2527
|
-
var idoc = iframe.contentDocument || iframe.contentWindow.document;
|
2528
|
-
var hash = idoc.location.hash;
|
2529
|
-
if (hash == '') hash = '#';
|
2530
|
-
|
2531
|
-
if (hash != curHash) {
|
2532
|
-
if (location.hash != hash) location.hash = hash;
|
2533
|
-
curHash = hash;
|
2534
|
-
$.event.trigger('hashchange');
|
2535
|
-
}
|
2536
|
-
}
|
2537
|
-
|
2538
|
-
function updateIEFrame(hash) {
|
2539
|
-
if (hash == '#') hash = '';
|
2540
|
-
var idoc = iframe.contentWindow.document;
|
2541
|
-
idoc.open();
|
2542
|
-
idoc.close();
|
2543
|
-
if (idoc.location.hash != hash) idoc.location.hash = hash;
|
2544
|
-
}
|
2545
|
-
|
2546
|
-
})(jQuery);
|
2547
|
-
// IE...
|
2548
|
-
if (!Date.now) {
|
2549
|
-
Date.now = function() {
|
2550
|
-
return new Date().getTime();
|
2551
|
-
}
|
2552
|
-
}
|
2553
|
-
|
2554
|
-
var Mizuho = {
|
2555
|
-
/** Cached DOM elements so that we don't have to re-find them over and over. */
|
2556
|
-
$document: undefined,
|
2557
|
-
$window: undefined,
|
2558
|
-
$mainSections: undefined,
|
2559
|
-
$sectionHeaders: undefined,
|
2560
|
-
|
2561
|
-
/** Constants */
|
2562
|
-
MAX_TOC_LEVEL: 3,
|
2563
|
-
|
2564
|
-
sectionHeadersSelector: undefined,
|
2565
|
-
scrollMemory: {},
|
2566
|
-
changingHash: false,
|
2567
|
-
activeHash: undefined,
|
2568
|
-
/** Whether in single-page or multi-page mode. Either 'single' or 'multi'. */
|
2569
|
-
mode: 'single',
|
2570
|
-
/** Whether smooth scrolling is enabled. It is always enabled except right
|
2571
|
-
* after page load: when the page is scrolled to the section as pointed to
|
2572
|
-
* by location.hash.
|
2573
|
-
*/
|
2574
|
-
smoothScrolling: true,
|
2575
|
-
|
2576
|
-
initialize: function() {
|
2577
|
-
this.sectionHeadersSelector = '';
|
2578
|
-
for (var i = 0; i < this.MAX_TOC_LEVEL; i++) {
|
2579
|
-
if (i != 0) {
|
2580
|
-
this.sectionHeadersSelector += ', ';
|
2581
|
-
}
|
2582
|
-
this.sectionHeadersSelector += 'h' + (i + 2);
|
2583
|
-
}
|
2584
|
-
|
2585
|
-
this.$document = $(document);
|
2586
|
-
this.$window = $(window);
|
2587
|
-
this.$mainSections = $('.sect1');
|
2588
|
-
this.$sectionHeaders = $(this.sectionHeadersSelector, '#content');
|
2589
|
-
this.$sectionHeaders.sort(function(a, b) {
|
2590
|
-
var off_a = $(a).offset();
|
2591
|
-
var off_b = $(b).offset();
|
2592
|
-
return off_a.top - off_b.top;
|
2593
|
-
});
|
2594
|
-
|
2595
|
-
if (this.isMobileDevice()) {
|
2596
|
-
$(document.body).addClass('mobile');
|
2597
|
-
}
|
2598
|
-
},
|
2599
|
-
|
2600
|
-
|
2601
|
-
/********* Generic utility functions *********/
|
2602
|
-
|
2603
|
-
isMobileDevice: function() {
|
2604
|
-
return navigator.userAgent.match(
|
2605
|
-
/(IEMobile|Windows CE|NetFront|PlayStation|PLAYSTATION|like Mac OS X|MIDP|UP\.Browser|Symbian|Nintendo|Android)/
|
2606
|
-
);
|
2607
|
-
},
|
2608
|
-
|
2609
|
-
virtualAnimate: function(options) {
|
2610
|
-
var options = $.extend({
|
2611
|
-
duration: 1000
|
2612
|
-
}, options || {});
|
2613
|
-
var animation_start = Date.now();
|
2614
|
-
var animation_end = Date.now() + options.duration;
|
2615
|
-
var interval = animation_end - animation_start;
|
2616
|
-
this._virtualAnimate_step(animation_start, animation_end, interval, options);
|
2617
|
-
},
|
2618
|
-
|
2619
|
-
_virtualAnimate_step: function(animation_start, animation_end, interval, options) {
|
2620
|
-
var self = this;
|
2621
|
-
var now = new Date();
|
2622
|
-
var progress = (now - animation_start) / interval;
|
2623
|
-
if (progress > 1) {
|
2624
|
-
progress = 1;
|
2625
|
-
}
|
2626
|
-
progress = (1 + Math.sin(-Math.PI / 2 + progress * Math.PI)) / 2;
|
2627
|
-
options.step(progress);
|
2628
|
-
if (now < animation_end) {
|
2629
|
-
setTimeout(function() {
|
2630
|
-
self._virtualAnimate_step(animation_start,
|
2631
|
-
animation_end, interval, options);
|
2632
|
-
}, 15);
|
2633
|
-
} else {
|
2634
|
-
options.step(1);
|
2635
|
-
if (options.finish) {
|
2636
|
-
options.finish();
|
2637
|
-
}
|
2638
|
-
}
|
2639
|
-
},
|
2640
|
-
|
2641
|
-
smoothlyScrollTo: function(top) {
|
2642
|
-
if (!this.smoothScrolling) {
|
2643
|
-
return this.setScrollTop(top);
|
2644
|
-
}
|
2645
|
-
|
2646
|
-
var self = this;
|
2647
|
-
var $document = this.$document;
|
2648
|
-
var current = $document.scrollTop();
|
2649
|
-
this.virtualAnimate({
|
2650
|
-
duration: 300,
|
2651
|
-
step: function(x) {
|
2652
|
-
$document.scrollTop(Math.floor(
|
2653
|
-
top + (1 - x) * (current - top)
|
2654
|
-
));
|
2655
|
-
},
|
2656
|
-
finish: function() {
|
2657
|
-
self.setScrollTop(top);
|
2658
|
-
}
|
2659
|
-
});
|
2660
|
-
},
|
2661
|
-
|
2662
|
-
smoothlyScrollToToc: function() {
|
2663
|
-
this.smoothlyScrollTo($('#toc').position().top);
|
2664
|
-
},
|
2665
|
-
|
2666
|
-
scrollToHeader: function(header) {
|
2667
|
-
this.smoothlyScrollTo($(header).offset().top - 50);
|
2668
|
-
},
|
2669
|
-
|
2670
|
-
setScrollTop: function(top, element) {
|
2671
|
-
// Browsers don't always scroll properly so work around
|
2672
|
-
// this with a few timers.
|
2673
|
-
var self = this;
|
2674
|
-
element = element || this.$document;
|
2675
|
-
element = $(element);
|
2676
|
-
element.scrollTop(top);
|
2677
|
-
setTimeout(function() {
|
2678
|
-
element.scrollTop(top);
|
2679
|
-
}, 1);
|
2680
|
-
setTimeout(function() {
|
2681
|
-
element.scrollTop(top);
|
2682
|
-
self.$document.trigger('mizuho:updateTopBar');
|
2683
|
-
}, 20);
|
2684
|
-
},
|
2685
|
-
|
2686
|
-
|
2687
|
-
/********* Mizuho-specific functions *********/
|
2688
|
-
|
2689
|
-
/** Returns the currently displayed section's header DOM element. */
|
2690
|
-
currentSubsection: function() {
|
2691
|
-
var $sectionHeaders = this.$sectionHeaders;
|
2692
|
-
var scrollTop = this.$document.scrollTop();
|
2693
|
-
var windowHeight = this.$window.height();
|
2694
|
-
var offset;
|
2695
|
-
|
2696
|
-
var low = 0;
|
2697
|
-
var high = this.$sectionHeaders.length - 1;
|
2698
|
-
var mid = 0;
|
2699
|
-
|
2700
|
-
while (low <= high) {
|
2701
|
-
mid = Math.floor((low + high) / 2);
|
2702
|
-
offset = $($sectionHeaders[mid]).offset();
|
2703
|
-
|
2704
|
-
if (offset.top >= scrollTop) {
|
2705
|
-
high = mid - 1;
|
2706
|
-
} else {
|
2707
|
-
low = mid + 1;
|
2708
|
-
}
|
2709
|
-
}
|
2710
|
-
|
2711
|
-
var $found = $($sectionHeaders[low]);
|
2712
|
-
if ($found.offset().top > scrollTop + windowHeight) {
|
2713
|
-
if (low > 0) {
|
2714
|
-
return $sectionHeaders[low - 1];
|
2715
|
-
} else {
|
2716
|
-
return undefined;
|
2717
|
-
}
|
2718
|
-
} else {
|
2719
|
-
return $sectionHeaders[low];
|
2720
|
-
}
|
2721
|
-
},
|
2722
|
-
|
2723
|
-
/** Looks up a section's header DOM element corresponding to a hash name. */
|
2724
|
-
lookupHeader: function(hash) {
|
2725
|
-
var id = hash.replace(/^#!\//, '#');
|
2726
|
-
if (id == '') {
|
2727
|
-
return undefined;
|
2728
|
-
} else {
|
2729
|
-
var header = $(id);
|
2730
|
-
if (header.length == 0) {
|
2731
|
-
return undefined;
|
2732
|
-
} else {
|
2733
|
-
return header;
|
2734
|
-
}
|
2735
|
-
}
|
2736
|
-
}
|
2737
|
-
};
|
2738
|
-
|
2739
|
-
for (var key in Mizuho) {
|
2740
|
-
if (typeof(Mizuho[key]) == 'function') {
|
2741
|
-
Mizuho[key] = $.proxy(Mizuho[key], Mizuho);
|
2742
|
-
}
|
2743
|
-
}
|
2744
|
-
$(document).ready(Mizuho.initialize);
|
2745
|
-
//$(document).ready(Mizuho.installHashbangLinks);
|
2746
|
-
|
2747
|
-
Mizuho.initializeTopBar = $.proxy(function() {
|
2748
|
-
var $window = this.$window;
|
2749
|
-
var $document = this.$document;
|
2750
|
-
var self = this;
|
2751
|
-
var $topbar = $('#topbar');
|
2752
|
-
var $title = $('#header h1');
|
2753
|
-
var $currentSection = $('#current_section');
|
2754
|
-
var isMobileDevice = this.isMobileDevice();
|
2755
|
-
var timerId;
|
2756
|
-
|
2757
|
-
// Create the floating table of contents used in the top bar.
|
2758
|
-
var $floattoc = $('<div id="floattoc"></div>').html($('#toc').html());
|
2759
|
-
$floattoc.find('#toctitle').remove();
|
2760
|
-
$floattoc.find('.comments').remove();
|
2761
|
-
$floattoc.css('visibility', 'hidden');
|
2762
|
-
$floattoc.insertAfter($topbar);
|
2763
|
-
var $floattoclinks = $floattoc.find('a');
|
2764
|
-
$floattoclinks.each(function() {
|
2765
|
-
// Firefox changes '#!' to '#%21' so change that back.
|
2766
|
-
var $this = $(this);
|
2767
|
-
var href = $this.attr('href');
|
2768
|
-
if (href.match(/^#%21/)) {
|
2769
|
-
$this.attr('href', href.replace(/^#%21/, '#!'));
|
2770
|
-
}
|
2771
|
-
});
|
2772
|
-
$floattoclinks.click(function(event) {
|
2773
|
-
self.internalLinkClicked(this, event);
|
2774
|
-
});
|
2775
|
-
|
2776
|
-
// Callback for when the user clicks on the Table of Contents
|
2777
|
-
// button on the top bar.
|
2778
|
-
function showFloatingToc() {
|
2779
|
-
var scrollUpdateTimerId;
|
2780
|
-
|
2781
|
-
function reposition() {
|
2782
|
-
if (isMobileDevice) {
|
2783
|
-
$floattoc.css({
|
2784
|
-
top: $currentSection.offset().top +
|
2785
|
-
$currentSection.innerHeight() +
|
2786
|
-
'px',
|
2787
|
-
height: $window.height() * 0.7 + 'px'
|
2788
|
-
});
|
2789
|
-
}
|
2790
|
-
}
|
2791
|
-
|
2792
|
-
function highlightCurrentTocEntry() {
|
2793
|
-
var currentSubsection = self.currentSubsection();
|
2794
|
-
$floattoclinks.removeClass('current');
|
2795
|
-
if (currentSubsection) {
|
2796
|
-
var currentSubsectionTitle = $(currentSubsection).text();
|
2797
|
-
var $link;
|
2798
|
-
|
2799
|
-
$floattoclinks.each(function() {
|
2800
|
-
if ($(this).text() == currentSubsectionTitle) {
|
2801
|
-
$link = $(this);
|
2802
|
-
return false;
|
2803
|
-
}
|
2804
|
-
});
|
2805
|
-
if ($link) {
|
2806
|
-
$link.addClass('current');
|
2807
|
-
self.setScrollTop(
|
2808
|
-
$floattoc.scrollTop() +
|
2809
|
-
$link.position().top -
|
2810
|
-
$floattoc.height() * 0.45,
|
2811
|
-
$floattoc);
|
2812
|
-
return false;
|
2813
|
-
}
|
2814
|
-
}
|
2815
|
-
}
|
2816
|
-
|
2817
|
-
function hideFloatingToc() {
|
2818
|
-
$currentSection.removeClass('pressed');
|
2819
|
-
$floattoc.css('visibility', 'hidden');
|
2820
|
-
$floattoclinks.unbind('click', hideFloatingToc);
|
2821
|
-
$document.unbind('mousedown', onMouseDown);
|
2822
|
-
$document.unbind('touchdown', onMouseDown);
|
2823
|
-
$document.unbind('mizuho:hideTopBar', hideFloatingToc);
|
2824
|
-
$window.unbind('scroll', onScroll);
|
2825
|
-
if (scrollUpdateTimerId !== undefined) {
|
2826
|
-
clearTimeout(scrollUpdateTimerId);
|
2827
|
-
scrollUpdateTimerId = undefined;
|
2828
|
-
}
|
2829
|
-
}
|
2830
|
-
|
2831
|
-
function onMouseDown(event) {
|
2832
|
-
if (event.target != $floattoc[0]
|
2833
|
-
&& $(event.target).closest('#floattoc').length == 0) {
|
2834
|
-
hideFloatingToc();
|
2835
|
-
}
|
2836
|
-
}
|
2837
|
-
|
2838
|
-
function onScroll(event) {
|
2839
|
-
if (scrollUpdateTimerId === undefined) {
|
2840
|
-
scrollUpdateTimerId = setTimeout(function() {
|
2841
|
-
scrollUpdateTimerId = undefined;
|
2842
|
-
reposition();
|
2843
|
-
highlightCurrentTocEntry();
|
2844
|
-
}, 100);
|
2845
|
-
}
|
2846
|
-
}
|
2847
|
-
|
2848
|
-
// Layout and display floating TOC.
|
2849
|
-
highlightCurrentTocEntry();
|
2850
|
-
var origScrollTop = $document.scrollTop();
|
2851
|
-
var windowWidth = $window.width();
|
2852
|
-
var maxRight = windowWidth - Math.floor(windowWidth * 0.1);
|
2853
|
-
|
2854
|
-
if ($currentSection.offset().left + $floattoc.outerWidth() > maxRight) {
|
2855
|
-
$floattoc.css('left', maxRight - $floattoc.outerWidth());
|
2856
|
-
} else {
|
2857
|
-
$floattoc.css('left', $currentSection.offset().left + 'px');
|
2858
|
-
}
|
2859
|
-
reposition();
|
2860
|
-
$floattoc.css('visibility', 'visible');
|
2861
|
-
$currentSection.addClass('pressed');
|
2862
|
-
|
2863
|
-
$floattoclinks.bind('click', hideFloatingToc);
|
2864
|
-
$document.bind('mousedown', onMouseDown)
|
2865
|
-
$document.bind('touchdown', onMouseDown);
|
2866
|
-
$document.bind('mizuho:hideTopBar', hideFloatingToc);
|
2867
|
-
$window.bind('scroll', onScroll);
|
2868
|
-
}
|
2869
|
-
|
2870
|
-
// Called whenever the user scrolls. Updates the title of the
|
2871
|
-
// Table of Contents button in the top bar to the section that
|
2872
|
-
// the user is currently reading.
|
2873
|
-
function update() {
|
2874
|
-
if ($title.offset().top + $title.height() < $document.scrollTop()) {
|
2875
|
-
if (!$topbar.is(':visible')) {
|
2876
|
-
$topbar.slideDown(250);
|
2877
|
-
$document.trigger('mizuho:showTopBar');
|
2878
|
-
}
|
2879
|
-
} else {
|
2880
|
-
if ($topbar.is(':visible')) {
|
2881
|
-
$topbar.slideUp();
|
2882
|
-
$document.trigger('mizuho:hideTopBar');
|
2883
|
-
}
|
2884
|
-
}
|
2885
|
-
|
2886
|
-
if (isMobileDevice) {
|
2887
|
-
$topbar.css({
|
2888
|
-
top: $document.scrollTop() + 'px',
|
2889
|
-
width: $window.width() -
|
2890
|
-
parseInt($topbar.css('padding-left')) -
|
2891
|
-
parseInt($topbar.css('padding-right')) +
|
2892
|
-
'px'
|
2893
|
-
});
|
2894
|
-
}
|
2895
|
-
|
2896
|
-
var header = self.currentSubsection();
|
2897
|
-
var name;
|
2898
|
-
if (header) {
|
2899
|
-
name = $(header).text();
|
2900
|
-
} else {
|
2901
|
-
name = 'Preamble';
|
2902
|
-
}
|
2903
|
-
$currentSection.text(name);
|
2904
|
-
}
|
2905
|
-
|
2906
|
-
function scheduleUpdate() {
|
2907
|
-
if (timerId !== undefined) {
|
2908
|
-
return;
|
2909
|
-
}
|
2910
|
-
timerId = setTimeout(function() {
|
2911
|
-
timerId = undefined;
|
2912
|
-
update();
|
2913
|
-
}, 100);
|
2914
|
-
}
|
2915
|
-
|
2916
|
-
|
2917
|
-
if (isMobileDevice) {
|
2918
|
-
// Mobile devices don't support position fixed.
|
2919
|
-
$topbar.css('position', 'absolute');
|
2920
|
-
$floattoc.css('position', 'absolute');
|
2921
|
-
}
|
2922
|
-
|
2923
|
-
$currentSection.click(showFloatingToc);
|
2924
|
-
$window.scroll(scheduleUpdate);
|
2925
|
-
$document.bind('mizuho:updateTopBar', update);
|
2926
|
-
}, Mizuho);
|
2927
|
-
|
2928
|
-
$(document).ready(Mizuho.initializeTopBar);
|
2929
|
-
|
2930
|
-
|
2931
|
-
var JUVIA_URL = 'http://juvia.phusion.nl';
|
2932
|
-
var JUVIA_SITE_KEY = '5jpmkyjqlml8rktsfldfpbwth8ig7w9';
|
2933
|
-
var disqus_identifier;
|
2934
|
-
var disqus_title;
|
2935
|
-
var disqus_url;
|
2936
|
-
var disqus_developer = 1;
|
2937
|
-
|
2938
|
-
Mizuho.initializeCommenting = $.proxy(function() {
|
2939
|
-
var self = this;
|
2940
|
-
this.commentBalloons = $('.comments');
|
2941
|
-
this.commentBalloons.click(function() {
|
2942
|
-
self.showCommentsPopup(this);
|
2943
|
-
});
|
2944
|
-
this.reloadCommentCount();
|
2945
|
-
}, Mizuho);
|
2946
|
-
|
2947
|
-
Mizuho.showLightbox = $.proxy(function(creationCallback, closeCallback) {
|
2948
|
-
var lightbox = $(
|
2949
|
-
'<div id="comments_lightbox">' +
|
2950
|
-
' <div id="comments_lightbox_shadow"></div>' +
|
2951
|
-
' <div id="comments_lightbox_contents"><div class="shell"></div></div>' +
|
2952
|
-
'</div>');
|
2953
|
-
var shadow = $('#comments_lightbox_shadow', lightbox);
|
2954
|
-
var contents = $('#comments_lightbox_contents > .shell', lightbox);
|
2955
|
-
|
2956
|
-
function close() {
|
2957
|
-
if (lightbox) {
|
2958
|
-
lightbox.remove();
|
2959
|
-
lightbox = undefined;
|
2960
|
-
if (closeCallback) {
|
2961
|
-
closeCallback();
|
2962
|
-
}
|
2963
|
-
}
|
2964
|
-
}
|
2965
|
-
|
2966
|
-
shadow.click(close);
|
2967
|
-
lightbox.bind('lightbox:close', close);
|
2968
|
-
lightbox.appendTo(document.body);
|
2969
|
-
creationCallback(contents);
|
2970
|
-
}, Mizuho);
|
2971
|
-
|
2972
|
-
Mizuho.getCommentThreadInfo = $.proxy(function(balloon) {
|
2973
|
-
var info = {};
|
2974
|
-
if ($(balloon).closest('#toc').length > 0) {
|
2975
|
-
info.id = 'toctitle';
|
2976
|
-
info.topic = 'toctitle';
|
2977
|
-
info.title = $('#header h1').text() + " - " + $('#toctitle').text();
|
2978
|
-
} else {
|
2979
|
-
var header = $(balloon).next('h2, h3, h4');
|
2980
|
-
if (header.length > 0) {
|
2981
|
-
info.id = header.attr('id');
|
2982
|
-
info.topic = header.data('comment-topic');
|
2983
|
-
info.title = $('#header h1').text() + " - " + header.text();
|
2984
|
-
} else {
|
2985
|
-
info = undefined;
|
2986
|
-
}
|
2987
|
-
}
|
2988
|
-
return info;
|
2989
|
-
}, Mizuho);
|
2990
|
-
|
2991
|
-
Mizuho.callJuviaApi = function(action, options) {
|
2992
|
-
function makeQueryString(options) {
|
2993
|
-
var key, params = [];
|
2994
|
-
for (key in options) {
|
2995
|
-
params.push(
|
2996
|
-
encodeURIComponent(key) +
|
2997
|
-
'=' +
|
2998
|
-
encodeURIComponent(options[key]));
|
2999
|
-
}
|
3000
|
-
return params.join('&');
|
3001
|
-
}
|
3002
|
-
|
3003
|
-
// Makes sure that each call generates a unique URL, otherwise
|
3004
|
-
// the browser may not actually perform the request.
|
3005
|
-
if (!('_juviaRequestCounter' in window)) {
|
3006
|
-
window._juviaRequestCounter = 0;
|
3007
|
-
}
|
3008
|
-
|
3009
|
-
var url =
|
3010
|
-
JUVIA_URL + '/api/' + action +
|
3011
|
-
'?_c=' + window._juviaRequestCounter +
|
3012
|
-
'&' + makeQueryString(options);
|
3013
|
-
window._juviaRequestCounter++;
|
3014
|
-
|
3015
|
-
var s = document.createElement('script');
|
3016
|
-
s.async = true;
|
3017
|
-
s.type = 'text/javascript';
|
3018
|
-
s.className = 'juvia';
|
3019
|
-
s.src = url;
|
3020
|
-
(document.getElementsByTagName('head')[0] ||
|
3021
|
-
document.getElementsByTagName('body')[0]).appendChild(s);
|
3022
|
-
}
|
3023
|
-
|
3024
|
-
Mizuho.showCommentsPopup = $.proxy(function(balloon) {
|
3025
|
-
var info = this.getCommentThreadInfo(balloon);
|
3026
|
-
if (!info) {
|
3027
|
-
return;
|
3028
|
-
}
|
3029
|
-
|
3030
|
-
var self = this;
|
3031
|
-
this.showLightbox(function(element) {
|
3032
|
-
// We install a 'Close' button in the Juvia comment form after it has loaded.
|
3033
|
-
function installCloseButton() {
|
3034
|
-
if ($('#comments .juvia-form-actions').size() > 0) {
|
3035
|
-
// The Juvia form is now loaded. Install the button.
|
3036
|
-
var div = $('<div class="juvia-action" style="margin-left: 0.5em"></div>');
|
3037
|
-
var button = $('<input type="button" value="Cancel"></div>').appendTo(div);
|
3038
|
-
div.insertBefore('#comments .juvia-form-actions .juvia-error');
|
3039
|
-
button.click(function() {
|
3040
|
-
$(element).trigger('lightbox:close');
|
3041
|
-
});
|
3042
|
-
} else {
|
3043
|
-
// Continue polling.
|
3044
|
-
setTimeout(installCloseButton, 50);
|
3045
|
-
}
|
3046
|
-
}
|
3047
|
-
setTimeout(installCloseButton, 50);
|
3048
|
-
|
3049
|
-
// Now load the Juvia comments form.
|
3050
|
-
element.html('<div id="comments">Loading comments...</div>');
|
3051
|
-
self.changingHash = true;
|
3052
|
-
location.hash = '#!/' + info.id;
|
3053
|
-
self.callJuviaApi('show_topic.js', {
|
3054
|
-
container : '#comments',
|
3055
|
-
site_key : JUVIA_SITE_KEY,
|
3056
|
-
topic_key : info.topic,
|
3057
|
-
topic_url : location.href,
|
3058
|
-
topic_title : info.topic,
|
3059
|
-
include_base: !window.Juvia,
|
3060
|
-
include_css : !window.Juvia
|
3061
|
-
});
|
3062
|
-
}, function() {
|
3063
|
-
self.reloadCommentCount();
|
3064
|
-
});
|
3065
|
-
}, Mizuho);
|
3066
|
-
|
3067
|
-
Mizuho.reloadCommentCount = $.proxy(function() {
|
3068
|
-
this.callJuviaApi('list_topics.jsonp', {
|
3069
|
-
site_key: JUVIA_SITE_KEY,
|
3070
|
-
jsonp : 'Mizuho.topicListReceived'
|
3071
|
-
});
|
3072
|
-
}, Mizuho);
|
3073
|
-
|
3074
|
-
Mizuho.topicListReceived = $.proxy(function(result) {
|
3075
|
-
var self = this;
|
3076
|
-
var i, topic, map = {};
|
3077
|
-
for (i = 0; i < result.topics.length; i++) {
|
3078
|
-
topic = result.topics[i];
|
3079
|
-
map[topic.key] = topic;
|
3080
|
-
}
|
3081
|
-
|
3082
|
-
this.commentBalloons.each(function() {
|
3083
|
-
var info = self.getCommentThreadInfo(this);
|
3084
|
-
if (info) {
|
3085
|
-
topic = map[info.topic];
|
3086
|
-
if (topic) {
|
3087
|
-
var balloon = $(this);
|
3088
|
-
$('.count', balloon).text(topic.comment_count);
|
3089
|
-
balloon.removeClass('empty');
|
3090
|
-
balloon.addClass('nonempty');
|
3091
|
-
balloon.attr('title', null);
|
3092
|
-
}
|
3093
|
-
}
|
3094
|
-
});
|
3095
|
-
}, Mizuho);
|
3096
|
-
|
3097
|
-
$(document).ready(Mizuho.initializeCommenting);
|
3098
|
-
|
3099
|
-
</script>
|
3100
|
-
</body>
|
3101
|
-
</html>
|