// Code generated by go-bindata.
// sources:
// wski18n/resources/de_DE.all.json
// wski18n/resources/en_US.all.json
// wski18n/resources/es_ES.all.json
// wski18n/resources/fr_FR.all.json
// wski18n/resources/it_IT.all.json
// wski18n/resources/ja_JA.all.json
// wski18n/resources/ko_KR.all.json
// wski18n/resources/pt_BR.all.json
// wski18n/resources/zh_Hans.all.json
// wski18n/resources/zh_Hant.all.json
// DO NOT EDIT!

package wski18n

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 _wski18nResourcesDe_deAllJson = []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 wski18nResourcesDe_deAllJsonBytes() ([]byte, error) {
	return bindataRead(
		_wski18nResourcesDe_deAllJson,
		"wski18n/resources/de_DE.all.json",
	)
}

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

	info := bindataFileInfo{name: "wski18n/resources/de_DE.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

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

func wski18nResourcesEn_usAllJsonBytes() ([]byte, error) {
	return bindataRead(
		_wski18nResourcesEn_usAllJson,
		"wski18n/resources/en_US.all.json",
	)
}

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

	info := bindataFileInfo{name: "wski18n/resources/en_US.all.json", size: 17482, mode: os.FileMode(420), modTime: time.Unix(1528407012, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _wski18nResourcesEs_esAllJson = []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 wski18nResourcesEs_esAllJsonBytes() ([]byte, error) {
	return bindataRead(
		_wski18nResourcesEs_esAllJson,
		"wski18n/resources/es_ES.all.json",
	)
}

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

	info := bindataFileInfo{name: "wski18n/resources/es_ES.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _wski18nResourcesFr_frAllJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8a\xe6\x52\x50\xa8\xe6\x52\x50\x50\x50\x50\xca\x4c\x51\xb2\x52\x50\x4a\xaa\x2c\x48\x2c\x2e\x56\x48\x4e\x2d\x2a\xc9\x4c\xcb\x4c\x4e\x2c\x49\x55\x48\xce\x48\x4d\xce\xce\xcc\x4b\x57\xd2\x81\x28\x2c\x29\x4a\xcc\x2b\xce\x49\x2c\xc9\xcc\xcf\x03\xe9\x08\xce\xcf\x4d\x55\x40\x12\x53\xc8\xcc\x53\x70\x2b\x4a\xcd\x4b\xce\x50\xe2\x52\x50\xa8\xe5\x8a\xe5\x02\x04\x00\x00\xff\xff\x45\xa4\xe9\x62\x65\x00\x00\x00")

func wski18nResourcesFr_frAllJsonBytes() ([]byte, error) {
	return bindataRead(
		_wski18nResourcesFr_frAllJson,
		"wski18n/resources/fr_FR.all.json",
	)
}

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

	info := bindataFileInfo{name: "wski18n/resources/fr_FR.all.json", size: 101, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _wski18nResourcesIt_itAllJson = []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 wski18nResourcesIt_itAllJsonBytes() ([]byte, error) {
	return bindataRead(
		_wski18nResourcesIt_itAllJson,
		"wski18n/resources/it_IT.all.json",
	)
}

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

	info := bindataFileInfo{name: "wski18n/resources/it_IT.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _wski18nResourcesJa_jaAllJson = []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 wski18nResourcesJa_jaAllJsonBytes() ([]byte, error) {
	return bindataRead(
		_wski18nResourcesJa_jaAllJson,
		"wski18n/resources/ja_JA.all.json",
	)
}

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

	info := bindataFileInfo{name: "wski18n/resources/ja_JA.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _wski18nResourcesKo_krAllJson = []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 wski18nResourcesKo_krAllJsonBytes() ([]byte, error) {
	return bindataRead(
		_wski18nResourcesKo_krAllJson,
		"wski18n/resources/ko_KR.all.json",
	)
}

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

	info := bindataFileInfo{name: "wski18n/resources/ko_KR.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _wski18nResourcesPt_brAllJson = []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 wski18nResourcesPt_brAllJsonBytes() ([]byte, error) {
	return bindataRead(
		_wski18nResourcesPt_brAllJson,
		"wski18n/resources/pt_BR.all.json",
	)
}

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

	info := bindataFileInfo{name: "wski18n/resources/pt_BR.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _wski18nResourcesZh_hansAllJson = []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 wski18nResourcesZh_hansAllJsonBytes() ([]byte, error) {
	return bindataRead(
		_wski18nResourcesZh_hansAllJson,
		"wski18n/resources/zh_Hans.all.json",
	)
}

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

	info := bindataFileInfo{name: "wski18n/resources/zh_Hans.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _wski18nResourcesZh_hantAllJson = []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 wski18nResourcesZh_hantAllJsonBytes() ([]byte, error) {
	return bindataRead(
		_wski18nResourcesZh_hantAllJson,
		"wski18n/resources/zh_Hant.all.json",
	)
}

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

	info := bindataFileInfo{name: "wski18n/resources/zh_Hant.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1520374115, 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){
	"wski18n/resources/de_DE.all.json":   wski18nResourcesDe_deAllJson,
	"wski18n/resources/en_US.all.json":   wski18nResourcesEn_usAllJson,
	"wski18n/resources/es_ES.all.json":   wski18nResourcesEs_esAllJson,
	"wski18n/resources/fr_FR.all.json":   wski18nResourcesFr_frAllJson,
	"wski18n/resources/it_IT.all.json":   wski18nResourcesIt_itAllJson,
	"wski18n/resources/ja_JA.all.json":   wski18nResourcesJa_jaAllJson,
	"wski18n/resources/ko_KR.all.json":   wski18nResourcesKo_krAllJson,
	"wski18n/resources/pt_BR.all.json":   wski18nResourcesPt_brAllJson,
	"wski18n/resources/zh_Hans.all.json": wski18nResourcesZh_hansAllJson,
	"wski18n/resources/zh_Hant.all.json": wski18nResourcesZh_hantAllJson,
}

// 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{
	"wski18n": &bintree{nil, map[string]*bintree{
		"resources": &bintree{nil, map[string]*bintree{
			"de_DE.all.json":   &bintree{wski18nResourcesDe_deAllJson, map[string]*bintree{}},
			"en_US.all.json":   &bintree{wski18nResourcesEn_usAllJson, map[string]*bintree{}},
			"es_ES.all.json":   &bintree{wski18nResourcesEs_esAllJson, map[string]*bintree{}},
			"fr_FR.all.json":   &bintree{wski18nResourcesFr_frAllJson, map[string]*bintree{}},
			"it_IT.all.json":   &bintree{wski18nResourcesIt_itAllJson, map[string]*bintree{}},
			"ja_JA.all.json":   &bintree{wski18nResourcesJa_jaAllJson, map[string]*bintree{}},
			"ko_KR.all.json":   &bintree{wski18nResourcesKo_krAllJson, map[string]*bintree{}},
			"pt_BR.all.json":   &bintree{wski18nResourcesPt_brAllJson, map[string]*bintree{}},
			"zh_Hans.all.json": &bintree{wski18nResourcesZh_hansAllJson, map[string]*bintree{}},
			"zh_Hant.all.json": &bintree{wski18nResourcesZh_hantAllJson, 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, "/")...)...)
}
