// Code generated for package rs14100 by go-bindata DO NOT EDIT. (@generated)
// sources:
// data/RS14100_SF_4MB.FLM.bin
package rs14100

import (
	"fmt"
	"io/ioutil"
	"os"
	"path/filepath"
	"strings"
	"time"
)
type asset struct {
	bytes []byte
	info  os.FileInfo
}

type bindataFileInfo struct {
	name    string
	size    int64
	mode    os.FileMode
	modTime time.Time
}

// Name return file name
func (fi bindataFileInfo) Name() string {
	return fi.name
}

// Size return file size
func (fi bindataFileInfo) Size() int64 {
	return fi.size
}

// Mode return file mode
func (fi bindataFileInfo) Mode() os.FileMode {
	return fi.mode
}

// Mode return file modify time
func (fi bindataFileInfo) ModTime() time.Time {
	return fi.modTime
}

// IsDir return file whether a directory
func (fi bindataFileInfo) IsDir() bool {
	return fi.mode&os.ModeDir != 0
}

// Sys return file is sys mode
func (fi bindataFileInfo) Sys() interface{} {
	return nil
}

var _dataRs14100_sf_4mbFlmBin = []byte("\x00\xbe\n\xe0\rx-\x06h@\b$@\x00\x00\xd3X@d\x1e\xfa\xd1I\x1cR\x1e\x00*\xf2\xd1pG\x05\xe0\x03x@\x1c\x93B\x01\xd0\x01 pGI\x1e\xf7\xd2\x00 pG\x00\x00\x10\xb5\x00\xf0\x01\xf9\x00 \x10\xbd\x00\x00\x01\xeb\x00\x10\x0eI\x01#\x01\xeb\x00\x10\x03\xeb\x82\x02\x02`pG\vI\nh\x01#\x83@\x1aC\n`pG\bI\nh\x01#\x83@\x9aC\n`pG\x81\x00\x05H\bD\x01hA\xf0\x10\x01\x01`pG\x00\x00\x13F\x10\x060A\x00@\x00F\x00 pGp\xb5O\xf0\x8cA\x00%O\xf4\xc0P\x0f&\x88`(F\xff\xf7\xde\xff\x00$(\x19\xc1\xb22F\x00 \xff\xf7\xc6\xffd\x1c\x06,\xf6\xd3p\xbd\x10\xb5\x04F\x1c!\x00\xf0W\xf9 ho\xf3\f\x00@\xf4`@ `\x03 \xa0p h \xf0\u007f@ ``h \xf4\xe3p \xf4@`@\xf01\x00@\xf4\x00p\x00\xf5\x00` \xf4\xf0 @\xf4\xe0@\x00\xf5@0 \xf0x@\x00\xf1\x80@ \xf4\xc0\x10``\xa0h \xf4\x80` \xf0\x02\x00 \xf4\u007fp \xf4\x00@\xa0`\x02 \xa0r\xa0h \xf0\u007f@\x00\xf1\x80@\xa0`\x00  s\xe0h \xf4}@ \xf4\xfa\x00@\xf4\x000\x00\xf5\x00\x10 \xf0\xfcP\xe0`\xd8  \x82 i \xf4\xe0 \xc0\xf3\x16\x00@\xf4\xf0\x00 a\xc7 \xa0\x82  \xe0\x82\x01  \x83\x05 `\x83\x10\xbd\x10\xb5O\xf0\bQ\x88\xb0\x01 H`\xff\xf7\x86\xff\x01\xa8\xff\xf7\x99\xff\x0f \xff\xf7b\xff: \xff\xf7m\xff; \xff\xf7j\xff< \xff\xf7g\xff= \xff\xf7d\xff> \xff\xf7a\xff? \xff\xf7^\xff\x02\":!\x00 \xff\xf7A\xff\x02\";!\x00 \xff\xf7<\xff\x02\"<!\x00 \xff\xf77\xff\x02\"=!\x00 \xff\xf72\xff\x02\">!\x00 \xff\xf7-\xff\x02\"?!\x00 \xff\xf7(\xff\x00 \x00\x90O\xf4@\x10\x00#\xd0\xf8\xd4B\x01\"\x01\xa9O\xf0\x90P\xa0G\b\xb0\x00 \x10\xbd0\xb5\x89\xb0\x05F\x02\xa8\xff\xf7Q\xff\x00!\x01 \xcd\xe9\x00\x01O\xf4@\x10+F\xd0\xf8\xd8B \"\x02\xa9O\xf0\x90P\xa0G\t\xb0\x00 0\xbd-\xe9\xf0A\x8a\xb0\x00$\x02\xa8\t\x94\xff\xf78\xffO\xf4\x900\x01%O\xf4@\x16O\xf0\x90X\xaf\x05\t\x90\xcd\xe9\x00T\x03F\xd6\xf8\xd8\xc2 \"\x02\xa9@F\xe0G\t\x98\x00\xf5\x80P\t\x90\xb8B\xf0\xdb\n\xb0\x00 \xbd\xe8\xf0\x810\xb5\x04F\x10F\x00)\x17\xd0!\xf0\x03\x05\x00\"\x04\xe0\xa3X\xc0\x18\x00\xd3@\x1c\x12\x1d\xaaB\xf8\u04cb\a\t\u0409\aO\xf0\xff3\xc9\x0e\x8b@\xa1X\x99C@\x18\x00\xd3@\x1c\xc0C0\xbdp\xb5\x92\xb0\x05F\x16F\fF\n\xa8\xff\xf7\xf6\xfe\xb5\xf5\x90?\x06\xd1\x01\"\xec! F\xff\xf7\xd2\xff\xc4\xf8\xec\x00\x00 \x01!\x06\x90\a\x90\b\x90\t\x90\xcd\xe9\x03\x01\x00\x94\n\x02\x05\x90\xcd\xe9\x01bO\xf4@\x10+F\xd0\xf8\xdcB\x02\"\n\xa9O\xf0\x90P\xa0G\x12\xb0\x00 p\xbdp\xb5\x04FO\xf0\x90p\x16F\rF\xb0\xeb\x04/\x10\xd1\x01\"\xec!(F\xff\xf7\xa8\xff\xc5\xf8\xec\x00\x00 \x04\xe0!\\*\\\x91B\f\xd1@\x1c\xb0B\xf8\xd3\b\xe0\x00 \x04\xe0!\\*\\\x91B\x02\xd1@\x1c\xb0B\xf8\xd3 Dp\xbd\x00 pG\u04b2\x01\xe0\x00\xf8\x01+I\x1e\xfb\xd2pG\x00\"\xf6\xe7\x10\xb5\x13F\nF\x04F\x19F\xff\xf7\xf0\xff F\x10\xbd\x10\xb5\xff\xf7\xf2\xfe\x00 \x10\xbd\x10\xb5\xff\xf7y\xfe\x00 \x10\xbd\x10\xb5 \xf0\u007f@\xff\xf73\xff\x00 \x10\xbd\x13F\x10\xb5\nF \xf0\u007f@\x19F\xff\xf7\x82\xff\x00 \x10\xbd\x13F\nF\x19F\xff\xf7\xa7\xbf\x00\x00\x00\x00\x00\x00")

func dataRs14100_sf_4mbFlmBinBytes() ([]byte, error) {
	return _dataRs14100_sf_4mbFlmBin, nil
}

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

	info := bindataFileInfo{name: "data/RS14100_SF_4MB.FLM.bin", size: 980, mode: os.FileMode(420), modTime: time.Unix(1, 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){
	"data/RS14100_SF_4MB.FLM.bin": dataRs14100_sf_4mbFlmBin,
}

// 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{
	"data": &bintree{nil, map[string]*bintree{
		"RS14100_SF_4MB.FLM.bin": &bintree{dataRs14100_sf_4mbFlmBin, 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, "/")...)...)
}
