// Code generated by go-bindata.
// sources:
// templates/bindata.go
// templates/zenyatta.tf
// DO NOT EDIT!

package templates

import (
	"bytes"
	"compress/gzip"
	"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
}

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 _templatesBindataGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x01\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00")

func templatesBindataGoBytes() ([]byte, error) {
	return bindataRead(
		_templatesBindataGo,
		"templates/bindata.go",
	)
}

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

	info := bindataFileInfo{name: "templates/bindata.go", size: 0, mode: os.FileMode(420), modTime: time.Unix(1489527252, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

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

func templatesZenyattaTfBytes() ([]byte, error) {
	return bindataRead(
		_templatesZenyattaTf,
		"templates/zenyatta.tf",
	)
}

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

	info := bindataFileInfo{name: "templates/zenyatta.tf", size: 6746, mode: os.FileMode(420), modTime: time.Unix(1489527191, 0)}
	a := &asset{bytes: bytes, info: info}
	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) {
	cannonicalName := strings.Replace(name, "\\", "/", -1)
	if f, ok := _bindata[cannonicalName]; 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)
}

// 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
}

// 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) {
	cannonicalName := strings.Replace(name, "\\", "/", -1)
	if f, ok := _bindata[cannonicalName]; 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)
}

// 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){
	"templates/bindata.go": templatesBindataGo,
	"templates/zenyatta.tf": templatesZenyattaTf,
}

// 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
// AssetDir("") will return []string{"data"}.
func AssetDir(name string) ([]string, error) {
	node := _bintree
	if len(name) != 0 {
		cannonicalName := strings.Replace(name, "\\", "/", -1)
		pathList := strings.Split(cannonicalName, "/")
		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{
	"templates": &bintree{nil, map[string]*bintree{
		"bindata.go": &bintree{templatesBindataGo, map[string]*bintree{}},
		"zenyatta.tf": &bintree{templatesZenyattaTf, 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
	}
	err = os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime())
	if err != nil {
		return err
	}
	return nil
}

// 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 {
	cannonicalName := strings.Replace(name, "\\", "/", -1)
	return filepath.Join(append([]string{dir}, strings.Split(cannonicalName, "/")...)...)
}

