Welcome,
This server is on maintenance, see you back soon.
(Sure, we take care of yours data, no worries :)
Best regards, The GarganText Team CNRS/ISCPIF
haskell-gargantext-151-dev-pubmed-api-key/devops/maintenance/index.md 0000664 0000000 0000000 00000000331 14341204033 0025734 0 ustar 00root root 0000000 0000000 ![](http://dl.gargantext.org/Logo_V4-min.png "V4 Logo") Welcome, This server is on maintenance, see you back soon. (Sure, we take care of yours data, no worries :) Best regards, The GarganText Team CNRS/ISCPIF haskell-gargantext-151-dev-pubmed-api-key/devops/misc/ 0000775 0000000 0000000 00000000000 14341204033 0022757 5 ustar 00root root 0000000 0000000 haskell-gargantext-151-dev-pubmed-api-key/devops/misc/build-doc 0000775 0000000 0000000 00000000056 14341204033 0024550 0 ustar 00root root 0000000 0000000 #!/bin/bash stack haddock --no-haddock-deps haskell-gargantext-151-dev-pubmed-api-key/devops/misc/check-repo-cycles.jq 0000664 0000000 0000000 00000001105 14341204033 0026610 0 ustar 00root root 0000000 0000000 .state | to_entries[] | .key as $ty | .value | to_entries[] | .key as $list | .value as $m | .value | ("\($list): \($m|length) size" | debug) as $_ | to_entries[] | .key as $ngram | .value | select(.root) | debug | select( # We keep only records with errors .root and # We need .root ( $m[.root].root != null or # A root should have no root itself .parent != .root and # We need .parent different .root $m[.parent].root != .root # The parent's root should the same root. ) ) | {$ty, $list, $ngram, data: .} haskell-gargantext-151-dev-pubmed-api-key/devops/misc/stats.jq 0000775 0000000 0000000 00000000117 14341204033 0024453 0 ustar 00root root 0000000 0000000 jq < repo.json '.state |= map_values(map_values(length)) | .history |= length' haskell-gargantext-151-dev-pubmed-api-key/devops/nginx/ 0000775 0000000 0000000 00000000000 14341204033 0023147 5 ustar 00root root 0000000 0000000 haskell-gargantext-151-dev-pubmed-api-key/devops/nginx/default 0000664 0000000 0000000 00000012240 14341204033 0024515 0 ustar 00root root 0000000 0000000 ## # You should look at the following URL's in order to grasp a solid understanding # of Nginx configuration files in order to fully unleash the power of Nginx. # http://wiki.nginx.org/Pitfalls # http://wiki.nginx.org/QuickStart # http://wiki.nginx.org/Configuration # # Generally, you will want to move this file somewhere, and start with a clean # file but keep this around for reference. Or just disable in sites-enabled. # # Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples. ## server { server_name doc.gargantext.org; add_header Cache-Control "no-cache"; root /var/www/html/; index index.html; listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/v4.gargantext.org/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/v4.gargantext.org/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } # Comment this for maintenance only server { server_name v4.gargantext.org; #server_name maintenanceOnly.gargantext.org; add_header Cache-Control "no-cache"; root /var/www/maintenance/; index index.html; listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/v4.gargantext.org/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/v4.gargantext.org/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } server { if ($host = v4.gargantext.org) { return 301 https://$host$request_uri; } # managed by Certbot listen 80; server_name v4.gargantext.org; add_header Cache-Control "no-cache"; location '/.well-known/acme-challenge' { root /var/www/gargantext; } # Always redirect to https return 301 https://v4.gargantext.org$request_uri; } server { listen 443; listen [::]:443 ssl; server_name v4.gargantext.org; # Some options configurations: # https://github.com/h5bp/server-configs-nginx/blob/master/h5bp/location/expires.conf add_header Cache-Control "no-cache"; # SSL configuration # # listen 443 ssl default_server; # listen [::]:443 ssl default_server; ssl on; ssl_certificate /etc/letsencrypt/live/v4.gargantext.org/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/v4.gargantext.org/privkey.pem; # managed by Certbot # Note: You should disable gzip for SSL traffic. # See: https://bugs.debian.org/773332 # # Read up on ssl_ciphers to ensure a secure configuration. # See: https://bugs.debian.org/765782 # # Self signed certs generated by the ssl-cert package # Don't use them in a production server! # # include snippets/snakeoil.conf; client_max_body_size 800M; client_body_timeout 12; client_header_timeout 12; keepalive_timeout 15; send_timeout 10; root /var/www/html; index index.html; #add_header Access-Control-Allow-Origin $http_origin always; # Add index.php to the list if you are using PHP #index index.html index.htm index.nginx-debian.html; # CORS config borrowed from: https://gist.github.com/pauloricardomg/7084524 # NP: not sure we need CORS yet # if ($http_origin ~* (^https?://(127.0.0.1|localhost|v4\.gargantext\.com))) { set $cors "1"; } # # Cross-Origin Resource Sharing if ($request_method = "OPTIONS") { set $cors "${cors}o"; } # SSL CERT renewal location '/.well-known/acme-challenge' { alias /var/www/gargantext/.well-known/acme-challenge ; } location /api { # limit_except OPTIONS { # auth_basic "Gargantext's Development Version"; # auth_basic_user_file /etc/nginx/haskell_gargantext.htpasswd; # } proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://127.0.0.1:8008; } location / { # https://stackoverflow.com/a/48708812 # limit_except OPTIONS { # auth_basic "Gargantext's Development Version"; # auth_basic_user_file /etc/nginx/haskell_gargantext.htpasswd; # } proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://127.0.0.1:8008; } #access_log off; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; } server { if ($host = doc.gargantext.org) { return 301 https://$host$request_uri; } # managed by Certbot listen 80; server_name doc.gargantext.org; return 404; # managed by Certbot } haskell-gargantext-151-dev-pubmed-api-key/devops/nginx/frames/ 0000775 0000000 0000000 00000000000 14341204033 0024424 5 ustar 00root root 0000000 0000000 haskell-gargantext-151-dev-pubmed-api-key/devops/nginx/frames/default 0000664 0000000 0000000 00000020352 14341204033 0025775 0 ustar 00root root 0000000 0000000 ## # You should look at the following URL's in order to grasp a solid understanding # of Nginx configuration files in order to fully unleash the power of Nginx. # https://www.nginx.com/resources/wiki/start/ # https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/ # https://wiki.debian.org/Nginx/DirectoryStructure # # In most cases, administrators will remove this file from sites-enabled/ and # leave it as reference inside of sites-available where it will continue to be # updated by the nginx packaging team. # # This file will automatically load configuration files provided by other # applications, such as Drupal or Wordpress. These applications will be made # available underneath a path with that package name, such as /drupal8. # # Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples. ## # Default server configuration # #upstream backend_istex{ # server 127.0.0.1:8080; #} #upstream backend_cillex{ # server 127.0.0.1:7080; #} #events { # worker_connections 2000; #} server { server_name write.frame.gargantext.org; location / { # include proxy_params; proxy_pass http://localhost:3000; # proxy_http_version 1.1; # proxy_set_header Upgrade $http_upgrade; # proxy_set_header Connection "upgrade"; # proxy_set_header Host $host; # proxy_cookie_path / "/; secure; HttpOnly; SameSite=lax"; #proxy_set_header X-Real-IP $remote_addr; # proxy_cookie_domain $host $host; # proxy_ignore_headers Cache-Control Expires Set-Cookie; } location /socket.io { proxy_pass http://localhost:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $host; } listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/searx.frame.gargantext.org/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/searx.frame.gargantext.org/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } server { server_name write2.frame.gargantext.org; location / { # include proxy_params; proxy_pass http://localhost:3001; # proxy_http_version 1.1; # proxy_set_header Upgrade $http_upgrade; # proxy_set_header Connection "upgrade"; # proxy_set_header Host $host; # proxy_cookie_path / "/; secure; HttpOnly; SameSite=lax"; #proxy_set_header X-Real-IP $remote_addr; # proxy_cookie_domain $host $host; # proxy_ignore_headers Cache-Control Expires Set-Cookie; } listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/write2.frame.gargantext.org/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/write2.frame.gargantext.org/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } server { server_name calc.frame.gargantext.org; location / { include proxy_params; proxy_pass http://localhost:8000; } listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/searx.frame.gargantext.org/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/searx.frame.gargantext.org/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } #server { # server_name hackmd.gargantext.org; # location / { # include proxy_params; # proxy_pass http://localhost:8000; # } # # listen 443 ssl; # managed by Certbot # ssl_certificate /etc/letsencrypt/live/cillex.gargantext.org/fullchain.pem; # managed by Certbot # ssl_certificate_key /etc/letsencrypt/live/cillex.gargantext.org/privkey.pem; # managed by Certbot # include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot # ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot # #} server { server_name istex.frame.gargantext.org; location / { include proxy_params; proxy_pass http://localhost:8080; } listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/searx.frame.gargantext.org/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/searx.frame.gargantext.org/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } server { server_name istex.gargantext.org; location / { include proxy_params; proxy_pass http://localhost:8080; } listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/searx.frame.gargantext.org/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/searx.frame.gargantext.org/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } server { server_name searx.frame.gargantext.org; location / { include proxy_params; proxy_pass http://localhost:8181; } listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/searx.frame.gargantext.org/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/searx.frame.gargantext.org/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } # Virtual Host configuration for example.com # # You can move that to a different file under sites-available/ and symlink that # to sites-enabled/ to enable it. # #server { # listen 80; # listen [::]:80; # # server_name example.com; # # root /var/www/example.com; # index index.html; # # location / { # try_files $uri $uri/ =404; # } #} server { if ($host = cillex.gargantext.org) { return 301 https://$host$request_uri; } # managed by Certbot server_name cillex.gargantext.org; return 404; # managed by Certbot listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/searx.frame.gargantext.org/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/searx.frame.gargantext.org/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } server { if ($host = searx.frame.gargantext.org) { return 301 https://$host$request_uri; } # managed by Certbot server_name searx.frame.gargantext.org; listen 80; return 404; # managed by Certbot } server { if ($host = istex.frame.gargantext.org) { return 301 https://$host$request_uri; } # managed by Certbot server_name istex.frame.gargantext.org; listen 80; return 404; # managed by Certbot } server { if ($host = calc.frame.gargantext.org) { return 301 https://$host$request_uri; } # managed by Certbot server_name calc.frame.gargantext.org; listen 80; return 404; # managed by Certbot } server { if ($host = write.frame.gargantext.org) { return 301 https://$host$request_uri; } # managed by Certbot server_name write.frame.gargantext.org; listen 80; return 404; # managed by Certbot } server { if ($host = write2.frame.gargantext.org) { return 301 https://$host$request_uri; } # managed by Certbot server_name write2.frame.gargantext.org; listen 80; return 404; # managed by Certbot } server { if ($host = istex.gargantext.org) { return 301 https://$host$request_uri; } # managed by Certbot server_name istex.gargantext.org; listen 80; return 404; # managed by Certbot } server { if ($host = cillex.gargantext.org) { return 301 https://$host$request_uri; } # managed by Certbot server_name cillex.gargantext.org; listen 80; return 404; # managed by Certbot } haskell-gargantext-151-dev-pubmed-api-key/devops/nginx/index.html 0000664 0000000 0000000 00000001344 14341204033 0025146 0 ustar 00root root 0000000 0000000If you see this page then the GarganText Server is under maintenance to take care of your data.
With the current upgrade we will be back with a more powerful environment!
For any question keep in touch by email at: contact AT gargantext DOT org
Thank you for using GarganText.
Best regards from the GarganText team
haskell-gargantext-151-dev-pubmed-api-key/devops/nginx/install 0000775 0000000 0000000 00000000245 14341204033 0024544 0 ustar 00root root 0000000 0000000 sudo apt install apache2-utils htpasswd -c /etc/nginx/haskell_gargantext.htpasswd username1 sudo apt-get install certbot python-certbot-nginx sudo certbot --nginx haskell-gargantext-151-dev-pubmed-api-key/devops/openStack/ 0000775 0000000 0000000 00000000000 14341204033 0023753 5 ustar 00root root 0000000 0000000 haskell-gargantext-151-dev-pubmed-api-key/devops/openStack/install 0000775 0000000 0000000 00000001106 14341204033 0025345 0 ustar 00root root 0000000 0000000 #!/bin/bash ######################################################################## # Open Stack only: attach volumes # attach the volume created (OS interface or API) sudo fdisk -l sudo fdisk /dev/vdb (n,p,t,83,w) sudo mkfs.ext4 /dev/vdb1 sudo blkid # copy UUID in fstab (same parameters) sudo vim /etc/fstab ######################################################################## sudo sed -i "s/stretch/buster/g" /etc/apt/sources.list sudo apt update sudo apt dist-upgrade # sudo reboot #recommended ######################################################################## haskell-gargantext-151-dev-pubmed-api-key/devops/postgres/ 0000775 0000000 0000000 00000000000 14341204033 0023672 5 ustar 00root root 0000000 0000000 haskell-gargantext-151-dev-pubmed-api-key/devops/postgres/create 0000775 0000000 0000000 00000001072 14341204033 0025063 0 ustar 00root root 0000000 0000000 #!/bin/bash # sudo su postgres # postgresql://$USER:$PW@localhost/$DB INIFILE=$1 getter () { grep $1 $INIFILE | sed "s/^.*= //" } USER=$(getter "DB_USER") NAME=$(getter "DB_NAME") PASS=$(getter "DB_PASS") HOST=$(getter "DB_HOST") PORT=$(getter "DB_PORT") psql -c "CREATE USER \"${USER}\"" psql -c "ALTER USER \"${USER}\" with PASSWORD '${PW}'" psql -c "DROP DATABASE IF EXISTS \"${NAME}\"" createdb "${NAME}" psql "${NAME}" < extensions.sql # if new #psql "${NAME}" < schema.sql psql ${NAME} < $2 psql -c "ALTER DATABASE \"${NAME}\" OWNER to \"${USER}\"" haskell-gargantext-151-dev-pubmed-api-key/devops/postgres/empty 0000775 0000000 0000000 00000000523 14341204033 0024756 0 ustar 00root root 0000000 0000000 #!/bin/bash # sudo su postgres # postgresql://$USER:$PW@localhost/$DB PW="C8kdcUrAQy66U" DB="gargandb1" USER="gargantua" #psql -c "CREATE USER \"${USER}\"" #psql -c "ALTER USER \"${USER}\" with PASSWORD '${PW}'" psql -c "DROP DATABASE IF EXISTS \"${DB}\"" createdb "${DB}" psql -c "ALTER DATABASE \"${DB}\" OWNER to \"${USER}\"" haskell-gargantext-151-dev-pubmed-api-key/devops/postgres/extensions.sql 0000664 0000000 0000000 00000000132 14341204033 0026606 0 ustar 00root root 0000000 0000000 CREATE EXTENSION IF NOT EXISTS pgcrypto; CREATE EXTENSION IF NOT EXISTS tsm_system_rows; haskell-gargantext-151-dev-pubmed-api-key/devops/postgres/schema 0000775 0000000 0000000 00000000222 14341204033 0025054 0 ustar 00root root 0000000 0000000 #!/bin/bash DB="gargandbV5" rm ../../tmp* rm ../../repo* psql -c "drop database IF EXISTS \"${DB}\"" createdb "${DB}" psql "${DB}" < schema.sql haskell-gargantext-151-dev-pubmed-api-key/devops/postgres/schema.sql 0000664 0000000 0000000 00000034057 14341204033 0025664 0 ustar 00root root 0000000 0000000 CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog; COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language'; CREATE EXTENSION IF NOT EXISTS tsm_system_rows; CREATE EXTENSION pgcrypto; ----------------------------------------------------------------- CREATE TABLE public.auth_user ( id SERIAL, password CHARACTER varying(128) NOT NULL, last_login TIMESTAMP with time zone, is_superuser BOOLEAN NOT NULL, username CHARACTER varying(150) NOT NULL, first_name CHARACTER varying(30) NOT NULL, last_name CHARACTER varying(30) NOT NULL, email CHARACTER varying(254) NOT NULL, is_staff BOOLEAN NOT NULL, is_active BOOLEAN NOT NULL, date_joined TIMESTAMP with time zone DEFAULT now() NOT NULL, forgot_password_uuid TEXT, PRIMARY KEY (id) ); ALTER TABLE public.auth_user OWNER TO gargantua; ----------------------------------------------------------------- -- TODO add publication_date -- TODO typename -> type_id CREATE TABLE public.nodes ( id SERIAL, hash_id CHARACTER varying(66) DEFAULT ''::character varying NOT NULL, typename INTEGER NOT NULL, user_id INTEGER NOT NULL, parent_id INTEGER REFERENCES public.nodes(id) ON DELETE CASCADE , name CHARACTER varying(255) DEFAULT ''::character varying NOT NULL, date TIMESTAMP with time zone DEFAULT now() NOT NULL, hyperdata jsonb DEFAULT '{}'::jsonb NOT NULL, search tsvector, PRIMARY KEY (id), FOREIGN KEY (user_id) REFERENCES public.auth_user(id) ON DELETE CASCADE ); ALTER TABLE public.nodes OWNER TO gargantua; -------------------------------------------------------------- -- TODO add publication_date -- TODO typename -> type_id CREATE TABLE public.contexts ( id SERIAL, hash_id CHARACTER varying(66) DEFAULT ''::character varying NOT NULL, typename INTEGER NOT NULL, user_id INTEGER NOT NULL, parent_id INTEGER REFERENCES public.contexts(id) ON DELETE CASCADE , name CHARACTER varying(255) DEFAULT ''::character varying NOT NULL, date TIMESTAMP with time zone DEFAULT now() NOT NULL, hyperdata jsonb DEFAULT '{}'::jsonb NOT NULL, search tsvector, PRIMARY KEY (id), FOREIGN KEY (user_id) REFERENCES public.auth_user(id) ON DELETE CASCADE ); ALTER TABLE public.contexts OWNER TO gargantua; -------------------------------------------------------------- -- | Ngrams CREATE TABLE public.ngrams ( id SERIAL, terms CHARACTER varying(255), n INTEGER, PRIMARY KEY (id) ); ALTER TABLE public.ngrams OWNER TO gargantua; -- | Ngrams PosTag CREATE TABLE public.ngrams_postag ( id SERIAL , lang_id INTEGER , algo_id INTEGER , postag CHARACTER varying(5) , ngrams_id INTEGER NOT NULL , lemm_id INTEGER NOT NULL , score INTEGER DEFAULT 1 ::integer NOT NULL , FOREIGN KEY (ngrams_id) REFERENCES public.ngrams(id) ON DELETE CASCADE, FOREIGN KEY (lemm_id) REFERENCES public.ngrams(id) ON DELETE CASCADE ); ALTER TABLE public.ngrams_postag OWNER TO gargantua; -------------------------------------------------------------- -- Node here should have type NodeList CREATE TABLE public.node_ngrams ( id SERIAL , node_id INTEGER NOT NULL , node_subtype INTEGER , ngrams_id INTEGER NOT NULL , ngrams_type INTEGER , -- change to ngrams_field? (no for pedagogic reason) ngrams_field INTEGER , ngrams_tag INTEGER , ngrams_class INTEGER , weight double precision , PRIMARY KEY (id) , FOREIGN KEY (node_id) REFERENCES public.nodes(id) ON DELETE CASCADE , FOREIGN KEY (ngrams_id) REFERENCES public.ngrams(id) ON DELETE CASCADE ); ALTER TABLE public.node_ngrams OWNER TO gargantua; --CREATE TABLE public.context_nodengrams_nodengrams ( -- context_id INTEGER NOT NULL , -- node_ngrams1_id INTEGER NOT NULL , -- node_ngrams2_id INTEGER NOT NULL , -- weight double precision , -- FOREIGN KEY (node_id) REFERENCES public.contexts(id) ON DELETE CASCADE , -- FOREIGN KEY (node_ngrams1_id) REFERENCES public.node_ngrams(id) ON DELETE CASCADE, -- FOREIGN KEY (node_ngrams2_id) REFERENCES public.node_ngrams(id) ON DELETE CASCADE, -- PRIMARY KEY (node_id, node_ngrams1_id, node_ngrams2_id) --); --ALTER TABLE public.context_nodengrams_nodengrams OWNER TO gargantua; -------------------------------------------------------------- -------------------------------------------------------------- -- --CREATE TABLE public.nodes_ngrams_ngrams ( -- node_id integer NOT NULL REFERENCES public.nodes(id) ON DELETE CASCADE, -- ngram1_id integer NOT NULL REFERENCES public.ngrams(id) ON DELETE CASCADE, -- ngram2_id integer NOT NULL REFERENCES public.ngrams(id) ON DELETE CASCADE, -- weight double precision, -- PRIMARY KEY (node_id,ngram1_id,ngram2_id) --); -- --ALTER TABLE public.nodes_ngrams_ngrams OWNER TO gargantua; --------------------------------------------------------------- -- TODO nodes_nodes(node1_id int, node2_id int, edge_type int , weight real) CREATE TABLE public.nodes_nodes ( node1_id INTEGER NOT NULL REFERENCES public.nodes(id) ON DELETE CASCADE, node2_id INTEGER NOT NULL REFERENCES public.nodes(id) ON DELETE CASCADE, score REAL , category INTEGER , PRIMARY KEY (node1_id, node2_id) ); ALTER TABLE public.nodes_nodes OWNER TO gargantua; -- To attach contexts to a Corpus CREATE TABLE public.nodes_contexts ( id SERIAL , node_id INTEGER NOT NULL REFERENCES public.nodes(id) ON DELETE CASCADE, context_id INTEGER NOT NULL REFERENCES public.contexts(id) ON DELETE CASCADE, score REAL , category INTEGER , PRIMARY KEY (id) ); ALTER TABLE public.nodes_contexts OWNER TO gargantua; CREATE TABLE public.nodescontexts_nodescontexts ( nodescontexts1 INTEGER NOT NULL REFERENCES public.nodes_contexts(id) ON DELETE CASCADE, nodescontexts2 INTEGER NOT NULL REFERENCES public.nodes_contexts(id) ON DELETE CASCADE, PRIMARY KEY (nodescontexts1, nodescontexts2) ); ALTER TABLE public.nodescontexts_nodescontexts OWNER TO gargantua; --------------------------------------------------------------- CREATE TABLE public.context_node_ngrams ( context_id INTEGER NOT NULL REFERENCES public.contexts (id) ON DELETE CASCADE, node_id INTEGER NOT NULL REFERENCES public.nodes (id) ON DELETE CASCADE, ngrams_id INTEGER NOT NULL REFERENCES public.ngrams (id) ON DELETE CASCADE, ngrams_type INTEGER , weight double precision, doc_count INTEGER DEFAULT 0, PRIMARY KEY (context_id, node_id, ngrams_id, ngrams_type) ); ALTER TABLE public.context_node_ngrams OWNER TO gargantua; CREATE TABLE public.context_node_ngrams2 ( context_id INTEGER NOT NULL REFERENCES public.contexts (id) ON DELETE CASCADE, nodengrams_id INTEGER NOT NULL REFERENCES public.node_ngrams (id) ON DELETE CASCADE, weight double precision, PRIMARY KEY (context_id, nodengrams_id) ); ALTER TABLE public.context_node_ngrams2 OWNER TO gargantua; -------------------------------------------------------------------- CREATE TABLE public.node_node_ngrams ( node1_id INTEGER NOT NULL REFERENCES public.nodes (id) ON DELETE CASCADE, node2_id INTEGER NOT NULL REFERENCES public.nodes (id) ON DELETE CASCADE, ngrams_id INTEGER NOT NULL REFERENCES public.ngrams (id) ON DELETE CASCADE, ngrams_type INTEGER, weight double precision, PRIMARY KEY (node1_id, node2_id, ngrams_id, ngrams_type) ); ALTER TABLE public.node_node_ngrams OWNER TO gargantua; CREATE TABLE public.node_node_ngrams2 ( node_id INTEGER NOT NULL REFERENCES public.nodes (id) ON DELETE CASCADE, nodengrams_id INTEGER NOT NULL REFERENCES public.node_ngrams (id) ON DELETE CASCADE, weight double precision, PRIMARY KEY (node_id, nodengrams_id) ); ALTER TABLE public.node_node_ngrams2 OWNER TO gargantua; -------------------------------------------------------------- --CREATE TABLE public.nodes_ngrams_repo ( -- version integer NOT NULL, -- patches jsonb DEFAULT '{}'::jsonb NOT NULL, -- PRIMARY KEY (version) --); --ALTER TABLE public.nodes_ngrams_repo OWNER TO gargantua; --------------------------------------------------------- -- If needed for rights management at row level -- CREATE EXTENSION IF NOT EXISTS acl WITH SCHEMA public; CREATE TABLE public.rights ( user_id INTEGER NOT NULL REFERENCES public.auth_user(id) ON DELETE CASCADE, node_id INTEGER NOT NULL REFERENCES public.nodes(id) ON DELETE CASCADE, rights INTEGER NOT NULL, PRIMARY KEY (user_id, node_id) ); ALTER TABLE public.rights OWNER TO gargantua; ------------------------------------------------------------ -- Node Story CREATE TABLE public.node_stories ( id SERIAL, node_id INTEGER NOT NULL, version INTEGER NOT NULL, ngrams_type_id INTEGER NOT NULL, ngrams_id INTEGER NOT NULL, --children TEXT[], ngrams_repo_element jsonb DEFAULT '{}'::jsonb NOT NULL, PRIMARY KEY (id), FOREIGN KEY (node_id) REFERENCES public.nodes(id) ON DELETE CASCADE, FOREIGN KEY (ngrams_id) REFERENCES public.ngrams(id) ON DELETE CASCADE ); ALTER TABLE public.node_stories OWNER TO gargantua; CREATE UNIQUE INDEX ON public.node_stories USING btree (node_id, ngrams_type_id, ngrams_id); create table public.node_story_archive_history ( id SERIAL, node_id INTEGER NOT NULL, ngrams_type_id INTEGER NOT NULL, ngrams_id INTEGER NOT NULL, patch jsonb DEFAULT '{}'::jsonb NOT NULL, version INTEGER NOT NULL DEFAULT 0, PRIMARY KEY (id), FOREIGN KEY (node_id) REFERENCES public.nodes(id) ON DELETE CASCADE, FOREIGN KEY (ngrams_id) REFERENCES public.ngrams(id) ON DELETE CASCADE ); ALTER TABLE public.node_story_archive_history OWNER TO gargantua; ------------------------------------------------------------ -- INDEXES CREATE INDEX ON public.auth_user USING btree (username varchar_pattern_ops); CREATE UNIQUE INDEX ON public.auth_user USING btree (username); CREATE INDEX ON public.rights USING btree (user_id,node_id); CREATE INDEX ON public.nodes USING gin (hyperdata); CREATE INDEX ON public.nodes USING btree (user_id, typename, parent_id); CREATE INDEX ON public.nodes USING btree (id, typename, date ASC); CREATE INDEX ON public.nodes USING btree (id, typename, date DESC); CREATE INDEX ON public.nodes USING btree (typename, id); CREATE UNIQUE INDEX ON public.nodes USING btree (hash_id); CREATE INDEX ON public.contexts USING gin (hyperdata); CREATE INDEX ON public.contexts USING btree (user_id, typename, parent_id); CREATE INDEX ON public.contexts USING btree (id, typename, date ASC); CREATE INDEX ON public.contexts USING btree (id, typename, date DESC); CREATE INDEX ON public.contexts USING btree (typename, id); CREATE UNIQUE INDEX ON public.contexts USING btree (hash_id); CREATE INDEX ON public.nodescontexts_nodescontexts USING btree (nodescontexts1, nodescontexts2); -- CREATE UNIQUE INDEX ON public.nodes USING btree (((hyperdata ->> 'uniqId'::text))); -- CREATE UNIQUE INDEX ON public.nodes USING btree (((hyperdata ->> 'uniqIdBdd'::text))); -- CREATE UNIQUE INDEX ON public.nodes USING btree (typename, parent_id, ((hyperdata ->> 'uniqId'::text))); CREATE UNIQUE INDEX ON public.ngrams (terms); -- TEST GIN CREATE INDEX ON public.ngrams USING btree (id, terms); CREATE UNIQUE INDEX ON public.ngrams_postag (lang_id,algo_id,postag,ngrams_id,lemm_id); -- To save the Node Ngrams Repo CREATE INDEX ON public.node_ngrams USING btree (node_id,node_subtype); CREATE UNIQUE INDEX ON public.node_ngrams USING btree (node_id,node_subtype, ngrams_id); -- To make the links between Nodes in Tree/Forest CREATE UNIQUE INDEX ON public.nodes_nodes USING btree (node1_id, node2_id); CREATE INDEX ON public.nodes_nodes USING btree (node1_id, node2_id, category); -- To make the links between Corpus Node and its contexts CREATE UNIQUE INDEX ON public.nodes_contexts USING btree (node_id, context_id); CREATE INDEX ON public.nodes_contexts USING btree (node_id, context_id, category); ------------------------------------------------------------------------ CREATE UNIQUE INDEX ON public.context_node_ngrams USING btree (context_id, node_id, ngrams_id, ngrams_type); CREATE INDEX ON public.context_node_ngrams USING btree (context_id, node_id); CREATE INDEX ON public.context_node_ngrams USING btree (ngrams_id, node_id); CREATE INDEX ON public.context_node_ngrams USING btree (ngrams_type); CREATE INDEX ON public.context_node_ngrams2 USING btree (context_id); CREATE INDEX ON public.context_node_ngrams2 USING btree (nodengrams_id); CREATE INDEX ON public.context_node_ngrams2 USING btree (context_id, nodengrams_id); CREATE UNIQUE INDEX ON public.node_node_ngrams USING btree (node1_id, node2_id, ngrams_id, ngrams_type); CREATE INDEX ON public.node_node_ngrams USING btree (node1_id, node2_id); CREATE INDEX ON public.node_node_ngrams USING btree (ngrams_id, node2_id); CREATE INDEX ON public.node_node_ngrams USING btree (ngrams_type); CREATE INDEX ON public.node_node_ngrams2 USING btree (node_id); CREATE INDEX ON public.node_node_ngrams2 USING btree (nodengrams_id); CREATE INDEX ON public.node_node_ngrams2 USING btree (node_id, nodengrams_id); -- CREATE INDEX ON public.context_nodengrams_nodengrams USING btree (context_id, node_ngrams1_id, node_ngrams2_id); -- CREATE INDEX ON public.context_nodengrams_nodengrams USING btree (node_ngrams1_id); -- CREATE INDEX ON public.context_nodengrams_nodengrams USING btree (node_ngrams2_id); ------------------------------------------------------------------------ -- Ngrams Full DB Extraction Optim -- TODO remove hard parameter and move elsewhere CREATE OR REPLACE function node_pos(int, int) returns bigint AS 'SELECT count(id) from nodes WHERE id < $1 AND typename = $2 ' LANGUAGE SQL immutable; --drop index node_by_pos; --create index node_by_pos on nodes using btree(node_pos(id,typename)); haskell-gargantext-151-dev-pubmed-api-key/devops/postgres/tools/ 0000775 0000000 0000000 00000000000 14341204033 0025032 5 ustar 00root root 0000000 0000000 haskell-gargantext-151-dev-pubmed-api-key/devops/postgres/tools/removeUnusedDocuments.sql 0000664 0000000 0000000 00000000336 14341204033 0032120 0 ustar 00root root 0000000 0000000 WITH repeated AS ( select nn.context_id AS id, count(*) AS c FROM nodes_contexts nn GROUP BY nn.context_id ) DELETE FROM contexts c USING repeated r WHERE c.id = r.id AND r.c = 1 AND c.typename = 4 ; haskell-gargantext-151-dev-pubmed-api-key/devops/postgres/tools/removeUnusedNgrams.sql 0000664 0000000 0000000 00000000402 14341204033 0031400 0 ustar 00root root 0000000 0000000 WITH listed AS ( select nn.ngrams_id AS id, count(*) AS c FROM node_node_ngrams nn GROUP BY nn.ngrams_id ) --SELECT count(*) from listed l -- WHERE --l.c <= 1 DELETE FROM ngrams n USING listed l WHERE n.id = l.id AND l.c <= 1 ; haskell-gargantext-151-dev-pubmed-api-key/devops/postgres/upgrade/ 0000775 0000000 0000000 00000000000 14341204033 0025321 5 ustar 00root root 0000000 0000000 haskell-gargantext-151-dev-pubmed-api-key/devops/postgres/upgrade/0.0.2.6.sql 0000664 0000000 0000000 00000001125 14341204033 0026642 0 ustar 00root root 0000000 0000000 CREATE TABLE public.ngrams_postag ( id SERIAL, lang_id INTEGER, algo_id INTEGER, postag CHARACTER varying(5), ngrams_id INTEGER NOT NULL, lemm_id INTEGER NOT NULL, score INTEGER DEFAULT 1 ::integer NOT NULL, FOREIGN KEY (ngrams_id) REFERENCES public.ngrams(id) ON DELETE CASCADE, FOREIGN KEY (lemm_id) REFERENCES public.ngrams(id) ON DELETE CASCADE ) ; -- ALTER TABLE public.ngrams_postag OWNER TO gargantua; CREATE UNIQUE INDEX ON public.ngrams_postag (lang_id,algo_id,postag,ngrams_id,lemm_id); haskell-gargantext-151-dev-pubmed-api-key/devops/postgres/upgrade/0.0.4.1.sql 0000664 0000000 0000000 00000000073 14341204033 0026640 0 ustar 00root root 0000000 0000000 ALTER TABLE nodes DROP COLUMN IF EXISTS search_title; haskell-gargantext-151-dev-pubmed-api-key/devops/postgres/upgrade/0.0.4.sql 0000664 0000000 0000000 00000000537 14341204033 0026506 0 ustar 00root root 0000000 0000000 ALTER TABLE nodes DROP COLUMN IF EXISTS search_title, DROP COLUMN IF EXISTS tsvector; ALTER TABLE nodes ADD COLUMN search_title tsvector; UPDATE nodes SET search_title = to_tsvector('english', coalesce("hyperdata"->>'title', '') || ' ' || coalesce("hyperdata"->>'abstract', '')); CREATE INDEX search_title_idx ON nodes USING GIN (search_title); haskell-gargantext-151-dev-pubmed-api-key/devops/postgres/upgrade/0.0.5.5.2.sql 0000664 0000000 0000000 00000000131 14341204033 0027000 0 ustar 00root root 0000000 0000000 CREATE INDEX ON public.node_node_ngrams USING btree (node1_id, node2_id, ngrams_type); haskell-gargantext-151-dev-pubmed-api-key/devops/postgres/upgrade/0.0.5.5.6.sql 0000664 0000000 0000000 00000000071 14341204033 0027007 0 ustar 00root root 0000000 0000000 drop trigger trigger_count_insert on node_node_ngrams ; haskell-gargantext-151-dev-pubmed-api-key/devops/postgres/upgrade/0.0.5.7.7.sql 0000664 0000000 0000000 00000001104 14341204033 0027010 0 ustar 00root root 0000000 0000000 ALTER TABLE nodes_contexts DROP CONSTRAINT nodes_contexts_pkey; ALTER TABLE nodes_contexts ADD COLUMN id SERIAL PRIMARY KEY ; CREATE TABLE public.nodescontexts_nodescontexts ( nodescontexts1 INTEGER NOT NULL REFERENCES public.nodes_contexts(id) ON DELETE CASCADE, nodescontexts2 INTEGER NOT NULL REFERENCES public.nodes_contexts(id) ON DELETE CASCADE, PRIMARY KEY (nodescontexts1, nodescontexts2) ); ALTER TABLE public.nodescontexts_nodescontexts OWNER TO gargantua; CREATE INDEX ON public.nodescontexts_nodescontexts USING btree (nodescontexts1, nodescontexts2) haskell-gargantext-151-dev-pubmed-api-key/devops/postgres/upgrade/0.0.5.7.8.sql 0000664 0000000 0000000 00000000074 14341204033 0027016 0 ustar 00root root 0000000 0000000 ALTER TABLE auth_user ADD COLUMN forgot_password_uuid text; haskell-gargantext-151-dev-pubmed-api-key/devops/postgres/upgrade/0.0.5.8.9.5.sql 0000664 0000000 0000000 00000000076 14341204033 0027165 0 ustar 00root root 0000000 0000000 update contexts c set parent_id = id where parent_id is NULL; haskell-gargantext-151-dev-pubmed-api-key/devops/postgres/upgrade/0.0.5/ 0000775 0000000 0000000 00000000000 14341204033 0025761 5 ustar 00root root 0000000 0000000 haskell-gargantext-151-dev-pubmed-api-key/devops/postgres/upgrade/0.0.5/nodes2contexts.sql 0000664 0000000 0000000 00000002703 14341204033 0031466 0 ustar 00root root 0000000 0000000 -- to delete -- DELETE FROM contexts; -- WITH docs (id,hash_id,typename,user_id,parent_id,name,date,hyperdata, search) WITH docs AS (SELECT * from nodes WHERE nodes.typename IN (4,41)), inserted (id, hash_id) AS ( INSERT INTO contexts (hash_id,typename,user_id,parent_id,name,date,hyperdata, search) SELECT d.hash_id,d.typename,d.user_id,NULL,d.name,d.date,d.hyperdata,search FROM docs AS d RETURNING contexts.id, contexts.hash_id ), indexed (node_id, context_id) AS ( SELECT docs.id, inserted.id from inserted JOIN docs on docs.hash_id = inserted.hash_id ), -- nodes_nodes -> nodes_contexts nodes_contexts_query AS ( INSERT INTO nodes_contexts (node_id, context_id,score, category) SELECT nn.node1_id,i.context_id,nn.score,nn.category FROM nodes_nodes nn JOIN indexed i ON i.node_id = nn.node2_id ), -- nodes_nodes_ngrams -> contexts_nodes_ngrams contexts_nodes_ngrams_query AS ( INSERT INTO context_node_ngrams SELECT i.context_id, nnn.node1_id, nnn.ngrams_id, nnn.ngrams_type, nnn.weight FROM node_node_ngrams nnn JOIN indexed i ON i.node_id = nnn.node2_id ), ---- nodes_nodes_ngrams2 -> contexts_nodes_ngrams2 context_node_ngrams2_query AS ( INSERT INTO context_node_ngrams2 SELECT i.context_id, nnn2.nodengrams_id, nnn2.weight FROM node_node_ngrams2 nnn2 JOIN indexed i ON i.node_id = nnn2.node_id ) -- WITH CASCADE it should update others tables DELETE FROM nodes n USING indexed i WHERE i.node_id = n.id ; UPDATE contexts SET parent_id = id; haskell-gargantext-151-dev-pubmed-api-key/devops/postgres/upgrade/0.0.5/schema.sql 0000664 0000000 0000000 00000007013 14341204033 0027743 0 ustar 00root root 0000000 0000000 -- TODO typename -> type_id CREATE TABLE public.contexts ( id SERIAL, hash_id CHARACTER varying(66) DEFAULT ''::character varying NOT NULL, typename INTEGER NOT NULL, user_id INTEGER NOT NULL, parent_id INTEGER REFERENCES public.contexts(id) ON DELETE CASCADE , name CHARACTER varying(255) DEFAULT ''::character varying NOT NULL, date TIMESTAMP with time zone DEFAULT now() NOT NULL, hyperdata jsonb DEFAULT '{}'::jsonb NOT NULL, search tsvector, PRIMARY KEY (id), FOREIGN KEY (user_id) REFERENCES public.auth_user(id) ON DELETE CASCADE ); ALTER TABLE public.contexts OWNER TO gargantua; -- To attach contexts to a Corpus CREATE TABLE public.nodes_contexts ( node_id INTEGER NOT NULL REFERENCES public.nodes(id) ON DELETE CASCADE, context_id INTEGER NOT NULL REFERENCES public.contexts(id) ON DELETE CASCADE, score REAL , category INTEGER , PRIMARY KEY (node_id, context_id) ); ALTER TABLE public.nodes_contexts OWNER TO gargantua; --------------------------------------------------------------- CREATE TABLE public.context_node_ngrams ( context_id INTEGER NOT NULL REFERENCES public.contexts (id) ON DELETE CASCADE, node_id INTEGER NOT NULL REFERENCES public.nodes (id) ON DELETE CASCADE, ngrams_id INTEGER NOT NULL REFERENCES public.ngrams (id) ON DELETE CASCADE, ngrams_type INTEGER , weight double precision, PRIMARY KEY (context_id, node_id, ngrams_id, ngrams_type) ); ALTER TABLE public.context_node_ngrams OWNER TO gargantua; CREATE TABLE public.context_node_ngrams2 ( context_id INTEGER NOT NULL REFERENCES public.contexts (id) ON DELETE CASCADE, nodengrams_id INTEGER NOT NULL REFERENCES public.node_ngrams (id) ON DELETE CASCADE, weight double precision, PRIMARY KEY (context_id, nodengrams_id) ); ALTER TABLE public.context_node_ngrams2 OWNER TO gargantua; CREATE INDEX ON public.contexts USING gin (hyperdata); CREATE INDEX ON public.contexts USING btree (user_id, typename, parent_id); CREATE INDEX ON public.contexts USING btree (id, typename, date ASC); CREATE INDEX ON public.contexts USING btree (id, typename, date DESC); CREATE INDEX ON public.contexts USING btree (typename, id); CREATE UNIQUE INDEX ON public.contexts USING btree (hash_id); -- To make the links between Corpus Node and its contexts CREATE UNIQUE INDEX ON public.nodes_contexts USING btree (node_id, context_id); CREATE INDEX ON public.nodes_contexts USING btree (node_id, context_id, category); ------------------------------------------------------------------------ CREATE UNIQUE INDEX ON public.context_node_ngrams USING btree (context_id, node_id, ngrams_id, ngrams_type); CREATE INDEX ON public.context_node_ngrams USING btree (context_id, node_id); CREATE INDEX ON public.context_node_ngrams USING btree (ngrams_id, node_id); CREATE INDEX ON public.context_node_ngrams USING btree (ngrams_type); CREATE INDEX ON public.context_node_ngrams2 USING btree (context_id); CREATE INDEX ON public.context_node_ngrams2 USING btree (nodengrams_id); CREATE INDEX ON public.context_node_ngrams2 USING btree (context_id, nodengrams_id); DROP TABLE if EXISTS public.node_nodengrams_nodengrams; DROP TRIGGER if EXISTS trigger_count_delete2 ON nodes_nodes; DROP TRIGGER if EXISTS trigger_count_update_add ON nodes_nodes; DROP TRIGGER if EXISTS trigger_delete_count ON nodes_nodes; DROP TRIGGER if EXISTS trigger_insert_count ON nodes_nodes; haskell-gargantext-151-dev-pubmed-api-key/devops/postgres/upgrade/0.0.6.0.sql 0000664 0000000 0000000 00000003131 14341204033 0026637 0 ustar 00root root 0000000 0000000 create table public.node_stories ( id SERIAL, node_id INTEGER NOT NULL, archive jsonb DEFAULT '{}'::jsonb NOT NULL, PRIMARY KEY (id), FOREIGN KEY (node_id) REFERENCES public.nodes(id) ON DELETE CASCADE ); ALTER TABLE public.node_stories OWNER TO gargantua; CREATE UNIQUE INDEX ON public.node_stories USING btree (node_id); create table public.node_story_archive_history ( id SERIAL, node_id INTEGER NOT NULL, ngrams_type_id INTEGER NOT NULL, ngrams_id INTEGER NOT NULL, patch jsonb DEFAULT '{}'::jsonb NOT NULL, PRIMARY KEY (id), FOREIGN KEY (node_id) REFERENCES public.nodes(id) ON DELETE CASCADE, FOREIGN KEY (ngrams_id) REFERENCES public.ngrams(id) ON DELETE CASCADE ); ALTER TABLE public.node_story_archive_history OWNER TO gargantua; -- INSERT INTO node_story_archive_history (node_id, ngrams_type_id, patch) SELECT t.node_id, t.ngrams_type_id, t.patch FROM -- ( -- WITH q AS (SELECT node_id, history.*, row_number() over (ORDER BY node_id) AS sid -- FROM node_stories, -- jsonb_to_recordset(archive->'history') AS history("Authors" jsonb, "Institutes" jsonb, "NgramsTerms" jsonb, "Sources" jsonb)) -- (SELECT node_id, sid, 1 AS ngrams_type_id, "Authors" AS patch FROM q WHERE "Authors" IS NOT NULL) -- UNION (SELECT node_id, sid, 2 AS ngrams_type_id, "Institutes" AS patch FROM q WHERE "Institutes" IS NOT NULL) -- UNION (SELECT node_id, sid, 4 AS ngrams_type_id, "NgramsTerms" AS patch FROM q WHERE "NgramsTerms" IS NOT NULL) -- UNION (SELECT node_id, sid, 3 AS ngrams_type_id, "Sources" AS patch FROM q WHERE "Sources" IS NOT NULL) -- ORDER BY node_id, ngrams_type_id, sid -- ) AS t; haskell-gargantext-151-dev-pubmed-api-key/devops/postgres/upgrade/0.0.6.1.sql 0000664 0000000 0000000 00000005213 14341204033 0026643 0 ustar 00root root 0000000 0000000 -- Start a new transaction. In case data migration goes wrong, we are -- back to our original table. BEGIN; -- we will migrate data here -- rename old table and create a new one ALTER TABLE public.node_stories RENAME TO node_stories_old; CREATE TABLE public.node_stories ( id SERIAL, node_id INTEGER NOT NULL, version INTEGER NOT NULL, ngrams_type_id INTEGER NOT NULL, ngrams_id INTEGER NOT NULL, --children TEXT[], ngrams_repo_element jsonb DEFAULT '{}'::jsonb NOT NULL, PRIMARY KEY (id), FOREIGN KEY (node_id) REFERENCES public.nodes(id) ON DELETE CASCADE, FOREIGN KEY (ngrams_id) REFERENCES public.ngrams(id) ON DELETE CASCADE ); ALTER TABLE public.node_stories OWNER TO gargantua; CREATE UNIQUE INDEX ON public.node_stories USING btree (node_id, ngrams_type_id, ngrams_id); -- Authors (ngrams_type_id = 1), see G.D.S.Ngrams.hs -> ngramsTypeId INSERT INTO public.node_stories (node_id, version, ngrams_type_id, ngrams_id, ngrams_repo_element) SELECT node_id, (archive->'version')::int, 1, ngrams.id, j.value FROM node_stories_old CROSS JOIN jsonb_each(archive->'state'->'Authors') AS j JOIN ngrams ON terms = j.key; -- we will leave children for later, small steps -- INSERT INTO public.node_stories -- (node_id, version, ngrams_type_id, ngrams_id, children, ngrams_repo_element) -- SELECT node_id, (archive->'version')::int, 1, ngrams.id, c.children, (j.value - 'children') -- FROM node_stories_old -- CROSS JOIN jsonb_each(archive->'state'->'Authors') AS j -- CROSS JOIN LATERAL (SELECT array_agg(d.elem) AS children FROM jsonb_array_elements_text(j.value->'children') AS d(elem)) AS c -- JOIN ngrams ON terms = j.key; -- Institutes (ngrams_type_id = 2) INSERT INTO public.node_stories (node_id, version, ngrams_type_id, ngrams_id, ngrams_repo_element) SELECT node_id, (archive->'version')::int, 2, ngrams.id, j.value FROM node_stories_old CROSS JOIN jsonb_each(archive->'state'->'Institutes') AS j JOIN ngrams ON terms = j.key; -- Sources (ngrams_type_id = 3) INSERT INTO public.node_stories (node_id, version, ngrams_type_id, ngrams_id, ngrams_repo_element) SELECT node_id, (archive->'version')::int, 3, ngrams.id, j.value FROM node_stories_old CROSS JOIN jsonb_each(archive->'state'->'Sources') AS j JOIN ngrams ON terms = j.key; -- NgramsTerms (ngrams_type_id = 4) INSERT INTO public.node_stories (node_id, version, ngrams_type_id, ngrams_id, ngrams_repo_element) SELECT node_id, (archive->'version')::int, 4, ngrams.id, j.value FROM node_stories_old CROSS JOIN jsonb_each(archive->'state'->'NgramsTerms') AS j JOIN ngrams ON terms = j.key; -- finally, write out the stuff COMMIT; haskell-gargantext-151-dev-pubmed-api-key/devops/postgres/upgrade/0.0.6.2.sql 0000664 0000000 0000000 00000000130 14341204033 0026635 0 ustar 00root root 0000000 0000000 ALTER TABLE node_story_archive_history ADD COLUMN version INTEGER NOT NULL DEFAULT 0; haskell-gargantext-151-dev-pubmed-api-key/devops/postgres/upgrade/0.0.6.7.2.sql 0000664 0000000 0000000 00000000164 14341204033 0027011 0 ustar 00root root 0000000 0000000 -- Adding index to improve ngrams_table query create index node_node_ngrams_weight_idx on node_node_ngrams(weight); haskell-gargantext-151-dev-pubmed-api-key/devops/postgres/upgrade/0.0.6.7.3_undo.sql 0000664 0000000 0000000 00000000072 14341204033 0030035 0 ustar 00root root 0000000 0000000 ALTER TABLE context_node_ngrams DROP COLUMN doc_count ; haskell-gargantext-151-dev-pubmed-api-key/devops/postgres/upgrade/0.0.6.8.3.sql 0000664 0000000 0000000 00000000112 14341204033 0027004 0 ustar 00root root 0000000 0000000 ALTER TABLE context_node_ngrams ADD COLUMN doc_count INTEGER DEFAULT 0; haskell-gargantext-151-dev-pubmed-api-key/devops/tmux.sh 0000775 0000000 0000000 00000000356 14341204033 0023364 0 ustar 00root root 0000000 0000000 #!/bin/bash tmux new -d -s gargantext './server' \; \ split-window -h -d 'cd ./purescript-gargantext ; ./server' \; \ select-pane -t 1 \; \ split-window -d 'cd deps/CoreNLP ; ./startServer.sh' \; \ haskell-gargantext-151-dev-pubmed-api-key/devops/ubuntu/ 0000775 0000000 0000000 00000000000 14341204033 0023346 5 ustar 00root root 0000000 0000000 haskell-gargantext-151-dev-pubmed-api-key/devops/ubuntu/install 0000775 0000000 0000000 00000024304 14341204033 0024745 0 ustar 00root root 0000000 0000000 #!/bin/bash # ____ _ _ # / ___| __ _ _ __ __ _ __ _ _ __ | |_ _____ _| |_ # | | _ / _` | '__/ _` |/ _` | '_ \| __/ _ \ \/ / __| # | |_| | (_| | | | (_| | (_| | | | | || __/> <| |_ # \____|\__,_|_| \__, |\__,_|_| |_|\__\___/_/\_\\__| # |___/ # This receipe is for specific use (Open Stack && Debien) # Step by step installation process (advanced user mainly) # For others: a docker image is coming ######################################################################## # To be sure to have updated packages sudo apt update sudo apt upgrade # Tmux to avoid disconnections during the installation process # Htop for visual monitoring sudo apt install tmux htop ######################################################################## #sudo sed -i "s/stretch/buster/g" /etc/apt/sources.list #sudo apt update #sudo apt dist-upgrade # sudo reboot #recommended ######################################################################## sudo apt update sudo apt install liblzma-dev libpcre3-dev libblas-dev liblapack-dev pkg-config libgsl-dev libbz2-dev postgresql postgresql-server-dev-11 nginx libigraph0-dev libgfortran-8-dev sudo apt install git #git config --global user.email "contact@gargantext.org" #git config --global user.name "Gargantua" ######################################################################## echo "Which user?" read USER USER="gargantua" sudo adduser --disabled-password --gecos "" $USER ######################################################################## #cd /home #sudo mv -if /home/$USER /srv/ #sudo ln -s /srv/$USER curl -sSL https://get.haskellstack.org/ | sh sudo apt install curl sudo su $USER stack update stack upgrade git clone https://gitlab.iscpif.fr/gargantext/haskell-gargantext.git cd haskell-gargantext ########## git clone https://gitlab.iscpif.fr/gargantext/purescript-gargantext cd purescript-gargantext # as sudoer curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list sudo apt update sudo apt install yarn # as user yarn install && yarn install-ps && yarn build # temporary bug (help welcome) cp src/index.html dist/index.html ######################################################################### # stack install should be enough but all process is the following steps stack setup && stack build && stack install ######################################################################### # build deps #!/bin/bash mkdir deps cd deps git clone https://gitlab.iscpif.fr/gargantext/clustering-louvain-cplusplus.git cd clustering-louvain-cplusplus ./install cd .. sudo apt install default-jdk wget https://dl.gargantext.org/coreNLP.tar.bz2 tar xvjf coreNLP.tar.bz2 # CoreNLP needs to be started # ./startServer.sh # Specific to our servers #### Configure timezone and locale ################################### # todo sync dates #echo "########### LOCALES & TZ #################" #echo "Europe/Paris" > /etc/timezone #dpkg-reconfigure --frontend=noninteractive tzdata ##ENV TZ "Europe/Paris" # #sed -i -e 's/# en_GB.UTF-8 UTF-8/en_GB.UTF-8 UTF-8/' /etc/locale.gen && \ #sed -i -e 's/# fr_FR.UTF-8 UTF-8/fr_FR.UTF-8 UTF-8/' /etc/locale.gen && \ #locale-gen && \ #update-locale LANG=fr_FR.UTF-8 && \ #update-locale LANGUAGE=fr_FR.UTF-8 && \ #update-locale LC_ALL=fr_FR.UTF-8 ################################################################# # Database configuration # CREATE USER gargantua WITH PASSWORD $(grep DB_PASS gargantext.ini) # GRANT ALL PRIVILEGES ON DATABASE gargandbV4 to gargantua ####################################################################### ## POSTGRESQL DATA (as ROOT) ####################################################################### PGVersion = 11 GARGDATA = "/srv/gargantua/gargandata" mkdir $GARGDATA sudo apt install rsync sudo sed -iP "s%^data_directory.*%data_directory = \'$GARGADATA\'%" /etc/postgresql/$PGVersion/main/postgresql.conf sudo rsync -av /var/lib/postgresql/$PGVersion/main $GARGDATA # configure the database with script in devops/postgres # edit gargantext.ini ..........,,;;;;,,,oKXNNNNNNNNNXXXXXKK0OOxdl::ccc:::::;;;;,,,'.. .........';;;;;;,,,,'''''''''dXNMMMMMMMMMMMMMMMMMMMWWWNNNWNNNNNNXXXXKKK0Oxddlcc::::::::;;;,,,'.... .........',,,;;;;,,,'''''''''''''''''''oXNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWNNNNNNNXXXXKKK0Oxddlcccc::;; .::cccllc:;''''''''''''''''''''.''''''''oXNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNNNXXXXKK0O ...';;;;;;;;;,'''''''''''''''''''''''''''''oXNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWNNNNNNX0 ;;,,'''''''''''''''''''''''''''''''''''''''oXNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWX '''''''''''''''''''''''''''''''''',;:::cclldkOOOOO00000KKKXXNWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNX '''''''''''''''''''''''''''';:loodkkOO0KKXXkc:;;;;:::::cccloodxkkO0NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNX ''''''''''''''''''','''''',,:okKKNMMMMMMMMMk;,'''''''',''''''',;;cd0MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNX ''''''''''''''''''''''',:lxxk0KNNWMWWWNXKKKkoooolllcc:;,''''''',,:lOMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWX ''''''''''''''''''',:llx0XWWMMWWWX0kddolcccx0KXXXXKKK0Okxxo:;'''';:OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWX '''''''''''''''''':oOXXNMMMMNXOddl:,'''''''oXNMMMMMMMMMMWWX0l'''';:kMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWX '''''''''''''''':lONWMMMMNXXkl:,,''''''''''dXNMMMMMMMMMMMMWWx,,'';:kMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWX ,'''''''''''',::xXNMMMMWWOoo:''''''''''''''dXNMMMMWNNNNWWWMMk:;'';cOMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWX ,'''''''''''':oo0MMMMMMWXd,,,,''''''''''',,dXNMMMMNXXXXNWWMMOc;'';cOMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWX '''''''''''''lOOXMMMMMMXkl'''''''''''''''''dXNMMWNKOOOO0KKNMKxoccod0MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWX ,'''''''''',:kWWWMMMWWWk:,'''''''''''''''''dXNMMXOkxxxxxxx0NNNXKKKXNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWX ,''''''''''cxKMMMMMMNKKo'''''''''''''''''''dXNMMXOkxxxxxxx0NWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWX '''''''''''oKNMMMMMMKddc'''''''''''''''''''dXWMMNX0OOOkO00XWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWX ,''''''''''dNWMMMMMM0oo:'''''''''''''''''''oXNMMWWX000OKNNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWX ,'''''''',,xWWMMMMMMOcc;'''''''''''''''''''oXNMMMWNNNXXNWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWX ,''''''',;;kMMMMMMMMk;;,'''''''''''''''''''dXWMMMMMMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWX ,''''''',::kMMMMMMMMk;;,'''''''''''''''''''dXNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWX ,''''''';::kMMMMMMMMk;;,'''''''''''''''''''dXNMMNKOkkkkkkkkkkkkkkkkkkkkkOOOXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWX ,''''''',;;kMMMMMMMMO::;'''''''''''''''''''dXNMMKxo::::;,,,,,,,,,,,;;;;:cll0MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWX ,''''''',,,kMMMMMMMMOcc;'''''''''''''''''''oXNMMXkocc::;,,,''''''''',,;:loo0MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWX ,'''''''',,xWWMMMMMM0ll:'''''''''''''''''''oXNMMNX0OOOkkxxc'''''',,cxxkkO00XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWX ,''''''''''oKNMMMMMMKkkc'''''''''''''''''''dXWMMMMMMMMMWWWx,,'''',;kMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWX ,''''''''''cdKMMMMMMNXXo'''''''''''''''''''dXWMMMMMMMMMMMMk,,'''',:kMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWX ,'''''''''',;xWWWMMMMWWk:;'''''''''''''''''dXNMMMMMMMMMMMMk,,'''',:kMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNX ,''''''''''''lkkKMMMMMMX0o'''''''''''''''''dXNMMMMMMMMMMMMx,,'''',:kMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWX ,'''''''''''':llOMMMMMMWWx,,,''''''''''''''dXNWWMMMMMMMMMMk,,'''',:kMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWX ,'''''''''''',::xXNMMMMMW0oo:''''''''''''''dXNMMMMMMMMMMMMk,,'''',;kMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWX ;,,''''''''''''':lONWMMMMWNNOl:''''''''''''oXNMMMMMMMMMMMMx,,'''',:kMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNX .';,,,,''''''''''':dONNWMMMMWXOddl:,'''''''dXNMMMMMMMMMMMMk,,'''',:kMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNX .',,,;,''''',,''',:ookKNMMMMWWWXOxddlc:;;xXNWWWWWWWNXXKKd,,'''',:kMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNX .'',:;''''''''''''''cxKMMMMMMMMMWNN0xollxKXWWWWNXXK0Okkl,''''';:kWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNX ....';;,''''''''''';cokk0XWMMMMWWWXK0OOkxxxxdddddoolcc;'''',,:lOMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNK0 ...,;,,,,'''',,'',,,:odkkO0KXXNNWWWk:;'''',,,;;:ccclodxkkO0XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNNNX0kko:;, .';;;;,'''''''''''',,;:clloodddxxxxxxxkkkOO000KXNWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNNXX0kocc:;'.. ....';,''''''''''''''''''''''dXNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNNXX0koc:;;'. ..,;;;,''''''''''''''''''dXNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWNXKOOd::;;'. .cc:,''''''''''''''''''dXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNXXK0dcc. ...,;;,,,''''''''''''''dXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNNNNKOdcc::,... ..'',;,''''''''''''oXNMMMMMMMMMMMMMMMMMMMMMMMMMMWNNNXKOOd::::,.. ..';;,'''''''''oKNMMMMMMMMMMMMMMMMMMMWWNXXKOd::::,... ..';;,,,''''oXNMMMMMMMMMMMMWWNXKOOdc:;;,.. TODO, too big, what diet for this ascii art ? .::;;,''''oXNWWMMMMMMMMMMWNK0d::. ..',,,,,''oKNMMMMWWWNX0OOdc:;,.. ....';;o0KXXKOdcc:;,... .ccdOO00xl. haskell-gargantext-151-dev-pubmed-api-key/devops/upgrade/ 0000775 0000000 0000000 00000000000 14341204033 0023453 5 ustar 00root root 0000000 0000000 haskell-gargantext-151-dev-pubmed-api-key/devops/upgrade/0.0.6.1.sh 0000775 0000000 0000000 00000003261 14341204033 0024614 0 ustar 00root root 0000000 0000000 #!/bin/bash # To be executed at the root of the project # To upgrade from 0.0.5.9 to 0.0.6.2 sudo apt update sudo apt -yy upgrade sudo sed -i "s/buster/bullseye/g" /etc/apt/sources.list sudo apt update sudo apt -yy dist-upgrade ############################################################## # BACKUP sudo -i -u postgres bash << EOF pg_dumpall > /tmp/backup.dump EOF ############################################################## sudo sed -i "s/bullseye/bookworm/g" /etc/apt/sources.list sudo apt update sudo apt -yy dist-upgrade sudo apt install -y postgresql-14 libpq-dev sudo apt remove --purge postgresql-11 postgresql-13 sudo apt autoremove ############################################################## # BACKUP sudo -i -u postgres bash << EOF psql < /tmp/backup.dump EOF ############################################################## # DB CONFIG sed -i "s/DB_PORT = 5432/DB_PORT = 5434/" gargantext.ini # be sure the DB password is the right one DBPASS=$(grep "DB_PASS" gargantext.ini | sed "s/^.*= //") echo $DBPASS sudo -i -u postgres psql << EOF ALTER ROLE gargantua password '${DBPASS}'; EOF ############################################################## # Make sure compilation is ok git pull origin dev ./bin/install ############################################################## # Database upgrade echo "0.0.6.0 SQL upgrade" ./bin/psql gargantext.ini < devops/postgres/upgrade/0.0.6.0.sql echo "0.0.6.1 SQL upgrade" ./bin/psql gargantext.ini < devops/postgres/upgrade/0.0.6.1.sql echo "0.0.6.2 SQL upgrade" ./bin/psql gargantext.ini < devops/postgres/upgrade/0.0.6.2.sql echo "Executing script haskell upgrade" ~/.local/bin/gargantext-upgrade gargantext.ini echo "Upgrade is over" haskell-gargantext-151-dev-pubmed-api-key/docs/ 0000775 0000000 0000000 00000000000 14341204033 0021454 5 ustar 00root root 0000000 0000000 haskell-gargantext-151-dev-pubmed-api-key/docs/search-api.org 0000664 0000000 0000000 00000024454 14341204033 0024212 0 ustar 00root root 0000000 0000000 #+TITLE: Searx API request This is related to issue https://gitlab.iscpif.fr/gargantext/haskell-gargantext/issues/70 #+begin_src restclient :domain := "https://searx.frame.gargantext.org" POST :domain/ Content-Type: application/x-www-form-urlencoded category_general=1&q=banach%20space&pageno=1&time_range=None&language=en-US&format=json #+end_src #+RESULTS: #+BEGIN_SRC js { "query": "banach space", "number_of_results": 93700.0, "results": [ { "url": "https://en.wikipedia.org/wiki/Banach_space", "title": "Banach space", "engine": "wikipedia", "parsed_url": [ "https", "en.wikipedia.org", "/wiki/Banach_space", "", "", "" ], "engines": [ "wikipedia" ], "positions": [ 1 ], "score": 1.0, "category": "general", "pretty_url": "https://en.wikipedia.org/wiki/Banach_space" }, { "url": "http://mathworld.wolfram.com/BanachSpace.html", "title": "Banach Space -- from Wolfram MathWorld", "content": "10/05/2021 · A Banach space is a complete vector space with a norm . Two norms and are called equivalent if they give the same topology , which is equivalent to the existence of constants and such that. (1) and. (2) hold for all . In the finite-dimensional case, all norms are equivalent.", "engine": "bing", "parsed_url": [ "http", "mathworld.wolfram.com", "/BanachSpace.html", "", "", "" ], "engines": [ "bing" ], "positions": [ 1 ], "score": 1.0, "category": "general", "pretty_url": "http://mathworld.wolfram.com/BanachSpace.html" }, { "url": "https://en.wikipedia.org/wiki/List_of_Banach_spaces", "title": "List of Banach spaces - Wikipedia", "content": "25 lignes · Classical Banach spaces. According to Diestel (1984, Chapter VII), the classical Banach …", "engine": "bing", "parsed_url": [ "https", "en.wikipedia.org", "/wiki/List_of_Banach_spaces", "", "", "" ], "engines": [ "bing" ], "positions": [ 2 ], "score": 0.5, "category": "general", "pretty_url": "https://en.wikipedia.org/wiki/List_of_Banach_spaces" }, { "url": "https://encyclopediaofmath.org/wiki/Banach_space", "title": "Banach space - Encyclopedia of Mathematics", "content": "According to Diestel (1984, Chapter VII), the classical Banach spaces are those defined by Dunford & Schwartz (1958), which is the source for the following table. Here K denotes the field of real numbers or complex numbers and I is a closed and bounded interval [a,b]. The number p is a real number with 1 < p < ∞, and q is its Hölder conjugate (also with 1 < q < ∞), so that the next equation holds: $${\\displaystyle {\\frac {1}{q}}+{\\frac {1}{p}}=1,}$$According to Diestel (1984, Chapter VII), the classical Banach spaces are those defined by Dunford & Schwartz (1958), which is the source for the following table. Here K denotes the field of real numbers or complex numbers and I is a closed and bounded interval [a,b]. The number p is a real number with 1 < p < ∞, and q is its Hölder conjugate (also with 1 < q < ∞), so that the next equation holds: $${\\displaystyle {\\frac {1}{q}}+{\\frac {1}{p}}=1,}$$and thus $${\\displaystyle q={\\frac {p}{p-1}}.}$$The symbol Σ denotes a σ-algebra of sets, and Ξ denotes just an algebra of sets (for spaces only requiring finite additivity, such as the ba space). The symbol μ denotes a positive measure: that is, a real-valued positive set function defined on a σ-algebra which is countably additive.", "engine": "bing", "parsed_url": [ "https", "encyclopediaofmath.org", "/wiki/Banach_space", "", "", "" ], "engines": [ "bing" ], "positions": [ 3 ], "score": 0.3333333333333333, "category": "general", "pretty_url": "https://encyclopediaofmath.org/wiki/Banach_space" }, { "url": "https://www.techopedia.com/definition/17852/banach-space", "title": "What is Banach Space? - Definition from Techopedia", "content": "22/03/2017 · In functional analysis, a Banach space is a normed vector space that allows vector length to be computed. When the vector space is normed, that means that each vector other than the zero vector has a length that is greater than zero. The length and distance between two vectors can thus be computed. The vector space is complete, meaning a Cauchy sequence of vectors in a Banach space …", "engine": "bing", "parsed_url": [ "https", "www.techopedia.com", "/definition/17852/banach-space", "", "", "" ], "engines": [ "bing" ], "positions": [ 4 ], "score": 0.25, "category": "general", "pretty_url": "https://www.techopedia.com/definition/17852/banach-space" }, { "url": "https://www.sciencedirect.com/topics/mathematics/banach-spaces", "title": "Banach Spaces - an overview | ScienceDirect Topics", "content": "A Banach spaceis a complete normed linear space. Example 4.3 The spaces RN,CNare vector spaces which are also complete metric spaces with any of the norms ∥⋅∥p, hence they are Banach spaces. Similarly C(E), Lp(E) are Banach spaces with norms indicated above. □", "engine": "bing", "parsed_url": [ "https", "www.sciencedirect.com", "/topics/mathematics/banach-spaces", "", "", "" ], "engines": [ "bing" ], "positions": [ 5 ], "score": 0.2, "category": "general", "pretty_url": "https://www.sciencedirect.com/topics/mathematics/banach-spaces" }, { "url": "https://people.math.gatech.edu/~heil/handouts/banach.pdf", "title": "Banach Spaces - gatech.edu", "content": "07/09/2006 · have already said that “a Banach space is complete” if every Cauchy sequence in the space converges. The term “complete sequences” defined in this section is a completely separate definition that applies to sets of vectors in a Hilbert or Banach space (although we …", "engine": "bing", "parsed_url": [ "https", "people.math.gatech.edu", "/~heil/handouts/banach.pdf", "", "", "" ], "engines": [ "bing" ], "positions": [ 6 ], "score": 0.16666666666666666, "category": "general", "pretty_url": "https://people.math.gatech.edu/~heil/handouts/banach.pdf" }, { "url": "https://ncatlab.org/nlab/show/Banach+space", "title": "Banach space in nLab", "content": "", "engine": "bing", "parsed_url": [ "https", "ncatlab.org", "/nlab/show/Banach+space", "", "", "" ], "engines": [ "bing" ], "positions": [ 7 ], "score": 0.14285714285714285, "category": "general", "pretty_url": "https://ncatlab.org/nlab/show/Banach+space" }, { "url": "https://www.numerade.com/books/chapter/structure-of-banach-spaces/", "title": "Structure of Banach Spaces | Functional Analysis", "content": "Structure of Banach Spaces, Functional Analysis and InfiniteDimensional Geometry - Marián Fabian, Petr Habala, Petr Hájek | All the textbook answers and step-b…", "engine": "bing", "parsed_url": [ "https", "www.numerade.com", "/books/chapter/structure-of-banach-spaces/", "", "", "" ], "engines": [ "bing" ], "positions": [ 8 ], "score": 0.125, "category": "general", "pretty_url": "https://www.numerade.com/books/chapter/structure-of-banach-spaces/" }, { "url": "http://www.ma.huji.ac.il/~razk/iWeb/My_Site/Teaching_files/Banach.pdf", "title": "2. Banach spaces - ma.huji.ac.il", "content": "Definition 2.1A Banach space is a complete, normed, vector space. Comment 2.1Completeness is a metric space concept. In a normed space the metric is d(x,y)=x−y. Note that this metric satisfies the following “special\" properties: ¿ The underlying space is a vector space.", "engine": "bing", "parsed_url": [ "http", "www.ma.huji.ac.il", "/~razk/iWeb/My_Site/Teaching_files/Banach.pdf", "", "", "" ], "engines": [ "bing" ], "positions": [ 9 ], "score": 0.1111111111111111, "category": "general", "pretty_url": "http://www.ma.huji.ac.il/~razk/iWeb/My_Site/Teaching_files/Banach.pdf" } ], "answers": [], "corrections": [], "infoboxes": [ { "infobox": "Banach space", "id": "https://en.wikipedia.org/wiki/Banach_space", "content": "In mathematics, more specifically in functional analysis, a Banach space (pronounced [ˈbanax]) is a complete normed vector space. Thus, a Banach space is a vector space with a metric that allows the computation of vector length and distance between vectors and is complete in the sense that a Cauchy sequence of vectors always converges to a well defined limit that is within the space.", "img_src": null, "urls": [ { "title": "Wikipedia", "url": "https://en.wikipedia.org/wiki/Banach_space" }, { "title": "Wikidata", "url": "https://www.wikidata.org/wiki/Q194397?uselang=en" } ], "engine": "wikidata", "attributes": [ { "label": "Inception", "value": "1920" } ] } ], "suggestions": [], "unresponsive_engines": [] } // POST https://searx.frame.gargantext.org/ // HTTP/1.1 200 OK // Server: nginx/1.14.2 // Date: Tue, 27 Jul 2021 17:20:48 GMT // Content-Type: application/json // Content-Length: 8020 // Connection: keep-alive // Server-Timing: total;dur=1826.455, total_0_go;dur=248.527, total_1_wp;dur=352.718, total_2_bi;dur=628.671, total_3_wd;dur=1822.518, load_0_go;dur=234.185, load_1_wp;dur=348.323, load_2_bi;dur=595.242, load_3_wd;dur=1778.783 // Request duration: 2.159931s #+END_SRC haskell-gargantext-151-dev-pubmed-api-key/ekg-assets/ 0000775 0000000 0000000 00000000000 14341204033 0022572 5 ustar 00root root 0000000 0000000 haskell-gargantext-151-dev-pubmed-api-key/ekg-assets/bootstrap-1.4.0.css 0000775 0000000 0000000 00000156261 14341204033 0025775 0 ustar 00root root 0000000 0000000 /*! * Bootstrap v1.4.0 * * Copyright 2011 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. * Date: Thu Nov 3 17:06:17 PDT 2011 */ /* Reset.less * Props to Eric Meyer (meyerweb.com) for his CSS reset file. We're using an adapted version here that cuts out some of the reset HTML elements we will never need here (i.e., dfn, samp, etc). * ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */ html, body { margin: 0; padding: 0; } h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, cite, code, del, dfn, em, img, q, s, samp, small, strike, strong, sub, sup, tt, var, dd, dl, dt, li, ol, ul, fieldset, form, label, legend, button, table, caption, tbody, tfoot, thead, tr, th, td { margin: 0; padding: 0; border: 0; font-weight: normal; font-style: normal; font-size: 100%; line-height: 1; font-family: inherit; } table { border-collapse: collapse; border-spacing: 0; } ol, ul { list-style: none; } q:before, q:after, blockquote:before, blockquote:after { content: ""; } html { overflow-y: scroll; font-size: 100%; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; } a:focus { outline: thin dotted; } a:hover, a:active { outline: 0; } 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; } sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sup { top: -0.5em; } sub { bottom: -0.25em; } img { border: 0; -ms-interpolation-mode: bicubic; } button, input, select, textarea { font-size: 100%; margin: 0; vertical-align: baseline; *vertical-align: middle; } button, input { line-height: normal; *overflow: visible; } button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; } button, input[type="button"], input[type="reset"], input[type="submit"] { cursor: pointer; -webkit-appearance: button; } input[type="search"] { -webkit-appearance: textfield; -webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box; } input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } textarea { overflow: auto; vertical-align: top; } /* Variables.less * Variables to customize the look and feel of Bootstrap * ----------------------------------------------------- */ /* Mixins.less * Snippets of reusable CSS to develop faster and keep code readable * ----------------------------------------------------------------- */ /* * Scaffolding * Basic and global styles for generating a grid system, structural layout, and page templates * ------------------------------------------------------------------------------------------- */ body { background-color: #ffffff; margin: 0; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 13px; font-weight: normal; line-height: 18px; color: #404040; } .container { width: 940px; margin-left: auto; margin-right: auto; zoom: 1; } .container:before, .container:after { display: table; content: ""; zoom: 1; } .container:after { clear: both; } .container-fluid { position: relative; min-width: 940px; padding-left: 20px; padding-right: 20px; zoom: 1; } .container-fluid:before, .container-fluid:after { display: table; content: ""; zoom: 1; } .container-fluid:after { clear: both; } .container-fluid > .sidebar { position: absolute; top: 0; left: 20px; width: 220px; } .container-fluid > .content { margin-left: 240px; } a { color: #0069d6; text-decoration: none; line-height: inherit; font-weight: inherit; } a:hover { color: #00438a; text-decoration: underline; } .pull-right { float: right; } .pull-left { float: left; } .hide { display: none; } .show { display: block; } .row { zoom: 1; margin-left: -20px; } .row:before, .row:after { display: table; content: ""; zoom: 1; } .row:after { clear: both; } .row > [class*="span"] { display: inline; float: left; margin-left: 20px; } .span1 { width: 40px; } .span2 { width: 100px; } .span3 { width: 160px; } .span4 { width: 220px; } .span5 { width: 280px; } .span6 { width: 340px; } .span7 { width: 400px; } .span8 { width: 460px; } .span9 { width: 520px; } .span10 { width: 580px; } .span11 { width: 640px; } .span12 { width: 700px; } .span13 { width: 760px; } .span14 { width: 820px; } .span15 { width: 880px; } .span16 { width: 940px; } .span17 { width: 1000px; } .span18 { width: 1060px; } .span19 { width: 1120px; } .span20 { width: 1180px; } .span21 { width: 1240px; } .span22 { width: 1300px; } .span23 { width: 1360px; } .span24 { width: 1420px; } .row > .offset1 { margin-left: 80px; } .row > .offset2 { margin-left: 140px; } .row > .offset3 { margin-left: 200px; } .row > .offset4 { margin-left: 260px; } .row > .offset5 { margin-left: 320px; } .row > .offset6 { margin-left: 380px; } .row > .offset7 { margin-left: 440px; } .row > .offset8 { margin-left: 500px; } .row > .offset9 { margin-left: 560px; } .row > .offset10 { margin-left: 620px; } .row > .offset11 { margin-left: 680px; } .row > .offset12 { margin-left: 740px; } .span-one-third { width: 300px; } .span-two-thirds { width: 620px; } .offset-one-third { margin-left: 340px; } .offset-two-thirds { margin-left: 660px; } /* Typography.less * Headings, body text, lists, code, and more for a versatile and durable typography system * ---------------------------------------------------------------------------------------- */ p { font-size: 13px; font-weight: normal; line-height: 18px; margin-bottom: 9px; } p small { font-size: 11px; color: #bfbfbf; } h1, h2, h3, h4, h5, h6 { font-weight: bold; color: #404040; } h1 small, h2 small, h3 small, h4 small, h5 small, h6 small { color: #bfbfbf; } h1 { margin-bottom: 18px; font-size: 30px; line-height: 36px; } h1 small { font-size: 18px; } h2 { font-size: 24px; line-height: 36px; } h2 small { font-size: 14px; } h3, h4, h5, h6 { line-height: 36px; } h3 { font-size: 18px; } h3 small { font-size: 14px; } h4 { font-size: 16px; } h4 small { font-size: 12px; } h5 { font-size: 14px; } h6 { font-size: 13px; color: #bfbfbf; text-transform: uppercase; } ul, ol { margin: 0 0 18px 25px; } ul ul, ul ol, ol ol, ol ul { margin-bottom: 0; } ul { list-style: disc; } ol { list-style: decimal; } li { line-height: 18px; color: #808080; } ul.unstyled { list-style: none; margin-left: 0; } dl { margin-bottom: 18px; } dl dt, dl dd { line-height: 18px; } dl dt { font-weight: bold; } dl dd { margin-left: 9px; } hr { margin: 20px 0 19px; border: 0; border-bottom: 1px solid #eee; } strong { font-style: inherit; font-weight: bold; } em { font-style: italic; font-weight: inherit; line-height: inherit; } .muted { color: #bfbfbf; } blockquote { margin-bottom: 18px; border-left: 5px solid #eee; padding-left: 15px; } blockquote p { font-size: 14px; font-weight: 300; line-height: 18px; margin-bottom: 0; } blockquote small { display: block; font-size: 12px; font-weight: 300; line-height: 18px; color: #bfbfbf; } blockquote small:before { content: '\2014 \00A0'; } address { display: block; line-height: 18px; margin-bottom: 18px; } code, pre { padding: 0 3px 2px; font-family: Monaco, Andale Mono, Courier New, monospace; font-size: 12px; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; } code { background-color: #fee9cc; color: rgba(0, 0, 0, 0.75); padding: 1px 3px; } pre { background-color: #f5f5f5; display: block; padding: 8.5px; margin: 0 0 18px; line-height: 18px; font-size: 12px; border: 1px solid #ccc; border: 1px solid rgba(0, 0, 0, 0.15); -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; white-space: pre; white-space: pre-wrap; word-wrap: break-word; } /* Forms.less * Base styles for various input types, form layouts, and states * ------------------------------------------------------------- */ form { margin-bottom: 18px; } fieldset { margin-bottom: 18px; padding-top: 18px; } fieldset legend { display: block; padding-left: 150px; font-size: 19.5px; line-height: 1; color: #404040; *padding: 0 0 5px 145px; /* IE6-7 */ *line-height: 1.5; /* IE6-7 */ } form .clearfix { margin-bottom: 18px; zoom: 1; } form .clearfix:before, form .clearfix:after { display: table; content: ""; zoom: 1; } form .clearfix:after { clear: both; } label, input, select, textarea { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 13px; font-weight: normal; line-height: normal; } label { padding-top: 6px; font-size: 13px; line-height: 18px; float: left; width: 130px; text-align: right; color: #404040; } form .input { margin-left: 150px; } input[type=checkbox], input[type=radio] { cursor: pointer; } input, textarea, select, .uneditable-input { display: inline-block; width: 210px; height: 18px; padding: 4px; font-size: 13px; line-height: 18px; color: #808080; border: 1px solid #ccc; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; } select { padding: initial; } input[type=checkbox], input[type=radio] { width: auto; height: auto; padding: 0; margin: 3px 0; *margin-top: 0; /* IE6-7 */ line-height: normal; border: none; } input[type=file] { background-color: #ffffff; padding: initial; border: initial; line-height: initial; -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none; } input[type=button], input[type=reset], input[type=submit] { width: auto; height: auto; } select, input[type=file] { height: 27px; *height: auto; line-height: 27px; *margin-top: 4px; /* For IE7, add top margin to align select with labels */ } select[multiple] { height: inherit; background-color: #ffffff; } textarea { height: auto; } .uneditable-input { background-color: #ffffff; display: block; border-color: #eee; -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); cursor: not-allowed; } :-moz-placeholder { color: #bfbfbf; } ::-webkit-input-placeholder { color: #bfbfbf; } input, textarea { -webkit-transform-style: preserve-3d; -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; -moz-transition: border linear 0.2s, box-shadow linear 0.2s; -ms-transition: border linear 0.2s, box-shadow linear 0.2s; -o-transition: border linear 0.2s, box-shadow linear 0.2s; transition: border linear 0.2s, box-shadow linear 0.2s; -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1); -moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1); box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1); } input:focus, textarea:focus { outline: 0; border-color: rgba(82, 168, 236, 0.8); -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6); -moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6); box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6); } input[type=file]:focus, input[type=checkbox]:focus, select:focus { -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none; outline: 1px dotted #666; } form .clearfix.error > label, form .clearfix.error .help-block, form .clearfix.error .help-inline { color: #b94a48; } form .clearfix.error input, form .clearfix.error textarea { color: #b94a48; border-color: #ee5f5b; } form .clearfix.error input:focus, form .clearfix.error textarea: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 .clearfix.error .input-prepend .add-on, form .clearfix.error .input-append .add-on { color: #b94a48; background-color: #fce6e6; border-color: #b94a48; } form .clearfix.warning > label, form .clearfix.warning .help-block, form .clearfix.warning .help-inline { color: #c09853; } form .clearfix.warning input, form .clearfix.warning textarea { color: #c09853; border-color: #ccae64; } form .clearfix.warning input:focus, form .clearfix.warning textarea:focus { border-color: #be9a3f; -webkit-box-shadow: 0 0 6px #e5d6b1; -moz-box-shadow: 0 0 6px #e5d6b1; box-shadow: 0 0 6px #e5d6b1; } form .clearfix.warning .input-prepend .add-on, form .clearfix.warning .input-append .add-on { color: #c09853; background-color: #d2b877; border-color: #c09853; } form .clearfix.success > label, form .clearfix.success .help-block, form .clearfix.success .help-inline { color: #468847; } form .clearfix.success input, form .clearfix.success textarea { color: #468847; border-color: #57a957; } form .clearfix.success input:focus, form .clearfix.success textarea:focus { border-color: #458845; -webkit-box-shadow: 0 0 6px #9acc9a; -moz-box-shadow: 0 0 6px #9acc9a; box-shadow: 0 0 6px #9acc9a; } form .clearfix.success .input-prepend .add-on, form .clearfix.success .input-append .add-on { color: #468847; background-color: #bcddbc; border-color: #468847; } .input-mini, input.mini, textarea.mini, select.mini { width: 60px; } .input-small, input.small, textarea.small, select.small { width: 90px; } .input-medium, input.medium, textarea.medium, select.medium { width: 150px; } .input-large, input.large, textarea.large, select.large { width: 210px; } .input-xlarge, input.xlarge, textarea.xlarge, select.xlarge { width: 270px; } .input-xxlarge, input.xxlarge, textarea.xxlarge, select.xxlarge { width: 530px; } textarea.xxlarge { overflow-y: auto; } input.span1, textarea.span1 { display: inline-block; float: none; width: 30px; margin-left: 0; } input.span2, textarea.span2 { display: inline-block; float: none; width: 90px; margin-left: 0; } input.span3, textarea.span3 { display: inline-block; float: none; width: 150px; margin-left: 0; } input.span4, textarea.span4 { display: inline-block; float: none; width: 210px; margin-left: 0; } input.span5, textarea.span5 { display: inline-block; float: none; width: 270px; margin-left: 0; } input.span6, textarea.span6 { display: inline-block; float: none; width: 330px; margin-left: 0; } input.span7, textarea.span7 { display: inline-block; float: none; width: 390px; margin-left: 0; } input.span8, textarea.span8 { display: inline-block; float: none; width: 450px; margin-left: 0; } input.span9, textarea.span9 { display: inline-block; float: none; width: 510px; margin-left: 0; } input.span10, textarea.span10 { display: inline-block; float: none; width: 570px; margin-left: 0; } input.span11, textarea.span11 { display: inline-block; float: none; width: 630px; margin-left: 0; } input.span12, textarea.span12 { display: inline-block; float: none; width: 690px; margin-left: 0; } input.span13, textarea.span13 { display: inline-block; float: none; width: 750px; margin-left: 0; } input.span14, textarea.span14 { display: inline-block; float: none; width: 810px; margin-left: 0; } input.span15, textarea.span15 { display: inline-block; float: none; width: 870px; margin-left: 0; } input.span16, textarea.span16 { display: inline-block; float: none; width: 930px; margin-left: 0; } input[disabled], select[disabled], textarea[disabled], input[readonly], select[readonly], textarea[readonly] { background-color: #f5f5f5; border-color: #ddd; cursor: not-allowed; } .actions { background: #f5f5f5; margin-top: 18px; margin-bottom: 18px; padding: 17px 20px 18px 150px; border-top: 1px solid #ddd; -webkit-border-radius: 0 0 3px 3px; -moz-border-radius: 0 0 3px 3px; border-radius: 0 0 3px 3px; } .actions .secondary-action { float: right; } .actions .secondary-action a { line-height: 30px; } .actions .secondary-action a:hover { text-decoration: underline; } .help-inline, .help-block { font-size: 13px; line-height: 18px; color: #bfbfbf; } .help-inline { padding-left: 5px; *position: relative; /* IE6-7 */ *top: -5px; /* IE6-7 */ } .help-block { display: block; max-width: 600px; } .inline-inputs { color: #808080; } .inline-inputs span { padding: 0 2px 0 1px; } .input-prepend input, .input-append input { -webkit-border-radius: 0 3px 3px 0; -moz-border-radius: 0 3px 3px 0; border-radius: 0 3px 3px 0; } .input-prepend .add-on, .input-append .add-on { position: relative; background: #f5f5f5; border: 1px solid #ccc; z-index: 2; float: left; display: block; width: auto; min-width: 16px; height: 18px; padding: 4px 4px 4px 5px; margin-right: -1px; font-weight: normal; line-height: 18px; color: #bfbfbf; text-align: center; text-shadow: 0 1px 0 #ffffff; -webkit-border-radius: 3px 0 0 3px; -moz-border-radius: 3px 0 0 3px; border-radius: 3px 0 0 3px; } .input-prepend .active, .input-append .active { background: #a9dba9; border-color: #46a546; } .input-prepend .add-on { *margin-top: 1px; /* IE6-7 */ } .input-append input { float: left; -webkit-border-radius: 3px 0 0 3px; -moz-border-radius: 3px 0 0 3px; border-radius: 3px 0 0 3px; } .input-append .add-on { -webkit-border-radius: 0 3px 3px 0; -moz-border-radius: 0 3px 3px 0; border-radius: 0 3px 3px 0; margin-right: 0; margin-left: -1px; } .inputs-list { margin: 0 0 5px; width: 100%; } .inputs-list li { display: block; padding: 0; width: 100%; } .inputs-list label { display: block; float: none; width: auto; padding: 0; margin-left: 20px; line-height: 18px; text-align: left; white-space: normal; } .inputs-list label strong { color: #808080; } .inputs-list label small { font-size: 11px; font-weight: normal; } .inputs-list .inputs-list { margin-left: 25px; margin-bottom: 10px; padding-top: 0; } .inputs-list:first-child { padding-top: 6px; } .inputs-list li + li { padding-top: 2px; } .inputs-list input[type=radio], .inputs-list input[type=checkbox] { margin-bottom: 0; margin-left: -20px; float: left; } .form-stacked { padding-left: 20px; } .form-stacked fieldset { padding-top: 9px; } .form-stacked legend { padding-left: 0; } .form-stacked label { display: block; float: none; width: auto; font-weight: bold; text-align: left; line-height: 20px; padding-top: 0; } .form-stacked .clearfix { margin-bottom: 9px; } .form-stacked .clearfix div.input { margin-left: 0; } .form-stacked .inputs-list { margin-bottom: 0; } .form-stacked .inputs-list li { padding-top: 0; } .form-stacked .inputs-list li label { font-weight: normal; padding-top: 0; } .form-stacked div.clearfix.error { padding-top: 10px; padding-bottom: 10px; padding-left: 10px; margin-top: 0; margin-left: -10px; } .form-stacked .actions { margin-left: -20px; padding-left: 20px; } /* * Tables.less * Tables for, you guessed it, tabular data * ---------------------------------------- */ table { width: 100%; margin-bottom: 18px; padding: 0; font-size: 13px; border-collapse: collapse; } table th, table td { padding: 10px 10px 9px; line-height: 18px; text-align: left; } table th { padding-top: 9px; font-weight: bold; vertical-align: middle; } table td { vertical-align: top; border-top: 1px solid #ddd; } table tbody th { border-top: 1px solid #ddd; vertical-align: top; } .condensed-table th, .condensed-table td { padding: 5px 5px 4px; } .bordered-table { border: 1px solid #ddd; border-collapse: separate; *border-collapse: collapse; /* IE7, collapse table to remove spacing */ -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; } .bordered-table th + th, .bordered-table td + td, .bordered-table th + td { border-left: 1px solid #ddd; } .bordered-table thead tr:first-child th:first-child, .bordered-table tbody tr:first-child td:first-child { -webkit-border-radius: 4px 0 0 0; -moz-border-radius: 4px 0 0 0; border-radius: 4px 0 0 0; } .bordered-table thead tr:first-child th:last-child, .bordered-table tbody tr:first-child td:last-child { -webkit-border-radius: 0 4px 0 0; -moz-border-radius: 0 4px 0 0; border-radius: 0 4px 0 0; } .bordered-table tbody tr:last-child td:first-child { -webkit-border-radius: 0 0 0 4px; -moz-border-radius: 0 0 0 4px; border-radius: 0 0 0 4px; } .bordered-table tbody tr:last-child td:last-child { -webkit-border-radius: 0 0 4px 0; -moz-border-radius: 0 0 4px 0; border-radius: 0 0 4px 0; } table .span1 { width: 20px; } table .span2 { width: 60px; } table .span3 { width: 100px; } table .span4 { width: 140px; } table .span5 { width: 180px; } table .span6 { width: 220px; } table .span7 { width: 260px; } table .span8 { width: 300px; } table .span9 { width: 340px; } table .span10 { width: 380px; } table .span11 { width: 420px; } table .span12 { width: 460px; } table .span13 { width: 500px; } table .span14 { width: 540px; } table .span15 { width: 580px; } table .span16 { width: 620px; } .zebra-striped tbody tr:nth-child(odd) td, .zebra-striped tbody tr:nth-child(odd) th { background-color: #f9f9f9; } .zebra-striped tbody tr:hover td, .zebra-striped tbody tr:hover th { background-color: #f5f5f5; } table .header { cursor: pointer; } table .header:after { content: ""; float: right; margin-top: 7px; border-width: 0 4px 4px; border-style: solid; border-color: #000 transparent; visibility: hidden; } table .headerSortUp, table .headerSortDown { background-color: rgba(141, 192, 219, 0.25); text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); } table .header:hover:after { visibility: visible; } table .headerSortDown:after, table .headerSortDown:hover:after { visibility: visible; filter: alpha(opacity=60); -khtml-opacity: 0.6; -moz-opacity: 0.6; opacity: 0.6; } table .headerSortUp:after { border-bottom: none; border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 4px solid #000; visibility: visible; -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none; filter: alpha(opacity=60); -khtml-opacity: 0.6; -moz-opacity: 0.6; opacity: 0.6; } table .blue { color: #049cdb; border-bottom-color: #049cdb; } table .headerSortUp.blue, table .headerSortDown.blue { background-color: #ade6fe; } table .green { color: #46a546; border-bottom-color: #46a546; } table .headerSortUp.green, table .headerSortDown.green { background-color: #cdeacd; } table .red { color: #9d261d; border-bottom-color: #9d261d; } table .headerSortUp.red, table .headerSortDown.red { background-color: #f4c8c5; } table .yellow { color: #ffc40d; border-bottom-color: #ffc40d; } table .headerSortUp.yellow, table .headerSortDown.yellow { background-color: #fff6d9; } table .orange { color: #f89406; border-bottom-color: #f89406; } table .headerSortUp.orange, table .headerSortDown.orange { background-color: #fee9cc; } table .purple { color: #7a43b6; border-bottom-color: #7a43b6; } table .headerSortUp.purple, table .headerSortDown.purple { background-color: #e2d5f0; } /* Patterns.less * Repeatable UI elements outside the base styles provided from the scaffolding * ---------------------------------------------------------------------------- */ .topbar { height: 40px; position: fixed; top: 0; left: 0; right: 0; z-index: 10000; overflow: visible; } .topbar a { color: #bfbfbf; text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); } .topbar h3 a:hover, .topbar .brand:hover, .topbar ul .active > a { background-color: #333; background-color: rgba(255, 255, 255, 0.05); color: #ffffff; text-decoration: none; } .topbar h3 { position: relative; } .topbar h3 a, .topbar .brand { float: left; display: block; padding: 8px 20px 12px; margin-left: -20px; color: #ffffff; font-size: 20px; font-weight: 200; line-height: 1; } .topbar p { margin: 0; line-height: 40px; } .topbar p a:hover { background-color: transparent; color: #ffffff; } .topbar form { float: left; margin: 5px 0 0 0; position: relative; filter: alpha(opacity=100); -khtml-opacity: 1; -moz-opacity: 1; opacity: 1; } .topbar form.pull-right { float: right; } .topbar input { background-color: #444; background-color: rgba(255, 255, 255, 0.3); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: normal; font-weight: 13px; line-height: 1; padding: 4px 9px; color: #ffffff; color: rgba(255, 255, 255, 0.75); border: 1px solid #111; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.25); -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.25); box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.25); -webkit-transform-style: preserve-3d; -webkit-transition: none; -moz-transition: none; -ms-transition: none; -o-transition: none; transition: none; } .topbar input:-moz-placeholder { color: #e6e6e6; } .topbar input::-webkit-input-placeholder { color: #e6e6e6; } .topbar input:hover { background-color: #bfbfbf; background-color: rgba(255, 255, 255, 0.5); color: #ffffff; } .topbar input:focus, .topbar input.focused { outline: 0; background-color: #ffffff; color: #404040; text-shadow: 0 1px 0 #ffffff; border: 0; padding: 5px 10px; -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); } .topbar-inner, .topbar .fill { background-color: #222; background-color: #222222; background-repeat: repeat-x; background-image: -khtml-gradient(linear, left top, left bottom, from(#333333), to(#222222)); background-image: -moz-linear-gradient(top, #333333, #222222); background-image: -ms-linear-gradient(top, #333333, #222222); background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #333333), color-stop(100%, #222222)); background-image: -webkit-linear-gradient(top, #333333, #222222); background-image: -o-linear-gradient(top, #333333, #222222); background-image: linear-gradient(top, #333333, #222222); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); } .topbar div > ul, .nav { display: block; float: left; margin: 0 10px 0 0; position: relative; left: 0; } .topbar div > ul > li, .nav > li { display: block; float: left; } .topbar div > ul a, .nav a { display: block; float: none; padding: 10px 10px 11px; line-height: 19px; text-decoration: none; } .topbar div > ul a:hover, .nav a:hover { color: #ffffff; text-decoration: none; } .topbar div > ul .active > a, .nav .active > a { background-color: #222; background-color: rgba(0, 0, 0, 0.5); } .topbar div > ul.secondary-nav, .nav.secondary-nav { float: right; margin-left: 10px; margin-right: 0; } .topbar div > ul.secondary-nav .menu-dropdown, .nav.secondary-nav .menu-dropdown, .topbar div > ul.secondary-nav .dropdown-menu, .nav.secondary-nav .dropdown-menu { right: 0; border: 0; } .topbar div > ul a.menu:hover, .nav a.menu:hover, .topbar div > ul li.open .menu, .nav li.open .menu, .topbar div > ul .dropdown-toggle:hover, .nav .dropdown-toggle:hover, .topbar div > ul .dropdown.open .dropdown-toggle, .nav .dropdown.open .dropdown-toggle { background: #444; background: rgba(255, 255, 255, 0.05); } .topbar div > ul .menu-dropdown, .nav .menu-dropdown, .topbar div > ul .dropdown-menu, .nav .dropdown-menu { background-color: #333; } .topbar div > ul .menu-dropdown a.menu, .nav .menu-dropdown a.menu, .topbar div > ul .dropdown-menu a.menu, .nav .dropdown-menu a.menu, .topbar div > ul .menu-dropdown .dropdown-toggle, .nav .menu-dropdown .dropdown-toggle, .topbar div > ul .dropdown-menu .dropdown-toggle, .nav .dropdown-menu .dropdown-toggle { color: #ffffff; } .topbar div > ul .menu-dropdown a.menu.open, .nav .menu-dropdown a.menu.open, .topbar div > ul .dropdown-menu a.menu.open, .nav .dropdown-menu a.menu.open, .topbar div > ul .menu-dropdown .dropdown-toggle.open, .nav .menu-dropdown .dropdown-toggle.open, .topbar div > ul .dropdown-menu .dropdown-toggle.open, .nav .dropdown-menu .dropdown-toggle.open { background: #444; background: rgba(255, 255, 255, 0.05); } .topbar div > ul .menu-dropdown li a, .nav .menu-dropdown li a, .topbar div > ul .dropdown-menu li a, .nav .dropdown-menu li a { color: #999; text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5); } .topbar div > ul .menu-dropdown li a:hover, .nav .menu-dropdown li a:hover, .topbar div > ul .dropdown-menu li a:hover, .nav .dropdown-menu li a:hover { background-color: #191919; background-repeat: repeat-x; background-image: -khtml-gradient(linear, left top, left bottom, from(#292929), to(#191919)); background-image: -moz-linear-gradient(top, #292929, #191919); background-image: -ms-linear-gradient(top, #292929, #191919); background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #292929), color-stop(100%, #191919)); background-image: -webkit-linear-gradient(top, #292929, #191919); background-image: -o-linear-gradient(top, #292929, #191919); background-image: linear-gradient(top, #292929, #191919); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#292929', endColorstr='#191919', GradientType=0); color: #ffffff; } .topbar div > ul .menu-dropdown .active a, .nav .menu-dropdown .active a, .topbar div > ul .dropdown-menu .active a, .nav .dropdown-menu .active a { color: #ffffff; } .topbar div > ul .menu-dropdown .divider, .nav .menu-dropdown .divider, .topbar div > ul .dropdown-menu .divider, .nav .dropdown-menu .divider { background-color: #222; border-color: #444; } .topbar ul .menu-dropdown li a, .topbar ul .dropdown-menu li a { padding: 4px 15px; } li.menu, .dropdown { position: relative; } a.menu:after, .dropdown-toggle:after { width: 0; height: 0; display: inline-block; content: "↓"; text-indent: -99999px; vertical-align: top; margin-top: 8px; margin-left: 4px; border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 4px solid #ffffff; filter: alpha(opacity=50); -khtml-opacity: 0.5; -moz-opacity: 0.5; opacity: 0.5; } .menu-dropdown, .dropdown-menu { background-color: #ffffff; float: left; display: none; position: absolute; top: 40px; z-index: 900; min-width: 160px; max-width: 220px; _width: 160px; margin-left: 0; margin-right: 0; padding: 6px 0; zoom: 1; border-color: #999; border-color: rgba(0, 0, 0, 0.2); border-style: solid; border-width: 0 1px 1px; -webkit-border-radius: 0 0 6px 6px; -moz-border-radius: 0 0 6px 6px; border-radius: 0 0 6px 6px; -webkit-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); -moz-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); -webkit-background-clip: padding-box; -moz-background-clip: padding-box; background-clip: padding-box; } .menu-dropdown li, .dropdown-menu li { float: none; display: block; background-color: none; } .menu-dropdown .divider, .dropdown-menu .divider { height: 1px; margin: 5px 0; overflow: hidden; background-color: #eee; border-bottom: 1px solid #ffffff; } .topbar .dropdown-menu a, .dropdown-menu a { display: block; padding: 4px 15px; clear: both; font-weight: normal; line-height: 18px; color: #808080; text-shadow: 0 1px 0 #ffffff; } .topbar .dropdown-menu a:hover, .dropdown-menu a:hover, .topbar .dropdown-menu a.hover, .dropdown-menu a.hover { background-color: #dddddd; background-repeat: repeat-x; background-image: -khtml-gradient(linear, left top, left bottom, from(#eeeeee), to(#dddddd)); background-image: -moz-linear-gradient(top, #eeeeee, #dddddd); background-image: -ms-linear-gradient(top, #eeeeee, #dddddd); background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #eeeeee), color-stop(100%, #dddddd)); background-image: -webkit-linear-gradient(top, #eeeeee, #dddddd); background-image: -o-linear-gradient(top, #eeeeee, #dddddd); background-image: linear-gradient(top, #eeeeee, #dddddd); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#dddddd', GradientType=0); color: #404040; text-decoration: none; -webkit-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.025), inset 0 -1px rgba(0, 0, 0, 0.025); -moz-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.025), inset 0 -1px rgba(0, 0, 0, 0.025); box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.025), inset 0 -1px rgba(0, 0, 0, 0.025); } .open .menu, .dropdown.open .menu, .open .dropdown-toggle, .dropdown.open .dropdown-toggle { color: #ffffff; background: #ccc; background: rgba(0, 0, 0, 0.3); } .open .menu-dropdown, .dropdown.open .menu-dropdown, .open .dropdown-menu, .dropdown.open .dropdown-menu { display: block; } .tabs, .pills { margin: 0 0 18px; padding: 0; list-style: none; zoom: 1; } .tabs:before, .pills:before, .tabs:after, .pills:after { display: table; content: ""; zoom: 1; } .tabs:after, .pills:after { clear: both; } .tabs > li, .pills > li { float: left; } .tabs > li > a, .pills > li > a { display: block; } .tabs { border-color: #ddd; border-style: solid; border-width: 0 0 1px; } .tabs > li { position: relative; margin-bottom: -1px; } .tabs > li > a { padding: 0 15px; margin-right: 2px; line-height: 34px; border: 1px solid transparent; -webkit-border-radius: 4px 4px 0 0; -moz-border-radius: 4px 4px 0 0; border-radius: 4px 4px 0 0; } .tabs > li > a:hover { text-decoration: none; background-color: #eee; border-color: #eee #eee #ddd; } .tabs .active > a, .tabs .active > a:hover { color: #808080; background-color: #ffffff; border: 1px solid #ddd; border-bottom-color: transparent; cursor: default; } .tabs .menu-dropdown, .tabs .dropdown-menu { top: 35px; border-width: 1px; -webkit-border-radius: 0 6px 6px 6px; -moz-border-radius: 0 6px 6px 6px; border-radius: 0 6px 6px 6px; } .tabs a.menu:after, .tabs .dropdown-toggle:after { border-top-color: #999; margin-top: 15px; margin-left: 5px; } .tabs li.open.menu .menu, .tabs .open.dropdown .dropdown-toggle { border-color: #999; } .tabs li.open a.menu:after, .tabs .dropdown.open .dropdown-toggle:after { border-top-color: #555; } .pills a { margin: 5px 3px 5px 0; padding: 0 15px; line-height: 30px; text-shadow: 0 1px 1px #ffffff; -webkit-border-radius: 15px; -moz-border-radius: 15px; border-radius: 15px; } .pills a:hover { color: #ffffff; text-decoration: none; text-shadow: 0 1px 1px rgba(0, 0, 0, 0.25); background-color: #00438a; } .pills .active a { color: #ffffff; text-shadow: 0 1px 1px rgba(0, 0, 0, 0.25); background-color: #0069d6; } .pills-vertical > li { float: none; } .tab-content > .tab-pane, .pill-content > .pill-pane { display: none; } .tab-content > .active, .pill-content > .active { display: block; } .breadcrumb { padding: 7px 14px; margin: 0 0 18px; background-color: #f5f5f5; background-repeat: repeat-x; background-image: -khtml-gradient(linear, left top, left bottom, from(#ffffff), to(#f5f5f5)); background-image: -moz-linear-gradient(top, #ffffff, #f5f5f5); background-image: -ms-linear-gradient(top, #ffffff, #f5f5f5); background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ffffff), color-stop(100%, #f5f5f5)); background-image: -webkit-linear-gradient(top, #ffffff, #f5f5f5); background-image: -o-linear-gradient(top, #ffffff, #f5f5f5); background-image: linear-gradient(top, #ffffff, #f5f5f5); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0); border: 1px solid #ddd; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; -webkit-box-shadow: inset 0 1px 0 #ffffff; -moz-box-shadow: inset 0 1px 0 #ffffff; box-shadow: inset 0 1px 0 #ffffff; } .breadcrumb li { display: inline; text-shadow: 0 1px 0 #ffffff; } .breadcrumb .divider { padding: 0 5px; color: #bfbfbf; } .breadcrumb .active a { color: #404040; } .hero-unit { background-color: #f5f5f5; margin-bottom: 30px; padding: 60px; -webkit-border-radius: 6px; -moz-border-radius: 6px; border-radius: 6px; } .hero-unit h1 { margin-bottom: 0; font-size: 60px; line-height: 1; letter-spacing: -1px; } .hero-unit p { font-size: 18px; font-weight: 200; line-height: 27px; } footer { margin-top: 17px; padding-top: 17px; border-top: 1px solid #eee; } .page-header { margin-bottom: 17px; border-bottom: 1px solid #ddd; -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); } .page-header h1 { margin-bottom: 8px; } .btn.danger, .alert-message.danger, .btn.danger:hover, .alert-message.danger:hover, .btn.error, .alert-message.error, .btn.error:hover, .alert-message.error:hover, .btn.success, .alert-message.success, .btn.success:hover, .alert-message.success:hover, .btn.info, .alert-message.info, .btn.info:hover, .alert-message.info:hover { color: #ffffff; } .btn .close, .alert-message .close { font-family: Arial, sans-serif; line-height: 18px; } .btn.danger, .alert-message.danger, .btn.error, .alert-message.error { background-color: #c43c35; background-repeat: repeat-x; background-image: -khtml-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35)); background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35); background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35)); background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); background-image: linear-gradient(top, #ee5f5b, #c43c35); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0); text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); border-color: #c43c35 #c43c35 #882a25; border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); } .btn.success, .alert-message.success { background-color: #57a957; background-repeat: repeat-x; background-image: -khtml-gradient(linear, left top, left bottom, from(#62c462), to(#57a957)); background-image: -moz-linear-gradient(top, #62c462, #57a957); background-image: -ms-linear-gradient(top, #62c462, #57a957); background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #57a957)); background-image: -webkit-linear-gradient(top, #62c462, #57a957); background-image: -o-linear-gradient(top, #62c462, #57a957); background-image: linear-gradient(top, #62c462, #57a957); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0); text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); border-color: #57a957 #57a957 #3d773d; border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); } .btn.info, .alert-message.info { background-color: #339bb9; background-repeat: repeat-x; background-image: -khtml-gradient(linear, left top, left bottom, from(#5bc0de), to(#339bb9)); background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); background-image: -ms-linear-gradient(top, #5bc0de, #339bb9); background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de), color-stop(100%, #339bb9)); background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); background-image: -o-linear-gradient(top, #5bc0de, #339bb9); background-image: linear-gradient(top, #5bc0de, #339bb9); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0); text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); border-color: #339bb9 #339bb9 #22697d; border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); } .btn { cursor: pointer; display: inline-block; background-color: #e6e6e6; background-repeat: no-repeat; background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), color-stop(25%, #ffffff), to(#e6e6e6)); background-image: -webkit-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); background-image: -moz-linear-gradient(top, #ffffff, #ffffff 25%, #e6e6e6); background-image: -ms-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); background-image: -o-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); background-image: linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0); padding: 5px 14px 6px; text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); color: #333; font-size: 13px; line-height: normal; border: 1px solid #ccc; border-bottom-color: #bbb; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); -webkit-transform-style: preserve-3d; -webkit-transition: 0.1s linear all; -moz-transition: 0.1s linear all; -ms-transition: 0.1s linear all; -o-transition: 0.1s linear all; transition: 0.1s linear all; } .btn:hover { background-position: 0 -15px; color: #333; text-decoration: none; } .btn:focus { outline: 1px dotted #666; } .btn.primary { color: #ffffff; background-color: #0064cd; background-repeat: repeat-x; background-image: -khtml-gradient(linear, left top, left bottom, from(#049cdb), to(#0064cd)); background-image: -moz-linear-gradient(top, #049cdb, #0064cd); background-image: -ms-linear-gradient(top, #049cdb, #0064cd); background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #049cdb), color-stop(100%, #0064cd)); background-image: -webkit-linear-gradient(top, #049cdb, #0064cd); background-image: -o-linear-gradient(top, #049cdb, #0064cd); background-image: linear-gradient(top, #049cdb, #0064cd); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#049cdb', endColorstr='#0064cd', GradientType=0); text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); border-color: #0064cd #0064cd #003f81; border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); } .btn.active, .btn :active { -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05); -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05); box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05); } .btn.disabled { cursor: default; background-image: none; filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); filter: alpha(opacity=65); -khtml-opacity: 0.65; -moz-opacity: 0.65; opacity: 0.65; -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none; } .btn[disabled] { cursor: default; background-image: none; filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); filter: alpha(opacity=65); -khtml-opacity: 0.65; -moz-opacity: 0.65; opacity: 0.65; -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none; } .btn.large { font-size: 15px; line-height: normal; padding: 9px 14px 9px; -webkit-border-radius: 6px; -moz-border-radius: 6px; border-radius: 6px; } .btn.small { padding: 7px 9px 7px; font-size: 11px; } :root .alert-message, :root .btn { border-radius: 0 \0; } button.btn::-moz-focus-inner, input[type=submit].btn::-moz-focus-inner { padding: 0; border: 0; } .close { float: right; color: #000000; font-size: 20px; font-weight: bold; line-height: 13.5px; text-shadow: 0 1px 0 #ffffff; filter: alpha(opacity=25); -khtml-opacity: 0.25; -moz-opacity: 0.25; opacity: 0.25; } .close:hover { color: #000000; text-decoration: none; filter: alpha(opacity=40); -khtml-opacity: 0.4; -moz-opacity: 0.4; opacity: 0.4; } .alert-message { position: relative; padding: 7px 15px; margin-bottom: 18px; color: #404040; background-color: #eedc94; background-repeat: repeat-x; background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94)); background-image: -moz-linear-gradient(top, #fceec1, #eedc94); background-image: -ms-linear-gradient(top, #fceec1, #eedc94); background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94)); background-image: -webkit-linear-gradient(top, #fceec1, #eedc94); background-image: -o-linear-gradient(top, #fceec1, #eedc94); background-image: linear-gradient(top, #fceec1, #eedc94); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0); text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); border-color: #eedc94 #eedc94 #e4c652; border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); border-width: 1px; border-style: solid; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); } .alert-message .close { margin-top: 1px; *margin-top: 0; } .alert-message a { font-weight: bold; color: #404040; } .alert-message.danger p a, .alert-message.error p a, .alert-message.success p a, .alert-message.info p a { color: #ffffff; } .alert-message h5 { line-height: 18px; } .alert-message p { margin-bottom: 0; } .alert-message div { margin-top: 5px; margin-bottom: 2px; line-height: 28px; } .alert-message .btn { -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.25); -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.25); box-shadow: 0 1px 0 rgba(255, 255, 255, 0.25); } .alert-message.block-message { background-image: none; background-color: #fdf5d9; filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); padding: 14px; border-color: #fceec1; -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none; } .alert-message.block-message ul, .alert-message.block-message p { margin-right: 30px; } .alert-message.block-message ul { margin-bottom: 0; } .alert-message.block-message li { color: #404040; } .alert-message.block-message .alert-actions { margin-top: 5px; } .alert-message.block-message.error, .alert-message.block-message.success, .alert-message.block-message.info { color: #404040; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); } .alert-message.block-message.error { background-color: #fddfde; border-color: #fbc7c6; } .alert-message.block-message.success { background-color: #d1eed1; border-color: #bfe7bf; } .alert-message.block-message.info { background-color: #ddf4fb; border-color: #c6edf9; } .alert-message.block-message.danger p a, .alert-message.block-message.error p a, .alert-message.block-message.success p a, .alert-message.block-message.info p a { color: #404040; } .pagination { height: 36px; margin: 18px 0; } .pagination ul { float: left; margin: 0; border: 1px solid #ddd; border: 1px solid rgba(0, 0, 0, 0.15); -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; -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 li { display: inline; } .pagination a { float: left; padding: 0 14px; line-height: 34px; border-right: 1px solid; border-right-color: #ddd; border-right-color: rgba(0, 0, 0, 0.15); *border-right-color: #ddd; /* IE6-7 */ text-decoration: none; } .pagination a:hover, .pagination .active a { background-color: #c7eefe; } .pagination .disabled a, .pagination .disabled a:hover { background-color: transparent; color: #bfbfbf; } .pagination .next a { border: 0; } .well { background-color: #f5f5f5; margin-bottom: 20px; padding: 19px; min-height: 20px; border: 1px solid #eee; border: 1px solid rgba(0, 0, 0, 0.05); -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); } .well blockquote { border-color: #ddd; border-color: rgba(0, 0, 0, 0.15); } .modal-backdrop { background-color: #000000; position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 10000; } .modal-backdrop.fade { opacity: 0; } .modal-backdrop, .modal-backdrop.fade.in { filter: alpha(opacity=80); -khtml-opacity: 0.8; -moz-opacity: 0.8; opacity: 0.8; } .modal { position: fixed; top: 50%; left: 50%; z-index: 11000; width: 560px; margin: -250px 0 0 -280px; background-color: #ffffff; border: 1px solid #999; border: 1px solid rgba(0, 0, 0, 0.3); *border: 1px solid #999; /* IE6-7 */ -webkit-border-radius: 6px; -moz-border-radius: 6px; border-radius: 6px; -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); -webkit-background-clip: padding-box; -moz-background-clip: padding-box; background-clip: padding-box; } .modal .close { margin-top: 7px; } .modal.fade { -webkit-transform-style: preserve-3d; -webkit-transition: opacity .3s linear, top .3s ease-out; -moz-transition: opacity .3s linear, top .3s ease-out; -ms-transition: opacity .3s linear, top .3s ease-out; -o-transition: opacity .3s linear, top .3s ease-out; transition: opacity .3s linear, top .3s ease-out; top: -25%; } .modal.fade.in { top: 50%; } .modal-header { border-bottom: 1px solid #eee; padding: 5px 15px; } .modal-body { padding: 15px; } .modal-body form { margin-bottom: 0; } .modal-footer { background-color: #f5f5f5; padding: 14px 15px 15px; border-top: 1px solid #ddd; -webkit-border-radius: 0 0 6px 6px; -moz-border-radius: 0 0 6px 6px; border-radius: 0 0 6px 6px; -webkit-box-shadow: inset 0 1px 0 #ffffff; -moz-box-shadow: inset 0 1px 0 #ffffff; box-shadow: inset 0 1px 0 #ffffff; zoom: 1; margin-bottom: 0; } .modal-footer:before, .modal-footer:after { display: table; content: ""; zoom: 1; } .modal-footer:after { clear: both; } .modal-footer .btn { float: right; margin-left: 5px; } .modal .popover, .modal .twipsy { z-index: 12000; } .twipsy { display: block; position: absolute; visibility: visible; padding: 5px; font-size: 11px; z-index: 1000; filter: alpha(opacity=80); -khtml-opacity: 0.8; -moz-opacity: 0.8; opacity: 0.8; } .twipsy.fade.in { filter: alpha(opacity=80); -khtml-opacity: 0.8; -moz-opacity: 0.8; opacity: 0.8; } .twipsy.above .twipsy-arrow { bottom: 0; left: 50%; margin-left: -5px; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 5px solid #000000; } .twipsy.left .twipsy-arrow { top: 50%; right: 0; margin-top: -5px; border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-left: 5px solid #000000; } .twipsy.below .twipsy-arrow { top: 0; left: 50%; margin-left: -5px; border-left: 5px solid transparent; border-right: 5px solid transparent; border-bottom: 5px solid #000000; } .twipsy.right .twipsy-arrow { top: 50%; left: 0; margin-top: -5px; border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-right: 5px solid #000000; } .twipsy-inner { padding: 3px 8px; background-color: #000000; color: white; text-align: center; max-width: 200px; text-decoration: none; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; } .twipsy-arrow { position: absolute; width: 0; height: 0; } .popover { position: absolute; top: 0; left: 0; z-index: 1000; padding: 5px; display: none; } .popover.above .arrow { bottom: 0; left: 50%; margin-left: -5px; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 5px solid #000000; } .popover.right .arrow { top: 50%; left: 0; margin-top: -5px; border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-right: 5px solid #000000; } .popover.below .arrow { top: 0; left: 50%; margin-left: -5px; border-left: 5px solid transparent; border-right: 5px solid transparent; border-bottom: 5px solid #000000; } .popover.left .arrow { top: 50%; right: 0; margin-top: -5px; border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-left: 5px solid #000000; } .popover .arrow { position: absolute; width: 0; height: 0; } .popover .inner { background: #000000; background: rgba(0, 0, 0, 0.8); padding: 3px; overflow: hidden; width: 280px; -webkit-border-radius: 6px; -moz-border-radius: 6px; border-radius: 6px; -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); } .popover .title { background-color: #f5f5f5; padding: 9px 15px; line-height: 1; -webkit-border-radius: 3px 3px 0 0; -moz-border-radius: 3px 3px 0 0; border-radius: 3px 3px 0 0; border-bottom: 1px solid #eee; } .popover .content { background-color: #ffffff; padding: 14px; -webkit-border-radius: 0 0 3px 3px; -moz-border-radius: 0 0 3px 3px; border-radius: 0 0 3px 3px; -webkit-background-clip: padding-box; -moz-background-clip: padding-box; background-clip: padding-box; } .popover .content p, .popover .content ul, .popover .content ol { margin-bottom: 0; } .fade { -webkit-transform-style: preserve-3d; -webkit-transition: opacity 0.15s linear; -moz-transition: opacity 0.15s linear; -ms-transition: opacity 0.15s linear; -o-transition: opacity 0.15s linear; transition: opacity 0.15s linear; opacity: 0; } .fade.in { opacity: 1; } .label { padding: 1px 3px 2px; font-size: 9.75px; font-weight: bold; color: #ffffff; text-transform: uppercase; white-space: nowrap; background-color: #bfbfbf; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; } .label.important { background-color: #c43c35; } .label.warning { background-color: #f89406; } .label.success { background-color: #46a546; } .label.notice { background-color: #62cffc; } .media-grid { margin-left: -20px; margin-bottom: 0; zoom: 1; } .media-grid:before, .media-grid:after { display: table; content: ""; zoom: 1; } .media-grid:after { clear: both; } .media-grid li { display: inline; } .media-grid a { float: left; padding: 4px; margin: 0 0 18px 20px; border: 1px solid #ddd; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); } .media-grid a img { display: block; } .media-grid a:hover { border-color: #0069d6; -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); } haskell-gargantext-151-dev-pubmed-api-key/ekg-assets/bootstrap-1.4.0.min.css 0000775 0000000 0000000 00000134643 14341204033 0026557 0 ustar 00root root 0000000 0000000 html,body{margin:0;padding:0;} h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,cite,code,del,dfn,em,img,q,s,samp,small,strike,strong,sub,sup,tt,var,dd,dl,dt,li,ol,ul,fieldset,form,label,legend,button,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;font-weight:normal;font-style:normal;font-size:100%;line-height:1;font-family:inherit;} table{border-collapse:collapse;border-spacing:0;} ol,ul{list-style:none;} q:before,q:after,blockquote:before,blockquote:after{content:"";} html{overflow-y:scroll;font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;} a:focus{outline:thin dotted;} a:hover,a:active{outline:0;} 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;} sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;} sup{top:-0.5em;} sub{bottom:-0.25em;} img{border:0;-ms-interpolation-mode:bicubic;} button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;} button,input{line-height:normal;*overflow:visible;} button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;} button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button;} input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;} input[type="search"]::-webkit-search-decoration{-webkit-appearance:none;} textarea{overflow:auto;vertical-align:top;} body{background-color:#ffffff;margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:18px;color:#404040;} .container{width:940px;margin-left:auto;margin-right:auto;zoom:1;}.container:before,.container:after{display:table;content:"";zoom:1;} .container:after{clear:both;} .container-fluid{position:relative;min-width:940px;padding-left:20px;padding-right:20px;zoom:1;}.container-fluid:before,.container-fluid:after{display:table;content:"";zoom:1;} .container-fluid:after{clear:both;} .container-fluid>.sidebar{position:absolute;top:0;left:20px;width:220px;} .container-fluid>.content{margin-left:240px;} a{color:#0069d6;text-decoration:none;line-height:inherit;font-weight:inherit;}a:hover{color:#00438a;text-decoration:underline;} .pull-right{float:right;} .pull-left{float:left;} .hide{display:none;} .show{display:block;} .row{zoom:1;margin-left:-20px;}.row:before,.row:after{display:table;content:"";zoom:1;} .row:after{clear:both;} .row>[class*="span"]{display:inline;float:left;margin-left:20px;} .span1{width:40px;} .span2{width:100px;} .span3{width:160px;} .span4{width:220px;} .span5{width:280px;} .span6{width:340px;} .span7{width:400px;} .span8{width:460px;} .span9{width:520px;} .span10{width:580px;} .span11{width:640px;} .span12{width:700px;} .span13{width:760px;} .span14{width:820px;} .span15{width:880px;} .span16{width:940px;} .span17{width:1000px;} .span18{width:1060px;} .span19{width:1120px;} .span20{width:1180px;} .span21{width:1240px;} .span22{width:1300px;} .span23{width:1360px;} .span24{width:1420px;} .row >.offset1{margin-left:80px;} .row >.offset2{margin-left:140px;} .row >.offset3{margin-left:200px;} .row >.offset4{margin-left:260px;} .row >.offset5{margin-left:320px;} .row >.offset6{margin-left:380px;} .row >.offset7{margin-left:440px;} .row >.offset8{margin-left:500px;} .row >.offset9{margin-left:560px;} .row >.offset10{margin-left:620px;} .row >.offset11{margin-left:680px;} .row >.offset12{margin-left:740px;} .span-one-third{width:300px;} .span-two-thirds{width:620px;} .offset-one-third{margin-left:340px;} .offset-two-thirds{margin-left:660px;} p{font-size:13px;font-weight:normal;line-height:18px;margin-bottom:9px;}p small{font-size:11px;color:#bfbfbf;} h1,h2,h3,h4,h5,h6{font-weight:bold;color:#404040;}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{color:#bfbfbf;} h1{margin-bottom:18px;font-size:30px;line-height:36px;}h1 small{font-size:18px;} h2{font-size:24px;line-height:36px;}h2 small{font-size:14px;} h3,h4,h5,h6{line-height:36px;} h3{font-size:18px;}h3 small{font-size:14px;} h4{font-size:16px;}h4 small{font-size:12px;} h5{font-size:14px;} h6{font-size:13px;color:#bfbfbf;text-transform:uppercase;} ul,ol{margin:0 0 18px 25px;} ul ul,ul ol,ol ol,ol ul{margin-bottom:0;} ul{list-style:disc;} ol{list-style:decimal;} li{line-height:18px;color:#808080;} ul.unstyled{list-style:none;margin-left:0;} dl{margin-bottom:18px;}dl dt,dl dd{line-height:18px;} dl dt{font-weight:bold;} dl dd{margin-left:9px;} hr{margin:20px 0 19px;border:0;border-bottom:1px solid #eee;} strong{font-style:inherit;font-weight:bold;} em{font-style:italic;font-weight:inherit;line-height:inherit;} .muted{color:#bfbfbf;} blockquote{margin-bottom:18px;border-left:5px solid #eee;padding-left:15px;}blockquote p{font-size:14px;font-weight:300;line-height:18px;margin-bottom:0;} blockquote small{display:block;font-size:12px;font-weight:300;line-height:18px;color:#bfbfbf;}blockquote small:before{content:'\2014 \00A0';} address{display:block;line-height:18px;margin-bottom:18px;} code,pre{padding:0 3px 2px;font-family:Monaco, Andale Mono, Courier New, monospace;font-size:12px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} code{background-color:#fee9cc;color:rgba(0, 0, 0, 0.75);padding:1px 3px;} pre{background-color:#f5f5f5;display:block;padding:8.5px;margin:0 0 18px;line-height:18px;font-size:12px;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.15);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;white-space:pre;white-space:pre-wrap;word-wrap:break-word;} form{margin-bottom:18px;} fieldset{margin-bottom:18px;padding-top:18px;}fieldset legend{display:block;padding-left:150px;font-size:19.5px;line-height:1;color:#404040;*padding:0 0 5px 145px;*line-height:1.5;} form .clearfix{margin-bottom:18px;zoom:1;}form .clearfix:before,form .clearfix:after{display:table;content:"";zoom:1;} form .clearfix:after{clear:both;} label,input,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:normal;} label{padding-top:6px;font-size:13px;line-height:18px;float:left;width:130px;text-align:right;color:#404040;} form .input{margin-left:150px;} input[type=checkbox],input[type=radio]{cursor:pointer;} input,textarea,select,.uneditable-input{display:inline-block;width:210px;height:18px;padding:4px;font-size:13px;line-height:18px;color:#808080;border:1px solid #ccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} select{padding:initial;} input[type=checkbox],input[type=radio]{width:auto;height:auto;padding:0;margin:3px 0;*margin-top:0;line-height:normal;border:none;} input[type=file]{background-color:#ffffff;padding:initial;border:initial;line-height:initial;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} input[type=button],input[type=reset],input[type=submit]{width:auto;height:auto;} select,input[type=file]{height:27px;*height:auto;line-height:27px;*margin-top:4px;} select[multiple]{height:inherit;background-color:#ffffff;} textarea{height:auto;} .uneditable-input{background-color:#ffffff;display:block;border-color:#eee;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);cursor:not-allowed;} :-moz-placeholder{color:#bfbfbf;} ::-webkit-input-placeholder{color:#bfbfbf;} input,textarea{-webkit-transform-style:preserve-3d;-webkit-transition:border linear 0.2s,box-shadow linear 0.2s;-moz-transition:border linear 0.2s,box-shadow linear 0.2s;-ms-transition:border linear 0.2s,box-shadow linear 0.2s;-o-transition:border linear 0.2s,box-shadow linear 0.2s;transition:border linear 0.2s,box-shadow linear 0.2s;-webkit-box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.1);-moz-box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.1);box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.1);} input:focus,textarea:focus{outline:0;border-color:rgba(82, 168, 236, 0.8);-webkit-box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.1),0 0 8px rgba(82, 168, 236, 0.6);-moz-box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.1),0 0 8px rgba(82, 168, 236, 0.6);box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.1),0 0 8px rgba(82, 168, 236, 0.6);} input[type=file]:focus,input[type=checkbox]:focus,select:focus{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;outline:1px dotted #666;} form .clearfix.error>label,form .clearfix.error .help-block,form .clearfix.error .help-inline{color:#b94a48;} form .clearfix.error input,form .clearfix.error textarea{color:#b94a48;border-color:#ee5f5b;}form .clearfix.error input:focus,form .clearfix.error textarea: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 .clearfix.error .input-prepend .add-on,form .clearfix.error .input-append .add-on{color:#b94a48;background-color:#fce6e6;border-color:#b94a48;} form .clearfix.warning>label,form .clearfix.warning .help-block,form .clearfix.warning .help-inline{color:#c09853;} form .clearfix.warning input,form .clearfix.warning textarea{color:#c09853;border-color:#ccae64;}form .clearfix.warning input:focus,form .clearfix.warning textarea:focus{border-color:#be9a3f;-webkit-box-shadow:0 0 6px #e5d6b1;-moz-box-shadow:0 0 6px #e5d6b1;box-shadow:0 0 6px #e5d6b1;} form .clearfix.warning .input-prepend .add-on,form .clearfix.warning .input-append .add-on{color:#c09853;background-color:#d2b877;border-color:#c09853;} form .clearfix.success>label,form .clearfix.success .help-block,form .clearfix.success .help-inline{color:#468847;} form .clearfix.success input,form .clearfix.success textarea{color:#468847;border-color:#57a957;}form .clearfix.success input:focus,form .clearfix.success textarea:focus{border-color:#458845;-webkit-box-shadow:0 0 6px #9acc9a;-moz-box-shadow:0 0 6px #9acc9a;box-shadow:0 0 6px #9acc9a;} form .clearfix.success .input-prepend .add-on,form .clearfix.success .input-append .add-on{color:#468847;background-color:#bcddbc;border-color:#468847;} .input-mini,input.mini,textarea.mini,select.mini{width:60px;} .input-small,input.small,textarea.small,select.small{width:90px;} .input-medium,input.medium,textarea.medium,select.medium{width:150px;} .input-large,input.large,textarea.large,select.large{width:210px;} .input-xlarge,input.xlarge,textarea.xlarge,select.xlarge{width:270px;} .input-xxlarge,input.xxlarge,textarea.xxlarge,select.xxlarge{width:530px;} textarea.xxlarge{overflow-y:auto;} input.span1,textarea.span1{display:inline-block;float:none;width:30px;margin-left:0;} input.span2,textarea.span2{display:inline-block;float:none;width:90px;margin-left:0;} input.span3,textarea.span3{display:inline-block;float:none;width:150px;margin-left:0;} input.span4,textarea.span4{display:inline-block;float:none;width:210px;margin-left:0;} input.span5,textarea.span5{display:inline-block;float:none;width:270px;margin-left:0;} input.span6,textarea.span6{display:inline-block;float:none;width:330px;margin-left:0;} input.span7,textarea.span7{display:inline-block;float:none;width:390px;margin-left:0;} input.span8,textarea.span8{display:inline-block;float:none;width:450px;margin-left:0;} input.span9,textarea.span9{display:inline-block;float:none;width:510px;margin-left:0;} input.span10,textarea.span10{display:inline-block;float:none;width:570px;margin-left:0;} input.span11,textarea.span11{display:inline-block;float:none;width:630px;margin-left:0;} input.span12,textarea.span12{display:inline-block;float:none;width:690px;margin-left:0;} input.span13,textarea.span13{display:inline-block;float:none;width:750px;margin-left:0;} input.span14,textarea.span14{display:inline-block;float:none;width:810px;margin-left:0;} input.span15,textarea.span15{display:inline-block;float:none;width:870px;margin-left:0;} input.span16,textarea.span16{display:inline-block;float:none;width:930px;margin-left:0;} input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{background-color:#f5f5f5;border-color:#ddd;cursor:not-allowed;} .actions{background:#f5f5f5;margin-top:18px;margin-bottom:18px;padding:17px 20px 18px 150px;border-top:1px solid #ddd;-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;}.actions .secondary-action{float:right;}.actions .secondary-action a{line-height:30px;}.actions .secondary-action a:hover{text-decoration:underline;} .help-inline,.help-block{font-size:13px;line-height:18px;color:#bfbfbf;} .help-inline{padding-left:5px;*position:relative;*top:-5px;} .help-block{display:block;max-width:600px;} .inline-inputs{color:#808080;}.inline-inputs span{padding:0 2px 0 1px;} .input-prepend input,.input-append input{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;} .input-prepend .add-on,.input-append .add-on{position:relative;background:#f5f5f5;border:1px solid #ccc;z-index:2;float:left;display:block;width:auto;min-width:16px;height:18px;padding:4px 4px 4px 5px;margin-right:-1px;font-weight:normal;line-height:18px;color:#bfbfbf;text-align:center;text-shadow:0 1px 0 #ffffff;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;} .input-prepend .active,.input-append .active{background:#a9dba9;border-color:#46a546;} .input-prepend .add-on{*margin-top:1px;} .input-append input{float:left;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;} .input-append .add-on{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;margin-right:0;margin-left:-1px;} .inputs-list{margin:0 0 5px;width:100%;}.inputs-list li{display:block;padding:0;width:100%;} .inputs-list label{display:block;float:none;width:auto;padding:0;margin-left:20px;line-height:18px;text-align:left;white-space:normal;}.inputs-list label strong{color:#808080;} .inputs-list label small{font-size:11px;font-weight:normal;} .inputs-list .inputs-list{margin-left:25px;margin-bottom:10px;padding-top:0;} .inputs-list:first-child{padding-top:6px;} .inputs-list li+li{padding-top:2px;} .inputs-list input[type=radio],.inputs-list input[type=checkbox]{margin-bottom:0;margin-left:-20px;float:left;} .form-stacked{padding-left:20px;}.form-stacked fieldset{padding-top:9px;} .form-stacked legend{padding-left:0;} .form-stacked label{display:block;float:none;width:auto;font-weight:bold;text-align:left;line-height:20px;padding-top:0;} .form-stacked .clearfix{margin-bottom:9px;}.form-stacked .clearfix div.input{margin-left:0;} .form-stacked .inputs-list{margin-bottom:0;}.form-stacked .inputs-list li{padding-top:0;}.form-stacked .inputs-list li label{font-weight:normal;padding-top:0;} .form-stacked div.clearfix.error{padding-top:10px;padding-bottom:10px;padding-left:10px;margin-top:0;margin-left:-10px;} .form-stacked .actions{margin-left:-20px;padding-left:20px;} table{width:100%;margin-bottom:18px;padding:0;font-size:13px;border-collapse:collapse;}table th,table td{padding:10px 10px 9px;line-height:18px;text-align:left;} table th{padding-top:9px;font-weight:bold;vertical-align:middle;} table td{vertical-align:top;border-top:1px solid #ddd;} table tbody th{border-top:1px solid #ddd;vertical-align:top;} .condensed-table th,.condensed-table td{padding:5px 5px 4px;} .bordered-table{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.bordered-table th+th,.bordered-table td+td,.bordered-table th+td{border-left:1px solid #ddd;} .bordered-table thead tr:first-child th:first-child,.bordered-table tbody tr:first-child td:first-child{-webkit-border-radius:4px 0 0 0;-moz-border-radius:4px 0 0 0;border-radius:4px 0 0 0;} .bordered-table thead tr:first-child th:last-child,.bordered-table tbody tr:first-child td:last-child{-webkit-border-radius:0 4px 0 0;-moz-border-radius:0 4px 0 0;border-radius:0 4px 0 0;} .bordered-table tbody tr:last-child td:first-child{-webkit-border-radius:0 0 0 4px;-moz-border-radius:0 0 0 4px;border-radius:0 0 0 4px;} .bordered-table tbody tr:last-child td:last-child{-webkit-border-radius:0 0 4px 0;-moz-border-radius:0 0 4px 0;border-radius:0 0 4px 0;} table .span1{width:20px;} table .span2{width:60px;} table .span3{width:100px;} table .span4{width:140px;} table .span5{width:180px;} table .span6{width:220px;} table .span7{width:260px;} table .span8{width:300px;} table .span9{width:340px;} table .span10{width:380px;} table .span11{width:420px;} table .span12{width:460px;} table .span13{width:500px;} table .span14{width:540px;} table .span15{width:580px;} table .span16{width:620px;} .zebra-striped tbody tr:nth-child(odd) td,.zebra-striped tbody tr:nth-child(odd) th{background-color:#f9f9f9;} .zebra-striped tbody tr:hover td,.zebra-striped tbody tr:hover th{background-color:#f5f5f5;} table .header{cursor:pointer;}table .header:after{content:"";float:right;margin-top:7px;border-width:0 4px 4px;border-style:solid;border-color:#000 transparent;visibility:hidden;} table .headerSortUp,table .headerSortDown{background-color:rgba(141, 192, 219, 0.25);text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);} table .header:hover:after{visibility:visible;} table .headerSortDown:after,table .headerSortDown:hover:after{visibility:visible;filter:alpha(opacity=60);-khtml-opacity:0.6;-moz-opacity:0.6;opacity:0.6;} table .headerSortUp:after{border-bottom:none;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000;visibility:visible;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:alpha(opacity=60);-khtml-opacity:0.6;-moz-opacity:0.6;opacity:0.6;} table .blue{color:#049cdb;border-bottom-color:#049cdb;} table .headerSortUp.blue,table .headerSortDown.blue{background-color:#ade6fe;} table .green{color:#46a546;border-bottom-color:#46a546;} table .headerSortUp.green,table .headerSortDown.green{background-color:#cdeacd;} table .red{color:#9d261d;border-bottom-color:#9d261d;} table .headerSortUp.red,table .headerSortDown.red{background-color:#f4c8c5;} table .yellow{color:#ffc40d;border-bottom-color:#ffc40d;} table .headerSortUp.yellow,table .headerSortDown.yellow{background-color:#fff6d9;} table .orange{color:#f89406;border-bottom-color:#f89406;} table .headerSortUp.orange,table .headerSortDown.orange{background-color:#fee9cc;} table .purple{color:#7a43b6;border-bottom-color:#7a43b6;} table .headerSortUp.purple,table .headerSortDown.purple{background-color:#e2d5f0;} .topbar{height:40px;position:fixed;top:0;left:0;right:0;z-index:10000;overflow:visible;}.topbar a{color:#bfbfbf;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);} .topbar h3 a:hover,.topbar .brand:hover,.topbar ul .active>a{background-color:#333;background-color:rgba(255, 255, 255, 0.05);color:#ffffff;text-decoration:none;} .topbar h3{position:relative;} .topbar h3 a,.topbar .brand{float:left;display:block;padding:8px 20px 12px;margin-left:-20px;color:#ffffff;font-size:20px;font-weight:200;line-height:1;} .topbar p{margin:0;line-height:40px;}.topbar p a:hover{background-color:transparent;color:#ffffff;} .topbar form{float:left;margin:5px 0 0 0;position:relative;filter:alpha(opacity=100);-khtml-opacity:1;-moz-opacity:1;opacity:1;} .topbar form.pull-right{float:right;} .topbar input{background-color:#444;background-color:rgba(255, 255, 255, 0.3);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:normal;font-weight:13px;line-height:1;padding:4px 9px;color:#ffffff;color:rgba(255, 255, 255, 0.75);border:1px solid #111;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.25);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.25);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.25);-webkit-transform-style:preserve-3d;-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none;}.topbar input:-moz-placeholder{color:#e6e6e6;} .topbar input::-webkit-input-placeholder{color:#e6e6e6;} .topbar input:hover{background-color:#bfbfbf;background-color:rgba(255, 255, 255, 0.5);color:#ffffff;} .topbar input:focus,.topbar input.focused{outline:0;background-color:#ffffff;color:#404040;text-shadow:0 1px 0 #ffffff;border:0;padding:5px 10px;-webkit-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);-moz-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);box-shadow:0 0 3px rgba(0, 0, 0, 0.15);} .topbar-inner,.topbar .fill{background-color:#222;background-color:#222222;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#333333), to(#222222));background-image:-moz-linear-gradient(top, #333333, #222222);background-image:-ms-linear-gradient(top, #333333, #222222);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #333333), color-stop(100%, #222222));background-image:-webkit-linear-gradient(top, #333333, #222222);background-image:-o-linear-gradient(top, #333333, #222222);background-image:linear-gradient(top, #333333, #222222);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);} .topbar div>ul,.nav{display:block;float:left;margin:0 10px 0 0;position:relative;left:0;}.topbar div>ul>li,.nav>li{display:block;float:left;} .topbar div>ul a,.nav a{display:block;float:none;padding:10px 10px 11px;line-height:19px;text-decoration:none;}.topbar div>ul a:hover,.nav a:hover{color:#ffffff;text-decoration:none;} .topbar div>ul .active>a,.nav .active>a{background-color:#222;background-color:rgba(0, 0, 0, 0.5);} .topbar div>ul.secondary-nav,.nav.secondary-nav{float:right;margin-left:10px;margin-right:0;}.topbar div>ul.secondary-nav .menu-dropdown,.nav.secondary-nav .menu-dropdown,.topbar div>ul.secondary-nav .dropdown-menu,.nav.secondary-nav .dropdown-menu{right:0;border:0;} .topbar div>ul a.menu:hover,.nav a.menu:hover,.topbar div>ul li.open .menu,.nav li.open .menu,.topbar div>ul .dropdown-toggle:hover,.nav .dropdown-toggle:hover,.topbar div>ul .dropdown.open .dropdown-toggle,.nav .dropdown.open .dropdown-toggle{background:#444;background:rgba(255, 255, 255, 0.05);} .topbar div>ul .menu-dropdown,.nav .menu-dropdown,.topbar div>ul .dropdown-menu,.nav .dropdown-menu{background-color:#333;}.topbar div>ul .menu-dropdown a.menu,.nav .menu-dropdown a.menu,.topbar div>ul .dropdown-menu a.menu,.nav .dropdown-menu a.menu,.topbar div>ul .menu-dropdown .dropdown-toggle,.nav .menu-dropdown .dropdown-toggle,.topbar div>ul .dropdown-menu .dropdown-toggle,.nav .dropdown-menu .dropdown-toggle{color:#ffffff;}.topbar div>ul .menu-dropdown a.menu.open,.nav .menu-dropdown a.menu.open,.topbar div>ul .dropdown-menu a.menu.open,.nav .dropdown-menu a.menu.open,.topbar div>ul .menu-dropdown .dropdown-toggle.open,.nav .menu-dropdown .dropdown-toggle.open,.topbar div>ul .dropdown-menu .dropdown-toggle.open,.nav .dropdown-menu .dropdown-toggle.open{background:#444;background:rgba(255, 255, 255, 0.05);} .topbar div>ul .menu-dropdown li a,.nav .menu-dropdown li a,.topbar div>ul .dropdown-menu li a,.nav .dropdown-menu li a{color:#999;text-shadow:0 1px 0 rgba(0, 0, 0, 0.5);}.topbar div>ul .menu-dropdown li a:hover,.nav .menu-dropdown li a:hover,.topbar div>ul .dropdown-menu li a:hover,.nav .dropdown-menu li a:hover{background-color:#191919;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#292929), to(#191919));background-image:-moz-linear-gradient(top, #292929, #191919);background-image:-ms-linear-gradient(top, #292929, #191919);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #292929), color-stop(100%, #191919));background-image:-webkit-linear-gradient(top, #292929, #191919);background-image:-o-linear-gradient(top, #292929, #191919);background-image:linear-gradient(top, #292929, #191919);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#292929', endColorstr='#191919', GradientType=0);color:#ffffff;} .topbar div>ul .menu-dropdown .active a,.nav .menu-dropdown .active a,.topbar div>ul .dropdown-menu .active a,.nav .dropdown-menu .active a{color:#ffffff;} .topbar div>ul .menu-dropdown .divider,.nav .menu-dropdown .divider,.topbar div>ul .dropdown-menu .divider,.nav .dropdown-menu .divider{background-color:#222;border-color:#444;} .topbar ul .menu-dropdown li a,.topbar ul .dropdown-menu li a{padding:4px 15px;} li.menu,.dropdown{position:relative;} a.menu:after,.dropdown-toggle:after{width:0;height:0;display:inline-block;content:"↓";text-indent:-99999px;vertical-align:top;margin-top:8px;margin-left:4px;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #ffffff;filter:alpha(opacity=50);-khtml-opacity:0.5;-moz-opacity:0.5;opacity:0.5;} .menu-dropdown,.dropdown-menu{background-color:#ffffff;float:left;display:none;position:absolute;top:40px;z-index:900;min-width:160px;max-width:220px;_width:160px;margin-left:0;margin-right:0;padding:6px 0;zoom:1;border-color:#999;border-color:rgba(0, 0, 0, 0.2);border-style:solid;border-width:0 1px 1px;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:0 2px 4px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 2px 4px rgba(0, 0, 0, 0.2);box-shadow:0 2px 4px rgba(0, 0, 0, 0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;}.menu-dropdown li,.dropdown-menu li{float:none;display:block;background-color:none;} .menu-dropdown .divider,.dropdown-menu .divider{height:1px;margin:5px 0;overflow:hidden;background-color:#eee;border-bottom:1px solid #ffffff;} .topbar .dropdown-menu a,.dropdown-menu a{display:block;padding:4px 15px;clear:both;font-weight:normal;line-height:18px;color:#808080;text-shadow:0 1px 0 #ffffff;}.topbar .dropdown-menu a:hover,.dropdown-menu a:hover,.topbar .dropdown-menu a.hover,.dropdown-menu a.hover{background-color:#dddddd;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#eeeeee), to(#dddddd));background-image:-moz-linear-gradient(top, #eeeeee, #dddddd);background-image:-ms-linear-gradient(top, #eeeeee, #dddddd);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #eeeeee), color-stop(100%, #dddddd));background-image:-webkit-linear-gradient(top, #eeeeee, #dddddd);background-image:-o-linear-gradient(top, #eeeeee, #dddddd);background-image:linear-gradient(top, #eeeeee, #dddddd);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#dddddd', GradientType=0);color:#404040;text-decoration:none;-webkit-box-shadow:inset 0 1px 0 rgba(0, 0, 0, 0.025),inset 0 -1px rgba(0, 0, 0, 0.025);-moz-box-shadow:inset 0 1px 0 rgba(0, 0, 0, 0.025),inset 0 -1px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 0 rgba(0, 0, 0, 0.025),inset 0 -1px rgba(0, 0, 0, 0.025);} .open .menu,.dropdown.open .menu,.open .dropdown-toggle,.dropdown.open .dropdown-toggle{color:#ffffff;background:#ccc;background:rgba(0, 0, 0, 0.3);} .open .menu-dropdown,.dropdown.open .menu-dropdown,.open .dropdown-menu,.dropdown.open .dropdown-menu{display:block;} .tabs,.pills{margin:0 0 18px;padding:0;list-style:none;zoom:1;}.tabs:before,.pills:before,.tabs:after,.pills:after{display:table;content:"";zoom:1;} .tabs:after,.pills:after{clear:both;} .tabs>li,.pills>li{float:left;}.tabs>li>a,.pills>li>a{display:block;} .tabs{border-color:#ddd;border-style:solid;border-width:0 0 1px;}.tabs>li{position:relative;margin-bottom:-1px;}.tabs>li>a{padding:0 15px;margin-right:2px;line-height:34px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}.tabs>li>a:hover{text-decoration:none;background-color:#eee;border-color:#eee #eee #ddd;} .tabs .active>a,.tabs .active>a:hover{color:#808080;background-color:#ffffff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default;} .tabs .menu-dropdown,.tabs .dropdown-menu{top:35px;border-width:1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px;} .tabs a.menu:after,.tabs .dropdown-toggle:after{border-top-color:#999;margin-top:15px;margin-left:5px;} .tabs li.open.menu .menu,.tabs .open.dropdown .dropdown-toggle{border-color:#999;} .tabs li.open a.menu:after,.tabs .dropdown.open .dropdown-toggle:after{border-top-color:#555;} .pills a{margin:5px 3px 5px 0;padding:0 15px;line-height:30px;text-shadow:0 1px 1px #ffffff;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;}.pills a:hover{color:#ffffff;text-decoration:none;text-shadow:0 1px 1px rgba(0, 0, 0, 0.25);background-color:#00438a;} .pills .active a{color:#ffffff;text-shadow:0 1px 1px rgba(0, 0, 0, 0.25);background-color:#0069d6;} .pills-vertical>li{float:none;} .tab-content>.tab-pane,.pill-content>.pill-pane{display:none;} .tab-content>.active,.pill-content>.active{display:block;} .breadcrumb{padding:7px 14px;margin:0 0 18px;background-color:#f5f5f5;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#ffffff), to(#f5f5f5));background-image:-moz-linear-gradient(top, #ffffff, #f5f5f5);background-image:-ms-linear-gradient(top, #ffffff, #f5f5f5);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #ffffff), color-stop(100%, #f5f5f5));background-image:-webkit-linear-gradient(top, #ffffff, #f5f5f5);background-image:-o-linear-gradient(top, #ffffff, #f5f5f5);background-image:linear-gradient(top, #ffffff, #f5f5f5);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0);border:1px solid #ddd;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;}.breadcrumb li{display:inline;text-shadow:0 1px 0 #ffffff;} .breadcrumb .divider{padding:0 5px;color:#bfbfbf;} .breadcrumb .active a{color:#404040;} .hero-unit{background-color:#f5f5f5;margin-bottom:30px;padding:60px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;} .hero-unit p{font-size:18px;font-weight:200;line-height:27px;} footer{margin-top:17px;padding-top:17px;border-top:1px solid #eee;} .page-header{margin-bottom:17px;border-bottom:1px solid #ddd;-webkit-box-shadow:0 1px 0 rgba(255, 255, 255, 0.5);-moz-box-shadow:0 1px 0 rgba(255, 255, 255, 0.5);box-shadow:0 1px 0 rgba(255, 255, 255, 0.5);}.page-header h1{margin-bottom:8px;} .btn.danger,.alert-message.danger,.btn.danger:hover,.alert-message.danger:hover,.btn.error,.alert-message.error,.btn.error:hover,.alert-message.error:hover,.btn.success,.alert-message.success,.btn.success:hover,.alert-message.success:hover,.btn.info,.alert-message.info,.btn.info:hover,.alert-message.info:hover{color:#ffffff;} .btn .close,.alert-message .close{font-family:Arial,sans-serif;line-height:18px;} .btn.danger,.alert-message.danger,.btn.error,.alert-message.error{background-color:#c43c35;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35));background-image:-moz-linear-gradient(top, #ee5f5b, #c43c35);background-image:-ms-linear-gradient(top, #ee5f5b, #c43c35);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35));background-image:-webkit-linear-gradient(top, #ee5f5b, #c43c35);background-image:-o-linear-gradient(top, #ee5f5b, #c43c35);background-image:linear-gradient(top, #ee5f5b, #c43c35);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);border-color:#c43c35 #c43c35 #882a25;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);} .btn.success,.alert-message.success{background-color:#57a957;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#62c462), to(#57a957));background-image:-moz-linear-gradient(top, #62c462, #57a957);background-image:-ms-linear-gradient(top, #62c462, #57a957);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #57a957));background-image:-webkit-linear-gradient(top, #62c462, #57a957);background-image:-o-linear-gradient(top, #62c462, #57a957);background-image:linear-gradient(top, #62c462, #57a957);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);border-color:#57a957 #57a957 #3d773d;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);} .btn.info,.alert-message.info{background-color:#339bb9;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#5bc0de), to(#339bb9));background-image:-moz-linear-gradient(top, #5bc0de, #339bb9);background-image:-ms-linear-gradient(top, #5bc0de, #339bb9);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de), color-stop(100%, #339bb9));background-image:-webkit-linear-gradient(top, #5bc0de, #339bb9);background-image:-o-linear-gradient(top, #5bc0de, #339bb9);background-image:linear-gradient(top, #5bc0de, #339bb9);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);border-color:#339bb9 #339bb9 #22697d;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);} .btn{cursor:pointer;display:inline-block;background-color:#e6e6e6;background-repeat:no-repeat;background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), color-stop(25%, #ffffff), to(#e6e6e6));background-image:-webkit-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-image:-moz-linear-gradient(top, #ffffff, #ffffff 25%, #e6e6e6);background-image:-ms-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-image:-o-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-image:linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);padding:5px 14px 6px;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);color:#333;font-size:13px;line-height:normal;border:1px solid #ccc;border-bottom-color:#bbb;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);-webkit-transform-style:preserve-3d;-webkit-transition:0.1s linear all;-moz-transition:0.1s linear all;-ms-transition:0.1s linear all;-o-transition:0.1s linear all;transition:0.1s linear all;}.btn:hover{background-position:0 -15px;color:#333;text-decoration:none;} .btn:focus{outline:1px dotted #666;} .btn.primary{color:#ffffff;background-color:#0064cd;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#049cdb), to(#0064cd));background-image:-moz-linear-gradient(top, #049cdb, #0064cd);background-image:-ms-linear-gradient(top, #049cdb, #0064cd);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #049cdb), color-stop(100%, #0064cd));background-image:-webkit-linear-gradient(top, #049cdb, #0064cd);background-image:-o-linear-gradient(top, #049cdb, #0064cd);background-image:linear-gradient(top, #049cdb, #0064cd);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#049cdb', endColorstr='#0064cd', GradientType=0);text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);border-color:#0064cd #0064cd #003f81;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);} .btn.active,.btn :active{-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.25),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.25),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.25),0 1px 2px rgba(0, 0, 0, 0.05);} .btn.disabled{cursor:default;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=65);-khtml-opacity:0.65;-moz-opacity:0.65;opacity:0.65;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} .btn[disabled]{cursor:default;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=65);-khtml-opacity:0.65;-moz-opacity:0.65;opacity:0.65;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} .btn.large{font-size:15px;line-height:normal;padding:9px 14px 9px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;} .btn.small{padding:7px 9px 7px;font-size:11px;} :root .alert-message,:root .btn{border-radius:0 \0;} button.btn::-moz-focus-inner,input[type=submit].btn::-moz-focus-inner{padding:0;border:0;} .close{float:right;color:#000000;font-size:20px;font-weight:bold;line-height:13.5px;text-shadow:0 1px 0 #ffffff;filter:alpha(opacity=25);-khtml-opacity:0.25;-moz-opacity:0.25;opacity:0.25;}.close:hover{color:#000000;text-decoration:none;filter:alpha(opacity=40);-khtml-opacity:0.4;-moz-opacity:0.4;opacity:0.4;} .alert-message{position:relative;padding:7px 15px;margin-bottom:18px;color:#404040;background-color:#eedc94;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94));background-image:-moz-linear-gradient(top, #fceec1, #eedc94);background-image:-ms-linear-gradient(top, #fceec1, #eedc94);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94));background-image:-webkit-linear-gradient(top, #fceec1, #eedc94);background-image:-o-linear-gradient(top, #fceec1, #eedc94);background-image:linear-gradient(top, #fceec1, #eedc94);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0);text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);border-color:#eedc94 #eedc94 #e4c652;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);border-width:1px;border-style:solid;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.25);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.25);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.25);}.alert-message .close{margin-top:1px;*margin-top:0;} .alert-message a{font-weight:bold;color:#404040;} .alert-message.danger p a,.alert-message.error p a,.alert-message.success p a,.alert-message.info p a{color:#ffffff;} .alert-message h5{line-height:18px;} .alert-message p{margin-bottom:0;} .alert-message div{margin-top:5px;margin-bottom:2px;line-height:28px;} .alert-message .btn{-webkit-box-shadow:0 1px 0 rgba(255, 255, 255, 0.25);-moz-box-shadow:0 1px 0 rgba(255, 255, 255, 0.25);box-shadow:0 1px 0 rgba(255, 255, 255, 0.25);} .alert-message.block-message{background-image:none;background-color:#fdf5d9;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);padding:14px;border-color:#fceec1;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}.alert-message.block-message ul,.alert-message.block-message p{margin-right:30px;} .alert-message.block-message ul{margin-bottom:0;} .alert-message.block-message li{color:#404040;} .alert-message.block-message .alert-actions{margin-top:5px;} .alert-message.block-message.error,.alert-message.block-message.success,.alert-message.block-message.info{color:#404040;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);} .alert-message.block-message.error{background-color:#fddfde;border-color:#fbc7c6;} .alert-message.block-message.success{background-color:#d1eed1;border-color:#bfe7bf;} .alert-message.block-message.info{background-color:#ddf4fb;border-color:#c6edf9;} .alert-message.block-message.danger p a,.alert-message.block-message.error p a,.alert-message.block-message.success p a,.alert-message.block-message.info p a{color:#404040;} .pagination{height:36px;margin:18px 0;}.pagination ul{float:left;margin:0;border:1px solid #ddd;border:1px solid rgba(0, 0, 0, 0.15);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-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 li{display:inline;} .pagination a{float:left;padding:0 14px;line-height:34px;border-right:1px solid;border-right-color:#ddd;border-right-color:rgba(0, 0, 0, 0.15);*border-right-color:#ddd;text-decoration:none;} .pagination a:hover,.pagination .active a{background-color:#c7eefe;} .pagination .disabled a,.pagination .disabled a:hover{background-color:transparent;color:#bfbfbf;} .pagination .next a{border:0;} .well{background-color:#f5f5f5;margin-bottom:20px;padding:19px;min-height:20px;border:1px solid #eee;border:1px solid rgba(0, 0, 0, 0.05);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);}.well blockquote{border-color:#ddd;border-color:rgba(0, 0, 0, 0.15);} .modal-backdrop{background-color:#000000;position:fixed;top:0;left:0;right:0;bottom:0;z-index:10000;}.modal-backdrop.fade{opacity:0;} .modal-backdrop,.modal-backdrop.fade.in{filter:alpha(opacity=80);-khtml-opacity:0.8;-moz-opacity:0.8;opacity:0.8;} .modal{position:fixed;top:50%;left:50%;z-index:11000;width:560px;margin:-250px 0 0 -280px;background-color:#ffffff;border:1px solid #999;border:1px solid rgba(0, 0, 0, 0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;}.modal .close{margin-top:7px;} .modal.fade{-webkit-transform-style:preserve-3d;-webkit-transition:opacity .3s linear, top .3s ease-out;-moz-transition:opacity .3s linear, top .3s ease-out;-ms-transition:opacity .3s linear, top .3s ease-out;-o-transition:opacity .3s linear, top .3s ease-out;transition:opacity .3s linear, top .3s ease-out;top:-25%;} .modal.fade.in{top:50%;} .modal-header{border-bottom:1px solid #eee;padding:5px 15px;} .modal-body{padding:15px;} .modal-body form{margin-bottom:0;} .modal-footer{background-color:#f5f5f5;padding:14px 15px 15px;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;zoom:1;margin-bottom:0;}.modal-footer:before,.modal-footer:after{display:table;content:"";zoom:1;} .modal-footer:after{clear:both;} .modal-footer .btn{float:right;margin-left:5px;} .modal .popover,.modal .twipsy{z-index:12000;} .twipsy{display:block;position:absolute;visibility:visible;padding:5px;font-size:11px;z-index:1000;filter:alpha(opacity=80);-khtml-opacity:0.8;-moz-opacity:0.8;opacity:0.8;}.twipsy.fade.in{filter:alpha(opacity=80);-khtml-opacity:0.8;-moz-opacity:0.8;opacity:0.8;} .twipsy.above .twipsy-arrow{bottom:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #000000;} .twipsy.left .twipsy-arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000000;} .twipsy.below .twipsy-arrow{top:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #000000;} .twipsy.right .twipsy-arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid #000000;} .twipsy-inner{padding:3px 8px;background-color:#000000;color:white;text-align:center;max-width:200px;text-decoration:none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} .twipsy-arrow{position:absolute;width:0;height:0;} .popover{position:absolute;top:0;left:0;z-index:1000;padding:5px;display:none;}.popover.above .arrow{bottom:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #000000;} .popover.right .arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid #000000;} .popover.below .arrow{top:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #000000;} .popover.left .arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000000;} .popover .arrow{position:absolute;width:0;height:0;} .popover .inner{background:#000000;background:rgba(0, 0, 0, 0.8);padding:3px;overflow:hidden;width:280px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);} .popover .title{background-color:#f5f5f5;padding:9px 15px;line-height:1;-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;border-bottom:1px solid #eee;} .popover .content{background-color:#ffffff;padding:14px;-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;}.popover .content p,.popover .content ul,.popover .content ol{margin-bottom:0;} .fade{-webkit-transform-style:preserve-3d;-webkit-transition:opacity 0.15s linear;-moz-transition:opacity 0.15s linear;-ms-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear;opacity:0;}.fade.in{opacity:1;} .label{padding:1px 3px 2px;font-size:9.75px;font-weight:bold;color:#ffffff;text-transform:uppercase;white-space:nowrap;background-color:#bfbfbf;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}.label.important{background-color:#c43c35;} .label.warning{background-color:#f89406;} .label.success{background-color:#46a546;} .label.notice{background-color:#62cffc;} .media-grid{margin-left:-20px;margin-bottom:0;zoom:1;}.media-grid:before,.media-grid:after{display:table;content:"";zoom:1;} .media-grid:after{clear:both;} .media-grid li{display:inline;} .media-grid a{float:left;padding:4px;margin:0 0 18px 20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);}.media-grid a img{display:block;} .media-grid a:hover{border-color:#0069d6;-webkit-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);-moz-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);} haskell-gargantext-151-dev-pubmed-api-key/ekg-assets/chart_line_add.png 0000775 0000000 0000000 00000001443 14341204033 0026225 0 ustar 00root root 0000000 0000000 PNG IHDR a tEXtSoftware Adobe ImageReadyqe<