// Code generated by vfsgen; DO NOT EDIT. // +build !dev package assets import ( "bytes" "compress/gzip" "fmt" "io" "io/ioutil" "net/http" "os" pathpkg "path" "time" ) // Assets statically implements the virtual filesystem provided to vfsgen. var Assets = func() http.FileSystem { fs := vfsgen۰FS{ "/": &vfsgen۰DirInfo{ name: "/", modTime: time.Date(2021, 2, 2, 5, 31, 18, 783804630, time.UTC), }, "/e3t0cmltU3VmZml4ICIucHJvdG8iIC5GaWxlLk5hbWV9fV9taWNyb19ncnBjLnBiLmdvLnRtcGw=": &vfsgen۰CompressedFileInfo{ name: "e3t0cmltU3VmZml4ICIucHJvdG8iIC5GaWxlLk5hbWV9fV9taWNyb19ncnBjLnBiLmdvLnRtcGw=", modTime: time.Date(2021, 2, 2, 4, 56, 48, 823841341, time.UTC), uncompressedSize: 5891, compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff\xcc\x57\x4b\x6f\xa4\x46\x17\x5d\x53\xbf\xe2\x0e\xfa\x34\x82\x4f\xb8\x7a\x91\x9d\x47\x5e\x8c\xac\x8c\x12\x29\xf6\x44\xe3\xec\x2d\xa6\xfa\x36\x46\x86\x02\x17\x85\xdd\x16\x5d\xff\x3d\xaa\x07\x34\xd0\xf4\xcb\xd8\x49\xbc\x70\xab\xeb\x75\xef\xb9\x8f\x73\x4f\x2f\x16\x70\x5d\x2c\x11\x12\xe4\x28\x62\x89\x4b\xf8\xf9\x0a\xa5\x28\x64\xc1\x2e\x12\xe4\x17\x79\xca\x44\x41\x16\x0b\xa8\x8a\x5a\x30\xbc\x84\xa6\xa1\xdf\xd2\x0c\xe9\x6d\x9c\xa3\x52\xa4\x8c\xd9\x63\x9c\x20\x34\x4d\x52\xfc\xf9\x98\xfc\x11\x57\xf2\xd7\x0c\x73\xe4\x12\xcc\x39\xd8\x40\x55\x66\xa9\xfc\x2a\x44\xfc\x0a\xfe\x17\x1f\x36\x90\xc5\x95\x84\x0d\x08\x2c\xb3\x98\x21\xf8\xd4\x07\xff\xde\x57\x8a\x90\x34\x2f\x0b\x21\x21\x20\x9e\xcf\x0a\x2e\x71\x2d\x7d\x42\x3c\xe3\xc3\x3d\xcb\x52\xfd\xaa\x9f\xa4\xf2\xa1\xfe\x49\x59\x91\x2f\x6a\x9e\x56\x32\x66\x8f\x17\x85\x48\x16\xe6\xd4\xe2\xf9\x97\x85\x3d\xe8\x43\x7b\xb1\x42\xf1\x8c\xe2\x84\x8b\xf6\xa0\x4f\x42\x42\x9e\x63\x01\x01\x01\x00\xb8\x87\xfe\x2b\xf4\x7b\x29\xd3\x82\x0f\x76\xac\xbd\x76\x27\x24\xa4\x69\x2e\xe0\x7f\x06\xfc\xe5\x95\x8b\x82\x52\x76\xf5\x0e\xc5\x73\xca\x50\x07\xcf\x6c\xba\xef\x26\x9a\xb0\x01\x29\xd2\xfc\xae\x5e\xad\xd2\x35\xf8\x6e\xcb\xd7\x77\x89\x7c\x2d\x75\x8c\x07\xf7\x37\x90\x15\x2f\x28\xbe\xa5\xa2\x92\x4a\xb9\x1d\xa8\xa4\xa8\x99\x84\xc6\xb8\xc8\x86\x2e\x5e\x9b\x0f\xb3\xc3\xf5\x0b\x95\x14\x29\x4f\x88\x22\x3a\xc1\x37\xfa\x24\xb8\x28\x57\xb2\x5e\xad\xcc\xf2\x2d\xbe\x0c\xed\x6e\x4d\x31\x81\xb1\x44\xe0\xf8\x02\x55\xbb\x64\x2d\xac\x6a\xce\x0e\xdc\x0c\x7a\xd6\xa3\x69\x27\x43\xd8\x67\xd5\x22\x13\x28\x6b\xc1\xe1\xf3\x29\x31\x69\xd8\x25\xb0\xc8\x40\xbe\x34\xff\x95\x86\xdc\x34\x22\xe6\x09\x6e\x73\x70\x83\xf2\xa1\x58\xb6\x99\x12\xf8\x64\x17\x4c\x9e\x7e\xe7\x65\x2d\xff\xd2\x49\x18\xd6\x33\x6d\xeb\xb9\xbb\x56\x95\xbd\x6b\xdf\x6b\x79\xda\xbd\x74\x05\x31\x5f\x42\xc0\x0b\x09\x2e\x02\x77\x52\x60\x9c\xa7\x3c\x09\x21\x30\x3e\xa2\xe8\x2d\x5d\x28\x65\xa3\x1c\x30\xf8\xff\x29\x41\xd0\x01\x75\x4d\x1b\x30\xb9\x06\xd7\x5f\xf4\xda\x7e\x46\x20\xf0\xc9\xbc\xd4\x01\x57\x2a\x82\xa2\x94\x15\x50\x4a\x87\x19\x8a\xb3\xcc\x56\x7b\x08\xc1\x38\x4d\xf7\x9d\x19\xb7\x1c\x01\x0a\x51\x88\xd0\x24\x4e\x63\xc5\xac\x42\x0d\x78\x8c\xf3\x03\x30\x7d\x98\xfb\xff\x99\xf0\x9b\x2b\x6d\xcd\xe9\x2b\x63\x6f\xf9\xd2\x38\x6b\xbf\xa5\x2b\x28\xc4\x54\x39\x05\x3b\x45\x67\xee\x80\x6e\x52\x8c\x73\xf3\xac\xae\x68\x46\x19\xb5\x67\x34\x8a\xc8\x7c\xbf\xc5\x97\x1f\xf8\x54\x63\x25\x03\x46\x75\x7b\x45\xe0\x8f\xc3\x4a\x3b\xf4\x7e\x64\x9a\xb6\x07\xb3\x51\xa1\x45\x4a\x29\x0d\x8d\xd1\x74\x65\xec\x7d\xba\x02\x9e\x66\xae\xe1\xbb\x96\xe7\x69\x66\xdc\x31\xab\x3d\x60\x53\xad\x03\x4a\xc1\x3f\xfb\xd7\xf7\xff\xf2\xca\x85\x8f\xde\x21\x5f\x06\x02\x9f\xc2\x2f\xe7\x02\x43\xbe\x74\x99\x38\x8b\xf1\xda\x68\x37\xd6\x01\x15\xe9\xd7\x7b\x05\xdc\xbe\x59\x95\xda\xcb\xcf\xc3\x22\x6a\xec\x66\x2f\xe5\xba\xe4\x66\x24\x5c\x23\x8f\xb4\xb1\x93\xf2\xbc\x3f\x20\xdd\x8e\x79\xaa\x87\xc8\x04\xc9\x70\xfa\x79\x15\x7e\xf2\x58\xed\xd0\x0c\xe7\xab\x8d\xee\x70\x7e\x59\x03\x44\x59\x67\x0c\xab\x4f\x30\xba\xa9\xd6\xb1\x93\x1d\xa9\xac\x4f\x23\x95\xce\xab\x10\x7e\x20\x7b\xfe\xca\x97\xd7\x59\x51\x61\x70\x90\x17\xbc\x7c\x3a\xe5\x9e\xcb\xf7\x9a\xea\xb7\x6e\xaa\x24\xc8\x43\xe2\xb9\x14\x5d\xb5\x29\xf2\xcc\x31\x7d\xca\x99\x22\x9e\x22\xdd\xb1\x4f\xdb\x63\xe3\x1c\x7a\x8a\x78\xa4\x5d\xcd\x6d\xf6\xec\xec\xb3\xd9\x7b\x33\xf2\x16\xb2\x01\x38\x54\x07\x6b\xea\xfa\xaf\xf5\x75\x8e\x19\x4b\xd4\x41\x38\xa6\xee\x7d\x26\xdb\xf3\x73\x8c\x6a\xde\x30\x99\x80\x94\x4b\x14\xab\x98\x61\xa3\x0e\x43\x35\x54\x93\xcf\xb2\xda\xe5\xff\x74\xab\xfa\x8a\xb3\xda\x34\x47\x86\xfb\xdb\xc2\x10\xe4\xe3\xf1\x78\x6a\x1c\x7a\x35\xe6\x7c\x1b\xf5\xdd\x2c\xdf\x0c\xf2\x23\x83\x38\xdf\x47\xb2\xdb\x41\x31\x8e\xe4\xc4\xa0\xd8\x65\x45\xfd\xc4\x9e\x8e\x02\x0b\xb7\x45\xde\x97\x02\x5b\xb1\xef\x7e\x19\x39\xb1\x7f\x9c\x0c\x7f\x8b\xf9\x32\x33\x17\x3a\x0e\x1c\xf3\xbe\x3b\x62\x1c\x99\xd4\xd7\xf0\xaf\x09\xec\x33\xe6\x82\x2d\x86\x87\x23\xc5\xe0\xb0\x1e\x95\x76\x83\x29\xe1\x7e\x47\x5a\x73\xdb\x12\x3e\x20\x62\x66\x68\x18\xe2\xf5\xd8\xbe\xaf\xb8\xe6\x69\x1c\xcf\xdb\x51\x38\xd3\x65\xeb\x79\xdd\x20\x30\x33\xc0\x1b\x4c\xf1\x07\xba\xa7\x7a\xe8\x20\xa0\x91\x2e\xee\xc3\xb2\x67\x2b\xda\x8d\x37\xad\xea\x09\xc9\x58\xef\x9c\x69\x78\x8e\x55\xa7\x49\x7a\x1e\xbc\x6f\x55\x4d\xfe\x60\xd0\x82\x6e\xc4\x44\x7d\x9a\x3c\x17\xbf\xc0\x27\xf3\xe6\x90\x46\xdf\x5f\x65\x8d\x22\xd9\x27\x98\xfd\xcd\xf3\xb1\x12\x6b\xe4\x92\x1d\x42\x9d\xc2\xca\x0f\x45\xb9\xa3\xf4\x6e\x7c\x87\x5b\xae\xbf\xea\x53\x7a\xab\xa5\x46\x32\x65\xc0\xec\xba\x71\xde\x20\x94\x76\xfc\xdf\xd5\x49\xb3\x55\xd2\xae\x8d\x83\x22\xe9\x1d\x24\xd2\x64\x56\x0e\x6a\x95\xd9\xfa\x68\xc7\xe4\x51\x79\xb4\x5f\x1c\x39\x96\x1f\x57\xe5\xbc\xa2\x3c\x5c\x8c\xa7\xe8\x22\xd3\x46\xbb\x63\x67\x4e\x80\x3a\x49\xd4\x67\xa7\x49\x49\xd4\x1f\x4b\x1f\x2a\x89\x26\x15\x91\x52\xe4\xef\x00\x00\x00\xff\xff\x4c\x63\x42\xa9\x03\x17\x00\x00"), }, "/e3t0cmltU3VmZml4ICIucHJvdG8iIC5GaWxlLk5hbWV9fV9taWNyb19odHRwLnBiLmdvLnRtcGw=": &vfsgen۰CompressedFileInfo{ name: "e3t0cmltU3VmZml4ICIucHJvdG8iIC5GaWxlLk5hbWV9fV9taWNyb19odHRwLnBiLmdvLnRtcGw=", modTime: time.Date(2021, 2, 2, 4, 56, 58, 193578375, time.UTC), uncompressedSize: 7689, compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff\xcc\x59\x5b\x6f\x9b\xc8\x17\x7f\x66\x3e\xc5\x29\xff\xfc\x2b\x58\xe1\xf1\x43\xdf\x52\xe5\xa1\x1b\xb5\x7b\xd1\xa6\xad\x92\x6a\x5f\xaa\x2a\xa2\xf8\x98\xb0\x81\x81\xcc\x8c\x9d\x44\x64\xbe\xfb\x6a\x2e\x60\xc0\xf8\x16\x37\xbb\xdb\x87\xc6\x1e\xce\xfd\xfa\x63\x3c\x9d\xc2\x79\x39\x43\x48\x91\x21\x8f\x25\xce\xe0\xfb\x23\x54\xbc\x94\x65\x32\x49\x91\x4d\x8a\x2c\xe1\x25\x99\x4e\x41\x94\x0b\x9e\xe0\x29\xd4\x35\xfd\x90\xe5\x48\x3f\xc6\x05\x2a\x45\xaa\x38\xb9\x8d\x53\x84\xba\x4e\xcb\xcf\xb7\xe9\x1f\xb1\x90\xef\x73\x2c\x90\x49\x30\x74\xf0\x04\xa2\xca\x33\xf9\x8e\xf3\xf8\x11\xfc\xb7\x3e\x3c\x41\x1e\x0b\x09\x4f\xc0\xb1\xca\xe3\x04\xc1\xa7\x3e\xf8\xd7\xbe\x52\x84\x64\x45\x55\x72\x09\x01\xf1\xfc\xa4\x64\x12\x1f\xa4\x4f\x00\xfc\x79\x21\x7d\x42\x3c\x63\xcb\x75\x92\x67\x5a\xba\x9f\x66\xf2\x66\xf1\x9d\x26\x65\x31\x5d\xb0\x4c\xc8\x38\xb9\x9d\x94\x3c\x9d\x1a\xaa\xe9\xf2\xcd\xd4\x12\xfa\xd0\x30\x0a\xe4\x4b\xe4\x7b\x30\x5a\x42\xbf\xaf\xf0\xfa\x46\xca\x6a\x07\xf3\xc4\x92\x4e\x34\xe9\x74\xf9\xc6\x27\x21\x21\xcb\x98\x43\x40\x00\x00\xae\xa1\x6b\x07\xfd\x54\xc9\xac\x64\xbd\x27\x96\xbd\x79\x12\x12\x52\xd7\x13\x38\x31\x61\x3c\x3d\x73\xf1\x54\xca\x9e\x5e\x21\x5f\x66\x09\xea\x34\x98\x87\xee\xbb\xc9\x0b\x3c\x81\xe4\x59\x71\xb5\x98\xcf\xb3\x07\xf0\xdd\x23\x5f\xf3\x12\xf9\x58\xe9\x6c\xf5\xf8\x9f\x20\x2f\xef\x91\x7f\xc8\xb8\x90\x4a\xb9\x27\x20\x24\x5f\x24\x12\x6a\x63\x62\xd2\x37\xf1\xdc\xfc\x31\x4f\x98\x96\x20\x24\xcf\x58\x4a\x14\xd1\xa5\x72\xa1\x29\xc1\xe5\x49\xc8\xc5\x7c\x6e\x8e\x3f\xe2\x7d\x5f\xef\x4a\x55\xc2\x31\x96\x08\x0c\xef\x41\x34\x47\x56\xc3\x7c\xc1\x92\x2d\x9c\x41\x47\x7b\x34\x6e\x64\x08\x9b\xb4\x5a\xcf\x38\xca\x05\x67\xf0\x7a\x9f\x98\xd4\xc9\x29\x24\x91\x71\xf9\xd4\xfc\xaf\xb4\xcb\x75\xcd\x63\x96\xe2\x2a\x07\x17\x28\x6f\xca\x59\x93\x29\x8e\x77\xf6\xc0\xe4\xe9\x37\x56\x2d\xe4\x17\x9d\x84\x7e\x67\xd0\xa6\x33\x5a\x36\x51\x75\xd8\x3e\x2d\xe4\x7e\x7c\xd9\x1c\x62\x36\x83\x80\x95\x12\x5c\x04\xae\x24\xc7\xb8\xc8\x58\x1a\x42\x60\x6c\x44\xde\x39\x9a\x28\x65\xa3\x1c\x24\xf0\xd3\x3e\x41\xd0\x01\x75\xed\x1f\x24\xf2\x01\x5c\xa7\xd2\x73\xfb\x37\x02\x8e\x77\x46\x52\xeb\xb8\x52\x11\x94\x95\x14\x40\x29\xed\x67\x28\xce\x73\x5b\xed\x21\x04\xc3\x34\x5d\xb7\x6a\xdc\x71\x04\xc8\x79\xc9\x43\x93\x38\xed\x2b\xe6\x02\xb5\xc3\x43\x3f\x5f\xc0\xa7\x17\x33\xff\x3f\x13\x7e\xc3\xd2\xd4\x9c\x66\x19\x5a\xcb\x66\x7a\x80\xe8\x96\x71\x75\xa6\x4b\x2c\xd0\xea\xe3\x8c\x09\x08\xfe\x12\x25\x83\xa0\xac\x90\xc5\x55\x66\xc5\x02\x0d\x43\xf0\xd9\x22\xcf\xfd\x70\xc0\xbc\x46\x48\x2f\x51\x54\x25\x13\x28\x1a\x4a\xe4\xbc\x88\x2b\x5d\xfe\x45\x7c\x8b\x41\x11\x57\x5f\x6d\xa7\x7f\xcb\x98\x44\x3e\x8f\x13\xac\x55\x04\x75\x0d\x39\xb2\x6d\x02\x95\x0a\x5b\xd5\xb6\x55\x4f\x6e\x23\x38\x59\x6a\xd1\x7b\xdb\xf1\xd5\xaf\xeb\x93\x5b\xa5\xfc\x6f\x70\xa6\xa7\xc5\x04\x82\x14\xe5\x05\x0a\x11\xa7\x68\x1a\xd3\x4e\xea\x93\x25\xbd\x4a\x6e\xb0\x88\xe9\xef\xa2\x64\xee\xe3\x25\xce\x43\x3b\x9a\x95\xaa\x57\x71\x18\xc4\x74\xf3\x57\x66\xf2\x77\x7a\x06\x71\x55\x21\x9b\x05\xfa\x6b\x64\x9e\x00\xac\x6d\x29\x37\x7f\x02\xbf\xae\xf5\xd7\x3f\x91\x7f\x07\xaa\x94\x1f\x46\xb0\x91\xe5\x73\x2c\x6f\x1a\x06\xfd\xd9\x31\x38\xfa\xf1\x84\x6b\xda\x9f\xcb\xd9\x23\xd0\x10\xfc\x5f\xde\x7f\x59\xe5\x78\x4c\x83\xa6\x6c\x34\x58\xae\xa1\x86\x8e\xbf\x47\xd6\xd8\x21\x55\x36\x66\xeb\x7b\x5d\xfa\x17\x71\x15\xd8\xd4\x6f\xb7\xb2\x73\x10\x92\x56\x73\xc9\xc7\x86\x6d\xb0\x36\x92\x1d\xa7\x30\x07\xa6\xe9\x74\x9a\x13\x9a\x50\x4b\xa3\x7b\x3c\x32\xdf\x3f\xe2\xfd\x25\xde\x2d\x50\xc8\x20\xa1\x7a\xf9\x44\xe0\x0f\x87\x0e\x6d\x67\x83\x1f\x99\x95\xd6\x19\x02\xb5\x0a\x23\x5b\x48\x94\x52\xdb\x10\xd9\xdc\x28\x7c\x75\x06\x2c\xcb\xdd\x3e\x6c\x37\x22\xcb\x72\x63\x8f\x39\x55\xa4\x97\x92\xb5\x89\xab\x14\xfc\xb3\xff\xba\xf6\x9f\x9e\xb9\xf8\xd1\x2b\xdd\x1c\x1c\xef\xc2\xb7\x87\x3a\x86\x6c\xe6\x52\x71\x10\x20\x68\xc2\x5d\x5b\x03\x54\xa4\xa5\x77\xe6\x7b\x23\x53\x98\x39\xf6\xba\x3f\x63\xeb\x76\xbe\x34\x39\xd7\x13\xf9\x88\x8c\x6b\xcf\x23\xad\x6c\xbf\x44\x6f\x8e\x48\xfb\xc4\xca\x5a\xb9\x64\xa2\x64\x30\xcf\x61\x35\xbe\x37\xec\x6c\xdd\xe9\xe3\x4f\x1b\xde\x3e\xbe\xb3\x0a\x88\xb2\xc6\x18\xd4\x33\x82\x78\x4c\xb9\x0e\x8d\x6c\x97\xee\xc3\x7e\x4b\xb7\xb5\x2a\x84\x4b\x4c\x96\xef\xd8\xec\x3c\x2f\x05\x06\x5b\xf7\xa6\x57\x8c\xe7\xdc\x73\x09\x7f\xa0\x5a\xd6\x85\x48\x83\x22\x24\x9e\x4b\xd1\x59\x93\x22\xcf\x90\x69\x2a\xa7\x8a\x78\x8a\xb4\x64\xaf\x56\x64\xc3\x1c\x7a\x8a\x78\xa4\x39\x2d\x6c\xf6\x2c\x36\xb4\xd9\x7b\xb6\xe7\x8d\xcb\xc6\xc1\x3e\x7a\x7e\xa0\xae\x01\x1b\x5b\x8f\x51\x63\x81\x4c\x10\x0e\xa1\xcd\x26\x95\x0d\xfd\x31\x4a\xf5\xe0\x30\x99\x80\x0e\xb6\xd8\xee\xaa\x99\x35\xc5\x51\x5a\xdb\xfc\xef\xaf\x55\xb3\x38\xad\x75\xbd\x03\xfc\x3e\x2f\x0c\x41\x31\x84\x8f\xfb\xc6\xa1\x53\x63\xce\xb6\x41\xdf\x1d\x65\x9b\xf1\x7c\x07\x50\x2d\x36\x4d\xd9\xd5\xa6\x18\x46\x72\x64\x53\xac\x4f\x45\x2d\x62\x43\x47\x81\x75\xb7\xf1\xbc\x39\xd5\x9e\xae\x5e\x86\xdd\xdd\x83\x7b\x19\xde\x3d\x0c\x7f\x8d\xd9\x2c\x37\x0c\xed\x0c\x1c\x0e\x7e\x47\x62\x0c\x19\x7d\xff\x84\x7f\xed\x05\xf4\x80\xbd\x60\x8b\xe1\x66\x47\x31\x38\x5f\x77\xbe\xfa\xf4\xb6\x84\xbb\x67\xb1\xea\x56\x25\xbc\x05\xc5\x1c\x01\x62\x88\xd7\x99\xf6\x5d\xcc\x75\x1c\xc8\xf1\xbc\x35\x88\x33\x5e\xb6\x9e\xd7\x2e\x02\xb3\x03\xbc\xde\x16\xbf\xa1\x1b\xaa\x87\xf6\x02\x1a\xe9\xe2\xde\x8e\x7b\x56\x2f\xb5\xc6\x9a\x06\xf6\x84\x64\x08\x78\x0e\x54\x7c\x8c\x56\x87\x49\x3a\x16\xfc\xd8\xaa\x1a\x7d\xa1\xd6\x88\x6e\x30\x89\xba\x63\xf2\x50\xff\x39\xde\x19\x99\xfd\x31\xfa\x03\x50\x56\xef\x22\xc2\xb6\x47\xbb\x6b\x8c\xa5\x1b\xd7\x2d\x81\x76\x2b\xae\x6f\x27\x02\xed\xf2\x1a\x7d\xd8\xbd\x8a\x3a\x00\x94\x59\x95\x2d\xbc\x1a\x0f\xf0\x00\xb1\xf7\x60\xc9\x4a\xf5\x50\x7c\x2b\x7d\x3f\xa9\x8d\x94\xb5\x11\xe1\x3c\x6f\x37\x51\xb7\x28\xec\x26\x1a\x62\xe5\xdd\xe3\x7e\x98\xa1\xce\xd8\xdf\x3c\xd2\x5e\x16\xf8\x0e\x4c\x0a\xfb\x89\x29\xb6\xd5\x7e\xbb\x68\x5b\x50\x15\xae\x36\xf0\x59\x77\xd1\x36\x08\x77\x00\x1e\x7b\xfb\x56\x8f\xb3\x67\xc0\xd7\x35\xfb\xd7\xd1\xeb\xd1\xd8\x75\x5d\xc7\x56\xe8\xfa\x03\x80\xeb\x68\x56\xb6\x22\xc8\xa3\x51\xeb\x9a\xca\x9d\xa0\x75\x33\x64\xdd\xdc\x9a\x47\xb8\xbf\xbd\x18\xf7\x41\xab\xa6\x8d\x46\x3a\xfd\x88\x00\x6d\x19\x0f\x03\xa0\xda\x05\x0b\x2f\x0a\x54\x47\x71\x6a\x73\x78\x82\x9c\x17\x22\xd5\x7a\xf3\x4c\x48\x8b\x1d\xb7\xfd\xac\xf1\xac\xbb\xb9\xfd\x6e\xe5\xea\xfa\xd0\x5b\x5a\xe3\x41\x21\x52\x33\x69\x35\xf9\x61\x37\xb3\xad\x08\x17\x84\xe6\x9a\xb5\x3d\x68\x64\x37\x57\xb8\x5d\xec\xbf\xf3\xe3\xea\x07\xa2\x8e\x3f\x8d\xe4\x27\x58\xb0\xec\xce\x58\x30\x9d\x82\xb9\x77\x84\xc2\xa2\x6e\x59\x82\x88\x65\x26\xe6\x8f\xae\x9c\xdb\x76\x73\x85\x89\xba\x30\x27\x5a\xa2\x2e\x79\xc3\x1b\x84\xee\xc7\xb0\x7e\x81\xcc\x0b\x49\xaf\x2a\x9e\x31\x39\x0f\xfc\xff\xff\x6f\xe9\x47\x80\x61\xff\x15\xe6\xef\x00\x00\x00\xff\xff\xde\xc5\xb5\xdd\x09\x1e\x00\x00"), }, "/e3t0cmltU3VmZml4ICIucHJvdG8iIC5GaWxlLk5hbWV9fV9taWNyby5wYi5nby50bXBs": &vfsgen۰CompressedFileInfo{ name: "e3t0cmltU3VmZml4ICIucHJvdG8iIC5GaWxlLk5hbWV9fV9taWNyby5wYi5nby50bXBs", modTime: time.Date(2021, 2, 2, 4, 56, 36, 139197338, time.UTC), uncompressedSize: 5590, compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff\xd4\x57\x51\x6f\xa3\x38\x10\x7e\x2e\xbf\x62\x84\xaa\x0a\x56\x29\xd9\xd3\xbd\xe5\x94\x87\x6e\xb5\xab\x3b\xe9\xda\x5d\x6d\x4f\x77\x0f\xab\x55\xe5\xc2\x84\xf8\x4a\x0c\x67\x9b\xb4\x15\xe5\xbf\x9f\x8c\x0d\x18\x97\x90\xa4\xaa\x56\xda\xbc\x04\xdb\xf3\x8d\x87\x99\xcf\xc3\xe7\xf9\x1c\x2e\xf3\x04\x21\x45\x86\x9c\x48\x4c\xe0\xee\x09\x0a\x9e\xcb\x3c\x3e\x4f\x91\x9d\x6f\x68\xcc\x73\x6f\x3e\x07\x91\x97\x3c\xc6\x05\x54\x55\xf4\x89\x66\x18\x5d\x93\x0d\xd6\xb5\x57\x90\xf8\x9e\xa4\x08\x55\x95\xe6\x5f\xee\xd3\x3f\x89\x90\x1f\x33\xdc\x20\x93\xd0\xd8\xc1\x33\x88\x22\xa3\xf2\x82\x73\xf2\x04\xfe\x6f\x3e\x3c\x43\x46\x84\x84\x67\xe0\x58\x64\x24\x46\xf0\x23\x1f\xfc\x5b\xbf\xae\x3d\x8f\x6e\x8a\x9c\x4b\x08\xbc\x13\x3f\xce\x99\xc4\x47\xe9\x7b\xde\x49\x13\xc3\x2d\x29\x28\xf8\x29\x95\xeb\xf2\x2e\x8a\xf3\xcd\xbc\x64\x54\x48\x12\xdf\x9f\xe7\x3c\x9d\x37\x26\xf3\xed\xaf\x73\x52\x50\x1f\x00\xa0\x45\xc5\x19\x55\xb1\xec\x07\x6a\x43\xbf\x03\x0a\xe4\x5b\xe4\x07\x00\xb5\xa1\xef\x85\x9e\x57\x55\xe7\x70\x7a\x83\x7c\x4b\x63\x54\xf9\x81\xc5\x12\x22\x33\x6e\x12\x06\xcf\x20\x39\xdd\xdc\x94\xab\x15\x7d\x04\xdf\x2c\xf9\x50\xd7\x1a\x8b\x05\x2b\x37\x0a\xf5\xbe\x9d\xe2\x84\xa5\xd8\x3b\xb9\x42\xb9\xce\x13\xb3\x46\x57\xc0\x72\x09\x81\x4a\x15\xa1\x4c\x40\xf0\xaf\xc8\x19\x04\x6b\x29\x8b\xcf\x85\xa4\x39\x83\x28\x0c\xc1\x67\x65\x96\xf9\x21\x58\x28\xd4\x46\x7f\x23\xbf\x83\x28\x04\xdf\x8d\x60\x09\x24\x49\xda\xc1\x2f\xc3\x58\x14\xf0\x0b\x91\x6b\x71\x91\x24\x54\x6d\x42\xb2\x0f\x94\x25\x94\xa5\x02\xa2\x83\xfc\x20\x4b\x0e\x7a\x54\xb4\xbb\xc6\x87\xaa\xb2\x73\x5a\xd7\x1f\x59\x52\xe4\x94\x49\xa1\x78\xba\xa5\x09\x0a\x50\xdc\xc0\x6e\x7a\x83\x32\x21\x92\xc0\x2a\xe7\xe0\x82\x41\xe8\x91\xb7\x2a\x59\x3c\xe9\x3d\x08\xe1\xdb\xf7\x77\x1d\xf7\xa2\x76\x01\x2a\x4f\x11\xac\xdf\x6e\xb1\x84\x0d\xb9\xc7\x60\xd4\x7a\x06\xef\x67\x50\x55\x6d\x0e\xea\x3a\x6c\xd0\x7d\x21\xcc\x42\x53\x70\xb5\xb2\x25\xbc\xf3\x0d\x23\x0e\x3b\xb8\x49\x52\x3b\xdc\x45\x14\x7b\xb7\xe3\xc8\xd2\x22\x4f\x2d\x93\xc5\xd2\x41\x80\xb3\x05\xda\xe6\x26\x0a\xc3\x2f\x3b\x6b\xb0\x84\xb3\x97\xef\xa6\x33\xab\x7e\xaa\x16\x0b\xf0\xdd\xe2\x44\x55\x65\x1a\x8f\x3f\xeb\x6c\x15\x19\x17\xf0\xed\xbb\x90\x9c\xb2\xb4\x52\x20\x2b\x04\xb5\x5a\xd7\x7e\xdd\xdb\xeb\xa0\x76\x23\xda\xd4\xd9\x98\x0f\x79\xf2\xa4\xe3\xb1\x0c\xd5\xe4\x20\x12\x93\x84\x9c\x43\x10\x5d\x36\xfd\xe4\x46\x72\x24\x1b\xca\xd2\x10\x82\xa6\x36\xc8\xfb\x29\x93\x13\xf5\xd3\x93\x0b\x90\xbc\xc4\xa1\x3f\x64\x89\x65\xf7\x3b\x61\x49\x86\x7c\x01\x3e\x2f\x62\xb3\x73\xed\xf0\x71\x09\xa4\x28\x90\x25\x41\x37\x35\xeb\x56\x43\x87\x2f\xa7\x94\x25\xf8\x38\x83\x53\x34\x4d\x7b\xb1\x1c\x14\xb0\x3f\xe3\x3f\xb8\x82\x26\x9e\x43\xcb\xd7\x9a\x4f\xd7\xae\xb5\xfa\xa9\x0b\xd7\xfb\x3d\x7c\xc4\x51\x96\x9c\xf5\x5b\x79\xba\xb9\xba\xc5\x31\x03\xa0\x4c\x22\x5f\x91\x18\x3d\xf9\x54\xe0\x7e\xb3\xa6\x25\x4e\x37\xa1\xa6\x91\x70\xfc\xcf\x74\x04\xf5\x61\xfc\x83\x15\xa5\xfc\x4b\x6d\x30\xd4\x08\x51\xa7\x11\x2c\xa4\x28\x2c\xe4\xe7\x52\x1e\x0c\x6d\xcb\xea\xd6\x70\xa4\xd2\x36\x86\xb0\x64\x14\xa4\x7a\xe8\x38\x50\x41\x0d\xb5\x03\x23\x5e\xa2\x4b\xfd\x3f\x83\x77\x55\xd5\xbf\x7d\x5d\xcf\x20\x8a\x22\x5b\xa0\x44\x97\x24\xcb\xf4\x99\x0b\x21\x70\x13\x7e\xdb\x79\x36\xd3\x33\x40\xce\x73\x1e\x9a\x78\x31\x13\xb8\x3f\x86\xb7\xdd\x92\xf5\x75\x3d\x6c\xfb\xe3\x52\xd0\x58\xb7\x45\x57\xd6\xbb\x77\x6f\x9e\x6b\xa5\xbe\xa6\xc4\xd2\xb1\xe4\xeb\x60\x47\x32\xaf\xc1\x1d\x47\xba\xd1\x43\xf6\xa2\x00\xce\x71\x03\x30\x99\x0d\x42\x70\x72\xdd\xac\xde\x20\x4b\xae\x44\x1a\x74\xa8\xaa\x0e\x75\x12\x9b\xe5\xaf\x18\x6f\x27\x96\x07\xa7\xe0\x65\x47\x6c\x4e\xc1\x8e\xae\xa8\x3c\x5f\xb0\xe4\x32\xcb\x05\x06\x93\x95\x74\xbb\x54\x0b\x79\x11\x86\x1b\x81\xb1\x57\xaf\x18\x38\xb4\x72\xd1\xc3\x8e\xa8\x7c\x39\x61\x5b\x51\x1f\x1e\x6d\x27\x53\x6b\xfb\x69\x3e\x87\x2b\x45\x68\x30\x77\x07\x21\xcb\xd5\x6a\xb4\xd1\x9a\xaf\x41\x6b\xb8\xd6\xc3\x71\x22\xb4\xb6\x76\xf9\x4f\xf6\x5d\x0d\x7e\x28\xdb\x8f\x6f\xb2\x03\x49\xba\xa3\xba\xc7\xb4\x92\x89\xc3\xd3\x78\x7d\xc1\x8a\x83\x3a\xd6\xd1\x5e\x7b\x3e\xbc\xae\x23\x3a\xe4\x6b\xfd\x8f\x71\x4d\x7f\xc0\xbf\x62\x4a\x85\x44\xbe\x8b\x33\xdc\xac\x0b\x97\x69\xcd\xed\x67\x0f\x3a\x10\x60\x5f\x85\x4d\x71\x67\x20\xd6\xbb\x38\x3a\x83\xbc\x90\xa2\x6f\xec\x06\x68\x56\xdb\xde\xde\xbc\x94\xe9\x61\x23\x8c\x57\xcc\xca\x1f\x90\x7f\xa2\x5c\xf1\x6b\xc8\xfb\x9f\x9f\xf8\x7b\x38\x31\xcc\xf8\x80\x66\x0e\xb1\xde\x88\x5c\x3a\xa5\x9a\x54\xf6\x73\x2f\x50\x47\xbb\x12\x08\xc9\xcb\xb8\xbd\x0c\xeb\x58\x26\xaa\x68\xb9\x5b\xab\x0c\x9f\x4d\x5a\x1b\xc2\x54\x62\xad\x21\xea\x22\x7f\xdb\x6b\x61\xe5\x40\x73\x60\xcf\xfd\xbd\x0f\xae\xe1\x65\xa7\xaf\xd5\xa8\x4d\xb5\xba\xbd\xfc\x43\xe5\xba\xc5\x75\xe2\x3b\x0c\xad\xa0\x8d\x80\x16\x86\xcb\x81\x88\xae\xf1\xa1\x3d\x27\x67\x6e\x0c\xd5\xba\xd6\x47\x21\x8a\xa2\x30\xd4\xda\xe4\xad\x69\xab\xdf\xeb\xb5\xe4\x6d\xc1\x6f\x2b\x54\x1a\x5b\x47\xa7\x4c\xa9\x94\x49\x8d\x32\xa9\x50\x5e\xad\x4f\xd4\x96\x9d\x3a\xd9\x71\x24\x86\xca\xc1\x55\x25\x53\x3a\xa2\x57\x24\xfb\xbc\x4e\x29\x9b\x81\x16\xb1\x8f\xf0\x88\x06\x1e\x57\x22\xff\x07\x00\x00\xff\xff\xf7\xa5\xf6\xe8\xd6\x15\x00\x00"), }, "/micro_chi.pb.go.tmpl": &vfsgen۰CompressedFileInfo{ name: "micro_chi.pb.go.tmpl", modTime: time.Date(2021, 2, 2, 4, 57, 11, 52217487, time.UTC), uncompressedSize: 1576, compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff\xa4\x54\x5d\x6f\xe3\x36\x10\x7c\x36\x7f\xc5\x96\x85\x01\x29\x27\x53\x3d\xb4\x4f\xee\xdd\x43\x7b\xc8\x01\x41\x9b\x34\x08\x8a\x04\x68\x10\x04\x0c\xb5\x92\x08\x4b\xa4\x4a\xae\x5c\x1b\xb6\xfe\x7b\x41\x49\xfe\x48\x9c\x04\x45\xcf\x80\x41\x93\xdc\xd9\x9d\xd9\x1d\x33\x4d\xe1\x8b\xcd\x10\x0a\x34\xe8\x24\x61\x06\x4f\x6b\x68\x9c\x25\xab\x66\x05\x9a\x59\xad\x95\xb3\xac\x91\x6a\x21\x0b\x84\xcd\xa6\xb0\xd7\x8b\xe2\x77\xe9\xe9\xbc\xc2\x1a\x0d\x81\xf8\xaa\x2b\x84\x2d\xf8\xa6\xd2\xf4\x8b\x73\x72\x0d\xfc\x67\x0e\x5b\xa8\xa4\x27\xd8\x82\xc3\xa6\x92\x0a\x81\x0b\x0e\xfc\x91\x77\x1d\x63\xba\x6e\xac\x23\x88\x18\x00\x57\xd6\x10\xae\x88\x87\xdf\x79\x3d\xac\x06\x29\x2d\x89\x9a\x7e\xe3\x30\xaf\x50\x0d\x17\x9e\x9c\x36\x85\xe7\x8c\x4d\x78\xa1\xa9\x6c\x9f\x84\xb2\x75\x5a\xd8\x99\x2a\x75\x1a\xbe\xcb\x9f\x38\x9b\xd4\x3a\xcb\x2a\xfc\x47\x3a\x84\x37\xc3\xd2\x43\x50\x8f\x50\xce\x3e\xca\x46\x3f\x03\xb4\x46\x7b\x92\x6a\x31\xb3\xae\x48\xfb\x90\x74\xf9\x63\x2a\x1b\xcd\x59\xcc\x18\xad\x1b\x04\x67\x5b\xc2\xdf\x70\x0d\x9e\x5c\xab\x68\xd3\x31\x96\xb7\x46\xc1\x4d\x38\xbf\x92\x35\x46\x8a\x56\x30\x8a\x14\x5f\x86\x35\x86\x68\x50\x92\xc0\x93\xb5\x55\x0c\x1b\x06\xe3\x67\x29\xab\x16\x13\xb0\x0b\x98\x7f\x06\x45\x2b\x71\x1b\x0e\xa2\x5d\x99\x4d\x17\x8b\x11\x1b\xef\x31\x0e\xa9\x75\xe6\x00\x65\x7b\x12\x58\x68\x4f\xe8\x22\x07\x67\xaa\xd4\xe2\xb2\x5d\x25\x50\x82\x36\x84\x2e\x97\x0a\x37\x5d\x02\xd8\x78\xb8\x7f\x38\xdb\x37\x40\x9c\x9b\xac\xb1\xda\x50\x0c\xe8\x9c\x75\xc7\xdc\x02\xa7\x71\x1c\x03\xaf\x3f\xf2\xa8\x8c\xd9\x3e\x40\xe7\xb0\x14\x57\x6d\x7d\x89\x54\xda\x2c\x8a\xe1\x13\x7c\x3c\xc2\xbf\xe0\x9b\xd7\x24\xce\x43\x89\x3c\xe2\xa5\x34\x59\x85\x0e\x4a\xe9\xc1\x58\xa8\xfb\x04\x7e\x0e\xd3\x3f\x79\x02\xe5\x41\x6a\x77\x28\x96\x5b\x07\x8f\x81\x7f\xcf\x4a\x9a\x02\x7b\x2d\xa7\xe5\x74\xb6\x0a\x21\xa3\x77\xc4\x85\xc9\x70\x15\x61\x23\xc2\x74\x92\x60\xcb\xf8\x14\x92\xf7\xa8\x40\x7f\xbb\x85\x0a\xcd\x2e\x3e\x86\x4f\x9f\xfb\xab\xd3\x32\xef\xa8\xd3\x66\x29\x2b\x9d\xc1\x71\x7b\xc1\xc8\x1a\xe7\x30\xf5\x3c\x68\x18\x92\x9f\xe4\xec\x4e\x4e\x02\x2a\xa8\x19\x21\xf7\x3a\x5b\x7d\xf8\x38\x7f\x38\x89\xab\x43\xd0\x52\x0c\x93\xf8\x75\xdd\x3b\xd1\xbc\x5a\x43\xe7\xf0\x5d\x2d\x2e\xfc\x6d\xa0\x18\xc5\x41\x70\xd8\xfe\x85\xce\x46\xf1\xff\xd3\x39\x4e\x33\x19\xe7\x08\xd3\x30\x54\x82\xdc\xb6\x26\xe3\x09\x98\x37\xb4\x9e\x1a\xa5\xdc\xfd\x13\x6a\x71\xb1\x33\x6d\x14\x8b\x28\xb8\x3b\x0a\x2f\x84\xb8\x41\xdf\x58\xe3\xf1\xce\x69\x0a\x15\xcf\xc6\xd3\xbf\x5b\xf4\x14\xbf\xae\xd6\x2e\xbe\x49\xd6\x1c\xa6\xdf\x7f\x58\xf2\xe4\x39\xa9\xff\x32\xbc\xd1\xb2\x63\x57\x8e\x6c\x3b\xce\xe9\x3d\x5a\xe2\x4e\x53\x19\x1d\x1e\xad\x7e\xff\xf2\x71\x38\x58\x29\x1e\x53\x7e\x0d\x9d\x1a\x0a\xf6\x97\xd7\x92\xca\xfb\x1f\x1e\x12\x70\xe5\x7b\x8c\x3b\x36\x99\x4c\xc6\x56\x18\x5d\xb1\x8e\xfd\x1b\x00\x00\xff\xff\xcb\x9f\xcd\xc3\x28\x06\x00\x00"), }, "/micro_gorilla.pb.go.tmpl": &vfsgen۰CompressedFileInfo{ name: "micro_gorilla.pb.go.tmpl", modTime: time.Date(2021, 2, 2, 4, 57, 24, 265846647, time.UTC), uncompressedSize: 1261, compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff\xa4\x53\x5d\x6f\xd3\x30\x14\x7d\xae\x7f\xc5\xc5\xa8\x52\xb2\x65\x0e\x13\x6f\x65\x7b\x00\xb4\x89\x49\x30\xa6\x09\x0d\x89\x69\x9a\xbc\xe4\x26\xb1\x1a\x7f\x70\xed\x54\x9d\xda\xfc\x77\xe4\x34\x1b\x43\x19\x08\x81\x5f\x5a\xdb\xe7\xde\x73\x8e\xcf\x4d\x9e\xc3\x7b\x5b\x22\xd4\x68\x90\x64\xc0\x12\xee\xee\xc1\x91\x0d\xb6\x38\xa8\xd1\x1c\x68\x55\x90\x65\x4e\x16\x4b\x59\x23\x6c\x36\xb5\xbd\x58\xd6\x1f\xa5\x0f\x27\x2d\x6a\x34\x01\xc4\xa9\x6a\x11\xb6\xe0\x5d\xab\xc2\x5b\x22\x79\x0f\xfc\x0d\x87\x2d\xb4\xd2\x07\xd8\x02\xa1\x6b\x65\x81\xc0\x05\x07\x7e\xcb\xfb\x9e\x31\xa5\x9d\xa5\x00\x09\x03\xe0\x95\x0e\x3c\xfe\x1a\x0c\x79\x13\x82\x1b\x36\x84\x55\x8b\xc5\xee\xc2\x07\x52\xa6\xf6\x9c\xb1\x19\xaf\x55\x68\xba\x3b\x51\x58\x9d\xd7\x96\x54\xdb\xca\x5c\x77\x6b\xce\x66\x83\xca\x5b\xe9\x14\x3c\xc5\x74\x46\xf9\x20\x8b\xe5\x81\xa5\x3a\x1f\x20\xf9\xea\x75\x2e\x9d\xe2\x2c\x65\xac\xea\x4c\x01\x97\x58\x2b\x1f\x90\x12\x82\x3d\xdd\xad\xc5\xa5\xed\x02\x52\x06\x0d\x28\x13\x90\x2a\x59\xe0\xa6\xcf\x00\x9d\x87\xeb\x9b\xbd\x47\x1a\x71\x62\x4a\x67\x95\x09\x29\x20\x91\x25\xd8\x30\x18\xd7\x0a\x16\xc7\x30\x1a\x10\x57\xb2\xed\xf0\x73\x95\x34\x29\x7b\x04\xa8\x0a\x56\xe2\xbc\xd3\x9f\x30\x34\xb6\x4c\x52\x38\x82\xc3\x27\xf5\x0f\x8b\x30\x74\x64\xa0\xd2\x41\x9c\x44\x8a\x2a\xe1\x8d\x34\x65\x8b\x04\x8d\xf4\x60\x2c\xe8\xa1\x81\x5f\xc0\xfc\x0b\xcf\xa0\x49\x1f\x5b\xf4\x3f\xc9\x2a\x4b\x70\x1b\xf5\x0f\xaa\xa4\xa9\x71\xf0\x32\xa5\x53\xe5\x3a\x42\xc6\xd7\x16\x67\xa6\xc4\x75\x82\x4e\x9c\x4b\x8d\x59\x0c\x2f\x9d\x96\x54\x43\x55\x94\xbf\xdd\x42\x8b\xe6\x01\x9f\xc2\xd1\xf1\x70\x35\xa5\xf9\x83\x3b\x65\x56\xb2\x55\x25\x3c\x7d\x5e\x30\x52\xe3\x02\xe6\x9e\x47\x0f\xbb\xe6\x93\x9e\xfd\xe4\x24\x56\x45\x37\x63\xc9\xb5\x2a\xd7\xfb\x87\x8b\x9b\x09\x4e\x47\xd0\x4a\xec\x92\x78\x77\x1f\xb1\x89\x79\x96\x43\x55\xf0\x42\x8b\x33\x7f\x15\x25\x26\x69\x34\x1c\xb7\xdf\x90\x6c\x92\xfe\x9b\xcf\x31\xcd\x6c\xcc\x11\xe6\x31\xd4\x00\x95\xed\x4c\xc9\x33\x30\xbf\xf1\x3a\x1d\x94\x26\x03\xbb\x8c\x4e\xb4\x38\x7b\x18\xda\x24\x15\x49\x1c\xf0\x24\x7e\x53\xe2\x12\xbd\xb3\xc6\xe3\x57\x52\xc3\x74\xef\x8d\xa7\xdf\x3b\xf4\x21\x7d\xde\xad\x5d\xfe\x97\xad\x05\xcc\x5f\xee\xaf\x78\xf6\xab\xa8\xbf\x09\x8f\xc4\x87\xa1\xc5\x69\x94\x8f\x4e\x5c\xc8\xd0\x5c\xbf\xba\xc9\x80\x9a\x74\x8c\xca\xc7\xf3\xdd\x5f\x21\x44\x3a\x84\x9c\x4c\xe6\xa3\x67\xb3\xd9\x6c\x54\x6a\x54\xcb\x7a\xf6\x23\x00\x00\xff\xff\x0f\xc4\x43\xa4\xed\x04\x00\x00"), }, } fs["/"].(*vfsgen۰DirInfo).entries = []os.FileInfo{ fs["/e3t0cmltU3VmZml4ICIucHJvdG8iIC5GaWxlLk5hbWV9fV9taWNyb19ncnBjLnBiLmdvLnRtcGw="].(os.FileInfo), fs["/e3t0cmltU3VmZml4ICIucHJvdG8iIC5GaWxlLk5hbWV9fV9taWNyb19odHRwLnBiLmdvLnRtcGw="].(os.FileInfo), fs["/e3t0cmltU3VmZml4ICIucHJvdG8iIC5GaWxlLk5hbWV9fV9taWNyby5wYi5nby50bXBs"].(os.FileInfo), fs["/micro_chi.pb.go.tmpl"].(os.FileInfo), fs["/micro_gorilla.pb.go.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 }