// Code generated by go-bindata. DO NOT EDIT.
// sources:
// graphiql.html (1.182kB)
// schema.gql (2.4kB)

package static

import (
	"bytes"
	"compress/gzip"
	"crypto/sha256"
	"fmt"
	"io"
	"io/ioutil"
	"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: %v", name, err)
	}

	var buf bytes.Buffer
	_, err = io.Copy(&buf, gz)
	clErr := gz.Close()

	if err != nil {
		return nil, fmt.Errorf("read %q: %v", 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 _graphiqlHtml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xb4\x54\x4f\x6f\x13\x3f\x10\x3d\x6f\x3e\x85\x7f\x96\x7e\xd2\x46\x2a\x76\x52\x24\x0e\x9b\x4d\x0e\xd0\xaa\x02\x15\x4a\x81\x0b\x47\xd7\x9e\x5d\x3b\x78\xed\xed\xd8\x9b\x36\xaa\xf2\xdd\x91\xf7\x4f\x28\x7f\x2a\x21\x04\x17\xaf\x3d\x7e\xf3\xde\xf3\xcc\x68\xcb\xff\xce\xae\x5e\x7d\xfa\xfc\xfe\x9c\xe8\xd8\xd8\xcd\xac\x1c\x3e\x59\xa9\x41\xa8\xcd\x2c\xcb\x4a\x6b\xdc\x17\x82\x60\xd7\x34\xc4\xbd\x85\xa0\x01\x22\x25\x1a\xa1\x5a\x53\x1d\x63\x1b\x0a\xce\xa5\x72\xdb\xc0\xa4\xf5\x9d\xaa\xac\x40\x60\xd2\x37\x5c\x6c\xc5\x3d\xb7\xe6\x26\xf0\x1a\x45\xab\xcd\xad\xe5\x0b\xb6\x5c\xb2\xe5\xf2\x18\x60\x32\x04\xca\x7b\x99\x20\xd1\xb4\x91\x04\x94\xbf\x4d\x5b\x41\x94\x9a\x9f\xb2\x05\x7b\x3e\xec\x59\x63\x1c\xdb\x06\xba\x29\xf9\x40\xf7\xa7\xcc\x08\x42\x46\xbe\x7c\xc1\x4e\xd9\x82\x77\x8d\x1a\x02\xac\x45\xaf\x3a\x19\x8d\x77\x7f\x57\xe9\x99\xf2\xcd\x4f\x6a\x29\xf8\x2f\x14\x9f\x6e\xc6\x2f\x14\x4a\x3e\xce\x41\x79\xe3\xd5\x9e\xf4\x13\xb0\xa6\x77\x46\x45\x5d\x90\xe5\x62\xf1\xff\x8a\x68\x30\xb5\x8e\xd3\xa9\x11\x58\x1b\x57\x90\xc5\x8a\xf8\x1d\x60\x65\xfd\x5d\x41\xb4\x51\x0a\xdc\x8a\xf6\x96\x95\xd9\x11\xa3\xd6\x74\x92\xa5\x13\xeb\x23\xa2\x9d\x5e\xd1\xcd\xa5\x17\xca\xb8\x9a\x31\x56\x72\x65\x76\x8f\xde\x9b\xb6\x59\xd5\xb9\xbe\x30\xa4\x6f\xfd\xc5\xf5\x65\xde\x0a\x14\x4d\x98\x93\x87\x74\x9d\x21\xc4\x0e\xc7\xdb\x9c\x0e\xaf\xbc\xb5\xf4\x64\xbc\xce\x1a\x88\xda\xab\x82\xd0\xd6\x87\x48\x4f\x86\x60\x7a\x65\x41\xde\x7c\xbc\x7a\xc7\x42\x44\xe3\x6a\x53\xed\x27\xde\x11\x22\x11\x14\xb8\x68\x84\x0d\x05\xa1\xc6\x49\xdb\x29\x18\xf3\x0f\x73\x16\x35\xb8\xfc\xe8\x2d\x47\x08\xed\xe4\x68\xb2\x94\x62\x2c\xc2\x7d\xcc\xe7\xab\x27\xd2\x92\x8f\x63\x5a\xc4\xfd\xb4\x9d\x28\x7a\x87\xad\xc0\x00\x03\x74\xe0\xc9\x0e\x44\x8a\x28\x35\xc9\x01\xd1\xe3\xfc\xc7\xac\x04\x9d\x90\xa3\x70\x7f\x3c\xcc\xd2\xfa\x21\x4d\xdd\xd9\xd5\x5b\x86\xe0\x14\x60\xde\x23\xfa\x20\x93\x08\x22\xc2\xb9\x85\x06\x5c\xcc\x2f\xfa\xce\x5d\x5f\x9e\x90\x87\xbe\xba\x80\xc5\xb1\x09\x87\xb1\x4c\xca\xcb\x2e\x81\x59\x0d\x71\xcc\x7b\xb9\x7f\xad\xf2\x6f\x6d\x9f\x27\x5c\x5a\xbe\x1b\xb7\x64\x71\x33\x2b\xf9\xf0\x1b\xfa\x1a\x00\x00\xff\xff\xdb\x8e\x2c\x18\x9e\x04\x00\x00")

func graphiqlHtmlBytes() ([]byte, error) {
	return bindataRead(
		_graphiqlHtml,
		"graphiql.html",
	)
}

func graphiqlHtml() (*asset, error) {
	bytes, err := graphiqlHtmlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "graphiql.html", size: 1182, mode: os.FileMode(0644), modTime: time.Unix(1559692126, 0)}
	a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x76, 0x8, 0xb4, 0x3a, 0xe7, 0xdb, 0xc8, 0x3d, 0x2d, 0x1f, 0x1c, 0x2d, 0xd3, 0x9b, 0xf2, 0xd8, 0xe5, 0xd6, 0x5f, 0x3a, 0x7c, 0x6d, 0x80, 0xf7, 0x40, 0xdc, 0x58, 0xf1, 0x75, 0xbd, 0xf0, 0xa1}}
	return a, nil
}

var _schemaGql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xe4\x54\xcd\x6e\xe3\x36\x10\x3e\x4b\x4f\x31\xc1\x5e\x36\x17\x1f\x8a\x9e\x84\xb6\x80\x93\xb4\x68\xd0\x78\xbb\x5d\x67\x8b\x02\x41\x51\x8c\xc5\xb1\x3c\x30\x45\x6a\x87\xa4\x13\x63\x91\x77\x2f\x48\xc9\x0e\x25\x65\xd3\x07\xe8\x49\x9a\x9f\x6f\x38\xf3\xf1\xe3\xb8\x7a\x47\x2d\xc2\xd7\xb2\xf8\x12\x48\x8e\x15\x14\x7f\xc4\x6f\xf9\x5c\x96\xfe\xd8\x11\x24\x2b\x86\xdf\x81\x90\x17\xa6\x03\x01\x6a\x0d\x07\xd4\xac\xd0\x93\x02\x74\x8e\xbc\x03\x6b\xc0\xef\x08\xd6\x9e\xb4\x46\x01\x43\xfe\xd1\xca\x7e\x51\x16\x7d\xbc\x82\x87\x65\xfc\xb9\xf8\xfb\xa2\x7c\xa3\x18\x3b\x17\x48\xde\xa8\x36\x24\x54\xf0\x70\x9b\xfe\x66\xf5\xbc\xa0\x22\x70\x1e\xbd\x83\xad\xd8\x36\xd5\xd1\xe8\x3c\xfc\x60\x42\xfb\xab\x0d\xe2\x96\x8d\xfd\x09\x76\xf1\x2f\x22\xdf\x2b\xda\x62\xd0\x1e\x7e\x84\xef\xbe\xef\xdd\x97\x0b\xb0\x9d\x67\x6b\x50\xeb\x23\x74\x62\x0f\xac\x08\x6a\x1b\x8c\x27\x01\x34\x2a\xe2\x36\xe8\xa8\x1f\x1e\xd8\x6c\x2d\x6c\xad\xc0\x96\xb5\x27\x61\xd3\x2c\xca\xa2\x45\xd9\x93\x77\xef\xcb\xa2\x88\xa9\x69\xfa\x6b\xab\xa8\x82\xb5\x8f\x29\xb9\xbf\x9f\x25\x8b\x0c\x67\xbd\x06\xca\x43\x33\x5c\x36\x62\x05\xb7\xc6\x97\xc5\x65\x05\x0f\xab\xd4\xca\x8c\xf9\xa6\x11\x6a\x12\xed\x23\xd2\xac\x7c\x83\xb3\x88\x4e\xfc\xbc\x4a\x4f\xc4\x18\x6c\x09\xec\x36\xfd\xf7\x35\x3b\x64\x81\xf7\xb4\x88\x8c\xbc\x83\xbf\xee\x56\xff\x5c\xdd\x5f\x5f\x8e\xc9\x02\x21\x17\xb4\x77\x8b\xb2\xf0\x5c\xef\x49\x22\x67\x11\xf8\x01\x5b\xfa\xcf\xe1\x96\xe7\x31\xce\x63\x3e\x97\xa5\xab\x31\x0a\xe7\x8a\x9b\x98\x38\x58\xf7\xdc\xd2\xa0\xeb\x44\x5f\xd4\x75\x9d\xb1\x7b\x71\xd2\xd7\xb2\x4e\x2c\x67\xfe\x08\xca\x4c\x13\xda\x21\xc7\xa5\x56\x2e\xca\x02\x83\xdf\x7d\xa2\x2f\x81\x85\x54\x05\x57\xd6\x6a\x42\x73\xf6\x1f\x6c\x8d\x1b\x4d\xa3\x40\xdb\x9f\xf1\x8b\xb6\x98\x0a\xf4\x97\x6d\xbc\x58\xad\x49\x5d\x1d\x6f\x6c\x8b\x6c\x46\x10\x53\xef\xec\x5c\x15\xe3\xc8\xfd\xb8\x55\x76\xc9\xbb\x4c\x09\xe3\xd6\x14\xbb\x4e\xe3\xf1\x86\x6a\x6e\x51\xbb\x6a\xa0\x2b\xce\x97\x31\x1f\x13\xc9\xd5\x99\x59\x5b\xa3\x38\x0a\xc0\x65\xce\x2d\x3f\x91\xfa\x10\xda\x4d\x14\xe4\xb9\x50\x8b\x4f\x33\x1f\xbb\xcf\x46\x73\xcb\x7e\xdc\x8d\x90\xa2\x36\xe9\xea\xd6\x38\x2f\xa1\x9e\x9e\x50\x5b\xad\xd1\x93\xa0\x5e\x2a\x25\xe4\x1c\xbd\x19\x5d\x73\x63\xd0\x07\x99\x64\x05\x13\xf5\x9f\xfb\xa2\xee\x83\x9b\x89\xe0\xf6\x66\xb8\xda\xd3\x2e\xec\xf5\x15\x45\x93\xb4\xfd\x11\x59\x32\xd0\xab\x8f\x3c\xf7\x8f\x1f\xeb\xa9\x97\x57\x1e\xf9\x24\x34\xc3\xc5\x8a\x7f\x5a\x1d\xe2\x15\x9d\xc4\x33\x00\xa6\xee\xd4\xe8\x75\xaf\xb3\x9e\x7c\xdb\x91\x79\x89\x6b\xfb\xf8\x62\xec\xb8\xd9\x65\x15\x77\x68\x9a\xfc\x04\x6d\x5d\x66\x72\x3c\xee\x80\x7a\xed\x51\x7c\x95\x9e\x56\x12\x81\x38\x7f\x47\xaa\x21\xb9\x8e\xf9\xd1\x7d\x0e\xc6\x8d\xf2\xad\x98\x15\x45\xb2\xb1\x76\xbf\x8e\x4b\xa8\x82\xdf\x47\xf6\xcb\x1d\x4c\x5f\xfb\x5b\xb7\xf1\x7f\xe5\x68\xec\x87\xaf\x25\x14\x1b\x56\xc3\x84\xe7\x57\xb8\x61\x35\x65\x62\xc3\x6a\x85\x4f\xf9\x46\xda\x4f\x51\xe8\xf6\x53\x14\xba\xfd\x8a\x33\xbe\x5c\x27\x84\x6a\x6a\xaf\x58\x7d\xb4\x9c\xed\xbb\x53\xb7\xbd\xbc\xe3\x3d\x76\x61\xa3\xb9\xfe\x8d\x8e\xf9\xa2\x1d\x2f\xa2\x20\x3a\x5f\xca\xb6\xd5\x9f\x3f\xdd\xe5\x4b\x88\x14\x09\xc6\xc5\xb1\x26\x39\x8c\x5e\x4d\xdc\xc3\x33\xa7\x17\x34\x6e\x4b\x32\x0b\x3c\xd2\x66\x19\xfc\xee\x67\xa3\xba\xbe\xeb\x6c\x17\x76\xd6\xb1\x9f\x21\xac\x34\xf7\x8f\xec\x7d\xee\x7c\x2e\xff\x0d\x00\x00\xff\xff\xd5\x4d\x39\xf2\x60\x09\x00\x00")

func schemaGqlBytes() ([]byte, error) {
	return bindataRead(
		_schemaGql,
		"schema.gql",
	)
}

func schemaGql() (*asset, error) {
	bytes, err := schemaGqlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "schema.gql", size: 2400, mode: os.FileMode(0644), modTime: time.Unix(1559692126, 0)}
	a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xfd, 0x3d, 0xe4, 0xa2, 0xd5, 0x7, 0x41, 0x33, 0x61, 0xf8, 0x67, 0x0, 0xc5, 0x7a, 0xc, 0xa7, 0x4f, 0x6a, 0xed, 0x86, 0x2c, 0x82, 0xcf, 0x5d, 0x9e, 0xd, 0xa3, 0x1a, 0x5e, 0xd, 0xc2, 0x2f}}
	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){
	"graphiql.html": graphiqlHtml,

	"schema.gql": schemaGql,
}

// 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{
	"graphiql.html": &bintree{graphiqlHtml, map[string]*bintree{}},
	"schema.gql":    &bintree{schemaGql, 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 = ioutil.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, "/")...)...)
}
