// Copyright 2015 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.

// This file is automatically generated, your changes will be lost.
// See make_builtin_vdlroot.go.

package main

//go:generate jiri go run make_builtin_vdlroot.go

const (
	// builtinVdlrootData contains a base64-encoded gzip'd tar file. This file
	// contains all of the VDL files required to run the VDL tool.
	builtinVdlrootData = `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`
)
