diff --git a/source/crossdomain.xml b/source/crossdomain.xml
deleted file mode 100644
index df27266..0000000
--- a/source/crossdomain.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/source/cv.pdf b/source/cv.pdf
deleted file mode 100644
index 7a9a11d..0000000
Binary files a/source/cv.pdf and /dev/null differ
diff --git a/source/dn42-2.txt b/source/dn42-2.txt
deleted file mode 100644
index 21d957c..0000000
--- a/source/dn42-2.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-Endpoint: dn42-2.higgsboson.tk
-Public IP for GRE: 2a03:b0c0:0:1010::3d:b001
-ASN: 4242420092
-Tech: IPSEC/GRE only via ipv6, tinc/openvpn also ipv4
-Internal IPs: 172.23.75.65 / fe80::93/64
-
-Ipsec EC384:
------BEGIN PUBLIC KEY-----
-MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE37k1EY8RfNZNEQfG6WtZWPw2whj0hHdv
-rN8OCbGeGWLncvtT3mCxAL3b9EpoxaDK4fvz02dcRPSPsDr8SN8NxLZYyQAjfgy/
-nw9DqgKhxI6Z4dQvsiCKuVH6zWpNcX2C
------END PUBLIC KEY-----
-
-Tinc ED25519: 5h4UU4iiH7IikZaXK0zthlkkiXgBlMECmbNpUr/JT2G
diff --git a/source/dn42.txt b/source/dn42.txt
deleted file mode 100644
index fcc6e58..0000000
--- a/source/dn42.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-Endpoint: dn42.higgsboson.tk
-Public IP for GRE: 2a03:4000:13:31e:1::1
-ASN: 4242420092
-Tech: IPSEC/GRE only over ipv6, tinc/openvpn/wireguard also ipv4
-Internal IPs: 172.23.75.1 / fe80::92/64
-
-Wireguard: fxiGmHUK1aMa07cejTP3SHxYivIj3aXZwdvzTEXmYHM=
-
-Tinc ed25519: 5h4UU4iiH7IikZaXK0zthlkkiXgBlMECmbNpUr/JT2G
-
-Ipsec EC384:
------BEGIN PUBLIC KEY-----
-MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEEkDo2/LTNj67UXZzufqBgHKK3MQDAz1I
-m474yvGRCyUHSqU/KfJrJzVmx3EwGm9CH5kOUeDyezx6W25q0SuTLvppqaMAc3ws
-oJvvi8/4giWopUrSoLM9Tr3taHZ8JQKj
------END PUBLIC KEY-----
-
-Ipsec 4096 RSA:
------BEGIN PUBLIC KEY-----
-MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAu4E47rtn6yY4caxRbD5f
-gWwg6NLClGAFab5KMWsWiVEwU03kWGeWC5sb0xDfUPuXY8tWyaHZFRsXaOObtT00
-M0XLNYK+6pYy7YqKAbbKZ388vrKn3t/TkFaGP6no/k+gIL9RD015wgG431oYY2z7
-zocrchwE5p+6ED1yICed1BYsuxlbTgdIZYNMbBOKFMswVF2vlEScMVSNCRHWwlUw
-5KQCUf6GVYGKUjOnOhBymZPMUVHKnDdDv0ux3zSCwAyqmFxK75BprKGSRSJ5ctt2
-9+t9IgaV60cuMfn3Fb76eC6+TBHfySLV8f55zlQMbXekeHaJVq3zkbnHhmq1CZug
-lpeiu3efTM4Tcmv4R1WY7Ufa84SuU959Zf6qAyG1P/IaL7jkLl2cr0dJ0D+dtLMh
-vRHrfaaJcIf+BODO3ZrmdM71rE0jhsxIN2TY7lNkfuADicBt4qe0TBr7nb/h2YGY
-2Ri+iB39D4LylhEbNt2ITde/9PXr1lGYS+w4WBxNooPp728n+V3N6tFhspIrYkFV
-1ViIW9hCrJG4Pf1kPeQG5Uo9vh/4qH/ED6Rqi5S8CKMyY/Bi5XtnC4QLh+fJ2BTb
-9bicgVa7ArEF0rly6dcI31sXTYk8VRkvzb139+swzL0bR0GPMogFc9ouYK8qN+mV
-5W7maQ8UsMq2zHjpK/SPSZkCAwEAAQ==
------END PUBLIC KEY-----
-
diff --git a/source/favicon.ico b/source/favicon.ico
deleted file mode 100644
index 8555960..0000000
Binary files a/source/favicon.ico and /dev/null differ
diff --git a/source/fonts/fontawesome-webfont.afm b/source/fonts/fontawesome-webfont.afm
deleted file mode 100644
index 99b84f0..0000000
--- a/source/fonts/fontawesome-webfont.afm
+++ /dev/null
@@ -1,44 +0,0 @@
-StartFontMetrics 2.0
-Comment Generated by FontForge 20110222
-Comment Creation Date: Sat Jan 5 16:32:52 2013
-FontName fontawesome
-FullName fontawesome
-FamilyName fontawesome
-Weight Book
-Notice (Copyright 2013 Adobe Systems Incorporated. All rights reserved.)
-ItalicAngle 0
-IsFixedPitch false
-UnderlinePosition -89
-UnderlineThickness 90
-Version 1.00 2012
-EncodingScheme ISO10646-1
-FontBBox 0 -144 1072 858
-Descender -2147483648
-StartCharMetrics 25
-C -1 ; WX 1000 ; N envelope ; B 0 -72 1000 715 ;
-C -1 ; WX 928 ; N star ; B 0 -47 929 840 ;
-C -1 ; WX 785 ; N user ; B 0 -72 786 786 ;
-C -1 ; WX 785 ; N trash ; B 0 -72 786 786 ;
-C -1 ; WX 928 ; N download_alt ; B 0 -72 929 715 ;
-C -1 ; WX 857 ; N inbox ; B 0 0 858 715 ;
-C -1 ; WX 642 ; N lock ; B 0 0 643 786 ;
-C -1 ; WX 785 ; N qrcode ; B 0 0 786 786 ;
-C -1 ; WX 1000 ; N edit ; B 0 0 996 786 ;
-C -1 ; WX 1000 ; N comment ; B 0 -144 1000 715 ;
-C -1 ; WX 1000 ; N key ; B 0 -103 940 786 ;
-C -1 ; WX 1000 ; N comments ; B 0 -72 1000 715 ;
-C -1 ; WX 857 ; N github_sign ; B 0 -72 858 786 ;
-C -1 ; WX 928 ; N upload_alt ; B 0 -72 929 750 ;
-C -1 ; WX 1071 ; N twitter ; B 0 -72 1047 786 ;
-C -1 ; WX 857 ; N github ; B 0 -72 858 786 ;
-C -1 ; WX 785 ; N rss ; B 0 0 786 786 ;
-C -1 ; WX 857 ; N circle_arrow_left ; B 0 -72 858 786 ;
-C -1 ; WX 857 ; N globe ; B 0 -72 858 786 ;
-C -1 ; WX 1071 ; N group ; B 0 -143 1072 858 ;
-C -1 ; WX 1071 ; N cloud ; B 0 0 1072 786 ;
-C -1 ; WX 928 ; N google_plus ; B 0 -143 929 786 ;
-C -1 ; WX 1000 ; N envelope_alt ; B 0 -72 1000 715 ;
-C -1 ; WX 1000 ; N comment_alt ; B 0 -143 1000 715 ;
-C -1 ; WX 928 ; N github_alt ; B 0 -72 929 715 ;
-EndCharMetrics
-EndFontMetrics
diff --git a/source/fonts/fontawesome-webfont.eot b/source/fonts/fontawesome-webfont.eot
deleted file mode 100644
index 251a515..0000000
Binary files a/source/fonts/fontawesome-webfont.eot and /dev/null differ
diff --git a/source/fonts/fontawesome-webfont.ttf b/source/fonts/fontawesome-webfont.ttf
deleted file mode 100644
index fac131a..0000000
Binary files a/source/fonts/fontawesome-webfont.ttf and /dev/null differ
diff --git a/source/fonts/fontawesome-webfont.woff b/source/fonts/fontawesome-webfont.woff
deleted file mode 100644
index 04e15ce..0000000
Binary files a/source/fonts/fontawesome-webfont.woff and /dev/null differ
diff --git a/source/fonts/mensch.eot b/source/fonts/mensch.eot
deleted file mode 100644
index 7a6fd22..0000000
Binary files a/source/fonts/mensch.eot and /dev/null differ
diff --git a/source/fonts/mensch.svg b/source/fonts/mensch.svg
deleted file mode 100644
index d2dece2..0000000
--- a/source/fonts/mensch.svg
+++ /dev/null
@@ -1,8889 +0,0 @@
-
-
-
-
-Created by FontForge 20090914 at Fri Jul 27 10:28:38 2012
- By www-data
-Copyright `2010 Robey Pointer. Copyright `2009 Apple Inc. Copyright `2006 by Tavmjong Bah. Copyright `2003 by Bitstream, Inc. All Rights Reserved.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/source/fonts/mensch.ttf b/source/fonts/mensch.ttf
deleted file mode 100644
index 2ead72a..0000000
Binary files a/source/fonts/mensch.ttf and /dev/null differ
diff --git a/source/fonts/mensch.woff b/source/fonts/mensch.woff
deleted file mode 100644
index 0d4aa42..0000000
Binary files a/source/fonts/mensch.woff and /dev/null differ
diff --git a/source/humans.txt b/source/humans.txt
deleted file mode 100644
index 72bebd4..0000000
--- a/source/humans.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-/* the humans responsible & colophon */
-/* humanstxt.org */
-
-
-/* TEAM */
- IOS Programmer: Albert Schulz <--- hire this guy
- Twitter: @albert_sn
- Location: Germany
-
- Programmer & Admin: Jörg Thalheim
- Twitter: @Mic_92
- Location: Germany
-
-/* THANKS */
- Names (& URL):
-
-/* SITE */
- Last update: 2012/08/10
- Standards: HTML5, CSS3
- Css Framework: pure (http://purecss.io)
- Fonts: Lobster, Cabin
- Software: middleman, sass, slim
- IDE: vim
diff --git a/source/images/github.png b/source/images/github.png
deleted file mode 100644
index 544f0ed..0000000
Binary files a/source/images/github.png and /dev/null differ
diff --git a/source/images/logo.png b/source/images/logo.png
deleted file mode 100644
index 1e30b6c..0000000
Binary files a/source/images/logo.png and /dev/null differ
diff --git a/source/images/mail.png b/source/images/mail.png
deleted file mode 100644
index dd32c3a..0000000
Binary files a/source/images/mail.png and /dev/null differ
diff --git a/source/images/spritemap.png b/source/images/spritemap.png
deleted file mode 100644
index 9f21314..0000000
Binary files a/source/images/spritemap.png and /dev/null differ
diff --git a/source/images/spritemap@2x.png b/source/images/spritemap@2x.png
deleted file mode 100644
index e877eea..0000000
Binary files a/source/images/spritemap@2x.png and /dev/null differ
diff --git a/source/images/twitter.png b/source/images/twitter.png
deleted file mode 100644
index d660e1a..0000000
Binary files a/source/images/twitter.png and /dev/null differ
diff --git a/source/impressum.html.slim b/source/impressum.html.slim
deleted file mode 100644
index 066ead2..0000000
--- a/source/impressum.html.slim
+++ /dev/null
@@ -1,223 +0,0 @@
-.container
- h1 Impressum
- p Angaben gemäß § 5 TMG:
- p
- | Albert Schulz
- br/
- | Hauptstraße 25
- br/
- | 01097 Dresden
- br/
- h2 Kontakt:
- table.pure-table summary="How to contact us"
- tr
- td
- p Telefon:
- td
- p 0176 / 30329588
- tr
- td
- p Telefax:
- td
- p -
- tr
- td
- p E-Mail:
- td
- p albert.schulz@me.com
- p
- ' Quelle:
- i Impressumsgenerator,
- ' Rechtsanwalt für
- a href="http://www.e-recht24.de" Sören Siebert
- h2 Haftungsausschluss:
- p
- strong Haftung für Inhalte
- p
- ' Die Inhalte unserer Seiten wurden mit größter Sorgfalt erstellt.
- Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte
- können wir jedoch keine Gewähr übernehmen. Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für
- eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich.
- Nach §§ 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht
- verpflichtet, übermittelte oder gespeicherte fremde Informationen zu
- überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige
- Tätigkeit hinweisen. Verpflichtungen zur Entfernung oder Sperrung der
- Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon
- unberührt. Eine diesbezügliche Haftung ist jedoch erst ab dem
- Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. Bei
- Bekanntwerden von entsprechenden Rechtsverletzungen werden wir diese Inhalte
- umgehend entfernen.
- p
- strong Haftung für Links
- p
- ' Unser Angebot enthält Links zu externen Webseiten Dritter, auf deren
- Inhalte wir keinen Einfluss haben. Deshalb können wir für diese
- fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte
- der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der
- Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung
- auf mögliche Rechtsverstöße überprüft. Rechtswidrige
- Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. Eine permanente
- inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte
- einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen
- werden wir derartige Links umgehend entfernen.
- p
- strong Urheberrecht
- p
- ' Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten
- unterliegen dem deutschen Urheberrecht. Die Vervielfältigung, Bearbeitung, Verbreitung und
- jede Art der Verwertung außerhalb der Grenzen des Urheberrechtes bedürfen
- der schriftlichen Zustimmung des jeweiligen Autors bzw. Erstellers. Downloads
- und Kopien dieser Seite sind nur für den privaten, nicht kommerziellen
- Gebrauch gestattet. Soweit die Inhalte auf dieser Seite nicht vom Betreiber erstellt wurden,
- werden die Urheberrechte Dritter beachtet. Insbesondere werden Inhalte Dritter als solche
- gekennzeichnet. Sollten Sie trotzdem auf eine Urheberrechtsverletzung aufmerksam werden, bitten wir um einen entsprechenden Hinweis.
- Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Inhalte umgehend entfernen.
- p
- strong Datenschutz
- p
- ' Die Nutzung unserer Webseite ist in der Regel ohne Angabe personenbezogener Daten möglich. Soweit auf unseren Seiten personenbezogene Daten (beispielsweise Name,
- Anschrift oder eMail-Adressen) erhoben werden, erfolgt dies, soweit möglich, stets auf freiwilliger Basis. Diese Daten werden ohne Ihre ausdrückliche Zustimmung nicht an Dritte weitergegeben.
- p
- ' Wir weisen darauf hin, dass die Datenübertragung im Internet (z.B.
- bei der Kommunikation per E-Mail) Sicherheitslücken aufweisen kann.
- Ein lückenloser Schutz der Daten vor dem Zugriff durch Dritte ist nicht
- möglich.
- p
- ' Der Nutzung von im Rahmen der Impressumspflicht veröffentlichten Kontaktdaten
- durch Dritte zur Übersendung von nicht ausdrücklich angeforderter
- Werbung und Informationsmaterialien wird hiermit ausdrücklich widersprochen.
- Die Betreiber der Seiten behalten sich ausdrücklich rechtliche Schritte
- im Falle der unverlangten Zusendung von Werbeinformationen, etwa durch Spam-Mails,
- vor.
- p
- strong
- ' Datenschutzerklärung für die Nutzung von Facebook-Plugins
- (Like-Button)
- p
- ' Auf unseren Seiten sind Plugins des sozialen Netzwerks Facebook,
- 1601 South California Avenue, Palo Alto, CA 94304, USA integriert.
- Die Facebook-Plugins erkennen Sie an dem Facebook-Logo oder
- dem "Like-Button" ("Gefällt mir") auf unserer Seite. Eine Übersicht
- über die Facebook-Plugins finden Sie hier:
- a href="http://developers.facebook.com/docs/plugins/" target="_blank" http://developers.facebook.com/docs/plugins/
-
- br/
- ' Wenn Sie unsere Seiten
- besuchen, wird über das Plugin eine direkte Verbindung zwischen Ihrem
- Browser und dem Facebook-Server hergestellt. Facebook erhält dadurch
- die Information, dass Sie mit Ihrer IP-Adresse unsere Seite
- besucht haben. Wenn Sie den Facebook "Like-Button" anklicken während
- Sie in Ihrem Facebook-Account eingeloggt sind, können Sie die Inhalte
- unserer Seiten auf Ihrem Facebook-Profil verlinken. Dadurch kann
- Facebook den Besuch unserer Seiten Ihrem Benutzerkonto zuordnen. Wir
- weisen darauf hin, dass wir als Anbieter der Seiten keine Kenntnis vom
- Inhalt der übermittelten Daten sowie deren Nutzung durch Facebook
- erhalten. Weitere Informationen hierzu finden Sie in der
- Datenschutzerklärung von facebook unter
- a href="http://de-de.facebook.com/policy.php" target="_blank" http://de-de.facebook.com/policy.php
- p
- ' Wenn Sie nicht wünschen, dass Facebook den Besuch unserer Seiten Ihrem
- Facebook-Nutzerkonto zuordnen kann, loggen Sie sich bitte aus Ihrem
- Facebook-Benutzerkonto aus.
- p
- strong Datenschutzerklärung für die Nutzung von Google Adsense
- p
- ' Diese Website benutzt Google AdSense, einen Dienst zum Einbinden
- von Werbeanzeigen der Google Inc. ("Google"). Google AdSense
- verwendet sog. "Cookies", Textdateien, die auf Ihrem Computer
- gespeichert werden und die eine Analyse der Benutzung der Website
- ermöglicht. Google AdSense verwendet auch so genannte Web Beacons
- (unsichtbare Grafiken). Durch diese Web Beacons können Informationen
- wie der Besucherverkehr auf diesen Seiten ausgewertet werden.
- p
- ' Die durch Cookies und Web Beacons erzeugten Informationen über
- die Benutzung dieser Website (einschließlich Ihrer IP-Adresse) und
- Auslieferung von Werbeformaten werden an einen Server von Google
- in den USA übertragen und dort gespeichert. Diese Informationen können
- von Google an Vertragspartner von Google weiter gegeben werden.
- Google wird Ihre IP-Adresse jedoch nicht mit anderen von Ihnen
- gespeicherten Daten zusammenführen.
- p
- ' Sie können die Installation der Cookies durch eine entsprechende
- Einstellung Ihrer Browser Software verhindern; wir weisen Sie jedoch
- darauf hin, dass Sie in diesem Fall gegebenenfalls nicht sämtliche
- Funktionen dieser Website voll umfänglich nutzen können. Durch die
- Nutzung dieser Website erklären Sie sich mit der Bearbeitung der
- über Sie erhobenen Daten durch Google in der zuvor beschriebenen
- Art und Weise und zu dem zuvor benannten Zweck einverstanden.
- p
- strong Datenschutzerklärung für die Nutzung von Google +1
- p
- i Erfassung und Weitergabe von Informationen:
- br/
- ' Mithilfe der Google +1-Schaltfläche können Sie Informationen weltweit
- veröffentlichen. über die Google +1-Schaltfläche erhalten Sie und andere
- Nutzer personalisierte Inhalte von Google und unseren Partnern. Google
- speichert sowohl die Information, dass Sie für einen Inhalt +1 gegeben
- haben, als auch Informationen über die Seite, die Sie beim Klicken auf
- +1 angesehen haben. Ihre +1 können als Hinweise zusammen mit Ihrem
- Profilnamen und Ihrem Foto in Google-Diensten, wie etwa in
- Suchergebnissen oder in Ihrem Google-Profil, oder an anderen Stellen auf
- Websites und Anzeigen im Internet eingeblendet werden.
- br/
- ' Google zeichnet Informationen über Ihre +1-Aktivitäten auf, um die
- Google-Dienste für Sie und andere zu verbessern. Um die Google
- +1-Schaltfläche verwenden zu können, benötigen Sie ein weltweit
- sichtbares, öffentliches Google-Profil, das zumindest den für das
- Profil gewählten Namen enthalten muss. Dieser Name wird in allen
- Google-Diensten verwendet. In manchen Fällen kann dieser Name auch
- einen anderen Namen ersetzen, den Sie beim Teilen von Inhalten über
- Ihr Google-Konto verwendet haben. Die Identität Ihres Google-Profils
- kann Nutzern angezeigt werden, die Ihre E-Mail-Adresse kennen oder
- über andere identifizierende Informationen von Ihnen verfügen.
- br/
- br/
- i Verwendung der erfassten Informationen:
- br/
- ' Neben den oben erläuterten Verwendungszwecken werden die von Ihnen
- bereitgestellten Informationen gemäß den geltenden
- Google-Datenschutzbestimmungen genutzt. Google veröffentlicht
- möglicherweise zusammengefasste Statistiken über die +1-Aktivitäten
- der Nutzer bzw. gibt diese an Nutzer und Partner weiter, wie etwa
- Publisher, Inserenten oder verbundene Websites.
- p
- strong Datenschutzerklärung für die Nutzung von Twitter
- p
- ' Auf unseren Seiten sind Funktionen des Dienstes Twitter eingebunden.
- Diese Funktionen werden angeboten durch die Twitter Inc., 795
- Folsom St., Suite 600, San Francisco, CA 94107, USA. Durch das Benutzen
- von Twitter und der Funktion "Re-Tweet" werden die von Ihnen
- besuchten Webseiten mit Ihrem Twitter-Account verknüpft und anderen
- Nutzern bekannt gegeben. Dabei werden auch Daten an Twitter übertragen.
- p
- ' Wir weisen darauf hin, dass wir als Anbieter der Seiten keine
- Kenntnis vom Inhalt der übermittelten Daten sowie deren Nutzung durch
- Twitter erhalten. Weitere Informationen hierzu finden Sie in der
- Datenschutzerklärung von Twitter unter
- a href="http://twitter.com/privacy" target="_blank"
- | http://twitter.com/privacy
- p
- ' Ihre Datenschutzeinstellungen bei Twitter können Sie in den
- ' Konto-Einstellungen unter
- a href="http://twitter.com/account/settings" target="_blank"
- | http://twitter.com/account/settings
- ' ändern.
- p
- strong Piwik
- /! piwik
- iframe frameborder="no" height="250px" src="//piwik.higgsboson.tk/index.php?module=CoreAdminHome&action=optOut&language=de" width="600px"
- /! piwik
- p
- strong Quellen:
- ul
- li
- a href="http://www.e-recht24.de/muster-disclaimer.htm" target="_blank" Disclaimer eRecht24
- li
- a href="http://www.e-recht24.de/artikel/datenschutz/6590-facebook-like-button-datenschutz-disclaimer.html" target="_blank" Facebook Disclaimer
- li
- a href="http://www.e-recht24.de/artikel/datenschutz/6635-datenschutz-rechtliche-risiken-bei-der-nutzung-von-google-analytics-und-googleadsense.html" target="_blank" eRecht24 Datenschutzerklärung Google Adsense
- li
- a href="http://www.google.com/intl/de/+/policy/+1button.html" target="_blank" Datenschutzerklärung für Google +1
- li
- a href="http://twitter.com/privacy" target="_blank" Twitter Bedingungen
-
diff --git a/source/inbox/DropboxUploader.php b/source/inbox/DropboxUploader.php
deleted file mode 100644
index a833246..0000000
--- a/source/inbox/DropboxUploader.php
+++ /dev/null
@@ -1,164 +0,0 @@
-email = $email;
- $this->password = $password;
- }
-
- public function setCaCertificateFile($file)
- {
- $this->caCertSourceType = self::CACERT_SOURCE_FILE;
- $this->caCertSource = $file;
- }
-
- public function setCaCertificateDir($dir)
- {
- $this->caCertSourceType = self::CACERT_SOURCE_DIR;
- $this->caCertSource = $dir;
- }
-
- public function upload($source, $remoteDir='/', $remoteName=null) {
- if (!is_file($source) or !is_readable($source))
- throw new Exception("File '$source' does not exist or is not readable.");
-
- if (!is_string($remoteDir))
- throw new Exception("Remote directory must be a string, is ".gettype($remoteDir)." instead.");
-
- if (is_null($remoteName)) {
- # intentionally left blank
- } else if (!is_string($remoteName)) {
- throw new Exception("Remote filename must be a string, is ".gettype($remoteDir)." instead.");
- } else {
- $source .= ';filename='.$remoteName;
- }
-
- if (!$this->loggedIn)
- $this->login();
-
- $data = $this->request('https://www.dropbox.com/home');
- $token = $this->extractToken($data, 'https://dl-web.dropbox.com/upload');
-
-
- $postData = array('plain'=>'yes', 'file'=>'@'.$source, 'dest'=>$remoteDir, 't'=>$token);
- $data = $this->request('https://dl-web.dropbox.com/upload', true, $postData);
- if (strpos($data, 'HTTP/1.1 302 FOUND') === false)
- throw new Exception('Upload failed!');
- }
-
- protected function login() {
- $data = $this->request('https://www.dropbox.com/login');
- $token = $this->extractTokenFromLoginForm($data);
-
- $postData = array('login_email'=>$this->email, 'login_password'=>$this->password, 't'=>$token);
- $data = $this->request('https://www.dropbox.com/login', true, $postData);
-
- if (stripos($data, 'location: /home') === false)
- throw new Exception('Login unsuccessful.');
-
- $this->loggedIn = true;
- }
-
- protected function request($url, $post=false, $postData=array()) {
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
- switch ($this->caCertSourceType) {
- case self::CACERT_SOURCE_FILE:
- curl_setopt($ch, CURLOPT_CAINFO, $this->caCertSource);
- break;
- case self::CACERT_SOURCE_DIR:
- curl_setopt($ch, CURLOPT_CAPATH, $this->caCertSource);
- break;
- }
- curl_setopt($ch, CURLOPT_HEADER, 1);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- if ($post) {
- curl_setopt($ch, CURLOPT_POST, $post);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
- }
-
- // Send cookies
- $rawCookies = array();
- foreach ($this->cookies as $k=>$v)
- $rawCookies[] = "$k=$v";
- $rawCookies = implode(';', $rawCookies);
- curl_setopt($ch, CURLOPT_COOKIE, $rawCookies);
-
- $data = curl_exec($ch);
-
- if ($data === false) {
- throw new Exception(sprintf('Curl error: (#%d) %s', curl_errno($ch), curl_error($ch)));
- }
-
- // Store received cookies
- preg_match_all('/Set-Cookie: ([^=]+)=(.*?);/i', $data, $matches, PREG_SET_ORDER);
- foreach ($matches as $match)
- $this->cookies[$match[1]] = $match[2];
-
- curl_close($ch);
-
- return $data;
- }
-
- protected function extractTokenFromLoginForm($html) {
- //
- if (!preg_match('# #', $html, $matches))
- throw new Exception('Cannot extract login CSRF token.');
- return $matches[1];
- }
-
- protected function extractToken($html, $formAction) {
- if (!preg_match('/
");
- form.appendChild(fields);
- } else {
- this.element.setAttribute("enctype", "multipart/form-data");
- this.element.setAttribute("method", this.options.method);
- }
- return form != null ? form : fields;
- };
-
- Dropzone.prototype.getExistingFallback = function() {
- var fallback, getFallback, tagName, _i, _len, _ref;
-
- getFallback = function(elements) {
- var el, _i, _len;
-
- for (_i = 0, _len = elements.length; _i < _len; _i++) {
- el = elements[_i];
- if (/(^| )fallback($| )/.test(el.className)) {
- return el;
- }
- }
- };
- _ref = ["div", "form"];
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- tagName = _ref[_i];
- if (fallback = getFallback(this.element.getElementsByTagName("div"))) {
- return fallback;
- }
- }
- };
-
- Dropzone.prototype.setupEventListeners = function() {
- var event, listener, _ref, _results;
-
- _ref = this.listeners;
- _results = [];
- for (event in _ref) {
- listener = _ref[event];
- _results.push(this.element.addEventListener(event, listener, false));
- }
- return _results;
- };
-
- Dropzone.prototype.removeEventListeners = function() {
- var event, listener, _ref, _results;
-
- _ref = this.listeners;
- _results = [];
- for (event in _ref) {
- listener = _ref[event];
- _results.push(this.element.removeEventListener(event, listener, false));
- }
- return _results;
- };
-
- Dropzone.prototype.disable = function() {
- if (this.options.clickable) {
- this.element.classList.remove("clickable");
- }
- this.removeEventListeners();
- this.filesProcessing = [];
- return this.filesQueue = [];
- };
-
- Dropzone.prototype.enable = function() {
- if (this.options.clickable) {
- this.element.classList.add("clickable");
- }
- return this.setupEventListeners();
- };
-
- Dropzone.prototype.filesize = function(size) {
- var string;
-
- if (size >= 100000000000) {
- size = size / 100000000000;
- string = "TB";
- } else if (size >= 100000000) {
- size = size / 100000000;
- string = "GB";
- } else if (size >= 100000) {
- size = size / 100000;
- string = "MB";
- } else if (size >= 100) {
- size = size / 100;
- string = "KB";
- } else {
- size = size * 10;
- string = "b";
- }
- return "" + (Math.round(size) / 10) + " " + string;
- };
-
- Dropzone.prototype.drop = function(e) {
- var files;
-
- if (!e.dataTransfer) {
- return;
- }
- files = e.dataTransfer.files;
- this.emit("selectedfiles", files);
- if (files.length) {
- return this.handleFiles(files);
- }
- };
-
- Dropzone.prototype.handleFiles = function(files) {
- var file, _i, _len, _results;
-
- _results = [];
- for (_i = 0, _len = files.length; _i < _len; _i++) {
- file = files[_i];
- _results.push(this.addFile(file));
- }
- return _results;
- };
-
- Dropzone.prototype.accept = function(file, done) {
- if (file.size > this.options.maxFilesize * 1024 * 1024) {
- return done("File is too big (" + (Math.round(file.size / 1024 / 10.24) / 100) + "MB). Max filesize: " + this.options.maxFilesize + "MB");
- } else {
- return this.options.accept.call(this, file, done);
- }
- };
-
- Dropzone.prototype.addFile = function(file) {
- var _this = this;
-
- this.files.push(file);
- this.emit("addedfile", file);
- if (this.options.createImageThumbnails && file.type.match(/image.*/) && file.size <= this.options.maxThumbnailFilesize * 1024 * 1024) {
- this.createThumbnail(file);
- }
- return this.accept(file, function(error) {
- if (error) {
- return _this.errorProcessing(file, error);
- } else {
- if (_this.options.enqueueForUpload) {
- _this.filesQueue.push(file);
- return _this.processQueue();
- }
- }
- });
- };
-
- Dropzone.prototype.removeFile = function(file) {
- if (file.processing) {
- throw new Error("Can't remove file currently processing");
- }
- this.files = without(this.files, file);
- this.filesQueue = without(this.filesQueue, file);
- this.emit("removedfile", file);
- if (this.files.length === 0) {
- return this.emit("reset");
- }
- };
-
- Dropzone.prototype.removeAllFiles = function() {
- var file, _i, _len, _ref;
-
- _ref = this.files.slice();
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- file = _ref[_i];
- if (__indexOf.call(this.filesProcessing, file) < 0) {
- this.removeFile(file);
- }
- }
- return null;
- };
-
- Dropzone.prototype.createThumbnail = function(file) {
- var fileReader,
- _this = this;
-
- fileReader = new FileReader;
- fileReader.onload = function() {
- var img;
-
- img = new Image;
- img.onload = function() {
- var canvas, ctx, srcHeight, srcRatio, srcWidth, srcX, srcY, thumbnail, trgHeight, trgRatio, trgWidth, trgX, trgY;
-
- canvas = document.createElement("canvas");
- ctx = canvas.getContext("2d");
- srcX = 0;
- srcY = 0;
- srcWidth = img.width;
- srcHeight = img.height;
- canvas.width = _this.options.thumbnailWidth;
- canvas.height = _this.options.thumbnailHeight;
- trgX = 0;
- trgY = 0;
- trgWidth = canvas.width;
- trgHeight = canvas.height;
- srcRatio = img.width / img.height;
- trgRatio = canvas.width / canvas.height;
- if (img.height < canvas.height || img.width < canvas.width) {
- trgHeight = srcHeight;
- trgWidth = srcWidth;
- } else {
- if (srcRatio > trgRatio) {
- srcHeight = img.height;
- srcWidth = srcHeight * trgRatio;
- } else {
- srcWidth = img.width;
- srcHeight = srcWidth / trgRatio;
- }
- }
- srcX = (img.width - srcWidth) / 2;
- srcY = (img.height - srcHeight) / 2;
- trgY = (canvas.height - trgHeight) / 2;
- trgX = (canvas.width - trgWidth) / 2;
- ctx.drawImage(img, srcX, srcY, srcWidth, srcHeight, trgX, trgY, trgWidth, trgHeight);
- thumbnail = canvas.toDataURL("image/png");
- return _this.emit("thumbnail", file, thumbnail);
- };
- return img.src = fileReader.result;
- };
- return fileReader.readAsDataURL(file);
- };
-
- Dropzone.prototype.processQueue = function() {
- var i, parallelUploads, processingLength;
-
- parallelUploads = this.options.parallelUploads;
- processingLength = this.filesProcessing.length;
- i = processingLength;
- while (i < parallelUploads) {
- if (!this.filesQueue.length) {
- return;
- }
- this.processFile(this.filesQueue.shift());
- i++;
- }
- };
-
- Dropzone.prototype.processFile = function(file) {
- this.filesProcessing.push(file);
- file.processing = true;
- this.emit("processingfile", file);
- return this.uploadFile(file);
- };
-
- Dropzone.prototype.uploadFile = function(file) {
- var formData, handleError, input, inputName, inputType, key, progressObj, value, xhr, _i, _len, _ref, _ref1, _ref2,
- _this = this;
-
- xhr = new XMLHttpRequest();
- xhr.open(this.options.method, this.options.url, true);
- handleError = function() {
- return _this.errorProcessing(file, xhr.responseText || ("Server responded with " + xhr.status + " code."));
- };
- xhr.onload = function(e) {
- var response, _ref;
-
- if (!((200 <= (_ref = xhr.status) && _ref < 300))) {
- return handleError();
- } else {
- _this.emit("uploadprogress", file, 100);
- response = xhr.responseText;
- if (xhr.getResponseHeader("content-type") && ~xhr.getResponseHeader("content-type").indexOf("application/json")) {
- response = JSON.parse(response);
- }
- return _this.finished(file, response, e);
- }
- };
- xhr.onerror = function() {
- return handleError();
- };
- progressObj = (_ref = xhr.upload) != null ? _ref : xhr;
- progressObj.onprogress = function(e) {
- return _this.emit("uploadprogress", file, Math.max(0, Math.min(100, (e.loaded / e.total) * 100)));
- };
- xhr.setRequestHeader("Accept", "application/json");
- xhr.setRequestHeader("Cache-Control", "no-cache");
- xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
- xhr.setRequestHeader("X-File-Name", file.name);
- formData = new FormData();
- if (this.options.params) {
- _ref1 = this.options.params;
- for (key in _ref1) {
- value = _ref1[key];
- formData.append(key, value);
- }
- }
- if (this.element.tagName === "FORM") {
- _ref2 = this.element.querySelectorAll("input, textarea, select, button");
- for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
- input = _ref2[_i];
- inputName = input.getAttribute("name");
- inputType = input.getAttribute("type");
- if (!inputType || inputType.toLowerCase() !== "checkbox" || input.checked) {
- formData.append(inputName, input.value);
- }
- }
- }
- this.emit("sending", file, xhr, formData);
- formData.append(this.options.paramName, file);
- return xhr.send(formData);
- };
-
- Dropzone.prototype.finished = function(file, responseText, e) {
- this.filesProcessing = without(this.filesProcessing, file);
- file.processing = false;
- this.processQueue();
- this.emit("success", file, responseText, e);
- this.emit("finished", file, responseText, e);
- return this.emit("complete", file);
- };
-
- Dropzone.prototype.errorProcessing = function(file, message) {
- this.filesProcessing = without(this.filesProcessing, file);
- file.processing = false;
- this.processQueue();
- this.emit("error", file, message);
- return this.emit("complete", file);
- };
-
- return Dropzone;
-
- })(Em);
-
- Dropzone.version = "2.0.10";
-
- Dropzone.options = {};
-
- Dropzone.instances = [];
-
- Dropzone.forElement = function(element) {
- var instance, _i, _len, _ref;
-
- if (typeof element === "string") {
- element = document.querySelector(element);
- }
- _ref = Dropzone.instances;
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- instance = _ref[_i];
- if (instance.element === element) {
- return instance;
- }
- }
- return null;
- };
-
- Dropzone.blacklistedBrowsers = [/opera.*Macintosh.*version\/12/i];
-
- Dropzone.isBrowserSupported = function() {
- var capableBrowser, regex, _i, _len, _ref;
-
- capableBrowser = true;
- if (window.File && window.FileReader && window.FileList && window.Blob && window.FormData && document.querySelector) {
- if (!("classList" in document.createElement("a"))) {
- capableBrowser = false;
- } else {
- _ref = Dropzone.blacklistedBrowsers;
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- regex = _ref[_i];
- if (regex.test(navigator.userAgent)) {
- capableBrowser = false;
- continue;
- }
- }
- }
- } else {
- capableBrowser = false;
- }
- return capableBrowser;
- };
-
- without = function(list, rejectedItem) {
- var item, _i, _len, _results;
-
- _results = [];
- for (_i = 0, _len = list.length; _i < _len; _i++) {
- item = list[_i];
- if (item !== rejectedItem) {
- _results.push(item);
- }
- }
- return _results;
- };
-
- camelize = function(str) {
- return str.replace(/[\-_](\w)/g, function(match) {
- return match[1].toUpperCase();
- });
- };
-
- createElement = function(string) {
- var div;
-
- div = document.createElement("div");
- div.innerHTML = string;
- return div.childNodes[0];
- };
-
- if (typeof jQuery !== "undefined" && jQuery !== null) {
- jQuery.fn.dropzone = function(options) {
- return this.each(function() {
- return new Dropzone(this, options);
- });
- };
- }
-
- if (typeof module !== "undefined" && module !== null) {
- module.exports = Dropzone;
- } else {
- window.Dropzone = Dropzone;
- }
-
- contentLoaded = function(win, fn) {
- var add, doc, done, init, poll, pre, rem, root, top;
-
- done = false;
- top = true;
- doc = win.document;
- root = doc.documentElement;
- add = (doc.addEventListener ? "addEventListener" : "attachEvent");
- rem = (doc.addEventListener ? "removeEventListener" : "detachEvent");
- pre = (doc.addEventListener ? "" : "on");
- init = function(e) {
- if (e.type === "readystatechange" && doc.readyState !== "complete") {
- return;
- }
- (e.type === "load" ? win : doc)[rem](pre + e.type, init, false);
- if (!done && (done = true)) {
- return fn.call(win, e.type || e);
- }
- };
- poll = function() {
- var e;
-
- try {
- root.doScroll("left");
- } catch (_error) {
- e = _error;
- setTimeout(poll, 50);
- return;
- }
- return init("poll");
- };
- if (doc.readyState !== "complete") {
- if (doc.createEventObject && root.doScroll) {
- try {
- top = !win.frameElement;
- } catch (_error) {}
- if (top) {
- poll();
- }
- }
- doc[add](pre + "DOMContentLoaded", init, false);
- doc[add](pre + "readystatechange", init, false);
- return win[add](pre + "load", init, false);
- }
- };
-
- contentLoaded(window, function() {
- var checkElements, dropzone, dropzones, _i, _len, _results;
-
- if (false) {
- dropzones = document.querySelectorAll(".dropzone");
- } else {
- dropzones = [];
- checkElements = function(elements) {
- var el, _i, _len, _results;
-
- _results = [];
- for (_i = 0, _len = elements.length; _i < _len; _i++) {
- el = elements[_i];
- if (/(^| )dropzone($| )/.test(el.className)) {
- _results.push(dropzones.push(el));
- } else {
- _results.push(void 0);
- }
- }
- return _results;
- };
- checkElements(document.getElementsByTagName("div"));
- checkElements(document.getElementsByTagName("form"));
- }
- _results = [];
- for (_i = 0, _len = dropzones.length; _i < _len; _i++) {
- dropzone = dropzones[_i];
- _results.push(new Dropzone(dropzone));
- }
- return _results;
- });
-
-}).call(this);
-
-});
-require.alias("component-emitter/index.js", "dropzone/deps/emitter/index.js");
-
-if (typeof exports == "object") {
- module.exports = require("dropzone");
-} else if (typeof define == "function" && define.amd) {
- define(function(){ return require("dropzone"); });
-} else {
- window["Dropzone"] = require("dropzone");
-}})();
\ No newline at end of file
diff --git a/source/javascripts/html5-qrcode.js b/source/javascripts/html5-qrcode.js
deleted file mode 100644
index 43ffa7b..0000000
--- a/source/javascripts/html5-qrcode.js
+++ /dev/null
@@ -1,64 +0,0 @@
-//---------------------------------------------------------------------
-// JavaScript-HTML5 QRCode Generator
-//
-// Copyright (c) 2011 Amanuel Tewolde
-//
-// Licensed under the MIT license:
-// http://www.opensource.org/licenses/mit-license.php
-//
-//---------------------------------------------------------------------
-
-// Generates a QRCode of text provided.
-// First QRCode is rendered to a canvas.
-// The canvas is then turned to an image PNG
-// before being returned as an tag.
-function showQRCode(text) {
-
-
- var dotsize = 5; // size of box drawn on canvas
- var padding = 10; // (white area around your QRCode)
- var black = "rgb(0,0,0)";
- var white = "rgb(255,255,255)";
- var QRCodeVersion = 15; // 1-40 see http://www.denso-wave.com/qrcode/qrgene2-e.html
-
- var canvas=document.createElement('canvas');
- var qrCanvasContext = canvas.getContext('2d');
- try {
- // QR Code Error Correction Capability
- // Higher levels improves error correction capability while decreasing the amount of data QR Code size.
- // QRErrorCorrectLevel.L (5%) QRErrorCorrectLevel.M (15%) QRErrorCorrectLevel.Q (25%) QRErrorCorrectLevel.H (30%)
- // eg. L can survive approx 5% damage...etc.
- var qr = new QRCode(QRCodeVersion, QRErrorCorrectLevel.L);
- qr.addData(text);
- qr.make();
- }
- catch(err) {
- var errorChild = document.createElement("p");
- var errorMSG = document.createTextNode("QR Code FAIL! " + err);
- errorChild.appendChild(errorMSG);
- return errorChild;
- }
-
- var qrsize = qr.getModuleCount();
- canvas.setAttribute('height',(qrsize * dotsize) + padding);
- canvas.setAttribute('width',(qrsize * dotsize) + padding);
- var shiftForPadding = padding/2;
- if (canvas.getContext){
- for (var r = 0; r < qrsize; r++) {
- for (var c = 0; c < qrsize; c++) {
- if (qr.isDark(r, c))
- qrCanvasContext.fillStyle = black;
- else
- qrCanvasContext.fillStyle = white;
- qrCanvasContext.fillRect ((c*dotsize) +shiftForPadding,(r*dotsize) + shiftForPadding,dotsize,dotsize); // x, y, w, h
- }
- }
- }
-
- var imgElement = document.createElement("img");
- imgElement.src = canvas.toDataURL("image/png");
-
- return imgElement;
-
-}
-
diff --git a/source/javascripts/modernizr.custom.54013.js b/source/javascripts/modernizr.custom.54013.js
deleted file mode 100644
index 87c1b0d..0000000
--- a/source/javascripts/modernizr.custom.54013.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/* Modernizr 2.6.2 (Custom Build) | MIT & BSD
- * Build: http://modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-shiv-cssclasses-teststyles-testprop-testallprops-prefixes-domprefixes-load
- */
-;window.Modernizr=function(a,b,c){function A(a){j.cssText=a}function B(a,b){return A(n.join(a+";")+(b||""))}function C(a,b){return typeof a===b}function D(a,b){return!!~(""+a).indexOf(b)}function E(a,b){for(var d in a){var e=a[d];if(!D(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function F(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:C(f,"function")?f.bind(d||b):f}return!1}function G(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+p.join(d+" ")+d).split(" ");return C(b,"string")||C(b,"undefined")?E(e,b):(e=(a+" "+q.join(d+" ")+d).split(" "),F(e,b,c))}var d="2.6.2",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k,l=":)",m={}.toString,n=" -webkit- -moz- -o- -ms- ".split(" "),o="Webkit Moz O ms",p=o.split(" "),q=o.toLowerCase().split(" "),r={},s={},t={},u=[],v=u.slice,w,x=function(a,c,d,e){var f,i,j,k,l=b.createElement("div"),m=b.body,n=m||b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),l.appendChild(j);return f=["",'"].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},y={}.hasOwnProperty,z;!C(y,"undefined")&&!C(y.call,"undefined")?z=function(a,b){return y.call(a,b)}:z=function(a,b){return b in a&&C(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=v.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(v.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(v.call(arguments)))};return e}),r.flexbox=function(){return G("flexWrap")},r.rgba=function(){return A("background-color:rgba(150,255,150,.5)"),D(j.backgroundColor,"rgba")},r.hsla=function(){return A("background-color:hsla(120,40%,100%,.5)"),D(j.backgroundColor,"rgba")||D(j.backgroundColor,"hsla")},r.multiplebgs=function(){return A("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(j.background)},r.backgroundsize=function(){return G("backgroundSize")},r.borderimage=function(){return G("borderImage")},r.borderradius=function(){return G("borderRadius")},r.boxshadow=function(){return G("boxShadow")},r.textshadow=function(){return b.createElement("div").style.textShadow===""},r.opacity=function(){return B("opacity:.55"),/^0.55$/.test(j.opacity)},r.cssanimations=function(){return G("animationName")},r.csscolumns=function(){return G("columnCount")},r.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return A((a+"-webkit- ".split(" ").join(b+a)+n.join(c+a)).slice(0,-a.length)),D(j.backgroundImage,"gradient")},r.cssreflections=function(){return G("boxReflect")},r.csstransforms=function(){return!!G("transform")},r.csstransforms3d=function(){var a=!!G("perspective");return a&&"webkitPerspective"in g.style&&x("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=b.offsetLeft===9&&b.offsetHeight===3}),a},r.csstransitions=function(){return G("transition")},r.fontface=function(){var a;return x('@font-face {font-family:"font";src:url("https://")}',function(c,d){var e=b.getElementById("smodernizr"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"";a=/src/i.test(g)&&g.indexOf(d.split(" ")[0])===0}),a},r.generatedcontent=function(){var a;return x(["#",h,"{font:0/0 a}#",h,':after{content:"',l,'";visibility:hidden;font:3px/1 a}'].join(""),function(b){a=b.offsetHeight>=3}),a};for(var H in r)z(r,H)&&(w=H.toLowerCase(),e[w]=r[H](),u.push((e[w]?"":"no-")+w));return e.addTest=function(a,b){if(typeof a=="object")for(var d in a)z(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},A(""),i=k=null,function(a,b){function k(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function l(){var a=r.elements;return typeof a=="string"?a.split(" "):a}function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b}function n(a,c,f){c||(c=b);if(j)return c.createElement(a);f||(f=m(c));var g;return f.cache[a]?g=f.cache[a].cloneNode():e.test(a)?g=(f.cache[a]=f.createElem(a)).cloneNode():g=f.createElem(a),g.canHaveChildren&&!d.test(a)?f.frag.appendChild(g):g}function o(a,c){a||(a=b);if(j)return a.createDocumentFragment();c=c||m(a);var d=c.frag.cloneNode(),e=0,f=l(),g=f.length;for(;e",f="hidden"in a,j=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){f=!0,j=!0}})();var r={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,supportsUnknownElements:j,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:q,createElement:n,createDocumentFragment:o};a.html5=r,q(b)}(this,b),e._version=d,e._prefixes=n,e._domPrefixes=q,e._cssomPrefixes=p,e.testProp=function(a){return E([a])},e.testAllProps=G,e.testStyles=x,g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+u.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f= 7) {
- this.setupTypeNumber(test);
- }
-
- if (this.dataCache == null) {
- this.dataCache = QRCode.createData(this.typeNumber, this.errorCorrectLevel, this.dataList);
- }
-
- this.mapData(this.dataCache, maskPattern);
- },
-
- setupPositionProbePattern : function(row, col) {
-
- for (var r = -1; r <= 7; r++) {
-
- if (row + r <= -1 || this.moduleCount <= row + r) continue;
-
- for (var c = -1; c <= 7; c++) {
-
- if (col + c <= -1 || this.moduleCount <= col + c) continue;
-
- if ( (0 <= r && r <= 6 && (c == 0 || c == 6) )
- || (0 <= c && c <= 6 && (r == 0 || r == 6) )
- || (2 <= r && r <= 4 && 2 <= c && c <= 4) ) {
- this.modules[row + r][col + c] = true;
- } else {
- this.modules[row + r][col + c] = false;
- }
- }
- }
- },
-
- getBestMaskPattern : function() {
-
- var minLostPoint = 0;
- var pattern = 0;
-
- for (var i = 0; i < 8; i++) {
-
- this.makeImpl(true, i);
-
- var lostPoint = QRUtil.getLostPoint(this);
-
- if (i == 0 || minLostPoint > lostPoint) {
- minLostPoint = lostPoint;
- pattern = i;
- }
- }
-
- return pattern;
- },
-
- createMovieClip : function(target_mc, instance_name, depth) {
-
- var qr_mc = target_mc.createEmptyMovieClip(instance_name, depth);
- var cs = 1;
-
- this.make();
-
- for (var row = 0; row < this.modules.length; row++) {
-
- var y = row * cs;
-
- for (var col = 0; col < this.modules[row].length; col++) {
-
- var x = col * cs;
- var dark = this.modules[row][col];
-
- if (dark) {
- qr_mc.beginFill(0, 100);
- qr_mc.moveTo(x, y);
- qr_mc.lineTo(x + cs, y);
- qr_mc.lineTo(x + cs, y + cs);
- qr_mc.lineTo(x, y + cs);
- qr_mc.endFill();
- }
- }
- }
-
- return qr_mc;
- },
-
- setupTimingPattern : function() {
-
- for (var r = 8; r < this.moduleCount - 8; r++) {
- if (this.modules[r][6] != null) {
- continue;
- }
- this.modules[r][6] = (r % 2 == 0);
- }
-
- for (var c = 8; c < this.moduleCount - 8; c++) {
- if (this.modules[6][c] != null) {
- continue;
- }
- this.modules[6][c] = (c % 2 == 0);
- }
- },
-
- setupPositionAdjustPattern : function() {
-
- var pos = QRUtil.getPatternPosition(this.typeNumber);
-
- for (var i = 0; i < pos.length; i++) {
-
- for (var j = 0; j < pos.length; j++) {
-
- var row = pos[i];
- var col = pos[j];
-
- if (this.modules[row][col] != null) {
- continue;
- }
-
- for (var r = -2; r <= 2; r++) {
-
- for (var c = -2; c <= 2; c++) {
-
- if (r == -2 || r == 2 || c == -2 || c == 2
- || (r == 0 && c == 0) ) {
- this.modules[row + r][col + c] = true;
- } else {
- this.modules[row + r][col + c] = false;
- }
- }
- }
- }
- }
- },
-
- setupTypeNumber : function(test) {
-
- var bits = QRUtil.getBCHTypeNumber(this.typeNumber);
-
- for (var i = 0; i < 18; i++) {
- var mod = (!test && ( (bits >> i) & 1) == 1);
- this.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = mod;
- }
-
- for (var i = 0; i < 18; i++) {
- var mod = (!test && ( (bits >> i) & 1) == 1);
- this.modules[i % 3 + this.moduleCount - 8 - 3][Math.floor(i / 3)] = mod;
- }
- },
-
- setupTypeInfo : function(test, maskPattern) {
-
- var data = (this.errorCorrectLevel << 3) | maskPattern;
- var bits = QRUtil.getBCHTypeInfo(data);
-
- // vertical
- for (var i = 0; i < 15; i++) {
-
- var mod = (!test && ( (bits >> i) & 1) == 1);
-
- if (i < 6) {
- this.modules[i][8] = mod;
- } else if (i < 8) {
- this.modules[i + 1][8] = mod;
- } else {
- this.modules[this.moduleCount - 15 + i][8] = mod;
- }
- }
-
- // horizontal
- for (var i = 0; i < 15; i++) {
-
- var mod = (!test && ( (bits >> i) & 1) == 1);
-
- if (i < 8) {
- this.modules[8][this.moduleCount - i - 1] = mod;
- } else if (i < 9) {
- this.modules[8][15 - i - 1 + 1] = mod;
- } else {
- this.modules[8][15 - i - 1] = mod;
- }
- }
-
- // fixed module
- this.modules[this.moduleCount - 8][8] = (!test);
-
- },
-
- mapData : function(data, maskPattern) {
-
- var inc = -1;
- var row = this.moduleCount - 1;
- var bitIndex = 7;
- var byteIndex = 0;
-
- for (var col = this.moduleCount - 1; col > 0; col -= 2) {
-
- if (col == 6) col--;
-
- while (true) {
-
- for (var c = 0; c < 2; c++) {
-
- if (this.modules[row][col - c] == null) {
-
- var dark = false;
-
- if (byteIndex < data.length) {
- dark = ( ( (data[byteIndex] >>> bitIndex) & 1) == 1);
- }
-
- var mask = QRUtil.getMask(maskPattern, row, col - c);
-
- if (mask) {
- dark = !dark;
- }
-
- this.modules[row][col - c] = dark;
- bitIndex--;
-
- if (bitIndex == -1) {
- byteIndex++;
- bitIndex = 7;
- }
- }
- }
-
- row += inc;
-
- if (row < 0 || this.moduleCount <= row) {
- row -= inc;
- inc = -inc;
- break;
- }
- }
- }
-
- }
-
-};
-
-QRCode.PAD0 = 0xEC;
-QRCode.PAD1 = 0x11;
-
-QRCode.createData = function(typeNumber, errorCorrectLevel, dataList) {
-
- var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, errorCorrectLevel);
-
- var buffer = new QRBitBuffer();
-
- for (var i = 0; i < dataList.length; i++) {
- var data = dataList[i];
- buffer.put(data.mode, 4);
- buffer.put(data.getLength(), QRUtil.getLengthInBits(data.mode, typeNumber) );
- data.write(buffer);
- }
-
- // calc num max data.
- var totalDataCount = 0;
- for (var i = 0; i < rsBlocks.length; i++) {
- totalDataCount += rsBlocks[i].dataCount;
- }
-
- if (buffer.getLengthInBits() > totalDataCount * 8) {
- throw new Error("code length overflow. ("
- + buffer.getLengthInBits()
- + ">"
- + totalDataCount * 8
- + ")");
- }
-
- // end code
- if (buffer.getLengthInBits() + 4 <= totalDataCount * 8) {
- buffer.put(0, 4);
- }
-
- // padding
- while (buffer.getLengthInBits() % 8 != 0) {
- buffer.putBit(false);
- }
-
- // padding
- while (true) {
-
- if (buffer.getLengthInBits() >= totalDataCount * 8) {
- break;
- }
- buffer.put(QRCode.PAD0, 8);
-
- if (buffer.getLengthInBits() >= totalDataCount * 8) {
- break;
- }
- buffer.put(QRCode.PAD1, 8);
- }
-
- return QRCode.createBytes(buffer, rsBlocks);
-}
-
-QRCode.createBytes = function(buffer, rsBlocks) {
-
- var offset = 0;
-
- var maxDcCount = 0;
- var maxEcCount = 0;
-
- var dcdata = new Array(rsBlocks.length);
- var ecdata = new Array(rsBlocks.length);
-
- for (var r = 0; r < rsBlocks.length; r++) {
-
- var dcCount = rsBlocks[r].dataCount;
- var ecCount = rsBlocks[r].totalCount - dcCount;
-
- maxDcCount = Math.max(maxDcCount, dcCount);
- maxEcCount = Math.max(maxEcCount, ecCount);
-
- dcdata[r] = new Array(dcCount);
-
- for (var i = 0; i < dcdata[r].length; i++) {
- dcdata[r][i] = 0xff & buffer.buffer[i + offset];
- }
- offset += dcCount;
-
- var rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount);
- var rawPoly = new QRPolynomial(dcdata[r], rsPoly.getLength() - 1);
-
- var modPoly = rawPoly.mod(rsPoly);
- ecdata[r] = new Array(rsPoly.getLength() - 1);
- for (var i = 0; i < ecdata[r].length; i++) {
- var modIndex = i + modPoly.getLength() - ecdata[r].length;
- ecdata[r][i] = (modIndex >= 0)? modPoly.get(modIndex) : 0;
- }
-
- }
-
- var totalCodeCount = 0;
- for (var i = 0; i < rsBlocks.length; i++) {
- totalCodeCount += rsBlocks[i].totalCount;
- }
-
- var data = new Array(totalCodeCount);
- var index = 0;
-
- for (var i = 0; i < maxDcCount; i++) {
- for (var r = 0; r < rsBlocks.length; r++) {
- if (i < dcdata[r].length) {
- data[index++] = dcdata[r][i];
- }
- }
- }
-
- for (var i = 0; i < maxEcCount; i++) {
- for (var r = 0; r < rsBlocks.length; r++) {
- if (i < ecdata[r].length) {
- data[index++] = ecdata[r][i];
- }
- }
- }
-
- return data;
-
-}
-
-//---------------------------------------------------------------------
-// QRMode
-//---------------------------------------------------------------------
-
-var QRMode = {
- MODE_NUMBER : 1 << 0,
- MODE_ALPHA_NUM : 1 << 1,
- MODE_8BIT_BYTE : 1 << 2,
- MODE_KANJI : 1 << 3
-};
-
-//---------------------------------------------------------------------
-// QRErrorCorrectLevel
-//---------------------------------------------------------------------
-
-var QRErrorCorrectLevel = {
- L : 1,
- M : 0,
- Q : 3,
- H : 2
-};
-
-//---------------------------------------------------------------------
-// QRMaskPattern
-//---------------------------------------------------------------------
-
-var QRMaskPattern = {
- PATTERN000 : 0,
- PATTERN001 : 1,
- PATTERN010 : 2,
- PATTERN011 : 3,
- PATTERN100 : 4,
- PATTERN101 : 5,
- PATTERN110 : 6,
- PATTERN111 : 7
-};
-
-//---------------------------------------------------------------------
-// QRUtil
-//---------------------------------------------------------------------
-
-var QRUtil = {
-
- PATTERN_POSITION_TABLE : [
- [],
- [6, 18],
- [6, 22],
- [6, 26],
- [6, 30],
- [6, 34],
- [6, 22, 38],
- [6, 24, 42],
- [6, 26, 46],
- [6, 28, 50],
- [6, 30, 54],
- [6, 32, 58],
- [6, 34, 62],
- [6, 26, 46, 66],
- [6, 26, 48, 70],
- [6, 26, 50, 74],
- [6, 30, 54, 78],
- [6, 30, 56, 82],
- [6, 30, 58, 86],
- [6, 34, 62, 90],
- [6, 28, 50, 72, 94],
- [6, 26, 50, 74, 98],
- [6, 30, 54, 78, 102],
- [6, 28, 54, 80, 106],
- [6, 32, 58, 84, 110],
- [6, 30, 58, 86, 114],
- [6, 34, 62, 90, 118],
- [6, 26, 50, 74, 98, 122],
- [6, 30, 54, 78, 102, 126],
- [6, 26, 52, 78, 104, 130],
- [6, 30, 56, 82, 108, 134],
- [6, 34, 60, 86, 112, 138],
- [6, 30, 58, 86, 114, 142],
- [6, 34, 62, 90, 118, 146],
- [6, 30, 54, 78, 102, 126, 150],
- [6, 24, 50, 76, 102, 128, 154],
- [6, 28, 54, 80, 106, 132, 158],
- [6, 32, 58, 84, 110, 136, 162],
- [6, 26, 54, 82, 110, 138, 166],
- [6, 30, 58, 86, 114, 142, 170]
- ],
-
- G15 : (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0),
- G18 : (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0),
- G15_MASK : (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1),
-
- getBCHTypeInfo : function(data) {
- var d = data << 10;
- while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) >= 0) {
- d ^= (QRUtil.G15 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) ) );
- }
- return ( (data << 10) | d) ^ QRUtil.G15_MASK;
- },
-
- getBCHTypeNumber : function(data) {
- var d = data << 12;
- while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) >= 0) {
- d ^= (QRUtil.G18 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) ) );
- }
- return (data << 12) | d;
- },
-
- getBCHDigit : function(data) {
-
- var digit = 0;
-
- while (data != 0) {
- digit++;
- data >>>= 1;
- }
-
- return digit;
- },
-
- getPatternPosition : function(typeNumber) {
- return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1];
- },
-
- getMask : function(maskPattern, i, j) {
-
- switch (maskPattern) {
-
- case QRMaskPattern.PATTERN000 : return (i + j) % 2 == 0;
- case QRMaskPattern.PATTERN001 : return i % 2 == 0;
- case QRMaskPattern.PATTERN010 : return j % 3 == 0;
- case QRMaskPattern.PATTERN011 : return (i + j) % 3 == 0;
- case QRMaskPattern.PATTERN100 : return (Math.floor(i / 2) + Math.floor(j / 3) ) % 2 == 0;
- case QRMaskPattern.PATTERN101 : return (i * j) % 2 + (i * j) % 3 == 0;
- case QRMaskPattern.PATTERN110 : return ( (i * j) % 2 + (i * j) % 3) % 2 == 0;
- case QRMaskPattern.PATTERN111 : return ( (i * j) % 3 + (i + j) % 2) % 2 == 0;
-
- default :
- throw new Error("bad maskPattern:" + maskPattern);
- }
- },
-
- getErrorCorrectPolynomial : function(errorCorrectLength) {
-
- var a = new QRPolynomial([1], 0);
-
- for (var i = 0; i < errorCorrectLength; i++) {
- a = a.multiply(new QRPolynomial([1, QRMath.gexp(i)], 0) );
- }
-
- return a;
- },
-
- getLengthInBits : function(mode, type) {
-
- if (1 <= type && type < 10) {
-
- // 1 - 9
-
- switch(mode) {
- case QRMode.MODE_NUMBER : return 10;
- case QRMode.MODE_ALPHA_NUM : return 9;
- case QRMode.MODE_8BIT_BYTE : return 8;
- case QRMode.MODE_KANJI : return 8;
- default :
- throw new Error("mode:" + mode);
- }
-
- } else if (type < 27) {
-
- // 10 - 26
-
- switch(mode) {
- case QRMode.MODE_NUMBER : return 12;
- case QRMode.MODE_ALPHA_NUM : return 11;
- case QRMode.MODE_8BIT_BYTE : return 16;
- case QRMode.MODE_KANJI : return 10;
- default :
- throw new Error("mode:" + mode);
- }
-
- } else if (type < 41) {
-
- // 27 - 40
-
- switch(mode) {
- case QRMode.MODE_NUMBER : return 14;
- case QRMode.MODE_ALPHA_NUM : return 13;
- case QRMode.MODE_8BIT_BYTE : return 16;
- case QRMode.MODE_KANJI : return 12;
- default :
- throw new Error("mode:" + mode);
- }
-
- } else {
- throw new Error("type:" + type);
- }
- },
-
- getLostPoint : function(qrCode) {
-
- var moduleCount = qrCode.getModuleCount();
-
- var lostPoint = 0;
-
- // LEVEL1
-
- for (var row = 0; row < moduleCount; row++) {
-
- for (var col = 0; col < moduleCount; col++) {
-
- var sameCount = 0;
- var dark = qrCode.isDark(row, col);
-
- for (var r = -1; r <= 1; r++) {
-
- if (row + r < 0 || moduleCount <= row + r) {
- continue;
- }
-
- for (var c = -1; c <= 1; c++) {
-
- if (col + c < 0 || moduleCount <= col + c) {
- continue;
- }
-
- if (r == 0 && c == 0) {
- continue;
- }
-
- if (dark == qrCode.isDark(row + r, col + c) ) {
- sameCount++;
- }
- }
- }
-
- if (sameCount > 5) {
- lostPoint += (3 + sameCount - 5);
- }
- }
- }
-
- // LEVEL2
-
- for (var row = 0; row < moduleCount - 1; row++) {
- for (var col = 0; col < moduleCount - 1; col++) {
- var count = 0;
- if (qrCode.isDark(row, col ) ) count++;
- if (qrCode.isDark(row + 1, col ) ) count++;
- if (qrCode.isDark(row, col + 1) ) count++;
- if (qrCode.isDark(row + 1, col + 1) ) count++;
- if (count == 0 || count == 4) {
- lostPoint += 3;
- }
- }
- }
-
- // LEVEL3
-
- for (var row = 0; row < moduleCount; row++) {
- for (var col = 0; col < moduleCount - 6; col++) {
- if (qrCode.isDark(row, col)
- && !qrCode.isDark(row, col + 1)
- && qrCode.isDark(row, col + 2)
- && qrCode.isDark(row, col + 3)
- && qrCode.isDark(row, col + 4)
- && !qrCode.isDark(row, col + 5)
- && qrCode.isDark(row, col + 6) ) {
- lostPoint += 40;
- }
- }
- }
-
- for (var col = 0; col < moduleCount; col++) {
- for (var row = 0; row < moduleCount - 6; row++) {
- if (qrCode.isDark(row, col)
- && !qrCode.isDark(row + 1, col)
- && qrCode.isDark(row + 2, col)
- && qrCode.isDark(row + 3, col)
- && qrCode.isDark(row + 4, col)
- && !qrCode.isDark(row + 5, col)
- && qrCode.isDark(row + 6, col) ) {
- lostPoint += 40;
- }
- }
- }
-
- // LEVEL4
-
- var darkCount = 0;
-
- for (var col = 0; col < moduleCount; col++) {
- for (var row = 0; row < moduleCount; row++) {
- if (qrCode.isDark(row, col) ) {
- darkCount++;
- }
- }
- }
-
- var ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5;
- lostPoint += ratio * 10;
-
- return lostPoint;
- }
-
-};
-
-
-//---------------------------------------------------------------------
-// QRMath
-//---------------------------------------------------------------------
-
-var QRMath = {
-
- glog : function(n) {
-
- if (n < 1) {
- throw new Error("glog(" + n + ")");
- }
-
- return QRMath.LOG_TABLE[n];
- },
-
- gexp : function(n) {
-
- while (n < 0) {
- n += 255;
- }
-
- while (n >= 256) {
- n -= 255;
- }
-
- return QRMath.EXP_TABLE[n];
- },
-
- EXP_TABLE : new Array(256),
-
- LOG_TABLE : new Array(256)
-
-};
-
-for (var i = 0; i < 8; i++) {
- QRMath.EXP_TABLE[i] = 1 << i;
-}
-for (var i = 8; i < 256; i++) {
- QRMath.EXP_TABLE[i] = QRMath.EXP_TABLE[i - 4]
- ^ QRMath.EXP_TABLE[i - 5]
- ^ QRMath.EXP_TABLE[i - 6]
- ^ QRMath.EXP_TABLE[i - 8];
-}
-for (var i = 0; i < 255; i++) {
- QRMath.LOG_TABLE[QRMath.EXP_TABLE[i] ] = i;
-}
-
-//---------------------------------------------------------------------
-// QRPolynomial
-//---------------------------------------------------------------------
-
-function QRPolynomial(num, shift) {
-
- if (num.length == undefined) {
- throw new Error(num.length + "/" + shift);
- }
-
- var offset = 0;
-
- while (offset < num.length && num[offset] == 0) {
- offset++;
- }
-
- this.num = new Array(num.length - offset + shift);
- for (var i = 0; i < num.length - offset; i++) {
- this.num[i] = num[i + offset];
- }
-}
-
-QRPolynomial.prototype = {
-
- get : function(index) {
- return this.num[index];
- },
-
- getLength : function() {
- return this.num.length;
- },
-
- multiply : function(e) {
-
- var num = new Array(this.getLength() + e.getLength() - 1);
-
- for (var i = 0; i < this.getLength(); i++) {
- for (var j = 0; j < e.getLength(); j++) {
- num[i + j] ^= QRMath.gexp(QRMath.glog(this.get(i) ) + QRMath.glog(e.get(j) ) );
- }
- }
-
- return new QRPolynomial(num, 0);
- },
-
- mod : function(e) {
-
- if (this.getLength() - e.getLength() < 0) {
- return this;
- }
-
- var ratio = QRMath.glog(this.get(0) ) - QRMath.glog(e.get(0) );
-
- var num = new Array(this.getLength() );
-
- for (var i = 0; i < this.getLength(); i++) {
- num[i] = this.get(i);
- }
-
- for (var i = 0; i < e.getLength(); i++) {
- num[i] ^= QRMath.gexp(QRMath.glog(e.get(i) ) + ratio);
- }
-
- // recursive call
- return new QRPolynomial(num, 0).mod(e);
- }
-};
-
-//---------------------------------------------------------------------
-// QRRSBlock
-//---------------------------------------------------------------------
-
-function QRRSBlock(totalCount, dataCount) {
- this.totalCount = totalCount;
- this.dataCount = dataCount;
-}
-
-QRRSBlock.RS_BLOCK_TABLE = [
-
- // L
- // M
- // Q
- // H
-
- // 1
- [1, 26, 19],
- [1, 26, 16],
- [1, 26, 13],
- [1, 26, 9],
-
- // 2
- [1, 44, 34],
- [1, 44, 28],
- [1, 44, 22],
- [1, 44, 16],
-
- // 3
- [1, 70, 55],
- [1, 70, 44],
- [2, 35, 17],
- [2, 35, 13],
-
- // 4
- [1, 100, 80],
- [2, 50, 32],
- [2, 50, 24],
- [4, 25, 9],
-
- // 5
- [1, 134, 108],
- [2, 67, 43],
- [2, 33, 15, 2, 34, 16],
- [2, 33, 11, 2, 34, 12],
-
- // 6
- [2, 86, 68],
- [4, 43, 27],
- [4, 43, 19],
- [4, 43, 15],
-
- // 7
- [2, 98, 78],
- [4, 49, 31],
- [2, 32, 14, 4, 33, 15],
- [4, 39, 13, 1, 40, 14],
-
- // 8
- [2, 121, 97],
- [2, 60, 38, 2, 61, 39],
- [4, 40, 18, 2, 41, 19],
- [4, 40, 14, 2, 41, 15],
-
- // 9
- [2, 146, 116],
- [3, 58, 36, 2, 59, 37],
- [4, 36, 16, 4, 37, 17],
- [4, 36, 12, 4, 37, 13],
-
- // 10
- [2, 86, 68, 2, 87, 69],
- [4, 69, 43, 1, 70, 44],
- [6, 43, 19, 2, 44, 20],
- [6, 43, 15, 2, 44, 16],
-
- // 11
- [4, 101, 81],
- [1, 80, 50, 4, 81, 51],
- [4, 50, 22, 4, 51, 23],
- [3, 36, 12, 8, 37, 13],
-
- // 12
- [2, 116, 92, 2, 117, 93],
- [6, 58, 36, 2, 59, 37],
- [4, 46, 20, 6, 47, 21],
- [7, 42, 14, 4, 43, 15],
-
- // 13
- [4, 133, 107],
- [8, 59, 37, 1, 60, 38],
- [8, 44, 20, 4, 45, 21],
- [12, 33, 11, 4, 34, 12],
-
- // 14
- [3, 145, 115, 1, 146, 116],
- [4, 64, 40, 5, 65, 41],
- [11, 36, 16, 5, 37, 17],
- [11, 36, 12, 5, 37, 13],
-
- // 15
- [5, 109, 87, 1, 110, 88],
- [5, 65, 41, 5, 66, 42],
- [5, 54, 24, 7, 55, 25],
- [11, 36, 12],
-
- // 16
- [5, 122, 98, 1, 123, 99],
- [7, 73, 45, 3, 74, 46],
- [15, 43, 19, 2, 44, 20],
- [3, 45, 15, 13, 46, 16],
-
- // 17
- [1, 135, 107, 5, 136, 108],
- [10, 74, 46, 1, 75, 47],
- [1, 50, 22, 15, 51, 23],
- [2, 42, 14, 17, 43, 15],
-
- // 18
- [5, 150, 120, 1, 151, 121],
- [9, 69, 43, 4, 70, 44],
- [17, 50, 22, 1, 51, 23],
- [2, 42, 14, 19, 43, 15],
-
- // 19
- [3, 141, 113, 4, 142, 114],
- [3, 70, 44, 11, 71, 45],
- [17, 47, 21, 4, 48, 22],
- [9, 39, 13, 16, 40, 14],
-
- // 20
- [3, 135, 107, 5, 136, 108],
- [3, 67, 41, 13, 68, 42],
- [15, 54, 24, 5, 55, 25],
- [15, 43, 15, 10, 44, 16],
-
- // 21
- [4, 144, 116, 4, 145, 117],
- [17, 68, 42],
- [17, 50, 22, 6, 51, 23],
- [19, 46, 16, 6, 47, 17],
-
- // 22
- [2, 139, 111, 7, 140, 112],
- [17, 74, 46],
- [7, 54, 24, 16, 55, 25],
- [34, 37, 13],
-
- // 23
- [4, 151, 121, 5, 152, 122],
- [4, 75, 47, 14, 76, 48],
- [11, 54, 24, 14, 55, 25],
- [16, 45, 15, 14, 46, 16],
-
- // 24
- [6, 147, 117, 4, 148, 118],
- [6, 73, 45, 14, 74, 46],
- [11, 54, 24, 16, 55, 25],
- [30, 46, 16, 2, 47, 17],
-
- // 25
- [8, 132, 106, 4, 133, 107],
- [8, 75, 47, 13, 76, 48],
- [7, 54, 24, 22, 55, 25],
- [22, 45, 15, 13, 46, 16],
-
- // 26
- [10, 142, 114, 2, 143, 115],
- [19, 74, 46, 4, 75, 47],
- [28, 50, 22, 6, 51, 23],
- [33, 46, 16, 4, 47, 17],
-
- // 27
- [8, 152, 122, 4, 153, 123],
- [22, 73, 45, 3, 74, 46],
- [8, 53, 23, 26, 54, 24],
- [12, 45, 15, 28, 46, 16],
-
- // 28
- [3, 147, 117, 10, 148, 118],
- [3, 73, 45, 23, 74, 46],
- [4, 54, 24, 31, 55, 25],
- [11, 45, 15, 31, 46, 16],
-
- // 29
- [7, 146, 116, 7, 147, 117],
- [21, 73, 45, 7, 74, 46],
- [1, 53, 23, 37, 54, 24],
- [19, 45, 15, 26, 46, 16],
-
- // 30
- [5, 145, 115, 10, 146, 116],
- [19, 75, 47, 10, 76, 48],
- [15, 54, 24, 25, 55, 25],
- [23, 45, 15, 25, 46, 16],
-
- // 31
- [13, 145, 115, 3, 146, 116],
- [2, 74, 46, 29, 75, 47],
- [42, 54, 24, 1, 55, 25],
- [23, 45, 15, 28, 46, 16],
-
- // 32
- [17, 145, 115],
- [10, 74, 46, 23, 75, 47],
- [10, 54, 24, 35, 55, 25],
- [19, 45, 15, 35, 46, 16],
-
- // 33
- [17, 145, 115, 1, 146, 116],
- [14, 74, 46, 21, 75, 47],
- [29, 54, 24, 19, 55, 25],
- [11, 45, 15, 46, 46, 16],
-
- // 34
- [13, 145, 115, 6, 146, 116],
- [14, 74, 46, 23, 75, 47],
- [44, 54, 24, 7, 55, 25],
- [59, 46, 16, 1, 47, 17],
-
- // 35
- [12, 151, 121, 7, 152, 122],
- [12, 75, 47, 26, 76, 48],
- [39, 54, 24, 14, 55, 25],
- [22, 45, 15, 41, 46, 16],
-
- // 36
- [6, 151, 121, 14, 152, 122],
- [6, 75, 47, 34, 76, 48],
- [46, 54, 24, 10, 55, 25],
- [2, 45, 15, 64, 46, 16],
-
- // 37
- [17, 152, 122, 4, 153, 123],
- [29, 74, 46, 14, 75, 47],
- [49, 54, 24, 10, 55, 25],
- [24, 45, 15, 46, 46, 16],
-
- // 38
- [4, 152, 122, 18, 153, 123],
- [13, 74, 46, 32, 75, 47],
- [48, 54, 24, 14, 55, 25],
- [42, 45, 15, 32, 46, 16],
-
- // 39
- [20, 147, 117, 4, 148, 118],
- [40, 75, 47, 7, 76, 48],
- [43, 54, 24, 22, 55, 25],
- [10, 45, 15, 67, 46, 16],
-
- // 40
- [19, 148, 118, 6, 149, 119],
- [18, 75, 47, 31, 76, 48],
- [34, 54, 24, 34, 55, 25],
- [20, 45, 15, 61, 46, 16]
-
-];
-
-QRRSBlock.getRSBlocks = function(typeNumber, errorCorrectLevel) {
-
- var rsBlock = QRRSBlock.getRsBlockTable(typeNumber, errorCorrectLevel);
-
- if (rsBlock == undefined) {
- throw new Error("bad rs block @ typeNumber:" + typeNumber + "/errorCorrectLevel:" + errorCorrectLevel);
- }
-
- var length = rsBlock.length / 3;
-
- var list = new Array();
-
- for (var i = 0; i < length; i++) {
-
- var count = rsBlock[i * 3 + 0];
- var totalCount = rsBlock[i * 3 + 1];
- var dataCount = rsBlock[i * 3 + 2];
-
- for (var j = 0; j < count; j++) {
- list.push(new QRRSBlock(totalCount, dataCount) );
- }
- }
-
- return list;
-}
-
-QRRSBlock.getRsBlockTable = function(typeNumber, errorCorrectLevel) {
-
- switch(errorCorrectLevel) {
- case QRErrorCorrectLevel.L :
- return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0];
- case QRErrorCorrectLevel.M :
- return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1];
- case QRErrorCorrectLevel.Q :
- return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2];
- case QRErrorCorrectLevel.H :
- return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3];
- default :
- return undefined;
- }
-}
-
-//---------------------------------------------------------------------
-// QRBitBuffer
-//---------------------------------------------------------------------
-
-function QRBitBuffer() {
- this.buffer = new Array();
- this.length = 0;
-}
-
-QRBitBuffer.prototype = {
-
- get : function(index) {
- var bufIndex = Math.floor(index / 8);
- return ( (this.buffer[bufIndex] >>> (7 - index % 8) ) & 1) == 1;
- },
-
- put : function(num, length) {
- for (var i = 0; i < length; i++) {
- this.putBit( ( (num >>> (length - i - 1) ) & 1) == 1);
- }
- },
-
- getLengthInBits : function() {
- return this.length;
- },
-
- putBit : function(bit) {
-
- var bufIndex = Math.floor(this.length / 8);
- if (this.buffer.length <= bufIndex) {
- this.buffer.push(0);
- }
-
- if (bit) {
- this.buffer[bufIndex] |= (0x80 >>> (this.length % 8) );
- }
-
- this.length++;
- }
-};
diff --git a/source/keybase.txt b/source/keybase.txt
deleted file mode 100644
index dbad9be..0000000
--- a/source/keybase.txt
+++ /dev/null
@@ -1,86 +0,0 @@
-==================================================================
-https://keybase.io/mic92
---------------------------------------------------------------------
-
-I hereby claim:
-
- * I am an admin of https://thalheim.io
- * I am mic92 (https://keybase.io/mic92) on keybase.
- * I have a public key with fingerprint 3DEE 1C55 6E1C 3DC5 54F5 875A 003F 2096 411B 5F92
-
-To do so, I am signing this object:
-
-{
- "body": {
- "key": {
- "eldest_kid": "010168e960a47ca2bdd76bc6519349f9a5809dbff18f981cb6d1fb43f6db8a6a055c0a",
- "fingerprint": "3dee1c556e1c3dc554f5875a003f2096411b5f92",
- "host": "keybase.io",
- "key_id": "003f2096411b5f92",
- "kid": "010106aad5a9aaf0c5545554e800b83d5e1bd6a6697748714271c5dcb1995132ab420a",
- "uid": "f9e2f6a48ba81016fb4b204ef3f1aa00",
- "username": "mic92"
- },
- "merkle_root": {
- "ctime": 1548286116,
- "hash_meta": "a431e6f653248f3fe4b24319002d2878e4dd1e7a495eca74ca17dc04fdc97acb",
- "seqno": 4595760
- },
- "revoke": {
- "sig_ids": [
- "f00fd732b1c6e3da83520e918d2719b07c76f1692ea4a79d0b691f346eb544df0f"
- ]
- },
- "service": {
- "hostname": "thalheim.io",
- "protocol": "https:"
- },
- "type": "web_service_binding",
- "version": 1
- },
- "ctime": 1548286118,
- "expire_in": 157680000,
- "prev": "454b19ef79177c612ef661003605ceefd084eeb16e79c73fce8edf931af3bdc9",
- "seqno": 38,
- "tag": "signature"
-}
-
-which yields the signature:
-
------BEGIN PGP MESSAGE-----
-
-owJ4nGVTbVAVVRgGBFFGUoO0gcl0AyYN8Zzds2d3L2NqZomWH2A/Uuh2ds85l5XL
-vdd715uG5BdWfmQIKtRMBtNkotcRlXHKhgE/Ij8qLZpAyGz6oZP90TFHQZPOoo4z
-9WN3z77neZ/3eZ/3nOrUIXEp8YdvdmeOsH0n48/+acYVz779fYVkBulKyVMhlbHB
-D/NTFnG8ZTaVPBKAAGKdGRgQpFlENinVsGlhFRoKMrhBVB0Y1OQc6tzQoWViCrmJ
-FI6pqRNMgKpagEi5ErcDPhYOhe2AI2gVyhi0VBWLt0LFAnFV11QCgMJlYGAEoaly
-QxaJpcGImyHEmSTC8uygiIkf7315/8c/0g0wIVQlBiEcuCVU8TAdAFNXqMqgSTHB
-2NA0pGsQyZrQQy0TGoYKFZmYSB7UvXyQjhtM5pgg3SS664ho0ZQBYlzhkAjVLjDC
-wgFSzgS63LaElMpcqZyFy/zMGw4GHddZy7HdfagiXdYxhFh0RyKl3nLmEJFGkAIZ
-5lhVZKQLZiZqiJABgExlXdMZohQyjSBDZRbRkEWgRi2AOLUMjVimEBFhywJByYNU
-Q9UwEArCLBosY27xiO0TnkUkzxKJA8CpprRHZBNamCmU6IoqA2ZAnQofDBNoloY5
-xIbMCCKaQYGJDcgVhJmpIkQ54FJJpVsuHLWtQXp3TA/ad0qJv5TZ5fdnFQoHnaAV
-9IuNUscJRTyuMc7KkIt8i5neBxxe0w5QcUZERpSFI3YwIIwSyP96pudKbEXIDjOv
-7SJEm2KiALh1WFRQIhWJGTKuGVDTLAxlxjGG4pxgoFqMcQp0xJgJMdMMS1O4xXRG
-uaFAwhVTGPnIREWUcohPcArrAsRZHmZSZcrGBCUxLj4l7qkxExLJj0kHc/emZzoL
-f1/88F4lJbiXKi5l+KiHkdohIweKazYvPL3ntQ5yvak+MnHGt9duP77KP+23wPkn
-U0eivJN3t824cGNWBhr7z4mjDad7kxtSN/em93RMURYt2v3euUCGdbWtFTVu1zLm
-HLp15u6W0+0NSR+u27fjdp/Tfu+5HX+v6cjL2fBZRbkvVrWpcUvd4vG12U3vzxoe
-4++W4sL+td3n04qXzl89dGJza04aeHFAVtIS8qIFodxsnHCrK1TUemQnG3fsQuy4
-p6Q2P/Ni26i9DdKwHxxPZ8uYl0cd6i98+gN7aO+p5FvrqyZ9uvhe7dxYQ93om5Of
-Ode4tiep+olN3/QPW5UdP7zIll9asHbE2KvqV9dXb5059Zc1XbPzNlaeTFwwuYvN
-/Hzdr00lY+c0VfRmTGnDZ07t+fmPniM0eecr04oSrqVebs39Qi32P/8GKZwOXlh/
-ZcLo1urmzJYs40DJ3uuXtqY+NgJnJZ5I3LjjWObWZ/tC9Qvm9/na+jsv5/tzvot+
-dOSSsb1mRsP0zqI5s81XIwn545yz82LtqRl3Pt5Vltyzb8hA3TY6880V2pr0JO2T
-w7Wd4w/eWXG8ZH/F6i/V13enbz56JUaWzO3oiTXmX8q6kXkmflfWBHlSy/iU/vpl
-zX193YV17+zP+WtXRRrunhWt6+x6u2V389T1U8yfDrbLBeRU95LtSwcuxm/gBXc6
-C+YFfAeShlkFVVlVvsSa7DhSv7Bt59yv/wUcqP+k
-=qHe2
------END PGP MESSAGE-----
-
-And finally, I am proving ownership of this host by posting or
-appending to this document.
-
-View my publicly-auditable identity here: https://keybase.io/mic92
-
-==================================================================
diff --git a/source/ping.txt b/source/ping.txt
deleted file mode 100644
index 8e55469..0000000
--- a/source/ping.txt
+++ /dev/null
@@ -1 +0,0 @@
-pong
diff --git a/source/stylesheets/dropzone.css b/source/stylesheets/dropzone.css
deleted file mode 100644
index 1faa772..0000000
--- a/source/stylesheets/dropzone.css
+++ /dev/null
@@ -1,394 +0,0 @@
-/* The MIT License */
-.dropzone,
-.dropzone *,
-.dropzone-previews,
-.dropzone-previews * {
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
-}
-.dropzone {
- position: relative;
- border: 1px solid rgba(0,0,0,0.08);
- background: rgba(0,0,0,0.02);
- padding: 1em;
-}
-.dropzone.clickable {
- cursor: pointer;
-}
-.dropzone.clickable .message {
- cursor: pointer;
-}
-.dropzone.clickable * {
- cursor: default;
-}
-.dropzone .message {
- opacity: 1;
- -ms-filter: none;
- filter: none;
-}
-.dropzone.drag-hover {
- border-color: rgba(0,0,0,0.15);
- background: rgba(0,0,0,0.04);
-}
-.dropzone.started .message {
- display: none;
-}
-.dropzone .preview,
-.dropzone-previews .preview {
- background: rgba(255,255,255,0.8);
- position: relative;
- display: inline-block;
- margin: 17px;
- vertical-align: top;
- border: 1px solid #acacac;
- padding: 6px 6px 6px 6px;
-}
-.dropzone .preview .details,
-.dropzone-previews .preview .details {
- width: 100px;
- height: 100px;
- position: relative;
- background: #ebebeb;
- padding: 5px;
- margin-bottom: 22px;
-}
-.dropzone .preview .details .filename,
-.dropzone-previews .preview .details .filename {
- overflow: hidden;
- height: 100%;
-}
-.dropzone .preview .details img,
-.dropzone-previews .preview .details img {
- position: absolute;
- top: 0;
- left: 0;
- width: 100px;
- height: 100px;
-}
-.dropzone .preview .details .size,
-.dropzone-previews .preview .details .size {
- position: absolute;
- bottom: -28px;
- left: 3px;
- height: 28px;
- line-height: 28px;
-}
-.dropzone .preview.error .error-mark,
-.dropzone-previews .preview.error .error-mark {
- display: block;
-}
-.dropzone .preview.success .success-mark,
-.dropzone-previews .preview.success .success-mark {
- display: block;
-}
-.dropzone .preview:hover .details img,
-.dropzone-previews .preview:hover .details img {
- display: none;
-}
-.dropzone .preview:hover .success-mark,
-.dropzone-previews .preview:hover .success-mark,
-.dropzone .preview:hover .error-mark,
-.dropzone-previews .preview:hover .error-mark {
- display: none;
-}
-.dropzone .preview .success-mark,
-.dropzone-previews .preview .success-mark,
-.dropzone .preview .error-mark,
-.dropzone-previews .preview .error-mark {
- display: none;
- position: absolute;
- width: 40px;
- height: 40px;
- font-size: 30px;
- text-align: center;
- right: -10px;
- top: -10px;
-}
-.dropzone .preview .success-mark,
-.dropzone-previews .preview .success-mark {
- color: #8cc657;
-}
-.dropzone .preview .error-mark,
-.dropzone-previews .preview .error-mark {
- color: #ee162d;
-}
-.dropzone .preview .progress,
-.dropzone-previews .preview .progress {
- position: absolute;
- top: 100px;
- left: 6px;
- right: 6px;
- height: 6px;
- background: #d7d7d7;
- display: none;
-}
-.dropzone .preview .progress .upload,
-.dropzone-previews .preview .progress .upload {
- position: absolute;
- top: 0;
- bottom: 0;
- left: 0;
- width: 0%;
- background-color: #8cc657;
-}
-.dropzone .preview.processing .progress,
-.dropzone-previews .preview.processing .progress {
- display: block;
-}
-.dropzone .preview .error-message,
-.dropzone-previews .preview .error-message {
- display: none;
- position: absolute;
- top: -5px;
- left: -20px;
- background: rgba(245,245,245,0.8);
- padding: 8px 10px;
- color: #800;
- min-width: 140px;
- max-width: 500px;
- z-index: 500;
-}
-.dropzone .preview:hover.error .error-message,
-.dropzone-previews .preview:hover.error .error-message {
- display: block;
-}
-.dropzone {
- border: 1px solid rgba(0,0,0,0.03);
- min-height: 360px;
- -webkit-border-radius: 3px;
- border-radius: 3px;
- background: rgba(0,0,0,0.03);
- padding: 23px;
-}
-.dropzone .default.message {
- opacity: 1;
- -ms-filter: none;
- filter: none;
- -webkit-transition: opacity 0.3s ease-in-out;
- -moz-transition: opacity 0.3s ease-in-out;
- -o-transition: opacity 0.3s ease-in-out;
- -ms-transition: opacity 0.3s ease-in-out;
- transition: opacity 0.3s ease-in-out;
- background-image: url("../images/spritemap.png");
- background-repeat: no-repeat;
- background-position: 0 0;
- position: absolute;
- width: 428px;
- height: 123px;
- margin-left: -214px;
- margin-top: -61.5px;
- top: 50%;
- left: 50%;
-}
-@media all and (-webkit-min-device-pixel-ratio: 1.5) {
- .dropzone .default.message {
- background-image: url("../images/spritemap@2x.png");
- -webkit-background-size: 428px 406px;
- -moz-background-size: 428px 406px;
- background-size: 428px 406px;
- }
-}
-.dropzone .default.message span {
- display: none;
-}
-.dropzone.square .default.message {
- background-position: 0 -123px;
- width: 268px;
- margin-left: -134px;
- height: 174px;
- margin-top: -87px;
-}
-.dropzone.drag-hover .message {
- opacity: 0.15;
- filter: alpha(opacity=15);
- -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=15)";
-}
-.dropzone.started .message {
- display: block;
- opacity: 0;
- filter: alpha(opacity=0);
- -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
-}
-.dropzone .preview,
-.dropzone-previews .preview {
- -webkit-box-shadow: 1px 1px 4px rgba(0,0,0,0.16);
- box-shadow: 1px 1px 4px rgba(0,0,0,0.16);
- font-size: 14px;
-}
-.dropzone .preview .details img,
-.dropzone-previews .preview .details img {
- width: 100px;
- height: 100px;
-}
-.dropzone .preview.image-preview:hover .details img,
-.dropzone-previews .preview.image-preview:hover .details img {
- display: block;
- opacity: 0.1;
- filter: alpha(opacity=10);
- -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=10)";
-}
-.dropzone .preview.success .success-mark,
-.dropzone-previews .preview.success .success-mark {
- opacity: 1;
- -ms-filter: none;
- filter: none;
-}
-.dropzone .preview.error .error-mark,
-.dropzone-previews .preview.error .error-mark {
- opacity: 1;
- -ms-filter: none;
- filter: none;
-}
-.dropzone .preview.error .progress .upload,
-.dropzone-previews .preview.error .progress .upload {
- background: #ee1e2d;
-}
-.dropzone .preview .error-mark,
-.dropzone-previews .preview .error-mark,
-.dropzone .preview .success-mark,
-.dropzone-previews .preview .success-mark {
- display: block;
- opacity: 0;
- filter: alpha(opacity=0);
- -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
- -webkit-transition: opacity 0.4s ease-in-out;
- -moz-transition: opacity 0.4s ease-in-out;
- -o-transition: opacity 0.4s ease-in-out;
- -ms-transition: opacity 0.4s ease-in-out;
- transition: opacity 0.4s ease-in-out;
- background-image: url("../images/spritemap.png");
- background-repeat: no-repeat;
-}
-@media all and (-webkit-min-device-pixel-ratio: 1.5) {
- .dropzone .preview .error-mark,
- .dropzone-previews .preview .error-mark,
- .dropzone .preview .success-mark,
- .dropzone-previews .preview .success-mark {
- background-image: url("../images/spritemap@2x.png");
- -webkit-background-size: 428px 406px;
- -moz-background-size: 428px 406px;
- background-size: 428px 406px;
- }
-}
-.dropzone .preview .error-mark span,
-.dropzone-previews .preview .error-mark span,
-.dropzone .preview .success-mark span,
-.dropzone-previews .preview .success-mark span {
- display: none;
-}
-.dropzone .preview .error-mark,
-.dropzone-previews .preview .error-mark {
- background-position: -268px -123px;
-}
-.dropzone .preview .success-mark,
-.dropzone-previews .preview .success-mark {
- background-position: -268px -163px;
-}
-.dropzone .preview .progress .upload,
-.dropzone-previews .preview .progress .upload {
- -webkit-animation: loading 0.4s linear infinite;
- -moz-animation: loading 0.4s linear infinite;
- -o-animation: loading 0.4s linear infinite;
- -ms-animation: loading 0.4s linear infinite;
- animation: loading 0.4s linear infinite;
- -webkit-transition: width 0.3s ease-in-out;
- -moz-transition: width 0.3s ease-in-out;
- -o-transition: width 0.3s ease-in-out;
- -ms-transition: width 0.3s ease-in-out;
- transition: width 0.3s ease-in-out;
- -webkit-border-radius: 2px;
- border-radius: 2px;
- position: absolute;
- top: 0;
- left: 0;
- width: 0%;
- height: 100%;
- background-image: url("../images/spritemap.png");
- background-repeat: repeat-x;
- background-position: 0px -400px;
-}
-@media all and (-webkit-min-device-pixel-ratio: 1.5) {
- .dropzone .preview .progress .upload,
- .dropzone-previews .preview .progress .upload {
- background-image: url("../images/spritemap@2x.png");
- -webkit-background-size: 428px 406px;
- -moz-background-size: 428px 406px;
- background-size: 428px 406px;
- }
-}
-.dropzone .preview.success .progress,
-.dropzone-previews .preview.success .progress {
- display: block;
- opacity: 0;
- filter: alpha(opacity=0);
- -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
- -webkit-transition: opacity 0.4s ease-in-out;
- -moz-transition: opacity 0.4s ease-in-out;
- -o-transition: opacity 0.4s ease-in-out;
- -ms-transition: opacity 0.4s ease-in-out;
- transition: opacity 0.4s ease-in-out;
-}
-.dropzone .preview .error-message,
-.dropzone-previews .preview .error-message {
- display: block;
- opacity: 0;
- filter: alpha(opacity=0);
- -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
- -webkit-transition: opacity 0.3s ease-in-out;
- -moz-transition: opacity 0.3s ease-in-out;
- -o-transition: opacity 0.3s ease-in-out;
- -ms-transition: opacity 0.3s ease-in-out;
- transition: opacity 0.3s ease-in-out;
-}
-.dropzone .preview:hover.error .error-message,
-.dropzone-previews .preview:hover.error .error-message {
- opacity: 1;
- -ms-filter: none;
- filter: none;
-}
-@-moz-keyframes loading {
- 0% {
- background-position: 0 -400px;
- }
-
- 100% {
- background-position: -7px -400px;
- }
-}
-@-webkit-keyframes loading {
- 0% {
- background-position: 0 -400px;
- }
-
- 100% {
- background-position: -7px -400px;
- }
-}
-@-o-keyframes loading {
- 0% {
- background-position: 0 -400px;
- }
-
- 100% {
- background-position: -7px -400px;
- }
-}
-@-ms-keyframes loading {
- 0% {
- background-position: 0 -400px;
- }
-
- 100% {
- background-position: -7px -400px;
- }
-}
-@keyframes loading {
- 0% {
- background-position: 0 -400px;
- }
-
- 100% {
- background-position: -7px -400px;
- }
-}
diff --git a/source/stylesheets/fontawesome-ie7.css b/source/stylesheets/fontawesome-ie7.css
deleted file mode 100644
index d8c34a1..0000000
--- a/source/stylesheets/fontawesome-ie7.css
+++ /dev/null
@@ -1,46 +0,0 @@
-/*!
- * Font Awesome 3.0.2
- * the iconic font designed for use with Twitter Bootstrap
- * -------------------------------------------------------
- * The full suite of pictographic icons, examples, and documentation
- * can be found at: http://fortawesome.github.com/Font-Awesome/
- *
- * License
- * -------------------------------------------------------
- * - The Font Awesome font is licensed under the SIL Open Font License - http://scripts.sil.org/OFL
- * - Font Awesome CSS, LESS, and SASS files are licensed under the MIT License -
- * http://opensource.org/licenses/mit-license.html
- * - The Font Awesome pictograms are licensed under the CC BY 3.0 License - http://creativecommons.org/licenses/by/3.0/
- * - Attribution is no longer required in Font Awesome 3.0, but much appreciated:
- * "Font Awesome by Dave Gandy - http://fortawesome.github.com/Font-Awesome"
-
- * Contact
- * -------------------------------------------------------
- * Email: dave@davegandy.com
- * Twitter: http://twitter.com/fortaweso_me
- * Work: Lead Product Designer @ http://kyruus.com
- */.icon-large{font-size:1.3333333333333333em;margin-top:-4px;padding-top:3px;margin-bottom:-4px;padding-bottom:3px;vertical-align:middle}.nav [class^="icon-"],.nav [class*=" icon-"]{vertical-align:inherit;margin-top:-4px;padding-top:3px;margin-bottom:-4px;padding-bottom:3px}.nav [class^="icon-"].icon-large,.nav [class*=" icon-"].icon-large{vertical-align:-25%}.nav-pills [class^="icon-"].icon-large,.nav-tabs [class^="icon-"].icon-large,.nav-pills [class*=" icon-"].icon-large,.nav-tabs [class*=" icon-"].icon-large{line-height:.75em;margin-top:-7px;padding-top:5px;margin-bottom:-5px;padding-bottom:4px}.btn [class^="icon-"].pull-left,.btn [class*=" icon-"].pull-left,.btn [class^="icon-"].pull-right,.btn [class*=" icon-"].pull-right{vertical-align:inherit}.btn [class^="icon-"].icon-large,.btn [class*=" icon-"].icon-large{margin-top:-0.5em}a [class^="icon-"],a [class*=" icon-"]{cursor:pointer}ul.icons{text-indent:-1.5em;margin-left:3em}.icon-envelope { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
-.icon-star { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
-.icon-user { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
-.icon-trash { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
-.icon-download-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
-.icon-inbox { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
-.icon-lock { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
-.icon-qrcode { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
-.icon-edit { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
-.icon-comment { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
-.icon-retweet { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
-.icon-key { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
-.icon-comments { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
-.icon-github-sign { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
-.icon-upload-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
-.icon-twitter { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
-.icon-github { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
-.icon-rss { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
-.icon-globe { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
-.icon-group { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
-.icon-cloud { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
-.icon-google-plus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
-.icon-envelope-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
-.icon-comment-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
-.icon-github-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
diff --git a/source/stylesheets/fontawesome.css.scss b/source/stylesheets/fontawesome.css.scss
deleted file mode 100644
index 24b9a97..0000000
--- a/source/stylesheets/fontawesome.css.scss
+++ /dev/null
@@ -1,288 +0,0 @@
-/*!
- * Font Awesome 3.0.2
- * the iconic font designed for use with Twitter Bootstrap
- * -------------------------------------------------------
- * The full suite of pictographic icons, examples, and documentation
- * can be found at: http://fortawesome.github.com/Font-Awesome/
- *
- * License
- * -------------------------------------------------------
- * - The Font Awesome font is licensed under the SIL Open Font License - http://scripts.sil.org/OFL
- * - Font Awesome CSS, LESS, and SASS files are licensed under the MIT License -
- * http://opensource.org/licenses/mit-license.html
- * - The Font Awesome pictograms are licensed under the CC BY 3.0 License - http://creativecommons.org/licenses/by/3.0/
- * - Attribution is no longer required in Font Awesome 3.0, but much appreciated:
- * "Font Awesome by Dave Gandy - http://fortawesome.github.com/Font-Awesome"
- *
- * Contact
- * -------------------------------------------------------
- * Email: dave@davegandy.com
- * Twitter: http://twitter.com/fortaweso_me
- * Work: Lead Product Designer @ http://kyruus.com
- */
-
-$fontAwesomePath: "" !default;
-$borderColor: #eee;
-$iconMuted: #eee;
-@mixin border-radius($radius) { -webkit-border-radius: $radius; -moz-border-radius: $radius; border-radius: $radius; }
-
-
-@font-face {
- font-family: 'FontAwesome';
- src: url('#{$fontAwesomePath}/fontawesome-webfont.eot?v=3.0.1');
- src: url('#{$fontAwesomePath}/fontawesome-webfont.eot?#iefix&v=3.0.1') format("embedded-opentype"),
- url('#{$fontAwesomePath}/fontawesome-webfont.woff?v=3.0.1') format("woff"),
- url('#{$fontAwesomePath}/fontawesome-webfont.ttf?v=3.0.1') format("truetype");
- font-weight: normal;
- font-style: normal;
-}
-
-/* Font Awesome styles
- ------------------------------------------------------- */
-[class^="icon-"],
-[class*=" icon-"] {
- font-family: FontAwesome;
- font-weight: normal;
- font-style: normal;
- text-decoration: inherit;
- -webkit-font-smoothing: antialiased;
-
- /* sprites.less reset */
- display: inline;
- width: auto;
- height: auto;
- line-height: normal;
- vertical-align: baseline;
- background-image: none;
- background-position: 0% 0%;
- background-repeat: repeat;
- margin-top: 0;
-}
-
-/* more sprites.less reset */
-.icon-white,
-.nav-pills > .active > a > [class^="icon-"],
-.nav-pills > .active > a > [class*=" icon-"],
-.nav-list > .active > a > [class^="icon-"],
-.nav-list > .active > a > [class*=" icon-"],
-.navbar-inverse .nav > .active > a > [class^="icon-"],
-.navbar-inverse .nav > .active > a > [class*=" icon-"],
-.dropdown-menu > li > a:hover > [class^="icon-"],
-.dropdown-menu > li > a:hover > [class*=" icon-"],
-.dropdown-menu > .active > a > [class^="icon-"],
-.dropdown-menu > .active > a > [class*=" icon-"],
-.dropdown-submenu:hover > a > [class^="icon-"],
-.dropdown-submenu:hover > a > [class*=" icon-"] {
- background-image: none;
-}
-
-[class^="icon-"]:before,
-[class*=" icon-"]:before {
- text-decoration: inherit;
- display: inline-block;
- speak: none;
-}
-
-/* makes sure icons active on rollover in links */
-a {
- [class^="icon-"],
- [class*=" icon-"] {
- display: inline-block;
- }
-}
-
-/* makes the font 33% larger relative to the icon container */
-.icon-large:before {
- vertical-align: -10%;
- font-size: 1.3333333333333333em;
-}
-
-.btn, .nav {
- [class^="icon-"],
- [class*=" icon-"] {
- display: inline;
- /* keeps button heights with and without icons the same */
- &.icon-large { line-height: .9em; }
- &.icon-spin { display: inline-block; }
- }
-}
-
-.nav-tabs, .nav-pills {
- [class^="icon-"],
- [class*=" icon-"] {
- /* keeps button heights with and without icons the same */
- &, &.icon-large { line-height: .9em; }
- }
-}
-
-li, .nav li {
- [class^="icon-"],
- [class*=" icon-"] {
- display: inline-block;
- width: 1.25em;
- text-align: center;
- &.icon-large {
- /* increased font size for icon-large */
- width: 1.5625em;
- }
- }
-}
-
-ul.icons {
- list-style-type: none;
- text-indent: -.75em;
-
- li {
- [class^="icon-"],
- [class*=" icon-"] {
- width: .75em;
- }
- }
-}
-
-.icon-muted {
- color: $iconMuted;
-}
-
-// Icon Borders
-// -------------------------
-
-.icon-border {
- border: solid 1px $borderColor;
- padding: .2em .25em .15em;
- @include border-radius(3px);
-}
-
-// Icon Sizes
-// -------------------------
-
-.icon-2x {
- font-size: 2em;
- &.icon-border {
- border-width: 2px;
- @include border-radius(4px);
- }
-}
-.icon-3x {
- font-size: 3em;
- &.icon-border {
- border-width: 3px;
- @include border-radius(5px);
- }
-}
-.icon-4x {
- font-size: 4em;
- &.icon-border {
- border-width: 4px;
- @include border-radius(6px);
- }
-}
-
-// Floats
-// -------------------------
-
-// Quick floats
-.pull-right { float: right; }
-.pull-left { float: left; }
-
-[class^="icon-"],
-[class*=" icon-"] {
- &.pull-left {
- margin-right: .3em;
- }
- &.pull-right {
- margin-left: .3em;
- }
-}
-
-.btn {
- [class^="icon-"],
- [class*=" icon-"] {
- &.pull-left, &.pull-right {
- &.icon-2x { margin-top: .18em; }
- }
- &.icon-spin.icon-large { line-height: .8em; }
- }
-}
-
-.btn.btn-small {
- [class^="icon-"],
- [class*=" icon-"] {
- &.pull-left, &.pull-right {
- &.icon-2x { margin-top: .25em; }
- }
- }
-}
-
-.btn.btn-large {
- [class^="icon-"],
- [class*=" icon-"] {
- margin-top: 0; // overrides bootstrap default
- &.pull-left, &.pull-right {
- &.icon-2x { margin-top: .05em; }
- }
- &.pull-left.icon-2x { margin-right: .2em; }
- &.pull-right.icon-2x { margin-left: .2em; }
- }
-}
-
-
-.icon-spin {
- display: inline-block;
- -moz-animation: spin 2s infinite linear;
- -o-animation: spin 2s infinite linear;
- -webkit-animation: spin 2s infinite linear;
- animation: spin 2s infinite linear;
-}
-
-@-moz-keyframes spin {
- 0% { -moz-transform: rotate(0deg); }
- 100% { -moz-transform: rotate(359deg); }
-}
-@-webkit-keyframes spin {
- 0% { -webkit-transform: rotate(0deg); }
- 100% { -webkit-transform: rotate(359deg); }
-}
-@-o-keyframes spin {
- 0% { -o-transform: rotate(0deg); }
- 100% { -o-transform: rotate(359deg); }
-}
-@-ms-keyframes spin {
- 0% { -ms-transform: rotate(0deg); }
- 100% { -ms-transform: rotate(359deg); }
-}
-@keyframes spin {
- 0% { transform: rotate(0deg); }
- 100% { transform: rotate(359deg); }
-}
-
-@-moz-document url-prefix() {
- .icon-spin { height: .9em; }
- .btn .icon-spin { height: auto; }
- .icon-spin.icon-large { height: 1.25em; }
- .btn .icon-spin.icon-large { height: .75em; }
-}.icon-envelope:before { content: "\f003"; }
-.icon-star:before { content: "\f005"; }
-.icon-user:before { content: "\f007"; }
-.icon-trash:before { content: "\f014"; }
-.icon-download-alt:before { content: "\f019"; }
-.icon-inbox:before { content: "\f01c"; }
-.icon-lock:before { content: "\f023"; }
-.icon-qrcode:before { content: "\f029"; }
-.icon-edit:before { content: "\f044"; }
-.icon-comment:before { content: "\f075"; }
-.icon-retweet:before { content: "\f079"; }
-.icon-key:before { content: "\f084"; }
-.icon-comments:before { content: "\f086"; }
-.icon-github-sign:before { content: "\f092"; }
-.icon-upload-alt:before { content: "\f093"; }
-.icon-twitter:before { content: "\f099"; }
-.icon-github:before { content: "\f09b"; }
-.icon-rss:before { content: "\f09e"; }
-.icon-globe:before { content: "\f0ac"; }
-.icon-group:before { content: "\f0c0"; }
-.icon-cloud:before { content: "\f0c2"; }
-.icon-google-plus:before { content: "\f0d5"; }
-.icon-envelope-alt:before { content: "\f0e0"; }
-.icon-comment-alt:before { content: "\f0e5"; }
-.icon-github-alt:before { content: "\f113"; }
diff --git a/source/stylesheets/pure.css b/source/stylesheets/pure.css
deleted file mode 100644
index 01a3a82..0000000
--- a/source/stylesheets/pure.css
+++ /dev/null
@@ -1,1757 +0,0 @@
-/*!
-Pure v0.4.2
-Copyright 2014 Yahoo! Inc. All rights reserved.
-Licensed under the BSD License.
-https://github.com/yui/pure/blob/master/LICENSE.md
-*/
-/*!
-normalize.css v1.1.3 | MIT License | git.io/normalize
-Copyright (c) Nicolas Gallagher and Jonathan Neal
-*/
-/*! normalize.css v1.1.3 | MIT License | git.io/normalize */
-
-/* ==========================================================================
- HTML5 display definitions
- ========================================================================== */
-
-/**
- * Correct `block` display not defined in IE 6/7/8/9 and Firefox 3.
- */
-
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-main,
-nav,
-section,
-summary {
- display: block;
-}
-
-/**
- * Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3.
- */
-
-audio,
-canvas,
-video {
- display: inline-block;
- *display: inline;
- *zoom: 1;
-}
-
-/**
- * Prevent modern browsers from displaying `audio` without controls.
- * Remove excess height in iOS 5 devices.
- */
-
-audio:not([controls]) {
- display: none;
- height: 0;
-}
-
-/**
- * Address styling not present in IE 7/8/9, Firefox 3, and Safari 4.
- * Known issue: no IE 6 support.
- */
-
-[hidden] {
- display: none;
-}
-
-/* ==========================================================================
- Base
- ========================================================================== */
-
-/**
- * 1. Correct text resizing oddly in IE 6/7 when body `font-size` is set using
- * `em` units.
- * 2. Prevent iOS text size adjust after orientation change, without disabling
- * user zoom.
- */
-
-html {
- font-size: 100%; /* 1 */
- -ms-text-size-adjust: 100%; /* 2 */
- -webkit-text-size-adjust: 100%; /* 2 */
-}
-
-/**
- * Address `font-family` inconsistency between `textarea` and other form
- * elements.
- */
-
-html,
-button,
-input,
-select,
-textarea {
- font-family: sans-serif;
-}
-
-/**
- * Address margins handled incorrectly in IE 6/7.
- */
-
-body {
- margin: 0;
-}
-
-/* ==========================================================================
- Links
- ========================================================================== */
-
-/**
- * Address `outline` inconsistency between Chrome and other browsers.
- */
-
-a:focus {
- outline: thin dotted;
-}
-
-/**
- * Improve readability when focused and also mouse hovered in all browsers.
- */
-
-a:active,
-a:hover {
- outline: 0;
-}
-
-/* ==========================================================================
- Typography
- ========================================================================== */
-
-/**
- * Address font sizes and margins set differently in IE 6/7.
- * Address font sizes within `section` and `article` in Firefox 4+, Safari 5,
- * and Chrome.
- */
-
-h1 {
- font-size: 2em;
- margin: 0.67em 0;
-}
-
-h2 {
- font-size: 1.5em;
- margin: 0.83em 0;
-}
-
-h3 {
- font-size: 1.17em;
- margin: 1em 0;
-}
-
-h4 {
- font-size: 1em;
- margin: 1.33em 0;
-}
-
-h5 {
- font-size: 0.83em;
- margin: 1.67em 0;
-}
-
-h6 {
- font-size: 0.67em;
- margin: 2.33em 0;
-}
-
-/**
- * Address styling not present in IE 7/8/9, Safari 5, and Chrome.
- */
-
-abbr[title] {
- border-bottom: 1px dotted;
-}
-
-/**
- * Address style set to `bolder` in Firefox 3+, Safari 4/5, and Chrome.
- */
-
-b,
-strong {
- font-weight: bold;
-}
-
-blockquote {
- margin: 1em 40px;
-}
-
-/**
- * Address styling not present in Safari 5 and Chrome.
- */
-
-dfn {
- font-style: italic;
-}
-
-/**
- * Address differences between Firefox and other browsers.
- * Known issue: no IE 6/7 normalization.
- */
-
-hr {
- -moz-box-sizing: content-box;
- box-sizing: content-box;
- height: 0;
-}
-
-/**
- * Address styling not present in IE 6/7/8/9.
- */
-
-mark {
- background: #ff0;
- color: #000;
-}
-
-/**
- * Address margins set differently in IE 6/7.
- */
-
-p,
-pre {
- margin: 1em 0;
-}
-
-/**
- * Correct font family set oddly in IE 6, Safari 4/5, and Chrome.
- */
-
-code,
-kbd,
-pre,
-samp {
- font-family: monospace, serif;
- _font-family: 'courier new', monospace;
- font-size: 1em;
-}
-
-/**
- * Improve readability of pre-formatted text in all browsers.
- */
-
-pre {
- white-space: pre;
- white-space: pre-wrap;
- word-wrap: break-word;
-}
-
-/**
- * Address CSS quotes not supported in IE 6/7.
- */
-
-q {
- quotes: none;
-}
-
-/**
- * Address `quotes` property not supported in Safari 4.
- */
-
-q:before,
-q:after {
- content: '';
- content: none;
-}
-
-/**
- * Address inconsistent and variable font size in all browsers.
- */
-
-small {
- font-size: 80%;
-}
-
-/**
- * Prevent `sub` and `sup` affecting `line-height` in all browsers.
- */
-
-sub,
-sup {
- font-size: 75%;
- line-height: 0;
- position: relative;
- vertical-align: baseline;
-}
-
-sup {
- top: -0.5em;
-}
-
-sub {
- bottom: -0.25em;
-}
-
-/* ==========================================================================
- Lists
- ========================================================================== */
-
-/**
- * Address margins set differently in IE 6/7.
- */
-
-dl,
-menu,
-ol,
-ul {
- margin: 1em 0;
-}
-
-dd {
- margin: 0 0 0 40px;
-}
-
-/**
- * Address paddings set differently in IE 6/7.
- */
-
-menu,
-ol,
-ul {
- padding: 0 0 0 40px;
-}
-
-/**
- * Correct list images handled incorrectly in IE 7.
- */
-
-nav ul,
-nav ol {
- list-style: none;
- list-style-image: none;
-}
-
-/* ==========================================================================
- Embedded content
- ========================================================================== */
-
-/**
- * 1. Remove border when inside `a` element in IE 6/7/8/9 and Firefox 3.
- * 2. Improve image quality when scaled in IE 7.
- */
-
-img {
- border: 0; /* 1 */
- -ms-interpolation-mode: bicubic; /* 2 */
-}
-
-/**
- * Correct overflow displayed oddly in IE 9.
- */
-
-svg:not(:root) {
- overflow: hidden;
-}
-
-/* ==========================================================================
- Figures
- ========================================================================== */
-
-/**
- * Address margin not present in IE 6/7/8/9, Safari 5, and Opera 11.
- */
-
-figure {
- margin: 0;
-}
-
-/* ==========================================================================
- Forms
- ========================================================================== */
-
-/**
- * Correct margin displayed oddly in IE 6/7.
- */
-
-form {
- margin: 0;
-}
-
-/**
- * Define consistent border, margin, and padding.
- */
-
-fieldset {
- border: 1px solid #c0c0c0;
- margin: 0 2px;
- padding: 0.35em 0.625em 0.75em;
-}
-
-/**
- * 1. Correct color not being inherited in IE 6/7/8/9.
- * 2. Correct text not wrapping in Firefox 3.
- * 3. Correct alignment displayed oddly in IE 6/7.
- */
-
-legend {
- border: 0; /* 1 */
- padding: 0;
- white-space: normal; /* 2 */
- *margin-left: -7px; /* 3 */
-}
-
-/**
- * 1. Correct font size not being inherited in all browsers.
- * 2. Address margins set differently in IE 6/7, Firefox 3+, Safari 5,
- * and Chrome.
- * 3. Improve appearance and consistency in all browsers.
- */
-
-button,
-input,
-select,
-textarea {
- font-size: 100%; /* 1 */
- margin: 0; /* 2 */
- vertical-align: baseline; /* 3 */
- *vertical-align: middle; /* 3 */
-}
-
-/**
- * Address Firefox 3+ setting `line-height` on `input` using `!important` in
- * the UA stylesheet.
- */
-
-button,
-input {
- line-height: normal;
-}
-
-/**
- * Address inconsistent `text-transform` inheritance for `button` and `select`.
- * All other form control elements do not inherit `text-transform` values.
- * Correct `button` style inheritance in Chrome, Safari 5+, and IE 6+.
- * Correct `select` style inheritance in Firefox 4+ and Opera.
- */
-
-button,
-select {
- text-transform: none;
-}
-
-/**
- * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
- * and `video` controls.
- * 2. Correct inability to style clickable `input` types in iOS.
- * 3. Improve usability and consistency of cursor style between image-type
- * `input` and others.
- * 4. Remove inner spacing in IE 7 without affecting normal text inputs.
- * Known issue: inner spacing remains in IE 6.
- */
-
-button,
-html input[type="button"], /* 1 */
-input[type="reset"],
-input[type="submit"] {
- -webkit-appearance: button; /* 2 */
- cursor: pointer; /* 3 */
- *overflow: visible; /* 4 */
-}
-
-/**
- * Re-set default cursor for disabled elements.
- */
-
-button[disabled],
-html input[disabled] {
- cursor: default;
-}
-
-/**
- * 1. Address box sizing set to content-box in IE 8/9.
- * 2. Remove excess padding in IE 8/9.
- * 3. Remove excess padding in IE 7.
- * Known issue: excess padding remains in IE 6.
- */
-
-input[type="checkbox"],
-input[type="radio"] {
- box-sizing: border-box; /* 1 */
- padding: 0; /* 2 */
- *height: 13px; /* 3 */
- *width: 13px; /* 3 */
-}
-
-/**
- * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
- * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
- * (include `-moz` to future-proof).
- */
-
-input[type="search"] {
- -webkit-appearance: textfield; /* 1 */
- -moz-box-sizing: content-box;
- -webkit-box-sizing: content-box; /* 2 */
- box-sizing: content-box;
-}
-
-/**
- * Remove inner padding and search cancel button in Safari 5 and Chrome
- * on OS X.
- */
-
-input[type="search"]::-webkit-search-cancel-button,
-input[type="search"]::-webkit-search-decoration {
- -webkit-appearance: none;
-}
-
-/**
- * Remove inner padding and border in Firefox 3+.
- */
-
-button::-moz-focus-inner,
-input::-moz-focus-inner {
- border: 0;
- padding: 0;
-}
-
-/**
- * 1. Remove default vertical scrollbar in IE 6/7/8/9.
- * 2. Improve readability and alignment in all browsers.
- */
-
-textarea {
- overflow: auto; /* 1 */
- vertical-align: top; /* 2 */
-}
-
-/* ==========================================================================
- Tables
- ========================================================================== */
-
-/**
- * Remove most spacing between table cells.
- */
-
-table {
- border-collapse: collapse;
- border-spacing: 0;
-}
-
-/*csslint important:false*/
-
-/* ==========================================================================
- Pure Base Extras
- ========================================================================== */
-
-/**
- * Extra rules that Pure adds on top of Normalize.css
- */
-
-/**
- * Always hide an element when it has the `hidden` HTML attribute.
- */
-
-[hidden] {
- display: none !important;
-}
-
-/*csslint regex-selectors:false, known-properties:false, duplicate-properties:false*/
-
-.pure-g {
- letter-spacing: -0.31em; /* Webkit: collapse white-space between units */
- *letter-spacing: normal; /* reset IE < 8 */
- *word-spacing: -0.43em; /* IE < 8: collapse white-space between units */
- text-rendering: optimizespeed; /* Webkit: fixes text-rendering: optimizeLegibility */
-
- /*
- Sets the font stack to fonts known to work properly with the above letter
- and word spacings. See: https://github.com/yui/pure/issues/41/
-
- The following font stack makes Pure Grids work on all known environments.
-
- * FreeSans: Ships with many Linux distros, including Ubuntu
-
- * Arimo: Ships with Chrome OS. Arimo has to be defined before Helvetica and
- Arial to get picked up by the browser, even though neither is available
- in Chrome OS.
-
- * Droid Sans: Ships with all versions of Android.
-
- * Helvetica, Arial, sans-serif: Common font stack on OS X and Windows.
- */
- font-family: FreeSans, Arimo, "Droid Sans", Helvetica, Arial, sans-serif;
-
- /*
- Use flexbox when possible to avoid `letter-spacing` side-effects.
-
- NOTE: Firefox (as of 25) does not currently support flex-wrap, so the
- `-moz-` prefix version is omitted.
- */
-
- display: -webkit-flex;
- -webkit-flex-flow: row wrap;
-
- /* IE10 uses display: flexbox */
- display: -ms-flexbox;
- -ms-flex-flow: row wrap;
-}
-
-/* Opera as of 12 on Windows needs word-spacing.
- The ".opera-only" selector is used to prevent actual prefocus styling
- and is not required in markup.
-*/
-.opera-only :-o-prefocus,
-.pure-g {
- word-spacing: -0.43em;
-}
-
-.pure-u {
- display: inline-block;
- *display: inline; /* IE < 8: fake inline-block */
- zoom: 1;
- letter-spacing: normal;
- word-spacing: normal;
- vertical-align: top;
- text-rendering: auto;
-}
-
-/*
-Resets the font family back to the OS/browser's default sans-serif font,
-this the same font stack that Normalize.css sets for the `body`.
-*/
-.pure-g [class *= "pure-u"] {
- font-family: sans-serif;
-}
-
-.pure-u-1,
-.pure-u-1-1,
-.pure-u-1-2,
-.pure-u-1-3,
-.pure-u-2-3,
-.pure-u-1-4,
-.pure-u-3-4,
-.pure-u-1-5,
-.pure-u-2-5,
-.pure-u-3-5,
-.pure-u-4-5,
-.pure-u-5-5,
-.pure-u-1-6,
-.pure-u-5-6,
-.pure-u-1-8,
-.pure-u-3-8,
-.pure-u-5-8,
-.pure-u-7-8,
-.pure-u-1-12,
-.pure-u-5-12,
-.pure-u-7-12,
-.pure-u-11-12,
-.pure-u-1-24,
-.pure-u-2-24,
-.pure-u-3-24,
-.pure-u-4-24,
-.pure-u-5-24,
-.pure-u-6-24,
-.pure-u-7-24,
-.pure-u-8-24,
-.pure-u-9-24,
-.pure-u-10-24,
-.pure-u-11-24,
-.pure-u-12-24,
-.pure-u-13-24,
-.pure-u-14-24,
-.pure-u-15-24,
-.pure-u-16-24,
-.pure-u-17-24,
-.pure-u-18-24,
-.pure-u-19-24,
-.pure-u-20-24,
-.pure-u-21-24,
-.pure-u-22-24,
-.pure-u-23-24,
-.pure-u-24-24 {
- display: inline-block;
- *display: inline;
- zoom: 1;
- letter-spacing: normal;
- word-spacing: normal;
- vertical-align: top;
- text-rendering: auto;
-}
-
-.pure-u-1-24 {
- width: 4.1667%;
- *width: 4.1357%;
-}
-
-.pure-u-1-12,
-.pure-u-2-24 {
- width: 8.3333%;
- *width: 8.3023%;
-}
-
-.pure-u-1-8,
-.pure-u-3-24 {
- width: 12.5000%;
- *width: 12.4690%;
-}
-
-.pure-u-1-6,
-.pure-u-4-24 {
- width: 16.6667%;
- *width: 16.6357%;
-}
-
-.pure-u-1-5 {
- width: 20%;
- *width: 19.9690%;
-}
-
-.pure-u-5-24 {
- width: 20.8333%;
- *width: 20.8023%;
-}
-
-.pure-u-1-4,
-.pure-u-6-24 {
- width: 25%;
- *width: 24.9690%;
-}
-
-.pure-u-7-24 {
- width: 29.1667%;
- *width: 29.1357%;
-}
-
-.pure-u-1-3,
-.pure-u-8-24 {
- width: 33.3333%;
- *width: 33.3023%;
-}
-
-.pure-u-3-8,
-.pure-u-9-24 {
- width: 37.5000%;
- *width: 37.4690%;
-}
-
-.pure-u-2-5 {
- width: 40%;
- *width: 39.9690%;
-}
-
-.pure-u-5-12,
-.pure-u-10-24 {
- width: 41.6667%;
- *width: 41.6357%;
-}
-
-.pure-u-11-24 {
- width: 45.8333%;
- *width: 45.8023%;
-}
-
-.pure-u-1-2,
-.pure-u-12-24 {
- width: 50%;
- *width: 49.9690%;
-}
-
-.pure-u-13-24 {
- width: 54.1667%;
- *width: 54.1357%;
-}
-
-.pure-u-7-12,
-.pure-u-14-24 {
- width: 58.3333%;
- *width: 58.3023%;
-}
-
-.pure-u-3-5 {
- width: 60%;
- *width: 59.9690%;
-}
-
-.pure-u-5-8,
-.pure-u-15-24 {
- width: 62.5000%;
- *width: 62.4690%;
-}
-
-.pure-u-2-3,
-.pure-u-16-24 {
- width: 66.6667%;
- *width: 66.6357%;
-}
-
-.pure-u-17-24 {
- width: 70.8333%;
- *width: 70.8023%;
-}
-
-.pure-u-3-4,
-.pure-u-18-24 {
- width: 75%;
- *width: 74.9690%;
-}
-
-.pure-u-19-24 {
- width: 79.1667%;
- *width: 79.1357%;
-}
-
-.pure-u-4-5 {
- width: 80%;
- *width: 79.9690%;
-}
-
-.pure-u-5-6,
-.pure-u-20-24 {
- width: 83.3333%;
- *width: 83.3023%;
-}
-
-.pure-u-7-8,
-.pure-u-21-24 {
- width: 87.5000%;
- *width: 87.4690%;
-}
-
-.pure-u-11-12,
-.pure-u-22-24 {
- width: 91.6667%;
- *width: 91.6357%;
-}
-
-.pure-u-23-24 {
- width: 95.8333%;
- *width: 95.8023%;
-}
-
-.pure-u-1,
-.pure-u-1-1,
-.pure-u-5-5,
-.pure-u-24-24 {
- width: 100%;
-}
-/*csslint regex-selectors:false, known-properties:false, duplicate-properties:false*/
-
-.pure-g-r {
- letter-spacing: -0.31em;
- *letter-spacing: normal;
- *word-spacing: -0.43em;
-
- /*
- Sets the font stack to fonts known to work properly with the above letter
- and word spacings. See: https://github.com/yui/pure/issues/41/
-
- The following font stack makes Pure Grids work on all known environments.
-
- * FreeSans: Ships with many Linux distros, including Ubuntu
-
- * Arimo: Ships with Chrome OS. Arimo has to be defined before Helvetica and
- Arial to get picked up by the browser, even though neither is available
- in Chrome OS.
-
- * Droid Sans: Ships with all versions of Android.
-
- * Helvetica, Arial, sans-serif: Common font stack on OS X and Windows.
- */
- font-family: FreeSans, Arimo, "Droid Sans", Helvetica, Arial, sans-serif;
-
- /*
- Use flexbox when possible to avoid `letter-spacing` side-effects.
-
- NOTE: Firefox (as of 25) does not currently support flex-wrap, so the
- `-moz-` prefix version is omitted.
- */
-
- display: -webkit-flex;
- -webkit-flex-flow: row wrap;
-
- /* IE10 uses display: flexbox */
- display: -ms-flexbox;
- -ms-flex-flow: row wrap;
-}
-
-/* Opera as of 12 on Windows needs word-spacing.
- The ".opera-only" selector is used to prevent actual prefocus styling
- and is not required in markup.
-*/
-.opera-only :-o-prefocus,
-.pure-g-r {
- word-spacing: -0.43em;
-}
-
-/*
-Resets the font family back to the OS/browser's default sans-serif font,
-this the same font stack that Normalize.css sets for the `body`.
-*/
-.pure-g-r [class *= "pure-u"] {
- font-family: sans-serif;
-}
-
-.pure-g-r img {
- max-width: 100%;
- height: auto;
-}
-
-@media (min-width: 980px) {
- .pure-visible-phone {
- display: none;
- }
- .pure-visible-tablet {
- display: none;
- }
- .pure-hidden-desktop {
- display: none;
- }
-}
-
-@media (max-width: 480px) {
- .pure-g-r > .pure-u,
- .pure-g-r > [class *= "pure-u-"] {
- width: 100%;
- }
-}
-
-@media (max-width: 767px) {
- .pure-g-r > .pure-u,
- .pure-g-r > [class *= "pure-u-"] {
- width: 100%;
- }
- .pure-hidden-phone {
- display: none;
- }
- .pure-visible-desktop {
- display: none;
- }
-}
-
-@media (min-width: 768px) and (max-width: 979px) {
- .pure-hidden-tablet {
- display: none;
- }
- .pure-visible-desktop {
- display: none;
- }
-}
-
-.pure-button {
- /* Structure */
- display: inline-block;
- *display: inline; /*IE 6/7*/
- zoom: 1;
- line-height: normal;
- white-space: nowrap;
- vertical-align: baseline;
- text-align: center;
- cursor: pointer;
- -webkit-user-drag: none;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-
-/* Firefox: Get rid of the inner focus border */
-.pure-button::-moz-focus-inner {
- padding: 0;
- border: 0;
-}
-
-/*csslint outline-none:false*/
-
-.pure-button {
- font-family: inherit;
- font-size: 100%;
- *font-size: 90%; /*IE 6/7 - To reduce IE's oversized button text*/
- *overflow: visible; /*IE 6/7 - Because of IE's overly large left/right padding on buttons */
- padding: 0.5em 1em;
- color: #444; /* rgba not supported (IE 8) */
- color: rgba(0, 0, 0, 0.80); /* rgba supported */
- *color: #444; /* IE 6 & 7 */
- border: 1px solid #999; /*IE 6/7/8*/
- border: none rgba(0, 0, 0, 0); /*IE9 + everything else*/
- background-color: #E6E6E6;
- text-decoration: none;
- border-radius: 2px;
-}
-
-.pure-button-hover,
-.pure-button:hover,
-.pure-button:focus {
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#1a000000',GradientType=0);
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(transparent), color-stop(40%, rgba(0,0,0, 0.05)), to(rgba(0,0,0, 0.10)));
- background-image: -webkit-linear-gradient(transparent, rgba(0,0,0, 0.05) 40%, rgba(0,0,0, 0.10));
- background-image: -moz-linear-gradient(top, rgba(0,0,0, 0.05) 0%, rgba(0,0,0, 0.10));
- background-image: -o-linear-gradient(transparent, rgba(0,0,0, 0.05) 40%, rgba(0,0,0, 0.10));
- background-image: linear-gradient(transparent, rgba(0,0,0, 0.05) 40%, rgba(0,0,0, 0.10));
-}
-.pure-button:focus {
- outline: 0;
-}
-.pure-button-active,
-.pure-button:active {
- box-shadow: 0 0 0 1px rgba(0,0,0, 0.15) inset, 0 0 6px rgba(0,0,0, 0.20) inset;
-}
-
-.pure-button[disabled],
-.pure-button-disabled,
-.pure-button-disabled:hover,
-.pure-button-disabled:focus,
-.pure-button-disabled:active {
- border: none;
- background-image: none;
- filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
- filter: alpha(opacity=40);
- -khtml-opacity: 0.40;
- -moz-opacity: 0.40;
- opacity: 0.40;
- cursor: not-allowed;
- box-shadow: none;
-}
-
-.pure-button-hidden {
- display: none;
-}
-
-/* Firefox: Get rid of the inner focus border */
-.pure-button::-moz-focus-inner{
- padding: 0;
- border: 0;
-}
-
-.pure-button-primary,
-.pure-button-selected,
-a.pure-button-primary,
-a.pure-button-selected {
- background-color: rgb(0, 120, 231);
- color: #fff;
-}
-
-.pure-form input[type="text"],
-.pure-form input[type="password"],
-.pure-form input[type="email"],
-.pure-form input[type="url"],
-.pure-form input[type="date"],
-.pure-form input[type="month"],
-.pure-form input[type="time"],
-.pure-form input[type="datetime"],
-.pure-form input[type="datetime-local"],
-.pure-form input[type="week"],
-.pure-form input[type="number"],
-.pure-form input[type="search"],
-.pure-form input[type="tel"],
-.pure-form input[type="color"],
-.pure-form select,
-.pure-form textarea {
- padding: 0.5em 0.6em;
- display: inline-block;
- border: 1px solid #ccc;
- box-shadow: inset 0 1px 3px #ddd;
- border-radius: 4px;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
-}
-
-/*
-Need to separate out the :not() selector from the rest of the CSS 2.1 selectors
-since IE8 won't execute CSS that contains a CSS3 selector.
-*/
-.pure-form input:not([type]) {
- padding: 0.5em 0.6em;
- display: inline-block;
- border: 1px solid #ccc;
- box-shadow: inset 0 1px 3px #ddd;
- border-radius: 4px;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
-}
-
-
-/* Chrome (as of v.32/34 on OS X) needs additional room for color to display. */
-/* May be able to remove this tweak as color inputs become more standardized across browsers. */
-.pure-form input[type="color"] {
- padding: 0.2em 0.5em;
-}
-
-
-.pure-form input[type="text"]:focus,
-.pure-form input[type="password"]:focus,
-.pure-form input[type="email"]:focus,
-.pure-form input[type="url"]:focus,
-.pure-form input[type="date"]:focus,
-.pure-form input[type="month"]:focus,
-.pure-form input[type="time"]:focus,
-.pure-form input[type="datetime"]:focus,
-.pure-form input[type="datetime-local"]:focus,
-.pure-form input[type="week"]:focus,
-.pure-form input[type="number"]:focus,
-.pure-form input[type="search"]:focus,
-.pure-form input[type="tel"]:focus,
-.pure-form input[type="color"]:focus,
-.pure-form select:focus,
-.pure-form textarea:focus {
- outline: 0;
- outline: thin dotted \9; /* IE6-9 */
- border-color: #129FEA;
-}
-
-/*
-Need to separate out the :not() selector from the rest of the CSS 2.1 selectors
-since IE8 won't execute CSS that contains a CSS3 selector.
-*/
-.pure-form input:not([type]):focus {
- outline: 0;
- outline: thin dotted \9; /* IE6-9 */
- border-color: #129FEA;
-}
-
-.pure-form input[type="file"]:focus,
-.pure-form input[type="radio"]:focus,
-.pure-form input[type="checkbox"]:focus {
- outline: thin dotted #333;
- outline: 1px auto #129FEA;
-}
-.pure-form .pure-checkbox,
-.pure-form .pure-radio {
- margin: 0.5em 0;
- display: block;
-}
-
-.pure-form input[type="text"][disabled],
-.pure-form input[type="password"][disabled],
-.pure-form input[type="email"][disabled],
-.pure-form input[type="url"][disabled],
-.pure-form input[type="date"][disabled],
-.pure-form input[type="month"][disabled],
-.pure-form input[type="time"][disabled],
-.pure-form input[type="datetime"][disabled],
-.pure-form input[type="datetime-local"][disabled],
-.pure-form input[type="week"][disabled],
-.pure-form input[type="number"][disabled],
-.pure-form input[type="search"][disabled],
-.pure-form input[type="tel"][disabled],
-.pure-form input[type="color"][disabled],
-.pure-form select[disabled],
-.pure-form textarea[disabled] {
- cursor: not-allowed;
- background-color: #eaeded;
- color: #cad2d3;
-}
-
-/*
-Need to separate out the :not() selector from the rest of the CSS 2.1 selectors
-since IE8 won't execute CSS that contains a CSS3 selector.
-*/
-.pure-form input:not([type])[disabled] {
- cursor: not-allowed;
- background-color: #eaeded;
- color: #cad2d3;
-}
-.pure-form input[readonly],
-.pure-form select[readonly],
-.pure-form textarea[readonly] {
- background: #eee; /* menu hover bg color */
- color: #777; /* menu text color */
- border-color: #ccc;
-}
-
-.pure-form input:focus:invalid,
-.pure-form textarea:focus:invalid,
-.pure-form select:focus:invalid {
- color: #b94a48;
- border-color: #ee5f5b;
-}
-.pure-form input:focus:invalid:focus,
-.pure-form textarea:focus:invalid:focus,
-.pure-form select:focus:invalid:focus {
- border-color: #e9322d;
-}
-.pure-form input[type="file"]:focus:invalid:focus,
-.pure-form input[type="radio"]:focus:invalid:focus,
-.pure-form input[type="checkbox"]:focus:invalid:focus {
- outline-color: #e9322d;
-}
-.pure-form select {
- border: 1px solid #ccc;
- background-color: white;
-}
-.pure-form select[multiple] {
- height: auto;
-}
-.pure-form label {
- margin: 0.5em 0 0.2em;
-}
-.pure-form fieldset {
- margin: 0;
- padding: 0.35em 0 0.75em;
- border: 0;
-}
-.pure-form legend {
- display: block;
- width: 100%;
- padding: 0.3em 0;
- margin-bottom: 0.3em;
- color: #333;
- border-bottom: 1px solid #e5e5e5;
-}
-
-.pure-form-stacked input[type="text"],
-.pure-form-stacked input[type="password"],
-.pure-form-stacked input[type="email"],
-.pure-form-stacked input[type="url"],
-.pure-form-stacked input[type="date"],
-.pure-form-stacked input[type="month"],
-.pure-form-stacked input[type="time"],
-.pure-form-stacked input[type="datetime"],
-.pure-form-stacked input[type="datetime-local"],
-.pure-form-stacked input[type="week"],
-.pure-form-stacked input[type="number"],
-.pure-form-stacked input[type="search"],
-.pure-form-stacked input[type="tel"],
-.pure-form-stacked input[type="color"],
-.pure-form-stacked select,
-.pure-form-stacked label,
-.pure-form-stacked textarea {
- display: block;
- margin: 0.25em 0;
-}
-
-/*
-Need to separate out the :not() selector from the rest of the CSS 2.1 selectors
-since IE8 won't execute CSS that contains a CSS3 selector.
-*/
-.pure-form-stacked input:not([type]) {
- display: block;
- margin: 0.25em 0;
-}
-.pure-form-aligned input,
-.pure-form-aligned textarea,
-.pure-form-aligned select,
-/* NOTE: pure-help-inline is deprecated. Use .pure-form-message-inline instead. */
-.pure-form-aligned .pure-help-inline,
-.pure-form-message-inline {
- display: inline-block;
- *display: inline;
- *zoom: 1;
- vertical-align: middle;
-}
-.pure-form-aligned textarea {
- vertical-align: top;
-}
-
-/* Aligned Forms */
-.pure-form-aligned .pure-control-group {
- margin-bottom: 0.5em;
-}
-.pure-form-aligned .pure-control-group label {
- text-align: right;
- display: inline-block;
- vertical-align: middle;
- width: 10em;
- margin: 0 1em 0 0;
-}
-.pure-form-aligned .pure-controls {
- margin: 1.5em 0 0 10em;
-}
-
-/* Rounded Inputs */
-.pure-form input.pure-input-rounded,
-.pure-form .pure-input-rounded {
- border-radius: 2em;
- padding: 0.5em 1em;
-}
-
-/* Grouped Inputs */
-.pure-form .pure-group fieldset {
- margin-bottom: 10px;
-}
-.pure-form .pure-group input {
- display: block;
- padding: 10px;
- margin: 0;
- border-radius: 0;
- position: relative;
- top: -1px;
-}
-.pure-form .pure-group input:focus {
- z-index: 2;
-}
-.pure-form .pure-group input:first-child {
- top: 1px;
- border-radius: 4px 4px 0 0;
-}
-.pure-form .pure-group input:last-child {
- top: -2px;
- border-radius: 0 0 4px 4px;
-}
-.pure-form .pure-group button {
- margin: 0.35em 0;
-}
-
-.pure-form .pure-input-1 {
- width: 100%;
-}
-.pure-form .pure-input-2-3 {
- width: 66%;
-}
-.pure-form .pure-input-1-2 {
- width: 50%;
-}
-.pure-form .pure-input-1-3 {
- width: 33%;
-}
-.pure-form .pure-input-1-4 {
- width: 25%;
-}
-
-/* Inline help for forms */
-/* NOTE: pure-help-inline is deprecated. Use .pure-form-message-inline instead. */
-.pure-form .pure-help-inline,
-.pure-form-message-inline {
- display: inline-block;
- padding-left: 0.3em;
- color: #666;
- vertical-align: middle;
- font-size: 0.875em;
-}
-
-/* Block help for forms */
-.pure-form-message {
- display: block;
- color: #666;
- font-size: 0.875em;
-}
-
-@media only screen and (max-width : 480px) {
- .pure-form button[type="submit"] {
- margin: 0.7em 0 0;
- }
-
- .pure-form input:not([type]),
- .pure-form input[type="text"],
- .pure-form input[type="password"],
- .pure-form input[type="email"],
- .pure-form input[type="url"],
- .pure-form input[type="date"],
- .pure-form input[type="month"],
- .pure-form input[type="time"],
- .pure-form input[type="datetime"],
- .pure-form input[type="datetime-local"],
- .pure-form input[type="week"],
- .pure-form input[type="number"],
- .pure-form input[type="search"],
- .pure-form input[type="tel"],
- .pure-form input[type="color"],
- .pure-form label {
- margin-bottom: 0.3em;
- display: block;
- }
-
- .pure-group input:not([type]),
- .pure-group input[type="text"],
- .pure-group input[type="password"],
- .pure-group input[type="email"],
- .pure-group input[type="url"],
- .pure-group input[type="date"],
- .pure-group input[type="month"],
- .pure-group input[type="time"],
- .pure-group input[type="datetime"],
- .pure-group input[type="datetime-local"],
- .pure-group input[type="week"],
- .pure-group input[type="number"],
- .pure-group input[type="search"],
- .pure-group input[type="tel"],
- .pure-group input[type="color"] {
- margin-bottom: 0;
- }
-
- .pure-form-aligned .pure-control-group label {
- margin-bottom: 0.3em;
- text-align: left;
- display: block;
- width: 100%;
- }
-
- .pure-form-aligned .pure-controls {
- margin: 1.5em 0 0 0;
- }
-
- /* NOTE: pure-help-inline is deprecated. Use .pure-form-message-inline instead. */
- .pure-form .pure-help-inline,
- .pure-form-message-inline,
- .pure-form-message {
- display: block;
- font-size: 0.75em;
- /* Increased bottom padding to make it group with its related input element. */
- padding: 0.2em 0 0.8em;
- }
-}
-
-/*csslint adjoining-classes:false, outline-none:false*/
-/*TODO: Remove this lint rule override after a refactor of this code.*/
-
-.pure-menu ul {
- position: absolute;
- visibility: hidden;
-}
-
-.pure-menu.pure-menu-open {
- visibility: visible;
- z-index: 2;
- width: 100%;
-}
-
-.pure-menu ul {
- left: -10000px;
- list-style: none;
- margin: 0;
- padding: 0;
- top: -10000px;
- z-index: 1;
-}
-
-.pure-menu > ul { position: relative; }
-
-.pure-menu-open > ul {
- left: 0;
- top: 0;
- visibility: visible;
-}
-
-.pure-menu-open > ul:focus {
- outline: 0;
-}
-
-.pure-menu li { position: relative; }
-
-.pure-menu a,
-.pure-menu .pure-menu-heading {
- display: block;
- color: inherit;
- line-height: 1.5em;
- padding: 5px 20px;
- text-decoration: none;
- white-space: nowrap;
-}
-
-.pure-menu.pure-menu-horizontal > .pure-menu-heading {
- display: inline-block;
- *display: inline;
- zoom: 1;
- margin: 0;
- vertical-align: middle;
-}
-.pure-menu.pure-menu-horizontal > ul {
- display: inline-block;
- *display: inline;
- zoom: 1;
- vertical-align: middle;
-}
-
-.pure-menu li a { padding: 5px 20px; }
-
-.pure-menu-can-have-children > .pure-menu-label:after {
- content: '\25B8';
- float: right;
- /* These specific fonts have the Unicode char we need. */
- font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'DejaVu Sans', sans-serif;
- margin-right: -20px;
- margin-top: -1px;
-}
-
-.pure-menu-can-have-children > .pure-menu-label {
- padding-right: 30px;
-}
-
-.pure-menu-separator {
- background-color: #dfdfdf;
- display: block;
- height: 1px;
- font-size: 0;
- margin: 7px 2px;
- overflow: hidden;
-}
-
-.pure-menu-hidden {
- display: none;
-}
-
-/* FIXED MENU */
-.pure-menu-fixed {
- position: fixed;
- top: 0;
- left: 0;
- width: 100%;
-}
-
-
-/* HORIZONTAL MENU CODE */
-
-/* Initial menus should be inline-block so that they are horizontal */
-.pure-menu-horizontal li {
- display: inline-block;
- *display: inline;
- zoom: 1;
- vertical-align: middle;
-}
-
-/* Submenus should still be display: block; */
-.pure-menu-horizontal li li {
- display: block;
-}
-
-/* Content after should be down arrow */
-.pure-menu-horizontal > .pure-menu-children > .pure-menu-can-have-children > .pure-menu-label:after {
- content: "\25BE";
-}
-/*Add extra padding to elements that have the arrow so that the hover looks nice */
-.pure-menu-horizontal > .pure-menu-children > .pure-menu-can-have-children > .pure-menu-label {
- padding-right: 30px;
-}
-
-/* Adjusting separator for vertical menus */
-.pure-menu-horizontal li.pure-menu-separator {
- height: 50%;
- width: 1px;
- margin: 0 7px;
-}
-
-/* Submenus should be horizontal separator again */
-.pure-menu-horizontal li li.pure-menu-separator {
- height: 1px;
- width: auto;
- margin: 7px 2px;
-}
-
-
-/*csslint adjoining-classes:false*/
-/*TODO: Remove this lint rule override after a refactor of this code.*/
-
-/* MAIN MENU STYLING */
-
-.pure-menu.pure-menu-open,
-.pure-menu.pure-menu-horizontal li .pure-menu-children {
- background: #fff; /* Old browsers */
- border: 1px solid #b7b7b7;
-}
-
-/* remove borders for horizontal menus */
-.pure-menu.pure-menu-horizontal,
-.pure-menu.pure-menu-horizontal .pure-menu-heading {
- border: none;
-}
-
-
-/* LINK STYLES */
-
-.pure-menu a {
- border: 1px solid transparent;
- border-left: none;
- border-right: none;
-
-}
-
-.pure-menu a,
-.pure-menu .pure-menu-can-have-children > li:after {
- color: #777;
-}
-
-.pure-menu .pure-menu-can-have-children > li:hover:after {
- color: #fff;
-}
-
-/* Focus style for a dropdown menu-item when the parent has been opened */
-.pure-menu .pure-menu-open {
- background: #dedede;
-}
-
-
-.pure-menu li a:hover,
-.pure-menu li a:focus {
- background: #eee;
-}
-
-/* DISABLED STATES */
-.pure-menu li.pure-menu-disabled a:hover,
-.pure-menu li.pure-menu-disabled a:focus {
- background: #fff;
- color: #bfbfbf;
-}
-
-.pure-menu .pure-menu-disabled > a {
- background-image: none;
- border-color: transparent;
- cursor: default;
-}
-
-.pure-menu .pure-menu-disabled > a,
-.pure-menu .pure-menu-can-have-children.pure-menu-disabled > a:after {
- color: #bfbfbf;
-}
-
-/* HEADINGS */
-.pure-menu .pure-menu-heading {
- color: #565d64;
- text-transform: uppercase;
- font-size: 90%;
- margin-top: 0.5em;
- border-bottom-width: 1px;
- border-bottom-style: solid;
- border-bottom-color: #dfdfdf;
-}
-
-/* ACTIVE MENU ITEM */
-.pure-menu .pure-menu-selected a {
- color: #000;
-}
-
-/* FIXED MENU */
-.pure-menu.pure-menu-open.pure-menu-fixed {
- border: none;
- border-bottom: 1px solid #b7b7b7;
-}
-
-/*csslint box-model:false*/
-/*TODO: Remove this lint rule override after a refactor of this code.*/
-
-
-.pure-paginator {
-
- /* `pure-g` Grid styles */
- letter-spacing: -0.31em; /* Webkit: collapse white-space between units */
- *letter-spacing: normal; /* reset IE < 8 */
- *word-spacing: -0.43em; /* IE < 8: collapse white-space between units */
- text-rendering: optimizespeed; /* Webkit: fixes text-rendering: optimizeLegibility */
-
- /* `pure-paginator` Specific styles */
- list-style: none;
- margin: 0;
- padding: 0;
-}
-.opera-only :-o-prefocus,
-.pure-paginator {
- word-spacing: -0.43em;
-}
-
-/* `pure-u` Grid styles */
-.pure-paginator li {
- display: inline-block;
- *display: inline; /* IE < 8: fake inline-block */
- zoom: 1;
- letter-spacing: normal;
- word-spacing: normal;
- vertical-align: top;
- text-rendering: auto;
-}
-
-
-.pure-paginator .pure-button {
- border-radius: 0;
- padding: 0.8em 1.4em;
- vertical-align: top;
- height: 1.1em;
-}
-.pure-paginator .pure-button:focus,
-.pure-paginator .pure-button:active {
- outline-style: none;
-}
-.pure-paginator .prev,
-.pure-paginator .next {
- color: #C0C1C3;
- text-shadow: 0 -1px 0 rgba(0,0,0, 0.45);
-}
-.pure-paginator .prev {
- border-radius: 2px 0 0 2px;
-}
-.pure-paginator .next {
- border-radius: 0 2px 2px 0;
-}
-
-@media (max-width: 480px) {
- .pure-menu-horizontal {
- width: 100%;
- }
-
- .pure-menu-children li {
- display: block;
- border-bottom: 1px solid black;
- }
-}
-
-.pure-table {
- /* Remove spacing between table cells (from Normalize.css) */
- border-collapse: collapse;
- border-spacing: 0;
- empty-cells: show;
- border: 1px solid #cbcbcb;
-}
-
-.pure-table caption {
- color: #000;
- font: italic 85%/1 arial, sans-serif;
- padding: 1em 0;
- text-align: center;
-}
-
-.pure-table td,
-.pure-table th {
- border-left: 1px solid #cbcbcb;/* inner column border */
- border-width: 0 0 0 1px;
- font-size: inherit;
- margin: 0;
- overflow: visible; /*to make ths where the title is really long work*/
- padding: 6px 12px; /* cell padding */
-}
-.pure-table td:first-child,
-.pure-table th:first-child {
- border-left-width: 0;
-}
-
-.pure-table thead {
- background: #e0e0e0;
- color: #000;
- text-align: left;
- vertical-align: bottom;
-}
-
-/*
-striping:
- even - #fff (white)
- odd - #f2f2f2 (light gray)
-*/
-.pure-table td {
- background-color: transparent;
-}
-.pure-table-odd td {
- background-color: #f2f2f2;
-}
-
-/* nth-child selector for modern browsers */
-.pure-table-striped tr:nth-child(2n-1) td {
- background-color: #f2f2f2;
-}
-
-/* BORDERED TABLES */
-.pure-table-bordered td {
- border-bottom: 1px solid #cbcbcb;
-}
-.pure-table-bordered tbody > tr:last-child td,
-.pure-table-horizontal tbody > tr:last-child td {
- border-bottom-width: 0;
-}
-
-
-/* HORIZONTAL BORDERED TABLES */
-
-.pure-table-horizontal td,
-.pure-table-horizontal th {
- border-width: 0 0 1px 0;
- border-bottom: 1px solid #cbcbcb;
-}
-.pure-table-horizontal tbody > tr:last-child td {
- border-bottom-width: 0;
-}
diff --git a/source/stylesheets/site.css.scss b/source/stylesheets/site.css.scss
deleted file mode 100644
index a9b04ed..0000000
--- a/source/stylesheets/site.css.scss
+++ /dev/null
@@ -1,73 +0,0 @@
-$fontAwesomePath: "../fonts";
-@import "fontawesome";
-@import "pure";
-
-#sitelink {
- font-size: 1em;
- letter-spacing: -0.11em;
- &:hover {
- text-decoration: none;
- }
- line-height: 1em;
- span {
- vertical-align: -0.2em;
- line-height: 1em;
- }
-}
-
-body,
-.pure-g [class *= "pure-u"],
-.pure-g-r [class *= "pure-u"] {
- /* Set you're content font stack here: */
- font-family: "Maven Pro", sans-serif;
-}
-
-.icons {
- dd {
- display:block;clear:both;
- }
-}
-
-.content {
- margin: 0px auto 50px;
- padding: 0px 2em;
- max-width: 800px;
-}
-
-.overview {
- margin: 0px auto 50px;
- max-width: 250px;
-}
-
-.hero {
- min-height: 80px;
- margin: 0px;
- color: rgb(51, 51, 51);
- padding: 1em 2em;
- text-align: center;
- border-bottom: 1px solid rgb(238, 238, 238);
- background: none repeat scroll 0% 0% rgb(255, 255, 255);
-}
-
-.hero h1 {
- margin: 0.2em 0px;
- font-size: 3em;
- font-weight: 300;
-}
-
-.hero h2 {
- font-weight: 300;
- margin: 0px;
- color: rgb(204, 204, 204);
-}
-
-a {color: rgb(59, 139, 186);text-decoration: none;}
-
-
-footer {
- font-size: 87.5%;
- border-top: 1px solid rgb(238, 238, 238);
- padding: 0.5em 1.1429em;
- background: none repeat scroll 0% 0% rgb(250, 250, 250);
- line-height: 1.6em;
-}