328 lines
142 KiB
Go
328 lines
142 KiB
Go
|
// Code generated by go-bindata. DO NOT EDIT.
|
||
|
// sources:
|
||
|
// _assets/tests/qr/QRWithLogo.png (13.122kB)
|
||
|
// _assets/tests/qr/defaultQR.png (12.007kB)
|
||
|
// _assets/tests/qr/status.png (9.398kB)
|
||
|
|
||
|
package images
|
||
|
|
||
|
import (
|
||
|
"bytes"
|
||
|
"compress/gzip"
|
||
|
"crypto/sha256"
|
||
|
"fmt"
|
||
|
"io"
|
||
|
"os"
|
||
|
"path/filepath"
|
||
|
"strings"
|
||
|
"time"
|
||
|
)
|
||
|
|
||
|
func bindataRead(data []byte, name string) ([]byte, error) {
|
||
|
gz, err := gzip.NewReader(bytes.NewBuffer(data))
|
||
|
if err != nil {
|
||
|
return nil, fmt.Errorf("read %q: %w", name, err)
|
||
|
}
|
||
|
|
||
|
var buf bytes.Buffer
|
||
|
_, err = io.Copy(&buf, gz)
|
||
|
clErr := gz.Close()
|
||
|
|
||
|
if err != nil {
|
||
|
return nil, fmt.Errorf("read %q: %w", name, err)
|
||
|
}
|
||
|
if clErr != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
|
||
|
return buf.Bytes(), nil
|
||
|
}
|
||
|
|
||
|
type asset struct {
|
||
|
bytes []byte
|
||
|
info os.FileInfo
|
||
|
digest [sha256.Size]byte
|
||
|
}
|
||
|
|
||
|
type bindataFileInfo struct {
|
||
|
name string
|
||
|
size int64
|
||
|
mode os.FileMode
|
||
|
modTime time.Time
|
||
|
}
|
||
|
|
||
|
func (fi bindataFileInfo) Name() string {
|
||
|
return fi.name
|
||
|
}
|
||
|
func (fi bindataFileInfo) Size() int64 {
|
||
|
return fi.size
|
||
|
}
|
||
|
func (fi bindataFileInfo) Mode() os.FileMode {
|
||
|
return fi.mode
|
||
|
}
|
||
|
func (fi bindataFileInfo) ModTime() time.Time {
|
||
|
return fi.modTime
|
||
|
}
|
||
|
func (fi bindataFileInfo) IsDir() bool {
|
||
|
return false
|
||
|
}
|
||
|
func (fi bindataFileInfo) Sys() interface{} {
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
var __assetsTestsQrQrwithlogoPng = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x7c\xbb\x55\x54\x5c\x6d\xb7\x34\x4a\xa0\x81\xc6\xdd\x1d\x1a\x08\xee\x12\xdc\x5d\x83\xbb\xbb\xbb\x43\x68\xdc\x49\x13\xdc\x9d\xa0\xc1\xdd\xdd\x21\x58\x82\xbb\xbb\x3b\x67\xbc\xef\xd8\xfb\xfb\xce\xbe\xf9\x2f\xd6\xcd\xba\x5a\xa3\xd6\x7c\xaa\xea\x99\x35\x67\x94\x8a\x92\x34\x0a\x22\x21\x22\x14\x14\x14\x8a\xac\x8c\xc4\x57\x28\x28\xa8\x91\x7f\x1e\x20\x34\x14\x14\x14\x25\xdf\x97\x51\x28\x28\x0e\x04\x59\x09\x51\x75\xef\xac\xd3\x00\x2f\x7f\xec\xa5\xc6\x6e\x4b\x2b\xcb\x17\x5b\x0d\x51\x1c\x84\x60\x11\x38\x90\x5a\xac\x3c\xab\xe4\x10\x27\x0c\x1b\x3a\xf8\x14\x9d\xb8\x1c\x06\x95\x77\x9a\x73\x45\x74\x37\x1d\x88\x99\x71\x96\xba\xa9\x22\x3c\x84\x86\x0c\x60\x1d\xe2\x0d\xff\x06\x3c\xfb\x14\x0d\x0b\x37\x17\x03\xc0\x94\x64\x40\x9a\xd7\xd4\xb5\x39\x69\xd8\x18\x56\x08\x5c\xa2\xad\x5f\x6e\xe7\xd7\x65\x1a\x9c\x78\x60\x59\x9b\x4d\xe7\x7f\x58\xff\xc2\xff\xb0\xaa\x46\x27\x8a\xde\x87\xfd\xd9\xda\xa6\x8c\xf4\x16\x0a\xfb\x95\x37\x9f\x35\x05\x9c\x28\x62\xc2\x08\x4b\x11\xdc\xa7\x8d\x28\x06\x1d\x56\x8b\x1d\x0a\x40\x34\xa3\x03\x22\x60\x0f\x7d\x45\xc7\xfc\x1c\x5b\x4c\x0e\x52\xc1\x97\x17\x95\x11\xd9\xfa\x58\x9b\x99\x71\x3e\xfa\x4d\x1d\xbf\x73\xbe\xe4\xdd\x67\x6a\x66\xc6\xef\x7e\x88\xce\xdb\xb9\xe6\xd8\xed\x7d\x45\x39\x5e\x67\xaa\x56\xfc\xd5\xc2\xdc\x5c\x42\x4a\x8a\x12\x7c\x7c\x7c\xbc\xbd\x6d\x6a\x6e\x9c\x67\xc3\xc7\xc1\xa1\x56\x3a\xd7\x38\xff\x4d\x27\xa5\xd3\xfb\xaa\x60\xcd\x51\x5a\x0b\x92\x94\xb4\xd2\x60\x13\xd2\x5a\x5c\x56\x56\xd6\xd6\xb6\xbc\x14\x44\x17\x7d\xfc\xbb\x38\xa6\xd7\x18\xe8\x8f\x3c\x38\x38\xa8\xa1\xa1\x11\x3c\x07\x8f\x00\x01\xf1\x7b\x9d\xdb\xb3\xa7\xb3\x72\x02\xd6\x8b\xd4\xb4\xb5\x79\x4d\x07\x80\x2d\xb6\xf9\x52\x4a\x4a\x53\x6d\x1e\x27\x40\x30\x30\xf1\x7d\xb5\xd5\x4d\x3c\x02\xb5\xaa\xa6\x06\x2f\xd3\xb6\xd1\xf7\x66\x7f\x32\x04\x1e\x4d\x0a\xc0\xef\x75\x9e\xc5\x6a\x02\x3d\x7d\x63\xca\xc1\xc7\xe7\xbb\xd1\x15\x40\x40\x40\xc0\xc4\xb5\xd9\xd6\xd6\x46\x21\x1e\xae\xdf\xe1\x8d\x61\x90\xce\xef\x75\xfe\xfa\x74\x13\x30\xeb\x46\xcc\xe3\xb2\x3d\x90\xcd\xef\xf5\x4c\xc9\x9a\x39\xd9\xee\x75\x71\xbe\xdc\x68\xb7\x69\x96\x26\xe0\x73\xdd\xe4\xb0\xb2\x1b\xcb\xf7\x19\x1f\x39\xdc\xa0\xdd\x53\xf0\xe5\xb4\x1e\x9f\x50\xd8\x88\x31\x7e\xe7\xd4\xd3\xcf\xcc\xcc\x4c\x3e\x61\x92\x56\x9f\x39\x95\xd1\x37\x7e\x87\xf0\x42\xd4\xbe\x7c\xc1\xf6\xf6\x0e\xb3\xb7\xce\xde\xcc\x8c\xca\x94\xb1\x4a\x33\xe6\xdd\x11\x03\x08\xde\x74\xe6\xdd\xc4\xf4\x11\x20\x7d\x65\x62\x4e\x45\xaa\x2f\x02\xc9\x8e\x91\x50\x74\xf5\xab\xf4\x5c\xd0\x94\x8c\xfc\x07\xea\xc0\x26\x31\x04\x20\x78\xc6\xb6\x31\x18\x49\x24\x90\x02\x08\x5e\x39\x1b\xf2\x7f\x82\x15\x75\x6e\xd5\xc7\x17\x9d\xb9\x58\x94\x85\x14\x19\xd6\x48\x27\xcc\x1c\xb9\x33\xa7\x8e\x6f\x39\x1b\x3b\xce\xda\x36\xd2\x2f\xa0\x09\x7f\x69\x5e\x89\x7b\xba\xe6\x27\x46\x6d\xd4\xad\x5a\x3a\x19\xa4\x11\x45\xe7\x54\x44\x02\xa3\x3f\xd2\x7f\x07\xfd\x9c\xb5\x56\x99\x33\x66\x05\xb4\xf6\x71\x2a\x56\x2c\x1c\xe3\xba\x47\x6e\xf3\x4e\x9d\x79\x8e\xb7\x49\x92\x9a\xd9\x34\x2e\x4b\xc6\xe0\x8e\x42\x18\xae\x2e\xbd\x05\x5a\x5b\x5b\x4b\x95\xb2\xaf\x25\x8d\x1b\x75\x37\x7c\x4f\xaa\x56\x9a\x9d\x5e\x28\xad\xed\xed\x07\x72\x99\x7c\x1f\xce\xdf\x16\xb4\x8c\xf2\x35\x3c\x79\x89\xe5\x53\x18\x7f\x56\x56\xda\x43\xd2\xc8\x23\x1b\x1a\x1a\x1e\x36\x82\x36\xec\xb9\x63\xb4\x78\xe3\xf5\x1a\xac\x67\x6b\xcd\x86\xfd\xef\x6a\xe6\x8e\x2c\x27\x33\x16\xda\x3c\xec\xdc\x61\x83\x40\xb7\x52\xd3\x39\x82\x78\x8c\xda\x22\x73\x0d\x7f\x40\xb2\xec\x4c\x4c\x8a\x9a\x68\x98\xee\x27\x8b\x0e\xbd\x60\xd8\x44\x9d\x90\x81\xbf\xf5\x56\x1b\x01\x0f\x06\x3a\x1d\xd4\x2f\x31\x0b\x8d\x76\x4b\xa7\xa7\xf6\x4f\x66\x76\x84\xcc\xa9\x0c\xf4\xf4\x88\xe2\x9b\x57\xde\x4a\x59\xbc\xaa\xea\xea\xf3\xa7\xd2\x0d\x6d\xf0\xf3\x95\xe5\xe5\x19\xfc\x5e\xe7\x7b\xe3\xa9\x01\xb3\x4b\xf3\xf3\x3d\x17\x49\xe4\x40\x3c\x16\x43\x01\xd7\xdd\x48\x96\xe7\x91\x91\x91\xc1\x18\x3c\x2b\x0b\x0b\x2e\xbf\x50\x36\x36\xb6\xb7\xe7\x3b\xb5\x8a\x85\xc9\x73\x51\x70\x64\x64\x64\x57\xc0\x4b\x53\x9e\x9c\xa4\xb9\x97\xce\x6d\x74\xec\xdd\x8e\x04\x52\x34\xc3\xe4\x89\xe2\x7f\xcb\xdc\x87\x3d\x85\xa7\xda\xa8\x3b\x1e\xc3\xbe\x13\x83\x88\x88\xdf\x7a\x86\x1c\x54\xc6\x0d\xa3\x2c\x78\xa7\x9e\xca\x6c\x30\x33\xdc\xda\xd6
|
||
|
|
||
|
func _assetsTestsQrQrwithlogoPngBytes() ([]byte, error) {
|
||
|
return bindataRead(
|
||
|
__assetsTestsQrQrwithlogoPng,
|
||
|
"_assets/tests/qr/QRWithLogo.png",
|
||
|
)
|
||
|
}
|
||
|
|
||
|
func _assetsTestsQrQrwithlogoPng() (*asset, error) {
|
||
|
bytes, err := _assetsTestsQrQrwithlogoPngBytes()
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
|
||
|
info := bindataFileInfo{name: "_assets/tests/qr/QRWithLogo.png", size: 13122, mode: os.FileMode(0644), modTime: time.Unix(1676467835, 0)}
|
||
|
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x56, 0xb9, 0xe1, 0xa9, 0xcc, 0xa5, 0x60, 0x86, 0x32, 0xf9, 0x6c, 0x4e, 0x4d, 0x8c, 0x99, 0x1e, 0xe8, 0x2c, 0x40, 0x8e, 0xd3, 0x60, 0x11, 0x8b, 0xf6, 0x93, 0x59, 0xe1, 0xe0, 0xf5, 0x21, 0xfc}}
|
||
|
return a, nil
|
||
|
}
|
||
|
|
||
|
var __assetsTestsQrDefaultqrPng = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x74\xba\x45\x58\x1c\x61\xdb\x35\x88\x05\x1a\x77\xf7\x10\xdc\x13\x2c\xb8\xbb\x43\x70\x77\x77\x77\x27\xc1\xdd\xb5\x71\x77\x09\x8d\x3b\x01\x82\xbb\xbb\x5b\xe3\xd6\xcc\x95\x77\xde\xef\x9b\x7f\x31\xff\xa2\x36\xb5\xaa\xeb\xa9\xf3\x1c\xb9\xef\xf3\x4b\x59\x51\x0a\x15\x89\x08\x09\x0a\x0a\x0a\x55\x46\x5a\x5c\x15\x0a\x0a\x6a\xf4\xdf\x03\x80\x81\x82\x82\xfa\xcc\xfb\x7d\x0c\x0a\x8a\xa5\x56\x46\x5c\x44\xdd\x2b\xe7\xbc\xcb\xd7\x0b\xe7\x47\xd6\x93\x92\xfb\x8f\xfb\xae\x39\x19\x69\x6c\x31\x2c\xac\xe0\x30\x02\xe9\xfd\xcf\x06\xf0\xa8\xf8\x07\x34\xf5\x0c\xd1\x83\x98\xce\x03\x0a\xc6\xf0\xee\xe2\x46\xc3\x9c\x13\x21\xc1\x22\x80\xfe\x98\x89\x90\xed\x6f\xed\x6c\x41\xbb\xd4\xbb\x44\x78\xfd\x9f\xdb\x85\x17\x83\x60\xa0\xb1\x44\x4d\xb0\xc2\xbe\x10\x4f\xd6\x24\x2b\x6e\x81\xaa\x4e\x1f\xf9\x2b\xde\x73\xaf\x40\x65\x27\x73\xfa\x27\x0e\xc2\x35\x53\x86\x39\xbb\x35\x6a\x65\x95\x5b\xea\x5d\x47\x39\x8f\xfd\x80\x90\x69\x29\x49\x9a\x75\x3a\x87\x47\x28\xb3\x80\xbc\xd1\x28\x6a\x6c\x4c\xb3\xa1\xa4\x5f\x80\x46\x93\x31\x71\x38\xed\x06\xb3\xcf\x21\xd5\x5a\x5f\x31\x45\x34\x98\x32\x7f\x52\x30\xa6\xc9\x8b\x27\xe0\xca\xd1\x7c\x66\xdb\xff\xb8\xbc\xbc\xac\xad\xae\xde\xe7\xb9\xd4\x88\x2d\x8b\x1f\x33\x93\x55\x52\x42\x37\xd8\xb4\x68\xfa\xa1\xae\xee\xd5\x65\xd0\x50\xa1\x4c\xf7\xf5\xeb\x57\x13\x13\x93\x04\x61\x5d\x5d\x5d\x05\x05\xd4\x55\x23\x23\x6d\x2e\x46\x46\xb9\xa2\x99\x30\xdb\x5e\x83\xba\x36\x20\xb0\xdf\xa2\xa9\x90\x6a\x6c\x6c\x0c\x16\x1e\x85\x22\x47\x55\x5f\x7f\x63\x71\xf1\xf0\x2a\x90\x30\x82\x90\xcb\x2e\x43\xb1\x0c\x39\x00\x85\x93\x93\xb3\xa6\xa6\xa6\x6f\x3c\x12\xa0\x30\x27\x16\x89\xc6\x49\x80\x02\x47\x18\xd5\x59\xa2\xa6\xa1\xf1\xb0\x9f\xac\xd4\x5f\x86\x67\xed\xe2\xea\xba\xe5\x7b\x25\x10\x05\x0c\x49\xe9\xf1\xba\xd9\x6d\xb6\x9e\xeb\xe8\xe8\x18\x2c\x55\xad\x58\x6f\x73\xdc\x4a\xa1\x57\x4b\x10\x56\x51\x99\xe9\xf4\xbe\xf5\xca\xc3\xcf\xf6\x7f\x7d\x10\x70\xd9\x97\x96\x94\x94\x6c\x87\x5f\x5f\x59\xf9\xee\x7e\x3a\x1f\x15\x85\xe4\x66\x76\xf0\x27\xb5\x4a\xa3\x06\x4c\x3b\xe5\xbc\xfe\xf6\x7c\x1b\x1d\x15\xf5\x86\x48\x10\x3b\xbc\xbb\xbb\xbb\x33\x10\x89\x20\x14\x11\x8e\x8c\x4f\xc6\xe3\x24\xfc\xa7\x5c\x4c\xb4\x6c\x8e\x94\xdf\xeb\xba\x0f\x81\xfc\xcb\x28\x9c\x97\xa9\x33\x89\x65\xd3\x4a\xb5\x86\x6d\xfb\xc8\x21\x7e\xd9\x1c\xbd\x4c\xde\x1e\x8f\x2d\xba\x89\x5a\x85\x3a\xb0\x2d\xfd\xe7\xd2\x59\x8b\x4e\x8d\x74\xc3\xbc\x0d\xe7\x8b\xa7\x16\x06\x5c\x9f\x43\xdb\x80\xd4\xbe\x07\x68\xac\x8c\x27\x57\xb1\x9f\xaa\xc4\x5a\xe7\x14\x30\x46\x2a\x19\x12\x44\xce\xbe\x32\xfc\xdf\xb3\x0e\x83\xca\x17\x45\x89\x02\xce\xdb\xb8\x5f\xc3\x2b\x0b\xc3\x89\x38\xfd\xd6\x0b\xe3\xee\xa1\x00\x28\x96\x25\x1b\x01\xe0\xdf\xdc\x66\x39\x6a\x16\x6c\x66\xa8\x39\x88\x62\xe7\x4e\x9a\xd7\x2e\xc2\xd4\xe6\x6d\x5a\x44\x6f\x3e\x20\xfb\x7a\x2c\xf8\x3b\x93\x8e\x6d\x6b\xa9\xb2\x25\x1a\x55\xb8\xd9\x38\x12\x0d\x4c\x8c\x00\xd1\x6b\xa5\x5f\xa5\xd6\xa9\xb2\xe1\x59\xbc\xb9\x2c\x83\xb4\x13\x8d\xd5\xaa\x15\x28\x45\x62\x38\x23\xce\x2c\xe9\x72\xb3\xf4\xb3\x38\x72\x35\x1a\x75\xba\x6d\x8a\x49\xfa\x32\xc3\x17\x1e\x47\x47\x47\x81\xaf\x17\x6d\x10\xb8\x09\x8b\xdb\xaa\xba\x6e\x9f\xbd\x61\xd4\x40\x18\x8d\xaa\x54\xfe\x36\xaf\xfd\x44\xa9\xee\xa7\x5d\xe4\xbb\x94\x0b\x8f\xd7\x08\x54\x62\x1d\x1d\x1d\x07\x06\x79\x95\xf9\xde\x60\xd8\xad\x80\x57\xfb\xa2\x19\x3a\xb2\x1d\x1e\x87\x8d\x0e\xf7\x32\xc5\x5c\xf0\x52\x8f\x64\x91\xf7\x45\xcb\xd2\xee\xde\xde\x0c\x26\x38\x65\x3a\x7d\xa6\x48\xaa\x4e\xbb\x29\xc2\x5c\xbb\x41\x66\xee\xae\x37\x18\x96\xfa\x3e\x88\xdd\x64\xf0\x27\xa7\xed\xa2\xb0\x39\x6a\x22\x18\x0c\x5e\x32\x0c\xd4\x4f\x72\x90\x09\x30\x45\x25\x17\xf4\x7b\x7b\xba\x99\x1d\xf1\x70\xcd\x51\xb4\xb4\xb3\x63\x12\xe9\xbd\xf0\xc8\xff\xee\x5a\xda\xd1\xd1\xb1\x94\x7e\xbc\x04\x6b\xd3\xda\xda\x5a\xab\xf7\x1b\xfc\x27\x95\x11\xb2\xbf\xb6\xb6\xb6\xf3\x2a\x83\x11\x16\x15\x15\x55\xd7\xfd\xf2\x27\xdf\x4f\x5e\x7e\x42\xd7\xb1\x2b\x35\x37\x77\xe3\x0c\x73\x78\x68\x28\x96\x98\x5b\xb1\x42\xfd\xa1\x03\x21\xe6\xf8\xf8\xb8\xc1\x74\x24\xc2\x59\x46\x42\xdd\x53\x06\xdc\x18\x7b\x7f\xfb\x25\xe6\x50\xf6\xca\x27\xf9\x1f\x8a\xff\x03\xf6\xe2\x15\xad\xee\xf9\xc5\x45\x2c\x14\x5d\x43\x79\x9a\xb9\xfd\xb1\xe4\xc4\xc2\x55\xe4\x4b\xd0\
|
||
|
|
||
|
func _assetsTestsQrDefaultqrPngBytes() ([]byte, error) {
|
||
|
return bindataRead(
|
||
|
__assetsTestsQrDefaultqrPng,
|
||
|
"_assets/tests/qr/defaultQR.png",
|
||
|
)
|
||
|
}
|
||
|
|
||
|
func _assetsTestsQrDefaultqrPng() (*asset, error) {
|
||
|
bytes, err := _assetsTestsQrDefaultqrPngBytes()
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
|
||
|
info := bindataFileInfo{name: "_assets/tests/qr/defaultQR.png", size: 12007, mode: os.FileMode(0644), modTime: time.Unix(1676467835, 0)}
|
||
|
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x34, 0xfd, 0xc9, 0x88, 0xce, 0xea, 0xea, 0xa5, 0x97, 0x8b, 0x82, 0x5f, 0x40, 0x68, 0x75, 0xb8, 0x8, 0x50, 0xcd, 0xea, 0x7e, 0xd8, 0xba, 0xb7, 0x30, 0xa8, 0x4, 0x64, 0xb3, 0x8f, 0x33, 0x3a}}
|
||
|
return a, nil
|
||
|
}
|
||
|
|
||
|
var __assetsTestsQrStatusPng = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x7c\xb9\x07\x50\x13\xef\xb7\xc7\xbd\x09\x2d\xf4\x22\x52\x14\x30\xd2\x6b\x42\x93\xde\xa4\x0a\x48\xaf\xd2\x23\x84\x80\xb4\xd0\x43\x0f\x4d\x50\x10\x44\x50\x90\x8e\x28\x4d\x90\x08\x8a\x74\x42\xa8\xd2\xab\x80\x48\x53\x11\x50\x7a\x0f\xf5\x1d\x7f\xf7\xff\xbb\xf7\x9d\x77\xee\x7b\x9f\x99\x9d\xd9\x3d\xfb\xfd\x9c\xe7\x3c\xe7\x3c\xb3\xbb\x67\xf6\x91\xb1\xa1\x0e\x2d\xd5\x35\x2a\x00\x00\x68\x75\xef\x68\x9a\x02\x00\x08\xf8\x7b\x40\xc8\x01\x00\xb0\xf3\x2b\x73\x05\x00\x80\x3d\x40\xcb\x3a\xc0\xcc\xc7\x35\x20\x18\xe1\x87\x04\x6e\xbb\xf8\xdc\x47\x42\x75\xbd\x10\x28\xa4\x29\x12\xe1\x12\xe2\xfb\x19\xa9\x04\x00\x24\x82\xee\xe6\xd6\x01\xd6\x06\x77\x15\x9c\x7d\xbc\x60\x88\xbf\x1a\x18\xc6\x0b\x0d\xfc\x1d\x4a\xaa\x18\x34\xc2\xd9\x03\x19\x00\xbd\x8f\x44\xb9\x7b\x2b\x73\x6f\x35\xb5\x71\x43\xdd\x5d\x94\xb9\xad\x6e\x19\x88\x1b\xa0\x35\x90\x6e\xee\x77\x42\xfd\x90\x66\xa1\x86\xe6\xce\xa1\x1e\xce\xf2\x2e\xdc\xaa\x2a\x50\x25\x8c\x02\xc6\x0b\xed\x85\x0c\x40\x40\x31\x5e\x9e\xde\xfe\x0a\x18\x65\xee\x7f\xfc\x2a\x78\xfb\x2b\xfc\x35\xc3\xb9\xa1\xff\x48\x02\x3c\x94\xb9\xff\x2b\x28\x6b\x03\x63\xa8\x86\x8f\x1f\x12\x7a\x0b\x26\x23\xe6\x2c\x21\x25\x07\x95\x95\x87\x49\xdc\x92\x97\x93\x94\x16\x85\x4a\x8a\x4b\xc8\xc0\xc5\xe5\xe1\x12\xd2\x62\xe2\x12\x0a\xe2\xf2\x0a\xe2\x12\xd0\xff\x0c\x6e\x15\xa8\x92\x9f\x8b\xab\x82\xa9\xa6\xf6\x7f\xe6\xf2\x73\x71\x55\xe6\x76\x0b\x08\x40\x2b\xc0\xe1\xc1\xc1\xc1\xb0\x60\x29\x98\x8f\x1f\x0a\x2e\x21\x2f\x2f\x0f\x17\x97\x84\x4b\x4a\x8a\xf9\xb9\xb8\x8a\xf9\x87\x78\x07\x20\x30\x62\xde\xfe\x3c\xff\x7a\xd0\x44\xfa\x3b\xfb\xb9\xa3\x03\xdc\x7d\xbc\xa1\x7f\xaf\x11\xf7\x7d\x02\x03\x94\xb9\xb9\xff\x5d\x82\x17\xda\xc0\xe0\xbf\x1d\x7b\xfb\xff\x27\x51\xce\x3e\x5e\x70\x0c\x02\x0d\x97\x80\x89\xc3\xbd\xbc\xe0\xff\xaa\xfd\x03\x4c\x91\xae\xff\xb7\xda\xdf\x3c\x04\x8d\x84\x9b\x22\xfd\x7d\x02\xfd\x9c\x91\xa6\x48\x57\x9e\xff\xd7\x54\xff\x37\xfa\x57\x88\x36\x30\x50\xd0\xf4\x71\x0e\xf4\x42\x7a\x07\xe8\x6a\x2a\x73\x63\xbc\xd0\x30\x17\x77\x17\x85\x7f\x52\x26\xab\x7e\x4b\x56\x5d\x5e\x56\x42\x42\x4b\xf6\xb6\x8c\xb8\x96\x96\xa4\xf8\x6d\x0d\x4d\x49\x4d\x59\x59\x4d\xc9\x7f\x59\x5d\x6f\xff\x00\x84\xb7\x33\xf2\x5f\xd6\xfd\x7f\x58\xe9\xff\x93\x55\xd0\xf0\x43\x22\x02\x7c\xfc\xcc\x7d\x7c\x3c\xff\xad\x9e\xb1\x9b\x4f\x80\x8f\xbf\x9b\x0f\x1a\xaa\xa1\xf1\xb7\x5a\xb2\x50\x41\x03\x84\xb3\xbb\xf7\x5f\xa3\xd0\xdf\x04\xff\x27\x5e\xa4\x9f\x7b\x10\xd2\x45\xdb\xcf\xc7\x0b\xfa\x4f\x86\x14\xdc\xff\x97\x28\xa4\xe5\xa4\x64\xc5\xd5\xe5\xa4\x64\xd5\xe5\x6f\xfd\xef\x51\xfc\x17\xeb\xf2\xbf\xac\xfe\x3f\xac\xf4\xff\x2f\x0b\x57\x81\x2a\xc1\xff\x3f\xe5\xfe\xd7\x64\xaa\xa9\xfd\xf7\xf4\xbf\x37\xaf\x0a\xf4\x7f\xb6\x3f\xd2\xdb\x45\x99\xdb\x8f\x5b\x55\x45\x43\xbf\x72\x06\x00\x6e\xf2\xea\x6a\xde\x36\xc7\x7c\x5d\xcf\x0b\x09\x7f\x3e\xf9\xb2\xa7\xe0\x9b\xa8\xec\xf5\x19\x2b\xc8\x53\x35\xc2\x0b\xe0\xf6\xab\x32\xa8\x7e\x34\xd8\xd0\x37\xd6\x32\x8e\x5e\xc1\xc6\x2b\xc1\xf0\x2d\xe7\xa7\xb5\x1b\x52\x37\x36\x06\x6e\x78\x7d\x34\xb4\x55\x94\x52\xa8\x9a\xac\xb0\xf0\xd5\xc8\xb0\xf9\xc6\x80\x1c\x17\xbc\x83\xc5\x91\xf7\xaa\xf7\xb6\x3e\x55\x3e\x72\xcd\xd9\x6b\x3e\x22\x35\x73\xe9\x6f\xd9\xba\xb8\x68\x2d\x18\xde\x6b\x90\xc0\x1e\x45\x14\xf8\xe7\x2f\x84\x0d\x85\x14\xec\xe5\x16\x7e\xfc\x53\xc7\x80\x93\x66\x24\x74\x53\xf5\x33\xbd\x80\x89\x9a\x58\x3f\x3b\xe3\x38\x93\x77\xb0\xae\xc7\x89\x23\x36\xfd\x55\xd8\xab\xc5\x87\xe5\x0b\xe6\x08\xd9\xf1\xb7\x20\x1e\x19\x32\xc7\xfe\x1f\x71\xa6\x88\x65\x42\xe3\x08\xe9\x17\x3e\x52\x18\xee\xae\xa2\x01\x83\x8c\x81\x75\x3e\xce\x57\x72\x51\x2a\xfe\x4d\x39\x2f\x37\x63\xe4\xc5\xec\x35\x04\xd2\x94\xc1\x90\x4a\x84\xa5\xce\x71\x5a\x02\xd1\xe2\xa6\x00\x01\xd8\xb8\xce\x5e\xc3\x18\x64\xf4\xc9\x95\x66\x5d\x88\x9d\x32\x3c\xee\x63\xef\x54\x56\x8e\x94\x9e\xc9\x89\x76\x61\xab\x8c\xa7\xbd\xe5\x6b\x00\x06\x00\xaa\xcb\x22\x13\x96\x38\xc8\x21\x29\xfd\x49\x52\xd4\x9a\x38\xe6\xd6\x6b\xee\x9c\x8a\xcb\xd3\xa8\xe4\xb2\xc7\xcb\xc5\xe0\xc8\x0b\x15\x8b\x08\xbf\x20\xb6\xfc\x62\xc3\x4b\x17\x8b\x42\x1d\xae\xee\x8a\x71\x07\x85\x49\x4e\xa4\x4e\xb2\xda\x54\xb6\x30\x92\xc8\x22\x9c\x5b\xfd\x4f\xd1\x90\x31\x2e\xa6\x2f\x30\xcf\x24\xe6\x58\x03\x42\xc5\x22
|
||
|
|
||
|
func _assetsTestsQrStatusPngBytes() ([]byte, error) {
|
||
|
return bindataRead(
|
||
|
__assetsTestsQrStatusPng,
|
||
|
"_assets/tests/qr/status.png",
|
||
|
)
|
||
|
}
|
||
|
|
||
|
func _assetsTestsQrStatusPng() (*asset, error) {
|
||
|
bytes, err := _assetsTestsQrStatusPngBytes()
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
|
||
|
info := bindataFileInfo{name: "_assets/tests/qr/status.png", size: 9398, mode: os.FileMode(0644), modTime: time.Unix(1658470291, 0)}
|
||
|
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x51, 0x48, 0x2c, 0x42, 0xb2, 0x4d, 0x24, 0xbd, 0xcc, 0x98, 0x13, 0x6d, 0xbf, 0x9e, 0xb6, 0x9f, 0x26, 0x99, 0x63, 0x44, 0x60, 0x5b, 0x7, 0x42, 0x37, 0xa3, 0xff, 0x3, 0x97, 0xe, 0xeb, 0x8a}}
|
||
|
return a, nil
|
||
|
}
|
||
|
|
||
|
// Asset loads and returns the asset for the given name.
|
||
|
// It returns an error if the asset could not be found or
|
||
|
// could not be loaded.
|
||
|
func Asset(name string) ([]byte, error) {
|
||
|
canonicalName := strings.Replace(name, "\\", "/", -1)
|
||
|
if f, ok := _bindata[canonicalName]; ok {
|
||
|
a, err := f()
|
||
|
if err != nil {
|
||
|
return nil, fmt.Errorf("Asset %s can't read by error: %v", name, err)
|
||
|
}
|
||
|
return a.bytes, nil
|
||
|
}
|
||
|
return nil, fmt.Errorf("Asset %s not found", name)
|
||
|
}
|
||
|
|
||
|
// AssetString returns the asset contents as a string (instead of a []byte).
|
||
|
func AssetString(name string) (string, error) {
|
||
|
data, err := Asset(name)
|
||
|
return string(data), err
|
||
|
}
|
||
|
|
||
|
// MustAsset is like Asset but panics when Asset would return an error.
|
||
|
// It simplifies safe initialization of global variables.
|
||
|
func MustAsset(name string) []byte {
|
||
|
a, err := Asset(name)
|
||
|
if err != nil {
|
||
|
panic("asset: Asset(" + name + "): " + err.Error())
|
||
|
}
|
||
|
|
||
|
return a
|
||
|
}
|
||
|
|
||
|
// MustAssetString is like AssetString but panics when Asset would return an
|
||
|
// error. It simplifies safe initialization of global variables.
|
||
|
func MustAssetString(name string) string {
|
||
|
return string(MustAsset(name))
|
||
|
}
|
||
|
|
||
|
// AssetInfo loads and returns the asset info for the given name.
|
||
|
// It returns an error if the asset could not be found or
|
||
|
// could not be loaded.
|
||
|
func AssetInfo(name string) (os.FileInfo, error) {
|
||
|
canonicalName := strings.Replace(name, "\\", "/", -1)
|
||
|
if f, ok := _bindata[canonicalName]; ok {
|
||
|
a, err := f()
|
||
|
if err != nil {
|
||
|
return nil, fmt.Errorf("AssetInfo %s can't read by error: %v", name, err)
|
||
|
}
|
||
|
return a.info, nil
|
||
|
}
|
||
|
return nil, fmt.Errorf("AssetInfo %s not found", name)
|
||
|
}
|
||
|
|
||
|
// AssetDigest returns the digest of the file with the given name. It returns an
|
||
|
// error if the asset could not be found or the digest could not be loaded.
|
||
|
func AssetDigest(name string) ([sha256.Size]byte, error) {
|
||
|
canonicalName := strings.Replace(name, "\\", "/", -1)
|
||
|
if f, ok := _bindata[canonicalName]; ok {
|
||
|
a, err := f()
|
||
|
if err != nil {
|
||
|
return [sha256.Size]byte{}, fmt.Errorf("AssetDigest %s can't read by error: %v", name, err)
|
||
|
}
|
||
|
return a.digest, nil
|
||
|
}
|
||
|
return [sha256.Size]byte{}, fmt.Errorf("AssetDigest %s not found", name)
|
||
|
}
|
||
|
|
||
|
// Digests returns a map of all known files and their checksums.
|
||
|
func Digests() (map[string][sha256.Size]byte, error) {
|
||
|
mp := make(map[string][sha256.Size]byte, len(_bindata))
|
||
|
for name := range _bindata {
|
||
|
a, err := _bindata[name]()
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
mp[name] = a.digest
|
||
|
}
|
||
|
return mp, nil
|
||
|
}
|
||
|
|
||
|
// AssetNames returns the names of the assets.
|
||
|
func AssetNames() []string {
|
||
|
names := make([]string, 0, len(_bindata))
|
||
|
for name := range _bindata {
|
||
|
names = append(names, name)
|
||
|
}
|
||
|
return names
|
||
|
}
|
||
|
|
||
|
// _bindata is a table, holding each asset generator, mapped to its name.
|
||
|
var _bindata = map[string]func() (*asset, error){
|
||
|
"_assets/tests/qr/QRWithLogo.png": _assetsTestsQrQrwithlogoPng,
|
||
|
"_assets/tests/qr/defaultQR.png": _assetsTestsQrDefaultqrPng,
|
||
|
"_assets/tests/qr/status.png": _assetsTestsQrStatusPng,
|
||
|
}
|
||
|
|
||
|
// AssetDebug is true if the assets were built with the debug flag enabled.
|
||
|
const AssetDebug = false
|
||
|
|
||
|
// AssetDir returns the file names below a certain
|
||
|
// directory embedded in the file by go-bindata.
|
||
|
// For example if you run go-bindata on data/... and data contains the
|
||
|
// following hierarchy:
|
||
|
//
|
||
|
// data/
|
||
|
// foo.txt
|
||
|
// img/
|
||
|
// a.png
|
||
|
// b.png
|
||
|
//
|
||
|
// then AssetDir("data") would return []string{"foo.txt", "img"},
|
||
|
// AssetDir("data/img") would return []string{"a.png", "b.png"},
|
||
|
// AssetDir("foo.txt") and AssetDir("notexist") would return an error, and
|
||
|
// AssetDir("") will return []string{"data"}.
|
||
|
func AssetDir(name string) ([]string, error) {
|
||
|
node := _bintree
|
||
|
if len(name) != 0 {
|
||
|
canonicalName := strings.Replace(name, "\\", "/", -1)
|
||
|
pathList := strings.Split(canonicalName, "/")
|
||
|
for _, p := range pathList {
|
||
|
node = node.Children[p]
|
||
|
if node == nil {
|
||
|
return nil, fmt.Errorf("Asset %s not found", name)
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
if node.Func != nil {
|
||
|
return nil, fmt.Errorf("Asset %s not found", name)
|
||
|
}
|
||
|
rv := make([]string, 0, len(node.Children))
|
||
|
for childName := range node.Children {
|
||
|
rv = append(rv, childName)
|
||
|
}
|
||
|
return rv, nil
|
||
|
}
|
||
|
|
||
|
type bintree struct {
|
||
|
Func func() (*asset, error)
|
||
|
Children map[string]*bintree
|
||
|
}
|
||
|
|
||
|
var _bintree = &bintree{nil, map[string]*bintree{
|
||
|
"_assets": {nil, map[string]*bintree{
|
||
|
"tests": {nil, map[string]*bintree{
|
||
|
"qr": {nil, map[string]*bintree{
|
||
|
"QRWithLogo.png": {_assetsTestsQrQrwithlogoPng, map[string]*bintree{}},
|
||
|
"defaultQR.png": {_assetsTestsQrDefaultqrPng, map[string]*bintree{}},
|
||
|
"status.png": {_assetsTestsQrStatusPng, map[string]*bintree{}},
|
||
|
}},
|
||
|
}},
|
||
|
}},
|
||
|
}}
|
||
|
|
||
|
// RestoreAsset restores an asset under the given directory.
|
||
|
func RestoreAsset(dir, name string) error {
|
||
|
data, err := Asset(name)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
info, err := AssetInfo(name)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
err = os.MkdirAll(_filePath(dir, filepath.Dir(name)), os.FileMode(0755))
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
err = os.WriteFile(_filePath(dir, name), data, info.Mode())
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
return os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime())
|
||
|
}
|
||
|
|
||
|
// RestoreAssets restores an asset under the given directory recursively.
|
||
|
func RestoreAssets(dir, name string) error {
|
||
|
children, err := AssetDir(name)
|
||
|
// File
|
||
|
if err != nil {
|
||
|
return RestoreAsset(dir, name)
|
||
|
}
|
||
|
// Dir
|
||
|
for _, child := range children {
|
||
|
err = RestoreAssets(dir, filepath.Join(name, child))
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func _filePath(dir, name string) string {
|
||
|
canonicalName := strings.Replace(name, "\\", "/", -1)
|
||
|
return filepath.Join(append([]string{dir}, strings.Split(canonicalName, "/")...)...)
|
||
|
}
|