From 503e9229c570248a350ca36db5eb21bc4bc4b8e2 Mon Sep 17 00:00:00 2001 From: chenyh Date: Mon, 22 Nov 2021 13:30:50 +0800 Subject: [PATCH] update --- Gemfile | 4 +- Gemfile.lock | 3 - app/assets/stylesheets/admins/common.scss | 31 - app/controllers/admins/base_controller.rb | 26 - app/controllers/attachments_controller.rb | 50 +- app/controllers/concerns/laboratory_helper.rb | 2 +- app/controllers/users_controller.rb | 3 +- app/helpers/application_helper.rb | 11 +- app/models/concerns/watchable.rb | 7 +- app/models/praise_tread.rb | 4 - app/models/user.rb | 20 +- app/services/projects/apply_join_service.rb | 2 +- app/views/admins/shared/_sidebar.html.erb | 28 +- app/views/settings/show.json.jbuilder | 4 +- config/application.rb | 2 +- config/routes.rb | 556 +++++++----------- ...fest-7657344e1d61e579de6a996a4498d7a2.json | 2 +- ...b132ffc5580cbd185d5f7a74d5358881815.css.gz | Bin 31481 -> 31481 bytes ...20fad15cc3b93baf22c091f3c6bfced11b4.css.gz | Bin 46898 -> 46898 bytes ...d832fdce2fb05edaf1b818c6e76fdf5ba77c.js.gz | Bin 749275 -> 749275 bytes ...1a58d73be01d62c8f39396540c4f0abb10c.css.gz | Bin 73942 -> 73942 bytes ...784df9a34dd971576db8231b63f618f9786e.js.gz | Bin 962038 -> 962038 bytes ...c78585432cc5fa41bbd7ad0f009033b2979.eot.gz | Bin 98200 -> 98200 bytes ...3d7a9ac9a093335806694ecd6d4edc0d6a8.ttf.gz | Bin 98106 -> 98106 bytes ...41368524bfc46f51e42fe0d945f7ef323e4.svg.gz | Bin 134485 -> 134485 bytes 25 files changed, 255 insertions(+), 500 deletions(-) diff --git a/Gemfile b/Gemfile index fb0f6aa8..a3e68683 100644 --- a/Gemfile +++ b/Gemfile @@ -14,7 +14,6 @@ gem 'turbolinks', '~> 5' gem 'jbuilder', '~> 2.5' gem 'groupdate', '~> 4.1.0' gem 'chartkick' -# gem 'grape', '~> 0.9.0' gem 'grape-entity', '~> 0.7.1' gem 'kaminari', '~> 1.1', '>= 1.1.1' @@ -48,7 +47,7 @@ gem 'redcarpet', '~> 3.4' gem 'rqrcode', '~> 0.10.1' gem 'rqrcode_png' -gem 'acts_as_tree', '~> 2.9', '>= 2.9.1' + gem 'acts-as-taggable-on', '~> 6.0' # a tree structure @@ -129,4 +128,3 @@ gem 'request_store' gem 'harmonious_dictionary', '~> 0.0.1' gem 'parallel', '~> 1.19', '>= 1.19.1' - diff --git a/Gemfile.lock b/Gemfile.lock index 9190d340..c67bcd22 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -57,8 +57,6 @@ GEM activerecord (>= 5.0, < 6.1) acts_as_list (0.9.19) activerecord (>= 3.0) - acts_as_tree (2.9.1) - activerecord (>= 3.0.0) addressable (2.7.0) public_suffix (>= 2.0.2, < 5.0) ancestry (3.0.7) @@ -438,7 +436,6 @@ DEPENDENCIES active_decorator acts-as-taggable-on (~> 6.0) acts_as_list - acts_as_tree (~> 2.9, >= 2.9.1) ancestry awesome_print axlsx (~> 3.0.0.pre) diff --git a/app/assets/stylesheets/admins/common.scss b/app/assets/stylesheets/admins/common.scss index 7a346464..8d48a67e 100644 --- a/app/assets/stylesheets/admins/common.scss +++ b/app/assets/stylesheets/admins/common.scss @@ -136,36 +136,5 @@ background: #fff; } .mt-10{margin-top: 10px;} - .nav_blueline_status{ - list-style-type: none; - padding: 0; - margin: 0; - li { - padding: 0px 15px; - border-radius: 15px; - border: 1px solid #CDCDCD; - height: 30px; - line-height: 30px; - float: left; - margin-right: 30px; - a { - color: #CDCDCD!important; - display: block; - } - }; - li.active { - border: 1px solid #4CACFF; - a { - color: #4CACFF!important; - } - } - } - .fr{float: right;} - .width240 { - width: 240px; - } - .mr15{margin-right: 15px;} - .mt2{margin-top: 2px;} } - diff --git a/app/controllers/admins/base_controller.rb b/app/controllers/admins/base_controller.rb index 56ce082b..fbfc3fc4 100644 --- a/app/controllers/admins/base_controller.rb +++ b/app/controllers/admins/base_controller.rb @@ -43,30 +43,4 @@ class Admins::BaseController < ApplicationController def setup_laboratory Laboratory.current = Laboratory.find_by_subdomain(request.subdomain) || Laboratory.find(1) end - - def up_and_down(opr,current_target,position,model_name) - modal_target = model_name.capitalize.classify.constantize - if model_name == "forum_section" #只有root才能移动 - modal_target = modal_target.roots - end - if opr.to_s == "up" - last_target = modal_target.where("position > ?",position)&.first - if last_target.present? - current_target.update_attribute(:position, last_target.position) - last_target.update_attribute(:position, position) # 重新获取当前问题的位置 - return 0 - else - return -1 - end - elsif opr.to_s == "down" - next_target = modal_target.where("position < ?",position)&.last - if next_target.present? - current_target.update_attribute(:position, next_target.position) - next_target.update_attribute(:position, position) - return 0 - else - return -1 - end - end - end end diff --git a/app/controllers/attachments_controller.rb b/app/controllers/attachments_controller.rb index 4cf54983..7bb1721e 100644 --- a/app/controllers/attachments_controller.rb +++ b/app/controllers/attachments_controller.rb @@ -28,8 +28,8 @@ class AttachmentsController < ApplicationController update_downloads(@file) end - - def get_file + + def get_file normal_status(-1, "参数缺失") if params[:download_url].blank? url = URI.encode(params[:download_url].to_s.gsub("http:", "https:")) response = Faraday.get(url) @@ -45,7 +45,7 @@ class AttachmentsController < ApplicationController uid_logger("#########################file_params####{params["#{params[:file_param_name]}"]}") raise "未上传文件" unless upload_file - folder = file_storage_directory + folder = edu_setting('attachment_folder') raise "存储目录未定义" unless folder.present? month_folder = current_month_folder @@ -92,44 +92,6 @@ class AttachmentsController < ApplicationController end end - #后台上传图片 - def upload_images - upload_file = params["file"] || params["#{params[:file_param_name]}"]# 这里的file_param_name是为了方便其他插件名称 - raise "未上传文件" unless upload_file - - folder = edu_setting('attachment_folder') - raise "存储目录未定义" unless folder.present? - month_folder = current_month_folder - save_path = File.join(folder, month_folder) - - ext = SecureRandom.urlsafe_base64 - - local_path, digest = file_save_to_local(save_path, upload_file.tempfile, ext) - - content_type = upload_file.content_type.presence || 'application/octet-stream' - - disk_filename = local_path[save_path.size + 1, local_path.size] - - @attachment = Attachment.where(disk_filename: disk_filename,author_id: current_user.id).first - if @attachment.blank? - @attachment = Attachment.new - @attachment.filename = upload_file.original_filename - @attachment.disk_filename = disk_filename - @attachment.filesize = upload_file.tempfile.size - @attachment.content_type = content_type - @attachment.digest = digest - @attachment.author_id = current_user.id - @attachment.disk_directory = month_folder - @attachment.save! - @status = 1 - else - @status = -1 - end - respond_to do |format| - format.js - end - end - def destroy begin @file_path = absolute_path(local_path(@file)) @@ -146,7 +108,7 @@ class AttachmentsController < ApplicationController end # 附件为视频时,点击播放 - def preview_attachment + def preview_attachment attachment = Attachment.find_by(id: params[:id]) dir_path = "#{Rails.root}/public/preview" Dir.mkdir(dir_path) unless Dir.exist?(dir_path) @@ -156,10 +118,10 @@ class AttachmentsController < ApplicationController else normal_status(-1, "出现错误,请稍后重试") end - else + else if system("rm -rf #{dir_path}/#{attachment.disk_filename}") normal_status(1, "操作成功") - else + else normal_status(-1, "出现错误,请稍后重试") end end diff --git a/app/controllers/concerns/laboratory_helper.rb b/app/controllers/concerns/laboratory_helper.rb index 426d1a33..b231b848 100644 --- a/app/controllers/concerns/laboratory_helper.rb +++ b/app/controllers/concerns/laboratory_helper.rb @@ -39,7 +39,7 @@ module LaboratoryHelper new_course: "https://www.trustie.net/courses/new", edit_account: "https://www.trustie.net/my/account", my_courses: "https://www.trustie.net/users/#{current_user.try(:login)}/user_courselist", - my_projects: "https://forgeplus.trustie.net/users/#{current_user.try(:login)}/projects", + my_projects: "/users/#{current_user.try(:login)}/projects", my_organ: "https://www.trustie.net/users/#{current_user.try(:login)}/user_organizations", default_url: "https://www.trustie.net/", tiding_url: "https://www.trustie.net/users/#{current_user.try(:login)}/user_messages", diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 368af1c1..1d353006 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -1,5 +1,4 @@ class UsersController < ApplicationController - include ApplicationHelper before_action :load_user, only: [:show, :homepage_info, :sync_token, :sync_gitea_pwd, :projects, :watch_users, :fan_users] before_action :check_user_exist, only: [:show, :homepage_info,:projects, :watch_users, :fan_users] @@ -67,7 +66,7 @@ class UsersController < ApplicationController def attachment_show file_name = params[:file_name] - path = params[:path] || file_storage_directory + path = params[:path] || edu_setting('attachment_folder') send_file "#{path}/#{file_name}", :filename => "#{file_name}", :type => 'game', :disposition => 'attachment' #inline can open in browser diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 83198b37..424cb7e1 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -141,7 +141,6 @@ module ApplicationHelper # 用户图像url,如果不存在的话,source为匿名用户,即默认使用匿名用户图像 def url_to_avatar(source) - return "" if source&.id.blank? if File.exist?(disk_filename(source&.class, source&.id)) ctime = File.ctime(disk_filename(source.class, source.id)).to_i if source.class.to_s == 'User' @@ -323,15 +322,7 @@ module ApplicationHelper end def absolute_path(file_path) - file_root_directory + File.join(edu_setting('attachment_folder'), file_path) - end - - def file_root_directory - Rails.root.to_s - end - - def file_storage_directory - file_root_directory + edu_setting('attachment_folder') + File.join(edu_setting('attachment_folder'), file_path) end def local_path(file) diff --git a/app/models/concerns/watchable.rb b/app/models/concerns/watchable.rb index b81954df..30f32d25 100644 --- a/app/models/concerns/watchable.rb +++ b/app/models/concerns/watchable.rb @@ -4,19 +4,14 @@ module Watchable included do has_many :watchers, as: :watchable, dependent: :destroy has_many :watcher_users, through: :watchers, source: :user, validate: false + scope :watched_by, -> (user_id) { includes(:watchers).where(watchers: { user_id: user_id }) } - attr_reader :watcher_ids, :watcher_user_ids end def watched?(watchable) watchable.watchers.exists?(user: self) end - def watched_by?(user) - watcher_users.exists?(id: user.id) - # !!(user && self.watcher_user_ids && self.watcher_user_ids.detect {|uid| uid == user.id }) - end - def watch!(watchable) watchable.watchers.create!(user: self, created_at: Time.current) end diff --git a/app/models/praise_tread.rb b/app/models/praise_tread.rb index 682bcb3d..df3fbb27 100644 --- a/app/models/praise_tread.rb +++ b/app/models/praise_tread.rb @@ -14,10 +14,6 @@ class PraiseTread < ApplicationRecord end end - def self.is_user_praise(target_id,target_type, target_user_id) - where(:praise_tread_object_id => target_id, :praise_tread_object_type => target_type, :user_id => target_user_id, :praise_or_tread => 1) - end - def self.find_object_by_type_and_id(id, type) type.constantize find_by_id id end diff --git a/app/models/user.rb b/app/models/user.rb index 6a9678f6..9518f59c 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -54,7 +54,6 @@ class User < ApplicationRecord has_one :qq_open_user, class_name: 'OpenUsers::QQ' accepts_nested_attributes_for :user_extension, update_only: true has_many :fork_users, dependent: :destroy - has_many :block_users, :dependent => :destroy has_many :versions has_many :issue_times, :dependent => :destroy @@ -73,7 +72,7 @@ class User < ApplicationRecord has_many :be_watchers, foreign_key: :user_id, dependent: :destroy # 我的关注 has_many :be_watcher_users, through: :be_watchers, dependent: :destroy # 我关注的用户 - # has_many :watchers, as: :watchable, dependent: :destroy + has_many :watchers, as: :watchable, dependent: :destroy # 认证 has_many :apply_user_authentication @@ -82,15 +81,6 @@ class User < ApplicationRecord has_many :apply_actions, dependent: :destroy has_many :trail_auth_apply_actions, -> { where(container_type: 'TrialAuthorization') }, class_name: 'ApplyAction' - #用户是否禁言 - has_many :banned_forums, :dependent => :destroy - - has_many :apply_forums, :dependent => :destroy - has_many :memos , :foreign_key => 'author_id' - - #论坛的板块内容,及版主 - has_many :forum_moderators, :dependent => :destroy - has_many :forum_sections, :dependent => :destroy # has_many :attendances # 项目 @@ -321,10 +311,6 @@ class User < ApplicationRecord status == STATUS_LOCKED end - def self.admin_users - where(admin: true) - end - def activate self.status = STATUS_ACTIVE end @@ -584,10 +570,6 @@ class User < ApplicationRecord end end - def blocked_for(user_id) - block_users.where(block_user_id: user_id).exists? - end - def salt_password(clear_password) self.salt = User.generate_salt self.hashed_password = User.hash_password("#{salt}#{User.hash_password clear_password}") diff --git a/app/services/projects/apply_join_service.rb b/app/services/projects/apply_join_service.rb index 2383b0ca..0b57712d 100644 --- a/app/services/projects/apply_join_service.rb +++ b/app/services/projects/apply_join_service.rb @@ -66,7 +66,7 @@ class Projects::ApplyJoinService < ApplicationService return if owner.phone.blank? Educoder::Sms.send(mobile: owner.phone, send_type:'applied_project_info', - user_name: owner.show_real_name, name: project.name) + user_name: owner.show_name, name: project.name) rescue Exception => ex Rails.logger.error("发送短信失败 => #{ex.message}") end diff --git a/app/views/admins/shared/_sidebar.html.erb b/app/views/admins/shared/_sidebar.html.erb index d81ec166..de56a547 100644 --- a/app/views/admins/shared/_sidebar.html.erb +++ b/app/views/admins/shared/_sidebar.html.erb @@ -19,19 +19,29 @@
  • <%= sidebar_item(admins_users_path, '用户列表', icon: 'user', controller: 'admins-users') %>
  • <% end %> -
  • - <%= sidebar_item_group('#memos-submenu', '交流论坛', icon: 'columns') do %> -
  • <%= sidebar_item(admins_memos_path, '帖子', icon: 'columns', controller: 'admins-memos') %>
  • -
  • <%= sidebar_item(admins_apply_destroy_index_path, '申请删帖', icon: 'trash', controller: 'admins-apply_destroy') %>
  • -
  • <%= sidebar_item(admins_memo_reply_lists_path, '回复', icon: 'mail-reply-all', controller: 'admins-memo_reply_lists') %>
  • -
  • <%= sidebar_item(admins_forum_sections_path, '版块配置', icon: 'tags', controller: 'admins-forum_sections') %>
  • -
  • <%= sidebar_item(admins_banned_users_path, '禁言列表', icon: 'ban', controller: 'admins-banned_users') %>
  • -
  • <%= sidebar_item(admins_forum_applies_path, '版主审批', icon: 'check-square-o', controller: 'admins-forum_applies') %>
  • +
  • + <%= sidebar_item_group('#projects-submenu', '开源项目', icon: 'database') do %> +
  • <%= sidebar_item(admins_projects_path, '项目列表', icon: 'database', controller: 'admins-projects') %>
  • +
  • <%= sidebar_item(admins_project_languages_path, '项目语言', icon: 'language', controller: 'admins-project_languages') %>
  • +
  • <%= sidebar_item(admins_project_categories_path, '分类列表', icon: 'sitemap', controller: 'admins-project_categories') %>
  • +
  • <%= sidebar_item(admins_project_licenses_path, '开源许可证', icon: 'file-text-o', controller: 'admins-project_licenses') %>
  • +
  • <%= sidebar_item(admins_project_ignores_path, '忽略文件', icon: 'git', controller: 'admins-project_ignores') %>
  • <% end %> +
  • <%= sidebar_item(admins_laboratories_path, '云上实验室', icon: 'cloud', controller: 'admins-laboratories') %>
  • +
  • - <%= sidebar_item('/admins/sidekiq', '定时任务', icon: 'bell', controller: 'root') %> + <%= sidebar_item_group('#setting-submenu', '网站建设', icon: 'cogs') do %> +
  • <%= sidebar_item(edit_admins_about_path, '关于我们', icon: 'smile-o', controller: 'admins-abouts') %>
  • +
  • <%= sidebar_item(edit_admins_contact_us_path, '联系我们', icon: 'commenting-o', controller: 'admins-contact_us') %>
  • +
  • <%= sidebar_item(admins_cooperatives_path, '合作伙伴', icon: 'handshake-o', controller: 'admins-cooperatives') %>
  • +
  • <%= sidebar_item(edit_admins_agreement_path, '服务协议', icon: 'file-text-o', controller: 'admins-agreements') %>
  • +
  • <%= sidebar_item(edit_admins_help_center_path, '帮助中心', icon: 'question-circle-o', controller: 'admins-help_centers') %>
  • + <% end %> + +
  • + <%= sidebar_item('/admins/sidekiq', '定时任务', icon: 'bell', controller: 'root') %>
  • <%= sidebar_item('/', '返回主站', icon: 'sign-out', controller: 'root') %>
  • diff --git a/app/views/settings/show.json.jbuilder b/app/views/settings/show.json.jbuilder index 8f818b47..7de12345 100644 --- a/app/views/settings/show.json.jbuilder +++ b/app/views/settings/show.json.jbuilder @@ -16,10 +16,10 @@ json.setting do # # json.footer setting.footer || default_setting.footer # - # json.main_site current_laboratory.main_site? # end nav_bar = default_setting.navbar + # if User.current.logged? # nav_bar[2]["link"] = "https://forgeplus.trustie.net/users/#{current_user.login}/projects" # nav_bar[2]["hidden"] = false @@ -48,4 +48,4 @@ json.setting do json.old_projects_url @old_projects_url -end \ No newline at end of file +end diff --git a/config/application.rb b/config/application.rb index 75717dbb..9878c8da 100644 --- a/config/application.rb +++ b/config/application.rb @@ -40,7 +40,7 @@ module Educoderplus allow do origins '*' # location of your api - resource '/*', :headers => :any, :methods => [:get, :post, :delete, :options, :put, :patch] + resource '/*', :headers => :any, :methods => [:get, :post, :delete, :options, :put] end end end diff --git a/config/routes.rb b/config/routes.rb index 5aa1f221..592067f6 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -2,88 +2,36 @@ Rails.application.routes.draw do require 'sidekiq/web' require 'admin_constraint' - # mount Mobile::API => '/api' + # mount Sidekiq::Web => '/sidekiq', :constraints => AdminConstraint.new # Serve websocket cable requests in-process mount ActionCable.server => '/cable' - + get 'attachments/entries/get_file', to: 'attachments#get_file' get 'attachments/download/:id', to: 'attachments#show' get 'attachments/download/:id/:filename', to: 'attachments#show' - post 'attachments/upload_images', to: 'attachments#upload_images' - # get 'attachments/download/:id/:filename', :to => 'attachments#download', :id => /\d+/, :filename => /.*/, :as => 'download_named_attachment' + get 'auth/qq/callback', to: 'oauth/qq#create' get 'auth/failure', to: 'oauth/base#auth_failure' get 'auth/cas/callback', to: 'oauth/cas#create' get 'oauth/bind', to: 'oauth/educoder#bind' - get 'oauth/register', to: 'oauth#register' + get 'oauth/register', to: 'oauth#register' post 'oauth/auto_register', to: 'oauth#auto_register' resources :edu_settings scope '/api' do - # match 'upload_avatar', :to => 'avatars#upload', :via => :post - # match 'delete_avatar', :to => 'avatars#delete_image',:via => :post - get 'users/:login/user_info', to: 'customers#show' - post 'users/:login/edit_brief', to: 'customers#edit_brief' - get 'my_memos/:login/memos', to: 'my_memos#index' - get 'my_memos/:login/my_interested', to: 'my_memos#my_interested' - get 'my_memos/:login/replies_memos', to: 'my_memos#replies_memos' - get 'my_memos/:login/recommend_memos', to: 'my_memos#recommend_memos' - get 'forum_sections/:id/deal_applies/:apply_id', to: 'forum_sections#deal_applies' - get 'forum_sections/:id/destroy_moderator/:moderator_id', to: 'forum_sections#destroy_moderator' - post "/forum_sections/:id/destroy_moderator/:moderator_id", to: "forum_sections#destroy_moderator" - resources :forum_sections, only: [:index, :create] do - collection do - get :select_sections - post :rename - post :destroy_forum - end - member do - post :user_apply - post :edit_notice - get :forum_section_header - get :order_forums - get :search_users - post :add_users - get :managements - get :applied_forums - get :unchecked_memos - get :unchecked_replies - get :checked_memos + resources :sync_forge, only: [:create] do + collection do + post :sync_users + post :sync_range_projects end end - get 'memos/forum_memos/:id', to: 'memos#forum_memos' - get 'memos/forum_memos_head/:id', to: 'memos#forum_memos_head' - get 'memos/forum_memos_right/:id', to: 'memos#forum_memos_right' - post 'forum_memos/:id/is_watch', to: 'memos#is_watch' - resources :memos, only: [:index, :create, :edit, :update, :show, :destroy] do - member do - get :related_memos - post :watch_memo - get :hidden - post :watch_memo - post :memo_hidden - post :reply - get :set_top_or_down - post :is_fine - post :banned_user - get :more_reply - post :confirm_delete - post :plus - end + resources :composes do + resources :compose_projects, only: [:create, :destroy] end - # resources :sync_forge, only: [:create] do - # collection do - # post :sync_users - # post :sync_range_projects - # end - # end - # resources :composes do - # resources :compose_projects, only: [:create, :destroy] - # end resources :attachments do member do post :preview_attachment @@ -96,31 +44,31 @@ Rails.application.routes.draw do get 'home/search' get 'main/first_stamp' - # get 'search', to: 'searchs#index' - # put 'commons/hidden', to: 'commons#hidden' - # put 'commons/unhidden', to: 'commons#unhidden' - # delete 'commons/delete', to: 'commons#delete' + get 'search', to: 'searchs#index' + put 'commons/hidden', to: 'commons#hidden' + put 'commons/unhidden', to: 'commons#unhidden' + delete 'commons/delete', to: 'commons#delete' - # resources :issues, except: [:index, :new,:create, :update, :edit, :destroy] do - # resources :journals, only: [:index, :create, :destroy, :edit, :update] do - # member do - # get :get_children_journals - # end - # end - # resources :issue_times, only: [:create] do - # collection do - # post :end_work - # end - # end - # resources :issue_depends, only: [:create, :destroy] - # end + resources :issues, except: [:index, :new,:create, :update, :edit, :destroy] do + resources :journals, only: [:index, :create, :destroy, :edit, :update] do + member do + get :get_children_journals + end + end + resources :issue_times, only: [:create] do + collection do + post :end_work + end + end + resources :issue_depends, only: [:create, :destroy] + end - # resources :project_categories, only: [:index, :show] do - # get :group_list, on: :collection - # end - # resources :project_languages, only: [:index, :show] - # resources :ignores, only: [:index, :show] - # resources :licenses, only: [:index, :show] + resources :project_categories, only: [:index, :show] do + get :group_list, on: :collection + end + resources :project_languages, only: [:index, :show] + resources :ignores, only: [:index, :show] + resources :licenses, only: [:index, :show] resources :watchers, only: [:index] do collection do @@ -129,24 +77,23 @@ Rails.application.routes.draw do get :check_watch end end - # resources :projects do - # resources :praise_tread, only: [:index] do - # collection do - # post :like - # delete :unlike - # get :check_like - # end - # end + resources :projects do + resources :praise_tread, only: [:index] do + collection do + post :like + delete :unlike + get :check_like + end + end - # collection do - # post :migrate - # get :group_type_list - # get :recommend - # end - # end + collection do + post :migrate + get :group_type_list + get :recommend + end + end resources :accounts do - collection do post :login post :register @@ -219,7 +166,7 @@ Rails.application.routes.draw do end end - # resources :users_for_private_messages, only: [:index] + resources :users_for_private_messages, only: [:index] resources :files, only: [:index, :show, :update] do collection do @@ -238,9 +185,9 @@ Rails.application.routes.draw do end end - # namespace :wechats do - # resource :js_sdk_signature, only: [:create] - # end + namespace :wechats do + resource :js_sdk_signature, only: [:create] + end resource :template, only: [:show] resource :setting, only: [:show] @@ -251,193 +198,193 @@ Rails.application.routes.draw do resources :hot_keywords, only: [:index] - # namespace :weapps do - # resource :home, only: [:show] - # resource :session, only: [:create] - # resource :register, only: [:create] - # resource :verification_code, only: [:create] - # resource :code_session, only: [:create] - # resource :verify, only: [:create] - # resource :check_account, only: [:create] - # resource :unbind_accounts, only: [:show, :destroy] + namespace :weapps do + resource :home, only: [:show] + resource :session, only: [:create] + resource :register, only: [:create] + resource :verification_code, only: [:create] + resource :code_session, only: [:create] + resource :verify, only: [:create] + resource :check_account, only: [:create] + resource :unbind_accounts, only: [:show, :destroy] - # resources :searchs, only: [:index] - # resources :course_stickies, only: [:create] do - # post :cancel_sticky, on: :collection - # end + resources :searchs, only: [:index] + resources :course_stickies, only: [:create] do + post :cancel_sticky, on: :collection + end - # resources :shixun_lists, only: [:index] - # resources :subjects, path: :paths, only: [:index, :create, :update, :edit, :show] - # resources :challenges do - # get :is_play, on: :member - # end + resources :shixun_lists, only: [:index] + resources :subjects, path: :paths, only: [:index, :create, :update, :edit, :show] + resources :challenges do + get :is_play, on: :member + end - # resources :courses, only: [:create, :update, :edit, :show] do - # member do - # get :shixun_homework_category - # get :teachers - # get :students - # get :course_groups - # get :basic_info - # get :course_activities - # post :change_member_roles - # delete :delete_course_teachers - # delete :delete_course_students - # end + resources :courses, only: [:create, :update, :edit, :show] do + member do + get :shixun_homework_category + get :teachers + get :students + get :course_groups + get :basic_info + get :course_activities + post :change_member_roles + delete :delete_course_teachers + delete :delete_course_students + end - # collection do - # get :check_invite_code - # end - # end - # end + collection do + get :check_invite_code + end + end + end # Project Area START - # scope "/:owner/:repo" do - # scope do - # get( - # '/activity', - # to: 'project_trends#index', - # as: :project_activity - # ) - # end + scope "/:owner/:repo" do + scope do + get( + '/activity', + to: 'project_trends#index', + as: :project_activity + ) + end - # resource :projects, path: '/', except: [:show, :edit] do - # member do - # get :branches - # get :simple - # get :watchers, to: 'projects#watch_users' - # get :stargazers, to: 'projects#praise_users' - # get :members, to: 'projects#fork_users' - # match :about, :via => [:get, :put, :post] - # end - # end + resource :projects, path: '/', except: [:show, :edit] do + member do + get :branches + get :simple + get :watchers, to: 'projects#watch_users' + get :stargazers, to: 'projects#praise_users' + get :members, to: 'projects#fork_users' + match :about, :via => [:get, :put, :post] + end + end - # resource :repositories, path: '/', only: [:show, :create, :edit] do - # member do - # get :archive - # get :top_counts - # get :entries - # match :sub_entries, :via => [:get, :put] - # get :commits - # get :tags - # post :create_file - # put :update_file - # delete :delete_file - # post :repo_hook - # post :sync_mirror - # get :top_counts - # get 'commits/:sha', to: 'repositories#commit', as: 'commit' - # end - # end + resource :repositories, path: '/', only: [:show, :create, :edit] do + member do + get :archive + get :top_counts + get :entries + match :sub_entries, :via => [:get, :put] + get :commits + get :tags + post :create_file + put :update_file + delete :delete_file + post :repo_hook + post :sync_mirror + get :top_counts + get 'commits/:sha', to: 'repositories#commit', as: 'commit' + end + end - # resources :issues do - # collection do - # get :commit_issues - # get :index_chosen - # post :clean - # post :series_update - # end - # member do - # post :copy - # post :close_issue - # post :lock_issue - # end - # end + resources :issues do + collection do + get :commit_issues + get :index_chosen + post :clean + post :series_update + end + member do + post :copy + post :close_issue + post :lock_issue + end + end - # resources :pull_requests, :path => :pulls, except: [:destroy] do - # member do - # post :pr_merge - # # post :check_merge - # post :refuse_merge - # end - # collection do - # post :check_can_merge - # get :create_merge_infos - # get :get_branches - # end - # end + resources :pull_requests, :path => :pulls, except: [:destroy] do + member do + post :pr_merge + # post :check_merge + post :refuse_merge + end + collection do + post :check_can_merge + get :create_merge_infos + get :get_branches + end + end - # resources :versions, :path => :milestones do - # member do - # post :update_status - # end - # end + resources :versions, :path => :milestones do + member do + post :update_status + end + end - # resources :members, :path => :collaborators, only: [:index, :create] do - # collection do - # delete :remove - # put :change_role - # end - # end + resources :members, :path => :collaborators, only: [:index, :create] do + collection do + delete :remove + put :change_role + end + end - # resources :hooks - # resources :forks, only: [:create] - # resources :project_trends, :path => :activity, only: [:index, :create] - # resources :issue_tags, :path => :labels, only: [:create, :edit, :update, :destroy, :index] - # resources :version_releases, :path => :releases, only: [:index,:new, :create, :edit, :update, :destroy] + resources :hooks + resources :forks, only: [:create] + resources :project_trends, :path => :activity, only: [:index, :create] + resources :issue_tags, :path => :labels, only: [:create, :edit, :update, :destroy, :index] + resources :version_releases, :path => :releases, only: [:index,:new, :create, :edit, :update, :destroy] - # scope module: :projects do - # scope do - # get( - # '/blob/*id/diff', - # to: 'blob#diff', - # constraints: { id: /.+/, format: false }, - # as: :blob_diff - # ) - # get( - # '/blob/*id', - # to: 'blob#show', - # constraints: { id: /.+/, format: false }, - # as: :blob - # ) - # delete( - # '/blob/*id', - # to: 'blob#destroy', - # constraints: { id: /.+/, format: false } - # ) - # put( - # '/blob/*id', - # to: 'blob#update', - # constraints: { id: /.+/, format: false } - # ) - # post( - # '/blob/*id', - # to: 'blob#create', - # constraints: { id: /.+/, format: false } - # ) - # end + scope module: :projects do + scope do + get( + '/blob/*id/diff', + to: 'blob#diff', + constraints: { id: /.+/, format: false }, + as: :blob_diff + ) + get( + '/blob/*id', + to: 'blob#show', + constraints: { id: /.+/, format: false }, + as: :blob + ) + delete( + '/blob/*id', + to: 'blob#destroy', + constraints: { id: /.+/, format: false } + ) + put( + '/blob/*id', + to: 'blob#update', + constraints: { id: /.+/, format: false } + ) + post( + '/blob/*id', + to: 'blob#create', + constraints: { id: /.+/, format: false } + ) + end - # scope do - # get( - # '/raw/*id', - # to: 'raw#show', - # constraints: { id: /.+/, format: /(html|js)/ }, - # as: :raw - # ) - # end + scope do + get( + '/raw/*id', + to: 'raw#show', + constraints: { id: /.+/, format: /(html|js)/ }, + as: :raw + ) + end - # scope do - # get( - # '/blame/*id', - # to: 'blame#show', - # constraints: { id: /.+/, format: /(html|js)/ }, - # as: :blame - # ) - # end + scope do + get( + '/blame/*id', + to: 'blame#show', + constraints: { id: /.+/, format: /(html|js)/ }, + as: :blame + ) + end - # scope do - # get( - # '/tree/*id', - # to: 'tree#show', - # constraints: { id: /.+/, format: /(html|js)/ }, - # as: :tree - # ) - # end - # end - # end + scope do + get( + '/tree/*id', + to: 'tree#show', + constraints: { id: /.+/, format: /(html|js)/ }, + as: :tree + ) + end + end + end # Project Area END end - + namespace :admins do mount Sidekiq::Web => '/sidekiq' get '/', to: 'dashboards#index' @@ -450,47 +397,6 @@ Rails.application.routes.draw do resources :project_categories resources :project_licenses resources :project_ignores - resources :banned_users, only: [:index] do - collection do - post :confirm_banned - end - end - resources :apply_destroy, only: :index do - collection do - post :confirm_apply_destroy - end - end - resources :memo_reply_lists, only: :index - resources :memos, only: :index do - collection do - post 'memo_homepage_show' - post 'memo_hidden' - delete 'delete_memo' - end - end - resources :forum_applies do - member do - post :confirm_apply - end - end - # resources :banned_users, only: :index do - # member do - # post :confirm_banned - # end - # end - resources :forum_sections do - member do - get "order_forums" - post "recommend_forums" - post 'move' - end - - resources :forum_moderators do - collection do - post "search_user" - end - end - end resources :major_informations, only: [:index] resources :ec_templates, only: [:index, :destroy] do collection do @@ -741,30 +647,6 @@ Rails.application.routes.draw do end end - resources :forums, only: [:index, :new, :edit, :show] do - member do - get "detail" - end - collection do - match '/manage/:id/', :to => 'forums#manage', :via => :get - match '/theme/:id/', :to => 'forums#theme', :via => :get - resources :plates, only: [:show, :index] do - get 'all' - get 'is_fine' - get 'my_memos' - get 'my_topics' - end - resources :categories do - collection do - get 'all', :via => [:get, :post] - get 'guide', :via => [:get, :post] - get 'techShare' - get 'shixun_discuss' - end - end - end - end - #git 认证回调 match 'gitauth/*url', to: 'gits#auth', via: :all diff --git a/public/assets/.sprockets-manifest-7657344e1d61e579de6a996a4498d7a2.json b/public/assets/.sprockets-manifest-7657344e1d61e579de6a996a4498d7a2.json index 6737ee30..8964ac1f 100644 --- a/public/assets/.sprockets-manifest-7657344e1d61e579de6a996a4498d7a2.json +++ b/public/assets/.sprockets-manifest-7657344e1d61e579de6a996a4498d7a2.json @@ -1 +1 @@ -{"files":{"admin-1bd781fc5959b4f0e8879fa92afc5cec47e2d1a9b79cad9e55177fc1197a0e5b.js":{"logical_path":"admin.js","mtime":"2019-11-27T19:06:45+08:00","size":4594770,"digest":"1bd781fc5959b4f0e8879fa92afc5cec47e2d1a9b79cad9e55177fc1197a0e5b","integrity":"sha256-G9eB/FlZtPDoh5+pKvxc7Efi0am3nK2eVRd/wRl6Dls="},"admin-e78dd8b2041c26973b3851180e413539c07042575e336147194b5f2a1f7fa09c.css":{"logical_path":"admin.css","mtime":"2019-11-21T17:49:31+08:00","size":817848,"digest":"e78dd8b2041c26973b3851180e413539c07042575e336147194b5f2a1f7fa09c","integrity":"sha256-543YsgQcJpc7OFEYDkE1OcBwQldeM2FHGUtfKh9/oJw="},"font-awesome/fontawesome-webfont-7bfcab6db99d5cfbf1705ca0536ddc78585432cc5fa41bbd7ad0f009033b2979.eot":{"logical_path":"font-awesome/fontawesome-webfont.eot","mtime":"2019-08-23T09:13:14+08:00","size":165742,"digest":"7bfcab6db99d5cfbf1705ca0536ddc78585432cc5fa41bbd7ad0f009033b2979","integrity":"sha256-e/yrbbmdXPvxcFygU23ceFhUMsxfpBu9etDwCQM7KXk="},"font-awesome/fontawesome-webfont-2adefcbc041e7d18fcf2d417879dc5a09997aa64d675b7a3c4b6ce33da13f3fe.woff2":{"logical_path":"font-awesome/fontawesome-webfont.woff2","mtime":"2019-08-23T09:13:14+08:00","size":77160,"digest":"2adefcbc041e7d18fcf2d417879dc5a09997aa64d675b7a3c4b6ce33da13f3fe","integrity":"sha256-Kt78vAQefRj88tQXh53FoJmXqmTWdbejxLbOM9oT8/4="},"font-awesome/fontawesome-webfont-ba0c59deb5450f5cb41b3f93609ee2d0d995415877ddfa223e8a8a7533474f07.woff":{"logical_path":"font-awesome/fontawesome-webfont.woff","mtime":"2019-08-23T09:13:14+08:00","size":98024,"digest":"ba0c59deb5450f5cb41b3f93609ee2d0d995415877ddfa223e8a8a7533474f07","integrity":"sha256-ugxZ3rVFD1y0Gz+TYJ7i0NmVQVh33foiPoqKdTNHTwc="},"font-awesome/fontawesome-webfont-aa58f33f239a0fb02f5c7a6c45c043d7a9ac9a093335806694ecd6d4edc0d6a8.ttf":{"logical_path":"font-awesome/fontawesome-webfont.ttf","mtime":"2019-08-23T09:13:14+08:00","size":165548,"digest":"aa58f33f239a0fb02f5c7a6c45c043d7a9ac9a093335806694ecd6d4edc0d6a8","integrity":"sha256-qljzPyOaD7AvXHpsRcBD16msmgkzNYBmlOzW1O3A1qg="},"font-awesome/fontawesome-webfont-ad6157926c1622ba4e1d03d478f1541368524bfc46f51e42fe0d945f7ef323e4.svg":{"logical_path":"font-awesome/fontawesome-webfont.svg","mtime":"2019-08-23T09:13:14+08:00","size":444379,"digest":"ad6157926c1622ba4e1d03d478f1541368524bfc46f51e42fe0d945f7ef323e4","integrity":"sha256-rWFXkmwWIrpOHQPUePFUE2hSS/xG9R5C/g2UX37zI+Q="},"college-431d908264782ef54e90202095d4cf397c586f74d2b7879684348dc8b53d2cd2.js":{"logical_path":"college.js","mtime":"2020-01-07T14:59:22+08:00","size":3570046,"digest":"431d908264782ef54e90202095d4cf397c586f74d2b7879684348dc8b53d2cd2","integrity":"sha256-Qx2QgmR4LvVOkCAgldTPOXxYb3TSt4eWhDSNyLU9LNI="},"college-eb35b6573dea2a069abd5acb0211940c2165fa21da333555fa859ed155b3ca1f.css":{"logical_path":"college.css","mtime":"2019-11-20T17:50:44+08:00","size":565772,"digest":"eb35b6573dea2a069abd5acb0211940c2165fa21da333555fa859ed155b3ca1f","integrity":"sha256-6zW2Vz3qKgaavVrLAhGUDCFl+iHaMzVV+oWe0VWzyh8="},"cooperative-4f2218bb223392ea4332e9ace5a748baccd4fe66d4b5cc3b5574f97a425203ec.js":{"logical_path":"cooperative.js","mtime":"2020-01-07T14:59:22+08:00","size":4478060,"digest":"4f2218bb223392ea4332e9ace5a748baccd4fe66d4b5cc3b5574f97a425203ec","integrity":"sha256-TyIYuyIzkupDMums5adIuszU/mbUtcw7VXT5ekJSA+w="},"cooperative-9244063fa63cd29c9c3b074af565be75a130cfb31741b2f5252fe68a1f5c13c5.css":{"logical_path":"cooperative.css","mtime":"2019-11-20T17:50:44+08:00","size":799850,"digest":"9244063fa63cd29c9c3b074af565be75a130cfb31741b2f5252fe68a1f5c13c5","integrity":"sha256-kkQGP6Y80pycOwdK9WW+daEwz7MXQbL1JS/mih9cE8U="},"logo-7ff112568709bf97f9898fe87249b7a8f200ff1f48d537d85af87215f1870423.png":{"logical_path":"logo.png","mtime":"2020-03-09T09:54:37+08:00","size":2816,"digest":"7ff112568709bf97f9898fe87249b7a8f200ff1f48d537d85af87215f1870423","integrity":"sha256-f/ESVocJv5f5iY/ockm3qPIA/x9I1TfYWvhyFfGHBCM="},"application-d44f4301c7dfbe07bcb2788d7c006c22c184ae6b7016c09f7911b4962aacd767.js":{"logical_path":"application.js","mtime":"2020-01-07T14:59:22+08:00","size":615525,"digest":"d44f4301c7dfbe07bcb2788d7c006c22c184ae6b7016c09f7911b4962aacd767","integrity":"sha256-1E9DAcffvge8sniNfABsIsGErmtwFsCfeRG0liqs12c="},"application-2bf79ac2818959eb18d4df720a0cd0721b3b2385dd4565d635851fc41e192975.css":{"logical_path":"application.css","mtime":"2019-09-09T09:26:59+08:00","size":401033,"digest":"2bf79ac2818959eb18d4df720a0cd0721b3b2385dd4565d635851fc41e192975","integrity":"sha256-K/eawoGJWesY1N9yCgzQchs7I4XdRWXWNYUfxB4ZKXU="},"admin-83797d03d53c38db8e4751348516f8b7c55842cf8899066b86b3b2e6b6b1c8ad.js":{"logical_path":"admin.js","mtime":"2019-12-02T10:11:32+08:00","size":4583649,"digest":"83797d03d53c38db8e4751348516f8b7c55842cf8899066b86b3b2e6b6b1c8ad","integrity":"sha256-g3l9A9U8ONuOR1E0hRb4t8VYQs+ImQZrhrOy5raxyK0="},"admin-1512839e7eaa2136bdf9b238e3710004f8b90f2b74300c8ae7d9f9b25dddf077.css":{"logical_path":"admin.css","mtime":"2019-11-27T15:52:07+08:00","size":868584,"digest":"1512839e7eaa2136bdf9b238e3710004f8b90f2b74300c8ae7d9f9b25dddf077","integrity":"sha256-FRKDnn6qITa9+bI443EABPi5Dyt0MAyK59n5sl3d8Hc="},"college-1e70702e2d864fb4d5f57841bfa5937e31c7c059e6cd672a07f0b4b20740f607.js":{"logical_path":"college.js","mtime":"2019-11-20T16:00:49+08:00","size":3569292,"digest":"1e70702e2d864fb4d5f57841bfa5937e31c7c059e6cd672a07f0b4b20740f607","integrity":"sha256-HnBwLi2GT7TV9XhBv6WTfjHHwFnmzWcqB/C0sgdA9gc="},"college-a14be76ebc459e3bedd86e64c62b07c2dfc7ce632d73b86a7270b17462e5b746.css":{"logical_path":"college.css","mtime":"2019-11-11T18:25:42+08:00","size":610352,"digest":"a14be76ebc459e3bedd86e64c62b07c2dfc7ce632d73b86a7270b17462e5b746","integrity":"sha256-oUvnbrxFnjvt2G5kxisHwt/HzmMtc7hqcnCxdGLlt0Y="},"cooperative-bbf9b1ef14747d17410f2f38a6f308697335f86d4525ed6a5579905efc314ef3.js":{"logical_path":"cooperative.js","mtime":"2019-11-20T16:00:49+08:00","size":4463241,"digest":"bbf9b1ef14747d17410f2f38a6f308697335f86d4525ed6a5579905efc314ef3","integrity":"sha256-u/mx7xR0fRdBDy84pvMIaXM1+G1FJe1qVXmQXvwxTvM="},"cooperative-c36bba05d6a13482ccb6c3696ba5d750841dec9cae7a8043a0318c34c3a4638e.css":{"logical_path":"cooperative.css","mtime":"2019-11-17T09:36:46+08:00","size":849736,"digest":"c36bba05d6a13482ccb6c3696ba5d750841dec9cae7a8043a0318c34c3a4638e","integrity":"sha256-w2u6BdahNILMtsNpa6XXUIQd7JyueoBDoDGMNMOkY44="},"application-9cfbc3d792599a1d0de5c7b84209e1c2b2e60336f0f01e19f0581663918708fb.js":{"logical_path":"application.js","mtime":"2019-11-20T16:00:49+08:00","size":600706,"digest":"9cfbc3d792599a1d0de5c7b84209e1c2b2e60336f0f01e19f0581663918708fb","integrity":"sha256-nPvD15JZmh0N5ce4QgnhwrLmAzbw8B4Z8FgWY5GHCPs="},"application-8c9d6bb61c50908f584b3070c79aeb95f25c1166d39e07da5e95438b39ca0de9.css":{"logical_path":"application.css","mtime":"2019-10-21T22:52:15+08:00","size":436995,"digest":"8c9d6bb61c50908f584b3070c79aeb95f25c1166d39e07da5e95438b39ca0de9","integrity":"sha256-jJ1rthxQkI9YSzBwx5rrlfJcEWbTngfaXpVDiznKDek="},"admin-f1a4d30772fa41e1edd288c1b1d39deeac7481d590b13a886953adf2f2e4f47c.js":{"logical_path":"admin.js","mtime":"2019-11-29T15:05:39+08:00","size":4583647,"digest":"f1a4d30772fa41e1edd288c1b1d39deeac7481d590b13a886953adf2f2e4f47c","integrity":"sha256-8aTTB3L6QeHt0ojBsdOd7qx0gdWQsTqIaVOt8vLk9Hw="},"admin-0172e0b18d559d9648df58d7954e4843256ba2d2eda03543b7cc6c955c8e2eb3.js":{"logical_path":"admin.js","mtime":"2019-12-02T10:58:14+08:00","size":4583648,"digest":"0172e0b18d559d9648df58d7954e4843256ba2d2eda03543b7cc6c955c8e2eb3","integrity":"sha256-AXLgsY1VnZZI31jXlU5IQyVrotLtoDVDt8xslVyOLrM="},"admin-6da32058962cbfc9483b468c26d5f9b968b5f970a2031f73952863c554cd6254.js":{"logical_path":"admin.js","mtime":"2019-12-02T17:44:43+08:00","size":4583680,"digest":"6da32058962cbfc9483b468c26d5f9b968b5f970a2031f73952863c554cd6254","integrity":"sha256-baMgWJYsv8lIO0aMJtX5uWi1+XCiAx9zlShjxVTNYlQ="},"admin-64b90a423722da851a01011acac435b5f29f25e3b741e78854ea1a40742d89f7.js":{"logical_path":"admin.js","mtime":"2019-12-06T11:19:59+08:00","size":4584886,"digest":"64b90a423722da851a01011acac435b5f29f25e3b741e78854ea1a40742d89f7","integrity":"sha256-ZLkKQjci2oUaAQEaysQ1tfKfJeO3QeeIVOoaQHQtifc="},"admin-38dd06255909789c15bb1ae3d2c6b25064dd59d463ed996af2cd93b7aa08626b.css":{"logical_path":"admin.css","mtime":"2019-12-06T11:00:53+08:00","size":870104,"digest":"38dd06255909789c15bb1ae3d2c6b25064dd59d463ed996af2cd93b7aa08626b","integrity":"sha256-ON0GJVkJeJwVuxrj0sayUGTdWdRj7Zlq8s2Tt6oIYms="},"admin-f1565aa714ea18c95e226d27a3685c4b81544a9b531f4d14f88f6aa43cc9f2fa.css":{"logical_path":"admin.css","mtime":"2019-12-06T11:33:41+08:00","size":870109,"digest":"f1565aa714ea18c95e226d27a3685c4b81544a9b531f4d14f88f6aa43cc9f2fa","integrity":"sha256-8VZapxTqGMleIm0no2hcS4FUSptTH00U+I9qpDzJ8vo="},"admin-7e5aa975448fc470736f18156994f5b445b131ed1dbce9fad3b2d1415a0947d6.js":{"logical_path":"admin.js","mtime":"2019-12-06T15:35:42+08:00","size":4584963,"digest":"7e5aa975448fc470736f18156994f5b445b131ed1dbce9fad3b2d1415a0947d6","integrity":"sha256-flqpdUSPxHBzbxgVaZT1tEWxMe0dvOn607LRQVoJR9Y="},"admin-7cf88529e1f8fdafe22b3aef833fbba4898c4a69fdc4043dc9f1796c6f100ead.css":{"logical_path":"admin.css","mtime":"2019-12-06T18:03:36+08:00","size":870265,"digest":"7cf88529e1f8fdafe22b3aef833fbba4898c4a69fdc4043dc9f1796c6f100ead","integrity":"sha256-fPiFKeH4/a/iKzrvgz+7pImMSmn9xAQ9yfF5bG8QDq0="},"admin-aaff9ffea9f10689b47c00147b5cc6650961733dbc8ca30d23eb9afc2e6ee3dd.js":{"logical_path":"admin.js","mtime":"2019-12-06T18:20:13+08:00","size":4584962,"digest":"aaff9ffea9f10689b47c00147b5cc6650961733dbc8ca30d23eb9afc2e6ee3dd","integrity":"sha256-qv+f/qnxBom0fAAUe1zGZQlhcz28jKMNI+ua/C5u490="},"admin-ab3a763c3d168f05c11ca0a9f0cadc3030dc9f0ae0317085d9032d47643f7488.js":{"logical_path":"admin.js","mtime":"2019-12-26T16:08:18+08:00","size":4607541,"digest":"ab3a763c3d168f05c11ca0a9f0cadc3030dc9f0ae0317085d9032d47643f7488","integrity":"sha256-qzp2PD0WjwXBHKCp8MrcMDDcnwrgMXCF2QMtR2Q/dIg="},"admin-31e7cc6208d66802217e899555cd22920bb7d043578b1b16250e09dbe76b7bc6.css":{"logical_path":"admin.css","mtime":"2019-12-10T16:46:58+08:00","size":843730,"digest":"31e7cc6208d66802217e899555cd22920bb7d043578b1b16250e09dbe76b7bc6","integrity":"sha256-MefMYgjWaAIhfomVVc0ikgu30ENXixsWJQ4J2+dre8Y="},"college-893ba916d2b043f4b751cacc104de43d14e0db0b4001822f996e803bacbda169.css":{"logical_path":"college.css","mtime":"2019-12-10T16:46:58+08:00","size":589973,"digest":"893ba916d2b043f4b751cacc104de43d14e0db0b4001822f996e803bacbda169","integrity":"sha256-iTupFtKwQ/S3UcrMEE3kPRTg2wtAAYIvmW6AO6y9oWk="},"cooperative-bef1905d0c3e15357e3a376225923847b33f7388d49741062fe3cb20346da315.css":{"logical_path":"cooperative.css","mtime":"2019-12-10T16:46:58+08:00","size":824051,"digest":"bef1905d0c3e15357e3a376225923847b33f7388d49741062fe3cb20346da315","integrity":"sha256-vvGQXQw+FTV+OjdiJZI4R7M/c4jUl0EGL+PLIDRtoxU="},"application-8853af8ba870ca7fc8bdae048322f1c5a5caa26f1df87dbbf0c6d04232c4ac4e.css":{"logical_path":"application.css","mtime":"2019-10-21T22:52:15+08:00","size":418844,"digest":"8853af8ba870ca7fc8bdae048322f1c5a5caa26f1df87dbbf0c6d04232c4ac4e","integrity":"sha256-iFOvi6hwyn/Iva4EgyLxxaXKom8d+H278MbQQjLErE4="},"admin-f16eb906c3b6dce2c588677637473a128cd7b3d56c8d15b5eba621e9df586f37.js":{"logical_path":"admin.js","mtime":"2020-01-03T16:30:22+08:00","size":4610769,"digest":"f16eb906c3b6dce2c588677637473a128cd7b3d56c8d15b5eba621e9df586f37","integrity":"sha256-8W65BsO23OLFiGd2N0c6EozXs9VsjRW166Yh6d9Ybzc="},"admin-bed977ce14a5b8a1dcb718a4faa7971f54aad01ed4fa9b01a3d2ee333ed36cf8.js":{"logical_path":"admin.js","mtime":"2020-01-03T17:41:50+08:00","size":4611577,"digest":"bed977ce14a5b8a1dcb718a4faa7971f54aad01ed4fa9b01a3d2ee333ed36cf8","integrity":"sha256-vtl3zhSluKHctxik+qeXH1Sq0B7U+psBo9LuMz7TbPg="},"admin-d10431d175587afdb06f99d563f03b9890002351aa3b9a5e568d0396fd5cfe22.js":{"logical_path":"admin.js","mtime":"2020-01-31T16:18:47+08:00","size":4613282,"digest":"d10431d175587afdb06f99d563f03b9890002351aa3b9a5e568d0396fd5cfe22","integrity":"sha256-0QQx0XVYev2wb5nVY/A7mJAAI1GqO5peVo0Dlv1c/iI="},"admin-809fe775cb1fb357743738f65e0761be6b9fbe09dcd7062559f22dd87f1e059c.js":{"logical_path":"admin.js","mtime":"2020-02-04T19:26:18+08:00","size":4621538,"digest":"809fe775cb1fb357743738f65e0761be6b9fbe09dcd7062559f22dd87f1e059c","integrity":"sha256-gJ/ndcsfs1d0Nzj2Xgdhvmufvgnc1wYlWfIt2H8eBZw="},"admin-15ad6e029d1195111f661b61d8252ec40b1e453c44c489c661c8fa3211ff62b2.css":{"logical_path":"admin.css","mtime":"2020-02-05T14:22:08+08:00","size":846651,"digest":"15ad6e029d1195111f661b61d8252ec40b1e453c44c489c661c8fa3211ff62b2","integrity":"sha256-Fa1uAp0RlREfZhth2CUuxAseRTxExInGYcj6MhH/YrI="},"admin-c4d3fa2b049fa3abe12d80939ccd28ab8a824b1469cdb2c72f7daf1483ab6da1.js":{"logical_path":"admin.js","mtime":"2020-02-05T11:49:01+08:00","size":4622038,"digest":"c4d3fa2b049fa3abe12d80939ccd28ab8a824b1469cdb2c72f7daf1483ab6da1","integrity":"sha256-xNP6KwSfo6vhLYCTnM0oq4qCSxRpzbLHL32vFIOrbaE="},"admin-d4133a4bdcbfd4ca5d2dd49735008d8db50f25757650f0b13a62e254dfb201b4.js":{"logical_path":"admin.js","mtime":"2020-02-05T16:36:51+08:00","size":4624767,"digest":"d4133a4bdcbfd4ca5d2dd49735008d8db50f25757650f0b13a62e254dfb201b4","integrity":"sha256-1BM6S9y/1MpdLdSXNQCNjbUPJXV2UPCxOmLiVN+yAbQ="},"admin-7c523d78203d02769553abade33413cdf663eea3fe1d15ee07ab449240a10a9a.js":{"logical_path":"admin.js","mtime":"2020-02-19T15:51:39+08:00","size":4570082,"digest":"7c523d78203d02769553abade33413cdf663eea3fe1d15ee07ab449240a10a9a","integrity":"sha256-fFI9eCA9AnaVU6ut4zQTzfZj7qP+HRXuB6tEkkChCpo="},"college-f9c1b76699b39750bee976e1dbb5d832fdce2fb05edaf1b818c6e76fdf5ba77c.js":{"logical_path":"college.js","mtime":"2020-10-14T17:38:48+08:00","size":3505839,"digest":"f9c1b76699b39750bee976e1dbb5d832fdce2fb05edaf1b818c6e76fdf5ba77c","integrity":"sha256-+cG3Zpmzl1C+6Xbh27XYMv3OL7Be2vG4GMbnb99bp3w="},"college-2065ab3f84df62eb2ca345c83198920fad15cc3b93baf22c091f3c6bfced11b4.css":{"logical_path":"college.css","mtime":"2020-03-09T09:54:37+08:00","size":586787,"digest":"2065ab3f84df62eb2ca345c83198920fad15cc3b93baf22c091f3c6bfced11b4","integrity":"sha256-IGWrP4TfYusso0XIMZiSD60VzDuTuvIsCR88a/ztEbQ="},"cooperative-2efdf753e39599e78fb02527e864784df9a34dd971576db8231b63f618f9786e.js":{"logical_path":"cooperative.js","mtime":"2020-10-14T17:38:48+08:00","size":4413858,"digest":"2efdf753e39599e78fb02527e864784df9a34dd971576db8231b63f618f9786e","integrity":"sha256-Lv33U+OVmeePsCUn6GR4TfmjTdlxV224Ixtj9hj5eG4="},"cooperative-20747152aeb5e0bca475a49899a771a58d73be01d62c8f39396540c4f0abb10c.css":{"logical_path":"cooperative.css","mtime":"2020-03-09T09:54:39+08:00","size":826122,"digest":"20747152aeb5e0bca475a49899a771a58d73be01d62c8f39396540c4f0abb10c","integrity":"sha256-IHRxUq614LykdaSYmadxpY1zvgHWLI85OWVAxPCrsQw="},"application-47eaf72a32e7cee15e04ee7632fbbaadd5efd1129bfe0978d28d9b84ecec913e.js":{"logical_path":"application.js","mtime":"2020-02-07T16:06:25+08:00","size":551318,"digest":"47eaf72a32e7cee15e04ee7632fbbaadd5efd1129bfe0978d28d9b84ecec913e","integrity":"sha256-R+r3KjLnzuFeBO52Mvu6rdXv0RKb/gl40o2bhOzskT4="},"application-d3da385d89dfa7edfbecc09573322b132ffc5580cbd185d5f7a74d5358881815.css":{"logical_path":"application.css","mtime":"2020-03-09T09:54:37+08:00","size":419785,"digest":"d3da385d89dfa7edfbecc09573322b132ffc5580cbd185d5f7a74d5358881815","integrity":"sha256-09o4XYnfp+377MCVczIrEy/8VYDL0YXV96dNU1iIGBU="},"admin-8d7c2001aaf2599bddad06c5bc30526b059780d9fda2f01797524c0b8a1c43c3.js":{"logical_path":"admin.js","mtime":"2020-02-22T18:21:49+08:00","size":4636232,"digest":"8d7c2001aaf2599bddad06c5bc30526b059780d9fda2f01797524c0b8a1c43c3","integrity":"sha256-jXwgAaryWZvdrQbFvDBSawWXgNn9ovAXl1JMC4ocQ8M="},"admin-343a62865a99bebf4247a945a48400b472f76196fb80e86b4cce6b2cc480d306.css":{"logical_path":"admin.css","mtime":"2019-12-23T10:10:47+08:00","size":838584,"digest":"343a62865a99bebf4247a945a48400b472f76196fb80e86b4cce6b2cc480d306","integrity":"sha256-NDpihlqZvr9CR6lFpIQAtHL3YZb7gOhrTM5rLMSA0wY="},"college-461b4e52a77522c5ff4341992359aba660dc26d7d985e394b69d8b87db954a14.css":{"logical_path":"college.css","mtime":"2019-11-19T17:05:09+08:00","size":578720,"digest":"461b4e52a77522c5ff4341992359aba660dc26d7d985e394b69d8b87db954a14","integrity":"sha256-RhtOUqd1IsX/Q0GZI1mrpmDcJtfZheOUtp2Lh9uVShQ="},"cooperative-286bab0b704bc8d5295bee551a48f78e1fe8713e0e50c65059cf7a65ed09bbf0.js":{"logical_path":"cooperative.js","mtime":"2020-02-09T13:28:20+08:00","size":4478065,"digest":"286bab0b704bc8d5295bee551a48f78e1fe8713e0e50c65059cf7a65ed09bbf0","integrity":"sha256-KGurC3BLyNUpW+5VGkj3jh/ocT4OUMZQWc96Ze0Ju/A="},"cooperative-716b37420680ce5fb3bedf40508ea89e07f4d7060b412b832c8b4e9b09ac024d.css":{"logical_path":"cooperative.css","mtime":"2019-11-19T17:05:09+08:00","size":818055,"digest":"716b37420680ce5fb3bedf40508ea89e07f4d7060b412b832c8b4e9b09ac024d","integrity":"sha256-cWs3QgaAzl+zvt9AUI6ongf01wYLQSuDLItOmwmsAk0="},"application-e194b45894d0c5240d954851211a86516ee6ad871ca99bf7783ce44aeb8c0687.css":{"logical_path":"application.css","mtime":"2019-11-19T17:04:45+08:00","size":413848,"digest":"e194b45894d0c5240d954851211a86516ee6ad871ca99bf7783ce44aeb8c0687","integrity":"sha256-4ZS0WJTQxSQNlUhRIRqGUW7mrYccqZv3eDzkSuuMBoc="},"admin-04ff7d4c76f406e0df9e02923038d175f26ee098d43e266c2138b07163a2da9e.js":{"logical_path":"admin.js","mtime":"2020-02-25T12:09:35+08:00","size":4635520,"digest":"04ff7d4c76f406e0df9e02923038d175f26ee098d43e266c2138b07163a2da9e","integrity":"sha256-BP99THb0BuDfngKSMDjRdfJu4JjUPiZsITiwcWOi2p4="},"admin-46d2460ea8c06a885f92df73240e8eb84d320402bbdf580ffe3e038d07fdda3d.js":{"logical_path":"admin.js","mtime":"2020-02-25T13:17:26+08:00","size":4635586,"digest":"46d2460ea8c06a885f92df73240e8eb84d320402bbdf580ffe3e038d07fdda3d","integrity":"sha256-RtJGDqjAaohfkt9zJA6OuE0yBAK731gP/j4DjQf92j0="},"admin-b8f26db185886f99021da91f0e2c1a8cc4ced4d1b895794751d11b7a9f45de98.js":{"logical_path":"admin.js","mtime":"2020-02-25T17:16:13+08:00","size":4637067,"digest":"b8f26db185886f99021da91f0e2c1a8cc4ced4d1b895794751d11b7a9f45de98","integrity":"sha256-uPJtsYWIb5kCHakfDiwajMTO1NG4lXlHUdEbep9F3pg="},"admin-8cb0e9724b33e253621a5f1020bdc270f828cb7d602de8434d3cc606e0b4dbc2.js":{"logical_path":"admin.js","mtime":"2020-02-25T17:51:23+08:00","size":4637275,"digest":"8cb0e9724b33e253621a5f1020bdc270f828cb7d602de8434d3cc606e0b4dbc2","integrity":"sha256-jLDpcksz4lNiGl8QIL3CcPgoy31gLehDTTzGBuC028I="},"admin-6de8f35d5d41d81ec4ebd0bcaba115a39651ddf13615acd349a7bed4d0141f37.js":{"logical_path":"admin.js","mtime":"2020-10-14T17:38:48+08:00","size":4572383,"digest":"6de8f35d5d41d81ec4ebd0bcaba115a39651ddf13615acd349a7bed4d0141f37","integrity":"sha256-bejzXV1B2B7E69C8q6EVo5ZR3fE2FazTSae+1NAUHzc="},"admin-deff7435683ce3fb9dd919dd05e20487f74b62bb6685e1597ba17a56ba8579c7.css":{"logical_path":"admin.css","mtime":"2020-10-14T15:30:54+08:00","size":852295,"digest":"deff7435683ce3fb9dd919dd05e20487f74b62bb6685e1597ba17a56ba8579c7","integrity":"sha256-3v90NWg84/ud2RndBeIEh/dLYrtmheFZe6F6VrqFecc="},"oauth-ac32f774a0762ca487fba6af50ebe3847dea8382b0f61f2a2a9aad6cb4274769.css":{"logical_path":"oauth.css","mtime":"2020-08-18T17:53:34+08:00","size":2542,"digest":"ac32f774a0762ca487fba6af50ebe3847dea8382b0f61f2a2a9aad6cb4274769","integrity":"sha256-rDL3dKB2LKSH+6avUOvjhH3qg4Kw9h8qKpqtbLQnR2k="},"application-1852bb2a261b8a9ce0d4a83dcc076d63be1105549c174f335c1e0f466fa9f8c1.js":{"logical_path":"application.js","mtime":"2020-10-14T17:38:48+08:00","size":1197927,"digest":"1852bb2a261b8a9ce0d4a83dcc076d63be1105549c174f335c1e0f466fa9f8c1","integrity":"sha256-GFK7KiYbipzg1Kg9zAdtY74RBVScF08zXB4PRm+p+ME="}},"assets":{"admin.js":"admin-6de8f35d5d41d81ec4ebd0bcaba115a39651ddf13615acd349a7bed4d0141f37.js","admin.css":"admin-deff7435683ce3fb9dd919dd05e20487f74b62bb6685e1597ba17a56ba8579c7.css","font-awesome/fontawesome-webfont.eot":"font-awesome/fontawesome-webfont-7bfcab6db99d5cfbf1705ca0536ddc78585432cc5fa41bbd7ad0f009033b2979.eot","font-awesome/fontawesome-webfont.woff2":"font-awesome/fontawesome-webfont-2adefcbc041e7d18fcf2d417879dc5a09997aa64d675b7a3c4b6ce33da13f3fe.woff2","font-awesome/fontawesome-webfont.woff":"font-awesome/fontawesome-webfont-ba0c59deb5450f5cb41b3f93609ee2d0d995415877ddfa223e8a8a7533474f07.woff","font-awesome/fontawesome-webfont.ttf":"font-awesome/fontawesome-webfont-aa58f33f239a0fb02f5c7a6c45c043d7a9ac9a093335806694ecd6d4edc0d6a8.ttf","font-awesome/fontawesome-webfont.svg":"font-awesome/fontawesome-webfont-ad6157926c1622ba4e1d03d478f1541368524bfc46f51e42fe0d945f7ef323e4.svg","college.js":"college-f9c1b76699b39750bee976e1dbb5d832fdce2fb05edaf1b818c6e76fdf5ba77c.js","college.css":"college-2065ab3f84df62eb2ca345c83198920fad15cc3b93baf22c091f3c6bfced11b4.css","cooperative.js":"cooperative-2efdf753e39599e78fb02527e864784df9a34dd971576db8231b63f618f9786e.js","cooperative.css":"cooperative-20747152aeb5e0bca475a49899a771a58d73be01d62c8f39396540c4f0abb10c.css","logo.png":"logo-7ff112568709bf97f9898fe87249b7a8f200ff1f48d537d85af87215f1870423.png","application.js":"application-1852bb2a261b8a9ce0d4a83dcc076d63be1105549c174f335c1e0f466fa9f8c1.js","application.css":"application-d3da385d89dfa7edfbecc09573322b132ffc5580cbd185d5f7a74d5358881815.css","oauth.css":"oauth-ac32f774a0762ca487fba6af50ebe3847dea8382b0f61f2a2a9aad6cb4274769.css"}} \ No newline at end of file +{"files":{"admin-1bd781fc5959b4f0e8879fa92afc5cec47e2d1a9b79cad9e55177fc1197a0e5b.js":{"logical_path":"admin.js","mtime":"2019-11-27T19:06:45+08:00","size":4594770,"digest":"1bd781fc5959b4f0e8879fa92afc5cec47e2d1a9b79cad9e55177fc1197a0e5b","integrity":"sha256-G9eB/FlZtPDoh5+pKvxc7Efi0am3nK2eVRd/wRl6Dls="},"admin-e78dd8b2041c26973b3851180e413539c07042575e336147194b5f2a1f7fa09c.css":{"logical_path":"admin.css","mtime":"2019-11-21T17:49:31+08:00","size":817848,"digest":"e78dd8b2041c26973b3851180e413539c07042575e336147194b5f2a1f7fa09c","integrity":"sha256-543YsgQcJpc7OFEYDkE1OcBwQldeM2FHGUtfKh9/oJw="},"font-awesome/fontawesome-webfont-7bfcab6db99d5cfbf1705ca0536ddc78585432cc5fa41bbd7ad0f009033b2979.eot":{"logical_path":"font-awesome/fontawesome-webfont.eot","mtime":"2019-08-22T14:54:27+08:00","size":165742,"digest":"7bfcab6db99d5cfbf1705ca0536ddc78585432cc5fa41bbd7ad0f009033b2979","integrity":"sha256-e/yrbbmdXPvxcFygU23ceFhUMsxfpBu9etDwCQM7KXk="},"font-awesome/fontawesome-webfont-2adefcbc041e7d18fcf2d417879dc5a09997aa64d675b7a3c4b6ce33da13f3fe.woff2":{"logical_path":"font-awesome/fontawesome-webfont.woff2","mtime":"2019-08-22T14:54:27+08:00","size":77160,"digest":"2adefcbc041e7d18fcf2d417879dc5a09997aa64d675b7a3c4b6ce33da13f3fe","integrity":"sha256-Kt78vAQefRj88tQXh53FoJmXqmTWdbejxLbOM9oT8/4="},"font-awesome/fontawesome-webfont-ba0c59deb5450f5cb41b3f93609ee2d0d995415877ddfa223e8a8a7533474f07.woff":{"logical_path":"font-awesome/fontawesome-webfont.woff","mtime":"2019-08-22T14:54:27+08:00","size":98024,"digest":"ba0c59deb5450f5cb41b3f93609ee2d0d995415877ddfa223e8a8a7533474f07","integrity":"sha256-ugxZ3rVFD1y0Gz+TYJ7i0NmVQVh33foiPoqKdTNHTwc="},"font-awesome/fontawesome-webfont-aa58f33f239a0fb02f5c7a6c45c043d7a9ac9a093335806694ecd6d4edc0d6a8.ttf":{"logical_path":"font-awesome/fontawesome-webfont.ttf","mtime":"2019-08-22T14:54:27+08:00","size":165548,"digest":"aa58f33f239a0fb02f5c7a6c45c043d7a9ac9a093335806694ecd6d4edc0d6a8","integrity":"sha256-qljzPyOaD7AvXHpsRcBD16msmgkzNYBmlOzW1O3A1qg="},"font-awesome/fontawesome-webfont-ad6157926c1622ba4e1d03d478f1541368524bfc46f51e42fe0d945f7ef323e4.svg":{"logical_path":"font-awesome/fontawesome-webfont.svg","mtime":"2019-08-22T14:54:27+08:00","size":444379,"digest":"ad6157926c1622ba4e1d03d478f1541368524bfc46f51e42fe0d945f7ef323e4","integrity":"sha256-rWFXkmwWIrpOHQPUePFUE2hSS/xG9R5C/g2UX37zI+Q="},"college-431d908264782ef54e90202095d4cf397c586f74d2b7879684348dc8b53d2cd2.js":{"logical_path":"college.js","mtime":"2020-01-07T14:59:22+08:00","size":3570046,"digest":"431d908264782ef54e90202095d4cf397c586f74d2b7879684348dc8b53d2cd2","integrity":"sha256-Qx2QgmR4LvVOkCAgldTPOXxYb3TSt4eWhDSNyLU9LNI="},"college-eb35b6573dea2a069abd5acb0211940c2165fa21da333555fa859ed155b3ca1f.css":{"logical_path":"college.css","mtime":"2019-11-20T17:50:44+08:00","size":565772,"digest":"eb35b6573dea2a069abd5acb0211940c2165fa21da333555fa859ed155b3ca1f","integrity":"sha256-6zW2Vz3qKgaavVrLAhGUDCFl+iHaMzVV+oWe0VWzyh8="},"cooperative-4f2218bb223392ea4332e9ace5a748baccd4fe66d4b5cc3b5574f97a425203ec.js":{"logical_path":"cooperative.js","mtime":"2020-01-07T14:59:22+08:00","size":4478060,"digest":"4f2218bb223392ea4332e9ace5a748baccd4fe66d4b5cc3b5574f97a425203ec","integrity":"sha256-TyIYuyIzkupDMums5adIuszU/mbUtcw7VXT5ekJSA+w="},"cooperative-9244063fa63cd29c9c3b074af565be75a130cfb31741b2f5252fe68a1f5c13c5.css":{"logical_path":"cooperative.css","mtime":"2019-11-20T17:50:44+08:00","size":799850,"digest":"9244063fa63cd29c9c3b074af565be75a130cfb31741b2f5252fe68a1f5c13c5","integrity":"sha256-kkQGP6Y80pycOwdK9WW+daEwz7MXQbL1JS/mih9cE8U="},"logo-7ff112568709bf97f9898fe87249b7a8f200ff1f48d537d85af87215f1870423.png":{"logical_path":"logo.png","mtime":"2019-12-10T16:46:58+08:00","size":2816,"digest":"7ff112568709bf97f9898fe87249b7a8f200ff1f48d537d85af87215f1870423","integrity":"sha256-f/ESVocJv5f5iY/ockm3qPIA/x9I1TfYWvhyFfGHBCM="},"application-d44f4301c7dfbe07bcb2788d7c006c22c184ae6b7016c09f7911b4962aacd767.js":{"logical_path":"application.js","mtime":"2020-01-07T14:59:22+08:00","size":615525,"digest":"d44f4301c7dfbe07bcb2788d7c006c22c184ae6b7016c09f7911b4962aacd767","integrity":"sha256-1E9DAcffvge8sniNfABsIsGErmtwFsCfeRG0liqs12c="},"application-2bf79ac2818959eb18d4df720a0cd0721b3b2385dd4565d635851fc41e192975.css":{"logical_path":"application.css","mtime":"2019-09-09T09:26:59+08:00","size":401033,"digest":"2bf79ac2818959eb18d4df720a0cd0721b3b2385dd4565d635851fc41e192975","integrity":"sha256-K/eawoGJWesY1N9yCgzQchs7I4XdRWXWNYUfxB4ZKXU="},"admin-83797d03d53c38db8e4751348516f8b7c55842cf8899066b86b3b2e6b6b1c8ad.js":{"logical_path":"admin.js","mtime":"2019-12-02T10:11:32+08:00","size":4583649,"digest":"83797d03d53c38db8e4751348516f8b7c55842cf8899066b86b3b2e6b6b1c8ad","integrity":"sha256-g3l9A9U8ONuOR1E0hRb4t8VYQs+ImQZrhrOy5raxyK0="},"admin-1512839e7eaa2136bdf9b238e3710004f8b90f2b74300c8ae7d9f9b25dddf077.css":{"logical_path":"admin.css","mtime":"2019-11-27T15:52:07+08:00","size":868584,"digest":"1512839e7eaa2136bdf9b238e3710004f8b90f2b74300c8ae7d9f9b25dddf077","integrity":"sha256-FRKDnn6qITa9+bI443EABPi5Dyt0MAyK59n5sl3d8Hc="},"college-1e70702e2d864fb4d5f57841bfa5937e31c7c059e6cd672a07f0b4b20740f607.js":{"logical_path":"college.js","mtime":"2019-11-20T16:00:49+08:00","size":3569292,"digest":"1e70702e2d864fb4d5f57841bfa5937e31c7c059e6cd672a07f0b4b20740f607","integrity":"sha256-HnBwLi2GT7TV9XhBv6WTfjHHwFnmzWcqB/C0sgdA9gc="},"college-a14be76ebc459e3bedd86e64c62b07c2dfc7ce632d73b86a7270b17462e5b746.css":{"logical_path":"college.css","mtime":"2019-11-11T18:25:42+08:00","size":610352,"digest":"a14be76ebc459e3bedd86e64c62b07c2dfc7ce632d73b86a7270b17462e5b746","integrity":"sha256-oUvnbrxFnjvt2G5kxisHwt/HzmMtc7hqcnCxdGLlt0Y="},"cooperative-bbf9b1ef14747d17410f2f38a6f308697335f86d4525ed6a5579905efc314ef3.js":{"logical_path":"cooperative.js","mtime":"2019-11-20T16:00:49+08:00","size":4463241,"digest":"bbf9b1ef14747d17410f2f38a6f308697335f86d4525ed6a5579905efc314ef3","integrity":"sha256-u/mx7xR0fRdBDy84pvMIaXM1+G1FJe1qVXmQXvwxTvM="},"cooperative-c36bba05d6a13482ccb6c3696ba5d750841dec9cae7a8043a0318c34c3a4638e.css":{"logical_path":"cooperative.css","mtime":"2019-11-17T09:36:46+08:00","size":849736,"digest":"c36bba05d6a13482ccb6c3696ba5d750841dec9cae7a8043a0318c34c3a4638e","integrity":"sha256-w2u6BdahNILMtsNpa6XXUIQd7JyueoBDoDGMNMOkY44="},"application-9cfbc3d792599a1d0de5c7b84209e1c2b2e60336f0f01e19f0581663918708fb.js":{"logical_path":"application.js","mtime":"2019-11-20T16:00:49+08:00","size":600706,"digest":"9cfbc3d792599a1d0de5c7b84209e1c2b2e60336f0f01e19f0581663918708fb","integrity":"sha256-nPvD15JZmh0N5ce4QgnhwrLmAzbw8B4Z8FgWY5GHCPs="},"application-8c9d6bb61c50908f584b3070c79aeb95f25c1166d39e07da5e95438b39ca0de9.css":{"logical_path":"application.css","mtime":"2019-10-21T22:52:15+08:00","size":436995,"digest":"8c9d6bb61c50908f584b3070c79aeb95f25c1166d39e07da5e95438b39ca0de9","integrity":"sha256-jJ1rthxQkI9YSzBwx5rrlfJcEWbTngfaXpVDiznKDek="},"admin-f1a4d30772fa41e1edd288c1b1d39deeac7481d590b13a886953adf2f2e4f47c.js":{"logical_path":"admin.js","mtime":"2019-11-29T15:05:39+08:00","size":4583647,"digest":"f1a4d30772fa41e1edd288c1b1d39deeac7481d590b13a886953adf2f2e4f47c","integrity":"sha256-8aTTB3L6QeHt0ojBsdOd7qx0gdWQsTqIaVOt8vLk9Hw="},"admin-0172e0b18d559d9648df58d7954e4843256ba2d2eda03543b7cc6c955c8e2eb3.js":{"logical_path":"admin.js","mtime":"2019-12-02T10:58:14+08:00","size":4583648,"digest":"0172e0b18d559d9648df58d7954e4843256ba2d2eda03543b7cc6c955c8e2eb3","integrity":"sha256-AXLgsY1VnZZI31jXlU5IQyVrotLtoDVDt8xslVyOLrM="},"admin-6da32058962cbfc9483b468c26d5f9b968b5f970a2031f73952863c554cd6254.js":{"logical_path":"admin.js","mtime":"2019-12-02T17:44:43+08:00","size":4583680,"digest":"6da32058962cbfc9483b468c26d5f9b968b5f970a2031f73952863c554cd6254","integrity":"sha256-baMgWJYsv8lIO0aMJtX5uWi1+XCiAx9zlShjxVTNYlQ="},"admin-64b90a423722da851a01011acac435b5f29f25e3b741e78854ea1a40742d89f7.js":{"logical_path":"admin.js","mtime":"2019-12-06T11:19:59+08:00","size":4584886,"digest":"64b90a423722da851a01011acac435b5f29f25e3b741e78854ea1a40742d89f7","integrity":"sha256-ZLkKQjci2oUaAQEaysQ1tfKfJeO3QeeIVOoaQHQtifc="},"admin-38dd06255909789c15bb1ae3d2c6b25064dd59d463ed996af2cd93b7aa08626b.css":{"logical_path":"admin.css","mtime":"2019-12-06T11:00:53+08:00","size":870104,"digest":"38dd06255909789c15bb1ae3d2c6b25064dd59d463ed996af2cd93b7aa08626b","integrity":"sha256-ON0GJVkJeJwVuxrj0sayUGTdWdRj7Zlq8s2Tt6oIYms="},"admin-f1565aa714ea18c95e226d27a3685c4b81544a9b531f4d14f88f6aa43cc9f2fa.css":{"logical_path":"admin.css","mtime":"2019-12-06T11:33:41+08:00","size":870109,"digest":"f1565aa714ea18c95e226d27a3685c4b81544a9b531f4d14f88f6aa43cc9f2fa","integrity":"sha256-8VZapxTqGMleIm0no2hcS4FUSptTH00U+I9qpDzJ8vo="},"admin-7e5aa975448fc470736f18156994f5b445b131ed1dbce9fad3b2d1415a0947d6.js":{"logical_path":"admin.js","mtime":"2019-12-06T15:35:42+08:00","size":4584963,"digest":"7e5aa975448fc470736f18156994f5b445b131ed1dbce9fad3b2d1415a0947d6","integrity":"sha256-flqpdUSPxHBzbxgVaZT1tEWxMe0dvOn607LRQVoJR9Y="},"admin-7cf88529e1f8fdafe22b3aef833fbba4898c4a69fdc4043dc9f1796c6f100ead.css":{"logical_path":"admin.css","mtime":"2019-12-06T18:03:36+08:00","size":870265,"digest":"7cf88529e1f8fdafe22b3aef833fbba4898c4a69fdc4043dc9f1796c6f100ead","integrity":"sha256-fPiFKeH4/a/iKzrvgz+7pImMSmn9xAQ9yfF5bG8QDq0="},"admin-aaff9ffea9f10689b47c00147b5cc6650961733dbc8ca30d23eb9afc2e6ee3dd.js":{"logical_path":"admin.js","mtime":"2019-12-06T18:20:13+08:00","size":4584962,"digest":"aaff9ffea9f10689b47c00147b5cc6650961733dbc8ca30d23eb9afc2e6ee3dd","integrity":"sha256-qv+f/qnxBom0fAAUe1zGZQlhcz28jKMNI+ua/C5u490="},"admin-ab3a763c3d168f05c11ca0a9f0cadc3030dc9f0ae0317085d9032d47643f7488.js":{"logical_path":"admin.js","mtime":"2019-12-26T16:08:18+08:00","size":4607541,"digest":"ab3a763c3d168f05c11ca0a9f0cadc3030dc9f0ae0317085d9032d47643f7488","integrity":"sha256-qzp2PD0WjwXBHKCp8MrcMDDcnwrgMXCF2QMtR2Q/dIg="},"admin-31e7cc6208d66802217e899555cd22920bb7d043578b1b16250e09dbe76b7bc6.css":{"logical_path":"admin.css","mtime":"2019-12-10T16:46:58+08:00","size":843730,"digest":"31e7cc6208d66802217e899555cd22920bb7d043578b1b16250e09dbe76b7bc6","integrity":"sha256-MefMYgjWaAIhfomVVc0ikgu30ENXixsWJQ4J2+dre8Y="},"college-893ba916d2b043f4b751cacc104de43d14e0db0b4001822f996e803bacbda169.css":{"logical_path":"college.css","mtime":"2019-12-10T16:46:58+08:00","size":589973,"digest":"893ba916d2b043f4b751cacc104de43d14e0db0b4001822f996e803bacbda169","integrity":"sha256-iTupFtKwQ/S3UcrMEE3kPRTg2wtAAYIvmW6AO6y9oWk="},"cooperative-bef1905d0c3e15357e3a376225923847b33f7388d49741062fe3cb20346da315.css":{"logical_path":"cooperative.css","mtime":"2019-12-10T16:46:58+08:00","size":824051,"digest":"bef1905d0c3e15357e3a376225923847b33f7388d49741062fe3cb20346da315","integrity":"sha256-vvGQXQw+FTV+OjdiJZI4R7M/c4jUl0EGL+PLIDRtoxU="},"application-8853af8ba870ca7fc8bdae048322f1c5a5caa26f1df87dbbf0c6d04232c4ac4e.css":{"logical_path":"application.css","mtime":"2019-10-21T22:52:15+08:00","size":418844,"digest":"8853af8ba870ca7fc8bdae048322f1c5a5caa26f1df87dbbf0c6d04232c4ac4e","integrity":"sha256-iFOvi6hwyn/Iva4EgyLxxaXKom8d+H278MbQQjLErE4="},"admin-f16eb906c3b6dce2c588677637473a128cd7b3d56c8d15b5eba621e9df586f37.js":{"logical_path":"admin.js","mtime":"2020-01-03T16:30:22+08:00","size":4610769,"digest":"f16eb906c3b6dce2c588677637473a128cd7b3d56c8d15b5eba621e9df586f37","integrity":"sha256-8W65BsO23OLFiGd2N0c6EozXs9VsjRW166Yh6d9Ybzc="},"admin-bed977ce14a5b8a1dcb718a4faa7971f54aad01ed4fa9b01a3d2ee333ed36cf8.js":{"logical_path":"admin.js","mtime":"2020-01-03T17:41:50+08:00","size":4611577,"digest":"bed977ce14a5b8a1dcb718a4faa7971f54aad01ed4fa9b01a3d2ee333ed36cf8","integrity":"sha256-vtl3zhSluKHctxik+qeXH1Sq0B7U+psBo9LuMz7TbPg="},"admin-d10431d175587afdb06f99d563f03b9890002351aa3b9a5e568d0396fd5cfe22.js":{"logical_path":"admin.js","mtime":"2020-01-31T16:18:47+08:00","size":4613282,"digest":"d10431d175587afdb06f99d563f03b9890002351aa3b9a5e568d0396fd5cfe22","integrity":"sha256-0QQx0XVYev2wb5nVY/A7mJAAI1GqO5peVo0Dlv1c/iI="},"admin-809fe775cb1fb357743738f65e0761be6b9fbe09dcd7062559f22dd87f1e059c.js":{"logical_path":"admin.js","mtime":"2020-02-04T19:26:18+08:00","size":4621538,"digest":"809fe775cb1fb357743738f65e0761be6b9fbe09dcd7062559f22dd87f1e059c","integrity":"sha256-gJ/ndcsfs1d0Nzj2Xgdhvmufvgnc1wYlWfIt2H8eBZw="},"admin-15ad6e029d1195111f661b61d8252ec40b1e453c44c489c661c8fa3211ff62b2.css":{"logical_path":"admin.css","mtime":"2020-02-05T14:22:08+08:00","size":846651,"digest":"15ad6e029d1195111f661b61d8252ec40b1e453c44c489c661c8fa3211ff62b2","integrity":"sha256-Fa1uAp0RlREfZhth2CUuxAseRTxExInGYcj6MhH/YrI="},"admin-c4d3fa2b049fa3abe12d80939ccd28ab8a824b1469cdb2c72f7daf1483ab6da1.js":{"logical_path":"admin.js","mtime":"2020-02-05T11:49:01+08:00","size":4622038,"digest":"c4d3fa2b049fa3abe12d80939ccd28ab8a824b1469cdb2c72f7daf1483ab6da1","integrity":"sha256-xNP6KwSfo6vhLYCTnM0oq4qCSxRpzbLHL32vFIOrbaE="},"admin-d4133a4bdcbfd4ca5d2dd49735008d8db50f25757650f0b13a62e254dfb201b4.js":{"logical_path":"admin.js","mtime":"2020-02-05T16:36:51+08:00","size":4624767,"digest":"d4133a4bdcbfd4ca5d2dd49735008d8db50f25757650f0b13a62e254dfb201b4","integrity":"sha256-1BM6S9y/1MpdLdSXNQCNjbUPJXV2UPCxOmLiVN+yAbQ="},"admin-7c523d78203d02769553abade33413cdf663eea3fe1d15ee07ab449240a10a9a.js":{"logical_path":"admin.js","mtime":"2020-02-19T15:51:39+08:00","size":4570082,"digest":"7c523d78203d02769553abade33413cdf663eea3fe1d15ee07ab449240a10a9a","integrity":"sha256-fFI9eCA9AnaVU6ut4zQTzfZj7qP+HRXuB6tEkkChCpo="},"college-f9c1b76699b39750bee976e1dbb5d832fdce2fb05edaf1b818c6e76fdf5ba77c.js":{"logical_path":"college.js","mtime":"2020-02-07T16:06:25+08:00","size":3505839,"digest":"f9c1b76699b39750bee976e1dbb5d832fdce2fb05edaf1b818c6e76fdf5ba77c","integrity":"sha256-+cG3Zpmzl1C+6Xbh27XYMv3OL7Be2vG4GMbnb99bp3w="},"college-2065ab3f84df62eb2ca345c83198920fad15cc3b93baf22c091f3c6bfced11b4.css":{"logical_path":"college.css","mtime":"2020-02-05T14:22:08+08:00","size":586787,"digest":"2065ab3f84df62eb2ca345c83198920fad15cc3b93baf22c091f3c6bfced11b4","integrity":"sha256-IGWrP4TfYusso0XIMZiSD60VzDuTuvIsCR88a/ztEbQ="},"cooperative-2efdf753e39599e78fb02527e864784df9a34dd971576db8231b63f618f9786e.js":{"logical_path":"cooperative.js","mtime":"2020-02-10T22:03:17+08:00","size":4413858,"digest":"2efdf753e39599e78fb02527e864784df9a34dd971576db8231b63f618f9786e","integrity":"sha256-Lv33U+OVmeePsCUn6GR4TfmjTdlxV224Ixtj9hj5eG4="},"cooperative-20747152aeb5e0bca475a49899a771a58d73be01d62c8f39396540c4f0abb10c.css":{"logical_path":"cooperative.css","mtime":"2020-02-05T14:22:08+08:00","size":826122,"digest":"20747152aeb5e0bca475a49899a771a58d73be01d62c8f39396540c4f0abb10c","integrity":"sha256-IHRxUq614LykdaSYmadxpY1zvgHWLI85OWVAxPCrsQw="},"application-47eaf72a32e7cee15e04ee7632fbbaadd5efd1129bfe0978d28d9b84ecec913e.js":{"logical_path":"application.js","mtime":"2020-02-07T16:06:25+08:00","size":551318,"digest":"47eaf72a32e7cee15e04ee7632fbbaadd5efd1129bfe0978d28d9b84ecec913e","integrity":"sha256-R+r3KjLnzuFeBO52Mvu6rdXv0RKb/gl40o2bhOzskT4="},"application-d3da385d89dfa7edfbecc09573322b132ffc5580cbd185d5f7a74d5358881815.css":{"logical_path":"application.css","mtime":"2019-09-09T09:26:59+08:00","size":419785,"digest":"d3da385d89dfa7edfbecc09573322b132ffc5580cbd185d5f7a74d5358881815","integrity":"sha256-09o4XYnfp+377MCVczIrEy/8VYDL0YXV96dNU1iIGBU="},"admin-8d7c2001aaf2599bddad06c5bc30526b059780d9fda2f01797524c0b8a1c43c3.js":{"logical_path":"admin.js","mtime":"2020-02-22T18:21:49+08:00","size":4636232,"digest":"8d7c2001aaf2599bddad06c5bc30526b059780d9fda2f01797524c0b8a1c43c3","integrity":"sha256-jXwgAaryWZvdrQbFvDBSawWXgNn9ovAXl1JMC4ocQ8M="},"admin-343a62865a99bebf4247a945a48400b472f76196fb80e86b4cce6b2cc480d306.css":{"logical_path":"admin.css","mtime":"2019-12-23T10:10:47+08:00","size":838584,"digest":"343a62865a99bebf4247a945a48400b472f76196fb80e86b4cce6b2cc480d306","integrity":"sha256-NDpihlqZvr9CR6lFpIQAtHL3YZb7gOhrTM5rLMSA0wY="},"college-461b4e52a77522c5ff4341992359aba660dc26d7d985e394b69d8b87db954a14.css":{"logical_path":"college.css","mtime":"2019-11-19T17:05:09+08:00","size":578720,"digest":"461b4e52a77522c5ff4341992359aba660dc26d7d985e394b69d8b87db954a14","integrity":"sha256-RhtOUqd1IsX/Q0GZI1mrpmDcJtfZheOUtp2Lh9uVShQ="},"cooperative-286bab0b704bc8d5295bee551a48f78e1fe8713e0e50c65059cf7a65ed09bbf0.js":{"logical_path":"cooperative.js","mtime":"2020-02-09T13:28:20+08:00","size":4478065,"digest":"286bab0b704bc8d5295bee551a48f78e1fe8713e0e50c65059cf7a65ed09bbf0","integrity":"sha256-KGurC3BLyNUpW+5VGkj3jh/ocT4OUMZQWc96Ze0Ju/A="},"cooperative-716b37420680ce5fb3bedf40508ea89e07f4d7060b412b832c8b4e9b09ac024d.css":{"logical_path":"cooperative.css","mtime":"2019-11-19T17:05:09+08:00","size":818055,"digest":"716b37420680ce5fb3bedf40508ea89e07f4d7060b412b832c8b4e9b09ac024d","integrity":"sha256-cWs3QgaAzl+zvt9AUI6ongf01wYLQSuDLItOmwmsAk0="},"application-e194b45894d0c5240d954851211a86516ee6ad871ca99bf7783ce44aeb8c0687.css":{"logical_path":"application.css","mtime":"2019-11-19T17:04:45+08:00","size":413848,"digest":"e194b45894d0c5240d954851211a86516ee6ad871ca99bf7783ce44aeb8c0687","integrity":"sha256-4ZS0WJTQxSQNlUhRIRqGUW7mrYccqZv3eDzkSuuMBoc="},"admin-04ff7d4c76f406e0df9e02923038d175f26ee098d43e266c2138b07163a2da9e.js":{"logical_path":"admin.js","mtime":"2020-02-25T12:09:35+08:00","size":4635520,"digest":"04ff7d4c76f406e0df9e02923038d175f26ee098d43e266c2138b07163a2da9e","integrity":"sha256-BP99THb0BuDfngKSMDjRdfJu4JjUPiZsITiwcWOi2p4="},"admin-46d2460ea8c06a885f92df73240e8eb84d320402bbdf580ffe3e038d07fdda3d.js":{"logical_path":"admin.js","mtime":"2020-02-25T13:17:26+08:00","size":4635586,"digest":"46d2460ea8c06a885f92df73240e8eb84d320402bbdf580ffe3e038d07fdda3d","integrity":"sha256-RtJGDqjAaohfkt9zJA6OuE0yBAK731gP/j4DjQf92j0="},"admin-b8f26db185886f99021da91f0e2c1a8cc4ced4d1b895794751d11b7a9f45de98.js":{"logical_path":"admin.js","mtime":"2020-02-25T17:16:13+08:00","size":4637067,"digest":"b8f26db185886f99021da91f0e2c1a8cc4ced4d1b895794751d11b7a9f45de98","integrity":"sha256-uPJtsYWIb5kCHakfDiwajMTO1NG4lXlHUdEbep9F3pg="},"admin-8cb0e9724b33e253621a5f1020bdc270f828cb7d602de8434d3cc606e0b4dbc2.js":{"logical_path":"admin.js","mtime":"2020-02-25T17:51:23+08:00","size":4637275,"digest":"8cb0e9724b33e253621a5f1020bdc270f828cb7d602de8434d3cc606e0b4dbc2","integrity":"sha256-jLDpcksz4lNiGl8QIL3CcPgoy31gLehDTTzGBuC028I="}},"assets":{"admin.js":"admin-8cb0e9724b33e253621a5f1020bdc270f828cb7d602de8434d3cc606e0b4dbc2.js","admin.css":"admin-31e7cc6208d66802217e899555cd22920bb7d043578b1b16250e09dbe76b7bc6.css","font-awesome/fontawesome-webfont.eot":"font-awesome/fontawesome-webfont-7bfcab6db99d5cfbf1705ca0536ddc78585432cc5fa41bbd7ad0f009033b2979.eot","font-awesome/fontawesome-webfont.woff2":"font-awesome/fontawesome-webfont-2adefcbc041e7d18fcf2d417879dc5a09997aa64d675b7a3c4b6ce33da13f3fe.woff2","font-awesome/fontawesome-webfont.woff":"font-awesome/fontawesome-webfont-ba0c59deb5450f5cb41b3f93609ee2d0d995415877ddfa223e8a8a7533474f07.woff","font-awesome/fontawesome-webfont.ttf":"font-awesome/fontawesome-webfont-aa58f33f239a0fb02f5c7a6c45c043d7a9ac9a093335806694ecd6d4edc0d6a8.ttf","font-awesome/fontawesome-webfont.svg":"font-awesome/fontawesome-webfont-ad6157926c1622ba4e1d03d478f1541368524bfc46f51e42fe0d945f7ef323e4.svg","college.js":"college-431d908264782ef54e90202095d4cf397c586f74d2b7879684348dc8b53d2cd2.js","college.css":"college-893ba916d2b043f4b751cacc104de43d14e0db0b4001822f996e803bacbda169.css","cooperative.js":"cooperative-286bab0b704bc8d5295bee551a48f78e1fe8713e0e50c65059cf7a65ed09bbf0.js","cooperative.css":"cooperative-bef1905d0c3e15357e3a376225923847b33f7388d49741062fe3cb20346da315.css","logo.png":"logo-7ff112568709bf97f9898fe87249b7a8f200ff1f48d537d85af87215f1870423.png","application.js":"application-d44f4301c7dfbe07bcb2788d7c006c22c184ae6b7016c09f7911b4962aacd767.js","application.css":"application-8853af8ba870ca7fc8bdae048322f1c5a5caa26f1df87dbbf0c6d04232c4ac4e.css"}} \ No newline at end of file diff --git a/public/assets/application-d3da385d89dfa7edfbecc09573322b132ffc5580cbd185d5f7a74d5358881815.css.gz b/public/assets/application-d3da385d89dfa7edfbecc09573322b132ffc5580cbd185d5f7a74d5358881815.css.gz index 61130621e6fb4b151b82ce426615a5ef00ea1298..c465c716173f7c12eeca4ae3c4cd194f87ea371a 100644 GIT binary patch delta 19 bcmezQmGS3SMh^LI4u<4arLh}1K2`w$TYLzd delta 19 bcmezQmGS3SMh^LI4u-o6Q{y&re5?WhUa|=O diff --git a/public/assets/college-2065ab3f84df62eb2ca345c83198920fad15cc3b93baf22c091f3c6bfced11b4.css.gz b/public/assets/college-2065ab3f84df62eb2ca345c83198920fad15cc3b93baf22c091f3c6bfced11b4.css.gz index 587db6a5413a4afd9864a856b5cdee86022f0f97..a9bf31c611f19c5dfdd43b9ab46ab3e76a325804 100644 GIT binary patch delta 18 Zcmdn=j%m|7CU*I54hDgEtBvg1+W|u%20;J- delta 18 acmdn=j%m|7CU*I54u-o6Q#Z0}ZwCNN9|wB? diff --git a/public/assets/college-f9c1b76699b39750bee976e1dbb5d832fdce2fb05edaf1b818c6e76fdf5ba77c.js.gz b/public/assets/college-f9c1b76699b39750bee976e1dbb5d832fdce2fb05edaf1b818c6e76fdf5ba77c.js.gz index f0a0c307fe65084ff14e182cbf33516305974f26..6b0668e10fd360139b788788b953bdc1b2d95995 100644 GIT binary patch delta 52 zcmcb8SNHZ^T@Lwf4u(c4+qg!KRu0Bi4yINP=2i}tRu0xy4z^Yf_Erv{IA<#d*H#Yh G%Xt8xJPrl` delta 52 zcmcb8SNHZ^T@Lwf4hD_mZSjp9tsIQ4989eo%&iV!Z delta 21 dcmcb1kmcGz7Iyh=4u<;+Qyba0vNN7n003b~2nhfH diff --git a/public/assets/cooperative-2efdf753e39599e78fb02527e864784df9a34dd971576db8231b63f618f9786e.js.gz b/public/assets/cooperative-2efdf753e39599e78fb02527e864784df9a34dd971576db8231b63f618f9786e.js.gz index a60127df78431e3bddda830b58800ab9b3488eef..f68c5de73fb35e402fd4fef22a9c8a12b5021689 100644 GIT binary patch delta 61 zcmWN_DFJ{$002RLmbU^u&QSzG6T~WVAd#fG4#?9ma#9Q_29}fT+Slzsaw(*gN@{7O PmH#{GWsp&(hxxrfM+*?@ delta 61 zcmWN_DFJ{$002RLmbU_y3|EFMh{ccvNd`h(2jpoOIVpw|1ItOaKF78rxfD`LCABot P%Kx48GRP>?&HP>;PZbdu diff --git a/public/assets/font-awesome/fontawesome-webfont-7bfcab6db99d5cfbf1705ca0536ddc78585432cc5fa41bbd7ad0f009033b2979.eot.gz b/public/assets/font-awesome/fontawesome-webfont-7bfcab6db99d5cfbf1705ca0536ddc78585432cc5fa41bbd7ad0f009033b2979.eot.gz index b2450d2cca5382648b6345189feebb60e3897c1e..230d55c2726e55bb7bb8142d642073058402b091 100644 GIT binary patch delta 21 dcmbR7pLNE6R(APr4u;2@r~?T*%>F+0{~kL2aNy# diff --git a/public/assets/font-awesome/fontawesome-webfont-aa58f33f239a0fb02f5c7a6c45c043d7a9ac9a093335806694ecd6d4edc0d6a8.ttf.gz b/public/assets/font-awesome/fontawesome-webfont-aa58f33f239a0fb02f5c7a6c45c043d7a9ac9a093335806694ecd6d4edc0d6a8.ttf.gz index 1b0a24188364cec634d780d2da830a4c971f1256..c9c92584d2cee8d895e4fa7d06b8ad7880763ca0 100644 GIT binary patch delta 21 dcmdn>k9F5SR(APr4u;2k9F5SR(APr4u(~>@r~?T*%^)N0bf}MaR2}S diff --git a/public/assets/font-awesome/fontawesome-webfont-ad6157926c1622ba4e1d03d478f1541368524bfc46f51e42fe0d945f7ef323e4.svg.gz b/public/assets/font-awesome/fontawesome-webfont-ad6157926c1622ba4e1d03d478f1541368524bfc46f51e42fe0d945f7ef323e4.svg.gz index 9ccfd3236df2e603367c589995749a7371e6b004..a659bf0139f1b7d16507c1a576d1aba3ea18fd17 100644 GIT binary patch delta 24 gcmcaQi{t7n4tDu&4u;2@r~@Q?2KF4nf!PGY4Zmh