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

#include <verrsrc.h>

/////////////////////////////////////////////////////////////////////////////
//
// Version
//

VS_VERSION_INFO VERSIONINFO
 FILEVERSION @MAJOR@,@MINOR@,@BUILD@,@PATCH@
 PRODUCTVERSION @MAJOR@,@MINOR@,@BUILD@,@PATCH@
 FILEFLAGSMASK 0x17L
#ifdef _DEBUG
 FILEFLAGS 0x1L
#else
 FILEFLAGS 0x0L
#endif
 FILEOS 0x4L
 FILETYPE 0x1L
 FILESUBTYPE 0x0L
BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "040904b0"
        BEGIN
            VALUE "CompanyName", "@COMPANY_FULLNAME@"
            VALUE "FileDescription", "@PRODUCT_INSTALLER_FULLNAME@"
            VALUE "FileVersion", "@MAJOR@.@MINOR@.@BUILD@.@PATCH@"
            VALUE "InternalName", "setup"
            VALUE "LegalCopyright", "@COPYRIGHT@"
            VALUE "ProductName", "@PRODUCT_INSTALLER_FULLNAME@"
            VALUE "ProductVersion", "@MAJOR@.@MINOR@.@BUILD@.@PATCH@"
            VALUE "CompanyShortName", "@COMPANY_SHORTNAME@"
            VALUE "ProductShortName", "@PRODUCT_INSTALLER_SHORTNAME@"
            VALUE "LastChange", "@LASTCHANGE@"
            VALUE "Official Build", "@OFFICIAL_BUILD@"
        END
    END
    BLOCK "VarFileInfo"
    BEGIN
        VALUE "Translation", 0x409, 1200
    END
END
