sdoc-0.4.1/0000755000004100000410000000000012377325624012507 5ustar www-datawww-datasdoc-0.4.1/Rakefile0000644000004100000410000000031212377325624014150 0ustar www-datawww-datarequire 'rubygems' require 'bundler' Bundler::GemHelper.install_tasks require 'rake/testtask' Rake::TestTask.new do |t| t.pattern = "spec/*_spec.rb" end task :default => :test task :spec => :test sdoc-0.4.1/bin/0000755000004100000410000000000012377325624013257 5ustar www-datawww-datasdoc-0.4.1/bin/sdoc0000755000004100000410000000112212377325624014131 0ustar www-datawww-data#!/usr/bin/env ruby -KU require 'sdoc' begin ARGV.unshift('--format=sdoc') if ARGV.grep(/\A(-f|--fmt|--format|-r|-R|--ri|--ri-site)\b/).empty? r = RDoc::RDoc.new r.document ARGV rescue SystemExit raise rescue Exception => e if $DEBUG_RDOC then $stderr.puts e.message $stderr.puts "#{e.backtrace.join "\n\t"}" $stderr.puts elsif Interrupt === e then $stderr.puts $stderr.puts 'Interrupted' else $stderr.puts "uh-oh! RDoc had a problem:" $stderr.puts e.message $stderr.puts $stderr.puts "run with --debug for full backtrace" end exit 1 end sdoc-0.4.1/bin/sdoc-merge0000755000004100000410000000076112377325624015236 0ustar www-datawww-data#!/usr/bin/env ruby -KU require File.dirname(__FILE__) + '/../lib/sdoc' # add extensions require 'sdoc/merge' begin m = SDoc::Merge.new m.merge(ARGV) rescue SystemExit raise rescue Exception => e if $DEBUG_RDOC then $stderr.puts e.message $stderr.puts "#{e.backtrace.join "\n\t"}" $stderr.puts elsif Interrupt === e then $stderr.puts $stderr.puts 'Interrupted' else $stderr.puts "uh-oh! SDoc merge had a problem:" $stderr.puts e.message end exit 1 end sdoc-0.4.1/Gemfile0000644000004100000410000000004712377325624014003 0ustar www-datawww-datasource "https://rubygems.org" gemspec sdoc-0.4.1/spec/0000755000004100000410000000000012377325624013441 5ustar www-datawww-datasdoc-0.4.1/spec/spec_helper.rb0000644000004100000410000000016112377325624016255 0ustar www-datawww-datarequire 'rubygems' require 'bundler/setup' require 'sdoc' require 'rdoc/test_case' require 'minitest/autorun' sdoc-0.4.1/spec/rdoc_generator_spec.rb0000644000004100000410000000261012377325624017774 0ustar www-datawww-datarequire File.join(File.dirname(__FILE__), '/spec_helper') describe RDoc::Generator::SDoc do before :each do @options = RDoc::Options.new @options.setup_generator 'sdoc' @parser = @options.option_parser end it "should find sdoc generator" do RDoc::RDoc::GENERATORS.must_include 'sdoc' end it "should use sdoc generator" do @options.generator.must_equal RDoc::Generator::SDoc @options.generator_name.must_equal 'sdoc' end it "should parse github option" do assert !@options.github out, err = capture_io do @parser.parse %w[--github] end err.wont_match /^invalid options/ @options.github.must_equal true end it "should parse github short-hand option" do assert !@options.github out, err = capture_io do @parser.parse %w[-g] end err.wont_match /^invalid options/ @options.github.must_equal true end it "should parse no search engine index option" do @options.search_index.must_equal true out, err = capture_io do @parser.parse %w[--without-search] end err.wont_match /^invalid options/ @options.search_index.must_equal false end it "should parse search-index shorthand option" do @options.search_index.must_equal true out, err = capture_io do @parser.parse %w[-s] end err.wont_match /^invalid options/ @options.search_index.must_equal false end end sdoc-0.4.1/.travis.yml0000644000004100000410000000023312377325624014616 0ustar www-datawww-data--- rvm: - 1.8.7 - 1.9.3 - 2.0.0 - 2.1.0 - ruby-head - jruby-19mode - jruby-head notifications: recipients: - zachary@zacharyscott.net sdoc-0.4.1/lib/0000755000004100000410000000000012377325624013255 5ustar www-datawww-datasdoc-0.4.1/lib/sdoc/0000755000004100000410000000000012377325624014205 5ustar www-datawww-datasdoc-0.4.1/lib/sdoc/github.rb0000644000004100000410000000306112377325624016014 0ustar www-datawww-datamodule SDoc::GitHub def github_url(path) unless @github_url_cache.has_key? path @github_url_cache[path] = false file = @store.find_file_named(path) if file base_url = repository_url(path) if base_url sha1 = commit_sha1(path) if sha1 relative_url = path_relative_to_repository(path) @github_url_cache[path] = "#{base_url}#{sha1}#{relative_url}" end end end end @github_url_cache[path] end protected def have_git? @have_git = system('git --version > /dev/null 2>&1') if @have_git.nil? @have_git end def commit_sha1(path) return false unless have_git? name = File.basename(path) s = Dir.chdir(File.join(base_dir, File.dirname(path))) do `git log -1 --pretty=format:"commit %H" #{name}` end m = s.match(/commit\s+(\S+)/) m ? m[1] : false end def repository_url(path) return false unless have_git? s = Dir.chdir(File.join(base_dir, File.dirname(path))) do `git config --get remote.origin.url` end m = s.match(%r{github.com[/:](.*)\.git$}) m ? "https://github.com/#{m[1]}/blob/" : false end def path_relative_to_repository(path) absolute_path = File.join(base_dir, path) root = path_to_git_dir(File.dirname(absolute_path)) absolute_path[root.size..absolute_path.size] end def path_to_git_dir(path) while !path.empty? && path != '.' if (File.exists? File.join(path, '.git')) return path end path = File.dirname(path) end '' end end sdoc-0.4.1/lib/sdoc/helpers.rb0000644000004100000410000000113512377325624016174 0ustar www-datawww-datamodule SDoc::Helpers def each_letter_group(methods, &block) group = {:name => '', :methods => []} methods.sort{ |a, b| a.name <=> b.name }.each do |method| gname = group_name method.name if gname != group[:name] yield group unless group[:methods].size == 0 group = { :name => gname, :methods => [] } end group[:methods].push(method) end yield group unless group[:methods].size == 0 end protected def group_name name if match = name.match(/^([a-z])/i) match[1].upcase else '#' end end end sdoc-0.4.1/lib/sdoc/version.rb0000644000004100000410000000004412377325624016215 0ustar www-datawww-datamodule SDoc VERSION = '0.4.1' end sdoc-0.4.1/lib/sdoc/merge.rb0000644000004100000410000001404112377325624015631 0ustar www-datawww-datarequire 'optparse' require 'pathname' require 'fileutils' if Gem::Specification.respond_to?(:find_by_name) ? Gem::Specification::find_by_name("json") : Gem.available?("json") gem "json", ">= 1.1.3" else gem "json_pure", ">= 1.1.3" end require 'json' require 'sdoc/templatable' class SDoc::Merge include SDoc::Templatable FLAG_FILE = "created.rid" def initialize() @names = [] @urls = [] @op_dir = 'doc' @title = '' @directories = [] end def merge(options) parse_options options @outputdir = Pathname.new( @op_dir ) check_directories setup_output_dir setup_names copy_files copy_docs if @urls.empty? merge_search_index merge_tree generate_index_file end def parse_options(options) opts = OptionParser.new do |opt| opt.banner = "Usage: sdoc-merge [options] directories" opt.on("-n", "--names [NAMES]", "Names of merged repositories. Comma separated") do |v| @names = v.split(',').map{|name| name.strip } end opt.on("-o", "--op [DIRECTORY]", "Set the output directory") do |v| @op_dir = v end opt.on("-t", "--title [TITLE]", "Set the title of merged file") do |v| @title = v end opt.on("-u", "--urls [URLS]", "Paths to merged docs. If you", "set this files and classes won't be actualy", "copied to merged build") do |v| @urls = v.split(' ').map{|name| name.strip } end end opts.parse! options @template_dir = Pathname.new(RDoc::Options.new.template_dir_for 'merge') @directories = options.dup end def merge_tree tree = [] @directories.each_with_index do |dir, i| name = @names[i] url = @urls.empty? ? name : @urls[i] filename = File.join dir, RDoc::Generator::SDoc::TREE_FILE data = open(filename).read.sub(/var tree =\s*/, '') subtree = JSON.parse(data, :max_nesting => 0) item = [ name, url + '/' + extract_index_path(dir), '', append_path(subtree, url) ] tree << item end dst = File.join @op_dir, RDoc::Generator::SDoc::TREE_FILE FileUtils.mkdir_p File.dirname(dst) File.open(dst, "w", 0644) do |f| f.write('var tree = '); f.write(tree.to_json(:max_nesting => 0)) end end def append_path subtree, path subtree.map do |item| item[1] = path + '/' + item[1] unless item[1].empty? item[3] = append_path item[3], path item end end def merge_search_index items = [] @indexes = {} @directories.each_with_index do |dir, i| name = @names[i] url = @urls.empty? ? name : @urls[i] filename = File.join dir, RDoc::Generator::SDoc::SEARCH_INDEX_FILE data = open(filename).read.sub(/var search_data =\s*/, '') subindex = JSON.parse(data, :max_nesting => 0) @indexes[name] = subindex searchIndex = subindex["index"]["searchIndex"] longSearchIndex = subindex["index"]["longSearchIndex"] subindex["index"]["info"].each_with_index do |info, j| info[2] = url + '/' + info[2] info[6] = i items << { :info => info, :searchIndex => searchIndex[j], :longSearchIndex => name + ' ' + longSearchIndex[j] } end end items.sort! do |a, b| # type (class/method/file) or name or doc part or namespace [a[:info][5], a[:info][0], a[:info][6], a[:info][1]] <=> [b[:info][5], b[:info][0], b[:info][6], b[:info][1]] end index = { :searchIndex => items.map{|item| item[:searchIndex]}, :longSearchIndex => items.map{|item| item[:longSearchIndex]}, :info => items.map{|item| item[:info]} } search_data = { :index => index, :badges => @names } dst = File.join @op_dir, RDoc::Generator::SDoc::SEARCH_INDEX_FILE FileUtils.mkdir_p File.dirname(dst) File.open(dst, "w", 0644) do |f| f.write('var search_data = '); f.write(search_data.to_json(:max_nesting => 0)) end end def extract_index_path dir filename = File.join dir, 'index.html' content = File.open(filename) { |f| f.read } match = content.match(/ 0 @directories.each do |dir| name = File.basename dir name = File.basename File.dirname(dir) if name == 'doc' @names << name end end end def copy_docs @directories.each_with_index do |dir, i| name = @names[i] index_dir = File.dirname(RDoc::Generator::SDoc::TREE_FILE) FileUtils.mkdir_p(File.join(@op_dir, name)) Dir.new(dir).each do |item| if File.directory?(File.join(dir, item)) && item != '.' && item != '..' && item != index_dir FileUtils.cp_r File.join(dir, item), File.join(@op_dir, name, item), :preserve => true end end end end def copy_files dir = @directories.first Dir.new(dir).each do |item| if item != '.' && item != '..' && item != RDoc::Generator::SDoc::FILE_DIR && item != RDoc::Generator::SDoc::CLASS_DIR FileUtils.cp_r File.join(dir, item), @op_dir, :preserve => true end end end def setup_output_dir if File.exists? @op_dir error "#{@op_dir} already exists" end FileUtils.mkdir_p @op_dir end def check_directories @directories.each do |dir| unless File.exists?(File.join(dir, FLAG_FILE)) && File.exists?(File.join(dir, RDoc::Generator::SDoc::TREE_FILE)) && File.exists?(File.join(dir, RDoc::Generator::SDoc::SEARCH_INDEX_FILE)) error "#{dir} does not seem to be an sdoc directory" end end end ## # Report an error message and exit def error(msg) raise RDoc::Error, msg end end sdoc-0.4.1/lib/sdoc/templatable.rb0000644000004100000410000000413112377325624017023 0ustar www-datawww-datarequire 'erb' require "sdoc" module SDoc::Templatable ### Load and render the erb template in the given +templatefile+ within the ### specified +context+ (a Binding object) and return output ### Both +templatefile+ and +outfile+ should be Pathname-like objects. def eval_template(templatefile, context) template_src = templatefile.read template = ERB.new( template_src, nil, '<>' ) template.filename = templatefile.to_s begin template.result( context ) rescue NoMethodError => err raise RDoc::Error, "Error while evaluating %s: %s (at %p)" % [ templatefile.to_s, err.message, eval( "_erbout[-50,50]", context ) ], err.backtrace end end ### Load and render the erb template with the given +template_name+ within ### current context. Adds all +local_assigns+ to context def include_template(template_name, local_assigns = {}) source = local_assigns.keys.map { |key| "#{key} = local_assigns[:#{key}];" }.join templatefile = @template_dir + template_name eval("#{source};eval_template(templatefile, binding)") end ### Load and render the erb template in the given +templatefile+ within the ### specified +context+ (a Binding object) and write it out to +outfile+. ### Both +templatefile+ and +outfile+ should be Pathname-like objects. def render_template( templatefile, context, outfile ) output = eval_template(templatefile, context) # TODO delete this dirty hack when documentation for example for GeneratorMethods will not be cutted off by
index sdoc-0.4.1/lib/rdoc/generator/template/sdoc/resources/i/0000755000004100000410000000000012377325624023177 5ustar www-datawww-datasdoc-0.4.1/lib/rdoc/generator/template/sdoc/resources/i/arrows.png0000755000004100000410000000073512377325624025232 0ustar www-datawww-dataPNG  IHDR[sBIT|d pHYs B4tEXtSoftwareAdobe Fireworks CS3FtEXtCreation Time3/14/09Y>6IDAT8q0EzR@: f;n͐ Nt`*lي/_͗$2,W$kw_DNR-3I{% BMtNqf֌Z='x6'isu\3cah1S-nPBQi m{B&9K/2w?ӆ5먪-(~ZY@uUUwnϲph#S-r@|`._J{n!w.sfј_9pC/ֱ$MrOK0e$IENDB`sdoc-0.4.1/lib/rdoc/generator/template/sdoc/resources/i/tree_bg.png0000755000004100000410000000031712377325624025320 0ustar www-datawww-dataPNG  IHDR.sBIT|d pHYstEXtSoftwareAdobe Fireworks CS3FtEXtCreation Time3/14/09Y>(IDAT(c4.0*81;G #\HvX OάIENDB`sdoc-0.4.1/lib/rdoc/generator/template/sdoc/resources/i/results_bg.png0000755000004100000410000000127012377325624026061 0ustar www-datawww-dataPNG  IHDRd9sBIT|d pHYs B4tEXtSoftwareAdobe Fireworks CS3FtEXtCreation Time3/12/092aHIDATxA 0CKh=3@A :t0` @A :t0` @A :t0` @A :t0` @A :t0` @A :t0``U؂uIENDB`sdoc-0.4.1/lib/rdoc/generator/template/sdoc/search_index.rhtml0000644000004100000410000000026112377325624024440 0ustar www-datawww-data File index <% @files.each do |file| %> <%= file.relative_name %> <% end %> sdoc-0.4.1/lib/rdoc/generator/template/sdoc/file.rhtml0000755000004100000410000000205112377325624022725 0ustar www-datawww-data <%= h file.name %> <%= include_template '_head.rhtml', {:rel_prefix => rel_prefix} %>
<%= include_template '_context.rhtml', {:context => file, :rel_prefix => rel_prefix} %>
sdoc-0.4.1/lib/rdoc/generator/template/sdoc/_context.rhtml0000755000004100000410000001476112377325624023644 0ustar www-datawww-data
<% unless (description = context.description).empty? %>
<%= description %>
<% end %> <% unless context.requires.empty? %>
Required Files
<% end %> <% sections = context.sections.select { |s| s.title }.sort_by{ |s| s.title.to_s } %> <% unless sections.empty? then %>
Sections
<% end %> <% unless context.classes_and_modules.empty? %>
Namespace
<% end %> <% unless context.method_list.empty? %>
Methods
<% each_letter_group(context.method_list) do |group| %>
<%= group[:name] %>
    <% group[:methods].each_with_index do |method, i| %> <% comma = group[:methods].size == i+1 ? '' : ',' %>
  • <%= h method.name %><%= comma %>
  • <% end %>
<% end %>
<% end %> <% unless context.includes.empty? %>
Included Modules
<% end %> <% context.each_section do |section, constants, attributes| %> <% if section.title then %>
<%= h section.title %>
<% end %> <% if section.comment then %>
<%= section.description %>
<% end %> <% unless constants.empty? %>
Constants
<% context.each_constant do |const| %> <% if const.comment %> <% end %> <% end %>
<%= h const.name %> = <%= h const.value %>
  <%= const.description.strip %>
<% end %> <% unless attributes.empty? %>
Attributes
<% attributes.each do |attrib| %> <% end %>
[<%= attrib.rw %>] <%= h attrib.name %> <%= attrib.description.strip %>
<% end %> <% context.methods_by_type(section).each do |type, visibilities| next if visibilities.empty? visibilities.each do |visibility, methods| next if methods.empty? %>
<%= type.capitalize %> <%= visibility.to_s.capitalize %> methods
<% methods.each do |method| %>
<% if method.call_seq %> <%= method.call_seq.gsub(/->/, '→') %> <% else %> <%= h method.name %><%= h method.params %> <% end %> " name="<%= method.aref %>" class="permalink">Link
<% if method.comment %>
<%= method.description.strip %>
<% end %> <% unless method.aliases.empty? %>
Also aliased as: <%= method.aliases.map do |aka| if aka.parent then # HACK lib/rexml/encodings %{#{h aka.name}} else h aka.name end end.join ", " %>
<% end %> <% if method.is_alias_for then %> <% end %> <% if method.token_stream %> <% markup = method.sdoc_markup_code %>
<% # generate github link github = if options.github if markup =~ /File\s(\S+), line (\d+)/ path = $1 line = $2.to_i end path && github_url(path) else false end %>
<%= markup %>
<% end %>
<% end #methods.each %> <% end #visibilities.each %> <% end #context.methods_by_type %> <% end #context.each_section %>
sdoc-0.4.1/lib/rdoc/generator/template/sdoc/_head.rhtml0000644000004100000410000000132212377325624023043 0ustar www-datawww-data" type="text/css" media="screen" /> " type="text/css" media="screen" /> " type="text/css" media="screen" /> sdoc-0.4.1/lib/rdoc/generator/template/sdoc/class.rhtml0000755000004100000410000000316612377325624023123 0ustar www-datawww-data <%= h klass.full_name %> <%= include_template '_head.rhtml', {:rel_prefix => rel_prefix} %>
<%= include_template '_context.rhtml', {:context => klass, :rel_prefix => rel_prefix} %>
sdoc-0.4.1/lib/rdoc/generator/template/merge/0000755000004100000410000000000012377325624021104 5ustar www-datawww-datasdoc-0.4.1/lib/rdoc/generator/template/merge/index.rhtml0000644000004100000410000000103312377325624023260 0ustar www-datawww-data <%= @title %> sdoc-0.4.1/lib/rdoc/generator/template/rails/0000755000004100000410000000000012377325624021117 5ustar www-datawww-datasdoc-0.4.1/lib/rdoc/generator/template/rails/index.rhtml0000755000004100000410000000107312377325624023302 0ustar www-datawww-data <%= @options.title %> sdoc-0.4.1/lib/rdoc/generator/template/rails/resources/0000755000004100000410000000000012377325624023131 5ustar www-datawww-datasdoc-0.4.1/lib/rdoc/generator/template/rails/resources/js/0000755000004100000410000000000012377325624023545 5ustar www-datawww-datasdoc-0.4.1/lib/rdoc/generator/template/rails/resources/js/highlight.pack.js0000755000004100000410000003765212377325624027007 0ustar www-datawww-datavar hljs=new function(){function l(o){return o.replace(/&/gm,"&").replace(/"}while(x.length||y.length){var u=t().splice(0,1)[0];v+=l(w.substr(q,u.offset-q));q=u.offset;if(u.event=="start"){v+=r(u.node);s.push(u.node)}else{if(u.event=="stop"){var p=s.length;do{p--;var o=s[p];v+=("")}while(o!=u.node);s.splice(p,1);while(p'+l(K[0])+""}else{M+=l(K[0])}O=N.lR.lastIndex;K=N.lR.exec(L)}M+=l(L.substr(O,L.length-O));return M}function J(r,L){if(L.sL&&d[L.sL]){var K=f(L.sL,r);s+=K.keyword_count;return K.value}else{return E(r,L)}}function H(L,r){var K=L.cN?'':"";if(L.rB){p+=K;L.buffer=""}else{if(L.eB){p+=l(r)+K;L.buffer=""}else{p+=K;L.buffer=r}}B.push(L);A+=L.r}function D(N,K,P){var Q=B[B.length-1];if(P){p+=J(Q.buffer+N,Q);return false}var L=y(K,Q);if(L){p+=J(Q.buffer+N,Q);H(L,K);return L.rB}var r=v(B.length-1,K);if(r){var M=Q.cN?"":"";if(Q.rE){p+=J(Q.buffer+N,Q)+M}else{if(Q.eE){p+=J(Q.buffer+N,Q)+M+l(K)}else{p+=J(Q.buffer+N+K,Q)+M}}while(r>1){M=B[B.length-2].cN?"":"";p+=M;r--;B.length--}var O=B[B.length-1];B.length--;B[B.length-1].buffer="";if(O.starts){H(O.starts,"")}return Q.rE}if(w(K,Q)){throw"Illegal"}}var G=d[I];var B=[G.dM];var A=0;var s=0;var p="";try{var u=0;G.dM.buffer="";do{var x=q(C,u);var t=D(x[0],x[1],x[2]);u+=x[0].length;if(!t){u+=x[1].length}}while(!x[2]);if(B.length>1){throw"Illegal"}return{language:I,r:A,keyword_count:s,value:p}}catch(F){if(F=="Illegal"){return{language:null,r:0,keyword_count:0,value:l(C)}}else{throw F}}}function h(){function o(t,s,u){if(t.compiled){return}if(!u){t.bR=c(s,t.b?t.b:"\\B|\\b");if(!t.e&&!t.eW){t.e="\\B|\\b"}if(t.e){t.eR=c(s,t.e)}}if(t.i){t.iR=c(s,t.i)}if(t.r==undefined){t.r=1}if(t.k){t.lR=c(s,t.l||hljs.IR,true)}for(var r in t.k){if(!t.k.hasOwnProperty(r)){continue}if(t.k[r] instanceof Object){t.kG=t.k}else{t.kG={keyword:t.k}}break}if(!t.c){t.c=[]}t.compiled=true;for(var q=0;qx.keyword_count+x.r){x=u}if(u.keyword_count+u.r>w.keyword_count+w.r){x=w;w=u}}}var s=t.className;if(!s.match(w.language)){s=s?(s+" "+w.language):w.language}var o=b(t);if(o.length){var q=document.createElement("pre");q.innerHTML=w.value;w.value=k(o,b(q),A)}if(y){w.value=w.value.replace(/^((<[^>]+>|\t)+)/gm,function(B,E,D,C){return E.replace(/\t/g,y)})}if(p){w.value=w.value.replace(/\n/g,"
")}if(/MSIE [678]/.test(navigator.userAgent)&&t.tagName=="CODE"&&t.parentNode.tagName=="PRE"){var q=t.parentNode;var v=document.createElement("div");v.innerHTML="
"+w.value+"
";t=v.firstChild.firstChild;v.firstChild.cN=q.cN;q.parentNode.replaceChild(v.firstChild,q)}else{t.innerHTML=w.value}t.className=s;t.dataset={};t.dataset.result={language:w.language,kw:w.keyword_count,re:w.r};if(x&&x.language){t.dataset.second_best={language:x.language,kw:x.keyword_count,re:x.r}}}function j(){if(j.called){return}j.called=true;e();var q=document.getElementsByTagName("pre");for(var o=0;o|>=|>>|>>=|>>>|>>>=|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.BE={b:"\\\\.",r:0};this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE],r:0};this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE],r:0};this.CLCM={cN:"comment",b:"//",e:"$"};this.CBLCLM={cN:"comment",b:"/\\*",e:"\\*/"};this.HCM={cN:"comment",b:"#",e:"$"};this.NM={cN:"number",b:this.NR,r:0};this.CNM={cN:"number",b:this.CNR,r:0};this.inherit=function(o,r){var q={};for(var p in o){q[p]=o[p]}if(r){for(var p in r){q[p]=r[p]}}return q}}();hljs.LANGUAGES.ruby=function(){var g="[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?";var a="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?";var n={keyword:{and:1,"false":1,then:1,defined:1,module:1,"in":1,"return":1,redo:1,"if":1,BEGIN:1,retry:1,end:1,"for":1,"true":1,self:1,when:1,next:1,until:1,"do":1,begin:1,unless:1,END:1,rescue:1,nil:1,"else":1,"break":1,undef:1,not:1,"super":1,"class":1,"case":1,require:1,yield:1,alias:1,"while":1,ensure:1,elsif:1,or:1,def:1},keymethods:{__id__:1,__send__:1,abort:1,abs:1,"all?":1,allocate:1,ancestors:1,"any?":1,arity:1,assoc:1,at:1,at_exit:1,autoload:1,"autoload?":1,"between?":1,binding:1,binmode:1,"block_given?":1,call:1,callcc:1,caller:1,capitalize:1,"capitalize!":1,casecmp:1,"catch":1,ceil:1,center:1,chomp:1,"chomp!":1,chop:1,"chop!":1,chr:1,"class":1,class_eval:1,"class_variable_defined?":1,class_variables:1,clear:1,clone:1,close:1,close_read:1,close_write:1,"closed?":1,coerce:1,collect:1,"collect!":1,compact:1,"compact!":1,concat:1,"const_defined?":1,const_get:1,const_missing:1,const_set:1,constants:1,count:1,crypt:1,"default":1,default_proc:1,"delete":1,"delete!":1,delete_at:1,delete_if:1,detect:1,display:1,div:1,divmod:1,downcase:1,"downcase!":1,downto:1,dump:1,dup:1,each:1,each_byte:1,each_index:1,each_key:1,each_line:1,each_pair:1,each_value:1,each_with_index:1,"empty?":1,entries:1,eof:1,"eof?":1,"eql?":1,"equal?":1,"eval":1,exec:1,exit:1,"exit!":1,extend:1,fail:1,fcntl:1,fetch:1,fileno:1,fill:1,find:1,find_all:1,first:1,flatten:1,"flatten!":1,floor:1,flush:1,for_fd:1,foreach:1,fork:1,format:1,freeze:1,"frozen?":1,fsync:1,getc:1,gets:1,global_variables:1,grep:1,gsub:1,"gsub!":1,"has_key?":1,"has_value?":1,hash:1,hex:1,id:1,include:1,"include?":1,included_modules:1,index:1,indexes:1,indices:1,induced_from:1,inject:1,insert:1,inspect:1,instance_eval:1,instance_method:1,instance_methods:1,"instance_of?":1,"instance_variable_defined?":1,instance_variable_get:1,instance_variable_set:1,instance_variables:1,"integer?":1,intern:1,invert:1,ioctl:1,"is_a?":1,isatty:1,"iterator?":1,join:1,"key?":1,keys:1,"kind_of?":1,lambda:1,last:1,length:1,lineno:1,ljust:1,load:1,local_variables:1,loop:1,lstrip:1,"lstrip!":1,map:1,"map!":1,match:1,max:1,"member?":1,merge:1,"merge!":1,method:1,"method_defined?":1,method_missing:1,methods:1,min:1,module_eval:1,modulo:1,name:1,nesting:1,"new":1,next:1,"next!":1,"nil?":1,nitems:1,"nonzero?":1,object_id:1,oct:1,open:1,pack:1,partition:1,pid:1,pipe:1,pop:1,popen:1,pos:1,prec:1,prec_f:1,prec_i:1,print:1,printf:1,private_class_method:1,private_instance_methods:1,"private_method_defined?":1,private_methods:1,proc:1,protected_instance_methods:1,"protected_method_defined?":1,protected_methods:1,public_class_method:1,public_instance_methods:1,"public_method_defined?":1,public_methods:1,push:1,putc:1,puts:1,quo:1,raise:1,rand:1,rassoc:1,read:1,read_nonblock:1,readchar:1,readline:1,readlines:1,readpartial:1,rehash:1,reject:1,"reject!":1,remainder:1,reopen:1,replace:1,require:1,"respond_to?":1,reverse:1,"reverse!":1,reverse_each:1,rewind:1,rindex:1,rjust:1,round:1,rstrip:1,"rstrip!":1,scan:1,seek:1,select:1,send:1,set_trace_func:1,shift:1,singleton_method_added:1,singleton_methods:1,size:1,sleep:1,slice:1,"slice!":1,sort:1,"sort!":1,sort_by:1,split:1,sprintf:1,squeeze:1,"squeeze!":1,srand:1,stat:1,step:1,store:1,strip:1,"strip!":1,sub:1,"sub!":1,succ:1,"succ!":1,sum:1,superclass:1,swapcase:1,"swapcase!":1,sync:1,syscall:1,sysopen:1,sysread:1,sysseek:1,system:1,syswrite:1,taint:1,"tainted?":1,tell:1,test:1,"throw":1,times:1,to_a:1,to_ary:1,to_f:1,to_hash:1,to_i:1,to_int:1,to_io:1,to_proc:1,to_s:1,to_str:1,to_sym:1,tr:1,"tr!":1,tr_s:1,"tr_s!":1,trace_var:1,transpose:1,trap:1,truncate:1,"tty?":1,type:1,ungetc:1,uniq:1,"uniq!":1,unpack:1,unshift:1,untaint:1,untrace_var:1,upcase:1,"upcase!":1,update:1,upto:1,"value?":1,values:1,values_at:1,warn:1,write:1,write_nonblock:1,"zero?":1,zip:1}};var h={cN:"yardoctag",b:"@[A-Za-z]+"};var d={cN:"comment",b:"#",e:"$",c:[h]};var c={cN:"comment",b:"^\\=begin",e:"^\\=end",c:[h],r:10};var b={cN:"comment",b:"^__END__",e:"\\n$"};var u={cN:"subst",b:"#\\{",e:"}",l:g,k:n};var p=[hljs.BE,u];var s={cN:"string",b:"'",e:"'",c:p,r:0};var r={cN:"string",b:'"',e:'"',c:p,r:0};var q={cN:"string",b:"%[qw]?\\(",e:"\\)",c:p,r:10};var o={cN:"string",b:"%[qw]?\\[",e:"\\]",c:p,r:10};var m={cN:"string",b:"%[qw]?{",e:"}",c:p,r:10};var l={cN:"string",b:"%[qw]?<",e:">",c:p,r:10};var k={cN:"string",b:"%[qw]?/",e:"/",c:p,r:10};var j={cN:"string",b:"%[qw]?%",e:"%",c:p,r:10};var i={cN:"string",b:"%[qw]?-",e:"-",c:p,r:10};var t={cN:"string",b:"%[qw]?\\|",e:"\\|",c:p,r:10};var e={cN:"function",b:"\\bdef\\s+",e:" |$|;",l:g,k:n,c:[{cN:"title",b:a,l:g,k:n},{cN:"params",b:"\\(",e:"\\)",l:g,k:n},d,c,b]};var f={cN:"identifier",b:g,l:g,k:n,r:0};var v=[d,c,b,s,r,q,o,m,l,k,j,i,t,{cN:"class",b:"\\b(class|module)\\b",e:"$|;",k:{"class":1,module:1},c:[{cN:"title",b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?",r:0},{cN:"inheritance",b:"<\\s*",c:[{cN:"parent",b:"("+hljs.IR+"::)?"+hljs.IR}]},d,c,b]},e,{cN:"constant",b:"(::)?([A-Z]\\w*(::)?)+",r:0},{cN:"symbol",b:":",c:[s,r,q,o,m,l,k,j,i,t,f],r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"number",b:"\\?\\w"},{cN:"variable",b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},f,{b:"("+hljs.RSR+")\\s*",c:[d,c,b,{cN:"regexp",b:"/",e:"/[a-z]*",i:"\\n",c:[hljs.BE]}],r:0}];u.c=v;e.c[1].c=v;return{dM:{l:g,k:n,c:v}}}();hljs.LANGUAGES.javascript={dM:{k:{keyword:{"in":1,"if":1,"for":1,"while":1,"finally":1,"var":1,"new":1,"function":1,"do":1,"return":1,"void":1,"else":1,"break":1,"catch":1,"instanceof":1,"with":1,"throw":1,"case":1,"default":1,"try":1,"this":1,"switch":1,"continue":1,"typeof":1,"delete":1},literal:{"true":1,"false":1,"null":1}},c:[hljs.ASM,hljs.QSM,hljs.CLCM,hljs.CBLCLM,hljs.CNM,{b:"("+hljs.RSR+"|case|return|throw)\\s*",k:{"return":1,"throw":1,"case":1},c:[hljs.CLCM,hljs.CBLCLM,{cN:"regexp",b:"/.*?[^\\\\/]/[gim]*"}],r:0},{cN:"function",b:"\\bfunction\\b",e:"{",k:{"function":1},c:[{cN:"title",b:"[A-Za-z$_][0-9A-Za-z$_]*"},{cN:"params",b:"\\(",e:"\\)",c:[hljs.ASM,hljs.QSM,hljs.CLCM,hljs.CBLCLM]}]}]}};hljs.LANGUAGES.css=function(){var a={cN:"function",b:hljs.IR+"\\(",e:"\\)",c:[{eW:true,eE:true,c:[hljs.NM,hljs.ASM,hljs.QSM]}]};return{cI:true,dM:{i:"[=/|']",c:[hljs.CBLCLM,{cN:"id",b:"\\#[A-Za-z0-9_-]+"},{cN:"class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"pseudo",b:":(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\\\"\\']+"},{cN:"at_rule",b:"@font-face",l:"[a-z-]+",k:{"font-face":1}},{cN:"at_rule",b:"@",e:"[{;]",eE:true,k:{"import":1,page:1,media:1,charset:1},c:[a,hljs.ASM,hljs.QSM,hljs.NM]},{cN:"tag",b:hljs.IR,r:0},{cN:"rules",b:"{",e:"}",i:"[^\\s]",r:0,c:[hljs.CBLCLM,{cN:"rule",b:"[^\\s]",rB:true,e:";",eW:true,c:[{cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:true,i:"[^\\s]",starts:{cN:"value",eW:true,eE:true,c:[a,hljs.NM,hljs.QSM,hljs.ASM,hljs.CBLCLM,{cN:"hexcolor",b:"\\#[0-9A-F]+"},{cN:"important",b:"!important"}]}}]}]}]}}}();hljs.LANGUAGES.xml=function(){var b="[A-Za-z0-9\\._:-]+";var a={eW:true,c:[{cN:"attribute",b:b,r:0},{b:'="',rB:true,e:'"',c:[{cN:"value",b:'"',eW:true}]},{b:"='",rB:true,e:"'",c:[{cN:"value",b:"'",eW:true}]},{b:"=",c:[{cN:"value",b:"[^\\s/>]+"}]}]};return{cI:true,dM:{c:[{cN:"pi",b:"<\\?",e:"\\?>",r:10},{cN:"doctype",b:"",r:10},{cN:"comment",b:"",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"",k:{title:{style:1}},c:[a],starts:{cN:"css",e:"",rE:true,sL:"css"}},{cN:"tag",b:"",k:{title:{script:1}},c:[a],starts:{cN:"javascript",e:"<\/script>",rE:true,sL:"javascript"}},{cN:"vbscript",b:"<%",e:"%>",sL:"vbscript"},{cN:"tag",b:"",c:[{cN:"title",b:"[^ />]+"},a]}]}}}();hljs.LANGUAGES.cpp=function(){var b={keyword:{"false":1,"int":1,"float":1,"while":1,"private":1,"char":1,"catch":1,"export":1,virtual:1,operator:2,sizeof:2,dynamic_cast:2,typedef:2,const_cast:2,"const":1,struct:1,"for":1,static_cast:2,union:1,namespace:1,unsigned:1,"long":1,"throw":1,"volatile":2,"static":1,"protected":1,bool:1,template:1,mutable:1,"if":1,"public":1,friend:2,"do":1,"return":1,"goto":1,auto:1,"void":2,"enum":1,"else":1,"break":1,"new":1,extern:1,using:1,"true":1,"class":1,asm:1,"case":1,typeid:1,"short":1,reinterpret_cast:2,"default":1,"double":1,register:1,explicit:1,signed:1,typename:1,"try":1,"this":1,"switch":1,"continue":1,wchar_t:1,inline:1,"delete":1,alignof:1,char16_t:1,char32_t:1,constexpr:1,decltype:1,noexcept:1,nullptr:1,static_assert:1,thread_local:1},built_in:{std:1,string:1,cin:1,cout:1,cerr:1,clog:1,stringstream:1,istringstream:1,ostringstream:1,auto_ptr:1,deque:1,list:1,queue:1,stack:1,vector:1,map:1,set:1,bitset:1,multiset:1,multimap:1,unordered_set:1,unordered_map:1,unordered_multiset:1,unordered_multimap:1,array:1,shared_ptr:1}};var a={cN:"stl_container",b:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",e:">",k:b.built_in,r:10};a.c=[a];return{dM:{k:b,i:"'); var wrapper = element.parent(); //Transfer the positioning of the element to the wrapper if (element.css('position') == 'static') { wrapper.css({ position: 'relative' }); element.css({ position: 'relative'} ); } else { var top = element.css('top'); if(isNaN(parseInt(top,10))) top = 'auto'; var left = element.css('left'); if(isNaN(parseInt(left,10))) left = 'auto'; wrapper.css({ position: element.css('position'), top: top, left: left, zIndex: element.css('z-index') }).show(); element.css({position: 'relative', top: 0, left: 0 }); } wrapper.css(props); return wrapper; }, removeWrapper: function(element) { if (element.parent().is('.ui-effects-wrapper')) return element.parent().replaceWith(element); return element; }, setTransition: function(element, list, factor, value) { value = value || {}; $.each(list, function(i, x){ unit = element.cssUnit(x); if (unit[0] > 0) value[x] = unit[0] * factor + unit[1]; }); return value; }, //Base function to animate from one class to another in a seamless transition animateClass: function(value, duration, easing, callback) { var cb = (typeof easing == "function" ? easing : (callback ? callback : null)); var ea = (typeof easing == "string" ? easing : null); return this.each(function() { var offset = {}; var that = $(this); var oldStyleAttr = that.attr("style") || ''; if(typeof oldStyleAttr == 'object') oldStyleAttr = oldStyleAttr["cssText"]; /* Stupidly in IE, style is a object.. */ if(value.toggle) { that.hasClass(value.toggle) ? value.remove = value.toggle : value.add = value.toggle; } //Let's get a style offset var oldStyle = $.extend({}, (document.defaultView ? document.defaultView.getComputedStyle(this,null) : this.currentStyle)); if(value.add) that.addClass(value.add); if(value.remove) that.removeClass(value.remove); var newStyle = $.extend({}, (document.defaultView ? document.defaultView.getComputedStyle(this,null) : this.currentStyle)); if(value.add) that.removeClass(value.add); if(value.remove) that.addClass(value.remove); // The main function to form the object for animation for(var n in newStyle) { if( typeof newStyle[n] != "function" && newStyle[n] /* No functions and null properties */ && n.indexOf("Moz") == -1 && n.indexOf("length") == -1 /* No mozilla spezific render properties. */ && newStyle[n] != oldStyle[n] /* Only values that have changed are used for the animation */ && (n.match(/color/i) || (!n.match(/color/i) && !isNaN(parseInt(newStyle[n],10)))) /* Only things that can be parsed to integers or colors */ && (oldStyle.position != "static" || (oldStyle.position == "static" && !n.match(/left|top|bottom|right/))) /* No need for positions when dealing with static positions */ ) offset[n] = newStyle[n]; } that.animate(offset, duration, ea, function() { // Animate the newly constructed offset object // Change style attribute back to original. For stupid IE, we need to clear the damn object. if(typeof $(this).attr("style") == 'object') { $(this).attr("style")["cssText"] = ""; $(this).attr("style")["cssText"] = oldStyleAttr; } else $(this).attr("style", oldStyleAttr); if(value.add) $(this).addClass(value.add); if(value.remove) $(this).removeClass(value.remove); if(cb) cb.apply(this, arguments); }); }); } }); function _normalizeArguments(a, m) { var o = a[1] && a[1].constructor == Object ? a[1] : {}; if(m) o.mode = m; var speed = a[1] && a[1].constructor != Object ? a[1] : o.duration; //either comes from options.duration or the second argument speed = $.fx.off ? 0 : typeof speed === "number" ? speed : $.fx.speeds[speed] || $.fx.speeds._default; var callback = o.callback || ( $.isFunction(a[2]) && a[2] ) || ( $.isFunction(a[3]) && a[3] ); return [a[0], o, speed, callback]; } //Extend the methods of jQuery $.fn.extend({ //Save old methods _show: $.fn.show, _hide: $.fn.hide, __toggle: $.fn.toggle, _addClass: $.fn.addClass, _removeClass: $.fn.removeClass, _toggleClass: $.fn.toggleClass, // New effect methods effect: function(fx, options, speed, callback) { return $.effects[fx] ? $.effects[fx].call(this, {method: fx, options: options || {}, duration: speed, callback: callback }) : null; }, show: function() { if(!arguments[0] || (arguments[0].constructor == Number || (/(slow|normal|fast)/).test(arguments[0]))) return this._show.apply(this, arguments); else { return this.effect.apply(this, _normalizeArguments(arguments, 'show')); } }, hide: function() { if(!arguments[0] || (arguments[0].constructor == Number || (/(slow|normal|fast)/).test(arguments[0]))) return this._hide.apply(this, arguments); else { return this.effect.apply(this, _normalizeArguments(arguments, 'hide')); } }, toggle: function(){ if(!arguments[0] || (arguments[0].constructor == Number || (/(slow|normal|fast)/).test(arguments[0])) || (arguments[0].constructor == Function)) return this.__toggle.apply(this, arguments); else { return this.effect.apply(this, _normalizeArguments(arguments, 'toggle')); } }, addClass: function(classNames, speed, easing, callback) { return speed ? $.effects.animateClass.apply(this, [{ add: classNames },speed,easing,callback]) : this._addClass(classNames); }, removeClass: function(classNames,speed,easing,callback) { return speed ? $.effects.animateClass.apply(this, [{ remove: classNames },speed,easing,callback]) : this._removeClass(classNames); }, toggleClass: function(classNames,speed,easing,callback) { return ( (typeof speed !== "boolean") && speed ) ? $.effects.animateClass.apply(this, [{ toggle: classNames },speed,easing,callback]) : this._toggleClass(classNames, speed); }, morph: function(remove,add,speed,easing,callback) { return $.effects.animateClass.apply(this, [{ add: add, remove: remove },speed,easing,callback]); }, switchClass: function() { return this.morph.apply(this, arguments); }, // helper functions cssUnit: function(key) { var style = this.css(key), val = []; $.each( ['em','px','%','pt'], function(i, unit){ if(style.indexOf(unit) > 0) val = [parseFloat(style), unit]; }); return val; } }); /* * jQuery Color Animations * Copyright 2007 John Resig * Released under the MIT and GPL licenses. */ // We override the animation for all of these color styles $.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor', 'color', 'outlineColor'], function(i,attr){ $.fx.step[attr] = function(fx) { if ( fx.state == 0 ) { fx.start = getColor( fx.elem, attr ); fx.end = getRGB( fx.end ); } fx.elem.style[attr] = "rgb(" + [ Math.max(Math.min( parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0],10), 255), 0), Math.max(Math.min( parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1],10), 255), 0), Math.max(Math.min( parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2],10), 255), 0) ].join(",") + ")"; }; }); // Color Conversion functions from highlightFade // By Blair Mitchelmore // http://jquery.offput.ca/highlightFade/ // Parse strings looking for color tuples [255,255,255] function getRGB(color) { var result; // Check if we're already dealing with an array of colors if ( color && color.constructor == Array && color.length == 3 ) return color; // Look for rgb(num,num,num) if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color)) return [parseInt(result[1],10), parseInt(result[2],10), parseInt(result[3],10)]; // Look for rgb(num%,num%,num%) if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color)) return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55]; // Look for #a0b1c2 if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color)) return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)]; // Look for #fff if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color)) return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)]; // Look for rgba(0, 0, 0, 0) == transparent in Safari 3 if (result = /rgba\(0, 0, 0, 0\)/.exec(color)) return colors['transparent']; // Otherwise, we're most likely dealing with a named color return colors[$.trim(color).toLowerCase()]; } function getColor(elem, attr) { var color; do { color = $.curCSS(elem, attr); // Keep going until we find an element that has color, or we hit the body if ( color != '' && color != 'transparent' || $.nodeName(elem, "body") ) break; attr = "backgroundColor"; } while ( elem = elem.parentNode ); return getRGB(color); }; // Some named colors to work with // From Interface by Stefan Petre // http://interface.eyecon.ro/ var colors = { aqua:[0,255,255], azure:[240,255,255], beige:[245,245,220], black:[0,0,0], blue:[0,0,255], brown:[165,42,42], cyan:[0,255,255], darkblue:[0,0,139], darkcyan:[0,139,139], darkgrey:[169,169,169], darkgreen:[0,100,0], darkkhaki:[189,183,107], darkmagenta:[139,0,139], darkolivegreen:[85,107,47], darkorange:[255,140,0], darkorchid:[153,50,204], darkred:[139,0,0], darksalmon:[233,150,122], darkviolet:[148,0,211], fuchsia:[255,0,255], gold:[255,215,0], green:[0,128,0], indigo:[75,0,130], khaki:[240,230,140], lightblue:[173,216,230], lightcyan:[224,255,255], lightgreen:[144,238,144], lightgrey:[211,211,211], lightpink:[255,182,193], lightyellow:[255,255,224], lime:[0,255,0], magenta:[255,0,255], maroon:[128,0,0], navy:[0,0,128], olive:[128,128,0], orange:[255,165,0], pink:[255,192,203], purple:[128,0,128], violet:[128,0,128], red:[255,0,0], silver:[192,192,192], white:[255,255,255], yellow:[255,255,0], transparent: [255,255,255] }; /* * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/ * * Uses the built in easing capabilities added In jQuery 1.1 * to offer multiple easing options * * TERMS OF USE - jQuery Easing * * Open source under the BSD License. * * Copyright 2008 George McGinley Smith * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, this list of * conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list * of conditions and the following disclaimer in the documentation and/or other materials * provided with the distribution. * * Neither the name of the author nor the names of contributors may be used to endorse * or promote products derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. * */ // t: current time, b: begInnIng value, c: change In value, d: duration $.easing.jswing = $.easing.swing; $.extend($.easing, { def: 'easeOutQuad', swing: function (x, t, b, c, d) { //alert($.easing.default); return $.easing[$.easing.def](x, t, b, c, d); }, easeInQuad: function (x, t, b, c, d) { return c*(t/=d)*t + b; }, easeOutQuad: function (x, t, b, c, d) { return -c *(t/=d)*(t-2) + b; }, easeInOutQuad: function (x, t, b, c, d) { if ((t/=d/2) < 1) return c/2*t*t + b; return -c/2 * ((--t)*(t-2) - 1) + b; }, easeInCubic: function (x, t, b, c, d) { return c*(t/=d)*t*t + b; }, easeOutCubic: function (x, t, b, c, d) { return c*((t=t/d-1)*t*t + 1) + b; }, easeInOutCubic: function (x, t, b, c, d) { if ((t/=d/2) < 1) return c/2*t*t*t + b; return c/2*((t-=2)*t*t + 2) + b; }, easeInQuart: function (x, t, b, c, d) { return c*(t/=d)*t*t*t + b; }, easeOutQuart: function (x, t, b, c, d) { return -c * ((t=t/d-1)*t*t*t - 1) + b; }, easeInOutQuart: function (x, t, b, c, d) { if ((t/=d/2) < 1) return c/2*t*t*t*t + b; return -c/2 * ((t-=2)*t*t*t - 2) + b; }, easeInQuint: function (x, t, b, c, d) { return c*(t/=d)*t*t*t*t + b; }, easeOutQuint: function (x, t, b, c, d) { return c*((t=t/d-1)*t*t*t*t + 1) + b; }, easeInOutQuint: function (x, t, b, c, d) { if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b; return c/2*((t-=2)*t*t*t*t + 2) + b; }, easeInSine: function (x, t, b, c, d) { return -c * Math.cos(t/d * (Math.PI/2)) + c + b; }, easeOutSine: function (x, t, b, c, d) { return c * Math.sin(t/d * (Math.PI/2)) + b; }, easeInOutSine: function (x, t, b, c, d) { return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b; }, easeInExpo: function (x, t, b, c, d) { return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b; }, easeOutExpo: function (x, t, b, c, d) { return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b; }, easeInOutExpo: function (x, t, b, c, d) { if (t==0) return b; if (t==d) return b+c; if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b; return c/2 * (-Math.pow(2, -10 * --t) + 2) + b; }, easeInCirc: function (x, t, b, c, d) { return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b; }, easeOutCirc: function (x, t, b, c, d) { return c * Math.sqrt(1 - (t=t/d-1)*t) + b; }, easeInOutCirc: function (x, t, b, c, d) { if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b; return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b; }, easeInElastic: function (x, t, b, c, d) { var s=1.70158;var p=0;var a=c; if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; if (a < Math.abs(c)) { a=c; var s=p/4; } else var s = p/(2*Math.PI) * Math.asin (c/a); return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; }, easeOutElastic: function (x, t, b, c, d) { var s=1.70158;var p=0;var a=c; if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; if (a < Math.abs(c)) { a=c; var s=p/4; } else var s = p/(2*Math.PI) * Math.asin (c/a); return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b; }, easeInOutElastic: function (x, t, b, c, d) { var s=1.70158;var p=0;var a=c; if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5); if (a < Math.abs(c)) { a=c; var s=p/4; } else var s = p/(2*Math.PI) * Math.asin (c/a); if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b; }, easeInBack: function (x, t, b, c, d, s) { if (s == undefined) s = 1.70158; return c*(t/=d)*t*((s+1)*t - s) + b; }, easeOutBack: function (x, t, b, c, d, s) { if (s == undefined) s = 1.70158; return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b; }, easeInOutBack: function (x, t, b, c, d, s) { if (s == undefined) s = 1.70158; if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b; return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b; }, easeInBounce: function (x, t, b, c, d) { return c - $.easing.easeOutBounce (x, d-t, 0, c, d) + b; }, easeOutBounce: function (x, t, b, c, d) { if ((t/=d) < (1/2.75)) { return c*(7.5625*t*t) + b; } else if (t < (2/2.75)) { return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b; } else if (t < (2.5/2.75)) { return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b; } else { return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b; } }, easeInOutBounce: function (x, t, b, c, d) { if (t < d/2) return $.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b; return $.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b; } }); /* * * TERMS OF USE - EASING EQUATIONS * * Open source under the BSD License. * * Copyright 2001 Robert Penner * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, this list of * conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list * of conditions and the following disclaimer in the documentation and/or other materials * provided with the distribution. * * Neither the name of the author nor the names of contributors may be used to endorse * or promote products derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. * */ })(jQuery); /* * jQuery UI Effects Highlight 1.6rc6 * * Copyright (c) 2009 AUTHORS.txt (http://ui.jquery.com/about) * Dual licensed under the MIT (MIT-LICENSE.txt) * and GPL (GPL-LICENSE.txt) licenses. * * http://docs.jquery.com/UI/Effects/Highlight * * Depends: * effects.core.js */ (function($) { $.effects.highlight = function(o) { return this.queue(function() { // Create element var el = $(this), props = ['backgroundImage','backgroundColor','opacity']; // Set options var mode = $.effects.setMode(el, o.options.mode || 'show'); // Set Mode var color = o.options.color || "#ffff99"; // Default highlight color var oldColor = el.css("backgroundColor"); // Adjust $.effects.save(el, props); el.show(); // Save & Show el.css({backgroundImage: 'none', backgroundColor: color}); // Shift // Animation var animation = {backgroundColor: oldColor }; if (mode == "hide") animation['opacity'] = 0; // Animate el.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() { if(mode == "hide") el.hide(); $.effects.restore(el, props); if (mode == "show" && $.browser.msie) this.style.removeAttribute('filter'); if(o.callback) o.callback.apply(this, arguments); el.dequeue(); }}); }); }; })(jQuery);sdoc-0.4.1/lib/rdoc/generator/template/rails/resources/js/searchdoc.js0000755000004100000410000003371012377325624026045 0ustar www-datawww-dataSearchdoc = {}; // navigation.js ------------------------------------------ Searchdoc.Navigation = new function() { this.initNavigation = function() { var _this = this; $(document).keydown(function(e) { _this.onkeydown(e); }).keyup(function(e) { _this.onkeyup(e); }); this.navigationActive = true; } this.setNavigationActive = function(state) { this.navigationActive = state; this.clearMoveTimeout(); } this.onkeyup = function(e) { if (!this.navigationActive) return; switch(e.keyCode) { case 37: //Event.KEY_LEFT: case 38: //Event.KEY_UP: case 39: //Event.KEY_RIGHT: case 40: //Event.KEY_DOWN: case 73: // i - qwerty case 74: // j case 75: // k case 76: // l case 67: // c - dvorak case 72: // h case 84: // t case 78: // n this.clearMoveTimeout(); break; } } this.onkeydown = function(e) { if (!this.navigationActive) return; switch(e.keyCode) { case 37: //Event.KEY_LEFT: case 74: // j (qwerty) case 72: // h (dvorak) if (this.moveLeft()) e.preventDefault(); break; case 38: //Event.KEY_UP: case 73: // i (qwerty) case 67: // c (dvorak) if (e.keyCode == 38 || e.ctrlKey) { if (this.moveUp()) e.preventDefault(); this.startMoveTimeout(false); } break; case 39: //Event.KEY_RIGHT: case 76: // l (qwerty) case 78: // n (dvorak) if (this.moveRight()) e.preventDefault(); break; case 40: //Event.KEY_DOWN: case 75: // k (qwerty) case 84: // t (dvorak) if (e.keyCode == 40 || e.ctrlKey) { if (this.moveDown()) e.preventDefault(); this.startMoveTimeout(true); } break; case 9: //Event.KEY_TAB: case 13: //Event.KEY_RETURN: if (this.$current) this.select(this.$current); break; case 83: // s (qwerty) case 79: // o (dvorak) if (e.ctrlKey) { $('#search').focus(); e.preventDefault(); } break; } if (e.ctrlKey && e.shiftKey) this.select(this.$current); } this.clearMoveTimeout = function() { clearTimeout(this.moveTimeout); this.moveTimeout = null; } this.startMoveTimeout = function(isDown) { if (!$.browser.mozilla && !$.browser.opera) return; if (this.moveTimeout) this.clearMoveTimeout(); var _this = this; var go = function() { if (!_this.moveTimeout) return; _this[isDown ? 'moveDown' : 'moveUp'](); _this.moveTimout = setTimeout(go, 100); } this.moveTimeout = setTimeout(go, 200); } this.moveRight = function() { } this.moveLeft = function() { } this.move = function(isDown) { } this.moveUp = function() { return this.move(false); } this.moveDown = function() { return this.move(true); } } // scrollIntoView.js -------------------------------------- function scrollIntoView(element, view) { var offset, viewHeight, viewScroll, height; offset = element.offsetTop; height = element.offsetHeight; viewHeight = view.offsetHeight; viewScroll = view.scrollTop; if (offset - viewScroll + height > viewHeight) { view.scrollTop = offset - viewHeight + height; } if (offset < viewScroll) { view.scrollTop = offset; } } // panel.js ----------------------------------------------- Searchdoc.Panel = function(element, data, tree, frame) { this.$element = $(element); this.$input = $('input', element).eq(0); this.$result = $('.result ul', element).eq(0); this.frame = frame; this.$current = null; this.$view = this.$result.parent(); this.data = data; this.searcher = new Searcher(data.index); this.tree = new Searchdoc.Tree($('.tree', element), tree, this); this.init(); } Searchdoc.Panel.prototype = $.extend({}, Searchdoc.Navigation, new function() { var suid = 1; this.init = function() { var _this = this; var observer = function() { _this.search(_this.$input[0].value); }; this.$input.keyup(observer); this.$input.click(observer); // mac's clear field this.searcher.ready(function(results, isLast) { _this.addResults(results, isLast); }) this.$result.click(function(e) { _this.$current.removeClass('current'); _this.$current = $(e.target).closest('li').addClass('current'); _this.select(); _this.$input.focus(); }); this.initNavigation(); this.setNavigationActive(false); } this.search = function(value, selectFirstMatch) { value = jQuery.trim(value).toLowerCase(); this.selectFirstMatch = selectFirstMatch; if (value) { this.$element.removeClass('panel_tree').addClass('panel_results'); this.tree.setNavigationActive(false); this.setNavigationActive(true); } else { this.$element.addClass('panel_tree').removeClass('panel_results'); this.tree.setNavigationActive(true); this.setNavigationActive(false); } if (value != this.lastQuery) { this.lastQuery = value; this.firstRun = true; this.searcher.find(value); } } this.addResults = function(results, isLast) { var target = this.$result.get(0); if (this.firstRun && (results.length > 0 || isLast)) { this.$current = null; this.$result.empty(); } for (var i=0, l = results.length; i < l; i++) { target.appendChild(renderItem.call(this, results[i])); }; if (this.firstRun && results.length > 0) { this.firstRun = false; this.$current = $(target.firstChild); this.$current.addClass('current'); if (this.selectFirstMatch) this.select(); scrollIntoView(this.$current[0], this.$view[0]) } if (jQuery.browser.msie) this.$element[0].className += ''; } this.open = function(src) { this.frame.location.href = '../' + src; if (this.frame.highlight) this.frame.highlight(src); } this.select = function() { this.open(this.$current.data('path')); } this.move = function(isDown) { if (!this.$current) return; var $next = this.$current[isDown ? 'next' : 'prev'](); if ($next.length) { this.$current.removeClass('current'); $next.addClass('current'); scrollIntoView($next[0], this.$view[0]); this.$current = $next; } return true; } function renderItem(result) { var li = document.createElement('li'), html = '', badge = result.badge; html += '

' + hlt(result.title); if (result.params) html += '' + result.params + ''; html += '

'; html += '

'; if (typeof badge != 'undefined') { html += '' + escapeHTML(this.data.badges[badge] || 'unknown') + ''; } html += hlt(result.namespace) + '

'; if (result.snippet) html += '

' + escapeHTML(result.snippet) + '

'; li.innerHTML = html; jQuery.data(li, 'path', result.path); return li; } function hlt(html) { return escapeHTML(html).replace(/\u0001/g, '').replace(/\u0002/g, '') } function escapeHTML(html) { return html.replace(/[&<>]/g, function(c) { return '&#' + c.charCodeAt(0) + ';'; }); } }); // tree.js ------------------------------------------------ Searchdoc.Tree = function(element, tree, panel) { this.$element = $(element); this.$list = $('ul', element); this.tree = tree; this.panel = panel; this.init(); } Searchdoc.Tree.prototype = $.extend({}, Searchdoc.Navigation, new function() { this.init = function() { var stopper = document.createElement('li'); stopper.className = 'stopper'; this.$list[0].appendChild(stopper); for (var i=0, l = this.tree.length; i < l; i++) { buildAndAppendItem.call(this, this.tree[i], 0, stopper); }; var _this = this; this.$list.click(function(e) { var $target = $(e.target), $li = $target.closest('li'); if ($target.hasClass('icon')) { _this.toggle($li); } else { _this.select($li); } }) this.initNavigation(); if (jQuery.browser.msie) document.body.className += ''; } this.select = function($li) { this.highlight($li); var path = $li[0].searchdoc_tree_data.path; if (path) this.panel.open(path); } this.highlight = function($li) { if (this.$current) this.$current.removeClass('current'); this.$current = $li.addClass('current'); } this.toggle = function($li) { var closed = !$li.hasClass('closed'), children = $li[0].searchdoc_tree_data.children; $li.toggleClass('closed'); for (var i=0, l = children.length; i < l; i++) { toggleVis.call(this, $(children[i].li), !closed); }; } this.moveRight = function() { if (!this.$current) { this.highlight(this.$list.find('li:first')); return; } if (this.$current.hasClass('closed')) { this.toggle(this.$current); } } this.moveLeft = function() { if (!this.$current) { this.highlight(this.$list.find('li:first')); return; } if (!this.$current.hasClass('closed')) { this.toggle(this.$current); } else { var level = this.$current[0].searchdoc_tree_data.level; if (level == 0) return; var $next = this.$current.prevAll('li.level_' + (level - 1) + ':visible:first'); this.$current.removeClass('current'); $next.addClass('current'); scrollIntoView($next[0], this.$element[0]); this.$current = $next; } } this.move = function(isDown) { if (!this.$current) { this.highlight(this.$list.find('li:first')); return true; } var next = this.$current[0]; if (isDown) { do { next = next.nextSibling; if (next && next.style && next.style.display != 'none') break; } while(next); } else { do { next = next.previousSibling; if (next && next.style && next.style.display != 'none') break; } while(next); } if (next && next.className.indexOf('stopper') == -1) { this.$current.removeClass('current'); $(next).addClass('current'); scrollIntoView(next, this.$element[0]); this.$current = $(next); } return true; } function toggleVis($li, show) { var closed = $li.hasClass('closed'), children = $li[0].searchdoc_tree_data.children; $li.css('display', show ? '' : 'none') if (!show && this.$current && $li[0] == this.$current[0]) { this.$current.removeClass('current'); this.$current = null; } for (var i=0, l = children.length; i < l; i++) { toggleVis.call(this, $(children[i].li), show && !closed); }; } function buildAndAppendItem(item, level, before) { var li = renderItem(item, level), list = this.$list[0]; item.li = li; list.insertBefore(li, before); for (var i=0, l = item[3].length; i < l; i++) { buildAndAppendItem.call(this, item[3][i], level + 1, before); }; return li; } function renderItem(item, level) { var li = document.createElement('li'), cnt = document.createElement('div'), h1 = document.createElement('h1'), p = document.createElement('p'), icon, i; li.appendChild(cnt); li.style.paddingLeft = getOffset(level); cnt.className = 'content'; if (!item[1]) li.className = 'empty '; cnt.appendChild(h1); // cnt.appendChild(p); h1.appendChild(document.createTextNode(item[0])); // p.appendChild(document.createTextNode(item[4])); if (item[2]) { i = document.createElement('i'); i.appendChild(document.createTextNode(item[2])); h1.appendChild(i); } if (item[3].length > 0) { icon = document.createElement('div'); icon.className = 'icon'; cnt.appendChild(icon); } // user direct assignement instead of $() // it's 8x faster // $(li).data('path', item[1]) // .data('children', item[3]) // .data('level', level) // .css('display', level == 0 ? '' : 'none') // .addClass('level_' + level) // .addClass('closed'); li.searchdoc_tree_data = { path: item[1], children: item[3], level: level } li.style.display = level == 0 ? '' : 'none'; li.className += 'level_' + level + ' closed'; return li; } function getOffset(level) { return 5 + 18*level + 'px'; } }); sdoc-0.4.1/lib/rdoc/generator/template/rails/resources/js/jquery-1.3.2.min.js0000755000004100000410000015764612377325624026671 0ustar www-datawww-data/* * jQuery JavaScript Library v1.3.2 * http://jquery.com/ * * Copyright (c) 2009 John Resig * Dual licensed under the MIT and GPL licenses. * http://docs.jquery.com/License * * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) * Revision: 6246 */ (function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("",""]||!O.indexOf("",""]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
"]||!O.indexOf("",""]||(!O.indexOf("",""]||!O.indexOf("",""]||!o.support.htmlSerialize&&[1,"div
","
"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); /* * Sizzle CSS Selector Engine - v0.9.3 * Copyright 2009, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * More information: http://sizzlejs.com/ */ (function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return UT[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="

";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="
";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("
").append(M.responseText.replace(//g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='
';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})();sdoc-0.4.1/lib/rdoc/generator/template/rails/resources/apple-touch-icon.png0000644000004100000410000025065712377325624027025 0ustar www-datawww-dataPNG  IHDRxtEXtSoftwareAdobe ImageReadyqe<QQIDATx}EorMBB =tDFy6TP|]Ay ؞qgr|è 8T:Wxɱ}pD9D\hPYV?ae+SsS%JL~$X&7rt"rbUcY^~@U_p2:z I6O5M z< q?m!, :1 uPeu7'@7\<٨=nx/f5I"PCCW[}lg%JґX&ױ2Vzt4a8Ȁ|Sib|/qps x1禂sg<͕ :ݍ^b 2D@D:-QV WV u'l㮦gr[+XYr+*DxFVA#4 ,9 !4=Ml] n\fvqDnt1ˋYKj"dG[` 9Eۖ"w7ϴˇ`jXY-(QDI,eU6sOSʁ0!/fZ8[-c-} Ao2cXRuE5kHn@"pڡVfX"\'I5.u]mV-hʱ!&4ZSbخSB0%JX&X͚`OMep _lip[ Z"4v@=m v=>D79^f2:8n! r/zVlwV@%Q!Q֯f[#[(#. <)#<S8 B @e?ñ98w" ǰB;&!Vr_C+jHw:+-J:#$>>feGPDg sg!":H(1"P!?GP]bD7'm 'Ii! !"$,8Z1KV~᫹(M|ԏXy [{>L?NU;7[G\f|Qmw$H̢yڤ$jO Bth+\$a&m M1HJЉ~>b\ `e[ǔ@%m)9Qo`HXGG@''`etb |ӇP޻x;P> ޹ ; Z"~lafrmyC0^n(aơɇ$rx 3\n Cpoc-;Kgk{A;*}'w :JLwg6aQ(-?.%;Y*+kPDI;LM;bM(lXo-؆ЇXH>>cIկHeg3s#3o2ܒy܉y,ǜVt}r9A&y<80" v݆2"JϤH˞?'I˝wI7+ ~'PDI bXN\/ny'ckQؼu \/X/[)ۨf\ ?Ty?~qFFQ޽7S3jL<:t>xtX[LJ~6vB(TdfD=#zK>9O< މEy1z\g p-A$$@"Zd@ӕEvtsz>,ᄢoISVE,;sZb8ܯrnT#DAqTn=g@*X'ryݏ)Ė(`?veۄY})*| 4"JD=ڠM `?.?p}M;zܚf52ꆒTlΰ1x!zBy ]Voa 0 /A&< 8vy a.#|SpASlHӲ/8Rߓ!e@_ŀ-\.@(iO&GrPg@7aa?1zmo[@u03?:%AkuWn{;wXC*cd#-n=:N8 }{;^d/@~R;;Qڽds^Û׈0^ƥ`$`f$dET6}_hj^9{ً5~\ uCn@&&h:.Eh8p XϳeAfAeP}k'Ve -bj#&q GiHxd2k)K>+A[.B߹!sB3};!+ƒLzA{1t~~AV`~R 3Ǥ^B(tpM>ZHiZ_$8uXŎj%R.%J$={=r?0t_14u &={- ucHZ$U?NԐPP6Fhɼ⮝(e1}1ߗm~x HI`\l$L70@~s$@wA87@HGKr>jnor(QDVzmaM7 SN z[6C+t0ggM"T`DחhC}`; <;wF{p8)IvFc~hV?^Gt)GHH:G̓O1 >fs&*$g {hK7&3>Jh!(Q:; M| O3a/1|͘|aehd=$Z F۠Yҩ=ڿ貨$W>C</b? TĊ(Q*2\[0?a;fL]Y@cHPG~0wݶ%iڜ3QѮޅ{:V>ʤ"J)xXy)DzXB嬬S@֗Xy+oe? (1fM(IuS:XR rx])6;Gz:P$vB,џZS*h]g!;L0ƧI65i?H~E0A@]ߏ/uS(@ Zȱ^ OJ$h9d, QdEĈj $8nPDĩP$r +ogYhGiVlW0pVž 3'p~HR4 ` 4p fZ4 u1~ۿ3Ɓ_S<|QܽҸ+„>8M0z dD0vtb0$ j$_6 :M K7I5qo:4%Jˑ6s?&ͧݯb1E&d$5{{* wܸ`1Cs8Bw'ߏ<>u9}#4I/Z' 0ڥ@2YLc|lzlnV^>+_PϝsGI#FB&)ilǦ&RD,"з@4g{*sA}Hsc`hBdXtkqvYOϧ曙FXBfOOKn'iK@˹DWWNwO ?;CYLl SyU&0cv^,Y`KhsOO/kج"yh? L|mzv ɬ%Hg&+a yE{A}?)}h,z#HԳTT2 =z6#BsҠ#͞k N# @G0oDPs1̳,+ yk2=3h.;\[` SS4S@2A$ι!(ćUfyWHI=EYV&~Pخ[[__}O*!D2 6DZB7CW]U( {8w {СRHiw݆Kfp5 k!π~lv >SCCL, g^?LԴp߿_D|?<|HG@탊(5e>Oӗ Al7ԖкXߞ`8FDD . 99 1@G XOˮ~_Fco p @`ubb.si?rهsŀE`w"8@Ddű~㮀PD,|+'XǼw?Ư}uxZ8I-6VER: jT4?'ks}hJdX8Fnu|Oߏ?MO(pNǔ?Tc Ĵ@[/"M WJVd&{+&3k, c~E9|Z}LM_~d7+,VsݰrlL>,JfyƖ:M*6}(6x~5XP(6w!]% #*O@#Fzt=/9'? %a𖿡qu3tt(1srLc ϵ>#_g/pR8#/E\v}gX TҮ3{>$ ?0 z#]?NO]ۨG 嫏k-!Lc66ӒS˚_-f'c-7^]{L'' &58 O΍ T`ZdCǶ?zYTQ@L>)X90Fu_: ?8<h$ l A@$ sA-4;4|g c0CCEsK@N3: 7_B킜4"2Uim`vR@ɬVzlowا>T2ߛ,;@VKrQ;@ʹ $ ;@` ap0P;R{>Ta9`tQİ։A, ks2 G\DJ+!gB$;@/ b"t~QC}d*""JU{z+_IM0mͻ߂o>>f&!Y8S㬙 Q? Hkl;@D^*tc݌OK/ƙ?N#0&@K% ek?,I$1ĐƉ#QL- MK%4tr}`\y_"0j@#Q?p<*@S F(i"+z=_wTĵ GDՏ1t>ٺyD7=jTCjx ;]rPj/v^u4PE;=.W5ˌKo%B_,|ucA (b*K Dl*X&Q\A)IΗ`{aCM%լ(iUZl%VXs{1[-Kt*AG9?6xMo0pz辆ǽB?0"p #ukJu)w=r+0 IJ n\0fb9X['r|B'O-|(? @$"LB0G0Ps(iEe'6N+ݯz'FC|~@^h!NhM4\5m[F%wq }< /uE<>O$ rP@Sp-c& L0bP0 ( CJHDQ2i8Ec>1G?`+v :HʌqLae Hw[;c `؇'a4ϝ}q5}RSgFLQ xWA2f8R}oFN>/z{X;0|` ~"J]xV߳/ɇ]%I$0z g0w@LP; Jl; y#}cMɗ /?券f$S49!(%6Y(ɚ|"?}݇x}"m?av.+KPҮg +R yG?_X`p"&KCCR$-+Pw@$ 2Y}xi<g_?iVp`M~*/Yk҃Lq^HTd()i4$QiX;HLx"JQNRZp+Ǯ9v'AjA`D%`#6gZhv$ ~Pڶǂ7,{f\M1A?H@V˰bz +q@]`L"u1A”iCy$@%-|:_>ϡQ4眍{03, I@;Y@w0C&sqAzd"$B2MHxҠZ`縘b Frt02Е%kemϳ%V]ѳs"Axiŀi Eu[O>D@JS^ f퀨Ń{oZ'{q{i+qju&Re6uO"dR{. _ڵ}Z>3ig#ŠO| >uuWA` ^?=2)eG,*4y@|$JD?t|VV) V n= ^w@[%!Zl,Y-ch;X{9po#42>k;{S!Wofg#ဝ%*4f``D$%Bjmv̟~;8_H1oxm0-c$s~VzQbd(ꌏ'"K/EqpJm;@"m0 4&OLc*N8 K]~눕g xw@u8nvEoZw\6¯*DqL_Z){n-s~էou߳lej\n19лhOY3~Gy^iP(SP^bb{ߎkk$Kv #ƵF"r>q$OXrTҢFD>0; xP6S@ej/N?MD62[7 cw~uVDB[qE4B^ʵ"ywcr>d{%m!K@>FZG,z% 0H]R'k  Ժbd`=jX D-̙?+} <$#3oL#L\z"J!f^r~*`ukMA#/fq&Z&ZB&v!eKې]rp%-b /0W@_# ߇ 'Dw,űQ?d wc֕#˂h3#,'5ǼvNeQ%i^/ݍ5~4PH7. hVF`&\֐ g T/O@lK- iZU3}MK7PӾY_X.`-[ۋc㴷s?y_b{r1+_;ߋ՗^+@S; ) <;Q r@1h6;F ł92|Od:uzp o1.עP;oݔߏ57 X(o7=Q0zR]? S{oLq25^; DD} v084` n:ޑv 'aMcs3GלNí7lF߄pl(KgF?މ2;lw(:I@ҲuroQXY‚-up~vbh?6b%{ ?u 4vq NbA0Ġ/Z.^^b]ػegېVzA?`bݦ$_/!J>^' dXIӀ2g'ݨI*2`H}~!Z5|ha!ؓ/T_rtwwU0<44hX{*LvP"+S~8{vb{lIX@z|2 Of_YcXT@Ip?/YyVeEaϷb 7[~Μ` h%w $~KkSwL^#D ;Jv~X>`!/=T݉ցCAW sC]~JAst wT''NDu+<ߗq9<]sـ5~IHLUx T@ cXkGp;_JH@}TjMRO#+ ͑$@78 t? 疷?if#laQ.a9WjNEM ,#źu;0[4}0m4 鲭P@WNe;nŊ ߈{!>6Ew;48Zu<9Z$fHc$(ǟ$~zōX!5hfwF=FmJa9?|oY`^!E?O{!xlN L ۀJOAsPXLzݯq{/@qx!$  &]/@a Iw symDiv\/7_!  Bܥ囬i4e]ngG'o؋{FA3S? +|<{{ѣu_~*R[|G:Ru%q{LwQq wUۿݹD 8oAaA-2G.GGVîIs}XҠk9:Ojj|8u"W>ދ!IIl $lc uhAG)OCvbqK7 ra·Gn#Dï^-`X ngfWr%{)0-V]Y=膭 }fL_}f%`4HwH'egC=ºtv&i{q u `Tn7\f#* ~Mzk_^D}lʻ*+v|#V\t {} ~ZL߬L j[ikq2qۜ;@H0td{΋bH([@leP;Cl{\؍҅"kyFO|]-;gKtђffF7mwclpxA=;@e$UI7]=>w8}x?=hY;_eYo?- ^گ{5~2t7Q6ۇ ?iFҘ ?Wˊl!}beO^}a: &kj;@Z/wf 98y2NG@4e3eh.O>>NtqF/;ˣ#S®r5@#"cMh}AlYXyIeņ/=ܛ'm4~`Rm[z?Ⲿ6zI(N 4 "*ޣ`Y>ɵ+aLMBE½z;!I[Yb:[7 Ґgi۸^h4/ ~@)G{VQY>?}}?Mf4YVX# G75yO$\TB~?PynL=VwK+d(lpAnK>s@^CBNZ!I&DUmNWW࡫Aujِ$j Vv4@@g j t/Eا}3#՝0t$=QIzaH P ftD 3]w6Rh WQa] g IkYw?mtDtx+Y;(s}}/רN|QHf= 'n 2?']=CMu߷\ٟ̓Sld _qmj)fH+Y܊ qI˾'y&ڝܳW'=h۱ i` X5@Ŭ|VK5nVن ?OXNB Yv[L wו$O??w֭qhY⥦M9NӤ˂GN.NsVߎ?_ΰ{Yfv(AV{NssTƒ$txI@ltggܪ+v3;m˷_ވ~~.}~3;&}~LЗ~D`W9 6IQ2H`\@CmV䲓|W~p^ ?gmC"1 IPBK:H@@}#Vi!9/bc+`53>J× FT;f  0s3/h}nCXpP8[fp&u6]i<_HIO?\!$. 9g#}u_9Wd:ay}=+Zy㌿Z9`2o-w te#Ym ,ΤA9_GB0h/!jC,UPG,pK@Q}q9􏿘7|= @v|}ԠVW-[$`G(@hiF,d'sOO5ftbC<@ç| f<;4O@ވT,<1VMbh2`L(^hTB/`g7R 2Ą4? ˆ++XE V=7L/";*3]؇g\Xw( YWаoVFDGi}ˬd#:)20!.'kehqYY9ݹ^5(Z5M'x#$0PKpŜ%#w C3Oկ߷Ml,1xD"rٿQq؞Β"+|&>.k5{ d&wD %Ϸ !>ޢ.޳]v %gO>}^죴z ؟h5  LbF")|F?>1Ε~]"`$ H@܃hw$qKǏ3Ka2zN:}?_}BcLGI|îNdg/Ȗ"AI {Eq䷬,p|k9OZhk݃x% ;Ykm߀l<FSS Z󓌿 TqͿ_X78P䟖?XPՄG [--%Uuxgsz@baAD2׾Yx{va5|`OM u=@k!im6|* 00*քΒ3_65"w ﲦ̑Di߇p>1;c% hS6={< oֈ4Ӧ4<-q+И{ĵД +s"\aXȊArYSwj4|>m4{Zɹ@%, vӹ5`StU|t ɬ)Yj@ ,V|z7Ll݌{s>6nA'}z ~[[UoJb3 66|ί;nV``<< >za=럘$!>MYEk2Z>@)r"=]:2cKY_4䷆_G18"&܂-V0w|0:zTі pvLw@íN;s_1.J8"Ԝcٿ خg W^*QP`zoS5Jc};WH,($@ᅂh`Y^C[XEНض/ێqp<ѰR>"Кϳf c-NBK?+?e?|/cc|_@> 1+;(98,z`b#[{?|N-4|A[FÏ8' \D 3[l2ƃX&Njch,2W~OAcg,) hi3ww!f="_LwO0 к%PO ͘0lx+ ^|H@g8YHC %1\YW&Ag6>~r0H J; qI@pÓ 6 t{8Sp? xͰr-~*?r``YV#UQ~AGy'+'6n/pń)~g)\f% @-9?_x`5]ZZSOR1 >yf n1!hi@x ``h/i:l7uM~: r ;"Y6{w_NFF" 4ˬz۔;-HtR Q ,zбC+l_Gt~~2o~t~34xr- CHЬ?imRrS{wc{ކ CXN0m}{*Q@`-s!{0uF>Y5^JÏ %)88f1(@&k_3cAmԧ&qމ=wߏ\$5m3J@tf=wDqBm_7o/|gWQ&K#iş}QZW)1-ap`+?f?g3W }GXNY}Շ&iIss%) h=hew@+߃;A$ ; Q1=/$:hz|r vfdA?C!(22vVt=0}t } \Vo} };;<3V(w@ $H@w@ZCLnXzE/Zzͅ0tf?dX5k=eF lF0iP3;z1@z3|Vi~584ށbw@>)hdt4$j;.;V T+:,};rJLQMOu̽6t4&: |\j0,`3XHҠfe'8T %rfXʏzIW@7Z;m$`Z5j=Ix$t@O|{;`a:3oa<ײ8Ƌ hpQ6eEґae;"'qފC1Ѧjqhw@Y] 1H!#.Hw8Ѿ\L o] {DN S@7e"T`R7yEnVu:5ڶ @LqL@ZmIfCN"@Yogsʻ1a=d9FlpVEL#ΐlC%U2>A!ϵ ̑[ (9 J`X~AT5/l_-?;S w͊o95 .X$@b`B|2'jw*R5p?/!ۛo/ A93߷M I,%䩁Z&<sbY7Ɉa@r9+*׿ƴ@ f3IHd Wk) C}1lK0Tnzt~y:VrteQEjA:O/U> ®o}W~3Oߵ9R̀ & Ht܀1@8ŢWs:tϝx l*^8"6k} ~uxn>iy 1mP'Ci%ˠeP ׇUߺ|BFƑLov?m34$Cg=$C9dSucec&u-o1dt7|*\i#տ=5Vɲ@mCH?}r+.CnvM5wܓJ* 0@A{> ӥگOc;^2CWS! ؇ӣ>T/#g;M@#?{5W )~ޜW|]i1 h m;<m{#Ͳ pn/OWcچV,=v^t~¡x _ޢexee^%t2ޒI9.]lW<"cYyCG5<#3Lr4|ȳVi[Zz؝[f&Q@Phf1[kbt>,pH:H@FLjZ$r?(v/ šޗ/r >Ii̴= նڗ9wjvh9ߩ_5?4hQv m㰔F\g?[q`#' ~a7p5zYy iߪؔaRg p!Tyy3+6L܆{>^'&)Krpbzu%x ?}!\N3eLMOќpkHstN><\q "|X5 طz-r$q6H@K6v_f=Q 9s~Ե{Bt~ȭo2G=Ez }ޜekRIy+G6VB-Aր\i[#XLkBpYƊpb'?Y>J"mh ׶Vv%E-cD5Id;̓3,:>Hx^75pdi۲v oK,k{7_qdwRƐ&=U4fZZ1Y'c{bsw% j}[o71L08< ŮL^ueQ[py&+6G59v $=K,gD,y\Mr0gc.OiMN`U^o-죾<8523yVdXp/V+7ZvU⏾<>}w Y'0}~$iR$ HOstwv8e1 ;tw_"6\w#sSTf G0Tħ G?<Z.都?I@-i5a]EYP rwW/~."KcS$@VA>|Kuu]cJG;3ߧ$-֋fp Lhh?N٧_TOq(qzXX;`C[n&ѧ(z; }R )Jo{g8~W0e_eW~#CYV]`#7 1 Y6<- ¶5v M=0Xwԛ:\ׇ?CZ}/HiDS ~f= 0 ;W*1t{{N1o!T0G Ü+Fn 'P|hݠL5uMUL-EJ ؚ}h2ʎF)Զݽ.H "OkH> /Ȳo$c1,59:Wlx߭#Iz3! b.0HLytus^/LڏLg&p@pGS;^GԫXdE@^; sEmfѷ냷!g+QhFhxTs>mu;\m;.M$ZpiSK@C@w7|u{n; {r}Ce^oVr߳ZfP6#@Q{qldZN+'sΕ0с;+p+wpH paaWrLW@'eKD{h"ӑʼnt,\?cd4ymJ=p ?Gs? Z9)IpwjКŖ'];N~=nWOe&[֣ι_3tr,)nkD?43@ꇹBj 5*wr>OJ}b󟅣/D4rpjlN[#"^ !ܟ%B &AҴd_]*}X t! Z-ZMZa``S%(QS?Md{zSɝ;0>[k&tezU9E%Nird"xA )Ɍk҅ui4)3_hPe|Xc-:tr2D',Ps$<~>ܶ=sp@N@H6z"R  87Pu}Hs&YLW*omZ=RzGO7h9@%z/yHPޤ*Οr9{4<#z4zm#?㊬g*bғ{ ;t;>cbq;CYu s٫m:֋ɸRR4fIO $sҟTIǤQ# K4m7LzOg{Tdp ~uAT(Mhp罉& IFudgRx=F{S Ԡ[5x|%sVnXԦ[N8Eـ<@I#Ci;WIDw9@%) 4s~#13N# {yZqߌmH>s@&#훥T%e ^.( E~s?- @27 l~`ÓZDꌳȊ΂Di8PfD>C.ӌWPn6EV_kh\'^=_:jfJZ5JyCX&0p:|6zor=V{٪8-5?MhDg/jZ ljraZ84@*|FG0ez}0/d0߮#Z8?Ǜ` vd lx yap,EC1vzk@W>!S>`4FMٟrg<Bqc@c@ ~!@(*&`(No8S_O/Tn TuAys, l__*Kp{-#`7zm,/eKH F`%g#*@ #7G3q{OxߚЄJ!,5+.x8sʸg\_ e~9x$gCsՄ6Fည2㗸~k&qG> dckDŽR'K@* iT,@G0@u`8i3ѳznl^.4=[Zd6dSP=0br?U-cw}/th&j9 eY,"GL竒]ϒgQVp2uͽ A"CN!! Lh>g,oS3.zt^4@ ճ_l9+7{JIY}$?/ oP5nƃ{*g`޿Y4-S-2*ebOކܾěHBC;u 8"ۊ:St1f-$2M~,YȾqKS,K#}n˹/k7Bԟy?$Lh;^*@2`uDŸT\N]o5˜ˎZeٛp?槪DO$~DU2Pwcdg{줿pއ?g-u B(mDyE?f[<~vT.wHĈhLH%&TR~aY2_*e1o^{qg?7nd8npF@Sdyl}=.05&K/ h0i5b 3.jc-;BlQO R @Z@Гe )cH4>״J `~~۷|菈AĥȠF@.+!|@5Ԩa>ø-,ӎԥOS_Z 9LNѪ;BjA|x 9!2fiF`` uЍQv3,EE9nĵ8pVǂ +Hq&c0 ,u2ؑa= 7981 ͙)F:hg/? 7gf1~506[ՋԼy`~G&-k.EipL=~eZL qE[q8yFHF@ք3  8`^sHJS_6c0P$ &(3˩Q\~q-_P^XjMfvDcҀX We"rOn&͸c_@mrۿ`yNt?XHưQ[;2#1ܰ@Ydꏒ׍RKx:9}_L{y%q"E:1(0cH(`)ZWO~'"0s30tkI&LPOyK6hWQ睋;Nj 0\6@UL߲m+ v|38Ȟ @G6 e[!U(osQkĪ'b/o*pka:)㗹bzm_jOEWFnad' uz:~k+z;$rE{< 7Ӭ߇t%E;aruStv[` [~az'󿄗K .j@X2F %t + St ~! n<؞5Xv"$Z!e J$-zpJ. WX̮Ś|"7~UHw#cEUTx"@!QfWn9 ~hZ-AﴼGYMsF* :uiblJ|2vkNv4cuY2#0V{&=S5Z 8phLrOp@0ʜEXω~9kq'up g8PziIQc!,֨cg`/kPϙdRBhgB`m/^ ptfq>?Uye*^Ceep03M@ `r;k'qǯs_h k/Bݧ`('U+okӦ.pa*p-IQA >빑{?-SeW&Y{Po%OeE0m;Apဴɠ@_OR'~p\Oa8R~dc-?1Vw$~"Uy_>%#-v}T!$Lgsa{ f];h!L꣹gM]Uc Fe@].ӂ-&*SGݫ ꟿO]TV ȕ%|  Ȝ~+4"ɯȱ ̧O|zSLjȽۉ~ )*SKgh:59;;}="f@In^@N!_(2Ny`T9mT~۽ m˖C[oh7IV\> J1 Os74R (?p@0w|Z~sn>0i: c-8fm 3Cr zp*\X@ 4Hd˯ /T(P8h`?l_)- AP5V)2j|DQW@I#! sZjCh'UyH 7Mqo_K>/hY'w\܄[G$"598cXqW@%I4neo@l#@er碚=LɊw*wdYqT9x?ڱ8M#kr ~LQm) s >Bp1Oqѧֺf_|7غiyvFNn*a,dzD> ǬGDgS ks 7,`'ݲkTa`=/W'XTUGw۝hL`Z+Nd&Y"^Oh2FH %nߙ1m72f(~ .ҿ`7hٷ0wli_TC? ׅ Dd Du2 v7[5,;j-ݿ]Y"`/+}؀wj/ CBUrW,b恵^T:O?~f5F$PbΞaPHѧTpFʅ~w@ tvQ,;\oXFYu1b-`ayG^^1_- įjX}Qsv[`@# iGcͰv M,ncO3+'2[4b}wގmcNGSi =#@ZGPXl 90s9Qkp'(6qHa]nXi^!PG0CQ~U6(C9uvhh>A&Ipd|%IDCl[L˭*1jCH;8.j0v#@0BۅN("*=6c֮_^aLy.h^4i.YG3bC1 50rc0xDW AKo'Nw 8Be˞:?L??[fpS,7l_Dm}',E@_\HG "#@Pİìsf.?aݣSƧyNFixj2 dEIJ&,#`nj(h ܏JK|)JzW-H!l1h?:~ FUsQ7E@H H~]r=l~{NE,p̶kX8Nޞ8ՏkkTL/3Jy] 6އ*y}mȁXr_Ϟg2%EviH? 2vOeD E.*jE'*Ao*\vWя?^m (zYƂX@OED~2VVp\)0 I=F_S M8TS!F?ˢ`bmƦ~;燨7k.pyNmoV'K y٢! k$j,p@a +qg}8Oq`7A|,ެ~dH"L_-fq5ўm.,ˁu*%SD0GB(^p-Ӻy =29O^O~g?#[Qk+X'q.nL[#FyWeCy uFcv?O/} ~j:>g@ 3_:1.r"iZNH׬ûkb,W$Hӌ1"uJ%eu1X[LP3쌾>>o ;AS߆wP|8*`$@ętVaHTPQ89` Z>il|sם@ꎾ?M2i_AR9.j:Y].q Tx?o$AfP3`{*ҡV?g߷x"Ɓn^@oӎx} gc~02lʼnB!pDүkWO}G?|Ô ]k~LIU*<Ҭi LLH96Ê5+PoXsI3siJ)! $A͘ ? O5ovRjvoHbw w6>N|w#(ĥM1௟c (qT`O&BDq:N\bccO[|9]g:b'uJ<3bāѥXf wRi jGJ tE?0WUBx4R뜘` ͚[ۑ?gm8@N8 kp(Hܮd,u8u+q t38M^.kWPXj헸f*jJ?$!r: EU=Ns: a:07I_L?p/ZXsC]'cw␔}%\Bd8(@(m2vj\<7 a߰g4y9~ra`c^H_?~y۰CLD(K;@2"Hmc ,V?@c D/+؆厑# '`?Ѕ{a5 DBf$ J (0u>&+\4O:"P<\cggu[pm"u8q$bOM d]$X1[&d$=00Xzwre{OqȀҘiPKXO 垱*v0y^:eVxZM5WYM<@݆@n Y _/&@q'?2N@2P0C؝Xu֩vV]7c;5@-X{߬Ya](&us@8r\ESs?Liy_Iґʤ?U!6w^|:o?J41_a2 ?¡[~^GC2e=߬C\U"CA5 B@ 0q㒏^M'g]}ߡ{oBYTz6"0!@W*zCk|7U Sn hT*~QOm ~ WZi_Oٷ^soJ |ݯY`C^B O\ahq!*:ɀh]K>Pr?e9G} r.Лݵ7ŕd:5+kB$ † Ď)=0? Iy;PE"p+S2>b9EA5`O^0u 0f/[zO K$y {TNހ}C՝d򘀢]@܁~y۪btg|k2ןgwx Ze)ΠY{P,CE~t@\>=v~Uc)g9V.' y* }gY0u Ka^nba_ta%D:%!'-L8٩:BFbC"ؓ-p@Qo T -m8ڏ޽y= \{4yZf~c[Ag?0iq<[3"GJehc3 @YM7_)cè/ZoK o_]@0{,.ʬ==1ۡ7 Hq/w /-Lz)PY>y#<U0UQ I#Ph{Яpa( 2Lw|Ѹ蚏c㓞~}nn|43M+/IQDݐnDքlmi"B?U򇒵ji­}=DеWـ"^|cYߐEsPMJdCg' g\ N,X8TR@S$$p byဲ@,/#C_2o/#O S7/3Vo m8CtO4yQ#"iC~hY.dcM,A38*q8a/IJ6F7z11 ٲ5bq *8.gZ[61) _F߿# "?sZ@¼a#e'x$2wi/<F_6q 'MSaS%Z9/!D(7`zCm|"s{GwwnyvhI:;rZGNhܣNy}G%ůJfYc csf:nJi%!$kRs᧭_3owXcJ-E M ,<|?9Z͑N,?t71MxFr <&% 2#sKaF@xGHLjSp@]Ub`?AwAv² CQk]/ȷgo*tw6M.&*1K [kok/A+^&$F@&2\;I{E[k_vYcO|<ɹo5ԣy$6{HRNx̣ 7O>IF|rD=[t%DY XIΙiU&j5~O:PaaG82E_]~C/;m2+tvni4@,K>sVu;zL>q4E)0J䤅I+ pc f Ҙb>Q/d jedΑts6T.v[{ޙ_ʳ]oa>~_MӼo*R]3o h/Qc~Zff3 o))ǒ5k5PXh#PUJB^aҟ6|aXbn B9ϖv LYRCh "jaJ0 I 6@h,;rZf41P P䧤;!Q8N8 l8PV'ҏ|c6r&cXS39+LNk %D7@rAҾHڄnD4#C_ќrƈ<-{] ?kxٸ976Fp MGS@\z Wg Ppic]D DŽ Ci 踔 .K3-8^ q_4}=V'ir逿[#M}2f}Ju-B(R.ݧ374M>IBFQ,D_C ?"sH=cX׶6=`o? [?^M'6ɜ\.ƾzdcI/@eXX .(O"/,؛<)V?O׷m~vçXb aϿ+/\@,w\b.{l#vl.[sXQ\c+S%{̋MW'`̯fmFi7],?ם 5' ppFЪ9e ) $H 0kK؈l[WCdp2?MLuA!.>QOq3 h@R``Dpd@^4~OV8,Kp оMWjB!2BpqԺzqۮr\0+p}|¹B@ ,s1Xmx$"Kxá_ HO+۰NjÃ0X8 XEFI>="q{BँzH^\u"\8*BM0+ /+'eL9Ri0qe)/ 1&ln`OL' @J\EY ~0jNaG ˙tF,. t-TQ xX3>f?Y 1h͂vv34 I:*.e{ZCi pAwg $A*8*v Lw 5JO"lR*#O¥<_1n6{K- 6/°&%=6RL3DՂع?660` 6)Yef' bAt:l١b#*RmYD|&ZݽP$;Р!vR_QVk.d762vƁqh%(D@ w}Wn¡UYFcX'\bbB읷➫ ml<"C;ϒ%)519FEjRt{Uொ=P?>yѤ?*X0^ϡY!~{oQ.Y p3ѠOv>|{NX.' 2CcТ4B@] E~gJ_,ƽKtCkF$K$<TJ;'xa;9l&+Mh5M$'dJ T"w"X59mgD˲Z}’}(چ,> " ^lX6;(y@\a$@h r5$E<}N@Wp9 $%ᱮym=E 0WA8@hF@YycSe4/lS,\v~vKxo0P*KeLu4Y>mhwy­fQ1^1R֋a*;5tP܏y:Ś ,m΀IDHa;ql"0x. Yw-O^hJ?&8F͈\D؊2%^.#1lskSZM\[vp^oI.-S~|:4el%%\ǰZD䀫}{?7jN` I ?p.Z,h:8OzP~C 7!ϓȄ+# % 'gF{An!qDPĭ((Kad4 ͸†+~[xC=X D$Q${ƣ0+nƽk˾$ yݬ4p\,AiB0m `""+B.[INh,:gY^A s@{)q-ͲA7 _7\z}A$5]޿m(GsIͅ2Eu t'SeN~U5OۣOE(&9Vʭ|C׼ס?WO<+BdyߑT4L*E9K>^U\+X c:%QA( 0\T 5=@ѲN,K q7@xx/*D]@X]2O ~/NQBht#(ؤx{Uy@ b<ΑGw6r)А'n7;̚8"]V\G U)K󠴴˩e'h&g(/E+gfM5(bFG @Q,%~F;f쀏;W50|C (~޴ l0!<ȅ_ 0cD2BBH ,"C{FGRu;3N|G?r7 ;9Ԗ-sLF3Odꓦ/q@^GF7tXF Ά_옕'VC쳎, V @؏L_b'QE^/ӳ$z#c޹_<Zj\t,%ĕ5#e`/ yà (j$z%tX?=W_'&cf:KiORs 7xp@-ub16Pz<#OXQ[gO_EX F W@8RB )3B@C|&TPV9<ѓ`B3 G<z~k,D=;Hop2 'vQ!N~q 21f$qڋ_n'ɂ_BO.s*]Y40u `ǂͪ"7ru 6$kZBI(Io|k\h}nxҀets$9F"mrK#|wA%!c (U Je" 0sdo\\~ǰK/z6oqp[4u)ٺZv1ߴX3{iQ mS Up~Q1){nowT2<YhʹdsÚt}PDI2XUx}Tu[?wbWsqܱDQ"(1FBYOwll'@МAHR ! $NPrRҠYP^Ka*4w, F@qGǰc^S'>C w*״@i":$_G<,?(}~a1P=).'C]0,Nt}_b7vzYx5oL pA>[í 40'^!p({Pph$%'L֦ eF@q쬲ֽ:.xq+5Vxcw2(:ŕFs&ІF( B^ws8`}{&L?!H?ƠcZ_홦$tPEUNEߏ8YbiDA}4!Nsv'fh7CmUI5t3 <\kqԅz㾷fzC9z`w<>#},W]- on6஀ђx|)]XR_Q=CA@RU׻ʃ8ha4AM%Q?o4z_>f%c$c]~{:ER( E}Y*lu垷j/"K%ŏM1]gC!i~2* I&KWuH9oR84:ܝ&{ӼzOVGSHxѱ~AvtQtlHAk!1L@ h x:׿ p;ї=Θ~kǯqB:`>mMU!裂A@mת2: d'}?RHf{0@e * V>>|Oͩ&xys(~QB-~H$o5ٶXb t'^8 RE}ǻŴc m=j`O/:.3D;p?ä|W׽[^7h,[^ο~1vWP/M|SIŁ;uWYGJIIy~$x257֋nL#uw}{0FC:>4=PAs'=H/U ySIC5?=´=-ηp2D8e yeK]7v~k'GY`:wjgBIDhڟ8y{K]P5[Yo;-Jϣ扜p^t7/H{ҭCh":W*-Rs]yDB͚Ic@ u fp@Hb Xr?=vɟG+l T?SXGi)W5q=ƺ0Wk؈FxdK۟ޣ\1 Ukkl.nR3X ~&pؤj$ G[ s KpsfX}mN~ړp[ߋg=J Tn}sp'?Am r,`3!|%(n E ?eχIkd=~mlWy|@/k0?ԅ3Y`N446cNǮq0Ɵ `$tN7;`p{w'+M$4&4, {^?@)v 1p4h8P `'?%]*Q[i.{;p_e÷߂-;thd zL*zG@LUR@$ws*w`׃{g<iV76a˖pf>Qin^2(g JHQGj m@6uOS]E>@y(p8 ='A?G`HT$#vX7 |{٫P\-{]:W49w'F{ WX0_ro9?%Q . `&uGۉLM~9 >H~c5B'z>HQ&M}) !}.?<[ DAq賨@)(@(y g<XsY'_waCk\F@=信Ģ[7wS#7iJKs~JoB_oTqf raYS4N۷68XDpMI.G:$)TKbL Qq9{q(`Gs[ sI ΁^ւ@8 Ywl\┧Q%/~w~ZC^I"?R]`/W$ >1t•{Tǟ~Y럃3X~@S 3&kt;0 b6q pLZ1vPvۉψ~R ,c˥i L: p8O>IH } ZAsDdXVӿص8e/b[ww#P/겿IL"~L_ XķQ kWOMh9;K+` uC%\K]vh߀ Z-weo3B/f0$[ҠgD%ON㮂u\p&HF>NIfēD~\?CΟIာ Aۨ>ģ^ \jy+O\͜mmלP/m.Uq:h{+K\oח`dz~1c*vZ%HIo XrwèN܌>Kh-?BJg./rW4a?/0 Mٛ8j?"0Z@CDW8r+8T62 OCk5F@}du\ f}~PܟV|5LX3hf88ӷZ Z-$hr ^ '~oЛ:hu;{;=2c}?  'M:Q$;9{ &vk=p{\'uT „xm\H806Ħ h$!%_#r%ōnSڰT\7g>Z^~M4~#Pc)"WP7V".Ty35&-z~d2D`dz}4kb忐1M <`M݇ c'oh-^ $Ћ;%vޣ ՜x3."1Sm;CctΎ#x/we.!>Pw ^q_[^R4W߇[E߄6pGex#h~ok󷭸d=lâ; `.B2#0,/qȶ 'W-UI >T'И0g' 0}X~;ˏA{wL.3=:z(w-΁P,ߏSo,otB c)gulpm{β WN.Xw}>_ L+[ #{(_\w^| e^@"hh q规zS}580ЇEN{n N8 Bw;Y[J0@=>'r AHo8dg𻀋scm"~8>8rH9Dz 9 9ѯ3Gјq<u8悋2܋Gv&[}P/ rqT9?Goh{pa>Q|8£Ա4=KHb,o[۩>wq߼ ^zE_փ77s1{b?EK%D"_C+n؀7IQK$u1'~ȁg'+`Z׷:55G㒗'Γj}XpӋ[O4SPx%A|6]OJe~. @*\O}=go#.gЄv4;0on z:_Fv//䯞pޣLf.B%|@pœÂ> c#IB61j떣wK '=Z'/΁6c"!0 0_-]oV@xV,ctAЖ&Er܀j0ihtl`:5VcG/)P>xp: c5H ܽv!uExV]r(MbnLߓWѳ^ L{8/ 'K\vXK,?@&$~ vxOw;wK?-kt|́ij8ЇrR; 0}7Oxu8vJHBOoEg04Nm{z3^tNZ82`ΈZf hWM< Ѱ_t;\iO{.{kqŗh&?z ~7; z,Ŵhr7SVE'R獘{1>--z0/xca`iP0~2:D3Ә.[!0|(:wF`A;?AB^?I95vIM>,K d1~O ȍ0-Lj)V`L5˰? [^lࢁN֦i~=onFҘ\ˆd,\ݞN$y큋yj߼c 7ɿwKӶ~ϼ8l_0@7 Z2  ASC8,󖁰}k b,O7/Ac̋^鹧ǰfjZa`:pB4ܻ&d>@B8!ABC$Bj`X8폟s/0v}謹=f|F&Id!x#PW 겿r#Ԩ7Rᶹd(JC_ʀpq+ w V9t 3X9RL+Q#kC{\zk:d2هEIyP3yY`ys`R`ԓwLQ|3"șzaw^[< )"7,;Tа _6 Kh3?qōr BX^O}N<G]i0ckRNg?@[ƌ>4}q &v\H^@V=c5VԎ:DZӟ8qZklt!;XavWef׼aFUfxG@=@TXP7c.}YEFH鯿w\#5?X~ϣr_XwR\vi 8'g>뷜M%T.~ l}زjbCŒV^Ōi%KCsXF>A\ OXwEXO? ր8 dDDDx9a#Jfz>"8o$K u7?UXe}](&?!69ۖipdy $c\ PZT z CCrY*MunC&/o_Ё]9*9 @𓜒>OxzLWq^D gG>j=Z3?V<ϡ-[l_j`pdĴsI}PS#1q Ahwl'O| 6=X{-㓚TcX?fFX),){Q̘Ԟx1B  ~#PWlA 5Oԁ0Zb_ik8)=ID8 l7H&TH[g'jRˣk tعMdN:+1s-<C%iV9-mm]_p@+ Nx.-i:X iPmͯn%r5T\19b?Qy?@9\2Łnjރu֓؅9D[A$num7 ŀ[oF?o;^_-7EP5K#:D̈́\d2Sdrs5{]|[kceon2CtHY֥8.ģ #GB];$$$P{ݮw1ѣ>Kף%wlcimGusp̓,П8~P<&F;1mgϏjm˩!uYd:FSLbֈjGPW40Agbe*O3;6\oy0wO`:}E5Xhs,~s:{w;}}O[C! 0@ 51a`Pǎ?OŚG?$,#轜$o^3I3}]8l.QogH_g훕γ@0t15fb0JS ?ߟr?ca 5"e0-D~Oـs0 uZ}cv{/e؇c hw"-C`;4^_/kSQL17& X?Ua kѰ@~cEa.@cuS" u@yu Oe †i61Vf\>Hu;fmmC &z$XJ-W!7\Rsr3 ?c@wĚ2@z7ŏ`}ZyO-m:G`2J?FwV 95Am-T\NgIie 㧝I 엝w-}}3hv{hX ?󴮐1Áim [H,@Et0o 'UUԗ4^9hYU_Q8b- ܃_OPJ` '=#ݷ3?V3Slz 7u MBgv,<z[)hwjx?"Rc8ySGYݶs}VFs <Ln9z<+WUtLĞ~mT<*2ͬ/f}[O `(6ƀfwpXfy*t UG;ou& BWI9fk4S9Hɟ v^@6|qo;˝#B.}-eV2^uzFg.tvn,O2y:)Af4jw@?6n*mڌYIe0|7>`A>E9#x|zIh&tvΛ{_9,S/=C`Cm]̈́CJ F@=֒luV>ekG+]zfYq< nLdPu m`y-[z{_~mرMcPlPXrc%DXB !%8xvs^p}gsU}oU5j9w{uV]k}nQaS|Wl. \&W?"L a'\@8\$0uC9Ixuaw9л|?k;/ +AҼy~x &cAm>N g@@8N*7]o2E0( lA›Zh]ߑ"n/ٜ bb6AU#U {m(?1)epƿI="$ukd)~N9i&-C z>}'E`py $ JtAvҜ|;/ 'JBȠ{8{E.#4oHj ^gIg$]Xg(@@斸\ڰ pW3 ~ ۔?aAB ֠]WOA$@A;sP!UX'?O7%wv&>Q)2/h(|^* hEpF ~}5 {?_\TX#9^[<iyJS`HD!(}+PJmJo 7_j5H} @tW WhA-KCK,v-  s9h슟٪6B XGm 6?R%;\[Rqx[__aA#_E7$XZJ2R܅ԭ'jdό$X[ds_~R4HX35=T_T4<`]8r9VAa0J5n%e 62\z~uPeQ(pѧ[ I, ~C,֖|z,% Я&D`mYCbd%@}X%HY%_ hr9 +B·Jp?7~/ E|1د^I^̵W+ U>24.@kbҁqoɗX&)=]+!&x@BYLMgf 8l ,ZjCm");gY6>8wO \ ﷌{ ݯ^( y a֘U)јsxtR?/g9H R_GHȹ`}5K uk{o yPYΏ_.X;  |3.shL`a)EgZ^WF3aFk+a(ahxh ԝoC Um6e TԐx(up3pq֏ ڮLUfT vga}gObʌ282:[0&|?(5nƮtY)ǯ& 8ՙkIAո 仌92*X-Ms lA%RCٚ|r\wJ"/vʟn#@XXcZ?IjW ' /d~8_$* K`4,~^;,>kG9E9g(J@O <^gQcyWݕ"rFPgp73u9"2]X"`)dW }QE+A &!  p*Njn\^?&` UZlt^x!/%d8c[oހ3=ocUʽjӽ@B/n ~}i̯I?{r ͘ Xf0P,2!c<aJZߛ0 1aZ;6/9O Lz> '-L۶D$Zot x`0k_oS/? 7xP<4l |+ 2 H@4;C8zmĪ}OB@>+w̌tA@e 0r!ƚ$H m7;qKsoY Iz?vϏ{! kr3d{؛P-jO</<_{?g ^kx$1TJ2}PTla,G B ϾvWls]\m.kXd酑}S$ *}!$u|2ݯ;36OȎG`O &4qRlpuD%m=8Cq'֟`xZΗ绯X._A 3oql i\`;/g5k+@sf4`UkJP"> E"%\;e 6QQ K Rb 4/p˿cC%J@8܇ɒKFp#2mM,ef}PE*^(W?=T)(q}T#v2ʭe?-ͺʎc9ׄthfTsrE/\6ܚD?͊Oo.4mV,I: /8( 瀲\ -W~-EhPSAO2$AgPDHc/)"d~:,\ʫ BH!p^dqQlTWX”e-N, S/6b]SD?dİ"Ap{ihkXXH У D#F n~gfK85p4)JMKuv&uv~[A"j̬r[a0;;"04E PuI1/ʅHjV>`l91Dk7h7n+  2-\K;N(\9ae^-!`7@i>L#_ϱ)璎#£JrrO3x{?#R [,1+s..4X72$ZX \?|''64[ `#lG{c'2,{*Z'\)|~&ꀿ>L՞BS D4~ &wXmLn/3:&ޅ?«B" ;y(|qh ^m'*q D:Zfn0>LbEQ5~>cwvdDl3gfQ&Z7Ȳ (^`  %q^~;UidK6~lbi @ar&@*@Y,e r#*nl£>ݰs:r%*WUS 9GmNi?Jڰ* !IPj5YJ3<{pZ>9=X(%@k( gQSGg&؅Ga`'yfAOXm^Կ/#$h._۠,7^rKO/}ʵ&7C{0σ{ݟxG~HPeX :oΥ,Պ]*)31oUQC9O snX|ܜRљ݅%XkaC "|Lqzŗ}K2*5$,}>?SX`QFy.n"F ={T|)' p\VUQ;O݄I;-n3fR1<>>;@@VsKwt?s :z˄?e-,k6'cjfW*ָ&" N`w_4, 1Vݢyu? iL 2ΐ@cNg:ȅ$'{OLg%{]@ng05lʉ pZ`u`P32:BˊUց׀U`dfW7 oaL}ĕ{ hB&_x`f~G3_-;TD_$Eԓ*@4PO |,~C^?PRAL= D(2>. 8yp 6TOcj}Y>֝kpkɣX]2Ju]2ѴZ>=u#6Mik}>"{@>1&}֣^yPT˜GtS<{wK-=esut*߾mi%Ti)B ;>Cgg_Nk>PeW0XX 7X ˪y%(C"Q* \\B'R1BMe*Tp׋Mq-ZV*f/9p|W ?) xOío(0+i*v=KN|<]AM-i݀ta#_^zg R:uMLжc]۾i,0T.܉.#ow6R| %MlO2 NWm> LN _*0ÖsԣįnSWGwt9L@?A LWx=g a)/3Oomm,c2 "DZXC4U.9oAQTہyW/WVM@-pX$o`\%0sBFA_DH|xXC|{p &ǓL|jd`4Uu]78eg,bU8n )eɖ LC aXX3̦kaPkӤWu8 +$Vc_x ?&\{\z9]@"-/ !7xԆve~|.칃t[x~&5&%Է5%1Y" 'vKj\ 'ˈFb%pVZmND$2ǝ&Ě 3?2XAbMZӷ}vGVPh 5g,}X3e׭!=:q Y`}aL+/V(}MQE@T !ۏֻQ\8:9oGgo[ -:痁;h/g6sbiGH`1ó+߸/ X7&*oOlM&|aOL4ݚ غ42ͳ2iӀ-)[`grY$1 dy͞ɭvO] P c?bj O^K:]TS΃iZނ РF_OlMPO<=i=ue}{P+vnUu )s@,*r8 Hm2&6}BTck.(D?݇Cz@eU&&cxv YZ7gOHAdC뗨oI,p_Dzn[`u"0TYx5a?EtGӎ߅o$| +AY}#VR[FH8#+ߌ5Blx|}m ~~e>YTor)Bڞym)@J .qlc]Rg39d2UO/Tϓ 0`RO߯p5fJ4N [~L묧 \h&4 ,->mԣKB/:CpFkzMtfDb\b *kx%o#[;sVSgh^l o>wD)09Кz?w^OʠdlQ¤ڃk@⧍8,WEm_ۚkQ>"w)0ŕΆ#ņ{jy:1 _Y<ɀ?X¶c?ʍtjtȑLm8 pLapo `m7erYa/xм^l!]Zۈ|ނv32A`YFlh.+Oڀ pYIrAַ`<qjv&R xz)Y+@ِ ;6.dٲ`ڲ} 5; V LlV_ind\T&K(3BAnj$-T@GS%iOn JlP*x )|S:jFT'x<3.AzD[gX!4oc1 E2Yad2n- ~BuqR6+<`2`޷U& ߐ,_L~l~jS=8; VЌ`_C__NN^.}l6u9OB!On#!`?݁CO/Q8e UV"(0'.#H)A{t)x0W6)F&X--"d򟎗0溁O$VFB?+| Ah*OSN\%iNOb&N&8@:u|]"Lelj/ :pt Gp4#GzSxZLY,U=Prs&\Mu̮mM0x^gW? Vmq{ z~KӋLzXj\Y>s~WQ'RgB&x|\ox׌u&4e(|EB_'>ǪfVEn@gKvJ@?J_?,kT0^V{]* `UOyyWK'=?'~8$=>vk7 ֤ 6M337 xzOtx)7 e_G?ȉBuNewt+tivopǥ/3` '׃hAelSGMt•}cU+ @S2S5@T<{x|5XnJ=TD(µ:ߒeӄe[ Xf$~yl=K _2wYO>2pC[-3TTW:HMc.I b` /_FP =H|D/DkXztuoo_I ?>4u&\|En_,gCШd 6No@!zf-0!o|(J}:ѓ3Vh";v 7VT~Oy@8Y561ұ0ff{s\ɽkAeRLLt} \x"jT7^{&N1:l>[B} it6|O*қWXįVFe d EhHd>m27A6TҊYܷۦo6_'pWAB9h~wࡋ0ab*}RA +Y1ݾ ,JH6ΏΠ7M`|:Ýl`, `\ Q} ݶ 2W F\6rD,XMɟ4>Hu"C ƚ.73k!eʃ͋c&DnY 6Re2f<!.C8>_Lf@|sM @Uvp MN~k"O *G*M')psB8rB#e뢔mrͨ)@c@p>eñb}؍=&} @6&Ju4Vc@`: J lNe>RSMhpgf@ {th ۭ!F࿋>;wnT5vm_wXƬi6Ƣ ̍E^Q;AoD!AΖBxȞdm* Ӗ/I=?Oj#ۗ@*Vhz{C4/#UCmt 8?lr9WhΕA ~Vg vnr~z\3Ÿ3(e^ |إ}.(}Y`7p. $V q^cVW>@̵#rȼ'*7OʟkS:EAB,”P5xodi&/Pd&mp ID#uv^7 8 Of 0U= ׌Kj_]H~9ps.}^yL5 4 dbD3ͻ5@@]P OpN#ieu AF}| V⇚6rV(HYˆb'\eP`׫b^ZNDa:|~e/#IW(@B 1lN]:B`x\g]]*75Մygpʨh}eT6T=j4z0k%8M$r/`Ĺظ`cʭ rLl7]A/oÂi&_Tb|nZXD%>=d.,ׄFkpdb<7 Sô 4ϏP ~W?ky*ΥhR9@*q{3ٗiP0T\;3}Qo0ZisQ`UJ _"Aƌh^uevDÅs '6z+k ^.o91oDf_|~]td%:g nkی`4`k!$$%R za@"@x ә+$1E/K ri2 bɃ]96(;JW#@:c(m0\fv 2p3yeͮ5吼Jj K}r sU1,OWE ~Pd=70wx Y7)̎ml|cw Pܮ<k{ a.NG41!iP qqK5v?6X.Р2`Zkpq.9+Meb,. ˅&R + t(dM7U ,;#.,K_Js(ߗ!iI3rm]L 7] !lҘ]{ܟݰޡG[7=L])_B"y 7Wxfa|0O S%M4 ˔܇ !;jv tߏafui>6NJLКMU9 Lۄ+B2'i~EЗc>rʁIXn-<]y5q ؉Z8}(\EWx6|Y(Pfe_бCef<ϴ:6K/{'[%Okh>_ m@1܇b[ `88_4ЏY|S5Zot ˈi&@cLlPnSSvt~EkHLa/G> aei>&VHB! EQ 1)&NMȟw<^!x.35CdתM8T=YyXn8k7ٔ׵xWmPY eZA Kw+&ו! D! luYàͻ]6&&+ٜGSz3D!e6QBn%%#_WpkVm)o5cGwW\'!mBg f/ 1G1 Z) p3my~_^P(5.|p ˦?MFPi&=mtf\' >ZXah<x Ěx6e6"E[Vu5~ \LKڀ#Tt 4C&T\)͹֗4ր.|~c_F|sn _υS8 -axwL{ (r\u~#KuA=y{#7"BIL8a,ixu~51 ( ?H[rB@Z{6b!ƦNIswS‰/ R2u XCd r;"mM.IԽw.Y@F0K<*} hѣVh@+mФ$4̶ E0h]Bjۿ>nzH>e9fA3)`ӆ rK JA_=܅`ľ؈DoXY,j#Ngna ,x0xjr6I'lB(VY_嚲]ퟵ~OMF-0rc 7_U7*P^~.;?4Bҁ7(b#ۣyU& liMuK N&K}8lY,Ճ ?Wv/emlHy&WY>]vM&Dh2YQsMNcϯP5D?8؁!e,L m26wVr\̏1n@.:(;x{uqx+E@M%60I d<āePݳ7WE86=~8S=B˴i?|  a0x}>e\R/]TTpq3EJ8-%QThؤEz`ÑJp5޴^ewA=I?4WԆF;6 %̃hT4-ic=}{4r7=+~ƔAh/C8&OQ&@iƢsZB<3kIv-Ǔ y]9/[|v.i#mUHHQ^0m1^C,Ӷ:l: ʴ4V_4]mUɏ"cWz6f @p7ѽ甪ƵxER-2_5 @' Vgsf< djhѣFwKT7k#mmJ-"JWfB&iBn ;0uwM 9G@K߇ֿIZg @6 >OB_ .IE4 (XPjzkUjJ"d{L}8 n# `0ut ʜƴ@D1eo ڦ&_ڍdI>\dTtIՊ~.N7-M_w ԇ;^m2sd.К7nnl91fԁ֍>xy@"P?W%Iߩ8eh|ξ xk1iU#c*0EQ?momp%nف2.5}y4h3?WvHM`_[*s(l XuDz 3P_o UBFIi7~| g6?Cǁ7g7=ϑduMj̱iX?JP"tQJ5*~ Dg9>e 9FZ0XA؇!8C F5me+_yDw` MԌ|~i6Ldü߲\:h~ C]"U~u套)C7oۿ υg4M63_W,I@YwMߛs^RlJ*M6KMhiǔ 2c 1l<>,:Mn^`?[Mg܋:/} Pba)2X!闂s]W> R7ȇ 0,\T Orև)hj q2`o@UBDB`m|Di3pQeqWiv;:@TWaWi%)}6.~>?(x-6. ޙR\5]{A EIF  EqQa5媽e6O9}uK'T+wklM- ~%d@U4~PT/KH2+0r\t AQ `3[ZY.2˛iWԦ &# :s~[  |S!t5f=SkC&#_kLV@*,~JpFB*(Bk&ȯ=o?YX%URU@Bze2{Xh?38K/y45n i }{M<܁sha.BBA>uA߿? ۋyoBׂjZCyZ@݃plN !Y@7`3U;s}ڇDh ]@O7 W>Ժ2_1(" ۾k<}Wy&HqY5 7یUwB5GCoo >|~ ц1qBp~ 0.$OsL0" e@ePGM_wGXF(\X-OyTa9t]v4VbU[5fS0^xnVV I&77UQ&\<|e#,ͅS l\BNG2x(݆[yGwʦ +3[mǕ\4&C_kٛY?r]P|`,&R.W]^LF!3jo@5lL;nG(`X)XhҨ7x{Ѝj9Y^2kQG0H7+o_¡zaWks82O~L1& Mk€}YL])ycڷ:7, E eԘOGŅ2m@X7}+ym5i/sws6Ǜ _"MWl}0q?4 4}5 == Pћ*DQ?}pbRjj0Pou-N#~jUkw"(/,~E]޾UMi [elX _;sv 95y}pǒG.| %_gfPFyHcWDF-8[՟ьKU93m !|-<\-->0 :Ne Yf})lJ/W DI⫆u^+0C܀MۧaZCPӐxTWgNۤ7ȃX+ ~~4~)h[2S 5~K7M4xput&| oΦ0:8N}Jz=(~_Qoɛ^WW(ICj@ڈt`^ꋇ/xjkQyF[Y/|.Fuu|~EW MvCyN ?H#2"X|ͮM`1mχ[VGV-{]5mk ߅8 MCh> ߴDoӆ;WvmRe}P a_ esO׬Sp*7屫Xʊǂ$'JO]g΢ Hca_%EB@`:/jPc[jLo(8&j࿮GA~\Q7,_[ui}mTewL77J6?$ +ۮ^_tnČE:xЫpYYŅU0))~_\ƭ[bjLj#7o.ӦVO}(||~S_@X9_Ǧ>Ujۆ*Ұ|3A_x;>>>yuǿ{\d>ג*) kX_Ҵ_v-̙yI8̮Р_mZRnVoӢVVjX'B|˒_چob>[i̅Bq>w{) b9J,9ykSO[]|mLyX4@a0SɸTo#W=QFTa79b BC}S8K|~I;/\h$X/2n1_%o`π)?r=,L~ew>~6 V\mD ͑h|  3Y7Qu䜱`r0D42yC͌4hfZ]/r`v~ ?_$4M_``>ֿy+ˎ!ف}GXMP[pK\ ukܧ8' ׊ >-6j3e4@*i6tl>26xr1ML1%6{9kS_}7Fx`,;/:pÅO jC0 EE~ojtX8`](ʭ*VnI6.IEx+׹E4%OOl7G.yO'!`c^;;3 b`0?I@E(WҜJ5B58 yN''~Bdc̻(D];AS^RմaSEWi=7oV`iC- gI1@X8Y>Nbm/[ߑK뮕>wYW%lڤ]t/ԌP93顧?Li+z0IhdqiFj)$-iA'VևNO_3q kqv]~ɓUY&2ڭ3]!ht4!:GX8 %:ot'"pDK3o3:]CnheMB#b\Q`P~_d` GCfFj 36tr'f6Ūe}/HuDdW_!_+'.M\bzΠG& 6|bk1.ʠ?=e>p`9g"K4z4  8D9M&Y @k%m7G]%?Ze߀ icQCȕ+:b)kkڌˁ\v"G`SE1]uŔX!㱍7|9r aB_LĆ^u?˂OupYBaRcl/nMǫ_46̀_j@*]e\Ӛ<+ :+4P|y+OfB} ]7&trs|ou7Z&19G?YLZ2|< m8r@5p})$4O6 ߯Z'FXiIV4jx5;6Ee h~pg ҕ-A *c)[0帲Tf M D>2A]W_y޷ K+q)p}M@;|q3+ɚ0~2; RV@AP) / ڞ@YX mȇT#6^_|QmI1%[d`ݧ"Aů-M෩%%w</ PBaVf$A_P@a8^'²MU?ÕHBZWk.5؊0}sZǟ܍OCK[JdwV4RB.ا1D F:t&U$?" DQ [d 2k- ܆>y>L}_XL6:l 9tڨJ_m3  0^1l@m\]oq 5 Ф * аt"0 "j)(8) !^ ]V|sॄ  Do\>?4_Hgp t /M +H(Ya~ F;3ƙ|deVlKo(> _ȑx0"f\c2/:bF113{S>k"#HϦ Eł6$ #K8*a `6.k]^WioH>u.b_uK2 *7߆ǓY)Wr,€t]VSTإ_#rl/N .-> b69uv\w(kq_;Mm l}fYʶ~|P968YT:EAXl 8aϘȊ1 Bw9iI=BA%h17R] 9 ],PTC/ ?@T=;M҂dq]y%ˮ_{̥3Wh6t7u4kaR#I]k΀q ,^CVvMn r_8'4ΙNp35IІ~E>rN|~)KVddB~%O:2 Q@w[3mW\s`|,loVs3n4M)lr57Կ{0 ddݤr@!(Tƍ- ЉE> 0t04B$*dTC 1UWT7 0IK0`o7\\tF/] /"r.suX`؝,qz7on ˸]RKS +z# >M)^S6i!Ha:A1 dY aB #7u @\UpD>?|~.^H~~냯s'@YlN=/]ADK~p `gl11&]f6ZrF=v-/dz47}Ё+%V.-dƾrx"(a$ M9ܻ|n+b I1x}$l$yI`33PTi9pg*Эo3EP"k+0 K޾'2BbAD ?J,#/IkZP\=W4T큝*E $m<[ߤ4qR%'~vS m5C|'NdQĂeQ VB+&B.nIZ8fbN@@uo.{8]ݿW/}-~\Hx|8.B^ux ~ǥ"q M_Ku'lcץaK4_;_ e_MHw&_vV1!n_@炰#ڎL݀+/eCa8,&>!+AuF~ot7F _ϸa!A$f`̞(`&$3ը_=-X6|;_oi`߾ff 6w0 8SA(F n0F%0apEؓQ Y2;L, ϻkW# _|NDYCuT!R~?;\d(x>p*w QC=7ڼ\o85n[~ӫl '=b3| an yZQgUUX 8S2wKn{F-SH㒪+&ww5qpϿwD!Z hn-`C>2I3C(9`B? ecGK_,nn9 Ͱl^Ic]Pm e$LN 6twDn'"vx?)Nzȕ+׍2)}(ŠC uw~ _/>~ y}PW m*+M[}fho3Oydsmlu󲼀5xŢwpa]3]t;i5+δ1,WU'nyv8Sd'DУH1 {(P 读rOВ h{G~@^I'=?l7}1 P?Жg_M/{.z8fKh\Ce+u\*an;\ѻOp yhU\4 umg]>%pw aTUXi\G7/<q{.8ר!Wrt)v?>p+gTw@Vj\}`4p??'|߿5p?}Un< OfOۋ @~tgx0/~??B"&+M @"$hs_M(DA}xZg_?>G$) Oq`i"qVJJ90=YwS \to0j8lwmrsx㯃0#b4<-띺_җ\L0u ɂ@Dlh5Y. _]x&ݲ@-gcaǫG0_mZ: ^0*R<":E ~3!gwܟ ]'{zvrp?@|āѫWp^m~o{/ ɜ;%F+.`M}~N)@pwmX<ߍ`AhӦiM:`3Eu%[J8DLɹOiS!Lk{iN\`pDžad:\{q"Їreۻ;~]wFK{wF0]<|>_3wcs:=G#a=H*&1gGS:΃P{G)v;o2 >[M 5}]Tx;}ooe-/Sb wy$w+$v\(iI!bn̢G` A8Xb`N=+ΣOG]G{놇Oϕ:<¯Ylq"6GE,~iszlogۋ#KMb^S~ m/9tSj|bf9?1S\$<89t*Cm(v{}?hnW5v6mKS|׃ȃA}jMtؼ^࿩oIJTj\ljI& 6pxϸ~*ƽ zoĜx|OC׸q@^r  Ost2c{5~v]n)OLWbN_RZY&&2=_B𼿲8/jM ?xY $ ?_]~?|0W #!Jf@>2/rMyS 3Ҹ9G{;i_~I<}*E퇻; HF$}:-GkDX D`[95dQz `ݶ@G Cw2O{ ׺;ԕ!΁eU׬@W5g7}VO Cvq*cGkeUOwZkw{:9\GcdƁ;`rMO8eysfO%dpLd3 ߋMy>tl=B)Sjh'&9NO=ʤ2*M[Svn\HŸqg_w;~ 2!R}Y#d%?YPJ@?Z>?z<MGVv"h$}}59wzs`yvy@< wu) 7uHa#"E&!2OH;9}mlZ9>MO,_=CA] 9 ~HG y+4^V&/+9P^3_F @g&]I^GwOeR9(Ob1F \~28`ϿǏx2vDk';|>d?!0;/FtC;D Olݶ@,7)S`vﺟXǸ00L 1AÏf`á !eM^hxd&}2scpLRy`C@N8PS|!x߷|~9mP.lC4wqp'2)DZnnmmiM82na -=8\e7"֣{cG #)X ,b kÆOȎ rرlc=3]sj<=vl9sR{&V[ܯT/acnCV(.Rja|[~t'3U1]Kmbk9~Io (m[^AĎ7q r[522\JdެX7*+>zk5S ]\3&#ᇥ&ԭ/A~ڻ%U摤Ps | ;4TSg+G%11%;sAFĬJƂ8nu{|S#ٵ9f DݤjsmdQm_j nXdx-nFy3q_ /TkA|0K[?o_=Qp3wM-G,b8;XYM?k #kWO _ZgIa$M+[7|}X/A몛o# 皪64ŁnȘ'[Eys/$v h\!mU Uɿ}FƹwD 39/a4^a*ם*wo`;+p3Om^%oOVvqx}Sv5KAն}NßF|+0,хˉ^ v19 fg'|-K>@ _Au#6FOKNWD3 b51w3P.=rYԨPfBe-'}S%Wt9EOrԵMO*)$?XzLk.Sa: =(t7 rz6{;z"߫3 3$~fA rGd遐"&R>wb|_ű{J # gL'TEvcsL<QA {\ nUۘEal(a?sgFj^ˮ&iA9mv:͞IA4 xO0bAp/=so}=MnX,ySV>zd\MH'|SX\ !h]Iu^ */ pre .comment, pre .template_comment, pre .diff .header, pre .javadoc { color: #998; font-style: italic } pre .keyword, pre .css .rule .keyword, pre .winutils, pre .javascript .title, pre .lisp .title, pre .subst { color: #000; font-weight: bold } pre .number, pre .hexcolor { color: #40a070 } pre .string, pre .tag .value, pre .phpdoc, pre .tex .formula { color: #d14 } pre .title, pre .id { color: #900; font-weight: bold } pre .javascript .title, pre .lisp .title, pre .subst { font-weight: normal } pre .class .title, pre .haskell .label, pre .tex .command { color: #458; font-weight: bold } pre .tag, pre .tag .title, pre .rules .property, pre .django .tag .keyword { color: #000080; font-weight: normal } pre .attribute, pre .variable, pre .instancevar, pre .lisp .body { color: #008080 } pre .regexp { color: #009926 } pre .class { color: #458; font-weight: bold } pre .symbol, pre .ruby .symbol .string, pre .ruby .symbol .keyword, pre .ruby .symbol .keymethods, pre .lisp .keyword, pre .tex .special, pre .input_number { color: #990073 } pre .builtin, pre .built_in, pre .lisp .title { color: #0086b3 } pre .preprocessor, pre .pi, pre .doctype, pre .shebang, pre .cdata { color: #999; font-weight: bold } pre .deletion { background: #fdd } pre .addition { background: #dfd } pre .diff .change { background: #0086b3 } pre .chunk { color: #aaa } pre .tex .formula { opacity: 0.5; } sdoc-0.4.1/lib/rdoc/generator/template/rails/resources/favicon.ico0000644000004100000410000000217612377325624025260 0ustar www-datawww-data h(  #.#.        s!b*R!4@       #)"(:.       +< !;9      !MHWnVv/D     `0F rfr'nsy! $2Ub$5$&  z  XjWs?]  2=    h '    w?M.= coʺ @T+'   ~ wӯ z)   .: ci ~nuĂ䃋( PioParNe<ey ic c.aleri.tsdoc-0.4.1/lib/rdoc/generator/template/rails/resources/panel/0000755000004100000410000000000012377325624024230 5ustar www-datawww-datasdoc-0.4.1/lib/rdoc/generator/template/rails/resources/panel/index.html0000755000004100000410000000501612377325624026232 0ustar www-datawww-data search index
index sdoc-0.4.1/lib/rdoc/generator/template/rails/resources/i/0000755000004100000410000000000012377325624023361 5ustar www-datawww-datasdoc-0.4.1/lib/rdoc/generator/template/rails/resources/i/arrows.png0000755000004100000410000000073512377325624025414 0ustar www-datawww-dataPNG  IHDR[sBIT|d pHYs B4tEXtSoftwareAdobe Fireworks CS3FtEXtCreation Time3/14/09Y>6IDAT8q0EzR@: f;n͐ Nt`*lي/_͗$2,W$kw_DNR-3I{% BMtNqf֌Z='x6'isu\3cah1S-nPBQi m{B&9K/2w?ӆ5먪-(~ZY@uUUwnϲph#S-r@|`._J{n!w.sfј_9pC/ֱ$MrOK0e$IENDB`sdoc-0.4.1/lib/rdoc/generator/template/rails/resources/i/tree_bg.png0000755000004100000410000000031712377325624025502 0ustar www-datawww-dataPNG  IHDR.sBIT|d pHYstEXtSoftwareAdobe Fireworks CS3FtEXtCreation Time3/14/09Y>(IDAT(c4.0*81;G #\HvX OάIENDB`sdoc-0.4.1/lib/rdoc/generator/template/rails/resources/i/results_bg.png0000755000004100000410000000127012377325624026243 0ustar www-datawww-dataPNG  IHDRd9sBIT|d pHYs B4tEXtSoftwareAdobe Fireworks CS3FtEXtCreation Time3/12/092aHIDATxA 0CKh=3@A :t0` @A :t0` @A :t0` @A :t0` @A :t0` @A :t0``U؂uIENDB`sdoc-0.4.1/lib/rdoc/generator/template/rails/search_index.rhtml0000644000004100000410000000026112377325624024622 0ustar www-datawww-data File index <% @files.each do |file| %> <%= file.relative_name %> <% end %> sdoc-0.4.1/lib/rdoc/generator/template/rails/file.rhtml0000755000004100000410000000250712377325624023115 0ustar www-datawww-data <%= h file.name %> <%= include_template '_head.rhtml', {:rel_prefix => rel_prefix} %>
<%= include_template '_context.rhtml', {:context => file, :rel_prefix => rel_prefix} %>
sdoc-0.4.1/lib/rdoc/generator/template/rails/_context.rhtml0000755000004100000410000001476112377325624024026 0ustar www-datawww-data
<% unless (description = context.description).empty? %>
<%= description %>
<% end %> <% unless context.requires.empty? %>
Required Files
    <% context.requires.each do |req| %>
  • <%= h req.name %>
  • <% end %>
<% end %> <% sections = context.sections.select { |s| s.title }.sort_by{ |s| s.title.to_s } %> <% unless sections.empty? then %>
Sections
<% end %> <% unless context.classes_and_modules.empty? %>
Namespace
    <% (context.modules.sort + context.classes.sort).each do |mod| %>
  • <%= mod.type.upcase %> <%= mod.full_name %>
  • <% end %>
<% end %> <% unless context.method_list.empty? %>
Methods
<% each_letter_group(context.method_list) do |group| %>
<%= group[:name] %>
    <% group[:methods].each_with_index do |method, i| %> <% comma = group[:methods].size == i+1 ? '' : ',' %>
  • <%= h method.name %><%= comma %>
  • <% end %>
<% end %>
<% end %> <% unless context.includes.empty? %>
Included Modules
<% end %> <% context.each_section do |section, constants, attributes| %> <% if section.title then %>
<%= h section.title %>
<% end %> <% if section.comment then %>
<%= section.description %>
<% end %> <% unless constants.empty? %>
Constants
<% context.each_constant do |const| %> <% if const.comment %> <% end %> <% end %>
<%= h const.name %> = <%= h const.value %>
  <%= const.description.strip %>
<% end %> <% unless attributes.empty? %>
Attributes
<% attributes.each do |attrib| %> <% end %>
[<%= attrib.rw %>] <%= h attrib.name %> <%= attrib.description.strip %>
<% end %> <% context.methods_by_type(section).each do |type, visibilities| next if visibilities.empty? visibilities.each do |visibility, methods| next if methods.empty? %>
<%= type.capitalize %> <%= visibility.to_s.capitalize %> methods
<% methods.each do |method| %>
<% if method.call_seq %> <%= method.call_seq.gsub(/->/, '→') %> <% else %> <%= h method.name %><%= h method.params %> <% end %> " name="<%= method.aref %>" class="permalink">Link
<% if method.comment %>
<%= method.description.strip %>
<% end %> <% unless method.aliases.empty? %>
Also aliased as: <%= method.aliases.map do |aka| if aka.parent then # HACK lib/rexml/encodings %{#{h aka.name}} else h aka.name end end.join ", " %>
<% end %> <% if method.is_alias_for then %> <% end %> <% if method.token_stream %> <% markup = method.sdoc_markup_code %>
<% # generate github link github = if options.github if markup =~ /File\s(\S+), line (\d+)/ path = $1 line = $2.to_i end path && github_url(path) else false end %>
<%= markup %>
<% end %>
<% end #methods.each %> <% end #visibilities.each %> <% end #context.methods_by_type %> <% end #context.each_section %>
sdoc-0.4.1/lib/rdoc/generator/template/rails/_head.rhtml0000644000004100000410000000132212377325624023225 0ustar www-datawww-data" type="text/css" media="screen" /> " type="text/css" media="screen" /> " type="text/css" media="screen" /> sdoc-0.4.1/lib/rdoc/generator/template/rails/class.rhtml0000755000004100000410000000316612377325624023305 0ustar www-datawww-data <%= h klass.full_name %> <%= include_template '_head.rhtml', {:rel_prefix => rel_prefix} %>
<%= include_template '_context.rhtml', {:context => klass, :rel_prefix => rel_prefix} %>
sdoc-0.4.1/lib/sdoc.rb0000644000004100000410000000015312377325624014531 0ustar www-datawww-data$:.unshift File.dirname(__FILE__) require "rubygems" gem 'rdoc' module SDoc end require 'sdoc/generator' sdoc-0.4.1/metadata.yml0000644000004100000410000001333112377325624015013 0ustar www-datawww-data--- !ruby/object:Gem::Specification name: sdoc version: !ruby/object:Gem::Version version: 0.4.1 platform: ruby authors: - Vladimir Kolesnikov - Nathan Broadbent - Jean Mertz - Zachary Scott autorequire: bindir: bin cert_chain: [] date: 2014-08-11 00:00:00.000000000 Z dependencies: - !ruby/object:Gem::Dependency name: rdoc requirement: !ruby/object:Gem::Requirement requirements: - - ~> - !ruby/object:Gem::Version version: '4.0' type: :runtime prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ~> - !ruby/object:Gem::Version version: '4.0' - !ruby/object:Gem::Dependency name: json requirement: !ruby/object:Gem::Requirement requirements: - - ~> - !ruby/object:Gem::Version version: '1.7' - - '>=' - !ruby/object:Gem::Version version: 1.7.7 type: :runtime prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ~> - !ruby/object:Gem::Version version: '1.7' - - '>=' - !ruby/object:Gem::Version version: 1.7.7 - !ruby/object:Gem::Dependency name: bundler requirement: !ruby/object:Gem::Requirement requirements: - - ~> - !ruby/object:Gem::Version version: '1.3' type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ~> - !ruby/object:Gem::Version version: '1.3' - !ruby/object:Gem::Dependency name: rake requirement: !ruby/object:Gem::Requirement requirements: - - '>=' - !ruby/object:Gem::Version version: '0' type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - '>=' - !ruby/object:Gem::Version version: '0' - !ruby/object:Gem::Dependency name: minitest requirement: !ruby/object:Gem::Requirement requirements: - - ~> - !ruby/object:Gem::Version version: '4.0' type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ~> - !ruby/object:Gem::Version version: '4.0' description: rdoc generator html with javascript search index. email: voloko@gmail.com zachary@zacharyscott.net executables: - sdoc - sdoc-merge extensions: [] extra_rdoc_files: - README.md files: - .gitignore - .travis.yml - Gemfile - LICENSE - README.md - Rakefile - bin/sdoc - bin/sdoc-merge - lib/rdoc/discover.rb - lib/rdoc/generator/template/merge/index.rhtml - lib/rdoc/generator/template/rails/_context.rhtml - lib/rdoc/generator/template/rails/_head.rhtml - lib/rdoc/generator/template/rails/class.rhtml - lib/rdoc/generator/template/rails/file.rhtml - lib/rdoc/generator/template/rails/index.rhtml - lib/rdoc/generator/template/rails/resources/apple-touch-icon.png - lib/rdoc/generator/template/rails/resources/css/github.css - lib/rdoc/generator/template/rails/resources/css/main.css - lib/rdoc/generator/template/rails/resources/css/panel.css - lib/rdoc/generator/template/rails/resources/css/reset.css - lib/rdoc/generator/template/rails/resources/favicon.ico - lib/rdoc/generator/template/rails/resources/i/arrows.png - lib/rdoc/generator/template/rails/resources/i/results_bg.png - lib/rdoc/generator/template/rails/resources/i/tree_bg.png - lib/rdoc/generator/template/rails/resources/js/highlight.pack.js - lib/rdoc/generator/template/rails/resources/js/jquery-1.3.2.min.js - lib/rdoc/generator/template/rails/resources/js/jquery-effect.js - lib/rdoc/generator/template/rails/resources/js/main.js - lib/rdoc/generator/template/rails/resources/js/searchdoc.js - lib/rdoc/generator/template/rails/resources/panel/index.html - lib/rdoc/generator/template/rails/search_index.rhtml - lib/rdoc/generator/template/sdoc/_context.rhtml - lib/rdoc/generator/template/sdoc/_head.rhtml - lib/rdoc/generator/template/sdoc/class.rhtml - lib/rdoc/generator/template/sdoc/file.rhtml - lib/rdoc/generator/template/sdoc/index.rhtml - lib/rdoc/generator/template/sdoc/resources/apple-touch-icon.png - lib/rdoc/generator/template/sdoc/resources/css/github.css - lib/rdoc/generator/template/sdoc/resources/css/main.css - lib/rdoc/generator/template/sdoc/resources/css/panel.css - lib/rdoc/generator/template/sdoc/resources/css/reset.css - lib/rdoc/generator/template/sdoc/resources/favicon.ico - lib/rdoc/generator/template/sdoc/resources/i/arrows.png - lib/rdoc/generator/template/sdoc/resources/i/results_bg.png - lib/rdoc/generator/template/sdoc/resources/i/tree_bg.png - lib/rdoc/generator/template/sdoc/resources/js/highlight.pack.js - lib/rdoc/generator/template/sdoc/resources/js/jquery-1.3.2.min.js - lib/rdoc/generator/template/sdoc/resources/js/jquery-effect.js - lib/rdoc/generator/template/sdoc/resources/js/main.js - lib/rdoc/generator/template/sdoc/resources/js/searchdoc.js - lib/rdoc/generator/template/sdoc/resources/panel/index.html - lib/rdoc/generator/template/sdoc/search_index.rhtml - lib/sdoc.rb - lib/sdoc/generator.rb - lib/sdoc/github.rb - lib/sdoc/helpers.rb - lib/sdoc/merge.rb - lib/sdoc/templatable.rb - lib/sdoc/version.rb - sdoc.gemspec - spec/rdoc_generator_spec.rb - spec/spec_helper.rb homepage: http://github.com/voloko/sdoc licenses: - MIT metadata: {} post_install_message: rdoc_options: - --charset=UTF-8 require_paths: - lib required_ruby_version: !ruby/object:Gem::Requirement requirements: - - '>=' - !ruby/object:Gem::Version version: '0' required_rubygems_version: !ruby/object:Gem::Requirement requirements: - - '>=' - !ruby/object:Gem::Version version: 1.3.6 requirements: [] rubyforge_project: rubygems_version: 2.0.14 signing_key: specification_version: 4 summary: rdoc html with javascript search index. test_files: - spec/rdoc_generator_spec.rb - spec/spec_helper.rb sdoc-0.4.1/sdoc.gemspec0000644000004100000410000000247012377325624015007 0ustar www-datawww-data# -*- encoding: utf-8 -*- $:.push File.expand_path("../lib", __FILE__) require 'sdoc/version' Gem::Specification.new do |s| s.name = "sdoc" s.version = SDoc::VERSION s.authors = ["Vladimir Kolesnikov", "Nathan Broadbent", "Jean Mertz", "Zachary Scott"] s.description = %q{rdoc generator html with javascript search index.} s.summary = %q{rdoc html with javascript search index.} s.homepage = %q{http://github.com/voloko/sdoc} s.email = %q{voloko@gmail.com zachary@zacharyscott.net} s.license = 'MIT' s.required_rubygems_version = Gem::Requirement.new(">= 1.3.6") if s.respond_to? :required_rubygems_version= s.rdoc_options = ["--charset=UTF-8"] s.extra_rdoc_files = ["README.md"] s.add_runtime_dependency("rdoc", "~> 4.0") if defined?(JRUBY_VERSION) s.platform = Gem::Platform.new(['universal', 'java', nil]) s.add_runtime_dependency("json_pure", "~> 1.7", ">= 1.7.7") else s.add_runtime_dependency("json", "~> 1.7", ">= 1.7.7") end s.add_development_dependency "bundler", "~> 1.3" s.add_development_dependency "rake" s.add_development_dependency "minitest", "~> 4.0" s.files = `git ls-files`.split("\n") s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n") s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) } end sdoc-0.4.1/.gitignore0000644000004100000410000000011012377325624014467 0ustar www-datawww-data*.gem .bundle pkg doc /test.rb Gemfile.lock /.rake_tasks~ /*.gem rails/ sdoc-0.4.1/LICENSE0000644000004100000410000001175112377325624013521 0ustar www-datawww-dataCopyright (c) 2011 Vladimir Kolesnikov Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Darkfish RDoc HTML Generator Copyright (c) 2007, 2008, Michael Granger. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the author/s, nor the names of the project's contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. RDoc is copyrighted free software. You can redistribute it and/or modify it under either the terms of the GPL version 2 (see the file GPL), or the conditions below: 1. You may make and give away verbatim copies of the source form of the software without restriction, provided that you duplicate all of the original copyright notices and associated disclaimers. 2. You may modify your copy of the software in any way, provided that you do at least ONE of the following: a) place your modifications in the Public Domain or otherwise make them Freely Available, such as by posting said modifications to Usenet or an equivalent medium, or by allowing the author to include your modifications in the software. b) use the modified software only within your corporation or organization. c) give non-standard binaries non-standard names, with instructions on where to get the original software distribution. d) make other distribution arrangements with the author. 3. You may distribute the software in object code or binary form, provided that you do at least ONE of the following: a) distribute the binaries and library files of the software, together with instructions (in the manual page or equivalent) on where to get the original distribution. b) accompany the distribution with the machine-readable source of the software. c) give non-standard binaries non-standard names, with instructions on where to get the original software distribution. d) make other distribution arrangements with the author. 4. You may modify and include the part of the software into any other software (possibly commercial). But some files in the distribution are not written by the author, so that they are not under these terms. For the list of those files and their copying conditions, see the file LEGAL. 5. The scripts and library files supplied as input to or produced as output from the software do not automatically fall under the copyright of the software, but belong to whomever generated them, and may be sold commercially, and may be aggregated with this software. 6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.sdoc-0.4.1/README.md0000644000004100000410000000336512377325624013775 0ustar www-datawww-data# SDoc [![Build Status](https://travis-ci.org/zzak/sdoc.png?branch=master)](https://travis-ci.org/zzak/sdoc) **Powering http://api.rubyonrails.org/ and http://railsapi.com/** ### What is sdoc? RDoc generator to build searchable HTML documentation for Ruby code. * `sdoc` - command line tool to run rdoc with `generator=shtml` (searchable HTML) * `sdoc-merge` - command line tool to merge multiple sdoc folders into a single documentation site ### Getting Started ```bash # Install the gem gem install sdoc # Generate documentation for 'projectdir' sdoc projectdir ``` ### sdoc `sdoc` is simply a wrapper for the `rdoc` command line tool. See `sdoc --help` for more details. `--fmt` is set to `shtml` by default. The default template `-T` is `shtml`, but you can also use the `direct` template. Example: ```bash sdoc -o doc/rails -T direct rails ``` ### sdoc-merge
Usage: sdoc-merge [options] directories
    -n, --names [NAMES]              Names of merged repositories. Comma separated
    -o, --op [DIRECTORY]             Set the output directory
    -t, --title [TITLE]              Set the title of merged file
Example: ```bash sdoc-merge --title "Ruby v1.9, Rails v2.3.2.1" --op merged --names "Ruby,Rails" ruby-v1.9 rails-v2.3.2.1 ``` ### Rake Task ```ruby # Rakefile require 'sdoc' # and use your RDoc task the same way you used it before Rake::RDocTask.new do |rdoc| rdoc.rdoc_dir = 'doc/rdoc' rdoc.options << '--fmt' << 'shtml' # explictly set shtml generator rdoc.template = 'direct' # lighter template used on railsapi.com ... end ``` # Who? * Vladimir Kolesnikov ([voloko](https://github.com/voloko)) * Nathan Broadbent ([ndbroadbent](https://github.com/ndbroadbent)) * Zachary Scott ([zzak](https://github.com/zzak))