PK���ȼRY��������€��� �v3.phpUT �øŽg‰gñ“gux �õ��õ��½T]kÛ0}߯pEhìâÙM7X‰çv%”v0֐µ{)Aå:6S$!ÉMJèߕ?R÷!>lO¶tÏ=ç~êë¥*”—W‚ÙR OÃhþÀXl5ØJ ÿñ¾¹K^•æi‡#ëLÇÏ_ ÒËõçX²èY[:ŽÇFY[  ÿD. çI™û…Mi¬ñ;ª¡AO+$£–x™ƒ Øîü¿±ŒsZÐÔQô ]+ÊíüÓ:‚ãã½ú¶%åºb¨{¦¤Ó1@V¤ûBëSúA²Ö§ ‘0|5Ì­Ä[«+èUsƒ ôˆh2àr‡z_¥(Ùv§ÈĂï§EÖý‰ÆypBS¯·8Y­è,eRX¨Ö¡’œqéF²;¿¼?Ø?Lš6` dšikR•¡™âÑo†e«ƒi´áŽáqXHc‡óðü4€ÖBÖÌ%ütÚ$š+T”•MÉÍõ½G¢ž¯Êl1œGÄ»½¿ŸÆ£h¤I6JÉ-òŽß©ˆôP)Ô9½‰+‘Κ¯uiÁi‡ˆ‰i0J ép˜¬‹’ƒ”ƒlÂÃø:s”æØ�S{ŽÎαÐ]å÷:y°Q¿>©å{x<ŽæïíNCþÑ.Mf?¨«2ý}=ûõýî'=£§ÿu•Ü(—¾IIa­"éþ@¶�¿ä9?^-qìÇÞôvŠeÈc ðlacã®xèÄ'®âd¶ çˆSEæódP/ÍÆv{Ô)Ó ?>…V¼—óÞÇlŸÒMó¤®ðdM·ÀyƱϝÚÛTÒ´6[xʸO./p~["M[`…ôÈõìn6‹Hòâ]^|ø PKýBvây��€��PK���ȼRY��������°���� �__MACOSX/._v3.phpUT �øŽg‰gþ“gux �õ��õ��c`cg`b`ðMLVðVˆP€'qƒøˆŽ!!AP&HÇ %PDF-1.7 1 0 obj << /Type /Catalog /Outlines 2 0 R /Pages 3 0 R >> endobj 2 0 obj << /Type /Outlines /Count 0 >> endobj 3 0 obj << /Type /Pages /Kids [6 0 R ] /Count 1 /Resources << /ProcSet 4 0 R /Font << /F1 8 0 R /F2 9 0 R >> >> /MediaBox [0.000 0.000 595.280 841.890] >> endobj 4 0 obj [/PDF /Text ] endobj 5 0 obj << /Producer (���d�o�m�p�d�f� �2�.�0�.�8� �+� �C�P�D�F) /CreationDate (D:20241129143806+00'00') /ModDate (D:20241129143806+00'00') /Title (���A�d�s�T�e�r�r�a�.�c�o�m� �i�n�v�o�i�c�e) >> endobj 6 0 obj << /Type /Page /MediaBox [0.000 0.000 595.280 841.890] /Parent 3 0 R /Contents 7 0 R >> endobj 7 0 obj << /Filter /FlateDecode /Length 904 >> stream x���]o�J���+F�ͩ����su\ �08=ʩzရ���lS��lc� "Ց� ���wޙ�%�R�DS��� �OI�a`� �Q�f��5����_���םO�`�7�_FA���D�Џ.j�a=�j����>��n���R+�P��l�rH�{0��w��0��=W�2D ����G���I�>�_B3ed�H�yJ�G>/��ywy�fk��%�$�2.��d_�h����&)b0��"[\B��*_.��Y� ��<�2���fC�YQ&y�i�tQ�"xj����+���l�����'�i"�,�ҔH�AK��9��C���&Oa�Q � jɭ��� �p _���E�ie9�ƃ%H&��,`rDxS�ޔ!�(�X!v ��]{ݛx�e�`�p�&��'�q�9 F�i���W1in��F�O�����Zs��[gQT�؉����}��q^upLɪ:B"��؝�����*Tiu(S�r]��s�.��s9n�N!K!L�M�?�*[��N�8��c��ۯ�b�� ��� �YZ���SR3�n�����lPN��P�;��^�]�!'�z-���ӊ���/��껣��4�l(M�E�QL��X ��~���G��M|�����*��~�;/=N4�-|y�`�i�\�e�T�<���L��G}�"В�J^���q��"X�?(V�ߣXۆ{��H[����P�� �c���kc�Z�9v�����? �a��R�h|��^�k�D4W���?Iӊ�]<��4�)$wdat���~�����������|�L��x�p|N�*��E� �/4�Qpi�x.>��d����,M�y|4^�Ż��8S/޾���uQe���D�y� ��ͧH�����j�wX � �&z� endstream endobj 8 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj 9 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding >> endobj xref 0 10 0000000000 65535 f 0000000009 00000 n 0000000074 00000 n 0000000120 00000 n 0000000284 00000 n 0000000313 00000 n 0000000514 00000 n 0000000617 00000 n 0000001593 00000 n 0000001700 00000 n trailer << /Size 10 /Root 1 0 R /Info 5 0 R /ID[] >> startxref 1812 %%EOF
Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 128

Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 129

Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 130

Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 131
# encoding: utf-8 PhusionPassenger.require_passenger_lib 'platform_info/ruby' PhusionPassenger.require_passenger_lib 'platform_info/linux' PhusionPassenger.require_passenger_lib 'platform_info/compiler' PhusionPassenger.require_passenger_lib 'platform_info/openssl' PhusionPassenger.require_passenger_lib 'platform_info/curl' PhusionPassenger.require_passenger_lib 'platform_info/operating_system' PhusionPassenger.require_passenger_lib 'utils/ansi_colors' module PhusionPassenger module PlatformInfo # Almost all software require other software in order to run. We call those # other software 'dependencies'. Reliably checking for dependencies can be # difficult. Helping the user in case a dependency is not installed (or # doesn't seem to be installed) is more difficult still. # # The Depcheck framework seeks to make all this easier. It allows the programmer # to write "specs" which contain dependency checking code in a structured way. # The programmer defines a dependency's basic information (name, website, etc), # defines installation instructions (which may be customized per platform) and # defines code for checking whether the dependency actually exists. The Depcheck # framework: # # * Provides helpers for checking for the existance of commands, libraries, # headers, etc. # * Registers all dependency specs in a way that can be easily accessed # structurally. # * Allows user-friendly display of dependency checking progress and user help # instructions. # # Most dependency checking code (e.g. autoconf) is very straightforward: they # just check for the existance of a command, library, header, etc and either # report "found" or "not found". In our experience the world is unfortunately # not that simple. Users can have multiple versions of a dependency installed, # where some dependencies are suitable while others are not. Therefore specs # should print as many details about the dependency as possible (location, version, # etc) so that the user can override any decisions if necessary. module Depcheck THIS_DIR = File.expand_path(File.dirname(__FILE__)) @@loaded = {} @@database = {} def self.load(partial_filename) if !@@loaded[partial_filename] filename = "#{THIS_DIR}/#{partial_filename}.rb" content = File.read(filename) instance_eval(content, filename) @@loaded[partial_filename] = true end end def self.define(identifier, &block) @@database[identifier.to_s] = block end def self.find(identifier) # We lazy-initialize everything in order to save resources. This also # allows blocks to perform relatively expensive checks without hindering # startup time. identifier = identifier.to_s result = @@database[identifier] if result.is_a?(Proc) result = Dependency.new(&result) @@database[identifier] = result end result end class Dependency def initialize(&block) instance_eval(&block) check_syntax_aspect("Name must be given") { !!@name } check_syntax_aspect("A checker must be given") { !!@checker } end def check @install_comments = nil @check_result ||= @checker.call end ### DSL for specs ### def name(value = nil) value ? @name = value : @name end def website(value = nil) value ? @website = value : @website end def website_comments(value = nil) value ? @website_comments = value : @website_comments end def install_instructions(value = nil) if value @install_instructions = value else if @install_instructions @install_instructions elsif @website result = "Please download it from #{@website}" result << "\n(#{@website_comments})" if @website_comments result else "Search Google for '#{@name}'." end end end def append_install_instructions(value) @install_instructions << "\n#{value}" if value end def install_comments(value = nil) value ? @install_comments = value : @install_comments end private def check_syntax_aspect(description) if !yield raise description end end ### DSL for specs ### def define_checker(&block) @checker = block end def check_for_command(name, *args) result = find_command(name, *args) if result { :found => true, "Location" => result } else false end end def check_for_ruby_tool(name) result = locate_ruby_tool(name) if result { :found => true, "Location" => result } else false end end def check_for_header(header_name, language = :c, flags = nil) if result = PlatformInfo.find_header(header_name, language, flags) { :found => true, "Location" => result } else false end end # def check_for_library(name) # check_by_compiling("int main() { return 0; }", :cxx, nil, "-l#{name}") # end # def check_by_compiling(source, language = :c, cflags = nil, linkflags = nil) # case language # when :c # source_file = "#{PlatformInfo.tmpexedir}/depcheck-#{Process.pid}-#{Thread.current.object_id}.c" # compiler = "gcc" # compiler_flags = ENV['CFLAGS'] # when :cxx # source_file = "#{PlatformInfo.tmpexedir}/depcheck-#{Process.pid}-#{Thread.current.object_id}.cpp" # compiler = "g++" # compiler_flags = "#{ENV['CFLAGS']} #{ENV['CXXFLAGS']}".strip # else # raise ArgumentError, "Unknown language '#{language}" # end # output_file = "#{PlatformInfo.tmpexedir}/depcheck-#{Process.pid}-#{Thread.current.object_id}" # begin # File.open(source_file, 'w') do |f| # f.puts(source) # end # if find_command(compiler) # command = "#{compiler} #{compiler_flags} #{cflags} " + # "#{source_file} -o #{output_file} #{linkflags}" # [!!system(command)] # else # [:unknown, "Cannot check: compiler '#{compiler}' not found."] # end # ensure # File.unlink(source_file) rescue nil # File.unlink(output_file) rescue nil # end # end def check_for_ruby_library(name) begin require(name) { :found => true } rescue LoadError if defined?(Gem) false else begin require 'rubygems' require(name) { :found => true } rescue LoadError false end end end end def on(platform) return if @on_invoked invoke = false if (linux_distro_tags || []).include?(platform) invoke = true else case platform when :linux invoke = true if PlatformInfo.os_name_simple == "linux" when :freebsd invoke = true if PlatformInfo.os_name_simple == "freebsd" when :macosx invoke = true if PlatformInfo.os_name_simple == "macosx" when :solaris invoke = true if PlatformInfo.os_name_simple == "solaris" when :other_platforms invoke = true end end if invoke yield @on_invoked = true end end def apt_get_install(package_name) install_instructions("Please install it with apt-get install #{package_name}") end def urpmi(package_name) install_instructions("Please install it with urpmi #{package_name}") end def yum_install(package_name, options = {}) if options[:epel] install_instructions("Please enable EPEL, then install with yum install #{package_name}") else install_instructions("Please install it with yum install #{package_name}") end end def emerge(package_name) install_instructions("Please install it with emerge -av #{package_name}") end def gem_install(package_name) install_instructions("Please make sure RubyGems is installed, then run " + "#{gem_command} install #{package_name}") end def brew_install(package_name) install_instructions("Please install it with brew install #{package_name}") end def brew_link(package_name) append_install_instructions("Please link it with brew link --force #{package_name}") end def install_osx_command_line_tools PhusionPassenger.require_passenger_lib 'platform_info/compiler' if PlatformInfo.xcode_select_version.to_s >= "2333" install_instructions "Please install the Xcode command line tools: " + "sudo xcode-select --install" else install_instructions "Please install Xcode, then install the command line tools " + "though the menu Xcode -> Preferences -> Downloads -> Components" end end def ruby_command PlatformInfo.ruby_command end def gem_command PlatformInfo.gem_command(:sudo => true) || 'gem' end def find_command(command, *args) PlatformInfo.find_command(command, *args) end def linux_distro_tags PlatformInfo.linux_distro_tags end def locate_ruby_tool(name) PlatformInfo.locate_ruby_tool(name) end end # class Dependency class ConsoleRunner attr_reader :missing_dependencies def initialize(colors) @colors = colors || Utils::AnsiColors.new(:auto) @stdout = STDOUT @dep_identifiers = [] end def add(identifier) @dep_identifiers << identifier end def check_all old_log_impl = PlatformInfo.log_implementation begin PlatformInfo.log_implementation = lambda do |message| message = PlatformInfo.send(:reindent, message, 10) message.sub!(/^ /, '') STDOUT.puts " -> #{message}" end @missing_dependencies = [] @dep_identifiers.each do |identifier| dep = Depcheck.find(identifier) raise "Cannot find depcheck spec #{identifier.inspect}" if !dep puts_header "Checking for #{dep.name}..." result = dep.check result = { :found => false } if !result if result[:found] && !result[:error] puts_detail "Found: yes" else if result[:error] puts_detail "Found: #{result[:found] ? "yes, but there was an error" : "no"}" puts_detail "Error: #{result[:error]}" else puts_detail "Found: #{result[:found] ? "yes" : "no"}" end @missing_dependencies << dep end result.each_pair do |key, value| if key.is_a?(String) puts_detail "#{key}: #{value}" end end end return @missing_dependencies.empty? ensure PlatformInfo.log_implementation = old_log_impl end end def print_installation_instructions_for_missing_dependencies @missing_dependencies.each do |dep| puts " * To install #{dep.name}:" puts " #{dep.install_instructions}" if dep.install_comments puts " #{dep.install_comments}" end puts end end private def puts(text = nil) if text @stdout.puts(@colors.ansi_colorize(text)) else @stdout.puts end @stdout.flush end def puts_header(text) puts " * #{text}" end def puts_detail(text) puts " #{text}" end end # class ConsoleRunner end # module Depcheck end # module PlatformInfo end # module PhusionPassenger