286 lines
21 KiB
Go
286 lines
21 KiB
Go
// Code generated by vfsgen; DO NOT EDIT.
|
||
|
||
// +build !dev
|
||
|
||
package web
|
||
|
||
import (
|
||
"bytes"
|
||
"compress/gzip"
|
||
"fmt"
|
||
"io"
|
||
"io/ioutil"
|
||
"net/http"
|
||
"os"
|
||
pathpkg "path"
|
||
"time"
|
||
)
|
||
|
||
// Templates statically implements the virtual filesystem provided to vfsgen.
|
||
var Templates = func() http.FileSystem {
|
||
fs := vfsgen۰FS{
|
||
"/": &vfsgen۰DirInfo{
|
||
name: "/",
|
||
modTime: time.Date(2021, 2, 4, 10, 45, 12, 806640021, time.UTC),
|
||
},
|
||
"/admin": &vfsgen۰DirInfo{
|
||
name: "admin",
|
||
modTime: time.Date(2021, 2, 8, 8, 57, 59, 963650924, time.UTC),
|
||
},
|
||
"/admin/dashboard.tmpl": &vfsgen۰CompressedFileInfo{
|
||
name: "dashboard.tmpl",
|
||
modTime: time.Date(2021, 2, 8, 8, 59, 1, 776365136, time.UTC),
|
||
uncompressedSize: 276,
|
||
|
||
compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff\x54\x8d\xb1\x6a\xc4\x30\x0c\x86\x77\x3f\xc5\x7f\xde\x4d\x48\xa7\x0e\x3e\x43\x9f\xa0\x63\x67\xd7\x52\x1b\x83\x63\x05\x27\x4d\x06\xa3\x77\x2f\x77\xe4\xe0\x6e\x12\x7c\xd2\xf7\xa9\x77\x10\xff\xe4\xca\xb0\x5b\xde\x0a\x5b\xa8\xf6\x9e\xc7\xf7\x0a\xfb\x41\x73\xae\x9f\x3b\xb7\x3d\xf3\x61\x6f\x1c\x5c\x09\xaa\xe6\xc9\x4a\x52\x37\xae\xdb\xcd\x33\x9e\xf2\x8e\x54\xe2\xba\x5e\xed\x12\x7f\xd9\x4d\x1c\x89\x9b\x0d\x06\xf0\xd3\x88\x4c\x57\x7b\x70\x49\x32\xb3\x0d\x2f\x5f\xbe\x4e\xaa\xea\x87\x69\x0c\xc6\x0f\x94\xf7\xf0\x12\x6c\x72\xdc\x43\xc0\x33\x4d\x52\xdc\x4c\x6e\x7c\x7b\xec\x96\xb0\xfe\x2d\xdc\x90\x44\x0a\x28\xae\xd3\xb7\xc4\x46\x17\x3f\x2c\xe7\xc1\x59\xbe\x0f\xf8\x8b\x73\x18\x9a\x1c\x70\x2e\x98\xde\xb9\x92\xea\x7f\x00\x00\x00\xff\xff\x68\x8e\xc6\xc9\x14\x01\x00\x00"),
|
||
},
|
||
"/auth": &vfsgen۰DirInfo{
|
||
name: "auth",
|
||
modTime: time.Date(2021, 2, 8, 10, 43, 54, 721078995, time.UTC),
|
||
},
|
||
"/auth/fallback_sign_in.tmpl": &vfsgen۰CompressedFileInfo{
|
||
name: "fallback_sign_in.tmpl",
|
||
modTime: time.Date(2021, 2, 8, 10, 43, 54, 721000000, time.UTC),
|
||
uncompressedSize: 295,
|
||
|
||
compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff\x5c\x8d\x41\x4e\xc3\x30\x10\x45\xf7\x3e\xc5\xc7\x7b\x2b\x2a\x6b\xc7\x4b\xb6\x20\xc1\x05\x5c\x7b\xd2\x8c\x70\xc6\x51\xe2\x36\x42\x96\xef\x8e\x1a\x88\x54\x58\xcd\x68\xde\xff\x6f\x6a\x45\xa4\x81\x85\xa0\x0b\x97\x44\x1a\xad\x0d\x3e\xa5\xb3\x0f\x9f\x58\xf9\x22\x86\xa5\x56\x90\x44\xb4\xa6\x1e\xd2\x21\x4b\x21\x29\xf7\xbc\xb2\x91\x6f\x08\xc9\xaf\x6b\xaf\x67\x7f\x21\x33\x92\x8f\xb4\x68\xa7\x00\x3b\x9e\xc0\xb1\xd7\x1b\xa5\x90\x27\xd2\xee\xe5\x9f\xdd\x76\xe3\xc9\x29\xdb\x45\xbe\xb9\x3f\xa6\x25\x6f\xbb\x01\x78\xbc\x86\x9c\xcc\x14\xcd\xe9\xf9\x60\x43\x5e\x26\xf8\x50\x38\x4b\xaf\xdf\x5e\xdf\x3f\x7e\xc1\x0e\x59\xe6\x6b\x41\xf9\x9a\xa9\xd7\xeb\xf5\x3c\x71\x39\x6a\xdd\xbd\x77\xec\x3f\xbf\xf7\x01\xfb\x64\x0c\xba\x25\x6f\x30\xc6\xa9\x5a\x49\x62\x6b\xdf\x01\x00\x00\xff\xff\xfe\x5d\xbf\xe3\x27\x01\x00\x00"),
|
||
},
|
||
"/base.tmpl": &vfsgen۰CompressedFileInfo{
|
||
name: "base.tmpl",
|
||
modTime: time.Date(2021, 2, 4, 13, 5, 58, 177632333, time.UTC),
|
||
uncompressedSize: 282,
|
||
|
||
compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff\x54\x90\xbd\x4e\xc4\x30\x10\x84\xfb\x3c\xc5\x9c\x7b\x9f\x5b\x0a\x5f\x0a\x7e\x44\x09\x22\x34\x94\x1b\x7b\xd1\x45\xd8\xf1\xc9\x59\x22\x50\xe4\x77\x47\x76\x0e\x24\x2a\xcb\x9a\xfd\xe6\x5b\xad\x3d\xdc\x3f\xdd\xbd\xbe\x3d\x3f\xe0\x2c\x31\xf4\x9d\xfd\x7d\x98\x7c\xdf\x01\xf6\xa0\x35\x5c\x8a\x97\xc0\xc2\x18\x69\x61\x08\xc7\x4b\x20\x61\x68\xdd\x26\x22\x0b\xc1\x9d\x29\x2f\x2c\x27\xf5\x29\xef\xfa\x46\xc1\xb4\x48\x26\x09\xdc\x6f\xdb\x18\x92\xfb\x80\x6a\x5f\x85\x63\x29\x8f\x49\x0f\xc3\x2d\x5e\x52\x8a\x18\x38\xaf\x9c\xb7\x8d\x67\x5f\x8a\x35\x3b\xd3\x59\xb3\xaf\x60\xc7\xe4\xbf\x6b\xd9\x5f\x0b\x7f\x49\xa6\xd6\x72\x65\xaa\xc9\x4f\x2b\x5c\xa0\x65\x39\x29\x97\x66\xa1\x69\xe6\xac\x2a\x56\x41\x5c\xc9\x9a\xf0\x2c\x0a\x47\xfc\x83\x8d\x9f\xd6\x6a\xdc\x55\xd6\xb4\x1b\xfc\x04\x00\x00\xff\xff\xdb\xd4\x7e\xcf\x1a\x01\x00\x00"),
|
||
},
|
||
"/error.tmpl": &vfsgen۰CompressedFileInfo{
|
||
name: "error.tmpl",
|
||
modTime: time.Date(2021, 2, 4, 10, 24, 43, 562315500, time.UTC),
|
||
uncompressedSize: 369,
|
||
|
||
compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff\x5c\xd0\xc1\x4e\xc4\x20\x10\x06\xe0\x7b\x9f\x62\x82\x17\x3d\xb0\x4d\x3d\x1a\xca\x61\xcd\x3e\x81\x4f\x30\x85\x59\x8b\xdb\x42\x33\x60\x4d\x43\x78\x77\xe3\xb2\xcd\xaa\xa7\x49\x7e\xe0\xfb\xc9\xe4\x6c\xe9\xec\x3c\x81\x48\x2e\x4d\x24\x4a\x61\xf2\x96\x18\x24\x9c\x98\x03\x43\xce\x87\xb7\x84\xe9\x33\xbe\x06\x4b\xa5\xe4\x4c\xde\x96\xd2\xdc\xdf\x99\xe0\x13\xf9\x24\x4a\x69\x94\x75\x2b\x98\x09\x63\xec\xc5\x82\xef\x24\x47\x42\x4b\x2c\x74\x03\xa0\xc6\x4e\x57\xf1\xe1\x1f\xa9\xe2\x8c\xd3\xa4\x41\xde\xbb\x4a\x51\x6d\x4d\x55\x3b\x76\xba\x51\xad\x75\xab\xfe\xe3\x73\xf8\xaa\xee\xaf\xcc\x84\x49\xc6\x59\x76\xcf\xd7\x13\x00\xb5\x30\x81\xb3\xbd\x20\xe6\x63\xb0\x9b\xd0\x39\x1f\x4e\xcc\x3f\xfc\xc2\xb4\x5f\xaa\x13\x40\x21\x8c\x4c\xe7\x5e\x7c\xe0\x8a\xd1\xb0\x5b\xd2\xcb\xe8\x62\x0a\xbc\x1d\x06\x34\x97\xc7\x27\xb1\x37\x0d\xc9\xc3\x90\xbc\x5c\xd8\xcd\xc8\x9b\xd0\x47\x34\x17\xd5\xe2\x8d\x6c\xaf\xe6\xfe\xeb\x3a\x6e\x9b\xfb\x0e\x00\x00\xff\xff\x6b\x12\x36\x5b\x71\x01\x00\x00"),
|
||
},
|
||
"/landing": &vfsgen۰DirInfo{
|
||
name: "landing",
|
||
modTime: time.Date(2021, 2, 4, 10, 30, 18, 864142917, time.UTC),
|
||
},
|
||
"/landing/about.tmpl": &vfsgen۰CompressedFileInfo{
|
||
name: "about.tmpl",
|
||
modTime: time.Date(2021, 2, 4, 13, 6, 7, 889443270, time.UTC),
|
||
uncompressedSize: 155,
|
||
|
||
compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff\x4c\xcc\xb1\xaa\xc3\x30\x0c\x85\xe1\xdd\x4f\x71\xae\x77\x11\xb2\xfb\x1a\xba\x77\xec\x0b\xb8\x91\x1a\x1b\x82\x52\x12\x37\x1d\x84\xde\xbd\x64\x28\x74\x3a\xc3\xf9\xf8\xcd\xc0\xf2\x68\x2a\x88\xbd\xf5\x45\x22\xdc\xaf\x45\xb9\xe9\x0c\xc2\xe5\xbe\xbe\xba\x19\x44\x19\xee\xe1\x07\x4f\xab\x76\xd1\x7e\xf2\x90\xb8\x1d\x98\x96\xb2\xef\xff\xf1\x59\x66\xa1\x2a\x85\x65\x8b\x39\x00\xa9\x8e\xf9\x56\x05\xe5\x2c\xe1\x7c\xd3\x50\xc7\x1c\xd2\xc0\xed\xf8\x0e\xd2\x1f\x11\x86\x6d\x7d\x83\x28\x07\x33\x51\x76\xff\x04\x00\x00\xff\xff\xeb\xd0\x45\x14\x9b\x00\x00\x00"),
|
||
},
|
||
"/landing/index.tmpl": &vfsgen۰CompressedFileInfo{
|
||
name: "index.tmpl",
|
||
modTime: time.Date(2021, 2, 8, 8, 43, 20, 982174425, time.UTC),
|
||
uncompressedSize: 3978,
|
||
|
||
compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff\x9c\x57\x5b\x6f\x5b\x37\x12\x7e\xf7\xaf\x98\xd5\x73\x4d\xa3\xef\x8e\x01\x63\xab\xa2\x01\x52\x77\xb7\x4e\xf2\x4e\x91\xa3\xa3\x59\xf0\x72\x4c\x0e\xd5\x05\x0c\xff\xf7\x62\x78\xd3\x31\x12\x1b\x45\x9e\xda\x48\x14\x39\xf3\xdd\x66\xfc\xfc\x0c\x16\x8f\x14\x10\x76\x4c\xec\x70\x07\x2f\x2f\x9f\x74\xb0\x14\x16\xb8\x86\x8f\xc1\xe2\xff\x9f\x9f\x01\x83\x85\x97\x97\xab\xcd\x61\x13\x03\x63\x60\x39\x7e\x75\x6b\xe9\x0c\xc6\xe9\x9c\x3f\xec\x56\xbd\xe0\xf5\x09\xb5\xc5\xb4\xbb\xbb\x02\xb8\x3d\xfd\x0c\x64\x3f\xec\xfe\x42\x67\xa2\xc7\xdd\x5d\xbd\x12\x5c\x7f\x42\x8e\xdf\xde\x9c\x7e\xbe\xbb\xba\xba\x25\xbf\xd4\xa3\x2e\x2e\x71\x07\x39\x99\x0f\xbb\x1b\x9d\x33\x72\xbe\x21\xbf\xdc\x30\x66\xbe\x3e\x61\xf2\x84\x6a\x0d\xcb\x4e\x7e\xb2\xde\x7d\x8a\x09\x3d\xd0\x9a\x8b\x07\x1b\x5d\x4c\x90\x89\x41\x7b\xe4\x9f\xc0\xc4\x90\xd1\x30\x72\x49\xa0\x2d\xad\x94\x8d\xbc\x89\x8e\xf8\x27\xc8\x68\xc1\x46\x40\x2a\xd9\x47\x0b\x8c\x7e\x8d\x09\x28\x18\xb2\x64\x4b\x60\x28\x0c\x4e\x1f\x62\x42\x40\x6e\x57\x23\x78\xbd\x04\x0d\xda\xd1\x53\xd1\x0a\x1e\xd1\xc2\x51\x17\x43\x87\x92\x81\x4b\x5a\x29\x03\x05\xc0\x02\x9e\xe0\x40\x07\x0c\xb6\x78\x05\xf7\xa0\x93\x29\x60\x4a\xca\x25\xc3\x99\x58\xa3\x94\xb6\x14\xb9\xaf\x24\xca\x90\x4e\x31\x98\x92\x41\x63\x40\x1d\xe0\x8c\xae\x16\xa9\xe0\x5e\x5e\x42\x9e\x97\x01\x06\xf2\x70\xd4\x86\x1c\x65\xca\xb0\x24\x7d\x26\xab\x21\xe0\x53\xa9\x97\x9e\xb5\x73\x94\x15\x7c\x6e\xed\xc4\x64\x48\xea\x71\xf1\x10\x13\x53\x06\x74\xe8\x31\x70\xf1\x10\xe8\x70\x02\x46\xe7\x4a\x06\x1f\x1d\x66\x26\x54\xf0\xd8\xc1\x03\xcc\x0c\xab\xd3\x06\x93\xe6\xda\xd4\x82\x99\x75\x86\xf6\x6f\xbf\x62\xb2\x84\x52\xa1\x1c\x7e\x07\x68\xb0\x85\x32\x70\xa2\xcc\xd2\x0a\xe4\xe8\x1c\x19\xe2\x62\x29\xb4\x1a\x06\x5f\x0a\xbe\x38\x4e\x64\xb0\x82\x48\xda\x14\x47\x19\x42\x09\x46\xb8\x52\xf0\x87\xa5\xb8\x69\xbd\x43\x37\x7e\x0d\x5e\xe7\xdc\x39\x39\x17\xb7\x16\xd6\x8c\xc2\xc3\xe6\x40\xfd\x81\x89\xde\x47\x1b\xe1\x49\xea\xda\x34\xf2\x1b\x06\x9b\x30\x51\xe7\xba\x53\x8d\x4b\xc7\xc2\xbd\xa9\x33\x05\x0f\x15\xfd\x46\xac\xe8\xa8\x64\x78\x2a\xda\xc3\x8a\xce\x61\x60\xcc\xf2\x75\x40\x03\x41\x7b\x05\xff\x95\x87\x13\x89\x16\xf2\xab\x62\xa3\x34\x58\x58\xc1\xe7\xaa\x42\xd1\xe0\xe4\xed\x88\x65\x21\xcd\x70\xa6\xb3\xf6\xa2\x14\x06\x5d\x96\x82\xea\xf6\x66\xbd\x13\x1f\x3c\xa2\x87\x50\x9c\xd3\xb0\x9e\x74\x42\x4e\x1a\x2c\x69\x7f\x69\x3f\x50\x76\x0d\x9e\xfa\x8e\x8f\xe9\x40\x0d\x84\x81\x48\xfd\xbc\x4b\x50\x2a\xbb\x30\xa9\xe0\x63\x80\x98\x82\x4e\xd8\x3a\x3b\xd3\x19\x53\xd2\x4d\x5f\x59\x2f\xc4\x2c\xaa\xdb\x0b\xe1\x15\xb2\x21\x4c\x53\x3c\xe4\x68\x48\x98\xd4\x1c\x9f\x0a\x2a\xb8\x2f\x86\x63\xea\x9a\xfd\x06\x35\x05\xff\x89\x89\x99\xb8\x72\x90\xb3\x06\xb2\xfd\x6c\xf3\x9d\x87\xb3\x88\xf5\x50\x5c\xf1\xbd\x8d\x43\x8d\x13\x1e\x16\xab\xe0\x2a\xf8\xa3\x15\xec\xd0\x70\xd9\x08\xe5\x3d\x65\x2b\xf8\xc2\xcd\x63\xe3\xca\x73\x74\x85\x57\x2d\xf2\x41\x83\x41\x67\x05\xbf\x62\xea\x1e\xaa\x88\x61\x99\xec\xac\x09\x99\xba\xb7\x14\xdc\x73\xa7\x79\xa0\xb5\xb1\x86\x3c\xb5\xe7\xf9\x76\x13\x63\x15\x57\x2e\x79\xc5\x60\x29\x67\x54\xf0\xbb\xb8\xe5\x62\x02\x81\x22\xa3\x68\xb6\xdf\x4c\x01\x4e\x43\xb7\x42\x6e\xfd\x6a\x54\xd3\xdc\x85\x16\xd6\xe2\xce\x14\x74\x9a\x62\x79\x18\xf7\x55\x0d\x81\xd3\x66\x53\x65\x65\x44\xc1\x97\x14\x2a\xf4\x13\x80\x76\xca\xe9\x98\x50\xe4\x14\x83\xc0\xad\x0f\x24\xa6\x1f\x74\xd7\xa0\xd3\xa6\xf6\xde\x71\x2f\x72\x8f\x6d\x3a\xeb\xf1\xb4\xf9\xbf\x1e\x40\x64\x81\x02\x63\xaa\x79\xf9\x9b\x36\x70\x92\x8b\x25\xfc\x85\x2a\x46\x11\xb3\xe1\xe2\x33\x57\xa8\xaa\x8c\xfe\x89\x24\x85\x9c\xd9\x40\x7c\x15\x20\x0a\xee\x0d\x1c\x51\x8a\xb0\x51\xcc\x89\xfd\xc4\x2b\xd7\x56\x0f\xcd\x1b\x86\x53\x6a\x1e\xed\x67\x94\x4a\xe9\x0b\xa6\x26\x9c\x2e\xeb\xf1\x13\x6d\x80\xa7\x9d\x9b\xd8\x3b\x83\xd2\x88\x64\x47\x8d\x85\xa9\xed\x8c\x5e\x2a\xe1\x98\xc4\x00\x35\x58\x9f\x8a\x08\xd5\xc2\x1a\x13\xeb\xae\xad\xdf\xab\x33\xba\x79\xe6\x59\x4b\xbd\x22\xa7\x0d\x05\xd2\x4d\x57\x67\x74\x23\xa3\x86\xde\xfa\xf8\xe9\x58\xce\x8f\x6b\xb7\x14\xb6\xf3\x4a\xc1\x9f\x7d\x38\x79\x5d\x11\x1d\xb3\xaa\xf2\x3a\x3c\xdc\xa0\xff\x5f\xc9\x1c\x25\xe0\xb4\x9f\x57\x93\xed\x18\xa2\x6b\x3c\x5d\x26\xd0\x94\xa5\xa8\x65\x02\x56\x4f\x17\x86\x33\x06\x0c\x9a\x37\x1a\x09\xe0\x51\x14\x75\x49\x4c\x2c\x0a\x7e\x29\x24\x8f\x74\x29\xd4\xca\x7b\x90\x56\x2c\x5f\x67\x62\xf3\x77\xa9\xdf\x0c\xd6\x1a\x88\xb5\xf6\x96\x5d\x2d\xf9\x8f\xd3\xe5\x7d\x14\x29\xf8\xf3\xbd\xd0\xde\xbf\xa9\xb4\xcd\xa8\x52\xf0\x15\x1d\x1c\x13\x85\x85\xa4\x2e\xc9\x22\x29\xd0\x9b\x98\x44\x13\xf5\xfd\x56\xf2\xf8\x39\x20\x93\xa4\xe2\x43\x3d\x57\xf5\xd4\xf8\x6e\x75\xaf\x25\x95\x3c\xb7\x90\xe9\xf0\xbd\x48\x71\x46\xde\x05\xcb\xca\x5a\x8f\xc9\xfe\x98\x44\x81\x41\x87\xa9\x11\xd6\xc9\xbc\xf0\x5e\xf3\x72\xeb\x89\x3a\xd6\xb7\x55\x5b\x5a\x02\xe5\x4c\xbe\x9a\x72\xab\xe4\x4b\xa7\x85\x7b\x56\x5f\xdc\xd0\xc2\xe7\xe2\xfb\xb9\x7b\xbc\xb3\x4e\x28\xf8\xf8\x03\x91\x24\xe8\x05\xd3\x2a\xfb\x91\x6d\x6a\x9f\xe2\x48\x09\x6d\x1a\xbb\xbc\x59\xb0\xac\x5e\xeb\x0a\x58\xbe\xdd\x5f\x04\x91\xd6\xdf\xab\xae\x1c\x1d\x30\x45\xd1\xed\xdc\x1f\xdb\x7c\xde\x67\x61\xab\x8f\xd1\xe6\xc9\x37\xf5\xad\xe0\x71\xc3\x5b\x8b\xb2\xb9\xd0\xc0\x9a\x22\x85\x8d\x8a\x1d\xc6\x6a\xc2\x5a\x71\x8f\x92\x18\x14\x3c\x88\xc6\x7a\x30\x95\x6c\x68\x25\x9e\x6b\x61\xd3\x6d\xdf\x24\x2e\x03\xf0\x81\xb2\x9b\xb3\xee\x58\xb2\xa9\x36\x6f\x65\x97\x99\x5d\xe3\xc0\x10\xd4\x90\xe6\x57\x9d\xa8\xee\x9c\xa2\x86\x16\x99\x42\xce\x94\xb0\xa4\x81\x6e\x2b\x42\xcb\x18\xf9\x96\xec\xcc\xa3\xaf\xdf\xd1\xfd\x80\xe7\xd5\xf0\xfc\xc2\xe3\xe3\xf7\x56\x00\x05\x9f\x1a\x19\x2d\x01\x86\x98\x2e\xdb\xdd\xe3\xb7\xe6\x18\xc8\xd0\xdb\x6a\xaf\x56\x90\x77\x74\x60\x11\x79\xcf\xed\xcf\xed\xaf\x84\x41\xee\x9c\x1c\x62\xc5\x2e\x4f\xc1\xf7\x70\x02\x93\x74\x9e\x11\x39\xc2\x77\x2e\x02\x7d\x3d\x51\xf0\xeb\x3f\x77\xd8\x10\x56\xa1\xfa\x17\x0f\x05\x19\x23\x0e\x73\xd1\x56\xe2\xc6\x63\xae\xe9\xf2\xba\x42\x79\xac\x6f\x67\x95\x0d\x51\xd6\x0c\xd3\xfd\xf7\x57\x9f\xb6\xc9\xc8\xed\x15\xa5\x69\x0b\x14\x1b\x51\x18\xf9\xd3\x5f\xea\x8b\xfb\xfe\xfd\x54\x56\xf0\xcb\x48\x99\x2d\xcb\x75\x81\xbb\xa0\xac\xe0\xe3\x34\x40\x8b\x51\x3f\x3b\xfc\x26\xc3\xaa\x42\xa6\x82\x26\xd4\xf8\xce\x5c\x57\xf0\xef\x39\x91\xfb\x18\x1f\x92\x90\x21\xee\xbe\xa3\xa4\xae\xfb\x1b\x4b\xe7\xf1\x1f\xb8\xfd\xd7\xf5\x35\xdc\xa4\xf8\x17\x5c\x5f\xdf\x5d\x3d\x3f\x63\xb0\x2f\x2f\x7f\x07\x00\x00\xff\xff\x1d\xcf\x90\x40\x8a\x0f\x00\x00"),
|
||
},
|
||
"/news": &vfsgen۰DirInfo{
|
||
name: "news",
|
||
modTime: time.Date(2021, 2, 4, 10, 13, 52, 723352114, time.UTC),
|
||
},
|
||
"/news/overview.tmpl": &vfsgen۰CompressedFileInfo{
|
||
name: "overview.tmpl",
|
||
modTime: time.Date(2021, 2, 4, 15, 10, 54, 533961494, time.UTC),
|
||
uncompressedSize: 408,
|
||
|
||
compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff\x54\x90\x41\x8b\xfb\x20\x14\xc4\xef\x7e\x8a\xf7\x7f\xf4\xf8\xb7\x25\x3d\x2d\xc5\x08\x0b\x7b\xd9\x4b\x77\x0f\x85\x3d\x4b\x7c\x6d\x04\xa3\x41\xdd\xa4\xf0\xf0\xbb\x2f\x29\x29\x34\x27\x65\x66\xf8\xcd\x28\x33\x58\xba\xba\x40\x80\xc5\x15\x4f\x08\xb5\xaa\xc7\x4d\x33\xbb\xe6\x2d\x00\x9e\x69\xce\x5f\x13\xa5\xc9\xd1\x8c\xb5\xaa\xc3\xd3\x06\x0a\x16\x6a\x15\x2f\x8c\x2e\x86\x42\xa1\x2c\x14\xa1\xac\x9b\xa0\xf3\x26\xe7\x16\x47\x73\x23\xd9\x93\xb1\x94\x50\x0b\x00\xd5\x37\xe0\x6c\x8b\x33\xf9\x2e\x0e\x84\x9b\xb2\x9f\x55\x5c\xba\xfa\x46\x0b\x75\xb0\x6e\xd2\x1b\x5e\x8a\x33\x6e\x95\x2e\x7a\x39\x58\xd9\x1c\x51\x0b\xe6\x64\xc2\x8d\x60\xe7\x82\xa5\xfb\x7f\xd8\x91\xa7\x81\x42\x81\x53\x0b\xfb\x77\xef\xbf\x63\x2e\xb9\x56\x21\x84\x32\xd0\x27\xba\xb6\xc8\xfc\x9b\xfc\x25\x02\x06\x9a\xf3\x69\x8c\xb9\x20\xe0\x92\xfb\xfc\xc0\x95\x53\xeb\x3a\xfd\xa8\x99\x9f\xc8\xfd\xd9\x0c\xf4\x18\x7a\x5c\x86\x1a\x2d\x84\x1a\x5f\xfd\x0b\xdd\xcb\xe2\x8f\x5a\x08\x66\x0a\x76\xf9\x99\xf5\x41\x8f\x03\xd4\x3f\x29\xe1\x90\xe2\x0c\x52\xea\x67\xe6\x2f\x00\x00\xff\xff\x0e\x86\xb8\x99\x98\x01\x00\x00"),
|
||
},
|
||
"/news/post.tmpl": &vfsgen۰CompressedFileInfo{
|
||
name: "post.tmpl",
|
||
modTime: time.Date(2021, 2, 4, 16, 10, 49, 12065149, time.UTC),
|
||
uncompressedSize: 388,
|
||
|
||
compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff\x74\xce\xb1\x6e\x84\x30\x0c\x80\xe1\x9d\xa7\x70\x3d\xb5\x43\x40\x74\xaa\x4e\x21\xd3\x2d\xb7\xd0\x0e\xbc\x40\x44\x7c\x25\x12\x97\xa0\x24\x05\xa4\xc8\xef\x5e\x41\xdb\x6b\x19\x3a\x25\xfa\x65\x7f\x72\xce\x60\xe8\x6a\x1d\x01\x26\x9b\x46\x42\x60\xce\xd9\xd6\x2f\x0e\xb0\xa5\x25\x76\x7b\x64\x3e\x41\xce\xe5\x9b\x8f\xa9\x6c\xf5\x8d\xb6\x19\x20\x67\x80\xb9\xf8\x23\xf4\xde\x25\x72\x69\x33\x0a\x69\xec\x0c\xfd\xa8\x63\x6c\x70\xd2\xef\x24\x06\xd2\x86\x02\xaa\x02\x40\x0e\xb5\x3a\x72\xb2\x1a\x6a\x55\xc8\xca\xd8\x59\x1d\x56\x83\x5f\xf0\x58\x7a\x3f\x8a\x9b\x11\xf5\xf3\xd6\xa7\xbb\xd3\xd1\x9a\x36\x67\xfa\x65\xf6\x07\xe4\x83\x10\x50\x05\xbf\x80\x10\xaa\x90\x1a\x86\x40\xd7\x06\x73\xfe\x08\x63\xe7\x01\x1d\x2d\xf1\xe4\x67\x0a\xb3\xa5\x05\x99\x11\xac\x69\xf0\x1e\xd4\xeb\xf7\x4f\x56\xfa\xdf\xf5\xc9\xc7\x84\x80\xdb\x21\x97\x33\xc2\xa3\x75\x3d\x7c\x9d\x75\x39\x3f\xfd\x90\x8e\xd6\x84\xaa\xa5\x35\x95\x65\xb9\x6b\x39\x93\x33\xcc\x9f\x01\x00\x00\xff\xff\xc9\x34\x6e\xa1\x84\x01\x00\x00"),
|
||
},
|
||
"/testing": &vfsgen۰DirInfo{
|
||
name: "testing",
|
||
modTime: time.Date(2021, 2, 4, 10, 45, 49, 325927577, time.UTC),
|
||
},
|
||
"/testing/base.tmpl": &vfsgen۰CompressedFileInfo{
|
||
name: "base.tmpl",
|
||
modTime: time.Date(2021, 2, 4, 10, 45, 50, 591902911, time.UTC),
|
||
uncompressedSize: 243,
|
||
|
||
compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff\x54\x8f\xb1\xae\x83\x30\x0c\x45\x77\xbe\xc2\x2f\xfb\x23\x6b\x87\xc0\x52\x3a\xb7\x03\x4b\xc7\x90\x18\x11\x35\x04\x09\x0c\x6a\x15\xe5\xdf\x2b\x07\x5a\xa9\x53\x14\x5f\x9f\x73\x65\xf5\xd7\x5c\xcf\xed\xfd\x76\x81\x81\x46\x5f\x17\xea\xf3\xa0\xb6\x75\x01\xa0\x46\x24\x0d\x66\xd0\xf3\x82\x54\x89\x95\xfa\xff\x93\x00\x99\x23\x72\xe4\xb1\x8e\xb1\xf3\x93\x79\x80\xc8\x5f\x01\x65\x4a\x0d\xf6\x7a\xf5\x04\x2d\x4f\x62\xc4\x60\x53\x52\x72\x5f\x2f\x94\xdc\xdd\xaa\x9b\xec\x8b\x3d\x5f\x01\x3e\x69\xd6\x59\x70\x30\x5c\x62\xdd\x06\xc6\xeb\x65\xa9\x84\x99\x02\x69\x17\x70\x16\x8c\x31\x08\x07\xc9\x09\x06\x12\x50\xc2\x0f\x2c\xad\xdb\xb8\x71\xaf\x52\x32\x1f\xf7\x0e\x00\x00\xff\xff\xd6\x0a\x65\x40\xf3\x00\x00\x00"),
|
||
},
|
||
}
|
||
fs["/"].(*vfsgen۰DirInfo).entries = []os.FileInfo{
|
||
fs["/admin"].(os.FileInfo),
|
||
fs["/auth"].(os.FileInfo),
|
||
fs["/base.tmpl"].(os.FileInfo),
|
||
fs["/error.tmpl"].(os.FileInfo),
|
||
fs["/landing"].(os.FileInfo),
|
||
fs["/news"].(os.FileInfo),
|
||
fs["/testing"].(os.FileInfo),
|
||
}
|
||
fs["/admin"].(*vfsgen۰DirInfo).entries = []os.FileInfo{
|
||
fs["/admin/dashboard.tmpl"].(os.FileInfo),
|
||
}
|
||
fs["/auth"].(*vfsgen۰DirInfo).entries = []os.FileInfo{
|
||
fs["/auth/fallback_sign_in.tmpl"].(os.FileInfo),
|
||
}
|
||
fs["/landing"].(*vfsgen۰DirInfo).entries = []os.FileInfo{
|
||
fs["/landing/about.tmpl"].(os.FileInfo),
|
||
fs["/landing/index.tmpl"].(os.FileInfo),
|
||
}
|
||
fs["/news"].(*vfsgen۰DirInfo).entries = []os.FileInfo{
|
||
fs["/news/overview.tmpl"].(os.FileInfo),
|
||
fs["/news/post.tmpl"].(os.FileInfo),
|
||
}
|
||
fs["/testing"].(*vfsgen۰DirInfo).entries = []os.FileInfo{
|
||
fs["/testing/base.tmpl"].(os.FileInfo),
|
||
}
|
||
|
||
return fs
|
||
}()
|
||
|
||
type vfsgen۰FS map[string]interface{}
|
||
|
||
func (fs vfsgen۰FS) Open(path string) (http.File, error) {
|
||
path = pathpkg.Clean("/" + path)
|
||
f, ok := fs[path]
|
||
if !ok {
|
||
return nil, &os.PathError{Op: "open", Path: path, Err: os.ErrNotExist}
|
||
}
|
||
|
||
switch f := f.(type) {
|
||
case *vfsgen۰CompressedFileInfo:
|
||
gr, err := gzip.NewReader(bytes.NewReader(f.compressedContent))
|
||
if err != nil {
|
||
// This should never happen because we generate the gzip bytes such that they are always valid.
|
||
panic("unexpected error reading own gzip compressed bytes: " + err.Error())
|
||
}
|
||
return &vfsgen۰CompressedFile{
|
||
vfsgen۰CompressedFileInfo: f,
|
||
gr: gr,
|
||
}, nil
|
||
case *vfsgen۰DirInfo:
|
||
return &vfsgen۰Dir{
|
||
vfsgen۰DirInfo: f,
|
||
}, nil
|
||
default:
|
||
// This should never happen because we generate only the above types.
|
||
panic(fmt.Sprintf("unexpected type %T", f))
|
||
}
|
||
}
|
||
|
||
// vfsgen۰CompressedFileInfo is a static definition of a gzip compressed file.
|
||
type vfsgen۰CompressedFileInfo struct {
|
||
name string
|
||
modTime time.Time
|
||
compressedContent []byte
|
||
uncompressedSize int64
|
||
}
|
||
|
||
func (f *vfsgen۰CompressedFileInfo) Readdir(count int) ([]os.FileInfo, error) {
|
||
return nil, fmt.Errorf("cannot Readdir from file %s", f.name)
|
||
}
|
||
func (f *vfsgen۰CompressedFileInfo) Stat() (os.FileInfo, error) { return f, nil }
|
||
|
||
func (f *vfsgen۰CompressedFileInfo) GzipBytes() []byte {
|
||
return f.compressedContent
|
||
}
|
||
|
||
func (f *vfsgen۰CompressedFileInfo) Name() string { return f.name }
|
||
func (f *vfsgen۰CompressedFileInfo) Size() int64 { return f.uncompressedSize }
|
||
func (f *vfsgen۰CompressedFileInfo) Mode() os.FileMode { return 0444 }
|
||
func (f *vfsgen۰CompressedFileInfo) ModTime() time.Time { return f.modTime }
|
||
func (f *vfsgen۰CompressedFileInfo) IsDir() bool { return false }
|
||
func (f *vfsgen۰CompressedFileInfo) Sys() interface{} { return nil }
|
||
|
||
// vfsgen۰CompressedFile is an opened compressedFile instance.
|
||
type vfsgen۰CompressedFile struct {
|
||
*vfsgen۰CompressedFileInfo
|
||
gr *gzip.Reader
|
||
grPos int64 // Actual gr uncompressed position.
|
||
seekPos int64 // Seek uncompressed position.
|
||
}
|
||
|
||
func (f *vfsgen۰CompressedFile) Read(p []byte) (n int, err error) {
|
||
if f.grPos > f.seekPos {
|
||
// Rewind to beginning.
|
||
err = f.gr.Reset(bytes.NewReader(f.compressedContent))
|
||
if err != nil {
|
||
return 0, err
|
||
}
|
||
f.grPos = 0
|
||
}
|
||
if f.grPos < f.seekPos {
|
||
// Fast-forward.
|
||
_, err = io.CopyN(ioutil.Discard, f.gr, f.seekPos-f.grPos)
|
||
if err != nil {
|
||
return 0, err
|
||
}
|
||
f.grPos = f.seekPos
|
||
}
|
||
n, err = f.gr.Read(p)
|
||
f.grPos += int64(n)
|
||
f.seekPos = f.grPos
|
||
return n, err
|
||
}
|
||
func (f *vfsgen۰CompressedFile) Seek(offset int64, whence int) (int64, error) {
|
||
switch whence {
|
||
case io.SeekStart:
|
||
f.seekPos = 0 + offset
|
||
case io.SeekCurrent:
|
||
f.seekPos += offset
|
||
case io.SeekEnd:
|
||
f.seekPos = f.uncompressedSize + offset
|
||
default:
|
||
panic(fmt.Errorf("invalid whence value: %v", whence))
|
||
}
|
||
return f.seekPos, nil
|
||
}
|
||
func (f *vfsgen۰CompressedFile) Close() error {
|
||
return f.gr.Close()
|
||
}
|
||
|
||
// vfsgen۰DirInfo is a static definition of a directory.
|
||
type vfsgen۰DirInfo struct {
|
||
name string
|
||
modTime time.Time
|
||
entries []os.FileInfo
|
||
}
|
||
|
||
func (d *vfsgen۰DirInfo) Read([]byte) (int, error) {
|
||
return 0, fmt.Errorf("cannot Read from directory %s", d.name)
|
||
}
|
||
func (d *vfsgen۰DirInfo) Close() error { return nil }
|
||
func (d *vfsgen۰DirInfo) Stat() (os.FileInfo, error) { return d, nil }
|
||
|
||
func (d *vfsgen۰DirInfo) Name() string { return d.name }
|
||
func (d *vfsgen۰DirInfo) Size() int64 { return 0 }
|
||
func (d *vfsgen۰DirInfo) Mode() os.FileMode { return 0755 | os.ModeDir }
|
||
func (d *vfsgen۰DirInfo) ModTime() time.Time { return d.modTime }
|
||
func (d *vfsgen۰DirInfo) IsDir() bool { return true }
|
||
func (d *vfsgen۰DirInfo) Sys() interface{} { return nil }
|
||
|
||
// vfsgen۰Dir is an opened dir instance.
|
||
type vfsgen۰Dir struct {
|
||
*vfsgen۰DirInfo
|
||
pos int // Position within entries for Seek and Readdir.
|
||
}
|
||
|
||
func (d *vfsgen۰Dir) Seek(offset int64, whence int) (int64, error) {
|
||
if offset == 0 && whence == io.SeekStart {
|
||
d.pos = 0
|
||
return 0, nil
|
||
}
|
||
return 0, fmt.Errorf("unsupported Seek in directory %s", d.name)
|
||
}
|
||
|
||
func (d *vfsgen۰Dir) Readdir(count int) ([]os.FileInfo, error) {
|
||
if d.pos >= len(d.entries) && count > 0 {
|
||
return nil, io.EOF
|
||
}
|
||
if count <= 0 || count > len(d.entries)-d.pos {
|
||
count = len(d.entries) - d.pos
|
||
}
|
||
e := d.entries[d.pos : d.pos+count]
|
||
d.pos += count
|
||
return e, nil
|
||
}
|