prime8dev

prime8dev
git clone https://git.prime8.dev/prime8dev.git
Log | Files | Refs | README | LICENSE

commit 6ba9f4a8739f225f5c08fb646b98815e818a7cc0
parent 5fbcc9a09e1afefff91b138dc711f47c853dc6ec
Author: Damian Myrda <damian@prime8.dev>
Date:   Sat,  7 Sep 2024 14:49:59 -0500

Remodeling

Diffstat:
ACaddyfile | 19+++++++++++++++++++
ADockerfile | 14++++++++++++++
MREADME.md | 4++--
Mcompose.yml | 35+++++++++++++++++------------------
Dmail.env | 661-------------------------------------------------------------------------------
Amail/.gitignore | 4++++
Amail/env | 661+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Astart.sh | 13+++++++++++++
Aweb/.gitignore | 2++
Aweb/config.toml | 7+++++++
Aweb/content/projects.md | 14++++++++++++++
Aweb/static/css/bootstrap-responsive.css | 1127+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aweb/static/css/bootstrap-responsive.min.css | 1106+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aweb/static/css/bootstrap.css | 6204+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aweb/static/css/bootstrap.min.css | 5226+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aweb/static/css/fonts/Fixedsys500c.eot | 0
Aweb/static/css/fonts/Fixedsys500c.otf | 0
Aweb/static/css/fonts/Fixedsys500c.svg | 646+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aweb/static/css/fonts/Fixedsys500c.ttf | 0
Aweb/static/css/fonts/Fixedsys500c.woff | 0
Aweb/static/css/fonts/Px437_IBM_EGA8.otf | 0
Aweb/static/js/bootstrap.js | 2425+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aweb/static/js/bootstrap.min.js | 1454+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aweb/static/js/wakatime.js | 51+++++++++++++++++++++++++++++++++++++++++++++++++++
Aweb/templates/404.html | 27+++++++++++++++++++++++++++
Aweb/templates/base.html | 38++++++++++++++++++++++++++++++++++++++
Aweb/templates/index.html | 95+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aweb/templates/nav.html | 21+++++++++++++++++++++
Aweb/templates/projects.html | 21+++++++++++++++++++++
29 files changed, 19194 insertions(+), 681 deletions(-)

diff --git a/Caddyfile b/Caddyfile @@ -0,0 +1,19 @@ +prime8.dev { + root * /web/ + file_server + try_files {path} {path}.html + + tls damian@prime8.dev + + handle_errors { + @404 { + expression {http.error.status_code} == 404 + } + rewrite @404 /404.html + file_server + } +} + +mail.prime8.dev { + tls damian@prime8.dev +} diff --git a/Dockerfile b/Dockerfile @@ -0,0 +1,14 @@ +FROM ghcr.io/getzola/zola:v0.19.1 AS builder + +COPY ./web/ /src/ +WORKDIR /src/ + +RUN ["zola", "build"] + +FROM caddy:latest + +COPY ./Caddyfile /etc/caddy/Caddyfile +COPY --from=builder /src/public/ /web/ + +EXPOSE 80 +EXPOSE 443 diff --git a/README.md b/README.md @@ -1,6 +1,6 @@ -# prime8 +# p8d -This is my website that is themed like an old school BBS. +This is my website located at prime8.dev ## installing diff --git a/compose.yml b/compose.yml @@ -1,33 +1,32 @@ services: - bbs: - container_name: bbs - image: moncheeta/bbs + web: + build: . ports: + - "80:80" - "443:443" volumes: - - /etc/letsencrypt/live/prime8.dev/fullchain.pem:/ssl/fullchain.pem:ro - - /etc/letsencrypt/live/prime8.dev/privkey.pem:/ssl/privkey.pem:ro + - ./Caddyfile:/etc/caddy/Caddyfile + - ./web/data/:/data/caddy/ + - ./web/config/:/config/caddy/ restart: always - stop_grace_period: 1m mail: container_name: mail image: ghcr.io/docker-mailserver/docker-mailserver:latest hostname: mail.prime8.dev - env_file: mail.env + env_file: ./mail/env ports: - - "25:25" # SMTP (explicit TLS => STARTTLS, Authentication is DISABLED => use port 465/587 instead) - - "143:143" # IMAP4 (explicit TLS => STARTTLS) - - "465:465" # ESMTP (implicit TLS) - - "587:587" # ESMTP (explicit TLS => STARTTLS) - - "993:993" # IMAP4 (implicit TLS) + - "25:25" # SMTP (explicit TLS => STARTTLS, Authentication is DISABLED => use port 465/587 instead) + - "143:143" # IMAP4 (explicit TLS => STARTTLS) + - "465:465" # ESMTP (implicit TLS) + - "587:587" # ESMTP (explicit TLS => STARTTLS) + - "993:993" # IMAP4 (implicit TLS) volumes: - - /etc/localtime:/etc/localtime/:ro - - ./docker-data/dms/mail-data/:/var/mail/ - - ./docker-data/dms/mail-state/:/var/mail-state/ - - ./docker-data/dms/mail-logs/:/var/log/mail/ - - ./docker-data/dms/config/:/tmp/docker-mailserver/ - - /etc/letsencrypt/:/etc/letsencrypt/:ro + - ./mail/data/:/var/mail/ + - ./mail/state/:/var/mail-state/ + - ./mail/logs/:/var/log/mail/ + - ./mail/config/:/tmp/docker-mailserver/ + - ./web/data/:/etc/caddy/certificates/ cap_add: - NET_ADMIN healthcheck: diff --git a/mail.env b/mail.env @@ -1,661 +0,0 @@ -# ----------------------------------------------- -# --- Mailserver Environment Variables ---------- -# ----------------------------------------------- - -# DOCUMENTATION FOR THESE VARIABLES IS FOUND UNDER -# https://docker-mailserver.github.io/docker-mailserver/latest/config/environment/ - -# ----------------------------------------------- -# --- General Section --------------------------- -# ----------------------------------------------- - -# empty => uses the `hostname` command to get the mail server's canonical hostname -# => Specify a fully-qualified domainname to serve mail for. This is used for many of the config features so if you can't set your hostname (e.g. you're in a container platform that doesn't let you) specify it in this environment variable. -OVERRIDE_HOSTNAME= - -# REMOVED in version v11.0.0! Use LOG_LEVEL instead. -DMS_DEBUG=0 - -# Set the log level for DMS. -# This is mostly relevant for container startup scripts and change detection event feedback. -# -# Valid values (in order of increasing verbosity) are: `error`, `warn`, `info`, `debug` and `trace`. -# The default log level is `info`. -LOG_LEVEL=info - -# critical => Only show critical messages -# error => Only show erroneous output -# **warn** => Show warnings -# info => Normal informational output -# debug => Also show debug messages -SUPERVISOR_LOGLEVEL= - -# Support for deployment where these defaults are not compatible (eg: some NAS appliances): -# /var/mail vmail User ID (default: 5000) -DMS_VMAIL_UID= -# /var/mail vmail Group ID (default: 5000) -DMS_VMAIL_GID= - -# **empty** => use FILE -# LDAP => use LDAP authentication -# OIDC => use OIDC authentication (not yet implemented) -# FILE => use local files (this is used as the default) -ACCOUNT_PROVISIONER= - -# empty => postmaster@domain.com -# => Specify the postmaster address -POSTMASTER_ADDRESS= - -# Check for updates on container start and then once a day -# If an update is available, a mail is sent to POSTMASTER_ADDRESS -# 0 => Update check disabled -# 1 => Update check enabled -ENABLE_UPDATE_CHECK=1 - -# Customize the update check interval. -# Number + Suffix. Suffix must be 's' for seconds, 'm' for minutes, 'h' for hours or 'd' for days. -UPDATE_CHECK_INTERVAL=1d - -# Set different options for mynetworks option (can be overwrite in postfix-main.cf) -# **WARNING**: Adding the docker network's gateway to the list of trusted hosts, e.g. using the `network` or -# `connected-networks` option, can create an open relay -# https://github.com/docker-mailserver/docker-mailserver/issues/1405#issuecomment-590106498 -# The same can happen for rootless podman. To prevent this, set the value to "none" or configure slirp4netns -# https://github.com/docker-mailserver/docker-mailserver/issues/2377 -# -# none => Explicitly force authentication -# container => Container IP address only -# host => Add docker container network (ipv4 only) -# network => Add all docker container networks (ipv4 only) -# connected-networks => Add all connected docker networks (ipv4 only) -PERMIT_DOCKER=none - -# Set the timezone. If this variable is unset, the container runtime will try to detect the time using -# `/etc/localtime`, which you can alternatively mount into the container. The value of this variable -# must follow the pattern `AREA/ZONE`, i.e. of you want to use Germany's time zone, use `Europe/Berlin`. -# You can lookup all available timezones here: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List -TZ= - -# In case you network interface differs from 'eth0', e.g. when you are using HostNetworking in Kubernetes, -# you can set NETWORK_INTERFACE to whatever interface you want. This interface will then be used. -# - **empty** => eth0 -NETWORK_INTERFACE= - -# empty => modern -# modern => Enables TLSv1.2 and modern ciphers only. (default) -# intermediate => Enables TLSv1, TLSv1.1 and TLSv1.2 and broad compatibility ciphers. -TLS_LEVEL= - -# Configures the handling of creating mails with forged sender addresses. -# -# **0** => (not recommended) Mail address spoofing allowed. Any logged in user may create email messages with a forged sender address (see also https://en.wikipedia.org/wiki/Email_spoofing). -# 1 => Mail spoofing denied. Each user may only send with his own or his alias addresses. Addresses with extension delimiters(http://www.postfix.org/postconf.5.html#recipient_delimiter) are not able to send messages. -SPOOF_PROTECTION= - -# Enables the Sender Rewriting Scheme. SRS is needed if your mail server acts as forwarder. See [postsrsd](https://github.com/roehling/postsrsd/blob/master/README.md#sender-rewriting-scheme-crash-course) for further explanation. -# - **0** => Disabled -# - 1 => Enabled -ENABLE_SRS=0 - -# Enables the OpenDKIM service. -# **1** => Enabled -# 0 => Disabled -ENABLE_OPENDKIM=1 - -# Enables the OpenDMARC service. -# **1** => Enabled -# 0 => Disabled -ENABLE_OPENDMARC=1 - - -# Enabled `policyd-spf` in Postfix's configuration. You will likely want to set this -# to `0` in case you're using Rspamd (`ENABLE_RSPAMD=1`). -# -# - 0 => Disabled -# - **1** => Enabled -ENABLE_POLICYD_SPF=1 - -# Enables POP3 service -# - **0** => Disabled -# - 1 => Enabled -ENABLE_POP3=0 - -# Enables IMAP service -# - 0 => Disabled -# - **1** => Enabled -ENABLE_IMAP=1 - -# Enables ClamAV, and anti-virus scanner. -# 1 => Enabled -# **0** => Disabled -ENABLE_CLAMAV=0 - -# Add the value of this ENV as a prefix to the mail subject when spam is detected. -# NOTE: This subject prefix may be redundant (by default spam is delivered to a junk folder). -# It provides value when your junk mail is stored alongside legitimate mail instead of a separate location (like with `SPAMASSASSIN_SPAM_TO_INBOX=1` or `MOVE_SPAM_TO_JUNK=0` or a POP3 only setup, without IMAP). -# NOTE: When not using Docker Compose, other CRI may not support quote-wrapping the value here to preserve any trailing white-space. -SPAM_SUBJECT= - -# Enables Rspamd -# **0** => Disabled -# 1 => Enabled -ENABLE_RSPAMD=0 - -# When `ENABLE_RSPAMD=1`, an internal Redis instance is enabled implicitly. -# This setting provides an opt-out to allow using an external instance instead. -# 0 => Disabled -# 1 => Enabled -ENABLE_RSPAMD_REDIS= - -# When enabled, -# -# 1. the "[autolearning][rspamd-autolearn]" feature is turned on; -# 2. the Bayes classifier will be trained when moving mails from or to the Junk folder (with the help of Sieve scripts). -# -# **0** => disabled -# 1 => enabled -RSPAMD_LEARN=0 - -# This settings controls whether checks should be performed on emails coming -# from authenticated users (i.e. most likely outgoing emails). The default value -# is `0` in order to align better with SpamAssassin. We recommend reading -# through https://rspamd.com/doc/tutorials/scanning_outbound.html though to -# decide for yourself whether you need and want this feature. -# -# Note that DKIM signing of e-mails will still happen. -RSPAMD_CHECK_AUTHENTICATED=0 - -# Controls whether the Rspamd Greylisting module is enabled. -# This module can further assist in avoiding spam emails by greylisting -# e-mails with a certain spam score. -# -# **0** => disabled -# 1 => enabled -RSPAMD_GREYLISTING=0 - -# Can be used to enable or disable the Hfilter group module. -# -# - 0 => Disabled -# - **1** => Enabled -RSPAMD_HFILTER=1 - -# Can be used to control the score when the HFILTER_HOSTNAME_UNKNOWN symbol applies. A higher score is more punishing. Setting it to 15 is equivalent to rejecting the email when the check fails. -# -# Default: 6 -RSPAMD_HFILTER_HOSTNAME_UNKNOWN_SCORE=6 - -# Can be used to enable or disable the (still experimental) neural module. -# -# - **0** => Disabled -# - 1 => Enabled -RSPAMD_NEURAL=0 - -# Amavis content filter (used for ClamAV & SpamAssassin) -# 0 => Disabled -# 1 => Enabled -ENABLE_AMAVIS=1 - -# -1/-2/-3 => Only show errors -# **0** => Show warnings -# 1/2 => Show default informational output -# 3/4/5 => log debug information (very verbose) -AMAVIS_LOGLEVEL=0 - -# This enables DNS block lists in Postscreen. -# Note: Emails will be rejected, if they don't pass the block list checks! -# **0** => DNS block lists are disabled -# 1 => DNS block lists are enabled -ENABLE_DNSBL=0 - -# If you enable Fail2Ban, don't forget to add the following lines to your `compose.yaml`: -# cap_add: -# - NET_ADMIN -# Otherwise, `nftables` won't be able to ban IPs. -ENABLE_FAIL2BAN=0 - -# Fail2Ban blocktype -# drop => drop packet (send NO reply) -# reject => reject packet (send ICMP unreachable) -FAIL2BAN_BLOCKTYPE=drop - -# 1 => Enables Managesieve on port 4190 -# empty => disables Managesieve -ENABLE_MANAGESIEVE= - -# **enforce** => Allow other tests to complete. Reject attempts to deliver mail with a 550 SMTP reply, and log the helo/sender/recipient information. Repeat this test the next time the client connects. -# drop => Drop the connection immediately with a 521 SMTP reply. Repeat this test the next time the client connects. -# ignore => Ignore the failure of this test. Allow other tests to complete. Repeat this test the next time the client connects. This option is useful for testing and collecting statistics without blocking mail. -POSTSCREEN_ACTION=enforce - -# empty => all daemons start -# 1 => only launch postfix smtp -SMTP_ONLY= - -# Please read [the SSL page in the documentation](https://docker-mailserver.github.io/docker-mailserver/latest/config/security/ssl) for more information. -# -# empty => SSL disabled -# letsencrypt => Enables Let's Encrypt certificates -# custom => Enables custom certificates -# manual => Let's you manually specify locations of your SSL certificates for non-standard cases -# self-signed => Enables self-signed certificates -SSL_TYPE=letsencrypt - -# These are only supported with `SSL_TYPE=manual`. -# Provide the path to your cert and key files that you've mounted access to within the container. -SSL_CERT_PATH= -SSL_KEY_PATH= -# Optional: A 2nd certificate can be supported as fallback (dual cert support), eg ECDSA with an RSA fallback. -# Useful for additional compatibility with older MTA and MUA (eg pre-2015). -SSL_ALT_CERT_PATH= -SSL_ALT_KEY_PATH= - -# Set how many days a virusmail will stay on the server before being deleted -# empty => 7 days -VIRUSMAILS_DELETE_DELAY= - -# Configure Postfix `virtual_transport` to deliver mail to a different LMTP client (default is a dovecot socket). -# Provide any valid URI. Examples: -# -# empty => `lmtp:unix:/var/run/dovecot/lmtp` (default, configured in Postfix main.cf) -# `lmtp:unix:private/dovecot-lmtp` (use socket) -# `lmtps:inet:<host>:<port>` (secure lmtp with starttls) -# `lmtp:<kopano-host>:2003` (use kopano as mailstore) -POSTFIX_DAGENT= - -# Set the mailbox size limit for all users. If set to zero, the size will be unlimited (default). Size is in bytes. -# -# empty => 0 -POSTFIX_MAILBOX_SIZE_LIMIT= - -# See https://docker-mailserver.github.io/docker-mailserver/edge/config/user-management/accounts/#notes -# 0 => Dovecot quota is disabled -# 1 => Dovecot quota is enabled -ENABLE_QUOTAS=1 - -# Set the message size limit for all users. If set to zero, the size will be unlimited (not recommended!). Size is in bytes. -# -# empty => 10240000 (~10 MB) -POSTFIX_MESSAGE_SIZE_LIMIT= - -# Mails larger than this limit won't be scanned. -# ClamAV must be enabled (ENABLE_CLAMAV=1) for this. -# -# empty => 25M (25 MB) -CLAMAV_MESSAGE_SIZE_LIMIT= - -# Enables regular pflogsumm mail reports. -# This is a new option. The old REPORT options are still supported for backwards compatibility. If this is not set and reports are enabled with the old options, logrotate will be used. -# -# not set => No report -# daily_cron => Daily report for the previous day -# logrotate => Full report based on the mail log when it is rotated -PFLOGSUMM_TRIGGER= - -# Recipient address for pflogsumm reports. -# -# not set => Use REPORT_RECIPIENT or POSTMASTER_ADDRESS -# => Specify the recipient address(es) -PFLOGSUMM_RECIPIENT= - -# Sender address (`FROM`) for pflogsumm reports if pflogsumm reports are enabled. -# -# not set => Use REPORT_SENDER -# => Specify the sender address -PFLOGSUMM_SENDER= - -# Interval for logwatch report. -# -# none => No report is generated -# daily => Send a daily report -# weekly => Send a report every week -LOGWATCH_INTERVAL= - -# Recipient address for logwatch reports if they are enabled. -# -# not set => Use REPORT_RECIPIENT or POSTMASTER_ADDRESS -# => Specify the recipient address(es) -LOGWATCH_RECIPIENT= - -# Sender address (`FROM`) for logwatch reports if logwatch reports are enabled. -# -# not set => Use REPORT_SENDER -# => Specify the sender address -LOGWATCH_SENDER= - -# Defines who receives reports if they are enabled. -# **empty** => ${POSTMASTER_ADDRESS} -# => Specify the recipient address -REPORT_RECIPIENT= - -# Defines who sends reports if they are enabled. -# **empty** => mailserver-report@${DOMAINNAME} -# => Specify the sender address -REPORT_SENDER= - -# Changes the interval in which log files are rotated -# **weekly** => Rotate log files weekly -# daily => Rotate log files daily -# monthly => Rotate log files monthly -# -# Note: This Variable actually controls logrotate inside the container -# and rotates the log files depending on this setting. The main log output is -# still available in its entirety via `docker logs mail` (Or your -# respective container name). If you want to control logrotation for -# the Docker-generated logfile see: -# https://docs.docker.com/config/containers/logging/configure/ -# -# Note: This variable can also determine the interval for Postfix's log summary reports, see [`PFLOGSUMM_TRIGGER`](#pflogsumm_trigger). -LOGROTATE_INTERVAL=weekly - -# Defines how many log files are kept by logrorate -LOGROTATE_COUNT=4 - - -# If enabled, employs `reject_unknown_client_hostname` to sender restrictions in Postfix's configuration. -# -# - **0** => Disabled -# - 1 => Enabled -POSTFIX_REJECT_UNKNOWN_CLIENT_HOSTNAME=0 - -# Choose TCP/IP protocols for postfix to use -# **all** => All possible protocols. -# ipv4 => Use only IPv4 traffic. Most likely you want this behind Docker. -# ipv6 => Use only IPv6 traffic. -# -# Note: More details at http://www.postfix.org/postconf.5.html#inet_protocols -POSTFIX_INET_PROTOCOLS=all - -# Enables MTA-STS support for outbound mail. -# More details: https://docker-mailserver.github.io/docker-mailserver/v13.3/config/best-practices/mta-sts/ -# - **0** ==> MTA-STS disabled -# - 1 => MTA-STS enabled -ENABLE_MTA_STS=0 - -# Choose TCP/IP protocols for dovecot to use -# **all** => Listen on all interfaces -# ipv4 => Listen only on IPv4 interfaces. Most likely you want this behind Docker. -# ipv6 => Listen only on IPv6 interfaces. -# -# Note: More information at https://dovecot.org/doc/dovecot-example.conf -DOVECOT_INET_PROTOCOLS=all - -# ----------------------------------------------- -# --- SpamAssassin Section ---------------------- -# ----------------------------------------------- - -ENABLE_SPAMASSASSIN=0 - -# KAM is a 3rd party SpamAssassin ruleset, provided by the McGrail Foundation. -# If SpamAssassin is enabled, KAM can be used in addition to the default ruleset. -# - **0** => KAM disabled -# - 1 => KAM enabled -# -# Note: only has an effect if `ENABLE_SPAMASSASSIN=1` -ENABLE_SPAMASSASSIN_KAM=0 - -# deliver spam messages to the inbox (tagged using SPAM_SUBJECT) -SPAMASSASSIN_SPAM_TO_INBOX=1 - -# spam messages will be moved in the Junk folder (SPAMASSASSIN_SPAM_TO_INBOX=1 required) -MOVE_SPAM_TO_JUNK=1 - -# spam messages will be marked as read -MARK_SPAM_AS_READ=0 - -# add 'spam info' headers at, or above this level -SA_TAG=2.0 - -# add 'spam detected' headers at, or above this level -SA_TAG2=6.31 - -# triggers spam evasive actions -SA_KILL=10.0 - -# ----------------------------------------------- -# --- Fetchmail Section ------------------------- -# ----------------------------------------------- - -ENABLE_FETCHMAIL=0 - -# The interval to fetch mail in seconds -FETCHMAIL_POLL=300 -# Use multiple fetchmail instances (1 per poll entry in fetchmail.cf) -# Supports multiple IMAP IDLE connections when a server is used across multiple poll entries -# https://otremba.net/wiki/Fetchmail_(Debian)#Immediate_Download_via_IMAP_IDLE -FETCHMAIL_PARALLEL=0 - -# Enable or disable `getmail`. -# -# - **0** => Disabled -# - 1 => Enabled -ENABLE_GETMAIL=0 - -# The number of minutes for the interval. Min: 1; Max: 30. -GETMAIL_POLL=5 - -# ----------------------------------------------- -# --- OAUTH2 Section ---------------------------- -# ----------------------------------------------- - -# empty => OAUTH2 authentication is disabled -# 1 => OAUTH2 authentication is enabled -ENABLE_OAUTH2= - -# Specify the user info endpoint URL of the oauth2 provider -# Example: https://oauth2.example.com/userinfo/ -OAUTH2_INTROSPECTION_URL= - -# ----------------------------------------------- -# --- LDAP Section ------------------------------ -# ----------------------------------------------- - -# A second container for the ldap service is necessary (i.e. https://hub.docker.com/r/bitnami/openldap/) - -# empty => no -# yes => LDAP over TLS enabled for Postfix -LDAP_START_TLS= - -# empty => mail.example.com -# Specify the `<dns-name>` / `<ip-address>` where the LDAP server is reachable via a URI like: `ldaps://mail.example.com`. -# Note: You must include the desired URI scheme (`ldap://`, `ldaps://`, `ldapi://`). -LDAP_SERVER_HOST= - -# empty => ou=people,dc=domain,dc=com -# => e.g. LDAP_SEARCH_BASE=dc=mydomain,dc=local -LDAP_SEARCH_BASE= - -# empty => cn=admin,dc=domain,dc=com -# => take a look at examples of SASL_LDAP_BIND_DN -LDAP_BIND_DN= - -# empty** => admin -# => Specify the password to bind against ldap -LDAP_BIND_PW= - -# e.g. `"(&(mail=%s)(mailEnabled=TRUE))"` -# => Specify how ldap should be asked for users -LDAP_QUERY_FILTER_USER= - -# e.g. `"(&(mailGroupMember=%s)(mailEnabled=TRUE))"` -# => Specify how ldap should be asked for groups -LDAP_QUERY_FILTER_GROUP= - -# e.g. `"(&(mailAlias=%s)(mailEnabled=TRUE))"` -# => Specify how ldap should be asked for aliases -LDAP_QUERY_FILTER_ALIAS= - -# e.g. `"(&(|(mail=*@%s)(mailalias=*@%s)(mailGroupMember=*@%s))(mailEnabled=TRUE))"` -# => Specify how ldap should be asked for domains -LDAP_QUERY_FILTER_DOMAIN= - -# ----------------------------------------------- -# --- Dovecot Section --------------------------- -# ----------------------------------------------- - -# empty => no -# yes => LDAP over TLS enabled for Dovecot -DOVECOT_TLS= - -# e.g. `"(&(objectClass=PostfixBookMailAccount)(uniqueIdentifier=%n))"` -DOVECOT_USER_FILTER= - -# e.g. `"(&(objectClass=PostfixBookMailAccount)(uniqueIdentifier=%n))"` -DOVECOT_PASS_FILTER= - -# Define the mailbox format to be used -# default is maildir, supported values are: sdbox, mdbox, maildir -DOVECOT_MAILBOX_FORMAT=maildir - -# empty => no -# yes => Allow bind authentication for LDAP -# https://wiki.dovecot.org/AuthDatabase/LDAP/AuthBinds -DOVECOT_AUTH_BIND= - -# ----------------------------------------------- -# --- Postgrey Section -------------------------- -# ----------------------------------------------- - -ENABLE_POSTGREY=0 -# greylist for N seconds -POSTGREY_DELAY=300 -# delete entries older than N days since the last time that they have been seen -POSTGREY_MAX_AGE=35 -# response when a mail is greylisted -POSTGREY_TEXT="Delayed by Postgrey" -# whitelist host after N successful deliveries (N=0 to disable whitelisting) -POSTGREY_AUTO_WHITELIST_CLIENTS=5 - -# ----------------------------------------------- -# --- SASL Section ------------------------------ -# ----------------------------------------------- - -ENABLE_SASLAUTHD=0 - -# empty => pam -# `ldap` => authenticate against ldap server -# `shadow` => authenticate against local user db -# `mysql` => authenticate against mysql db -# `rimap` => authenticate against imap server -# Note: can be a list of mechanisms like pam ldap shadow -SASLAUTHD_MECHANISMS= - -# empty => None -# e.g. with SASLAUTHD_MECHANISMS rimap you need to specify the ip-address/servername of the imap server ==> xxx.xxx.xxx.xxx -SASLAUTHD_MECH_OPTIONS= - -# empty => Use value of LDAP_SERVER_HOST -# Note: You must include the desired URI scheme (`ldap://`, `ldaps://`, `ldapi://`). -SASLAUTHD_LDAP_SERVER= - -# empty => Use value of LDAP_BIND_DN -# specify an object with privileges to search the directory tree -# e.g. active directory: SASLAUTHD_LDAP_BIND_DN=cn=Administrator,cn=Users,dc=mydomain,dc=net -# e.g. openldap: SASLAUTHD_LDAP_BIND_DN=cn=admin,dc=mydomain,dc=net -SASLAUTHD_LDAP_BIND_DN= - -# empty => Use value of LDAP_BIND_PW -SASLAUTHD_LDAP_PASSWORD= - -# empty => Use value of LDAP_SEARCH_BASE -# specify the search base -SASLAUTHD_LDAP_SEARCH_BASE= - -# empty => default filter `(&(uniqueIdentifier=%u)(mailEnabled=TRUE))` -# e.g. for active directory: `(&(sAMAccountName=%U)(objectClass=person))` -# e.g. for openldap: `(&(uid=%U)(objectClass=person))` -SASLAUTHD_LDAP_FILTER= - -# empty => no -# yes => LDAP over TLS enabled for SASL -# If set to yes, the protocol in SASLAUTHD_LDAP_SERVER must be ldap:// or missing. -SASLAUTHD_LDAP_START_TLS= - -# empty => no -# yes => Require and verify server certificate -# If yes you must/could specify SASLAUTHD_LDAP_TLS_CACERT_FILE or SASLAUTHD_LDAP_TLS_CACERT_DIR. -SASLAUTHD_LDAP_TLS_CHECK_PEER= - -# File containing CA (Certificate Authority) certificate(s). -# empty => Nothing is added to the configuration -# Any value => Fills the `ldap_tls_cacert_file` option -SASLAUTHD_LDAP_TLS_CACERT_FILE= - -# Path to directory with CA (Certificate Authority) certificates. -# empty => Nothing is added to the configuration -# Any value => Fills the `ldap_tls_cacert_dir` option -SASLAUTHD_LDAP_TLS_CACERT_DIR= - -# Specify what password attribute to use for password verification. -# empty => Nothing is added to the configuration but the documentation says it is `userPassword` by default. -# Any value => Fills the `ldap_password_attr` option -SASLAUTHD_LDAP_PASSWORD_ATTR= - -# empty => `bind` will be used as a default value -# `fastbind` => The fastbind method is used -# `custom` => The custom method uses userPassword attribute to verify the password -SASLAUTHD_LDAP_AUTH_METHOD= - -# Specify the authentication mechanism for SASL bind -# empty => Nothing is added to the configuration -# Any value => Fills the `ldap_mech` option -SASLAUTHD_LDAP_MECH= - -# ----------------------------------------------- -# --- SRS Section ------------------------------- -# ----------------------------------------------- - -# envelope_sender => Rewrite only envelope sender address (default) -# header_sender => Rewrite only header sender (not recommended) -# envelope_sender,header_sender => Rewrite both senders -# An email has an "envelope" sender (indicating the sending server) and a -# "header" sender (indicating who sent it). More strict SPF policies may require -# you to replace both instead of just the envelope sender. -SRS_SENDER_CLASSES=envelope_sender - -# empty => Envelope sender will be rewritten for all domains -# provide comma separated list of domains to exclude from rewriting -SRS_EXCLUDE_DOMAINS= - -# empty => generated when the image is built -# provide a secret to use in base64 -# you may specify multiple keys, comma separated. the first one is used for -# signing and the remaining will be used for verification. this is how you -# rotate and expire keys -SRS_SECRET= - -# ----------------------------------------------- -# --- Default Relay Host Section ---------------- -# ----------------------------------------------- - -# Setup relaying all mail through a default relay host -# -# Set a default host to relay all mail through (optionally include a port) -# Example: [mail.example.com]:587 -DEFAULT_RELAY_HOST= - -# ----------------------------------------------- -# --- Multi-Domain Relay Section ---------------- -# ----------------------------------------------- - -# Setup relaying for multiple domains based on the domain name of the sender -# optionally uses usernames and passwords in postfix-sasl-password.cf and relay host mappings in postfix-relaymap.cf -# -# Set a default host to relay mail through -# Example: mail.example.com -RELAY_HOST= - -# empty => 25 -# default port to relay mail -RELAY_PORT=25 - -# ----------------------------------------------- -# --- Relay Host Credentials Section ------------ -# ----------------------------------------------- - -# Configure a relay user and password to use with RELAY_HOST / DEFAULT_RELAY_HOST - -# empty => no default -RELAY_USER= - -# empty => no default -RELAY_PASSWORD= diff --git a/mail/.gitignore b/mail/.gitignore @@ -0,0 +1,4 @@ +/data/ +/state/ +/logs/ +/config/ diff --git a/mail/env b/mail/env @@ -0,0 +1,661 @@ +# ----------------------------------------------- +# --- Mailserver Environment Variables ---------- +# ----------------------------------------------- + +# DOCUMENTATION FOR THESE VARIABLES IS FOUND UNDER +# https://docker-mailserver.github.io/docker-mailserver/latest/config/environment/ + +# ----------------------------------------------- +# --- General Section --------------------------- +# ----------------------------------------------- + +# empty => uses the `hostname` command to get the mail server's canonical hostname +# => Specify a fully-qualified domainname to serve mail for. This is used for many of the config features so if you can't set your hostname (e.g. you're in a container platform that doesn't let you) specify it in this environment variable. +OVERRIDE_HOSTNAME= + +# REMOVED in version v11.0.0! Use LOG_LEVEL instead. +DMS_DEBUG=0 + +# Set the log level for DMS. +# This is mostly relevant for container startup scripts and change detection event feedback. +# +# Valid values (in order of increasing verbosity) are: `error`, `warn`, `info`, `debug` and `trace`. +# The default log level is `info`. +LOG_LEVEL=info + +# critical => Only show critical messages +# error => Only show erroneous output +# **warn** => Show warnings +# info => Normal informational output +# debug => Also show debug messages +SUPERVISOR_LOGLEVEL= + +# Support for deployment where these defaults are not compatible (eg: some NAS appliances): +# /var/mail vmail User ID (default: 5000) +DMS_VMAIL_UID= +# /var/mail vmail Group ID (default: 5000) +DMS_VMAIL_GID= + +# **empty** => use FILE +# LDAP => use LDAP authentication +# OIDC => use OIDC authentication (not yet implemented) +# FILE => use local files (this is used as the default) +ACCOUNT_PROVISIONER= + +# empty => postmaster@domain.com +# => Specify the postmaster address +POSTMASTER_ADDRESS= + +# Check for updates on container start and then once a day +# If an update is available, a mail is sent to POSTMASTER_ADDRESS +# 0 => Update check disabled +# 1 => Update check enabled +ENABLE_UPDATE_CHECK=1 + +# Customize the update check interval. +# Number + Suffix. Suffix must be 's' for seconds, 'm' for minutes, 'h' for hours or 'd' for days. +UPDATE_CHECK_INTERVAL=1d + +# Set different options for mynetworks option (can be overwrite in postfix-main.cf) +# **WARNING**: Adding the docker network's gateway to the list of trusted hosts, e.g. using the `network` or +# `connected-networks` option, can create an open relay +# https://github.com/docker-mailserver/docker-mailserver/issues/1405#issuecomment-590106498 +# The same can happen for rootless podman. To prevent this, set the value to "none" or configure slirp4netns +# https://github.com/docker-mailserver/docker-mailserver/issues/2377 +# +# none => Explicitly force authentication +# container => Container IP address only +# host => Add docker container network (ipv4 only) +# network => Add all docker container networks (ipv4 only) +# connected-networks => Add all connected docker networks (ipv4 only) +PERMIT_DOCKER=none + +# Set the timezone. If this variable is unset, the container runtime will try to detect the time using +# `/etc/localtime`, which you can alternatively mount into the container. The value of this variable +# must follow the pattern `AREA/ZONE`, i.e. of you want to use Germany's time zone, use `Europe/Berlin`. +# You can lookup all available timezones here: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List +TZ= + +# In case you network interface differs from 'eth0', e.g. when you are using HostNetworking in Kubernetes, +# you can set NETWORK_INTERFACE to whatever interface you want. This interface will then be used. +# - **empty** => eth0 +NETWORK_INTERFACE= + +# empty => modern +# modern => Enables TLSv1.2 and modern ciphers only. (default) +# intermediate => Enables TLSv1, TLSv1.1 and TLSv1.2 and broad compatibility ciphers. +TLS_LEVEL= + +# Configures the handling of creating mails with forged sender addresses. +# +# **0** => (not recommended) Mail address spoofing allowed. Any logged in user may create email messages with a forged sender address (see also https://en.wikipedia.org/wiki/Email_spoofing). +# 1 => Mail spoofing denied. Each user may only send with his own or his alias addresses. Addresses with extension delimiters(http://www.postfix.org/postconf.5.html#recipient_delimiter) are not able to send messages. +SPOOF_PROTECTION= + +# Enables the Sender Rewriting Scheme. SRS is needed if your mail server acts as forwarder. See [postsrsd](https://github.com/roehling/postsrsd/blob/master/README.md#sender-rewriting-scheme-crash-course) for further explanation. +# - **0** => Disabled +# - 1 => Enabled +ENABLE_SRS=0 + +# Enables the OpenDKIM service. +# **1** => Enabled +# 0 => Disabled +ENABLE_OPENDKIM=1 + +# Enables the OpenDMARC service. +# **1** => Enabled +# 0 => Disabled +ENABLE_OPENDMARC=1 + + +# Enabled `policyd-spf` in Postfix's configuration. You will likely want to set this +# to `0` in case you're using Rspamd (`ENABLE_RSPAMD=1`). +# +# - 0 => Disabled +# - **1** => Enabled +ENABLE_POLICYD_SPF=1 + +# Enables POP3 service +# - **0** => Disabled +# - 1 => Enabled +ENABLE_POP3=0 + +# Enables IMAP service +# - 0 => Disabled +# - **1** => Enabled +ENABLE_IMAP=1 + +# Enables ClamAV, and anti-virus scanner. +# 1 => Enabled +# **0** => Disabled +ENABLE_CLAMAV=0 + +# Add the value of this ENV as a prefix to the mail subject when spam is detected. +# NOTE: This subject prefix may be redundant (by default spam is delivered to a junk folder). +# It provides value when your junk mail is stored alongside legitimate mail instead of a separate location (like with `SPAMASSASSIN_SPAM_TO_INBOX=1` or `MOVE_SPAM_TO_JUNK=0` or a POP3 only setup, without IMAP). +# NOTE: When not using Docker Compose, other CRI may not support quote-wrapping the value here to preserve any trailing white-space. +SPAM_SUBJECT= + +# Enables Rspamd +# **0** => Disabled +# 1 => Enabled +ENABLE_RSPAMD=0 + +# When `ENABLE_RSPAMD=1`, an internal Redis instance is enabled implicitly. +# This setting provides an opt-out to allow using an external instance instead. +# 0 => Disabled +# 1 => Enabled +ENABLE_RSPAMD_REDIS= + +# When enabled, +# +# 1. the "[autolearning][rspamd-autolearn]" feature is turned on; +# 2. the Bayes classifier will be trained when moving mails from or to the Junk folder (with the help of Sieve scripts). +# +# **0** => disabled +# 1 => enabled +RSPAMD_LEARN=0 + +# This settings controls whether checks should be performed on emails coming +# from authenticated users (i.e. most likely outgoing emails). The default value +# is `0` in order to align better with SpamAssassin. We recommend reading +# through https://rspamd.com/doc/tutorials/scanning_outbound.html though to +# decide for yourself whether you need and want this feature. +# +# Note that DKIM signing of e-mails will still happen. +RSPAMD_CHECK_AUTHENTICATED=0 + +# Controls whether the Rspamd Greylisting module is enabled. +# This module can further assist in avoiding spam emails by greylisting +# e-mails with a certain spam score. +# +# **0** => disabled +# 1 => enabled +RSPAMD_GREYLISTING=0 + +# Can be used to enable or disable the Hfilter group module. +# +# - 0 => Disabled +# - **1** => Enabled +RSPAMD_HFILTER=1 + +# Can be used to control the score when the HFILTER_HOSTNAME_UNKNOWN symbol applies. A higher score is more punishing. Setting it to 15 is equivalent to rejecting the email when the check fails. +# +# Default: 6 +RSPAMD_HFILTER_HOSTNAME_UNKNOWN_SCORE=6 + +# Can be used to enable or disable the (still experimental) neural module. +# +# - **0** => Disabled +# - 1 => Enabled +RSPAMD_NEURAL=0 + +# Amavis content filter (used for ClamAV & SpamAssassin) +# 0 => Disabled +# 1 => Enabled +ENABLE_AMAVIS=1 + +# -1/-2/-3 => Only show errors +# **0** => Show warnings +# 1/2 => Show default informational output +# 3/4/5 => log debug information (very verbose) +AMAVIS_LOGLEVEL=0 + +# This enables DNS block lists in Postscreen. +# Note: Emails will be rejected, if they don't pass the block list checks! +# **0** => DNS block lists are disabled +# 1 => DNS block lists are enabled +ENABLE_DNSBL=0 + +# If you enable Fail2Ban, don't forget to add the following lines to your `compose.yaml`: +# cap_add: +# - NET_ADMIN +# Otherwise, `nftables` won't be able to ban IPs. +ENABLE_FAIL2BAN=0 + +# Fail2Ban blocktype +# drop => drop packet (send NO reply) +# reject => reject packet (send ICMP unreachable) +FAIL2BAN_BLOCKTYPE=drop + +# 1 => Enables Managesieve on port 4190 +# empty => disables Managesieve +ENABLE_MANAGESIEVE= + +# **enforce** => Allow other tests to complete. Reject attempts to deliver mail with a 550 SMTP reply, and log the helo/sender/recipient information. Repeat this test the next time the client connects. +# drop => Drop the connection immediately with a 521 SMTP reply. Repeat this test the next time the client connects. +# ignore => Ignore the failure of this test. Allow other tests to complete. Repeat this test the next time the client connects. This option is useful for testing and collecting statistics without blocking mail. +POSTSCREEN_ACTION=enforce + +# empty => all daemons start +# 1 => only launch postfix smtp +SMTP_ONLY= + +# Please read [the SSL page in the documentation](https://docker-mailserver.github.io/docker-mailserver/latest/config/security/ssl) for more information. +# +# empty => SSL disabled +# letsencrypt => Enables Let's Encrypt certificates +# custom => Enables custom certificates +# manual => Let's you manually specify locations of your SSL certificates for non-standard cases +# self-signed => Enables self-signed certificates +SSL_TYPE=manual + +# These are only supported with `SSL_TYPE=manual`. +# Provide the path to your cert and key files that you've mounted access to within the container. +SSL_CERT_PATH=/etc/caddy/certificates/acme-v02.api.letsencrypt.org-directory/mail.prime8.dev/mail.prime8.dev.crt +SSL_KEY_PATH=/etc/caddy/certificates/acme-v02.api.letsencrypt.org-directory/mail.prime8.dev/mail.prime8.dev.key +# Optional: A 2nd certificate can be supported as fallback (dual cert support), eg ECDSA with an RSA fallback. +# Useful for additional compatibility with older MTA and MUA (eg pre-2015). +SSL_ALT_CERT_PATH= +SSL_ALT_KEY_PATH= + +# Set how many days a virusmail will stay on the server before being deleted +# empty => 7 days +VIRUSMAILS_DELETE_DELAY= + +# Configure Postfix `virtual_transport` to deliver mail to a different LMTP client (default is a dovecot socket). +# Provide any valid URI. Examples: +# +# empty => `lmtp:unix:/var/run/dovecot/lmtp` (default, configured in Postfix main.cf) +# `lmtp:unix:private/dovecot-lmtp` (use socket) +# `lmtps:inet:<host>:<port>` (secure lmtp with starttls) +# `lmtp:<kopano-host>:2003` (use kopano as mailstore) +POSTFIX_DAGENT= + +# Set the mailbox size limit for all users. If set to zero, the size will be unlimited (default). Size is in bytes. +# +# empty => 0 +POSTFIX_MAILBOX_SIZE_LIMIT= + +# See https://docker-mailserver.github.io/docker-mailserver/edge/config/user-management/accounts/#notes +# 0 => Dovecot quota is disabled +# 1 => Dovecot quota is enabled +ENABLE_QUOTAS=1 + +# Set the message size limit for all users. If set to zero, the size will be unlimited (not recommended!). Size is in bytes. +# +# empty => 10240000 (~10 MB) +POSTFIX_MESSAGE_SIZE_LIMIT= + +# Mails larger than this limit won't be scanned. +# ClamAV must be enabled (ENABLE_CLAMAV=1) for this. +# +# empty => 25M (25 MB) +CLAMAV_MESSAGE_SIZE_LIMIT= + +# Enables regular pflogsumm mail reports. +# This is a new option. The old REPORT options are still supported for backwards compatibility. If this is not set and reports are enabled with the old options, logrotate will be used. +# +# not set => No report +# daily_cron => Daily report for the previous day +# logrotate => Full report based on the mail log when it is rotated +PFLOGSUMM_TRIGGER= + +# Recipient address for pflogsumm reports. +# +# not set => Use REPORT_RECIPIENT or POSTMASTER_ADDRESS +# => Specify the recipient address(es) +PFLOGSUMM_RECIPIENT= + +# Sender address (`FROM`) for pflogsumm reports if pflogsumm reports are enabled. +# +# not set => Use REPORT_SENDER +# => Specify the sender address +PFLOGSUMM_SENDER= + +# Interval for logwatch report. +# +# none => No report is generated +# daily => Send a daily report +# weekly => Send a report every week +LOGWATCH_INTERVAL= + +# Recipient address for logwatch reports if they are enabled. +# +# not set => Use REPORT_RECIPIENT or POSTMASTER_ADDRESS +# => Specify the recipient address(es) +LOGWATCH_RECIPIENT= + +# Sender address (`FROM`) for logwatch reports if logwatch reports are enabled. +# +# not set => Use REPORT_SENDER +# => Specify the sender address +LOGWATCH_SENDER= + +# Defines who receives reports if they are enabled. +# **empty** => ${POSTMASTER_ADDRESS} +# => Specify the recipient address +REPORT_RECIPIENT= + +# Defines who sends reports if they are enabled. +# **empty** => mailserver-report@${DOMAINNAME} +# => Specify the sender address +REPORT_SENDER= + +# Changes the interval in which log files are rotated +# **weekly** => Rotate log files weekly +# daily => Rotate log files daily +# monthly => Rotate log files monthly +# +# Note: This Variable actually controls logrotate inside the container +# and rotates the log files depending on this setting. The main log output is +# still available in its entirety via `docker logs mail` (Or your +# respective container name). If you want to control logrotation for +# the Docker-generated logfile see: +# https://docs.docker.com/config/containers/logging/configure/ +# +# Note: This variable can also determine the interval for Postfix's log summary reports, see [`PFLOGSUMM_TRIGGER`](#pflogsumm_trigger). +LOGROTATE_INTERVAL=weekly + +# Defines how many log files are kept by logrorate +LOGROTATE_COUNT=4 + + +# If enabled, employs `reject_unknown_client_hostname` to sender restrictions in Postfix's configuration. +# +# - **0** => Disabled +# - 1 => Enabled +POSTFIX_REJECT_UNKNOWN_CLIENT_HOSTNAME=0 + +# Choose TCP/IP protocols for postfix to use +# **all** => All possible protocols. +# ipv4 => Use only IPv4 traffic. Most likely you want this behind Docker. +# ipv6 => Use only IPv6 traffic. +# +# Note: More details at http://www.postfix.org/postconf.5.html#inet_protocols +POSTFIX_INET_PROTOCOLS=all + +# Enables MTA-STS support for outbound mail. +# More details: https://docker-mailserver.github.io/docker-mailserver/v13.3/config/best-practices/mta-sts/ +# - **0** ==> MTA-STS disabled +# - 1 => MTA-STS enabled +ENABLE_MTA_STS=0 + +# Choose TCP/IP protocols for dovecot to use +# **all** => Listen on all interfaces +# ipv4 => Listen only on IPv4 interfaces. Most likely you want this behind Docker. +# ipv6 => Listen only on IPv6 interfaces. +# +# Note: More information at https://dovecot.org/doc/dovecot-example.conf +DOVECOT_INET_PROTOCOLS=all + +# ----------------------------------------------- +# --- SpamAssassin Section ---------------------- +# ----------------------------------------------- + +ENABLE_SPAMASSASSIN=0 + +# KAM is a 3rd party SpamAssassin ruleset, provided by the McGrail Foundation. +# If SpamAssassin is enabled, KAM can be used in addition to the default ruleset. +# - **0** => KAM disabled +# - 1 => KAM enabled +# +# Note: only has an effect if `ENABLE_SPAMASSASSIN=1` +ENABLE_SPAMASSASSIN_KAM=0 + +# deliver spam messages to the inbox (tagged using SPAM_SUBJECT) +SPAMASSASSIN_SPAM_TO_INBOX=1 + +# spam messages will be moved in the Junk folder (SPAMASSASSIN_SPAM_TO_INBOX=1 required) +MOVE_SPAM_TO_JUNK=1 + +# spam messages will be marked as read +MARK_SPAM_AS_READ=0 + +# add 'spam info' headers at, or above this level +SA_TAG=2.0 + +# add 'spam detected' headers at, or above this level +SA_TAG2=6.31 + +# triggers spam evasive actions +SA_KILL=10.0 + +# ----------------------------------------------- +# --- Fetchmail Section ------------------------- +# ----------------------------------------------- + +ENABLE_FETCHMAIL=0 + +# The interval to fetch mail in seconds +FETCHMAIL_POLL=300 +# Use multiple fetchmail instances (1 per poll entry in fetchmail.cf) +# Supports multiple IMAP IDLE connections when a server is used across multiple poll entries +# https://otremba.net/wiki/Fetchmail_(Debian)#Immediate_Download_via_IMAP_IDLE +FETCHMAIL_PARALLEL=0 + +# Enable or disable `getmail`. +# +# - **0** => Disabled +# - 1 => Enabled +ENABLE_GETMAIL=0 + +# The number of minutes for the interval. Min: 1; Max: 30. +GETMAIL_POLL=5 + +# ----------------------------------------------- +# --- OAUTH2 Section ---------------------------- +# ----------------------------------------------- + +# empty => OAUTH2 authentication is disabled +# 1 => OAUTH2 authentication is enabled +ENABLE_OAUTH2= + +# Specify the user info endpoint URL of the oauth2 provider +# Example: https://oauth2.example.com/userinfo/ +OAUTH2_INTROSPECTION_URL= + +# ----------------------------------------------- +# --- LDAP Section ------------------------------ +# ----------------------------------------------- + +# A second container for the ldap service is necessary (i.e. https://hub.docker.com/r/bitnami/openldap/) + +# empty => no +# yes => LDAP over TLS enabled for Postfix +LDAP_START_TLS= + +# empty => mail.example.com +# Specify the `<dns-name>` / `<ip-address>` where the LDAP server is reachable via a URI like: `ldaps://mail.example.com`. +# Note: You must include the desired URI scheme (`ldap://`, `ldaps://`, `ldapi://`). +LDAP_SERVER_HOST= + +# empty => ou=people,dc=domain,dc=com +# => e.g. LDAP_SEARCH_BASE=dc=mydomain,dc=local +LDAP_SEARCH_BASE= + +# empty => cn=admin,dc=domain,dc=com +# => take a look at examples of SASL_LDAP_BIND_DN +LDAP_BIND_DN= + +# empty** => admin +# => Specify the password to bind against ldap +LDAP_BIND_PW= + +# e.g. `"(&(mail=%s)(mailEnabled=TRUE))"` +# => Specify how ldap should be asked for users +LDAP_QUERY_FILTER_USER= + +# e.g. `"(&(mailGroupMember=%s)(mailEnabled=TRUE))"` +# => Specify how ldap should be asked for groups +LDAP_QUERY_FILTER_GROUP= + +# e.g. `"(&(mailAlias=%s)(mailEnabled=TRUE))"` +# => Specify how ldap should be asked for aliases +LDAP_QUERY_FILTER_ALIAS= + +# e.g. `"(&(|(mail=*@%s)(mailalias=*@%s)(mailGroupMember=*@%s))(mailEnabled=TRUE))"` +# => Specify how ldap should be asked for domains +LDAP_QUERY_FILTER_DOMAIN= + +# ----------------------------------------------- +# --- Dovecot Section --------------------------- +# ----------------------------------------------- + +# empty => no +# yes => LDAP over TLS enabled for Dovecot +DOVECOT_TLS= + +# e.g. `"(&(objectClass=PostfixBookMailAccount)(uniqueIdentifier=%n))"` +DOVECOT_USER_FILTER= + +# e.g. `"(&(objectClass=PostfixBookMailAccount)(uniqueIdentifier=%n))"` +DOVECOT_PASS_FILTER= + +# Define the mailbox format to be used +# default is maildir, supported values are: sdbox, mdbox, maildir +DOVECOT_MAILBOX_FORMAT=maildir + +# empty => no +# yes => Allow bind authentication for LDAP +# https://wiki.dovecot.org/AuthDatabase/LDAP/AuthBinds +DOVECOT_AUTH_BIND= + +# ----------------------------------------------- +# --- Postgrey Section -------------------------- +# ----------------------------------------------- + +ENABLE_POSTGREY=0 +# greylist for N seconds +POSTGREY_DELAY=300 +# delete entries older than N days since the last time that they have been seen +POSTGREY_MAX_AGE=35 +# response when a mail is greylisted +POSTGREY_TEXT="Delayed by Postgrey" +# whitelist host after N successful deliveries (N=0 to disable whitelisting) +POSTGREY_AUTO_WHITELIST_CLIENTS=5 + +# ----------------------------------------------- +# --- SASL Section ------------------------------ +# ----------------------------------------------- + +ENABLE_SASLAUTHD=0 + +# empty => pam +# `ldap` => authenticate against ldap server +# `shadow` => authenticate against local user db +# `mysql` => authenticate against mysql db +# `rimap` => authenticate against imap server +# Note: can be a list of mechanisms like pam ldap shadow +SASLAUTHD_MECHANISMS= + +# empty => None +# e.g. with SASLAUTHD_MECHANISMS rimap you need to specify the ip-address/servername of the imap server ==> xxx.xxx.xxx.xxx +SASLAUTHD_MECH_OPTIONS= + +# empty => Use value of LDAP_SERVER_HOST +# Note: You must include the desired URI scheme (`ldap://`, `ldaps://`, `ldapi://`). +SASLAUTHD_LDAP_SERVER= + +# empty => Use value of LDAP_BIND_DN +# specify an object with privileges to search the directory tree +# e.g. active directory: SASLAUTHD_LDAP_BIND_DN=cn=Administrator,cn=Users,dc=mydomain,dc=net +# e.g. openldap: SASLAUTHD_LDAP_BIND_DN=cn=admin,dc=mydomain,dc=net +SASLAUTHD_LDAP_BIND_DN= + +# empty => Use value of LDAP_BIND_PW +SASLAUTHD_LDAP_PASSWORD= + +# empty => Use value of LDAP_SEARCH_BASE +# specify the search base +SASLAUTHD_LDAP_SEARCH_BASE= + +# empty => default filter `(&(uniqueIdentifier=%u)(mailEnabled=TRUE))` +# e.g. for active directory: `(&(sAMAccountName=%U)(objectClass=person))` +# e.g. for openldap: `(&(uid=%U)(objectClass=person))` +SASLAUTHD_LDAP_FILTER= + +# empty => no +# yes => LDAP over TLS enabled for SASL +# If set to yes, the protocol in SASLAUTHD_LDAP_SERVER must be ldap:// or missing. +SASLAUTHD_LDAP_START_TLS= + +# empty => no +# yes => Require and verify server certificate +# If yes you must/could specify SASLAUTHD_LDAP_TLS_CACERT_FILE or SASLAUTHD_LDAP_TLS_CACERT_DIR. +SASLAUTHD_LDAP_TLS_CHECK_PEER= + +# File containing CA (Certificate Authority) certificate(s). +# empty => Nothing is added to the configuration +# Any value => Fills the `ldap_tls_cacert_file` option +SASLAUTHD_LDAP_TLS_CACERT_FILE= + +# Path to directory with CA (Certificate Authority) certificates. +# empty => Nothing is added to the configuration +# Any value => Fills the `ldap_tls_cacert_dir` option +SASLAUTHD_LDAP_TLS_CACERT_DIR= + +# Specify what password attribute to use for password verification. +# empty => Nothing is added to the configuration but the documentation says it is `userPassword` by default. +# Any value => Fills the `ldap_password_attr` option +SASLAUTHD_LDAP_PASSWORD_ATTR= + +# empty => `bind` will be used as a default value +# `fastbind` => The fastbind method is used +# `custom` => The custom method uses userPassword attribute to verify the password +SASLAUTHD_LDAP_AUTH_METHOD= + +# Specify the authentication mechanism for SASL bind +# empty => Nothing is added to the configuration +# Any value => Fills the `ldap_mech` option +SASLAUTHD_LDAP_MECH= + +# ----------------------------------------------- +# --- SRS Section ------------------------------- +# ----------------------------------------------- + +# envelope_sender => Rewrite only envelope sender address (default) +# header_sender => Rewrite only header sender (not recommended) +# envelope_sender,header_sender => Rewrite both senders +# An email has an "envelope" sender (indicating the sending server) and a +# "header" sender (indicating who sent it). More strict SPF policies may require +# you to replace both instead of just the envelope sender. +SRS_SENDER_CLASSES=envelope_sender + +# empty => Envelope sender will be rewritten for all domains +# provide comma separated list of domains to exclude from rewriting +SRS_EXCLUDE_DOMAINS= + +# empty => generated when the image is built +# provide a secret to use in base64 +# you may specify multiple keys, comma separated. the first one is used for +# signing and the remaining will be used for verification. this is how you +# rotate and expire keys +SRS_SECRET= + +# ----------------------------------------------- +# --- Default Relay Host Section ---------------- +# ----------------------------------------------- + +# Setup relaying all mail through a default relay host +# +# Set a default host to relay all mail through (optionally include a port) +# Example: [mail.example.com]:587 +DEFAULT_RELAY_HOST= + +# ----------------------------------------------- +# --- Multi-Domain Relay Section ---------------- +# ----------------------------------------------- + +# Setup relaying for multiple domains based on the domain name of the sender +# optionally uses usernames and passwords in postfix-sasl-password.cf and relay host mappings in postfix-relaymap.cf +# +# Set a default host to relay mail through +# Example: mail.example.com +RELAY_HOST= + +# empty => 25 +# default port to relay mail +RELAY_PORT=25 + +# ----------------------------------------------- +# --- Relay Host Credentials Section ------------ +# ----------------------------------------------- + +# Configure a relay user and password to use with RELAY_HOST / DEFAULT_RELAY_HOST + +# empty => no default +RELAY_USER= + +# empty => no default +RELAY_PASSWORD= diff --git a/start.sh b/start.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +docker-compose up --build -d web +echo "Built" +echo "Waiting for changes..." + +trap "docker compose down web; exit" INT + +inotifywait -m -r -e modify ./web --exclude "\.git" | +while read -r directory events filename; do + docker compose up --build -d web + echo "Rebuilt" +done diff --git a/web/.gitignore b/web/.gitignore @@ -0,0 +1,2 @@ +/data/ +/config/ diff --git a/web/config.toml b/web/config.toml @@ -0,0 +1,7 @@ +base_url = "https://prime8.dev" + +[extra] +tabs = [ + { name = "home", url = "/" }, + { name = "projects", url = "/projects" }, +] diff --git a/web/content/projects.md b/web/content/projects.md @@ -0,0 +1,14 @@ ++++ +template = "projects.html" ++++ + +<div class="row-fluid"> + <div class="span4 w-100"> + <h2>CSC Website</h2> + <p>I made a website for Computer Science Club(CSC) at Prospect High School during a mini-hackathon. The website displays the date and time of the next meeting, recent annocements, members, and any projects those members want to share.</p> + </div> + <div class="span4 w-100"> + <h2>Veterans Donation Website</h2> + <p>For my first ever hackathon, I decided to help out veterans through donations. It interacts with Venmo's APIs for users to donate.</p> + </div> +</div> diff --git a/web/static/css/bootstrap-responsive.css b/web/static/css/bootstrap-responsive.css @@ -0,0 +1,1127 @@ +/*! + * Bootstrap Responsive v2.3.1 + * + * Copyright 2012 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 @twitter by @mdo and @fat. + */ + +.clearfix { + *zoom: 1; +} + +.clearfix:before, +.clearfix:after { + display: table; + line-height: 0; + content: ""; +} + +.clearfix:after { + clear: both; +} + +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.input-block-level { + display: block; + width: 100%; + min-height: 20px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +@-ms-viewport { + width: device-width; +} + +.hidden { + display: none; + visibility: hidden; +} + +.visible-phone { + display: none !important; +} + +.visible-tablet { + display: none !important; +} + +.hidden-desktop { + display: none !important; +} + +.visible-desktop { + display: inherit !important; +} + +@media (min-width: 768px) and (max-width: 979px) { + .hidden-desktop { + display: inherit !important; + } + .visible-desktop { + display: none !important ; + } + .visible-tablet { + display: inherit !important; + } + .hidden-tablet { + display: none !important; + } +} + +@media (max-width: 767px) { + .hidden-desktop { + display: inherit !important; + } + .visible-desktop { + display: none !important; + } + .visible-phone { + display: inherit !important; + } + .hidden-phone { + display: none !important; + } +} + +.visible-print { + display: none !important; +} + +@media print { + .visible-print { + display: inherit !important; + } + .hidden-print { + display: none !important; + } +} + +@media (min-width: 1200px) { + .row { + margin-left: -24px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + line-height: 0; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + min-height: 1px; + margin-left: 16px; + } + .container, + .navbar-static-top .container, + .navbar-fixed-top .container, + .navbar-fixed-bottom .container { + width: 1128px; + } + .span12 { + width: 1128px; + } + .span11 { + width: 1032px; + } + .span10 { + width: 936px; + } + .span9 { + width: 840px; + } + .span8 { + width: 744px; + } + .span7 { + width: 648px; + } + .span6 { + width: 552px; + } + .span5 { + width: 456px; + } + .span4 { + width: 360px; + } + .span3 { + width: 264px; + } + .span2 { + width: 168px; + } + .span1 { + width: 72px; + } + .offset12 { + margin-left: 1176px; + } + .offset11 { + margin-left: 1080px; + } + .offset10 { + margin-left: 984px; + } + .offset9 { + margin-left: 888px; + } + .offset8 { + margin-left: 792px; + } + .offset7 { + margin-left: 696px; + } + .offset6 { + margin-left: 600px; + } + .offset5 { + margin-left: 504px; + } + .offset4 { + margin-left: 408px; + } + .offset3 { + margin-left: 312px; + } + .offset2 { + margin-left: 216px; + } + .offset1 { + margin-left: 120px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, + .row-fluid:after { + display: table; + line-height: 0; + content: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 20px; + margin-left: 2.127659574468085%; + *margin-left: 2.07469347277317%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 2.127659574468085%; + } + .row-fluid .span12 { + width: 100%; + *width: 99.94703389830508%; + } + .row-fluid .span11 { + width: 91.48936170212765%; + *width: 91.43639560043273%; + } + .row-fluid .span10 { + width: 82.97872340425532%; + *width: 82.9257573025604%; + } + .row-fluid .span9 { + width: 74.46808510638297%; + *width: 74.41511900468805%; + } + .row-fluid .span8 { + width: 65.95744680851064%; + *width: 65.90448070681572%; + } + .row-fluid .span7 { + width: 57.44680851063829%; + *width: 57.39384240894338%; + } + .row-fluid .span6 { + width: 48.93617021276595%; + *width: 48.88320411107104%; + } + .row-fluid .span5 { + width: 40.42553191489362%; + *width: 40.372565813198705%; + } + .row-fluid .span4 { + width: 31.914893617021278%; + *width: 31.86192751532636%; + } + .row-fluid .span3 { + width: 23.404255319148934%; + *width: 23.351289217454017%; + } + .row-fluid .span2 { + width: 14.893617021276595%; + *width: 14.84065091958168%; + } + .row-fluid .span1 { + width: 6.382978723404255%; + *width: 6.33001262170934%; + } + .row-fluid .offset12 { + margin-left: 104.25531914893617%; + *margin-left: 104.14938694554633%; + } + .row-fluid .offset12:first-child { + margin-left: 102.12765957446808%; + *margin-left: 102.02172737107824%; + } + .row-fluid .offset11 { + margin-left: 95.74468085106382%; + *margin-left: 95.63874864767398%; + } + .row-fluid .offset11:first-child { + margin-left: 93.61702127659574%; + *margin-left: 93.5110890732059%; + } + .row-fluid .offset10 { + margin-left: 87.23404255319149%; + *margin-left: 87.12811034980164%; + } + .row-fluid .offset10:first-child { + margin-left: 85.1063829787234%; + *margin-left: 85.00045077533356%; + } + .row-fluid .offset9 { + margin-left: 78.72340425531914%; + *margin-left: 78.6174720519293%; + } + .row-fluid .offset9:first-child { + margin-left: 76.59574468085106%; + *margin-left: 76.48981247746121%; + } + .row-fluid .offset8 { + margin-left: 70.2127659574468%; + *margin-left: 70.10683375405696%; + } + .row-fluid .offset8:first-child { + margin-left: 68.08510638297872%; + *margin-left: 67.97917417958888%; + } + .row-fluid .offset7 { + margin-left: 61.70212765957446%; + *margin-left: 61.59619545618464%; + } + .row-fluid .offset7:first-child { + margin-left: 59.574468085106375%; + *margin-left: 59.46853588171655%; + } + .row-fluid .offset6 { + margin-left: 53.191489361702125%; + *margin-left: 53.08555715831229%; + } + .row-fluid .offset6:first-child { + margin-left: 51.063829787234035%; + *margin-left: 50.95789758384421%; + } + .row-fluid .offset5 { + margin-left: 44.68085106382979%; + *margin-left: 44.57491886043996%; + } + .row-fluid .offset5:first-child { + margin-left: 42.5531914893617%; + *margin-left: 42.447259285971874%; + } + .row-fluid .offset4 { + margin-left: 36.170212765957444%; + *margin-left: 36.06428056256762%; + } + .row-fluid .offset4:first-child { + margin-left: 34.04255319148936%; + *margin-left: 33.936620988099534%; + } + .row-fluid .offset3 { + margin-left: 27.659574468085104%; + *margin-left: 27.55364226469527%; + } + .row-fluid .offset3:first-child { + margin-left: 25.53191489361702%; + *margin-left: 25.425982690227183%; + } + .row-fluid .offset2 { + margin-left: 19.148936170212764%; + *margin-left: 19.043003966822933%; + } + .row-fluid .offset2:first-child { + margin-left: 17.02127659574468%; + *margin-left: 16.91534439235485%; + } + .row-fluid .offset1 { + margin-left: 10.638297872340425%; + *margin-left: 10.532365668950595%; + } + .row-fluid .offset1:first-child { + margin-left: 8.51063829787234%; + *margin-left: 8.40470609448251%; + } + input, + textarea, + .uneditable-input { + margin-left: 0; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 24px; + } + input.span12, + textarea.span12, + .uneditable-input.span12 { + width: 1114px; + } + input.span11, + textarea.span11, + .uneditable-input.span11 { + width: 1018px; + } + input.span10, + textarea.span10, + .uneditable-input.span10 { + width: 922px; + } + input.span9, + textarea.span9, + .uneditable-input.span9 { + width: 826px; + } + input.span8, + textarea.span8, + .uneditable-input.span8 { + width: 730px; + } + input.span7, + textarea.span7, + .uneditable-input.span7 { + width: 634px; + } + input.span6, + textarea.span6, + .uneditable-input.span6 { + width: 538px; + } + input.span5, + textarea.span5, + .uneditable-input.span5 { + width: 442px; + } + input.span4, + textarea.span4, + .uneditable-input.span4 { + width: 346px; + } + input.span3, + textarea.span3, + .uneditable-input.span3 { + width: 250px; + } + input.span2, + textarea.span2, + .uneditable-input.span2 { + width: 154px; + } + input.span1, + textarea.span1, + .uneditable-input.span1 { + width: 58px; + } + .thumbnails { + margin-left: -24px; + } + .thumbnails > li { + margin-left: 24px; + } + .row-fluid .thumbnails { + margin-left: 0; + } +} + +@media (min-width: 768px) and (max-width: 979px) { + .row { + margin-left: -16px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + line-height: 0; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + min-height: 1px; + margin-left: 16px; + } + .container, + .navbar-static-top .container, + .navbar-fixed-top .container, + .navbar-fixed-bottom .container { + width: 656px; + } + .span12 { + width: 656px; + } + .span11 { + width: 600px; + } + .span10 { + width: 544px; + } + .span9 { + width: 488px; + } + .span8 { + width: 432px; + } + .span7 { + width: 376px; + } + .span6 { + width: 320px; + } + .span5 { + width: 264px; + } + .span4 { + width: 208px; + } + .span3 { + width: 152px; + } + .span2 { + width: 96px; + } + .span1 { + width: 40px; + } + .offset12 { + margin-left: 688px; + } + .offset11 { + margin-left: 632px; + } + .offset10 { + margin-left: 576px; + } + .offset9 { + margin-left: 520px; + } + .offset8 { + margin-left: 464px; + } + .offset7 { + margin-left: 408px; + } + .offset6 { + margin-left: 352px; + } + .offset5 { + margin-left: 296px; + } + .offset4 { + margin-left: 240px; + } + .offset3 { + margin-left: 184px; + } + .offset2 { + margin-left: 128px; + } + .offset1 { + margin-left: 72px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, + .row-fluid:after { + display: table; + line-height: 0; + content: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 20px; + margin-left: 2.4390243902439024%; + *margin-left: 2.386058288548987%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 2.4390243902439024%; + } + .row-fluid .span12 { + width: 100%; + *width: 99.94703389830508%; + } + .row-fluid .span11 { + width: 91.46341463414635%; + *width: 91.41044853245143%; + } + .row-fluid .span10 { + width: 82.92682926829268%; + *width: 82.87386316659776%; + } + .row-fluid .span9 { + width: 74.39024390243902%; + *width: 74.3372778007441%; + } + .row-fluid .span8 { + width: 65.85365853658537%; + *width: 65.80069243489045%; + } + .row-fluid .span7 { + width: 57.31707317073171%; + *width: 57.2641070690368%; + } + .row-fluid .span6 { + width: 48.78048780487805%; + *width: 48.727521703183136%; + } + .row-fluid .span5 { + width: 40.24390243902439%; + *width: 40.190936337329475%; + } + .row-fluid .span4 { + width: 31.70731707317073%; + *width: 31.654350971475814%; + } + .row-fluid .span3 { + width: 23.170731707317074%; + *width: 23.117765605622157%; + } + .row-fluid .span2 { + width: 14.634146341463415%; + *width: 14.5811802397685%; + } + .row-fluid .span1 { + width: 6.097560975609756%; + *width: 6.044594873914841%; + } + .row-fluid .offset12 { + margin-left: 104.8780487804878%; + *margin-left: 104.77211657709796%; + } + .row-fluid .offset12:first-child { + margin-left: 102.4390243902439%; + *margin-left: 102.33309218685406%; + } + .row-fluid .offset11 { + margin-left: 96.34146341463415%; + *margin-left: 96.23553121124431%; + } + .row-fluid .offset11:first-child { + margin-left: 93.90243902439025%; + *margin-left: 93.7965068210004%; + } + .row-fluid .offset10 { + margin-left: 87.80487804878048%; + *margin-left: 87.69894584539064%; + } + .row-fluid .offset10:first-child { + margin-left: 85.36585365853658%; + *margin-left: 85.25992145514674%; + } + .row-fluid .offset9 { + margin-left: 79.26829268292683%; + *margin-left: 79.16236047953699%; + } + .row-fluid .offset9:first-child { + margin-left: 76.82926829268293%; + *margin-left: 76.72333608929308%; + } + .row-fluid .offset8 { + margin-left: 70.73170731707317%; + *margin-left: 70.62577511368333%; + } + .row-fluid .offset8:first-child { + margin-left: 68.29268292682927%; + *margin-left: 68.18675072343943%; + } + .row-fluid .offset7 { + margin-left: 62.19512195121951%; + *margin-left: 62.089189747829685%; + } + .row-fluid .offset7:first-child { + margin-left: 59.75609756097561%; + *margin-left: 59.650165357585784%; + } + .row-fluid .offset6 { + margin-left: 53.65853658536585%; + *margin-left: 53.552604381976025%; + } + .row-fluid .offset6:first-child { + margin-left: 51.21951219512195%; + *margin-left: 51.113579991732124%; + } + .row-fluid .offset5 { + margin-left: 45.12195121951219%; + *margin-left: 45.016019016122364%; + } + .row-fluid .offset5:first-child { + margin-left: 42.68292682926829%; + *margin-left: 42.57699462587846%; + } + .row-fluid .offset4 { + margin-left: 36.58536585365854%; + *margin-left: 36.4794336502687%; + } + .row-fluid .offset4:first-child { + margin-left: 34.146341463414636%; + *margin-left: 34.0404092600248%; + } + .row-fluid .offset3 { + margin-left: 28.04878048780488%; + *margin-left: 27.942848284415046%; + } + .row-fluid .offset3:first-child { + margin-left: 25.609756097560975%; + *margin-left: 25.50382389417114%; + } + .row-fluid .offset2 { + margin-left: 19.51219512195122%; + *margin-left: 19.40626291856139%; + } + .row-fluid .offset2:first-child { + margin-left: 17.073170731707318%; + *margin-left: 16.967238528317484%; + } + .row-fluid .offset1 { + margin-left: 10.975609756097562%; + *margin-left: 10.86967755270773%; + } + .row-fluid .offset1:first-child { + margin-left: 8.536585365853659%; + *margin-left: 8.430653162463829%; + } + input, + textarea, + .uneditable-input { + margin-left: 0; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 16px; + } + input.span12, + textarea.span12, + .uneditable-input.span12 { + width: 642px; + } + input.span11, + textarea.span11, + .uneditable-input.span11 { + width: 586px; + } + input.span10, + textarea.span10, + .uneditable-input.span10 { + width: 530px; + } + input.span9, + textarea.span9, + .uneditable-input.span9 { + width: 474px; + } + input.span8, + textarea.span8, + .uneditable-input.span8 { + width: 418px; + } + input.span7, + textarea.span7, + .uneditable-input.span7 { + width: 362px; + } + input.span6, + textarea.span6, + .uneditable-input.span6 { + width: 306px; + } + input.span5, + textarea.span5, + .uneditable-input.span5 { + width: 250px; + } + input.span4, + textarea.span4, + .uneditable-input.span4 { + width: 194px; + } + input.span3, + textarea.span3, + .uneditable-input.span3 { + width: 138px; + } + input.span2, + textarea.span2, + .uneditable-input.span2 { + width: 82px; + } + input.span1, + textarea.span1, + .uneditable-input.span1 { + width: 26px; + } +} + +@media (max-width: 767px) { + body { + padding-right: 18px; + padding-left: 18px; + } + .navbar-fixed-top, + .navbar-fixed-bottom, + .navbar-static-top { + margin-right: -10px; + margin-left: -10px; + } + .container-fluid { + padding: 0; + } + .dl-horizontal dt { + float: none; + width: auto; + clear: none; + text-align: left; + } + .dl-horizontal dd { + margin-left: 0; + } + .container { + width: auto; + } + .row-fluid { + width: 100%; + } + .row, + .thumbnails { + margin-left: 0; + } + .thumbnails > li { + float: none; + margin-left: 0; + } + [class*="span"], + .uneditable-input[class*="span"], + .row-fluid [class*="span"] { + display: block; + float: none; + width: 100%; + margin-left: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .span12, + .row-fluid .span12 { + width: 100%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="offset"]:first-child { + margin-left: 0; + } + .input-large, + .input-xlarge, + .input-xxlarge, + input[class*="span"], + select[class*="span"], + textarea[class*="span"], + .uneditable-input { + display: block; + width: 100%; + min-height: 20px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .input-prepend input, + .input-append input, + .input-prepend input[class*="span"], + .input-append input[class*="span"] { + display: inline-block; + width: auto; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 0; + } + .modal { + position: fixed; + top: 20px; + right: 20px; + left: 20px; + width: auto; + margin: 0; + } + .modal.fade { + top: -100px; + } + .modal.fade.in { + top: 18px; + } +} + +@media (max-width: 480px) { + .nav-collapse { + -webkit-transform: translate3d(0, 0, 0); + } + .page-header h1 small { + display: block; + line-height: 20px; + } + input[type="checkbox"], + input[type="radio"] { + border: 1px solid #ccc; + } + .form-horizontal .control-label { + float: none; + width: auto; + padding-top: 0; + text-align: left; + } + .form-horizontal .controls { + margin-left: 0; + } + .form-horizontal .control-list { + padding-top: 0; + } + .form-horizontal .form-actions { + padding-right: 10px; + padding-left: 10px; + } + .media .pull-left, + .media .pull-right { + display: block; + float: none; + margin-bottom: 20px; + } + .media-object { + margin-right: 0; + margin-left: 0; + } + .modal { + top: 9px; + right: 4px; + left: 4px; + } + .modal-header .close { + padding: 10px; + margin: -10px; + } + .carousel-caption { + position: static; + } +} + +@media (max-width: 979px) { + body { + padding-top: 0; + } + .navbar-fixed-top, + .navbar-fixed-bottom { + position: static; + } + .navbar-fixed-top { + margin-bottom: 20px; + } + .navbar-fixed-bottom { + margin-top: 20px; + } + .navbar-fixed-top .navbar-inner, + .navbar-fixed-bottom .navbar-inner { + padding: 0; + } + .navbar .container { + width: auto; + padding: 0; + } + .navbar .brand { + padding: 10px 10px; + margin: 0; + } + .nav-collapse { + clear: both; + } + .nav-collapse .nav { + float: none; + margin: 0 0 10px; + } + .nav-collapse .nav > li { + float: none; + } + .nav-collapse .nav > li > a { + margin-bottom: 0; + } + .nav-collapse .nav > .divider-vertical { + display: none; + } + .nav-collapse .nav .nav-header { + color: #000000; + text-shadow: none; + } + .nav-collapse .nav > li > a, + .nav-collapse .dropdown-menu a { + padding: 0 10px; + color: #000000; + } + .nav-collapse .nav > li.active > a { + color: #bbbbbb; + } + .nav-collapse .btn { + padding: 10px 10px; + font-weight: normal; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + } + .nav-collapse .dropdown-menu li + li a { + margin-bottom: 0; + } + .nav-collapse .nav > li > a:hover, + .nav-collapse .nav > li > a:focus, + .nav-collapse .dropdown-menu a:hover, + .nav-collapse .dropdown-menu a:focus { + color: #bbbbbb; + background-color: #bbbbbb; + } + .navbar-inverse .nav-collapse .nav > li > a, + .navbar-inverse .nav-collapse .dropdown-menu a { + color: #000000; + } + .navbar-inverse .nav-collapse .nav > li > a:hover, + .navbar-inverse .nav-collapse .nav > li > a:focus, + .navbar-inverse .nav-collapse .dropdown-menu a:hover, + .navbar-inverse .nav-collapse .dropdown-menu a:focus { + color: #bbbbbb; + background-color: #000000; + } + .nav-collapse.in .btn-group { + padding: 0; + margin-top: 5px; + } + .nav-collapse .dropdown-menu { + position: static; + top: auto; + left: auto; + display: none; + float: none; + max-width: none; + padding: 0; + margin: 0; + background-color: transparent; + border: none; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + } + .nav-collapse .open > .dropdown-menu { + display: block; + } + .nav-collapse .dropdown-menu:before, + .nav-collapse .dropdown-menu:after { + display: none; + } + .nav-collapse .dropdown-menu .divider { + display: none; + } + .nav-collapse .nav > li > .dropdown-menu:before, + .nav-collapse .nav > li > .dropdown-menu:after { + display: none; + } + .nav-collapse .navbar-form, + .nav-collapse .navbar-search { + float: none; + padding: 10px 10px; + margin: 10px 0; + border-top: 1px solid #bbbbbb; + border-bottom: 1px solid #bbbbbb; + } + .navbar-inverse .nav-collapse .navbar-form, + .navbar-inverse .nav-collapse .navbar-search { + border-top-color: #000000; + border-bottom-color: #000000; + } + .navbar .nav-collapse .nav.pull-right { + float: none; + margin-left: 0; + } + .nav-collapse, + .nav-collapse.collapse { + height: 0; + overflow: hidden; + } + .nav-collapse > ul.nav > li.active > a { + color: #bbbbbb; + } + .navbar .btn-navbar { + display: block; + color: #ffffff; + background: #555555; + -webkit-box-shadow: 0 0 0; + -moz-box-shadow: 0 0 0; + box-shadow: 0 0 0; + } + .navbar .btn-navbar:after { + content: ""; + } + .navbar .btn-navbar:before { + content: "▼"; + } + .navbar .btn-navbar.active, + .navbar .btn-navbar:active { + margin-bottom: 20px; + color: #ffffff; + background: #000000; + outline: 0; + } + .navbar-static .navbar-inner { + padding-right: 10px; + padding-left: 10px; + } +} + +@media (min-width: 980px) { + .nav-collapse.collapse { + height: auto !important; + overflow: visible !important; + } +} diff --git a/web/static/css/bootstrap-responsive.min.css b/web/static/css/bootstrap-responsive.min.css @@ -0,0 +1,1106 @@ +/*! + * Bootstrap Responsive v2.3.1 + * + * Copyright 2012 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 @twitter by @mdo and @fat. + */ +.clearfix { + *zoom: 1; +} +.clearfix:before, +.clearfix:after { + display: table; + line-height: 0; + content: ""; +} +.clearfix:after { + clear: both; +} +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} +.input-block-level { + display: block; + width: 100%; + min-height: 20px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +@-ms-viewport { + width: device-width; +} +.hidden { + display: none; + visibility: hidden; +} +.visible-phone { + display: none !important; +} +.visible-tablet { + display: none !important; +} +.hidden-desktop { + display: none !important; +} +.visible-desktop { + display: inherit !important; +} +@media (min-width: 768px) and (max-width: 979px) { + .hidden-desktop { + display: inherit !important; + } + .visible-desktop { + display: none !important; + } + .visible-tablet { + display: inherit !important; + } + .hidden-tablet { + display: none !important; + } +} +@media (max-width: 767px) { + .hidden-desktop { + display: inherit !important; + } + .visible-desktop { + display: none !important; + } + .visible-phone { + display: inherit !important; + } + .hidden-phone { + display: none !important; + } +} +.visible-print { + display: none !important; +} +@media print { + .visible-print { + display: inherit !important; + } + .hidden-print { + display: none !important; + } +} +@media (min-width: 1200px) { + .row { + margin-left: -24px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + line-height: 0; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + min-height: 1px; + margin-left: 16px; + } + .container, + .navbar-static-top .container, + .navbar-fixed-top .container, + .navbar-fixed-bottom .container { + width: 1128px; + } + .span12 { + width: 1128px; + } + .span11 { + width: 1032px; + } + .span10 { + width: 936px; + } + .span9 { + width: 840px; + } + .span8 { + width: 744px; + } + .span7 { + width: 648px; + } + .span6 { + width: 552px; + } + .span5 { + width: 456px; + } + .span4 { + width: 360px; + } + .span3 { + width: 264px; + } + .span2 { + width: 168px; + } + .span1 { + width: 72px; + } + .offset12 { + margin-left: 1176px; + } + .offset11 { + margin-left: 1080px; + } + .offset10 { + margin-left: 984px; + } + .offset9 { + margin-left: 888px; + } + .offset8 { + margin-left: 792px; + } + .offset7 { + margin-left: 696px; + } + .offset6 { + margin-left: 600px; + } + .offset5 { + margin-left: 504px; + } + .offset4 { + margin-left: 408px; + } + .offset3 { + margin-left: 312px; + } + .offset2 { + margin-left: 216px; + } + .offset1 { + margin-left: 120px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, + .row-fluid:after { + display: table; + line-height: 0; + content: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 20px; + margin-left: 2.127659574468085%; + *margin-left: 2.07469347277317%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 2.127659574468085%; + } + .row-fluid .span12 { + width: 100%; + *width: 99.94703389830508%; + } + .row-fluid .span11 { + width: 91.48936170212765%; + *width: 91.43639560043273%; + } + .row-fluid .span10 { + width: 82.97872340425532%; + *width: 82.9257573025604%; + } + .row-fluid .span9 { + width: 74.46808510638297%; + *width: 74.41511900468805%; + } + .row-fluid .span8 { + width: 65.95744680851064%; + *width: 65.90448070681572%; + } + .row-fluid .span7 { + width: 57.44680851063829%; + *width: 57.39384240894338%; + } + .row-fluid .span6 { + width: 48.93617021276595%; + *width: 48.88320411107104%; + } + .row-fluid .span5 { + width: 40.42553191489362%; + *width: 40.372565813198705%; + } + .row-fluid .span4 { + width: 31.914893617021278%; + *width: 31.86192751532636%; + } + .row-fluid .span3 { + width: 23.404255319148934%; + *width: 23.351289217454017%; + } + .row-fluid .span2 { + width: 14.893617021276595%; + *width: 14.84065091958168%; + } + .row-fluid .span1 { + width: 6.382978723404255%; + *width: 6.33001262170934%; + } + .row-fluid .offset12 { + margin-left: 104.25531914893617%; + *margin-left: 104.14938694554633%; + } + .row-fluid .offset12:first-child { + margin-left: 102.12765957446808%; + *margin-left: 102.02172737107824%; + } + .row-fluid .offset11 { + margin-left: 95.74468085106382%; + *margin-left: 95.63874864767398%; + } + .row-fluid .offset11:first-child { + margin-left: 93.61702127659574%; + *margin-left: 93.5110890732059%; + } + .row-fluid .offset10 { + margin-left: 87.23404255319149%; + *margin-left: 87.12811034980164%; + } + .row-fluid .offset10:first-child { + margin-left: 85.1063829787234%; + *margin-left: 85.00045077533356%; + } + .row-fluid .offset9 { + margin-left: 78.72340425531914%; + *margin-left: 78.6174720519293%; + } + .row-fluid .offset9:first-child { + margin-left: 76.59574468085106%; + *margin-left: 76.48981247746121%; + } + .row-fluid .offset8 { + margin-left: 70.2127659574468%; + *margin-left: 70.10683375405696%; + } + .row-fluid .offset8:first-child { + margin-left: 68.08510638297872%; + *margin-left: 67.97917417958888%; + } + .row-fluid .offset7 { + margin-left: 61.70212765957446%; + *margin-left: 61.59619545618464%; + } + .row-fluid .offset7:first-child { + margin-left: 59.574468085106375%; + *margin-left: 59.46853588171655%; + } + .row-fluid .offset6 { + margin-left: 53.191489361702125%; + *margin-left: 53.08555715831229%; + } + .row-fluid .offset6:first-child { + margin-left: 51.063829787234035%; + *margin-left: 50.95789758384421%; + } + .row-fluid .offset5 { + margin-left: 44.68085106382979%; + *margin-left: 44.57491886043996%; + } + .row-fluid .offset5:first-child { + margin-left: 42.5531914893617%; + *margin-left: 42.447259285971874%; + } + .row-fluid .offset4 { + margin-left: 36.170212765957444%; + *margin-left: 36.06428056256762%; + } + .row-fluid .offset4:first-child { + margin-left: 34.04255319148936%; + *margin-left: 33.936620988099534%; + } + .row-fluid .offset3 { + margin-left: 27.659574468085104%; + *margin-left: 27.55364226469527%; + } + .row-fluid .offset3:first-child { + margin-left: 25.53191489361702%; + *margin-left: 25.425982690227183%; + } + .row-fluid .offset2 { + margin-left: 19.148936170212764%; + *margin-left: 19.043003966822933%; + } + .row-fluid .offset2:first-child { + margin-left: 17.02127659574468%; + *margin-left: 16.91534439235485%; + } + .row-fluid .offset1 { + margin-left: 10.638297872340425%; + *margin-left: 10.532365668950595%; + } + .row-fluid .offset1:first-child { + margin-left: 8.51063829787234%; + *margin-left: 8.40470609448251%; + } + input, + textarea, + .uneditable-input { + margin-left: 0; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 24px; + } + input.span12, + textarea.span12, + .uneditable-input.span12 { + width: 1114px; + } + input.span11, + textarea.span11, + .uneditable-input.span11 { + width: 1018px; + } + input.span10, + textarea.span10, + .uneditable-input.span10 { + width: 922px; + } + input.span9, + textarea.span9, + .uneditable-input.span9 { + width: 826px; + } + input.span8, + textarea.span8, + .uneditable-input.span8 { + width: 730px; + } + input.span7, + textarea.span7, + .uneditable-input.span7 { + width: 634px; + } + input.span6, + textarea.span6, + .uneditable-input.span6 { + width: 538px; + } + input.span5, + textarea.span5, + .uneditable-input.span5 { + width: 442px; + } + input.span4, + textarea.span4, + .uneditable-input.span4 { + width: 346px; + } + input.span3, + textarea.span3, + .uneditable-input.span3 { + width: 250px; + } + input.span2, + textarea.span2, + .uneditable-input.span2 { + width: 154px; + } + input.span1, + textarea.span1, + .uneditable-input.span1 { + width: 58px; + } + .thumbnails { + margin-left: -24px; + } + .thumbnails > li { + margin-left: 24px; + } + .row-fluid .thumbnails { + margin-left: 0; + } +} +@media (min-width: 768px) and (max-width: 979px) { + .row { + margin-left: -16px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + line-height: 0; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + min-height: 1px; + margin-left: 16px; + } + .container, + .navbar-static-top .container, + .navbar-fixed-top .container, + .navbar-fixed-bottom .container { + width: 656px; + } + .span12 { + width: 656px; + } + .span11 { + width: 600px; + } + .span10 { + width: 544px; + } + .span9 { + width: 488px; + } + .span8 { + width: 432px; + } + .span7 { + width: 376px; + } + .span6 { + width: 320px; + } + .span5 { + width: 264px; + } + .span4 { + width: 208px; + } + .span3 { + width: 152px; + } + .span2 { + width: 96px; + } + .span1 { + width: 40px; + } + .offset12 { + margin-left: 688px; + } + .offset11 { + margin-left: 632px; + } + .offset10 { + margin-left: 576px; + } + .offset9 { + margin-left: 520px; + } + .offset8 { + margin-left: 464px; + } + .offset7 { + margin-left: 408px; + } + .offset6 { + margin-left: 352px; + } + .offset5 { + margin-left: 296px; + } + .offset4 { + margin-left: 240px; + } + .offset3 { + margin-left: 184px; + } + .offset2 { + margin-left: 128px; + } + .offset1 { + margin-left: 72px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, + .row-fluid:after { + display: table; + line-height: 0; + content: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 20px; + margin-left: 2.4390243902439024%; + *margin-left: 2.386058288548987%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 2.4390243902439024%; + } + .row-fluid .span12 { + width: 100%; + *width: 99.94703389830508%; + } + .row-fluid .span11 { + width: 91.46341463414635%; + *width: 91.41044853245143%; + } + .row-fluid .span10 { + width: 82.92682926829268%; + *width: 82.87386316659776%; + } + .row-fluid .span9 { + width: 74.39024390243902%; + *width: 74.3372778007441%; + } + .row-fluid .span8 { + width: 65.85365853658537%; + *width: 65.80069243489045%; + } + .row-fluid .span7 { + width: 57.31707317073171%; + *width: 57.2641070690368%; + } + .row-fluid .span6 { + width: 48.78048780487805%; + *width: 48.727521703183136%; + } + .row-fluid .span5 { + width: 40.24390243902439%; + *width: 40.190936337329475%; + } + .row-fluid .span4 { + width: 31.70731707317073%; + *width: 31.654350971475814%; + } + .row-fluid .span3 { + width: 23.170731707317074%; + *width: 23.117765605622157%; + } + .row-fluid .span2 { + width: 14.634146341463415%; + *width: 14.5811802397685%; + } + .row-fluid .span1 { + width: 6.097560975609756%; + *width: 6.044594873914841%; + } + .row-fluid .offset12 { + margin-left: 104.8780487804878%; + *margin-left: 104.77211657709796%; + } + .row-fluid .offset12:first-child { + margin-left: 102.4390243902439%; + *margin-left: 102.33309218685406%; + } + .row-fluid .offset11 { + margin-left: 96.34146341463415%; + *margin-left: 96.23553121124431%; + } + .row-fluid .offset11:first-child { + margin-left: 93.90243902439025%; + *margin-left: 93.7965068210004%; + } + .row-fluid .offset10 { + margin-left: 87.80487804878048%; + *margin-left: 87.69894584539064%; + } + .row-fluid .offset10:first-child { + margin-left: 85.36585365853658%; + *margin-left: 85.25992145514674%; + } + .row-fluid .offset9 { + margin-left: 79.26829268292683%; + *margin-left: 79.16236047953699%; + } + .row-fluid .offset9:first-child { + margin-left: 76.82926829268293%; + *margin-left: 76.72333608929308%; + } + .row-fluid .offset8 { + margin-left: 70.73170731707317%; + *margin-left: 70.62577511368333%; + } + .row-fluid .offset8:first-child { + margin-left: 68.29268292682927%; + *margin-left: 68.18675072343943%; + } + .row-fluid .offset7 { + margin-left: 62.19512195121951%; + *margin-left: 62.089189747829685%; + } + .row-fluid .offset7:first-child { + margin-left: 59.75609756097561%; + *margin-left: 59.650165357585784%; + } + .row-fluid .offset6 { + margin-left: 53.65853658536585%; + *margin-left: 53.552604381976025%; + } + .row-fluid .offset6:first-child { + margin-left: 51.21951219512195%; + *margin-left: 51.113579991732124%; + } + .row-fluid .offset5 { + margin-left: 45.12195121951219%; + *margin-left: 45.016019016122364%; + } + .row-fluid .offset5:first-child { + margin-left: 42.68292682926829%; + *margin-left: 42.57699462587846%; + } + .row-fluid .offset4 { + margin-left: 36.58536585365854%; + *margin-left: 36.4794336502687%; + } + .row-fluid .offset4:first-child { + margin-left: 34.146341463414636%; + *margin-left: 34.0404092600248%; + } + .row-fluid .offset3 { + margin-left: 28.04878048780488%; + *margin-left: 27.942848284415046%; + } + .row-fluid .offset3:first-child { + margin-left: 25.609756097560975%; + *margin-left: 25.50382389417114%; + } + .row-fluid .offset2 { + margin-left: 19.51219512195122%; + *margin-left: 19.40626291856139%; + } + .row-fluid .offset2:first-child { + margin-left: 17.073170731707318%; + *margin-left: 16.967238528317484%; + } + .row-fluid .offset1 { + margin-left: 10.975609756097562%; + *margin-left: 10.86967755270773%; + } + .row-fluid .offset1:first-child { + margin-left: 8.536585365853659%; + *margin-left: 8.430653162463829%; + } + input, + textarea, + .uneditable-input { + margin-left: 0; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 16px; + } + input.span12, + textarea.span12, + .uneditable-input.span12 { + width: 642px; + } + input.span11, + textarea.span11, + .uneditable-input.span11 { + width: 586px; + } + input.span10, + textarea.span10, + .uneditable-input.span10 { + width: 530px; + } + input.span9, + textarea.span9, + .uneditable-input.span9 { + width: 474px; + } + input.span8, + textarea.span8, + .uneditable-input.span8 { + width: 418px; + } + input.span7, + textarea.span7, + .uneditable-input.span7 { + width: 362px; + } + input.span6, + textarea.span6, + .uneditable-input.span6 { + width: 306px; + } + input.span5, + textarea.span5, + .uneditable-input.span5 { + width: 250px; + } + input.span4, + textarea.span4, + .uneditable-input.span4 { + width: 194px; + } + input.span3, + textarea.span3, + .uneditable-input.span3 { + width: 138px; + } + input.span2, + textarea.span2, + .uneditable-input.span2 { + width: 82px; + } + input.span1, + textarea.span1, + .uneditable-input.span1 { + width: 26px; + } +} +@media (max-width: 767px) { + body { + padding-right: 18px; + padding-left: 18px; + } + .navbar-fixed-top, + .navbar-fixed-bottom, + .navbar-static-top { + margin-right: -10px; + margin-left: -10px; + } + .container-fluid { + padding: 0; + } + .dl-horizontal dt { + float: none; + width: auto; + clear: none; + text-align: left; + } + .dl-horizontal dd { + margin-left: 0; + } + .container { + width: auto; + } + .row-fluid { + width: 100%; + } + .row, + .thumbnails { + margin-left: 0; + } + .thumbnails > li { + float: none; + margin-left: 0; + } + [class*="span"], + .uneditable-input[class*="span"], + .row-fluid [class*="span"] { + display: block; + float: none; + width: 100%; + margin-left: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .span12, + .row-fluid .span12 { + width: 100%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="offset"]:first-child { + margin-left: 0; + } + .input-large, + .input-xlarge, + .input-xxlarge, + input[class*="span"], + select[class*="span"], + textarea[class*="span"], + .uneditable-input { + display: block; + width: 100%; + min-height: 20px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .input-prepend input, + .input-append input, + .input-prepend input[class*="span"], + .input-append input[class*="span"] { + display: inline-block; + width: auto; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 0; + } + .modal { + position: fixed; + top: 20px; + right: 20px; + left: 20px; + width: auto; + margin: 0; + } + .modal.fade { + top: -100px; + } + .modal.fade.in { + top: 18px; + } +} +@media (max-width: 480px) { + .nav-collapse { + -webkit-transform: translate3d(0, 0, 0); + } + .page-header h1 small { + display: block; + line-height: 20px; + } + input[type="checkbox"], + input[type="radio"] { + border: 1px solid #ccc; + } + .form-horizontal .control-label { + float: none; + width: auto; + padding-top: 0; + text-align: left; + } + .form-horizontal .controls { + margin-left: 0; + } + .form-horizontal .control-list { + padding-top: 0; + } + .form-horizontal .form-actions { + padding-right: 10px; + padding-left: 10px; + } + .media .pull-left, + .media .pull-right { + display: block; + float: none; + margin-bottom: 20px; + } + .media-object { + margin-right: 0; + margin-left: 0; + } + .modal { + top: 9px; + right: 4px; + left: 4px; + } + .modal-header .close { + padding: 10px; + margin: -10px; + } + .carousel-caption { + position: static; + } +} +@media (max-width: 979px) { + body { + padding-top: 0; + } + .navbar-fixed-top, + .navbar-fixed-bottom { + position: static; + } + .navbar-fixed-top { + margin-bottom: 20px; + } + .navbar-fixed-bottom { + margin-top: 20px; + } + .navbar-fixed-top .navbar-inner, + .navbar-fixed-bottom .navbar-inner { + padding: 0; + } + .navbar .container { + width: auto; + padding: 0; + } + .navbar .brand { + padding: 10px 10px; + margin: 0; + } + .nav-collapse { + clear: both; + } + .nav-collapse .nav { + float: none; + margin: 0 0 10px; + } + .nav-collapse .nav > li { + float: none; + } + .nav-collapse .nav > li > a { + margin-bottom: 0; + } + .nav-collapse .nav > .divider-vertical { + display: none; + } + .nav-collapse .nav .nav-header { + color: #000; + text-shadow: none; + } + .nav-collapse .nav > li > a, + .nav-collapse .dropdown-menu a { + padding: 0 10px; + color: #000; + } + .nav-collapse .nav > li.active > a { + color: #bbb; + } + .nav-collapse .btn { + padding: 10px 10px; + font-weight: normal; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + } + .nav-collapse .dropdown-menu li + li a { + margin-bottom: 0; + } + .nav-collapse .nav > li > a:hover, + .nav-collapse .nav > li > a:focus, + .nav-collapse .dropdown-menu a:hover, + .nav-collapse .dropdown-menu a:focus { + color: #bbb; + background-color: #bbb; + } + .navbar-inverse .nav-collapse .nav > li > a, + .navbar-inverse .nav-collapse .dropdown-menu a { + color: #000; + } + .navbar-inverse .nav-collapse .nav > li > a:hover, + .navbar-inverse .nav-collapse .nav > li > a:focus, + .navbar-inverse .nav-collapse .dropdown-menu a:hover, + .navbar-inverse .nav-collapse .dropdown-menu a:focus { + color: #bbb; + background-color: #000; + } + .nav-collapse.in .btn-group { + padding: 0; + margin-top: 5px; + } + .nav-collapse .dropdown-menu { + position: static; + top: auto; + left: auto; + display: none; + float: none; + max-width: none; + padding: 0; + margin: 0; + background-color: transparent; + border: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + } + .nav-collapse .open > .dropdown-menu { + display: block; + } + .nav-collapse .dropdown-menu:before, + .nav-collapse .dropdown-menu:after { + display: none; + } + .nav-collapse .dropdown-menu .divider { + display: none; + } + .nav-collapse .nav > li > .dropdown-menu:before, + .nav-collapse .nav > li > .dropdown-menu:after { + display: none; + } + .nav-collapse .navbar-form, + .nav-collapse .navbar-search { + float: none; + padding: 10px 10px; + margin: 10px 0; + border-top: 1px solid #bbb; + border-bottom: 1px solid #bbb; + } + .navbar-inverse .nav-collapse .navbar-form, + .navbar-inverse .nav-collapse .navbar-search { + border-top-color: #000; + border-bottom-color: #000; + } + .navbar .nav-collapse .nav.pull-right { + float: none; + margin-left: 0; + } + .nav-collapse, + .nav-collapse.collapse { + height: 0; + overflow: hidden; + } + .nav-collapse > ul.nav > li.active > a { + color: #bbb; + } + .navbar .btn-navbar { + display: block; + color: #fff; + background: #555; + -webkit-box-shadow: 0; + -moz-box-shadow: 0; + box-shadow: 0; + } + .navbar .btn-navbar:after { + content: ""; + } + .navbar .btn-navbar:before { + content: "▼"; + } + .navbar .btn-navbar.active, + .navbar .btn-navbar:active { + margin-bottom: 20px; + color: #fff; + background: #000; + outline: 0; + } + .navbar-static .navbar-inner { + padding-right: 10px; + padding-left: 10px; + } +} +@media (min-width: 980px) { + .nav-collapse.collapse { + height: auto !important; + overflow: visible !important; + } +} diff --git a/web/static/css/bootstrap.css b/web/static/css/bootstrap.css @@ -0,0 +1,6204 @@ +/*! + * Bootstrap v2.3.1 + * + * Copyright 2012 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 @twitter by @mdo and @fat. + */ + +.clearfix { + *zoom: 1; +} + +.clearfix:before, +.clearfix:after { + display: table; + line-height: 0; + content: ""; +} + +.clearfix:after { + clear: both; +} + +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.input-block-level { + display: block; + width: 100%; + min-height: 20px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section { + display: block; +} + +audio, +canvas, +video { + display: inline-block; + *display: inline; + *zoom: 1; +} + +audio:not([controls]) { + display: none; +} + +html { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +a:focus { + outline: thin solid #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +a:hover, +a:active { + outline: 0; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +img { + width: auto\9; + height: auto; + max-width: 100%; + vertical-align: middle; + border: 0; + -ms-interpolation-mode: bicubic; +} + +#map_canvas img, +.google-maps img { + max-width: none; +} + +button, +input, +select, +textarea { + margin: 0; + font-size: 100%; + vertical-align: middle; +} + +button, +input { + *overflow: visible; + line-height: normal; +} + +button::-moz-focus-inner, +input::-moz-focus-inner { + padding: 0; + border: 0; +} + +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor: pointer; + -webkit-appearance: button; +} + +label, +select, +button, +input[type="button"], +input[type="reset"], +input[type="submit"], +input[type="radio"], +input[type="checkbox"] { + cursor: pointer; +} + +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-decoration, +input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; +} + +textarea { + overflow: auto; + vertical-align: top; +} + +@media print { + * { + color: #000 !important; + text-shadow: none !important; + background: transparent !important; + box-shadow: none !important; + } + a, + a:visited { + text-decoration: none; + } + 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: 0.5cm; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } +} + +@font-face { + font-family: "DOS"; + font-style: normal; + font-weight: normal; + src: url("fonts/Fixedsys500c.eot"); + src: + local("☺"), + url("fonts/Fixedsys500c.woff") format("woff"), + url("fonts/Fixedsys500c.ttf") format("truetype"), + url("fonts/Fixedsys500c.svg") format("svg"); +} + +body { + margin: 0; + font-family: DOS, Monaco, Menlo, Consolas, "Courier New", monospace; + font-size: 18px; + line-height: 20px; + color: #bbbbbb; + background-color: #000084; +} + +a { + color: #fefe54; + text-decoration: none; +} + +a:hover, +a:focus { + color: #fefe54; + background: #aa5500; +} + +.img-rounded { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.img-polaroid { + padding: 9px 4px 9px 4px; + background-color: #ffffff; + border: 2px solid #000000; +} + +.row { + margin-left: -16px; + *zoom: 1; +} + +.row:before, +.row:after { + display: table; + line-height: 0; + content: ""; +} + +.row:after { + clear: both; +} + +[class*="span"] { + float: left; + min-height: 1px; + margin-left: 16px; +} + +.container, +.navbar-static-top .container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 944px; +} + +.span12 { + width: 944px; +} + +.span11 { + width: 864px; +} + +.span10 { + width: 784px; +} + +.span9 { + width: 704px; +} + +.span8 { + width: 624px; +} + +.span7 { + width: 544px; +} + +.span6 { + width: 464px; +} + +.span5 { + width: 384px; +} + +.span4 { + width: 304px; +} + +.span3 { + width: 224px; +} + +.span2 { + width: 144px; +} + +.span1 { + width: 64px; +} + +.offset12 { + margin-left: 976px; +} + +.offset11 { + margin-left: 896px; +} + +.offset10 { + margin-left: 816px; +} + +.offset9 { + margin-left: 736px; +} + +.offset8 { + margin-left: 656px; +} + +.offset7 { + margin-left: 576px; +} + +.offset6 { + margin-left: 496px; +} + +.offset5 { + margin-left: 416px; +} + +.offset4 { + margin-left: 336px; +} + +.offset3 { + margin-left: 256px; +} + +.offset2 { + margin-left: 176px; +} + +.offset1 { + margin-left: 96px; +} + +.row-fluid { + width: 100%; + *zoom: 1; +} + +.row-fluid:before, +.row-fluid:after { + display: table; + line-height: 0; + content: ""; +} + +.row-fluid:after { + clear: both; +} + +.row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 20px; + margin-left: 1.694915254237288%; + *margin-left: 1.6419491525423728%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.row-fluid [class*="span"]:first-child { + margin-left: 0; +} + +.row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 1.694915254237288%; +} + +.row-fluid .span12 { + width: 100%; + *width: 99.94703389830508%; +} + +.row-fluid .span11 { + width: 91.52542372881356%; + *width: 91.47245762711864%; +} + +.row-fluid .span10 { + width: 83.0508474576271%; + *width: 82.99788135593218%; +} + +.row-fluid .span9 { + width: 74.57627118644066%; + *width: 74.52330508474574%; +} + +.row-fluid .span8 { + width: 66.10169491525423%; + *width: 66.04872881355931%; +} + +.row-fluid .span7 { + width: 57.6271186440678%; + *width: 57.574152542372886%; +} + +.row-fluid .span6 { + width: 49.152542372881356%; + *width: 49.09957627118644%; +} + +.row-fluid .span5 { + width: 40.677966101694906%; + *width: 40.62499999999999%; +} + +.row-fluid .span4 { + width: 32.20338983050847%; + *width: 32.15042372881356%; +} + +.row-fluid .span3 { + width: 23.728813559322035%; + *width: 23.675847457627118%; +} + +.row-fluid .span2 { + width: 15.254237288135592%; + *width: 15.201271186440676%; +} + +.row-fluid .span1 { + width: 6.779661016949152%; + *width: 6.726694915254237%; +} + +.row-fluid .offset12 { + margin-left: 103.38983050847457%; + *margin-left: 103.28389830508473%; +} + +.row-fluid .offset12:first-child { + margin-left: 101.69491525423729%; + *margin-left: 101.58898305084745%; +} + +.row-fluid .offset11 { + margin-left: 94.91525423728814%; + *margin-left: 94.8093220338983%; +} + +.row-fluid .offset11:first-child { + margin-left: 93.22033898305085%; + *margin-left: 93.11440677966101%; +} + +.row-fluid .offset10 { + margin-left: 86.44067796610167%; + *margin-left: 86.33474576271183%; +} + +.row-fluid .offset10:first-child { + margin-left: 84.74576271186439%; + *margin-left: 84.63983050847455%; +} + +.row-fluid .offset9 { + margin-left: 77.96610169491524%; + *margin-left: 77.8601694915254%; +} + +.row-fluid .offset9:first-child { + margin-left: 76.27118644067795%; + *margin-left: 76.16525423728811%; +} + +.row-fluid .offset8 { + margin-left: 69.4915254237288%; + *margin-left: 69.38559322033896%; +} + +.row-fluid .offset8:first-child { + margin-left: 67.79661016949152%; + *margin-left: 67.69067796610167%; +} + +.row-fluid .offset7 { + margin-left: 61.016949152542374%; + *margin-left: 60.91101694915255%; +} + +.row-fluid .offset7:first-child { + margin-left: 59.32203389830509%; + *margin-left: 59.21610169491526%; +} + +.row-fluid .offset6 { + margin-left: 52.54237288135593%; + *margin-left: 52.436440677966104%; +} + +.row-fluid .offset6:first-child { + margin-left: 50.847457627118644%; + *margin-left: 50.74152542372882%; +} + +.row-fluid .offset5 { + margin-left: 44.06779661016948%; + *margin-left: 43.961864406779654%; +} + +.row-fluid .offset5:first-child { + margin-left: 42.37288135593219%; + *margin-left: 42.26694915254237%; +} + +.row-fluid .offset4 { + margin-left: 35.593220338983045%; + *margin-left: 35.48728813559322%; +} + +.row-fluid .offset4:first-child { + margin-left: 33.89830508474576%; + *margin-left: 33.79237288135593%; +} + +.row-fluid .offset3 { + margin-left: 27.11864406779661%; + *margin-left: 27.01271186440678%; +} + +.row-fluid .offset3:first-child { + margin-left: 25.423728813559322%; + *margin-left: 25.317796610169488%; +} + +.row-fluid .offset2 { + margin-left: 18.644067796610166%; + *margin-left: 18.538135593220336%; +} + +.row-fluid .offset2:first-child { + margin-left: 16.94915254237288%; + *margin-left: 16.84322033898305%; +} + +.row-fluid .offset1 { + margin-left: 10.169491525423728%; + *margin-left: 10.063559322033898%; +} + +.row-fluid .offset1:first-child { + margin-left: 8.47457627118644%; + *margin-left: 8.36864406779661%; +} + +[class*="span"].hide, +.row-fluid [class*="span"].hide { + display: none; +} + +[class*="span"].pull-right, +.row-fluid [class*="span"].pull-right { + float: right; +} + +.container { + margin-left: 20px; + *zoom: 1; +} + +.container:before, +.container:after { + display: table; + line-height: 0; + content: ""; +} + +.container:after { + clear: both; +} + +.container-fluid { + padding-right: 16px; + padding-left: 16px; + *zoom: 1; +} + +.container-fluid:before, +.container-fluid:after { + display: table; + line-height: 0; + content: ""; +} + +.container-fluid:after { + clear: both; +} + +img { + -webkit-filter: contrast(800%); + -moz-filter: contrast(1000%); + -ms-filter: contrast(800%); + -o-filter: contrast(800%); + filter: contrast(1000%); +} + +p { + margin: 0 0 20px; +} + +.lead { + padding: 9px 14px 9px 14px; + margin: 9px 4px 9px 4px; + font-size: 18px; + color: #ffffff; + border: 2px solid #bbbbbb; +} + +small { + font-size: 100%; +} + +strong { + font-weight: normal; + color: #ffffff; +} + +em { + font-weight: normal; + color: #ffffff; +} + +cite { + font-style: normal; +} + +i, +cite, +em, +var, +address, +dfn { + font-style: normal; +} + +i:before, +cite:before, +em:before, +var:before, +address:before, +dfn:before, +i:after, +cite:after, +em:after, +var:after, +address:after, +dfn:after { + content: "/"; +} + +.muted { + display: none; + color: #bbbbbb; +} + +.text-warning { + color: #ffffff; +} + +a.text-warning:hover, +a.text-warning:focus { + color: #ffffff; +} + +.text-error { + color: #ffffff; +} + +a.text-error:hover, +a.text-error:focus { + color: #ffffff; +} + +.text-info { + color: #000000; +} + +a.text-info:hover, +a.text-info:focus { + color: #000000; +} + +.text-success { + color: #00aa00; +} + +a.text-success:hover, +a.text-success:focus { + color: #00aa00; +} + +.text-left { + text-align: left; +} + +.text-right { + text-align: right; +} + +.text-center { + text-align: center; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + font-family: inherit; + font-weight: inherit; + line-height: 20px; + color: #ffffff; + text-rendering: optimizelegibility; +} + +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small { + font-weight: normal; + line-height: 1; + color: #bbbbbb; +} + +h1, +h2, +h3 { + line-height: 20px; +} + +h3:before { + content: ">>> "; +} + +h3:after { + content: " <<<"; +} + +h1 { + font-size: 18px; + text-transform: uppercase; +} + +h2 { + font-size: 18px; + text-align: center; + white-space: nowrap; +} + +h3 { + font-size: 18px; +} + +h4 { + font-size: 18px; + color: #fe54fe; +} + +h5 { + font-size: 18px; +} + +h6 { + font-size: 18px; +} + +h1 small { + font-size: 18px; +} + +h2 small { + font-size: 18px; +} + +h3 small { + font-size: 18px; +} + +h4 small { + font-size: 18px; +} + +.page-header { + padding: 20px 20px; + margin: 20px 0 20px; + background: #00aaaa; +} + +.page-header h1 { + color: #000000; +} + +ul, +ol { + padding: 0; + margin: 0 0 20px 18px; +} + +ul { + list-style: square; +} + +ol { + margin-left: 21px; + list-style: decimal; +} + +ol > li { + padding-left: 0; +} + +ul ul, +ul ol, +ol ol, +ol ul { + margin-bottom: 0; + list-style: square; +} + +li { + padding-left: 4px; + margin-left: 0; + line-height: 20px; +} + +ol > li { + margin-left: 12px; +} + +ul.unstyled, +ol.unstyled { + margin-left: 0; + list-style: none; +} + +ul.unstyled > li, +ol.unstyled > li { + padding-left: 0; +} + +ul.inline, +ol.inline { + margin-left: 0; + list-style: none; +} + +ul.inline > li, +ol.inline > li { + display: inline-block; + *display: inline; + padding-right: 9.5px; + padding-left: 10.7px; + *zoom: 1; +} + +dl { + margin-bottom: 20px; +} + +dt, +dd { + line-height: 20px; +} + +dt { + font-weight: normal; +} + +dd { + margin-left: 21px; +} + +.dl-horizontal { + *zoom: 1; +} + +.dl-horizontal:before, +.dl-horizontal:after { + display: table; + line-height: 0; + content: ""; +} + +.dl-horizontal:after { + clear: both; +} + +.dl-horizontal dt { + float: left; + width: 162px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; +} + +.dl-horizontal dd { + margin-left: 182px; +} + +hr { + margin: 6px 0 7px; + border: 0; + border-top: 0px solid #bbbbbb; + border-bottom: 2px solid #ffffff; +} + +abbr[title], +abbr[data-original-title] { + cursor: help; + border: 0; +} + +abbr.initialism { + font-size: 90%; + text-transform: uppercase; +} + +blockquote { + padding: 0 0 0 15px; + margin: 0 0 20px; + border-left: 5px solid #bbbbbb; +} + +blockquote p { + margin-bottom: 0; + font-size: 18px; + line-height: 20px; +} + +blockquote small { + display: block; + line-height: 20px; + color: #bbbbbb; +} + +blockquote small:before { + content: "\2014 \00A0"; +} + +blockquote.pull-right { + float: right; + padding-right: 1em; + padding-left: 0; + border-right: 5px solid #bbbbbb; + 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: 20px; +} + +code, +pre { + padding: 0; + font-family: DOS, Monaco, Menlo, Consolas, "Courier New", monospace; + font-size: 18px; + color: #555555; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +code { + padding: 0; + color: #ffffff; + white-space: nowrap; + background-color: #000000; + border: 0; +} + +pre { + display: block; + padding: 0; + margin: 0 0 10px; + font-size: 18px; + font-weight: normal; + line-height: 20px; + word-break: break-all; + word-wrap: break-word; + white-space: pre; + white-space: pre-wrap; + background-color: #000000; + border: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +pre.prettyprint { + margin-bottom: 20px; +} + +pre code { + padding: 0; + color: inherit; + white-space: pre; + white-space: pre-wrap; + background-color: transparent; + border: 0; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +form { + margin: 0 0 20px; +} + +fieldset { + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 18px; + line-height: 40px; + color: #ffffff; + border: 0; +} + +legend small { + font-size: 20px; + color: #bbbbbb; +} + +legend:before { + content: "## "; +} + +legend:after { + content: " ##"; +} + +label, +input, +button, +select, +textarea { + font-size: 18px; + font-weight: normal; + line-height: 20px; +} + +input, +button, +select, +textarea { + font-family: DOS, Monaco, Menlo, Consolas, "Courier New", monospace; +} + +label { + display: block; + margin-bottom: 5px; +} + +select, +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + display: inline-block; + height: 20px; + padding: 0 0; + margin: 10px 5px; + font-size: 18px; + line-height: 20px; + color: #000000; + vertical-align: middle; + background: #bbbbbb; + border: 2px solid #000000; +} + +input[type="text"]:before { + content: "["; +} + +input[type="text"]:after { + content: "]"; +} + +input, +textarea, +.uneditable-input { + width: 206px; +} + +textarea { + height: auto; +} + +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + background-color: #bbbbbb; + border: 0; +} + +textarea:focus, +input[type="text"]:focus, +input[type="password"]:focus, +input[type="datetime"]:focus, +input[type="datetime-local"]:focus, +input[type="date"]:focus, +input[type="month"]:focus, +input[type="time"]:focus, +input[type="week"]:focus, +input[type="number"]:focus, +input[type="email"]:focus, +input[type="url"]:focus, +input[type="search"]:focus, +input[type="tel"]:focus, +input[type="color"]:focus, +.uneditable-input:focus { + outline: 0; +} + +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + *margin-top: 0; + line-height: normal; +} + +input[type="file"], +input[type="image"], +input[type="submit"], +input[type="reset"], +input[type="button"], +input[type="radio"], +input[type="checkbox"] { + width: auto; +} + +select, +input[type="file"] { + height: 20px; + /* In IE7, the height of the select element cannot be changed by height, only font-size */ + + *margin-top: 4px; + /* For IE7, add top margin to align select with labels */ + + line-height: 20px; +} + +select { + width: 220px; + background-color: #ffffff; + border: 1px solid #cccccc; +} + +select[multiple], +select[size] { + height: auto; +} + +select:focus, +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: thin solid #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.uneditable-input, +.uneditable-textarea { + color: #bbbbbb; + cursor: not-allowed; + background-color: #fcfcfc; + border-color: #cccccc; +} + +.uneditable-input { + overflow: hidden; + white-space: nowrap; +} + +.uneditable-textarea { + width: auto; + height: auto; +} + +input:-moz-placeholder, +textarea:-moz-placeholder { + color: #bbbbbb; +} + +input:-ms-input-placeholder, +textarea:-ms-input-placeholder { + color: #bbbbbb; +} + +input::-webkit-input-placeholder, +textarea::-webkit-input-placeholder { + color: #bbbbbb; +} + +.radio, +.checkbox { + min-height: 20px; + padding-left: 20px; +} + +.radio input[type="radio"], +.checkbox input[type="checkbox"] { + float: left; + margin-left: -20px; +} + +.controls > .radio:first-child, +.controls > .checkbox:first-child { + padding-top: 5px; +} + +.radio.inline, +.checkbox.inline { + display: inline-block; + padding-top: 5px; + margin-bottom: 0; + vertical-align: middle; +} + +.radio.inline + .radio.inline, +.checkbox.inline + .checkbox.inline { + margin-left: 10px; +} + +.input-mini { + width: 60px; +} + +.input-small { + width: 90px; +} + +.input-medium { + width: 150px; +} + +.input-large { + width: 210px; +} + +.input-xlarge { + width: 270px; +} + +.input-xxlarge { + width: 530px; +} + +input[class*="span"], +select[class*="span"], +textarea[class*="span"], +.uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"] { + float: none; + margin-left: 0; +} + +.input-append input[class*="span"], +.input-append .uneditable-input[class*="span"], +.input-prepend input[class*="span"], +.input-prepend .uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"], +.row-fluid .input-prepend [class*="span"], +.row-fluid .input-append [class*="span"] { + display: inline-block; +} + +input, +textarea, +.uneditable-input { + margin-left: 0; +} + +.controls-row [class*="span"] + [class*="span"] { + margin-left: 16px; +} + +input.span12, +textarea.span12, +.uneditable-input.span12 { + width: 930px; +} + +input.span11, +textarea.span11, +.uneditable-input.span11 { + width: 850px; +} + +input.span10, +textarea.span10, +.uneditable-input.span10 { + width: 770px; +} + +input.span9, +textarea.span9, +.uneditable-input.span9 { + width: 690px; +} + +input.span8, +textarea.span8, +.uneditable-input.span8 { + width: 610px; +} + +input.span7, +textarea.span7, +.uneditable-input.span7 { + width: 530px; +} + +input.span6, +textarea.span6, +.uneditable-input.span6 { + width: 450px; +} + +input.span5, +textarea.span5, +.uneditable-input.span5 { + width: 370px; +} + +input.span4, +textarea.span4, +.uneditable-input.span4 { + width: 290px; +} + +input.span3, +textarea.span3, +.uneditable-input.span3 { + width: 210px; +} + +input.span2, +textarea.span2, +.uneditable-input.span2 { + width: 130px; +} + +input.span1, +textarea.span1, +.uneditable-input.span1 { + width: 50px; +} + +.controls-row { + *zoom: 1; +} + +.controls-row:before, +.controls-row:after { + display: table; + line-height: 0; + content: ""; +} + +.controls-row:after { + clear: both; +} + +.controls-row [class*="span"], +.row-fluid .controls-row [class*="span"] { + float: left; +} + +.controls-row .checkbox[class*="span"], +.controls-row .radio[class*="span"] { + padding-top: 5px; +} + +input[disabled], +select[disabled], +textarea[disabled], +input[readonly], +select[readonly], +textarea[readonly] { + cursor: not-allowed; + background-color: #bbbbbb; +} + +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"][readonly], +input[type="checkbox"][readonly] { + background-color: transparent; +} + +.control-group.warning .control-label, +.control-group.warning .help-block, +.control-group.warning .help-inline { + color: #ffffff; +} + +.control-group.warning .checkbox, +.control-group.warning .radio, +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + color: #ffffff; +} + +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + border-color: #ffffff; +} + +.control-group.warning input:focus, +.control-group.warning select:focus, +.control-group.warning textarea:focus { + border-color: #ffffff; + -webkit-box-shadow: 0; + -moz-box-shadow: 0; + box-shadow: 0; +} + +.control-group.warning .input-prepend .add-on, +.control-group.warning .input-append .add-on { + color: #ffffff; + background-color: #00aaaa; + border-color: #ffffff; +} + +.control-group.error .control-label, +.control-group.error .help-block, +.control-group.error .help-inline { + color: #ffffff; +} + +.control-group.error .checkbox, +.control-group.error .radio, +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + color: #ffffff; +} + +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + border-color: #ffffff; +} + +.control-group.error input:focus, +.control-group.error select:focus, +.control-group.error textarea:focus { + border-color: #ffffff; + -webkit-box-shadow: 0; + -moz-box-shadow: 0; + box-shadow: 0; +} + +.control-group.error .input-prepend .add-on, +.control-group.error .input-append .add-on { + color: #ffffff; + background-color: #aa0000; + border-color: #ffffff; +} + +.control-group.success .control-label, +.control-group.success .help-block, +.control-group.success .help-inline { + color: #00aa00; +} + +.control-group.success .checkbox, +.control-group.success .radio, +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + color: #00aa00; +} + +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + border-color: #00aa00; +} + +.control-group.success input:focus, +.control-group.success select:focus, +.control-group.success textarea:focus { + border-color: #00aa00; + -webkit-box-shadow: 0; + -moz-box-shadow: 0; + box-shadow: 0; +} + +.control-group.success .input-prepend .add-on, +.control-group.success .input-append .add-on { + color: #00aa00; + background-color: #000000; + border-color: #00aa00; +} + +.control-group.info .control-label, +.control-group.info .help-block, +.control-group.info .help-inline { + color: #000000; +} + +.control-group.info .checkbox, +.control-group.info .radio, +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + color: #000000; +} + +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + border-color: #000000; +} + +.control-group.info input:focus, +.control-group.info select:focus, +.control-group.info textarea:focus { + border-color: #000000; + -webkit-box-shadow: 0; + -moz-box-shadow: 0; + box-shadow: 0; +} + +.control-group.info .input-prepend .add-on, +.control-group.info .input-append .add-on { + color: #000000; + background-color: #000000; + border-color: #000000; +} + +input:focus:invalid, +textarea:focus:invalid, +select:focus:invalid { + color: #b94a48; + border-color: #ee5f5b; +} + +input:focus:invalid:focus, +textarea:focus:invalid:focus, +select:focus:invalid:focus { + border-color: #e9322d; + -webkit-box-shadow: 0 0 6px #f8b9b7; + -moz-box-shadow: 0 0 6px #f8b9b7; + box-shadow: 0 0 6px #f8b9b7; +} + +.form-actions { + padding: 19px 20px 20px; + margin-top: 20px; + margin-bottom: 20px; + background-color: #f5f5f5; + border-top: 1px solid #e5e5e5; + *zoom: 1; +} + +.form-actions:before, +.form-actions:after { + display: table; + line-height: 0; + content: ""; +} + +.form-actions:after { + clear: both; +} + +.help-block, +.help-inline { + color: #e1e1e1; +} + +.help-block { + display: block; + margin-bottom: 10px; +} + +.help-inline { + display: inline-block; + *display: inline; + padding-left: 5px; + vertical-align: middle; + *zoom: 1; +} + +.input-append, +.input-prepend { + display: inline-block; + margin-bottom: 10px; + font-size: 0; + white-space: nowrap; + vertical-align: middle; +} + +.input-append input, +.input-prepend input, +.input-append select, +.input-prepend select, +.input-append .uneditable-input, +.input-prepend .uneditable-input, +.input-append .dropdown-menu, +.input-prepend .dropdown-menu, +.input-append .popover, +.input-prepend .popover { + font-size: 18px; +} + +.input-append input, +.input-prepend input, +.input-append select, +.input-prepend select, +.input-append .uneditable-input, +.input-prepend .uneditable-input { + position: relative; + margin-bottom: 0; + *margin-left: 0; + vertical-align: top; + -webkit-border-radius: 0 0 0px 0; + -moz-border-radius: 0 0 0px 0; + border-radius: 0 0 0px 0; +} + +.input-append input:focus, +.input-prepend input:focus, +.input-append select:focus, +.input-prepend select:focus, +.input-append .uneditable-input:focus, +.input-prepend .uneditable-input:focus { + z-index: 2; +} + +.input-append .add-on, +.input-prepend .add-on { + display: inline-block; + width: auto; + height: 20px; + min-width: 16px; + padding: 4px 5px; + font-size: 18px; + font-weight: normal; + line-height: 20px; + text-align: center; + text-shadow: 0; + background-color: #bbbbbb; + border: 0; +} + +.input-append .add-on, +.input-prepend .add-on, +.input-append .btn, +.input-prepend .btn, +.input-append .btn-group > .dropdown-toggle, +.input-prepend .btn-group > .dropdown-toggle { + vertical-align: top; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.input-prepend .add-on, +.input-prepend .btn { + margin-right: -1px; +} + +.input-prepend .add-on:first-child, +.input-prepend .btn:first-child { + -webkit-border-radius: 0 0 0 0px; + -moz-border-radius: 0 0 0 0px; + border-radius: 0 0 0 0px; +} + +.input-append input, +.input-append select, +.input-append .uneditable-input { + -webkit-border-radius: 0 0 0 0px; + -moz-border-radius: 0 0 0 0px; + border-radius: 0 0 0 0px; +} + +.input-append input + .btn-group .btn:last-child, +.input-append select + .btn-group .btn:last-child, +.input-append .uneditable-input + .btn-group .btn:last-child { + -webkit-border-radius: 0 0 0px 0; + -moz-border-radius: 0 0 0px 0; + border-radius: 0 0 0px 0; +} + +.input-append .add-on, +.input-append .btn, +.input-append .btn-group { + margin-left: -1px; +} + +.input-append .add-on:last-child, +.input-append .btn:last-child, +.input-append .btn-group:last-child > .dropdown-toggle { + -webkit-border-radius: 0 0 0px 0; + -moz-border-radius: 0 0 0px 0; + border-radius: 0 0 0px 0; +} + +.input-prepend.input-append input, +.input-prepend.input-append select, +.input-prepend.input-append .uneditable-input { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.input-prepend.input-append input + .btn-group .btn, +.input-prepend.input-append select + .btn-group .btn, +.input-prepend.input-append .uneditable-input + .btn-group .btn { + -webkit-border-radius: 0 0 0px 0; + -moz-border-radius: 0 0 0px 0; + border-radius: 0 0 0px 0; +} + +.input-prepend.input-append .add-on:first-child, +.input-prepend.input-append .btn:first-child { + margin-right: -1px; + -webkit-border-radius: 0 0 0 0px; + -moz-border-radius: 0 0 0 0px; + border-radius: 0 0 0 0px; +} + +.input-prepend.input-append .add-on:last-child, +.input-prepend.input-append .btn:last-child { + margin-left: -1px; + -webkit-border-radius: 0 0 0px 0; + -moz-border-radius: 0 0 0px 0; + border-radius: 0 0 0px 0; +} + +.input-prepend.input-append .btn-group:first-child { + margin-left: 0; +} + +input.search-query { + padding-right: 14px; + padding-right: 4px \9; + padding-left: 14px; + padding-left: 4px \9; + /* IE7-8 doesn't have border-radius, so don't indent the padding */ + + margin-bottom: 0; +} + +/* Allow for input prepend/append in search forms */ + +.form-search .input-append .search-query, +.form-search .input-prepend .search-query { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.form-search input, +.form-inline input, +.form-horizontal input, +.form-search textarea, +.form-inline textarea, +.form-horizontal textarea, +.form-search select, +.form-inline select, +.form-horizontal select, +.form-search .help-inline, +.form-inline .help-inline, +.form-horizontal .help-inline, +.form-search .uneditable-input, +.form-inline .uneditable-input, +.form-horizontal .uneditable-input, +.form-search .input-prepend, +.form-inline .input-prepend, +.form-horizontal .input-prepend, +.form-search .input-append, +.form-inline .input-append, +.form-horizontal .input-append { + display: inline-block; + *display: inline; + margin-bottom: 0; + vertical-align: middle; + *zoom: 1; +} + +.form-search .hide, +.form-inline .hide, +.form-horizontal .hide { + display: none; +} + +.form-search label, +.form-inline label, +.form-search .btn-group, +.form-inline .btn-group { + display: inline-block; +} + +.form-search .input-append, +.form-inline .input-append, +.form-search .input-prepend, +.form-inline .input-prepend { + margin-bottom: 0; +} + +.form-search .radio, +.form-search .checkbox, +.form-inline .radio, +.form-inline .checkbox { + padding-left: 0; + margin-bottom: 0; + vertical-align: middle; +} + +.form-search .radio input[type="radio"], +.form-search .checkbox input[type="checkbox"], +.form-inline .radio input[type="radio"], +.form-inline .checkbox input[type="checkbox"] { + float: left; + margin-right: 3px; + margin-left: 0; +} + +.control-group { + margin-bottom: 10px; +} + +legend + .control-group { + margin-top: 20px; + -webkit-margin-top-collapse: separate; +} + +.form-horizontal .control-group { + margin-bottom: 20px; + *zoom: 1; +} + +.form-horizontal .control-group:before, +.form-horizontal .control-group:after { + display: table; + line-height: 0; + content: ""; +} + +.form-horizontal .control-group:after { + clear: both; +} + +.form-horizontal .control-label { + float: left; + width: 162px; + padding-top: 5px; + text-align: right; +} + +.form-horizontal .controls { + *display: inline-block; + *padding-left: 20px; + margin-left: 182px; + *margin-left: 0; +} + +.form-horizontal .controls:first-child { + *padding-left: 182px; +} + +.form-horizontal .help-block { + margin-bottom: 0; +} + +.form-horizontal input + .help-block, +.form-horizontal select + .help-block, +.form-horizontal textarea + .help-block, +.form-horizontal .uneditable-input + .help-block, +.form-horizontal .input-prepend + .help-block, +.form-horizontal .input-append + .help-block { + margin-top: 10px; +} + +.form-horizontal .form-actions { + padding-left: 182px; +} + +table { + max-width: 100%; + background-color: transparent; + border-collapse: collapse; + border-spacing: 0; +} + +.table { + width: 100%; + margin-bottom: 20px; +} + +.table th, +.table td { + padding: 8px; + line-height: 20px; + text-align: left; + vertical-align: top; + border-top: 2px solid #dddddd; +} + +.table th { + font-weight: normal; +} + +.table thead th { + vertical-align: bottom; +} + +.table caption + thead tr:first-child th, +.table caption + thead tr:first-child td, +.table colgroup + thead tr:first-child th, +.table colgroup + thead tr:first-child td, +.table thead:first-child tr:first-child th, +.table thead:first-child tr:first-child td { + border-top: 0; +} + +.table tbody + tbody { + border-top: 2px solid #dddddd; +} + +.table .table { + background-color: #000084; +} + +.table-condensed th, +.table-condensed td { + padding: 4px 5px; +} + +.table-bordered { + margin-left: 4px; + border: 2px solid #dddddd; + border-collapse: separate; + *border-collapse: collapse; + border-left: 0; +} + +.table-bordered th, +.table-bordered td { + padding: inherit 5.2px; + border-left: 2px solid #dddddd; +} + +.table-bordered caption + thead tr:first-child th, +.table-bordered caption + tbody tr:first-child th, +.table-bordered caption + tbody tr:first-child td, +.table-bordered colgroup + thead tr:first-child th, +.table-bordered colgroup + tbody tr:first-child th, +.table-bordered colgroup + tbody tr:first-child td, +.table-bordered thead:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child td { + border-top: 0; +} + +.table-bordered thead:first-child tr:first-child > th:first-child, +.table-bordered tbody:first-child tr:first-child > td:first-child, +.table-bordered tbody:first-child tr:first-child > th:first-child { + -webkit-border-top-left-radius: 0; + border-top-left-radius: 0; + -moz-border-radius-topleft: 0; +} + +.table-bordered thead:first-child tr:first-child > th:last-child, +.table-bordered tbody:first-child tr:first-child > td:last-child, +.table-bordered tbody:first-child tr:first-child > th:last-child { + -webkit-border-top-right-radius: 0; + border-top-right-radius: 0; + -moz-border-radius-topright: 0; +} + +.table-bordered thead:last-child tr:last-child > th:first-child, +.table-bordered tbody:last-child tr:last-child > td:first-child, +.table-bordered tbody:last-child tr:last-child > th:first-child, +.table-bordered tfoot:last-child tr:last-child > td:first-child, +.table-bordered tfoot:last-child tr:last-child > th:first-child { + -webkit-border-bottom-left-radius: 0; + border-bottom-left-radius: 0; + -moz-border-radius-bottomleft: 0; +} + +.table-bordered thead:last-child tr:last-child > th:last-child, +.table-bordered tbody:last-child tr:last-child > td:last-child, +.table-bordered tbody:last-child tr:last-child > th:last-child, +.table-bordered tfoot:last-child tr:last-child > td:last-child, +.table-bordered tfoot:last-child tr:last-child > th:last-child { + -webkit-border-bottom-right-radius: 0; + border-bottom-right-radius: 0; + -moz-border-radius-bottomright: 0; +} + +.table-bordered tfoot + tbody:last-child tr:last-child td:first-child { + -webkit-border-bottom-left-radius: 0; + border-bottom-left-radius: 0; + -moz-border-radius-bottomleft: 0; +} + +.table-bordered tfoot + tbody:last-child tr:last-child td:last-child { + -webkit-border-bottom-right-radius: 0; + border-bottom-right-radius: 0; + -moz-border-radius-bottomright: 0; +} + +.table-bordered caption + thead tr:first-child th:first-child, +.table-bordered caption + tbody tr:first-child td:first-child, +.table-bordered colgroup + thead tr:first-child th:first-child, +.table-bordered colgroup + tbody tr:first-child td:first-child { + -webkit-border-top-left-radius: 0; + border-top-left-radius: 0; + -moz-border-radius-topleft: 0; +} + +.table-bordered caption + thead tr:first-child th:last-child, +.table-bordered caption + tbody tr:first-child td:last-child, +.table-bordered colgroup + thead tr:first-child th:last-child, +.table-bordered colgroup + tbody tr:first-child td:last-child { + -webkit-border-top-right-radius: 0; + border-top-right-radius: 0; + -moz-border-radius-topright: 0; +} + +.table-striped tbody > tr:nth-child(odd) > td, +.table-striped tbody > tr:nth-child(odd) > th { + background-color: transparent; +} + +.table-hover tbody tr:hover > td, +.table-hover tbody tr:hover > th { + background-color: #f5f5f5; +} + +table td[class*="span"], +table th[class*="span"], +.row-fluid table td[class*="span"], +.row-fluid table th[class*="span"] { + display: table-cell; + float: none; + margin-left: 0; +} + +.table td.span1, +.table th.span1 { + float: none; + width: 48px; + margin-left: 0; +} + +.table td.span2, +.table th.span2 { + float: none; + width: 128px; + margin-left: 0; +} + +.table td.span3, +.table th.span3 { + float: none; + width: 208px; + margin-left: 0; +} + +.table td.span4, +.table th.span4 { + float: none; + width: 288px; + margin-left: 0; +} + +.table td.span5, +.table th.span5 { + float: none; + width: 368px; + margin-left: 0; +} + +.table td.span6, +.table th.span6 { + float: none; + width: 448px; + margin-left: 0; +} + +.table td.span7, +.table th.span7 { + float: none; + width: 528px; + margin-left: 0; +} + +.table td.span8, +.table th.span8 { + float: none; + width: 608px; + margin-left: 0; +} + +.table td.span9, +.table th.span9 { + float: none; + width: 688px; + margin-left: 0; +} + +.table td.span10, +.table th.span10 { + float: none; + width: 768px; + margin-left: 0; +} + +.table td.span11, +.table th.span11 { + float: none; + width: 848px; + margin-left: 0; +} + +.table td.span12, +.table th.span12 { + float: none; + width: 928px; + margin-left: 0; +} + +.table tbody tr.success > td { + background-color: #000000; +} + +.table tbody tr.error > td { + background-color: #aa0000; +} + +.table tbody tr.warning > td { + background-color: #00aaaa; +} + +.table tbody tr.info > td { + background-color: #000000; +} + +.table-hover tbody tr.success:hover > td { + background-color: #000000; +} + +.table-hover tbody tr.error:hover > td { + background-color: #910000; +} + +.table-hover tbody tr.warning:hover > td { + background-color: #009091; +} + +.table-hover tbody tr.info:hover > td { + background-color: #000000; +} + +[class^="icon-"], +[class*=" icon-"] { + display: none; + width: 14px; + height: 14px; + margin-top: 1px; + *margin-right: 0.3em; + line-height: 20px; + vertical-align: text-top; + background-image: url("../img/glyphicons-halflings.png"); + background-position: 14px 14px; + background-repeat: no-repeat; +} + +/* White icons with optional class, or on hover/focus/active states of certain elements */ + +.icon-white, +.nav-pills > .active > a > [class^="icon-"], +.nav-pills > .active > a > [class*=" icon-"], +.nav-list > .active > a > [class^="icon-"], +.nav-list > .active > a > [class*=" icon-"], +.navbar-inverse .nav > .active > a > [class^="icon-"], +.navbar-inverse .nav > .active > a > [class*=" icon-"], +.dropdown-menu > li > a:hover > [class^="icon-"], +.dropdown-menu > li > a:focus > [class^="icon-"], +.dropdown-menu > li > a:hover > [class*=" icon-"], +.dropdown-menu > li > a:focus > [class*=" icon-"], +.dropdown-menu > .active > a > [class^="icon-"], +.dropdown-menu > .active > a > [class*=" icon-"], +.dropdown-submenu:hover > a > [class^="icon-"], +.dropdown-submenu:focus > a > [class^="icon-"], +.dropdown-submenu:hover > a > [class*=" icon-"], +.dropdown-submenu:focus > a > [class*=" icon-"] { + background-image: url("../img/glyphicons-halflings-white.png"); +} + +.icon-glass { + background-position: 0 0; +} + +.icon-music { + background-position: -24px 0; +} + +.icon-search { + background-position: -48px 0; +} + +.icon-envelope { + background-position: -72px 0; +} + +.icon-heart { + background-position: -96px 0; +} + +.icon-star { + background-position: -120px 0; +} + +.icon-star-empty { + background-position: -144px 0; +} + +.icon-user { + background-position: -168px 0; +} + +.icon-film { + background-position: -192px 0; +} + +.icon-th-large { + background-position: -216px 0; +} + +.icon-th { + background-position: -240px 0; +} + +.icon-th-list { + background-position: -264px 0; +} + +.icon-ok { + background-position: -288px 0; +} + +.icon-remove { + background-position: -312px 0; +} + +.icon-zoom-in { + background-position: -336px 0; +} + +.icon-zoom-out { + background-position: -360px 0; +} + +.icon-off { + background-position: -384px 0; +} + +.icon-signal { + background-position: -408px 0; +} + +.icon-cog { + background-position: -432px 0; +} + +.icon-trash { + background-position: -456px 0; +} + +.icon-home { + background-position: 0 -24px; +} + +.icon-file { + background-position: -24px -24px; +} + +.icon-time { + background-position: -48px -24px; +} + +.icon-road { + background-position: -72px -24px; +} + +.icon-download-alt { + background-position: -96px -24px; +} + +.icon-download { + background-position: -120px -24px; +} + +.icon-upload { + background-position: -144px -24px; +} + +.icon-inbox { + background-position: -168px -24px; +} + +.icon-play-circle { + background-position: -192px -24px; +} + +.icon-repeat { + background-position: -216px -24px; +} + +.icon-refresh { + background-position: -240px -24px; +} + +.icon-list-alt { + background-position: -264px -24px; +} + +.icon-lock { + background-position: -287px -24px; +} + +.icon-flag { + background-position: -312px -24px; +} + +.icon-headphones { + background-position: -336px -24px; +} + +.icon-volume-off { + background-position: -360px -24px; +} + +.icon-volume-down { + background-position: -384px -24px; +} + +.icon-volume-up { + background-position: -408px -24px; +} + +.icon-qrcode { + background-position: -432px -24px; +} + +.icon-barcode { + background-position: -456px -24px; +} + +.icon-tag { + background-position: 0 -48px; +} + +.icon-tags { + background-position: -25px -48px; +} + +.icon-book { + background-position: -48px -48px; +} + +.icon-bookmark { + background-position: -72px -48px; +} + +.icon-print { + background-position: -96px -48px; +} + +.icon-camera { + background-position: -120px -48px; +} + +.icon-font { + background-position: -144px -48px; +} + +.icon-bold { + background-position: -167px -48px; +} + +.icon-italic { + background-position: -192px -48px; +} + +.icon-text-height { + background-position: -216px -48px; +} + +.icon-text-width { + background-position: -240px -48px; +} + +.icon-align-left { + background-position: -264px -48px; +} + +.icon-align-center { + background-position: -288px -48px; +} + +.icon-align-right { + background-position: -312px -48px; +} + +.icon-align-justify { + background-position: -336px -48px; +} + +.icon-list { + background-position: -360px -48px; +} + +.icon-indent-left { + background-position: -384px -48px; +} + +.icon-indent-right { + background-position: -408px -48px; +} + +.icon-facetime-video { + background-position: -432px -48px; +} + +.icon-picture { + background-position: -456px -48px; +} + +.icon-pencil { + background-position: 0 -72px; +} + +.icon-map-marker { + background-position: -24px -72px; +} + +.icon-adjust { + background-position: -48px -72px; +} + +.icon-tint { + background-position: -72px -72px; +} + +.icon-edit { + background-position: -96px -72px; +} + +.icon-share { + background-position: -120px -72px; +} + +.icon-check { + background-position: -144px -72px; +} + +.icon-move { + background-position: -168px -72px; +} + +.icon-step-backward { + background-position: -192px -72px; +} + +.icon-fast-backward { + background-position: -216px -72px; +} + +.icon-backward { + background-position: -240px -72px; +} + +.icon-play { + background-position: -264px -72px; +} + +.icon-pause { + background-position: -288px -72px; +} + +.icon-stop { + background-position: -312px -72px; +} + +.icon-forward { + background-position: -336px -72px; +} + +.icon-fast-forward { + background-position: -360px -72px; +} + +.icon-step-forward { + background-position: -384px -72px; +} + +.icon-eject { + background-position: -408px -72px; +} + +.icon-chevron-left { + background-position: -432px -72px; +} + +.icon-chevron-right { + background-position: -456px -72px; +} + +.icon-plus-sign { + background-position: 0 -96px; +} + +.icon-minus-sign { + background-position: -24px -96px; +} + +.icon-remove-sign { + background-position: -48px -96px; +} + +.icon-ok-sign { + background-position: -72px -96px; +} + +.icon-question-sign { + background-position: -96px -96px; +} + +.icon-info-sign { + background-position: -120px -96px; +} + +.icon-screenshot { + background-position: -144px -96px; +} + +.icon-remove-circle { + background-position: -168px -96px; +} + +.icon-ok-circle { + background-position: -192px -96px; +} + +.icon-ban-circle { + background-position: -216px -96px; +} + +.icon-arrow-left { + background-position: -240px -96px; +} + +.icon-arrow-right { + background-position: -264px -96px; +} + +.icon-arrow-up { + background-position: -289px -96px; +} + +.icon-arrow-down { + background-position: -312px -96px; +} + +.icon-share-alt { + background-position: -336px -96px; +} + +.icon-resize-full { + background-position: -360px -96px; +} + +.icon-resize-small { + background-position: -384px -96px; +} + +.icon-plus { + background-position: -408px -96px; +} + +.icon-minus { + background-position: -433px -96px; +} + +.icon-asterisk { + background-position: -456px -96px; +} + +.icon-exclamation-sign { + background-position: 0 -120px; +} + +.icon-gift { + background-position: -24px -120px; +} + +.icon-leaf { + background-position: -48px -120px; +} + +.icon-fire { + background-position: -72px -120px; +} + +.icon-eye-open { + background-position: -96px -120px; +} + +.icon-eye-close { + background-position: -120px -120px; +} + +.icon-warning-sign { + background-position: -144px -120px; +} + +.icon-plane { + background-position: -168px -120px; +} + +.icon-calendar { + background-position: -192px -120px; +} + +.icon-random { + width: 16px; + background-position: -216px -120px; +} + +.icon-comment { + background-position: -240px -120px; +} + +.icon-magnet { + background-position: -264px -120px; +} + +.icon-chevron-up { + background-position: -288px -120px; +} + +.icon-chevron-down { + background-position: -313px -119px; +} + +.icon-retweet { + background-position: -336px -120px; +} + +.icon-shopping-cart { + background-position: -360px -120px; +} + +.icon-folder-close { + width: 16px; + background-position: -384px -120px; +} + +.icon-folder-open { + width: 16px; + background-position: -408px -120px; +} + +.icon-resize-vertical { + background-position: -432px -119px; +} + +.icon-resize-horizontal { + background-position: -456px -118px; +} + +.icon-hdd { + background-position: 0 -144px; +} + +.icon-bullhorn { + background-position: -24px -144px; +} + +.icon-bell { + background-position: -48px -144px; +} + +.icon-certificate { + background-position: -72px -144px; +} + +.icon-thumbs-up { + background-position: -96px -144px; +} + +.icon-thumbs-down { + background-position: -120px -144px; +} + +.icon-hand-right { + background-position: -144px -144px; +} + +.icon-hand-left { + background-position: -168px -144px; +} + +.icon-hand-up { + background-position: -192px -144px; +} + +.icon-hand-down { + background-position: -216px -144px; +} + +.icon-circle-arrow-right { + background-position: -240px -144px; +} + +.icon-circle-arrow-left { + background-position: -264px -144px; +} + +.icon-circle-arrow-up { + background-position: -288px -144px; +} + +.icon-circle-arrow-down { + background-position: -312px -144px; +} + +.icon-globe { + background-position: -336px -144px; +} + +.icon-wrench { + background-position: -360px -144px; +} + +.icon-tasks { + background-position: -384px -144px; +} + +.icon-filter { + background-position: -408px -144px; +} + +.icon-briefcase { + background-position: -432px -144px; +} + +.icon-fullscreen { + background-position: -456px -144px; +} + +.dropup, +.dropdown { + position: relative; +} + +.dropdown-toggle { + *margin-bottom: -3px; +} + +.dropdown-toggle:active, +.open .dropdown-toggle { + outline: 0; +} + +.caret { + display: inline-block; + width: 0; + height: 0; + vertical-align: top; + /* + border-top: 4px solid @black; + border-right: 4px solid transparent; + border-left: 4px solid transparent; + */ +} + +.caret:before { + content: "▼"; +} + +.dropdown .caret { + margin-top: 8px; + margin-left: 2px; +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 9px 4px 9px 4px; + margin: -15.5px 4px 8px 4px; + list-style: none; + background-color: #bbbbbb; + border: 1px solid #000000; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + -webkit-box-shadow: 0px 0px 0 5px #bbbbbb; + -moz-box-shadow: 0px 0px 0 5px #bbbbbb; + box-shadow: 0px 0px 0 5px #bbbbbb; + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} + +.dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.dropdown-menu .divider { + *width: 100%; + height: 1px; + height: 0; + margin: 9px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #000000; +} + +.dropdown-menu > li > a { + display: block; + padding: 0 10px; + clear: both; + font-weight: normal; + line-height: 20px; + color: #000000; + white-space: nowrap; +} + +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus, +.dropdown-submenu:hover > a, +.dropdown-submenu:focus > a { + color: #bbbbbb; + text-decoration: none; +} + +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: #bbbbbb; + text-decoration: none; + background-color: #fefe4a; + background-image: -moz-linear-gradient(top, #fefe54, #fefe3b); + background-image: -webkit-gradient( + linear, + 0 0, + 0 100%, + from(#fefe54), + to(#fefe3b) + ); + background-image: -webkit-linear-gradient(top, #fefe54, #fefe3b); + background-image: -o-linear-gradient(top, #fefe54, #fefe3b); + background-image: linear-gradient(to bottom, #fefe54, #fefe3b); + background-repeat: repeat-x; + outline: 0; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffefe54', endColorstr='#fffefe3b', GradientType=0); +} + +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #bbbbbb; +} + +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + text-decoration: none; + cursor: default; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.open { + *z-index: 1000; +} + +.open > .dropdown-menu { + display: block; +} + +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} + +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + border-top: 0; + border-bottom: 1px solid #000000; + content: ""; +} + +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} + +.dropdown-submenu { + position: relative; +} + +.dropdown-submenu > .dropdown-menu { + top: 0; + left: 100%; + margin-top: -6px; + margin-left: -1px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.dropdown-submenu:hover > .dropdown-menu { + display: block; +} + +.dropup .dropdown-submenu > .dropdown-menu { + top: auto; + bottom: 0; + margin-top: 0; + margin-bottom: -2px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.dropdown-submenu > a:after { + display: block; + float: right; + width: 0; + height: 0; + margin-top: 5px; + margin-right: -10px; + border-color: transparent; + border-left-color: #cccccc; + border-style: solid; + border-width: 1px; + content: " "; +} + +.dropdown-submenu:hover > a:after { + border-left-color: #bbbbbb; +} + +.dropdown-submenu.pull-left { + float: none; +} + +.dropdown-submenu.pull-left > .dropdown-menu { + left: -100%; + margin-left: 10px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.dropdown .dropdown-menu .nav-header { + padding-right: 16px; + padding-left: 16px; +} + +.typeahead { + z-index: 1051; + margin-top: 2px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0); +} + +.well-large { + padding: 24px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.well-small { + padding: 9px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + -moz-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} + +.fade.in { + opacity: 1; +} + +.collapse { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + -moz-transition: height 0.35s ease; + -o-transition: height 0.35s ease; + transition: height 0.35s ease; +} + +.collapse.in { + height: auto; +} + +.close { + float: right; + font-size: 18px; + font-weight: normal; + line-height: 20px; + color: #000000; + opacity: 0.2; + filter: alpha(opacity=20); +} + +.close:hover, +.close:focus { + color: #000000; + text-decoration: none; + cursor: pointer; +} + +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} + +.btn:hover:before, +.btn:hover:after { + color: #ffffff; +} + +.btn:before { + content: "< "; +} + +.btn:after { + content: " >"; +} + +.btn { + display: inline-block; + *display: inline; + padding: 0 10px; + margin-bottom: 20px; + *margin-left: 0.3em; + font-size: 18px; + line-height: 20px; + color: #000000; + text-align: center; + vertical-align: middle; + cursor: default; + background: #bbbbbb; + border: 0; + border-width: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + *zoom: 1; + -webkit-box-shadow: 10px 10px 0 #000000; + -moz-box-shadow: 10px 10px 0 #000000; + box-shadow: 10px 10px 0 #000000; +} + +.btn:first-child { + *margin-left: 0; +} + +.btn:hover, +.btn:focus { + color: #ffffff; + text-decoration: none; + background: #555555; + outline: 0; +} + +.btn:focus { + outline: thin solid #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.btn.active, +.btn:active { + margin: 10px 0 10px 10px; + outline: 0; + -webkit-box-shadow: 0 0 0; + -moz-box-shadow: 0 0 0; + box-shadow: 0 0 0; +} + +.btn.disabled, +.btn[disabled] { + cursor: default; + background-image: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.btn-large { + padding: 10px 10px; + font-size: 18px; + color: #000000; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-large [class^="icon-"], +.btn-large [class*=" icon-"] { + margin-top: 4px; +} + +.btn-small { + padding: 0; + font-size: 18px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-small [class^="icon-"], +.btn-small [class*=" icon-"] { + margin-top: 0; +} + +.btn-mini [class^="icon-"], +.btn-mini [class*=" icon-"] { + margin-top: -1px; +} + +.btn-mini { + padding: 0; + font-size: 18px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-block { + display: block; + width: 100%; + padding-right: 0; + padding-left: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.btn-block + .btn-block { + margin-top: 5px; +} + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} + +.btn-primary { + color: #000000; + background: #bbbbbb; +} + +.btn-warning { + *background-color: #f47a00; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-warning:hover, +.btn-warning:focus, +.btn-warning:active, +.btn-warning.active, +.btn-warning.disabled, +.btn-warning[disabled] { + color: #ffffff; +} + +.btn-danger { + *background-color: #ee5f5b; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-danger:hover, +.btn-danger:focus, +.btn-danger:active, +.btn-danger.active, +.btn-danger.disabled, +.btn-danger[disabled] { + color: #ffffff; +} + +.btn-success { + *background-color: #62c462; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-success:hover, +.btn-success:focus, +.btn-success:active, +.btn-success.active, +.btn-success.disabled, +.btn-success[disabled] { + color: #ffffff; +} + +.btn-info { + *background-color: #5bc0de; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-info:hover, +.btn-info:focus, +.btn-info:active, +.btn-info.active, +.btn-info.disabled, +.btn-info[disabled] { + color: #ffffff; +} + +.btn-inverse { + *background-color: #555555; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-inverse:hover, +.btn-inverse:focus, +.btn-inverse:active, +.btn-inverse.active, +.btn-inverse.disabled, +.btn-inverse[disabled] { + color: #ffffff; +} + +button.btn, +input[type="submit"].btn { + *padding-top: 3px; + *padding-bottom: 3px; +} + +button.btn::-moz-focus-inner, +input[type="submit"].btn::-moz-focus-inner { + padding: 0; + border: 0; +} + +button.btn.btn-large, +input[type="submit"].btn.btn-large { + *padding-top: 7px; + *padding-bottom: 7px; +} + +button.btn.btn-small, +input[type="submit"].btn.btn-small { + *padding-top: 0; + *padding-bottom: 0; +} + +button.btn.btn-mini, +input[type="submit"].btn.btn-mini { + *padding-top: 0; + *padding-bottom: 0; +} + +.btn-link, +.btn-link:active, +.btn-link[disabled] { + background-color: transparent; + background-image: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.btn-link { + color: #fefe54; + cursor: pointer; + border-color: transparent; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-link:hover, +.btn-link:focus { + color: #fefe54; + text-decoration: none; + background-color: #00aa00; +} + +.btn-link[disabled]:hover, +.btn-link[disabled]:focus { + color: #555555; + text-decoration: none; +} + +.btn-group { + position: relative; + display: inline-block; + *display: inline; + *margin-left: 0.3em; + font-size: 0; + white-space: nowrap; + vertical-align: middle; + *zoom: 1; +} + +.btn-group:first-child { + *margin-left: 0; +} + +.btn-group + .btn-group { + margin-left: 0; +} + +.btn-toolbar { + margin-top: 20px; + margin-bottom: 20px; + font-size: 0; +} + +.btn-toolbar > .btn + .btn, +.btn-toolbar > .btn-group + .btn, +.btn-toolbar > .btn + .btn-group { + margin-left: 5px; +} + +.btn-group > .btn { + position: relative; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-group > .btn + .btn { + margin-left: -1px; +} + +.btn-group > .btn, +.btn-group > .dropdown-menu, +.btn-group > .popover { + font-size: 18px; +} + +.btn-group > .btn-mini { + font-size: 18px; +} + +.btn-group > .btn-small { + font-size: 18px; +} + +.btn-group > .btn-large { + font-size: 18px; +} + +.btn-group > .btn:first-child { + margin-left: 0; + -webkit-border-bottom-left-radius: 0; + border-bottom-left-radius: 0; + -webkit-border-top-left-radius: 0; + border-top-left-radius: 0; + -moz-border-radius-bottomleft: 0; + -moz-border-radius-topleft: 0; +} + +.btn-group > .btn:last-child, +.btn-group > .dropdown-toggle { + -webkit-border-top-right-radius: 0; + border-top-right-radius: 0; + -webkit-border-bottom-right-radius: 0; + border-bottom-right-radius: 0; + -moz-border-radius-topright: 0; + -moz-border-radius-bottomright: 0; +} + +.btn-group > .btn.large:first-child { + margin-left: 0; + -webkit-border-bottom-left-radius: 0; + border-bottom-left-radius: 0; + -webkit-border-top-left-radius: 0; + border-top-left-radius: 0; + -moz-border-radius-bottomleft: 0; + -moz-border-radius-topleft: 0; +} + +.btn-group > .btn.large:last-child, +.btn-group > .large.dropdown-toggle { + -webkit-border-top-right-radius: 0; + border-top-right-radius: 0; + -webkit-border-bottom-right-radius: 0; + border-bottom-right-radius: 0; + -moz-border-radius-topright: 0; + -moz-border-radius-bottomright: 0; +} + +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} + +.btn-group > .btn + .dropdown-toggle { + *padding-top: 14px; + padding-right: 8px; + *padding-bottom: 14px; + padding-left: 8px; +} + +.btn-group > .btn-mini + .dropdown-toggle { + *padding-top: 2px; + padding-right: 5px; + *padding-bottom: 2px; + padding-left: 5px; +} + +.btn-group > .btn-small + .dropdown-toggle { + *padding-top: 5px; + *padding-bottom: 4px; +} + +.btn-group > .btn-large + .dropdown-toggle { + *padding-top: 7px; + padding-right: 12px; + *padding-bottom: 7px; + padding-left: 12px; +} + +.btn-group.open .dropdown-toggle { + background-image: none; +} + +.btn-group.open .btn.dropdown-toggle { + background-color: #aa5500; +} + +.btn-group.open .btn-primary.dropdown-toggle { + background-color: #fefe54; +} + +.btn-group.open .btn-warning.dropdown-toggle { + background-color: #a85400; +} + +.btn-group.open .btn-danger.dropdown-toggle { + background-color: #bd362f; +} + +.btn-group.open .btn-success.dropdown-toggle { + background-color: #51a351; +} + +.btn-group.open .btn-info.dropdown-toggle { + background-color: #2f96b4; +} + +.btn-group.open .btn-inverse.dropdown-toggle { + background-color: #555555; +} + +.btn .caret { + margin-top: 0; + margin-left: 0; +} + +.btn-large .caret { + margin-top: 0; +} + +.btn-large .caret { + border-top-width: 5px; + border-right-width: 5px; + border-left-width: 5px; +} + +.btn-mini .caret, +.btn-small .caret { + margin-top: 0; +} + +.dropup .btn-large .caret { + border-bottom-width: 5px; +} + +.btn-primary .caret, +.btn-warning .caret, +.btn-danger .caret, +.btn-info .caret, +.btn-success .caret, +.btn-inverse .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.btn-group-vertical { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; +} + +.btn-group-vertical > .btn { + display: block; + float: none; + max-width: 100%; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-group-vertical > .btn + .btn { + margin-top: -1px; + margin-left: 0; +} + +.btn-group-vertical > .btn:first-child { + -webkit-border-radius: 0 0px 0 0; + -moz-border-radius: 0 0px 0 0; + border-radius: 0 0px 0 0; +} + +.btn-group-vertical > .btn:last-child { + -webkit-border-radius: 0 0 0 0px; + -moz-border-radius: 0 0 0 0px; + border-radius: 0 0 0 0px; +} + +.btn-group-vertical > .btn-large:first-child { + -webkit-border-radius: 0 0px 0 0; + -moz-border-radius: 0 0px 0 0; + border-radius: 0 0px 0 0; +} + +.btn-group-vertical > .btn-large:last-child { + -webkit-border-radius: 0 0 0 0px; + -moz-border-radius: 0 0 0 0px; + border-radius: 0 0 0 0px; +} + +.alert { + padding: 8px 35px 8px 14px; + margin-bottom: 20px; + text-shadow: 0; + background-color: #00aaaa; + border: 1px solid #00aaaa; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.alert, +.alert h4 { + color: #ffffff; +} + +.alert h4 { + margin: 0; +} + +.alert .close { + position: relative; + top: -2px; + right: -21px; + line-height: 20px; +} + +.alert-success { + color: #00aa00; + background-color: #000000; + border-color: #000000; +} + +.alert-success h4 { + color: #00aa00; +} + +.alert-danger, +.alert-error { + color: #ffffff; + background-color: #aa0000; + border-color: #aa0000; +} + +.alert-danger h4, +.alert-error h4 { + color: #ffffff; +} + +.alert-info { + color: #000000; + background-color: #000000; + border-color: #000000; +} + +.alert-info h4 { + color: #000000; +} + +.alert-block { + padding-top: 14px; + padding-bottom: 14px; +} + +.alert-block > p, +.alert-block > ul { + margin-bottom: 0; +} + +.alert-block p + p { + margin-top: 5px; +} + +.nav { + margin-bottom: 20px; + margin-left: 0; + list-style: none; + background: #bbbbbb; +} + +.nav > li > a { + display: block; +} + +.nav > li > a::first-letter { + color: #aa0000; +} + +.nav > li > a:hover, +.nav > li > a:focus { + color: #bbbbbb; + text-decoration: none; + background-color: #000000; +} + +.nav > li > a > img { + max-width: none; +} + +.nav > .pull-right { + float: right; +} + +.nav-header { + display: block; + font-weight: normal; + line-height: 20px; + color: #000000; + text-transform: uppercase; +} + +.nav li + .nav-header { + line-height: 20px; +} + +.nav-list { + display: block; + padding: 10px 15px; + margin: 10px 5px; + margin-left: -5px; + border: 2px solid #000000; + -webkit-box-shadow: + 0 0 0 5px, + 11px 13px 0 4px black; + -moz-box-shadow: + 0 0 0 5px, + 11px 13px 0 4px black; + box-shadow: + 0 0 0 5px, + 11px 13px 0 4px black; +} + +.nav-list > li > a, +.nav-list .nav-header { + margin-right: -10px; + margin-left: -10px; +} + +.nav-list > li > a { + padding: 0 8px; + color: #000000; +} + +.nav-list > .active > a, +.nav-list > .active > a:hover, +.nav-list > .active > a:focus { + color: #ffffff; + background-color: #00aaaa; +} + +.nav-list [class^="icon-"], +.nav-list [class*=" icon-"] { + margin-right: 0; +} + +.nav-list .divider { + *width: 100%; + height: 1px; + margin: 9px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #000000; + border-bottom: 1px solid #000000; +} + +.nav-tabs, +.nav-pills { + *zoom: 1; +} + +.nav-tabs:before, +.nav-pills:before, +.nav-tabs:after, +.nav-pills:after { + display: table; + line-height: 0; + content: ""; +} + +.nav-tabs:after, +.nav-pills:after { + clear: both; +} + +.nav-tabs > li, +.nav-pills > li { + float: left; +} + +.nav-tabs > li > a, +.nav-pills > li > a { + padding-right: 8px; + padding-left: 8px; + margin-right: 0; + line-height: 20px; + color: #000000; +} + +.nav-tabs { + border-bottom: 0.5em solid #bbbbbb; +} + +.nav-tabs > li { + margin-bottom: -1px; +} + +.nav-tabs > li > a { + line-height: 20px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.nav-tabs > li > a:hover, +.nav-tabs > li > a:focus { + background: #000000; +} + +.nav-tabs > .active > a, +.nav-tabs > .active > a:hover, +.nav-tabs > .active > a:focus { + color: #bbbbbb; + cursor: default; + background-color: #000084; + border: 0; + border-bottom-color: transparent; +} + +.nav-pills > li > a { + padding-top: 0; + padding-bottom: 0; + margin-top: 0; + margin-bottom: 0; + line-height: 20px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.nav-pills > .active > a, +.nav-pills > .active > a:hover, +.nav-pills > .active > a:focus { + color: #bbbbbb; + background-color: #fefe54; +} + +.nav-stacked > li { + float: none; +} + +.nav-stacked > li > a { + margin-right: 0; +} + +.nav-tabs.nav-stacked { + border-bottom: 0; +} + +.nav-tabs.nav-stacked > li > a { + border: 1px solid #ddd; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.nav-tabs.nav-stacked > li:first-child > a { + -webkit-border-top-right-radius: 0; + border-top-right-radius: 0; + -webkit-border-top-left-radius: 0; + border-top-left-radius: 0; + -moz-border-radius-topright: 0; + -moz-border-radius-topleft: 0; +} + +.nav-tabs.nav-stacked > li:last-child > a { + -webkit-border-bottom-right-radius: 0; + border-bottom-right-radius: 0; + -webkit-border-bottom-left-radius: 0; + border-bottom-left-radius: 0; + -moz-border-radius-bottomright: 0; + -moz-border-radius-bottomleft: 0; +} + +.nav-tabs.nav-stacked > li > a:hover, +.nav-tabs.nav-stacked > li > a:focus { + z-index: 2; + border-color: #ddd; +} + +.nav-pills.nav-stacked > li > a { + margin-bottom: 3px; +} + +.nav-pills.nav-stacked > li:last-child > a { + margin-bottom: 1px; +} + +.nav-tabs .dropdown-menu { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.nav-pills .dropdown-menu { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.nav .dropdown-toggle .caret { + margin-top: 6px; + border-top-color: #fefe54; + border-bottom-color: #fefe54; +} + +.nav .dropdown-toggle:hover .caret, +.nav .dropdown-toggle:focus .caret { + border-top-color: #fefe54; + border-bottom-color: #fefe54; +} + +/* move down carets for tabs */ + +.nav .active .dropdown-toggle .caret { + border-top-color: #fff; + border-bottom-color: #fff; +} + +.nav-tabs .active .dropdown-toggle .caret { + border-top-color: #bbbbbb; + border-bottom-color: #bbbbbb; +} + +.nav > .dropdown.active > a:hover, +.nav > .dropdown.active > a:focus { + cursor: pointer; +} + +.nav-tabs .open .dropdown-toggle, +.nav-pills .open .dropdown-toggle, +.nav > li.dropdown.open.active > a:hover, +.nav > li.dropdown.open.active > a:focus { + color: #ffffff; + background-color: #bbbbbb; + border-color: #bbbbbb; +} + +.nav li.dropdown.open .caret, +.nav li.dropdown.open.active .caret, +.nav li.dropdown.open a:hover .caret, +.nav li.dropdown.open a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; + opacity: 1; + filter: alpha(opacity=100); +} + +.tabs-stacked .open > a:hover, +.tabs-stacked .open > a:focus { + border-color: #bbbbbb; +} + +.tabbable { + *zoom: 1; +} + +.tabbable:before, +.tabbable:after { + display: table; + line-height: 0; + content: ""; +} + +.tabbable:after { + clear: both; +} + +.tab-content { + overflow: auto; +} + +.tabs-below > .nav-tabs, +.tabs-right > .nav-tabs, +.tabs-left > .nav-tabs { + border-bottom: 0; +} + +.tab-content > .tab-pane, +.pill-content > .pill-pane { + display: none; +} + +.tab-content > .active, +.pill-content > .active { + display: block; +} + +.tabs-below > .nav-tabs { + border-top: 1px solid #ddd; +} + +.tabs-below > .nav-tabs > li { + margin-top: -1px; + margin-bottom: 0; +} + +.tabs-below > .nav-tabs > li > a { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.tabs-below > .nav-tabs > li > a:hover, +.tabs-below > .nav-tabs > li > a:focus { + border-top-color: #ddd; + border-bottom-color: transparent; +} + +.tabs-below > .nav-tabs > .active > a, +.tabs-below > .nav-tabs > .active > a:hover, +.tabs-below > .nav-tabs > .active > a:focus { + border-color: transparent #ddd #ddd #ddd; +} + +.tabs-left > .nav-tabs > li, +.tabs-right > .nav-tabs > li { + float: none; +} + +.tabs-left > .nav-tabs > li > a, +.tabs-right > .nav-tabs > li > a { + min-width: 74px; + margin-right: 0; + margin-bottom: 0; +} + +.tabs-left > .nav-tabs { + float: left; + margin-right: 18px; + border-right: 1px solid #ddd; +} + +.tabs-left > .nav-tabs > li > a { + margin-right: -1px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.tabs-left > .nav-tabs > li > a:hover, +.tabs-left > .nav-tabs > li > a:focus { + border-color: #bbbbbb #dddddd #bbbbbb #bbbbbb; +} + +.tabs-left > .nav-tabs .active > a, +.tabs-left > .nav-tabs .active > a:hover, +.tabs-left > .nav-tabs .active > a:focus { + border-color: #ddd transparent #ddd #ddd; + *border-right-color: #ffffff; +} + +.tabs-right > .nav-tabs { + float: right; + margin-left: 19px; + border-left: 1px solid #ddd; +} + +.tabs-right > .nav-tabs > li > a { + margin-left: -1px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.tabs-right > .nav-tabs > li > a:hover, +.tabs-right > .nav-tabs > li > a:focus { + border-color: #bbbbbb #bbbbbb #bbbbbb #dddddd; +} + +.tabs-right > .nav-tabs .active > a, +.tabs-right > .nav-tabs .active > a:hover, +.tabs-right > .nav-tabs .active > a:focus { + border-color: #ddd #ddd #ddd transparent; + *border-left-color: #ffffff; +} + +.nav > .disabled > a { + color: #bbbbbb; +} + +.nav > .disabled > a:hover, +.nav > .disabled > a:focus { + text-decoration: none; + cursor: default; + background-color: transparent; +} + +.navbar { + *position: relative; + *z-index: 2; + margin-bottom: 20px; + overflow: visible; +} + +.navbar-inner { + min-height: 20px; + padding-right: 12.4px; + padding-left: 12.4px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + *zoom: 1; + -webkit-box-shadow: 0; + -moz-box-shadow: 0; + box-shadow: 0; +} + +.navbar-inner:before, +.navbar-inner:after { + display: table; + line-height: 0; + content: ""; +} + +.navbar-inner:after { + clear: both; +} + +.navbar .container { + width: auto; +} + +.nav-collapse.collapse { + height: auto; + overflow: visible; +} + +.navbar .brand { + display: block; + float: left; + padding: 0 10px; + margin-left: -10px; + font-size: 18px; + color: #000084; + text-shadow: 0; +} + +.navbar .brand:hover, +.navbar .brand:focus { + text-decoration: none; +} + +.navbar-text { + margin-bottom: 0; + line-height: 20px; + color: #000000; +} + +.navbar-link { + color: #000000; +} + +.navbar-link:hover, +.navbar-link:focus { + color: #555555; +} + +.navbar .divider-vertical { + height: 20px; + margin: 0 12.4px; + border-right: 1px solid #ffffff; + border-left: 1px solid #bbbbbb; +} + +.navbar .btn, +.navbar .btn-group { + margin-top: -5px; +} + +.navbar .btn-group .btn, +.navbar .input-prepend .btn, +.navbar .input-append .btn, +.navbar .input-prepend .btn-group, +.navbar .input-append .btn-group { + margin-top: 0; +} + +.navbar-form { + margin-bottom: 0; + *zoom: 1; +} + +.navbar-form:before, +.navbar-form:after { + display: table; + line-height: 0; + content: ""; +} + +.navbar-form:after { + clear: both; +} + +.navbar-form input, +.navbar-form select, +.navbar-form .radio, +.navbar-form .checkbox { + margin-top: -5px; +} + +.navbar-form input, +.navbar-form select, +.navbar-form .btn { + display: inline-block; + margin-bottom: 0; + -webkit-box-shadow: 0 0; + -moz-box-shadow: 0 0; + box-shadow: 0 0; +} + +.navbar-form input[type="image"], +.navbar-form input[type="checkbox"], +.navbar-form input[type="radio"] { + margin-top: 3px; +} + +.navbar-form .input-append, +.navbar-form .input-prepend { + margin-top: 5px; + white-space: nowrap; +} + +.navbar-form .input-append input, +.navbar-form .input-prepend input { + margin-top: 0; +} + +.navbar-search { + position: relative; + float: left; + margin-top: -5px; + margin-bottom: 0; +} + +.navbar-search .search-query { + padding: 4px 12.4px; + margin-bottom: 0; + font-family: DOS, Monaco, Menlo, Consolas, "Courier New", monospace; + font-size: 18px; + font-weight: normal; + line-height: 1; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.navbar-static-top { + position: static; + margin-bottom: 0; +} + +.navbar-static-top .navbar-inner { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; + margin-bottom: 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-static-top .navbar-inner { + border-width: 0; +} + +.navbar-fixed-bottom .navbar-inner { + border-width: 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-fixed-bottom .navbar-inner { + padding-right: 0; + padding-left: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.navbar-static-top .container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 944px; +} + +.navbar-fixed-top { + top: 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-static-top .navbar-inner { + -webkit-box-shadow: 0; + -moz-box-shadow: 0; + box-shadow: 0; +} + +.navbar-fixed-bottom { + bottom: 0; +} + +.navbar-fixed-bottom .navbar-inner { + -webkit-box-shadow: 0; + -moz-box-shadow: 0; + box-shadow: 0; +} + +.navbar .nav { + position: relative; + left: 0; + display: block; + float: left; + margin: 0 20px 0 0; +} + +.navbar .nav.pull-right { + float: right; + margin-right: 0; +} + +.navbar .nav > li { + float: left; + padding-left: 0; +} + +.navbar .nav > li > a { + float: none; + padding: 0 10px; + color: #000000; + text-decoration: none; + text-shadow: 0; +} + +.navbar .nav .dropdown-toggle .caret { + margin-top: 0; +} + +.navbar .nav > li > a:focus, +.navbar .nav > li > a:hover { + color: #555555; + text-decoration: none; + background-color: transparent; +} + +.navbar .nav > .active > a, +.navbar .nav > .active > a:hover, +.navbar .nav > .active > a:focus { + color: #bbbbbb; + text-decoration: none; + background-color: #bbbbbb; +} + +.navbar .btn-navbar { + display: none; + float: right; + padding: 0 12.4px; + margin-right: 12.4px; + margin-left: 12.4px; + *background-color: #aeaeae; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.navbar .btn-navbar:hover, +.navbar .btn-navbar:focus, +.navbar .btn-navbar:active, +.navbar .btn-navbar.active, +.navbar .btn-navbar.disabled, +.navbar .btn-navbar[disabled] { + color: #ffffff; +} + +.navbar .btn-navbar .icon-bar { + display: block; + width: 18px; + height: 2px; + background-color: #f5f5f5; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-navbar .icon-bar + .icon-bar { + margin-top: 3px; +} + +.navbar .nav > li > .dropdown-menu:before { + position: absolute; + top: -7px; + left: 9px; + display: inline-block; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-left: 7px solid transparent; + border-bottom-color: rgba(0, 0, 0, 0.2); + content: ""; +} + +.navbar .nav > li > .dropdown-menu:after { + position: absolute; + top: -6px; + left: 10px; + display: inline-block; + border-right: 6px solid transparent; + border-bottom: 6px solid #ffffff; + border-left: 6px solid transparent; + content: ""; +} + +.navbar-fixed-bottom .nav > li > .dropdown-menu:before { + top: auto; + bottom: -7px; + border-top: 7px solid #ccc; + border-bottom: 0; + border-top-color: rgba(0, 0, 0, 0.2); +} + +.navbar-fixed-bottom .nav > li > .dropdown-menu:after { + top: auto; + bottom: -6px; + border-top: 6px solid #ffffff; + border-bottom: 0; +} + +.navbar .nav li.dropdown > a:hover .caret, +.navbar .nav li.dropdown > a:focus .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} + +.navbar .nav li.dropdown.open > .dropdown-toggle, +.navbar .nav li.dropdown.active > .dropdown-toggle, +.navbar .nav li.dropdown.open.active > .dropdown-toggle { + color: #bbbbbb; + background-color: #bbbbbb; +} + +.navbar .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #000000; + border-bottom-color: #000000; +} + +.navbar .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #bbbbbb; + border-bottom-color: #bbbbbb; +} + +.navbar .pull-right > li > .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu:before, +.navbar .nav > li > .dropdown-menu.pull-right:before { + right: 12px; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu:after, +.navbar .nav > li > .dropdown-menu.pull-right:after { + right: 13px; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu { + right: 100%; + left: auto; + margin-right: -1px; + margin-left: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.navbar-inverse .navbar-inner { + background: #bbbbbb; +} + +.navbar-inverse .brand, +.navbar-inverse .nav > li > a { + color: #000000; + text-shadow: 0; + background: #bbbbbb; +} + +.navbar-inverse .brand:hover, +.navbar-inverse .nav > li > a:hover, +.navbar-inverse .brand:focus, +.navbar-inverse .nav > li > a:focus { + color: #bbbbbb; + background: #000000; +} + +.navbar-inverse .brand { + color: #000084; +} + +.navbar-inverse .navbar-text { + color: #000000; +} + +.navbar-inverse .nav > li > a:focus, +.navbar-inverse .nav > li > a:hover { + color: #bbbbbb; + background: #000000; +} + +.navbar-inverse .nav .active > a, +.navbar-inverse .nav .active > a:hover, +.navbar-inverse .nav .active > a:focus { + color: #bbbbbb; + text-decoration: none; + background: #000000; +} + +.navbar-inverse .navbar-link { + color: #000000; +} + +.navbar-inverse .navbar-link:hover, +.navbar-inverse .navbar-link:focus { + color: #ffffff; +} + +.navbar-inverse .divider-vertical { + border-right-color: #000000; + border-left-color: #000000; +} + +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle, +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle, +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle { + color: #ffffff; + background-color: #000000; +} + +.navbar-inverse .nav li.dropdown > a:hover .caret, +.navbar-inverse .nav li.dropdown > a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #000000; + border-bottom-color: #000000; +} + +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar-inverse .navbar-search .search-query { + color: #ffffff; + background-color: #404040; + border-color: #000000; + -webkit-transition: none; + -moz-transition: none; + -o-transition: none; + transition: none; +} + +.navbar-inverse .navbar-search .search-query:-moz-placeholder { + color: #cccccc; +} + +.navbar-inverse .navbar-search .search-query:-ms-input-placeholder { + color: #cccccc; +} + +.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder { + color: #cccccc; +} + +.navbar-inverse .navbar-search .search-query:focus, +.navbar-inverse .navbar-search .search-query.focused { + padding: 0 20px; + color: #555555; + text-shadow: 0; + background-color: #ffffff; + border: 0; + outline: 0; +} + +.navbar-inverse .btn-navbar { + *background-color: #000000; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.navbar-inverse .btn-navbar:hover, +.navbar-inverse .btn-navbar:focus, +.navbar-inverse .btn-navbar:active, +.navbar-inverse .btn-navbar.active, +.navbar-inverse .btn-navbar.disabled, +.navbar-inverse .btn-navbar[disabled] { + color: #ffffff; +} + +.breadcrumb:before { + content: ">>"; +} + +.breadcrumb { + padding: 0 20px; + margin: 0 0 20px; + list-style: none; + background-color: #000000; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.breadcrumb > li { + display: inline-block; + *display: inline; + text-shadow: 0; + *zoom: 1; +} + +.breadcrumb > li > .divider { + padding: 0 10px; + color: #bbbbbb; +} + +.breadcrumb > .active { + color: #bbbbbb; +} + +.pagination { + margin: 20px 0; +} + +.pagination ul { + display: inline-block; + *display: inline; + margin-bottom: 0; + margin-left: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + *zoom: 1; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.pagination ul > li { + display: inline; +} + +.pagination ul > li > a, +.pagination ul > li > span { + float: left; + padding: 20px 10px; + line-height: 20px; + text-decoration: none; + background-color: #00aa00; + border: 0; + border-left-width: 0; +} + +.pagination ul > li > a:hover, +.pagination ul > li > a:focus, +.pagination ul > .active > a, +.pagination ul > .active > span { + background-color: #f5f5f5; +} + +.pagination ul > .active > a, +.pagination ul > .active > span { + color: #bbbbbb; + cursor: default; +} + +.pagination ul > .disabled > span, +.pagination ul > .disabled > a, +.pagination ul > .disabled > a:hover, +.pagination ul > .disabled > a:focus { + color: #bbbbbb; + cursor: default; + background-color: transparent; +} + +.pagination ul > li:first-child > a, +.pagination ul > li:first-child > span { + border-left-width: 1px; + -webkit-border-bottom-left-radius: 0; + border-bottom-left-radius: 0; + -webkit-border-top-left-radius: 0; + border-top-left-radius: 0; + -moz-border-radius-bottomleft: 0; + -moz-border-radius-topleft: 0; +} + +.pagination ul > li:last-child > a, +.pagination ul > li:last-child > span { + -webkit-border-top-right-radius: 0; + border-top-right-radius: 0; + -webkit-border-bottom-right-radius: 0; + border-bottom-right-radius: 0; + -moz-border-radius-topright: 0; + -moz-border-radius-bottomright: 0; +} + +.pagination-centered { + text-align: center; +} + +.pagination-right { + text-align: right; +} + +.pagination-large ul > li > a, +.pagination-large ul > li > span { + padding: 18px; + font-size: 18px; +} + +.pagination-large ul > li:first-child > a, +.pagination-large ul > li:first-child > span { + -webkit-border-bottom-left-radius: 0; + border-bottom-left-radius: 0; + -webkit-border-top-left-radius: 0; + border-top-left-radius: 0; + -moz-border-radius-bottomleft: 0; + -moz-border-radius-topleft: 0; +} + +.pagination-large ul > li:last-child > a, +.pagination-large ul > li:last-child > span { + -webkit-border-top-right-radius: 0; + border-top-right-radius: 0; + -webkit-border-bottom-right-radius: 0; + border-bottom-right-radius: 0; + -moz-border-radius-topright: 0; + -moz-border-radius-bottomright: 0; +} + +.pagination-mini ul > li:first-child > a, +.pagination-small ul > li:first-child > a, +.pagination-mini ul > li:first-child > span, +.pagination-small ul > li:first-child > span { + -webkit-border-bottom-left-radius: 0; + border-bottom-left-radius: 0; + -webkit-border-top-left-radius: 0; + border-top-left-radius: 0; + -moz-border-radius-bottomleft: 0; + -moz-border-radius-topleft: 0; +} + +.pagination-mini ul > li:last-child > a, +.pagination-small ul > li:last-child > a, +.pagination-mini ul > li:last-child > span, +.pagination-small ul > li:last-child > span { + -webkit-border-top-right-radius: 0; + border-top-right-radius: 0; + -webkit-border-bottom-right-radius: 0; + border-bottom-right-radius: 0; + -moz-border-radius-topright: 0; + -moz-border-radius-bottomright: 0; +} + +.pagination-small ul > li > a, +.pagination-small ul > li > span { + padding: 0; + font-size: 18px; +} + +.pagination-mini ul > li > a, +.pagination-mini ul > li > span { + padding: 0; + font-size: 18px; +} + +.pager { + margin: 20px 0; + text-align: center; + list-style: none; + *zoom: 1; +} + +.pager:before, +.pager:after { + display: table; + line-height: 0; + content: ""; +} + +.pager:after { + clear: both; +} + +.pager li { + display: inline; +} + +.pager li > a, +.pager li > span { + display: inline-block; + padding: 0 20px; + background-color: #555555; +} + +.pager li > a:hover, +.pager li > a:focus { + text-decoration: none; +} + +.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: #bbbbbb; + cursor: default; + background-color: #555555; +} + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000000; +} + +.modal-backdrop.fade { + opacity: 0; +} + +.modal-backdrop, +.modal-backdrop.fade.in { + opacity: 0.8; + filter: alpha(opacity=80); +} + +.modal { + position: fixed; + top: 10%; + left: 50%; + z-index: 1050; + width: 560px; + margin-left: -280px; + background-color: #ffffff; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, 0.3); + *border: 1px solid #999; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + outline: none; + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} + +.modal.fade { + top: -25%; +} + +.modal.fade.in { + top: 10%; +} + +.modal-header { + padding: 9px 15px; + border-bottom: 1px solid #eee; +} + +.modal-header .close { + margin-top: 2px; +} + +.modal-header h3 { + margin: 0; + line-height: 30px; +} + +.modal-body { + position: relative; + max-height: 400px; + padding: 15px; + overflow-y: auto; +} + +.modal-form { + margin-bottom: 0; +} + +.modal-footer { + padding: 14px 15px 15px; + margin-bottom: 0; + text-align: right; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + *zoom: 1; +} + +.modal-footer:before, +.modal-footer:after { + display: table; + line-height: 0; + 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; +} + +.tooltip { + position: absolute; + z-index: 1030; + display: block; + font-size: 18px; + line-height: 1; + opacity: 0; + filter: alpha(opacity=0); + visibility: visible; +} + +.tooltip.in { + opacity: 0.8; + filter: alpha(opacity=80); +} + +.tooltip.top { + padding: 9px 0 9px; + margin-top: -3px; +} + +.tooltip.right { + padding: 0 4px 0 4px; + margin-left: 3px; +} + +.tooltip.bottom { + padding: 9px 0 9px; + margin-top: 3px; +} + +.tooltip.left { + padding: 0 4px 0 4px; + margin-left: -3px; +} + +.tooltip-inner { + max-width: 310px; + padding: 9px 4px 9px 4px; + color: #ffffff; + text-align: center; + text-decoration: none; + background-color: #000000; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.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: #000000; + border-width: 5px 5px 0; +} + +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-right-color: #000000; + border-width: 5px 5px 5px 0; +} + +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-left-color: #000000; + border-width: 5px 0 5px 5px; +} + +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-bottom-color: #000000; + border-width: 0 5px 5px; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + max-width: 496px; + padding: 1px; + text-align: left; + white-space: normal; + background-color: #ffffff; + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + 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: #ffffff; + border-bottom: 1px solid #f2f2f2; +} + +.popover-title:empty { + display: none; +} + +.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: #ffffff; + border-bottom-width: 0; +} + +.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: #ffffff; + border-left-width: 0; +} + +.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: #ffffff; + border-top-width: 0; +} + +.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: #ffffff; + border-right-width: 0; +} + +.thumbnails { + margin-left: -16px; + list-style: none; + *zoom: 1; +} + +.thumbnails:before, +.thumbnails:after { + display: table; + line-height: 0; + content: ""; +} + +.thumbnails:after { + clear: both; +} + +.row-fluid .thumbnails { + margin-left: 0; +} + +.thumbnails > li { + float: left; + margin-bottom: 20px; + margin-left: 16px; +} + +.thumbnail { + display: block; + padding: 3px 6px; + margin: 4px 3px; + line-height: 20px; + border: 1px solid #ddd; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + -webkit-box-shadow: 0; + -moz-box-shadow: 0; + box-shadow: 0; +} + +a.thumbnail:hover, +a.thumbnail:focus { + border-color: #fefe54; + -webkit-box-shadow: 0; + -moz-box-shadow: 0; + box-shadow: 0; +} + +.thumbnail > img { + display: block; + max-width: 100%; + margin-right: auto; + margin-left: auto; +} + +.thumbnail .caption { + padding: 9px; + color: #bbbbbb; +} + +.media, +.media-body { + overflow: hidden; + *overflow: visible; + 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 { + margin-left: 0; + list-style: none; +} + +.label, +.badge { + display: inline-block; + padding: 0 12.4px; + font-size: 18px; + line-height: 20px; + color: #ffffff; + white-space: nowrap; + vertical-align: baseline; + background-color: #555555; +} + +.badge { + padding-right: 12.4px; + padding-left: 12.4px; +} + +.label:empty, +.badge:empty { + display: none; +} + +a.label:hover, +a.label:focus, +a.badge:hover, +a.badge:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} + +.label-important, +.badge-important { + background-color: #aa0000; +} + +.label-important[href], +.badge-important[href] { + background-color: #aa0000; +} + +.label-warning, +.badge-warning { + background-color: #a85400; +} + +.label-warning[href], +.badge-warning[href] { + background-color: #a85400; +} + +.label-success, +.badge-success { + background-color: #00aa00; +} + +.label-success[href], +.badge-success[href] { + background-color: #00aa00; +} + +.label-info, +.badge-info { + background-color: #000000; +} + +.label-info[href], +.badge-info[href] { + background-color: #000000; +} + +.label-inverse, +.badge-inverse { + background-color: #555555; +} + +.label-inverse[href], +.badge-inverse[href] { + background-color: #555555; +} + +.btn .label, +.btn .badge { + position: relative; + top: -1px; +} + +.btn-mini .label, +.btn-mini .badge { + top: 0; +} + +@-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; + } +} + +@-ms-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: #f7f7f7; + background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -webkit-gradient( + linear, + 0 0, + 0 100%, + from(#f5f5f5), + to(#f9f9f9) + ); + background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9); + background-repeat: repeat-x; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0); +} + +.progress .bar { + float: left; + width: 0; + height: 100%; + font-size: 12px; + color: #ffffff; + text-align: center; + text-shadow: 0; + background-color: #0e90d2; + background-image: -moz-linear-gradient(top, #149bdf, #0480be); + background-image: -webkit-gradient( + linear, + 0 0, + 0 100%, + from(#149bdf), + to(#0480be) + ); + background-image: -webkit-linear-gradient(top, #149bdf, #0480be); + background-image: -o-linear-gradient(top, #149bdf, #0480be); + background-image: linear-gradient(to bottom, #149bdf, #0480be); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0); + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: width 0.6s ease; + -moz-transition: width 0.6s ease; + -o-transition: width 0.6s ease; + transition: width 0.6s ease; +} + +.progress-striped .bar { + background-color: #149bdf; + 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: -o-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 + ); + -webkit-background-size: 40px 40px; + -moz-background-size: 40px 40px; + -o-background-size: 40px 40px; + background-size: 40px 40px; +} + +.progress.active .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-danger .bar, +.progress .bar-danger { + background-color: #dd514c; + background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -webkit-gradient( + linear, + 0 0, + 0 100%, + from(#ee5f5b), + to(#c43c35) + ); + background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); + background-image: linear-gradient(to bottom, #ee5f5b, #c43c35); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0); +} + +.progress-danger.progress-striped .bar, +.progress-striped .bar-danger { + background-color: #ee5f5b; + 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: -o-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-success .bar, +.progress .bar-success { + background-color: #5eb95e; + background-image: -moz-linear-gradient(top, #62c462, #57a957); + background-image: -webkit-gradient( + linear, + 0 0, + 0 100%, + from(#62c462), + to(#57a957) + ); + background-image: -webkit-linear-gradient(top, #62c462, #57a957); + background-image: -o-linear-gradient(top, #62c462, #57a957); + background-image: linear-gradient(to bottom, #62c462, #57a957); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0); +} + +.progress-success.progress-striped .bar, +.progress-striped .bar-success { + background-color: #62c462; + 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: -o-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-info .bar, +.progress .bar-info { + background-color: #4bb1cf; + background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); + background-image: -webkit-gradient( + linear, + 0 0, + 0 100%, + from(#5bc0de), + to(#339bb9) + ); + background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); + background-image: -o-linear-gradient(top, #5bc0de, #339bb9); + background-image: linear-gradient(to bottom, #5bc0de, #339bb9); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0); +} + +.progress-info.progress-striped .bar, +.progress-striped .bar-info { + background-color: #5bc0de; + 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: -o-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-warning .bar, +.progress .bar-warning { + background-color: #d66b00; + background-image: -moz-linear-gradient(top, #f47a00, #a85400); + background-image: -webkit-gradient( + linear, + 0 0, + 0 100%, + from(#f47a00), + to(#a85400) + ); + background-image: -webkit-linear-gradient(top, #f47a00, #a85400); + background-image: -o-linear-gradient(top, #f47a00, #a85400); + background-image: linear-gradient(to bottom, #f47a00, #a85400); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff47a00', endColorstr='#ffa85400', GradientType=0); +} + +.progress-warning.progress-striped .bar, +.progress-striped .bar-warning { + background-color: #f47a00; + 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: -o-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 + ); +} + +.accordion { + margin-bottom: 20px; +} + +.accordion-group { + margin-bottom: 2px; + border: 1px solid #e5e5e5; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.accordion-heading { + border-bottom: 0; +} + +.accordion-heading .accordion-toggle { + display: block; + padding: 8px 15px; +} + +.accordion-toggle { + cursor: pointer; +} + +.accordion-inner { + padding: 9px 15px; + border-top: 1px solid #e5e5e5; +} + +.carousel { + position: relative; + margin-bottom: 20px; + line-height: 1; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.carousel-inner > .item { + position: relative; + display: none; +} + +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + display: block; + 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: 40%; + left: 15px; + width: 40px; + height: 40px; + margin-top: -20px; + font-size: 60px; + font-weight: 100; + line-height: 30px; + color: #ffffff; + text-align: center; + background: #555555; + border: 3px solid #ffffff; + opacity: 0.5; + filter: alpha(opacity=50); +} + +.carousel-control.right { + right: 15px; + left: auto; +} + +.carousel-control:hover, +.carousel-control:focus { + color: #ffffff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} + +.carousel-indicators { + position: absolute; + top: 15px; + right: 15px; + z-index: 5; + margin: 0; + list-style: none; +} + +.carousel-indicators li { + display: block; + float: left; + width: 10px; + height: 10px; + margin-left: 5px; + text-indent: -999px; + background-color: #ccc; + background-color: rgba(255, 255, 255, 0.25); +} + +.carousel-indicators .active { + background-color: #fff; +} + +.carousel-caption { + position: absolute; + right: 0; + bottom: 0; + left: 0; + padding: 15px; + background: #555555; + background: rgba(0, 0, 0, 0.75); +} + +.carousel-caption h4, +.carousel-caption p { + line-height: 20px; + color: #ffffff; +} + +.carousel-caption h4 { + margin: 0 0 5px; +} + +.carousel-caption p { + margin-bottom: 0; +} + +.hero-unit { + padding: 16px 20.8px; + margin-bottom: 20px; + font-size: 18px; + line-height: 20px; + color: #ffffff; + background-color: #00aaaa; + border: 4px double #ffffff; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + box-shadow: 0 0 0 4px #00aaaa; +} + +.hero-unit h1 { + margin-bottom: 20px; + font-size: 18px; + line-height: 1; + color: #ffffff; + text-align: center; + text-decoration: blink; +} + +.hero-unit li { + line-height: 20px; +} + +.pull-right { + float: right; +} + +.pull-left { + float: left; +} + +.hide { + display: none; +} + +.show { + display: block; +} + +.invisible { + visibility: hidden; +} + +#wrap386 { + position: fixed; + right: 0; + bottom: 0; + z-index: 9999999; + width: 100%; + height: 100%; + background: #000084; +} + +#bar386 { + float: right; + width: 100%; + height: 20px; + margin-top: -20px; + font-weight: bold; + color: #ffffff; + background: #000084; +} + +#cursor386 { + position: fixed; + right: 0; + bottom: 0; + z-index: 9999999; + font-weight: bold; + color: #ffffff; +} diff --git a/web/static/css/bootstrap.min.css b/web/static/css/bootstrap.min.css @@ -0,0 +1,5226 @@ +/*! + * Bootstrap v2.3.1 + * + * Copyright 2012 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 @twitter by @mdo and @fat. + */ +.clearfix { + *zoom: 1; +} +.clearfix:before, +.clearfix:after { + display: table; + line-height: 0; + content: ""; +} +.clearfix:after { + clear: both; +} +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} +.input-block-level { + display: block; + width: 100%; + min-height: 20px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section { + display: block; +} +audio, +canvas, +video { + display: inline-block; + *display: inline; + *zoom: 1; +} +audio:not([controls]) { + display: none; +} +html { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} +a:focus { + outline: thin solid #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +a:hover, +a:active { + outline: 0; +} +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} +sup { + top: -0.5em; +} +sub { + bottom: -0.25em; +} +img { + width: auto\9; + height: auto; + max-width: 100%; + vertical-align: middle; + border: 0; + -ms-interpolation-mode: bicubic; +} +#map_canvas img, +.google-maps img { + max-width: none; +} +button, +input, +select, +textarea { + margin: 0; + font-size: 100%; + vertical-align: middle; +} +button, +input { + *overflow: visible; + line-height: normal; +} +button::-moz-focus-inner, +input::-moz-focus-inner { + padding: 0; + border: 0; +} +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor: pointer; + -webkit-appearance: button; +} +label, +select, +button, +input[type="button"], +input[type="reset"], +input[type="submit"], +input[type="radio"], +input[type="checkbox"] { + cursor: pointer; +} +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-decoration, +input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; +} +textarea { + overflow: auto; + vertical-align: top; +} +@media print { + * { + color: #000 !important; + text-shadow: none !important; + background: transparent !important; + box-shadow: none !important; + } + a, + a:visited { + text-decoration: none; + } + 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: 0.5cm; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } +} +@font-face { + font-family: "DOS"; + font-style: normal; + font-weight: normal; + src: url("fonts/Fixedsys500c.eot"); + src: + local("☺"), + url("fonts/Fixedsys500c.woff") format("woff"), + url("fonts/Fixedsys500c.ttf") format("truetype"), + url("fonts/Fixedsys500c.svg") format("svg"); +} +body { + margin: 0; + font-family: DOS, Monaco, Menlo, Consolas, "Courier New", monospace; + font-size: 18px; + line-height: 20px; + color: #bbb; + background-color: #000084; +} +a { + color: #fefe54; + text-decoration: none; +} +a:hover, +a:focus { + color: #fefe54; + background: #a50; +} +.img-rounded { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.img-polaroid { + padding: 9px 4px 9px 4px; + background-color: #fff; + border: 2px solid #000; +} +.row { + margin-left: -16px; + *zoom: 1; +} +.row:before, +.row:after { + display: table; + line-height: 0; + content: ""; +} +.row:after { + clear: both; +} +[class*="span"] { + float: left; + min-height: 1px; + margin-left: 16px; +} +.container, +.navbar-static-top .container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 944px; +} +.span12 { + width: 944px; +} +.span11 { + width: 864px; +} +.span10 { + width: 784px; +} +.span9 { + width: 704px; +} +.span8 { + width: 624px; +} +.span7 { + width: 544px; +} +.span6 { + width: 464px; +} +.span5 { + width: 384px; +} +.span4 { + width: 304px; +} +.span3 { + width: 224px; +} +.span2 { + width: 144px; +} +.span1 { + width: 64px; +} +.offset12 { + margin-left: 976px; +} +.offset11 { + margin-left: 896px; +} +.offset10 { + margin-left: 816px; +} +.offset9 { + margin-left: 736px; +} +.offset8 { + margin-left: 656px; +} +.offset7 { + margin-left: 576px; +} +.offset6 { + margin-left: 496px; +} +.offset5 { + margin-left: 416px; +} +.offset4 { + margin-left: 336px; +} +.offset3 { + margin-left: 256px; +} +.offset2 { + margin-left: 176px; +} +.offset1 { + margin-left: 96px; +} +.row-fluid { + width: 100%; + *zoom: 1; +} +.row-fluid:before, +.row-fluid:after { + display: table; + line-height: 0; + content: ""; +} +.row-fluid:after { + clear: both; +} +.row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 20px; + margin-left: 1.694915254237288%; + *margin-left: 1.6419491525423728%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.row-fluid [class*="span"]:first-child { + margin-left: 0; +} +.row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 1.694915254237288%; +} +.row-fluid .span12 { + width: 100%; + *width: 99.94703389830508%; +} +.row-fluid .span11 { + width: 91.52542372881356%; + *width: 91.47245762711864%; +} +.row-fluid .span10 { + width: 83.0508474576271%; + *width: 82.99788135593218%; +} +.row-fluid .span9 { + width: 74.57627118644066%; + *width: 74.52330508474574%; +} +.row-fluid .span8 { + width: 66.10169491525423%; + *width: 66.04872881355931%; +} +.row-fluid .span7 { + width: 57.6271186440678%; + *width: 57.574152542372886%; +} +.row-fluid .span6 { + width: 49.152542372881356%; + *width: 49.09957627118644%; +} +.row-fluid .span5 { + width: 40.677966101694906%; + *width: 40.62499999999999%; +} +.row-fluid .span4 { + width: 32.20338983050847%; + *width: 32.15042372881356%; +} +.row-fluid .span3 { + width: 23.728813559322035%; + *width: 23.675847457627118%; +} +.row-fluid .span2 { + width: 15.254237288135592%; + *width: 15.201271186440676%; +} +.row-fluid .span1 { + width: 6.779661016949152%; + *width: 6.726694915254237%; +} +.row-fluid .offset12 { + margin-left: 103.38983050847457%; + *margin-left: 103.28389830508473%; +} +.row-fluid .offset12:first-child { + margin-left: 101.69491525423729%; + *margin-left: 101.58898305084745%; +} +.row-fluid .offset11 { + margin-left: 94.91525423728814%; + *margin-left: 94.8093220338983%; +} +.row-fluid .offset11:first-child { + margin-left: 93.22033898305085%; + *margin-left: 93.11440677966101%; +} +.row-fluid .offset10 { + margin-left: 86.44067796610167%; + *margin-left: 86.33474576271183%; +} +.row-fluid .offset10:first-child { + margin-left: 84.74576271186439%; + *margin-left: 84.63983050847455%; +} +.row-fluid .offset9 { + margin-left: 77.96610169491524%; + *margin-left: 77.8601694915254%; +} +.row-fluid .offset9:first-child { + margin-left: 76.27118644067795%; + *margin-left: 76.16525423728811%; +} +.row-fluid .offset8 { + margin-left: 69.4915254237288%; + *margin-left: 69.38559322033896%; +} +.row-fluid .offset8:first-child { + margin-left: 67.79661016949152%; + *margin-left: 67.69067796610167%; +} +.row-fluid .offset7 { + margin-left: 61.016949152542374%; + *margin-left: 60.91101694915255%; +} +.row-fluid .offset7:first-child { + margin-left: 59.32203389830509%; + *margin-left: 59.21610169491526%; +} +.row-fluid .offset6 { + margin-left: 52.54237288135593%; + *margin-left: 52.436440677966104%; +} +.row-fluid .offset6:first-child { + margin-left: 50.847457627118644%; + *margin-left: 50.74152542372882%; +} +.row-fluid .offset5 { + margin-left: 44.06779661016948%; + *margin-left: 43.961864406779654%; +} +.row-fluid .offset5:first-child { + margin-left: 42.37288135593219%; + *margin-left: 42.26694915254237%; +} +.row-fluid .offset4 { + margin-left: 35.593220338983045%; + *margin-left: 35.48728813559322%; +} +.row-fluid .offset4:first-child { + margin-left: 33.89830508474576%; + *margin-left: 33.79237288135593%; +} +.row-fluid .offset3 { + margin-left: 27.11864406779661%; + *margin-left: 27.01271186440678%; +} +.row-fluid .offset3:first-child { + margin-left: 25.423728813559322%; + *margin-left: 25.317796610169488%; +} +.row-fluid .offset2 { + margin-left: 18.644067796610166%; + *margin-left: 18.538135593220336%; +} +.row-fluid .offset2:first-child { + margin-left: 16.94915254237288%; + *margin-left: 16.84322033898305%; +} +.row-fluid .offset1 { + margin-left: 10.169491525423728%; + *margin-left: 10.063559322033898%; +} +.row-fluid .offset1:first-child { + margin-left: 8.47457627118644%; + *margin-left: 8.36864406779661%; +} +[class*="span"].hide, +.row-fluid [class*="span"].hide { + display: none; +} +[class*="span"].pull-right, +.row-fluid [class*="span"].pull-right { + float: right; +} +.container { + margin-left: 20px; + *zoom: 1; +} +.container:before, +.container:after { + display: table; + line-height: 0; + content: ""; +} +.container:after { + clear: both; +} +.container-fluid { + padding-right: 16px; + padding-left: 16px; + *zoom: 1; +} +.container-fluid:before, +.container-fluid:after { + display: table; + line-height: 0; + content: ""; +} +.container-fluid:after { + clear: both; +} +img { + -webkit-filter: contrast(800%); + -moz-filter: contrast(1000%); + -ms-filter: contrast(800%); + -o-filter: contrast(800%); + filter: contrast(1000%); +} +p { + margin: 0 0 20px; +} +.lead { + padding: 9px 14px 9px 14px; + margin: 9px 4px 9px 4px; + font-size: 18px; + color: #fff; + border: 2px solid #bbb; +} +small { + font-size: 100%; +} +strong { + font-weight: normal; + color: #fff; +} +em { + font-weight: normal; + color: #fff; +} +cite { + font-style: normal; +} +i, +cite, +em, +var, +address, +dfn { + font-style: normal; +} +i:before, +cite:before, +em:before, +var:before, +address:before, +dfn:before, +i:after, +cite:after, +em:after, +var:after, +address:after, +dfn:after { + content: "/"; +} +.muted { + display: none; + color: #bbb; +} +.text-warning { + color: #fff; +} +a.text-warning:hover, +a.text-warning:focus { + color: #fff; +} +.text-error { + color: #fff; +} +a.text-error:hover, +a.text-error:focus { + color: #fff; +} +.text-info { + color: #000; +} +a.text-info:hover, +a.text-info:focus { + color: #000; +} +.text-success { + color: #0a0; +} +a.text-success:hover, +a.text-success:focus { + color: #0a0; +} +.text-left { + text-align: left; +} +.text-right { + text-align: right; +} +.text-center { + text-align: center; +} +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + font-family: inherit; + font-weight: inherit; + line-height: 20px; + color: #fff; + text-rendering: optimizelegibility; +} +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small { + font-weight: normal; + line-height: 1; + color: #bbb; +} +h1, +h2, +h3 { + line-height: 20px; +} +h3:before { + content: ">>> "; +} +h3:after { + content: " <<<"; +} +h1 { + font-size: 18px; + text-transform: uppercase; +} +h2 { + font-size: 18px; + text-align: center; + white-space: nowrap; +} +h3 { + font-size: 18px; +} +h4 { + font-size: 18px; + color: #fe54fe; +} +h5 { + font-size: 18px; +} +h6 { + font-size: 18px; +} +h1 small { + font-size: 18px; +} +h2 small { + font-size: 18px; +} +h3 small { + font-size: 18px; +} +h4 small { + font-size: 18px; +} +.page-header { + padding: 20px 20px; + margin: 20px 0 20px; + background: #0aa; +} +.page-header h1 { + color: #000; +} +ul, +ol { + padding: 0; + margin: 0 0 20px 18px; +} +ul { + list-style: square; +} +ol { + margin-left: 21px; + list-style: decimal; +} +ol > li { + padding-left: 0; +} +ul ul, +ul ol, +ol ol, +ol ul { + margin-bottom: 0; + list-style: square; +} +li { + padding-left: 4px; + margin-left: 0; + line-height: 20px; +} +ol > li { + margin-left: 12px; +} +ul.unstyled, +ol.unstyled { + margin-left: 0; + list-style: none; +} +ul.unstyled > li, +ol.unstyled > li { + padding-left: 0; +} +ul.inline, +ol.inline { + margin-left: 0; + list-style: none; +} +ul.inline > li, +ol.inline > li { + display: inline-block; + *display: inline; + padding-right: 9.5px; + padding-left: 10.7px; + *zoom: 1; +} +dl { + margin-bottom: 20px; +} +dt, +dd { + line-height: 20px; +} +dt { + font-weight: normal; +} +dd { + margin-left: 21px; +} +.dl-horizontal { + *zoom: 1; +} +.dl-horizontal:before, +.dl-horizontal:after { + display: table; + line-height: 0; + content: ""; +} +.dl-horizontal:after { + clear: both; +} +.dl-horizontal dt { + float: left; + width: 162px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; +} +.dl-horizontal dd { + margin-left: 182px; +} +hr { + margin: 6px 0 7px; + border: 0; + border-top: 0 solid #bbb; + border-bottom: 2px solid #fff; +} +abbr[title], +abbr[data-original-title] { + cursor: help; + border: 0; +} +abbr.initialism { + font-size: 90%; + text-transform: uppercase; +} +blockquote { + padding: 0 0 0 15px; + margin: 0 0 20px; + border-left: 5px solid #bbb; +} +blockquote p { + margin-bottom: 0; + font-size: 18px; + line-height: 20px; +} +blockquote small { + display: block; + line-height: 20px; + color: #bbb; +} +blockquote small:before { + content: "\2014 \00A0"; +} +blockquote.pull-right { + float: right; + padding-right: 1em; + padding-left: 0; + border-right: 5px solid #bbb; + 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: 20px; +} +code, +pre { + padding: 0; + font-family: DOS, Monaco, Menlo, Consolas, "Courier New", monospace; + font-size: 18px; + color: #555; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +code { + padding: 0; + color: #fff; + white-space: nowrap; + background-color: #000; + border: 0; +} +pre { + display: block; + padding: 0; + margin: 0 0 10px; + font-size: 18px; + font-weight: normal; + line-height: 20px; + word-break: break-all; + word-wrap: break-word; + white-space: pre; + white-space: pre-wrap; + background-color: #000; + border: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +pre.prettyprint { + margin-bottom: 20px; +} +pre code { + padding: 0; + color: inherit; + white-space: pre; + white-space: pre-wrap; + background-color: transparent; + border: 0; +} +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} +form { + margin: 0 0 20px; +} +fieldset { + padding: 0; + margin: 0; + border: 0; +} +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 18px; + line-height: 40px; + color: #fff; + border: 0; +} +legend small { + font-size: 20px; + color: #bbb; +} +legend:before { + content: "## "; +} +legend:after { + content: " ##"; +} +label, +input, +button, +select, +textarea { + font-size: 18px; + font-weight: normal; + line-height: 20px; +} +input, +button, +select, +textarea { + font-family: DOS, Monaco, Menlo, Consolas, "Courier New", monospace; +} +label { + display: block; + margin-bottom: 5px; +} +select, +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + display: inline-block; + height: 20px; + padding: 0; + margin: 10px 5px; + font-size: 18px; + line-height: 20px; + color: #000; + vertical-align: middle; + background: #bbb; + border: 2px solid #000; +} +input[type="text"]:before { + content: "["; +} +input[type="text"]:after { + content: "]"; +} +input, +textarea, +.uneditable-input { + width: 206px; +} +textarea { + height: auto; +} +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + background-color: #bbb; + border: 0; +} +textarea:focus, +input[type="text"]:focus, +input[type="password"]:focus, +input[type="datetime"]:focus, +input[type="datetime-local"]:focus, +input[type="date"]:focus, +input[type="month"]:focus, +input[type="time"]:focus, +input[type="week"]:focus, +input[type="number"]:focus, +input[type="email"]:focus, +input[type="url"]:focus, +input[type="search"]:focus, +input[type="tel"]:focus, +input[type="color"]:focus, +.uneditable-input:focus { + outline: 0; +} +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + *margin-top: 0; + line-height: normal; +} +input[type="file"], +input[type="image"], +input[type="submit"], +input[type="reset"], +input[type="button"], +input[type="radio"], +input[type="checkbox"] { + width: auto; +} +select, +input[type="file"] { + height: 20px; + *margin-top: 4px; + line-height: 20px; +} +select { + width: 220px; + background-color: #fff; + border: 1px solid #ccc; +} +select[multiple], +select[size] { + height: auto; +} +select:focus, +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: thin solid #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.uneditable-input, +.uneditable-textarea { + color: #bbb; + cursor: not-allowed; + background-color: #fcfcfc; + border-color: #ccc; +} +.uneditable-input { + overflow: hidden; + white-space: nowrap; +} +.uneditable-textarea { + width: auto; + height: auto; +} +input:-moz-placeholder, +textarea:-moz-placeholder { + color: #bbb; +} +input:-ms-input-placeholder, +textarea:-ms-input-placeholder { + color: #bbb; +} +input::-webkit-input-placeholder, +textarea::-webkit-input-placeholder { + color: #bbb; +} +.radio, +.checkbox { + min-height: 20px; + padding-left: 20px; +} +.radio input[type="radio"], +.checkbox input[type="checkbox"] { + float: left; + margin-left: -20px; +} +.controls > .radio:first-child, +.controls > .checkbox:first-child { + padding-top: 5px; +} +.radio.inline, +.checkbox.inline { + display: inline-block; + padding-top: 5px; + margin-bottom: 0; + vertical-align: middle; +} +.radio.inline + .radio.inline, +.checkbox.inline + .checkbox.inline { + margin-left: 10px; +} +.input-mini { + width: 60px; +} +.input-small { + width: 90px; +} +.input-medium { + width: 150px; +} +.input-large { + width: 210px; +} +.input-xlarge { + width: 270px; +} +.input-xxlarge { + width: 530px; +} +input[class*="span"], +select[class*="span"], +textarea[class*="span"], +.uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"] { + float: none; + margin-left: 0; +} +.input-append input[class*="span"], +.input-append .uneditable-input[class*="span"], +.input-prepend input[class*="span"], +.input-prepend .uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"], +.row-fluid .input-prepend [class*="span"], +.row-fluid .input-append [class*="span"] { + display: inline-block; +} +input, +textarea, +.uneditable-input { + margin-left: 0; +} +.controls-row [class*="span"] + [class*="span"] { + margin-left: 16px; +} +input.span12, +textarea.span12, +.uneditable-input.span12 { + width: 930px; +} +input.span11, +textarea.span11, +.uneditable-input.span11 { + width: 850px; +} +input.span10, +textarea.span10, +.uneditable-input.span10 { + width: 770px; +} +input.span9, +textarea.span9, +.uneditable-input.span9 { + width: 690px; +} +input.span8, +textarea.span8, +.uneditable-input.span8 { + width: 610px; +} +input.span7, +textarea.span7, +.uneditable-input.span7 { + width: 530px; +} +input.span6, +textarea.span6, +.uneditable-input.span6 { + width: 450px; +} +input.span5, +textarea.span5, +.uneditable-input.span5 { + width: 370px; +} +input.span4, +textarea.span4, +.uneditable-input.span4 { + width: 290px; +} +input.span3, +textarea.span3, +.uneditable-input.span3 { + width: 210px; +} +input.span2, +textarea.span2, +.uneditable-input.span2 { + width: 130px; +} +input.span1, +textarea.span1, +.uneditable-input.span1 { + width: 50px; +} +.controls-row { + *zoom: 1; +} +.controls-row:before, +.controls-row:after { + display: table; + line-height: 0; + content: ""; +} +.controls-row:after { + clear: both; +} +.controls-row [class*="span"], +.row-fluid .controls-row [class*="span"] { + float: left; +} +.controls-row .checkbox[class*="span"], +.controls-row .radio[class*="span"] { + padding-top: 5px; +} +input[disabled], +select[disabled], +textarea[disabled], +input[readonly], +select[readonly], +textarea[readonly] { + cursor: not-allowed; + background-color: #bbb; +} +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"][readonly], +input[type="checkbox"][readonly] { + background-color: transparent; +} +.control-group.warning .control-label, +.control-group.warning .help-block, +.control-group.warning .help-inline { + color: #fff; +} +.control-group.warning .checkbox, +.control-group.warning .radio, +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + color: #fff; +} +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + border-color: #fff; +} +.control-group.warning input:focus, +.control-group.warning select:focus, +.control-group.warning textarea:focus { + border-color: #fff; + -webkit-box-shadow: 0; + -moz-box-shadow: 0; + box-shadow: 0; +} +.control-group.warning .input-prepend .add-on, +.control-group.warning .input-append .add-on { + color: #fff; + background-color: #0aa; + border-color: #fff; +} +.control-group.error .control-label, +.control-group.error .help-block, +.control-group.error .help-inline { + color: #fff; +} +.control-group.error .checkbox, +.control-group.error .radio, +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + color: #fff; +} +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + border-color: #fff; +} +.control-group.error input:focus, +.control-group.error select:focus, +.control-group.error textarea:focus { + border-color: #fff; + -webkit-box-shadow: 0; + -moz-box-shadow: 0; + box-shadow: 0; +} +.control-group.error .input-prepend .add-on, +.control-group.error .input-append .add-on { + color: #fff; + background-color: #a00; + border-color: #fff; +} +.control-group.success .control-label, +.control-group.success .help-block, +.control-group.success .help-inline { + color: #0a0; +} +.control-group.success .checkbox, +.control-group.success .radio, +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + color: #0a0; +} +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + border-color: #0a0; +} +.control-group.success input:focus, +.control-group.success select:focus, +.control-group.success textarea:focus { + border-color: #0a0; + -webkit-box-shadow: 0; + -moz-box-shadow: 0; + box-shadow: 0; +} +.control-group.success .input-prepend .add-on, +.control-group.success .input-append .add-on { + color: #0a0; + background-color: #000; + border-color: #0a0; +} +.control-group.info .control-label, +.control-group.info .help-block, +.control-group.info .help-inline { + color: #000; +} +.control-group.info .checkbox, +.control-group.info .radio, +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + color: #000; +} +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + border-color: #000; +} +.control-group.info input:focus, +.control-group.info select:focus, +.control-group.info textarea:focus { + border-color: #000; + -webkit-box-shadow: 0; + -moz-box-shadow: 0; + box-shadow: 0; +} +.control-group.info .input-prepend .add-on, +.control-group.info .input-append .add-on { + color: #000; + background-color: #000; + border-color: #000; +} +input:focus:invalid, +textarea:focus:invalid, +select:focus:invalid { + color: #b94a48; + border-color: #ee5f5b; +} +input:focus:invalid:focus, +textarea:focus:invalid:focus, +select:focus:invalid:focus { + border-color: #e9322d; + -webkit-box-shadow: 0 0 6px #f8b9b7; + -moz-box-shadow: 0 0 6px #f8b9b7; + box-shadow: 0 0 6px #f8b9b7; +} +.form-actions { + padding: 19px 20px 20px; + margin-top: 20px; + margin-bottom: 20px; + background-color: #f5f5f5; + border-top: 1px solid #e5e5e5; + *zoom: 1; +} +.form-actions:before, +.form-actions:after { + display: table; + line-height: 0; + content: ""; +} +.form-actions:after { + clear: both; +} +.help-block, +.help-inline { + color: #e1e1e1; +} +.help-block { + display: block; + margin-bottom: 10px; +} +.help-inline { + display: inline-block; + *display: inline; + padding-left: 5px; + vertical-align: middle; + *zoom: 1; +} +.input-append, +.input-prepend { + display: inline-block; + margin-bottom: 10px; + font-size: 0; + white-space: nowrap; + vertical-align: middle; +} +.input-append input, +.input-prepend input, +.input-append select, +.input-prepend select, +.input-append .uneditable-input, +.input-prepend .uneditable-input, +.input-append .dropdown-menu, +.input-prepend .dropdown-menu, +.input-append .popover, +.input-prepend .popover { + font-size: 18px; +} +.input-append input, +.input-prepend input, +.input-append select, +.input-prepend select, +.input-append .uneditable-input, +.input-prepend .uneditable-input { + position: relative; + margin-bottom: 0; + *margin-left: 0; + vertical-align: top; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.input-append input:focus, +.input-prepend input:focus, +.input-append select:focus, +.input-prepend select:focus, +.input-append .uneditable-input:focus, +.input-prepend .uneditable-input:focus { + z-index: 2; +} +.input-append .add-on, +.input-prepend .add-on { + display: inline-block; + width: auto; + height: 20px; + min-width: 16px; + padding: 4px 5px; + font-size: 18px; + font-weight: normal; + line-height: 20px; + text-align: center; + text-shadow: 0; + background-color: #bbb; + border: 0; +} +.input-append .add-on, +.input-prepend .add-on, +.input-append .btn, +.input-prepend .btn, +.input-append .btn-group > .dropdown-toggle, +.input-prepend .btn-group > .dropdown-toggle { + vertical-align: top; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.input-prepend .add-on, +.input-prepend .btn { + margin-right: -1px; +} +.input-prepend .add-on:first-child, +.input-prepend .btn:first-child { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.input-append input, +.input-append select, +.input-append .uneditable-input { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.input-append input + .btn-group .btn:last-child, +.input-append select + .btn-group .btn:last-child, +.input-append .uneditable-input + .btn-group .btn:last-child { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.input-append .add-on, +.input-append .btn, +.input-append .btn-group { + margin-left: -1px; +} +.input-append .add-on:last-child, +.input-append .btn:last-child, +.input-append .btn-group:last-child > .dropdown-toggle { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.input-prepend.input-append input, +.input-prepend.input-append select, +.input-prepend.input-append .uneditable-input { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.input-prepend.input-append input + .btn-group .btn, +.input-prepend.input-append select + .btn-group .btn, +.input-prepend.input-append .uneditable-input + .btn-group .btn { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.input-prepend.input-append .add-on:first-child, +.input-prepend.input-append .btn:first-child { + margin-right: -1px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.input-prepend.input-append .add-on:last-child, +.input-prepend.input-append .btn:last-child { + margin-left: -1px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.input-prepend.input-append .btn-group:first-child { + margin-left: 0; +} +input.search-query { + padding-right: 14px; + padding-right: 4px \9; + padding-left: 14px; + padding-left: 4px \9; + margin-bottom: 0; +} +.form-search .input-append .search-query, +.form-search .input-prepend .search-query { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.form-search input, +.form-inline input, +.form-horizontal input, +.form-search textarea, +.form-inline textarea, +.form-horizontal textarea, +.form-search select, +.form-inline select, +.form-horizontal select, +.form-search .help-inline, +.form-inline .help-inline, +.form-horizontal .help-inline, +.form-search .uneditable-input, +.form-inline .uneditable-input, +.form-horizontal .uneditable-input, +.form-search .input-prepend, +.form-inline .input-prepend, +.form-horizontal .input-prepend, +.form-search .input-append, +.form-inline .input-append, +.form-horizontal .input-append { + display: inline-block; + *display: inline; + margin-bottom: 0; + vertical-align: middle; + *zoom: 1; +} +.form-search .hide, +.form-inline .hide, +.form-horizontal .hide { + display: none; +} +.form-search label, +.form-inline label, +.form-search .btn-group, +.form-inline .btn-group { + display: inline-block; +} +.form-search .input-append, +.form-inline .input-append, +.form-search .input-prepend, +.form-inline .input-prepend { + margin-bottom: 0; +} +.form-search .radio, +.form-search .checkbox, +.form-inline .radio, +.form-inline .checkbox { + padding-left: 0; + margin-bottom: 0; + vertical-align: middle; +} +.form-search .radio input[type="radio"], +.form-search .checkbox input[type="checkbox"], +.form-inline .radio input[type="radio"], +.form-inline .checkbox input[type="checkbox"] { + float: left; + margin-right: 3px; + margin-left: 0; +} +.control-group { + margin-bottom: 10px; +} +legend + .control-group { + margin-top: 20px; + -webkit-margin-top-collapse: separate; +} +.form-horizontal .control-group { + margin-bottom: 20px; + *zoom: 1; +} +.form-horizontal .control-group:before, +.form-horizontal .control-group:after { + display: table; + line-height: 0; + content: ""; +} +.form-horizontal .control-group:after { + clear: both; +} +.form-horizontal .control-label { + float: left; + width: 162px; + padding-top: 5px; + text-align: right; +} +.form-horizontal .controls { + *display: inline-block; + *padding-left: 20px; + margin-left: 182px; + *margin-left: 0; +} +.form-horizontal .controls:first-child { + *padding-left: 182px; +} +.form-horizontal .help-block { + margin-bottom: 0; +} +.form-horizontal input + .help-block, +.form-horizontal select + .help-block, +.form-horizontal textarea + .help-block, +.form-horizontal .uneditable-input + .help-block, +.form-horizontal .input-prepend + .help-block, +.form-horizontal .input-append + .help-block { + margin-top: 10px; +} +.form-horizontal .form-actions { + padding-left: 182px; +} +table { + max-width: 100%; + background-color: transparent; + border-collapse: collapse; + border-spacing: 0; +} +.table { + width: 100%; + margin-bottom: 20px; +} +.table th, +.table td { + padding: 8px; + line-height: 20px; + text-align: left; + vertical-align: top; + border-top: 2px solid #ddd; +} +.table th { + font-weight: normal; +} +.table thead th { + vertical-align: bottom; +} +.table caption + thead tr:first-child th, +.table caption + thead tr:first-child td, +.table colgroup + thead tr:first-child th, +.table colgroup + thead tr:first-child td, +.table thead:first-child tr:first-child th, +.table thead:first-child tr:first-child td { + border-top: 0; +} +.table tbody + tbody { + border-top: 2px solid #ddd; +} +.table .table { + background-color: #000084; +} +.table-condensed th, +.table-condensed td { + padding: 4px 5px; +} +.table-bordered { + margin-left: 4px; + border: 2px solid #ddd; + border-collapse: separate; + *border-collapse: collapse; + border-left: 0; +} +.table-bordered th, +.table-bordered td { + padding: inherit 5.2px; + border-left: 2px solid #ddd; +} +.table-bordered caption + thead tr:first-child th, +.table-bordered caption + tbody tr:first-child th, +.table-bordered caption + tbody tr:first-child td, +.table-bordered colgroup + thead tr:first-child th, +.table-bordered colgroup + tbody tr:first-child th, +.table-bordered colgroup + tbody tr:first-child td, +.table-bordered thead:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child td { + border-top: 0; +} +.table-bordered thead:first-child tr:first-child > th:first-child, +.table-bordered tbody:first-child tr:first-child > td:first-child, +.table-bordered tbody:first-child tr:first-child > th:first-child { + -webkit-border-top-left-radius: 0; + border-top-left-radius: 0; + -moz-border-radius-topleft: 0; +} +.table-bordered thead:first-child tr:first-child > th:last-child, +.table-bordered tbody:first-child tr:first-child > td:last-child, +.table-bordered tbody:first-child tr:first-child > th:last-child { + -webkit-border-top-right-radius: 0; + border-top-right-radius: 0; + -moz-border-radius-topright: 0; +} +.table-bordered thead:last-child tr:last-child > th:first-child, +.table-bordered tbody:last-child tr:last-child > td:first-child, +.table-bordered tbody:last-child tr:last-child > th:first-child, +.table-bordered tfoot:last-child tr:last-child > td:first-child, +.table-bordered tfoot:last-child tr:last-child > th:first-child { + -webkit-border-bottom-left-radius: 0; + border-bottom-left-radius: 0; + -moz-border-radius-bottomleft: 0; +} +.table-bordered thead:last-child tr:last-child > th:last-child, +.table-bordered tbody:last-child tr:last-child > td:last-child, +.table-bordered tbody:last-child tr:last-child > th:last-child, +.table-bordered tfoot:last-child tr:last-child > td:last-child, +.table-bordered tfoot:last-child tr:last-child > th:last-child { + -webkit-border-bottom-right-radius: 0; + border-bottom-right-radius: 0; + -moz-border-radius-bottomright: 0; +} +.table-bordered tfoot + tbody:last-child tr:last-child td:first-child { + -webkit-border-bottom-left-radius: 0; + border-bottom-left-radius: 0; + -moz-border-radius-bottomleft: 0; +} +.table-bordered tfoot + tbody:last-child tr:last-child td:last-child { + -webkit-border-bottom-right-radius: 0; + border-bottom-right-radius: 0; + -moz-border-radius-bottomright: 0; +} +.table-bordered caption + thead tr:first-child th:first-child, +.table-bordered caption + tbody tr:first-child td:first-child, +.table-bordered colgroup + thead tr:first-child th:first-child, +.table-bordered colgroup + tbody tr:first-child td:first-child { + -webkit-border-top-left-radius: 0; + border-top-left-radius: 0; + -moz-border-radius-topleft: 0; +} +.table-bordered caption + thead tr:first-child th:last-child, +.table-bordered caption + tbody tr:first-child td:last-child, +.table-bordered colgroup + thead tr:first-child th:last-child, +.table-bordered colgroup + tbody tr:first-child td:last-child { + -webkit-border-top-right-radius: 0; + border-top-right-radius: 0; + -moz-border-radius-topright: 0; +} +.table-striped tbody > tr:nth-child(odd) > td, +.table-striped tbody > tr:nth-child(odd) > th { + background-color: transparent; +} +.table-hover tbody tr:hover > td, +.table-hover tbody tr:hover > th { + background-color: #f5f5f5; +} +table td[class*="span"], +table th[class*="span"], +.row-fluid table td[class*="span"], +.row-fluid table th[class*="span"] { + display: table-cell; + float: none; + margin-left: 0; +} +.table td.span1, +.table th.span1 { + float: none; + width: 48px; + margin-left: 0; +} +.table td.span2, +.table th.span2 { + float: none; + width: 128px; + margin-left: 0; +} +.table td.span3, +.table th.span3 { + float: none; + width: 208px; + margin-left: 0; +} +.table td.span4, +.table th.span4 { + float: none; + width: 288px; + margin-left: 0; +} +.table td.span5, +.table th.span5 { + float: none; + width: 368px; + margin-left: 0; +} +.table td.span6, +.table th.span6 { + float: none; + width: 448px; + margin-left: 0; +} +.table td.span7, +.table th.span7 { + float: none; + width: 528px; + margin-left: 0; +} +.table td.span8, +.table th.span8 { + float: none; + width: 608px; + margin-left: 0; +} +.table td.span9, +.table th.span9 { + float: none; + width: 688px; + margin-left: 0; +} +.table td.span10, +.table th.span10 { + float: none; + width: 768px; + margin-left: 0; +} +.table td.span11, +.table th.span11 { + float: none; + width: 848px; + margin-left: 0; +} +.table td.span12, +.table th.span12 { + float: none; + width: 928px; + margin-left: 0; +} +.table tbody tr.success > td { + background-color: #000; +} +.table tbody tr.error > td { + background-color: #a00; +} +.table tbody tr.warning > td { + background-color: #0aa; +} +.table tbody tr.info > td { + background-color: #000; +} +.table-hover tbody tr.success:hover > td { + background-color: #000; +} +.table-hover tbody tr.error:hover > td { + background-color: #910000; +} +.table-hover tbody tr.warning:hover > td { + background-color: #009091; +} +.table-hover tbody tr.info:hover > td { + background-color: #000; +} +[class^="icon-"], +[class*=" icon-"] { + display: none; + width: 14px; + height: 14px; + margin-top: 1px; + *margin-right: 0.3em; + line-height: 20px; + vertical-align: text-top; + background-image: url("../img/glyphicons-halflings.png"); + background-position: 14px 14px; + background-repeat: no-repeat; +} +.icon-white, +.nav-pills > .active > a > [class^="icon-"], +.nav-pills > .active > a > [class*=" icon-"], +.nav-list > .active > a > [class^="icon-"], +.nav-list > .active > a > [class*=" icon-"], +.navbar-inverse .nav > .active > a > [class^="icon-"], +.navbar-inverse .nav > .active > a > [class*=" icon-"], +.dropdown-menu > li > a:hover > [class^="icon-"], +.dropdown-menu > li > a:focus > [class^="icon-"], +.dropdown-menu > li > a:hover > [class*=" icon-"], +.dropdown-menu > li > a:focus > [class*=" icon-"], +.dropdown-menu > .active > a > [class^="icon-"], +.dropdown-menu > .active > a > [class*=" icon-"], +.dropdown-submenu:hover > a > [class^="icon-"], +.dropdown-submenu:focus > a > [class^="icon-"], +.dropdown-submenu:hover > a > [class*=" icon-"], +.dropdown-submenu:focus > a > [class*=" icon-"] { + background-image: url("../img/glyphicons-halflings-white.png"); +} +.icon-glass { + background-position: 0 0; +} +.icon-music { + background-position: -24px 0; +} +.icon-search { + background-position: -48px 0; +} +.icon-envelope { + background-position: -72px 0; +} +.icon-heart { + background-position: -96px 0; +} +.icon-star { + background-position: -120px 0; +} +.icon-star-empty { + background-position: -144px 0; +} +.icon-user { + background-position: -168px 0; +} +.icon-film { + background-position: -192px 0; +} +.icon-th-large { + background-position: -216px 0; +} +.icon-th { + background-position: -240px 0; +} +.icon-th-list { + background-position: -264px 0; +} +.icon-ok { + background-position: -288px 0; +} +.icon-remove { + background-position: -312px 0; +} +.icon-zoom-in { + background-position: -336px 0; +} +.icon-zoom-out { + background-position: -360px 0; +} +.icon-off { + background-position: -384px 0; +} +.icon-signal { + background-position: -408px 0; +} +.icon-cog { + background-position: -432px 0; +} +.icon-trash { + background-position: -456px 0; +} +.icon-home { + background-position: 0 -24px; +} +.icon-file { + background-position: -24px -24px; +} +.icon-time { + background-position: -48px -24px; +} +.icon-road { + background-position: -72px -24px; +} +.icon-download-alt { + background-position: -96px -24px; +} +.icon-download { + background-position: -120px -24px; +} +.icon-upload { + background-position: -144px -24px; +} +.icon-inbox { + background-position: -168px -24px; +} +.icon-play-circle { + background-position: -192px -24px; +} +.icon-repeat { + background-position: -216px -24px; +} +.icon-refresh { + background-position: -240px -24px; +} +.icon-list-alt { + background-position: -264px -24px; +} +.icon-lock { + background-position: -287px -24px; +} +.icon-flag { + background-position: -312px -24px; +} +.icon-headphones { + background-position: -336px -24px; +} +.icon-volume-off { + background-position: -360px -24px; +} +.icon-volume-down { + background-position: -384px -24px; +} +.icon-volume-up { + background-position: -408px -24px; +} +.icon-qrcode { + background-position: -432px -24px; +} +.icon-barcode { + background-position: -456px -24px; +} +.icon-tag { + background-position: 0 -48px; +} +.icon-tags { + background-position: -25px -48px; +} +.icon-book { + background-position: -48px -48px; +} +.icon-bookmark { + background-position: -72px -48px; +} +.icon-print { + background-position: -96px -48px; +} +.icon-camera { + background-position: -120px -48px; +} +.icon-font { + background-position: -144px -48px; +} +.icon-bold { + background-position: -167px -48px; +} +.icon-italic { + background-position: -192px -48px; +} +.icon-text-height { + background-position: -216px -48px; +} +.icon-text-width { + background-position: -240px -48px; +} +.icon-align-left { + background-position: -264px -48px; +} +.icon-align-center { + background-position: -288px -48px; +} +.icon-align-right { + background-position: -312px -48px; +} +.icon-align-justify { + background-position: -336px -48px; +} +.icon-list { + background-position: -360px -48px; +} +.icon-indent-left { + background-position: -384px -48px; +} +.icon-indent-right { + background-position: -408px -48px; +} +.icon-facetime-video { + background-position: -432px -48px; +} +.icon-picture { + background-position: -456px -48px; +} +.icon-pencil { + background-position: 0 -72px; +} +.icon-map-marker { + background-position: -24px -72px; +} +.icon-adjust { + background-position: -48px -72px; +} +.icon-tint { + background-position: -72px -72px; +} +.icon-edit { + background-position: -96px -72px; +} +.icon-share { + background-position: -120px -72px; +} +.icon-check { + background-position: -144px -72px; +} +.icon-move { + background-position: -168px -72px; +} +.icon-step-backward { + background-position: -192px -72px; +} +.icon-fast-backward { + background-position: -216px -72px; +} +.icon-backward { + background-position: -240px -72px; +} +.icon-play { + background-position: -264px -72px; +} +.icon-pause { + background-position: -288px -72px; +} +.icon-stop { + background-position: -312px -72px; +} +.icon-forward { + background-position: -336px -72px; +} +.icon-fast-forward { + background-position: -360px -72px; +} +.icon-step-forward { + background-position: -384px -72px; +} +.icon-eject { + background-position: -408px -72px; +} +.icon-chevron-left { + background-position: -432px -72px; +} +.icon-chevron-right { + background-position: -456px -72px; +} +.icon-plus-sign { + background-position: 0 -96px; +} +.icon-minus-sign { + background-position: -24px -96px; +} +.icon-remove-sign { + background-position: -48px -96px; +} +.icon-ok-sign { + background-position: -72px -96px; +} +.icon-question-sign { + background-position: -96px -96px; +} +.icon-info-sign { + background-position: -120px -96px; +} +.icon-screenshot { + background-position: -144px -96px; +} +.icon-remove-circle { + background-position: -168px -96px; +} +.icon-ok-circle { + background-position: -192px -96px; +} +.icon-ban-circle { + background-position: -216px -96px; +} +.icon-arrow-left { + background-position: -240px -96px; +} +.icon-arrow-right { + background-position: -264px -96px; +} +.icon-arrow-up { + background-position: -289px -96px; +} +.icon-arrow-down { + background-position: -312px -96px; +} +.icon-share-alt { + background-position: -336px -96px; +} +.icon-resize-full { + background-position: -360px -96px; +} +.icon-resize-small { + background-position: -384px -96px; +} +.icon-plus { + background-position: -408px -96px; +} +.icon-minus { + background-position: -433px -96px; +} +.icon-asterisk { + background-position: -456px -96px; +} +.icon-exclamation-sign { + background-position: 0 -120px; +} +.icon-gift { + background-position: -24px -120px; +} +.icon-leaf { + background-position: -48px -120px; +} +.icon-fire { + background-position: -72px -120px; +} +.icon-eye-open { + background-position: -96px -120px; +} +.icon-eye-close { + background-position: -120px -120px; +} +.icon-warning-sign { + background-position: -144px -120px; +} +.icon-plane { + background-position: -168px -120px; +} +.icon-calendar { + background-position: -192px -120px; +} +.icon-random { + width: 16px; + background-position: -216px -120px; +} +.icon-comment { + background-position: -240px -120px; +} +.icon-magnet { + background-position: -264px -120px; +} +.icon-chevron-up { + background-position: -288px -120px; +} +.icon-chevron-down { + background-position: -313px -119px; +} +.icon-retweet { + background-position: -336px -120px; +} +.icon-shopping-cart { + background-position: -360px -120px; +} +.icon-folder-close { + width: 16px; + background-position: -384px -120px; +} +.icon-folder-open { + width: 16px; + background-position: -408px -120px; +} +.icon-resize-vertical { + background-position: -432px -119px; +} +.icon-resize-horizontal { + background-position: -456px -118px; +} +.icon-hdd { + background-position: 0 -144px; +} +.icon-bullhorn { + background-position: -24px -144px; +} +.icon-bell { + background-position: -48px -144px; +} +.icon-certificate { + background-position: -72px -144px; +} +.icon-thumbs-up { + background-position: -96px -144px; +} +.icon-thumbs-down { + background-position: -120px -144px; +} +.icon-hand-right { + background-position: -144px -144px; +} +.icon-hand-left { + background-position: -168px -144px; +} +.icon-hand-up { + background-position: -192px -144px; +} +.icon-hand-down { + background-position: -216px -144px; +} +.icon-circle-arrow-right { + background-position: -240px -144px; +} +.icon-circle-arrow-left { + background-position: -264px -144px; +} +.icon-circle-arrow-up { + background-position: -288px -144px; +} +.icon-circle-arrow-down { + background-position: -312px -144px; +} +.icon-globe { + background-position: -336px -144px; +} +.icon-wrench { + background-position: -360px -144px; +} +.icon-tasks { + background-position: -384px -144px; +} +.icon-filter { + background-position: -408px -144px; +} +.icon-briefcase { + background-position: -432px -144px; +} +.icon-fullscreen { + background-position: -456px -144px; +} +.dropup, +.dropdown { + position: relative; +} +.dropdown-toggle { + *margin-bottom: -3px; +} +.dropdown-toggle:active, +.open .dropdown-toggle { + outline: 0; +} +.caret { + display: inline-block; + width: 0; + height: 0; + vertical-align: top; +} +.caret:before { + content: "▼"; +} +.dropdown .caret { + margin-top: 8px; + margin-left: 2px; +} +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 9px 4px 9px 4px; + margin: -15.5px 4px 8px 4px; + list-style: none; + background-color: #bbb; + border: 1px solid #000; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + -webkit-box-shadow: 0 0 0 5px #bbb; + -moz-box-shadow: 0 0 0 5px #bbb; + box-shadow: 0 0 0 5px #bbb; + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} +.dropdown-menu.pull-right { + right: 0; + left: auto; +} +.dropdown-menu .divider { + *width: 100%; + height: 1px; + height: 0; + margin: 9px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #000; +} +.dropdown-menu > li > a { + display: block; + padding: 0 10px; + clear: both; + font-weight: normal; + line-height: 20px; + color: #000; + white-space: nowrap; +} +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus, +.dropdown-submenu:hover > a, +.dropdown-submenu:focus > a { + color: #bbb; + text-decoration: none; +} +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: #bbb; + text-decoration: none; + background-color: #fefe4a; + background-image: -moz-linear-gradient(top, #fefe54, #fefe3b); + background-image: -webkit-gradient( + linear, + 0 0, + 0 100%, + from(#fefe54), + to(#fefe3b) + ); + background-image: -webkit-linear-gradient(top, #fefe54, #fefe3b); + background-image: -o-linear-gradient(top, #fefe54, #fefe3b); + background-image: linear-gradient(to bottom, #fefe54, #fefe3b); + background-repeat: repeat-x; + outline: 0; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffefe54',endColorstr='#fffefe3b',GradientType=0); +} +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #bbb; +} +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + text-decoration: none; + cursor: default; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} +.open { + *z-index: 1000; +} +.open > .dropdown-menu { + display: block; +} +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + border-top: 0; + border-bottom: 1px solid #000; + content: ""; +} +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} +.dropdown-submenu { + position: relative; +} +.dropdown-submenu > .dropdown-menu { + top: 0; + left: 100%; + margin-top: -6px; + margin-left: -1px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.dropdown-submenu:hover > .dropdown-menu { + display: block; +} +.dropup .dropdown-submenu > .dropdown-menu { + top: auto; + bottom: 0; + margin-top: 0; + margin-bottom: -2px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.dropdown-submenu > a:after { + display: block; + float: right; + width: 0; + height: 0; + margin-top: 5px; + margin-right: -10px; + border-color: transparent; + border-left-color: #ccc; + border-style: solid; + border-width: 1px; + content: " "; +} +.dropdown-submenu:hover > a:after { + border-left-color: #bbb; +} +.dropdown-submenu.pull-left { + float: none; +} +.dropdown-submenu.pull-left > .dropdown-menu { + left: -100%; + margin-left: 10px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.dropdown .dropdown-menu .nav-header { + padding-right: 16px; + padding-left: 16px; +} +.typeahead { + z-index: 1051; + margin-top: 2px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0); +} +.well-large { + padding: 24px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.well-small { + padding: 9px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + -moz-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} +.fade.in { + opacity: 1; +} +.collapse { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + -moz-transition: height 0.35s ease; + -o-transition: height 0.35s ease; + transition: height 0.35s ease; +} +.collapse.in { + height: auto; +} +.close { + float: right; + font-size: 18px; + font-weight: normal; + line-height: 20px; + color: #000; + opacity: 0.2; + filter: alpha(opacity=20); +} +.close:hover, +.close:focus { + color: #000; + text-decoration: none; + cursor: pointer; +} +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} +.btn:hover:before, +.btn:hover:after { + color: #fff; +} +.btn:before { + content: "< "; +} +.btn:after { + content: " >"; +} +.btn { + display: inline-block; + *display: inline; + padding: 0 10px; + margin-bottom: 20px; + *margin-left: 0.3em; + font-size: 18px; + line-height: 20px; + color: #000; + text-align: center; + vertical-align: middle; + cursor: default; + background: #bbb; + border: 0; + border-width: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + *zoom: 1; + -webkit-box-shadow: 10px 10px 0 #000; + -moz-box-shadow: 10px 10px 0 #000; + box-shadow: 10px 10px 0 #000; +} +.btn:first-child { + *margin-left: 0; +} +.btn:hover, +.btn:focus { + color: #fff; + text-decoration: none; + background: #555; + outline: 0; +} +.btn:focus { + outline: thin solid #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.btn.active, +.btn:active { + margin: 10px 0 10px 10px; + outline: 0; + -webkit-box-shadow: 0; + -moz-box-shadow: 0; + box-shadow: 0; +} +.btn.disabled, +.btn[disabled] { + cursor: default; + background-image: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +.btn-large { + padding: 10px 10px; + font-size: 18px; + color: #000; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.btn-large [class^="icon-"], +.btn-large [class*=" icon-"] { + margin-top: 4px; +} +.btn-small { + padding: 0; + font-size: 18px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.btn-small [class^="icon-"], +.btn-small [class*=" icon-"] { + margin-top: 0; +} +.btn-mini [class^="icon-"], +.btn-mini [class*=" icon-"] { + margin-top: -1px; +} +.btn-mini { + padding: 0; + font-size: 18px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.btn-block { + display: block; + width: 100%; + padding-right: 0; + padding-left: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.btn-block + .btn-block { + margin-top: 5px; +} +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} +.btn-primary { + color: #000; + background: #bbb; +} +.btn-warning { + *background-color: #f47a00; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} +.btn-warning:hover, +.btn-warning:focus, +.btn-warning:active, +.btn-warning.active, +.btn-warning.disabled, +.btn-warning[disabled] { + color: #fff; +} +.btn-danger { + *background-color: #ee5f5b; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} +.btn-danger:hover, +.btn-danger:focus, +.btn-danger:active, +.btn-danger.active, +.btn-danger.disabled, +.btn-danger[disabled] { + color: #fff; +} +.btn-success { + *background-color: #62c462; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} +.btn-success:hover, +.btn-success:focus, +.btn-success:active, +.btn-success.active, +.btn-success.disabled, +.btn-success[disabled] { + color: #fff; +} +.btn-info { + *background-color: #5bc0de; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} +.btn-info:hover, +.btn-info:focus, +.btn-info:active, +.btn-info.active, +.btn-info.disabled, +.btn-info[disabled] { + color: #fff; +} +.btn-inverse { + *background-color: #555; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} +.btn-inverse:hover, +.btn-inverse:focus, +.btn-inverse:active, +.btn-inverse.active, +.btn-inverse.disabled, +.btn-inverse[disabled] { + color: #fff; +} +button.btn, +input[type="submit"].btn { + *padding-top: 3px; + *padding-bottom: 3px; +} +button.btn::-moz-focus-inner, +input[type="submit"].btn::-moz-focus-inner { + padding: 0; + border: 0; +} +button.btn.btn-large, +input[type="submit"].btn.btn-large { + *padding-top: 7px; + *padding-bottom: 7px; +} +button.btn.btn-small, +input[type="submit"].btn.btn-small { + *padding-top: 0; + *padding-bottom: 0; +} +button.btn.btn-mini, +input[type="submit"].btn.btn-mini { + *padding-top: 0; + *padding-bottom: 0; +} +.btn-link, +.btn-link:active, +.btn-link[disabled] { + background-color: transparent; + background-image: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +.btn-link { + color: #fefe54; + cursor: pointer; + border-color: transparent; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.btn-link:hover, +.btn-link:focus { + color: #fefe54; + text-decoration: none; + background-color: #0a0; +} +.btn-link[disabled]:hover, +.btn-link[disabled]:focus { + color: #555; + text-decoration: none; +} +.btn-group { + position: relative; + display: inline-block; + *display: inline; + *margin-left: 0.3em; + font-size: 0; + white-space: nowrap; + vertical-align: middle; + *zoom: 1; +} +.btn-group:first-child { + *margin-left: 0; +} +.btn-group + .btn-group { + margin-left: 0; +} +.btn-toolbar { + margin-top: 20px; + margin-bottom: 20px; + font-size: 0; +} +.btn-toolbar > .btn + .btn, +.btn-toolbar > .btn-group + .btn, +.btn-toolbar > .btn + .btn-group { + margin-left: 5px; +} +.btn-group > .btn { + position: relative; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.btn-group > .btn + .btn { + margin-left: -1px; +} +.btn-group > .btn, +.btn-group > .dropdown-menu, +.btn-group > .popover { + font-size: 18px; +} +.btn-group > .btn-mini { + font-size: 18px; +} +.btn-group > .btn-small { + font-size: 18px; +} +.btn-group > .btn-large { + font-size: 18px; +} +.btn-group > .btn:first-child { + margin-left: 0; + -webkit-border-bottom-left-radius: 0; + border-bottom-left-radius: 0; + -webkit-border-top-left-radius: 0; + border-top-left-radius: 0; + -moz-border-radius-bottomleft: 0; + -moz-border-radius-topleft: 0; +} +.btn-group > .btn:last-child, +.btn-group > .dropdown-toggle { + -webkit-border-top-right-radius: 0; + border-top-right-radius: 0; + -webkit-border-bottom-right-radius: 0; + border-bottom-right-radius: 0; + -moz-border-radius-topright: 0; + -moz-border-radius-bottomright: 0; +} +.btn-group > .btn.large:first-child { + margin-left: 0; + -webkit-border-bottom-left-radius: 0; + border-bottom-left-radius: 0; + -webkit-border-top-left-radius: 0; + border-top-left-radius: 0; + -moz-border-radius-bottomleft: 0; + -moz-border-radius-topleft: 0; +} +.btn-group > .btn.large:last-child, +.btn-group > .large.dropdown-toggle { + -webkit-border-top-right-radius: 0; + border-top-right-radius: 0; + -webkit-border-bottom-right-radius: 0; + border-bottom-right-radius: 0; + -moz-border-radius-topright: 0; + -moz-border-radius-bottomright: 0; +} +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} +.btn-group > .btn + .dropdown-toggle { + *padding-top: 14px; + padding-right: 8px; + *padding-bottom: 14px; + padding-left: 8px; +} +.btn-group > .btn-mini + .dropdown-toggle { + *padding-top: 2px; + padding-right: 5px; + *padding-bottom: 2px; + padding-left: 5px; +} +.btn-group > .btn-small + .dropdown-toggle { + *padding-top: 5px; + *padding-bottom: 4px; +} +.btn-group > .btn-large + .dropdown-toggle { + *padding-top: 7px; + padding-right: 12px; + *padding-bottom: 7px; + padding-left: 12px; +} +.btn-group.open .dropdown-toggle { + background-image: none; +} +.btn-group.open .btn.dropdown-toggle { + background-color: #a50; +} +.btn-group.open .btn-primary.dropdown-toggle { + background-color: #fefe54; +} +.btn-group.open .btn-warning.dropdown-toggle { + background-color: #a85400; +} +.btn-group.open .btn-danger.dropdown-toggle { + background-color: #bd362f; +} +.btn-group.open .btn-success.dropdown-toggle { + background-color: #51a351; +} +.btn-group.open .btn-info.dropdown-toggle { + background-color: #2f96b4; +} +.btn-group.open .btn-inverse.dropdown-toggle { + background-color: #555; +} +.btn .caret { + margin-top: 0; + margin-left: 0; +} +.btn-large .caret { + margin-top: 0; +} +.btn-large .caret { + border-top-width: 5px; + border-right-width: 5px; + border-left-width: 5px; +} +.btn-mini .caret, +.btn-small .caret { + margin-top: 0; +} +.dropup .btn-large .caret { + border-bottom-width: 5px; +} +.btn-primary .caret, +.btn-warning .caret, +.btn-danger .caret, +.btn-info .caret, +.btn-success .caret, +.btn-inverse .caret { + border-top-color: #fff; + border-bottom-color: #fff; +} +.btn-group-vertical { + display: inline-block; + *display: inline; + *zoom: 1; +} +.btn-group-vertical > .btn { + display: block; + float: none; + max-width: 100%; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.btn-group-vertical > .btn + .btn { + margin-top: -1px; + margin-left: 0; +} +.btn-group-vertical > .btn:first-child { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.btn-group-vertical > .btn:last-child { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.btn-group-vertical > .btn-large:first-child { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.btn-group-vertical > .btn-large:last-child { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.alert { + padding: 8px 35px 8px 14px; + margin-bottom: 20px; + text-shadow: 0; + background-color: #0aa; + border: 1px solid #0aa; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.alert, +.alert h4 { + color: #fff; +} +.alert h4 { + margin: 0; +} +.alert .close { + position: relative; + top: -2px; + right: -21px; + line-height: 20px; +} +.alert-success { + color: #0a0; + background-color: #000; + border-color: #000; +} +.alert-success h4 { + color: #0a0; +} +.alert-danger, +.alert-error { + color: #fff; + background-color: #a00; + border-color: #a00; +} +.alert-danger h4, +.alert-error h4 { + color: #fff; +} +.alert-info { + color: #000; + background-color: #000; + border-color: #000; +} +.alert-info h4 { + color: #000; +} +.alert-block { + padding-top: 14px; + padding-bottom: 14px; +} +.alert-block > p, +.alert-block > ul { + margin-bottom: 0; +} +.alert-block p + p { + margin-top: 5px; +} +.nav { + margin-bottom: 20px; + margin-left: 0; + list-style: none; + background: #bbb; +} +.nav > li > a { + display: block; +} +.nav > li > a::first-letter { + color: #a00; +} +.nav > li > a:hover, +.nav > li > a:focus { + color: #bbb; + text-decoration: none; + background-color: #000; +} +.nav > li > a > img { + max-width: none; +} +.nav > .pull-right { + float: right; +} +.nav-header { + display: block; + font-weight: normal; + line-height: 20px; + color: #000; + text-transform: uppercase; +} +.nav li + .nav-header { + line-height: 20px; +} +.nav-list { + display: block; + padding: 10px 15px; + margin: 10px 5px; + margin-left: -5px; + border: 2px solid #000; + -webkit-box-shadow: + 0 0 0 5px, + 11px 13px 0 4px black; + -moz-box-shadow: + 0 0 0 5px, + 11px 13px 0 4px black; + box-shadow: + 0 0 0 5px, + 11px 13px 0 4px black; +} +.nav-list > li > a, +.nav-list .nav-header { + margin-right: -10px; + margin-left: -10px; +} +.nav-list > li > a { + padding: 0 8px; + color: #000; +} +.nav-list > .active > a, +.nav-list > .active > a:hover, +.nav-list > .active > a:focus { + color: #fff; + background-color: #0aa; +} +.nav-list [class^="icon-"], +.nav-list [class*=" icon-"] { + margin-right: 0; +} +.nav-list .divider { + *width: 100%; + height: 1px; + margin: 9px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #000; + border-bottom: 1px solid #000; +} +.nav-tabs, +.nav-pills { + *zoom: 1; +} +.nav-tabs:before, +.nav-pills:before, +.nav-tabs:after, +.nav-pills:after { + display: table; + line-height: 0; + content: ""; +} +.nav-tabs:after, +.nav-pills:after { + clear: both; +} +.nav-tabs > li, +.nav-pills > li { + float: left; +} +.nav-tabs > li > a, +.nav-pills > li > a { + padding-right: 8px; + padding-left: 8px; + margin-right: 0; + line-height: 20px; + color: #000; +} +.nav-tabs { + border-bottom: 0.5em solid #bbb; +} +.nav-tabs > li { + margin-bottom: -1px; +} +.nav-tabs > li > a { + line-height: 20px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.nav-tabs > li > a:hover, +.nav-tabs > li > a:focus { + background: #000; +} +.nav-tabs > .active > a, +.nav-tabs > .active > a:hover, +.nav-tabs > .active > a:focus { + color: #bbb; + cursor: default; + background-color: #000084; + border: 0; + border-bottom-color: transparent; +} +.nav-pills > li > a { + padding-top: 0; + padding-bottom: 0; + margin-top: 0; + margin-bottom: 0; + line-height: 20px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.nav-pills > .active > a, +.nav-pills > .active > a:hover, +.nav-pills > .active > a:focus { + color: #bbb; + background-color: #fefe54; +} +.nav-stacked > li { + float: none; +} +.nav-stacked > li > a { + margin-right: 0; +} +.nav-tabs.nav-stacked { + border-bottom: 0; +} +.nav-tabs.nav-stacked > li > a { + border: 1px solid #ddd; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.nav-tabs.nav-stacked > li:first-child > a { + -webkit-border-top-right-radius: 0; + border-top-right-radius: 0; + -webkit-border-top-left-radius: 0; + border-top-left-radius: 0; + -moz-border-radius-topright: 0; + -moz-border-radius-topleft: 0; +} +.nav-tabs.nav-stacked > li:last-child > a { + -webkit-border-bottom-right-radius: 0; + border-bottom-right-radius: 0; + -webkit-border-bottom-left-radius: 0; + border-bottom-left-radius: 0; + -moz-border-radius-bottomright: 0; + -moz-border-radius-bottomleft: 0; +} +.nav-tabs.nav-stacked > li > a:hover, +.nav-tabs.nav-stacked > li > a:focus { + z-index: 2; + border-color: #ddd; +} +.nav-pills.nav-stacked > li > a { + margin-bottom: 3px; +} +.nav-pills.nav-stacked > li:last-child > a { + margin-bottom: 1px; +} +.nav-tabs .dropdown-menu { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.nav-pills .dropdown-menu { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.nav .dropdown-toggle .caret { + margin-top: 6px; + border-top-color: #fefe54; + border-bottom-color: #fefe54; +} +.nav .dropdown-toggle:hover .caret, +.nav .dropdown-toggle:focus .caret { + border-top-color: #fefe54; + border-bottom-color: #fefe54; +} +.nav .active .dropdown-toggle .caret { + border-top-color: #fff; + border-bottom-color: #fff; +} +.nav-tabs .active .dropdown-toggle .caret { + border-top-color: #bbb; + border-bottom-color: #bbb; +} +.nav > .dropdown.active > a:hover, +.nav > .dropdown.active > a:focus { + cursor: pointer; +} +.nav-tabs .open .dropdown-toggle, +.nav-pills .open .dropdown-toggle, +.nav > li.dropdown.open.active > a:hover, +.nav > li.dropdown.open.active > a:focus { + color: #fff; + background-color: #bbb; + border-color: #bbb; +} +.nav li.dropdown.open .caret, +.nav li.dropdown.open.active .caret, +.nav li.dropdown.open a:hover .caret, +.nav li.dropdown.open a:focus .caret { + border-top-color: #fff; + border-bottom-color: #fff; + opacity: 1; + filter: alpha(opacity=100); +} +.tabs-stacked .open > a:hover, +.tabs-stacked .open > a:focus { + border-color: #bbb; +} +.tabbable { + *zoom: 1; +} +.tabbable:before, +.tabbable:after { + display: table; + line-height: 0; + content: ""; +} +.tabbable:after { + clear: both; +} +.tab-content { + overflow: auto; +} +.tabs-below > .nav-tabs, +.tabs-right > .nav-tabs, +.tabs-left > .nav-tabs { + border-bottom: 0; +} +.tab-content > .tab-pane, +.pill-content > .pill-pane { + display: none; +} +.tab-content > .active, +.pill-content > .active { + display: block; +} +.tabs-below > .nav-tabs { + border-top: 1px solid #ddd; +} +.tabs-below > .nav-tabs > li { + margin-top: -1px; + margin-bottom: 0; +} +.tabs-below > .nav-tabs > li > a { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.tabs-below > .nav-tabs > li > a:hover, +.tabs-below > .nav-tabs > li > a:focus { + border-top-color: #ddd; + border-bottom-color: transparent; +} +.tabs-below > .nav-tabs > .active > a, +.tabs-below > .nav-tabs > .active > a:hover, +.tabs-below > .nav-tabs > .active > a:focus { + border-color: transparent #ddd #ddd #ddd; +} +.tabs-left > .nav-tabs > li, +.tabs-right > .nav-tabs > li { + float: none; +} +.tabs-left > .nav-tabs > li > a, +.tabs-right > .nav-tabs > li > a { + min-width: 74px; + margin-right: 0; + margin-bottom: 0; +} +.tabs-left > .nav-tabs { + float: left; + margin-right: 18px; + border-right: 1px solid #ddd; +} +.tabs-left > .nav-tabs > li > a { + margin-right: -1px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.tabs-left > .nav-tabs > li > a:hover, +.tabs-left > .nav-tabs > li > a:focus { + border-color: #bbb #ddd #bbb #bbb; +} +.tabs-left > .nav-tabs .active > a, +.tabs-left > .nav-tabs .active > a:hover, +.tabs-left > .nav-tabs .active > a:focus { + border-color: #ddd transparent #ddd #ddd; + *border-right-color: #fff; +} +.tabs-right > .nav-tabs { + float: right; + margin-left: 19px; + border-left: 1px solid #ddd; +} +.tabs-right > .nav-tabs > li > a { + margin-left: -1px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.tabs-right > .nav-tabs > li > a:hover, +.tabs-right > .nav-tabs > li > a:focus { + border-color: #bbb #bbb #bbb #ddd; +} +.tabs-right > .nav-tabs .active > a, +.tabs-right > .nav-tabs .active > a:hover, +.tabs-right > .nav-tabs .active > a:focus { + border-color: #ddd #ddd #ddd transparent; + *border-left-color: #fff; +} +.nav > .disabled > a { + color: #bbb; +} +.nav > .disabled > a:hover, +.nav > .disabled > a:focus { + text-decoration: none; + cursor: default; + background-color: transparent; +} +.navbar { + *position: relative; + *z-index: 2; + margin-bottom: 20px; + overflow: visible; +} +.navbar-inner { + min-height: 20px; + padding-right: 12.4px; + padding-left: 12.4px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + *zoom: 1; + -webkit-box-shadow: 0; + -moz-box-shadow: 0; + box-shadow: 0; +} +.navbar-inner:before, +.navbar-inner:after { + display: table; + line-height: 0; + content: ""; +} +.navbar-inner:after { + clear: both; +} +.navbar .container { + width: auto; +} +.nav-collapse.collapse { + height: auto; + overflow: visible; +} +.navbar .brand { + display: block; + float: left; + padding: 0 10px; + margin-left: -10px; + font-size: 18px; + color: #000084; + text-shadow: 0; +} +.navbar .brand:hover, +.navbar .brand:focus { + text-decoration: none; +} +.navbar-text { + margin-bottom: 0; + line-height: 20px; + color: #000; +} +.navbar-link { + color: #000; +} +.navbar-link:hover, +.navbar-link:focus { + color: #555; +} +.navbar .divider-vertical { + height: 20px; + margin: 0 12.4px; + border-right: 1px solid #fff; + border-left: 1px solid #bbb; +} +.navbar .btn, +.navbar .btn-group { + margin-top: -5px; +} +.navbar .btn-group .btn, +.navbar .input-prepend .btn, +.navbar .input-append .btn, +.navbar .input-prepend .btn-group, +.navbar .input-append .btn-group { + margin-top: 0; +} +.navbar-form { + margin-bottom: 0; + *zoom: 1; +} +.navbar-form:before, +.navbar-form:after { + display: table; + line-height: 0; + content: ""; +} +.navbar-form:after { + clear: both; +} +.navbar-form input, +.navbar-form select, +.navbar-form .radio, +.navbar-form .checkbox { + margin-top: -5px; +} +.navbar-form input, +.navbar-form select, +.navbar-form .btn { + display: inline-block; + margin-bottom: 0; + -webkit-box-shadow: 0; + -moz-box-shadow: 0; + box-shadow: 0; +} +.navbar-form input[type="image"], +.navbar-form input[type="checkbox"], +.navbar-form input[type="radio"] { + margin-top: 3px; +} +.navbar-form .input-append, +.navbar-form .input-prepend { + margin-top: 5px; + white-space: nowrap; +} +.navbar-form .input-append input, +.navbar-form .input-prepend input { + margin-top: 0; +} +.navbar-search { + position: relative; + float: left; + margin-top: -5px; + margin-bottom: 0; +} +.navbar-search .search-query { + padding: 4px 12.4px; + margin-bottom: 0; + font-family: DOS, Monaco, Menlo, Consolas, "Courier New", monospace; + font-size: 18px; + font-weight: normal; + line-height: 1; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.navbar-static-top { + position: static; + margin-bottom: 0; +} +.navbar-static-top .navbar-inner { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; + margin-bottom: 0; +} +.navbar-fixed-top .navbar-inner, +.navbar-static-top .navbar-inner { + border-width: 0; +} +.navbar-fixed-bottom .navbar-inner { + border-width: 0; +} +.navbar-fixed-top .navbar-inner, +.navbar-fixed-bottom .navbar-inner { + padding-right: 0; + padding-left: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.navbar-static-top .container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 944px; +} +.navbar-fixed-top { + top: 0; +} +.navbar-fixed-top .navbar-inner, +.navbar-static-top .navbar-inner { + -webkit-box-shadow: 0; + -moz-box-shadow: 0; + box-shadow: 0; +} +.navbar-fixed-bottom { + bottom: 0; +} +.navbar-fixed-bottom .navbar-inner { + -webkit-box-shadow: 0; + -moz-box-shadow: 0; + box-shadow: 0; +} +.navbar .nav { + position: relative; + left: 0; + display: block; + float: left; + margin: 0 20px 0 0; +} +.navbar .nav.pull-right { + float: right; + margin-right: 0; +} +.navbar .nav > li { + float: left; + padding-left: 0; +} +.navbar .nav > li > a { + float: none; + padding: 0 10px; + color: #000; + text-decoration: none; + text-shadow: 0; +} +.navbar .nav .dropdown-toggle .caret { + margin-top: 0; +} +.navbar .nav > li > a:focus, +.navbar .nav > li > a:hover { + color: #555; + text-decoration: none; + background-color: transparent; +} +.navbar .nav > .active > a, +.navbar .nav > .active > a:hover, +.navbar .nav > .active > a:focus { + color: #bbb; + text-decoration: none; + background-color: #bbb; +} +.navbar .btn-navbar { + display: none; + float: right; + padding: 0 12.4px; + margin-right: 12.4px; + margin-left: 12.4px; + *background-color: #aeaeae; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} +.navbar .btn-navbar:hover, +.navbar .btn-navbar:focus, +.navbar .btn-navbar:active, +.navbar .btn-navbar.active, +.navbar .btn-navbar.disabled, +.navbar .btn-navbar[disabled] { + color: #fff; +} +.navbar .btn-navbar .icon-bar { + display: block; + width: 18px; + height: 2px; + background-color: #f5f5f5; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.btn-navbar .icon-bar + .icon-bar { + margin-top: 3px; +} +.navbar .nav > li > .dropdown-menu:before { + position: absolute; + top: -7px; + left: 9px; + display: inline-block; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-left: 7px solid transparent; + border-bottom-color: rgba(0, 0, 0, 0.2); + content: ""; +} +.navbar .nav > li > .dropdown-menu:after { + position: absolute; + top: -6px; + left: 10px; + display: inline-block; + border-right: 6px solid transparent; + border-bottom: 6px solid #fff; + border-left: 6px solid transparent; + content: ""; +} +.navbar-fixed-bottom .nav > li > .dropdown-menu:before { + top: auto; + bottom: -7px; + border-top: 7px solid #ccc; + border-bottom: 0; + border-top-color: rgba(0, 0, 0, 0.2); +} +.navbar-fixed-bottom .nav > li > .dropdown-menu:after { + top: auto; + bottom: -6px; + border-top: 6px solid #fff; + border-bottom: 0; +} +.navbar .nav li.dropdown > a:hover .caret, +.navbar .nav li.dropdown > a:focus .caret { + border-top-color: #555; + border-bottom-color: #555; +} +.navbar .nav li.dropdown.open > .dropdown-toggle, +.navbar .nav li.dropdown.active > .dropdown-toggle, +.navbar .nav li.dropdown.open.active > .dropdown-toggle { + color: #bbb; + background-color: #bbb; +} +.navbar .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #000; + border-bottom-color: #000; +} +.navbar .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #bbb; + border-bottom-color: #bbb; +} +.navbar .pull-right > li > .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right { + right: 0; + left: auto; +} +.navbar .pull-right > li > .dropdown-menu:before, +.navbar .nav > li > .dropdown-menu.pull-right:before { + right: 12px; + left: auto; +} +.navbar .pull-right > li > .dropdown-menu:after, +.navbar .nav > li > .dropdown-menu.pull-right:after { + right: 13px; + left: auto; +} +.navbar .pull-right > li > .dropdown-menu .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu { + right: 100%; + left: auto; + margin-right: -1px; + margin-left: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.navbar-inverse .navbar-inner { + background: #bbb; +} +.navbar-inverse .brand, +.navbar-inverse .nav > li > a { + color: #000; + text-shadow: 0; + background: #bbb; +} +.navbar-inverse .brand:hover, +.navbar-inverse .nav > li > a:hover, +.navbar-inverse .brand:focus, +.navbar-inverse .nav > li > a:focus { + color: #bbb; + background: #000; +} +.navbar-inverse .brand { + color: #000084; +} +.navbar-inverse .navbar-text { + color: #000; +} +.navbar-inverse .nav > li > a:focus, +.navbar-inverse .nav > li > a:hover { + color: #bbb; + background: #000; +} +.navbar-inverse .nav .active > a, +.navbar-inverse .nav .active > a:hover, +.navbar-inverse .nav .active > a:focus { + color: #bbb; + text-decoration: none; + background: #000; +} +.navbar-inverse .navbar-link { + color: #000; +} +.navbar-inverse .navbar-link:hover, +.navbar-inverse .navbar-link:focus { + color: #fff; +} +.navbar-inverse .divider-vertical { + border-right-color: #000; + border-left-color: #000; +} +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle, +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle, +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle { + color: #fff; + background-color: #000; +} +.navbar-inverse .nav li.dropdown > a:hover .caret, +.navbar-inverse .nav li.dropdown > a:focus .caret { + border-top-color: #fff; + border-bottom-color: #fff; +} +.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #000; + border-bottom-color: #000; +} +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #fff; + border-bottom-color: #fff; +} +.navbar-inverse .navbar-search .search-query { + color: #fff; + background-color: #404040; + border-color: #000; + -webkit-transition: none; + -moz-transition: none; + -o-transition: none; + transition: none; +} +.navbar-inverse .navbar-search .search-query:-moz-placeholder { + color: #ccc; +} +.navbar-inverse .navbar-search .search-query:-ms-input-placeholder { + color: #ccc; +} +.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder { + color: #ccc; +} +.navbar-inverse .navbar-search .search-query:focus, +.navbar-inverse .navbar-search .search-query.focused { + padding: 0 20px; + color: #555; + text-shadow: 0; + background-color: #fff; + border: 0; + outline: 0; +} +.navbar-inverse .btn-navbar { + *background-color: #000; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} +.navbar-inverse .btn-navbar:hover, +.navbar-inverse .btn-navbar:focus, +.navbar-inverse .btn-navbar:active, +.navbar-inverse .btn-navbar.active, +.navbar-inverse .btn-navbar.disabled, +.navbar-inverse .btn-navbar[disabled] { + color: #fff; +} +.breadcrumb:before { + content: ">>"; +} +.breadcrumb { + padding: 0 20px; + margin: 0 0 20px; + list-style: none; + background-color: #000; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.breadcrumb > li { + display: inline-block; + *display: inline; + text-shadow: 0; + *zoom: 1; +} +.breadcrumb > li > .divider { + padding: 0 10px; + color: #bbb; +} +.breadcrumb > .active { + color: #bbb; +} +.pagination { + margin: 20px 0; +} +.pagination ul { + display: inline-block; + *display: inline; + margin-bottom: 0; + margin-left: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + *zoom: 1; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); +} +.pagination ul > li { + display: inline; +} +.pagination ul > li > a, +.pagination ul > li > span { + float: left; + padding: 20px 10px; + line-height: 20px; + text-decoration: none; + background-color: #0a0; + border: 0; + border-left-width: 0; +} +.pagination ul > li > a:hover, +.pagination ul > li > a:focus, +.pagination ul > .active > a, +.pagination ul > .active > span { + background-color: #f5f5f5; +} +.pagination ul > .active > a, +.pagination ul > .active > span { + color: #bbb; + cursor: default; +} +.pagination ul > .disabled > span, +.pagination ul > .disabled > a, +.pagination ul > .disabled > a:hover, +.pagination ul > .disabled > a:focus { + color: #bbb; + cursor: default; + background-color: transparent; +} +.pagination ul > li:first-child > a, +.pagination ul > li:first-child > span { + border-left-width: 1px; + -webkit-border-bottom-left-radius: 0; + border-bottom-left-radius: 0; + -webkit-border-top-left-radius: 0; + border-top-left-radius: 0; + -moz-border-radius-bottomleft: 0; + -moz-border-radius-topleft: 0; +} +.pagination ul > li:last-child > a, +.pagination ul > li:last-child > span { + -webkit-border-top-right-radius: 0; + border-top-right-radius: 0; + -webkit-border-bottom-right-radius: 0; + border-bottom-right-radius: 0; + -moz-border-radius-topright: 0; + -moz-border-radius-bottomright: 0; +} +.pagination-centered { + text-align: center; +} +.pagination-right { + text-align: right; +} +.pagination-large ul > li > a, +.pagination-large ul > li > span { + padding: 18px; + font-size: 18px; +} +.pagination-large ul > li:first-child > a, +.pagination-large ul > li:first-child > span { + -webkit-border-bottom-left-radius: 0; + border-bottom-left-radius: 0; + -webkit-border-top-left-radius: 0; + border-top-left-radius: 0; + -moz-border-radius-bottomleft: 0; + -moz-border-radius-topleft: 0; +} +.pagination-large ul > li:last-child > a, +.pagination-large ul > li:last-child > span { + -webkit-border-top-right-radius: 0; + border-top-right-radius: 0; + -webkit-border-bottom-right-radius: 0; + border-bottom-right-radius: 0; + -moz-border-radius-topright: 0; + -moz-border-radius-bottomright: 0; +} +.pagination-mini ul > li:first-child > a, +.pagination-small ul > li:first-child > a, +.pagination-mini ul > li:first-child > span, +.pagination-small ul > li:first-child > span { + -webkit-border-bottom-left-radius: 0; + border-bottom-left-radius: 0; + -webkit-border-top-left-radius: 0; + border-top-left-radius: 0; + -moz-border-radius-bottomleft: 0; + -moz-border-radius-topleft: 0; +} +.pagination-mini ul > li:last-child > a, +.pagination-small ul > li:last-child > a, +.pagination-mini ul > li:last-child > span, +.pagination-small ul > li:last-child > span { + -webkit-border-top-right-radius: 0; + border-top-right-radius: 0; + -webkit-border-bottom-right-radius: 0; + border-bottom-right-radius: 0; + -moz-border-radius-topright: 0; + -moz-border-radius-bottomright: 0; +} +.pagination-small ul > li > a, +.pagination-small ul > li > span { + padding: 0; + font-size: 18px; +} +.pagination-mini ul > li > a, +.pagination-mini ul > li > span { + padding: 0; + font-size: 18px; +} +.pager { + margin: 20px 0; + text-align: center; + list-style: none; + *zoom: 1; +} +.pager:before, +.pager:after { + display: table; + line-height: 0; + content: ""; +} +.pager:after { + clear: both; +} +.pager li { + display: inline; +} +.pager li > a, +.pager li > span { + display: inline-block; + padding: 0 20px; + background-color: #555; +} +.pager li > a:hover, +.pager li > a:focus { + text-decoration: none; +} +.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: #bbb; + cursor: default; + background-color: #555; +} +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000; +} +.modal-backdrop.fade { + opacity: 0; +} +.modal-backdrop, +.modal-backdrop.fade.in { + opacity: 0.8; + filter: alpha(opacity=80); +} +.modal { + position: fixed; + top: 10%; + left: 50%; + z-index: 1050; + width: 560px; + margin-left: -280px; + background-color: #fff; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, 0.3); + *border: 1px solid #999; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + outline: 0; + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} +.modal.fade { + top: -25%; +} +.modal.fade.in { + top: 10%; +} +.modal-header { + padding: 9px 15px; + border-bottom: 1px solid #eee; +} +.modal-header .close { + margin-top: 2px; +} +.modal-header h3 { + margin: 0; + line-height: 30px; +} +.modal-body { + position: relative; + max-height: 400px; + padding: 15px; + overflow-y: auto; +} +.modal-form { + margin-bottom: 0; +} +.modal-footer { + padding: 14px 15px 15px; + margin-bottom: 0; + text-align: right; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + *zoom: 1; +} +.modal-footer:before, +.modal-footer:after { + display: table; + line-height: 0; + 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; +} +.tooltip { + position: absolute; + z-index: 1030; + display: block; + font-size: 18px; + line-height: 1; + opacity: 0; + filter: alpha(opacity=0); + visibility: visible; +} +.tooltip.in { + opacity: 0.8; + filter: alpha(opacity=80); +} +.tooltip.top { + padding: 9px 0 9px; + margin-top: -3px; +} +.tooltip.right { + padding: 0 4px 0 4px; + margin-left: 3px; +} +.tooltip.bottom { + padding: 9px 0 9px; + margin-top: 3px; +} +.tooltip.left { + padding: 0 4px 0 4px; + margin-left: -3px; +} +.tooltip-inner { + max-width: 310px; + padding: 9px 4px 9px 4px; + color: #fff; + text-align: center; + text-decoration: none; + background-color: #000; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.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.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; +} +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + max-width: 496px; + padding: 1px; + text-align: left; + white-space: normal; + background-color: #fff; + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + 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: #fff; + border-bottom: 1px solid #f2f2f2; +} +.popover-title:empty { + display: none; +} +.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; +} +.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; +} +.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; +} +.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; +} +.thumbnails { + margin-left: -16px; + list-style: none; + *zoom: 1; +} +.thumbnails:before, +.thumbnails:after { + display: table; + line-height: 0; + content: ""; +} +.thumbnails:after { + clear: both; +} +.row-fluid .thumbnails { + margin-left: 0; +} +.thumbnails > li { + float: left; + margin-bottom: 20px; + margin-left: 16px; +} +.thumbnail { + display: block; + padding: 3px 6px; + margin: 4px 3px; + line-height: 20px; + border: 1px solid #ddd; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + -webkit-box-shadow: 0; + -moz-box-shadow: 0; + box-shadow: 0; +} +a.thumbnail:hover, +a.thumbnail:focus { + border-color: #fefe54; + -webkit-box-shadow: 0; + -moz-box-shadow: 0; + box-shadow: 0; +} +.thumbnail > img { + display: block; + max-width: 100%; + margin-right: auto; + margin-left: auto; +} +.thumbnail .caption { + padding: 9px; + color: #bbb; +} +.media, +.media-body { + overflow: hidden; + *overflow: visible; + 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 { + margin-left: 0; + list-style: none; +} +.label, +.badge { + display: inline-block; + padding: 0 12.4px; + font-size: 18px; + line-height: 20px; + color: #fff; + white-space: nowrap; + vertical-align: baseline; + background-color: #555; +} +.badge { + padding-right: 12.4px; + padding-left: 12.4px; +} +.label:empty, +.badge:empty { + display: none; +} +a.label:hover, +a.label:focus, +a.badge:hover, +a.badge:focus { + color: #fff; + text-decoration: none; + cursor: pointer; +} +.label-important, +.badge-important { + background-color: #a00; +} +.label-important[href], +.badge-important[href] { + background-color: #a00; +} +.label-warning, +.badge-warning { + background-color: #a85400; +} +.label-warning[href], +.badge-warning[href] { + background-color: #a85400; +} +.label-success, +.badge-success { + background-color: #0a0; +} +.label-success[href], +.badge-success[href] { + background-color: #0a0; +} +.label-info, +.badge-info { + background-color: #000; +} +.label-info[href], +.badge-info[href] { + background-color: #000; +} +.label-inverse, +.badge-inverse { + background-color: #555; +} +.label-inverse[href], +.badge-inverse[href] { + background-color: #555; +} +.btn .label, +.btn .badge { + position: relative; + top: -1px; +} +.btn-mini .label, +.btn-mini .badge { + top: 0; +} +@-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; + } +} +@-ms-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: #f7f7f7; + background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -webkit-gradient( + linear, + 0 0, + 0 100%, + from(#f5f5f5), + to(#f9f9f9) + ); + background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9); + background-repeat: repeat-x; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0); +} +.progress .bar { + float: left; + width: 0; + height: 100%; + font-size: 12px; + color: #fff; + text-align: center; + text-shadow: 0; + background-color: #0e90d2; + background-image: -moz-linear-gradient(top, #149bdf, #0480be); + background-image: -webkit-gradient( + linear, + 0 0, + 0 100%, + from(#149bdf), + to(#0480be) + ); + background-image: -webkit-linear-gradient(top, #149bdf, #0480be); + background-image: -o-linear-gradient(top, #149bdf, #0480be); + background-image: linear-gradient(to bottom, #149bdf, #0480be); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0); + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: width 0.6s ease; + -moz-transition: width 0.6s ease; + -o-transition: width 0.6s ease; + transition: width 0.6s ease; +} +.progress-striped .bar { + background-color: #149bdf; + 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: -o-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 + ); + -webkit-background-size: 40px 40px; + -moz-background-size: 40px 40px; + -o-background-size: 40px 40px; + background-size: 40px 40px; +} +.progress.active .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-danger .bar, +.progress .bar-danger { + background-color: #dd514c; + background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -webkit-gradient( + linear, + 0 0, + 0 100%, + from(#ee5f5b), + to(#c43c35) + ); + background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); + background-image: linear-gradient(to bottom, #ee5f5b, #c43c35); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0); +} +.progress-danger.progress-striped .bar, +.progress-striped .bar-danger { + background-color: #ee5f5b; + 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: -o-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-success .bar, +.progress .bar-success { + background-color: #5eb95e; + background-image: -moz-linear-gradient(top, #62c462, #57a957); + background-image: -webkit-gradient( + linear, + 0 0, + 0 100%, + from(#62c462), + to(#57a957) + ); + background-image: -webkit-linear-gradient(top, #62c462, #57a957); + background-image: -o-linear-gradient(top, #62c462, #57a957); + background-image: linear-gradient(to bottom, #62c462, #57a957); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0); +} +.progress-success.progress-striped .bar, +.progress-striped .bar-success { + background-color: #62c462; + 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: -o-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-info .bar, +.progress .bar-info { + background-color: #4bb1cf; + background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); + background-image: -webkit-gradient( + linear, + 0 0, + 0 100%, + from(#5bc0de), + to(#339bb9) + ); + background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); + background-image: -o-linear-gradient(top, #5bc0de, #339bb9); + background-image: linear-gradient(to bottom, #5bc0de, #339bb9); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0); +} +.progress-info.progress-striped .bar, +.progress-striped .bar-info { + background-color: #5bc0de; + 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: -o-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-warning .bar, +.progress .bar-warning { + background-color: #d66b00; + background-image: -moz-linear-gradient(top, #f47a00, #a85400); + background-image: -webkit-gradient( + linear, + 0 0, + 0 100%, + from(#f47a00), + to(#a85400) + ); + background-image: -webkit-linear-gradient(top, #f47a00, #a85400); + background-image: -o-linear-gradient(top, #f47a00, #a85400); + background-image: linear-gradient(to bottom, #f47a00, #a85400); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff47a00',endColorstr='#ffa85400',GradientType=0); +} +.progress-warning.progress-striped .bar, +.progress-striped .bar-warning { + background-color: #f47a00; + 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: -o-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 + ); +} +.accordion { + margin-bottom: 20px; +} +.accordion-group { + margin-bottom: 2px; + border: 1px solid #e5e5e5; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.accordion-heading { + border-bottom: 0; +} +.accordion-heading .accordion-toggle { + display: block; + padding: 8px 15px; +} +.accordion-toggle { + cursor: pointer; +} +.accordion-inner { + padding: 9px 15px; + border-top: 1px solid #e5e5e5; +} +.carousel { + position: relative; + margin-bottom: 20px; + line-height: 1; +} +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} +.carousel-inner > .item { + position: relative; + display: none; +} +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + display: block; + 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: 40%; + left: 15px; + width: 40px; + height: 40px; + margin-top: -20px; + font-size: 60px; + font-weight: 100; + line-height: 30px; + color: #fff; + text-align: center; + background: #555; + border: 3px solid #fff; + opacity: 0.5; + filter: alpha(opacity=50); +} +.carousel-control.right { + right: 15px; + left: auto; +} +.carousel-control:hover, +.carousel-control:focus { + color: #fff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} +.carousel-indicators { + position: absolute; + top: 15px; + right: 15px; + z-index: 5; + margin: 0; + list-style: none; +} +.carousel-indicators li { + display: block; + float: left; + width: 10px; + height: 10px; + margin-left: 5px; + text-indent: -999px; + background-color: #ccc; + background-color: rgba(255, 255, 255, 0.25); +} +.carousel-indicators .active { + background-color: #fff; +} +.carousel-caption { + position: absolute; + right: 0; + bottom: 0; + left: 0; + padding: 15px; + background: #555; + background: rgba(0, 0, 0, 0.75); +} +.carousel-caption h4, +.carousel-caption p { + line-height: 20px; + color: #fff; +} +.carousel-caption h4 { + margin: 0 0 5px; +} +.carousel-caption p { + margin-bottom: 0; +} +.hero-unit { + padding: 16px 20.8px; + margin-bottom: 20px; + font-size: 18px; + line-height: 20px; + color: #fff; + background-color: #0aa; + border: 4px double #fff; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + box-shadow: 0 0 0 4px #0aa; +} +.hero-unit h1 { + margin-bottom: 20px; + font-size: 18px; + line-height: 1; + color: #fff; + text-align: center; + text-decoration: blink; +} +.hero-unit li { + line-height: 20px; +} +.pull-right { + float: right; +} +.pull-left { + float: left; +} +.hide { + display: none; +} +.show { + display: block; +} +.invisible { + visibility: hidden; +} +#wrap386 { + position: fixed; + right: 0; + bottom: 0; + z-index: 9999999; + width: 100%; + height: 100%; + background: #000084; +} +#bar386 { + float: right; + width: 100%; + height: 20px; + margin-top: -20px; + font-weight: bold; + color: #fff; + background: #000084; +} +#cursor386 { + position: fixed; + right: 0; + bottom: 0; + z-index: 9999999; + font-weight: bold; + color: #fff; +} diff --git a/web/static/css/fonts/Fixedsys500c.eot b/web/static/css/fonts/Fixedsys500c.eot Binary files differ. diff --git a/web/static/css/fonts/Fixedsys500c.otf b/web/static/css/fonts/Fixedsys500c.otf Binary files differ. diff --git a/web/static/css/fonts/Fixedsys500c.svg b/web/static/css/fonts/Fixedsys500c.svg @@ -0,0 +1,646 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"> +<metadata> +Created by FontForge 20190801 at Sun Aug 5 10:20:04 2001 + By chris +GPL, see http://www.gnu.org/licenses/gpl.txt +</metadata> +<defs> +<font id="FixedsysTTF" horiz-adv-x="550" > + <font-face + font-family="FixedsysTTF" + font-weight="600" + font-stretch="normal" + units-per-em="1000" + panose-1="2 0 0 9 0 0 0 0 0 0" + ascent="800" + descent="-200" + x-height="465" + cap-height="610" + bbox="-1 -288 550 813" + underline-thickness="50" + underline-position="-125" + unicode-range="U+0001-20AC" + /> +<missing-glyph + /> + <glyph glyph-name=".notdef" + /> + <glyph glyph-name=".null" + /> + <glyph glyph-name="nonmarkingreturn" + /> + <glyph glyph-name="space" unicode=" " + /> + <glyph glyph-name="space" unicode="&#xa0;" + /> + <glyph glyph-name=".0015" +d="M10 70q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h260q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5t11.5 5.5t18 4t18 2t12.5 -1.5v130h-135v-130h-125v470h125v-130h135v130q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5 +h-260q2 -4 1.5 -12.5t-2 -18t-4 -18t-5.5 -11.5t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5v-470z" /> + <glyph glyph-name="exclam" unicode="!" +d="M226 130v-130h120v130h-120zM221 335v-125h130v125h65v205q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5h-120q2 -4 1.5 -12.5t-2 -18t-4 -18t-5.5 -11.5t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5v-205h65z" /> + <glyph glyph-name="quotedbl" unicode="&#x22;" +d="M54 602v-200h130v200h-130v0zM324 602v-200h130v200h-130v0z" /> + <glyph glyph-name="numbersign" unicode="#" +d="M119 135v-135h123v130h90v-130h127v135h69v70h-68v200h68v70h-69v135h-127v-130h-85v130h-128v-135h-69v-70h64v-200h-64v-70h69v0zM247 400h80v-190h-80v190v0z" /> + <glyph glyph-name="dollar" unicode="$" +d="M187 1v-134h128v136h70v69l69 2v138h-68v69h-71v61h-69l-1 70h-59v141h129v-70h140v70h-69l-1 69h-70v139h-129v-139h-70v-71h-69v-138h70v-69h69v-61h60v-70l68 1v-142h-128v69h-141v-67h69q0 -19 0.5 -35.5t0.5 -35.5q3 -1 13 -1h22h22q11 0 15 -1z" /> + <glyph glyph-name="percent" unicode="%" +d="M266 10v-65h205q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5t11.5 5.5t18 4t18 2t12.5 -1.5v130q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5h-205v-65h-55v-140h55zM341 145h60v-130h-60v130zM71 215v-130h60q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5 +q1 1 10 2.5t19.5 2.5t19.5 2t11 3q3 3 5.5 12t4 19.5t2 20t-1.5 13.5h50q-2 4 -2 13q0 10 1.5 20.5t4.5 19.5t6 12t12 6t19.5 4.5t19.5 1.5q10 0 14 -2v50q4 -2 13.5 -1.5t20 2t19.5 4t12 5.5q1 1 2.5 10t2.5 19.5t2 19.5t3 11q3 3 11.5 5.5t18 4t18 2t12.5 -1.5v130h-60 +q2 -4 1.5 -12.5t-2 -18t-4 -18t-5.5 -11.5q-2 -2 -11 -3t-19.5 -2t-19.5 -2.5t-10 -2.5q-2 -2 -3 -11t-2 -19.5t-2.5 -19.5t-2.5 -10q-2 -2 -11 -3t-19.5 -2t-19.5 -2.5t-10 -2.5q-3 -3 -5.5 -11.5t-4 -18t-2 -18t1.5 -12.5q-3 1 -10.5 0.5t-15.5 -2t-15 -3.5t-9 -5 +t-4.5 -10t-4 -15t-2.5 -15t1 -10q-4 2 -12.5 1.5t-18 -2t-18 -4t-11.5 -5.5q-2 -2 -3 -11t-2 -19.5t-2.5 -19.5t-2.5 -10q-3 -3 -11.5 -5.5t-18 -4t-18 -2t-12.5 1.5zM1 495q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h190q-2 4 -1.5 12.5t2 18 +t4 18t5.5 11.5t11.5 5.5t18 4t18 2t12.5 -1.5v130q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5h-190q2 -4 1.5 -12.5t-2 -18t-4 -18t-5.5 -11.5t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5v-130zM141 625h60v-130h-60v130z" /> + <glyph glyph-name="ampersand" unicode="&#x26;" +d="M56 70q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h195v60h70v-60h135v65h-60v140h60v65h-270v-65h60v-135h-120v265h120q-2 4 -1.5 13.5t2 20t4 19.5t5.5 12t11.5 5.5t18 4t18 2t12.5 -1.5v130q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5 +t-5.5 11.5t-4 18t-2 18t1.5 12.5h-190q2 -4 1.5 -12.5t-2 -18t-4 -18t-5.5 -11.5t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5v-135h60v-70h-60v-265zM196 540h50v-130h-50v130z" /> + <glyph glyph-name="quotesingle" unicode="'" +d="M178 604v-200h120v200h-120v0z" /> + <glyph glyph-name="parenleft" unicode="(" +d="M282 -66v-65h135v65h-65v140h-65v340h65v140h65v65h-135v-65h-60v-140h-65v-340h65v-140h60v0z" /> + <glyph glyph-name="parenright" unicode=")" +d="M165 -61l1 -68h121v65h75v140h65v340h-65v137h-70v68h-126l-1 -72h66l1 -133h55v-340h-55l-1 -137h-66z" /> + <glyph glyph-name="asterisk" unicode="*" +d="M109 216v-65h125v60h70v-60h135v65h-60v70h130v60h-130v70h60v65h-135v-60h-70v60h-125v-65h60v-70h-130v-60h130v-70h-60v0z" /> + <glyph glyph-name="plus" unicode="+" +d="M194 252v-135h130v135h135v60h-135v135h-130v-135h-135v-60h135v0z" /> + <glyph glyph-name="comma" unicode="," +d="M200 -63v-65h120q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5t11.5 5.5t18 4t18 2t12.5 -1.5v200h-190v-135h50v-70h-50z" /> + <glyph glyph-name="minus" unicode="-" +d="M56 303v-50h400v50h-400z" /> + <glyph glyph-name="period" unicode="." +d="M198 130v-130h190v130h-190v0z" /> + <glyph glyph-name="slash" unicode="/" +d="M87 -64h99l301 631v49h-108l-292 -584v-96z" /> + <glyph glyph-name="zero" unicode="0" +d="M82 71q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h260q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5t11.5 5.5t18 4t18 2t12.5 -1.5v470q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5h-260q2 -4 1.5 -12.5t-2 -18t-4 -18 +t-5.5 -11.5t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5v-470zM218 134h60v140h-60v265h130v-65h-60v-140h60v-265h-130v65z" /> + <glyph glyph-name="one" unicode="1" +d="M249 406v-405h135v610h-135v-65h-60v-70h-135v-70h195v0z" /> + <glyph glyph-name="two" unicode="2" +d="M98 0h400v65h-260v70h58q-2 4 -3 13.5t-1 19.5q0 11 1.5 20t4.5 12q1 1 10 2.5t19.5 2.5t19.5 2t11 3q1 1 2.5 10t2.5 19.5t2 19.5t3 11q3 3 12 5.5t19.5 4t20 2t13.5 -1.5v55h65v205q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5h-260 +q2 -4 1.5 -12.5t-2 -18t-4 -18t-5.5 -11.5t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5v-130h135v130h125v-205h-60q1 -3 1 -11t-1.5 -17t-4 -16.5t-5.5 -10.5q-2 -3 -9.5 -4.5t-16.5 -2.5t-18 -1q-8 0 -11 2q2 -4 3.5 -14t1.5 -22q0 -11 -1 -21t-4 -13q-2 -2 -12 -1.5t-22.5 1.5 +t-23.5 1q-10 0 -11 -1q-2 -2 -2 -12t0.5 -22.5t0 -23t-1.5 -11.5q-3 -3 -12 -4t-19 -1t-19 1.5t-13 3.5v-135z" /> + <glyph glyph-name="three" unicode="3" +d="M95 70q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h260q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5t11.5 5.5t18 4t18 2t12.5 -1.5v205h-60v60h60v205q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5h-260q2 -4 1.5 -12.5 +t-2 -18t-4 -18t-5.5 -11.5t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5v-130h135v130h125v-205h-120v-60h120v-205h-125v130h-135v-130z" /> + <glyph glyph-name="four" unicode="4" +d="M319 135v-135h140v135h65v70h-65v265h-140v-260h-125v65h50v335h-125v-335h-65v-140h265v0z" /> + <glyph glyph-name="five" unicode="5" +d="M44 65v-65h313q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5q1 1 10 2.5t19.5 2.5t19.5 2t11 3q1 1 2.5 10t2.5 19.5t2 19.5t3 11q3 3 11.5 5.5t18 4t18 2t12.5 -1.5v135h-65v60h-248v210h313v65h-453v-335h313v-135q-4 2 -12.5 1.5t-18 -2t-18 -4t-11.5 -5.5t-5.5 -12t-4 -19.5 +t-2 -20t1.5 -13.5h-243z" /> + <glyph glyph-name="six" unicode="6" +d="M95 70q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h260q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5t11.5 5.5t18 4t18 2t12.5 -1.5v260q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 12t-4 19.5t-2 20t1.5 13.5h-130v65q4 -2 12.5 -1.5t18 2t18 4 +t11.5 5.5q1 1 2.5 10t2.5 19.5t2 19.5t3 11q3 3 11.5 5.5t18 4t18 2t12.5 -1.5v60h-195v-130q-4 2 -13.5 1.5t-20 -2t-19.5 -4t-12 -5.5q-2 -2 -3 -11t-2 -19.5t-2.5 -19.5t-2.5 -10q-3 -3 -11.5 -5.5t-18 -4t-18 -2t-12.5 1.5v-330zM235 330h120v-260h-120v260z" /> + <glyph glyph-name="seven" unicode="7" +d="M157 205v-205h125v205h70v130h70v140h65v135h-400v-65h260v-70h-65v-140h-60v-130h-65v0z" /> + <glyph glyph-name="eight" unicode="8" +d="M87 70q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h260q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5t11.5 5.5t18 4t18 2t12.5 -1.5v205h-60v60h60v205q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5h-260q2 -4 1.5 -12.5 +t-2 -18t-4 -18t-5.5 -11.5t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5v-205h60v-60h-60v-205zM227 270h50q-2 -4 -1.5 -12.5t2 -18t4 -18t5.5 -11.5t11.5 -5.5t18 -4t18 -2t12.5 1.5v-130h-120v200zM282 405h-55v135h120v-200h-65v65z" /> + <glyph glyph-name="nine" unicode="9" +d="M156 60v-60h195v130q4 -2 13.5 -1.5t20 2t19.5 4t12 5.5q1 1 2.5 10t2.5 19.5t2 19.5t3 11q3 3 11.5 5.5t18 4t18 2t12.5 -1.5v330q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5h-260q2 -4 1.5 -12.5t-2 -18t-4 -18t-5.5 -11.5t-11.5 -5.5 +t-18 -4t-18 -2t-12.5 1.5v-260q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -12t4 -19.5t2 -20t-1.5 -13.5h120v-70h-50q2 -4 1.5 -13.5t-2 -20t-4 -19.5t-5.5 -12t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5zM226 540h120v-260h-120v260z" /> + <glyph glyph-name="colon" unicode=":" +d="M193 139v-130h190v130h-190v0zM193 479v-130h190v130h-190v0z" /> + <glyph glyph-name="semicolon" unicode=";" +d="M198 -66v-65h120q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5t11.5 5.5t18 4t18 2t12.5 -1.5v200h-190v-135h50v-70h-50zM198 479v-130h190v130h-190z" /> + <glyph glyph-name="less" unicode="&#x3c;" +d="M494 0h-102l-301 300l301 310h102v-42l-267 -269l267 -262v-37z" /> + <glyph glyph-name="equal" unicode="=" +d="M99 283v-60h401v60h-401v0zM99 422v-60h401v60h-401v0z" /> + <glyph glyph-name="greater" unicode="&#x3e;" +d="M92 0h102l301 300l-301 310h-102v-42l259 -261l-259 -265v-42z" /> + <glyph glyph-name="question" unicode="?" +d="M211 130v-130h120v130h-120zM211 335v-125h125v120q4 -2 13.5 -1.5t20 2t19.5 4t12 5.5q1 1 2.5 10t2.5 19.5t2 19.5t3 11q3 3 11.5 5.5t18 4t18 2t12.5 -1.5v130q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5h-260q2 -4 1.5 -12.5t-2 -18 +t-4 -18t-5.5 -11.5t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5v-130h135v130h125v-130q-4 2 -12.5 1.5t-18 -2t-18 -4t-11.5 -5.5t-5.5 -12t-4 -19.5t-2 -20t1.5 -13.5h-50z" /> + <glyph glyph-name="at" unicode="@" +d="M7 71q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h470v65h-400v481h265v-141h-140v-70h-55v-130h55v-65h275v404h-66l-4 66h-406v-65l-64 -1v-474zM359 335h72v-130h-72v130z" /> + <glyph glyph-name="A" unicode="A" +d="M59 470v-470h135v200h130v-200h135v470q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5q-2 1 -3 10t-2 19.5t-2.5 19.5t-2.5 11q-2 1 -11 2.5t-19.5 2.5t-19.5 2t-10 3q-3 3 -5.5 11.5t-4 18t-2 18t1.5 12.5h-120q2 -4 1.5 -12.5t-2 -18t-4 -18t-5.5 -11.5q-2 -2 -11 -3 +t-19.5 -2t-19.5 -2.5t-10 -2.5q-2 -2 -3 -11t-2 -19.5t-2.5 -19.5t-2.5 -10q-3 -3 -11.5 -5.5t-18 -4t-18 -2t-12.5 1.5zM199 470h120v-190h-120v190z" /> + <glyph glyph-name="B" unicode="B" +d="M62 610v-610h330q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5t11.5 5.5t18 4t18 2t12.5 -1.5v205h-60v60h60v205q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5h-330zM202 270h120v-200h-120v200zM202 540h120v-200h-120v200z" /> + <glyph glyph-name="C" unicode="C" +d="M59 70q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h260q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5t11.5 5.5t18 4t18 2t12.5 -1.5v130h-135v-130h-125v470h125v-130h135v130q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5 +h-260q2 -4 1.5 -12.5t-2 -18t-4 -18t-5.5 -11.5t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5v-470z" /> + <glyph glyph-name="D" unicode="D" +d="M54 610v-610h260q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5q1 1 10 2.5t19.5 2.5t19.5 2t11 3q1 1 2.5 10t2.5 19.5t2 19.5t3 11q3 3 11.5 5.5t18 4t18 2t12.5 -1.5v330q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5q-2 1 -3 10t-2 19.5t-2.5 19.5t-2.5 11q-2 1 -11 2.5t-19.5 2.5 +t-19.5 2t-10 3q-3 3 -5.5 11.5t-4 18t-2 18t1.5 12.5h-260zM194 540h50q-2 -4 -1.5 -12.5t2 -18t4 -18t5.5 -11.5t11.5 -5.5t18 -4t18 -2t12.5 1.5v-330q-4 2 -12.5 1.5t-18 -2t-18 -4t-11.5 -5.5t-5.5 -11.5t-4 -18t-2 -18t1.5 -12.5h-50v470z" /> + <glyph glyph-name="E" unicode="E" +d="M59 610v-610h400v65h-260v210h190v60h-190v210h260v65h-400v0z" /> + <glyph glyph-name="F" unicode="F" +d="M59 610v-610h135v275h195v60h-190v210h260v65h-400v0z" /> + <glyph glyph-name="G" unicode="G" +d="M59 70q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h330v270h-200v-65h60v-135h-120v470h125v-130h135v130q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5h-260q2 -4 1.5 -12.5t-2 -18t-4 -18t-5.5 -11.5t-11.5 -5.5 +t-18 -4t-18 -2t-12.5 1.5v-470z" /> + <glyph glyph-name="H" unicode="H" +d="M59 610v-610h135v270h130v-270h135v610h-135v-270h-130v270h-135v0z" /> + <glyph glyph-name="I" unicode="I" +d="M124 65v-65h260v65h-60v480h60v65h-260v-65h60v-480h-60v0z" /> + <glyph glyph-name="J" unicode="J" +d="M59 70q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h260q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5t11.5 5.5t18 4t18 2t12.5 -1.5v540h-135v-540h-130v130h-135v-130z" /> + <glyph glyph-name="K" unicode="K" +d="M56 610v-610h135v270h60v-135h70v-135h135v135h-65v140h-65v60h65v140h65v135h-135v-135h-70v-135h-60v270h-135v0z" /> + <glyph glyph-name="L" unicode="L" +d="M59 610v-610h400v65h-265v545h-135v0z" /> + <glyph glyph-name="M" unicode="M" +d="M44 610v-610h135v405h55v70h-55v135h-135zM379 400v-400h135v610h-135v-130q-4 2 -13.5 1.5t-20 -2t-19.5 -4t-12 -5.5q-2 -2 -3 -11t-2 -19.5t-2.5 -19.5t-2.5 -10q-3 -3 -11.5 -5.5t-18 -4t-18 -2t-12.5 1.5v-190h65v190h70z" /> + <glyph glyph-name="N" unicode="N" +d="M56 610v-610h135v350l200 -176v-174h135v610h-135v-301l-200 191v110h-135z" /> + <glyph glyph-name="O" unicode="O" +d="M75 69q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h260q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5t11.5 5.5t18 4t18 2t12.5 -1.5v470q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5h-260q2 -4 1.5 -12.5t-2 -18t-4 -18 +t-5.5 -11.5t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5v-470zM215 539h120v-470h-120v470z" /> + <glyph glyph-name="P" unicode="P" +d="M57 615v-615h139v275h200v60h65v209l-65 1v70h-339v0zM196 544h129v-209h-129v209v0z" /> + <glyph glyph-name="Q" unicode="Q" +d="M247 0q-2 -4 -1.5 -13.5t2 -20t4 -19.5t5.5 -12q1 -2 10 -3t19.5 -2t19.5 -2.5t11 -2.5q3 -3 5.5 -11.5t4 -18t2 -18t-1.5 -12.5h130v65h-60v140h60v475q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5h-260q2 -4 1.5 -12.5t-2 -18t-4 -18 +t-5.5 -11.5t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5v-470q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -12t4 -19.5t2 -20t-1.5 -13.5h120zM197 545h120v-470h-120v470z" /> + <glyph glyph-name="R" unicode="R" +d="M79 610v-610h135v270h55q-2 -4 -1.5 -12.5t2 -18t4 -18t5.5 -11.5t12 -5.5t19.5 -4t20 -2t13.5 1.5v-200h135v205h-60v130h60v205q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5h-330zM219 540h120v-200h-120v200z" /> + <glyph glyph-name="S" unicode="S" +d="M51 70q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h260q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5t11.5 5.5t18 4t18 2t12.5 -1.5v130q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5q-2 1 -3 10t-2 19.5t-2.5 19.5t-2.5 11q-3 3 -12 5.5t-19.5 4t-20 2 +t-13.5 -1.5v50q-4 -2 -14 -2q-9 0 -19.5 1.5t-19.5 4.5t-12 6t-6 12t-4.5 19.5t-1.5 19.5q0 10 2 14h-50v135h125v-60h135v60q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5h-260q2 -4 1.5 -12.5t-2 -18t-4 -18t-5.5 -11.5t-11.5 -5.5t-18 -4 +t-18 -2t-12.5 1.5v-130q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5q1 -2 2.5 -11t2.5 -19.5t2 -19.5t3 -10q3 -3 11.5 -5.5t18 -4t18 -2t12.5 1.5q-2 -3 -1 -10.5t2.5 -15.5t4 -15t4.5 -9t9 -4.5t15 -4t15.5 -2.5t10.5 1q-2 -4 -1.5 -12.5t2 -18t4 -18t5.5 -11.5t11.5 -5.5t18 -4 +t18 -2t12.5 1.5v-130h-125v60h-135v-60z" /> + <glyph glyph-name="T" unicode="T" +d="M194 545v-545h130v545h135v65h-400v-65h135v0z" /> + <glyph glyph-name="U" unicode="U" +d="M56 70q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h260q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5t11.5 5.5t18 4t18 2t12.5 -1.5v540h-135v-540h-130v540h-135v-540z" /> + <glyph glyph-name="V" unicode="V" +d="M54 140q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5q1 -2 2.5 -11t2.5 -19.5t2 -19.5t3 -10q1 -2 10 -3t19.5 -2t19.5 -2.5t11 -2.5q3 -3 5.5 -11.5t4 -18t2 -18t-1.5 -12.5h120q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5q1 1 10 2.5t19.5 2.5t19.5 2t11 3q1 1 2.5 10t2.5 19.5t2 19.5 +t3 11q3 3 11.5 5.5t18 4t18 2t12.5 -1.5v470h-135v-470h-130v470h-135v-470z" /> + <glyph glyph-name="W" unicode="W" +d="M119 205v-205h130v205h65v195h-65v-190h-60v400h-135v-405h65v0zM324 205v-205h135v205h65v405h-135v-405h-65v0z" /> + <glyph glyph-name="X" unicode="X" +d="M56 200v-200h135v270h55q-2 -4 -1.5 -12.5t2 -18t4 -18t5.5 -11.5t12 -5.5t19.5 -4t20 -2t13.5 1.5v-200h135v200q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5q-2 1 -3 10t-2 19.5t-2.5 19.5t-2.5 11q-3 3 -11.5 5.5t-18 4t-18 2t-12.5 -1.5v120q4 -2 12.5 -1.5t18 2t18 4 +t11.5 5.5q1 1 2.5 10t2.5 19.5t2 19.5t3 11q3 3 11.5 5.5t18 4t18 2t12.5 -1.5v130h-135v-200h-70v65h-60v135h-135v-130q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5q1 -2 2.5 -11t2.5 -19.5t2 -19.5t3 -10q3 -3 11.5 -5.5t18 -4t18 -2t12.5 1.5v-120q-4 2 -12.5 1.5t-18 -2 +t-18 -4t-11.5 -5.5q-2 -2 -3 -11t-2 -19.5t-2.5 -19.5t-2.5 -10q-3 -3 -11.5 -5.5t-18 -4t-18 -2t-12.5 1.5z" /> + <glyph glyph-name="Y" unicode="Y" +d="M189 275v-275h130v275h70v60h65v275h-135v-270h-130v270h-135v-275h65v-60h70v0z" /> + <glyph glyph-name="Z" unicode="Z" +d="M56 200v-200h400v65h-260v140h50q-2 4 -2 13q0 10 1.5 20.5t4.5 19.5t6 12t12 6t19.5 4.5t19.5 1.5q10 0 14 -2v50q4 -2 13.5 -1.5t20 2t19.5 4t12 5.5q1 1 2.5 10t2.5 19.5t2 19.5t3 11q3 3 11.5 5.5t18 4t18 2t12.5 -1.5v200h-400v-65h260v-135q-4 2 -12.5 1.5t-18 -2 +t-18 -4t-11.5 -5.5t-5.5 -11.5t-4 -18t-2 -18t1.5 -12.5q-3 1 -10.5 0.5t-15.5 -2t-15 -3.5t-9 -5t-4.5 -9.5t-4 -14.5t-2.5 -15.5t1 -10.5q-4 2 -12.5 1.5t-18 -2t-18 -4t-11.5 -5.5q-2 -2 -3 -11t-2 -19.5t-2.5 -19.5t-2.5 -10q-3 -3 -11.5 -5.5t-18 -4t-18 -2t-12.5 1.5z +" /> + <glyph glyph-name="bracketleft" unicode="[" +d="M121 623v-798h269v55h-130v678h130v65h-269v0z" /> + <glyph glyph-name="backslash" unicode="\" +d="M372 -60l110 -3l-2 53l-314 625l-84 2v-99z" /> + <glyph glyph-name="bracketright" unicode="]" +d="M166 -132v-55h260v810h-260v-65h120v-690h-120v0z" /> + <glyph glyph-name="asciicircum" unicode="^" +d="M208 717v-60v0h-60v0v-60v0h-60v0v-60v0h120v0v60h120v0v-60v0h108v0v60v0h-48v0v60v0h-60v0v60v0h-120v0z" /> + <glyph glyph-name="underscore" unicode="_" +d="M0 -158v-50h550v50h-550z" /> + <glyph glyph-name="grave" unicode="`" +d="M282 589v-69h140v69h-70v140h-199v-70h70v-70h59z" /> + <glyph glyph-name="a" unicode="a" +d="M59 70q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h330v400q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5h-260v-65h190v-130h-190q2 -4 1.5 -13.5t-2 -20t-4 -19.5t-5.5 -12t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5 +v-130zM199 200h120v-130h-120v130z" /> + <glyph glyph-name="b" unicode="b" +d="M97 610v-610h330q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5t11.5 5.5t18 4t18 2t12.5 -1.5v330h-66v75h-199v135h-135zM237 400h120v-330h-120v330z" /> + <glyph glyph-name="c" unicode="c" +d="M56 70q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h260q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5t11.5 5.5t18 4t18 2t12.5 -1.5v60h-135v-60h-125v330h125v-60h135v60q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5 +h-260q2 -4 1.5 -12.5t-2 -18t-4 -18t-5.5 -11.5t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5v-330z" /> + <glyph glyph-name="d" unicode="d" +d="M59 70q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h330v610h-135v-135h-195q2 -4 1.5 -13.5t-2 -20t-4 -19.5t-5.5 -12t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5v-330zM199 400h120v-330h-120v330z" /> + <glyph glyph-name="e" unicode="e" +d="M51 70q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h260v65h-190v140h260v195q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5h-260q2 -4 1.5 -12.5t-2 -18t-4 -18t-5.5 -11.5t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5 +v-330zM191 400h120v-120h-120v120z" /> + <glyph glyph-name="f" unicode="f" +d="M124 275v-275h130v275h209v61h-208v211h208v67h-267v-68h-72v-211h-70v-60h70v0z" /> + <glyph glyph-name="g" unicode="g" +d="M62 -140v-55h335v55h65v615h-330q2 -4 1.5 -12.5t-2 -18t-4 -18t-5.5 -11.5t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5v-330q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -12t4 -19.5t2 -20t-1.5 -13.5h190v-140h-260zM202 405h120v-330h-120v330z" /> + <glyph glyph-name="h" unicode="h" +d="M62 610v-610h135v400h130v-400h135v400q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 12t-4 19.5t-2 20t1.5 13.5h-195v135h-135z" /> + <glyph glyph-name="i" unicode="i" +d="M59 65v-65h400v65h-135v405h-265v-65h130v-340h-130v0zM199 660v-110h120v110h-120v0z" /> + <glyph glyph-name="j" unicode="j" +d="M59 -155v-55h265v55h65v615h-260v-65h120v-550h-190v0zM259 650v-110h130v110h-130v0z" /> + <glyph glyph-name="k" unicode="k" +d="M62 610v-610h135v200h55q-2 -4 -1.5 -12.5t2 -18t4 -18t5.5 -11.5t12 -5.5t19.5 -4t20 -2t13.5 1.5v-130h135v130q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5q-2 1 -3 10t-2 19.5t-2.5 19.5t-2.5 11q-3 3 -11.5 5.5t-18 4t-18 2t-12.5 -1.5v65h65v60h65v135h-135v-135h-65 +q2 -3 1.5 -11t-2 -17t-4 -16.5t-5.5 -10.5t-11 0t-16.5 7.5t-16.5 8.5t-11 4v310h-135z" /> + <glyph glyph-name="l" unicode="l" +d="M59 65v-65h400v65h-135v545h-265v-65h130v-480h-130v0z" /> + <glyph glyph-name="m" unicode="m" +d="M59 470v-470h135v400h60v-330h70v330h70v-400h135v400h-65v70h-405v0z" /> + <glyph glyph-name="n" unicode="n" +d="M59 470v-470h135v400h130v-400h135v400l-65 7v63h-335v0z" /> + <glyph glyph-name="o" unicode="o" +d="M59 70q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h260q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5t11.5 5.5t18 4t18 2t12.5 -1.5v330q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5h-260q2 -4 1.5 -12.5t-2 -18t-4 -18 +t-5.5 -11.5t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5v-330zM199 400h120v-330h-120v330z" /> + <glyph glyph-name="p" unicode="p" +d="M56 470v-664h134v193h193q-2 4 -1.5 13.5t2 19.5t4 19t5.5 13q3 3 11 5.5t17.5 4t17.5 1.5q9 0 13 -1v326q-4 -2 -12.5 -1.5t-18 2t-17.5 4t-11 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5h-327zM195 400h118v-326h-118v326z" /> + <glyph glyph-name="q" unicode="q" +d="M324 1v-194h135v664h-327q1 -4 2 -15t1 -23t-1 -21.5t-4 -9.5q-4 0 -13.5 -0.5t-20 -1t-20.5 -0.5q-9 0 -13 2v-327q4 2 14 3t21.5 0.5t21.5 -1.5t13 -4t4 -13.5t0 -22t-2.5 -22t-2.5 -14.5h192zM201 402h119v-327h-119v327z" /> + <glyph glyph-name="r" unicode="r" +d="M62 470v-470h135v276l60 1l1 58h204v135h-135l1 -63h-70l-2 -72h-59v135h-135z" /> + <glyph glyph-name="s" unicode="s" +d="M62 65v-65h330q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5t11.5 5.5t18 4t18 2t12.5 -1.5v130q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 12t-4 19.5t-2 20t1.5 13.5h-190v130h260v65h-330q2 -4 1.5 -12.5t-2 -18t-4 -18t-5.5 -11.5t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5 +v-120q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -12t4 -19.5t2 -20t-1.5 -13.5h190v-140h-260z" /> + <glyph glyph-name="t" unicode="t" +d="M124 70q4 2 13.5 1.5t20 -2t19.5 -4t12 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h260v65h-200v340h200v70h-205v135h-130v-135h-65v-70h65v-335z" /> + <glyph glyph-name="u" unicode="u" +d="M59 70q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h330v470h-135v-400h-130v400h-135v-400z" /> + <glyph glyph-name="v" unicode="v" +d="M59 140q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5q1 -2 2.5 -11t2.5 -19.5t2 -19.5t3 -10q1 -2 10 -3t19.5 -2t19.5 -2.5t11 -2.5q3 -3 5.5 -11.5t4 -18t2 -18t-1.5 -12.5h120q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5q1 1 10 2.5t19.5 2.5t19.5 2t11 3q1 1 2.5 10t2.5 19.5t2 19.5 +t3 11q3 3 11.5 5.5t18 4t18 2t12.5 -1.5v330h-135v-330h-130v330h-135v-330z" /> + <glyph glyph-name="w" unicode="w" +d="M113 133v-133h129v133h64v263h-64v-257h-59v326h-135v-332h65v0zM316 133v-133h134v133h64v332h-133v-332h-65v0z" /> + <glyph glyph-name="x" unicode="x" +d="M59 130v-130h135v130h130v-130h135v130q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5q-2 1 -3 10t-2 19.5t-2.5 19.5t-2.5 11q-3 3 -11.5 5.5t-18 4t-18 2t-12.5 -1.5v65h65v60h65v135h-135v-130h-130v130h-135v-135h65v-60h65v-65q-4 2 -12.5 1.5t-18 -2t-18 -4t-11.5 -5.5 +q-2 -2 -3 -11t-2 -19.5t-2.5 -19.5t-2.5 -10q-3 -3 -11.5 -5.5t-18 -4t-18 -2t-12.5 1.5z" /> + <glyph glyph-name="y" unicode="y" +d="M22 -141v-55h265v50q4 -2 13.5 -1.5t20 2t19.5 4t12 5.5q1 1 2.5 10t2.5 19.5t2 19.5t3 11q3 3 12 5.5t19.5 4t20 2t13.5 -1.5v135h65v405h-135v-400h-130v400h-135v-400q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -12t4 -19.5t2 -20t-1.5 -13.5h120v-70h-55v-70h-205z +" /> + <glyph glyph-name="z" unicode="z" +d="M59 130v-130h400v65h-260v70h50q-2 4 -1.5 13.5t2 20t4 19.5t5.5 12q1 1 10 2.5t19.5 2.5t19.5 2t11 3q1 1 2.5 10t2.5 19.5t2 19.5t3 11q3 3 12 5.5t19.5 4t20 2t13.5 -1.5v55h65v135h-400v-65h260v-70h-60q1 -3 1 -11t-1.5 -17t-4 -16.5t-5.5 -10.5q-2 -3 -9 -5.5 +t-15 -4t-15.5 -2t-10.5 1.5q2 -4 1.5 -12.5t-2 -18t-4 -18t-5.5 -11.5q-2 -2 -11 -3t-19.5 -2t-19.5 -2.5t-10 -2.5q-2 -2 -3 -11t-2 -19.5t-2.5 -19.5t-2.5 -10q-3 -3 -11.5 -5.5t-18 -4t-18 -2t-12.5 1.5z" /> + <glyph glyph-name="braceleft" unicode="{" +d="M240 -47v-65h135v65h-65v205h-68v75h-57v65h60v65h65v199h65v65h-135v-65h-60v-199h-70v-65h-65v-65h66v-75h69v-205h60z" /> + <glyph glyph-name="bar" unicode="|" +d="M228 611v-810h120v810h-120v0z" /> + <glyph glyph-name="braceright" unicode="}" +d="M101 -61v-65h139v70h75v200h72v80h63v65h-65v76h-70v200h-77v65h-139v-65h71v-200h78l2 -76h60v-65h-59v-75h-79v-210h-71z" /> + <glyph glyph-name="asciitilde" unicode="~" +d="M1 557v-134h61v65h67v68h77v-68h60v-65h216v65h59v135h-60v-63h-80v-67h-60v68h-80v71h-195v-75h-65z" /> + <glyph glyph-name="tilde" unicode="&#x2dc;" +d="M1 557v-134h61v65h67v68h77v-68h60v-65h216v65h59v135h-60v-63h-80v-67h-60v68h-80v71h-195v-75h-65z" /> + <glyph glyph-name="sf256" + /> + <glyph glyph-name="sf260" +d="M0 479v-480h120v400h160v-400h152q0 82 1.5 150t-2.5 122.5t-18 94.5t-44 67t-80.5 40.5t-128.5 13.5q-9 0 -32 -1.5t-48.5 -3t-48 -2.5t-31.5 -1z" /> + <glyph glyph-name="sf264" +d="M6 236q0 -62 6.5 -106t26.5 -72.5t58.5 -41.5t103.5 -13t103.5 13t59 41.5t26.5 72.5t6 106t-6 106t-26.5 72t-59 41t-103.5 13t-103.5 -13t-58.5 -41t-26.5 -72t-6.5 -106zM164 386h75v-300h-75v300z" /> + <glyph glyph-name="sf265" +d="M8 417v-705q6 0 17 2.5t23 7t22 9.5t13 11q6 6 16 28t21.5 47t21.5 47t16 28t28 17t47 23t47 22t28 13q8 6 21 17t25 23t20.5 22t8.5 13t1 21t2.5 42t2.5 48.5t1 38.5t-1 38t-2.5 48t-2.5 42.5t-1 21.5q-3 8 -12 19.5t-20.5 23t-23 20.5t-19.5 12q-3 0 -21.5 1t-42.5 2.5 +t-48 2.5t-38 1q-9 0 -30 -1t-45 -2.5t-45.5 -2.5t-29.5 -1zM158 342h75v-300h-75v300z" /> + <glyph glyph-name="sf259" +d="M69 448v-450h75l3 372l109 -297l150 300v-375h143q0 15 -1.5 45t-4.5 67t-6.5 78t-6.5 77.5t-6 65.5t-5 42q0 8 -8.5 21t-20.5 25t-25 20.5t-21 8.5q-3 0 -25.5 1t-52 2.5t-60 2.5t-50.5 1q-11 0 -37.5 -1t-56 -2.5t-56 -2.5t-37.5 -1z" /> + <glyph glyph-name="sf261" +d="M10 610v-610h135v311q3 0 11 4t16.5 8t16.5 6.5t11 0.5t5.5 -9t4 -15t2 -15.5t-1.5 -10.5q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5q1 -2 2.5 -11t2.5 -19.5t2 -19.5t3 -10q3 -3 12 -5.5t19.5 -4t20 -2t13.5 1.5v-200h135v610h-135v-270h-65q2 4 1.5 12.5t-2 18t-4 18 +t-5.5 11.5q-2 1 -11 2.5t-19.5 2.5t-19.5 2t-10 3q-3 3 -5.5 12t-4 19.5t-2 20t1.5 13.5h-55v135h-135z" /> + <glyph glyph-name="sf263" +d="M7 457v-457h102v233q2 0 8 3t12.5 6t12.5 5t8 0t4 -6.5t3 -10.5t1 -12q0 -5 -1 -8q3 1 9 1q7 0 14 -1.5t13.5 -3.5t8.5 -4q1 -1 2 -8t2 -14.5t2 -14.5t2 -8q3 -2 9.5 -4t14 -3t15 -1.5t10.5 1.5v-150h101v457h-101v-202h-49q1 3 1 9q0 7 -1.5 14t-3.5 13.5t-4 8.5 +q-1 1 -8 2t-14.5 1.5t-14.5 1.5t-8 2q-2 3 -4 9.5t-3 14.5t-1.5 15t1.5 10h-41v101h-102z" /> + <glyph glyph-name="sf262" +d="M7 457v-457h102v304h41v52h-41v101h-102zM259 300v-300h101v457h-101v-97q-3 1 -11 1q-7 0 -14.5 -1.5t-14 -3.5t-9.5 -4q-1 -1 -2 -8t-2 -14.5t-2 -14.5t-2 -8q-2 -2 -8.5 -4t-13.5 -3t-13.5 -1.5t-9.5 1.5v-143h49v143h53z" /> + <glyph glyph-name="sf266" +d="M10 130v-130h135v130h130v-130h135v130q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5q-2 1 -3 10t-2 19.5t-2.5 19.5t-2.5 11q-3 3 -11.5 5.5t-18 4t-18 2t-12.5 -1.5v65h65v60h65v135h-135v-130h-130v130h-135v-135h65v-60h65v-65q-4 2 -12.5 1.5t-18 -2t-18 -4t-11.5 -5.5 +q-2 -2 -3 -11t-2 -19.5t-2.5 -19.5t-2.5 -10q-3 -3 -11.5 -5.5t-18 -4t-18 -2t-12.5 1.5z" /> + <glyph glyph-name="sf267" +d="M6 -139v-55h265v50q4 -2 13.5 -1.5t20 2t19.5 4t12 5.5q1 1 2.5 10t2.5 19.5t2 19.5t3 11q3 3 12 5.5t19.5 4t20 2t13.5 -1.5v135h65v405h-135v-400h-130v400h-135v-400q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -12t4 -19.5t2 -20t-1.5 -13.5h120v-70h-55v-70h-205z" /> + <glyph glyph-name="sf268" +d="M145 4v-130h130v130q4 -2 13.5 -1.5t20 2t19.5 4t12 5.5q1 1 2.5 10t2.5 19.5t2 19.5t3 11q3 3 11.5 5.5t18 4t18 2t12.5 -1.5v130q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5q-2 1 -3 10t-2 19.5t-2.5 19.5t-2.5 11q-3 3 -12 5.5t-19.5 4t-20 2t-13.5 -1.5v50 +q-4 -2 -14 -2q-9 0 -19.5 1.5t-19.5 4.5t-12 6t-6 12t-4.5 19.5t-1.5 19.5q0 10 2 14h-50v135h125v-60h135v60q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5q-2 1 -3 10t-2 19.5t-2.5 19.5t-2.5 11q-3 3 -12 5.5t-19.5 4t-20 2t-13.5 -1.5v90h-130v-90q-4 2 -13.5 1.5t-20 -2 +t-19.5 -4t-12 -5.5q-2 -2 -3 -11t-2 -19.5t-2.5 -19.5t-2.5 -10q-3 -3 -11.5 -5.5t-18 -4t-18 -2t-12.5 1.5v-130q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5q1 -2 2.5 -11t2.5 -19.5t2 -19.5t3 -10q3 -3 11.5 -5.5t18 -4t18 -2t12.5 1.5q-2 -3 -1 -10t2.5 -15t4 -15t4.5 -10t9 -5 +t15 -3.5t15.5 -2t10.5 0.5q-2 -4 -1.5 -12.5t2 -18t4 -18t5.5 -11.5t11.5 -5.5t18 -4t18 -2t12.5 1.5v-130h-125v60h-135v-60q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5q1 -2 2.5 -11t2.5 -19.5t2 -19.5t3 -10q3 -3 12 -5.5t19.5 -4t20 -2t13.5 1.5z" /> + <glyph glyph-name="sf269" +d="M10 810v-810h260v55h-130v690h130v65h-260v0z" /> + <glyph glyph-name="sf270" +d="M56 603v-200h130v200h-130v0zM326 603v-200h130v200h-130v0z" /> + <glyph glyph-name="acute" unicode="&#xb4;" +d="M292 589v-69h-140v69h70v140h199v-70h-70v-70h-59z" /> + <glyph glyph-name="degree" unicode="&#xb0;" +d="M146 649v-63v0h-67v0v-127v0h67v0v-63v0h271v0v63v0h63v0v127v0h-63v0v63v0h-271v0zM354 586v-127h-139v127h139z" /> + <glyph glyph-name="section" unicode="&#xa7;" +d="M148 578v-60v0h-60v0v-120v0h60v-120v0h-60v0v-120v0h60v0v-60v0h60v0v-66v0h120v-136h-120v0v68v0h-120v0v-68v0h60v0v-66v0h240v0v66v0h60v0v136v0h-60v126v0h60v0v120v0h-60v0v60v0h-60v0v60v0h-120v120v0h120v0v-60v0h120v0v60v0h-60v0v60v0h-240v0zM328 278v-120 +h-120v120h120z" /> + <glyph glyph-name="adieresis" unicode="&#xe4;" +d="M136 440v-60v0h202v-141v0h-202v0v-60v0h-60v0v-120v0h60v0v-60v0h322v0v381v0h-60v0v60v0h-262v0zM338 179v-120h-134v120h134zM81 641v-120v0h120v0v120v0h-120v0zM321 641v-120v0h120v0v120v0h-120v0z" /> + <glyph glyph-name="Adieresis" unicode="&#xc4;" +d="M57 770v-129v0h134v0v129v0h-134v0zM330 770v-129v0h134v0v129v0h-134v0zM198 576v-66v0h-68v0v-69v0h-66v0v-442v0h134v0v180h139v-180v0h134v0v442v0h-66v0v69v0h-68v0v66v0h-139v0zM337 441v-202h-139v0v202h139z" /> + <glyph glyph-name="odieresis" unicode="&#xf6;" +d="M81 641v-120v0h120v0v120v0h-120v0zM321 641v-120v0h120v0v120v0h-120v0zM141 447v-60v0h-60v0v-327v0h60v0v-60v0h240v0v60v0h60v0v327v0h-60v0v60v0h-240v0zM321 387v-327h-120v0v327h120z" /> + <glyph glyph-name="Odieresis" unicode="&#xd6;" +d="M119 580v-70v0h-60v0v-447v0h60v0v-60v0h279v0v60v0h60v0v447v0h-60v0v70v0h-279v0zM338 510v0v-447h-143v0v447h143zM57 770v-129v0h134v0v129v0h-134v0zM330 770v-129v0h134v0v129v0h-134v0z" /> + <glyph glyph-name="udieresis" unicode="&#xfc;" +d="M83 435v-377v0h60v0v-60v0h300v0v437v0h-120v0v-377h-120v0v377v0h-120v0zM81 641v-120v0h120v0v120v0h-120v0zM321 641v-120v0h120v0v120v0h-120v0z" /> + <glyph glyph-name="Udieresis" unicode="&#xdc;" +d="M59 572v-513v0h60v0v-60v0h281v0v60v0h60v0v513v0h-120v0v-513h-149v0v513v0h-132v0zM57 770v-129v0h134v0v129v0h-134v0zM330 770v-129v0h134v0v129v0h-134v0z" /> + <glyph glyph-name="germandbls" unicode="&#xdf;" +d="M138 576v-60v0h-60v0v-517v0h120v0v517v0h60v-204v0h60v0v-253v0h-60v0v-60v0h120v0v60v0h60v0v253v0h-60v0v204v0h-60v0v60v0h-180v0z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" unicode="&#x85;" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" unicode="&#xa;" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="uni0001" +d="M67 600h400v-600h-400v600z" /> + <glyph glyph-name="glyph124" +d="M267 600h133v-267h-200z" /> + <glyph glyph-name="uni0091" +d="M266 600h132v-66h-68v-68h68v-133h-200v201h68v66z" /> + <glyph glyph-name="uni0092" +d="M200 600h200v-199h-67v-68h-133v68h66v67h-66v132z" /> + <glyph glyph-name="exclamdown" unicode="&#xa1;" +d="M200 400h133v-133h-133v133zM200 200h132v-133h68v-200h-67v-67h-133v67h-67v200h67v133z" /> + <glyph glyph-name="cent" unicode="&#xa2;" +d="M200 600h133v-133h66v-67h67v-67h-133v67h-133v-267h132v67h133v-66h-65v-66h-67v-135h-133v135h-67v65h-66v267h65v68h68v132z" /> + <glyph glyph-name="sterling" unicode="&#xa3;" +d="M0 133h67v135h-67v65h67v200h66v67h267v-66h66v-67h-133v66h-133v-200h200v-65h-201v-134h-66v-67h334v-67h-467v133z" /> + <glyph glyph-name="currency" unicode="&#xa4;" +d="M200 400v-133h133v133h-133zM67 533h132v-66h134v66h134v-66h-67v-67h66v-133h-67v-66h68v-68h-134v68h-133v-68h-133v67h66v67h-66v133h66v67h-66v66z" /> + <glyph glyph-name="yen" unicode="&#xa5;" +d="M67 600h132v-199h134v199h133v-199h-66v-68h66v-66h-133v-67h132v-67h-132v-133h-133v133h-133v67h133v67h-133v66h65v68h-65v199z" /> + <glyph glyph-name="brokenbar" unicode="&#xa6;" +d="M200 133h133v-333h-133v333zM200 600h133v-333h-133v333z" /> + <glyph glyph-name="dieresis" unicode="&#xa8;" +d="M67 667h133v-134h-133v134zM333 667h134v-134h-134v134z" /> + <glyph glyph-name="uni00AD" unicode="&#xad;" +d="M466 268h-400v65h400v-65z" /> + <glyph glyph-name="macron" unicode="&#xaf;" +d="M0 800h532v-66h-532v66z" /> + <glyph glyph-name="periodcentered" unicode="&#xb7;" +d="M200 400h200v-133h-200v133z" /> + <glyph glyph-name="logicalnot" unicode="&#xac;" +d="M467 333v-200h-135v134h-265v66h400z" /> + <glyph glyph-name="uni00B2" unicode="&#xb2;" +d="M133 600h200v-67h67v-66h-68v-66h-65v-68h133v-66h-267v133h67v67h67v66h-134v67z" /> + <glyph glyph-name="plusminus" unicode="&#xb1;" +d="M466 68v-68h-399v68h399zM200 467h133v-134h133v-66h-133v-134h-133v134h-133v66h133v134z" /> + <glyph glyph-name="uni00B3" unicode="&#xb3;" +d="M133 600h200v-67h67v-65h-67v-67h66v-67h-66v-67h-200v66h134v68h-67v66h67v66h-134v67z" /> + <glyph glyph-name="divide" unicode="&#xf7;" +d="M200 200h133v-133h-133v133zM200 533h133v-133h-133v133zM465 333v-66h-398v66h398z" /> + <glyph glyph-name="edieresis" unicode="&#xeb;" +d="M67 667h133v-134h-133v134zM200 400v-133h133v133h-133zM133 467h266v-67h68v-200h-267v-133h199v-66h-266v66h-66v334h66v66zM333 667h134v-134h-134v134z" /> + <glyph glyph-name="copyright" unicode="&#xa9;" +d="M200 467h132v-67h68v-67h-67v68h-133v-201h-67v200h67v67zM67 468v-334h66v-66h267v66h67v335h-67v65h-268v-66h-65zM0 533h66v67h399v-67h68v-466h-67v-67h-399v67h-67v466zM200 200h133v67h67v-66h-68v-67h-132v66z" /> + <glyph glyph-name="ordfeminine" unicode="&#xaa;" +d="M200 400v-67h133v67h-133zM467 200v-67h-400v67h400zM134 601h266v-68h67v-266h-335v66h-65v67h65v67h201v66h-199v68z" /> + <glyph glyph-name="guillemotleft" unicode="&#xab;" +d="M266 334v-66h-68v-66h-66v-68h66v-67h68v-66h-133v67h-67v66h-67v66h67v67h66v67h134zM400 334h133v-65h-67v-67h-66v-68h64v-66h69v-68h-133v67h-68v67h-65v66h66v66h67v68z" /> + <glyph glyph-name="registered" unicode="&#xae;" +d="M67 467v-333h66v-66h267v66h66v333h-66v66h-267v-66h-66zM132 133v334h200v-67h68v-133h-67v133h-133v-132h132v-68h67v-66h-67v67h-133v-68h-67zM0 533h67v67h398v-67h68v-466h-67v-67h-400v67h-66v466z" /> + <glyph glyph-name="egrave" unicode="&#xe8;" +d="M200 400v-133h133v133h-133zM333 600v-67h-134v67h-66v67h-66v67h199v-134h67zM133 467h267v-67h66v-200h-266v-133h199v-68h-266v68h-66v333h66v67z" /> + <glyph glyph-name="eacute" unicode="&#xe9;" +d="M200 400v-133h133v133h-133zM133 467h267v-67h67v-200h-267v-133h199v-68h-266v68h-66v334h66v66zM267 733h198v-65h-65v-67h-67v-68h-133v67h67v133z" /> + <glyph glyph-name="ecircumflex" unicode="&#xea;" +d="M200 400v-133h133v133h-133zM133 467h267v-67h67v-200h-267v-133h199v-66h-266v66h-66v334h66v66zM200 733h132v-66h68v-66h66v-67h-134v66h-132v-67h-133v68h66v66h67v66z" /> + <glyph glyph-name="Agrave" unicode="&#xc0;" +d="M59 470v-470h135v200h130v-200h135v470q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5q-2 1 -3 10t-2 19.5t-2.5 19.5t-2.5 11q-2 1 -11 2.5t-19.5 2.5t-19.5 2t-10 3q-3 3 -5.5 11.5t-4 18t-2 18t1.5 12.5h-120q2 -4 1.5 -12.5t-2 -18t-4 -18t-5.5 -11.5q-2 -2 -11 -3 +t-19.5 -2t-19.5 -2.5t-10 -2.5q-2 -2 -3 -11t-2 -19.5t-2.5 -19.5t-2.5 -10q-3 -3 -11.5 -5.5t-18 -4t-18 -2t-12.5 1.5zM199 470h120v-190h-120v190zM129 803h133v-67h66v-67h-133v67h-66v67z" /> + <glyph glyph-name="Aacute" unicode="&#xc1;" +d="M59 470v-470h135v200h130v-200h135v470q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5q-2 1 -3 10t-2 19.5t-2.5 19.5t-2.5 11q-2 1 -11 2.5t-19.5 2.5t-19.5 2t-10 3q-3 3 -5.5 11.5t-4 18t-2 18t1.5 12.5h-120q2 -4 1.5 -12.5t-2 -18t-4 -18t-5.5 -11.5q-2 -2 -11 -3 +t-19.5 -2t-19.5 -2.5t-10 -2.5q-2 -2 -3 -11t-2 -19.5t-2.5 -19.5t-2.5 -10q-3 -3 -11.5 -5.5t-18 -4t-18 -2t-12.5 1.5zM199 470h120v-190h-120v190zM263 737v66h134v-65h-68v-68h-131v67h65z" /> + <glyph glyph-name="Acircumflex" unicode="&#xc2;" +d="M59 470v-470h135v200h130v-200h135v470q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5q-2 1 -3 10t-2 19.5t-2.5 19.5t-2.5 11q-2 1 -11 2.5t-19.5 2.5t-19.5 2t-10 3q-3 3 -5.5 11.5t-4 18t-2 18t1.5 12.5h-120q2 -4 1.5 -12.5t-2 -18t-4 -18t-5.5 -11.5q-2 -2 -11 -3 +t-19.5 -2t-19.5 -2.5t-10 -2.5q-2 -2 -3 -11t-2 -19.5t-2.5 -19.5t-2.5 -10q-3 -3 -11.5 -5.5t-18 -4t-18 -2t-12.5 1.5zM199 470h120v-190h-120v190zM130 803h267v-66h67v-68h-134v67h-133v-66h-133v66h66v67z" /> + <glyph glyph-name="Atilde" unicode="&#xc3;" +d="M59 470v-470h135v200h130v-200h135v470q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5q-2 1 -3 10t-2 19.5t-2.5 19.5t-2.5 11q-2 1 -11 2.5t-19.5 2.5t-19.5 2t-10 3q-3 3 -5.5 11.5t-4 18t-2 18t1.5 12.5h-120q2 -4 1.5 -12.5t-2 -18t-4 -18t-5.5 -11.5q-2 -2 -11 -3 +t-19.5 -2t-19.5 -2.5t-10 -2.5q-2 -2 -3 -11t-2 -19.5t-2.5 -19.5t-2.5 -10q-3 -3 -11.5 -5.5t-18 -4t-18 -2t-12.5 1.5zM199 470h120v-190h-120v190zM129 803h200v-66h67v66h132v-67h-67v-65h-198v65h-67v-65h-133v65h66v67z" /> + <glyph glyph-name="Aring" unicode="&#xc5;" +d="M59 470v-470h135v200h130v-200h135v470q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5q-2 1 -3 10t-2 19.5t-2.5 19.5t-2.5 11q-2 1 -11 2.5t-19.5 2.5t-19.5 2t-10 3q-3 3 -5.5 11.5t-4 18t-2 18t75.5 6.5v71h66v63h-65v66h-265v-65h-68v-64h65v-69q75 0 74.5 -8.5t-2 -18 +t-4 -18t-5.5 -11.5q-2 -2 -11 -3t-19.5 -2t-19.5 -2.5t-10 -2.5q-2 -2 -3 -11t-2 -19.5t-2.5 -19.5t-2.5 -10q-3 -3 -11.5 -5.5t-18 -4t-18 -2t-12.5 1.5zM199 470h120v-190h-120v190zM194 739h133v-66h-133v66z" /> + <glyph glyph-name="Egrave" unicode="&#xc8;" +d="M59 610v-610h400v65h-260v210h190v60h-190v210h260v65h-400v0zM127 805h131v-64h67v-63h-134v62h-64v65z" /> + <glyph glyph-name="Eacute" unicode="&#xc9;" +d="M59 610v-610h400v65h-260v210h190v60h-190v210h260v65h-400v0zM260 803h132v-66h-66v-66h-133v66h67v66z" /> + <glyph glyph-name="Ecircumflex" unicode="&#xca;" +d="M59 610v-610h400v65h-260v210h190v60h-190v210h260v65h-400v0zM129 806h265v-66h67v-66h-132v65h-134v-66h-133v67h67v66z" /> + <glyph glyph-name="Edieresis" unicode="&#xcb;" +d="M59 610v-610h400v65h-260v210h190v60h-190v210h260v65h-400v0zM62 807h132v-133h-132v133zM326 806h132v-133h-132v133z" /> + <glyph glyph-name="Igrave" unicode="&#xcc;" +d="M124 65v-65h260v65h-60v480h60v65h-260v-65h60v-480h-60v0zM127 806h133v-67h66v-65h-133v66h-66v66z" /> + <glyph glyph-name="Iacute" unicode="&#xcd;" +d="M124 65v-65h260v65h-60v480h60v65h-260v-65h60v-480h-60v0zM261 805h132v-67h-66v-66h-133v65h67v68z" /> + <glyph glyph-name="Icircumflex" unicode="&#xce;" +d="M124 65v-65h260v65h-60v480h60v65h-260v-65h60v-480h-60v0zM124 809h266v-66h67v-66h-133v66h-134v-66h-132v65h66v67z" /> + <glyph glyph-name="Idieresis" unicode="&#xcf;" +d="M124 65v-65h260v65h-60v480h60v65h-260v-65h60v-480h-60v0zM55 813h133v-131h-133v131zM322 812h132v-132h-132v132z" /> + <glyph glyph-name="Ograve" unicode="&#xd2;" +d="M75 69q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h260q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5t11.5 5.5t18 4t18 2t12.5 -1.5v470q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5h-260q2 -4 1.5 -12.5t-2 -18t-4 -18 +t-5.5 -11.5t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5v-470zM215 539h120v-470h-120v470zM142 808h133v-66h67v-68h-133v68h-67v66z" /> + <glyph glyph-name="Oacute" unicode="&#xd3;" +d="M75 69q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h260q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5t11.5 5.5t18 4t18 2t12.5 -1.5v470q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5h-260q2 -4 1.5 -12.5t-2 -18t-4 -18 +t-5.5 -11.5t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5v-470zM215 539h120v-470h-120v470zM276 806h132v-66h-66v-66h-133v65h67v67z" /> + <glyph glyph-name="Ocircumflex" unicode="&#xd4;" +d="M75 69q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h260q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5t11.5 5.5t18 4t18 2t12.5 -1.5v470q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5h-260q2 -4 1.5 -12.5t-2 -18t-4 -18 +t-5.5 -11.5t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5v-470zM215 539h120v-470h-120v470zM141 808h266v-68h66v-65h-132v67h-133v-66h-133v65h66v67z" /> + <glyph glyph-name="Otilde" unicode="&#xd5;" +d="M75 69q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h260q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5t11.5 5.5t18 4t18 2t12.5 -1.5v470q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5h-260q2 -4 1.5 -12.5t-2 -18t-4 -18 +t-5.5 -11.5t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5v-470zM215 539h120v-470h-120v470zM138 807h200v-66h67v66h132v-66h-66v-66h-199v65h-67v-65h-133v65h66v67z" /> + <glyph glyph-name="Ugrave" unicode="&#xd9;" +d="M56 70q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h260q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5t11.5 5.5t18 4t18 2t12.5 -1.5v540h-135v-540h-130v540h-135v-540zM124 809h133v-65h65v-67h-131v67h-67v65z" /> + <glyph glyph-name="Uacute" unicode="&#xda;" +d="M56 70q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h260q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5t11.5 5.5t18 4t18 2t12.5 -1.5v540h-135v-540h-130v540h-135v-540zM259 809h133v-66h-68v-66h-132v66h67v66z" /> + <glyph glyph-name="Ucircumflex" unicode="&#xdb;" +d="M56 70q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h260q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5t11.5 5.5t18 4t18 2t12.5 -1.5v540h-135v-540h-130v540h-135v-540zM124 809h268v-66h65v-65h-132v65h-132v-66h-134v66h65v66z" /> + <glyph glyph-name="ograve" unicode="&#xf2;" +d="M59 70q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h260q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5t11.5 5.5t18 4t18 2t12.5 -1.5v330q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5h-260q2 -4 1.5 -12.5t-2 -18t-4 -18 +t-5.5 -11.5t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5v-330zM199 400h120v-330h-120v330zM59 742h200v-133h66v-67h-132v67h-68v67h-66v66z" /> + <glyph glyph-name="oacute" unicode="&#xf3;" +d="M59 70q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h260q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5t11.5 5.5t18 4t18 2t12.5 -1.5v330q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5h-260q2 -4 1.5 -12.5t-2 -18t-4 -18 +t-5.5 -11.5t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5v-330zM199 400h120v-330h-120v330zM254 741h199v-66h-65v-67h-67v-67h-133v66h66v134z" /> + <glyph glyph-name="ocircumflex" unicode="&#xf4;" +d="M59 70q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h260q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5t11.5 5.5t18 4t18 2t12.5 -1.5v330q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5h-260q2 -4 1.5 -12.5t-2 -18t-4 -18 +t-5.5 -11.5t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5v-330zM199 400h120v-330h-120v330zM192 737h133v-66h67v-68h65v-66h-132v67h-134v-68h-132v67h65v67h68v67z" /> + <glyph glyph-name="otilde" unicode="&#xf5;" +d="M59 70q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h260q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5t11.5 5.5t18 4t18 2t12.5 -1.5v330q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5h-260q2 -4 1.5 -12.5t-2 -18t-4 -18 +t-5.5 -11.5t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5v-330zM199 400h120v-330h-120v330zM0 672h67v65h199v-66h66v-67h68v68h65v65h67v-132h-67l1 -67h-199v67h-67v67h-68v-68h-66v-66h-66v134z" /> + <glyph glyph-name="ugrave" unicode="&#xf9;" +d="M59 70q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h330v470h-135v-400h-130v400h-135v-400zM58 738h199v-132h67v-68h-133v68h-67v67h-66v65z" /> + <glyph glyph-name="uacute" unicode="&#xfa;" +d="M59 70q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h330v470h-135v-400h-130v400h-135v-400zM259 737h199v-66h-66v-66h-67v-67h-133v66h67v133z" /> + <glyph glyph-name="ucircumflex" unicode="&#xfb;" +d="M59 70q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h330v470h-135v-400h-130v400h-135v-400zM193 736h132v-65h67v-67h66v-67h-133v67h-133v-68h-132v67h66v67h67v66z" /> + <glyph glyph-name="Ntilde" unicode="&#xd1;" +d="M63 610v-610h135v311q3 0 11 4t16.5 8t16.5 6.5t11 0.5t5.5 -9t4 -15t2 -15.5t-1.5 -10.5q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5q1 -2 2.5 -11t2.5 -19.5t2 -19.5t3 -10q3 -3 12 -5.5t19.5 -4t20 -2t13.5 1.5v-200h135v610h-135v-270h-65q2 4 1.5 12.5t-2 18t-4 18 +t-5.5 11.5q-2 1 -11 2.5t-19.5 2.5t-19.5 2t-10 3q-3 3 -5.5 12t-4 19.5t-2 20t1.5 13.5h-55v135h-135zM132 800h201v-66h66l1 66h132v-66h-66v-66h-199v66h-68v-66h-134v66h67v66z" /> + <glyph glyph-name="Eth" unicode="&#xd0;" +d="M55 611v-271h-55v-64h54v-276h260q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5q1 1 10 2.5t19.5 2.5t19.5 2t11 3q1 1 2.5 10t2.5 19.5t2 19.5t3 11q3 3 11.5 5.5t18 4t18 2t12.5 -1.5v330q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5q-2 1 -3 10t-2 19.5t-2.5 19.5t-2.5 11 +q-2 1 -11 2.5t-19.5 2.5t-19.5 2t-10 3q-3 3 -5.5 11.5t-4 18t-2 18t1.5 12.5zM194 540h50q-2 -4 -1.5 -12.5t2 -18t4 -18t5.5 -11.5t11.5 -5.5t18 -4t18 -2t12.5 1.5v-330q-4 2 -12.5 1.5t-18 -2t-18 -4t-11.5 -5.5t-5.5 -11.5t-4 -18t-2 -18t1.5 -12.5h-50v205h67v65h-67 +v200z" /> + <glyph glyph-name="Yacute" unicode="&#xdd;" +d="M189 275v-275h130v275h70v60h65v275h-135v-270h-130v270h-135v-275h65v-60h70v0zM189 743h68v67h132v-66h-66v-66h-134v65z" /> + <glyph glyph-name="agrave" unicode="&#xe0;" +d="M59 70q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h330v400q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5h-260v-65h190v-130h-190q2 -4 1.5 -13.5t-2 -20t-4 -19.5t-5.5 -12t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5 +v-130zM199 200h120v-130h-120v130zM63 737h198v-133h66v-67h-133v67h-66v68h-65v65z" /> + <glyph glyph-name="aacute" unicode="&#xe1;" +d="M59 70q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h330v400q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5h-260v-65h190v-130h-190q2 -4 1.5 -13.5t-2 -20t-4 -19.5t-5.5 -12t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5 +v-130zM199 200h120v-130h-120v130zM459 739l1 -65h-67v-67h-66v-68h-133v67h67v133h198z" /> + <glyph glyph-name="acircumflex" unicode="&#xe2;" +d="M59 70q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h330v400q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5h-260v-65h190v-130h-190q2 -4 1.5 -13.5t-2 -20t-4 -19.5t-5.5 -12t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5 +v-130zM199 200h120v-130h-120v130zM461 606v-68h-133v68h-134v-67h-133v66h67v67h66v66h133v-66h67v-66h67z" /> + <glyph glyph-name="atilde" unicode="&#xe3;" +d="M59 70q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h330v400q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5h-260v-65h190v-130h-190q2 -4 1.5 -13.5t-2 -20t-4 -19.5t-5.5 -12t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5 +v-130zM199 200h120v-130h-120v130zM532 736v-132h-67v-68h-198v67h-67v67h-68v-66h-66v-67h-66v133h67v67h200v-67h66v-67h66v67h66v66h67z" /> + <glyph glyph-name="aring" unicode="&#xe5;" +d="M59 70q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h330v400q-4 -2 -12.5 -1.5t-18 2t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5h-260v-65h190v-130h-190q2 -4 1.5 -13.5t-2 -20t-4 -19.5t-5.5 -12t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5 +v-130zM199 200h120v-130h-120v130zM459 674h-67v66h-266v-66h-66v-67h65v-67h268v68h66v66zM194 672h133v-67h-132z" /> + <glyph glyph-name="igrave" unicode="&#xec;" +d="M59 65v-65h400v65h-135v405h-265v-65h130v-340h-130v0zM194 537h133v67h-67v133h-200v-65h67v-67h67v-68z" /> + <glyph glyph-name="iacute" unicode="&#xed;" +d="M59 65v-65h400v65h-135v405h-265v-65h130v-340h-130v0zM109 577zM257 606h-66v-67h132v67h67v67h67v65h-200v-132z" /> + <glyph glyph-name="icircumflex" unicode="&#xee;" +d="M59 65v-65h400v65h-135v405h-265v-65h130v-340h-130v0zM192 737v-66h-67v-67h-66v-67h133v68h133v-67h134v66h-66v67h-67v66h-134v0z" /> + <glyph glyph-name="idieresis" unicode="&#xef;" +d="M59 65v-65h400v65h-135v405h-265v-65h130v-340h-130v0zM323 672v-135h134v135h-134v0zM58 672v-135h134v135h-134v0z" /> + <glyph glyph-name="ntilde" unicode="&#xf1;" +d="M59 470v-470h135v400h130v-400h135v400l-65 7v63h-335v0zM533 736v-133h-67v-68h-199v67h-67v67h-68v-66h-66v-68h-67v134h67v67h200v-66h66v-67h68v66h66v67h67z" /> + <glyph glyph-name="yacute" unicode="&#xfd;" +d="M6 -139v-55h265v50q4 -2 13.5 -1.5t20 2t19.5 4t12 5.5q1 1 2.5 10t2.5 19.5t2 19.5t3 11q3 3 12 5.5t19.5 4t20 2t13.5 -1.5v135h65v405h-135v-400h-130v400h-135v-400q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -12t4 -19.5t2 -20t-1.5 -13.5h120v-70h-55v-70h-205z +M272 744h200v-66h-66v-67h-67v-68h-133v67h67z" /> + <glyph glyph-name="ydieresis" unicode="&#xff;" +d="M6 -139v-55h265v50q4 -2 13.5 -1.5t20 2t19.5 4t12 5.5q1 1 2.5 10t2.5 19.5t2 19.5t3 11q3 3 12 5.5t19.5 4t20 2t13.5 -1.5v135h65v405h-135v-400h-130v400h-135v-400q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -12t4 -19.5t2 -20t-1.5 -13.5h120v-70h-55v-70h-205z +M207 674v-134h-133v134h133zM476 674v-134h-134v134h134z" /> + <glyph glyph-name="oslash" unicode="&#xf8;" +d="M200 133v-66h133v133h-66v-67h-67zM200 400v-133h66v66h67v67h-133zM133 467h333v-400h-66v-67h-333v400h66v67z" /> + <glyph glyph-name="cedilla" unicode="&#xb8;" +d="M200 0h132v-67h68v-65h-67v-68h-200v67h134v66h-67v67z" /> + <glyph glyph-name="uni00B9" unicode="&#xb9;" +d="M200 600h133v-333h-133v200h-67v67h67v66z" /> + <glyph glyph-name="ordmasculine" unicode="&#xba;" +d="M135 600v-66h-66v-201h65v-66h268v66h66v200h-66v67h-267zM466 200v-67h-399v67h399zM200 333v200h133v-200h-133z" /> + <glyph glyph-name="paragraph" unicode="&#xb6;" +d="M533 600v-67h-67v-733h-133v333h-133v67h-67v67h-66v200h66v66h67v67h333z" /> + <glyph glyph-name="mu" unicode="&#xb5;" +d="M199 467v-400h134v400h132v-400h68v-67h-133v68h-67v-68h-133v-132h-67v-68h-133v67h67v600h132z" /> + <glyph glyph-name="Thorn" unicode="&#xde;" +d="M200 200h133v200h-133v-200zM67 600h133v-132h199v-68h66v-199h-66v-67h-199v-134h-133v600z" /> + <glyph glyph-name="thorn" unicode="&#xfe;" +d="M200 68h133v266h-133v-266zM67 600h133v-199h199v-68h66v-266h-65v-67h-200v-200h-133v800z" /> + <glyph glyph-name="guillemotright" unicode="&#xbb;" +d="M266 334v-66h68v-66h66v-68h-66v-67h-68v-66h133v67h67v66h67v66h-67v67h-66v67h-134zM132 334h-133v-65h67v-67h66v-68h-64v-66h-69v-68h133v67h68v67h65v66h-66v66h-67v68z" /> + <glyph glyph-name="Ccedilla" unicode="&#xc7;" +d="M59 70q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h64v-66h72v-65h-137v-68h204v68h66v64h-67v67h58q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5t11.5 5.5t18 4t18 2t12.5 -1.5v130h-135v-130h-125v470h125v-130h135v130q-4 -2 -12.5 -1.5t-18 2 +t-18 4t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5h-260q2 -4 1.5 -12.5t-2 -18t-4 -18t-5.5 -11.5t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5v-470z" /> + <glyph glyph-name="Oslash" unicode="&#xd8;" +d="M200 133v-66h133v201h-66v-135h-67zM199 533v-200h67v134h66v66h-133zM133 600l333 1v-534h-66v-67h-333v534h66v66z" /> + <glyph glyph-name="multiply" unicode="&#xd7;" +d="M67 200v-132h65v65h68v68h133v-67h66v-66h66v132h-66v67h-67v67h68v66h66v134h-66v-67h-67v-67h-134v68h-67v66h-65v-133h66v-67h66v-67h-67v-67h-65z" /> + <glyph glyph-name="questiondown" unicode="&#xbf;" +d="M328 270v130h-120v-130h120zM329 72v125h-125v-120q-4 2 -13.5 1.5t-20 -2t-19.5 -4t-12 -5.5q-1 -1 -2.5 -10t-2.5 -19.5t-2 -19.5t-3 -11q-3 -3 -11.5 -5.5t-18 -4t-18 -2t-12.5 1.5v-130q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h260 +q-2 4 -1.5 12.5t2 18t4 18t5.5 11.5t11.5 5.5t18 4t18 2t12.5 -1.5v130h-135v-130h-125v130q4 -2 12.5 -1.5t18 2t18 4t11.5 5.5t5.5 12t4 19.5t2 20t-1.5 13.5h50z" /> + <glyph glyph-name="ccedilla" unicode="&#xe7;" +d="M56 70q4 2 12.5 1.5t18 -2t18 -4t11.5 -5.5t5.5 -11.5t4 -18t2 -18t-1.5 -12.5h67v-64h68v-63h-130v-69h198v69h66v62h-66v67h56q-1 2 -0.5 10.5t2 18t4 18t5.5 11.5t11.5 5.5t18 4t18 2t12.5 -1.5v60h-135v-60h-125v330h125v-60h135v60q-4 -2 -12.5 -1.5t-18 2t-18 4 +t-11.5 5.5t-5.5 11.5t-4 18t-2 18t1.5 12.5h-260q2 -4 1.5 -12.5t-2 -18t-4 -18t-5.5 -11.5t-11.5 -5.5t-18 -4t-18 -2t-12.5 1.5v-330z" /> + <glyph glyph-name="eth" unicode="&#xf0;" +d="M200 334h133v-267h-133v267zM332 600v-67h-66v67h-133v-67h67v-66h-133v-67h133v-67h-133v-266h66v-67h267v68h65v333h-65v66h-68v67h133v66h-133zM200 400h67v67h-67v-67z" /> + <glyph glyph-name="ae" unicode="&#xe6;" +d="M533 401v-200h-200v-133h199v-68h-199v68h-66v-68h-200v68h-67v133h66v67h134v133h-133v67h132v-67h67v67h199v-67h68zM333 267h67v133h-67v-133zM133 67h67v133h-67v-133z" /> + <glyph glyph-name="AE" unicode="&#xc6;" +d="M267 600h266v-67h-133v-199h132v-66h-132v-201h132v-67h-265v201h-68v-201h-132v400h65v67h67v66h68v67zM200 267h67v133h-67v-133z" /> + <glyph glyph-name="onequarter" unicode="&#xbc;" +d="M67 667h132v-334h68v68h66v66h66v66h134v-65h-68v-67h-66v-67h-66v-67h200v-334h-133v67h-200v133h-68v-66h-132v66h66v67h67v67h67v66h-134v200h-66v68h67v66zM333 67h67v66h-67v-66zM267 200h66v67h-66v-67zM200 133h67v67h-67v-67z" /> + <glyph glyph-name="onehalf" unicode="&#xbd;" +d="M67 667h132v-334h68v68h66v66h66v66h134v-65h-68v-67h-66v-67h-66v-67h132v-66h67v-67h-67v-66h-65v-68h133v-67h-267v135h66v66h67v67h-199v-68h-68v-66h-132v66h66v67h67v67h67v66h-134v200h-66v68h67v66z" /> + <glyph glyph-name="threequarters" unicode="&#xbe;" +d="M0 667h199v-67h67v-66h-67v-67h67v-66h-67v-68h68v68h66v66h66v66h134v-65h-68v-67h-66v-67h-66v-67h199v-334h-132v66h-200v135h67v66h66v67h-67v-66h-66v-68h-68v-66h-132v66h66v67h67v67h67v66h-200v68h132v67h-66v65h67v68h-133v66zM333 67h67v66h-67v-66z" /> + <glyph glyph-name="Euro" unicode="&#x20ac;" +d="M125 625h311v-61h63v-64h-124v63h-188v-162h188v-57l-189 -1v-63h126v-64h-126v-153h188v62h125v-61h-62v-64h-313v64h-61v154h-63v63h63v63h-63v56h62v163h63v62z" /> + </font> +</defs></svg> diff --git a/web/static/css/fonts/Fixedsys500c.ttf b/web/static/css/fonts/Fixedsys500c.ttf Binary files differ. diff --git a/web/static/css/fonts/Fixedsys500c.woff b/web/static/css/fonts/Fixedsys500c.woff Binary files differ. diff --git a/web/static/css/fonts/Px437_IBM_EGA8.otf b/web/static/css/fonts/Px437_IBM_EGA8.otf Binary files differ. diff --git a/web/static/js/bootstrap.js b/web/static/js/bootstrap.js @@ -0,0 +1,2425 @@ +/* =================================================== + * bootstrap-transition.js v2.3.1 + * http://twitter.github.com/bootstrap/javascript.html#transitions + * =================================================== + * 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"; // jshint ;_; + + /* CSS TRANSITION SUPPORT (http://www.modernizr.com/) + * ======================================================= */ + + $(function () { + $.support.transition = (function () { + var transitionEnd = (function () { + var el = document.createElement("bootstrap"), + transEndEventNames = { + WebkitTransition: "webkitTransitionEnd", + MozTransition: "transitionend", + OTransition: "oTransitionEnd otransitionend", + transition: "transitionend", + }, + name; + + for (name in transEndEventNames) { + if (el.style[name] !== undefined) { + return transEndEventNames[name]; + } + } + })(); + + return ( + transitionEnd && { + end: transitionEnd, + } + ); + })(); + }); +})(window.jQuery); /* ========================================================== + * bootstrap-alert.js v2.3.1 + * http://twitter.github.com/bootstrap/javascript.html#alerts + * ========================================================== + * 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"; // jshint ;_; + + /* ALERT CLASS DEFINITION + * ====================== */ + + var dismiss = '[data-dismiss="alert"]', + Alert = function (el) { + $(el).on("click", dismiss, this.close); + }; + + Alert.prototype.close = function (e) { + var $this = $(this), + selector = $this.attr("data-target"), + $parent; + + if (!selector) { + selector = $this.attr("href"); + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, ""); //strip for ie7 + } + + $parent = $(selector); + + e && e.preventDefault(); + + $parent.length || + ($parent = $this.hasClass("alert") ? $this : $this.parent()); + + $parent.trigger((e = $.Event("close"))); + + if (e.isDefaultPrevented()) return; + + $parent.removeClass("in"); + + function removeElement() { + $parent.trigger("closed").remove(); + } + + $.support.transition && $parent.hasClass("fade") + ? $parent.on($.support.transition.end, removeElement) + : removeElement(); + }; + + /* ALERT PLUGIN DEFINITION + * ======================= */ + + var old = $.fn.alert; + + $.fn.alert = function (option) { + return this.each(function () { + var $this = $(this), + data = $this.data("alert"); + if (!data) $this.data("alert", (data = new Alert(this))); + if (typeof option == "string") data[option].call($this); + }); + }; + + $.fn.alert.Constructor = Alert; + + /* ALERT NO CONFLICT + * ================= */ + + $.fn.alert.noConflict = function () { + $.fn.alert = old; + return this; + }; + + /* ALERT DATA-API + * ============== */ + + $(document).on("click.alert.data-api", dismiss, Alert.prototype.close); +})( + window.jQuery, +); /* ============================================================ + * bootstrap-button.js v2.3.1 + * http://twitter.github.com/bootstrap/javascript.html#buttons + * ============================================================ + * 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"; // jshint ;_; + + /* BUTTON PUBLIC CLASS DEFINITION + * ============================== */ + + var Button = function (element, options) { + this.$element = $(element); + this.options = $.extend({}, $.fn.button.defaults, options); + }; + + Button.prototype.setState = function (state) { + var d = "disabled", + $el = this.$element, + data = $el.data(), + val = $el.is("input") ? "val" : "html"; + + state = state + "Text"; + data.resetText || $el.data("resetText", $el[val]()); + + $el[val](data[state] || this.options[state]); + + // push to event loop to allow forms to submit + setTimeout(function () { + state == "loadingText" + ? $el.addClass(d).attr(d, d) + : $el.removeClass(d).removeAttr(d); + }, 0); + }; + + Button.prototype.toggle = function () { + var $parent = this.$element.closest('[data-toggle="buttons-radio"]'); + + $parent && $parent.find(".active").removeClass("active"); + + this.$element.toggleClass("active"); + }; + + /* BUTTON PLUGIN DEFINITION + * ======================== */ + + var old = $.fn.button; + + $.fn.button = function (option) { + return this.each(function () { + var $this = $(this), + data = $this.data("button"), + options = typeof option == "object" && option; + if (!data) $this.data("button", (data = new Button(this, options))); + if (option == "toggle") data.toggle(); + else if (option) data.setState(option); + }); + }; + + $.fn.button.defaults = { + loadingText: "loading...", + }; + + $.fn.button.Constructor = Button; + + /* BUTTON NO CONFLICT + * ================== */ + + $.fn.button.noConflict = function () { + $.fn.button = old; + return this; + }; + + /* BUTTON DATA-API + * =============== */ + + $(document).on( + "click.button.data-api", + "[data-toggle^=button]", + function (e) { + var $btn = $(e.target); + if (!$btn.hasClass("btn")) $btn = $btn.closest(".btn"); + $btn.button("toggle"); + }, + ); +})(window.jQuery); /* ========================================================== + * bootstrap-carousel.js v2.3.1 + * http://twitter.github.com/bootstrap/javascript.html#carousel + * ========================================================== + * 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"; // jshint ;_; + + /* CAROUSEL CLASS DEFINITION + * ========================= */ + + var Carousel = function (element, options) { + this.$element = $(element); + this.$indicators = this.$element.find(".carousel-indicators"); + this.options = options; + this.options.pause == "hover" && + this.$element + .on("mouseenter", $.proxy(this.pause, this)) + .on("mouseleave", $.proxy(this.cycle, this)); + }; + + Carousel.prototype = { + cycle: function (e) { + if (!e) this.paused = false; + if (this.interval) clearInterval(this.interval); + this.options.interval && + !this.paused && + (this.interval = setInterval( + $.proxy(this.next, this), + this.options.interval, + )); + return this; + }, + + getActiveIndex: function () { + this.$active = this.$element.find(".item.active"); + this.$items = this.$active.parent().children(); + return this.$items.index(this.$active); + }, + + to: function (pos) { + var activeIndex = this.getActiveIndex(), + that = this; + + if (pos > this.$items.length - 1 || pos < 0) return; + + if (this.sliding) { + return this.$element.one("slid", function () { + that.to(pos); + }); + } + + if (activeIndex == pos) { + return this.pause().cycle(); + } + + return this.slide( + pos > activeIndex ? "next" : "prev", + $(this.$items[pos]), + ); + }, + + pause: function (e) { + if (!e) this.paused = true; + if ( + this.$element.find(".next, .prev").length && + $.support.transition.end + ) { + this.$element.trigger($.support.transition.end); + this.cycle(true); + } + clearInterval(this.interval); + this.interval = null; + return this; + }, + + next: function () { + if (this.sliding) return; + return this.slide("next"); + }, + + prev: function () { + if (this.sliding) return; + return this.slide("prev"); + }, + + slide: function (type, next) { + var $active = this.$element.find(".item.active"), + $next = next || $active[type](), + isCycling = this.interval, + direction = type == "next" ? "left" : "right", + fallback = type == "next" ? "first" : "last", + that = this, + e; + + this.sliding = true; + + isCycling && this.pause(); + + $next = $next.length ? $next : this.$element.find(".item")[fallback](); + + e = $.Event("slide", { + relatedTarget: $next[0], + direction: direction, + }); + + if ($next.hasClass("active")) return; + + if (this.$indicators.length) { + this.$indicators.find(".active").removeClass("active"); + this.$element.one("slid", function () { + var $nextIndicator = $( + that.$indicators.children()[that.getActiveIndex()], + ); + $nextIndicator && $nextIndicator.addClass("active"); + }); + } + + if ($.support.transition && this.$element.hasClass("slide")) { + this.$element.trigger(e); + if (e.isDefaultPrevented()) return; + $next.addClass(type); + $next[0].offsetWidth; // force reflow + $active.addClass(direction); + $next.addClass(direction); + this.$element.one($.support.transition.end, function () { + $next.removeClass([type, direction].join(" ")).addClass("active"); + $active.removeClass(["active", direction].join(" ")); + that.sliding = false; + setTimeout(function () { + that.$element.trigger("slid"); + }, 0); + }); + } else { + this.$element.trigger(e); + if (e.isDefaultPrevented()) return; + $active.removeClass("active"); + $next.addClass("active"); + this.sliding = false; + this.$element.trigger("slid"); + } + + isCycling && this.cycle(); + + return this; + }, + }; + + /* CAROUSEL PLUGIN DEFINITION + * ========================== */ + + var old = $.fn.carousel; + + $.fn.carousel = function (option) { + return this.each(function () { + var $this = $(this), + data = $this.data("carousel"), + options = $.extend( + {}, + $.fn.carousel.defaults, + typeof option == "object" && option, + ), + action = typeof option == "string" ? option : options.slide; + if (!data) $this.data("carousel", (data = new Carousel(this, options))); + if (typeof option == "number") data.to(option); + else if (action) data[action](); + else if (options.interval) data.pause().cycle(); + }); + }; + + $.fn.carousel.defaults = { + interval: 5000, + pause: "hover", + }; + + $.fn.carousel.Constructor = Carousel; + + /* CAROUSEL NO CONFLICT + * ==================== */ + + $.fn.carousel.noConflict = function () { + $.fn.carousel = old; + return this; + }; + + /* CAROUSEL DATA-API + * ================= */ + + $(document).on( + "click.carousel.data-api", + "[data-slide], [data-slide-to]", + function (e) { + var $this = $(this), + href, + $target = $( + $this.attr("data-target") || + ((href = $this.attr("href")) && href.replace(/.*(?=#[^\s]+$)/, "")), + ), //strip for ie7 + options = $.extend({}, $target.data(), $this.data()), + slideIndex; + + $target.carousel(options); + + if ((slideIndex = $this.attr("data-slide-to"))) { + $target.data("carousel").pause().to(slideIndex).cycle(); + } + + e.preventDefault(); + }, + ); +})( + window.jQuery, +); /* ============================================================= + * bootstrap-collapse.js v2.3.1 + * http://twitter.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"; // jshint ;_; + + /* COLLAPSE PUBLIC CLASS DEFINITION + * ================================ */ + + var Collapse = function (element, options) { + this.$element = $(element); + this.options = $.extend({}, $.fn.collapse.defaults, options); + + if (this.options.parent) { + this.$parent = $(this.options.parent); + } + + this.options.toggle && this.toggle(); + }; + + Collapse.prototype = { + constructor: Collapse, + + dimension: function () { + var hasWidth = this.$element.hasClass("width"); + return hasWidth ? "width" : "height"; + }, + + show: function () { + var dimension, scroll, actives, hasData; + + if (this.transitioning || this.$element.hasClass("in")) return; + + dimension = this.dimension(); + scroll = $.camelCase(["scroll", dimension].join("-")); + actives = this.$parent && this.$parent.find("> .accordion-group > .in"); + + if (actives && actives.length) { + hasData = actives.data("collapse"); + if (hasData && hasData.transitioning) return; + actives.collapse("hide"); + hasData || actives.data("collapse", null); + } + + this.$element[dimension](0); + this.transition("addClass", $.Event("show"), "shown"); + $.support.transition && + this.$element[dimension](this.$element[0][scroll]); + }, + + hide: function () { + var dimension; + if (this.transitioning || !this.$element.hasClass("in")) return; + dimension = this.dimension(); + this.reset(this.$element[dimension]()); + this.transition("removeClass", $.Event("hide"), "hidden"); + this.$element[dimension](0); + }, + + reset: function (size) { + var dimension = this.dimension(); + + this.$element.removeClass("collapse")[dimension](size || "auto")[0] + .offsetWidth; + + this.$element[size !== null ? "addClass" : "removeClass"]("collapse"); + + return this; + }, + + transition: function (method, startEvent, completeEvent) { + var that = this, + complete = function () { + if (startEvent.type == "show") that.reset(); + that.transitioning = 0; + that.$element.trigger(completeEvent); + }; + + this.$element.trigger(startEvent); + + if (startEvent.isDefaultPrevented()) return; + + this.transitioning = 1; + + this.$element[method]("in"); + + $.support.transition && this.$element.hasClass("collapse") + ? this.$element.one($.support.transition.end, complete) + : complete(); + }, + + 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), + data = $this.data("collapse"), + options = $.extend( + {}, + $.fn.collapse.defaults, + $this.data(), + typeof option == "object" && option, + ); + if (!data) $this.data("collapse", (data = new Collapse(this, options))); + if (typeof option == "string") data[option](); + }); + }; + + $.fn.collapse.defaults = { + toggle: true, + }; + + $.fn.collapse.Constructor = Collapse; + + /* COLLAPSE NO CONFLICT + * ==================== */ + + $.fn.collapse.noConflict = function () { + $.fn.collapse = old; + return this; + }; + + /* COLLAPSE DATA-API + * ================= */ + + $(document).on( + "click.collapse.data-api", + "[data-toggle=collapse]", + function (e) { + var $this = $(this), + href, + target = + $this.attr("data-target") || + e.preventDefault() || + ((href = $this.attr("href")) && href.replace(/.*(?=#[^\s]+$)/, "")), //strip for ie7 + option = $(target).data("collapse") ? "toggle" : $this.data(); + $this[$(target).hasClass("in") ? "addClass" : "removeClass"]("collapsed"); + $(target).collapse(option); + }, + ); +})( + window.jQuery, +); /* ============================================================ + * bootstrap-dropdown.js v2.3.1 + * http://twitter.github.com/bootstrap/javascript.html#dropdowns + * ============================================================ + * 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"; // jshint ;_; + + /* DROPDOWN CLASS DEFINITION + * ========================= */ + + var toggle = "[data-toggle=dropdown]", + Dropdown = function (element) { + var $el = $(element).on("click.dropdown.data-api", this.toggle); + $("html").on("click.dropdown.data-api", function () { + $el.parent().removeClass("open"); + }); + }; + + Dropdown.prototype = { + constructor: Dropdown, + + toggle: function (e) { + var $this = $(this), + $parent, + isActive; + + if ($this.is(".disabled, :disabled")) return; + + $parent = getParent($this); + + isActive = $parent.hasClass("open"); + + clearMenus(); + + if (!isActive) { + $parent.toggleClass("open"); + } + + $this.focus(); + + return false; + }, + + keydown: function (e) { + var $this, $items, $active, $parent, isActive, index; + + if (!/(38|40|27)/.test(e.keyCode)) return; + + $this = $(this); + + e.preventDefault(); + e.stopPropagation(); + + if ($this.is(".disabled, :disabled")) return; + + $parent = getParent($this); + + isActive = $parent.hasClass("open"); + + if (!isActive || (isActive && e.keyCode == 27)) { + if (e.which == 27) $parent.find(toggle).focus(); + return $this.click(); + } + + $items = $("[role=menu] li:not(.divider):visible a", $parent); + + if (!$items.length) return; + + index = $items.index($items.filter(":focus")); + + if (e.keyCode == 38 && index > 0) index--; // up + if (e.keyCode == 40 && index < $items.length - 1) index++; // down + if (!~index) index = 0; + + $items.eq(index).focus(); + }, + }; + + function clearMenus() { + $(toggle).each(function () { + getParent($(this)).removeClass("open"); + }); + } + + function getParent($this) { + var selector = $this.attr("data-target"), + $parent; + + if (!selector) { + selector = $this.attr("href"); + selector = + selector && + /#/.test(selector) && + selector.replace(/.*(?=#[^\s]*$)/, ""); //strip for ie7 + } + + $parent = selector && $(selector); + + if (!$parent || !$parent.length) $parent = $this.parent(); + + return $parent; + } + + /* DROPDOWN PLUGIN DEFINITION + * ========================== */ + + var old = $.fn.dropdown; + + $.fn.dropdown = function (option) { + return this.each(function () { + var $this = $(this), + data = $this.data("dropdown"); + if (!data) $this.data("dropdown", (data = new Dropdown(this))); + if (typeof option == "string") data[option].call($this); + }); + }; + + $.fn.dropdown.Constructor = Dropdown; + + /* DROPDOWN NO CONFLICT + * ==================== */ + + $.fn.dropdown.noConflict = function () { + $.fn.dropdown = old; + return this; + }; + + /* APPLY TO STANDARD DROPDOWN ELEMENTS + * =================================== */ + + $(document) + .on("click.dropdown.data-api", clearMenus) + .on("click.dropdown.data-api", ".dropdown form", function (e) { + e.stopPropagation(); + }) + .on("click.dropdown-menu", function (e) { + e.stopPropagation(); + }) + .on("click.dropdown.data-api", toggle, Dropdown.prototype.toggle) + .on( + "keydown.dropdown.data-api", + toggle + ", [role=menu]", + Dropdown.prototype.keydown, + ); +})(window.jQuery); +/* ========================================================= + * bootstrap-modal.js v2.3.1 + * http://twitter.github.com/bootstrap/javascript.html#modals + * ========================================================= + * 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"; // jshint ;_; + + /* MODAL CLASS DEFINITION + * ====================== */ + + var Modal = function (element, options) { + this.options = options; + this.$element = $(element).delegate( + '[data-dismiss="modal"]', + "click.dismiss.modal", + $.proxy(this.hide, this), + ); + this.options.remote && + this.$element.find(".modal-body").load(this.options.remote); + }; + + Modal.prototype = { + constructor: Modal, + + toggle: function () { + return this[!this.isShown ? "show" : "hide"](); + }, + + show: function () { + var that = this, + e = $.Event("show"); + + this.$element.trigger(e); + + if (this.isShown || e.isDefaultPrevented()) return; + + this.isShown = true; + + this.escape(); + + this.backdrop(function () { + var transition = $.support.transition && that.$element.hasClass("fade"); + + if (!that.$element.parent().length) { + that.$element.appendTo(document.body); //don't move modals dom position + } + + that.$element.show(); + + if (transition) { + that.$element[0].offsetWidth; // force reflow + } + + that.$element.addClass("in").attr("aria-hidden", false); + + that.enforceFocus(); + + transition + ? that.$element.one($.support.transition.end, function () { + that.$element.focus().trigger("shown"); + }) + : that.$element.focus().trigger("shown"); + }); + }, + + hide: function (e) { + e && e.preventDefault(); + + var that = this; + + e = $.Event("hide"); + + this.$element.trigger(e); + + if (!this.isShown || e.isDefaultPrevented()) return; + + this.isShown = false; + + this.escape(); + + $(document).off("focusin.modal"); + + this.$element.removeClass("in").attr("aria-hidden", true); + + $.support.transition && this.$element.hasClass("fade") + ? this.hideWithTransition() + : this.hideModal(); + }, + + enforceFocus: function () { + var that = this; + $(document).on("focusin.modal", function (e) { + if ( + that.$element[0] !== e.target && + !that.$element.has(e.target).length + ) { + that.$element.focus(); + } + }); + }, + + escape: function () { + var that = this; + if (this.isShown && this.options.keyboard) { + this.$element.on("keyup.dismiss.modal", function (e) { + e.which == 27 && that.hide(); + }); + } else if (!this.isShown) { + this.$element.off("keyup.dismiss.modal"); + } + }, + + hideWithTransition: function () { + var that = this, + timeout = setTimeout(function () { + that.$element.off($.support.transition.end); + that.hideModal(); + }, 500); + + this.$element.one($.support.transition.end, function () { + clearTimeout(timeout); + that.hideModal(); + }); + }, + + hideModal: function () { + var that = this; + this.$element.hide(); + this.backdrop(function () { + that.removeBackdrop(); + that.$element.trigger("hidden"); + }); + }, + + removeBackdrop: function () { + this.$backdrop && this.$backdrop.remove(); + this.$backdrop = null; + }, + + backdrop: function (callback) { + var that = this, + animate = this.$element.hasClass("fade") ? "fade" : ""; + + if (this.isShown && this.options.backdrop) { + var doAnimate = $.support.transition && animate; + + this.$backdrop = $( + '<div class="modal-backdrop ' + animate + '" />', + ).appendTo(document.body); + + this.$backdrop.click( + this.options.backdrop == "static" + ? $.proxy(this.$element[0].focus, this.$element[0]) + : $.proxy(this.hide, this), + ); + + if (doAnimate) this.$backdrop[0].offsetWidth; // force reflow + + this.$backdrop.addClass("in"); + + if (!callback) return; + + doAnimate + ? this.$backdrop.one($.support.transition.end, callback) + : callback(); + } else if (!this.isShown && this.$backdrop) { + this.$backdrop.removeClass("in"); + + $.support.transition && this.$element.hasClass("fade") + ? this.$backdrop.one($.support.transition.end, callback) + : callback(); + } else if (callback) { + callback(); + } + }, + }; + + /* MODAL PLUGIN DEFINITION + * ======================= */ + + var old = $.fn.modal; + + $.fn.modal = function (option) { + return this.each(function () { + var $this = $(this), + data = $this.data("modal"), + options = $.extend( + {}, + $.fn.modal.defaults, + $this.data(), + typeof option == "object" && option, + ); + if (!data) $this.data("modal", (data = new Modal(this, options))); + if (typeof option == "string") data[option](); + else if (options.show) data.show(); + }); + }; + + $.fn.modal.defaults = { + backdrop: true, + keyboard: true, + show: true, + }; + + $.fn.modal.Constructor = Modal; + + /* MODAL NO CONFLICT + * ================= */ + + $.fn.modal.noConflict = function () { + $.fn.modal = old; + return this; + }; + + /* MODAL DATA-API + * ============== */ + + $(document).on("click.modal.data-api", '[data-toggle="modal"]', function (e) { + var $this = $(this), + href = $this.attr("href"), + $target = $( + $this.attr("data-target") || + (href && href.replace(/.*(?=#[^\s]+$)/, "")), + ), //strip for ie7 + option = $target.data("modal") + ? "toggle" + : $.extend( + { remote: !/#/.test(href) && href }, + $target.data(), + $this.data(), + ); + + e.preventDefault(); + + $target.modal(option).one("hide", function () { + $this.focus(); + }); + }); +})(window.jQuery); +/* =========================================================== + * bootstrap-tooltip.js v2.3.1 + * http://twitter.github.com/bootstrap/javascript.html#tooltips + * Inspired by the original jQuery.tipsy by Jason Frame + * =========================================================== + * 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"; // jshint ;_; + + /* TOOLTIP PUBLIC CLASS DEFINITION + * =============================== */ + + var Tooltip = function (element, options) { + this.init("tooltip", element, options); + }; + + Tooltip.prototype = { + constructor: Tooltip, + + init: function (type, element, options) { + var eventIn, eventOut, triggers, trigger, i; + + this.type = type; + this.$element = $(element); + this.options = this.getOptions(options); + this.enabled = true; + + triggers = this.options.trigger.split(" "); + + for (i = triggers.length; i--; ) { + trigger = triggers[i]; + if (trigger == "click") { + this.$element.on( + "click." + this.type, + this.options.selector, + $.proxy(this.toggle, this), + ); + } else if (trigger != "manual") { + eventIn = trigger == "hover" ? "mouseenter" : "focus"; + eventOut = trigger == "hover" ? "mouseleave" : "blur"; + this.$element.on( + eventIn + "." + this.type, + this.options.selector, + $.proxy(this.enter, this), + ); + this.$element.on( + eventOut + "." + this.type, + this.options.selector, + $.proxy(this.leave, this), + ); + } + } + + this.options.selector + ? (this._options = $.extend({}, this.options, { + trigger: "manual", + selector: "", + })) + : this.fixTitle(); + }, + + getOptions: function (options) { + options = $.extend( + {}, + $.fn[this.type].defaults, + this.$element.data(), + options, + ); + + if (options.delay && typeof options.delay == "number") { + options.delay = { + show: options.delay, + hide: options.delay, + }; + } + + return options; + }, + + enter: function (e) { + var defaults = $.fn[this.type].defaults, + options = {}, + self; + + this._options && + $.each( + this._options, + function (key, value) { + if (defaults[key] != value) options[key] = value; + }, + this, + ); + + self = $(e.currentTarget)[this.type](options).data(this.type); + + if (!self.options.delay || !self.options.delay.show) return self.show(); + + clearTimeout(this.timeout); + self.hoverState = "in"; + this.timeout = setTimeout(function () { + if (self.hoverState == "in") self.show(); + }, self.options.delay.show); + }, + + leave: function (e) { + var self = $(e.currentTarget)[this.type](this._options).data(this.type); + + if (this.timeout) clearTimeout(this.timeout); + if (!self.options.delay || !self.options.delay.hide) return self.hide(); + + self.hoverState = "out"; + this.timeout = setTimeout(function () { + if (self.hoverState == "out") self.hide(); + }, self.options.delay.hide); + }, + + show: function () { + var $tip, + pos, + actualWidth, + actualHeight, + placement, + tp, + e = $.Event("show"); + + if (this.hasContent() && this.enabled) { + this.$element.trigger(e); + if (e.isDefaultPrevented()) return; + $tip = this.tip(); + this.setContent(); + + if (this.options.animation) { + $tip.addClass("fade"); + } + + placement = + typeof this.options.placement == "function" + ? this.options.placement.call(this, $tip[0], this.$element[0]) + : this.options.placement; + + $tip.detach().css({ top: 0, left: 0, display: "block" }); + + this.options.container + ? $tip.appendTo(this.options.container) + : $tip.insertAfter(this.$element); + + pos = this.getPosition(); + + actualWidth = $tip[0].offsetWidth; + actualHeight = $tip[0].offsetHeight; + + switch (placement) { + case "bottom": + tp = { + top: pos.top + pos.height, + left: pos.left + pos.width / 2 - actualWidth / 2, + }; + break; + case "top": + tp = { + top: pos.top - actualHeight, + left: pos.left + pos.width / 2 - actualWidth / 2, + }; + break; + case "left": + tp = { + top: pos.top + pos.height / 2 - actualHeight / 2, + left: pos.left - actualWidth, + }; + break; + case "right": + tp = { + top: pos.top + pos.height / 2 - actualHeight / 2, + left: pos.left + pos.width, + }; + break; + } + + this.applyPlacement(tp, placement); + this.$element.trigger("shown"); + } + }, + + applyPlacement: function (offset, placement) { + var $tip = this.tip(), + width = $tip[0].offsetWidth, + height = $tip[0].offsetHeight, + actualWidth, + actualHeight, + delta, + replace; + + $tip.offset(offset).addClass(placement).addClass("in"); + + actualWidth = $tip[0].offsetWidth; + actualHeight = $tip[0].offsetHeight; + + if (placement == "top" && actualHeight != height) { + offset.top = offset.top + height - actualHeight; + replace = true; + } + + if (placement == "bottom" || placement == "top") { + delta = 0; + + if (offset.left < 0) { + delta = offset.left * -2; + offset.left = 0; + $tip.offset(offset); + actualWidth = $tip[0].offsetWidth; + actualHeight = $tip[0].offsetHeight; + } + + this.replaceArrow(delta - width + actualWidth, actualWidth, "left"); + } else { + this.replaceArrow(actualHeight - height, actualHeight, "top"); + } + + if (replace) $tip.offset(offset); + }, + + replaceArrow: function (delta, dimension, position) { + this.arrow().css( + position, + delta ? 50 * (1 - delta / dimension) + "%" : "", + ); + }, + + setContent: function () { + var $tip = this.tip(), + title = this.getTitle(); + + $tip.find(".tooltip-inner")[this.options.html ? "html" : "text"](title); + $tip.removeClass("fade in top bottom left right"); + }, + + hide: function () { + var that = this, + $tip = this.tip(), + e = $.Event("hide"); + + this.$element.trigger(e); + if (e.isDefaultPrevented()) return; + + $tip.removeClass("in"); + + function removeWithAnimation() { + var timeout = setTimeout(function () { + $tip.off($.support.transition.end).detach(); + }, 500); + + $tip.one($.support.transition.end, function () { + clearTimeout(timeout); + $tip.detach(); + }); + } + + $.support.transition && this.$tip.hasClass("fade") + ? removeWithAnimation() + : $tip.detach(); + + this.$element.trigger("hidden"); + + return this; + }, + + fixTitle: function () { + var $e = this.$element; + if ( + $e.attr("title") || + typeof $e.attr("data-original-title") != "string" + ) { + $e.attr("data-original-title", $e.attr("title") || "").attr( + "title", + "", + ); + } + }, + + hasContent: function () { + return this.getTitle(); + }, + + getPosition: function () { + var el = this.$element[0]; + return $.extend( + {}, + typeof el.getBoundingClientRect == "function" + ? el.getBoundingClientRect() + : { + width: el.offsetWidth, + height: el.offsetHeight, + }, + this.$element.offset(), + ); + }, + + getTitle: function () { + var title, + $e = this.$element, + o = this.options; + + title = + $e.attr("data-original-title") || + (typeof o.title == "function" ? o.title.call($e[0]) : o.title); + + return title; + }, + + tip: function () { + return (this.$tip = this.$tip || $(this.options.template)); + }, + + arrow: function () { + return (this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")); + }, + + validate: function () { + if (!this.$element[0].parentNode) { + this.hide(); + this.$element = null; + this.options = null; + } + }, + + enable: function () { + this.enabled = true; + }, + + disable: function () { + this.enabled = false; + }, + + toggleEnabled: function () { + this.enabled = !this.enabled; + }, + + toggle: function (e) { + var self = e + ? $(e.currentTarget)[this.type](this._options).data(this.type) + : this; + self.tip().hasClass("in") ? self.hide() : self.show(); + }, + + destroy: function () { + this.hide() + .$element.off("." + this.type) + .removeData(this.type); + }, + }; + + /* TOOLTIP PLUGIN DEFINITION + * ========================= */ + + var old = $.fn.tooltip; + + $.fn.tooltip = function (option) { + return this.each(function () { + var $this = $(this), + data = $this.data("tooltip"), + options = typeof option == "object" && option; + if (!data) $this.data("tooltip", (data = new Tooltip(this, options))); + if (typeof option == "string") data[option](); + }); + }; + + $.fn.tooltip.Constructor = Tooltip; + + $.fn.tooltip.defaults = { + animation: true, + placement: "top", + selector: false, + template: + '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>', + trigger: "hover focus", + title: "", + delay: 0, + html: false, + container: false, + }; + + /* TOOLTIP NO CONFLICT + * =================== */ + + $.fn.tooltip.noConflict = function () { + $.fn.tooltip = old; + return this; + }; +})(window.jQuery); +/* =========================================================== + * bootstrap-popover.js v2.3.1 + * http://twitter.github.com/bootstrap/javascript.html#popovers + * =========================================================== + * 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"; // jshint ;_; + + /* POPOVER PUBLIC CLASS DEFINITION + * =============================== */ + + var Popover = function (element, options) { + this.init("popover", element, options); + }; + + /* NOTE: POPOVER EXTENDS BOOTSTRAP-TOOLTIP.js + ========================================== */ + + Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype, { + constructor: Popover, + + setContent: function () { + var $tip = this.tip(), + title = this.getTitle(), + content = this.getContent(); + + $tip.find(".popover-title")[this.options.html ? "html" : "text"](title); + $tip + .find(".popover-content") + [this.options.html ? "html" : "text"](content); + + $tip.removeClass("fade top bottom left right in"); + }, + + hasContent: function () { + return this.getTitle() || this.getContent(); + }, + + getContent: function () { + var content, + $e = this.$element, + o = this.options; + + content = + (typeof o.content == "function" ? o.content.call($e[0]) : o.content) || + $e.attr("data-content"); + + return content; + }, + + tip: function () { + if (!this.$tip) { + this.$tip = $(this.options.template); + } + return this.$tip; + }, + + destroy: function () { + this.hide() + .$element.off("." + this.type) + .removeData(this.type); + }, + }); + + /* POPOVER PLUGIN DEFINITION + * ======================= */ + + var old = $.fn.popover; + + $.fn.popover = function (option) { + return this.each(function () { + var $this = $(this), + data = $this.data("popover"), + options = typeof option == "object" && option; + if (!data) $this.data("popover", (data = new Popover(this, options))); + if (typeof option == "string") data[option](); + }); + }; + + $.fn.popover.Constructor = Popover; + + $.fn.popover.defaults = $.extend({}, $.fn.tooltip.defaults, { + placement: "right", + trigger: "click", + content: "", + template: + '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>', + }); + + /* POPOVER NO CONFLICT + * =================== */ + + $.fn.popover.noConflict = function () { + $.fn.popover = old; + return this; + }; +})(window.jQuery); +/* ============================================================= + * bootstrap-scrollspy.js v2.3.1 + * http://twitter.github.com/bootstrap/javascript.html#scrollspy + * ============================================================= + * 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"; // jshint ;_; + + /* SCROLLSPY CLASS DEFINITION + * ========================== */ + + function ScrollSpy(element, options) { + var process = $.proxy(this.process, this), + $element = $(element).is("body") ? $(window) : $(element), + href; + this.options = $.extend({}, $.fn.scrollspy.defaults, options); + this.$scrollElement = $element.on("scroll.scroll-spy.data-api", process); + this.selector = + (this.options.target || + ((href = $(element).attr("href")) && + href.replace(/.*(?=#[^\s]+$)/, "")) || //strip for ie7 + "") + " .nav li > a"; + this.$body = $("body"); + this.refresh(); + this.process(); + } + + ScrollSpy.prototype = { + constructor: ScrollSpy, + + refresh: function () { + var self = this, + $targets; + + this.offsets = $([]); + this.targets = $([]); + + $targets = this.$body + .find(this.selector) + .map(function () { + var $el = $(this), + href = $el.data("target") || $el.attr("href"), + $href = /^#\w/.test(href) && $(href); + return ( + ($href && + $href.length && [ + [ + $href.position().top + + (!$.isWindow(self.$scrollElement.get(0)) && + self.$scrollElement.scrollTop()), + href, + ], + ]) || + null + ); + }) + .sort(function (a, b) { + return a[0] - b[0]; + }) + .each(function () { + self.offsets.push(this[0]); + self.targets.push(this[1]); + }); + }, + + process: function () { + var scrollTop = this.$scrollElement.scrollTop() + this.options.offset, + scrollHeight = + this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight, + maxScroll = scrollHeight - this.$scrollElement.height(), + offsets = this.offsets, + targets = this.targets, + activeTarget = this.activeTarget, + i; + + if (scrollTop >= maxScroll) { + return activeTarget != (i = targets.last()[0]) && this.activate(i); + } + + for (i = offsets.length; i--; ) { + activeTarget != targets[i] && + scrollTop >= offsets[i] && + (!offsets[i + 1] || scrollTop <= offsets[i + 1]) && + this.activate(targets[i]); + } + }, + + activate: function (target) { + var active, selector; + + this.activeTarget = target; + + $(this.selector).parent(".active").removeClass("active"); + + selector = + this.selector + + '[data-target="' + + target + + '"],' + + this.selector + + '[href="' + + target + + '"]'; + + active = $(selector).parent("li").addClass("active"); + + if (active.parent(".dropdown-menu").length) { + active = active.closest("li.dropdown").addClass("active"); + } + + active.trigger("activate"); + }, + }; + + /* SCROLLSPY PLUGIN DEFINITION + * =========================== */ + + var old = $.fn.scrollspy; + + $.fn.scrollspy = function (option) { + return this.each(function () { + var $this = $(this), + data = $this.data("scrollspy"), + options = typeof option == "object" && option; + if (!data) $this.data("scrollspy", (data = new ScrollSpy(this, options))); + if (typeof option == "string") data[option](); + }); + }; + + $.fn.scrollspy.Constructor = ScrollSpy; + + $.fn.scrollspy.defaults = { + offset: 10, + }; + + /* SCROLLSPY NO CONFLICT + * ===================== */ + + $.fn.scrollspy.noConflict = function () { + $.fn.scrollspy = old; + return this; + }; + + /* SCROLLSPY DATA-API + * ================== */ + + $(window).on("load", function () { + $('[data-spy="scroll"]').each(function () { + var $spy = $(this); + $spy.scrollspy($spy.data()); + }); + }); +})(window.jQuery); /* ======================================================== + * bootstrap-tab.js v2.3.1 + * http://twitter.github.com/bootstrap/javascript.html#tabs + * ======================================================== + * 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"; // jshint ;_; + + /* TAB CLASS DEFINITION + * ==================== */ + + var Tab = function (element) { + this.element = $(element); + }; + + Tab.prototype = { + constructor: Tab, + + show: function () { + var $this = this.element, + $ul = $this.closest("ul:not(.dropdown-menu)"), + selector = $this.attr("data-target"), + previous, + $target, + e; + + if (!selector) { + selector = $this.attr("href"); + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, ""); //strip for ie7 + } + + if ($this.parent("li").hasClass("active")) return; + + previous = $ul.find(".active:last a")[0]; + + e = $.Event("show", { + relatedTarget: previous, + }); + + $this.trigger(e); + + if (e.isDefaultPrevented()) return; + + $target = $(selector); + + this.activate($this.parent("li"), $ul); + this.activate($target, $target.parent(), function () { + $this.trigger({ + type: "shown", + relatedTarget: previous, + }); + }); + }, + + activate: function (element, container, callback) { + var $active = container.find("> .active"), + transition = + callback && $.support.transition && $active.hasClass("fade"); + + function next() { + $active + .removeClass("active") + .find("> .dropdown-menu > .active") + .removeClass("active"); + + element.addClass("active"); + + if (transition) { + element[0].offsetWidth; // reflow for transition + element.addClass("in"); + } else { + element.removeClass("fade"); + } + + if (element.parent(".dropdown-menu")) { + element.closest("li.dropdown").addClass("active"); + } + + callback && callback(); + } + + transition ? $active.one($.support.transition.end, next) : next(); + + $active.removeClass("in"); + }, + }; + + /* TAB PLUGIN DEFINITION + * ===================== */ + + var old = $.fn.tab; + + $.fn.tab = function (option) { + return this.each(function () { + var $this = $(this), + data = $this.data("tab"); + if (!data) $this.data("tab", (data = new Tab(this))); + if (typeof option == "string") data[option](); + }); + }; + + $.fn.tab.Constructor = Tab; + + /* TAB NO CONFLICT + * =============== */ + + $.fn.tab.noConflict = function () { + $.fn.tab = old; + return this; + }; + + /* TAB DATA-API + * ============ */ + + $(document).on( + "click.tab.data-api", + '[data-toggle="tab"], [data-toggle="pill"]', + function (e) { + e.preventDefault(); + $(this).tab("show"); + }, + ); +})( + window.jQuery, +); /* ============================================================= + * bootstrap-typeahead.js v2.3.1 + * http://twitter.github.com/bootstrap/javascript.html#typeahead + * ============================================================= + * 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"; // jshint ;_; + + /* TYPEAHEAD PUBLIC CLASS DEFINITION + * ================================= */ + + var Typeahead = function (element, options) { + this.$element = $(element); + this.options = $.extend({}, $.fn.typeahead.defaults, options); + this.matcher = this.options.matcher || this.matcher; + this.sorter = this.options.sorter || this.sorter; + this.highlighter = this.options.highlighter || this.highlighter; + this.updater = this.options.updater || this.updater; + this.source = this.options.source; + this.$menu = $(this.options.menu); + this.shown = false; + this.listen(); + }; + + Typeahead.prototype = { + constructor: Typeahead, + + select: function () { + var val = this.$menu.find(".active").attr("data-value"); + this.$element.val(this.updater(val)).change(); + return this.hide(); + }, + + updater: function (item) { + return item; + }, + + show: function () { + var pos = $.extend({}, this.$element.position(), { + height: this.$element[0].offsetHeight, + }); + + this.$menu + .insertAfter(this.$element) + .css({ + top: pos.top + pos.height, + left: pos.left, + }) + .show(); + + this.shown = true; + return this; + }, + + hide: function () { + this.$menu.hide(); + this.shown = false; + return this; + }, + + lookup: function (event) { + var items; + + this.query = this.$element.val(); + + if (!this.query || this.query.length < this.options.minLength) { + return this.shown ? this.hide() : this; + } + + items = $.isFunction(this.source) + ? this.source(this.query, $.proxy(this.process, this)) + : this.source; + + return items ? this.process(items) : this; + }, + + process: function (items) { + var that = this; + + items = $.grep(items, function (item) { + return that.matcher(item); + }); + + items = this.sorter(items); + + if (!items.length) { + return this.shown ? this.hide() : this; + } + + return this.render(items.slice(0, this.options.items)).show(); + }, + + matcher: function (item) { + return ~item.toLowerCase().indexOf(this.query.toLowerCase()); + }, + + sorter: function (items) { + var beginswith = [], + caseSensitive = [], + caseInsensitive = [], + item; + + while ((item = items.shift())) { + if (!item.toLowerCase().indexOf(this.query.toLowerCase())) + beginswith.push(item); + else if (~item.indexOf(this.query)) caseSensitive.push(item); + else caseInsensitive.push(item); + } + + return beginswith.concat(caseSensitive, caseInsensitive); + }, + + highlighter: function (item) { + var query = this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&"); + return item.replace( + new RegExp("(" + query + ")", "ig"), + function ($1, match) { + return "<strong>" + match + "</strong>"; + }, + ); + }, + + render: function (items) { + var that = this; + + items = $(items).map(function (i, item) { + i = $(that.options.item).attr("data-value", item); + i.find("a").html(that.highlighter(item)); + return i[0]; + }); + + items.first().addClass("active"); + this.$menu.html(items); + return this; + }, + + next: function (event) { + var active = this.$menu.find(".active").removeClass("active"), + next = active.next(); + + if (!next.length) { + next = $(this.$menu.find("li")[0]); + } + + next.addClass("active"); + }, + + prev: function (event) { + var active = this.$menu.find(".active").removeClass("active"), + prev = active.prev(); + + if (!prev.length) { + prev = this.$menu.find("li").last(); + } + + prev.addClass("active"); + }, + + listen: function () { + this.$element + .on("focus", $.proxy(this.focus, this)) + .on("blur", $.proxy(this.blur, this)) + .on("keypress", $.proxy(this.keypress, this)) + .on("keyup", $.proxy(this.keyup, this)); + + if (this.eventSupported("keydown")) { + this.$element.on("keydown", $.proxy(this.keydown, this)); + } + + this.$menu + .on("click", $.proxy(this.click, this)) + .on("mouseenter", "li", $.proxy(this.mouseenter, this)) + .on("mouseleave", "li", $.proxy(this.mouseleave, this)); + }, + + eventSupported: function (eventName) { + var isSupported = eventName in this.$element; + if (!isSupported) { + this.$element.setAttribute(eventName, "return;"); + isSupported = typeof this.$element[eventName] === "function"; + } + return isSupported; + }, + + move: function (e) { + if (!this.shown) return; + + switch (e.keyCode) { + case 9: // tab + case 13: // enter + case 27: // escape + e.preventDefault(); + break; + + case 38: // up arrow + e.preventDefault(); + this.prev(); + break; + + case 40: // down arrow + e.preventDefault(); + this.next(); + break; + } + + e.stopPropagation(); + }, + + keydown: function (e) { + this.suppressKeyPressRepeat = ~$.inArray(e.keyCode, [40, 38, 9, 13, 27]); + this.move(e); + }, + + keypress: function (e) { + if (this.suppressKeyPressRepeat) return; + this.move(e); + }, + + keyup: function (e) { + switch (e.keyCode) { + case 40: // down arrow + case 38: // up arrow + case 16: // shift + case 17: // ctrl + case 18: // alt + break; + + case 9: // tab + case 13: // enter + if (!this.shown) return; + this.select(); + break; + + case 27: // escape + if (!this.shown) return; + this.hide(); + break; + + default: + this.lookup(); + } + + e.stopPropagation(); + e.preventDefault(); + }, + + focus: function (e) { + this.focused = true; + }, + + blur: function (e) { + this.focused = false; + if (!this.mousedover && this.shown) this.hide(); + }, + + click: function (e) { + e.stopPropagation(); + e.preventDefault(); + this.select(); + this.$element.focus(); + }, + + mouseenter: function (e) { + this.mousedover = true; + this.$menu.find(".active").removeClass("active"); + $(e.currentTarget).addClass("active"); + }, + + mouseleave: function (e) { + this.mousedover = false; + if (!this.focused && this.shown) this.hide(); + }, + }; + + /* TYPEAHEAD PLUGIN DEFINITION + * =========================== */ + + var old = $.fn.typeahead; + + $.fn.typeahead = function (option) { + return this.each(function () { + var $this = $(this), + data = $this.data("typeahead"), + options = typeof option == "object" && option; + if (!data) $this.data("typeahead", (data = new Typeahead(this, options))); + if (typeof option == "string") data[option](); + }); + }; + + $.fn.typeahead.defaults = { + source: [], + items: 8, + menu: '<ul class="typeahead dropdown-menu"></ul>', + item: '<li><a href="#"></a></li>', + minLength: 1, + }; + + $.fn.typeahead.Constructor = Typeahead; + + /* TYPEAHEAD NO CONFLICT + * =================== */ + + $.fn.typeahead.noConflict = function () { + $.fn.typeahead = old; + return this; + }; + + /* TYPEAHEAD DATA-API + * ================== */ + + $(document).on( + "focus.typeahead.data-api", + '[data-provide="typeahead"]', + function (e) { + var $this = $(this); + if ($this.data("typeahead")) return; + $this.typeahead($this.data()); + }, + ); +})(window.jQuery); +/* ========================================================== + * bootstrap-affix.js v2.3.1 + * http://twitter.github.com/bootstrap/javascript.html#affix + * ========================================================== + * 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"; // jshint ;_; + + /* AFFIX CLASS DEFINITION + * ====================== */ + + var Affix = function (element, options) { + this.options = $.extend({}, $.fn.affix.defaults, options); + this.$window = $(window) + .on("scroll.affix.data-api", $.proxy(this.checkPosition, this)) + .on( + "click.affix.data-api", + $.proxy(function () { + setTimeout($.proxy(this.checkPosition, this), 1); + }, this), + ); + this.$element = $(element); + this.checkPosition(); + }; + + Affix.prototype.checkPosition = function () { + if (!this.$element.is(":visible")) return; + + var scrollHeight = $(document).height(), + scrollTop = this.$window.scrollTop(), + position = this.$element.offset(), + offset = this.options.offset, + offsetBottom = offset.bottom, + offsetTop = offset.top, + reset = "affix affix-top affix-bottom", + affix; + + if (typeof offset != "object") offsetBottom = offsetTop = offset; + if (typeof offsetTop == "function") offsetTop = offset.top(); + if (typeof offsetBottom == "function") offsetBottom = offset.bottom(); + + affix = + this.unpin != null && scrollTop + this.unpin <= position.top + ? false + : offsetBottom != null && + position.top + this.$element.height() >= scrollHeight - offsetBottom + ? "bottom" + : offsetTop != null && scrollTop <= offsetTop + ? "top" + : false; + + if (this.affixed === affix) return; + + this.affixed = affix; + this.unpin = affix == "bottom" ? position.top - scrollTop : null; + + this.$element + .removeClass(reset) + .addClass("affix" + (affix ? "-" + affix : "")); + }; + + /* AFFIX PLUGIN DEFINITION + * ======================= */ + + var old = $.fn.affix; + + $.fn.affix = function (option) { + return this.each(function () { + var $this = $(this), + data = $this.data("affix"), + options = typeof option == "object" && option; + if (!data) $this.data("affix", (data = new Affix(this, options))); + if (typeof option == "string") data[option](); + }); + }; + + $.fn.affix.Constructor = Affix; + + $.fn.affix.defaults = { + offset: 0, + }; + + /* AFFIX NO CONFLICT + * ================= */ + + $.fn.affix.noConflict = function () { + $.fn.affix = old; + return this; + }; + + /* AFFIX DATA-API + * ============== */ + + $(window).on("load", function () { + $('[data-spy="affix"]').each(function () { + var $spy = $(this), + data = $spy.data(); + + data.offset = data.offset || {}; + + data.offsetBottom && (data.offset.bottom = data.offsetBottom); + data.offsetTop && (data.offset.top = data.offsetTop); + + $spy.affix(data); + }); + }); +})(window.jQuery); +self._386 = self._386 || {}; + +$(function () { + var character = { height: 20, width: 12.4 }; + + function scrollLock() { + var last = 0; + $(window).bind("scroll", function (e) { + var func, + off = $(window).scrollTop(); + + console.log(off, last, off < last ? "up" : "down"); + + // this determines whether the user is intending to go up or down. + func = off < last ? "floor" : "ceil"; + + // make sure we don't run this from ourselves + if (off % character.height === 0) { + return; + } + last = off; + + window.scrollTo(0, Math[func](off / character.height) * character.height); + }); + } + + function loading() { + if (_386.fastLoad) { + document.body.style.visibility = "visible"; + return; + } + + var onePass = _386.onePass, + speedFactor = (1 / (_386.speedFactor || 1)) * 165000; + (wrap = document.createElement("div")), + (bar = wrap.appendChild(document.createElement("div"))), + (cursor = document.createElement("div")), + // If the user specified that the visibility is hidden, then we + // start at the first pass ... otherwise we just do the + // cursor fly-by + (pass = $(document.body).css("visibility") == "visible" ? 1 : 0), + (height = $(window).height()), + (width = $(window).width()), + // this makes the loading of the screen proportional to the real-estate of the window. + // it helps keep the cool sequence there while not making it waste too much time. + (rounds = (height * width) / speedFactor), + (column = width), + (row = height - character.height); + + wrap.id = "wrap386"; + bar.id = "bar386"; + cursor.id = "cursor386"; + + cursor.innerHTML = bar.innerHTML = "&#9604;"; + + // only inject the wrap if the pass is 0 + if (pass === 0) { + document.body.appendChild(wrap); + document.body.style.visibility = "visible"; + } else { + document.body.appendChild(cursor); + rounds /= 2; + character.height *= 4; + } + + var ival = setInterval(function () { + for (var m = 0; m < rounds; m++) { + column -= character.width; + + if (column <= 0) { + column = width; + row -= character.height; + } + if (row <= 0) { + pass++; + row = height - character.height; + + if (pass == 2) { + document.body.removeChild(cursor); + clearInterval(ival); + } else { + wrap.parentNode.removeChild(wrap); + if (onePass) { + clearInterval(ival); + } else { + document.body.appendChild(cursor); + rounds /= 2; + character.height *= 4; + } + } + } + + if (pass === 0) { + bar.style.width = column + "px"; + wrap.style.height = row + "px"; + } else { + cursor.style.right = column + "px"; + cursor.style.bottom = row + "px"; + } + } + }, 1); + } + loading(); +}); diff --git a/web/static/js/bootstrap.min.js b/web/static/js/bootstrap.min.js @@ -0,0 +1,1454 @@ +/*! + * Bootstrap.js by @fat & @mdo + * Copyright 2012 Twitter, Inc. + * http://www.apache.org/licenses/LICENSE-2.0.txt + */ +!(function (e) { + "use strict"; + e(function () { + e.support.transition = (function () { + var e = (function () { + var e = document.createElement("bootstrap"), + t = { + WebkitTransition: "webkitTransitionEnd", + MozTransition: "transitionend", + OTransition: "oTransitionEnd otransitionend", + transition: "transitionend", + }, + n; + for (n in t) if (e.style[n] !== undefined) return t[n]; + })(); + return e && { end: e }; + })(); + }); +})(window.jQuery), + !(function (e) { + "use strict"; + var t = '[data-dismiss="alert"]', + n = function (n) { + e(n).on("click", t, this.close); + }; + n.prototype.close = function (t) { + function s() { + i.trigger("closed").remove(); + } + var n = e(this), + r = n.attr("data-target"), + i; + r || ((r = n.attr("href")), (r = r && r.replace(/.*(?=#[^\s]*$)/, ""))), + (i = e(r)), + t && t.preventDefault(), + i.length || (i = n.hasClass("alert") ? n : n.parent()), + i.trigger((t = e.Event("close"))); + if (t.isDefaultPrevented()) return; + i.removeClass("in"), + e.support.transition && i.hasClass("fade") + ? i.on(e.support.transition.end, s) + : s(); + }; + var r = e.fn.alert; + (e.fn.alert = function (t) { + return this.each(function () { + var r = e(this), + i = r.data("alert"); + i || r.data("alert", (i = new n(this))), + typeof t == "string" && i[t].call(r); + }); + }), + (e.fn.alert.Constructor = n), + (e.fn.alert.noConflict = function () { + return (e.fn.alert = r), this; + }), + e(document).on("click.alert.data-api", t, n.prototype.close); + })(window.jQuery), + !(function (e) { + "use strict"; + var t = function (t, n) { + (this.$element = e(t)), + (this.options = e.extend({}, e.fn.button.defaults, n)); + }; + (t.prototype.setState = function (e) { + var t = "disabled", + n = this.$element, + r = n.data(), + i = n.is("input") ? "val" : "html"; + (e += "Text"), + r.resetText || n.data("resetText", n[i]()), + n[i](r[e] || this.options[e]), + setTimeout(function () { + e == "loadingText" + ? n.addClass(t).attr(t, t) + : n.removeClass(t).removeAttr(t); + }, 0); + }), + (t.prototype.toggle = function () { + var e = this.$element.closest('[data-toggle="buttons-radio"]'); + e && e.find(".active").removeClass("active"), + this.$element.toggleClass("active"); + }); + var n = e.fn.button; + (e.fn.button = function (n) { + return this.each(function () { + var r = e(this), + i = r.data("button"), + s = typeof n == "object" && n; + i || r.data("button", (i = new t(this, s))), + n == "toggle" ? i.toggle() : n && i.setState(n); + }); + }), + (e.fn.button.defaults = { loadingText: "loading..." }), + (e.fn.button.Constructor = t), + (e.fn.button.noConflict = function () { + return (e.fn.button = n), this; + }), + e(document).on( + "click.button.data-api", + "[data-toggle^=button]", + function (t) { + var n = e(t.target); + n.hasClass("btn") || (n = n.closest(".btn")), n.button("toggle"); + }, + ); + })(window.jQuery), + !(function (e) { + "use strict"; + var t = function (t, n) { + (this.$element = e(t)), + (this.$indicators = this.$element.find(".carousel-indicators")), + (this.options = n), + this.options.pause == "hover" && + this.$element + .on("mouseenter", e.proxy(this.pause, this)) + .on("mouseleave", e.proxy(this.cycle, this)); + }; + t.prototype = { + cycle: function (t) { + return ( + t || (this.paused = !1), + this.interval && clearInterval(this.interval), + this.options.interval && + !this.paused && + (this.interval = setInterval( + e.proxy(this.next, this), + this.options.interval, + )), + this + ); + }, + getActiveIndex: function () { + return ( + (this.$active = this.$element.find(".item.active")), + (this.$items = this.$active.parent().children()), + this.$items.index(this.$active) + ); + }, + to: function (t) { + var n = this.getActiveIndex(), + r = this; + if (t > this.$items.length - 1 || t < 0) return; + return this.sliding + ? this.$element.one("slid", function () { + r.to(t); + }) + : n == t + ? this.pause().cycle() + : this.slide(t > n ? "next" : "prev", e(this.$items[t])); + }, + pause: function (t) { + return ( + t || (this.paused = !0), + this.$element.find(".next, .prev").length && + e.support.transition.end && + (this.$element.trigger(e.support.transition.end), this.cycle(!0)), + clearInterval(this.interval), + (this.interval = null), + this + ); + }, + next: function () { + if (this.sliding) return; + return this.slide("next"); + }, + prev: function () { + if (this.sliding) return; + return this.slide("prev"); + }, + slide: function (t, n) { + var r = this.$element.find(".item.active"), + i = n || r[t](), + s = this.interval, + o = t == "next" ? "left" : "right", + u = t == "next" ? "first" : "last", + a = this, + f; + (this.sliding = !0), + s && this.pause(), + (i = i.length ? i : this.$element.find(".item")[u]()), + (f = e.Event("slide", { relatedTarget: i[0], direction: o })); + if (i.hasClass("active")) return; + this.$indicators.length && + (this.$indicators.find(".active").removeClass("active"), + this.$element.one("slid", function () { + var t = e(a.$indicators.children()[a.getActiveIndex()]); + t && t.addClass("active"); + })); + if (e.support.transition && this.$element.hasClass("slide")) { + this.$element.trigger(f); + if (f.isDefaultPrevented()) return; + i.addClass(t), + i[0].offsetWidth, + r.addClass(o), + i.addClass(o), + this.$element.one(e.support.transition.end, function () { + i.removeClass([t, o].join(" ")).addClass("active"), + r.removeClass(["active", o].join(" ")), + (a.sliding = !1), + setTimeout(function () { + a.$element.trigger("slid"); + }, 0); + }); + } else { + this.$element.trigger(f); + if (f.isDefaultPrevented()) return; + r.removeClass("active"), + i.addClass("active"), + (this.sliding = !1), + this.$element.trigger("slid"); + } + return s && this.cycle(), this; + }, + }; + var n = e.fn.carousel; + (e.fn.carousel = function (n) { + return this.each(function () { + var r = e(this), + i = r.data("carousel"), + s = e.extend({}, e.fn.carousel.defaults, typeof n == "object" && n), + o = typeof n == "string" ? n : s.slide; + i || r.data("carousel", (i = new t(this, s))), + typeof n == "number" + ? i.to(n) + : o + ? i[o]() + : s.interval && i.pause().cycle(); + }); + }), + (e.fn.carousel.defaults = { interval: 5e3, pause: "hover" }), + (e.fn.carousel.Constructor = t), + (e.fn.carousel.noConflict = function () { + return (e.fn.carousel = n), this; + }), + e(document).on( + "click.carousel.data-api", + "[data-slide], [data-slide-to]", + function (t) { + var n = e(this), + r, + i = e( + n.attr("data-target") || + ((r = n.attr("href")) && r.replace(/.*(?=#[^\s]+$)/, "")), + ), + s = e.extend({}, i.data(), n.data()), + o; + i.carousel(s), + (o = n.attr("data-slide-to")) && + i.data("carousel").pause().to(o).cycle(), + t.preventDefault(); + }, + ); + })(window.jQuery), + !(function (e) { + "use strict"; + var t = function (t, n) { + (this.$element = e(t)), + (this.options = e.extend({}, e.fn.collapse.defaults, n)), + this.options.parent && (this.$parent = e(this.options.parent)), + this.options.toggle && this.toggle(); + }; + t.prototype = { + constructor: t, + dimension: function () { + var e = this.$element.hasClass("width"); + return e ? "width" : "height"; + }, + show: function () { + var t, n, r, i; + if (this.transitioning || this.$element.hasClass("in")) return; + (t = this.dimension()), + (n = e.camelCase(["scroll", t].join("-"))), + (r = this.$parent && this.$parent.find("> .accordion-group > .in")); + if (r && r.length) { + i = r.data("collapse"); + if (i && i.transitioning) return; + r.collapse("hide"), i || r.data("collapse", null); + } + this.$element[t](0), + this.transition("addClass", e.Event("show"), "shown"), + e.support.transition && this.$element[t](this.$element[0][n]); + }, + hide: function () { + var t; + if (this.transitioning || !this.$element.hasClass("in")) return; + (t = this.dimension()), + this.reset(this.$element[t]()), + this.transition("removeClass", e.Event("hide"), "hidden"), + this.$element[t](0); + }, + reset: function (e) { + var t = this.dimension(); + return ( + this.$element.removeClass("collapse")[t](e || "auto")[0].offsetWidth, + this.$element[e !== null ? "addClass" : "removeClass"]("collapse"), + this + ); + }, + transition: function (t, n, r) { + var i = this, + s = function () { + n.type == "show" && i.reset(), + (i.transitioning = 0), + i.$element.trigger(r); + }; + this.$element.trigger(n); + if (n.isDefaultPrevented()) return; + (this.transitioning = 1), + this.$element[t]("in"), + e.support.transition && this.$element.hasClass("collapse") + ? this.$element.one(e.support.transition.end, s) + : s(); + }, + toggle: function () { + this[this.$element.hasClass("in") ? "hide" : "show"](); + }, + }; + var n = e.fn.collapse; + (e.fn.collapse = function (n) { + return this.each(function () { + var r = e(this), + i = r.data("collapse"), + s = e.extend( + {}, + e.fn.collapse.defaults, + r.data(), + typeof n == "object" && n, + ); + i || r.data("collapse", (i = new t(this, s))), + typeof n == "string" && i[n](); + }); + }), + (e.fn.collapse.defaults = { toggle: !0 }), + (e.fn.collapse.Constructor = t), + (e.fn.collapse.noConflict = function () { + return (e.fn.collapse = n), this; + }), + e(document).on( + "click.collapse.data-api", + "[data-toggle=collapse]", + function (t) { + var n = e(this), + r, + i = + n.attr("data-target") || + t.preventDefault() || + ((r = n.attr("href")) && r.replace(/.*(?=#[^\s]+$)/, "")), + s = e(i).data("collapse") ? "toggle" : n.data(); + n[e(i).hasClass("in") ? "addClass" : "removeClass"]("collapsed"), + e(i).collapse(s); + }, + ); + })(window.jQuery), + !(function (e) { + "use strict"; + function r() { + e(t).each(function () { + i(e(this)).removeClass("open"); + }); + } + function i(t) { + var n = t.attr("data-target"), + r; + n || + ((n = t.attr("href")), + (n = n && /#/.test(n) && n.replace(/.*(?=#[^\s]*$)/, ""))), + (r = n && e(n)); + if (!r || !r.length) r = t.parent(); + return r; + } + var t = "[data-toggle=dropdown]", + n = function (t) { + var n = e(t).on("click.dropdown.data-api", this.toggle); + e("html").on("click.dropdown.data-api", function () { + n.parent().removeClass("open"); + }); + }; + n.prototype = { + constructor: n, + toggle: function (t) { + var n = e(this), + s, + o; + if (n.is(".disabled, :disabled")) return; + return ( + (s = i(n)), + (o = s.hasClass("open")), + r(), + o || s.toggleClass("open"), + n.focus(), + !1 + ); + }, + keydown: function (n) { + var r, s, o, u, a, f; + if (!/(38|40|27)/.test(n.keyCode)) return; + (r = e(this)), n.preventDefault(), n.stopPropagation(); + if (r.is(".disabled, :disabled")) return; + (u = i(r)), (a = u.hasClass("open")); + if (!a || (a && n.keyCode == 27)) + return n.which == 27 && u.find(t).focus(), r.click(); + s = e("[role=menu] li:not(.divider):visible a", u); + if (!s.length) return; + (f = s.index(s.filter(":focus"))), + n.keyCode == 38 && f > 0 && f--, + n.keyCode == 40 && f < s.length - 1 && f++, + ~f || (f = 0), + s.eq(f).focus(); + }, + }; + var s = e.fn.dropdown; + (e.fn.dropdown = function (t) { + return this.each(function () { + var r = e(this), + i = r.data("dropdown"); + i || r.data("dropdown", (i = new n(this))), + typeof t == "string" && i[t].call(r); + }); + }), + (e.fn.dropdown.Constructor = n), + (e.fn.dropdown.noConflict = function () { + return (e.fn.dropdown = s), this; + }), + e(document) + .on("click.dropdown.data-api", r) + .on("click.dropdown.data-api", ".dropdown form", function (e) { + e.stopPropagation(); + }) + .on("click.dropdown-menu", function (e) { + e.stopPropagation(); + }) + .on("click.dropdown.data-api", t, n.prototype.toggle) + .on( + "keydown.dropdown.data-api", + t + ", [role=menu]", + n.prototype.keydown, + ); + })(window.jQuery), + !(function (e) { + "use strict"; + var t = function (t, n) { + (this.options = n), + (this.$element = e(t).delegate( + '[data-dismiss="modal"]', + "click.dismiss.modal", + e.proxy(this.hide, this), + )), + this.options.remote && + this.$element.find(".modal-body").load(this.options.remote); + }; + t.prototype = { + constructor: t, + toggle: function () { + return this[this.isShown ? "hide" : "show"](); + }, + show: function () { + var t = this, + n = e.Event("show"); + this.$element.trigger(n); + if (this.isShown || n.isDefaultPrevented()) return; + (this.isShown = !0), + this.escape(), + this.backdrop(function () { + var n = e.support.transition && t.$element.hasClass("fade"); + t.$element.parent().length || t.$element.appendTo(document.body), + t.$element.show(), + n && t.$element[0].offsetWidth, + t.$element.addClass("in").attr("aria-hidden", !1), + t.enforceFocus(), + n + ? t.$element.one(e.support.transition.end, function () { + t.$element.focus().trigger("shown"); + }) + : t.$element.focus().trigger("shown"); + }); + }, + hide: function (t) { + t && t.preventDefault(); + var n = this; + (t = e.Event("hide")), this.$element.trigger(t); + if (!this.isShown || t.isDefaultPrevented()) return; + (this.isShown = !1), + this.escape(), + e(document).off("focusin.modal"), + this.$element.removeClass("in").attr("aria-hidden", !0), + e.support.transition && this.$element.hasClass("fade") + ? this.hideWithTransition() + : this.hideModal(); + }, + enforceFocus: function () { + var t = this; + e(document).on("focusin.modal", function (e) { + t.$element[0] !== e.target && + !t.$element.has(e.target).length && + t.$element.focus(); + }); + }, + escape: function () { + var e = this; + this.isShown && this.options.keyboard + ? this.$element.on("keyup.dismiss.modal", function (t) { + t.which == 27 && e.hide(); + }) + : this.isShown || this.$element.off("keyup.dismiss.modal"); + }, + hideWithTransition: function () { + var t = this, + n = setTimeout(function () { + t.$element.off(e.support.transition.end), t.hideModal(); + }, 500); + this.$element.one(e.support.transition.end, function () { + clearTimeout(n), t.hideModal(); + }); + }, + hideModal: function () { + var e = this; + this.$element.hide(), + this.backdrop(function () { + e.removeBackdrop(), e.$element.trigger("hidden"); + }); + }, + removeBackdrop: function () { + this.$backdrop && this.$backdrop.remove(), (this.$backdrop = null); + }, + backdrop: function (t) { + var n = this, + r = this.$element.hasClass("fade") ? "fade" : ""; + if (this.isShown && this.options.backdrop) { + var i = e.support.transition && r; + (this.$backdrop = e( + '<div class="modal-backdrop ' + r + '" />', + ).appendTo(document.body)), + this.$backdrop.click( + this.options.backdrop == "static" + ? e.proxy(this.$element[0].focus, this.$element[0]) + : e.proxy(this.hide, this), + ), + i && this.$backdrop[0].offsetWidth, + this.$backdrop.addClass("in"); + if (!t) return; + i ? this.$backdrop.one(e.support.transition.end, t) : t(); + } else + !this.isShown && this.$backdrop + ? (this.$backdrop.removeClass("in"), + e.support.transition && this.$element.hasClass("fade") + ? this.$backdrop.one(e.support.transition.end, t) + : t()) + : t && t(); + }, + }; + var n = e.fn.modal; + (e.fn.modal = function (n) { + return this.each(function () { + var r = e(this), + i = r.data("modal"), + s = e.extend( + {}, + e.fn.modal.defaults, + r.data(), + typeof n == "object" && n, + ); + i || r.data("modal", (i = new t(this, s))), + typeof n == "string" ? i[n]() : s.show && i.show(); + }); + }), + (e.fn.modal.defaults = { backdrop: !0, keyboard: !0, show: !0 }), + (e.fn.modal.Constructor = t), + (e.fn.modal.noConflict = function () { + return (e.fn.modal = n), this; + }), + e(document).on( + "click.modal.data-api", + '[data-toggle="modal"]', + function (t) { + var n = e(this), + r = n.attr("href"), + i = e( + n.attr("data-target") || (r && r.replace(/.*(?=#[^\s]+$)/, "")), + ), + s = i.data("modal") + ? "toggle" + : e.extend({ remote: !/#/.test(r) && r }, i.data(), n.data()); + t.preventDefault(), + i.modal(s).one("hide", function () { + n.focus(); + }); + }, + ); + })(window.jQuery), + !(function (e) { + "use strict"; + var t = function (e, t) { + this.init("tooltip", e, t); + }; + t.prototype = { + constructor: t, + init: function (t, n, r) { + var i, s, o, u, a; + (this.type = t), + (this.$element = e(n)), + (this.options = this.getOptions(r)), + (this.enabled = !0), + (o = this.options.trigger.split(" ")); + for (a = o.length; a--; ) + (u = o[a]), + u == "click" + ? this.$element.on( + "click." + this.type, + this.options.selector, + e.proxy(this.toggle, this), + ) + : u != "manual" && + ((i = u == "hover" ? "mouseenter" : "focus"), + (s = u == "hover" ? "mouseleave" : "blur"), + this.$element.on( + i + "." + this.type, + this.options.selector, + e.proxy(this.enter, this), + ), + this.$element.on( + s + "." + this.type, + this.options.selector, + e.proxy(this.leave, this), + )); + this.options.selector + ? (this._options = e.extend({}, this.options, { + trigger: "manual", + selector: "", + })) + : this.fixTitle(); + }, + getOptions: function (t) { + return ( + (t = e.extend({}, e.fn[this.type].defaults, this.$element.data(), t)), + t.delay && + typeof t.delay == "number" && + (t.delay = { show: t.delay, hide: t.delay }), + t + ); + }, + enter: function (t) { + var n = e.fn[this.type].defaults, + r = {}, + i; + this._options && + e.each( + this._options, + function (e, t) { + n[e] != t && (r[e] = t); + }, + this, + ), + (i = e(t.currentTarget)[this.type](r).data(this.type)); + if (!i.options.delay || !i.options.delay.show) return i.show(); + clearTimeout(this.timeout), + (i.hoverState = "in"), + (this.timeout = setTimeout(function () { + i.hoverState == "in" && i.show(); + }, i.options.delay.show)); + }, + leave: function (t) { + var n = e(t.currentTarget)[this.type](this._options).data(this.type); + this.timeout && clearTimeout(this.timeout); + if (!n.options.delay || !n.options.delay.hide) return n.hide(); + (n.hoverState = "out"), + (this.timeout = setTimeout(function () { + n.hoverState == "out" && n.hide(); + }, n.options.delay.hide)); + }, + show: function () { + var t, + n, + r, + i, + s, + o, + u = e.Event("show"); + if (this.hasContent() && this.enabled) { + this.$element.trigger(u); + if (u.isDefaultPrevented()) return; + (t = this.tip()), + this.setContent(), + this.options.animation && t.addClass("fade"), + (s = + typeof this.options.placement == "function" + ? this.options.placement.call(this, t[0], this.$element[0]) + : this.options.placement), + t.detach().css({ top: 0, left: 0, display: "block" }), + this.options.container + ? t.appendTo(this.options.container) + : t.insertAfter(this.$element), + (n = this.getPosition()), + (r = t[0].offsetWidth), + (i = t[0].offsetHeight); + switch (s) { + case "bottom": + o = { top: n.top + n.height, left: n.left + n.width / 2 - r / 2 }; + break; + case "top": + o = { top: n.top - i, left: n.left + n.width / 2 - r / 2 }; + break; + case "left": + o = { top: n.top + n.height / 2 - i / 2, left: n.left - r }; + break; + case "right": + o = { top: n.top + n.height / 2 - i / 2, left: n.left + n.width }; + } + this.applyPlacement(o, s), this.$element.trigger("shown"); + } + }, + applyPlacement: function (e, t) { + var n = this.tip(), + r = n[0].offsetWidth, + i = n[0].offsetHeight, + s, + o, + u, + a; + n.offset(e).addClass(t).addClass("in"), + (s = n[0].offsetWidth), + (o = n[0].offsetHeight), + t == "top" && o != i && ((e.top = e.top + i - o), (a = !0)), + t == "bottom" || t == "top" + ? ((u = 0), + e.left < 0 && + ((u = e.left * -2), + (e.left = 0), + n.offset(e), + (s = n[0].offsetWidth), + (o = n[0].offsetHeight)), + this.replaceArrow(u - r + s, s, "left")) + : this.replaceArrow(o - i, o, "top"), + a && n.offset(e); + }, + replaceArrow: function (e, t, n) { + this.arrow().css(n, e ? 50 * (1 - e / t) + "%" : ""); + }, + setContent: function () { + var e = this.tip(), + t = this.getTitle(); + e.find(".tooltip-inner")[this.options.html ? "html" : "text"](t), + e.removeClass("fade in top bottom left right"); + }, + hide: function () { + function i() { + var t = setTimeout(function () { + n.off(e.support.transition.end).detach(); + }, 500); + n.one(e.support.transition.end, function () { + clearTimeout(t), n.detach(); + }); + } + var t = this, + n = this.tip(), + r = e.Event("hide"); + this.$element.trigger(r); + if (r.isDefaultPrevented()) return; + return ( + n.removeClass("in"), + e.support.transition && this.$tip.hasClass("fade") ? i() : n.detach(), + this.$element.trigger("hidden"), + this + ); + }, + fixTitle: function () { + var e = this.$element; + (e.attr("title") || typeof e.attr("data-original-title") != "string") && + e + .attr("data-original-title", e.attr("title") || "") + .attr("title", ""); + }, + hasContent: function () { + return this.getTitle(); + }, + getPosition: function () { + var t = this.$element[0]; + return e.extend( + {}, + typeof t.getBoundingClientRect == "function" + ? t.getBoundingClientRect() + : { width: t.offsetWidth, height: t.offsetHeight }, + this.$element.offset(), + ); + }, + getTitle: function () { + var e, + t = this.$element, + n = this.options; + return ( + (e = + t.attr("data-original-title") || + (typeof n.title == "function" ? n.title.call(t[0]) : n.title)), + e + ); + }, + tip: function () { + return (this.$tip = this.$tip || e(this.options.template)); + }, + arrow: function () { + return (this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")); + }, + validate: function () { + this.$element[0].parentNode || + (this.hide(), (this.$element = null), (this.options = null)); + }, + enable: function () { + this.enabled = !0; + }, + disable: function () { + this.enabled = !1; + }, + toggleEnabled: function () { + this.enabled = !this.enabled; + }, + toggle: function (t) { + var n = t + ? e(t.currentTarget)[this.type](this._options).data(this.type) + : this; + n.tip().hasClass("in") ? n.hide() : n.show(); + }, + destroy: function () { + this.hide() + .$element.off("." + this.type) + .removeData(this.type); + }, + }; + var n = e.fn.tooltip; + (e.fn.tooltip = function (n) { + return this.each(function () { + var r = e(this), + i = r.data("tooltip"), + s = typeof n == "object" && n; + i || r.data("tooltip", (i = new t(this, s))), + typeof n == "string" && i[n](); + }); + }), + (e.fn.tooltip.Constructor = t), + (e.fn.tooltip.defaults = { + animation: !0, + placement: "top", + selector: !1, + template: + '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>', + trigger: "hover focus", + title: "", + delay: 0, + html: !1, + container: !1, + }), + (e.fn.tooltip.noConflict = function () { + return (e.fn.tooltip = n), this; + }); + })(window.jQuery), + !(function (e) { + "use strict"; + var t = function (e, t) { + this.init("popover", e, t); + }; + t.prototype = e.extend({}, e.fn.tooltip.Constructor.prototype, { + constructor: t, + setContent: function () { + var e = this.tip(), + t = this.getTitle(), + n = this.getContent(); + e.find(".popover-title")[this.options.html ? "html" : "text"](t), + e.find(".popover-content")[this.options.html ? "html" : "text"](n), + e.removeClass("fade top bottom left right in"); + }, + hasContent: function () { + return this.getTitle() || this.getContent(); + }, + getContent: function () { + var e, + t = this.$element, + n = this.options; + return ( + (e = + (typeof n.content == "function" + ? n.content.call(t[0]) + : n.content) || t.attr("data-content")), + e + ); + }, + tip: function () { + return this.$tip || (this.$tip = e(this.options.template)), this.$tip; + }, + destroy: function () { + this.hide() + .$element.off("." + this.type) + .removeData(this.type); + }, + }); + var n = e.fn.popover; + (e.fn.popover = function (n) { + return this.each(function () { + var r = e(this), + i = r.data("popover"), + s = typeof n == "object" && n; + i || r.data("popover", (i = new t(this, s))), + typeof n == "string" && i[n](); + }); + }), + (e.fn.popover.Constructor = t), + (e.fn.popover.defaults = e.extend({}, e.fn.tooltip.defaults, { + placement: "right", + trigger: "click", + content: "", + template: + '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>', + })), + (e.fn.popover.noConflict = function () { + return (e.fn.popover = n), this; + }); + })(window.jQuery), + !(function (e) { + "use strict"; + function t(t, n) { + var r = e.proxy(this.process, this), + i = e(t).is("body") ? e(window) : e(t), + s; + (this.options = e.extend({}, e.fn.scrollspy.defaults, n)), + (this.$scrollElement = i.on("scroll.scroll-spy.data-api", r)), + (this.selector = + (this.options.target || + ((s = e(t).attr("href")) && s.replace(/.*(?=#[^\s]+$)/, "")) || + "") + " .nav li > a"), + (this.$body = e("body")), + this.refresh(), + this.process(); + } + t.prototype = { + constructor: t, + refresh: function () { + var t = this, + n; + (this.offsets = e([])), + (this.targets = e([])), + (n = this.$body + .find(this.selector) + .map(function () { + var n = e(this), + r = n.data("target") || n.attr("href"), + i = /^#\w/.test(r) && e(r); + return ( + (i && + i.length && [ + [ + i.position().top + + (!e.isWindow(t.$scrollElement.get(0)) && + t.$scrollElement.scrollTop()), + r, + ], + ]) || + null + ); + }) + .sort(function (e, t) { + return e[0] - t[0]; + }) + .each(function () { + t.offsets.push(this[0]), t.targets.push(this[1]); + })); + }, + process: function () { + var e = this.$scrollElement.scrollTop() + this.options.offset, + t = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight, + n = t - this.$scrollElement.height(), + r = this.offsets, + i = this.targets, + s = this.activeTarget, + o; + if (e >= n) return s != (o = i.last()[0]) && this.activate(o); + for (o = r.length; o--; ) + s != i[o] && + e >= r[o] && + (!r[o + 1] || e <= r[o + 1]) && + this.activate(i[o]); + }, + activate: function (t) { + var n, r; + (this.activeTarget = t), + e(this.selector).parent(".active").removeClass("active"), + (r = + this.selector + + '[data-target="' + + t + + '"],' + + this.selector + + '[href="' + + t + + '"]'), + (n = e(r).parent("li").addClass("active")), + n.parent(".dropdown-menu").length && + (n = n.closest("li.dropdown").addClass("active")), + n.trigger("activate"); + }, + }; + var n = e.fn.scrollspy; + (e.fn.scrollspy = function (n) { + return this.each(function () { + var r = e(this), + i = r.data("scrollspy"), + s = typeof n == "object" && n; + i || r.data("scrollspy", (i = new t(this, s))), + typeof n == "string" && i[n](); + }); + }), + (e.fn.scrollspy.Constructor = t), + (e.fn.scrollspy.defaults = { offset: 10 }), + (e.fn.scrollspy.noConflict = function () { + return (e.fn.scrollspy = n), this; + }), + e(window).on("load", function () { + e('[data-spy="scroll"]').each(function () { + var t = e(this); + t.scrollspy(t.data()); + }); + }); + })(window.jQuery), + !(function (e) { + "use strict"; + var t = function (t) { + this.element = e(t); + }; + t.prototype = { + constructor: t, + show: function () { + var t = this.element, + n = t.closest("ul:not(.dropdown-menu)"), + r = t.attr("data-target"), + i, + s, + o; + r || ((r = t.attr("href")), (r = r && r.replace(/.*(?=#[^\s]*$)/, ""))); + if (t.parent("li").hasClass("active")) return; + (i = n.find(".active:last a")[0]), + (o = e.Event("show", { relatedTarget: i })), + t.trigger(o); + if (o.isDefaultPrevented()) return; + (s = e(r)), + this.activate(t.parent("li"), n), + this.activate(s, s.parent(), function () { + t.trigger({ type: "shown", relatedTarget: i }); + }); + }, + activate: function (t, n, r) { + function o() { + i + .removeClass("active") + .find("> .dropdown-menu > .active") + .removeClass("active"), + t.addClass("active"), + s ? (t[0].offsetWidth, t.addClass("in")) : t.removeClass("fade"), + t.parent(".dropdown-menu") && + t.closest("li.dropdown").addClass("active"), + r && r(); + } + var i = n.find("> .active"), + s = r && e.support.transition && i.hasClass("fade"); + s ? i.one(e.support.transition.end, o) : o(), i.removeClass("in"); + }, + }; + var n = e.fn.tab; + (e.fn.tab = function (n) { + return this.each(function () { + var r = e(this), + i = r.data("tab"); + i || r.data("tab", (i = new t(this))), typeof n == "string" && i[n](); + }); + }), + (e.fn.tab.Constructor = t), + (e.fn.tab.noConflict = function () { + return (e.fn.tab = n), this; + }), + e(document).on( + "click.tab.data-api", + '[data-toggle="tab"], [data-toggle="pill"]', + function (t) { + t.preventDefault(), e(this).tab("show"); + }, + ); + })(window.jQuery), + !(function (e) { + "use strict"; + var t = function (t, n) { + (this.$element = e(t)), + (this.options = e.extend({}, e.fn.typeahead.defaults, n)), + (this.matcher = this.options.matcher || this.matcher), + (this.sorter = this.options.sorter || this.sorter), + (this.highlighter = this.options.highlighter || this.highlighter), + (this.updater = this.options.updater || this.updater), + (this.source = this.options.source), + (this.$menu = e(this.options.menu)), + (this.shown = !1), + this.listen(); + }; + t.prototype = { + constructor: t, + select: function () { + var e = this.$menu.find(".active").attr("data-value"); + return this.$element.val(this.updater(e)).change(), this.hide(); + }, + updater: function (e) { + return e; + }, + show: function () { + var t = e.extend({}, this.$element.position(), { + height: this.$element[0].offsetHeight, + }); + return ( + this.$menu + .insertAfter(this.$element) + .css({ top: t.top + t.height, left: t.left }) + .show(), + (this.shown = !0), + this + ); + }, + hide: function () { + return this.$menu.hide(), (this.shown = !1), this; + }, + lookup: function (t) { + var n; + return ( + (this.query = this.$element.val()), + !this.query || this.query.length < this.options.minLength + ? this.shown + ? this.hide() + : this + : ((n = e.isFunction(this.source) + ? this.source(this.query, e.proxy(this.process, this)) + : this.source), + n ? this.process(n) : this) + ); + }, + process: function (t) { + var n = this; + return ( + (t = e.grep(t, function (e) { + return n.matcher(e); + })), + (t = this.sorter(t)), + t.length + ? this.render(t.slice(0, this.options.items)).show() + : this.shown + ? this.hide() + : this + ); + }, + matcher: function (e) { + return ~e.toLowerCase().indexOf(this.query.toLowerCase()); + }, + sorter: function (e) { + var t = [], + n = [], + r = [], + i; + while ((i = e.shift())) + i.toLowerCase().indexOf(this.query.toLowerCase()) + ? ~i.indexOf(this.query) + ? n.push(i) + : r.push(i) + : t.push(i); + return t.concat(n, r); + }, + highlighter: function (e) { + var t = this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&"); + return e.replace(new RegExp("(" + t + ")", "ig"), function (e, t) { + return "<strong>" + t + "</strong>"; + }); + }, + render: function (t) { + var n = this; + return ( + (t = e(t).map(function (t, r) { + return ( + (t = e(n.options.item).attr("data-value", r)), + t.find("a").html(n.highlighter(r)), + t[0] + ); + })), + t.first().addClass("active"), + this.$menu.html(t), + this + ); + }, + next: function (t) { + var n = this.$menu.find(".active").removeClass("active"), + r = n.next(); + r.length || (r = e(this.$menu.find("li")[0])), r.addClass("active"); + }, + prev: function (e) { + var t = this.$menu.find(".active").removeClass("active"), + n = t.prev(); + n.length || (n = this.$menu.find("li").last()), n.addClass("active"); + }, + listen: function () { + this.$element + .on("focus", e.proxy(this.focus, this)) + .on("blur", e.proxy(this.blur, this)) + .on("keypress", e.proxy(this.keypress, this)) + .on("keyup", e.proxy(this.keyup, this)), + this.eventSupported("keydown") && + this.$element.on("keydown", e.proxy(this.keydown, this)), + this.$menu + .on("click", e.proxy(this.click, this)) + .on("mouseenter", "li", e.proxy(this.mouseenter, this)) + .on("mouseleave", "li", e.proxy(this.mouseleave, this)); + }, + eventSupported: function (e) { + var t = e in this.$element; + return ( + t || + (this.$element.setAttribute(e, "return;"), + (t = typeof this.$element[e] == "function")), + t + ); + }, + move: function (e) { + if (!this.shown) return; + switch (e.keyCode) { + case 9: + case 13: + case 27: + e.preventDefault(); + break; + case 38: + e.preventDefault(), this.prev(); + break; + case 40: + e.preventDefault(), this.next(); + } + e.stopPropagation(); + }, + keydown: function (t) { + (this.suppressKeyPressRepeat = ~e.inArray( + t.keyCode, + [40, 38, 9, 13, 27], + )), + this.move(t); + }, + keypress: function (e) { + if (this.suppressKeyPressRepeat) return; + this.move(e); + }, + keyup: function (e) { + switch (e.keyCode) { + case 40: + case 38: + case 16: + case 17: + case 18: + break; + case 9: + case 13: + if (!this.shown) return; + this.select(); + break; + case 27: + if (!this.shown) return; + this.hide(); + break; + default: + this.lookup(); + } + e.stopPropagation(), e.preventDefault(); + }, + focus: function (e) { + this.focused = !0; + }, + blur: function (e) { + (this.focused = !1), !this.mousedover && this.shown && this.hide(); + }, + click: function (e) { + e.stopPropagation(), + e.preventDefault(), + this.select(), + this.$element.focus(); + }, + mouseenter: function (t) { + (this.mousedover = !0), + this.$menu.find(".active").removeClass("active"), + e(t.currentTarget).addClass("active"); + }, + mouseleave: function (e) { + (this.mousedover = !1), !this.focused && this.shown && this.hide(); + }, + }; + var n = e.fn.typeahead; + (e.fn.typeahead = function (n) { + return this.each(function () { + var r = e(this), + i = r.data("typeahead"), + s = typeof n == "object" && n; + i || r.data("typeahead", (i = new t(this, s))), + typeof n == "string" && i[n](); + }); + }), + (e.fn.typeahead.defaults = { + source: [], + items: 8, + menu: '<ul class="typeahead dropdown-menu"></ul>', + item: '<li><a href="#"></a></li>', + minLength: 1, + }), + (e.fn.typeahead.Constructor = t), + (e.fn.typeahead.noConflict = function () { + return (e.fn.typeahead = n), this; + }), + e(document).on( + "focus.typeahead.data-api", + '[data-provide="typeahead"]', + function (t) { + var n = e(this); + if (n.data("typeahead")) return; + n.typeahead(n.data()); + }, + ); + })(window.jQuery), + !(function (e) { + "use strict"; + var t = function (t, n) { + (this.options = e.extend({}, e.fn.affix.defaults, n)), + (this.$window = e(window) + .on("scroll.affix.data-api", e.proxy(this.checkPosition, this)) + .on( + "click.affix.data-api", + e.proxy(function () { + setTimeout(e.proxy(this.checkPosition, this), 1); + }, this), + )), + (this.$element = e(t)), + this.checkPosition(); + }; + t.prototype.checkPosition = function () { + if (!this.$element.is(":visible")) return; + var t = e(document).height(), + n = this.$window.scrollTop(), + r = this.$element.offset(), + i = this.options.offset, + s = i.bottom, + o = i.top, + u = "affix affix-top affix-bottom", + a; + typeof i != "object" && (s = o = i), + typeof o == "function" && (o = i.top()), + typeof s == "function" && (s = i.bottom()), + (a = + this.unpin != null && n + this.unpin <= r.top + ? !1 + : s != null && r.top + this.$element.height() >= t - s + ? "bottom" + : o != null && n <= o + ? "top" + : !1); + if (this.affixed === a) return; + (this.affixed = a), + (this.unpin = a == "bottom" ? r.top - n : null), + this.$element.removeClass(u).addClass("affix" + (a ? "-" + a : "")); + }; + var n = e.fn.affix; + (e.fn.affix = function (n) { + return this.each(function () { + var r = e(this), + i = r.data("affix"), + s = typeof n == "object" && n; + i || r.data("affix", (i = new t(this, s))), + typeof n == "string" && i[n](); + }); + }), + (e.fn.affix.Constructor = t), + (e.fn.affix.defaults = { offset: 0 }), + (e.fn.affix.noConflict = function () { + return (e.fn.affix = n), this; + }), + e(window).on("load", function () { + e('[data-spy="affix"]').each(function () { + var t = e(this), + n = t.data(); + (n.offset = n.offset || {}), + n.offsetBottom && (n.offset.bottom = n.offsetBottom), + n.offsetTop && (n.offset.top = n.offsetTop), + t.affix(n); + }); + }); + })(window.jQuery), + (self._386 = self._386 || {}), + $(function () { + function t() { + var t = 0; + $(window).bind("scroll", function (n) { + var r, + i = $(window).scrollTop(); + console.log(i, t, i < t ? "up" : "down"), + (r = i < t ? "floor" : "ceil"); + if (i % e.height === 0) return; + (t = i), window.scrollTo(0, Math[r](i / e.height) * e.height); + }); + } + function n() { + if (_386.fastLoad) { + document.body.style.visibility = "visible"; + return; + } + var t = _386.onePass, + n = (1 / (_386.speedFactor || 1)) * 165e3; + (wrap = document.createElement("div")), + (bar = wrap.appendChild(document.createElement("div"))), + (cursor = document.createElement("div")), + (pass = $(document.body).css("visibility") == "visible" ? 1 : 0), + (height = $(window).height()), + (width = $(window).width()), + (rounds = (height * width) / n), + (column = width), + (row = height - e.height), + (wrap.id = "wrap386"), + (bar.id = "bar386"), + (cursor.id = "cursor386"), + (cursor.innerHTML = bar.innerHTML = "&#9604;"), + pass === 0 + ? (document.body.appendChild(wrap), + (document.body.style.visibility = "visible")) + : (document.body.appendChild(cursor), (rounds /= 2), (e.height *= 4)); + var r = setInterval(function () { + for (var n = 0; n < rounds; n++) + (column -= e.width), + column <= 0 && ((column = width), (row -= e.height)), + row <= 0 && + (pass++, + (row = height - e.height), + pass == 2 + ? (document.body.removeChild(cursor), clearInterval(r)) + : (wrap.parentNode.removeChild(wrap), + t + ? clearInterval(r) + : (document.body.appendChild(cursor), + (rounds /= 2), + (e.height *= 4)))), + pass === 0 + ? ((bar.style.width = column + "px"), + (wrap.style.height = row + "px")) + : ((cursor.style.right = column + "px"), + (cursor.style.bottom = row + "px")); + }, 1); + } + var e = { height: 20, width: 12.4 }; + n(); + }); diff --git a/web/static/js/wakatime.js b/web/static/js/wakatime.js @@ -0,0 +1,51 @@ +function createRow(data, max_length, total_hours) { + const { date, hours, text } = data; + var row = date.padEnd(max_length); + row += " | "; + + if (hours > 0 && total_hours > 0) { + const bar_length = Math.ceil((hours / total_hours) * (100 / 5)); + const bar = "#".repeat(bar_length); + if (bar.length !== 0) { + row += `${bar} `; + } + } + row += `${text}\n`; + return row; +} + +function createChart(data) { + const table = []; + var max_length = 0; + var total_hours = 0; + data.forEach((entry) => { + const date = entry.range.text.replace(/\s*\d{4}$/, ""); + max_length = Math.max(max_length, date.length); + const { total_seconds, text: timeText } = entry.grand_total; + const hours = total_seconds / 60 / 60; + total_hours += hours; + table.push({ date, hours, text: timeText }); + }); + + var chart = ""; + table.forEach((row) => { + chart += createRow(row, max_length, total_hours); + }); + return chart; +} + +$.ajax({ + type: "GET", + url: "https://wakatime.com/share/@Moncheeta/235513c0-b88a-483b-a5a5-d0f54e7c471e.json", + dataType: "jsonp", + success: function (response) { + const chart = createChart(response.data); + document.getElementById("activity-small").textContent = chart; + document.getElementById("activity-big").textContent = chart; + }, + error: function (error) { + console.error("Error fetching data:", error); + document.getElementById("activity-small").textContent = "Failed to load chart"; + document.getElementById("activity-big").textContent = "Failed to load chart"; + }, +}); diff --git a/web/templates/404.html b/web/templates/404.html @@ -0,0 +1,27 @@ +{% extends "base.html" %} + +{% import "nav.html" as nav %} +{% block navbar %} +{{ nav::bar(active="") }} +{% endblock %} + +{% block content %} +<div id="message"> + <h1>not found</h1> +</div> +<style> + #content { + padding: 0px !important; + } + + #message { + display: flex; + justify-content: center; + align-items: center; + height: 100vh; + } +</style> +<script> + _386 = { fastLoad: true }; +</script> +{% endblock %} diff --git a/web/templates/base.html b/web/templates/base.html @@ -0,0 +1,38 @@ +<!doctype html> +<html lang="en"> + <head> + <meta charset="UTF-8" /> + <title>prime8</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + + <style> + body { + visibility: hidden; + min-height: 100vh; + } + + #content { + padding: 24px 4px 8px 4px; + } + + pre { + color: #E8E6E3 !important; + background-color: #000084 !important; + } + </style> + <link href="/css/bootstrap.css" rel="stylesheet" media="screen" /> + <link href="/css/bootstrap-responsive.css" rel="stylesheet"> + + <script src="https://code.jquery.com/jquery.js"></script> + <script> + _386 = { onePass: true }; + </script> + <script src="/js/bootstrap.js"></script> + </head> + + <body> + {% block navbar %} {% endblock %} + + <div id="content">{% block content %} {% endblock %}</div> + </body> +</html> diff --git a/web/templates/index.html b/web/templates/index.html @@ -0,0 +1,95 @@ +{% extends "base.html" %} + +{% import "nav.html" as nav %} +{% block navbar %} +{{ nav::bar(active="home") }} +{% endblock %} + +{% block content %} +<div id="logo"> + <div> + <pre id="firstname"> + _ _ + | | (_) + __| | __ _ _ __ ___ _ __ _ _ __ + / _` |/ _` | '_ ` _ \| |/ _` | '_ \ +| (_| | (_| | | | | | | | (_| | | | | + \__,_|\__,_|_| |_| |_|_|\__,_|_| |_| + </pre> + <a href="mailto:damian@prime8.dev">damian@prime8.dev</a> + </div> + <pre id="middle" class="hidden-phone"></pre> + <pre id="lastname" class="hidden-phone"> + _ + | | + _ __ ___ _ _ _ __ __| | __ _ +| '_ ` _ \| | | | '__/ _` |/ _` | +| | | | | | |_| | | | (_| | (_| | +|_| |_| |_|\__, |_| \__,_|\__,_| + __/ | + |___/</pre> + <script> + const heights = [ + document.getElementById("firstname").textContent.split("\n").length, + document.getElementById("lastname").textContent.split("\n").length, + ]; + const max_height = Math.max(...heights); + document.getElementById("middle").textContent = " \n".repeat(max_height); + </script> + <style> + #logo { + display: table; + margin-left: auto; + margin-right: auto; + } + + #firstname, #middle, #lastname { + display: table-cell; + } + </style> +</div> +<p class="lead" style="text-align: center"> + Terminal enthusiast, learning from Curious George (the curious part, not the + monkey business). Systems and backend programming are my focus. Striving to + turn spaghetti code into well-structured algorithms and make every line + count with efficiency and creativity. Making computers follow my lead, even + when they have their own ideas. +</p> +<div> +<div style="display: table; width: 100%"> + <div style="display: table-cell; white-space: nowrap"> + <h3>works with:</h3> + <ul> + <li style="color: #ffc40d">zig</li> + <li style="color: #9d261d">rust</li> + <li style="color: #bdb7af">c</li> + <li style="color: #049cdb">c++</li> + <li style="color: #ffc40d">python</li> + </ul> + <h3>learning more about:</h3> + <ul> + <li style="color: #049cdb">go</li> + <li style="color: #ffc40d">java</li> + </ul> + <div class="visible-phone"> + <h3>activity:</h3> + <pre id="activity-small">Loading activity...</pre> + </div> + </div> + <div style="display: table-cell; vertical-align: middle"> + <div style="display: flex; justify-content: center"> + <div class="hidden-phone"> + <h3>activity:</h3> + <pre id="activity-big">Loading activity...</pre> + </div> + </div> + </div> +</div> +<script src="js/wakatime.js"></script> +<style> + #content { + max-width: 800px !important; + margin: auto !important; + } +</style> +{% endblock %} diff --git a/web/templates/nav.html b/web/templates/nav.html @@ -0,0 +1,21 @@ +{% macro bar(active) %} +<div class="navbar navbar-inverse navbar-fixed-top"> + <div class="navbar-inner"> + <a class="brand" href="/">prime8</a> + <div class="nav-collapse collapse"> + <ul class="nav"> + {% for tab in config.extra.tabs %} + <li {% if tab.name == active %} class="active" {% endif %}> + <a href="{{ tab.url }}">{{ tab.name }}</a> + </li> + {% endfor %} + </ul> + </div> + </div> +</div> +<style> + .brand { + margin-left: 0 !important; + } +</style> +{% endmacro %} diff --git a/web/templates/projects.html b/web/templates/projects.html @@ -0,0 +1,21 @@ +{% extends "base.html" %} + +{% import "nav.html" as nav %} +{% block navbar %} +{{ nav::bar(active="projects") }} +{% endblock %} + +{% block content %} +<pre> + _ _ + (_) | | + _ __ _ __ ___ _ ___ ___| |_ ___ +| '_ \| '__/ _ \| |/ _ \/ __| __/ __| +| |_) | | | (_) | | __/ (__| |_\__ \ +| .__/|_| \___/| |\___|\___|\__|___/ +| | _/ | +|_| |__/ + +</pre> +{{ page.content | safe }} +{% endblock %}