// Copyright 2016 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// Code generated by go-bindata.
// sources:
// assets/alltrace.html
// assets/blessings.html
// assets/chrome.html
// assets/collection.html
// assets/glob.html
// assets/logs.html
// assets/no_syncbase.html
// assets/profiles.html
// assets/resolve.html
// assets/stats.html
// assets/syncbase.html
// assets/vtrace.html
// DO NOT EDIT!

package browseserver

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

func alltraceHtmlBytes() ([]byte, error) {
	return bindataRead(
		_alltraceHtml,
		"alltrace.html",
	)
}

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

	info := bindataFileInfo{name: "alltrace.html", size: 0, mode: os.FileMode(420), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

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

func blessingsHtmlBytes() ([]byte, error) {
	return bindataRead(
		_blessingsHtml,
		"blessings.html",
	)
}

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

	info := bindataFileInfo{name: "blessings.html", size: 0, mode: os.FileMode(420), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

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

func chromeHtmlBytes() ([]byte, error) {
	return bindataRead(
		_chromeHtml,
		"chrome.html",
	)
}

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

	info := bindataFileInfo{name: "chrome.html", size: 0, mode: os.FileMode(420), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

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

func collectionHtmlBytes() ([]byte, error) {
	return bindataRead(
		_collectionHtml,
		"collection.html",
	)
}

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

	info := bindataFileInfo{name: "collection.html", size: 0, mode: os.FileMode(420), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _globHtml = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x74\x91\xdf\x8b\xd4\x30\x10\xc7\xdf\xfb\x57\x0c\x45\x44\x0f\xda\x78\x07\xfa\x20\xd9\xca\x79\xd7\x87\x03\x39\x65\x57\x7d\xcf\x26\xd3\x26\x90\x4d\xce\x49\xba\xba\x84\xfc\xef\xa6\xb5\xcb\x2d\xa2\xf3\xd2\xce\xaf\xcf\xcc\x7c\x93\x12\xbb\xaa\xa0\xd8\x9d\x7f\x3a\x91\x19\x75\x84\x9b\x37\xd7\xef\xe0\xab\x46\xf8\x2e\x9c\x50\x66\x3a\xc0\xed\x14\xb5\xa7\xd0\xc2\xad\xb5\xb0\x14\x05\x20\x0c\x48\x47\x54\xed\xd2\xfd\x2d\x20\xf8\x01\xa2\x36\x01\x82\x9f\x48\x22\x48\xaf\x10\x8a\x3b\xfa\x23\x92\x43\x05\xfb\x13\x08\xf8\xb8\xbb\x6f\x42\x3c\x59\x5c\xda\xac\x91\xe8\x4a\x6b\xd4\x22\x82\x14\x0e\xf6\x08\x83\x9f\x9c\x02\xe3\x4a\x10\xe1\xd3\xc3\x5d\xff\xb8\xeb\x61\x30\x16\xdb\xea\x8a\xe5\x5c\x55\x29\x29\x1c\x8c\x43\xa8\xa5\x77\x11\x5d\xac\x4b\x94\x07\x94\xd1\x78\x07\xd2\x8a\x10\x36\xf5\xea\x36\x4d\x19\x10\x91\xe0\xa0\x6c\x33\x92\x51\x75\xb7\x0c\xe6\xfa\x6d\x97\x52\xfb\x45\xc4\x92\x74\x39\x73\x56\x02\x7f\x32\xca\x1c\xc1\xa8\x4d\xfd\x24\x68\x66\x9f\x81\x33\x40\x62\xb9\xff\xfc\xd3\x34\xd7\x37\x8d\xf4\x76\x25\x2e\xbd\xde\x3e\x3b\xb3\xa5\x44\xc2\x8d\x08\x6d\xef\x22\x19\x0c\x39\x97\xd0\x4f\x13\x35\xb4\xbb\x69\x18\xcc\xaf\xb2\xf9\x65\x3d\xb7\xa6\xe3\x02\x34\xe1\xb0\xa9\xd9\x68\xfd\xfe\x83\xdb\xa4\x34\x91\xfd\x31\x21\x9d\xe0\x45\xbb\x9b\x45\xa7\x47\x71\xc0\x9c\x5f\x86\xcb\x5c\x9b\x73\x3d\xdf\x34\x1f\x23\x3a\xce\x0a\xea\xaf\x5d\xd0\xa9\x8b\x05\x7a\x22\x4f\xff\x98\xdf\x6f\xb7\x9f\xb7\xaf\x52\x2a\x63\x4a\xc1\xc3\xfd\x0c\x7e\xfd\x1e\x56\xf2\xff\xa9\xcb\xf7\x59\x0a\x76\xd6\x82\xb3\xa2\x68\x57\x71\xb6\x3e\x49\x57\xad\xb5\xbf\x03\x00\x00\xff\xff\x8e\x08\x47\x71\x7b\x02\x00\x00")

func globHtmlBytes() ([]byte, error) {
	return bindataRead(
		_globHtml,
		"glob.html",
	)
}

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

	info := bindataFileInfo{name: "glob.html", size: 0, mode: os.FileMode(420), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

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

func logsHtmlBytes() ([]byte, error) {
	return bindataRead(
		_logsHtml,
		"logs.html",
	)
}

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

	info := bindataFileInfo{name: "logs.html", size: 0, mode: os.FileMode(420), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _no_syncbaseHtml = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x34\x90\x31\x6b\xc3\x30\x14\x84\x77\xff\x8a\xc3\x63\x40\x71\x13\x68\x27\xd7\x90\xa6\x19\x0a\xa5\x4b\xda\xee\x8a\xf4\x1c\x09\x94\xa7\x22\xc9\x06\x63\xf2\xdf\x2b\x3b\xb6\x27\xbf\x27\xdd\x9d\xbe\x1b\xc7\x6a\x53\x20\x7f\x47\xff\x37\x04\x7b\x35\x09\xfb\xa7\xdd\x0b\xbe\x0d\xe1\x57\xb2\xd4\xb6\xbb\xe1\xd0\x25\xe3\x43\xdc\xe2\xe0\x1c\xe6\x4b\x11\x81\x22\x85\x9e\xf4\x76\x56\xff\x44\x82\x6f\x91\x8c\x8d\x88\xbe\x0b\x8a\xa0\xbc\x26\xe4\xf1\xea\x7b\x0a\x4c\x1a\x97\x01\x12\x6f\xe7\x77\x11\xd3\xe0\x68\x96\x39\xab\x88\xb3\x34\x19\x99\xa0\x24\xe3\x42\x68\x7d\xc7\x1a\x96\xf3\x92\xf0\xf9\x71\x3c\x7d\x9d\x4f\x68\xad\xa3\x6d\xb1\xa9\xee\xf7\xa2\x18\x47\x4d\xad\x65\x42\xa9\x3c\x27\xe2\x54\x4e\xdb\x3a\x92\x4a\xd6\x33\x94\x93\x31\xbe\x96\xcb\x28\x44\x4e\x48\x14\x70\xd3\x4e\x5c\x83\xd5\x65\x33\x27\xd7\xe6\xb9\x39\x0f\xac\x2e\x32\x52\x5d\xe5\xe1\xb1\xd5\xb6\x5f\x0d\x26\x81\xa2\x0c\xbc\xfe\x08\xb1\xdb\x0b\xe5\xdd\xe2\x80\xdc\xd1\x44\x3b\xb5\x10\xa0\x3d\x45\xb0\x4f\x30\xb2\xa7\xcc\xb9\x7a\xcf\xe7\x99\xf2\x51\x53\x5d\xe5\x80\xa6\xa8\xab\xe5\x75\xcd\x44\x43\xac\x33\xc0\x7f\x00\x00\x00\xff\xff\xfe\x8f\x17\xb9\x89\x01\x00\x00")

func no_syncbaseHtmlBytes() ([]byte, error) {
	return bindataRead(
		_no_syncbaseHtml,
		"no_syncbase.html",
	)
}

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

	info := bindataFileInfo{name: "no_syncbase.html", size: 0, mode: os.FileMode(420), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

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

func profilesHtmlBytes() ([]byte, error) {
	return bindataRead(
		_profilesHtml,
		"profiles.html",
	)
}

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

	info := bindataFileInfo{name: "profiles.html", size: 0, mode: os.FileMode(420), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

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

func resolveHtmlBytes() ([]byte, error) {
	return bindataRead(
		_resolveHtml,
		"resolve.html",
	)
}

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

	info := bindataFileInfo{name: "resolve.html", size: 0, mode: os.FileMode(420), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

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

func statsHtmlBytes() ([]byte, error) {
	return bindataRead(
		_statsHtml,
		"stats.html",
	)
}

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

	info := bindataFileInfo{name: "stats.html", size: 0, mode: os.FileMode(420), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

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

func syncbaseHtmlBytes() ([]byte, error) {
	return bindataRead(
		_syncbaseHtml,
		"syncbase.html",
	)
}

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

	info := bindataFileInfo{name: "syncbase.html", size: 0, mode: os.FileMode(420), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

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

func vtraceHtmlBytes() ([]byte, error) {
	return bindataRead(
		_vtraceHtml,
		"vtrace.html",
	)
}

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

	info := bindataFileInfo{name: "vtrace.html", size: 0, mode: os.FileMode(420), modTime: time.Unix(0, 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){
	"alltrace.html":    alltraceHtml,
	"blessings.html":   blessingsHtml,
	"chrome.html":      chromeHtml,
	"collection.html":  collectionHtml,
	"glob.html":        globHtml,
	"logs.html":        logsHtml,
	"no_syncbase.html": no_syncbaseHtml,
	"profiles.html":    profilesHtml,
	"resolve.html":     resolveHtml,
	"stats.html":       statsHtml,
	"syncbase.html":    syncbaseHtml,
	"vtrace.html":      vtraceHtml,
}

// 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{
	"alltrace.html":    &bintree{alltraceHtml, map[string]*bintree{}},
	"blessings.html":   &bintree{blessingsHtml, map[string]*bintree{}},
	"chrome.html":      &bintree{chromeHtml, map[string]*bintree{}},
	"collection.html":  &bintree{collectionHtml, map[string]*bintree{}},
	"glob.html":        &bintree{globHtml, map[string]*bintree{}},
	"logs.html":        &bintree{logsHtml, map[string]*bintree{}},
	"no_syncbase.html": &bintree{no_syncbaseHtml, map[string]*bintree{}},
	"profiles.html":    &bintree{profilesHtml, map[string]*bintree{}},
	"resolve.html":     &bintree{resolveHtml, map[string]*bintree{}},
	"stats.html":       &bintree{statsHtml, map[string]*bintree{}},
	"syncbase.html":    &bintree{syncbaseHtml, map[string]*bintree{}},
	"vtrace.html":      &bintree{vtraceHtml, 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, "/")...)...)
}
