diff --git a/.gitignore b/.gitignore
index 488c33550..1b9862181 100644
--- a/.gitignore
+++ b/.gitignore
@@ -38,3 +38,6 @@ push*.dat
# Vagrant files
.vagrant
+
+#postgres
+logfile
diff --git a/.travis.yml b/.travis.yml
index 3a255982b..6c95c7d8e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,6 +2,10 @@ language: ruby
rvm: 1.9.2
+before_install:
+ - "export DISPLAY=:99.0"
+ - "sh -e /etc/init.d/xvfb start"
+
before_script:
- "psql -c 'create database cmu_education_test;' -U postgres >/dev/null"
- cp config/amazon_s3.default.yml config/amazon_s3.yml
@@ -24,9 +28,14 @@ env:
notifications:
email:
recipients:
- - todd.sedano@sv.cmu.edu
- - rofaida.abdelaal@sv.cmu.edu
+ - emilia.torino@west.cmu.edu
+ - mia.manalastas@sv.cmu.edu
+ - ira.jain@sv.cmu.edu
+ - david.lee@sv.cmu.edu
+ - isil.demir@sv.cmu.edu
+ #- todd.sedano@sv.cmu.edu
+ #- rofaida.abdelaal@sv.cmu.edu
# on_success: [always|never|change] # default: change
# on_failure: [always|never|change] # default: always
- on_success: change
+ on_success: always
on_failure: always
diff --git a/Gemfile b/Gemfile
index 3ed1d5117..65de57217 100644
--- a/Gemfile
+++ b/Gemfile
@@ -93,6 +93,9 @@ group :development, :test do
# gem 'autotest-growl' if RUBY_PLATFORM =~ /darwin/
# gem 'test-unit' #, '1.2.3' #Downgrading so that autotest, rspec will work
+
+# Team Turing: add this for static code analysis
+ gem 'rails_best_practices'
end
diff --git a/Gemfile.lock b/Gemfile.lock
index 345f150f3..c50335267 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -52,6 +52,7 @@ GEM
addressable (2.3.4)
archive-tar-minitar (0.5.2)
arel (2.0.10)
+ awesome_print (1.2.0)
aws-sdk (1.8.5)
json (~> 1.4)
nokogiri (>= 1.4.4)
@@ -74,6 +75,9 @@ GEM
mime-types (~> 1.16)
orm_adapter (~> 0.0.5)
cocaine (0.2.0)
+ code_analyzer (0.4.3)
+ sexp_processor
+ colored (1.2)
columnize (0.3.6)
daemons (1.1.9)
delayed_job (2.1.4)
@@ -182,6 +186,15 @@ GEM
activesupport (= 3.0.20)
bundler (~> 1.0)
railties (= 3.0.20)
+ rails_best_practices (1.14.4)
+ activesupport
+ awesome_print
+ code_analyzer (>= 0.4.3)
+ colored
+ erubis
+ i18n
+ require_all
+ ruby-progressbar
railties (3.0.20)
actionpack (= 3.0.20)
activesupport (= 3.0.20)
@@ -192,6 +205,7 @@ GEM
rdoc (3.12.2)
json (~> 1.4)
recaptcha (0.3.5)
+ require_all (1.3.1)
rest-client (1.6.7)
mime-types (>= 1.16)
rmagick (2.13.2)
@@ -221,6 +235,7 @@ GEM
ruby-openid (2.2.3)
ruby-openid-apps-discovery (1.2.0)
ruby-openid (>= 2.1.7)
+ ruby-progressbar (1.2.0)
ruby_core_source (0.1.5)
archive-tar-minitar (>= 0.5.2)
rubyzip (0.9.9)
@@ -231,6 +246,7 @@ GEM
rubyzip
websocket (~> 1.0.4)
sequel (3.20.0)
+ sexp_processor (4.4.0)
shoulda (3.4.0)
shoulda-context (~> 1.0, >= 1.0.1)
shoulda-matchers (~> 1.0, >= 1.4.1)
@@ -299,6 +315,7 @@ DEPENDENCIES
pg
rack-google_analytics
rails (= 3.0.20)
+ rails_best_practices
rake (= 0.8.7)
rdoc
recaptcha
diff --git a/app/controllers/deliverables_controller.rb b/app/controllers/deliverables_controller.rb
index 7a02eafd9..cbef17328 100644
--- a/app/controllers/deliverables_controller.rb
+++ b/app/controllers/deliverables_controller.rb
@@ -16,6 +16,7 @@ def index
end
def grading_queue_for_course
+
@course = Course.find(params[:course_id])
if @course.grading_rule.nil?
@@ -26,12 +27,39 @@ def grading_queue_for_course
flash.now[:error] = I18n.t(:default_grading_rule_for_course)
end
- if (current_user.is_admin? || @course.faculty.include?(current_user))
+ # Retrieving assignments names for the course to be able to filter by deliverable name later on.
+ @assignments = Assignment.where(:course_id => @course.id).all.sort_by(&:task_number)
+
+ if current_user.is_admin?
+
@deliverables = Deliverable.where(:course_id => @course.id).all
+
+ elsif @course.faculty.include?(current_user)
+
+ # Get all deliverables for this team/student
+ @deliverables = Deliverable.get_deliverables(params[:course_id], current_user.id, {:is_my_team => 1})
+
+ # Select all that are ungraded or drafted
+ @deliverables = @deliverables.select { |deliverable| deliverable.get_grade_status == :ungraded ||
+ deliverable.get_grade_status == :drafted }
+
+ # Sort by task number
+ @deliverables = @deliverables.sort { |a, b| a.assignment.task_number <=> b.assignment.task_number }
+
else
has_permissions_or_redirect(:admin, root_path)
end
+
+ end
+
+ # Beg Team Turing
+ def get_deliverables
+ @deliverables = filter_deliverables(params[:course_id], params[:filter_options])
+ respond_to do |format|
+ format.js
+ end
end
+ # End Team Turing
#temporary for mel
def team_index_for_course
@@ -96,8 +124,13 @@ def show
end
respond_to do |format|
- format.html # show.html.erb
- format.xml { render :xml => @deliverable }
+ if (current_user.is_admin? || @course.faculty.include?(current_user))
+ format.html { render layout: false }
+ else
+ format.html # show.html.erb
+ format.xml { render :xml => @deliverable }
+ end
+
end
end
@@ -279,20 +312,32 @@ def update_feedback
is_student_visible=false
end
- flash[:error] = @deliverable.update_grade(params, is_student_visible)
+ # Beg chg Turing Ira
+ flash[:error] = @deliverable.update_grade(params, is_student_visible, current_user.id)
+ # End chg Turing Ira
+ # Begin Add Team Turing
+ other_email = nil
+ if params[:send_copy_to_myself] == "1"
+ other_email = current_user.email
+ end
+ # End Add Team Turing
if @deliverable.update_feedback_and_notes(params[:deliverable])
- if is_student_visible==true
- @deliverable.send_deliverable_feedback_email(url_for(@deliverable))
+ if is_student_visible == true
+ @deliverable.send_deliverable_feedback_email(url_for(@deliverable), other_email)
end
else
flash[:error] << 'Unable to save feedback'
end
+ #Obtain current selected filters to update the queue accordingly
+ @selected_filter_options = JSON.parse(params[:deliverable][:current_filter_options])
+ @deliverables = filter_deliverables(@deliverable.course_id, @selected_filter_options)
+
respond_to do |format|
if flash[:error].blank?
flash[:error] = nil
flash[:notice] = 'Feedback successfully saved.'
- format.html {redirect_to(course_deliverables_path(@deliverable.course))}
+ format.js
else
flash[:error] = flash[:error].join(" ")
format.html { redirect_to(@deliverable) }
@@ -313,4 +358,53 @@ def get_assignments_for_student
end
end
+
+ # Beg Team Turing
+ private
+ def filter_deliverables (course_id, filter_options)
+ @course = Course.find_by_id(course_id)
+
+ # Prepare filter options according to what users select on the page
+ options = {}
+ if filter_options[:search_box] != ""
+ options[:search_string] = filter_options[:search_box]
+ end
+
+ if filter_options['is_my_teams'] == 'yes'
+ options[:is_my_team] = 1
+ else
+ options[:is_my_team] = 0
+ end
+
+
+ # Filter in the model by course, professor, my teams and search input
+ @deliverables = []
+ @faculty_deliverables = Deliverable.get_deliverables(course_id, current_user.id, options)
+
+ # Filter once again according to the selected grading options. If no filter options are selected,
+ # display every deliverable
+ @selected_options = []
+ filter_options.collect do |filter_option|
+ @selected_options << filter_option[0].to_sym if filter_option[1] == "1"
+ end
+ if @selected_options.size == 0
+ @deliverables = @faculty_deliverables
+ else
+ @selected_options.each do |option|
+ @deliverables.concat(@faculty_deliverables.select { |deliverable| deliverable.get_grade_status == option })
+ end
+ end
+
+ # Filter by assignment names in drop down menu
+ unless filter_options["assignment_id"] == '-1'
+ @deliverables = @deliverables.select{ |deliverable| deliverable.assignment_id == filter_options[
+ "assignment_id"].to_i }
+ end
+
+ # Sort by task number, ascending
+ @deliverables = @deliverables.sort { |a, b| a.assignment.task_number <=> b.assignment.task_number }
+ end
+ # End Team Turing
+
end
+
diff --git a/app/controllers/grades_controller.rb b/app/controllers/grades_controller.rb
index 3d6e8c2bc..17f5a5867 100644
--- a/app/controllers/grades_controller.rb
+++ b/app/controllers/grades_controller.rb
@@ -74,19 +74,36 @@ def student_deliverables_and_grades_for_course
def post_drafted_and_send #and send email
grades = params["grades"]
- Grade.mail_drafted_grade(@course.id, request.host_with_port )
+ # Begin Add Team Turing
+ other_email = nil
+ if params[:send_copy_to_myself] == "1"
+ other_email = current_user.email
+ end
+ Grade.mail_drafted_grade(@course.id, request.host_with_port, other_email)
+ # End Add Team Turing
+ #Grade.mail_drafted_grade(@course.id, request.host_with_port ) # Delete Team Turing
render :json => ({"message"=>"true"})
end
def save
grades = params["grades"]
- Grade.give_grades(grades)
+ #Beg add Turing
+ #Grade.give_grades(grades)
+ Grade.give_grades(grades,current_user.id)
+ # End add Turing
render :json => ({"message"=>"true"})
end
def send_final_grade
grades = params["grades"]
- Grade.mail_final_grade(@course.id, request.host_with_port)
+ # Begin Add Team Turing
+ other_email = nil
+ if params[:send_copy_to_myself] == "1"
+ other_email = current_user.email
+ end
+ Grade.mail_final_grade(@course.id, request.host_with_port, other_email)
+ # End Add Team Turing
+ #Grade.mail_final_grade(@course.id, request.host_with_port) # Delete Team Turing
render :json => ({"message"=>"true"})
end
diff --git a/app/models/deliverable.rb b/app/models/deliverable.rb
index d209a7b1b..9fa87988c 100644
--- a/app/models/deliverable.rb
+++ b/app/models/deliverable.rb
@@ -57,6 +57,93 @@ class Deliverable < ActiveRecord::Base
after_save :inaccurate_course_and_assignment_check
+ # Begin Team Turing
+ def self.get_deliverables(course_id, faculty_id, options)
+
+ sql_template = "SELECT d.id FROM deliverables d LEFT JOIN teams t ON d.team_id = t.id LEFT JOIN team_assignments ta ON t.id = ta.team_id LEFT JOIN users u1 ON d.creator_id = u1.id LEFT JOIN users u2 ON ta.user_id = u2.id"
+
+ where_clause_course = " WHERE d.course_id = ?"
+
+ where_clause_team_deliverable = " AND d.team_id IS NOT NULL AND t.primary_faculty_id = ?"
+
+ where_clause_individual_deliverable = " AND d.team_id IS NULL AND d.creator_id IN (SELECT inner_ta.user_id FROM teams inner_t, team_assignments inner_ta WHERE inner_t.id = inner_ta.team_id AND inner_t.primary_faculty_id = ?)"
+
+ where_clause_search = " AND (u1.first_name ILIKE ? OR u1.last_name ILIKE ? OR u1.human_name ILIKE ? OR u1.email ILIKE ? OR u1.webiso_account ILIKE ? OR u2.first_name ILIKE ? OR u2.last_name ILIKE ? OR u2.human_name ILIKE ? OR u2.email ILIKE ? OR u2.webiso_account ILIKE ? OR t.name ILIKE ?)"
+
+ queue = []
+
+ # 1. Are there teams in this course? If there are, and the "filter by teams is on", filter by teams
+ # 2. If there are no teams in the course, and if this deliverable is an individual deliverable,
+ # show deliverables for individuals who are in the faculty's teams only.
+ # 3. Otherwise, show every deliverable
+
+ course_has_teams = Team.where(:course_id => course_id).any?
+
+ has_search_string = !options[:search_string].nil?
+ selected_my_team = (options[:is_my_team] == 1)
+
+ if has_search_string
+ search_string = options[:search_string]
+ end
+
+ if !course_has_teams
+
+ if has_search_string
+ sql = sql_template + where_clause_course + where_clause_search
+ deliverable_ids = Deliverable.find_by_sql([sql, course_id, search_string, search_string, search_string, search_string, search_string, search_string, search_string, search_string, search_string, search_string, search_string]).uniq
+ else
+ sql = sql_template + where_clause_course
+ deliverable_ids = Deliverable.find_by_sql([sql, course_id]).uniq
+ end
+
+ elsif selected_my_team
+
+ if has_search_string
+ sql = sql_template + where_clause_course + where_clause_team_deliverable + where_clause_search
+ team_deliverable_ids = Deliverable.find_by_sql([sql, course_id, faculty_id, search_string, search_string, search_string, search_string, search_string, search_string, search_string, search_string, search_string, search_string, search_string]).uniq
+
+ sql = sql_template + where_clause_course + where_clause_individual_deliverable + where_clause_search
+ individual_deliverable_ids = Deliverable.find_by_sql([sql, course_id, faculty_id, search_string, search_string, search_string, search_string, search_string, search_string, search_string, search_string, search_string, search_string, search_string]).uniq
+ else
+ sql = sql_template + where_clause_course + where_clause_team_deliverable
+ team_deliverable_ids = Deliverable.find_by_sql([sql, course_id, faculty_id]).uniq
+
+ sql = sql_template + where_clause_course + where_clause_individual_deliverable
+ individual_deliverable_ids = Deliverable.find_by_sql([sql, course_id, faculty_id]).uniq
+ end
+
+ deliverable_ids = []
+
+ team_deliverable_ids.each do |team_deliverable_id|
+ deliverable_ids << team_deliverable_id
+ end
+
+ individual_deliverable_ids.each do |individual_deliverable_id|
+ deliverable_ids << individual_deliverable_id
+ end
+
+ else
+
+ if has_search_string
+ sql = sql_template + where_clause_course + where_clause_search
+ deliverable_ids = Deliverable.find_by_sql([sql, course_id, search_string, search_string, search_string, search_string, search_string, search_string, search_string, search_string, search_string, search_string, search_string]).uniq
+ else
+ sql = sql_template + where_clause_course
+ deliverable_ids = Deliverable.find_by_sql([sql, course_id]).uniq
+ end
+
+ end
+
+ deliverables = []
+
+ deliverable_ids.each do |deliverable_id|
+ deliverables << Deliverable.find(deliverable_id)
+ end
+
+ return deliverables
+
+ end
+ # End Team Turing
# To get the owner of the deliverable
def unique_course_task_owner?
@@ -167,7 +254,8 @@ def send_deliverable_upload_email(url)
end
# To send the feedback to the each student along with the score received respectively.
- def send_feedback_to_student(member_id, member_email, url)
+ #def send_feedback_to_student(member_id, member_email, url) # Delete Team Turing
+ def send_feedback_to_student(member_id, member_email, url, other_email=nil) # Add Team Turing
feedback = "Feedback has been submitted for "
if !self.assignment.task_number.nil? and self.assignment.task_number != "" and !self.assignment.name.nil? and self.assignment.name !=""
feedback += "#{self.assignment.name} (#{self.assignment.task_number}) of "
@@ -189,8 +277,8 @@ def send_feedback_to_student(member_id, member_email, url)
feedback += self.assignment.formatted_maximum_score
feedback += "\n"
end
-
options = {:to => member_email,
+ :cc => other_email, # Added Team Turing
:subject => "Feedback for " + self.course.name,
:message => feedback,
:url_label => "View this deliverable",
@@ -199,16 +287,31 @@ def send_feedback_to_student(member_id, member_email, url)
GenericMailer.email(options).deliver
end
+ # Begin Delete Team Turing
+ ## To send the feedback in the email back to the students.
+ #def send_deliverable_feedback_email(url)
+ # if self.is_team_deliverable?
+ # self.team.members.each do |member|
+ # send_feedback_to_student(member.id, member.email, url)
+ # end
+ # else
+ # send_feedback_to_student(self.creator_id, self.creator.email, url)
+ # end
+ #end
+ # End Delete Team Turing
+
+ # Begin Add Team Turing
# To send the feedback in the email back to the students.
- def send_deliverable_feedback_email(url)
+ def send_deliverable_feedback_email(url, other_email=nil)
if self.is_team_deliverable?
self.team.members.each do |member|
- send_feedback_to_student(member.id, member.email, url)
+ send_feedback_to_student(member.id, member.email, url, other_email)
end
else
- send_feedback_to_student(self.creator_id, self.creator.email, url)
+ send_feedback_to_student(self.creator_id, self.creator.email, url, other_email)
end
end
+ # End Add Team Turing
# To check if the current user can change/edit the deliverable
def editable?(current_user)
@@ -246,7 +349,7 @@ def is_visible_to_student?
end
# To update the feedback and the private notes by faculty
- def update_feedback_and_notes (params)
+ def update_feedback_and_notes(params)
self.feedback_comment = params[:feedback_comment]
self.private_note = params[:private_note]
unless params[:feedback].blank?
@@ -259,18 +362,28 @@ def update_feedback_and_notes (params)
end
# To update the grade received by the student
- def update_grade (params, is_student_visible)
+ # Beg chg Turing Ira
+ # def update_grade (params, is_student_visible
+ def update_grade(params, is_student_visible, current_user_id)
+ # End chg Turing Ira
error_msg = []
if self.assignment.is_team_deliverable?
self.team.members.each do |user|
score = params[:"#{user.id}"]
- if Grade.give_grade(self.course_id, self.assignment.id, user.id, score, is_student_visible)==false
+ # Beg chg Turing Ira
+ #if Grade.give_grade(self.course_id, self.assignment.id, user.id, score, is_student_visible)==false
+ if Grade.give_grade(self.course_id, self.assignment.id, user.id, score, is_student_visible, current_user_id)==false
+ # End chg Turing Ira
error_msg << "Grade given to " + user.human_name + " is invalid!"
end
end
else
score = params[:"#{self.creator_id}"]
- unless Grade.give_grade(self.course_id, self.assignment.id, self.creator_id, score, is_student_visible)
+ # Beg chg Turing Ira
+ #unless Grade.give_grade(self.course_id, self.assignment.id, self.creator_id, score, is_student_visible)
+ unless Grade.give_grade(self.course_id, self.assignment.id, self.creator_id, score, is_student_visible, current_user_id)
+ # End chg Turing Ira
+
error_msg << "Grade given to " + self.creator.human_name + " is invalid!"
end
end
@@ -299,7 +412,7 @@ def get_grade_status
if self.is_team_deliverable?
return :ungraded if self.team.nil?
self.team.members.each do |member|
- status = self.get_status_for_every_individual (member.id)
+ status = self.get_status_for_every_individual(member.id)
if status != :graded
return status
end
@@ -312,7 +425,7 @@ def get_grade_status
#Todo: rename get_status_for_every_individual to status_for_every_individual
# To get the status of deliverable by student for is it graded or not.
- def get_status_for_every_individual (student_id)
+ def get_status_for_every_individual(student_id)
return :unknonwn if self.assignment.nil? #(guard for old deliverables)
grade = Grade.get_grade(self.course.id, self.assignment.id, student_id)
if grade.nil?
@@ -334,4 +447,26 @@ def inaccurate_course_and_assignment_check
end
end
end
+
+ #Beg add Turing Ira
+
+ def get_graded_by
+ if self.is_team_deliverable?
+ return self.last_graded_by_for_every_individual(self.team.members[0].id)
+ else
+ return self.last_graded_by_for_every_individual(self.creator_id)
+ end
+ end
+
+ def last_graded_by_for_every_individual(student_id)
+ return :unknonwn if self.assignment.nil? #(guard for old deliverables)
+ grade = Grade.get_grade(self.course.id, self.assignment.id, student_id)
+ if grade.nil?
+ return nil
+ else
+ return User.find_by_id(grade.last_graded_by) unless grade.last_graded_by.nil?
+ end
+ end
+
+ #End add Turing Ira
end
diff --git a/app/models/grade.rb b/app/models/grade.rb
index 68a09e26c..9d839ccdf 100644
--- a/app/models/grade.rb
+++ b/app/models/grade.rb
@@ -76,7 +76,11 @@ def self.get_final_grade(course_id, student_id)
# To returns a specific grade for one assignment of given course_id, student_id and assignment_id. This function is
# useful for controller to test whether the score is exists or not.
- def self.give_grade(course_id, assignment_id, student_id, score, is_student_visible=nil)
+
+ # Beg Chg Turing Ira
+ #def self.give_grade(course_id, assignment_id, student_id, score, is_student_visible=nil)
+ def self.give_grade(course_id, assignment_id, student_id, score, is_student_visible = nil, last_graded_by = nil)
+ # End Chg Turing Ira
if assignment_id > 0
if Assignment.find(assignment_id).nil?
return false
@@ -89,8 +93,12 @@ def self.give_grade(course_id, assignment_id, student_id, score, is_student_visi
if course.registered_students_or_on_teams.include?(student)
grade = Grade.get_grade(course_id, assignment_id, student_id)
if grade.nil?
+ # Beg Chg Turing Ira
+ # grade = Grade.new({:course_id => course_id, :assignment_id => assignment_id, :student_id => student_id,
+ # :score => score, :is_student_visible => is_student_visible})
grade = Grade.new({:course_id => course_id, :assignment_id => assignment_id, :student_id => student_id,
- :score => score, :is_student_visible => is_student_visible})
+ :score => score, :is_student_visible => is_student_visible, :last_graded_by => last_graded_by})
+ # End Chg Turing Ira
end
if course.grading_rule.validate_score(score)
@@ -98,6 +106,13 @@ def self.give_grade(course_id, assignment_id, student_id, score, is_student_visi
unless is_student_visible.nil?
grade.is_student_visible = is_student_visible
end
+ # Beg Add Turing Ira
+ unless last_graded_by.nil?
+ if grade.last_graded_by.nil?
+ grade.last_graded_by = last_graded_by
+ end
+ end
+ # End Add Turing Ira
grading_result = grade.save
else
grading_result = false
@@ -107,33 +122,37 @@ def self.give_grade(course_id, assignment_id, student_id, score, is_student_visi
end
# To assign grades for to multiple students.
- def self.give_grades(grades)
+ # Beg Chg Turing
+ #def self.give_grades(grades)
+ def self.give_grades(grades,last_graded_by= nil)
+ #End Chg Turing
grades.each do |grade_entry|
# FIXME: error handling for update failure
- self.give_grade(grade_entry[:course_id], grade_entry[:assignment_id], grade_entry[:student_id], grade_entry[:score], grade_entry[:is_student_visible])
+ # self.give_grade(grade_entry[:course_id], grade_entry[:assignment_id], grade_entry[:student_id], grade_entry[:score], grade_entry[:is_student_visible])
+ self.give_grade(grade_entry[:course_id], grade_entry[:assignment_id], grade_entry[:student_id], grade_entry[:score], grade_entry[:is_student_visible],last_graded_by)
end
end
# To notify students about the grade that were drafted by professor till now.
- def self.mail_drafted_grade(course_id, hostname)
+ def self.mail_drafted_grade(course_id, hostname, other_email=nil)
draft_grades = Grade.find_all_by_is_student_visible_and_course_id(false, course_id)
draft_grades.each do |grade|
grade.is_student_visible = true
grade.save
unless (grade.score.blank?)
- grade.send_feedback_to_student(hostname)
+ grade.send_feedback_to_student(hostname, other_email)
end
end
end
# To send the final grade mail to students
- def self.mail_final_grade(course_id, hostname)
+ def self.mail_final_grade(course_id, hostname, other_email=nil)
final_grades = Grade.find_all_by_course_id_and_assignment_id(course_id, -1)
final_grades.each do |grade|
unless (grade.score.blank?)
grade.is_student_visible = true
grade.save
- grade.send_feedback_to_student(hostname)
+ grade.send_feedback_to_student(hostname, other_email)
end
end
end
@@ -228,7 +247,8 @@ def make_feedback_for_final_grade
end
# To send the feedback to the student.
- def send_feedback_to_student(hostname)
+ #def send_feedback_to_student(hostname) # Delete Team Turing
+ def send_feedback_to_student(hostname, other_email=nil) # Add Team Turing
if assignment_id > 0
feedback = make_feedback_for_one_assignment
else
@@ -236,6 +256,7 @@ def send_feedback_to_student(hostname)
end
url = hostname + "/courses/#{self.course.id}/student_grades"
options = {:to => self.student.email,
+ :cc => other_email, # Added Team Turing
:subject => "Grade for " + self.course.name,
:message => feedback,
:url_label => "Click here to view grade",
diff --git a/app/views/deliverables/_deliverable_listing_professor.html.erb b/app/views/deliverables/_deliverable_listing_professor.html.erb
index 12f702951..808f549a8 100644
--- a/app/views/deliverables/_deliverable_listing_professor.html.erb
+++ b/app/views/deliverables/_deliverable_listing_professor.html.erb
@@ -1,75 +1,82 @@
+
+
+
<% reset_cycle %>
<% customised_name= nomenclature_assignment_or_deliverable %>
-
-
-
- <% unless skip_course_column %>
- Course
- <% end %>
- <% if customised_name=="Deliverable" %>
- Task Number
- <% end %>
-
- Owner
- Latest <%=nomenclature_assignment_or_deliverable%>
- Graded
- Actions
-
-
-
-
- <% deliverables.each do |deliverable| %>
-
- <% unless skip_course_column %>
- <% if deliverable.course %>
- <%= h deliverable.course.name %>
- <% else %>
-
- <% end %>
- <% end %>
-
- <% if customised_name=="Deliverable" %>
- <% if deliverable.assignment.nil? %>
-
- <% else %>
- <%= h deliverable.assignment.task_number %>
- <% end %>
- <% end %>
- <%= "Team " if deliverable.is_team_deliverable? %><%= deliverable.owner_name %>
- <% latest_attachment = deliverable.attachment_versions.first %>
- <% unless latest_attachment.attachment_file_name.nil? %>
- <%= deliverable.assignment_name%> (<%= link_to "download", latest_attachment.attachment.url %>)
- <% else %>
- <%= deliverable.assignment_name %>
- <% end %>
-
-
-
- <% if deliverable.get_grade_status==:graded %>
- Yes
- <% elsif deliverable.get_grade_status==:drafted %>
- No (Draft)
- <% elsif deliverable.get_grade_status==:ungraded %>
- No
- <% end %>
-
+<% if deliverables.empty? %>
+ Hurray, nothing to do here!
+<% end %>
+<% deliverables.each do |deliverable| %>
+
+
+
+
+ <%= image_tag("/images/show_deliverable_detail.png", :size => '28x28', :style => 'margin-left: -6px', :alt => 'View details', :id => 'toggle_img') %>
+
- <% if deliverable.get_grade_status==:graded %>
-
<%= link_to 'Review Grade', deliverable %>
- <%else%>
-
<%= link_to 'Give Grade', deliverable %>
- <%end%>
+
+ <% latest_version = deliverable.attachment_versions.first %>
+
+ Task <%= deliverable.assignment.task_number %>:
+
+ <%= (deliverable.is_team_deliverable ? 'Team ' : '') %><%= deliverable.owner_name %>
+
+
+
+ <%= deliverable.assignment.name %>
+ <% unless latest_version.attachment_file_name.nil? %>
+ <%= link_to image_tag("/images/download_deliverable.png", :size => '16x16', :alt => 'Download'), latest_version.attachment.url %>
+ <% end %>
+
+
<%= deliverable.id %>
+
-
-
- <% end %>
-
+
+ <% if deliverable.get_grade_status == :graded %>
+ <%= image_tag("/images/deliverables_graded.png", :alt => 'Graded', :size => '54x54', :class => 'pull-right') %>
+ <% elsif deliverable.get_grade_status == :drafted %>
+ <%= image_tag("/images/deliverables_drafted.png", :alt => 'Drafted', :size => '54x54', :class => 'pull-right') %>
+ <% elsif deliverable.get_grade_status == :ungraded %>
+ <%= image_tag("/images/deliverables_ungraded.png", :alt => 'Ungraded', :size => '54x54', :class => 'pull-right') %>
+ <% end %>
+
+
+
+
+
+
+<% end %>
+
\ No newline at end of file
diff --git a/app/views/deliverables/_edit_student_feedback.html.erb b/app/views/deliverables/_edit_student_feedback.html.erb
old mode 100644
new mode 100755
index 7d6fdd277..f79008557
--- a/app/views/deliverables/_edit_student_feedback.html.erb
+++ b/app/views/deliverables/_edit_student_feedback.html.erb
@@ -19,101 +19,146 @@
});
});
});
-
-
-<% content_for :title, "Provide Feedback" %>
-
-<%= @course.display_for_course_page %>
-<%= render :partial=>"layouts/grade_book_sub_menu" %>
-
-<% if @deliverable.is_team_deliverable? %>
-Grade Team <%= nomenclature_assignment_or_deliverable %>: <%= @deliverable.assignment.name %>
-<% else %>
-Grade Individual <%= nomenclature_assignment_or_deliverable %>: <%= @deliverable.assignment.name %>
-<% end %>
+ var update_filter_options = function() {
+ var current_filter_options = {
+ "ungraded": ($('#filter_options_ungraded').is(':checked') ? '1' : ''),
+ "graded" : ($('#filter_options_graded').is(':checked') ? '1' : ''),
+ "drafted": ($('#filter_options_drafted').is(':checked') ? '1' : ''),
+ "is_my_teams" : ($('#filter_options_is_my_teams_yes').is(':checked') ? 'yes' : ''),
+ "assignment_id" : $("#filter_options_assignment_id").val()
+ }
+ $("#deliverable_current_filter_options").val('');
+ $("#deliverable_current_filter_options").val(JSON.stringify(current_filter_options));
+ };
+
+ // Team Turing Begin
+ var toggle_slide = function() {
+ $('.deliverable_detail').slideUp();
+ };
+
+ // Team Turing End
+
-<%= form_for @deliverable, :html => {:multipart => true}, :url => {:action => :update_feedback, :id => @deliverable} do |f| %>
- <%# render 'shared/error_messages', object: f.object %>
-
- <% if grade_type_points_or_weights == "Percentage" %>
-
- <%= "Weight: #{@deliverable.assignment.weight}%" %>
-
- <% end %>
-
- <% if @deliverable.current_attachment.blank? %>
- Deliverable: None
- <% else %>
- Deliverable: <%= link_to @deliverable.current_attachment.attachment_file_name, @deliverable.current_attachment.attachment.url %>
- <% end %>
-
-
- <%= f.label :feedback, "Feedback file to upload" %>
- <%= f.file_field :feedback %>
-
-
- <%= f.label :feedback_comment, "Feedback Comments" %>
- (<%= link_to 'View History and Feedback', @deliverable %>)
-
- <%= f.text_area :feedback_comment, :size => "70x10" %>
-
+
+
+
+
+
+
+ <%= form_for @deliverable, :remote => true, :html => {:multipart => true}, :url => {:action => :update_feedback, :id => @deliverable} do |f| %>
+
+
+
+
+
+ <% if grade_type_points_or_weights == "Percentage" %>
+
+ <%= "Weight: #{@deliverable.assignment.weight}%" %>
+
+ <% end %>
+
+
+
+
+
+
+ <% if @deliverable.is_team_deliverable? %>
+ Team Score: <%= text_field_tag "team_grade", '', :size => 4, :onchange => "apply_team_grade_to_individuals();", :title => "The 'team score' is not saved in the database. This is a convenience so that you can enter the team grade once, and it is immediately applied to each member of the team. You can then set each individual's grade" %> / <%= display_maximum_score %>
+ <% end %>
+
+
+
+ <% graded_by = @deliverable.get_graded_by %>
+
Graded by:
+ <% unless graded_by.nil? %>
+ <%= link_to graded_by.human_name, person_path(graded_by.twiki_name), :target=> '_blank'%>
+ <% end %>
+
+
+
- <% if @deliverable.get_grade_status == :drafted %>
-
- This is draft feedback
-
- <% end %>
-
- <% if @deliverable.is_team_deliverable? %>
- Team Score: <%= text_field_tag "team_grade", '', :size => 4, :onchange => "apply_team_grade_to_individuals();", :title => "The 'team score' is not saved in the database. This is a convenience so that you can enter the team grade once, and it is immediately applied to each member of the team. You can then set each individual's grade" %> / <%= display_maximum_score %>
- <%# submit_tag 'Apply grade to everyone', :type => 'button', :id => "apply_team_grade" %>
-
- <% end %>
+
-
- <% if @deliverable.is_team_deliverable? %>
+ <% if @deliverable.is_team_deliverable? %>
<% for member in @deliverable.team.members %>
- <% grade_obj = Grade.get_grade(@deliverable.course.id, @deliverable.assignment_id, member.id)%>
- <%= render :partial => "fetch_picture_and_grade", :locals => {:grade_obj => grade_obj, :member => member, :deliverable_type => "team"} %>
+ <% grade_obj = Grade.get_grade(@deliverable.course.id, @deliverable.assignment_id, member.id)%>
+ <%= render :partial => "fetch_picture_and_grade", :locals => {:grade_obj => grade_obj, :member => member, :deliverable_type => "team"} %>
<% end %>
- <% else %>
- <% grade_obj = Grade.get_grade(@deliverable.course.id, @deliverable.assignment_id, @deliverable.creator_id)%>
- <%= render :partial => "fetch_picture_and_grade", :locals => {:grade_obj => grade_obj, :member => @deliverable.creator, :deliverable_type => "individual"} %>
- <% end %>
-
-
-
-
-
-
- <%= professor_image %>
-
Only faculty can see this information
-
-
- Professor's Notes
-
-
-
- <%= f.text_area :private_note, :size => "90x10" %>
-
-
-
-
-
-
-
+ <% else %>
+ <% grade_obj = Grade.get_grade(@deliverable.course.id, @deliverable.assignment_id, @deliverable.creator_id)%>
+ <%= render :partial => "fetch_picture_and_grade", :locals => {:grade_obj => grade_obj, :member => @deliverable.creator, :deliverable_type => "individual"} %>
+ <% end %>
-
-
- <%= f.submit "Save and Email" , :name=>"submit"%>
- <%= f.submit "Save as Draft" , :name=>"draft" %>
- <%= link_to "Back to Pending List", course_deliverables_path(@deliverable.course) %>
-
-
- <% end %>
+
+
+
+
+
+
+
+
+ <% if @deliverable.get_grade_status == :drafted %>
+
+
+
+ This is a draft feedback
+
+
+
+ <% end %>
-
-
-
+
+
+
+ <%= f.label :feedback, "Upload feedback file" %>
+ <%= f.file_field :feedback %>
+
+
+
+
+
+
+ <%= f.label :feedback_comment, "Feedback Comments" %>
+ <%= link_to 'View History and Feedback', @deliverable %>
+
+ <%= f.text_area :feedback_comment, :size => "85x10" %>
+
+
+
+
+
+
+
<%= professor_image %> Professor's Notes
+ Only faculty can see this information
+
+ <%= f.text_area :private_note, :size => "80x10" %>
+
+
+
+
+
+
+
+ <%= f.submit "Save as Draft", :name => "draft", :class => "btn btn-default", :onclick => "update_filter_options();" %>
+
+
+
+
+
+ <%= f.submit "Finalize and Email", :name => "submit", :class => "btn btn-primary btn-lg", :style => "color: white; font-size: 14px;", :onclick => "toggle_slide(); update_filter_options();" %>
+ <%= check_box_tag(:send_copy_to_myself, value ="1", checked=false) %>
+ <%= label_tag(:send_copy_to_myself, "Send a copy to myself") %>
+
+
+ <%= f.hidden_field :current_filter_options, { value: '' } %>
+ <% end %>
+
diff --git a/app/views/deliverables/_fetch_picture_and_grade.html.erb b/app/views/deliverables/_fetch_picture_and_grade.html.erb
index 418147373..1de559407 100644
--- a/app/views/deliverables/_fetch_picture_and_grade.html.erb
+++ b/app/views/deliverables/_fetch_picture_and_grade.html.erb
@@ -1,20 +1,15 @@
-
-
-
-
- <%= fields_for :grade do |grade| %>
- Grade <%= grade.text_field :_for_student ,:name=>member.id,:value => ((grade_obj.nil?)?"":grade_obj.score),:size=> "3", :tabindex=>member.id%>
- <%# if deliverable_type == "individual" %>
-
- /<%= display_maximum_score %>
-
- <%# end %>
- <% end %>
-
-
-
<%= member.human_name %>
-
+
diff --git a/app/views/deliverables/_view_feedback_by_professor.html.erb b/app/views/deliverables/_view_feedback_by_professor.html.erb
index 68d5839ab..3c489d879 100644
--- a/app/views/deliverables/_view_feedback_by_professor.html.erb
+++ b/app/views/deliverables/_view_feedback_by_professor.html.erb
@@ -12,6 +12,14 @@
<% grade_obj = Grade.get_grade(@deliverable.course.id, @deliverable.assignment_id, current_user.id)%>
<% if grade_obj.try(:is_student_visible) || false %>
Score received: <%= Grade.get_grade(@deliverable.course.id, @deliverable.assignment_id, current_user.id).try(:score) %>
+
+
<% graded_by = @deliverable.get_graded_by %>
+ Graded by :
+ <% unless graded_by.nil? %>
+ <%= graded_by.human_name %>
+ <% end %>
+
+
<% end %>
Comments:
diff --git a/app/views/deliverables/filter_deliverables.js.erb b/app/views/deliverables/filter_deliverables.js.erb
new file mode 100644
index 000000000..e56d06b71
--- /dev/null
+++ b/app/views/deliverables/filter_deliverables.js.erb
@@ -0,0 +1,2 @@
+$("#grading_queue").detach();
+$("#deliverables").append($("<%= escape_javascript(render partial: 'deliverable_listing_professor', :locals => {:deliverables => @deliverables, :skip_course_column => true}) %>"))
\ No newline at end of file
diff --git a/app/views/deliverables/get_deliverables.js.erb b/app/views/deliverables/get_deliverables.js.erb
new file mode 100644
index 000000000..e56d06b71
--- /dev/null
+++ b/app/views/deliverables/get_deliverables.js.erb
@@ -0,0 +1,2 @@
+$("#grading_queue").detach();
+$("#deliverables").append($("<%= escape_javascript(render partial: 'deliverable_listing_professor', :locals => {:deliverables => @deliverables, :skip_course_column => true}) %>"))
\ No newline at end of file
diff --git a/app/views/deliverables/grading_queue_for_course.html.erb b/app/views/deliverables/grading_queue_for_course.html.erb
index fd14e8797..38ff129e7 100644
--- a/app/views/deliverables/grading_queue_for_course.html.erb
+++ b/app/views/deliverables/grading_queue_for_course.html.erb
@@ -1,95 +1,167 @@
<%= @course.display_for_course_page %>
<%= render :partial=>"layouts/grade_book_sub_menu" %>
-
Submitted <%= nomenclature_assignment_or_deliverable%>s
-
- <%= image_tag("/images/professor.jpg", :size => "50x50", :border => "0", :alt => "Only faculty can see this information", :title => "Faculty Role") %>
- Note: we will be improving this screen during the Spring 2013 semester by integrating in new student code.
-
+
+
+
-
-
-
-
Search
-
-
-
-
- <%= image_tag("/images/tablesorter/cross.png", :width => "16", :height => "16", :id => "filterClearOne", :title => 'Click to clear filter.', :alt => 'Clear Filter Image') %>
- Search by:
- Student/Team Name
- <%= nomenclature_assignment_or_deliverable %>
-
- Filter by <%= nomenclature_assignment_or_deliverable %> status:
-
Graded
-
Ungraded
-
Drafted
+ });
+
+ var filter_graded = function() {
+ $('#filter_options_graded').prop('checked', !$('#filter_options_graded').is(':checked')); // if checked, uncheck it and vice versa
+ $('#filter_options_new').submit();
+ };
+ var filter_ungraded = function() {
+ $('#filter_options_ungraded').prop('checked', !$('#filter_options_ungraded').is(':checked')); // if checked, uncheck it and vice versa
+ $('#filter_options_new').submit();
+ };
+ var filter_drafted = function() {
+ $('#filter_options_drafted').prop('checked', !$('#filter_options_drafted').is(':checked')); // if checked, uncheck it and vice versa
+ $('#filter_options_new').submit();
+ };
+ var filter_by_my_teams = function() {
+ $('#filter_options_is_my_teams_yes').prop('checked', !$('#filter_options_is_my_teams_yes').is(':checked'));
+ $('#filter_options_new').submit();
+ };
+
+ var search_deliverable = function() {
+ $('#filter_options_new').submit()
+ }
+
+ $('#search_box').keyup(function(){
+ console.log('Search');
+ $('#filter_options_new').submit();
+ });
+
+
+
+
+
+
+
+
+ <%= image_tag("/images/ajax-loader2.gif", :class => "ajax-loader", :size => "32x32") %>
+
+
+
+ <%= form_for @filter_options, :as => :filter_options, :url => {:action => "get_deliverables", :id => params[:id]}, :remote => true do |f| %>
+
+
+
+ <%= f.text_field :search_box, { :id => "search_box", :class => "form-control", :placeholder => "Search for student, team, Andrew ID..." } %>
+
+
+
+
+
+
+
+
+
+
+
+
+ <%= f.radio_button :is_my_teams, "yes", { checked: true } %> My teams
+
+
+ <%= f.radio_button :is_my_teams, "no", { checked: false } %> Everyone
+
+
+
+
+
+
+ <% end %>
+
+
+
+
+
+
+
+
+ <%= render :partial => "deliverable_listing_professor", :locals => {:deliverables => @deliverables, :skip_course_column => true} %>
+
- <%= render :partial => "deliverable_listing_professor", :locals => {:deliverables => @deliverables, :skip_course_column => true} %>
-
+
diff --git a/app/views/deliverables/show.html.erb b/app/views/deliverables/show.html.erb
old mode 100644
new mode 100755
index 539da114c..49d1264d7
--- a/app/views/deliverables/show.html.erb
+++ b/app/views/deliverables/show.html.erb
@@ -1,73 +1,104 @@
-<% if @deliverable.course %>
- <% title = "#{ nomenclature_assignment_or_deliverable } for " + @deliverable.course.name + " (" + @deliverable.assignment_name + ")" %>
-<% else %>
- <% title = "Deliverable for " + "(missing) course" + " (" + @deliverable.assignment_name + ")" %>
-<% end %>
-<% content_for :title, title %>
-
<%= title %>
-
-
-
-
- <% if @deliverable.is_team_deliverable? %>
- Team <%= nomenclature_assignment_or_deliverable%> for Team <%= @deliverable.team.name -%>
- <% else %>
- Individual <%= nomenclature_assignment_or_deliverable %> for <%= @deliverable.creator.human_name -%>
- <% end %>
+
+
+
+
+
<% if current_user.is_student %>
+
+ <% if @deliverable.course %>
+ <% title = "#{ nomenclature_assignment_or_deliverable } for " + @deliverable.course.name + " (" + @deliverable.assignment_name + ")" %>
+ <% else %>
+ <% title = "Deliverable for " + "(missing) course" + " (" + @deliverable.assignment_name + ")" %>
+ <% end %>
+ <% content_for :title, title %>
+
<%= title %>
+
+ <% if @deliverable.is_team_deliverable? %>
+ Team <%= nomenclature_assignment_or_deliverable%> for Team <%= @deliverable.team.name -%>
+ <% else %>
+ Individual <%= nomenclature_assignment_or_deliverable %> for <%= @deliverable.creator.human_name -%>
+ <% end %>
+
+
+<%# if current_user.is_student %>
+
(<%= link_to 'Edit', edit_deliverable_path(@deliverable) %>)
<% end %>
-
-
-
-
Attachment Version History
-
-
- Submission Date
- <%= nomenclature_assignment_or_deliverable %> File
- Comments
-
-
- <% if current_user.is_student %>
- >
-
- <% if current_user.is_student %>
- (<%= link_to 'Upload New Version', edit_deliverable_path(@deliverable) %>)
+
+
+
+
+
+
+
+
+
+
+
+
+ <% if current_user.is_student %>
+
+
+ <% if current_user.is_student %>
+ <%= link_to 'Upload New Version', edit_deliverable_path(@deliverable) %>
+ <% end %>
+
+
+
+ <% end %>
+
+ <% @deliverable.attachment_versions.each_with_index do |version, index| %>
+
+
+ <% if index == 0 %>
+ <%= display_timestamp(version.submission_date, :class => "latest") -%>
+ <% else %>
+ <%= display_timestamp(version.submission_date) -%>
+ <% end %>
+ <%if !@deliverable.assignment_due_date.nil? && version.submission_date > @deliverable.assignment_due_date %>
+ <%= distance_of_time_in_words(version.submission_date, @deliverable.assignment_due_date)%> late!
+ <%end%>
+
+ <%= h version.comment -%>
+
+
+ <% unless version.attachment_file_name.nil? %>
+ <%= link_to('Download', version.attachment.url, :class => 'btn btn-xs btn-primary') %>
+ <% end %>
+
+
<% end %>
-
-
-
- <% end %>
- <% @deliverable.attachment_versions.each_with_index do |version, index| %>
- >
-
- <% if index == 0 %>
- <%= display_timestamp(version.submission_date, :class => "latest") -%>
- <% else %>
- <%= display_timestamp(version.submission_date) -%>
- <% end %>
- <%if !@deliverable.assignment_due_date.nil? && version.submission_date > @deliverable.assignment_due_date %>
- (<%= distance_of_time_in_words(version.submission_date, @deliverable.assignment_due_date)%> Late!)
- <%end%>
-
-
-
-
- <% unless version.attachment_file_name.nil? %>
- <%= link_to version.attachment_file_name, version.attachment.url %>
- <% end %>
-
-
- <%= h version.comment -%>
-
-
- <% end %>
-
-
-
-
-
+
+
+
+
+
+
+
<% if current_user.is_admin? || @course.faculty.include?(current_user) %>
<%= render :partial => "edit_student_feedback", :locals => {:button_name => "Submit"} %>
@@ -83,3 +114,10 @@
+
+
+
+
+
+
+
diff --git a/app/views/deliverables/update_feedback.js.erb b/app/views/deliverables/update_feedback.js.erb
new file mode 100644
index 000000000..257957d68
--- /dev/null
+++ b/app/views/deliverables/update_feedback.js.erb
@@ -0,0 +1,2 @@
+$("#grading_queue").detach();
+$("#deliverables").append($("<%= escape_javascript(render partial: 'deliverables/deliverable_listing_professor', :locals => {:deliverables => @deliverables, :skip_course_column => true}) %>"))
\ No newline at end of file
diff --git a/app/views/grades/index.html.erb b/app/views/grades/index.html.erb
index 4ba2ece9a..854b91b12 100644
--- a/app/views/grades/index.html.erb
+++ b/app/views/grades/index.html.erb
@@ -109,12 +109,25 @@
}
function post_drafted_and_send() {
- post_grades('<%=post_drafted_and_send_path(@course)%>');
+ // Begin Add Team Turing
+ if (!confirm("Do you want to finalize draft grades and send to students?")) return;
+ if (document.getElementById("send_copy_to_myself").checked == true)
+ post_grades('<%=post_drafted_and_send_path(@course, :send_copy_to_myself => 1)%>');
+ else
+ post_grades('<%=post_drafted_and_send_path(@course, :send_copy_to_myself => 0)%>');
+ // End Add Team Turing
+// post_grades('<%#=post_drafted_and_send_path(@course)%>'); // Delete Team Turing
}
function send_final_grade() {
if (!confirm("Do you want to send all final letter grades (including draft grades) to students?")) return;
- post_grades('<%=send_final_grade_path(@course)%>');
+ // Begin Add Team Turing
+ if (document.getElementById("send_copy_to_myself").checked == true)
+ post_grades('<%=send_final_grade_path(@course, :send_copy_to_myself => 1)%>');
+ else
+ post_grades('<%=send_final_grade_path(@course, :send_copy_to_myself => 0)%>');
+ // End Add Team Turing
+// post_grades('<%#=send_final_grade_path(@course)%>'); // Delete Team Turing
}
function save() {
@@ -166,7 +179,7 @@
-
+
/>
@@ -202,32 +215,60 @@
<%= render :partial => "grade_spreadsheet", :locals => {:hide_draft_grades => false, :assignments => @assignments, :course => @course, :grades => @grades, :team_assignment => @team_assignment} %>
-
-
-
- <%= link_to image_tag("/images/ajax-loader.gif", :class => "loading", :alt => "Loading" ,:hidden=>"true", :id=>"loading") %>
- Save changes
- Mark draft grade as graded and email to students
- Notify Final Grades
-
-
-
-
+
- Please save changes
+
+
-
-
Import Grade Book
- <%= form_for :import, :url=>{:controller=>"grades", :action=>"import"}, :html => { :multipart => true } do |f| %>
- <%= f.file_field :spreadsheet -%>
- <%= submit_tag 'Import' %>
- <% end %>
-
-
-
Export Grade Book
- <%= form_for :export, :url=>{:controller=>"grades", :action=>"export"} do |f| %>
- <%= submit_tag 'Export' %>
- <% end %>
-
+
Please save changes
+
+
+
+ Save changes
+ <%= link_to image_tag("/images/ajax-loader.gif", :class => "loading", :alt => "Loading", :hidden => true, :id => "loading") %>
+
+
+
+
+
+
+
+ Send a copy to myself
+
+
+ Finalize and Email Students
+
+
+ Notify Final Grades
+
+
+
+
+
+
+
+
+
+
Import Grade Book
+ <%= form_for :import, :url=>{:controller=>"grades", :action=>"import"}, :html => { :multipart => true } do |f| %>
+ <%= f.file_field :spreadsheet -%>
+ <%= submit_tag 'Import', class: "btn btn-default" %>
+ <% end %>
+
+
+
+
+
+
+
+
Export Grade Book
+ <%= form_for :export, :url=>{:controller=>"grades", :action=>"export"} do |f| %>
+ <%= submit_tag 'Export', class: "btn btn-default" %>
+ <% end %>
+
+
+
+
+
diff --git a/app/views/layouts/cmu_sv.html.erb b/app/views/layouts/cmu_sv.html.erb
index 4153ab1f2..a7a112b1e 100644
--- a/app/views/layouts/cmu_sv.html.erb
+++ b/app/views/layouts/cmu_sv.html.erb
@@ -32,6 +32,13 @@
<%= (title = yield :title) ? title : 'Silicon Valley Campus - Carnegie Mellon University' %>
<%= yield :javascript %>
<%= yield :head %>
+
+
+ <%#= stylesheet_link_tag "/stylesheets/bootstrap.min.css", :media => "screen", :rel => "stylesheet" %>
+ <%= stylesheet_link_tag "/stylesheets/tw-bs.css", :media => "screen", :rel => "stylesheet" %>
+ <%= javascript_include_tag 'bootstrap.min.js' %>
+
+
diff --git a/config/environments/test.rb b/config/environments/test.rb
index f0800d60a..3e859e7c6 100644
--- a/config/environments/test.rb
+++ b/config/environments/test.rb
@@ -32,6 +32,8 @@
# Print deprecation notices to the stderr
config.active_support.deprecation = :stderr
+
+ config.time_zone = "UTC"
# This next line was left over from rails2 code, do we still need it?
# config.gem 'rspec-rails', :version => '>= 1.3.2', :lib => false unless File.directory?(File.join(Rails.root, 'vendor/plugins/rspec-rails'))
diff --git a/config/routes.rb b/config/routes.rb
index 323fd3f64..db31d9c2d 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -151,6 +151,9 @@
match 'courses/:course_id/team_formation_tool' => 'courses#team_formation_tool', :as => :team_formation_tool
match 'courses/:course_id/student_grades' => 'grades#student_deliverables_and_grades_for_course', :as => :course_student_grades
match 'courses/:course_id/deliverables' => 'deliverables#grading_queue_for_course', :as => :course_deliverables
+ match 'courses/:course_id/get_deliverables' => 'deliverables#get_deliverables', :as => :get_deliverables
+ match 'courses/:course_id/filter_deliverables' => 'deliverables#filter_deliverables', :as => :filter_deliverables
+ match 'courses/:course_id/update_feedback' => 'deliverables#update_feedback', :as => :update_feedback
match 'courses/:course_id/presentations' => 'presentations#index_for_course', :as => :course_presentations
diff --git a/db/migrate/20131102015649_add_last_graded_by_to_grades.rb b/db/migrate/20131102015649_add_last_graded_by_to_grades.rb
new file mode 100644
index 000000000..d1e31cb33
--- /dev/null
+++ b/db/migrate/20131102015649_add_last_graded_by_to_grades.rb
@@ -0,0 +1,9 @@
+class AddLastGradedByToGrades < ActiveRecord::Migration
+ def self.up
+ add_column :grades, :last_graded_by, :integer
+ end
+
+ def self.down
+ remove_column :grades, :last_graded_by
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 299e0009b..295fdcf9f 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,7 +11,7 @@
#
# It's strongly recommended to check this file into your version control system.
-ActiveRecord::Schema.define(:version => 20130918084505) do
+ActiveRecord::Schema.define(:version => 20131102015649) do
create_table "assignments", :force => true do |t|
t.string "name"
@@ -141,6 +141,7 @@
add_index "deliverables", ["assignment_id"], :name => "index_deliverables_on_assignment_id"
add_index "deliverables", ["course_id"], :name => "index_deliverables_on_course_id"
add_index "deliverables", ["creator_id"], :name => "index_deliverables_on_creator_id"
+ add_index "deliverables", ["team_id", "course_id", "assignment_id"], :name => "deliverables_team_id_course_id_assignment_id_idx"
add_index "deliverables", ["team_id"], :name => "index_deliverables_on_team_id"
create_table "effort_log_line_items", :force => true do |t|
@@ -184,6 +185,7 @@
end
add_index "faculty_assignments", ["course_id", "user_id"], :name => "index_faculty_assignments_on_course_id_and_person_id", :unique => true
+ add_index "faculty_assignments", ["course_id"], :name => "faculty_assignments_course_id_idx"
create_table "grades", :force => true do |t|
t.integer "course_id"
@@ -193,9 +195,11 @@
t.datetime "created_at"
t.datetime "updated_at"
t.boolean "is_student_visible"
+ t.integer "last_graded_by"
end
add_index "grades", ["assignment_id"], :name => "index_grades_on_assignment_id"
+ add_index "grades", ["course_id", "assignment_id", "student_id"], :name => "grades_course_id_assignment_id_student_id_idx"
add_index "grades", ["course_id"], :name => "index_grades_on_course_id"
add_index "grades", ["student_id"], :name => "index_grades_on_student_id"
diff --git a/logfile b/logfile
new file mode 100644
index 000000000..70cf896e0
--- /dev/null
+++ b/logfile
@@ -0,0 +1,95 @@
+LOG: database system was shut down at 2013-10-02 15:19:32 PDT
+LOG: database system is ready to accept connections
+LOG: autovacuum launcher started
+FATAL: database "mariaemiliatorino" does not exist
+ERROR: role "metorino" does not exist
+STATEMENT: CREATE DATABASE cmu_education OWNER metorino ENCODING 'UTF8';
+
+LOG: received fast shutdown request
+LOG: aborting any active transactions
+LOG: autovacuum launcher shutting down
+LOG: shutting down
+LOG: database system is shut down
+LOG: database system was shut down at 2013-10-02 16:02:46 PDT
+LOG: database system is ready to accept connections
+LOG: autovacuum launcher started
+ERROR: role "metorino" does not exist
+STATEMENT: CREATE DATABASE cmu_education OWNER metorino ENCODING 'UTF8';
+
+ERROR: role "metorino" does not exist
+STATEMENT: CREATE DATABASE cmu_education OWNER metorino ENCODING 'UTF8';
+
+LOG: received fast shutdown request
+LOG: aborting any active transactions
+LOG: autovacuum launcher shutting down
+LOG: shutting down
+LOG: database system is shut down
+LOG: database system was shut down at 2013-10-02 16:06:57 PDT
+LOG: database system is ready to accept connections
+LOG: autovacuum launcher started
+ERROR: role "metorino" does not exist
+STATEMENT: CREATE DATABASE cmu_education OWNER metorino ENCODING 'UTF8';
+
+FATAL: role "postgres" does not exist
+FATAL: database "du" does not exist
+ERROR: role "metorino" does not exist
+STATEMENT: CREATE DATABASE cmu_education OWNER metorino ENCODING 'UTF8';
+
+ERROR: role "Emi" does not exist
+STATEMENT: CREATE DATABASE cmu_education OWNER "Emi" ENCODING 'UTF8';
+
+FATAL: role "root" does not exist
+FATAL: role "root" does not exist
+FATAL: role "postgres" does not exist
+FATAL: database "cmu_education_test" does not exist
+LOG: autovacuum launcher shutting down
+LOG: received smart shutdown request
+LOG: shutting down
+LOG: database system is shut down
+LOG: database system was shut down at 2013-10-02 17:16:07 PDT
+LOG: database system is ready to accept connections
+LOG: autovacuum launcher started
+FATAL: database "cmu_education_test" does not exist
+FATAL: terminating connection due to administrator command
+LOG: autovacuum launcher shutting down
+LOG: received smart shutdown request
+LOG: shutting down
+LOG: database system is shut down
+LOG: database system was shut down at 2013-10-03 10:00:58 PDT
+LOG: database system is ready to accept connections
+LOG: autovacuum launcher started
+FATAL: database "cmu_education_test" does not exist
+LOG: automatic vacuum of table "cmu_education_test.public.users": could not (re)acquire exclusive lock for truncate scan
+LOG: database system was interrupted; last known up at 2013-10-03 10:08:16 PDT
+LOG: database system was not properly shut down; automatic recovery in progress
+LOG: record with zero length at 0/293B450
+LOG: redo is not required
+LOG: database system is ready to accept connections
+LOG: autovacuum launcher started
+FATAL: lock file "postmaster.pid" already exists
+HINT: Is another postmaster (PID 1422) running in data directory "/usr/local/var/postgres"?
+ERROR: column "SeverusSnape" does not exist at character 31
+STATEMENT: update users set twiki_name = "SeverusSnape" where id=29
+ERROR: column "SeverusSnape" does not exist at character 31
+STATEMENT: update users set twiki_name = "SeverusSnape" where id=29
+LOG: received smart shutdown request
+LOG: autovacuum launcher shutting down
+LOG: shutting down
+LOG: database system is shut down
+LOG: database system was shut down at 2013-10-16 05:51:07 PDT
+LOG: database system is ready to accept connections
+LOG: autovacuum launcher started
+FATAL: lock file "postmaster.pid" already exists
+HINT: Is another postmaster (PID 1288) running in data directory "/usr/local/var/postgres"?
+LOG: automatic vacuum of table "cmu_education_test.public.registrations": could not (re)acquire exclusive lock for truncate scan
+LOG: automatic vacuum of table "cmu_education_test.public.user_versions": could not (re)acquire exclusive lock for truncate scan
+FATAL: database "cmu_education_test" does not exist
+LOG: automatic vacuum of table "cmu_education_test.public.courses": could not (re)acquire exclusive lock for truncate scan
+LOG: automatic vacuum of table "cmu_education_test.public.registrations": could not (re)acquire exclusive lock for truncate scan
+LOG: automatic vacuum of table "cmu_education_test.public.users": could not (re)acquire exclusive lock for truncate scan
+LOG: automatic vacuum of table "cmu_education_test.public.delayed_jobs": could not (re)acquire exclusive lock for truncate scan
+LOG: automatic vacuum of table "cmu_education_test.public.registrations": could not (re)acquire exclusive lock for truncate scan
+LOG: automatic vacuum of table "cmu_education_test.public.teams": could not (re)acquire exclusive lock for truncate scan
+LOG: automatic vacuum of table "cmu_education_test.public.users": could not (re)acquire exclusive lock for truncate scan
+FATAL: database "cmu_education_test" does not exist
+FATAL: database "cmu_education_test" does not exist
diff --git a/public/cmu_sv_standard_v4/screen.css b/public/cmu_sv_standard_v4/screen.css
index 7d278d4ef..62d47c812 100644
--- a/public/cmu_sv_standard_v4/screen.css
+++ b/public/cmu_sv_standard_v4/screen.css
@@ -132,9 +132,11 @@ h1#titleHead {
text-transform:uppercase;
color:#ffffff;
padding:8px 0px 5px 9px;
- position:relative;
+ position:relative;
margin-left:244px;
width:739px;
+ box-sizing: content-box; /* Team Turing: Overriding Bootstraps box-sizing: border-box set via universal selector */
+ -moz-box-sizing: content-box;
}
#topnav ul {
display:inline-block;
@@ -227,6 +229,8 @@ h1#titleHead {
overflow:hidden;
padding:10px 10px 1px 11px;
margin: 0px 8px -10px 0px;
+ box-sizing: content-box; /* Team Turing: Overriding Bootstraps box-sizing: border-box set via universal selector */
+ -moz-box-sizing: content-box;
}
#logo img {
padding-bottom:10px;
diff --git a/public/images/ajax-loader2.gif b/public/images/ajax-loader2.gif
new file mode 100644
index 000000000..80e02021e
Binary files /dev/null and b/public/images/ajax-loader2.gif differ
diff --git a/public/images/deliverables_drafted.png b/public/images/deliverables_drafted.png
new file mode 100755
index 000000000..d8ad596a0
Binary files /dev/null and b/public/images/deliverables_drafted.png differ
diff --git a/public/images/deliverables_graded.png b/public/images/deliverables_graded.png
new file mode 100755
index 000000000..fe9f59f43
Binary files /dev/null and b/public/images/deliverables_graded.png differ
diff --git a/public/images/deliverables_ungraded.png b/public/images/deliverables_ungraded.png
new file mode 100755
index 000000000..80667138f
Binary files /dev/null and b/public/images/deliverables_ungraded.png differ
diff --git a/public/images/download_deliverable.png b/public/images/download_deliverable.png
new file mode 100644
index 000000000..56da0e61f
Binary files /dev/null and b/public/images/download_deliverable.png differ
diff --git a/public/images/hide_deliverable_detail.png b/public/images/hide_deliverable_detail.png
new file mode 100644
index 000000000..3b137f3b7
Binary files /dev/null and b/public/images/hide_deliverable_detail.png differ
diff --git a/public/images/show_deliverable_detail.png b/public/images/show_deliverable_detail.png
new file mode 100644
index 000000000..05a27220a
Binary files /dev/null and b/public/images/show_deliverable_detail.png differ
diff --git a/public/javascripts/bootstrap.min.js b/public/javascripts/bootstrap.min.js
new file mode 100755
index 000000000..1765631f4
--- /dev/null
+++ b/public/javascripts/bootstrap.min.js
@@ -0,0 +1,6 @@
+/**
+* bootstrap.js v3.0.0 by @fat and @mdo
+* Copyright 2013 Twitter Inc.
+* http://www.apache.org/licenses/LICENSE-2.0
+*/
+if(!jQuery)throw new Error("Bootstrap requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]}}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(window.jQuery),+function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function c(){f.trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),"string"==typeof b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d)};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.is("input")?"val":"html",e=c.data();a+="Text",e.resetText||c.data("resetText",c[d]()),c[d](e[a]||this.options[a]),setTimeout(function(){"loadingText"==a?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.closest('[data-toggle="buttons"]');if(a.length){var b=this.$element.find("input").prop("checked",!this.$element.hasClass("active")).trigger("change");"radio"===b.prop("type")&&a.find(".active").removeClass("active")}this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof c&&c;e||d.data("bs.button",e=new b(this,f)),"toggle"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(window.jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}this.sliding=!0,f&&this.pause();var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});if(!e.hasClass("active")){if(this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(j),j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid")},0)}).emulateTransitionEnd(600)}else{if(this.$element.trigger(j),j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return f&&this.cycle(),this}};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?(this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350),void 0):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(window.jQuery),+function(a){"use strict";function b(){a(d).remove(),a(e).each(function(b){var d=c(a(this));d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown")),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown"))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){if("ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('
').insertAfter(a(this)).on("click",b),f.trigger(d=a.Event("show.bs.dropdown")),d.isDefaultPrevented())return;f.toggleClass("open").trigger("shown.bs.dropdown"),e.focus()}return!1}},f.prototype.keydown=function(b){if(/(38|40|27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var f=c(d),g=f.hasClass("open");if(!g||g&&27==b.keyCode)return 27==b.which&&f.find(e).focus(),d.click();var h=a("[role=menu] li:not(.divider):visible a",f);if(h.length){var i=h.index(h.filter(":focus"));38==b.keyCode&&i>0&&i--,40==b.keyCode&&i ').appendTo(document.body),this.$element.on("click.dismiss.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),d&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;d?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()):b&&b()};var c=a.fn.modal;a.fn.modal=function(c,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},b.DEFAULTS,e.data(),"object"==typeof c&&c);f||e.data("bs.modal",f=new b(this,g)),"string"==typeof c?f[c](d):g.show&&f.show(d)})},a.fn.modal.Constructor=b,a.fn.modal.noConflict=function(){return a.fn.modal=c,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(b){var c=a(this),d=c.attr("href"),e=a(c.attr("data-target")||d&&d.replace(/.*(?=#[^\s]+$)/,"")),f=e.data("modal")?"toggle":a.extend({remote:!/#/.test(d)&&d},e.data(),c.data());b.preventDefault(),e.modal(f,this).one("hide",function(){c.is(":visible")&&c.focus()})}),a(document).on("show.bs.modal",".modal",function(){a(document.body).addClass("modal-open")}).on("hidden.bs.modal",".modal",function(){a(document.body).removeClass("modal-open")})}(window.jQuery),+function(a){"use strict";var b=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};b.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},b.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focus",i="hover"==g?"mouseleave":"blur";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},b.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},b.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show),void 0):c.show()},b.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide),void 0):c.hide()},b.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){if(this.$element.trigger(b),b.isDefaultPrevented())return;var c=this.tip();this.setContent(),this.options.animation&&c.addClass("fade");var d="function"==typeof this.options.placement?this.options.placement.call(this,c[0],this.$element[0]):this.options.placement,e=/\s?auto?\s?/i,f=e.test(d);f&&(d=d.replace(e,"")||"top"),c.detach().css({top:0,left:0,display:"block"}).addClass(d),this.options.container?c.appendTo(this.options.container):c.insertAfter(this.$element);var g=this.getPosition(),h=c[0].offsetWidth,i=c[0].offsetHeight;if(f){var j=this.$element.parent(),k=d,l=document.documentElement.scrollTop||document.body.scrollTop,m="body"==this.options.container?window.innerWidth:j.outerWidth(),n="body"==this.options.container?window.innerHeight:j.outerHeight(),o="body"==this.options.container?0:j.offset().left;d="bottom"==d&&g.top+g.height+i-l>n?"top":"top"==d&&g.top-l-i<0?"bottom":"right"==d&&g.right+h>m?"left":"left"==d&&g.left-h
'}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(window.jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(c).is("body")?a(window):a(c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#\w/.test(e)&&a(e);return f&&f.length&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parents(".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(window.jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.attr("data-target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top()),"function"==typeof h&&(h=f.bottom());var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;this.affixed!==i&&(this.unpin&&this.$element.css("top",""),this.affixed=i,this.unpin="bottom"==i?e.top-d:null,this.$element.removeClass(b.RESET).addClass("affix"+(i?"-"+i:"")),"bottom"==i&&this.$element.offset({top:document.body.offsetHeight-h-this.$element.height()}))}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(window.jQuery);
\ No newline at end of file
diff --git a/public/javascripts/collapse.js b/public/javascripts/collapse.js
new file mode 100755
index 000000000..92cc0bc76
--- /dev/null
+++ b/public/javascripts/collapse.js
@@ -0,0 +1,179 @@
+/* ========================================================================
+ * Bootstrap: collapse.js v3.0.0
+ * http://twbs.github.com/bootstrap/javascript.html#collapse
+ * ========================================================================
+ * Copyright 2012 Twitter, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ======================================================================== */
+
+
++function ($) { "use strict";
+
+ // COLLAPSE PUBLIC CLASS DEFINITION
+ // ================================
+
+ var Collapse = function (element, options) {
+ this.$element = $(element)
+ this.options = $.extend({}, Collapse.DEFAULTS, options)
+ this.transitioning = null
+
+ if (this.options.parent) this.$parent = $(this.options.parent)
+ if (this.options.toggle) this.toggle()
+ }
+
+ Collapse.DEFAULTS = {
+ toggle: true
+ }
+
+ Collapse.prototype.dimension = function () {
+ var hasWidth = this.$element.hasClass('width')
+ return hasWidth ? 'width' : 'height'
+ }
+
+ Collapse.prototype.show = function () {
+ if (this.transitioning || this.$element.hasClass('in')) return
+
+ var startEvent = $.Event('show.bs.collapse')
+ this.$element.trigger(startEvent)
+ if (startEvent.isDefaultPrevented()) return
+
+ var actives = this.$parent && this.$parent.find('> .panel > .in')
+
+ if (actives && actives.length) {
+ var hasData = actives.data('bs.collapse')
+ if (hasData && hasData.transitioning) return
+ actives.collapse('hide')
+ hasData || actives.data('bs.collapse', null)
+ }
+
+ var dimension = this.dimension()
+
+ this.$element
+ .removeClass('collapse')
+ .addClass('collapsing')
+ [dimension](0)
+
+ this.transitioning = 1
+
+ var complete = function () {
+ this.$element
+ .removeClass('collapsing')
+ .addClass('in')
+ [dimension]('auto')
+ this.transitioning = 0
+ this.$element.trigger('shown.bs.collapse')
+ }
+
+ if (!$.support.transition) return complete.call(this)
+
+ var scrollSize = $.camelCase(['scroll', dimension].join('-'))
+
+ this.$element
+ .one($.support.transition.end, $.proxy(complete, this))
+ .emulateTransitionEnd(350)
+ [dimension](this.$element[0][scrollSize])
+ }
+
+ Collapse.prototype.hide = function () {
+ if (this.transitioning || !this.$element.hasClass('in')) return
+
+ var startEvent = $.Event('hide.bs.collapse')
+ this.$element.trigger(startEvent)
+ if (startEvent.isDefaultPrevented()) return
+
+ var dimension = this.dimension()
+
+ this.$element
+ [dimension](this.$element[dimension]())
+ [0].offsetHeight
+
+ this.$element
+ .addClass('collapsing')
+ .removeClass('collapse')
+ .removeClass('in')
+
+ this.transitioning = 1
+
+ var complete = function () {
+ this.transitioning = 0
+ this.$element
+ .trigger('hidden.bs.collapse')
+ .removeClass('collapsing')
+ .addClass('collapse')
+ }
+
+ if (!$.support.transition) return complete.call(this)
+
+ this.$element
+ [dimension](0)
+ .one($.support.transition.end, $.proxy(complete, this))
+ .emulateTransitionEnd(350)
+ }
+
+ Collapse.prototype.toggle = function () {
+ this[this.$element.hasClass('in') ? 'hide' : 'show']()
+ }
+
+
+ // COLLAPSE PLUGIN DEFINITION
+ // ==========================
+
+ var old = $.fn.collapse
+
+ $.fn.collapse = function (option) {
+ return this.each(function () {
+ var $this = $(this)
+ var data = $this.data('bs.collapse')
+ var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)
+
+ if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
+ if (typeof option == 'string') data[option]()
+ })
+ }
+
+ $.fn.collapse.Constructor = Collapse
+
+
+ // COLLAPSE NO CONFLICT
+ // ====================
+
+ $.fn.collapse.noConflict = function () {
+ $.fn.collapse = old
+ return this
+ }
+
+
+ // COLLAPSE DATA-API
+ // =================
+
+ $(document).on('click.bs.collapse.data-api', '[data-toggle=collapse]', function (e) {
+ var $this = $(this), href
+ var target = $this.attr('data-target')
+ || e.preventDefault()
+ || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
+ var $target = $(target)
+ var data = $target.data('bs.collapse')
+ var option = data ? 'toggle' : $this.data()
+ var parent = $this.attr('data-parent')
+ var $parent = parent && $(parent)
+
+ if (!data || !data.transitioning) {
+ if ($parent) $parent.find('[data-toggle=collapse][data-parent="' + parent + '"]').not($this).addClass('collapsed')
+ $this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
+ }
+
+ $target.collapse(option)
+ })
+
+}(window.jQuery);
diff --git a/public/javascripts/transition.js b/public/javascripts/transition.js
new file mode 100755
index 000000000..e8f318beb
--- /dev/null
+++ b/public/javascripts/transition.js
@@ -0,0 +1,56 @@
+/* ========================================================================
+ * Bootstrap: transition.js v3.0.0
+ * http://twbs.github.com/bootstrap/javascript.html#transitions
+ * ========================================================================
+ * Copyright 2013 Twitter, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ======================================================================== */
+
+
++function ($) { "use strict";
+
+ // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
+ // ============================================================
+
+ function transitionEnd() {
+ var el = document.createElement('bootstrap')
+
+ var transEndEventNames = {
+ 'WebkitTransition' : 'webkitTransitionEnd'
+ , 'MozTransition' : 'transitionend'
+ , 'OTransition' : 'oTransitionEnd otransitionend'
+ , 'transition' : 'transitionend'
+ }
+
+ for (var name in transEndEventNames) {
+ if (el.style[name] !== undefined) {
+ return { end: transEndEventNames[name] }
+ }
+ }
+ }
+
+ // http://blog.alexmaccaw.com/css-transitions
+ $.fn.emulateTransitionEnd = function (duration) {
+ var called = false, $el = this
+ $(this).one($.support.transition.end, function () { called = true })
+ var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
+ setTimeout(callback, duration)
+ return this
+ }
+
+ $(function () {
+ $.support.transition = transitionEnd()
+ })
+
+}(window.jQuery);
diff --git a/public/stylesheets/bootstrap.min.css b/public/stylesheets/bootstrap.min.css
new file mode 100755
index 000000000..a553c4f5e
--- /dev/null
+++ b/public/stylesheets/bootstrap.min.css
@@ -0,0 +1,9 @@
+/*!
+ * Bootstrap v3.0.0
+ *
+ * Copyright 2013 Twitter, Inc
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Designed and built with all the love in the world by @mdo and @fat.
+ *//*! normalize.css v2.1.0 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{margin:.67em 0;font-size:2em}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}hr{height:0;-moz-box-sizing:content-box;box-sizing:content-box}mark{color:#000;background:#ff0}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid #c0c0c0}legend{padding:0;border:0}button,input,select,textarea{margin:0;font-family:inherit;font-size:100%}button,input{line-height:normal}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{padding:0;box-sizing:border-box}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:2cm .5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.428571429;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}button,input,select[multiple],textarea{background-image:none}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}img{vertical-align:middle}.img-responsive{display:block;height:auto;max-width:100%}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;height:auto;max-width:100%;padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16.099999999999998px;font-weight:200;line-height:1.4}@media(min-width:768px){.lead{font-size:21px}}small{font-size:85%}cite{font-style:normal}.text-muted{color:#999}.text-primary{color:#428bca}.text-warning{color:#c09853}.text-danger{color:#b94a48}.text-success{color:#468847}.text-info{color:#3a87ad}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{margin-top:20px;margin-bottom:10px}h4,h5,h6{margin-top:10px;margin-bottom:10px}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}h1 small,.h1 small{font-size:24px}h2 small,.h2 small{font-size:18px}h3 small,.h3 small,h4 small,.h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-bottom:20px}dt,dd{line-height:1.428571429}dt{font-weight:bold}dd{margin-left:0}@media(min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.dl-horizontal dd:before,.dl-horizontal dd:after{display:table;content:" "}.dl-horizontal dd:after{clear:both}.dl-horizontal dd:before,.dl-horizontal dd:after{display:table;content:" "}.dl-horizontal dd:after{clear:both}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{font-size:17.5px;font-weight:300;line-height:1.25}blockquote p:last-child{margin-bottom:0}blockquote small{display:block;line-height:1.428571429;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:1.428571429}code,pre{font-family:Monaco,Menlo,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;white-space:nowrap;background-color:#f9f2f4;border-radius:4px}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.container:before,.container:after{display:table;content:" "}.container:after{clear:both}.container:before,.container:after{display:table;content:" "}.container:after{clear:both}.row{margin-right:-15px;margin-left:-15px}.row:before,.row:after{display:table;content:" "}.row:after{clear:both}.row:before,.row:after{display:table;content:" "}.row:after{clear:both}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11{float:left}.col-xs-1{width:8.333333333333332%}.col-xs-2{width:16.666666666666664%}.col-xs-3{width:25%}.col-xs-4{width:33.33333333333333%}.col-xs-5{width:41.66666666666667%}.col-xs-6{width:50%}.col-xs-7{width:58.333333333333336%}.col-xs-8{width:66.66666666666666%}.col-xs-9{width:75%}.col-xs-10{width:83.33333333333334%}.col-xs-11{width:91.66666666666666%}.col-xs-12{width:100%}@media(min-width:768px){.container{max-width:750px}.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11{float:left}.col-sm-1{width:8.333333333333332%}.col-sm-2{width:16.666666666666664%}.col-sm-3{width:25%}.col-sm-4{width:33.33333333333333%}.col-sm-5{width:41.66666666666667%}.col-sm-6{width:50%}.col-sm-7{width:58.333333333333336%}.col-sm-8{width:66.66666666666666%}.col-sm-9{width:75%}.col-sm-10{width:83.33333333333334%}.col-sm-11{width:91.66666666666666%}.col-sm-12{width:100%}.col-sm-push-1{left:8.333333333333332%}.col-sm-push-2{left:16.666666666666664%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.33333333333333%}.col-sm-push-5{left:41.66666666666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.333333333333336%}.col-sm-push-8{left:66.66666666666666%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.33333333333334%}.col-sm-push-11{left:91.66666666666666%}.col-sm-pull-1{right:8.333333333333332%}.col-sm-pull-2{right:16.666666666666664%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.33333333333333%}.col-sm-pull-5{right:41.66666666666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.333333333333336%}.col-sm-pull-8{right:66.66666666666666%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.33333333333334%}.col-sm-pull-11{right:91.66666666666666%}.col-sm-offset-1{margin-left:8.333333333333332%}.col-sm-offset-2{margin-left:16.666666666666664%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333333333333%}.col-sm-offset-5{margin-left:41.66666666666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.333333333333336%}.col-sm-offset-8{margin-left:66.66666666666666%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333333333334%}.col-sm-offset-11{margin-left:91.66666666666666%}}@media(min-width:992px){.container{max-width:970px}.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11{float:left}.col-md-1{width:8.333333333333332%}.col-md-2{width:16.666666666666664%}.col-md-3{width:25%}.col-md-4{width:33.33333333333333%}.col-md-5{width:41.66666666666667%}.col-md-6{width:50%}.col-md-7{width:58.333333333333336%}.col-md-8{width:66.66666666666666%}.col-md-9{width:75%}.col-md-10{width:83.33333333333334%}.col-md-11{width:91.66666666666666%}.col-md-12{width:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.333333333333332%}.col-md-push-2{left:16.666666666666664%}.col-md-push-3{left:25%}.col-md-push-4{left:33.33333333333333%}.col-md-push-5{left:41.66666666666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.333333333333336%}.col-md-push-8{left:66.66666666666666%}.col-md-push-9{left:75%}.col-md-push-10{left:83.33333333333334%}.col-md-push-11{left:91.66666666666666%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.333333333333332%}.col-md-pull-2{right:16.666666666666664%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.33333333333333%}.col-md-pull-5{right:41.66666666666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.333333333333336%}.col-md-pull-8{right:66.66666666666666%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.33333333333334%}.col-md-pull-11{right:91.66666666666666%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.333333333333332%}.col-md-offset-2{margin-left:16.666666666666664%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333333333333%}.col-md-offset-5{margin-left:41.66666666666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.333333333333336%}.col-md-offset-8{margin-left:66.66666666666666%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333333333334%}.col-md-offset-11{margin-left:91.66666666666666%}}@media(min-width:1200px){.container{max-width:1170px}.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11{float:left}.col-lg-1{width:8.333333333333332%}.col-lg-2{width:16.666666666666664%}.col-lg-3{width:25%}.col-lg-4{width:33.33333333333333%}.col-lg-5{width:41.66666666666667%}.col-lg-6{width:50%}.col-lg-7{width:58.333333333333336%}.col-lg-8{width:66.66666666666666%}.col-lg-9{width:75%}.col-lg-10{width:83.33333333333334%}.col-lg-11{width:91.66666666666666%}.col-lg-12{width:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.333333333333332%}.col-lg-push-2{left:16.666666666666664%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.33333333333333%}.col-lg-push-5{left:41.66666666666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.333333333333336%}.col-lg-push-8{left:66.66666666666666%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.33333333333334%}.col-lg-push-11{left:91.66666666666666%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.333333333333332%}.col-lg-pull-2{right:16.666666666666664%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.33333333333333%}.col-lg-pull-5{right:41.66666666666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.333333333333336%}.col-lg-pull-8{right:66.66666666666666%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.33333333333334%}.col-lg-pull-11{right:91.66666666666666%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.333333333333332%}.col-lg-offset-2{margin-left:16.666666666666664%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333333333333%}.col-lg-offset-5{margin-left:41.66666666666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.333333333333336%}.col-lg-offset-8{margin-left:66.66666666666666%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333333333334%}.col-lg-offset-11{margin-left:91.66666666666666%}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table thead>tr>th,.table tbody>tr>th,.table tfoot>tr>th,.table thead>tr>td,.table tbody>tr>td,.table tfoot>tr>td{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.table thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table caption+thead tr:first-child th,.table colgroup+thead tr:first-child th,.table thead:first-child tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed thead>tr>th,.table-condensed tbody>tr>th,.table-condensed tfoot>tr>th,.table-condensed thead>tr>td,.table-condensed tbody>tr>td,.table-condensed tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*="col-"]{display:table-column;float:none}table td[class*="col-"],table th[class*="col-"]{display:table-cell;float:none}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8;border-color:#d6e9c6}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td{background-color:#d0e9c6;border-color:#c9e2b3}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede;border-color:#eed3d7}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td{background-color:#ebcccc;border-color:#e6c1c7}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3;border-color:#fbeed5}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td{background-color:#faf2cc;border-color:#f8e5be}@media(max-width:768px){.table-responsive{width:100%;margin-bottom:15px;overflow-x:scroll;overflow-y:hidden;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0;background-color:#fff}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>thead>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>thead>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}select[multiple],select[size]{height:auto}select optgroup{font-family:inherit;font-size:inherit;font-style:inherit}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{height:auto}.form-control:-moz-placeholder{color:#999}.form-control::-moz-placeholder{color:#999}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle;background-color:#fff;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}textarea.form-control{height:auto}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:20px;padding-left:20px;margin-top:10px;margin-bottom:10px;vertical-align:middle}.radio label,.checkbox label{display:inline;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:normal;vertical-align:middle;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm{height:auto}.input-lg{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:45px;line-height:45px}textarea.input-lg{height:auto}.has-warning .help-block,.has-warning .control-label{color:#c09853}.has-warning .form-control{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.has-warning .input-group-addon{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.has-error .help-block,.has-error .control-label{color:#b94a48}.has-error .form-control{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.has-error .input-group-addon{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.has-success .help-block,.has-success .control-label{color:#468847}.has-success .form-control{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.has-success .input-group-addon{color:#468847;background-color:#dff0d8;border-color:#468847}.form-control-static{padding-top:7px;margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media(min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block}.form-inline .radio,.form-inline .checkbox{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:none;margin-left:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}.form-horizontal .form-group:before,.form-horizontal .form-group:after{display:table;content:" "}.form-horizontal .form-group:after{clear:both}.form-horizontal .form-group:before,.form-horizontal .form-group:after{display:table;content:" "}.form-horizontal .form-group:after{clear:both}@media(min-width:768px){.form-horizontal .control-label{text-align:right}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:normal;line-height:1.428571429;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;border:1px solid transparent;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-link{font-weight:normal;color:#428bca;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-xs{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs{padding:1px 5px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';-webkit-font-smoothing:antialiased;font-style:normal;font-weight:normal;line-height:1}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-print:before{content:"\e045"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-briefcase:before{content:"\1f4bc"}.glyphicon-calendar:before{content:"\1f4c5"}.glyphicon-pushpin:before{content:"\1f4cc"}.glyphicon-paperclip:before{content:"\1f4ce"}.glyphicon-camera:before{content:"\1f4f7"}.glyphicon-lock:before{content:"\1f512"}.glyphicon-bell:before{content:"\1f514"}.glyphicon-bookmark:before{content:"\1f516"}.glyphicon-fire:before{content:"\1f525"}.glyphicon-wrench:before{content:"\1f527"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid #000;border-right:4px solid transparent;border-bottom:0 dotted;border-left:4px solid transparent;content:""}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.428571429;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{color:#fff;text-decoration:none;background-color:#428bca}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#428bca;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0 dotted;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media(min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}}.btn-default .caret{border-top-color:#333}.btn-primary .caret,.btn-success .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret{border-top-color:#fff}.dropup .btn-default .caret{border-bottom-color:#333}.dropup .btn-primary .caret,.dropup .btn-success .caret,.dropup .btn-warning .caret,.dropup .btn-danger .caret,.dropup .btn-info .caret{border-bottom-color:#fff}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar:before,.btn-toolbar:after{display:table;content:" "}.btn-toolbar:after{clear:both}.btn-toolbar:before,.btn-toolbar:after{display:table;content:" "}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group{float:left}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group-xs>.btn{padding:5px 10px;padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{display:table;content:" "}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{display:table;content:" "}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-right-radius:0;border-bottom-left-radius:4px;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child>.btn:last-child,.btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;border-collapse:separate;table-layout:fixed}.btn-group-justified .btn{display:table-cell;float:none;width:1%}[data-toggle="buttons"]>.btn>input[type="radio"],[data-toggle="buttons"]>.btn>input[type="checkbox"]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group.col{float:none;padding-right:0;padding-left:0}.input-group .form-control{width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:45px;line-height:45px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:normal;line-height:1;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-4px}.input-group-btn>.btn:hover,.input-group-btn>.btn:active{z-index:2}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav:before,.nav:after{display:table;content:" "}.nav:after{clear:both}.nav:before,.nav:after{display:table;content:" "}.nav:after{clear:both}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center}@media(min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}}.nav-tabs.nav-justified>li>a{margin-right:0;border-bottom:1px solid #ddd}.nav-tabs.nav-justified>.active>a{border-bottom-color:#fff}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:5px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center}@media(min-width:768px){.nav-justified>li{display:table-cell;width:1%}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-bottom:1px solid #ddd}.nav-tabs-justified>.active>a{border-bottom-color:#fff}.tabbable:before,.tabbable:after{display:table;content:" "}.tabbable:after{clear:both}.tabbable:before,.tabbable:after{display:table;content:" "}.tabbable:after{clear:both}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.nav .caret{border-top-color:#428bca;border-bottom-color:#428bca}.nav a:hover .caret{border-top-color:#2a6496;border-bottom-color:#2a6496}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;z-index:1000;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar:before,.navbar:after{display:table;content:" "}.navbar:after{clear:both}.navbar:before,.navbar:after{display:table;content:" "}.navbar:after{clear:both}@media(min-width:768px){.navbar{border-radius:4px}}.navbar-header:before,.navbar-header:after{display:table;content:" "}.navbar-header:after{clear:both}.navbar-header:before,.navbar-header:after{display:table;content:" "}.navbar-header:after{clear:both}@media(min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;padding-right:15px;padding-left:15px;overflow-x:visible;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse:before,.navbar-collapse:after{display:table;content:" "}.navbar-collapse:after{clear:both}.navbar-collapse:before,.navbar-collapse:after{display:table;content:" "}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media(min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-collapse .navbar-nav.navbar-left:first-child{margin-left:-15px}.navbar-collapse .navbar-nav.navbar-right:last-child{margin-right:-15px}.navbar-collapse .navbar-text:last-child{margin-right:0}}.container>.navbar-header,.container>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media(min-width:768px){.container>.navbar-header,.container>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{border-width:0 0 1px}@media(min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;border-width:0 0 1px}@media(min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;z-index:1030}.navbar-fixed-bottom{bottom:0;margin-bottom:0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media(min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius:4px}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media(min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media(max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media(min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}@media(min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}@media(min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{float:none;margin-left:0}}@media(max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media(min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-nav.pull-right>li>.dropdown-menu,.navbar-nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-text{float:left;margin-top:15px;margin-bottom:15px}@media(min-width:768px){.navbar-text{margin-right:15px;margin-left:15px}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e6e6e6}.navbar-default .navbar-nav>.dropdown>a:hover .caret,.navbar-default .navbar-nav>.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.open>a .caret,.navbar-default .navbar-nav>.open>a:hover .caret,.navbar-default .navbar-nav>.open>a:focus .caret{border-top-color:#555;border-bottom-color:#555}.navbar-default .navbar-nav>.dropdown>a .caret{border-top-color:#777;border-bottom-color:#777}@media(max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.dropdown>a:hover .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-nav>.dropdown>a .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .navbar-nav>.open>a .caret,.navbar-inverse .navbar-nav>.open>a:hover .caret,.navbar-inverse .navbar-nav>.open>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}@media(max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.428571429;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{background-color:#eee}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;cursor:default;background-color:#428bca;border-color:#428bca}.pagination>.disabled>span,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager:before,.pager:after{display:table;content:" "}.pager:after{clear:both}.pager:before,.pager:after{display:table;content:" "}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:#808080}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#999;border-radius:10px}.badge:empty{display:none}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.btn .badge{position:relative;top:-1px}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;font-size:21px;font-weight:200;line-height:2.1428571435;color:inherit;background-color:#eee}.jumbotron h1{line-height:1;color:inherit}.jumbotron p{line-height:1.4}.container .jumbotron{border-radius:6px}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-right:60px;padding-left:60px}.jumbotron h1{font-size:63px}}.thumbnail{display:inline-block;display:block;height:auto;max-width:100%;padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img{display:block;height:auto;max-width:100%}a.thumbnail:hover,a.thumbnail:focus{border-color:#428bca}.thumbnail>img{margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#356635}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#2d6987}.alert-warning{color:#c09853;background-color:#fcf8e3;border-color:#fbeed5}.alert-warning hr{border-top-color:#f8e5be}.alert-warning .alert-link{color:#a47e3c}.alert-danger{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger hr{border-top-color:#e6c1c7}.alert-danger .alert-link{color:#953b39}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-body:before,.panel-body:after{display:table;content:" "}.panel-body:after{clear:both}.panel-body:before,.panel-body:after{display:table;content:" "}.panel-body:after{clear:both}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0}.panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel>.list-group .list-group-item:last-child{border-bottom:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table{margin-bottom:0}.panel>.panel-body+.table{border-top:1px solid #ddd}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-title{margin-top:0;margin-bottom:0;font-size:16px}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-group .panel{margin-bottom:0;overflow:hidden;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-warning{border-color:#fbeed5}.panel-warning>.panel-heading{color:#c09853;background-color:#fcf8e3;border-color:#fbeed5}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#fbeed5}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#fbeed5}.panel-danger{border-color:#eed3d7}.panel-danger>.panel-heading{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#eed3d7}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#eed3d7}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}body.modal-open,.modal-open .navbar-fixed-top,.modal-open .navbar-fixed-bottom{margin-right:15px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;display:none;overflow:auto;overflow-y:scroll}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{z-index:1050;width:auto;padding:10px;margin-right:auto;margin-left:auto}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{min-height:16.428571429px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.428571429}.modal-body{position:relative;padding:20px}.modal-footer{padding:19px 20px 20px;margin-top:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:before,.modal-footer:after{display:table;content:" "}.modal-footer:after{clear:both}.modal-footer:before,.modal-footer:after{display:table;content:" "}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media screen and (min-width:768px){.modal-dialog{right:auto;left:50%;width:600px;padding-top:30px;padding-bottom:30px}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}}.tooltip{position:absolute;z-index:1030;display:block;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-bottom-color:#000;border-width:0 5px 5px}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0;content:" "}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0;content:" "}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0;content:" "}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0;content:" "}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;height:auto;max-width:100%;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6);opacity:.5;filter:alpha(opacity=50)}.carousel-control.left{background-image:-webkit-gradient(linear,0 top,100% top,from(rgba(0,0,0,0.5)),to(rgba(0,0,0,0.0001)));background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,0.5) 0),color-stop(rgba(0,0,0,0.0001) 100%));background-image:-moz-linear-gradient(left,rgba(0,0,0,0.5) 0,rgba(0,0,0,0.0001) 100%);background-image:linear-gradient(to right,rgba(0,0,0,0.5) 0,rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000',endColorstr='#00000000',GradientType=1)}.carousel-control.right{right:0;left:auto;background-image:-webkit-gradient(linear,0 top,100% top,from(rgba(0,0,0,0.0001)),to(rgba(0,0,0,0.5)));background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,0.0001) 0),color-stop(rgba(0,0,0,0.5) 100%));background-image:-moz-linear-gradient(left,rgba(0,0,0,0.0001) 0,rgba(0,0,0,0.5) 100%);background-image:linear-gradient(to right,rgba(0,0,0,0.0001) 0,rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000',endColorstr='#80000000',GradientType=1)}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;left:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after{display:table;content:" "}.clearfix:after{clear:both}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.affix{position:fixed}@-ms-viewport{width:device-width}@media screen and (max-width:400px){@-ms-viewport{width:320px}}.hidden{display:none!important;visibility:hidden!important}.visible-xs{display:none!important}tr.visible-xs{display:none!important}th.visible-xs,td.visible-xs{display:none!important}@media(max-width:767px){.visible-xs{display:block!important}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-xs.visible-sm{display:block!important}tr.visible-xs.visible-sm{display:table-row!important}th.visible-xs.visible-sm,td.visible-xs.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-xs.visible-md{display:block!important}tr.visible-xs.visible-md{display:table-row!important}th.visible-xs.visible-md,td.visible-xs.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-xs.visible-lg{display:block!important}tr.visible-xs.visible-lg{display:table-row!important}th.visible-xs.visible-lg,td.visible-xs.visible-lg{display:table-cell!important}}.visible-sm{display:none!important}tr.visible-sm{display:none!important}th.visible-sm,td.visible-sm{display:none!important}@media(max-width:767px){.visible-sm.visible-xs{display:block!important}tr.visible-sm.visible-xs{display:table-row!important}th.visible-sm.visible-xs,td.visible-sm.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-sm{display:block!important}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-sm.visible-md{display:block!important}tr.visible-sm.visible-md{display:table-row!important}th.visible-sm.visible-md,td.visible-sm.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-sm.visible-lg{display:block!important}tr.visible-sm.visible-lg{display:table-row!important}th.visible-sm.visible-lg,td.visible-sm.visible-lg{display:table-cell!important}}.visible-md{display:none!important}tr.visible-md{display:none!important}th.visible-md,td.visible-md{display:none!important}@media(max-width:767px){.visible-md.visible-xs{display:block!important}tr.visible-md.visible-xs{display:table-row!important}th.visible-md.visible-xs,td.visible-md.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-md.visible-sm{display:block!important}tr.visible-md.visible-sm{display:table-row!important}th.visible-md.visible-sm,td.visible-md.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-md{display:block!important}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-md.visible-lg{display:block!important}tr.visible-md.visible-lg{display:table-row!important}th.visible-md.visible-lg,td.visible-md.visible-lg{display:table-cell!important}}.visible-lg{display:none!important}tr.visible-lg{display:none!important}th.visible-lg,td.visible-lg{display:none!important}@media(max-width:767px){.visible-lg.visible-xs{display:block!important}tr.visible-lg.visible-xs{display:table-row!important}th.visible-lg.visible-xs,td.visible-lg.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-lg.visible-sm{display:block!important}tr.visible-lg.visible-sm{display:table-row!important}th.visible-lg.visible-sm,td.visible-lg.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-lg.visible-md{display:block!important}tr.visible-lg.visible-md{display:table-row!important}th.visible-lg.visible-md,td.visible-lg.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-lg{display:block!important}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}.hidden-xs{display:block!important}tr.hidden-xs{display:table-row!important}th.hidden-xs,td.hidden-xs{display:table-cell!important}@media(max-width:767px){.hidden-xs{display:none!important}tr.hidden-xs{display:none!important}th.hidden-xs,td.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-xs.hidden-sm{display:none!important}tr.hidden-xs.hidden-sm{display:none!important}th.hidden-xs.hidden-sm,td.hidden-xs.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-xs.hidden-md{display:none!important}tr.hidden-xs.hidden-md{display:none!important}th.hidden-xs.hidden-md,td.hidden-xs.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-xs.hidden-lg{display:none!important}tr.hidden-xs.hidden-lg{display:none!important}th.hidden-xs.hidden-lg,td.hidden-xs.hidden-lg{display:none!important}}.hidden-sm{display:block!important}tr.hidden-sm{display:table-row!important}th.hidden-sm,td.hidden-sm{display:table-cell!important}@media(max-width:767px){.hidden-sm.hidden-xs{display:none!important}tr.hidden-sm.hidden-xs{display:none!important}th.hidden-sm.hidden-xs,td.hidden-sm.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}tr.hidden-sm{display:none!important}th.hidden-sm,td.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-sm.hidden-md{display:none!important}tr.hidden-sm.hidden-md{display:none!important}th.hidden-sm.hidden-md,td.hidden-sm.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-sm.hidden-lg{display:none!important}tr.hidden-sm.hidden-lg{display:none!important}th.hidden-sm.hidden-lg,td.hidden-sm.hidden-lg{display:none!important}}.hidden-md{display:block!important}tr.hidden-md{display:table-row!important}th.hidden-md,td.hidden-md{display:table-cell!important}@media(max-width:767px){.hidden-md.hidden-xs{display:none!important}tr.hidden-md.hidden-xs{display:none!important}th.hidden-md.hidden-xs,td.hidden-md.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-md.hidden-sm{display:none!important}tr.hidden-md.hidden-sm{display:none!important}th.hidden-md.hidden-sm,td.hidden-md.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}tr.hidden-md{display:none!important}th.hidden-md,td.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-md.hidden-lg{display:none!important}tr.hidden-md.hidden-lg{display:none!important}th.hidden-md.hidden-lg,td.hidden-md.hidden-lg{display:none!important}}.hidden-lg{display:block!important}tr.hidden-lg{display:table-row!important}th.hidden-lg,td.hidden-lg{display:table-cell!important}@media(max-width:767px){.hidden-lg.hidden-xs{display:none!important}tr.hidden-lg.hidden-xs{display:none!important}th.hidden-lg.hidden-xs,td.hidden-lg.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-lg.hidden-sm{display:none!important}tr.hidden-lg.hidden-sm{display:none!important}th.hidden-lg.hidden-sm,td.hidden-lg.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-lg.hidden-md{display:none!important}tr.hidden-lg.hidden-md{display:none!important}th.hidden-lg.hidden-md,td.hidden-lg.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-lg{display:none!important}tr.hidden-lg{display:none!important}th.hidden-lg,td.hidden-lg{display:none!important}}.visible-print{display:none!important}tr.visible-print{display:none!important}th.visible-print,td.visible-print{display:none!important}@media print{.visible-print{display:block!important}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}.hidden-print{display:none!important}tr.hidden-print{display:none!important}th.hidden-print,td.hidden-print{display:none!important}}
\ No newline at end of file
diff --git a/public/stylesheets/tw-bs.css b/public/stylesheets/tw-bs.css
new file mode 100644
index 000000000..b37011e11
--- /dev/null
+++ b/public/stylesheets/tw-bs.css
@@ -0,0 +1,5851 @@
+.tw-bs {
+ /*!
+ * Bootstrap v3.0.0
+ *
+ * Copyright 2013 Twitter, Inc
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Designed and built with all the love in the world by @mdo and @fat.
+ */
+ /*! normalize.css v2.1.0 | MIT License | git.io/normalize */
+}
+.tw-bs article,
+.tw-bs aside,
+.tw-bs details,
+.tw-bs figcaption,
+.tw-bs figure,
+.tw-bs footer,
+.tw-bs header,
+.tw-bs hgroup,
+.tw-bs main,
+.tw-bs nav,
+.tw-bs section,
+.tw-bs summary {
+ display: block;
+}
+.tw-bs audio,
+.tw-bs canvas,
+.tw-bs video {
+ display: inline-block;
+}
+.tw-bs audio:not([controls]) {
+ display: none;
+ height: 0;
+}
+.tw-bs [hidden] {
+ display: none;
+}
+.tw-bs html {
+ font-family: sans-serif;
+ -webkit-text-size-adjust: 100%;
+ -ms-text-size-adjust: 100%;
+}
+.tw-bs body {
+ margin: 0;
+}
+.tw-bs a:focus {
+ outline: thin dotted;
+}
+.tw-bs a:active,
+.tw-bs a:hover {
+ outline: 0;
+}
+.tw-bs h1 {
+ font-size: 2em;
+ margin: 0.67em 0;
+}
+.tw-bs abbr[title] {
+ border-bottom: 1px dotted;
+}
+.tw-bs b,
+.tw-bs strong {
+ font-weight: bold;
+}
+.tw-bs dfn {
+ font-style: italic;
+}
+.tw-bs hr {
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+ height: 0;
+}
+.tw-bs mark {
+ background: #ff0;
+ color: #000;
+}
+.tw-bs code,
+.tw-bs kbd,
+.tw-bs pre,
+.tw-bs samp {
+ font-family: monospace, serif;
+ font-size: 1em;
+}
+.tw-bs pre {
+ white-space: pre-wrap;
+}
+.tw-bs q {
+ quotes: "\201C" "\201D" "\2018" "\2019";
+}
+.tw-bs small {
+ font-size: 80%;
+}
+.tw-bs sub,
+.tw-bs sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+.tw-bs sup {
+ top: -0.5em;
+}
+.tw-bs sub {
+ bottom: -0.25em;
+}
+.tw-bs img {
+ border: 0;
+}
+.tw-bs svg:not(:root) {
+ overflow: hidden;
+}
+.tw-bs figure {
+ margin: 0;
+}
+.tw-bs fieldset {
+ border: 1px solid #c0c0c0;
+ margin: 0 2px;
+ padding: 0.35em 0.625em 0.75em;
+}
+.tw-bs legend {
+ border: 0;
+ padding: 0;
+}
+.tw-bs button,
+.tw-bs input,
+.tw-bs select,
+.tw-bs textarea {
+ font-family: inherit;
+ font-size: 100%;
+ margin: 0;
+}
+.tw-bs button,
+.tw-bs input {
+ line-height: normal;
+}
+.tw-bs button,
+.tw-bs select {
+ text-transform: none;
+}
+.tw-bs button,
+.tw-bs html input[type="button"],
+.tw-bs input[type="reset"],
+.tw-bs input[type="submit"] {
+ -webkit-appearance: button;
+ cursor: pointer;
+}
+.tw-bs button[disabled],
+.tw-bs html input[disabled] {
+ cursor: default;
+}
+.tw-bs input[type="checkbox"],
+.tw-bs input[type="radio"] {
+ box-sizing: border-box;
+ padding: 0;
+}
+.tw-bs input[type="search"] {
+ -webkit-appearance: textfield;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+ box-sizing: content-box;
+}
+.tw-bs input[type="search"]::-webkit-search-cancel-button,
+.tw-bs input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+.tw-bs button::-moz-focus-inner,
+.tw-bs input::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+}
+.tw-bs textarea {
+ overflow: auto;
+ vertical-align: top;
+}
+.tw-bs table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+@media print {
+ .tw-bs * {
+ text-shadow: none !important;
+ color: #000 !important;
+ background: transparent !important;
+ box-shadow: none !important;
+ }
+ .tw-bs a,
+ .tw-bs a:visited {
+ text-decoration: underline;
+ }
+ .tw-bs a[href]:after {
+ content: " (" attr(href) ")";
+ }
+ .tw-bs abbr[title]:after {
+ content: " (" attr(title) ")";
+ }
+ .tw-bs .ir a:after,
+ .tw-bs a[href^="javascript:"]:after,
+ .tw-bs a[href^="#"]:after {
+ content: "";
+ }
+ .tw-bs pre,
+ .tw-bs blockquote {
+ border: 1px solid #999;
+ page-break-inside: avoid;
+ }
+ .tw-bs thead {
+ display: table-header-group;
+ }
+ .tw-bs tr,
+ .tw-bs img {
+ page-break-inside: avoid;
+ }
+ .tw-bs img {
+ max-width: 100% !important;
+ }
+ @page {
+ margin: 2cm .5cm;
+ }
+ .tw-bs p,
+ .tw-bs h2,
+ .tw-bs h3 {
+ orphans: 3;
+ widows: 3;
+ }
+ .tw-bs h2,
+ .tw-bs h3 {
+ page-break-after: avoid;
+ }
+ .tw-bs .navbar {
+ display: none;
+ }
+ .tw-bs .table td,
+ .tw-bs .table th {
+ background-color: #fff !important;
+ }
+ .tw-bs .btn > .caret,
+ .tw-bs .dropup > .btn > .caret {
+ border-top-color: #000 !important;
+ }
+ .tw-bs .label {
+ border: 1px solid #000;
+ }
+ .tw-bs .table {
+ border-collapse: collapse !important;
+ }
+ .tw-bs .table-bordered th,
+ .tw-bs .table-bordered td {
+ border: 1px solid #ddd !important;
+ }
+}
+.tw-bs *,
+.tw-bs *:before,
+.tw-bs *:after {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.tw-bs html {
+ font-size: 62.5%;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+}
+.tw-bs body {
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-size: 14px;
+ line-height: 1.428571429;
+ color: #333333;
+ background-color: #ffffff;
+}
+.tw-bs input,
+.tw-bs button,
+.tw-bs select,
+.tw-bs textarea {
+ font-family: inherit;
+ font-size: inherit;
+ line-height: inherit;
+}
+.tw-bs button,
+.tw-bs input,
+.tw-bs select[multiple],
+.tw-bs textarea {
+ background-image: none;
+}
+.tw-bs a {
+ color: #428bca;
+ text-decoration: none;
+}
+.tw-bs a:hover,
+.tw-bs a:focus {
+ color: #2a6496;
+ text-decoration: underline;
+}
+.tw-bs a:focus {
+ outline: thin dotted #333;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+.tw-bs img {
+ vertical-align: middle;
+}
+.tw-bs .img-responsive {
+ display: block;
+ max-width: 100%;
+ height: auto;
+}
+.tw-bs .img-rounded {
+ border-radius: 6px;
+}
+.tw-bs .img-thumbnail {
+ padding: 4px;
+ line-height: 1.428571429;
+ background-color: #ffffff;
+ border: 1px solid #dddddd;
+ border-radius: 4px;
+ -webkit-transition: all 0.2s ease-in-out;
+ transition: all 0.2s ease-in-out;
+ display: inline-block;
+ max-width: 100%;
+ height: auto;
+}
+.tw-bs .img-circle {
+ border-radius: 50%;
+}
+.tw-bs hr {
+ margin-top: 20px;
+ margin-bottom: 20px;
+ border: 0;
+ border-top: 1px solid #eeeeee;
+}
+.tw-bs .sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ margin: -1px;
+ padding: 0;
+ overflow: hidden;
+ clip: rect(0 0 0 0);
+ border: 0;
+}
+.tw-bs p {
+ margin: 0 0 10px;
+}
+.tw-bs .lead {
+ margin-bottom: 20px;
+ font-size: 16.099999999999998px;
+ font-weight: 200;
+ line-height: 1.4;
+}
+@media (min-width: 768px) {
+ .tw-bs .lead {
+ font-size: 21px;
+ }
+}
+.tw-bs small {
+ font-size: 85%;
+}
+.tw-bs cite {
+ font-style: normal;
+}
+.tw-bs .text-muted {
+ color: #999999;
+}
+.tw-bs .text-primary {
+ color: #428bca;
+}
+.tw-bs .text-warning {
+ color: #c09853;
+}
+.tw-bs .text-danger {
+ color: #b94a48;
+}
+.tw-bs .text-success {
+ color: #468847;
+}
+.tw-bs .text-info {
+ color: #3a87ad;
+}
+.tw-bs .text-left {
+ text-align: left;
+}
+.tw-bs .text-right {
+ text-align: right;
+}
+.tw-bs .text-center {
+ text-align: center;
+}
+.tw-bs h1,
+.tw-bs h2,
+.tw-bs h3,
+.tw-bs h4,
+.tw-bs h5,
+.tw-bs h6,
+.tw-bs .h1,
+.tw-bs .h2,
+.tw-bs .h3,
+.tw-bs .h4,
+.tw-bs .h5,
+.tw-bs .h6 {
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-weight: 500;
+ line-height: 1.1;
+}
+.tw-bs h1 small,
+.tw-bs h2 small,
+.tw-bs h3 small,
+.tw-bs h4 small,
+.tw-bs h5 small,
+.tw-bs h6 small,
+.tw-bs .h1 small,
+.tw-bs .h2 small,
+.tw-bs .h3 small,
+.tw-bs .h4 small,
+.tw-bs .h5 small,
+.tw-bs .h6 small {
+ font-weight: normal;
+ line-height: 1;
+ color: #999999;
+}
+.tw-bs h1,
+.tw-bs h2,
+.tw-bs h3 {
+ margin-top: 20px;
+ margin-bottom: 10px;
+}
+.tw-bs h4,
+.tw-bs h5,
+.tw-bs h6 {
+ margin-top: 10px;
+ margin-bottom: 10px;
+}
+.tw-bs h1,
+.tw-bs .h1 {
+ font-size: 36px;
+}
+.tw-bs h2,
+.tw-bs .h2 {
+ font-size: 30px;
+}
+.tw-bs h3,
+.tw-bs .h3 {
+ font-size: 24px;
+}
+.tw-bs h4,
+.tw-bs .h4 {
+ font-size: 18px;
+}
+.tw-bs h5,
+.tw-bs .h5 {
+ font-size: 14px;
+}
+.tw-bs h6,
+.tw-bs .h6 {
+ font-size: 12px;
+}
+.tw-bs h1 small,
+.tw-bs .h1 small {
+ font-size: 24px;
+}
+.tw-bs h2 small,
+.tw-bs .h2 small {
+ font-size: 18px;
+}
+.tw-bs h3 small,
+.tw-bs .h3 small,
+.tw-bs h4 small,
+.tw-bs .h4 small {
+ font-size: 14px;
+}
+.tw-bs .page-header {
+ padding-bottom: 9px;
+ margin: 40px 0 20px;
+ border-bottom: 1px solid #eeeeee;
+}
+.tw-bs ul,
+.tw-bs ol {
+ margin-top: 0;
+ margin-bottom: 10px;
+}
+.tw-bs ul ul,
+.tw-bs ol ul,
+.tw-bs ul ol,
+.tw-bs ol ol {
+ margin-bottom: 0;
+}
+.tw-bs .list-unstyled {
+ padding-left: 0;
+ list-style: none;
+}
+.tw-bs .list-inline {
+ padding-left: 0;
+ list-style: none;
+}
+.tw-bs .list-inline > li {
+ display: inline-block;
+ padding-left: 5px;
+ padding-right: 5px;
+}
+.tw-bs dl {
+ margin-bottom: 20px;
+}
+.tw-bs dt,
+.tw-bs dd {
+ line-height: 1.428571429;
+}
+.tw-bs dt {
+ font-weight: bold;
+}
+.tw-bs dd {
+ margin-left: 0;
+}
+@media (min-width: 768px) {
+ .tw-bs .dl-horizontal dt {
+ float: left;
+ width: 160px;
+ clear: left;
+ text-align: right;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+ .tw-bs .dl-horizontal dd {
+ margin-left: 180px;
+ }
+ .tw-bs .dl-horizontal dd:before,
+ .tw-bs .dl-horizontal dd:after {
+ content: " ";
+ /* 1 */
+ display: table;
+ /* 2 */
+ }
+ .tw-bs .dl-horizontal dd:after {
+ clear: both;
+ }
+ .tw-bs .dl-horizontal dd:before,
+ .tw-bs .dl-horizontal dd:after {
+ content: " ";
+ /* 1 */
+ display: table;
+ /* 2 */
+ }
+ .tw-bs .dl-horizontal dd:after {
+ clear: both;
+ }
+}
+.tw-bs abbr[title],
+.tw-bs abbr[data-original-title] {
+ cursor: help;
+ border-bottom: 1px dotted #999999;
+}
+.tw-bs abbr.initialism {
+ font-size: 90%;
+ text-transform: uppercase;
+}
+.tw-bs blockquote {
+ padding: 10px 20px;
+ margin: 0 0 20px;
+ border-left: 5px solid #eeeeee;
+}
+.tw-bs blockquote p {
+ font-size: 17.5px;
+ font-weight: 300;
+ line-height: 1.25;
+}
+.tw-bs blockquote p:last-child {
+ margin-bottom: 0;
+}
+.tw-bs blockquote small {
+ display: block;
+ line-height: 1.428571429;
+ color: #999999;
+}
+.tw-bs blockquote small:before {
+ content: '\2014 \00A0';
+}
+.tw-bs blockquote.pull-right {
+ padding-right: 15px;
+ padding-left: 0;
+ border-right: 5px solid #eeeeee;
+ border-left: 0;
+}
+.tw-bs blockquote.pull-right p,
+.tw-bs blockquote.pull-right small {
+ text-align: right;
+}
+.tw-bs blockquote.pull-right small:before {
+ content: '';
+}
+.tw-bs blockquote.pull-right small:after {
+ content: '\00A0 \2014';
+}
+.tw-bs q:before,
+.tw-bs q:after,
+.tw-bs blockquote:before,
+.tw-bs blockquote:after {
+ content: "";
+}
+.tw-bs address {
+ display: block;
+ margin-bottom: 20px;
+ font-style: normal;
+ line-height: 1.428571429;
+}
+.tw-bs code,
+.tw-bs pre {
+ font-family: Monaco, Menlo, Consolas, "Courier New", monospace;
+}
+.tw-bs code {
+ padding: 2px 4px;
+ font-size: 90%;
+ color: #c7254e;
+ background-color: #f9f2f4;
+ white-space: nowrap;
+ border-radius: 4px;
+}
+.tw-bs pre {
+ display: block;
+ padding: 9.5px;
+ margin: 0 0 10px;
+ font-size: 13px;
+ line-height: 1.428571429;
+ word-break: break-all;
+ word-wrap: break-word;
+ color: #333333;
+ background-color: #f5f5f5;
+ border: 1px solid #cccccc;
+ border-radius: 4px;
+}
+.tw-bs pre.prettyprint {
+ margin-bottom: 20px;
+}
+.tw-bs pre code {
+ padding: 0;
+ font-size: inherit;
+ color: inherit;
+ white-space: pre-wrap;
+ background-color: transparent;
+ border: 0;
+}
+.tw-bs .pre-scrollable {
+ max-height: 340px;
+ overflow-y: scroll;
+}
+.tw-bs .container {
+ margin-right: auto;
+ margin-left: auto;
+ padding-left: 15px;
+ padding-right: 15px;
+}
+.tw-bs .container:before,
+.tw-bs .container:after {
+ content: " ";
+ /* 1 */
+ display: table;
+ /* 2 */
+}
+.tw-bs .container:after {
+ clear: both;
+}
+.tw-bs .container:before,
+.tw-bs .container:after {
+ content: " ";
+ /* 1 */
+ display: table;
+ /* 2 */
+}
+.tw-bs .container:after {
+ clear: both;
+}
+.tw-bs .row {
+ margin-left: -15px;
+ margin-right: -15px;
+}
+.tw-bs .row:before,
+.tw-bs .row:after {
+ content: " ";
+ /* 1 */
+ display: table;
+ /* 2 */
+}
+.tw-bs .row:after {
+ clear: both;
+}
+.tw-bs .row:before,
+.tw-bs .row:after {
+ content: " ";
+ /* 1 */
+ display: table;
+ /* 2 */
+}
+.tw-bs .row:after {
+ clear: both;
+}
+.tw-bs .col-xs-1,
+.tw-bs .col-xs-2,
+.tw-bs .col-xs-3,
+.tw-bs .col-xs-4,
+.tw-bs .col-xs-5,
+.tw-bs .col-xs-6,
+.tw-bs .col-xs-7,
+.tw-bs .col-xs-8,
+.tw-bs .col-xs-9,
+.tw-bs .col-xs-10,
+.tw-bs .col-xs-11,
+.tw-bs .col-xs-12,
+.tw-bs .col-sm-1,
+.tw-bs .col-sm-2,
+.tw-bs .col-sm-3,
+.tw-bs .col-sm-4,
+.tw-bs .col-sm-5,
+.tw-bs .col-sm-6,
+.tw-bs .col-sm-7,
+.tw-bs .col-sm-8,
+.tw-bs .col-sm-9,
+.tw-bs .col-sm-10,
+.tw-bs .col-sm-11,
+.tw-bs .col-sm-12,
+.tw-bs .col-md-1,
+.tw-bs .col-md-2,
+.tw-bs .col-md-3,
+.tw-bs .col-md-4,
+.tw-bs .col-md-5,
+.tw-bs .col-md-6,
+.tw-bs .col-md-7,
+.tw-bs .col-md-8,
+.tw-bs .col-md-9,
+.tw-bs .col-md-10,
+.tw-bs .col-md-11,
+.tw-bs .col-md-12,
+.tw-bs .col-lg-1,
+.tw-bs .col-lg-2,
+.tw-bs .col-lg-3,
+.tw-bs .col-lg-4,
+.tw-bs .col-lg-5,
+.tw-bs .col-lg-6,
+.tw-bs .col-lg-7,
+.tw-bs .col-lg-8,
+.tw-bs .col-lg-9,
+.tw-bs .col-lg-10,
+.tw-bs .col-lg-11,
+.tw-bs .col-lg-12 {
+ position: relative;
+ min-height: 1px;
+ padding-left: 15px;
+ padding-right: 15px;
+}
+.tw-bs .col-xs-1,
+.tw-bs .col-xs-2,
+.tw-bs .col-xs-3,
+.tw-bs .col-xs-4,
+.tw-bs .col-xs-5,
+.tw-bs .col-xs-6,
+.tw-bs .col-xs-7,
+.tw-bs .col-xs-8,
+.tw-bs .col-xs-9,
+.tw-bs .col-xs-10,
+.tw-bs .col-xs-11 {
+ float: left;
+}
+.tw-bs .col-xs-1 {
+ width: 8.333333333333332%;
+}
+.tw-bs .col-xs-2 {
+ width: 16.666666666666664%;
+}
+.tw-bs .col-xs-3 {
+ width: 25%;
+}
+.tw-bs .col-xs-4 {
+ width: 33.33333333333333%;
+}
+.tw-bs .col-xs-5 {
+ width: 41.66666666666667%;
+}
+.tw-bs .col-xs-6 {
+ width: 50%;
+}
+.tw-bs .col-xs-7 {
+ width: 58.333333333333336%;
+}
+.tw-bs .col-xs-8 {
+ width: 66.66666666666666%;
+}
+.tw-bs .col-xs-9 {
+ width: 75%;
+}
+.tw-bs .col-xs-10 {
+ width: 83.33333333333334%;
+}
+.tw-bs .col-xs-11 {
+ width: 91.66666666666666%;
+}
+.tw-bs .col-xs-12 {
+ width: 100%;
+}
+@media (min-width: 768px) {
+ .tw-bs .container {
+ max-width: 750px;
+ }
+ .tw-bs .col-sm-1,
+ .tw-bs .col-sm-2,
+ .tw-bs .col-sm-3,
+ .tw-bs .col-sm-4,
+ .tw-bs .col-sm-5,
+ .tw-bs .col-sm-6,
+ .tw-bs .col-sm-7,
+ .tw-bs .col-sm-8,
+ .tw-bs .col-sm-9,
+ .tw-bs .col-sm-10,
+ .tw-bs .col-sm-11 {
+ float: left;
+ }
+ .tw-bs .col-sm-1 {
+ width: 8.333333333333332%;
+ }
+ .tw-bs .col-sm-2 {
+ width: 16.666666666666664%;
+ }
+ .tw-bs .col-sm-3 {
+ width: 25%;
+ }
+ .tw-bs .col-sm-4 {
+ width: 33.33333333333333%;
+ }
+ .tw-bs .col-sm-5 {
+ width: 41.66666666666667%;
+ }
+ .tw-bs .col-sm-6 {
+ width: 50%;
+ }
+ .tw-bs .col-sm-7 {
+ width: 58.333333333333336%;
+ }
+ .tw-bs .col-sm-8 {
+ width: 66.66666666666666%;
+ }
+ .tw-bs .col-sm-9 {
+ width: 75%;
+ }
+ .tw-bs .col-sm-10 {
+ width: 83.33333333333334%;
+ }
+ .tw-bs .col-sm-11 {
+ width: 91.66666666666666%;
+ }
+ .tw-bs .col-sm-12 {
+ width: 100%;
+ }
+ .tw-bs .col-sm-push-1 {
+ left: 8.333333333333332%;
+ }
+ .tw-bs .col-sm-push-2 {
+ left: 16.666666666666664%;
+ }
+ .tw-bs .col-sm-push-3 {
+ left: 25%;
+ }
+ .tw-bs .col-sm-push-4 {
+ left: 33.33333333333333%;
+ }
+ .tw-bs .col-sm-push-5 {
+ left: 41.66666666666667%;
+ }
+ .tw-bs .col-sm-push-6 {
+ left: 50%;
+ }
+ .tw-bs .col-sm-push-7 {
+ left: 58.333333333333336%;
+ }
+ .tw-bs .col-sm-push-8 {
+ left: 66.66666666666666%;
+ }
+ .tw-bs .col-sm-push-9 {
+ left: 75%;
+ }
+ .tw-bs .col-sm-push-10 {
+ left: 83.33333333333334%;
+ }
+ .tw-bs .col-sm-push-11 {
+ left: 91.66666666666666%;
+ }
+ .tw-bs .col-sm-pull-1 {
+ right: 8.333333333333332%;
+ }
+ .tw-bs .col-sm-pull-2 {
+ right: 16.666666666666664%;
+ }
+ .tw-bs .col-sm-pull-3 {
+ right: 25%;
+ }
+ .tw-bs .col-sm-pull-4 {
+ right: 33.33333333333333%;
+ }
+ .tw-bs .col-sm-pull-5 {
+ right: 41.66666666666667%;
+ }
+ .tw-bs .col-sm-pull-6 {
+ right: 50%;
+ }
+ .tw-bs .col-sm-pull-7 {
+ right: 58.333333333333336%;
+ }
+ .tw-bs .col-sm-pull-8 {
+ right: 66.66666666666666%;
+ }
+ .tw-bs .col-sm-pull-9 {
+ right: 75%;
+ }
+ .tw-bs .col-sm-pull-10 {
+ right: 83.33333333333334%;
+ }
+ .tw-bs .col-sm-pull-11 {
+ right: 91.66666666666666%;
+ }
+ .tw-bs .col-sm-offset-1 {
+ margin-left: 8.333333333333332%;
+ }
+ .tw-bs .col-sm-offset-2 {
+ margin-left: 16.666666666666664%;
+ }
+ .tw-bs .col-sm-offset-3 {
+ margin-left: 25%;
+ }
+ .tw-bs .col-sm-offset-4 {
+ margin-left: 33.33333333333333%;
+ }
+ .tw-bs .col-sm-offset-5 {
+ margin-left: 41.66666666666667%;
+ }
+ .tw-bs .col-sm-offset-6 {
+ margin-left: 50%;
+ }
+ .tw-bs .col-sm-offset-7 {
+ margin-left: 58.333333333333336%;
+ }
+ .tw-bs .col-sm-offset-8 {
+ margin-left: 66.66666666666666%;
+ }
+ .tw-bs .col-sm-offset-9 {
+ margin-left: 75%;
+ }
+ .tw-bs .col-sm-offset-10 {
+ margin-left: 83.33333333333334%;
+ }
+ .tw-bs .col-sm-offset-11 {
+ margin-left: 91.66666666666666%;
+ }
+}
+@media (min-width: 992px) {
+ .tw-bs .container {
+ max-width: 970px;
+ }
+ .tw-bs .col-md-1,
+ .tw-bs .col-md-2,
+ .tw-bs .col-md-3,
+ .tw-bs .col-md-4,
+ .tw-bs .col-md-5,
+ .tw-bs .col-md-6,
+ .tw-bs .col-md-7,
+ .tw-bs .col-md-8,
+ .tw-bs .col-md-9,
+ .tw-bs .col-md-10,
+ .tw-bs .col-md-11 {
+ float: left;
+ }
+ .tw-bs .col-md-1 {
+ width: 8.333333333333332%;
+ }
+ .tw-bs .col-md-2 {
+ width: 16.666666666666664%;
+ }
+ .tw-bs .col-md-3 {
+ width: 25%;
+ }
+ .tw-bs .col-md-4 {
+ width: 33.33333333333333%;
+ }
+ .tw-bs .col-md-5 {
+ width: 41.66666666666667%;
+ }
+ .tw-bs .col-md-6 {
+ width: 50%;
+ }
+ .tw-bs .col-md-7 {
+ width: 58.333333333333336%;
+ }
+ .tw-bs .col-md-8 {
+ width: 66.66666666666666%;
+ }
+ .tw-bs .col-md-9 {
+ width: 75%;
+ }
+ .tw-bs .col-md-10 {
+ width: 83.33333333333334%;
+ }
+ .tw-bs .col-md-11 {
+ width: 91.66666666666666%;
+ }
+ .tw-bs .col-md-12 {
+ width: 100%;
+ }
+ .tw-bs .col-md-push-0 {
+ left: auto;
+ }
+ .tw-bs .col-md-push-1 {
+ left: 8.333333333333332%;
+ }
+ .tw-bs .col-md-push-2 {
+ left: 16.666666666666664%;
+ }
+ .tw-bs .col-md-push-3 {
+ left: 25%;
+ }
+ .tw-bs .col-md-push-4 {
+ left: 33.33333333333333%;
+ }
+ .tw-bs .col-md-push-5 {
+ left: 41.66666666666667%;
+ }
+ .tw-bs .col-md-push-6 {
+ left: 50%;
+ }
+ .tw-bs .col-md-push-7 {
+ left: 58.333333333333336%;
+ }
+ .tw-bs .col-md-push-8 {
+ left: 66.66666666666666%;
+ }
+ .tw-bs .col-md-push-9 {
+ left: 75%;
+ }
+ .tw-bs .col-md-push-10 {
+ left: 83.33333333333334%;
+ }
+ .tw-bs .col-md-push-11 {
+ left: 91.66666666666666%;
+ }
+ .tw-bs .col-md-pull-0 {
+ right: auto;
+ }
+ .tw-bs .col-md-pull-1 {
+ right: 8.333333333333332%;
+ }
+ .tw-bs .col-md-pull-2 {
+ right: 16.666666666666664%;
+ }
+ .tw-bs .col-md-pull-3 {
+ right: 25%;
+ }
+ .tw-bs .col-md-pull-4 {
+ right: 33.33333333333333%;
+ }
+ .tw-bs .col-md-pull-5 {
+ right: 41.66666666666667%;
+ }
+ .tw-bs .col-md-pull-6 {
+ right: 50%;
+ }
+ .tw-bs .col-md-pull-7 {
+ right: 58.333333333333336%;
+ }
+ .tw-bs .col-md-pull-8 {
+ right: 66.66666666666666%;
+ }
+ .tw-bs .col-md-pull-9 {
+ right: 75%;
+ }
+ .tw-bs .col-md-pull-10 {
+ right: 83.33333333333334%;
+ }
+ .tw-bs .col-md-pull-11 {
+ right: 91.66666666666666%;
+ }
+ .tw-bs .col-md-offset-0 {
+ margin-left: 0;
+ }
+ .tw-bs .col-md-offset-1 {
+ margin-left: 8.333333333333332%;
+ }
+ .tw-bs .col-md-offset-2 {
+ margin-left: 16.666666666666664%;
+ }
+ .tw-bs .col-md-offset-3 {
+ margin-left: 25%;
+ }
+ .tw-bs .col-md-offset-4 {
+ margin-left: 33.33333333333333%;
+ }
+ .tw-bs .col-md-offset-5 {
+ margin-left: 41.66666666666667%;
+ }
+ .tw-bs .col-md-offset-6 {
+ margin-left: 50%;
+ }
+ .tw-bs .col-md-offset-7 {
+ margin-left: 58.333333333333336%;
+ }
+ .tw-bs .col-md-offset-8 {
+ margin-left: 66.66666666666666%;
+ }
+ .tw-bs .col-md-offset-9 {
+ margin-left: 75%;
+ }
+ .tw-bs .col-md-offset-10 {
+ margin-left: 83.33333333333334%;
+ }
+ .tw-bs .col-md-offset-11 {
+ margin-left: 91.66666666666666%;
+ }
+}
+@media (min-width: 1200px) {
+ .tw-bs .container {
+ max-width: 1170px;
+ }
+ .tw-bs .col-lg-1,
+ .tw-bs .col-lg-2,
+ .tw-bs .col-lg-3,
+ .tw-bs .col-lg-4,
+ .tw-bs .col-lg-5,
+ .tw-bs .col-lg-6,
+ .tw-bs .col-lg-7,
+ .tw-bs .col-lg-8,
+ .tw-bs .col-lg-9,
+ .tw-bs .col-lg-10,
+ .tw-bs .col-lg-11 {
+ float: left;
+ }
+ .tw-bs .col-lg-1 {
+ width: 8.333333333333332%;
+ }
+ .tw-bs .col-lg-2 {
+ width: 16.666666666666664%;
+ }
+ .tw-bs .col-lg-3 {
+ width: 25%;
+ }
+ .tw-bs .col-lg-4 {
+ width: 33.33333333333333%;
+ }
+ .tw-bs .col-lg-5 {
+ width: 41.66666666666667%;
+ }
+ .tw-bs .col-lg-6 {
+ width: 50%;
+ }
+ .tw-bs .col-lg-7 {
+ width: 58.333333333333336%;
+ }
+ .tw-bs .col-lg-8 {
+ width: 66.66666666666666%;
+ }
+ .tw-bs .col-lg-9 {
+ width: 75%;
+ }
+ .tw-bs .col-lg-10 {
+ width: 83.33333333333334%;
+ }
+ .tw-bs .col-lg-11 {
+ width: 91.66666666666666%;
+ }
+ .tw-bs .col-lg-12 {
+ width: 100%;
+ }
+ .tw-bs .col-lg-push-0 {
+ left: auto;
+ }
+ .tw-bs .col-lg-push-1 {
+ left: 8.333333333333332%;
+ }
+ .tw-bs .col-lg-push-2 {
+ left: 16.666666666666664%;
+ }
+ .tw-bs .col-lg-push-3 {
+ left: 25%;
+ }
+ .tw-bs .col-lg-push-4 {
+ left: 33.33333333333333%;
+ }
+ .tw-bs .col-lg-push-5 {
+ left: 41.66666666666667%;
+ }
+ .tw-bs .col-lg-push-6 {
+ left: 50%;
+ }
+ .tw-bs .col-lg-push-7 {
+ left: 58.333333333333336%;
+ }
+ .tw-bs .col-lg-push-8 {
+ left: 66.66666666666666%;
+ }
+ .tw-bs .col-lg-push-9 {
+ left: 75%;
+ }
+ .tw-bs .col-lg-push-10 {
+ left: 83.33333333333334%;
+ }
+ .tw-bs .col-lg-push-11 {
+ left: 91.66666666666666%;
+ }
+ .tw-bs .col-lg-pull-0 {
+ right: auto;
+ }
+ .tw-bs .col-lg-pull-1 {
+ right: 8.333333333333332%;
+ }
+ .tw-bs .col-lg-pull-2 {
+ right: 16.666666666666664%;
+ }
+ .tw-bs .col-lg-pull-3 {
+ right: 25%;
+ }
+ .tw-bs .col-lg-pull-4 {
+ right: 33.33333333333333%;
+ }
+ .tw-bs .col-lg-pull-5 {
+ right: 41.66666666666667%;
+ }
+ .tw-bs .col-lg-pull-6 {
+ right: 50%;
+ }
+ .tw-bs .col-lg-pull-7 {
+ right: 58.333333333333336%;
+ }
+ .tw-bs .col-lg-pull-8 {
+ right: 66.66666666666666%;
+ }
+ .tw-bs .col-lg-pull-9 {
+ right: 75%;
+ }
+ .tw-bs .col-lg-pull-10 {
+ right: 83.33333333333334%;
+ }
+ .tw-bs .col-lg-pull-11 {
+ right: 91.66666666666666%;
+ }
+ .tw-bs .col-lg-offset-0 {
+ margin-left: 0;
+ }
+ .tw-bs .col-lg-offset-1 {
+ margin-left: 8.333333333333332%;
+ }
+ .tw-bs .col-lg-offset-2 {
+ margin-left: 16.666666666666664%;
+ }
+ .tw-bs .col-lg-offset-3 {
+ margin-left: 25%;
+ }
+ .tw-bs .col-lg-offset-4 {
+ margin-left: 33.33333333333333%;
+ }
+ .tw-bs .col-lg-offset-5 {
+ margin-left: 41.66666666666667%;
+ }
+ .tw-bs .col-lg-offset-6 {
+ margin-left: 50%;
+ }
+ .tw-bs .col-lg-offset-7 {
+ margin-left: 58.333333333333336%;
+ }
+ .tw-bs .col-lg-offset-8 {
+ margin-left: 66.66666666666666%;
+ }
+ .tw-bs .col-lg-offset-9 {
+ margin-left: 75%;
+ }
+ .tw-bs .col-lg-offset-10 {
+ margin-left: 83.33333333333334%;
+ }
+ .tw-bs .col-lg-offset-11 {
+ margin-left: 91.66666666666666%;
+ }
+}
+.tw-bs table {
+ max-width: 100%;
+ background-color: transparent;
+}
+.tw-bs th {
+ text-align: left;
+}
+.tw-bs .table {
+ width: 100%;
+ margin-bottom: 20px;
+}
+.tw-bs .table thead > tr > th,
+.tw-bs .table tbody > tr > th,
+.tw-bs .table tfoot > tr > th,
+.tw-bs .table thead > tr > td,
+.tw-bs .table tbody > tr > td,
+.tw-bs .table tfoot > tr > td {
+ padding: 8px;
+ line-height: 1.428571429;
+ vertical-align: top;
+ border-top: 1px solid #dddddd;
+}
+.tw-bs .table thead > tr > th {
+ vertical-align: bottom;
+ border-bottom: 2px solid #dddddd;
+}
+.tw-bs .table caption + thead tr:first-child th,
+.tw-bs .table colgroup + thead tr:first-child th,
+.tw-bs .table thead:first-child tr:first-child th,
+.tw-bs .table caption + thead tr:first-child td,
+.tw-bs .table colgroup + thead tr:first-child td,
+.tw-bs .table thead:first-child tr:first-child td {
+ border-top: 0;
+}
+.tw-bs .table tbody + tbody {
+ border-top: 2px solid #dddddd;
+}
+.tw-bs .table .table {
+ background-color: #ffffff;
+}
+.tw-bs .table-condensed thead > tr > th,
+.tw-bs .table-condensed tbody > tr > th,
+.tw-bs .table-condensed tfoot > tr > th,
+.tw-bs .table-condensed thead > tr > td,
+.tw-bs .table-condensed tbody > tr > td,
+.tw-bs .table-condensed tfoot > tr > td {
+ padding: 5px;
+}
+.tw-bs .table-bordered {
+ border: 1px solid #dddddd;
+}
+.tw-bs .table-bordered > thead > tr > th,
+.tw-bs .table-bordered > tbody > tr > th,
+.tw-bs .table-bordered > tfoot > tr > th,
+.tw-bs .table-bordered > thead > tr > td,
+.tw-bs .table-bordered > tbody > tr > td,
+.tw-bs .table-bordered > tfoot > tr > td {
+ border: 1px solid #dddddd;
+}
+.tw-bs .table-bordered > thead > tr > th,
+.tw-bs .table-bordered > thead > tr > td {
+ border-bottom-width: 2px;
+}
+.tw-bs .table-striped > tbody > tr:nth-child(odd) > td,
+.tw-bs .table-striped > tbody > tr:nth-child(odd) > th {
+ background-color: #f9f9f9;
+}
+.tw-bs .table-hover > tbody > tr:hover > td,
+.tw-bs .table-hover > tbody > tr:hover > th {
+ background-color: #f5f5f5;
+}
+.tw-bs table col[class*="col-"] {
+ float: none;
+ display: table-column;
+}
+.tw-bs table td[class*="col-"],
+.tw-bs table th[class*="col-"] {
+ float: none;
+ display: table-cell;
+}
+.tw-bs .table > thead > tr > td.active,
+.tw-bs .table > tbody > tr > td.active,
+.tw-bs .table > tfoot > tr > td.active,
+.tw-bs .table > thead > tr > th.active,
+.tw-bs .table > tbody > tr > th.active,
+.tw-bs .table > tfoot > tr > th.active,
+.tw-bs .table > thead > tr.active > td,
+.tw-bs .table > tbody > tr.active > td,
+.tw-bs .table > tfoot > tr.active > td,
+.tw-bs .table > thead > tr.active > th,
+.tw-bs .table > tbody > tr.active > th,
+.tw-bs .table > tfoot > tr.active > th {
+ background-color: #f5f5f5;
+}
+.tw-bs .table > thead > tr > td.success,
+.tw-bs .table > tbody > tr > td.success,
+.tw-bs .table > tfoot > tr > td.success,
+.tw-bs .table > thead > tr > th.success,
+.tw-bs .table > tbody > tr > th.success,
+.tw-bs .table > tfoot > tr > th.success,
+.tw-bs .table > thead > tr.success > td,
+.tw-bs .table > tbody > tr.success > td,
+.tw-bs .table > tfoot > tr.success > td,
+.tw-bs .table > thead > tr.success > th,
+.tw-bs .table > tbody > tr.success > th,
+.tw-bs .table > tfoot > tr.success > th {
+ background-color: #dff0d8;
+ border-color: #d6e9c6;
+}
+.tw-bs .table-hover > tbody > tr > td.success:hover,
+.tw-bs .table-hover > tbody > tr > th.success:hover,
+.tw-bs .table-hover > tbody > tr.success:hover > td {
+ background-color: #d0e9c6;
+ border-color: #c9e2b3;
+}
+.tw-bs .table > thead > tr > td.danger,
+.tw-bs .table > tbody > tr > td.danger,
+.tw-bs .table > tfoot > tr > td.danger,
+.tw-bs .table > thead > tr > th.danger,
+.tw-bs .table > tbody > tr > th.danger,
+.tw-bs .table > tfoot > tr > th.danger,
+.tw-bs .table > thead > tr.danger > td,
+.tw-bs .table > tbody > tr.danger > td,
+.tw-bs .table > tfoot > tr.danger > td,
+.tw-bs .table > thead > tr.danger > th,
+.tw-bs .table > tbody > tr.danger > th,
+.tw-bs .table > tfoot > tr.danger > th {
+ background-color: #f2dede;
+ border-color: #eed3d7;
+}
+.tw-bs .table-hover > tbody > tr > td.danger:hover,
+.tw-bs .table-hover > tbody > tr > th.danger:hover,
+.tw-bs .table-hover > tbody > tr.danger:hover > td {
+ background-color: #ebcccc;
+ border-color: #e6c1c7;
+}
+.tw-bs .table > thead > tr > td.warning,
+.tw-bs .table > tbody > tr > td.warning,
+.tw-bs .table > tfoot > tr > td.warning,
+.tw-bs .table > thead > tr > th.warning,
+.tw-bs .table > tbody > tr > th.warning,
+.tw-bs .table > tfoot > tr > th.warning,
+.tw-bs .table > thead > tr.warning > td,
+.tw-bs .table > tbody > tr.warning > td,
+.tw-bs .table > tfoot > tr.warning > td,
+.tw-bs .table > thead > tr.warning > th,
+.tw-bs .table > tbody > tr.warning > th,
+.tw-bs .table > tfoot > tr.warning > th {
+ background-color: #fcf8e3;
+ border-color: #fbeed5;
+}
+.tw-bs .table-hover > tbody > tr > td.warning:hover,
+.tw-bs .table-hover > tbody > tr > th.warning:hover,
+.tw-bs .table-hover > tbody > tr.warning:hover > td {
+ background-color: #faf2cc;
+ border-color: #f8e5be;
+}
+@media (max-width: 768px) {
+ .tw-bs .table-responsive {
+ width: 100%;
+ margin-bottom: 15px;
+ overflow-y: hidden;
+ overflow-x: scroll;
+ border: 1px solid #dddddd;
+ }
+ .tw-bs .table-responsive > .table {
+ margin-bottom: 0;
+ background-color: #fff;
+ }
+ .tw-bs .table-responsive > .table > thead > tr > th,
+ .tw-bs .table-responsive > .table > tbody > tr > th,
+ .tw-bs .table-responsive > .table > tfoot > tr > th,
+ .tw-bs .table-responsive > .table > thead > tr > td,
+ .tw-bs .table-responsive > .table > tbody > tr > td,
+ .tw-bs .table-responsive > .table > tfoot > tr > td {
+ white-space: nowrap;
+ }
+ .tw-bs .table-responsive > .table-bordered {
+ border: 0;
+ }
+ .tw-bs .table-responsive > .table-bordered > thead > tr > th:first-child,
+ .tw-bs .table-responsive > .table-bordered > tbody > tr > th:first-child,
+ .tw-bs .table-responsive > .table-bordered > tfoot > tr > th:first-child,
+ .tw-bs .table-responsive > .table-bordered > thead > tr > td:first-child,
+ .tw-bs .table-responsive > .table-bordered > tbody > tr > td:first-child,
+ .tw-bs .table-responsive > .table-bordered > tfoot > tr > td:first-child {
+ border-left: 0;
+ }
+ .tw-bs .table-responsive > .table-bordered > thead > tr > th:last-child,
+ .tw-bs .table-responsive > .table-bordered > tbody > tr > th:last-child,
+ .tw-bs .table-responsive > .table-bordered > tfoot > tr > th:last-child,
+ .tw-bs .table-responsive > .table-bordered > thead > tr > td:last-child,
+ .tw-bs .table-responsive > .table-bordered > tbody > tr > td:last-child,
+ .tw-bs .table-responsive > .table-bordered > tfoot > tr > td:last-child {
+ border-right: 0;
+ }
+ .tw-bs .table-responsive > .table-bordered > thead > tr:last-child > th,
+ .tw-bs .table-responsive > .table-bordered > tbody > tr:last-child > th,
+ .tw-bs .table-responsive > .table-bordered > tfoot > tr:last-child > th,
+ .tw-bs .table-responsive > .table-bordered > thead > tr:last-child > td,
+ .tw-bs .table-responsive > .table-bordered > tbody > tr:last-child > td,
+ .tw-bs .table-responsive > .table-bordered > tfoot > tr:last-child > td {
+ border-bottom: 0;
+ }
+}
+.tw-bs fieldset {
+ padding: 0;
+ margin: 0;
+ border: 0;
+}
+.tw-bs legend {
+ display: block;
+ width: 100%;
+ padding: 0;
+ margin-bottom: 20px;
+ font-size: 21px;
+ line-height: inherit;
+ color: #333333;
+ border: 0;
+ border-bottom: 1px solid #e5e5e5;
+}
+.tw-bs label {
+ display: inline-block;
+ margin-bottom: 5px;
+ font-weight: bold;
+}
+.tw-bs input[type="search"] {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.tw-bs input[type="radio"],
+.tw-bs input[type="checkbox"] {
+ margin: 4px 0 0;
+ margin-top: 1px \9;
+ /* IE8-9 */
+ line-height: normal;
+}
+.tw-bs input[type="file"] {
+ display: block;
+}
+.tw-bs select[multiple],
+.tw-bs select[size] {
+ height: auto;
+}
+.tw-bs select optgroup {
+ font-size: inherit;
+ font-style: inherit;
+ font-family: inherit;
+}
+.tw-bs input[type="file"]:focus,
+.tw-bs input[type="radio"]:focus,
+.tw-bs input[type="checkbox"]:focus {
+ outline: thin dotted #333;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+.tw-bs input[type="number"]::-webkit-outer-spin-button,
+.tw-bs input[type="number"]::-webkit-inner-spin-button {
+ height: auto;
+}
+.tw-bs .form-control:-moz-placeholder {
+ color: #999999;
+}
+.tw-bs .form-control::-moz-placeholder {
+ color: #999999;
+}
+.tw-bs .form-control:-ms-input-placeholder {
+ color: #999999;
+}
+.tw-bs .form-control::-webkit-input-placeholder {
+ color: #999999;
+}
+.tw-bs .form-control {
+ display: block;
+ width: 100%;
+ height: 34px;
+ padding: 6px 12px;
+ font-size: 14px;
+ line-height: 1.428571429;
+ color: #555555;
+ vertical-align: middle;
+ background-color: #ffffff;
+ border: 1px solid #cccccc;
+ border-radius: 4px;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
+ transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
+}
+.tw-bs .form-control:focus {
+ border-color: #66afe9;
+ outline: 0;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
+ box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
+}
+.tw-bs .form-control[disabled],
+.tw-bs .form-control[readonly],
+fieldset[disabled] .tw-bs .form-control {
+ cursor: not-allowed;
+ background-color: #eeeeee;
+}
+textarea.tw-bs .form-control {
+ height: auto;
+}
+.tw-bs .form-group {
+ margin-bottom: 15px;
+}
+.tw-bs .radio,
+.tw-bs .checkbox {
+ display: block;
+ min-height: 20px;
+ margin-top: 10px;
+ margin-bottom: 10px;
+ padding-left: 20px;
+ vertical-align: middle;
+}
+.tw-bs .radio label,
+.tw-bs .checkbox label {
+ display: inline;
+ margin-bottom: 0;
+ font-weight: normal;
+ cursor: pointer;
+}
+.tw-bs .radio input[type="radio"],
+.tw-bs .radio-inline input[type="radio"],
+.tw-bs .checkbox input[type="checkbox"],
+.tw-bs .checkbox-inline input[type="checkbox"] {
+ float: left;
+ margin-left: -20px;
+}
+.tw-bs .radio + .radio,
+.tw-bs .checkbox + .checkbox {
+ margin-top: -5px;
+}
+.tw-bs .radio-inline,
+.tw-bs .checkbox-inline {
+ display: inline-block;
+ padding-left: 20px;
+ margin-bottom: 0;
+ vertical-align: middle;
+ font-weight: normal;
+ cursor: pointer;
+}
+.tw-bs .radio-inline + .radio-inline,
+.tw-bs .checkbox-inline + .checkbox-inline {
+ margin-top: 0;
+ margin-left: 10px;
+}
+.tw-bs input[type="radio"][disabled],
+.tw-bs input[type="checkbox"][disabled],
+.tw-bs .radio[disabled],
+.tw-bs .radio-inline[disabled],
+.tw-bs .checkbox[disabled],
+.tw-bs .checkbox-inline[disabled],
+fieldset[disabled] .tw-bs input[type="radio"],
+fieldset[disabled] .tw-bs input[type="checkbox"],
+fieldset[disabled] .tw-bs .radio,
+fieldset[disabled] .tw-bs .radio-inline,
+fieldset[disabled] .tw-bs .checkbox,
+fieldset[disabled] .tw-bs .checkbox-inline {
+ cursor: not-allowed;
+}
+.tw-bs .input-sm {
+ height: 30px;
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+}
+select.tw-bs .input-sm {
+ height: 30px;
+ line-height: 30px;
+}
+textarea.tw-bs .input-sm {
+ height: auto;
+}
+.tw-bs .input-lg {
+ height: 45px;
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.33;
+ border-radius: 6px;
+}
+select.tw-bs .input-lg {
+ height: 45px;
+ line-height: 45px;
+}
+textarea.tw-bs .input-lg {
+ height: auto;
+}
+.tw-bs .has-warning .help-block,
+.tw-bs .has-warning .control-label {
+ color: #c09853;
+}
+.tw-bs .has-warning .form-control {
+ border-color: #c09853;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+.tw-bs .has-warning .form-control:focus {
+ border-color: #a47e3c;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
+}
+.tw-bs .has-warning .input-group-addon {
+ color: #c09853;
+ border-color: #c09853;
+ background-color: #fcf8e3;
+}
+.tw-bs .has-error .help-block,
+.tw-bs .has-error .control-label {
+ color: #b94a48;
+}
+.tw-bs .has-error .form-control {
+ border-color: #b94a48;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+.tw-bs .has-error .form-control:focus {
+ border-color: #953b39;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
+}
+.tw-bs .has-error .input-group-addon {
+ color: #b94a48;
+ border-color: #b94a48;
+ background-color: #f2dede;
+}
+.tw-bs .has-success .help-block,
+.tw-bs .has-success .control-label {
+ color: #468847;
+}
+.tw-bs .has-success .form-control {
+ border-color: #468847;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+.tw-bs .has-success .form-control:focus {
+ border-color: #356635;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
+}
+.tw-bs .has-success .input-group-addon {
+ color: #468847;
+ border-color: #468847;
+ background-color: #dff0d8;
+}
+.tw-bs .form-control-static {
+ margin-bottom: 0;
+ padding-top: 7px;
+}
+.tw-bs .help-block {
+ display: block;
+ margin-top: 5px;
+ margin-bottom: 10px;
+ color: #737373;
+}
+@media (min-width: 768px) {
+ .tw-bs .form-inline .form-group {
+ display: inline-block;
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .tw-bs .form-inline .form-control {
+ display: inline-block;
+ }
+ .tw-bs .form-inline .radio,
+ .tw-bs .form-inline .checkbox {
+ display: inline-block;
+ margin-top: 0;
+ margin-bottom: 0;
+ padding-left: 0;
+ }
+ .tw-bs .form-inline .radio input[type="radio"],
+ .tw-bs .form-inline .checkbox input[type="checkbox"] {
+ float: none;
+ margin-left: 0;
+ }
+}
+.tw-bs .form-horizontal .control-label,
+.tw-bs .form-horizontal .radio,
+.tw-bs .form-horizontal .checkbox,
+.tw-bs .form-horizontal .radio-inline,
+.tw-bs .form-horizontal .checkbox-inline {
+ margin-top: 0;
+ margin-bottom: 0;
+ padding-top: 7px;
+}
+.tw-bs .form-horizontal .form-group {
+ margin-left: -15px;
+ margin-right: -15px;
+}
+.tw-bs .form-horizontal .form-group:before,
+.tw-bs .form-horizontal .form-group:after {
+ content: " ";
+ /* 1 */
+ display: table;
+ /* 2 */
+}
+.tw-bs .form-horizontal .form-group:after {
+ clear: both;
+}
+.tw-bs .form-horizontal .form-group:before,
+.tw-bs .form-horizontal .form-group:after {
+ content: " ";
+ /* 1 */
+ display: table;
+ /* 2 */
+}
+.tw-bs .form-horizontal .form-group:after {
+ clear: both;
+}
+@media (min-width: 768px) {
+ .tw-bs .form-horizontal .control-label {
+ text-align: right;
+ }
+}
+.tw-bs .btn {
+ display: inline-block;
+ padding: 6px 12px;
+ margin-bottom: 0;
+ font-size: 14px;
+ font-weight: normal;
+ line-height: 1.428571429;
+ text-align: center;
+ vertical-align: middle;
+ cursor: pointer;
+ border: 1px solid transparent;
+ border-radius: 4px;
+ white-space: nowrap;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ -o-user-select: none;
+ user-select: none;
+}
+.tw-bs .btn:focus {
+ outline: thin dotted #333;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+.tw-bs .btn:hover,
+.tw-bs .btn:focus {
+ color: #333333;
+ text-decoration: none;
+}
+.tw-bs .btn:active,
+.tw-bs .btn.active {
+ outline: 0;
+ background-image: none;
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+}
+.tw-bs .btn.disabled,
+.tw-bs .btn[disabled],
+fieldset[disabled] .tw-bs .btn {
+ cursor: not-allowed;
+ pointer-events: none;
+ opacity: 0.65;
+ filter: alpha(opacity=65);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.tw-bs .btn-default {
+ color: #333333;
+ background-color: #ffffff;
+ border-color: #cccccc;
+}
+.tw-bs .btn-default:hover,
+.tw-bs .btn-default:focus,
+.tw-bs .btn-default:active,
+.tw-bs .btn-default.active,
+.open .dropdown-toggle.tw-bs .btn-default {
+ color: #333333;
+ background-color: #ebebeb;
+ border-color: #adadad;
+}
+.tw-bs .btn-default:active,
+.tw-bs .btn-default.active,
+.open .dropdown-toggle.tw-bs .btn-default {
+ background-image: none;
+}
+.tw-bs .btn-default.disabled,
+.tw-bs .btn-default[disabled],
+fieldset[disabled] .tw-bs .btn-default,
+.tw-bs .btn-default.disabled:hover,
+.tw-bs .btn-default[disabled]:hover,
+fieldset[disabled] .tw-bs .btn-default:hover,
+.tw-bs .btn-default.disabled:focus,
+.tw-bs .btn-default[disabled]:focus,
+fieldset[disabled] .tw-bs .btn-default:focus,
+.tw-bs .btn-default.disabled:active,
+.tw-bs .btn-default[disabled]:active,
+fieldset[disabled] .tw-bs .btn-default:active,
+.tw-bs .btn-default.disabled.active,
+.tw-bs .btn-default[disabled].active,
+fieldset[disabled] .tw-bs .btn-default.active {
+ background-color: #ffffff;
+ border-color: #cccccc;
+}
+.tw-bs .btn-primary {
+ color: #ffffff;
+ background-color: #428bca;
+ border-color: #357ebd;
+}
+.tw-bs .btn-primary:hover,
+.tw-bs .btn-primary:focus,
+.tw-bs .btn-primary:active,
+.tw-bs .btn-primary.active,
+.open .dropdown-toggle.tw-bs .btn-primary {
+ color: #ffffff;
+ background-color: #3276b1;
+ border-color: #285e8e;
+}
+.tw-bs .btn-primary:active,
+.tw-bs .btn-primary.active,
+.open .dropdown-toggle.tw-bs .btn-primary {
+ background-image: none;
+}
+.tw-bs .btn-primary.disabled,
+.tw-bs .btn-primary[disabled],
+fieldset[disabled] .tw-bs .btn-primary,
+.tw-bs .btn-primary.disabled:hover,
+.tw-bs .btn-primary[disabled]:hover,
+fieldset[disabled] .tw-bs .btn-primary:hover,
+.tw-bs .btn-primary.disabled:focus,
+.tw-bs .btn-primary[disabled]:focus,
+fieldset[disabled] .tw-bs .btn-primary:focus,
+.tw-bs .btn-primary.disabled:active,
+.tw-bs .btn-primary[disabled]:active,
+fieldset[disabled] .tw-bs .btn-primary:active,
+.tw-bs .btn-primary.disabled.active,
+.tw-bs .btn-primary[disabled].active,
+fieldset[disabled] .tw-bs .btn-primary.active {
+ background-color: #428bca;
+ border-color: #357ebd;
+}
+.tw-bs .btn-warning {
+ color: #ffffff;
+ background-color: #f0ad4e;
+ border-color: #eea236;
+}
+.tw-bs .btn-warning:hover,
+.tw-bs .btn-warning:focus,
+.tw-bs .btn-warning:active,
+.tw-bs .btn-warning.active,
+.open .dropdown-toggle.tw-bs .btn-warning {
+ color: #ffffff;
+ background-color: #ed9c28;
+ border-color: #d58512;
+}
+.tw-bs .btn-warning:active,
+.tw-bs .btn-warning.active,
+.open .dropdown-toggle.tw-bs .btn-warning {
+ background-image: none;
+}
+.tw-bs .btn-warning.disabled,
+.tw-bs .btn-warning[disabled],
+fieldset[disabled] .tw-bs .btn-warning,
+.tw-bs .btn-warning.disabled:hover,
+.tw-bs .btn-warning[disabled]:hover,
+fieldset[disabled] .tw-bs .btn-warning:hover,
+.tw-bs .btn-warning.disabled:focus,
+.tw-bs .btn-warning[disabled]:focus,
+fieldset[disabled] .tw-bs .btn-warning:focus,
+.tw-bs .btn-warning.disabled:active,
+.tw-bs .btn-warning[disabled]:active,
+fieldset[disabled] .tw-bs .btn-warning:active,
+.tw-bs .btn-warning.disabled.active,
+.tw-bs .btn-warning[disabled].active,
+fieldset[disabled] .tw-bs .btn-warning.active {
+ background-color: #f0ad4e;
+ border-color: #eea236;
+}
+.tw-bs .btn-danger {
+ color: #ffffff;
+ background-color: #d9534f;
+ border-color: #d43f3a;
+}
+.tw-bs .btn-danger:hover,
+.tw-bs .btn-danger:focus,
+.tw-bs .btn-danger:active,
+.tw-bs .btn-danger.active,
+.open .dropdown-toggle.tw-bs .btn-danger {
+ color: #ffffff;
+ background-color: #d2322d;
+ border-color: #ac2925;
+}
+.tw-bs .btn-danger:active,
+.tw-bs .btn-danger.active,
+.open .dropdown-toggle.tw-bs .btn-danger {
+ background-image: none;
+}
+.tw-bs .btn-danger.disabled,
+.tw-bs .btn-danger[disabled],
+fieldset[disabled] .tw-bs .btn-danger,
+.tw-bs .btn-danger.disabled:hover,
+.tw-bs .btn-danger[disabled]:hover,
+fieldset[disabled] .tw-bs .btn-danger:hover,
+.tw-bs .btn-danger.disabled:focus,
+.tw-bs .btn-danger[disabled]:focus,
+fieldset[disabled] .tw-bs .btn-danger:focus,
+.tw-bs .btn-danger.disabled:active,
+.tw-bs .btn-danger[disabled]:active,
+fieldset[disabled] .tw-bs .btn-danger:active,
+.tw-bs .btn-danger.disabled.active,
+.tw-bs .btn-danger[disabled].active,
+fieldset[disabled] .tw-bs .btn-danger.active {
+ background-color: #d9534f;
+ border-color: #d43f3a;
+}
+.tw-bs .btn-success {
+ color: #ffffff;
+ background-color: #5cb85c;
+ border-color: #4cae4c;
+}
+.tw-bs .btn-success:hover,
+.tw-bs .btn-success:focus,
+.tw-bs .btn-success:active,
+.tw-bs .btn-success.active,
+.open .dropdown-toggle.tw-bs .btn-success {
+ color: #ffffff;
+ background-color: #47a447;
+ border-color: #398439;
+}
+.tw-bs .btn-success:active,
+.tw-bs .btn-success.active,
+.open .dropdown-toggle.tw-bs .btn-success {
+ background-image: none;
+}
+.tw-bs .btn-success.disabled,
+.tw-bs .btn-success[disabled],
+fieldset[disabled] .tw-bs .btn-success,
+.tw-bs .btn-success.disabled:hover,
+.tw-bs .btn-success[disabled]:hover,
+fieldset[disabled] .tw-bs .btn-success:hover,
+.tw-bs .btn-success.disabled:focus,
+.tw-bs .btn-success[disabled]:focus,
+fieldset[disabled] .tw-bs .btn-success:focus,
+.tw-bs .btn-success.disabled:active,
+.tw-bs .btn-success[disabled]:active,
+fieldset[disabled] .tw-bs .btn-success:active,
+.tw-bs .btn-success.disabled.active,
+.tw-bs .btn-success[disabled].active,
+fieldset[disabled] .tw-bs .btn-success.active {
+ background-color: #5cb85c;
+ border-color: #4cae4c;
+}
+.tw-bs .btn-info {
+ color: #ffffff;
+ background-color: #5bc0de;
+ border-color: #46b8da;
+}
+.tw-bs .btn-info:hover,
+.tw-bs .btn-info:focus,
+.tw-bs .btn-info:active,
+.tw-bs .btn-info.active,
+.open .dropdown-toggle.tw-bs .btn-info {
+ color: #ffffff;
+ background-color: #39b3d7;
+ border-color: #269abc;
+}
+.tw-bs .btn-info:active,
+.tw-bs .btn-info.active,
+.open .dropdown-toggle.tw-bs .btn-info {
+ background-image: none;
+}
+.tw-bs .btn-info.disabled,
+.tw-bs .btn-info[disabled],
+fieldset[disabled] .tw-bs .btn-info,
+.tw-bs .btn-info.disabled:hover,
+.tw-bs .btn-info[disabled]:hover,
+fieldset[disabled] .tw-bs .btn-info:hover,
+.tw-bs .btn-info.disabled:focus,
+.tw-bs .btn-info[disabled]:focus,
+fieldset[disabled] .tw-bs .btn-info:focus,
+.tw-bs .btn-info.disabled:active,
+.tw-bs .btn-info[disabled]:active,
+fieldset[disabled] .tw-bs .btn-info:active,
+.tw-bs .btn-info.disabled.active,
+.tw-bs .btn-info[disabled].active,
+fieldset[disabled] .tw-bs .btn-info.active {
+ background-color: #5bc0de;
+ border-color: #46b8da;
+}
+.tw-bs .btn-link {
+ color: #428bca;
+ font-weight: normal;
+ cursor: pointer;
+ border-radius: 0;
+}
+.tw-bs .btn-link,
+.tw-bs .btn-link:active,
+.tw-bs .btn-link[disabled],
+fieldset[disabled] .tw-bs .btn-link {
+ background-color: transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.tw-bs .btn-link,
+.tw-bs .btn-link:hover,
+.tw-bs .btn-link:focus,
+.tw-bs .btn-link:active {
+ border-color: transparent;
+}
+.tw-bs .btn-link:hover,
+.tw-bs .btn-link:focus {
+ color: #2a6496;
+ text-decoration: underline;
+ background-color: transparent;
+}
+.tw-bs .btn-link[disabled]:hover,
+fieldset[disabled] .tw-bs .btn-link:hover,
+.tw-bs .btn-link[disabled]:focus,
+fieldset[disabled] .tw-bs .btn-link:focus {
+ color: #999999;
+ text-decoration: none;
+}
+.tw-bs .btn-lg {
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.33;
+ border-radius: 6px;
+}
+.tw-bs .btn-sm,
+.tw-bs .btn-xs {
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+}
+.tw-bs .btn-xs {
+ padding: 1px 5px;
+}
+.tw-bs .btn-block {
+ display: block;
+ width: 100%;
+ padding-left: 0;
+ padding-right: 0;
+}
+.tw-bs .btn-block + .btn-block {
+ margin-top: 5px;
+}
+.tw-bs input[type="submit"].btn-block,
+.tw-bs input[type="reset"].btn-block,
+.tw-bs input[type="button"].btn-block {
+ width: 100%;
+}
+.tw-bs .fade {
+ opacity: 0;
+ -webkit-transition: opacity 0.15s linear;
+ transition: opacity 0.15s linear;
+}
+.tw-bs .fade.in {
+ opacity: 1;
+}
+.tw-bs .collapse {
+ display: none;
+}
+.tw-bs .collapse.in {
+ display: block;
+}
+.tw-bs .collapsing {
+ position: relative;
+ height: 0;
+ overflow: hidden;
+ -webkit-transition: height 0.35s ease;
+ transition: height 0.35s ease;
+}
+@font-face {
+ font-family: 'Glyphicons Halflings';
+ src: url('../fonts/glyphicons-halflings-regular.eot');
+ src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg');
+}
+.tw-bs .glyphicon {
+ position: relative;
+ top: 1px;
+ display: inline-block;
+ font-family: 'Glyphicons Halflings';
+ font-style: normal;
+ font-weight: normal;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+}
+.tw-bs .glyphicon-asterisk:before {
+ content: "\2a";
+}
+.tw-bs .glyphicon-plus:before {
+ content: "\2b";
+}
+.tw-bs .glyphicon-euro:before {
+ content: "\20ac";
+}
+.tw-bs .glyphicon-minus:before {
+ content: "\2212";
+}
+.tw-bs .glyphicon-cloud:before {
+ content: "\2601";
+}
+.tw-bs .glyphicon-envelope:before {
+ content: "\2709";
+}
+.tw-bs .glyphicon-pencil:before {
+ content: "\270f";
+}
+.tw-bs .glyphicon-glass:before {
+ content: "\e001";
+}
+.tw-bs .glyphicon-music:before {
+ content: "\e002";
+}
+.tw-bs .glyphicon-search:before {
+ content: "\e003";
+}
+.tw-bs .glyphicon-heart:before {
+ content: "\e005";
+}
+.tw-bs .glyphicon-star:before {
+ content: "\e006";
+}
+.tw-bs .glyphicon-star-empty:before {
+ content: "\e007";
+}
+.tw-bs .glyphicon-user:before {
+ content: "\e008";
+}
+.tw-bs .glyphicon-film:before {
+ content: "\e009";
+}
+.tw-bs .glyphicon-th-large:before {
+ content: "\e010";
+}
+.tw-bs .glyphicon-th:before {
+ content: "\e011";
+}
+.tw-bs .glyphicon-th-list:before {
+ content: "\e012";
+}
+.tw-bs .glyphicon-ok:before {
+ content: "\e013";
+}
+.tw-bs .glyphicon-remove:before {
+ content: "\e014";
+}
+.tw-bs .glyphicon-zoom-in:before {
+ content: "\e015";
+}
+.tw-bs .glyphicon-zoom-out:before {
+ content: "\e016";
+}
+.tw-bs .glyphicon-off:before {
+ content: "\e017";
+}
+.tw-bs .glyphicon-signal:before {
+ content: "\e018";
+}
+.tw-bs .glyphicon-cog:before {
+ content: "\e019";
+}
+.tw-bs .glyphicon-trash:before {
+ content: "\e020";
+}
+.tw-bs .glyphicon-home:before {
+ content: "\e021";
+}
+.tw-bs .glyphicon-file:before {
+ content: "\e022";
+}
+.tw-bs .glyphicon-time:before {
+ content: "\e023";
+}
+.tw-bs .glyphicon-road:before {
+ content: "\e024";
+}
+.tw-bs .glyphicon-download-alt:before {
+ content: "\e025";
+}
+.tw-bs .glyphicon-download:before {
+ content: "\e026";
+}
+.tw-bs .glyphicon-upload:before {
+ content: "\e027";
+}
+.tw-bs .glyphicon-inbox:before {
+ content: "\e028";
+}
+.tw-bs .glyphicon-play-circle:before {
+ content: "\e029";
+}
+.tw-bs .glyphicon-repeat:before {
+ content: "\e030";
+}
+.tw-bs .glyphicon-refresh:before {
+ content: "\e031";
+}
+.tw-bs .glyphicon-list-alt:before {
+ content: "\e032";
+}
+.tw-bs .glyphicon-flag:before {
+ content: "\e034";
+}
+.tw-bs .glyphicon-headphones:before {
+ content: "\e035";
+}
+.tw-bs .glyphicon-volume-off:before {
+ content: "\e036";
+}
+.tw-bs .glyphicon-volume-down:before {
+ content: "\e037";
+}
+.tw-bs .glyphicon-volume-up:before {
+ content: "\e038";
+}
+.tw-bs .glyphicon-qrcode:before {
+ content: "\e039";
+}
+.tw-bs .glyphicon-barcode:before {
+ content: "\e040";
+}
+.tw-bs .glyphicon-tag:before {
+ content: "\e041";
+}
+.tw-bs .glyphicon-tags:before {
+ content: "\e042";
+}
+.tw-bs .glyphicon-book:before {
+ content: "\e043";
+}
+.tw-bs .glyphicon-print:before {
+ content: "\e045";
+}
+.tw-bs .glyphicon-font:before {
+ content: "\e047";
+}
+.tw-bs .glyphicon-bold:before {
+ content: "\e048";
+}
+.tw-bs .glyphicon-italic:before {
+ content: "\e049";
+}
+.tw-bs .glyphicon-text-height:before {
+ content: "\e050";
+}
+.tw-bs .glyphicon-text-width:before {
+ content: "\e051";
+}
+.tw-bs .glyphicon-align-left:before {
+ content: "\e052";
+}
+.tw-bs .glyphicon-align-center:before {
+ content: "\e053";
+}
+.tw-bs .glyphicon-align-right:before {
+ content: "\e054";
+}
+.tw-bs .glyphicon-align-justify:before {
+ content: "\e055";
+}
+.tw-bs .glyphicon-list:before {
+ content: "\e056";
+}
+.tw-bs .glyphicon-indent-left:before {
+ content: "\e057";
+}
+.tw-bs .glyphicon-indent-right:before {
+ content: "\e058";
+}
+.tw-bs .glyphicon-facetime-video:before {
+ content: "\e059";
+}
+.tw-bs .glyphicon-picture:before {
+ content: "\e060";
+}
+.tw-bs .glyphicon-map-marker:before {
+ content: "\e062";
+}
+.tw-bs .glyphicon-adjust:before {
+ content: "\e063";
+}
+.tw-bs .glyphicon-tint:before {
+ content: "\e064";
+}
+.tw-bs .glyphicon-edit:before {
+ content: "\e065";
+}
+.tw-bs .glyphicon-share:before {
+ content: "\e066";
+}
+.tw-bs .glyphicon-check:before {
+ content: "\e067";
+}
+.tw-bs .glyphicon-move:before {
+ content: "\e068";
+}
+.tw-bs .glyphicon-step-backward:before {
+ content: "\e069";
+}
+.tw-bs .glyphicon-fast-backward:before {
+ content: "\e070";
+}
+.tw-bs .glyphicon-backward:before {
+ content: "\e071";
+}
+.tw-bs .glyphicon-play:before {
+ content: "\e072";
+}
+.tw-bs .glyphicon-pause:before {
+ content: "\e073";
+}
+.tw-bs .glyphicon-stop:before {
+ content: "\e074";
+}
+.tw-bs .glyphicon-forward:before {
+ content: "\e075";
+}
+.tw-bs .glyphicon-fast-forward:before {
+ content: "\e076";
+}
+.tw-bs .glyphicon-step-forward:before {
+ content: "\e077";
+}
+.tw-bs .glyphicon-eject:before {
+ content: "\e078";
+}
+.tw-bs .glyphicon-chevron-left:before {
+ content: "\e079";
+}
+.tw-bs .glyphicon-chevron-right:before {
+ content: "\e080";
+}
+.tw-bs .glyphicon-plus-sign:before {
+ content: "\e081";
+}
+.tw-bs .glyphicon-minus-sign:before {
+ content: "\e082";
+}
+.tw-bs .glyphicon-remove-sign:before {
+ content: "\e083";
+}
+.tw-bs .glyphicon-ok-sign:before {
+ content: "\e084";
+}
+.tw-bs .glyphicon-question-sign:before {
+ content: "\e085";
+}
+.tw-bs .glyphicon-info-sign:before {
+ content: "\e086";
+}
+.tw-bs .glyphicon-screenshot:before {
+ content: "\e087";
+}
+.tw-bs .glyphicon-remove-circle:before {
+ content: "\e088";
+}
+.tw-bs .glyphicon-ok-circle:before {
+ content: "\e089";
+}
+.tw-bs .glyphicon-ban-circle:before {
+ content: "\e090";
+}
+.tw-bs .glyphicon-arrow-left:before {
+ content: "\e091";
+}
+.tw-bs .glyphicon-arrow-right:before {
+ content: "\e092";
+}
+.tw-bs .glyphicon-arrow-up:before {
+ content: "\e093";
+}
+.tw-bs .glyphicon-arrow-down:before {
+ content: "\e094";
+}
+.tw-bs .glyphicon-share-alt:before {
+ content: "\e095";
+}
+.tw-bs .glyphicon-resize-full:before {
+ content: "\e096";
+}
+.tw-bs .glyphicon-resize-small:before {
+ content: "\e097";
+}
+.tw-bs .glyphicon-exclamation-sign:before {
+ content: "\e101";
+}
+.tw-bs .glyphicon-gift:before {
+ content: "\e102";
+}
+.tw-bs .glyphicon-leaf:before {
+ content: "\e103";
+}
+.tw-bs .glyphicon-eye-open:before {
+ content: "\e105";
+}
+.tw-bs .glyphicon-eye-close:before {
+ content: "\e106";
+}
+.tw-bs .glyphicon-warning-sign:before {
+ content: "\e107";
+}
+.tw-bs .glyphicon-plane:before {
+ content: "\e108";
+}
+.tw-bs .glyphicon-random:before {
+ content: "\e110";
+}
+.tw-bs .glyphicon-comment:before {
+ content: "\e111";
+}
+.tw-bs .glyphicon-magnet:before {
+ content: "\e112";
+}
+.tw-bs .glyphicon-chevron-up:before {
+ content: "\e113";
+}
+.tw-bs .glyphicon-chevron-down:before {
+ content: "\e114";
+}
+.tw-bs .glyphicon-retweet:before {
+ content: "\e115";
+}
+.tw-bs .glyphicon-shopping-cart:before {
+ content: "\e116";
+}
+.tw-bs .glyphicon-folder-close:before {
+ content: "\e117";
+}
+.tw-bs .glyphicon-folder-open:before {
+ content: "\e118";
+}
+.tw-bs .glyphicon-resize-vertical:before {
+ content: "\e119";
+}
+.tw-bs .glyphicon-resize-horizontal:before {
+ content: "\e120";
+}
+.tw-bs .glyphicon-hdd:before {
+ content: "\e121";
+}
+.tw-bs .glyphicon-bullhorn:before {
+ content: "\e122";
+}
+.tw-bs .glyphicon-certificate:before {
+ content: "\e124";
+}
+.tw-bs .glyphicon-thumbs-up:before {
+ content: "\e125";
+}
+.tw-bs .glyphicon-thumbs-down:before {
+ content: "\e126";
+}
+.tw-bs .glyphicon-hand-right:before {
+ content: "\e127";
+}
+.tw-bs .glyphicon-hand-left:before {
+ content: "\e128";
+}
+.tw-bs .glyphicon-hand-up:before {
+ content: "\e129";
+}
+.tw-bs .glyphicon-hand-down:before {
+ content: "\e130";
+}
+.tw-bs .glyphicon-circle-arrow-right:before {
+ content: "\e131";
+}
+.tw-bs .glyphicon-circle-arrow-left:before {
+ content: "\e132";
+}
+.tw-bs .glyphicon-circle-arrow-up:before {
+ content: "\e133";
+}
+.tw-bs .glyphicon-circle-arrow-down:before {
+ content: "\e134";
+}
+.tw-bs .glyphicon-globe:before {
+ content: "\e135";
+}
+.tw-bs .glyphicon-tasks:before {
+ content: "\e137";
+}
+.tw-bs .glyphicon-filter:before {
+ content: "\e138";
+}
+.tw-bs .glyphicon-fullscreen:before {
+ content: "\e140";
+}
+.tw-bs .glyphicon-dashboard:before {
+ content: "\e141";
+}
+.tw-bs .glyphicon-heart-empty:before {
+ content: "\e143";
+}
+.tw-bs .glyphicon-link:before {
+ content: "\e144";
+}
+.tw-bs .glyphicon-phone:before {
+ content: "\e145";
+}
+.tw-bs .glyphicon-usd:before {
+ content: "\e148";
+}
+.tw-bs .glyphicon-gbp:before {
+ content: "\e149";
+}
+.tw-bs .glyphicon-sort:before {
+ content: "\e150";
+}
+.tw-bs .glyphicon-sort-by-alphabet:before {
+ content: "\e151";
+}
+.tw-bs .glyphicon-sort-by-alphabet-alt:before {
+ content: "\e152";
+}
+.tw-bs .glyphicon-sort-by-order:before {
+ content: "\e153";
+}
+.tw-bs .glyphicon-sort-by-order-alt:before {
+ content: "\e154";
+}
+.tw-bs .glyphicon-sort-by-attributes:before {
+ content: "\e155";
+}
+.tw-bs .glyphicon-sort-by-attributes-alt:before {
+ content: "\e156";
+}
+.tw-bs .glyphicon-unchecked:before {
+ content: "\e157";
+}
+.tw-bs .glyphicon-expand:before {
+ content: "\e158";
+}
+.tw-bs .glyphicon-collapse-down:before {
+ content: "\e159";
+}
+.tw-bs .glyphicon-collapse-up:before {
+ content: "\e160";
+}
+.tw-bs .glyphicon-log-in:before {
+ content: "\e161";
+}
+.tw-bs .glyphicon-flash:before {
+ content: "\e162";
+}
+.tw-bs .glyphicon-log-out:before {
+ content: "\e163";
+}
+.tw-bs .glyphicon-new-window:before {
+ content: "\e164";
+}
+.tw-bs .glyphicon-record:before {
+ content: "\e165";
+}
+.tw-bs .glyphicon-save:before {
+ content: "\e166";
+}
+.tw-bs .glyphicon-open:before {
+ content: "\e167";
+}
+.tw-bs .glyphicon-saved:before {
+ content: "\e168";
+}
+.tw-bs .glyphicon-import:before {
+ content: "\e169";
+}
+.tw-bs .glyphicon-export:before {
+ content: "\e170";
+}
+.tw-bs .glyphicon-send:before {
+ content: "\e171";
+}
+.tw-bs .glyphicon-floppy-disk:before {
+ content: "\e172";
+}
+.tw-bs .glyphicon-floppy-saved:before {
+ content: "\e173";
+}
+.tw-bs .glyphicon-floppy-remove:before {
+ content: "\e174";
+}
+.tw-bs .glyphicon-floppy-save:before {
+ content: "\e175";
+}
+.tw-bs .glyphicon-floppy-open:before {
+ content: "\e176";
+}
+.tw-bs .glyphicon-credit-card:before {
+ content: "\e177";
+}
+.tw-bs .glyphicon-transfer:before {
+ content: "\e178";
+}
+.tw-bs .glyphicon-cutlery:before {
+ content: "\e179";
+}
+.tw-bs .glyphicon-header:before {
+ content: "\e180";
+}
+.tw-bs .glyphicon-compressed:before {
+ content: "\e181";
+}
+.tw-bs .glyphicon-earphone:before {
+ content: "\e182";
+}
+.tw-bs .glyphicon-phone-alt:before {
+ content: "\e183";
+}
+.tw-bs .glyphicon-tower:before {
+ content: "\e184";
+}
+.tw-bs .glyphicon-stats:before {
+ content: "\e185";
+}
+.tw-bs .glyphicon-sd-video:before {
+ content: "\e186";
+}
+.tw-bs .glyphicon-hd-video:before {
+ content: "\e187";
+}
+.tw-bs .glyphicon-subtitles:before {
+ content: "\e188";
+}
+.tw-bs .glyphicon-sound-stereo:before {
+ content: "\e189";
+}
+.tw-bs .glyphicon-sound-dolby:before {
+ content: "\e190";
+}
+.tw-bs .glyphicon-sound-5-1:before {
+ content: "\e191";
+}
+.tw-bs .glyphicon-sound-6-1:before {
+ content: "\e192";
+}
+.tw-bs .glyphicon-sound-7-1:before {
+ content: "\e193";
+}
+.tw-bs .glyphicon-copyright-mark:before {
+ content: "\e194";
+}
+.tw-bs .glyphicon-registration-mark:before {
+ content: "\e195";
+}
+.tw-bs .glyphicon-cloud-download:before {
+ content: "\e197";
+}
+.tw-bs .glyphicon-cloud-upload:before {
+ content: "\e198";
+}
+.tw-bs .glyphicon-tree-conifer:before {
+ content: "\e199";
+}
+.tw-bs .glyphicon-tree-deciduous:before {
+ content: "\e200";
+}
+.tw-bs .glyphicon-briefcase:before {
+ content: "\1f4bc";
+}
+.tw-bs .glyphicon-calendar:before {
+ content: "\1f4c5";
+}
+.tw-bs .glyphicon-pushpin:before {
+ content: "\1f4cc";
+}
+.tw-bs .glyphicon-paperclip:before {
+ content: "\1f4ce";
+}
+.tw-bs .glyphicon-camera:before {
+ content: "\1f4f7";
+}
+.tw-bs .glyphicon-lock:before {
+ content: "\1f512";
+}
+.tw-bs .glyphicon-bell:before {
+ content: "\1f514";
+}
+.tw-bs .glyphicon-bookmark:before {
+ content: "\1f516";
+}
+.tw-bs .glyphicon-fire:before {
+ content: "\1f525";
+}
+.tw-bs .glyphicon-wrench:before {
+ content: "\1f527";
+}
+.tw-bs .caret {
+ display: inline-block;
+ width: 0;
+ height: 0;
+ margin-left: 2px;
+ vertical-align: middle;
+ border-top: 4px solid #000000;
+ border-right: 4px solid transparent;
+ border-left: 4px solid transparent;
+ border-bottom: 0 dotted;
+ content: "";
+}
+.tw-bs .dropdown {
+ position: relative;
+}
+.tw-bs .dropdown-toggle:focus {
+ outline: 0;
+}
+.tw-bs .dropdown-menu {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ z-index: 1000;
+ display: none;
+ float: left;
+ min-width: 160px;
+ padding: 5px 0;
+ margin: 2px 0 0;
+ list-style: none;
+ font-size: 14px;
+ background-color: #ffffff;
+ border: 1px solid #cccccc;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ border-radius: 4px;
+ -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+ background-clip: padding-box;
+}
+.tw-bs .dropdown-menu.pull-right {
+ right: 0;
+ left: auto;
+}
+.tw-bs .dropdown-menu .divider {
+ height: 1px;
+ margin: 9px 0;
+ overflow: hidden;
+ background-color: #e5e5e5;
+}
+.tw-bs .dropdown-menu > li > a {
+ display: block;
+ padding: 3px 20px;
+ clear: both;
+ font-weight: normal;
+ line-height: 1.428571429;
+ color: #333333;
+ white-space: nowrap;
+}
+.tw-bs .dropdown-menu > li > a:hover,
+.tw-bs .dropdown-menu > li > a:focus {
+ text-decoration: none;
+ color: #ffffff;
+ background-color: #428bca;
+}
+.tw-bs .dropdown-menu > .active > a,
+.tw-bs .dropdown-menu > .active > a:hover,
+.tw-bs .dropdown-menu > .active > a:focus {
+ color: #ffffff;
+ text-decoration: none;
+ outline: 0;
+ background-color: #428bca;
+}
+.tw-bs .dropdown-menu > .disabled > a,
+.tw-bs .dropdown-menu > .disabled > a:hover,
+.tw-bs .dropdown-menu > .disabled > a:focus {
+ color: #999999;
+}
+.tw-bs .dropdown-menu > .disabled > a:hover,
+.tw-bs .dropdown-menu > .disabled > a:focus {
+ text-decoration: none;
+ background-color: transparent;
+ background-image: none;
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+ cursor: not-allowed;
+}
+.tw-bs .open > .dropdown-menu {
+ display: block;
+}
+.tw-bs .open > a {
+ outline: 0;
+}
+.tw-bs .dropdown-header {
+ display: block;
+ padding: 3px 20px;
+ font-size: 12px;
+ line-height: 1.428571429;
+ color: #999999;
+}
+.tw-bs .dropdown-backdrop {
+ position: fixed;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ top: 0;
+ z-index: 990;
+}
+.tw-bs .pull-right > .dropdown-menu {
+ right: 0;
+ left: auto;
+}
+.tw-bs .dropup .caret,
+.tw-bs .navbar-fixed-bottom .dropdown .caret {
+ border-top: 0 dotted;
+ border-bottom: 4px solid #000000;
+ content: "";
+}
+.tw-bs .dropup .dropdown-menu,
+.tw-bs .navbar-fixed-bottom .dropdown .dropdown-menu {
+ top: auto;
+ bottom: 100%;
+ margin-bottom: 1px;
+}
+@media (min-width: 768px) {
+ .tw-bs .navbar-right .dropdown-menu {
+ right: 0;
+ left: auto;
+ }
+}
+.btn-default .tw-bs .caret {
+ border-top-color: #333333;
+}
+.btn-primary .tw-bs .caret,
+.btn-success .tw-bs .caret,
+.btn-warning .tw-bs .caret,
+.btn-danger .tw-bs .caret,
+.btn-info .tw-bs .caret {
+ border-top-color: #fff;
+}
+.tw-bs .dropup .btn-default .caret {
+ border-bottom-color: #333333;
+}
+.tw-bs .dropup .btn-primary .caret,
+.tw-bs .dropup .btn-success .caret,
+.tw-bs .dropup .btn-warning .caret,
+.tw-bs .dropup .btn-danger .caret,
+.tw-bs .dropup .btn-info .caret {
+ border-bottom-color: #fff;
+}
+.tw-bs .btn-group,
+.tw-bs .btn-group-vertical {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle;
+}
+.tw-bs .btn-group > .btn,
+.tw-bs .btn-group-vertical > .btn {
+ position: relative;
+ float: left;
+}
+.tw-bs .btn-group > .btn:hover,
+.tw-bs .btn-group-vertical > .btn:hover,
+.tw-bs .btn-group > .btn:focus,
+.tw-bs .btn-group-vertical > .btn:focus,
+.tw-bs .btn-group > .btn:active,
+.tw-bs .btn-group-vertical > .btn:active,
+.tw-bs .btn-group > .btn.active,
+.tw-bs .btn-group-vertical > .btn.active {
+ z-index: 2;
+}
+.tw-bs .btn-group > .btn:focus,
+.tw-bs .btn-group-vertical > .btn:focus {
+ outline: none;
+}
+.tw-bs .btn-group .btn + .btn,
+.tw-bs .btn-group .btn + .btn-group,
+.tw-bs .btn-group .btn-group + .btn,
+.tw-bs .btn-group .btn-group + .btn-group {
+ margin-left: -1px;
+}
+.tw-bs .btn-toolbar:before,
+.tw-bs .btn-toolbar:after {
+ content: " ";
+ /* 1 */
+ display: table;
+ /* 2 */
+}
+.tw-bs .btn-toolbar:after {
+ clear: both;
+}
+.tw-bs .btn-toolbar:before,
+.tw-bs .btn-toolbar:after {
+ content: " ";
+ /* 1 */
+ display: table;
+ /* 2 */
+}
+.tw-bs .btn-toolbar:after {
+ clear: both;
+}
+.tw-bs .btn-toolbar .btn-group {
+ float: left;
+}
+.tw-bs .btn-toolbar > .btn + .btn,
+.tw-bs .btn-toolbar > .btn-group + .btn,
+.tw-bs .btn-toolbar > .btn + .btn-group,
+.tw-bs .btn-toolbar > .btn-group + .btn-group {
+ margin-left: 5px;
+}
+.tw-bs .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
+ border-radius: 0;
+}
+.tw-bs .btn-group > .btn:first-child {
+ margin-left: 0;
+}
+.tw-bs .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+}
+.tw-bs .btn-group > .btn:last-child:not(:first-child),
+.tw-bs .btn-group > .dropdown-toggle:not(:first-child) {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+}
+.tw-bs .btn-group > .btn-group {
+ float: left;
+}
+.tw-bs .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
+ border-radius: 0;
+}
+.tw-bs .btn-group > .btn-group:first-child > .btn:last-child,
+.tw-bs .btn-group > .btn-group:first-child > .dropdown-toggle {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+}
+.tw-bs .btn-group > .btn-group:last-child > .btn:first-child {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+}
+.tw-bs .btn-group .dropdown-toggle:active,
+.tw-bs .btn-group.open .dropdown-toggle {
+ outline: 0;
+}
+.tw-bs .btn-group-xs > .btn {
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+ padding: 1px 5px;
+}
+.tw-bs .btn-group-sm > .btn {
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+}
+.tw-bs .btn-group-lg > .btn {
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.33;
+ border-radius: 6px;
+}
+.tw-bs .btn-group > .btn + .dropdown-toggle {
+ padding-left: 8px;
+ padding-right: 8px;
+}
+.tw-bs .btn-group > .btn-lg + .dropdown-toggle {
+ padding-left: 12px;
+ padding-right: 12px;
+}
+.tw-bs .btn-group.open .dropdown-toggle {
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+}
+.tw-bs .btn .caret {
+ margin-left: 0;
+}
+.tw-bs .btn-lg .caret {
+ border-width: 5px 5px 0;
+ border-bottom-width: 0;
+}
+.tw-bs .dropup .btn-lg .caret {
+ border-width: 0 5px 5px;
+}
+.tw-bs .btn-group-vertical > .btn,
+.tw-bs .btn-group-vertical > .btn-group {
+ display: block;
+ float: none;
+ width: 100%;
+ max-width: 100%;
+}
+.tw-bs .btn-group-vertical > .btn-group:before,
+.tw-bs .btn-group-vertical > .btn-group:after {
+ content: " ";
+ /* 1 */
+ display: table;
+ /* 2 */
+}
+.tw-bs .btn-group-vertical > .btn-group:after {
+ clear: both;
+}
+.tw-bs .btn-group-vertical > .btn-group:before,
+.tw-bs .btn-group-vertical > .btn-group:after {
+ content: " ";
+ /* 1 */
+ display: table;
+ /* 2 */
+}
+.tw-bs .btn-group-vertical > .btn-group:after {
+ clear: both;
+}
+.tw-bs .btn-group-vertical > .btn-group > .btn {
+ float: none;
+}
+.tw-bs .btn-group-vertical > .btn + .btn,
+.tw-bs .btn-group-vertical > .btn + .btn-group,
+.tw-bs .btn-group-vertical > .btn-group + .btn,
+.tw-bs .btn-group-vertical > .btn-group + .btn-group {
+ margin-top: -1px;
+ margin-left: 0;
+}
+.tw-bs .btn-group-vertical > .btn:not(:first-child):not(:last-child) {
+ border-radius: 0;
+}
+.tw-bs .btn-group-vertical > .btn:first-child:not(:last-child) {
+ border-top-right-radius: 4px;
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+}
+.tw-bs .btn-group-vertical > .btn:last-child:not(:first-child) {
+ border-bottom-left-radius: 4px;
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+}
+.tw-bs .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
+ border-radius: 0;
+}
+.tw-bs .btn-group-vertical > .btn-group:first-child > .btn:last-child,
+.tw-bs .btn-group-vertical > .btn-group:first-child > .dropdown-toggle {
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+}
+.tw-bs .btn-group-vertical > .btn-group:last-child > .btn:first-child {
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+}
+.tw-bs .btn-group-justified {
+ display: table;
+ width: 100%;
+ table-layout: fixed;
+ border-collapse: separate;
+}
+.tw-bs .btn-group-justified .btn {
+ float: none;
+ display: table-cell;
+ width: 1%;
+}
+.tw-bs [data-toggle="buttons"] > .btn > input[type="radio"],
+.tw-bs [data-toggle="buttons"] > .btn > input[type="checkbox"] {
+ display: none;
+}
+.tw-bs .input-group {
+ position: relative;
+ display: table;
+ border-collapse: separate;
+}
+.tw-bs .input-group.col {
+ float: none;
+ padding-left: 0;
+ padding-right: 0;
+}
+.tw-bs .input-group .form-control {
+ width: 100%;
+ margin-bottom: 0;
+}
+.tw-bs .input-group-lg > .form-control,
+.tw-bs .input-group-lg > .input-group-addon,
+.tw-bs .input-group-lg > .input-group-btn > .btn {
+ height: 45px;
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.33;
+ border-radius: 6px;
+}
+select.tw-bs .input-group-lg > .form-control,
+select.tw-bs .input-group-lg > .input-group-addon,
+select.tw-bs .input-group-lg > .input-group-btn > .btn {
+ height: 45px;
+ line-height: 45px;
+}
+textarea.tw-bs .input-group-lg > .form-control,
+textarea.tw-bs .input-group-lg > .input-group-addon,
+textarea.tw-bs .input-group-lg > .input-group-btn > .btn {
+ height: auto;
+}
+.tw-bs .input-group-sm > .form-control,
+.tw-bs .input-group-sm > .input-group-addon,
+.tw-bs .input-group-sm > .input-group-btn > .btn {
+ height: 30px;
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+}
+select.tw-bs .input-group-sm > .form-control,
+select.tw-bs .input-group-sm > .input-group-addon,
+select.tw-bs .input-group-sm > .input-group-btn > .btn {
+ height: 30px;
+ line-height: 30px;
+}
+textarea.tw-bs .input-group-sm > .form-control,
+textarea.tw-bs .input-group-sm > .input-group-addon,
+textarea.tw-bs .input-group-sm > .input-group-btn > .btn {
+ height: auto;
+}
+.tw-bs .input-group-addon,
+.tw-bs .input-group-btn,
+.tw-bs .input-group .form-control {
+ display: table-cell;
+}
+.tw-bs .input-group-addon:not(:first-child):not(:last-child),
+.tw-bs .input-group-btn:not(:first-child):not(:last-child),
+.tw-bs .input-group .form-control:not(:first-child):not(:last-child) {
+ border-radius: 0;
+}
+.tw-bs .input-group-addon,
+.tw-bs .input-group-btn {
+ width: 1%;
+ white-space: nowrap;
+ vertical-align: middle;
+}
+.tw-bs .input-group-addon {
+ padding: 6px 12px;
+ font-size: 14px;
+ font-weight: normal;
+ line-height: 1;
+ text-align: center;
+ background-color: #eeeeee;
+ border: 1px solid #cccccc;
+ border-radius: 4px;
+}
+.tw-bs .input-group-addon.input-sm {
+ padding: 5px 10px;
+ font-size: 12px;
+ border-radius: 3px;
+}
+.tw-bs .input-group-addon.input-lg {
+ padding: 10px 16px;
+ font-size: 18px;
+ border-radius: 6px;
+}
+.tw-bs .input-group-addon input[type="radio"],
+.tw-bs .input-group-addon input[type="checkbox"] {
+ margin-top: 0;
+}
+.tw-bs .input-group .form-control:first-child,
+.tw-bs .input-group-addon:first-child,
+.tw-bs .input-group-btn:first-child > .btn,
+.tw-bs .input-group-btn:first-child > .dropdown-toggle,
+.tw-bs .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+}
+.tw-bs .input-group-addon:first-child {
+ border-right: 0;
+}
+.tw-bs .input-group .form-control:last-child,
+.tw-bs .input-group-addon:last-child,
+.tw-bs .input-group-btn:last-child > .btn,
+.tw-bs .input-group-btn:last-child > .dropdown-toggle,
+.tw-bs .input-group-btn:first-child > .btn:not(:first-child) {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+}
+.tw-bs .input-group-addon:last-child {
+ border-left: 0;
+}
+.tw-bs .input-group-btn {
+ position: relative;
+ white-space: nowrap;
+}
+.tw-bs .input-group-btn > .btn {
+ position: relative;
+}
+.tw-bs .input-group-btn > .btn + .btn {
+ margin-left: -4px;
+}
+.tw-bs .input-group-btn > .btn:hover,
+.tw-bs .input-group-btn > .btn:active {
+ z-index: 2;
+}
+.tw-bs .nav {
+ margin-bottom: 0;
+ padding-left: 0;
+ list-style: none;
+}
+.tw-bs .nav:before,
+.tw-bs .nav:after {
+ content: " ";
+ /* 1 */
+ display: table;
+ /* 2 */
+}
+.tw-bs .nav:after {
+ clear: both;
+}
+.tw-bs .nav:before,
+.tw-bs .nav:after {
+ content: " ";
+ /* 1 */
+ display: table;
+ /* 2 */
+}
+.tw-bs .nav:after {
+ clear: both;
+}
+.tw-bs .nav > li {
+ position: relative;
+ display: block;
+}
+.tw-bs .nav > li > a {
+ position: relative;
+ display: block;
+ padding: 10px 15px;
+}
+.tw-bs .nav > li > a:hover,
+.tw-bs .nav > li > a:focus {
+ text-decoration: none;
+ background-color: #eeeeee;
+}
+.tw-bs .nav > li.disabled > a {
+ color: #999999;
+}
+.tw-bs .nav > li.disabled > a:hover,
+.tw-bs .nav > li.disabled > a:focus {
+ color: #999999;
+ text-decoration: none;
+ background-color: transparent;
+ cursor: not-allowed;
+}
+.tw-bs .nav .open > a,
+.tw-bs .nav .open > a:hover,
+.tw-bs .nav .open > a:focus {
+ background-color: #eeeeee;
+ border-color: #428bca;
+}
+.tw-bs .nav .nav-divider {
+ height: 1px;
+ margin: 9px 0;
+ overflow: hidden;
+ background-color: #e5e5e5;
+}
+.tw-bs .nav > li > a > img {
+ max-width: none;
+}
+.tw-bs .nav-tabs {
+ border-bottom: 1px solid #dddddd;
+}
+.tw-bs .nav-tabs > li {
+ float: left;
+ margin-bottom: -1px;
+}
+.tw-bs .nav-tabs > li > a {
+ margin-right: 2px;
+ line-height: 1.428571429;
+ border: 1px solid transparent;
+ border-radius: 4px 4px 0 0;
+}
+.tw-bs .nav-tabs > li > a:hover {
+ border-color: #eeeeee #eeeeee #dddddd;
+}
+.tw-bs .nav-tabs > li.active > a,
+.tw-bs .nav-tabs > li.active > a:hover,
+.tw-bs .nav-tabs > li.active > a:focus {
+ color: #555555;
+ background-color: #ffffff;
+ border: 1px solid #dddddd;
+ border-bottom-color: transparent;
+ cursor: default;
+}
+.tw-bs .nav-tabs.nav-justified {
+ width: 100%;
+ border-bottom: 0;
+}
+.tw-bs .nav-tabs.nav-justified > li {
+ float: none;
+}
+.tw-bs .nav-tabs.nav-justified > li > a {
+ text-align: center;
+}
+@media (min-width: 768px) {
+ .tw-bs .nav-tabs.nav-justified > li {
+ display: table-cell;
+ width: 1%;
+ }
+}
+.tw-bs .nav-tabs.nav-justified > li > a {
+ border-bottom: 1px solid #dddddd;
+ margin-right: 0;
+}
+.tw-bs .nav-tabs.nav-justified > .active > a {
+ border-bottom-color: #ffffff;
+}
+.tw-bs .nav-pills > li {
+ float: left;
+}
+.tw-bs .nav-pills > li > a {
+ border-radius: 5px;
+}
+.tw-bs .nav-pills > li + li {
+ margin-left: 2px;
+}
+.tw-bs .nav-pills > li.active > a,
+.tw-bs .nav-pills > li.active > a:hover,
+.tw-bs .nav-pills > li.active > a:focus {
+ color: #ffffff;
+ background-color: #428bca;
+}
+.tw-bs .nav-stacked > li {
+ float: none;
+}
+.tw-bs .nav-stacked > li + li {
+ margin-top: 2px;
+ margin-left: 0;
+}
+.tw-bs .nav-justified {
+ width: 100%;
+}
+.tw-bs .nav-justified > li {
+ float: none;
+}
+.tw-bs .nav-justified > li > a {
+ text-align: center;
+}
+@media (min-width: 768px) {
+ .tw-bs .nav-justified > li {
+ display: table-cell;
+ width: 1%;
+ }
+}
+.tw-bs .nav-tabs-justified {
+ border-bottom: 0;
+}
+.tw-bs .nav-tabs-justified > li > a {
+ border-bottom: 1px solid #dddddd;
+ margin-right: 0;
+}
+.tw-bs .nav-tabs-justified > .active > a {
+ border-bottom-color: #ffffff;
+}
+.tw-bs .tabbable:before,
+.tw-bs .tabbable:after {
+ content: " ";
+ /* 1 */
+ display: table;
+ /* 2 */
+}
+.tw-bs .tabbable:after {
+ clear: both;
+}
+.tw-bs .tabbable:before,
+.tw-bs .tabbable:after {
+ content: " ";
+ /* 1 */
+ display: table;
+ /* 2 */
+}
+.tw-bs .tabbable:after {
+ clear: both;
+}
+.tw-bs .tab-content > .tab-pane,
+.tw-bs .pill-content > .pill-pane {
+ display: none;
+}
+.tw-bs .tab-content > .active,
+.tw-bs .pill-content > .active {
+ display: block;
+}
+.tw-bs .nav .caret {
+ border-top-color: #428bca;
+ border-bottom-color: #428bca;
+}
+.tw-bs .nav a:hover .caret {
+ border-top-color: #2a6496;
+ border-bottom-color: #2a6496;
+}
+.tw-bs .nav-tabs .dropdown-menu {
+ margin-top: -1px;
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+}
+.tw-bs .navbar {
+ position: relative;
+ z-index: 1000;
+ min-height: 50px;
+ margin-bottom: 20px;
+ border: 1px solid transparent;
+}
+.tw-bs .navbar:before,
+.tw-bs .navbar:after {
+ content: " ";
+ /* 1 */
+ display: table;
+ /* 2 */
+}
+.tw-bs .navbar:after {
+ clear: both;
+}
+.tw-bs .navbar:before,
+.tw-bs .navbar:after {
+ content: " ";
+ /* 1 */
+ display: table;
+ /* 2 */
+}
+.tw-bs .navbar:after {
+ clear: both;
+}
+@media (min-width: 768px) {
+ .tw-bs .navbar {
+ border-radius: 4px;
+ }
+}
+.tw-bs .navbar-header:before,
+.tw-bs .navbar-header:after {
+ content: " ";
+ /* 1 */
+ display: table;
+ /* 2 */
+}
+.tw-bs .navbar-header:after {
+ clear: both;
+}
+.tw-bs .navbar-header:before,
+.tw-bs .navbar-header:after {
+ content: " ";
+ /* 1 */
+ display: table;
+ /* 2 */
+}
+.tw-bs .navbar-header:after {
+ clear: both;
+}
+@media (min-width: 768px) {
+ .tw-bs .navbar-header {
+ float: left;
+ }
+}
+.tw-bs .navbar-collapse {
+ max-height: 340px;
+ overflow-x: visible;
+ padding-right: 15px;
+ padding-left: 15px;
+ border-top: 1px solid transparent;
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
+ -webkit-overflow-scrolling: touch;
+}
+.tw-bs .navbar-collapse:before,
+.tw-bs .navbar-collapse:after {
+ content: " ";
+ /* 1 */
+ display: table;
+ /* 2 */
+}
+.tw-bs .navbar-collapse:after {
+ clear: both;
+}
+.tw-bs .navbar-collapse:before,
+.tw-bs .navbar-collapse:after {
+ content: " ";
+ /* 1 */
+ display: table;
+ /* 2 */
+}
+.tw-bs .navbar-collapse:after {
+ clear: both;
+}
+.tw-bs .navbar-collapse.in {
+ overflow-y: auto;
+}
+@media (min-width: 768px) {
+ .tw-bs .navbar-collapse {
+ width: auto;
+ border-top: 0;
+ box-shadow: none;
+ }
+ .tw-bs .navbar-collapse.collapse {
+ display: block !important;
+ height: auto !important;
+ padding-bottom: 0;
+ overflow: visible !important;
+ }
+ .tw-bs .navbar-collapse.in {
+ overflow-y: visible;
+ }
+ .tw-bs .navbar-collapse .navbar-nav.navbar-left:first-child {
+ margin-left: -15px;
+ }
+ .tw-bs .navbar-collapse .navbar-nav.navbar-right:last-child {
+ margin-right: -15px;
+ }
+ .tw-bs .navbar-collapse .navbar-text:last-child {
+ margin-right: 0;
+ }
+}
+.tw-bs .container > .navbar-header,
+.tw-bs .container > .navbar-collapse {
+ margin-right: -15px;
+ margin-left: -15px;
+}
+@media (min-width: 768px) {
+ .tw-bs .container > .navbar-header,
+ .tw-bs .container > .navbar-collapse {
+ margin-right: 0;
+ margin-left: 0;
+ }
+}
+.tw-bs .navbar-static-top {
+ border-width: 0 0 1px;
+}
+@media (min-width: 768px) {
+ .tw-bs .navbar-static-top {
+ border-radius: 0;
+ }
+}
+.tw-bs .navbar-fixed-top,
+.tw-bs .navbar-fixed-bottom {
+ position: fixed;
+ right: 0;
+ left: 0;
+ border-width: 0 0 1px;
+}
+@media (min-width: 768px) {
+ .tw-bs .navbar-fixed-top,
+ .tw-bs .navbar-fixed-bottom {
+ border-radius: 0;
+ }
+}
+.tw-bs .navbar-fixed-top {
+ z-index: 1030;
+ top: 0;
+}
+.tw-bs .navbar-fixed-bottom {
+ bottom: 0;
+ margin-bottom: 0;
+}
+.tw-bs .navbar-brand {
+ float: left;
+ padding: 15px 15px;
+ font-size: 18px;
+ line-height: 20px;
+}
+.tw-bs .navbar-brand:hover,
+.tw-bs .navbar-brand:focus {
+ text-decoration: none;
+}
+@media (min-width: 768px) {
+ .navbar > .container .tw-bs .navbar-brand {
+ margin-left: -15px;
+ }
+}
+.tw-bs .navbar-toggle {
+ position: relative;
+ float: right;
+ margin-right: 15px;
+ padding: 9px 10px;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ background-color: transparent;
+ border: 1px solid transparent;
+ border-radius: 4px;
+}
+.tw-bs .navbar-toggle .icon-bar {
+ display: block;
+ width: 22px;
+ height: 2px;
+ border-radius: 1px;
+}
+.tw-bs .navbar-toggle .icon-bar + .icon-bar {
+ margin-top: 4px;
+}
+@media (min-width: 768px) {
+ .tw-bs .navbar-toggle {
+ display: none;
+ }
+}
+.tw-bs .navbar-nav {
+ margin: 7.5px -15px;
+}
+.tw-bs .navbar-nav > li > a {
+ padding-top: 10px;
+ padding-bottom: 10px;
+ line-height: 20px;
+}
+@media (max-width: 767px) {
+ .tw-bs .navbar-nav .open .dropdown-menu {
+ position: static;
+ float: none;
+ width: auto;
+ margin-top: 0;
+ background-color: transparent;
+ border: 0;
+ box-shadow: none;
+ }
+ .tw-bs .navbar-nav .open .dropdown-menu > li > a,
+ .tw-bs .navbar-nav .open .dropdown-menu .dropdown-header {
+ padding: 5px 15px 5px 25px;
+ }
+ .tw-bs .navbar-nav .open .dropdown-menu > li > a {
+ line-height: 20px;
+ }
+ .tw-bs .navbar-nav .open .dropdown-menu > li > a:hover,
+ .tw-bs .navbar-nav .open .dropdown-menu > li > a:focus {
+ background-image: none;
+ }
+}
+@media (min-width: 768px) {
+ .tw-bs .navbar-nav {
+ float: left;
+ margin: 0;
+ }
+ .tw-bs .navbar-nav > li {
+ float: left;
+ }
+ .tw-bs .navbar-nav > li > a {
+ padding-top: 15px;
+ padding-bottom: 15px;
+ }
+}
+@media (min-width: 768px) {
+ .tw-bs .navbar-left {
+ float: left !important;
+ }
+ .tw-bs .navbar-right {
+ float: right !important;
+ }
+}
+.tw-bs .navbar-form {
+ margin-left: -15px;
+ margin-right: -15px;
+ padding: 10px 15px;
+ border-top: 1px solid transparent;
+ border-bottom: 1px solid transparent;
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+ margin-top: 8px;
+ margin-bottom: 8px;
+}
+@media (min-width: 768px) {
+ .tw-bs .navbar-form .form-group {
+ display: inline-block;
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .tw-bs .navbar-form .form-control {
+ display: inline-block;
+ }
+ .tw-bs .navbar-form .radio,
+ .tw-bs .navbar-form .checkbox {
+ display: inline-block;
+ margin-top: 0;
+ margin-bottom: 0;
+ padding-left: 0;
+ }
+ .tw-bs .navbar-form .radio input[type="radio"],
+ .tw-bs .navbar-form .checkbox input[type="checkbox"] {
+ float: none;
+ margin-left: 0;
+ }
+}
+@media (max-width: 767px) {
+ .tw-bs .navbar-form .form-group {
+ margin-bottom: 5px;
+ }
+}
+@media (min-width: 768px) {
+ .tw-bs .navbar-form {
+ width: auto;
+ border: 0;
+ margin-left: 0;
+ margin-right: 0;
+ padding-top: 0;
+ padding-bottom: 0;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ }
+}
+.tw-bs .navbar-nav > li > .dropdown-menu {
+ margin-top: 0;
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+}
+.tw-bs .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+}
+.tw-bs .navbar-nav.pull-right > li > .dropdown-menu,
+.tw-bs .navbar-nav > li > .dropdown-menu.pull-right {
+ left: auto;
+ right: 0;
+}
+.tw-bs .navbar-btn {
+ margin-top: 8px;
+ margin-bottom: 8px;
+}
+.tw-bs .navbar-text {
+ float: left;
+ margin-top: 15px;
+ margin-bottom: 15px;
+}
+@media (min-width: 768px) {
+ .tw-bs .navbar-text {
+ margin-left: 15px;
+ margin-right: 15px;
+ }
+}
+.tw-bs .navbar-default {
+ background-color: #f8f8f8;
+ border-color: #e7e7e7;
+}
+.tw-bs .navbar-default .navbar-brand {
+ color: #777777;
+}
+.tw-bs .navbar-default .navbar-brand:hover,
+.tw-bs .navbar-default .navbar-brand:focus {
+ color: #5e5e5e;
+ background-color: transparent;
+}
+.tw-bs .navbar-default .navbar-text {
+ color: #777777;
+}
+.tw-bs .navbar-default .navbar-nav > li > a {
+ color: #777777;
+}
+.tw-bs .navbar-default .navbar-nav > li > a:hover,
+.tw-bs .navbar-default .navbar-nav > li > a:focus {
+ color: #333333;
+ background-color: transparent;
+}
+.tw-bs .navbar-default .navbar-nav > .active > a,
+.tw-bs .navbar-default .navbar-nav > .active > a:hover,
+.tw-bs .navbar-default .navbar-nav > .active > a:focus {
+ color: #555555;
+ background-color: #e7e7e7;
+}
+.tw-bs .navbar-default .navbar-nav > .disabled > a,
+.tw-bs .navbar-default .navbar-nav > .disabled > a:hover,
+.tw-bs .navbar-default .navbar-nav > .disabled > a:focus {
+ color: #cccccc;
+ background-color: transparent;
+}
+.tw-bs .navbar-default .navbar-toggle {
+ border-color: #dddddd;
+}
+.tw-bs .navbar-default .navbar-toggle:hover,
+.tw-bs .navbar-default .navbar-toggle:focus {
+ background-color: #dddddd;
+}
+.tw-bs .navbar-default .navbar-toggle .icon-bar {
+ background-color: #cccccc;
+}
+.tw-bs .navbar-default .navbar-collapse,
+.tw-bs .navbar-default .navbar-form {
+ border-color: #e6e6e6;
+}
+.tw-bs .navbar-default .navbar-nav > .dropdown > a:hover .caret,
+.tw-bs .navbar-default .navbar-nav > .dropdown > a:focus .caret {
+ border-top-color: #333333;
+ border-bottom-color: #333333;
+}
+.tw-bs .navbar-default .navbar-nav > .open > a,
+.tw-bs .navbar-default .navbar-nav > .open > a:hover,
+.tw-bs .navbar-default .navbar-nav > .open > a:focus {
+ background-color: #e7e7e7;
+ color: #555555;
+}
+.tw-bs .navbar-default .navbar-nav > .open > a .caret,
+.tw-bs .navbar-default .navbar-nav > .open > a:hover .caret,
+.tw-bs .navbar-default .navbar-nav > .open > a:focus .caret {
+ border-top-color: #555555;
+ border-bottom-color: #555555;
+}
+.tw-bs .navbar-default .navbar-nav > .dropdown > a .caret {
+ border-top-color: #777777;
+ border-bottom-color: #777777;
+}
+@media (max-width: 767px) {
+ .tw-bs .navbar-default .navbar-nav .open .dropdown-menu > li > a {
+ color: #777777;
+ }
+ .tw-bs .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
+ .tw-bs .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
+ color: #333333;
+ background-color: transparent;
+ }
+ .tw-bs .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
+ .tw-bs .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
+ .tw-bs .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
+ color: #555555;
+ background-color: #e7e7e7;
+ }
+ .tw-bs .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
+ .tw-bs .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
+ .tw-bs .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
+ color: #cccccc;
+ background-color: transparent;
+ }
+}
+.tw-bs .navbar-default .navbar-link {
+ color: #777777;
+}
+.tw-bs .navbar-default .navbar-link:hover {
+ color: #333333;
+}
+.tw-bs .navbar-inverse {
+ background-color: #222222;
+ border-color: #080808;
+}
+.tw-bs .navbar-inverse .navbar-brand {
+ color: #999999;
+}
+.tw-bs .navbar-inverse .navbar-brand:hover,
+.tw-bs .navbar-inverse .navbar-brand:focus {
+ color: #ffffff;
+ background-color: transparent;
+}
+.tw-bs .navbar-inverse .navbar-text {
+ color: #999999;
+}
+.tw-bs .navbar-inverse .navbar-nav > li > a {
+ color: #999999;
+}
+.tw-bs .navbar-inverse .navbar-nav > li > a:hover,
+.tw-bs .navbar-inverse .navbar-nav > li > a:focus {
+ color: #ffffff;
+ background-color: transparent;
+}
+.tw-bs .navbar-inverse .navbar-nav > .active > a,
+.tw-bs .navbar-inverse .navbar-nav > .active > a:hover,
+.tw-bs .navbar-inverse .navbar-nav > .active > a:focus {
+ color: #ffffff;
+ background-color: #080808;
+}
+.tw-bs .navbar-inverse .navbar-nav > .disabled > a,
+.tw-bs .navbar-inverse .navbar-nav > .disabled > a:hover,
+.tw-bs .navbar-inverse .navbar-nav > .disabled > a:focus {
+ color: #444444;
+ background-color: transparent;
+}
+.tw-bs .navbar-inverse .navbar-toggle {
+ border-color: #333333;
+}
+.tw-bs .navbar-inverse .navbar-toggle:hover,
+.tw-bs .navbar-inverse .navbar-toggle:focus {
+ background-color: #333333;
+}
+.tw-bs .navbar-inverse .navbar-toggle .icon-bar {
+ background-color: #ffffff;
+}
+.tw-bs .navbar-inverse .navbar-collapse,
+.tw-bs .navbar-inverse .navbar-form {
+ border-color: #101010;
+}
+.tw-bs .navbar-inverse .navbar-nav > .open > a,
+.tw-bs .navbar-inverse .navbar-nav > .open > a:hover,
+.tw-bs .navbar-inverse .navbar-nav > .open > a:focus {
+ background-color: #080808;
+ color: #ffffff;
+}
+.tw-bs .navbar-inverse .navbar-nav > .dropdown > a:hover .caret {
+ border-top-color: #ffffff;
+ border-bottom-color: #ffffff;
+}
+.tw-bs .navbar-inverse .navbar-nav > .dropdown > a .caret {
+ border-top-color: #999999;
+ border-bottom-color: #999999;
+}
+.tw-bs .navbar-inverse .navbar-nav > .open > a .caret,
+.tw-bs .navbar-inverse .navbar-nav > .open > a:hover .caret,
+.tw-bs .navbar-inverse .navbar-nav > .open > a:focus .caret {
+ border-top-color: #ffffff;
+ border-bottom-color: #ffffff;
+}
+@media (max-width: 767px) {
+ .tw-bs .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
+ border-color: #080808;
+ }
+ .tw-bs .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
+ color: #999999;
+ }
+ .tw-bs .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
+ .tw-bs .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
+ color: #ffffff;
+ background-color: transparent;
+ }
+ .tw-bs .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
+ .tw-bs .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
+ .tw-bs .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
+ color: #ffffff;
+ background-color: #080808;
+ }
+ .tw-bs .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
+ .tw-bs .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
+ .tw-bs .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
+ color: #444444;
+ background-color: transparent;
+ }
+}
+.tw-bs .navbar-inverse .navbar-link {
+ color: #999999;
+}
+.tw-bs .navbar-inverse .navbar-link:hover {
+ color: #ffffff;
+}
+.tw-bs .breadcrumb {
+ padding: 8px 15px;
+ margin-bottom: 20px;
+ list-style: none;
+ background-color: #f5f5f5;
+ border-radius: 4px;
+}
+.tw-bs .breadcrumb > li {
+ display: inline-block;
+}
+.tw-bs .breadcrumb > li + li:before {
+ content: "/\00a0";
+ padding: 0 5px;
+ color: #cccccc;
+}
+.tw-bs .breadcrumb > .active {
+ color: #999999;
+}
+.tw-bs .pagination {
+ display: inline-block;
+ padding-left: 0;
+ margin: 20px 0;
+ border-radius: 4px;
+}
+.tw-bs .pagination > li {
+ display: inline;
+}
+.tw-bs .pagination > li > a,
+.tw-bs .pagination > li > span {
+ position: relative;
+ float: left;
+ padding: 6px 12px;
+ line-height: 1.428571429;
+ text-decoration: none;
+ background-color: #ffffff;
+ border: 1px solid #dddddd;
+ margin-left: -1px;
+}
+.tw-bs .pagination > li:first-child > a,
+.tw-bs .pagination > li:first-child > span {
+ margin-left: 0;
+ border-bottom-left-radius: 4px;
+ border-top-left-radius: 4px;
+}
+.tw-bs .pagination > li:last-child > a,
+.tw-bs .pagination > li:last-child > span {
+ border-bottom-right-radius: 4px;
+ border-top-right-radius: 4px;
+}
+.tw-bs .pagination > li > a:hover,
+.tw-bs .pagination > li > span:hover,
+.tw-bs .pagination > li > a:focus,
+.tw-bs .pagination > li > span:focus {
+ background-color: #eeeeee;
+}
+.tw-bs .pagination > .active > a,
+.tw-bs .pagination > .active > span,
+.tw-bs .pagination > .active > a:hover,
+.tw-bs .pagination > .active > span:hover,
+.tw-bs .pagination > .active > a:focus,
+.tw-bs .pagination > .active > span:focus {
+ z-index: 2;
+ color: #ffffff;
+ background-color: #428bca;
+ border-color: #428bca;
+ cursor: default;
+}
+.tw-bs .pagination > .disabled > span,
+.tw-bs .pagination > .disabled > a,
+.tw-bs .pagination > .disabled > a:hover,
+.tw-bs .pagination > .disabled > a:focus {
+ color: #999999;
+ background-color: #ffffff;
+ border-color: #dddddd;
+ cursor: not-allowed;
+}
+.tw-bs .pagination-lg > li > a,
+.tw-bs .pagination-lg > li > span {
+ padding: 10px 16px;
+ font-size: 18px;
+}
+.tw-bs .pagination-lg > li:first-child > a,
+.tw-bs .pagination-lg > li:first-child > span {
+ border-bottom-left-radius: 6px;
+ border-top-left-radius: 6px;
+}
+.tw-bs .pagination-lg > li:last-child > a,
+.tw-bs .pagination-lg > li:last-child > span {
+ border-bottom-right-radius: 6px;
+ border-top-right-radius: 6px;
+}
+.tw-bs .pagination-sm > li > a,
+.tw-bs .pagination-sm > li > span {
+ padding: 5px 10px;
+ font-size: 12px;
+}
+.tw-bs .pagination-sm > li:first-child > a,
+.tw-bs .pagination-sm > li:first-child > span {
+ border-bottom-left-radius: 3px;
+ border-top-left-radius: 3px;
+}
+.tw-bs .pagination-sm > li:last-child > a,
+.tw-bs .pagination-sm > li:last-child > span {
+ border-bottom-right-radius: 3px;
+ border-top-right-radius: 3px;
+}
+.tw-bs .pager {
+ padding-left: 0;
+ margin: 20px 0;
+ list-style: none;
+ text-align: center;
+}
+.tw-bs .pager:before,
+.tw-bs .pager:after {
+ content: " ";
+ /* 1 */
+ display: table;
+ /* 2 */
+}
+.tw-bs .pager:after {
+ clear: both;
+}
+.tw-bs .pager:before,
+.tw-bs .pager:after {
+ content: " ";
+ /* 1 */
+ display: table;
+ /* 2 */
+}
+.tw-bs .pager:after {
+ clear: both;
+}
+.tw-bs .pager li {
+ display: inline;
+}
+.tw-bs .pager li > a,
+.tw-bs .pager li > span {
+ display: inline-block;
+ padding: 5px 14px;
+ background-color: #ffffff;
+ border: 1px solid #dddddd;
+ border-radius: 15px;
+}
+.tw-bs .pager li > a:hover,
+.tw-bs .pager li > a:focus {
+ text-decoration: none;
+ background-color: #eeeeee;
+}
+.tw-bs .pager .next > a,
+.tw-bs .pager .next > span {
+ float: right;
+}
+.tw-bs .pager .previous > a,
+.tw-bs .pager .previous > span {
+ float: left;
+}
+.tw-bs .pager .disabled > a,
+.tw-bs .pager .disabled > a:hover,
+.tw-bs .pager .disabled > a:focus,
+.tw-bs .pager .disabled > span {
+ color: #999999;
+ background-color: #ffffff;
+ cursor: not-allowed;
+}
+.tw-bs .label {
+ display: inline;
+ padding: .2em .6em .3em;
+ font-size: 75%;
+ font-weight: bold;
+ line-height: 1;
+ color: #ffffff;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: baseline;
+ border-radius: .25em;
+}
+.tw-bs .label[href]:hover,
+.tw-bs .label[href]:focus {
+ color: #ffffff;
+ text-decoration: none;
+ cursor: pointer;
+}
+.tw-bs .label:empty {
+ display: none;
+}
+.tw-bs .label-default {
+ background-color: #999999;
+}
+.tw-bs .label-default[href]:hover,
+.tw-bs .label-default[href]:focus {
+ background-color: #808080;
+}
+.tw-bs .label-primary {
+ background-color: #428bca;
+}
+.tw-bs .label-primary[href]:hover,
+.tw-bs .label-primary[href]:focus {
+ background-color: #3071a9;
+}
+.tw-bs .label-success {
+ background-color: #5cb85c;
+}
+.tw-bs .label-success[href]:hover,
+.tw-bs .label-success[href]:focus {
+ background-color: #449d44;
+}
+.tw-bs .label-info {
+ background-color: #5bc0de;
+}
+.tw-bs .label-info[href]:hover,
+.tw-bs .label-info[href]:focus {
+ background-color: #31b0d5;
+}
+.tw-bs .label-warning {
+ background-color: #f0ad4e;
+}
+.tw-bs .label-warning[href]:hover,
+.tw-bs .label-warning[href]:focus {
+ background-color: #ec971f;
+}
+.tw-bs .label-danger {
+ background-color: #d9534f;
+}
+.tw-bs .label-danger[href]:hover,
+.tw-bs .label-danger[href]:focus {
+ background-color: #c9302c;
+}
+.tw-bs .badge {
+ display: inline-block;
+ min-width: 10px;
+ padding: 3px 7px;
+ font-size: 12px;
+ font-weight: bold;
+ color: #ffffff;
+ line-height: 1;
+ vertical-align: baseline;
+ white-space: nowrap;
+ text-align: center;
+ background-color: #999999;
+ border-radius: 10px;
+}
+.tw-bs .badge:empty {
+ display: none;
+}
+.tw-bs a.badge:hover,
+.tw-bs a.badge:focus {
+ color: #ffffff;
+ text-decoration: none;
+ cursor: pointer;
+}
+.tw-bs .btn .badge {
+ position: relative;
+ top: -1px;
+}
+.tw-bs a.list-group-item.active > .badge,
+.tw-bs .nav-pills > .active > a > .badge {
+ color: #428bca;
+ background-color: #ffffff;
+}
+.tw-bs .nav-pills > li > a > .badge {
+ margin-left: 3px;
+}
+.tw-bs .jumbotron {
+ padding: 30px;
+ margin-bottom: 30px;
+ font-size: 21px;
+ font-weight: 200;
+ line-height: 2.1428571435;
+ color: inherit;
+ background-color: #eeeeee;
+}
+.tw-bs .jumbotron h1 {
+ line-height: 1;
+ color: inherit;
+}
+.tw-bs .jumbotron p {
+ line-height: 1.4;
+}
+.container .tw-bs .jumbotron {
+ border-radius: 6px;
+}
+@media screen and (min-width: 768px) {
+ .tw-bs .jumbotron {
+ padding-top: 48px;
+ padding-bottom: 48px;
+ }
+ .container .tw-bs .jumbotron {
+ padding-left: 60px;
+ padding-right: 60px;
+ }
+ .tw-bs .jumbotron h1 {
+ font-size: 63px;
+ }
+}
+.tw-bs .thumbnail {
+ padding: 4px;
+ line-height: 1.428571429;
+ background-color: #ffffff;
+ border: 1px solid #dddddd;
+ border-radius: 4px;
+ -webkit-transition: all 0.2s ease-in-out;
+ transition: all 0.2s ease-in-out;
+ display: inline-block;
+ max-width: 100%;
+ height: auto;
+ display: block;
+}
+.tw-bs .thumbnail > img {
+ display: block;
+ max-width: 100%;
+ height: auto;
+}
+.tw-bs a.thumbnail:hover,
+.tw-bs a.thumbnail:focus {
+ border-color: #428bca;
+}
+.tw-bs .thumbnail > img {
+ margin-left: auto;
+ margin-right: auto;
+}
+.tw-bs .thumbnail .caption {
+ padding: 9px;
+ color: #333333;
+}
+.tw-bs .alert {
+ padding: 15px;
+ margin-bottom: 20px;
+ border: 1px solid transparent;
+ border-radius: 4px;
+}
+.tw-bs .alert h4 {
+ margin-top: 0;
+ color: inherit;
+}
+.tw-bs .alert .alert-link {
+ font-weight: bold;
+}
+.tw-bs .alert > p,
+.tw-bs .alert > ul {
+ margin-bottom: 0;
+}
+.tw-bs .alert > p + p {
+ margin-top: 5px;
+}
+.tw-bs .alert-dismissable {
+ padding-right: 35px;
+}
+.tw-bs .alert-dismissable .close {
+ position: relative;
+ top: -2px;
+ right: -21px;
+ color: inherit;
+}
+.tw-bs .alert-success {
+ background-color: #dff0d8;
+ border-color: #d6e9c6;
+ color: #468847;
+}
+.tw-bs .alert-success hr {
+ border-top-color: #c9e2b3;
+}
+.tw-bs .alert-success .alert-link {
+ color: #356635;
+}
+.tw-bs .alert-info {
+ background-color: #d9edf7;
+ border-color: #bce8f1;
+ color: #3a87ad;
+}
+.tw-bs .alert-info hr {
+ border-top-color: #a6e1ec;
+}
+.tw-bs .alert-info .alert-link {
+ color: #2d6987;
+}
+.tw-bs .alert-warning {
+ background-color: #fcf8e3;
+ border-color: #fbeed5;
+ color: #c09853;
+}
+.tw-bs .alert-warning hr {
+ border-top-color: #f8e5be;
+}
+.tw-bs .alert-warning .alert-link {
+ color: #a47e3c;
+}
+.tw-bs .alert-danger {
+ background-color: #f2dede;
+ border-color: #eed3d7;
+ color: #b94a48;
+}
+.tw-bs .alert-danger hr {
+ border-top-color: #e6c1c7;
+}
+.tw-bs .alert-danger .alert-link {
+ color: #953b39;
+}
+@-webkit-keyframes progress-bar-stripes {
+ from {
+ background-position: 40px 0;
+ }
+ to {
+ background-position: 0 0;
+ }
+}
+@-moz-keyframes progress-bar-stripes {
+ from {
+ background-position: 40px 0;
+ }
+ to {
+ background-position: 0 0;
+ }
+}
+@-o-keyframes progress-bar-stripes {
+ from {
+ background-position: 0 0;
+ }
+ to {
+ background-position: 40px 0;
+ }
+}
+@keyframes progress-bar-stripes {
+ from {
+ background-position: 40px 0;
+ }
+ to {
+ background-position: 0 0;
+ }
+}
+.tw-bs .progress {
+ overflow: hidden;
+ height: 20px;
+ margin-bottom: 20px;
+ background-color: #f5f5f5;
+ border-radius: 4px;
+ -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+}
+.tw-bs .progress-bar {
+ float: left;
+ width: 0%;
+ height: 100%;
+ font-size: 12px;
+ color: #ffffff;
+ text-align: center;
+ background-color: #428bca;
+ -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+ -webkit-transition: width 0.6s ease;
+ transition: width 0.6s ease;
+}
+.tw-bs .progress-striped .progress-bar {
+ background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-size: 40px 40px;
+}
+.tw-bs .progress.active .progress-bar {
+ -webkit-animation: progress-bar-stripes 2s linear infinite;
+ -moz-animation: progress-bar-stripes 2s linear infinite;
+ -ms-animation: progress-bar-stripes 2s linear infinite;
+ -o-animation: progress-bar-stripes 2s linear infinite;
+ animation: progress-bar-stripes 2s linear infinite;
+}
+.tw-bs .progress-bar-success {
+ background-color: #5cb85c;
+}
+.progress-striped .tw-bs .progress-bar-success {
+ background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+}
+.tw-bs .progress-bar-info {
+ background-color: #5bc0de;
+}
+.progress-striped .tw-bs .progress-bar-info {
+ background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+}
+.tw-bs .progress-bar-warning {
+ background-color: #f0ad4e;
+}
+.progress-striped .tw-bs .progress-bar-warning {
+ background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+}
+.tw-bs .progress-bar-danger {
+ background-color: #d9534f;
+}
+.progress-striped .tw-bs .progress-bar-danger {
+ background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+}
+.tw-bs .media,
+.tw-bs .media-body {
+ overflow: hidden;
+ zoom: 1;
+}
+.tw-bs .media,
+.tw-bs .media .media {
+ margin-top: 15px;
+}
+.tw-bs .media:first-child {
+ margin-top: 0;
+}
+.tw-bs .media-object {
+ display: block;
+}
+.tw-bs .media-heading {
+ margin: 0 0 5px;
+}
+.tw-bs .media > .pull-left {
+ margin-right: 10px;
+}
+.tw-bs .media > .pull-right {
+ margin-left: 10px;
+}
+.tw-bs .media-list {
+ padding-left: 0;
+ list-style: none;
+}
+.tw-bs .list-group {
+ margin-bottom: 20px;
+ padding-left: 0;
+}
+.tw-bs .list-group-item {
+ position: relative;
+ display: block;
+ padding: 10px 15px;
+ margin-bottom: -1px;
+ background-color: #ffffff;
+ border: 1px solid #dddddd;
+}
+.tw-bs .list-group-item:first-child {
+ border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+}
+.tw-bs .list-group-item:last-child {
+ margin-bottom: 0;
+ border-bottom-right-radius: 4px;
+ border-bottom-left-radius: 4px;
+}
+.tw-bs .list-group-item > .badge {
+ float: right;
+}
+.tw-bs .list-group-item > .badge + .badge {
+ margin-right: 5px;
+}
+a.tw-bs .list-group-item {
+ color: #555555;
+}
+a.tw-bs .list-group-item .list-group-item-heading {
+ color: #333333;
+}
+a.tw-bs .list-group-item:hover,
+a.tw-bs .list-group-item:focus {
+ text-decoration: none;
+ background-color: #f5f5f5;
+}
+.tw-bs .list-group-item.active,
+.tw-bs .list-group-item.active:hover,
+.tw-bs .list-group-item.active:focus {
+ z-index: 2;
+ color: #ffffff;
+ background-color: #428bca;
+ border-color: #428bca;
+}
+.tw-bs .list-group-item.active .list-group-item-heading,
+.tw-bs .list-group-item.active:hover .list-group-item-heading,
+.tw-bs .list-group-item.active:focus .list-group-item-heading {
+ color: inherit;
+}
+.tw-bs .list-group-item.active .list-group-item-text,
+.tw-bs .list-group-item.active:hover .list-group-item-text,
+.tw-bs .list-group-item.active:focus .list-group-item-text {
+ color: #e1edf7;
+}
+.tw-bs .list-group-item-heading {
+ margin-top: 0;
+ margin-bottom: 5px;
+}
+.tw-bs .list-group-item-text {
+ margin-bottom: 0;
+ line-height: 1.3;
+}
+.tw-bs .panel {
+ margin-bottom: 20px;
+ background-color: #ffffff;
+ border: 1px solid transparent;
+ border-radius: 4px;
+ -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
+}
+.tw-bs .panel-body {
+ padding: 15px;
+}
+.tw-bs .panel-body:before,
+.tw-bs .panel-body:after {
+ content: " ";
+ /* 1 */
+ display: table;
+ /* 2 */
+}
+.tw-bs .panel-body:after {
+ clear: both;
+}
+.tw-bs .panel-body:before,
+.tw-bs .panel-body:after {
+ content: " ";
+ /* 1 */
+ display: table;
+ /* 2 */
+}
+.tw-bs .panel-body:after {
+ clear: both;
+}
+.tw-bs .panel > .list-group {
+ margin-bottom: 0;
+}
+.tw-bs .panel > .list-group .list-group-item {
+ border-width: 1px 0;
+}
+.tw-bs .panel > .list-group .list-group-item:first-child {
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+}
+.tw-bs .panel > .list-group .list-group-item:last-child {
+ border-bottom: 0;
+}
+.tw-bs .panel-heading + .list-group .list-group-item:first-child {
+ border-top-width: 0;
+}
+.tw-bs .panel > .table {
+ margin-bottom: 0;
+}
+.tw-bs .panel > .panel-body + .table {
+ border-top: 1px solid #dddddd;
+}
+.tw-bs .panel-heading {
+ padding: 10px 15px;
+ border-bottom: 1px solid transparent;
+ border-top-right-radius: 3px;
+ border-top-left-radius: 3px;
+}
+.tw-bs .panel-title {
+ margin-top: 0;
+ margin-bottom: 0;
+ font-size: 16px;
+}
+.tw-bs .panel-title > a {
+ color: inherit;
+}
+.tw-bs .panel-footer {
+ padding: 10px 15px;
+ background-color: #f5f5f5;
+ border-top: 1px solid #dddddd;
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px;
+}
+.tw-bs .panel-group .panel {
+ margin-bottom: 0;
+ border-radius: 4px;
+ overflow: hidden;
+}
+.tw-bs .panel-group .panel + .panel {
+ margin-top: 5px;
+}
+.tw-bs .panel-group .panel-heading {
+ border-bottom: 0;
+}
+.tw-bs .panel-group .panel-heading + .panel-collapse .panel-body {
+ border-top: 1px solid #dddddd;
+}
+.tw-bs .panel-group .panel-footer {
+ border-top: 0;
+}
+.tw-bs .panel-group .panel-footer + .panel-collapse .panel-body {
+ border-bottom: 1px solid #dddddd;
+}
+.tw-bs .panel-default {
+ border-color: #dddddd;
+}
+.tw-bs .panel-default > .panel-heading {
+ color: #333333;
+ background-color: #f5f5f5;
+ border-color: #dddddd;
+}
+.tw-bs .panel-default > .panel-heading + .panel-collapse .panel-body {
+ border-top-color: #dddddd;
+}
+.tw-bs .panel-default > .panel-footer + .panel-collapse .panel-body {
+ border-bottom-color: #dddddd;
+}
+.tw-bs .panel-primary {
+ border-color: #428bca;
+}
+.tw-bs .panel-primary > .panel-heading {
+ color: #ffffff;
+ background-color: #428bca;
+ border-color: #428bca;
+}
+.tw-bs .panel-primary > .panel-heading + .panel-collapse .panel-body {
+ border-top-color: #428bca;
+}
+.tw-bs .panel-primary > .panel-footer + .panel-collapse .panel-body {
+ border-bottom-color: #428bca;
+}
+.tw-bs .panel-success {
+ border-color: #d6e9c6;
+}
+.tw-bs .panel-success > .panel-heading {
+ color: #468847;
+ background-color: #dff0d8;
+ border-color: #d6e9c6;
+}
+.tw-bs .panel-success > .panel-heading + .panel-collapse .panel-body {
+ border-top-color: #d6e9c6;
+}
+.tw-bs .panel-success > .panel-footer + .panel-collapse .panel-body {
+ border-bottom-color: #d6e9c6;
+}
+.tw-bs .panel-warning {
+ border-color: #fbeed5;
+}
+.tw-bs .panel-warning > .panel-heading {
+ color: #c09853;
+ background-color: #fcf8e3;
+ border-color: #fbeed5;
+}
+.tw-bs .panel-warning > .panel-heading + .panel-collapse .panel-body {
+ border-top-color: #fbeed5;
+}
+.tw-bs .panel-warning > .panel-footer + .panel-collapse .panel-body {
+ border-bottom-color: #fbeed5;
+}
+.tw-bs .panel-danger {
+ border-color: #eed3d7;
+}
+.tw-bs .panel-danger > .panel-heading {
+ color: #b94a48;
+ background-color: #f2dede;
+ border-color: #eed3d7;
+}
+.tw-bs .panel-danger > .panel-heading + .panel-collapse .panel-body {
+ border-top-color: #eed3d7;
+}
+.tw-bs .panel-danger > .panel-footer + .panel-collapse .panel-body {
+ border-bottom-color: #eed3d7;
+}
+.tw-bs .panel-info {
+ border-color: #bce8f1;
+}
+.tw-bs .panel-info > .panel-heading {
+ color: #3a87ad;
+ background-color: #d9edf7;
+ border-color: #bce8f1;
+}
+.tw-bs .panel-info > .panel-heading + .panel-collapse .panel-body {
+ border-top-color: #bce8f1;
+}
+.tw-bs .panel-info > .panel-footer + .panel-collapse .panel-body {
+ border-bottom-color: #bce8f1;
+}
+.tw-bs .well {
+ min-height: 20px;
+ padding: 19px;
+ margin-bottom: 20px;
+ background-color: #f5f5f5;
+ border: 1px solid #e3e3e3;
+ border-radius: 4px;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
+}
+.tw-bs .well blockquote {
+ border-color: #ddd;
+ border-color: rgba(0, 0, 0, 0.15);
+}
+.tw-bs .well-lg {
+ padding: 24px;
+ border-radius: 6px;
+}
+.tw-bs .well-sm {
+ padding: 9px;
+ border-radius: 3px;
+}
+.tw-bs .close {
+ float: right;
+ font-size: 21px;
+ font-weight: bold;
+ line-height: 1;
+ color: #000000;
+ text-shadow: 0 1px 0 #ffffff;
+ opacity: 0.2;
+ filter: alpha(opacity=20);
+}
+.tw-bs .close:hover,
+.tw-bs .close:focus {
+ color: #000000;
+ text-decoration: none;
+ cursor: pointer;
+ opacity: 0.5;
+ filter: alpha(opacity=50);
+}
+button.tw-bs .close {
+ padding: 0;
+ cursor: pointer;
+ background: transparent;
+ border: 0;
+ -webkit-appearance: none;
+}
+.tw-bs .modal-open {
+ overflow: hidden;
+}
+body.tw-bs .modal-open,
+.tw-bs .modal-open .navbar-fixed-top,
+.tw-bs .modal-open .navbar-fixed-bottom {
+ margin-right: 15px;
+}
+.tw-bs .modal {
+ display: none;
+ overflow: auto;
+ overflow-y: scroll;
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1040;
+}
+.tw-bs .modal.fade .modal-dialog {
+ -webkit-transform: translate(0, -25%);
+ -ms-transform: translate(0, -25%);
+ transform: translate(0, -25%);
+ -webkit-transition: -webkit-transform 0.3s ease-out;
+ -moz-transition: -moz-transform 0.3s ease-out;
+ -o-transition: -o-transform 0.3s ease-out;
+ transition: transform 0.3s ease-out;
+}
+.tw-bs .modal.in .modal-dialog {
+ -webkit-transform: translate(0, 0);
+ -ms-transform: translate(0, 0);
+ transform: translate(0, 0);
+}
+.tw-bs .modal-dialog {
+ margin-left: auto;
+ margin-right: auto;
+ width: auto;
+ padding: 10px;
+ z-index: 1050;
+}
+.tw-bs .modal-content {
+ position: relative;
+ background-color: #ffffff;
+ border: 1px solid #999999;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 6px;
+ -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
+ box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
+ background-clip: padding-box;
+ outline: none;
+}
+.tw-bs .modal-backdrop {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1030;
+ background-color: #000000;
+}
+.tw-bs .modal-backdrop.fade {
+ opacity: 0;
+ filter: alpha(opacity=0);
+}
+.tw-bs .modal-backdrop.in {
+ opacity: 0.5;
+ filter: alpha(opacity=50);
+}
+.tw-bs .modal-header {
+ padding: 15px;
+ border-bottom: 1px solid #e5e5e5;
+ min-height: 16.428571429px;
+}
+.tw-bs .modal-header .close {
+ margin-top: -2px;
+}
+.tw-bs .modal-title {
+ margin: 0;
+ line-height: 1.428571429;
+}
+.tw-bs .modal-body {
+ position: relative;
+ padding: 20px;
+}
+.tw-bs .modal-footer {
+ margin-top: 15px;
+ padding: 19px 20px 20px;
+ text-align: right;
+ border-top: 1px solid #e5e5e5;
+}
+.tw-bs .modal-footer:before,
+.tw-bs .modal-footer:after {
+ content: " ";
+ /* 1 */
+ display: table;
+ /* 2 */
+}
+.tw-bs .modal-footer:after {
+ clear: both;
+}
+.tw-bs .modal-footer:before,
+.tw-bs .modal-footer:after {
+ content: " ";
+ /* 1 */
+ display: table;
+ /* 2 */
+}
+.tw-bs .modal-footer:after {
+ clear: both;
+}
+.tw-bs .modal-footer .btn + .btn {
+ margin-left: 5px;
+ margin-bottom: 0;
+}
+.tw-bs .modal-footer .btn-group .btn + .btn {
+ margin-left: -1px;
+}
+.tw-bs .modal-footer .btn-block + .btn-block {
+ margin-left: 0;
+}
+@media screen and (min-width: 768px) {
+ .tw-bs .modal-dialog {
+ left: 50%;
+ right: auto;
+ width: 600px;
+ padding-top: 30px;
+ padding-bottom: 30px;
+ }
+ .tw-bs .modal-content {
+ -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
+ }
+}
+.tw-bs .tooltip {
+ position: absolute;
+ z-index: 1030;
+ display: block;
+ visibility: visible;
+ font-size: 12px;
+ line-height: 1.4;
+ opacity: 0;
+ filter: alpha(opacity=0);
+}
+.tw-bs .tooltip.in {
+ opacity: 0.9;
+ filter: alpha(opacity=90);
+}
+.tw-bs .tooltip.top {
+ margin-top: -3px;
+ padding: 5px 0;
+}
+.tw-bs .tooltip.right {
+ margin-left: 3px;
+ padding: 0 5px;
+}
+.tw-bs .tooltip.bottom {
+ margin-top: 3px;
+ padding: 5px 0;
+}
+.tw-bs .tooltip.left {
+ margin-left: -3px;
+ padding: 0 5px;
+}
+.tw-bs .tooltip-inner {
+ max-width: 200px;
+ padding: 3px 8px;
+ color: #ffffff;
+ text-align: center;
+ text-decoration: none;
+ background-color: #000000;
+ border-radius: 4px;
+}
+.tw-bs .tooltip-arrow {
+ position: absolute;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+.tw-bs .tooltip.top .tooltip-arrow {
+ bottom: 0;
+ left: 50%;
+ margin-left: -5px;
+ border-width: 5px 5px 0;
+ border-top-color: #000000;
+}
+.tw-bs .tooltip.top-left .tooltip-arrow {
+ bottom: 0;
+ left: 5px;
+ border-width: 5px 5px 0;
+ border-top-color: #000000;
+}
+.tw-bs .tooltip.top-right .tooltip-arrow {
+ bottom: 0;
+ right: 5px;
+ border-width: 5px 5px 0;
+ border-top-color: #000000;
+}
+.tw-bs .tooltip.right .tooltip-arrow {
+ top: 50%;
+ left: 0;
+ margin-top: -5px;
+ border-width: 5px 5px 5px 0;
+ border-right-color: #000000;
+}
+.tw-bs .tooltip.left .tooltip-arrow {
+ top: 50%;
+ right: 0;
+ margin-top: -5px;
+ border-width: 5px 0 5px 5px;
+ border-left-color: #000000;
+}
+.tw-bs .tooltip.bottom .tooltip-arrow {
+ top: 0;
+ left: 50%;
+ margin-left: -5px;
+ border-width: 0 5px 5px;
+ border-bottom-color: #000000;
+}
+.tw-bs .tooltip.bottom-left .tooltip-arrow {
+ top: 0;
+ left: 5px;
+ border-width: 0 5px 5px;
+ border-bottom-color: #000000;
+}
+.tw-bs .tooltip.bottom-right .tooltip-arrow {
+ top: 0;
+ right: 5px;
+ border-width: 0 5px 5px;
+ border-bottom-color: #000000;
+}
+.tw-bs .popover {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 1010;
+ display: none;
+ max-width: 276px;
+ padding: 1px;
+ text-align: left;
+ background-color: #ffffff;
+ background-clip: padding-box;
+ border: 1px solid #cccccc;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 6px;
+ -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ white-space: normal;
+}
+.tw-bs .popover.top {
+ margin-top: -10px;
+}
+.tw-bs .popover.right {
+ margin-left: 10px;
+}
+.tw-bs .popover.bottom {
+ margin-top: 10px;
+}
+.tw-bs .popover.left {
+ margin-left: -10px;
+}
+.tw-bs .popover-title {
+ margin: 0;
+ padding: 8px 14px;
+ font-size: 14px;
+ font-weight: normal;
+ line-height: 18px;
+ background-color: #f7f7f7;
+ border-bottom: 1px solid #ebebeb;
+ border-radius: 5px 5px 0 0;
+}
+.tw-bs .popover-content {
+ padding: 9px 14px;
+}
+.tw-bs .popover .arrow,
+.tw-bs .popover .arrow:after {
+ position: absolute;
+ display: block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+.tw-bs .popover .arrow {
+ border-width: 11px;
+}
+.tw-bs .popover .arrow:after {
+ border-width: 10px;
+ content: "";
+}
+.tw-bs .popover.top .arrow {
+ left: 50%;
+ margin-left: -11px;
+ border-bottom-width: 0;
+ border-top-color: #999999;
+ border-top-color: rgba(0, 0, 0, 0.25);
+ bottom: -11px;
+}
+.tw-bs .popover.top .arrow:after {
+ content: " ";
+ bottom: 1px;
+ margin-left: -10px;
+ border-bottom-width: 0;
+ border-top-color: #ffffff;
+}
+.tw-bs .popover.right .arrow {
+ top: 50%;
+ left: -11px;
+ margin-top: -11px;
+ border-left-width: 0;
+ border-right-color: #999999;
+ border-right-color: rgba(0, 0, 0, 0.25);
+}
+.tw-bs .popover.right .arrow:after {
+ content: " ";
+ left: 1px;
+ bottom: -10px;
+ border-left-width: 0;
+ border-right-color: #ffffff;
+}
+.tw-bs .popover.bottom .arrow {
+ left: 50%;
+ margin-left: -11px;
+ border-top-width: 0;
+ border-bottom-color: #999999;
+ border-bottom-color: rgba(0, 0, 0, 0.25);
+ top: -11px;
+}
+.tw-bs .popover.bottom .arrow:after {
+ content: " ";
+ top: 1px;
+ margin-left: -10px;
+ border-top-width: 0;
+ border-bottom-color: #ffffff;
+}
+.tw-bs .popover.left .arrow {
+ top: 50%;
+ right: -11px;
+ margin-top: -11px;
+ border-right-width: 0;
+ border-left-color: #999999;
+ border-left-color: rgba(0, 0, 0, 0.25);
+}
+.tw-bs .popover.left .arrow:after {
+ content: " ";
+ right: 1px;
+ border-right-width: 0;
+ border-left-color: #ffffff;
+ bottom: -10px;
+}
+.tw-bs .carousel {
+ position: relative;
+}
+.tw-bs .carousel-inner {
+ position: relative;
+ overflow: hidden;
+ width: 100%;
+}
+.tw-bs .carousel-inner > .item {
+ display: none;
+ position: relative;
+ -webkit-transition: 0.6s ease-in-out left;
+ transition: 0.6s ease-in-out left;
+}
+.tw-bs .carousel-inner > .item > img,
+.tw-bs .carousel-inner > .item > a > img {
+ display: block;
+ max-width: 100%;
+ height: auto;
+ line-height: 1;
+}
+.tw-bs .carousel-inner > .active,
+.tw-bs .carousel-inner > .next,
+.tw-bs .carousel-inner > .prev {
+ display: block;
+}
+.tw-bs .carousel-inner > .active {
+ left: 0;
+}
+.tw-bs .carousel-inner > .next,
+.tw-bs .carousel-inner > .prev {
+ position: absolute;
+ top: 0;
+ width: 100%;
+}
+.tw-bs .carousel-inner > .next {
+ left: 100%;
+}
+.tw-bs .carousel-inner > .prev {
+ left: -100%;
+}
+.tw-bs .carousel-inner > .next.left,
+.tw-bs .carousel-inner > .prev.right {
+ left: 0;
+}
+.tw-bs .carousel-inner > .active.left {
+ left: -100%;
+}
+.tw-bs .carousel-inner > .active.right {
+ left: 100%;
+}
+.tw-bs .carousel-control {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ width: 15%;
+ opacity: 0.5;
+ filter: alpha(opacity=50);
+ font-size: 20px;
+ color: #ffffff;
+ text-align: center;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
+}
+.tw-bs .carousel-control.left {
+ background-image: -webkit-gradient(linear, 0% top, 100% top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001)));
+ background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.5) 0%), color-stop(rgba(0, 0, 0, 0.0001) 100%));
+ background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
+}
+.tw-bs .carousel-control.right {
+ left: auto;
+ right: 0;
+ background-image: -webkit-gradient(linear, 0% top, 100% top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5)));
+ background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.0001) 0%), color-stop(rgba(0, 0, 0, 0.5) 100%));
+ background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
+}
+.tw-bs .carousel-control:hover,
+.tw-bs .carousel-control:focus {
+ color: #ffffff;
+ text-decoration: none;
+ opacity: 0.9;
+ filter: alpha(opacity=90);
+}
+.tw-bs .carousel-control .icon-prev,
+.tw-bs .carousel-control .icon-next,
+.tw-bs .carousel-control .glyphicon-chevron-left,
+.tw-bs .carousel-control .glyphicon-chevron-right {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ z-index: 5;
+ display: inline-block;
+}
+.tw-bs .carousel-control .icon-prev,
+.tw-bs .carousel-control .icon-next {
+ width: 20px;
+ height: 20px;
+ margin-top: -10px;
+ margin-left: -10px;
+ font-family: serif;
+}
+.tw-bs .carousel-control .icon-prev:before {
+ content: '\2039';
+}
+.tw-bs .carousel-control .icon-next:before {
+ content: '\203a';
+}
+.tw-bs .carousel-indicators {
+ position: absolute;
+ bottom: 10px;
+ left: 50%;
+ z-index: 15;
+ width: 60%;
+ margin-left: -30%;
+ padding-left: 0;
+ list-style: none;
+ text-align: center;
+}
+.tw-bs .carousel-indicators li {
+ display: inline-block;
+ width: 10px;
+ height: 10px;
+ margin: 1px;
+ text-indent: -999px;
+ border: 1px solid #ffffff;
+ border-radius: 10px;
+ cursor: pointer;
+}
+.tw-bs .carousel-indicators .active {
+ margin: 0;
+ width: 12px;
+ height: 12px;
+ background-color: #ffffff;
+}
+.tw-bs .carousel-caption {
+ position: absolute;
+ left: 15%;
+ right: 15%;
+ bottom: 20px;
+ z-index: 10;
+ padding-top: 20px;
+ padding-bottom: 20px;
+ color: #ffffff;
+ text-align: center;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
+}
+.tw-bs .carousel-caption .btn {
+ text-shadow: none;
+}
+@media screen and (min-width: 768px) {
+ .tw-bs .carousel-control .icon-prev,
+ .tw-bs .carousel-control .icon-next {
+ width: 30px;
+ height: 30px;
+ margin-top: -15px;
+ margin-left: -15px;
+ font-size: 30px;
+ }
+ .tw-bs .carousel-caption {
+ left: 20%;
+ right: 20%;
+ padding-bottom: 30px;
+ }
+ .tw-bs .carousel-indicators {
+ bottom: 20px;
+ }
+}
+.tw-bs .clearfix:before,
+.tw-bs .clearfix:after {
+ content: " ";
+ /* 1 */
+ display: table;
+ /* 2 */
+}
+.tw-bs .clearfix:after {
+ clear: both;
+}
+.tw-bs .pull-right {
+ float: right !important;
+}
+.tw-bs .pull-left {
+ float: left !important;
+}
+.tw-bs .hide {
+ display: none !important;
+}
+.tw-bs .show {
+ display: block !important;
+}
+.tw-bs .invisible {
+ visibility: hidden;
+}
+.tw-bs .text-hide {
+ font: 0/0 a;
+ color: transparent;
+ text-shadow: none;
+ background-color: transparent;
+ border: 0;
+}
+.tw-bs .affix {
+ position: fixed;
+}
+@-ms-viewport {
+ width: device-width;
+}
+@media screen and (max-width: 400px) {
+ @-ms-viewport {
+ width: 320px;
+ }
+}
+.tw-bs .hidden {
+ display: none !important;
+ visibility: hidden !important;
+}
+.tw-bs .visible-xs {
+ display: none !important;
+}
+tr.tw-bs .visible-xs {
+ display: none !important;
+}
+th.tw-bs .visible-xs,
+td.tw-bs .visible-xs {
+ display: none !important;
+}
+@media (max-width: 767px) {
+ .tw-bs .visible-xs {
+ display: block !important;
+ }
+ tr.tw-bs .visible-xs {
+ display: table-row !important;
+ }
+ th.tw-bs .visible-xs,
+ td.tw-bs .visible-xs {
+ display: table-cell !important;
+ }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ .tw-bs .visible-xs.visible-sm {
+ display: block !important;
+ }
+ tr.tw-bs .visible-xs.visible-sm {
+ display: table-row !important;
+ }
+ th.tw-bs .visible-xs.visible-sm,
+ td.tw-bs .visible-xs.visible-sm {
+ display: table-cell !important;
+ }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+ .tw-bs .visible-xs.visible-md {
+ display: block !important;
+ }
+ tr.tw-bs .visible-xs.visible-md {
+ display: table-row !important;
+ }
+ th.tw-bs .visible-xs.visible-md,
+ td.tw-bs .visible-xs.visible-md {
+ display: table-cell !important;
+ }
+}
+@media (min-width: 1200px) {
+ .tw-bs .visible-xs.visible-lg {
+ display: block !important;
+ }
+ tr.tw-bs .visible-xs.visible-lg {
+ display: table-row !important;
+ }
+ th.tw-bs .visible-xs.visible-lg,
+ td.tw-bs .visible-xs.visible-lg {
+ display: table-cell !important;
+ }
+}
+.tw-bs .visible-sm {
+ display: none !important;
+}
+tr.tw-bs .visible-sm {
+ display: none !important;
+}
+th.tw-bs .visible-sm,
+td.tw-bs .visible-sm {
+ display: none !important;
+}
+@media (max-width: 767px) {
+ .tw-bs .visible-sm.visible-xs {
+ display: block !important;
+ }
+ tr.tw-bs .visible-sm.visible-xs {
+ display: table-row !important;
+ }
+ th.tw-bs .visible-sm.visible-xs,
+ td.tw-bs .visible-sm.visible-xs {
+ display: table-cell !important;
+ }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ .tw-bs .visible-sm {
+ display: block !important;
+ }
+ tr.tw-bs .visible-sm {
+ display: table-row !important;
+ }
+ th.tw-bs .visible-sm,
+ td.tw-bs .visible-sm {
+ display: table-cell !important;
+ }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+ .tw-bs .visible-sm.visible-md {
+ display: block !important;
+ }
+ tr.tw-bs .visible-sm.visible-md {
+ display: table-row !important;
+ }
+ th.tw-bs .visible-sm.visible-md,
+ td.tw-bs .visible-sm.visible-md {
+ display: table-cell !important;
+ }
+}
+@media (min-width: 1200px) {
+ .tw-bs .visible-sm.visible-lg {
+ display: block !important;
+ }
+ tr.tw-bs .visible-sm.visible-lg {
+ display: table-row !important;
+ }
+ th.tw-bs .visible-sm.visible-lg,
+ td.tw-bs .visible-sm.visible-lg {
+ display: table-cell !important;
+ }
+}
+.tw-bs .visible-md {
+ display: none !important;
+}
+tr.tw-bs .visible-md {
+ display: none !important;
+}
+th.tw-bs .visible-md,
+td.tw-bs .visible-md {
+ display: none !important;
+}
+@media (max-width: 767px) {
+ .tw-bs .visible-md.visible-xs {
+ display: block !important;
+ }
+ tr.tw-bs .visible-md.visible-xs {
+ display: table-row !important;
+ }
+ th.tw-bs .visible-md.visible-xs,
+ td.tw-bs .visible-md.visible-xs {
+ display: table-cell !important;
+ }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ .tw-bs .visible-md.visible-sm {
+ display: block !important;
+ }
+ tr.tw-bs .visible-md.visible-sm {
+ display: table-row !important;
+ }
+ th.tw-bs .visible-md.visible-sm,
+ td.tw-bs .visible-md.visible-sm {
+ display: table-cell !important;
+ }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+ .tw-bs .visible-md {
+ display: block !important;
+ }
+ tr.tw-bs .visible-md {
+ display: table-row !important;
+ }
+ th.tw-bs .visible-md,
+ td.tw-bs .visible-md {
+ display: table-cell !important;
+ }
+}
+@media (min-width: 1200px) {
+ .tw-bs .visible-md.visible-lg {
+ display: block !important;
+ }
+ tr.tw-bs .visible-md.visible-lg {
+ display: table-row !important;
+ }
+ th.tw-bs .visible-md.visible-lg,
+ td.tw-bs .visible-md.visible-lg {
+ display: table-cell !important;
+ }
+}
+.tw-bs .visible-lg {
+ display: none !important;
+}
+tr.tw-bs .visible-lg {
+ display: none !important;
+}
+th.tw-bs .visible-lg,
+td.tw-bs .visible-lg {
+ display: none !important;
+}
+@media (max-width: 767px) {
+ .tw-bs .visible-lg.visible-xs {
+ display: block !important;
+ }
+ tr.tw-bs .visible-lg.visible-xs {
+ display: table-row !important;
+ }
+ th.tw-bs .visible-lg.visible-xs,
+ td.tw-bs .visible-lg.visible-xs {
+ display: table-cell !important;
+ }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ .tw-bs .visible-lg.visible-sm {
+ display: block !important;
+ }
+ tr.tw-bs .visible-lg.visible-sm {
+ display: table-row !important;
+ }
+ th.tw-bs .visible-lg.visible-sm,
+ td.tw-bs .visible-lg.visible-sm {
+ display: table-cell !important;
+ }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+ .tw-bs .visible-lg.visible-md {
+ display: block !important;
+ }
+ tr.tw-bs .visible-lg.visible-md {
+ display: table-row !important;
+ }
+ th.tw-bs .visible-lg.visible-md,
+ td.tw-bs .visible-lg.visible-md {
+ display: table-cell !important;
+ }
+}
+@media (min-width: 1200px) {
+ .tw-bs .visible-lg {
+ display: block !important;
+ }
+ tr.tw-bs .visible-lg {
+ display: table-row !important;
+ }
+ th.tw-bs .visible-lg,
+ td.tw-bs .visible-lg {
+ display: table-cell !important;
+ }
+}
+.tw-bs .hidden-xs {
+ display: block !important;
+}
+tr.tw-bs .hidden-xs {
+ display: table-row !important;
+}
+th.tw-bs .hidden-xs,
+td.tw-bs .hidden-xs {
+ display: table-cell !important;
+}
+@media (max-width: 767px) {
+ .tw-bs .hidden-xs {
+ display: none !important;
+ }
+ tr.tw-bs .hidden-xs {
+ display: none !important;
+ }
+ th.tw-bs .hidden-xs,
+ td.tw-bs .hidden-xs {
+ display: none !important;
+ }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ .tw-bs .hidden-xs.hidden-sm {
+ display: none !important;
+ }
+ tr.tw-bs .hidden-xs.hidden-sm {
+ display: none !important;
+ }
+ th.tw-bs .hidden-xs.hidden-sm,
+ td.tw-bs .hidden-xs.hidden-sm {
+ display: none !important;
+ }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+ .tw-bs .hidden-xs.hidden-md {
+ display: none !important;
+ }
+ tr.tw-bs .hidden-xs.hidden-md {
+ display: none !important;
+ }
+ th.tw-bs .hidden-xs.hidden-md,
+ td.tw-bs .hidden-xs.hidden-md {
+ display: none !important;
+ }
+}
+@media (min-width: 1200px) {
+ .tw-bs .hidden-xs.hidden-lg {
+ display: none !important;
+ }
+ tr.tw-bs .hidden-xs.hidden-lg {
+ display: none !important;
+ }
+ th.tw-bs .hidden-xs.hidden-lg,
+ td.tw-bs .hidden-xs.hidden-lg {
+ display: none !important;
+ }
+}
+.tw-bs .hidden-sm {
+ display: block !important;
+}
+tr.tw-bs .hidden-sm {
+ display: table-row !important;
+}
+th.tw-bs .hidden-sm,
+td.tw-bs .hidden-sm {
+ display: table-cell !important;
+}
+@media (max-width: 767px) {
+ .tw-bs .hidden-sm.hidden-xs {
+ display: none !important;
+ }
+ tr.tw-bs .hidden-sm.hidden-xs {
+ display: none !important;
+ }
+ th.tw-bs .hidden-sm.hidden-xs,
+ td.tw-bs .hidden-sm.hidden-xs {
+ display: none !important;
+ }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ .tw-bs .hidden-sm {
+ display: none !important;
+ }
+ tr.tw-bs .hidden-sm {
+ display: none !important;
+ }
+ th.tw-bs .hidden-sm,
+ td.tw-bs .hidden-sm {
+ display: none !important;
+ }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+ .tw-bs .hidden-sm.hidden-md {
+ display: none !important;
+ }
+ tr.tw-bs .hidden-sm.hidden-md {
+ display: none !important;
+ }
+ th.tw-bs .hidden-sm.hidden-md,
+ td.tw-bs .hidden-sm.hidden-md {
+ display: none !important;
+ }
+}
+@media (min-width: 1200px) {
+ .tw-bs .hidden-sm.hidden-lg {
+ display: none !important;
+ }
+ tr.tw-bs .hidden-sm.hidden-lg {
+ display: none !important;
+ }
+ th.tw-bs .hidden-sm.hidden-lg,
+ td.tw-bs .hidden-sm.hidden-lg {
+ display: none !important;
+ }
+}
+.tw-bs .hidden-md {
+ display: block !important;
+}
+tr.tw-bs .hidden-md {
+ display: table-row !important;
+}
+th.tw-bs .hidden-md,
+td.tw-bs .hidden-md {
+ display: table-cell !important;
+}
+@media (max-width: 767px) {
+ .tw-bs .hidden-md.hidden-xs {
+ display: none !important;
+ }
+ tr.tw-bs .hidden-md.hidden-xs {
+ display: none !important;
+ }
+ th.tw-bs .hidden-md.hidden-xs,
+ td.tw-bs .hidden-md.hidden-xs {
+ display: none !important;
+ }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ .tw-bs .hidden-md.hidden-sm {
+ display: none !important;
+ }
+ tr.tw-bs .hidden-md.hidden-sm {
+ display: none !important;
+ }
+ th.tw-bs .hidden-md.hidden-sm,
+ td.tw-bs .hidden-md.hidden-sm {
+ display: none !important;
+ }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+ .tw-bs .hidden-md {
+ display: none !important;
+ }
+ tr.tw-bs .hidden-md {
+ display: none !important;
+ }
+ th.tw-bs .hidden-md,
+ td.tw-bs .hidden-md {
+ display: none !important;
+ }
+}
+@media (min-width: 1200px) {
+ .tw-bs .hidden-md.hidden-lg {
+ display: none !important;
+ }
+ tr.tw-bs .hidden-md.hidden-lg {
+ display: none !important;
+ }
+ th.tw-bs .hidden-md.hidden-lg,
+ td.tw-bs .hidden-md.hidden-lg {
+ display: none !important;
+ }
+}
+.tw-bs .hidden-lg {
+ display: block !important;
+}
+tr.tw-bs .hidden-lg {
+ display: table-row !important;
+}
+th.tw-bs .hidden-lg,
+td.tw-bs .hidden-lg {
+ display: table-cell !important;
+}
+@media (max-width: 767px) {
+ .tw-bs .hidden-lg.hidden-xs {
+ display: none !important;
+ }
+ tr.tw-bs .hidden-lg.hidden-xs {
+ display: none !important;
+ }
+ th.tw-bs .hidden-lg.hidden-xs,
+ td.tw-bs .hidden-lg.hidden-xs {
+ display: none !important;
+ }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ .tw-bs .hidden-lg.hidden-sm {
+ display: none !important;
+ }
+ tr.tw-bs .hidden-lg.hidden-sm {
+ display: none !important;
+ }
+ th.tw-bs .hidden-lg.hidden-sm,
+ td.tw-bs .hidden-lg.hidden-sm {
+ display: none !important;
+ }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+ .tw-bs .hidden-lg.hidden-md {
+ display: none !important;
+ }
+ tr.tw-bs .hidden-lg.hidden-md {
+ display: none !important;
+ }
+ th.tw-bs .hidden-lg.hidden-md,
+ td.tw-bs .hidden-lg.hidden-md {
+ display: none !important;
+ }
+}
+@media (min-width: 1200px) {
+ .tw-bs .hidden-lg {
+ display: none !important;
+ }
+ tr.tw-bs .hidden-lg {
+ display: none !important;
+ }
+ th.tw-bs .hidden-lg,
+ td.tw-bs .hidden-lg {
+ display: none !important;
+ }
+}
+.tw-bs .visible-print {
+ display: none !important;
+}
+tr.tw-bs .visible-print {
+ display: none !important;
+}
+th.tw-bs .visible-print,
+td.tw-bs .visible-print {
+ display: none !important;
+}
+@media print {
+ .tw-bs .visible-print {
+ display: block !important;
+ }
+ tr.tw-bs .visible-print {
+ display: table-row !important;
+ }
+ th.tw-bs .visible-print,
+ td.tw-bs .visible-print {
+ display: table-cell !important;
+ }
+ .tw-bs .hidden-print {
+ display: none !important;
+ }
+ tr.tw-bs .hidden-print {
+ display: none !important;
+ }
+ th.tw-bs .hidden-print,
+ td.tw-bs .hidden-print {
+ display: none !important;
+ }
+}
diff --git a/spec/controllers/deliverables_controller_spec.rb b/spec/controllers/deliverables_controller_spec.rb
index 727d33c5f..2fa811a04 100644
--- a/spec/controllers/deliverables_controller_spec.rb
+++ b/spec/controllers/deliverables_controller_spec.rb
@@ -3,164 +3,320 @@
describe DeliverablesController do
- before do
- @admin_andy = FactoryGirl.create(:admin_andy)
- @faculty_frank = FactoryGirl.create(:faculty_frank_user)
- @faculty_fagan = FactoryGirl.create(:faculty_fagan)
- @student_sam = FactoryGirl.create(:student_sam)
- @student_sally = FactoryGirl.create(:student_sally)
- end
+ before do
+ @admin_andy = FactoryGirl.create(:admin_andy)
+ @faculty_frank = FactoryGirl.create(:faculty_frank_user)
+ @faculty_fagan = FactoryGirl.create(:faculty_fagan)
+ @student_sam = FactoryGirl.create(:student_sam)
+ @student_sally = FactoryGirl.create(:student_sally)
+
+
+ end
+
+ describe "GET index for course" do
+
+ ## beg add Team turing
+ before(:each) do
+ @course = FactoryGirl.create(:fse, faculty: [@faculty_frank])
+
+ @assignment_ungraded = FactoryGirl.create(:assignment_1,:course => @course, :name => "Assignment Ungraded",
+ :task_number => 1)
+ @assignment_drafted = FactoryGirl.create(:assignment_1,:course => @course, :name => "Assignment Drafted",
+ :task_number => 3)
+ @assignment_graded = FactoryGirl.create(:assignment_1,:course => @course, :name => "Assignment Graded",
+ :task_number => 2)
+
+ @turing_grade_graded = FactoryGirl.create(:grade_visible, :course => @course, :student =>@student_sam,
+ :assignment => @assignment_graded)
+ @turing_grade_drafted = FactoryGirl.create(:grade_invisible, :course => @course, :student => @student_sam,
+ :assignment => @assignment_drafted)
+ @turing_grade_ungraded = nil
+
+
+ @test_grade_ungraded = FactoryGirl.create(:grade_invisible_turing, :course => @course,
+ :student => @student_sally, :assignment => @assignment_graded)
+
+ @team_turing = FactoryGirl.create(:team_turing, :course=>@course)
+ @team_test = FactoryGirl.create(:team_test, :course=>@course)
+
+ @team_turing.members = [@student_sam]
+ @team_test.members = [@student_sally]
+
+ @deliverable_turing_ungraded = FactoryGirl.create(:team_turing_deliverable_1,:course => @course,
+ :team => @team_turing,:assignment => @assignment_ungraded, :creator => @student_sam)
+ @deliverable_turing_drafted = FactoryGirl.create(:team_turing_deliverable_1,:course => @course,
+ :team => @team_turing,:assignment => @assignment_drafted, :creator => @student_sam)
+ @deliverable_turing_graded = FactoryGirl.create(:team_turing_deliverable_1,:course => @course,
+ :team => @team_turing,:assignment => @assignment_graded, :creator => @student_sam)
+ @deliverable_test_ungraded = FactoryGirl.create(:team_test_deliverable_1,:course => @course,
+ :team => @team_test,:assignment => @assignment_ungraded)
+
+ @da_turing_ungraded = FactoryGirl.create(:attachment_1, :deliverable => @deliverable_turing_ungraded,
+ :submitter => @student_sam)
+ @da_turing_drafted = FactoryGirl.create(:attachment_1, :deliverable => @deliverable_turing_drafted,
+ :submitter => @student_sam)
+ @da_turing_graded = FactoryGirl.create(:attachment_1, :deliverable => @deliverable_turing_graded,
+ :submitter => @student_sam)
+ @da_test_ungraded = FactoryGirl.create(:attachment_1, :deliverable => @deliverable_test_ungraded,
+ :submitter => @student_sam)
+
+ @course.stub(:grading_rule).and_return(true)
+ @course.stub_chain(:grading_rule, :default_values?).and_return(true)
+ Course.stub(:find).and_return(@course)
- describe "GET index for course" do
- before(:each) do
- @course = mock_model(Course, :faculty => [@faculty_frank], :course_id => 42)
- @deliverable = stub_model(Deliverable, :course_id => @course.id)
- Deliverable.stub_chain(:where, :all).and_return([@deliverable, @deliverable])
+ end
- @course.stub(:grading_rule).and_return(true)
- @course.stub_chain(:grading_rule, :default_values?).and_return(true)
- Course.stub(:find).and_return(@course)
+ context "as the faculty owner of the course" do
+ before do
+ Deliverable.stub(:grading_queue_display).and_return([@deliverable_turing_ungraded, @deliverable_turing_drafted,
+ @deliverable_turing_graded])
+ login(@faculty_frank)
end
- context "as the faculty owner of the course" do
+ it 'shows the assignments names for my course only' do
+ get :grading_queue_for_course, :course_id => @course.id , :faculty_id =>@faculty_frank.id
+ @expected_assignments = assigns(:assignments)
- before do
- login(@faculty_frank)
- end
+ @expected_assignments.should have(3).items
+ @expected_assignments[0].should == @assignment_ungraded
+ @expected_assignments[1].should == @assignment_graded
+ @expected_assignments[2].should == @assignment_drafted
- it 'assigns @deliverables' do
- get :grading_queue_for_course, :course_id => @course.id
- assigns(:deliverables).should == [@deliverable, @deliverable]
- end
end
- context "as an admin" do
+ #default behavior
+ it 'shows ungraded deliverables of only my teams both, team and individual deliverables' do
+ get :grading_queue_for_course, :course_id => @course.id , :faculty_id =>@faculty_frank.id
+ @expected_deliverable = assigns(:deliverables)
- before do
- login(@admin_andy)
- end
+ @expected_deliverable.should have(2).items
+ @expected_deliverable[0].should == @deliverable_turing_ungraded
+ @expected_deliverable[1].should == @deliverable_turing_drafted
+ end
- it 'assigns @deliverables' do
- get :grading_queue_for_course, :course_id => @course.id
- assigns(:deliverables).should == [@deliverable, @deliverable]
- end
+ #default behavior
+ it 'shows the deliverables that matches the selected deliverable name' do
+ get :get_deliverables, :filter_options => {:graded => "1", :ungraded => "1", :drafted => "1",
+ :assignment_id => @assignment_ungraded.id.to_s, :is_my_teams => 'yes', :search_box => ""},
+ :course_id => @course.id
+
+ @expected_deliverable = assigns(:deliverables)
+ @expected_deliverable.should have(1).items
+ @expected_deliverable[0].should == @deliverable_turing_ungraded
end
- context "as any other user" do
- before do
- login(@faculty_fagan)
- get :grading_queue_for_course, :course_id => @course.id
- end
+ it 'shows graded deliverables if graded buttons is clicked' do
+ get :get_deliverables, :filter_options => {:graded => "1", :assignment_id => "-1",
+ :is_my_teams => 'yes', :search_box => ""}, :course_id => @course.id
- it_should_behave_like "permission denied"
+ @expected_deliverable = assigns(:deliverables)
+ @expected_deliverable.should have(1).items
+ @expected_deliverable[0].should == @deliverable_turing_graded
end
- end
+ it 'shows graded and ungraded deliverables of only my teams if graded and ungraded buttons are clicked' do
+ get :get_deliverables, :filter_options => {:graded => "1", :ungraded => "1", :assignment_id => "-1",
+ :is_my_teams => 'yes', :search_box => ""}, :course_id => @course.id
+
+ @expected_deliverable = assigns(:deliverables)
+ @expected_deliverable.should have(2).items
+ @expected_deliverable[1].should == @deliverable_turing_graded
+ @expected_deliverable[0].should == @deliverable_turing_ungraded
- describe "GET my_deliverables" do
- before(:each) do
- @course = mock_model(Course, :faculty => [@faculty_frank], :course_id => 42)
- @past_course = mock_model(Course, :faculty => [@faculty_frank], :course_id => 41)
- @deliverable = stub_model(Deliverable, :course_id => @course.id, :owner_id => @student_sam.id)
- @current_assignment = stub_model(Assignment, :course_id => @course.id)
- @past_assignment = stub_model(Assignment, :course_id => @past_course.id)
- Deliverable.stub(:find_current_by_user).and_return([@deliverable, @deliverable])
- Deliverable.stub(:find_past_by_user).and_return([@deliverable, @deliverable])
- Assignment.stub(:list_assignments_for_student).with(@student_sam.id , :current).and_return([@current_assignment])
- Assignment.stub(:list_assignments_for_student).with(@student_sam.id , :past).and_return([@past_assignment])
- Course.stub(:find).and_return(@course)
- User.any_instance.stub(:registered_for_these_courses_during_current_semester).and_return([@course])
- User.any_instance.stub(:registered_for_these_courses_during_past_semesters).and_return([@past_course])
end
- context "as the owner of the deliverable" do
- before do
- login(@student_sam)
- end
+ it 'shows all deliverables of only my teams is clicked' do
+ get :get_deliverables, :filter_options => {:assignment_id => "-1", :is_my_teams => 'yes', :search_box => ""},
+ :course_id => @course.id
+
+ @expected_deliverable = assigns(:deliverables)
+ @expected_deliverable.should have(3).items
+ @expected_deliverable[1].should == @deliverable_turing_graded
+ @expected_deliverable[0].should == @deliverable_turing_ungraded
+ @expected_deliverable[2].should == @deliverable_turing_drafted
- it 'assigns deliverables' do
- get :my_deliverables, :id => @student_sam.id
- #assigns(:current_deliverables).should == [@deliverable, @deliverable]
- #assigns(:past_deliverables).should == [@deliverable, @deliverable]
- assigns(:current_courses).should == [@course]
- assigns(:past_courses).should == [@past_course]
- assigns(:current_assignments).should == [@current_assignment]
- assigns(:past_assignments).should == [@past_assignment]
- end
end
- context "as an faculty" do
+
+ context "search function is enabled" do
before do
- login(@faculty_frank)
+
+ @team_member = FactoryGirl.create(:team_member)
+
+ @team_ruby_racer = FactoryGirl.create(:team_ruby_racer, :course=>@course)
+
+ @team_ruby_racer.members = [@team_member]
+
+ @ruby_racer_grade_graded = FactoryGirl.create(:grade_visible, :course => @course, :student =>@team_member,
+ :assignment => @assignment_graded)
+ @ruby_racer_grade_drafted = FactoryGirl.create(:grade_invisible, :course => @course,
+ :student => @team_member, :assignment => @assignment_drafted)
+ @ruby_racer_grade_ungraded = nil
+
+ @deliverable_ruby_racer_ungraded = FactoryGirl.create(:team_ruby_racer_deliverable_1,:course => @course,
+ :team => @team_ruby_racer,:assignment => @assignment_ungraded, :creator => @team_member)
+ @deliverable_ruby_racer_drafted = FactoryGirl.create(:team_ruby_racer_deliverable_1,:course => @course,
+ :team => @team_ruby_racer,:assignment => @assignment_drafted, :creator => @team_member)
+ @deliverable_ruby_racer_graded = FactoryGirl.create(:team_ruby_racer_deliverable_1,:course => @course,
+ :team => @team_ruby_racer,:assignment => @assignment_graded, :creator => @team_member)
+
+ @da_ruby_racer_ungraded = FactoryGirl.create(:attachment_1, :deliverable => @deliverable_ruby_racer_ungraded,
+ :submitter => @team_member)
+ @da_ruby_racer_drafted = FactoryGirl.create(:attachment_1, :deliverable => @deliverable_ruby_racer_drafted,
+ :submitter => @team_member)
+ @da_ruby_racer_graded = FactoryGirl.create(:attachment_1, :deliverable => @deliverable_ruby_racer_graded,
+ :submitter => @team_member)
+
end
- it 'assigns @deliverables' do
- get :my_deliverables, :id => @student_sam.id
- assigns(:current_deliverables).should == [@deliverable, @deliverable]
- assigns(:past_deliverables).should == [@deliverable, @deliverable]
+
+ it 'shows all deliverables of only my teams and search box is entered' do
+ get :get_deliverables, :filter_options => {:assignment_id => "-1", :is_my_teams => 'yes',
+ :search_box => "Member"}, :course_id => @course.id
+
+ @expected_deliverable = assigns(:deliverables)
+ @expected_deliverable.should have(3).items
+ @expected_deliverable[0].should == @deliverable_ruby_racer_ungraded
+ @expected_deliverable[1].should == @deliverable_ruby_racer_graded
+ @expected_deliverable[2].should == @deliverable_ruby_racer_drafted
+
end
end
+ ## end add Team turing
- context "as any other student" do
- before do
- login(@student_sally)
- get :my_deliverables, :id => @student_sam.id
- end
+ end
+
+
+ context "as an admin" do
+ before do
+ login(@admin_andy)
+ end
+
+ it 'assigns @deliverables' do
+ get :grading_queue_for_course, :course_id => @course.id
+ @expected_deliverable = assigns(:deliverables)
+ @expected_deliverable.should == [@deliverable_test_ungraded, @deliverable_turing_graded,
+ @deliverable_turing_drafted, @deliverable_turing_ungraded]
- it_should_behave_like "permission denied for person deliverable"
end
end
+ context "as any other user" do
+ before do
+ login(@faculty_fagan)
+ get :grading_queue_for_course, :course_id => @course.id
+ end
- describe "GET show" do
- before(:each) do
- @course = mock_model(Course, :faculty => [@faculty_frank], :course_id => 42)
- @current_assignment = mock_model(Assignment, :course_id => @course.id, :is_team_deliverable => true)
- @deliverable = stub_model(Deliverable, :course_id => @course.id, :owner_id => @student_sam.id, :assignment=>@current_assignment)
- @team = stub_model(Team)
- Deliverable.stub(:find).and_return(@deliverable)
- @deliverable.stub(:team).and_return(@team)
+ it_should_behave_like "permission denied"
+ end
+ end
+
+
+ describe "GET my_deliverables" do
+ before(:each) do
+ @course = mock_model(Course, :faculty => [@faculty_frank], :course_id => 42)
+ @past_course = mock_model(Course, :faculty => [@faculty_frank], :course_id => 41)
+ @deliverable = stub_model(Deliverable, :course_id => @course.id, :owner_id => @student_sam.id)
+ @current_assignment = stub_model(Assignment, :course_id => @course.id)
+ @past_assignment = stub_model(Assignment, :course_id => @past_course.id)
+ Deliverable.stub(:find_current_by_user).and_return([@deliverable, @deliverable])
+ Deliverable.stub(:find_past_by_user).and_return([@deliverable, @deliverable])
+ Assignment.stub(:list_assignments_for_student).with(@student_sam.id , :current).and_return([@current_assignment])
+ Assignment.stub(:list_assignments_for_student).with(@student_sam.id , :past).and_return([@past_assignment])
+ Course.stub(:find).and_return(@course)
+ User.any_instance.stub(:registered_for_these_courses_during_current_semester).and_return([@course])
+ User.any_instance.stub(:registered_for_these_courses_during_past_semesters).and_return([@past_course])
+ end
- @course.stub(:grading_rule).and_return(true)
- @course.stub_chain(:grading_rule, :default_values?).and_return(true)
- Course.stub(:find).and_return(@course)
+ context "as the owner of the deliverable" do
+ before do
+ login(@student_sam)
end
- context "for a team deliverable" do
+ it 'assigns deliverables' do
+ get :my_deliverables, :id => @student_sam.id
+ #assigns(:current_deliverables).should == [@deliverable, @deliverable]
+ #assigns(:past_deliverables).should == [@deliverable, @deliverable]
+ assigns(:current_courses).should == [@course]
+ assigns(:past_courses).should == [@past_course]
+ assigns(:current_assignments).should == [@current_assignment]
+ assigns(:past_assignments).should == [@past_assignment]
+ end
+ end
- it 'the owner can see it' do
- login(@student_sam)
- @team.stub(:is_user_on_team?).and_return(true)
- get :show, :id => @deliverable.id
- assigns(:deliverable).should == @deliverable
- end
+ context "as an faculty" do
- it "someone else on the team can see it" do
- login(@student_sam)
- @team.stub(:is_user_on_team?).and_return(true)
- get :show, :id => @deliverable.id
- assigns(:deliverable).should == @deliverable
- end
+ before do
+ login(@faculty_frank)
+ end
- it "any faculty can see it" do
- login(@faculty_frank)
+ it 'assigns @deliverables' do
+ get :my_deliverables, :id => @student_sam.id
+ assigns(:current_deliverables).should == [@deliverable, @deliverable]
+ assigns(:past_deliverables).should == [@deliverable, @deliverable]
+ end
+ end
+
+ context "as any other student" do
+ before do
+ login(@student_sally)
+ get :my_deliverables, :id => @student_sam.id
+ end
+
+ it_should_behave_like "permission denied for person deliverable"
+ end
+ end
+
+
+ describe "GET show" do
+ before(:each) do
+ @course = mock_model(Course, :faculty => [@faculty_frank], :course_id => 42)
+ @current_assignment = mock_model(Assignment, :course_id => @course.id, :is_team_deliverable => true)
+ @deliverable = stub_model(Deliverable, :course_id => @course.id, :owner_id => @student_sam.id, :assignment=>@current_assignment)
+ @team = stub_model(Team)
+ Deliverable.stub(:find).and_return(@deliverable)
+ @deliverable.stub(:team).and_return(@team)
+
+ @course.stub(:grading_rule).and_return(true)
+ @course.stub_chain(:grading_rule, :default_values?).and_return(true)
+ Course.stub(:find).and_return(@course)
+ end
+
+ context "for a team deliverable" do
+
+ it 'the owner can see it' do
+ login(@student_sam)
+ @team.stub(:is_user_on_team?).and_return(true)
+ get :show, :id => @deliverable.id
+ assigns(:deliverable).should == @deliverable
+ end
+
+ it "someone else on the team can see it" do
+ login(@student_sam)
+ @team.stub(:is_user_on_team?).and_return(true)
+ get :show, :id => @deliverable.id
+ assigns(:deliverable).should == @deliverable
+ end
+
+ it "any faculty can see it" do
+ login(@faculty_frank)
+ @team.stub(:is_user_on_team?).and_return(false)
+ get :show, :id => @deliverable.id
+ assigns(:deliverable).should == @deliverable
+ end
+
+ context "no other student can see it" do
+ before do
@team.stub(:is_user_on_team?).and_return(false)
+ login(@student_sally)
get :show, :id => @deliverable.id
- assigns(:deliverable).should == @deliverable
end
- context "no other student can see it" do
- before do
- @team.stub(:is_user_on_team?).and_return(false)
- login(@student_sally)
- get :show, :id => @deliverable.id
- end
-
- it_should_behave_like "permission denied for person deliverable"
- end
+ it_should_behave_like "permission denied for person deliverable"
end
end
+ end
# describe "GET edit" do
diff --git a/spec/factories/assignments.rb b/spec/factories/assignments.rb
index 0bcaf45b9..2c51a2cf5 100644
--- a/spec/factories/assignments.rb
+++ b/spec/factories/assignments.rb
@@ -26,4 +26,29 @@
sequence(:maximum_score) {|i| i*3}
sequence(:assignment_order) {|i| i}
end
+
+ ## beg add turing
+
+ factory :assignment_1, :parent=>:assignment do
+ is_team_deliverable true
+ association :course, :factory => :fse
+ name "Assignment 1"
+ task_number 1
+ end
+
+ factory :assignment_2, :parent=>:assignment do
+ is_team_deliverable true
+ association :course, :factory => :fse
+ name "Assignment 2"
+ task_number 2
+ end
+
+ factory :assignment_3, :parent=>:assignment do
+ is_team_deliverable false
+ association :course, :factory => :fse
+ name "Assignment 3"
+ task_number 3
+ end
+
+ ## end add turing
end
diff --git a/spec/factories/deliverable_attachments.rb b/spec/factories/deliverable_attachments.rb
new file mode 100644
index 000000000..b35ad9486
--- /dev/null
+++ b/spec/factories/deliverable_attachments.rb
@@ -0,0 +1,14 @@
+FactoryGirl.define do
+
+ ## beg add turing
+
+ factory :attachment_1, :parent => :deliverable_attachment do
+ submitter_id 1
+ deliverable_id 1
+ submission_date DateTime.now
+ association :deliverable, :factory => :team_deliverable
+ association :submitter, :factory => :student_john_user
+ end
+
+ ## end add turing
+end
\ No newline at end of file
diff --git a/spec/factories/deliverables.rb b/spec/factories/deliverables.rb
index d6c37bb82..28bdf9deb 100644
--- a/spec/factories/deliverables.rb
+++ b/spec/factories/deliverables.rb
@@ -10,9 +10,52 @@
team_id nil
end
+ factory :turing_individual_deliverable, :parent => :deliverable do
+ team_id nil
+ association :creator, :factory => :student_john_user
+ association :course, :factory => :fse
+ end
+
factory :team_deliverable_simple, :class => Deliverable do
private_note "My private notes"
end
+ ## beg add turing
+ factory :team_turing_deliverable_1, :parent => :deliverable do
+ association :assignment, :factory => :assignment
+ association :team, :factory => :team_turing
+ association :course, :factory => :fse
+ private_note "My first deliverable"
+ end
+
+ factory :team_turing_deliverable_2, :parent => :deliverable do
+ association :assignment, :factory => :assignment
+ association :team, :factory => :team_turing
+ association :course, :factory => :fse
+ private_note "My second deliverable"
+ end
+
+ factory :team_test_deliverable_1, :parent => :deliverable do
+ association :assignment, :factory => :assignment
+ association :team, :factory => :team_test
+ association :course, :factory => :fse
+ association :creator, :factory => :student_Test_user
+ private_note "Test team first deliverable"
+ end
+
+ factory :test_individual_deliverable, :parent => :deliverable do
+ team_id nil
+ association :creator, :factory => :student_sally_user
+ association :course, :factory => :fse
+ end
+
+ factory :team_ruby_racer_deliverable_1, :parent => :deliverable do
+ association :assignment, :factory => :assignment
+ association :team, :factory => :team_ruby_racer
+ association :course, :factory => :fse
+ private_note "Ruby Racer's first deliverable"
+ end
+
+ ## end add turing
end
diff --git a/spec/factories/grades.rb b/spec/factories/grades.rb
index d5be7d05b..2434bd963 100644
--- a/spec/factories/grades.rb
+++ b/spec/factories/grades.rb
@@ -16,6 +16,11 @@
is_student_visible false
end
+ factory :grade_invisible_turing, :parent=>:grade do
+ is_student_visible false
+ score nil
+ end
+
factory :grade_points, :parent=>:grade do
course_id 1
student_id 999
@@ -30,4 +35,13 @@
assignment
end
+ # Beg add Turing Ira
+ factory :last_graded_visible, :parent=>:grade do
+ course_id 1
+ student_id 999
+ assignment_id 1
+ is_student_visible true
+ last_graded_by 46
+ end
+ # End add Turing Ira
end
diff --git a/spec/factories/team_assignment.rb b/spec/factories/team_assignment.rb
new file mode 100644
index 000000000..75aa9a4ee
--- /dev/null
+++ b/spec/factories/team_assignment.rb
@@ -0,0 +1,20 @@
+#Beg Team Turing
+FactoryGirl.define do
+
+ factory :team_turing_assignment, class: TeamAssignment do
+ association :team, :factory => :team_turing
+ association :user, :factory => :student_sam_user
+ end
+
+ factory :team_test_assignment, class: TeamAssignment do
+ association :team, :factory => :team_test
+ association :user, :factory => :student_john_user
+ end
+
+ factory :team_ruby_racer_assignment, class: TeamAssignment do
+ association :team, :factory => :team_ruby_racer
+ association :user, :factory => :student_sally_user
+ end
+
+end
+#End Team Turing
\ No newline at end of file
diff --git a/spec/factories/teams.rb b/spec/factories/teams.rb
index f87e6bc66..1bd26e4d0 100644
--- a/spec/factories/teams.rb
+++ b/spec/factories/teams.rb
@@ -22,4 +22,41 @@
association :course, :factory => :course
end
+ ## beg add turing
+ factory :team_turing, class: Team do
+ name "Turing"
+ email "turing@sv.cmu.edu"
+ primary_faculty_id 46
+ updating_email false
+ tigris_space "http://team.turing.org/servlets/ProjectDocumentList"
+ twiki_space "http://info.sv.cmu.edu/twiki/bin/view/Graffiti/WebHome"
+
+ association :course, :factory => :fse
+
+ end
+
+ factory :team_test, class: Team do
+ name "Test"
+ email "test@sv.cmu.edu"
+ primary_faculty_id 47
+ updating_email false
+ tigris_space "http://team.test.org/servlets/ProjectDocumentList"
+ twiki_space "http://info.sv.cmu.edu/twiki/bin/view/Graffiti/WebHome"
+
+ association :course, :factory => :fse
+ end
+
+ factory :team_ruby_racer, class: Team do
+ name "Ruby Racer"
+ email "ruby_racer@sv.cmu.edu"
+ primary_faculty_id 46
+ updating_email false
+ tigris_space "http://team.turing.org/servlets/ProjectDocumentList"
+ twiki_space "http://info.sv.cmu.edu/twiki/bin/view/Graffiti/WebHome"
+
+ association :course, :factory => :fse
+
+ end
+
+ ## end add turing
end
\ No newline at end of file
diff --git a/spec/factories/users.rb b/spec/factories/users.rb
index 01c5e6a49..6b79d5f06 100644
--- a/spec/factories/users.rb
+++ b/spec/factories/users.rb
@@ -122,4 +122,19 @@
track_group "Tech"
end
+
+ ## beg add turing
+ factory :student_Test_user, :parent => :user do
+ sequence(:email) {|i| "student_Test#{i}@sv.cmu.edu"}
+ sequence(:webiso_account) {|i| "student_Test#{i}@andrew.cmu.edu"}
+ sequence(:human_name) {|i| "student_Test#{i}"}
+ sequence(:first_name) {|i| "student_Test#{i}"}
+ sequence(:last_name) {|i| "student_Test#{i}"}
+ sequence(:twiki_name) {|i| "student_Test#{i}"}
+ is_student true
+ is_alumnus false
+ end
+
+ ## end add turing
+
end
\ No newline at end of file
diff --git a/spec/lib/reminder_handler_spec.rb b/spec/lib/reminder_handler_spec.rb
index 375b136d8..ac78385ec 100644
--- a/spec/lib/reminder_handler_spec.rb
+++ b/spec/lib/reminder_handler_spec.rb
@@ -8,11 +8,15 @@
before :each do
@current_time = Time.now
@user = FactoryGirl.build_stubbed(:faculty_frank_user)
+ # While storing to Active Record, use current_time.utc as Active record
+ # assumes pacific time (config/application.rb) but stores as utc
+ # internally. Causing the test case to fail.
+ # Time zone overriden in (config/environments/test.rb)
@page1 = FactoryGirl.build_stubbed(:ppm, updated_by_user_id: @user.id,
- updated_at: @current_time - 1.year)
+ updated_at: @current_time.utc - 1.year)
@page2 = FactoryGirl.build_stubbed(:ppm, url: "page2",
updated_by_user_id: @user.id,
- updated_at: @current_time - 13.months)
+ updated_at: @current_time.utc - 13.months)
Page.stub(:all).and_return([@page1, @page2])
@page1.stub(:updated_by).and_return(@user)
@page2.stub(:updated_by).and_return(@user)
@@ -43,4 +47,4 @@
end
end
-end
\ No newline at end of file
+end
diff --git a/spec/models/deliverable_model_spec.rb b/spec/models/deliverable_model_spec.rb
index 3b3fe4877..b6d4b48b8 100644
--- a/spec/models/deliverable_model_spec.rb
+++ b/spec/models/deliverable_model_spec.rb
@@ -143,18 +143,18 @@
Grade.stub(:get_grade).with(@deliverable.course.id, @deliverable.assignment.id, @deliverable.creator.id).and_return(nil)
@deliverable.is_visible_to_student?.should be_false
end
-
+
it "is graded if grade is given and published" do
grade = FactoryGirl.build(:grade_visible)
Grade.stub(:get_grade).with(@deliverable.course.id, @deliverable.assignment.id, @deliverable.creator.id).and_return(grade)
@deliverable.get_grade_status.should eq(:graded)
end
-
+
it "is ungraded if grade is not given" do
Grade.stub(:get_grade).with(@deliverable.course.id, @deliverable.assignment.id, @deliverable.creator.id).and_return(nil)
@deliverable.get_grade_status.should eq(:ungraded)
end
-
+
it "is drafted if grade is given but not published" do
grade = FactoryGirl.build(:grade_invisible)
Grade.stub(:get_grade).with(@deliverable.course.id, @deliverable.assignment.id, @deliverable.creator.id).and_return(grade)
@@ -174,7 +174,7 @@
end
@deliverable.get_grade_status.should eq(:graded)
end
-
+
it "is drafted if any of the member's grade is given but not published" do
grade = FactoryGirl.build(:grade_invisible)
@deliverable.team.members.each do | member |
@@ -183,7 +183,7 @@
end
@deliverable.get_grade_status.should eq(:drafted)
end
-
+
it "is ungraded if any of the member's grade is not given" do
@deliverable.team.members.each do | member |
Grade.stub(:get_grade).with(@deliverable.course.id, @deliverable.assignment.id, member.id).and_return(nil)
@@ -191,6 +191,213 @@
@deliverable.get_grade_status.should eq(:ungraded)
end
end
+
+ # Beg Team Turing
+ context "for a professor" do
+ before (:each) do
+ @faculty_frank = FactoryGirl.build(:faculty_frank_user)
+ @course_fse = FactoryGirl.create(:fse, faculty: [@faculty_frank])
+ @course_ise = FactoryGirl.create(:ise, faculty: [@faculty_frank])
+ @student_sam = FactoryGirl.create(:student_sam)
+ @student_sally = FactoryGirl.create(:student_sally)
+ @team_member = FactoryGirl.create(:team_member)
+ end
+
+ it "Displays the professor's teams deliverables if the professor has at least one team" do
+ @team_turing = FactoryGirl.create(:team_turing, :course=>@course_fse)
+ @team_test = FactoryGirl.create(:team_test, :course=>@course_fse)
+ @team_assignment = FactoryGirl.create(:team_turing_assignment, :team => @team_turing, :user => @student_sam)
+
+ @assignment_team_turing_1 = FactoryGirl.create(:assignment_1,:course => @course_fse)
+ @assignment_team_turing_2 = FactoryGirl.create(:assignment_1,:course => @course_fse)
+ @assignment_team_test_1 = FactoryGirl.create(:assignment_1,:course => @course_fse)
+
+
+ @team_turing_deliverable_1 = FactoryGirl.create(:team_turing_deliverable_1,:course => @course_fse,
+ :team => @team_turing,:assignment => @assignment_team_turing_1, :creator => @student_sam)
+ @team_turing_deliverable_2 = FactoryGirl.create(:team_turing_deliverable_1,:course => @course_fse,
+ :team => @team_turing,:assignment => @assignment_team_turing_2, :creator => @student_sam)
+ @team_test_deliverable_1 = FactoryGirl.create(:team_test_deliverable_1,:course => @course_fse,
+ :team => @team_test,:assignment => @assignment_team_test_1)
+
+ @attachment_deliverable_1_turing = FactoryGirl.create(:attachment_1, :deliverable => @team_turing_deliverable_1,
+ :submitter => @student_sam)
+ @attachment_deliverable_2_turing = FactoryGirl.create(:attachment_1, :deliverable => @team_turing_deliverable_2,
+ :submitter => @student_sam)
+ @attachment_deliverable_1_test = FactoryGirl.create(:attachment_1, :deliverable => @team_test_deliverable_1,
+ :submitter => @student_sam)
+
+ @options = {:is_my_team => 1}
+
+ @expected_deliverables = Deliverable.get_deliverables(@course_fse.id, @faculty_frank.id, @options)
+ @expected_deliverables.should have(2).items
+
+ @expected_deliverables[0].should == @team_turing_deliverable_2
+ @expected_deliverables[1].should == @team_turing_deliverable_1
+
+ end
+
+ it "Displays the professor's students individual deliverables if the professor has at least one team" do
+ @team_turing = FactoryGirl.create(:team_turing, :course=>@course_fse)
+ @team_test = FactoryGirl.create(:team_test, :course=>@course_fse)
+
+ #Assigning the student to the team
+ @team_turing_assignment = FactoryGirl.create(:team_turing_assignment, :team => @team_turing,
+ :user => @student_sam)
+ @team_test_assignment = FactoryGirl.create(:team_test_assignment, :team => @team_test, :user => @student_sally)
+
+ @assignment_team_turing_1 = FactoryGirl.create(:assignment_3,:course => @course_fse)
+ @assignment_team_turing_2 = FactoryGirl.create(:assignment_3,:course => @course_fse)
+
+ @turing_individual_deliverable_1 = FactoryGirl.create(:turing_individual_deliverable,:course => @course_fse,
+ :assignment => @assignment_team_turing_1, :creator => @student_sam)
+ @turing_individual_deliverable_2 = FactoryGirl.create(:test_individual_deliverable,:course => @course_fse,
+ :assignment => @assignment_team_turing_2, :creator => @student_sally)
+
+ @attachment_deliverable_1_turing = FactoryGirl.create(:attachment_1, :deliverable =>
+ @turing_individual_deliverable_1, :submitter => @student_sam)
+ @attachment_deliverable_2_turing = FactoryGirl.create(:attachment_1, :deliverable =>
+ @turing_individual_deliverable_2, :submitter => @student_sally)
+
+ @options = {:is_my_team => 1}
+
+ @expected_deliverables = Deliverable.get_deliverables(@course_fse.id, @faculty_frank.id, @options)
+ @expected_deliverables.should have(1).items
+
+ @expected_deliverables[0].should == @turing_individual_deliverable_1
+ end
+
+ it "If a course has teams, display team deliverables as well as individual deliverables for students in the
+ faculty's team" do
+
+ @team_turing = FactoryGirl.create(:team_turing, :course=>@course_fse)
+ @team_test = FactoryGirl.create(:team_test, :course=>@course_fse)
+
+ @team_assignment = FactoryGirl.create(:team_turing_assignment, :team => @team_turing, :user => @student_sam)
+ @team_assignment = FactoryGirl.create(:team_test_assignment, :team => @team_test, :user => @student_sally)
+
+ @assignment1 = FactoryGirl.create(:assignment_3,:course => @course_fse)
+ @assignment2 = FactoryGirl.create(:assignment_3,:course => @course_fse)
+
+ # Team deliverable
+ @deliverable1 = FactoryGirl.create(:team_turing_deliverable_1,:course => @course_fse, :team => @team_turing,:assignment => @assignment1, :creator => @student_sam)
+ # Individual deliverable 1
+ @deliverable2 = FactoryGirl.create(:turing_individual_deliverable,:course => @course_fse, :assignment => @assignment1, :creator => @student_sam)
+ # Individual deliverable 2
+ @deliverable3 = FactoryGirl.create(:test_individual_deliverable,:course => @course_fse, :assignment => @assignment2, :creator => @student_sally)
+
+ @dav1 = FactoryGirl.create(:attachment_1, :deliverable => @deliverable1, :submitter => @student_sam)
+ @dav2 = FactoryGirl.create(:attachment_1, :deliverable => @deliverable2, :submitter => @student_sam)
+ @dav3 = FactoryGirl.create(:attachment_1, :deliverable => @deliverable3, :submitter => @student_sally)
+
+ @options = {:is_my_team => 1}
+ @deliverables = Deliverable.get_deliverables(@course_fse.id, @faculty_frank.id, @options)
+ @deliverables.should have(2).items
+
+ @deliverables[0].should == @deliverable1
+ @deliverables[1].should == @deliverable2
+
+ end
+
+ it "Displays all deliverables if the course does not have teams" do
+
+ @deliverable1 = FactoryGirl.create(:turing_individual_deliverable, :course=>@course_fse)
+ #@deliverable2 = FactoryGirl.create(:individual_deliverable, :course=>@course_ise)
+ @dav3 = FactoryGirl.create(:attachment_1, :deliverable => @deliverable1, :submitter => @student_sam)
+
+ @options = {:is_my_team => 1}
+ @deliverables = Deliverable.get_deliverables(@course_fse.id, @faculty_frank.id, @options)
+ @deliverables.should have(1).items
+ @deliverables[0].should == @deliverable1
+
+ end
+
+ it "If a course has teams and user enter search terms, display team deliverables as well as individual deliverables
+ for students in the faculty's team" do
+
+ @team_turing = FactoryGirl.create(:team_turing, :course=>@course_fse)
+ @team_test = FactoryGirl.create(:team_test, :course=>@course_fse)
+ @team_ruby_racer = FactoryGirl.create(:team_ruby_racer, :course=>@course_fse)
+
+ @team_assignment = FactoryGirl.create(:team_turing_assignment, :team => @team_turing, :user => @student_sam)
+ @team_assignment = FactoryGirl.create(:team_test_assignment, :team => @team_test, :user => @student_sally)
+ @team_assignment = FactoryGirl.create(:team_ruby_racer_assignment, :team => @team_ruby_racer, :user => @team_member)
+
+ @assignment1 = FactoryGirl.create(:assignment_3,:course => @course_fse)
+ @assignment2 = FactoryGirl.create(:assignment_3,:course => @course_fse)
+
+ # Team deliverable
+ @deliverable1 = FactoryGirl.create(:team_turing_deliverable_1,:course => @course_fse, :team => @team_turing,:assignment => @assignment1, :creator => @student_sam)
+ # Individual deliverable 1
+ @deliverable2 = FactoryGirl.create(:turing_individual_deliverable,:course => @course_fse, :assignment => @assignment1, :creator => @student_sam)
+ # Individual deliverable 2
+ @deliverable3 = FactoryGirl.create(:test_individual_deliverable,:course => @course_fse, :assignment => @assignment2, :creator => @student_sally)
+ # Team deliverable of team Ruby Racer
+ @deliverable4 = FactoryGirl.create(:team_ruby_racer_deliverable_1,:course => @course_fse, :team => @team_ruby_racer,:assignment => @assignment1, :creator => @team_member)
+ # Individual deliverable 3
+ @deliverable5 = FactoryGirl.create(:test_individual_deliverable,:course => @course_fse, :assignment => @assignment2, :creator => @team_member)
+
+ @dav1 = FactoryGirl.create(:attachment_1, :deliverable => @deliverable1, :submitter => @student_sam)
+ @dav2 = FactoryGirl.create(:attachment_1, :deliverable => @deliverable2, :submitter => @student_sam)
+ @dav3 = FactoryGirl.create(:attachment_1, :deliverable => @deliverable3, :submitter => @student_sally)
+ @dav4 = FactoryGirl.create(:attachment_1, :deliverable => @deliverable4, :submitter => @team_member)
+ @dav5 = FactoryGirl.create(:attachment_1, :deliverable => @deliverable5, :submitter => @team_member)
+
+ @options = {:is_my_team => 1, :search_string => "Member"}
+ @deliverables = Deliverable.get_deliverables(@course_fse.id, @faculty_frank.id, @options)
+ @deliverables.should have(2).items
+
+ @deliverables[0].should == @deliverable4
+ @deliverables[1].should == @deliverable5
+
+ end
+
+ end
+ # End Team Turing
+
+ #Beg add Turing Ira
+ context " for a individual deliverable last graded by" do
+ before (:each) do
+ @faculty_frank = FactoryGirl.create(:faculty_frank_user)
+ @course_fse = FactoryGirl.create(:fse, faculty: [@faculty_frank])
+ @student_sam = FactoryGirl.create(:student_sam)
+ @assignment = FactoryGirl.create(:assignment_3,:course => @course_fse)
+ @deliverable = FactoryGirl.create(:turing_individual_deliverable, :course=>@course_fse, :assignment => @assignment, :creator => @student_sam)
+
+ @grade = FactoryGirl.create(:last_graded_visible,:course_id => @course_fse.id,:assignment_id=> @assignment.id,:student_id => @student_sam.id)
+ end
+
+
+ it " should get last graded by" do
+ # Get last graded by
+ Grade.stub(:get_graded_by).with(@deliverable.course.id, @deliverable.assignment.id, @deliverable.creator.id).and_return(@grade)
+ @deliverable.get_graded_by.should eq(@faculty_frank)
+ end
+
+
+ end
+ context " for a team deliverable last graded by" do
+ before (:each) do
+ @faculty_frank = FactoryGirl.create(:faculty_frank_user)
+ @course_fse = FactoryGirl.create(:fse, faculty: [@faculty_frank])
+
+ @assignment = FactoryGirl.create(:assignment_3,:course => @course_fse)
+ #@deliverable = FactoryGirl.create(:turing_individual_deliverable, :course=>@course_fse, :assignment => @assignment, :creator => @student_sam)
+ @deliverable = FactoryGirl.build(:team_deliverable,:course_id => @course_fse.id)
+ end
+
+
+ it " should get last graded by" do
+ # Get last graded by
+ @grade = FactoryGirl.create(:grade_invisible, :course_id =>@deliverable.course.id,:assignment_id => @deliverable.assignment.id, :last_graded_by => @faculty_frank.id, :student_id =>@deliverable.team.members[0].id)
+ Grade.stub(:get_graded_by).with(@deliverable.course.id, @deliverable.assignment.id, @deliverable.team.members[0].id).and_return(@grade)
+ @deliverable.get_graded_by.should eq(@faculty_frank)
+ end
+
+
+ end
+
+ #End add Turing Ira
end
diff --git a/spec/models/grade_spec.rb b/spec/models/grade_spec.rb
index b16cd9127..a8a31d63b 100644
--- a/spec/models/grade_spec.rb
+++ b/spec/models/grade_spec.rb
@@ -169,4 +169,49 @@
end
end
+
+ # Beg Add Turing Ira
+
+ context " It should save last graded by while giving grades" do
+
+ it "should be able to give a updated grade to a registered student" do
+ faculty_frank = FactoryGirl.build(:faculty_frank_user)
+ faculty = faculty_frank.id
+ score = "10"
+
+ Grade.give_grade(@course_fse.id, @assignment_1.id, @student_sam.id, score,nil,faculty).should be_true
+ Grade.find_by_assignment_id_and_student_id(@assignment_1.id, @student_sam.id).last_graded_by.should eq(faculty)
+ end
+
+ it "should not update faculty in last graded by when last graded by is not empty" do
+ faculty_frank = FactoryGirl.build(:faculty_frank_user)
+ faculty_fagan = FactoryGirl.build(:faculty_fagan_user)
+ faculty = faculty_frank.id
+ score = "10"
+ score1 = "7"
+
+ Grade.give_grade(@course_fse.id, @assignment_1.id, @student_sam.id, score,nil,faculty).should be_true
+ Grade.give_grade(@course_fse.id, @assignment_1.id, @student_sam.id, score1,nil,faculty_fagan.id).should be_true
+
+ Grade.find_by_assignment_id_and_student_id(@assignment_1.id, @student_sam.id).last_graded_by.should eq(faculty)
+ end
+
+ it "should be able to update multiple grades with last graded by in grade book" do
+ faculty_frank = FactoryGirl.build(:faculty_frank_user)
+ faculty = faculty_frank.id
+ grades = []
+
+ [@assignment_1, @assignment_2].each do |assignment|
+ grades << {:course_id=>@course_fse.id, :assignment_id => assignment.id, :student_id=>@student_sam.id, :score => "10" }
+ end
+
+ Grade.give_grades(grades,faculty)
+ grades.each do |grade_entry|
+ Grade.find_by_assignment_id_and_student_id(grade_entry[:assignment_id], grade_entry[:student_id]).last_graded_by.should eq(faculty)
+ end
+ end
+
+ end
+
+# End Add Turing Ira
end
diff --git a/spec/requests/deliverables_spec.rb b/spec/requests/deliverables_spec.rb
index fa104ea65..792a4eb37 100644
--- a/spec/requests/deliverables_spec.rb
+++ b/spec/requests/deliverables_spec.rb
@@ -44,13 +44,33 @@
end
end
+ #turing
+ it "I can see who graded me" do
+ @faculty_frank = FactoryGirl.create(:faculty_frank_user)
+ @assignment1 = FactoryGirl.create(:assignment_team)
+ @grade1 = FactoryGirl.create(:last_graded_visible, :course_id => @assignment1.course.id,:assignment_id => @assignment1.id, :last_graded_by => @faculty_frank.id, :student_id =>@user.id)
+ @team_deliverable.course = @assignment1.course
+ @team_deliverable.assignment = @assignment1
+ @team_deliverable.creator = @user
+ Assignment.stub(:list_assignments_for_student).with(@user.id, :current).and_return([@assignment1])
+ Assignment.stub(:list_assignments_for_student).with(@user.id, :past).and_return([@assignment1])
+ @assignment1.stub(:get_student_grade).with(@user.id).and_return(@grade1)
+ Grade.stub(:get_grade).and_return(@grade1)
+ @assignment1.stub(:maximum_score).and_return(20.0)
+ click_link "Resubmit"
+ page.should have_content("Graded by")
+ page.should have_content(@faculty_frank.human_name)
+
+ end
+
it " I can not be able to view professor's notes" do
grade = @grade.score + "/" + @assignment.maximum_score.to_s
page.should have_content(grade)
click_link "Resubmit"
- # visit deliverable_path(@team_deliverable)
+ # visit deliverable_path(@team_deliverable)
- page.should have_content("Attachment Version History")
+ # page.should have_content("Attachment Version History")
+ page.should have_content("History")
page.should_not have_content("Professor's Notes")
page.should_not have_content("My private notes")
end
@@ -100,23 +120,113 @@
context "As a professor" do
before do
- @faculty = FactoryGirl.create(:faculty_fagan)
+ ## beg add Team Turing
+ @faculty = FactoryGirl.create(:faculty_frank_user)
login_with_oauth @faculty
@team_deliverable.course.faculty = [@faculty]
- visit deliverable_path(@team_deliverable)
+ @course = FactoryGirl.create(:fse)
+ @faculty_assignment = FactoryGirl.create(:faculty_assignment, :course_id => @course.id,
+ :user_id => @faculty.id)
+ @team_deliverable.course = @course
+ @student_sam = FactoryGirl.create(:student_sam)
+
+ @team_turing = FactoryGirl.create(:team_turing, :course=>@course)
+ @team_turing.members = [@student_sam]
+
+ @team_test = FactoryGirl.create(:team_test, :course=>@course)
+ @team_assignment = FactoryGirl.create(:team_turing_assignment, :team => @team_turing, :user => @student_sam)
+
+ @assignment_team_turing_1 = FactoryGirl.create(:assignment_1,:course => @course)
+ @assignment_team_turing_2 = FactoryGirl.create(:assignment_2,:course => @course)
+ @assignment_team_test_1 = FactoryGirl.create(:assignment_1,:course => @course)
+
+ @grade_assignment_team_turing_1 = FactoryGirl.create(:grade_invisible, :course => @course,:assignment =>
+ @assignment_team_turing_1, :last_graded_by => @faculty.id, :student =>@student_sam)
+
+ @team_turing_deliverable_1 = FactoryGirl.create(:team_turing_deliverable_1,:course => @course, :team =>
+ @team_turing, :assignment => @assignment_team_turing_1, :attachment_versions => [], :creator => @student_sam)
+ @team_turing_deliverable_2 = FactoryGirl.create(:team_turing_deliverable_2,:course => @course, :team =>
+ @team_turing,:assignment => @assignment_team_turing_2, :attachment_versions => [], :creator => @student_sam)
+ @team_test_deliverable_1 = FactoryGirl.create(:team_test_deliverable_1,:course => @course, :team =>
+ @team_test,:assignment => @assignment_team_test_1, :attachment_versions => [])
+
+
+ @attachment_team_turing_deliverable_1 = FactoryGirl.create(:attachment_1, :deliverable =>
+ @team_turing_deliverable_1, :submitter => @student_sam)
+ @attachment_team_turing_deliverable_2 = FactoryGirl.create(:attachment_1, :deliverable =>
+ @team_turing_deliverable_2, :submitter => @student_sam)
+ @attachment_team_test_deliverable_1 = FactoryGirl.create(:attachment_1, :deliverable =>
+ @team_test_deliverable_1, :submitter => @student_sam)
+
+ @attachment_team_turing_deliverable_1.attachment_file_name = "Attachment 1"
+ @attachment_team_turing_deliverable_2.attachment_file_name = "Attachment 2"
+ @attachment_team_test_deliverable_1.attachment_file_name = "Attachment 3"
+
+ @team_turing_deliverable_1.attachment_versions << @attachment_team_turing_deliverable_1
+ @team_turing_deliverable_2.attachment_versions << @attachment_team_turing_deliverable_2
+ @team_test_deliverable_1.attachment_versions << @attachment_team_test_deliverable_1
+
+ ## end add Team Turing
+
end
after do
@faculty.delete
end
- it "I should be able to view deliverable page" do
- page.should have_content("Attachment Version History")
+
+ ## beg add Team Turing
+
+ it "I should be able to view only my teams deliverables", :js => true do
+ visit course_deliverables_path(@course)
+
+ page.should have_content("Task 1")
+ page.should have_content("Task 2")
+ page.should_not have_content("Task 3")
+
+ page.should have_content("Team Turing")
+ page.should_not have_content("Team Test")
+
+ page.should have_link("Assignment 1")
+ page.should have_link("Assignment 2")
+ page.should_not have_link("Assignment 3")
+
+ end
+
+ it "I should be able see the ungraded icon as default", :js => true do
+ visit course_deliverables_path(@course)
+
+ page.should have_xpath("//img[contains(@src, \"deliverables_ungraded.png\")]")
+
+ end
+
+ it "I should be able to click deliverable to open accordion and check content of grading page", :js => true do
+ visit course_deliverables_path(@course)
+ find("#deliverable_" + @team_turing_deliverable_1.id.to_s).click
+ page.should have_content("History")
page.should have_content("Professor's Notes")
- page.should have_content("My private notes")
+ page.should have_content("My first deliverable")
+ page.should have_content("Graded by")
+ page.should have_content("Send a copy to myself")
+ page.should have_button("Save as Draft")
+ page.should have_button("Finalize and Email")
+
end
- end
+ it "I should be able to see who last graded in the grading page", :js => true do
+ visit course_deliverables_path(@course)
+ find("#deliverable_" + @team_turing_deliverable_1.id.to_s).click
+ page.should have_content("Graded by")
+ page.should have_link(@faculty.human_name.to_s, href: person_path(@faculty.twiki_name))
+ end
+
+ it "I should be able to see default message for last graded by in the grading page if not graded", :js => true do
+ visit course_deliverables_path(@course)
+ find("#deliverable_" + @team_turing_deliverable_2.id.to_s).click
+ page.should have_content("Graded by")
+ page.should_not have_link(@faculty.human_name.to_s, href: person_path(@faculty.twiki_name))
+ end
+ end
it "test user" do
@student1 = FactoryGirl.create(:student_sam_user)
@@ -142,7 +252,7 @@
login_with_oauth @professor
# visit deliverable_feedback_path(Deliverable.last) #if we separate out the feedback page
visit deliverable_path(Deliverable.last)
- save_and_open_page
+ #save_and_open_page
page.should have_content("Grade Team Deliverable")
}
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 63c02f768..44fa56b53 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -85,3 +85,21 @@ def login_with_warden(user, service = :google_apps)
## Forces all threads to share the same connection. This works on
## Capybara because it starts the web server in a thread.
#ActiveRecord::Base.shared_connection = ActiveRecord::Base.connection
+
+
+## beg add Team Turing
+
+class ActiveRecord::Base
+ mattr_accessor :shared_connection
+ @@shared_connection = nil
+
+ def self.connection
+ @@shared_connection || retrieve_connection
+ end
+end
+
+# Forces all threads to share the same connection. This works on
+# Capybara because it starts the web server in a thread.
+ActiveRecord::Base.shared_connection = ActiveRecord::Base.connection
+
+## end add Team Turing
\ No newline at end of file
diff --git a/spec_no_rails/services/grading_queue_spec.rb b/spec_no_rails/services/grading_queue_spec.rb
new file mode 100644
index 000000000..e69de29bb