Revamp UI (fixes #185, fixes #147, fixes #136, fixes #124)

This commit is contained in:
Jakob Borg committed 2014-05-20 19:36:37 +02:00
1 parent 36bdd9cb4d
commit dd3d8a6c98
14 files changed
+760 -716

No files matched your search

+3 -3
View File
@@ -18,7 +18,7 @@ func init() {
bs, _ = ioutil.ReadAll(gr)
Assets["angular.min.js"] = bs
bs, _ = hex.DecodeString("1f8b080000096e8800ffd41c5d6fdbb6f6bdbf82f3ba496e1d39192e868bb8c9b0a5dd90dbb50d9ab52f411e648bb6d9c8944751498cccfffd1e7e4822454a569276eb0c6cb1c9c3f3cdf341511d3ffb94a784723465d94d8ed921e2acc02334cb2827b4c0e5ef755ae4e23ff51b3d1b3f193f5ba4d9344ed1d343348fd31c8062ba28d298e9df02e84950c0979c3332e3c1e4c993eb98a17c43677c49e8021d952ba2559614290e836a2e18a18bcbe1442e28583a8d01cd110a18ce259e0a2e128cb22c4d310b83f372f484b31430cc0bf84d328ac2a7f92c5b03874f979caf87e8ee09828fc0bd66f8fa65cc05f2fd4935bac0fcdd6b1812b2d6a38278ccb8e25c8a089c8849855db042b1249803c0dd76d2989c93853bbeda9cbe149205d628cd122c905c5c7a909c5221a8c59e9ec78c65ccb32ec798be12732e25d03c4e5db6185e67a514727c3c46e76046bac8d114cf3386d134cbd21ca5597605239c636653e45c02032f72fc8e248728f89de41c534004d6010967e02bd26ae88c653c9b65295210e8e7240175e7380740be59831f061cdf72f8a5ada01c713b3290bf896fcf314d5e4fd7b981fe5dc11799b0d97b61e6dfc98a7014befe659d0f6bd4b4584d31eb44fe1ed0c5f494829cd7717a6e105033a89c42e1bd316bc7f123d7930fc77f16b318f647fa1eff590090a91bd01802fdc04a9a4815d520fdf1039293256c64dc50bc40fe2b493152b34affbd356f10f84dc6999f297d45e3698a1383869a423097c15ec7355ee19c9d5cff9ecd5a70ca9987a03c17e3bfa8386afab71846f5b889ce5affe18c9eb9eca8112426fd8b2fed28b428c8b97ff3e93d65aaefc3e96336dc075b5081ede7822f31a48e592c03ef074be49d08cfe23cbfc958d28dd480d288d7f5880f79a9a12a1f407c3f2f66338c139c84653a101f3247e13732fa9ba3867609253c1c4eeca930f896620e0c5cc9201b0c45548dd330589204070d6837b788cfd662a1ce34f764a35ed8cd842f95d9ac6c5d95fd1ac36e76f5d5ce2cc3bc60b44d48bf9adb7479378d675709cbd6606ea007ce00c6bec29b6916b344571cdb1655770958e5bb39c8b114c055d160f2260b870810866535f21c05e37c037b67053ce6c29bf23cac1727318f9bc2d96e37f11956610436c47a83e5a1caeda19f3b8dbc3490b9aefefe6efa09f248043acb4333cb0f2348e7afe2d9d2404e12c7305e05c8eae12781e62880014c6730f0e1fde949b65a6714f6acc0d4573d861a24de0b925c3a9a684a657ef7f3689465bd2d25ca3d9add0075511c423976130e4716044f603214307b551139446374b0bfbf6f439244879ff263d49cb0deeb0684422ead6bd2c66c56f06ada9a07430adb2142519b8265841393d132cedfdd5028bcd698f18d3494075e7cca6660e2cc6e9d11ce362d58045161d24ab837315f46abf836dc1fa1ffa267ca1212e294feb2e138ff23e39089f73cf5b5032554cf93a1cba145b9525c3b692887fad0b6c05a896f11a4acd91285b84db58e52f6fb8ae00174ad61b9d3f3a306391783ed60e60235d4d8873ee7b4bba06618dbb5595507d37b9f36fb1e3fb9ede449b3b781a28c17b915eec57033b789fa229bdb5149c0415c3a8256aaa0099e130af59a3ff5418944af608fd3c0cc3e16051735d806ca7cd8c5df0812ad98cf79b65e03652f66d9677315630211993d64e47cbdba04977f2ff62f239e7d0002ec044c03c9e6b99a00bb4ca19d0f0f86135b0ebdfc080d443f07c5c000fdf517aa474f93140f9ab2a86970b3010a073597a2bb3fc36c06f9235e606d98e768f0dd70e09556abc410a899dcd7d9490a35e297b7b72871f7089d675fc0e21277227a29f6d9ac6e992e2060a46ef27a5b066d455d8d2b576ed08d6ecdc82a661b2fba3695dab6b57de58b1b18d27b9be81e65ab1332992824fefd7e582d83aea1f73f121090a6bcae23f69b2231f601183c4c9aba95697086491a02157fb01427519e6029864fe656c52f9815c11fe03c49532f88dec2dfd39797b6070ac0a66acaf148d492299664850e4113be645a7acb29454221412353212c4e24db97e9a08542b16d9a6421317d376c62ec0844c14b926bd9ab00ed51ebe94c88f46f506a76755f7dea7eea3e4a5b418999b76bcb0de05fadbadc20d94b676e30dca933332cba2a13673a7fb3c634635269fa48a92bb6ffd4616f43e5ff98088d20d099a7da45f988779a413063732a1dcd7848d0c2a686b8c62c07dc3efebea47a520279f7633bed1e767e1baff0bdb403f02d3c99201ddcd82297152d74823ffa53205f92fcad8fd3a613964f6d1aebcc0319a306d1d076d9218a663911a5982ef8124a4274d022ee202c54772157d8b571932d90571e370066a8ed275f89667142b87158dd72f41606df968f93fa1e07cac3dfa1b75e8caff16e92dec76d8d63440b287ab796fb2952c7e93af4595bce853ae72ccad729e161301292c56ba3ddbd05864abdde461c7203f891a7835e67b973de05a4401dff3b7ff736cae5433b32df841627c311ba5be23881ad7b88ee82938c023f7cef0f70cd00541aaf812d75dc3efe946734d85a847d16198873e6415bc72d8f885bf56d1d47db07e36da7daf932bb09762b432fb520773c4bf5f8a8f0e75d31aa445b30069ad42b9e46d0bc609a8477db51b93b5c56040910eed52d7885570716d8394ee7eaecb1912eac6ce1ca5b3316550f7bc00375581098aae1e85346283825f2e84d00bf024e32163d0527386392692bc8099b956a7bd08eb52d10278963809d9abf33650492c986c62ba0b9eda17dff46b7d5ef87f9fb95038d1ee6b85b3f3e8ace63217930ec57c9eee73a3e3d18d14f65b4394939361f61b4d516b4f4e96f6aa736dd57cdb61c2b5af1f6ad870fe3e04a9e978b14a9ceccd5e310ff11a39c9327a10d9c8d891e523e42d2a6b4aee677e4ac7f2265343c5664e04e7f356a96114a328a47884cee2b682f9faf2b2357f70e5415689b650e78401acf7038466360380072d5c85e39a2f3b783b38a52be30fcc0faa0222274e7aa463d24924f1010412fec3daaaa4e9878fedcd70c9bb017e4d26c556ca5743cdb2b17d7124f1c50cdb99d06cbcf94e1f8aa4793ac1e7501a6962dad245e17f9327453734b4c8bf28cf1b0ec4f63861f1a7abe869d98f12566259f6d9599d965b6c6f1de615cd4266ee06e69b83a23048182aa19ca1fe0d5b4612270cc89e3f6b4674f6e087f412fdb5dd423b37c8425da829ea6508fbc5c5bb4757038fa8340fb7aec5c09dc698d598a63f6aa7cc2d6598299f70c2d3e2f6cae756fbb870e2e255b3b13945c37969c047e2ee78c409d9d6e5c77864d64b25ae7fcfb3b8b3c4a31f385df65725955c3ffab4430ab02e3a879f621e686c38ea61af0b43455ebac8fc39470f6a50f5f6f2c12e67b98bd5faba357d4ad4e0e25a938f996a68000b5edea7d0c246501e5dc46712a28cf5a8be845b9612fLine truncated
bs, _ = hex.DecodeString("1f8b080000096e8800ffd43c5d73dbb6b2eff915a89a965422534eeebd9d3b56944eeba41d9f3489276ef2e2fa811221893105aa24185be3eabf9f5d00240102a4683b6953cf9c131b58ec2e7617fb05b0e3471ff324669cccb2f42aa7d911e1594147649e321eb382967f6f9222c7ffc9bfc9a3f183f1a36592cec2843c3c228b30c9012864cb220933f537023df00af825e7593ce7dee4c1834f6146f22d9bf355cc96645aae08d6695424d4f7aa396f44ce2f8613b1a0c892590868a6c4cb682ef0547001329aa5494233df3b2b478f7996008645017fc72923fec37c9e6e80c3872bce374372f380c00fe2de64f4d38b9023f2c34935baa4fced2b18c2bdd6a3483cccb8e45c6c1138c149891d59615410cc01e06637694c2ee2a53dbede9ebcc09d79c6284b238a48ce2f1c484e186ed4604fcdd32c4b33c7ba9c52f612e76c4a20799ad86c65749396bb10e3e331390335b2654e6674916694ccd234c94992a69730c239cd4c8a9c0b60e0458cdfc4d111f17e8b734e192002edc00ee7602b426be4344b793a4f132221c84f5104e2ce690e807cbb013bf438bde6f097d28234c4dd4843fe3abc3ea32c7a35dbe41afab7055fa6a8b377a8e6dfe275cc89ffeae74d3eac51b3623da35927f277802e64270cf6f9294cce340272869453c4bf356665386ee46af2eef84fc32c84f391bca37f1600a4cb062446403eb09245424435487ffc80e47805079936048fc87f89134ae4ac947f6fc96b047e157ee627c65eb27096d048a321a708cca570d6698d178db393ebdfd2790b4e317317946738feb3f4a3ba7de330a9c77574c6faf7a7ecd466478e109c742fbe30bdd0b288cfdc874f9d295d7cef4fee73e0de9b1b456c3f157c452174cc43e178df1b5bde8bf034ccf3ab348bba916a500af1a61e71212f2554c503f0ef67c57c4e694423bf0c07f8132f88ff8df0fefaa826dd98c5dc1f4ecc29dffb96510e0c5c0a27eb0dd1ab8689efade2887a0d683bb6e0cfce60a18e34b764a35ed8cd842b9499acec6c91fd12c269b6e5d5ce6c467991b1b64dbac5dc26cb9b5938bf8cb27403ea067a600ca0ec4bba9da56116a98c63d722eaae0d56f16e01fb5821709534e8bc89c42100847e998d3c26de38dfc2d959038f395a539efbf5e228e4617373a6d94d5c8a9518810d5cafb13c94b1dd7773a790970ad2d7d5bfbf9d7d84381280cc725f8ff2c300c2f9cb70bed290c791a518a70044f6f023a2997a3040d91c06debf3b394ed79b94c199454c7dc5a38941e03d8fa30b4b12cd5de9bfbb79d4d2b2de9ac2748fa557401d934348c7aefce1c880e0114cfa08735025914332264f0e0f0f4dc83852eea7fcd1724e58ef348398412cad73d2c66c5af06ada980745a2ee48cc489b808587c3c96015e66faf18245e1b9af1ad5094031e7fca626062cdeeac119e6d5bb020515469b5b9d7215f05ebf0da3f1c91ff278fa42604c409fb79cb69fe7bca21121f38f26b0b0a45cfa3a1cda141b9125c3b694887fad036c05a89ef0884acf98af8b44db496500efb6ec101686bc330a7c7d306391b836960fa0239d438872ee334aba0a61bdb77586505d3fb9c36eb1e37b9dde441b3b681a48c17b9e1ee71b819db30bf4817a6574238f04b5328a50a16d145cc205f73873e4891d8259c71e6e9d1c7a060a306dd409a0fa7f81b24d18af98ca79b0d507662167536973ec643cfec2023e6ebd525b8f8f7fcf022e0e97b20901d836a20d83c9613a0971994f3fe93e1c4dc875a3e2503ace720191890bffe22f5e84994d041732f721acc6c40fc41cd2556f7a7349b43fc08975429e631197c371c3877ab44a26da819dc37e9710239e297d777cc16e9175076841554f6d9746d28cc8b4135ad94d539f4dab2b81a4d2ef5de8a6993c5eb30db3a3139c467aad034892fae4788e26d1b76485736c2443c10f80ffb613534b881127f8a10108d9c6682c74a9218bb00341e264db18a68b74852c81f818cdb2962c7c9e11471f8786164f6c82d3a7980730447b5207803ff9ebcb8306d0e019bb229c703cc19132ac8a2104114aea0595aca09232811af119108c5ce63fb32e59c888f07a5491602d077c326c60e87e3bd8873b5f7ca113bc47a32c72dfd1b849a5ede569eaa6eba8dd0d6904ae6edd2b21df5572b2edb37f69299ed08f7ca4cf78bb6c8b077f3374b4c312684a65a475d7efdc70e7d6b22ffc7b6d070029d31aa7d2b1fe85e35203326a7c2d0b4cb80163615c4279ae580dbc5df97144f1243e0fdd04e7b8f9e21d64648d8928eb95ddcc11a0b2671f7a15f8500868453bdfd81fc9664592d4a22b14e8c5203b7a8f00609654bbe82748b3c69d971951c746c54618334b9d518de846b7bbf5dd600f02d1ce9201d4c992a2e3375a8707f70877cbe8af3372e4e9b3a6152758d657e43c22ae792c0bdb2ac815fc8f2482c3293fba688f6c9a78f707a4b864631d79ae82d2d41dffbb6bce6eadba6144de9a133c10d3fd1fd249dd7808df6a60114bcdd88f31fc836bf72d5868bb0a1ce7816e49b24e6be37c29d851bede05d6b07ef3ae010cbc0101c95fd26cdad3e1c900271fce7eced9b20179789f162eb1b9c0c47e46645c3085ccd11b9f18e5306fcf083dfc1b63c1069b801b6e435c0f8639e326f671076696480fdef415b2740b4ae5be56db4c9cd867d5bb73d5fa557de7e61a8a506e49e3bde06eff9aae0119e9dee96b545b95ce7ecb158053ae5bfc76b9a16dc371be53e28eae9ff1db635626fb7153c6ecef0d0709725da22cbc028d48a8701bd061b89fc9bdda87481362b4802f4f4f21a0cdca94e03ec8c260bd9de6d446a2350dbfbad190baafb34384c645af9e66a38f898c60cce1771980002bf044ed22c78081a38cd04d386c345f32bc57627e7636a208cecf8bc57f237fa1e8164b465e11a68ee7a48dfedb34cf1bb61fe7ee140914d39ed968f8ba275f3267aef6e91ecbf3a73c9a15f9ae40c99a54d7f531bb56ebe72b6c7e916904d3eb4dea0b892c024425e4bc81b27771757cc896673036763a2c72eefb1d3e66e6dc9ef09bfff44f46bc60648263aedb5cceac0258d4894323a22f1e4b61bed65f38a0a71c9de82aa1c6d3397050b48c239f5c7640c0c7b40ae1a392847542a62e1acbc94cb0ddf31d5a988a0ec6cd1c87b3871494362f2cc3ca3b2028189c78f5d7d081df63cbed0ab4453281dd7a7e5e27ac7130b54716e86c1f26796d1f0b2477f42de2602a696232d77bc292061b043738b4f0bf234e37ed91a08337a57d7f3359cc494af6856f2d99664ea057eab1fefedc63137b11d774bedd7e9216248a89aaefc0e56cd1a2a02c39c5866cf7ab643f4cdb71ba863c7619274eba1f4899a45d5da6b3a1665d456493cb49aefca2a1d1c895b4bacb87a9a86bce5b46da3ad2ca601e6eee4b9f50a74af75cc131a662fcb4bd5ce94507f5a6af0796e72adfa2e07e4c985606b6fc014ebc68213cfcde522Line truncated
gr, _ = gzip.NewReader(bytes.NewBuffer(bs))
bs, _ = ioutil.ReadAll(gr)
Assets["app.js"] = bs
@@ -28,7 +28,7 @@ func init() {
bs, _ = ioutil.ReadAll(gr)
Assets["bootstrap/css/bootstrap-theme.min.css"] = bs
bs, _ = hex.DecodeString("1f8b080000096e8800ffecbd6d93e3388e30f8fd7e85a73a3aaaabcbd6487e4ddbd179b3311bb1b71137771f6e3e6c444fdf13b22da7352d5b1e49ae97f6e3fffef09d20084ab233ab779e88a9dc9dce2441100440028448f08f3ffe61702aab635ae4bf65d1b6ae079f26511cc583ff39f8cb7ffe75f07fe7dbec5467ecaf97bc89f2f28f0676f0e31f0fcdb1b8eecb5333daa7c7bcf8baaad3533daab32adfaf47c77ad4645f9a51cd6047e9eeef97ba592571fcfd7af439dbfc9a3774ed6d53eebe5e8f69f5929f56f12dad9a7c5b64c3b4ce77d9709735695ed4c37dfeb24dcf4d5e9ef8af972a1beecbb2c9aae1214b77fc3f2f5579390f8f697e1a9ed24fc33adb0ae0fa726498bf5e77797d2ed2afab4d516e7fbda5975d5e0eb7e9e9535a0fcf55f95265753dfcc43a2c0d647e2af25336120dd69f324e555a8c181f5e4eab4d5a67bc56225a9dcae6879fb78c295559d4bf7c30284ee5295b1fb2fce5d0b081fd7cc877bbecf4cbb0c98eacbac91cb85b7adda4db5ff9304ebb555331b69ed32a3b35b77495b2b17c621c591d4a46c8b5bc34bc73ceabcda6fab9c99b22fbe5ba292bc688d1a66c9af2b84ace5f063bf66bb6bb6d863523ecf422c5f65992b3298bdd6db73fc9c2baf95a64abbc61a3dbde0e892a64725a8db3e35a8b269a2fb2e320beb1bf7f85c47eb7dfc7eb6d5994d5eabb388e6f35d39602e0786232ae2f8c8ccb19942e66dfaf05873583d6e7b2ceb9d05655c6d8c3461c643bc7d494e7d5288e66d99123bfaa71b392312fca8f2f8a238c4df5a71721a355c574e6c39533715f949f57522037a9505a031336c6697cfe723b54d7d1b1fc8d71f40ba7383fbdacb88c994878d13a506cc47d66284d4fe9a5296fdb9229f4af9b1dd3b86c58a7c7b333918ee5a96422df66c381f9756dd9c5c8ba6d2e6c8ca7617e3a5f9a61796ea4ce339e30651ff2b9c51426bd4a49e4a7039b948dc060fe30934c62b2f47dcaeb7c5364ba0789f22aa6ab50c53d5b02a49a2a08be0e0c04213f375fcfd94fef64f9bb5f86b0904dabac41654c58c79c155ef5a2909ecf59ca3ad9662b8964bdbd54351bc2b9cc195f2bd5e5cf6cb6a48cc6dd2fb0735378558d76d93ebd148d6ab45a0911eecbeda51ee5a7135b29443bbfdc68cbfa9cee765caaf14d805ea192caa5f006c7b33d64db5f99e4f1d053b632bce3d3d2a88999a15f701faacde972dc64d5bb5f18758a3782b4517dce4f2328fc203c5b1a5cf8ab225c28a02306c6f3ed81160397fb3ecf8addba6d02e88677cd0f92064bbf2c196d39190535e460935db62dab942f1fd48884ea8a213185d4a2e66b645d16f96ef0dd36e63f667e0cc66720a36832e3eb5e341fcbff2ef80253642fd96947698d9988eeecd7f3d55f861baec17afd66b3b748cf75b6d2bfac55055f105407bb6173b8da0eff74cc76793a38576cba5c7f94b3b63ea43bd6331ff7e00ff9f15c564d7a6ac02a0d4b69c3e340706192286f29b34b7cf960a646766d25b16218b34a1aca9f0f55b6ff6595ee99825e9542acde0d7e7837489ba6fa81d77e18bcfbf00edab420b4a856e002f1ffffd3bbbfa7cc986fabfccc0055cba1a9fcee9d87ec1d5fa187c2bcffe3c25c09422b96cb2593eb0b730298387f659391bb24abf4539933a171c7c3587021c291f4454642ccb7862d35cc0885daf3ba63fa65f439df3507e10741a69e8787f1f030b996d5f9c004b29aac195cf999fd72931500ad1897c2aa166ed738ef21e68879479bb4727d8f48d03f608aa57f3b001c23a53518d3a6393d475ba62bcd30da55e5f9727e06655aa1999d1e916a778b8a74931504dfb91311b5cf0a078fe4be04cd768cf8a157b423bad9ed7610cdedc72bb1a481451b2f86a08a2cbdfdb8da64cc7266c31f95f2bd317eeb8c0b17613e8e66c0d74ecfa3035b640abed02809542f9bf48778287e3e48bf1bba20effedf73761afc7f4ce1de0dffcc5cae4d95b3ff9e766c111dfe5b95a7c51078fbc03599b1d5125ac9249a8e9f668b643ad10bce44fc5b933ac5fe49ab3074bc0febd04012a15b237bd72590005576d3ce10d3a805eb668dd727e9784bb79a2d63c21db04d66cbcdc46b02963405afddf1e6909f94cfbdd6658c3303befa0fb454a4c7c156ea17c9010d392af77b669a5623667990431a8bb502b9c247e6ba327f2d625523e6659d4bb6b6b02d42d41c984f70625ba6675603fe1ca4b2804dcdf2c2182c3d8be7882ddbc7961ad1cadd3caddd556b0d1d0c490e976fa627dc883b42979a8d42541a828cfd9a869527a42e6b722eb37f6bd4a79d0cdcacc9cd05db9b0ca2713dc8d866828d95bb4ceb8e6a724bd8c5866d5e6ded02a6289ab1ad10db5748c9f2a571356683507e87debb8922e358d865148e379bf39f5b5457a3f2547cbd9abd53ba6110cc0b5c2bdace664b623b5a8d12e8dfacd18668bd2df233db846d1bb6560cd4ff7d3014b10da2b44ec3c37478980d0ff361c48a225616b1c2889546ac383acc5fb9b8281f6912c7484192b5b3c761040dc49e9391a57f99e85fa6fa9799fe65ae7e894cb3c8b48b4cc3c8b48c4cd3c8b4654d23d36564fa8c4ca791e93532dd46b6dfc8761cd99e23db7564fb8e6ce711d85a7f863b1297417ad55d8a7f37211c21b348ca8df5d5a18209db58f32d70e2f10ab0ca63b6e51e1c22c1aa88e29ae500b469333661a642a9844e29759b43fa25b181114c3d790271123a311f6019469438235ab2737f040b3e02210150385972da844060295ffc957c4008662ec6c1e900a589c0205872754df14d7108944e58e9d9d893413c50dc890aeec412ab0f68bbd07f2a851b7bd371aa77203f1c191ab9ee2ce64fe72f1faeb2033096b1e8f7a6f8e5458a18afb6ccf0c0a894da7247c21017d95e8525a419e47fabaa8a5303eb4481aadc663c92006b6589aae6b1c87cff15d6ab220570bcf0ed8d3bad640ddb758900a3e368dc52a752c5ed0cc87cbeddaae6f565bbcd6ae374287728752adde67ae51710f9695fd26d794d4bc3cf6975628b3fdd5655b634dfa5a7175be5b6967574e3cd0b669830e79e9d376cb40d14420a56f293816a6efa4093fd669e3c49842e5b7dd8f1fe69998c0542c15f1f62b99c4d371b890d30da075c6493fd722750698e534ecd62a6697359efc366d3d996ef8e18a89201852f8e274b89cf11860fba65c8c6cc8d14db49b97dd58e995e0f9660715d4dd90ac5960fe0a1c080b3eb9b5c8a6159c0753aa697e84b3110a0fc7fd9efa5f8ddb654c06ccc455e37a3cb492c0b3b43265f02567c49aaed8ac1b7b4a2407a6c1db09a2c513b92eba26dfc5ce4f4370107e9cc3a547225e225b75debf839176fbb66b8db5d6907985512417bb360cbd1b42cbebb627428abfc3786222d061c5951a68d5834b57b388f19e1cc4f4d2b598cd74fcf371400a6302b98ab58e7f5faf3812ddb2246c579fab94acf37dcbd4b77f2c463ec30da33Line truncated
bs, _ = hex.DecodeString("1f8b080000096e8800ffecbd5b93e3388e30fabebfc2531d1ddd3565bb24df2fd17966cfecc6ee44ececcb99878de8ae7342b6e4b4a665cb23c975e93cfeef1fef044150925d591ddf173193bb5d992408820048801009beffe31ffe65f0c7c1ff5d964ddd54c965f0713a8ec7f1e0c763d35c36efdf3f67cd4ed78df7e5e92d87fe7379f952e5cfc7663089e278c4fe331bfced53de3459351cfce5bc1f73a0ffcaf7d9b9ced2c1f59c66d5e0af7ff99b445a73ac7973bcee38bef7cda75dfdde74f17e5794bbf7a7a466a8deffd75ffefceffffdfffc3beff2fdbffc0ba374702eab5352e4bf65e37d5d7352a37134f8ff056ed51dfb8b211fe7e57b03cb5a1f9b53f17228cfcde8909cf2e2cba64ecef5a8ceaafcb01d9dea51937d6e4635831d25e9dfaf75b389a3e8fbede853b6fb356fe8dadbae4cbfbc9c92ea393f6fa25b5235f9bec886499da7d930cd9a242feae1217fde2797262fcffcd76b950d0f6ca48c4bc72c49f93fcf5579bd0c4f497e1e9e938fc33adb0be0fa7a6298bfbca4797d29922f1bc695fdafb7e49ae6e5709f9c3f26f5f05295cf5556d7c38facc3d240e6e7223f6723d160fb31e35425c588f1e1f9bcd92575c66b25a2cdb96c7efc79cf98529545fde1ad41712ecfd9f69871f9b281fd7cccd3343b7f1836d98955379903774b5e76c9fe573e8c73ba89068c119b848de123e3c4e65832025eca6bc33be53cdaedaa9f9bbc29b20f2fbbb2620c18edcaa6294f9bf8f27990b25fb3f4b61b324528cfcf525c9f2419cb28baa587b32cab9b2f45b6c91b36a8fded18ab42269ecd243b6d9544c68b657662e4b03f7f85247e773844db7d5994d5e6bb8861ad998e1400c58a49b6be3222ae1750ba9c7fbf157cd56cd95eca3ae7a2da5419630a1b6f90d91c53535e36a3f13c3b71dc2f6ad0a3f18497e4a767c50dc6a2fae3b390cba6627af2f68533f050949f36520837a9445aeb6236c25974f97c3b562fa353f91be3e6674e6f7e7ede70b9668c7c56b40d141b115f184ad353726dcadbbe644afceb2e655a960debe4747126cfa93c97f525d96743f3dbd6f28a5175db5dd908cfc3fc7cb936c3f2d24835670c61fa3de4d329a9b2e4458a213f1fd93c6c0406f3879957129325ef635ee7bb22d33d48942f6286b2f5e35c1fd8ac979aa920f8d41f08427e6ebe5cb29f64f187212862d3286b9c1226a553de7c78d12b4072b9640943bfcf36b2fd767fad6a46fca5cc19432bd5d9cf6c6a248cbaf403ecd614bea846697648ae45a31a6d36427687727fad47f9f9cc9605d1ce2f376ab2bd2469cac519dd04e80bd44db9eeddc068f6c76cff2b93b83be884ad017c1e1add3053f233c62f5b9cafa75d567d607429ae08a246f5253f8fa0c003d06c1d70a15f14c142e320f319abf74792f95cce873c2bd26d9bbeeb86774d0782024bbb2c18ed39110531d8508334db9755c2d7096a34424dc57098fe69e1f2a5b02e8b3c1dd479c1b4de4c85c1e46205339eb2a563305e4cc43f4bbe8e14d973764e291d3113ce9de47a5e7a2b6dc3d555afd06c9216c9a5ce36fa97adaae0f35ee14f87cdf1c5f6f7a75396e6c9e052b1b9f1f2473939eb6392b28ef990ff909f2e65d524e7062cc4a010acd6624a5f18ede70602700152f86e09b33a7c85608644766b05b0116e88347f3f1fabecf061931c9846be281dd8bc19fcf86690344df523af7d3b78f3f60db458416851adc005e2fff7a7377f4f9889de57f98501aa964353f9dd1b0fd91bbe060f85d1fec7953908be327cb75eaf99489f99696792fc95cd3dee686c928f659ede1aee4e18bb2cc437921ec64848f8d6b035859999507b5e774a3e8f3ee5697314de0de0e965789c0c8fd397b2ba1c993436d32d032b3fb15f6eb2026015c35248d5d2ecdade03403c661ecf2ea95c7f622ca81f3095d2bf1d018a9152188468d79c9fc67ba626cd709c56e5e57a7902655a9399111e510a771b17c92e2b089e730761dc3e1b201ac97809c9fcdee638f48a52a297344d0196db1f5f88f50baccd78e5035564e96db3cb9855cc864ae95e19bb75ad85f55f4cc673e0392797d191ad2b055f5b14f3abe75df26334143f6fa5170d9d8b37ff99b1658f7b5283ffceaed99ba1f97bf8af559e1443e0ba03a763c116476805e3f16cb29a2fe3d9542f32d3e9744b6a925cf9878e47619d14481b745564bfba0476adca6edac1f96e3a5bafd2dd162f48d27f965e325bb784a1d74de2747148e65e13b0862978ed5d37c7fcac5ce8ad2e9b331de32bfd408b43fa126c597e96c3d790a3f27060266833622606f99891581c906f7b62de28f3c1c6ac6ac49ca74bc91613e6f18fd9a6eeb43bb39dcf13ab017f0e1259c0a66379650c969ec3d398add3a7961ad1cadd036ddd656a0b5d08490e176ea6a7d9887b3957b654b171896a43923157b3b0e290dab22527f0d6ebcfce016ec3e45e816d3506e3493dc8d8de808d94bb44db8e6a725fd7c5847d5eeded9aa5689ab39d0ddb2848b9f2c57033e11e85fa5bed4944917121ecc209879b654cf475352acfc59717b30f4a76ac9ab9785b45d8c56c3062d3cb6614031f26daa2edcd765fe417b6a1da37667d30b4b08d9eb443c3e36c789c0f8f8be198158d59d998158e59e998158f8f8bf08c552ece2c8a90c4e3adb315617d0dc4be90f5a87f99ea5f66fa97b9fe65a17e199b6663d36e6c1a8e4dcbb1693a366d59d3b1e9726cfa1c9b4ec7a6d7b1e9766cfb1ddb8ec7b6e7b1ed7a6cfb1edbcec760fb1be28e5e3f990372131c1782184b61b05e3a342a8ef90635f6780458e431d9720d0e8d60d198e2961d39b44b73a6fd33a127424d94062d20f5711ca07ee6c9108890d083c500cb6d4c89704c4b73e153bfe4d40bde83c299a04d8802944e67bc544a06444656621c9c0e582a8207821d2fae2dbd29ee80528ef762ccc2201a08de8c0bee7a128b0868b9d27f2a159b781370a6f70c3f9e181ab9822c17acdddb17d901a099d37153bcf2a2378c4f7b663b60a048ed87c7c29616d941450ba425e37fab2a11d08475a24055ee33becd87b5b24455f3a8607ef802eb559102385df99604cc2459ccb64822cee7380ab7c4a954613405328997e96ea79ad7d7fd3eab8dd33059ef96b34c375795a879b4caa67bd53c3f1f4a5db13ccc7689e99ad7b80d17f3e96eb5540d3f25d599ade0ba2e4d568728d56d55a5db3c4916872851cdd3e4fc6cabb2d9643e9dead6b2ce6dbc3bc4abc98cb9f9cf9861c21e7b56dab0d13650087d58cd4f06aab9490065fbfd3296085db612b0f384fd9f4028f8eb43ac77f3f56e21b10146fb80ab6836e5aac2e034c7099724decfa283c4e6b2de87dd4fd6692407ab64e0c364cbd99e6948628182e8d2c5641fb3a18a0da0dc6f6ab7caac9f9135fe333673d9b2015c0c18fe05cec5b51896055c98236a55be160301c8ffcb7e2fc5efb69d02651bb822af9bd1f52c5683d410c867feLine truncated
gr, _ = gzip.NewReader(bytes.NewBuffer(bs))
bs, _ = ioutil.ReadAll(gr)
Assets["bootstrap/css/bootstrap.min.css"] = bs
@@ -63,7 +63,7 @@ func init() {
bs, _ = ioutil.ReadAll(gr)
Assets["favicon.png"] = bs
bs, _ = hex.DecodeString("1f8b080000096e8800ffec5ceb73db3892ff9ebf0261dde5516752761e735b8eacaa8c9dd949ed4c928a93dbbbdada0f100989189300038076b41edfdfbedd00df22654996126fed7cb04512400368f4e3d76083e38767ef4f3ffddf8737243669327930c61f9250313ff198f08898fb34cb4e3cbd10a189b998db47a11446c92461eac43b2f4b4e8d4a3c122654eb130f2b25925e784892d168f2809071ca0c25614c9566e6c4cbcdccff935717c4c6643efb92f3cb13ef7ffdcfaffd539966d4f069c2802cf4c804b47afbe6844573d6682768ca4ebc4bceae32a94ca3ea158f4c7c12b14b1e32dfde1c102eb8e134f17548137672141c2e118a980e15cf0c97a2416ba91acd4d2cd5528d848b0ba258021c836213e686f01029c58acd4ebc19bdc4db2003464e1e6003c34dc2261513c9efe4fa1aaef43b19b177d0d393a73737e391ab5575e0884da534da289a8d42ad47d55d907211c013af188759244cc78c1937427b4fcc22834918f6d560635b42c854460b726d2f09c96814c180fca93446a6c7e4bf0fb3afaf8ab2194cda9fd194278b63e2fdcc924b667848c93b9633ef80540f0ec86b05dc3e209a0aed6ba6f8cc91b879607fe2a303123f83bfe7f0f702fe5ec2df0fd510eedc4d41e28af1796c8ec9f3c3c356f734981a51f586ccf023164a4571f18f899082b5eae7c97fc52fabfa2955732e7c23b3637214bc6469ab6e60c9a552489dd190f5cfa92aee34a520f3a86411139a45136335c8a8094af072292edb70e90ce462b8b4a21cada4dc5b5a518eaad94da58a98723c59629fed8c1805176da6d384cf81df21e811536d5624722e3b1c3f2687afda32da78627bf65fd6a29a49cddd728236c0c25e76789d2939574cebaa93b810966747359162a94b55e0220619330384aa2b7f4a554516f496f97db4ad4068fe0f0652f4ac7c5c120dc1c8d20cb8ed5f728d96b0a217719d2574d16673bbcd5acdb9c0917598ceb5f185f4a7399878d398023cb6e6c347f3e1baee3404f948f2540cf5e34f13195e546c059e5abb0cd6a5549f8ad9cab1eaa82e98d2f062ae642e22ec452a58d2f9f4c9b3e73f1c90672f0ef1dfd1d3576d415434e2b906cd6f08442933b006e445778d616de071631d3af3026d154144c10d74cc40c26630dac3da0eb4a67774583f6e8abc9de4abdb795532b874abfd62401ef2147d2015a61efe7864970cfcf0c839e20763abd6d6fb3cf47df249660425d5f7dd33412f2b2f4e2fb1c4fda0569797119bd13c01670b2880d97a7c6ead66e149c611af88a087a4301f5594a10f022eb6fbf0a78a8ac89b8c793a2f4b50f73da255884eccc73bffe8d99facef24ceb77bcf9f7985c2baebd18454ae74ac539a2493018fea0ae11786528d6b9a83828bc239ba9b0ad1a0ab803f3f531c967c61af754a32d01127ab256fa0c081a484871780a2226ece99313022fde429ccb039f979b2c8624404a4ba0249036c500c8c942dc723379c82bd23e0aff5e623e8d42ddb00c75d7d5ce79fb8d20616ecea8048912c0800942b41f88c081682b58239bd221f99365419724595403452c844411e26c501773c04fa333e7f2b90d5157f8070bdc0adc1247e1ac1ca55a5ed7298264b88fdef17dd366af6d4f5518c6dad71fcbc5d626192372967f18eb1884520f7cf2715c786c9a256b47a864ad9e453cc889b6fee700189a92653c6c016d04b30b2b02ea07c86d0109c0b352c0a6a1124698e2c2f86636455097d21f0fdaa4d3a188fb2d6186f1f34fae086666d20c720bbf8536872438e9bc25b0c7d2db9054c0ad5e35a76ab6590576df1ed9b4e9830aa66fcabd7b354ed07addbc64d71b924f06c9e2760c4403e3be2dc12dc921e36fcc82c6a90a0e5e8f3c813b47c68e09fd6147a85fc873564bc349d7796f1628c9ce9bb48789e54e616dd7b2eacb788ac102896316a500a32094e89e0ef2f500bc5a145c5c625dd471d3bdfc6c3dee4fa1ac905675cb110596d8d72c31877c914c627052b9efccd367d7bf6f7808b4b70a55125dd099d328c5fa7c86988625137aeaffb1bade8b1c3950a0b2dcd7b70eedd15a8208447ec0a9e780d297b7bd64b788087391819d2a78186d69e631d728863aa85787b36cc0fdbb22b5f5bcc137711622505ff8733a5601f4cae7732f750a629c40f9bcfdf593b670960a4a778f9a4e0c8d3923be776a0d5e32d39351ef54bca9602f4e7444e6962b5b2e0ef8c43a8bf1376ce8136db4a983aba36b783fc090706488c265774a1dfe5e994a99b1b37de0332d0e8c785b18da65c50b40f3fee453c7f91e1be9818cb74273c4c70881bb2d0b6d90d07772cb69f456d068071bb6337444679e447806a21448a76c17801007243be6393fd0aee6eace5369e624c8b9dc76e7c8326de1ac7757062c644c8931a26be0102e3115d399c0d65733cca932584b254b35b6b2f70bb111ff623ef262f69145956aec5c6043d67c9c4d751d480adfb86db4db08c61750326dba9de239c8cc3db1420b7b916bf9c7c604c9192d2cb2d10b480b6a7b339826809a19fb2b47604a345b9af5174b2029d7c135c6b05022419b7407762acf095c756d61c19028aa1d6e08ca5b12d84b033be87d8d66d353a3e385c5b33a2e44f816cefc8a11d4384b3c28713450dbb2fd800c8080855616df5df0a7605b8f22ea29c66e8f15366140f6f6ee06e2f92f639db075bf26c2f4c91b9d90d57762c5d565d2f99d2f57ef5ddb8b86ddc8d0cfb1fb637f3740f8122b2be9aeebf1e565c02069f62ae2d30b83b2e285f51ec1d153c62a9ce5e7d1f6c709a2b059e8c7c7cfd2bc90d4f0a67b91b2d8cb75242bdd086a501fc3423361ce15e2c78c981d30f9f9b1c204f8e0e895e5efaad1841f585be0b2fc22cffc014be8eefc4bd702b002e289a1c1fdddcfc274ee23e18f4165cc030c4d06437acdc016cf80ed0600f2cb80344f8ce30a0786f508836ccf5b5103217217bff17f2f084e402024d2e58e315c2d0462b2d1a12cdd4e5d22ec076dc45131b4b25b6c4f63a0ff1ddadb76a96dee4bdcd27d8aa83e21d4af5ea77a083d9ecb61efe402fdf1dbdace8e47bec749560678b9d2e87b8bec11e97bb761b5da3f61b647cf44629a9747f9604c332f7b6344898989b984cc8e17d4c9778270d0fd99dd2249a9816268e78b6317f5c639b6e737d0d4f834f3c65e00e40d9d8b1f7f3719a1e8305bbb9392e9372c8f5f54c7126a264e1f6c9b09165b505b1fb4f91d84892ad943941c099beffcbb7cd7568496895f8532573e1e31f6ddae27a395e653a48710b83645191f748621e454cf85ff57a495e5927c30b6d35e28122f26e2d6523f8c0a1152d1a972e33a5c118307160a7db3dd88dc2c2766336f9f10898a343992bcd822a833d10cc8cbcc9799e61ae1c19919fa4ca5367979b8673b08b92113a6d76a6a1b73937713e0d42998e429aa4f1a8ea74a4182cbac6375dbf80dc6b0881dc830dfa5d736a21d09f4bLine truncated
bs, _ = hex.DecodeString("1f8b080000096e8800ffec5ceb73dc3692ffeebf02e6eec5769dc8911fd9db924753e548cec6b5f1a3acf8725ba97cc09098212212600050f29cacfbdbaf1be07bc8196a3c92bd9bfd606b884703dd6874ff1a6c707afff4edc94fff78f792c4264d66f7a6f88724542c8f3d263c22963ecdb2634faf4468622e96b62894c22899244c1d7b6765cd89518947c2846a7dec61a344d2730f49321acdee11324d99a1248ca9d2cc1c7bb959f87ff5ea8ad898cc67bfe7fce2d8fb1fffc30bff44a619357c9e30200b233201bd5ebd3c66d19235fa099ab263ef82b3cb4c2ad3687ac923131f47ec8287ccb70f07840b6e384d7c1dd2841d3f0e0ed708454c878a67864bd1a0b5d68ce626966aad45c2c539512c018941b509734378889462c516c7de825ee06390812067f7b083e12661b34a88e413b9ba825ffa8d8cd81b18e9e1a3ebebe9c4b5aa0670c4e6521a6d14cd26a1d693ea2948b908a0c42be6615609d33163c6cdd03e13b3ca8009c33e1aec6c6b0899cb6845aeec4f42321a4530217f2e8d91e911f9afc3ece3f3a26e014cfb0b9af2647544bc1f5872c10c0f2979c372e61d90aae080bc5020ed03a2a9d0be668a2f1c89eb7bf64f9efc67fc6d35624ad5920bdfc8ec883c0ebe6569ab6d8093f55329a4ce68c8aa5eadb9bc66229107e4b5143484bf275268090a7940bc13992bce144cf112665891e90c4141d950bb2326348b66c6aaae5133549df55a94d770ed021664b8b6a21c6da4dc5b5b518e2a29cca58a9872b2135274f84ae45276c47c440e9fb757ba5162c9f8dfd60b9e49cd71471ca14ec19ebce80ec0b5f185f4e7391805530d658badc2f9a8706e6a9d8ec05892a7a2ea13719d2514d6920bd075e6cf13199e97f300d5763b19f4b1d48f4a71145fc60654a7ae98d3f07ca9642e221c452a98fe72fef0c9d3bf1c9027cf0ef1bfc78f9eb725a868c4737d449e36982fe5f338fb489ed5e5a5209f40f193b2f8bacb17a89908220a86a3a3e7095bc06c0f6b456fb1f7f8b02eb69a4f13be44f92393cfb7cbaa14706988d7e58b6b41eef314ad2615a667271013b7b7d92573227e7678d8db3c5ab31e8ec927603b7a86026b34b1da014e62e2bcc4bda9557d6b1aeffb3ef94966b08a8af8be2b13f4a27231f4026bdc1fd4fcf267c416344fc013808b62b61d5f526bcf9d999b46bc2282e69b82e8545187061216ac3d863f575444de6ccad36559835bca235a8568617d7cf21f3ff9ab35ecc4391eefe91330fb5662eef764462a3b3fd5294d929258cc23d8dbfe4730c4edf19dcdcb0d83d13f81b0a06ad6eb202cb959d1a2e4244f1a7c94d269fcb4ba54339ef0b279a46416c94b51d5d97a5af89d3f79dd7620fde512dd34ea79f1d0a4f232e2e61b31d7d9f3e9bc923c55e892a69339fca3ad81ea795703a44ce4add9d8f9ce604e56c179780e2e398adeb34c3e7c04549b425c26ab2c46b74baa5f7e1ce17a16027d1145047b828d936a85b3994e80f8d6d17009468db64ce49cb5c7c3be832355ecf30b1ea16e8e980f03199f316340b9f4a8498572594fa9ecb9d729e93837b87aa3a623178bc6748a9e23d742316da832a3c6011586e6713dd67bd7b96fa8e9244feae7766d5d379d80502cb69ac0c672766ac0c4b8f668d8bee74a1bb0509707448a6445002e5e0ac21744b090694dd5ea793933724995406c5818c1823cb0cf6137de07fa0bbe7c25d0b6543b1308d71bbb3599c44f2330558dcdd4ac0789b084d8fffd62d8b611e8b6f5d16edb56d3f869bbc682566f5672f186b1884560e89fce2a890d934537d0ddf0d9eca79811c76faeac492731d564ce18f8597ac1223207c02da42134049042c16e06b5cd25698e222fa66364d508fc1c03b95fb64907d349d65686ad934660d670254533989381993ac8ed1eaa759a1b41e09faf53fba7705d24031c5598e73dab39189e4bb0b976169d7936d52461542df847af67a9da05adc7c643f1734de1d9324fc06b837e76d4b9a5b8253dec585b668b27c94374f5882b1ed5147a95fc2fbd3bc0ad14a2c2cc233c42a916f439d32376c5d5157638c18a87f82b78750a1ed82e133c326a1c45806404fffe0853c6051bb7879aad06b653db23b71c2ef09dd04c977e38030f8b91e99f5a1c964e1c0b0b668005e0a045f946feb3a072ca150bed3a7d2236fa7d474d7c7d3d44b6a1e33347e1cc509337a5dac6334eadda5001adc9d63d5aae728bddb6704bd1914a8637344fcd262e6083ed9741fc09b152d72038b4dc6c4c3a315ef10cf13ccf10fb75fa3b8c4c48bb54758bb030de6e2a0c5d36cd44b5db5e9d4e27d0bf8768d4c2a7ad35b4c2857ed1dafc26eb13dc7dce0b9960b4263326eab97f6f0b779974a5ba7731f750a600674d03ed80878a9514fc7fade3d981819e9d73db5c7430eddfe091262d187d232e52c0c3c92f0503bf064b4bee7b9e300dd684269774a5dfe4e99ca9eb6bb2c0e20332d0e9bb95b19de65c505cd0ef6e5f16b14c1ba2f851867b944482d46e2808dbe70bc8214c641ef908dc13491b0ee22da032b9b07afe79c21080216f280becf20544812731b5005e530dc070579d586f67472f0200cbe97b40106f218ef066ff607add6df674bbdfe9f7460e76bb6b5b7216037289c8cfdcc47b925389cc4409cb028cbf754f97ab2b511eac2cb87021beb0adc1aea2616dc9f0cf300918f8800ccbee73640a25ebae1e0a111c740bbbc067086a0168ec8f3d32c553d81d2540f43a670bf66805453726fa00b71cf2a45e513c007201f63aa0db2dbe68471845a880cbd408122cc77b8a1244475f86c283eaf0b1a975d0f764b144ddfba53cba7bf8e8d71d82825161c1f8c0c031554604f8e43bfd87d9163a8f81c10dfd5f630b15b42c20a15d8d1d0bdd87e6b505c183b8bf62103f04e307cce85828df0cf85fbc261f0c4f36a2ca0dae57afc067a501fcd9e639fbddc1677242f5b9ae993979f7611fcc8459fe8ea910b4bf0320e05100845634397a7c7dfd1f77c5e510603a2d4ac87b6ad88d99e5629ee1a2a50c542fbcbe86a7bb6528cfdaec7cc8766746e6668d9b5ef7b9819dd25f175a00f45f08217311b2b77f27f78f490e3b16bc7dcf261dcd38bef98ca56a44a3e510e48ca98ba1b0743c96e9b874fb46d176d0798827c6de2626bdd95bfb8670088e0c128fa8583255d1be3f407cb1d842fdceac46e328e3bf99d2bbd88a0bd7af3f881e80bebb03b55b806a0eb416aef74ba0b51187a8767af610b5c60843a0499a98290bd8773a49fd32a0697889b74740adbebd706a9c02b9aec5e150138bad8f72f7f8ec0f07ce3075abf51218e6af6f6c9d50ccd8b7b59e77e4dc773ab8dcc24b8f76fe33632fa02c5888d2d0bfb477c4afc1bf142edbc4e83e30db97c500c811f4dd492dff0d067a1e5bef83ed6f77643369bf09c6a2974a49a5fbb31d18d6b977aa41c2c4d2c464460ebfc6b48737d2f0907d56ba43130e01e308Line truncated
gr, _ = gzip.NewReader(bytes.NewBuffer(bs))
bs, _ = ioutil.ReadAll(gr)
Assets["index.html"] = bs