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