# noqa pylint: disable=too-many-lines,use-dict-literal
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: product_db.proto

import sys

_b = (lambda x: x) if sys.version_info[0] < 3 else (lambda x: x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf.internal import enum_type_wrapper

# ~ from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()

DESCRIPTOR = _descriptor.FileDescriptor(
    name='product_db.proto',
    package='',
    syntax='proto3',
    serialized_pb=_b('\n\x10product_db.proto\"D\n\x0fLanguageSetting\x12\x10\n\x08language\x18\x01 \x01(\t\x12\x1f\n\x06option\x18\x02 \x01(\x0e\x32\x0f.LanguageOption\"\xdb\x02\n\x0cUserSettings\x12\x14\n\x0cinstall_path\x18\x01 \x01(\t\x12\x13\n\x0bplay_region\x18\x02 \x01(\t\x12)\n\x10\x64\x65sktop_shortcut\x18\x03 \x01(\x0e\x32\x0f.ShortcutOption\x12+\n\x12startmenu_shortcut\x18\x04 \x01(\x0e\x32\x0f.ShortcutOption\x12/\n\x11language_settings\x18\x05 \x01(\x0e\x32\x14.LanguageSettingType\x12\x1e\n\x16selected_text_language\x18\x06 \x01(\t\x12 \n\x18selected_speech_language\x18\x07 \x01(\t\x12#\n\tlanguages\x18\x08 \x03(\x0b\x32\x10.LanguageSetting\x12\x19\n\x11gfx_override_tags\x18\t \x01(\t\x12\x15\n\rversionbranch\x18\n \x01(\t\"Q\n\x10InstallHandshake\x12\x0f\n\x07product\x18\x01 \x01(\t\x12\x0b\n\x03uid\x18\x02 \x01(\t\x12\x1f\n\x08settings\x18\x03 \x01(\x0b\x32\r.UserSettings\"3\n\x0b\x42uildConfig\x12\x0e\n\x06region\x18\x01 \x01(\t\x12\x14\n\x0c\x62uild_config\x18\x02 \x01(\t\"\xf4\x02\n\x10\x42\x61seProductState\x12\x11\n\tinstalled\x18\x01 \x01(\x08\x12\x10\n\x08playable\x18\x02 \x01(\x08\x12\x17\n\x0fupdate_complete\x18\x03 \x01(\x08\x12%\n\x1d\x62\x61\x63kground_download_available\x18\x04 \x01(\x08\x12$\n\x1c\x62\x61\x63kground_download_complete\x18\x05 \x01(\x08\x12\x17\n\x0f\x63urrent_version\x18\x06 \x01(\t\x12\x1b\n\x13\x63urrent_version_str\x18\x07 \x01(\t\x12,\n\x16installed_build_config\x18\x08 \x03(\x0b\x32\x0c.BuildConfig\x12\x36\n background_download_build_config\x18\t \x03(\x0b\x32\x0c.BuildConfig\x12\x16\n\x0e\x64\x65\x63ryption_key\x18\n \x01(\t\x12!\n\x19\x63ompleted_install_actions\x18\x0b \x03(\t\"h\n\x10\x42\x61\x63kfillProgress\x12\x10\n\x08progress\x18\x01 \x01(\x01\x12\x1a\n\x12\x62\x61\x63kgrounddownload\x18\x02 \x01(\x08\x12\x0e\n\x06paused\x18\x03 \x01(\x08\x12\x16\n\x0e\x64ownload_limit\x18\x04 \x01(\x04\"\"\n\x0eRepairProgress\x12\x10\n\x08progress\x18\x01 \x01(\x01\"\x8b\x01\n\x0eUpdateProgress\x12\x1a\n\x12last_disc_set_used\x18\x01 \x01(\t\x12\x10\n\x08progress\x18\x02 \x01(\x01\x12\x14\n\x0c\x64isc_ignored\x18\x03 \x01(\x08\x12\x19\n\x11total_to_download\x18\x04 \x01(\x04\x12\x1a\n\x12\x64ownload_remaining\x18\x05 \x01(\x04\"\xc5\x01\n\x12\x43\x61\x63hedProductState\x12-\n\x12\x62\x61se_product_state\x18\x01 \x01(\x0b\x32\x11.BaseProductState\x12,\n\x11\x62\x61\x63kfill_progress\x18\x02 \x01(\x0b\x32\x11.BackfillProgress\x12(\n\x0frepair_progress\x18\x03 \x01(\x0b\x32\x0f.RepairProgress\x12(\n\x0fupdate_progress\x18\x04 \x01(\x0b\x32\x0f.UpdateProgress\"K\n\x11ProductOperations\x12$\n\x10\x61\x63tive_operation\x18\x01 \x01(\x0e\x32\n.Operation\x12\x10\n\x08priority\x18\x02 \x01(\x04\"\xb7\x01\n\x0eProductInstall\x12\x0b\n\x03uid\x18\x01 \x01(\t\x12\x14\n\x0cproduct_code\x18\x02 \x01(\t\x12\x1f\n\x08settings\x18\x03 \x01(\x0b\x32\r.UserSettings\x12\x31\n\x14\x63\x61\x63hed_product_state\x18\x04 \x01(\x0b\x32\x13.CachedProductState\x12.\n\x12product_operations\x18\x05 \x01(\x0b\x32\x12.ProductOperations\"O\n\rProductConfig\x12\x14\n\x0cproduct_code\x18\x01 \x01(\t\x12\x15\n\rmetadata_hash\x18\x02 \x01(\t\x12\x11\n\ttimestamp\x18\x03 \x01(\t\"?\n\rActiveProcess\x12\x14\n\x0cprocess_name\x18\x01 \x01(\t\x12\x0b\n\x03pid\x18\x02 \x01(\x05\x12\x0b\n\x03uri\x18\x03 \x03(\t\"B\n\x10\x44ownloadSettings\x12\x16\n\x0e\x64ownload_limit\x18\x01 \x01(\x05\x12\x16\n\x0e\x62\x61\x63kfill_limit\x18\x02 \x01(\x05\"\xe3\x01\n\tProductDb\x12)\n\x10product_installs\x18\x01 \x03(\x0b\x32\x0f.ProductInstall\x12*\n\x0f\x61\x63tive_installs\x18\x02 \x03(\x0b\x32\x11.InstallHandshake\x12(\n\x10\x61\x63tive_processes\x18\x03 \x03(\x0b\x32\x0e.ActiveProcess\x12\'\n\x0fproduct_configs\x18\x04 \x03(\x0b\x32\x0e.ProductConfig\x12,\n\x11\x64ownload_settings\x18\x05 \x01(\x0b\x32\x11.DownloadSettings*q\n\x0eLanguageOption\x12\x13\n\x0fLANGOPTION_NONE\x10\x00\x12\x13\n\x0fLANGOPTION_TEXT\x10\x01\x12\x15\n\x11LANGOPTION_SPEECH\x10\x02\x12\x1e\n\x1aLANGOPTION_TEXT_AND_SPEECH\x10\x03*u\n\x13LanguageSettingType\x12\x14\n\x10LANGSETTING_NONE\x10\x00\x12\x16\n\x12LANGSETTING_SINGLE\x10\x01\x12\x16\n\x12LANGSETTING_SIMPLE\x10\x02\x12\x18\n\x14LANGSETTING_ADVANCED\x10\x03*N\n\x0eShortcutOption\x12\x11\n\rSHORTCUT_NONE\x10\x00\x12\x11\n\rSHORTCUT_USER\x10\x01\x12\x16\n\x12SHORTCUT_ALL_USERS\x10\x02*P\n\tOperation\x12\r\n\tOP_UPDATE\x10\x00\x12\x0f\n\x0bOP_BACKFILL\x10\x01\x12\r\n\tOP_REPAIR\x10\x02\x12\x14\n\x07OP_NONE\x10\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x62\x06proto3')  # noqa pylint: disable=line-too-long
)
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

_LANGUAGEOPTION = _descriptor.EnumDescriptor(
    name='LanguageOption',
    full_name='LanguageOption',
    filename=None,
    file=DESCRIPTOR,
    values=[
        _descriptor.EnumValueDescriptor(
            name='LANGOPTION_NONE', index=0, number=0,
            options=None,
            type=None),
        _descriptor.EnumValueDescriptor(
            name='LANGOPTION_TEXT', index=1, number=1,
            options=None,
            type=None),
        _descriptor.EnumValueDescriptor(
            name='LANGOPTION_SPEECH', index=2, number=2,
            options=None,
            type=None),
        _descriptor.EnumValueDescriptor(
            name='LANGOPTION_TEXT_AND_SPEECH', index=3, number=3,
            options=None,
            type=None),
    ],
    containing_type=None,
    options=None,
    serialized_start=2142,
    serialized_end=2255,
)
_sym_db.RegisterEnumDescriptor(_LANGUAGEOPTION)

LanguageOption = enum_type_wrapper.EnumTypeWrapper(_LANGUAGEOPTION)
_LANGUAGESETTINGTYPE = _descriptor.EnumDescriptor(
    name='LanguageSettingType',
    full_name='LanguageSettingType',
    filename=None,
    file=DESCRIPTOR,
    values=[
        _descriptor.EnumValueDescriptor(
            name='LANGSETTING_NONE', index=0, number=0,
            options=None,
            type=None),
        _descriptor.EnumValueDescriptor(
            name='LANGSETTING_SINGLE', index=1, number=1,
            options=None,
            type=None),
        _descriptor.EnumValueDescriptor(
            name='LANGSETTING_SIMPLE', index=2, number=2,
            options=None,
            type=None),
        _descriptor.EnumValueDescriptor(
            name='LANGSETTING_ADVANCED', index=3, number=3,
            options=None,
            type=None),
    ],
    containing_type=None,
    options=None,
    serialized_start=2257,
    serialized_end=2374,
)
_sym_db.RegisterEnumDescriptor(_LANGUAGESETTINGTYPE)

LanguageSettingType = enum_type_wrapper.EnumTypeWrapper(_LANGUAGESETTINGTYPE)
_SHORTCUTOPTION = _descriptor.EnumDescriptor(
    name='ShortcutOption',
    full_name='ShortcutOption',
    filename=None,
    file=DESCRIPTOR,
    values=[
        _descriptor.EnumValueDescriptor(
            name='SHORTCUT_NONE', index=0, number=0,
            options=None,
            type=None),
        _descriptor.EnumValueDescriptor(
            name='SHORTCUT_USER', index=1, number=1,
            options=None,
            type=None),
        _descriptor.EnumValueDescriptor(
            name='SHORTCUT_ALL_USERS', index=2, number=2,
            options=None,
            type=None),
    ],
    containing_type=None,
    options=None,
    serialized_start=2376,
    serialized_end=2454,
)
_sym_db.RegisterEnumDescriptor(_SHORTCUTOPTION)

ShortcutOption = enum_type_wrapper.EnumTypeWrapper(_SHORTCUTOPTION)
_OPERATION = _descriptor.EnumDescriptor(
    name='Operation',
    full_name='Operation',
    filename=None,
    file=DESCRIPTOR,
    values=[
        _descriptor.EnumValueDescriptor(
            name='OP_UPDATE', index=0, number=0,
            options=None,
            type=None),
        _descriptor.EnumValueDescriptor(
            name='OP_BACKFILL', index=1, number=1,
            options=None,
            type=None),
        _descriptor.EnumValueDescriptor(
            name='OP_REPAIR', index=2, number=2,
            options=None,
            type=None),
        _descriptor.EnumValueDescriptor(
            name='OP_NONE', index=3, number=-1,
            options=None,
            type=None),
    ],
    containing_type=None,
    options=None,
    serialized_start=2456,
    serialized_end=2536,
)
_sym_db.RegisterEnumDescriptor(_OPERATION)

Operation = enum_type_wrapper.EnumTypeWrapper(_OPERATION)
LANGOPTION_NONE = 0
LANGOPTION_TEXT = 1
LANGOPTION_SPEECH = 2
LANGOPTION_TEXT_AND_SPEECH = 3
LANGSETTING_NONE = 0
LANGSETTING_SINGLE = 1
LANGSETTING_SIMPLE = 2
LANGSETTING_ADVANCED = 3
SHORTCUT_NONE = 0
SHORTCUT_USER = 1
SHORTCUT_ALL_USERS = 2
OP_UPDATE = 0
OP_BACKFILL = 1
OP_REPAIR = 2
OP_NONE = -1

_LANGUAGESETTING = _descriptor.Descriptor(
    name='LanguageSetting',
    full_name='LanguageSetting',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='language', full_name='LanguageSetting.language', index=0,
            number=1, type=9, cpp_type=9, label=1,
            has_default_value=False, default_value=_b("").decode('utf-8'),
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='option', full_name='LanguageSetting.option', index=1,
            number=2, type=14, cpp_type=8, label=1,
            has_default_value=False, default_value=0,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=20,
    serialized_end=88,
)

_USERSETTINGS = _descriptor.Descriptor(
    name='UserSettings',
    full_name='UserSettings',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='install_path', full_name='UserSettings.install_path', index=0,
            number=1, type=9, cpp_type=9, label=1,
            has_default_value=False, default_value=_b("").decode('utf-8'),
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='play_region', full_name='UserSettings.play_region', index=1,
            number=2, type=9, cpp_type=9, label=1,
            has_default_value=False, default_value=_b("").decode('utf-8'),
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='desktop_shortcut', full_name='UserSettings.desktop_shortcut', index=2,
            number=3, type=14, cpp_type=8, label=1,
            has_default_value=False, default_value=0,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='startmenu_shortcut', full_name='UserSettings.startmenu_shortcut', index=3,
            number=4, type=14, cpp_type=8, label=1,
            has_default_value=False, default_value=0,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='language_settings', full_name='UserSettings.language_settings', index=4,
            number=5, type=14, cpp_type=8, label=1,
            has_default_value=False, default_value=0,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='selected_text_language', full_name='UserSettings.selected_text_language', index=5,
            number=6, type=9, cpp_type=9, label=1,
            has_default_value=False, default_value=_b("").decode('utf-8'),
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='selected_speech_language', full_name='UserSettings.selected_speech_language', index=6,
            number=7, type=9, cpp_type=9, label=1,
            has_default_value=False, default_value=_b("").decode('utf-8'),
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='languages', full_name='UserSettings.languages', index=7,
            number=8, type=11, cpp_type=10, label=3,
            has_default_value=False, default_value=[],
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='gfx_override_tags', full_name='UserSettings.gfx_override_tags', index=8,
            number=9, type=9, cpp_type=9, label=1,
            has_default_value=False, default_value=_b("").decode('utf-8'),
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='versionbranch', full_name='UserSettings.versionbranch', index=9,
            number=10, type=9, cpp_type=9, label=1,
            has_default_value=False, default_value=_b("").decode('utf-8'),
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=91,
    serialized_end=438,
)

_INSTALLHANDSHAKE = _descriptor.Descriptor(
    name='InstallHandshake',
    full_name='InstallHandshake',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='product', full_name='InstallHandshake.product', index=0,
            number=1, type=9, cpp_type=9, label=1,
            has_default_value=False, default_value=_b("").decode('utf-8'),
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='uid', full_name='InstallHandshake.uid', index=1,
            number=2, type=9, cpp_type=9, label=1,
            has_default_value=False, default_value=_b("").decode('utf-8'),
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='settings', full_name='InstallHandshake.settings', index=2,
            number=3, type=11, cpp_type=10, label=1,
            has_default_value=False, default_value=None,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=440,
    serialized_end=521,
)

_BUILDCONFIG = _descriptor.Descriptor(
    name='BuildConfig',
    full_name='BuildConfig',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='region', full_name='BuildConfig.region', index=0,
            number=1, type=9, cpp_type=9, label=1,
            has_default_value=False, default_value=_b("").decode('utf-8'),
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='build_config', full_name='BuildConfig.build_config', index=1,
            number=2, type=9, cpp_type=9, label=1,
            has_default_value=False, default_value=_b("").decode('utf-8'),
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=523,
    serialized_end=574,
)

_BASEPRODUCTSTATE = _descriptor.Descriptor(
    name='BaseProductState',
    full_name='BaseProductState',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='installed', full_name='BaseProductState.installed', index=0,
            number=1, type=8, cpp_type=7, label=1,
            has_default_value=False, default_value=False,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='playable', full_name='BaseProductState.playable', index=1,
            number=2, type=8, cpp_type=7, label=1,
            has_default_value=False, default_value=False,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='update_complete', full_name='BaseProductState.update_complete', index=2,
            number=3, type=8, cpp_type=7, label=1,
            has_default_value=False, default_value=False,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='background_download_available', full_name='BaseProductState.background_download_available', index=3,
            number=4, type=8, cpp_type=7, label=1,
            has_default_value=False, default_value=False,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='background_download_complete', full_name='BaseProductState.background_download_complete', index=4,
            number=5, type=8, cpp_type=7, label=1,
            has_default_value=False, default_value=False,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='current_version', full_name='BaseProductState.current_version', index=5,
            number=6, type=9, cpp_type=9, label=1,
            has_default_value=False, default_value=_b("").decode('utf-8'),
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='current_version_str', full_name='BaseProductState.current_version_str', index=6,
            number=7, type=9, cpp_type=9, label=1,
            has_default_value=False, default_value=_b("").decode('utf-8'),
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='installed_build_config', full_name='BaseProductState.installed_build_config', index=7,
            number=8, type=11, cpp_type=10, label=3,
            has_default_value=False, default_value=[],
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='background_download_build_config',
            full_name='BaseProductState.background_download_build_config',
            index=8,
            number=9, type=11, cpp_type=10, label=3,
            has_default_value=False, default_value=[],
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='decryption_key', full_name='BaseProductState.decryption_key', index=9,
            number=10, type=9, cpp_type=9, label=1,
            has_default_value=False, default_value=_b("").decode('utf-8'),
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='completed_install_actions', full_name='BaseProductState.completed_install_actions', index=10,
            number=11, type=9, cpp_type=9, label=3,
            has_default_value=False, default_value=[],
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=577,
    serialized_end=949,
)

_BACKFILLPROGRESS = _descriptor.Descriptor(
    name='BackfillProgress',
    full_name='BackfillProgress',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='progress', full_name='BackfillProgress.progress', index=0,
            number=1, type=1, cpp_type=5, label=1,
            has_default_value=False, default_value=float(0),
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='backgrounddownload', full_name='BackfillProgress.backgrounddownload', index=1,
            number=2, type=8, cpp_type=7, label=1,
            has_default_value=False, default_value=False,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='paused', full_name='BackfillProgress.paused', index=2,
            number=3, type=8, cpp_type=7, label=1,
            has_default_value=False, default_value=False,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='download_limit', full_name='BackfillProgress.download_limit', index=3,
            number=4, type=4, cpp_type=4, label=1,
            has_default_value=False, default_value=0,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=951,
    serialized_end=1055,
)

_REPAIRPROGRESS = _descriptor.Descriptor(
    name='RepairProgress',
    full_name='RepairProgress',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='progress', full_name='RepairProgress.progress', index=0,
            number=1, type=1, cpp_type=5, label=1,
            has_default_value=False, default_value=float(0),
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=1057,
    serialized_end=1091,
)

_UPDATEPROGRESS = _descriptor.Descriptor(
    name='UpdateProgress',
    full_name='UpdateProgress',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='last_disc_set_used', full_name='UpdateProgress.last_disc_set_used', index=0,
            number=1, type=9, cpp_type=9, label=1,
            has_default_value=False, default_value=_b("").decode('utf-8'),
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='progress', full_name='UpdateProgress.progress', index=1,
            number=2, type=1, cpp_type=5, label=1,
            has_default_value=False, default_value=float(0),
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='disc_ignored', full_name='UpdateProgress.disc_ignored', index=2,
            number=3, type=8, cpp_type=7, label=1,
            has_default_value=False, default_value=False,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='total_to_download', full_name='UpdateProgress.total_to_download', index=3,
            number=4, type=4, cpp_type=4, label=1,
            has_default_value=False, default_value=0,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='download_remaining', full_name='UpdateProgress.download_remaining', index=4,
            number=5, type=4, cpp_type=4, label=1,
            has_default_value=False, default_value=0,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=1094,
    serialized_end=1233,
)

_CACHEDPRODUCTSTATE = _descriptor.Descriptor(
    name='CachedProductState',
    full_name='CachedProductState',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='base_product_state', full_name='CachedProductState.base_product_state', index=0,
            number=1, type=11, cpp_type=10, label=1,
            has_default_value=False, default_value=None,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='backfill_progress', full_name='CachedProductState.backfill_progress', index=1,
            number=2, type=11, cpp_type=10, label=1,
            has_default_value=False, default_value=None,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='repair_progress', full_name='CachedProductState.repair_progress', index=2,
            number=3, type=11, cpp_type=10, label=1,
            has_default_value=False, default_value=None,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='update_progress', full_name='CachedProductState.update_progress', index=3,
            number=4, type=11, cpp_type=10, label=1,
            has_default_value=False, default_value=None,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=1236,
    serialized_end=1433,
)

_PRODUCTOPERATIONS = _descriptor.Descriptor(
    name='ProductOperations',
    full_name='ProductOperations',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='active_operation', full_name='ProductOperations.active_operation', index=0,
            number=1, type=14, cpp_type=8, label=1,
            has_default_value=False, default_value=0,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='priority', full_name='ProductOperations.priority', index=1,
            number=2, type=4, cpp_type=4, label=1,
            has_default_value=False, default_value=0,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=1435,
    serialized_end=1510,
)

_PRODUCTINSTALL = _descriptor.Descriptor(
    name='ProductInstall',
    full_name='ProductInstall',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='uid', full_name='ProductInstall.uid', index=0,
            number=1, type=9, cpp_type=9, label=1,
            has_default_value=False, default_value=_b("").decode('utf-8'),
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='product_code', full_name='ProductInstall.product_code', index=1,
            number=2, type=9, cpp_type=9, label=1,
            has_default_value=False, default_value=_b("").decode('utf-8'),
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='settings', full_name='ProductInstall.settings', index=2,
            number=3, type=11, cpp_type=10, label=1,
            has_default_value=False, default_value=None,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='cached_product_state', full_name='ProductInstall.cached_product_state', index=3,
            number=4, type=11, cpp_type=10, label=1,
            has_default_value=False, default_value=None,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='product_operations', full_name='ProductInstall.product_operations', index=4,
            number=5, type=11, cpp_type=10, label=1,
            has_default_value=False, default_value=None,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=1513,
    serialized_end=1696,
)

_PRODUCTCONFIG = _descriptor.Descriptor(
    name='ProductConfig',
    full_name='ProductConfig',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='product_code', full_name='ProductConfig.product_code', index=0,
            number=1, type=9, cpp_type=9, label=1,
            has_default_value=False, default_value=_b("").decode('utf-8'),
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='metadata_hash', full_name='ProductConfig.metadata_hash', index=1,
            number=2, type=9, cpp_type=9, label=1,
            has_default_value=False, default_value=_b("").decode('utf-8'),
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='timestamp', full_name='ProductConfig.timestamp', index=2,
            number=3, type=9, cpp_type=9, label=1,
            has_default_value=False, default_value=_b("").decode('utf-8'),
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=1698,
    serialized_end=1777,
)

_ACTIVEPROCESS = _descriptor.Descriptor(
    name='ActiveProcess',
    full_name='ActiveProcess',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='process_name', full_name='ActiveProcess.process_name', index=0,
            number=1, type=9, cpp_type=9, label=1,
            has_default_value=False, default_value=_b("").decode('utf-8'),
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='pid', full_name='ActiveProcess.pid', index=1,
            number=2, type=5, cpp_type=1, label=1,
            has_default_value=False, default_value=0,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='uri', full_name='ActiveProcess.uri', index=2,
            number=3, type=9, cpp_type=9, label=3,
            has_default_value=False, default_value=[],
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=1779,
    serialized_end=1842,
)

_DOWNLOADSETTINGS = _descriptor.Descriptor(
    name='DownloadSettings',
    full_name='DownloadSettings',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='download_limit', full_name='DownloadSettings.download_limit', index=0,
            number=1, type=5, cpp_type=1, label=1,
            has_default_value=False, default_value=0,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='backfill_limit', full_name='DownloadSettings.backfill_limit', index=1,
            number=2, type=5, cpp_type=1, label=1,
            has_default_value=False, default_value=0,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=1844,
    serialized_end=1910,
)

_PRODUCTDB = _descriptor.Descriptor(
    name='ProductDb',
    full_name='ProductDb',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='product_installs', full_name='ProductDb.product_installs', index=0,
            number=1, type=11, cpp_type=10, label=3,
            has_default_value=False, default_value=[],
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='active_installs', full_name='ProductDb.active_installs', index=1,
            number=2, type=11, cpp_type=10, label=3,
            has_default_value=False, default_value=[],
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='active_processes', full_name='ProductDb.active_processes', index=2,
            number=3, type=11, cpp_type=10, label=3,
            has_default_value=False, default_value=[],
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='product_configs', full_name='ProductDb.product_configs', index=3,
            number=4, type=11, cpp_type=10, label=3,
            has_default_value=False, default_value=[],
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
        _descriptor.FieldDescriptor(
            name='download_settings', full_name='ProductDb.download_settings', index=4,
            number=5, type=11, cpp_type=10, label=1,
            has_default_value=False, default_value=None,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            options=None),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=1913,
    serialized_end=2140,
)

_LANGUAGESETTING.fields_by_name['option'].enum_type = _LANGUAGEOPTION
_USERSETTINGS.fields_by_name['desktop_shortcut'].enum_type = _SHORTCUTOPTION
_USERSETTINGS.fields_by_name['startmenu_shortcut'].enum_type = _SHORTCUTOPTION
_USERSETTINGS.fields_by_name['language_settings'].enum_type = _LANGUAGESETTINGTYPE
_USERSETTINGS.fields_by_name['languages'].message_type = _LANGUAGESETTING
_INSTALLHANDSHAKE.fields_by_name['settings'].message_type = _USERSETTINGS
_BASEPRODUCTSTATE.fields_by_name['installed_build_config'].message_type = _BUILDCONFIG
_BASEPRODUCTSTATE.fields_by_name['background_download_build_config'].message_type = _BUILDCONFIG
_CACHEDPRODUCTSTATE.fields_by_name['base_product_state'].message_type = _BASEPRODUCTSTATE
_CACHEDPRODUCTSTATE.fields_by_name['backfill_progress'].message_type = _BACKFILLPROGRESS
_CACHEDPRODUCTSTATE.fields_by_name['repair_progress'].message_type = _REPAIRPROGRESS
_CACHEDPRODUCTSTATE.fields_by_name['update_progress'].message_type = _UPDATEPROGRESS
_PRODUCTOPERATIONS.fields_by_name['active_operation'].enum_type = _OPERATION
_PRODUCTINSTALL.fields_by_name['settings'].message_type = _USERSETTINGS
_PRODUCTINSTALL.fields_by_name['cached_product_state'].message_type = _CACHEDPRODUCTSTATE
_PRODUCTINSTALL.fields_by_name['product_operations'].message_type = _PRODUCTOPERATIONS
_PRODUCTDB.fields_by_name['product_installs'].message_type = _PRODUCTINSTALL
_PRODUCTDB.fields_by_name['active_installs'].message_type = _INSTALLHANDSHAKE
_PRODUCTDB.fields_by_name['active_processes'].message_type = _ACTIVEPROCESS
_PRODUCTDB.fields_by_name['product_configs'].message_type = _PRODUCTCONFIG
_PRODUCTDB.fields_by_name['download_settings'].message_type = _DOWNLOADSETTINGS
DESCRIPTOR.message_types_by_name['LanguageSetting'] = _LANGUAGESETTING
DESCRIPTOR.message_types_by_name['UserSettings'] = _USERSETTINGS
DESCRIPTOR.message_types_by_name['InstallHandshake'] = _INSTALLHANDSHAKE
DESCRIPTOR.message_types_by_name['BuildConfig'] = _BUILDCONFIG
DESCRIPTOR.message_types_by_name['BaseProductState'] = _BASEPRODUCTSTATE
DESCRIPTOR.message_types_by_name['BackfillProgress'] = _BACKFILLPROGRESS
DESCRIPTOR.message_types_by_name['RepairProgress'] = _REPAIRPROGRESS
DESCRIPTOR.message_types_by_name['UpdateProgress'] = _UPDATEPROGRESS
DESCRIPTOR.message_types_by_name['CachedProductState'] = _CACHEDPRODUCTSTATE
DESCRIPTOR.message_types_by_name['ProductOperations'] = _PRODUCTOPERATIONS
DESCRIPTOR.message_types_by_name['ProductInstall'] = _PRODUCTINSTALL
DESCRIPTOR.message_types_by_name['ProductConfig'] = _PRODUCTCONFIG
DESCRIPTOR.message_types_by_name['ActiveProcess'] = _ACTIVEPROCESS
DESCRIPTOR.message_types_by_name['DownloadSettings'] = _DOWNLOADSETTINGS
DESCRIPTOR.message_types_by_name['ProductDb'] = _PRODUCTDB
DESCRIPTOR.enum_types_by_name['LanguageOption'] = _LANGUAGEOPTION
DESCRIPTOR.enum_types_by_name['LanguageSettingType'] = _LANGUAGESETTINGTYPE
DESCRIPTOR.enum_types_by_name['ShortcutOption'] = _SHORTCUTOPTION
DESCRIPTOR.enum_types_by_name['Operation'] = _OPERATION

LanguageSetting = _reflection.GeneratedProtocolMessageType('LanguageSetting', (_message.Message,), dict(
    DESCRIPTOR=_LANGUAGESETTING,
    __module__='product_db_pb2'
    # @@protoc_insertion_point(class_scope:LanguageSetting)
))
_sym_db.RegisterMessage(LanguageSetting)

UserSettings = _reflection.GeneratedProtocolMessageType('UserSettings', (_message.Message,), dict(
    DESCRIPTOR=_USERSETTINGS,
    __module__='product_db_pb2'
    # @@protoc_insertion_point(class_scope:UserSettings)
))
_sym_db.RegisterMessage(UserSettings)

InstallHandshake = _reflection.GeneratedProtocolMessageType('InstallHandshake', (_message.Message,), dict(
    DESCRIPTOR=_INSTALLHANDSHAKE,
    __module__='product_db_pb2'
    # @@protoc_insertion_point(class_scope:InstallHandshake)
))
_sym_db.RegisterMessage(InstallHandshake)

BuildConfig = _reflection.GeneratedProtocolMessageType('BuildConfig', (_message.Message,), dict(
    DESCRIPTOR=_BUILDCONFIG,
    __module__='product_db_pb2'
    # @@protoc_insertion_point(class_scope:BuildConfig)
))
_sym_db.RegisterMessage(BuildConfig)

BaseProductState = _reflection.GeneratedProtocolMessageType('BaseProductState', (_message.Message,), dict(
    DESCRIPTOR=_BASEPRODUCTSTATE,
    __module__='product_db_pb2'
    # @@protoc_insertion_point(class_scope:BaseProductState)
))
_sym_db.RegisterMessage(BaseProductState)

BackfillProgress = _reflection.GeneratedProtocolMessageType('BackfillProgress', (_message.Message,), dict(
    DESCRIPTOR=_BACKFILLPROGRESS,
    __module__='product_db_pb2'
    # @@protoc_insertion_point(class_scope:BackfillProgress)
))
_sym_db.RegisterMessage(BackfillProgress)

RepairProgress = _reflection.GeneratedProtocolMessageType('RepairProgress', (_message.Message,), dict(
    DESCRIPTOR=_REPAIRPROGRESS,
    __module__='product_db_pb2'
    # @@protoc_insertion_point(class_scope:RepairProgress)
))
_sym_db.RegisterMessage(RepairProgress)

UpdateProgress = _reflection.GeneratedProtocolMessageType('UpdateProgress', (_message.Message,), dict(
    DESCRIPTOR=_UPDATEPROGRESS,
    __module__='product_db_pb2'
    # @@protoc_insertion_point(class_scope:UpdateProgress)
))
_sym_db.RegisterMessage(UpdateProgress)

CachedProductState = _reflection.GeneratedProtocolMessageType('CachedProductState', (_message.Message,), dict(
    DESCRIPTOR=_CACHEDPRODUCTSTATE,
    __module__='product_db_pb2'
    # @@protoc_insertion_point(class_scope:CachedProductState)
))
_sym_db.RegisterMessage(CachedProductState)

ProductOperations = _reflection.GeneratedProtocolMessageType('ProductOperations', (_message.Message,), dict(
    DESCRIPTOR=_PRODUCTOPERATIONS,
    __module__='product_db_pb2'
    # @@protoc_insertion_point(class_scope:ProductOperations)
))
_sym_db.RegisterMessage(ProductOperations)

ProductInstall = _reflection.GeneratedProtocolMessageType('ProductInstall', (_message.Message,), dict(
    DESCRIPTOR=_PRODUCTINSTALL,
    __module__='product_db_pb2'
    # @@protoc_insertion_point(class_scope:ProductInstall)
))
_sym_db.RegisterMessage(ProductInstall)

ProductConfig = _reflection.GeneratedProtocolMessageType('ProductConfig', (_message.Message,), dict(
    DESCRIPTOR=_PRODUCTCONFIG,
    __module__='product_db_pb2'
    # @@protoc_insertion_point(class_scope:ProductConfig)
))
_sym_db.RegisterMessage(ProductConfig)

ActiveProcess = _reflection.GeneratedProtocolMessageType('ActiveProcess', (_message.Message,), dict(
    DESCRIPTOR=_ACTIVEPROCESS,
    __module__='product_db_pb2'
    # @@protoc_insertion_point(class_scope:ActiveProcess)
))
_sym_db.RegisterMessage(ActiveProcess)

DownloadSettings = _reflection.GeneratedProtocolMessageType('DownloadSettings', (_message.Message,), dict(
    DESCRIPTOR=_DOWNLOADSETTINGS,
    __module__='product_db_pb2'
    # @@protoc_insertion_point(class_scope:DownloadSettings)
))
_sym_db.RegisterMessage(DownloadSettings)

ProductDb = _reflection.GeneratedProtocolMessageType('ProductDb', (_message.Message,), dict(
    DESCRIPTOR=_PRODUCTDB,
    __module__='product_db_pb2'
    # @@protoc_insertion_point(class_scope:ProductDb)
))
_sym_db.RegisterMessage(ProductDb)

# @@protoc_insertion_point(module_scope)
