// This file is generated by rust-protobuf 3.7.2. Do not edit
// .proto file is parsed by protoc --rs_out=...
// @generated

// https://github.com/rust-lang/rust-clippy/issues/702
#![allow(unknown_lints)]
#![allow(clippy::all)]

#![allow(unused_attributes)]
#![cfg_attr(rustfmt, rustfmt::skip)]

#![allow(dead_code)]
#![allow(missing_docs)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(non_upper_case_globals)]
#![allow(trivial_casts)]
#![allow(unused_results)]
#![allow(unused_mut)]

//! Generated file from `languages_public.proto`

/// Generated files are compatible only with the same version
/// of protobuf runtime.
const _PROTOBUF_VERSION_CHECK: () = ::protobuf::VERSION_3_7_2;

///  A region or territory as defined in the CLDR
// @@protoc_insertion_point(message:google.languages_public.RegionProto)
#[derive(PartialEq,Clone,Default,Debug)]
pub struct RegionProto {
    // message fields
    // @@protoc_insertion_point(field:google.languages_public.RegionProto.id)
    pub id: ::std::option::Option<::std::string::String>,
    // @@protoc_insertion_point(field:google.languages_public.RegionProto.name)
    pub name: ::std::option::Option<::std::string::String>,
    // @@protoc_insertion_point(field:google.languages_public.RegionProto.population)
    pub population: ::std::option::Option<i32>,
    // @@protoc_insertion_point(field:google.languages_public.RegionProto.region_group)
    pub region_group: ::std::vec::Vec<::std::string::String>,
    // special fields
    // @@protoc_insertion_point(special_field:google.languages_public.RegionProto.special_fields)
    pub special_fields: ::protobuf::SpecialFields,
}

impl<'a> ::std::default::Default for &'a RegionProto {
    fn default() -> &'a RegionProto {
        <RegionProto as ::protobuf::Message>::default_instance()
    }
}

impl RegionProto {
    pub fn new() -> RegionProto {
        ::std::default::Default::default()
    }

    // optional string id = 1;

    pub fn id(&self) -> &str {
        match self.id.as_ref() {
            Some(v) => v,
            None => "",
        }
    }

    pub fn clear_id(&mut self) {
        self.id = ::std::option::Option::None;
    }

    pub fn has_id(&self) -> bool {
        self.id.is_some()
    }

    // Param is passed by value, moved
    pub fn set_id(&mut self, v: ::std::string::String) {
        self.id = ::std::option::Option::Some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_id(&mut self) -> &mut ::std::string::String {
        if self.id.is_none() {
            self.id = ::std::option::Option::Some(::std::string::String::new());
        }
        self.id.as_mut().unwrap()
    }

    // Take field
    pub fn take_id(&mut self) -> ::std::string::String {
        self.id.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string name = 2;

    pub fn name(&self) -> &str {
        match self.name.as_ref() {
            Some(v) => v,
            None => "",
        }
    }

    pub fn clear_name(&mut self) {
        self.name = ::std::option::Option::None;
    }

    pub fn has_name(&self) -> bool {
        self.name.is_some()
    }

    // Param is passed by value, moved
    pub fn set_name(&mut self, v: ::std::string::String) {
        self.name = ::std::option::Option::Some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_name(&mut self) -> &mut ::std::string::String {
        if self.name.is_none() {
            self.name = ::std::option::Option::Some(::std::string::String::new());
        }
        self.name.as_mut().unwrap()
    }

    // Take field
    pub fn take_name(&mut self) -> ::std::string::String {
        self.name.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional int32 population = 3;

    pub fn population(&self) -> i32 {
        self.population.unwrap_or(0)
    }

    pub fn clear_population(&mut self) {
        self.population = ::std::option::Option::None;
    }

    pub fn has_population(&self) -> bool {
        self.population.is_some()
    }

    // Param is passed by value, moved
    pub fn set_population(&mut self, v: i32) {
        self.population = ::std::option::Option::Some(v);
    }

    fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
        let mut fields = ::std::vec::Vec::with_capacity(4);
        let mut oneofs = ::std::vec::Vec::with_capacity(0);
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "id",
            |m: &RegionProto| { &m.id },
            |m: &mut RegionProto| { &mut m.id },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "name",
            |m: &RegionProto| { &m.name },
            |m: &mut RegionProto| { &mut m.name },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "population",
            |m: &RegionProto| { &m.population },
            |m: &mut RegionProto| { &mut m.population },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
            "region_group",
            |m: &RegionProto| { &m.region_group },
            |m: &mut RegionProto| { &mut m.region_group },
        ));
        ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<RegionProto>(
            "RegionProto",
            fields,
            oneofs,
        )
    }
}

impl ::protobuf::Message for RegionProto {
    const NAME: &'static str = "RegionProto";

    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                10 => {
                    self.id = ::std::option::Option::Some(is.read_string()?);
                },
                18 => {
                    self.name = ::std::option::Option::Some(is.read_string()?);
                },
                24 => {
                    self.population = ::std::option::Option::Some(is.read_int32()?);
                },
                34 => {
                    self.region_group.push(is.read_string()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.id.as_ref() {
            my_size += ::protobuf::rt::string_size(1, &v);
        }
        if let Some(v) = self.name.as_ref() {
            my_size += ::protobuf::rt::string_size(2, &v);
        }
        if let Some(v) = self.population {
            my_size += ::protobuf::rt::int32_size(3, v);
        }
        for value in &self.region_group {
            my_size += ::protobuf::rt::string_size(4, &value);
        };
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.id.as_ref() {
            os.write_string(1, v)?;
        }
        if let Some(v) = self.name.as_ref() {
            os.write_string(2, v)?;
        }
        if let Some(v) = self.population {
            os.write_int32(3, v)?;
        }
        for v in &self.region_group {
            os.write_string(4, &v)?;
        };
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }

    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }

    fn new() -> RegionProto {
        RegionProto::new()
    }

    fn clear(&mut self) {
        self.id = ::std::option::Option::None;
        self.name = ::std::option::Option::None;
        self.population = ::std::option::Option::None;
        self.region_group.clear();
        self.special_fields.clear();
    }

    fn default_instance() -> &'static RegionProto {
        static instance: RegionProto = RegionProto {
            id: ::std::option::Option::None,
            name: ::std::option::Option::None,
            population: ::std::option::Option::None,
            region_group: ::std::vec::Vec::new(),
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}

impl ::protobuf::MessageFull for RegionProto {
    fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
        descriptor.get(|| file_descriptor().message_by_package_relative_name("RegionProto").unwrap()).clone()
    }
}

impl ::std::fmt::Display for RegionProto {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for RegionProto {
    type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}

// @@protoc_insertion_point(message:google.languages_public.ScriptProto)
#[derive(PartialEq,Clone,Default,Debug)]
pub struct ScriptProto {
    // message fields
    // @@protoc_insertion_point(field:google.languages_public.ScriptProto.id)
    pub id: ::std::option::Option<::std::string::String>,
    // @@protoc_insertion_point(field:google.languages_public.ScriptProto.name)
    pub name: ::std::option::Option<::std::string::String>,
    // @@protoc_insertion_point(field:google.languages_public.ScriptProto.historical)
    pub historical: ::std::option::Option<bool>,
    // @@protoc_insertion_point(field:google.languages_public.ScriptProto.fictional)
    pub fictional: ::std::option::Option<bool>,
    // @@protoc_insertion_point(field:google.languages_public.ScriptProto.family)
    pub family: ::std::option::Option<::std::string::String>,
    // @@protoc_insertion_point(field:google.languages_public.ScriptProto.summary)
    pub summary: ::std::option::Option<::std::string::String>,
    // special fields
    // @@protoc_insertion_point(special_field:google.languages_public.ScriptProto.special_fields)
    pub special_fields: ::protobuf::SpecialFields,
}

impl<'a> ::std::default::Default for &'a ScriptProto {
    fn default() -> &'a ScriptProto {
        <ScriptProto as ::protobuf::Message>::default_instance()
    }
}

impl ScriptProto {
    pub fn new() -> ScriptProto {
        ::std::default::Default::default()
    }

    // optional string id = 1;

    pub fn id(&self) -> &str {
        match self.id.as_ref() {
            Some(v) => v,
            None => "",
        }
    }

    pub fn clear_id(&mut self) {
        self.id = ::std::option::Option::None;
    }

    pub fn has_id(&self) -> bool {
        self.id.is_some()
    }

    // Param is passed by value, moved
    pub fn set_id(&mut self, v: ::std::string::String) {
        self.id = ::std::option::Option::Some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_id(&mut self) -> &mut ::std::string::String {
        if self.id.is_none() {
            self.id = ::std::option::Option::Some(::std::string::String::new());
        }
        self.id.as_mut().unwrap()
    }

    // Take field
    pub fn take_id(&mut self) -> ::std::string::String {
        self.id.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string name = 2;

    pub fn name(&self) -> &str {
        match self.name.as_ref() {
            Some(v) => v,
            None => "",
        }
    }

    pub fn clear_name(&mut self) {
        self.name = ::std::option::Option::None;
    }

    pub fn has_name(&self) -> bool {
        self.name.is_some()
    }

    // Param is passed by value, moved
    pub fn set_name(&mut self, v: ::std::string::String) {
        self.name = ::std::option::Option::Some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_name(&mut self) -> &mut ::std::string::String {
        if self.name.is_none() {
            self.name = ::std::option::Option::Some(::std::string::String::new());
        }
        self.name.as_mut().unwrap()
    }

    // Take field
    pub fn take_name(&mut self) -> ::std::string::String {
        self.name.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional bool historical = 3;

    pub fn historical(&self) -> bool {
        self.historical.unwrap_or(false)
    }

    pub fn clear_historical(&mut self) {
        self.historical = ::std::option::Option::None;
    }

    pub fn has_historical(&self) -> bool {
        self.historical.is_some()
    }

    // Param is passed by value, moved
    pub fn set_historical(&mut self, v: bool) {
        self.historical = ::std::option::Option::Some(v);
    }

    // optional bool fictional = 4;

    pub fn fictional(&self) -> bool {
        self.fictional.unwrap_or(false)
    }

    pub fn clear_fictional(&mut self) {
        self.fictional = ::std::option::Option::None;
    }

    pub fn has_fictional(&self) -> bool {
        self.fictional.is_some()
    }

    // Param is passed by value, moved
    pub fn set_fictional(&mut self, v: bool) {
        self.fictional = ::std::option::Option::Some(v);
    }

    // optional string family = 5;

    pub fn family(&self) -> &str {
        match self.family.as_ref() {
            Some(v) => v,
            None => "",
        }
    }

    pub fn clear_family(&mut self) {
        self.family = ::std::option::Option::None;
    }

    pub fn has_family(&self) -> bool {
        self.family.is_some()
    }

    // Param is passed by value, moved
    pub fn set_family(&mut self, v: ::std::string::String) {
        self.family = ::std::option::Option::Some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_family(&mut self) -> &mut ::std::string::String {
        if self.family.is_none() {
            self.family = ::std::option::Option::Some(::std::string::String::new());
        }
        self.family.as_mut().unwrap()
    }

    // Take field
    pub fn take_family(&mut self) -> ::std::string::String {
        self.family.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string summary = 6;

    pub fn summary(&self) -> &str {
        match self.summary.as_ref() {
            Some(v) => v,
            None => "",
        }
    }

    pub fn clear_summary(&mut self) {
        self.summary = ::std::option::Option::None;
    }

    pub fn has_summary(&self) -> bool {
        self.summary.is_some()
    }

    // Param is passed by value, moved
    pub fn set_summary(&mut self, v: ::std::string::String) {
        self.summary = ::std::option::Option::Some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_summary(&mut self) -> &mut ::std::string::String {
        if self.summary.is_none() {
            self.summary = ::std::option::Option::Some(::std::string::String::new());
        }
        self.summary.as_mut().unwrap()
    }

    // Take field
    pub fn take_summary(&mut self) -> ::std::string::String {
        self.summary.take().unwrap_or_else(|| ::std::string::String::new())
    }

    fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
        let mut fields = ::std::vec::Vec::with_capacity(6);
        let mut oneofs = ::std::vec::Vec::with_capacity(0);
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "id",
            |m: &ScriptProto| { &m.id },
            |m: &mut ScriptProto| { &mut m.id },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "name",
            |m: &ScriptProto| { &m.name },
            |m: &mut ScriptProto| { &mut m.name },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "historical",
            |m: &ScriptProto| { &m.historical },
            |m: &mut ScriptProto| { &mut m.historical },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "fictional",
            |m: &ScriptProto| { &m.fictional },
            |m: &mut ScriptProto| { &mut m.fictional },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "family",
            |m: &ScriptProto| { &m.family },
            |m: &mut ScriptProto| { &mut m.family },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "summary",
            |m: &ScriptProto| { &m.summary },
            |m: &mut ScriptProto| { &mut m.summary },
        ));
        ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<ScriptProto>(
            "ScriptProto",
            fields,
            oneofs,
        )
    }
}

impl ::protobuf::Message for ScriptProto {
    const NAME: &'static str = "ScriptProto";

    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                10 => {
                    self.id = ::std::option::Option::Some(is.read_string()?);
                },
                18 => {
                    self.name = ::std::option::Option::Some(is.read_string()?);
                },
                24 => {
                    self.historical = ::std::option::Option::Some(is.read_bool()?);
                },
                32 => {
                    self.fictional = ::std::option::Option::Some(is.read_bool()?);
                },
                42 => {
                    self.family = ::std::option::Option::Some(is.read_string()?);
                },
                50 => {
                    self.summary = ::std::option::Option::Some(is.read_string()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.id.as_ref() {
            my_size += ::protobuf::rt::string_size(1, &v);
        }
        if let Some(v) = self.name.as_ref() {
            my_size += ::protobuf::rt::string_size(2, &v);
        }
        if let Some(v) = self.historical {
            my_size += 1 + 1;
        }
        if let Some(v) = self.fictional {
            my_size += 1 + 1;
        }
        if let Some(v) = self.family.as_ref() {
            my_size += ::protobuf::rt::string_size(5, &v);
        }
        if let Some(v) = self.summary.as_ref() {
            my_size += ::protobuf::rt::string_size(6, &v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.id.as_ref() {
            os.write_string(1, v)?;
        }
        if let Some(v) = self.name.as_ref() {
            os.write_string(2, v)?;
        }
        if let Some(v) = self.historical {
            os.write_bool(3, v)?;
        }
        if let Some(v) = self.fictional {
            os.write_bool(4, v)?;
        }
        if let Some(v) = self.family.as_ref() {
            os.write_string(5, v)?;
        }
        if let Some(v) = self.summary.as_ref() {
            os.write_string(6, v)?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }

    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }

    fn new() -> ScriptProto {
        ScriptProto::new()
    }

    fn clear(&mut self) {
        self.id = ::std::option::Option::None;
        self.name = ::std::option::Option::None;
        self.historical = ::std::option::Option::None;
        self.fictional = ::std::option::Option::None;
        self.family = ::std::option::Option::None;
        self.summary = ::std::option::Option::None;
        self.special_fields.clear();
    }

    fn default_instance() -> &'static ScriptProto {
        static instance: ScriptProto = ScriptProto {
            id: ::std::option::Option::None,
            name: ::std::option::Option::None,
            historical: ::std::option::Option::None,
            fictional: ::std::option::Option::None,
            family: ::std::option::Option::None,
            summary: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}

impl ::protobuf::MessageFull for ScriptProto {
    fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
        descriptor.get(|| file_descriptor().message_by_package_relative_name("ScriptProto").unwrap()).clone()
    }
}

impl ::std::fmt::Display for ScriptProto {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for ScriptProto {
    type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}

// @@protoc_insertion_point(message:google.languages_public.LanguageProto)
#[derive(PartialEq,Clone,Default,Debug)]
pub struct LanguageProto {
    // message fields
    // @@protoc_insertion_point(field:google.languages_public.LanguageProto.id)
    pub id: ::std::option::Option<::std::string::String>,
    // @@protoc_insertion_point(field:google.languages_public.LanguageProto.language)
    pub language: ::std::option::Option<::std::string::String>,
    // @@protoc_insertion_point(field:google.languages_public.LanguageProto.script)
    pub script: ::std::option::Option<::std::string::String>,
    // @@protoc_insertion_point(field:google.languages_public.LanguageProto.name)
    pub name: ::std::option::Option<::std::string::String>,
    // @@protoc_insertion_point(field:google.languages_public.LanguageProto.preferred_name)
    pub preferred_name: ::std::option::Option<::std::string::String>,
    // @@protoc_insertion_point(field:google.languages_public.LanguageProto.autonym)
    pub autonym: ::std::option::Option<::std::string::String>,
    // @@protoc_insertion_point(field:google.languages_public.LanguageProto.population)
    pub population: ::std::option::Option<i32>,
    // @@protoc_insertion_point(field:google.languages_public.LanguageProto.region)
    pub region: ::std::vec::Vec<::std::string::String>,
    // @@protoc_insertion_point(field:google.languages_public.LanguageProto.exemplar_chars)
    pub exemplar_chars: ::protobuf::MessageField<ExemplarCharsProto>,
    // @@protoc_insertion_point(field:google.languages_public.LanguageProto.sample_text)
    pub sample_text: ::protobuf::MessageField<SampleTextProto>,
    // @@protoc_insertion_point(field:google.languages_public.LanguageProto.historical)
    pub historical: ::std::option::Option<bool>,
    // @@protoc_insertion_point(field:google.languages_public.LanguageProto.source)
    pub source: ::std::vec::Vec<::std::string::String>,
    // @@protoc_insertion_point(field:google.languages_public.LanguageProto.note)
    pub note: ::std::option::Option<::std::string::String>,
    // special fields
    // @@protoc_insertion_point(special_field:google.languages_public.LanguageProto.special_fields)
    pub special_fields: ::protobuf::SpecialFields,
}

impl<'a> ::std::default::Default for &'a LanguageProto {
    fn default() -> &'a LanguageProto {
        <LanguageProto as ::protobuf::Message>::default_instance()
    }
}

impl LanguageProto {
    pub fn new() -> LanguageProto {
        ::std::default::Default::default()
    }

    // optional string id = 1;

    pub fn id(&self) -> &str {
        match self.id.as_ref() {
            Some(v) => v,
            None => "",
        }
    }

    pub fn clear_id(&mut self) {
        self.id = ::std::option::Option::None;
    }

    pub fn has_id(&self) -> bool {
        self.id.is_some()
    }

    // Param is passed by value, moved
    pub fn set_id(&mut self, v: ::std::string::String) {
        self.id = ::std::option::Option::Some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_id(&mut self) -> &mut ::std::string::String {
        if self.id.is_none() {
            self.id = ::std::option::Option::Some(::std::string::String::new());
        }
        self.id.as_mut().unwrap()
    }

    // Take field
    pub fn take_id(&mut self) -> ::std::string::String {
        self.id.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string language = 2;

    pub fn language(&self) -> &str {
        match self.language.as_ref() {
            Some(v) => v,
            None => "",
        }
    }

    pub fn clear_language(&mut self) {
        self.language = ::std::option::Option::None;
    }

    pub fn has_language(&self) -> bool {
        self.language.is_some()
    }

    // Param is passed by value, moved
    pub fn set_language(&mut self, v: ::std::string::String) {
        self.language = ::std::option::Option::Some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_language(&mut self) -> &mut ::std::string::String {
        if self.language.is_none() {
            self.language = ::std::option::Option::Some(::std::string::String::new());
        }
        self.language.as_mut().unwrap()
    }

    // Take field
    pub fn take_language(&mut self) -> ::std::string::String {
        self.language.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string script = 3;

    pub fn script(&self) -> &str {
        match self.script.as_ref() {
            Some(v) => v,
            None => "",
        }
    }

    pub fn clear_script(&mut self) {
        self.script = ::std::option::Option::None;
    }

    pub fn has_script(&self) -> bool {
        self.script.is_some()
    }

    // Param is passed by value, moved
    pub fn set_script(&mut self, v: ::std::string::String) {
        self.script = ::std::option::Option::Some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_script(&mut self) -> &mut ::std::string::String {
        if self.script.is_none() {
            self.script = ::std::option::Option::Some(::std::string::String::new());
        }
        self.script.as_mut().unwrap()
    }

    // Take field
    pub fn take_script(&mut self) -> ::std::string::String {
        self.script.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string name = 4;

    pub fn name(&self) -> &str {
        match self.name.as_ref() {
            Some(v) => v,
            None => "",
        }
    }

    pub fn clear_name(&mut self) {
        self.name = ::std::option::Option::None;
    }

    pub fn has_name(&self) -> bool {
        self.name.is_some()
    }

    // Param is passed by value, moved
    pub fn set_name(&mut self, v: ::std::string::String) {
        self.name = ::std::option::Option::Some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_name(&mut self) -> &mut ::std::string::String {
        if self.name.is_none() {
            self.name = ::std::option::Option::Some(::std::string::String::new());
        }
        self.name.as_mut().unwrap()
    }

    // Take field
    pub fn take_name(&mut self) -> ::std::string::String {
        self.name.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string preferred_name = 5;

    pub fn preferred_name(&self) -> &str {
        match self.preferred_name.as_ref() {
            Some(v) => v,
            None => "",
        }
    }

    pub fn clear_preferred_name(&mut self) {
        self.preferred_name = ::std::option::Option::None;
    }

    pub fn has_preferred_name(&self) -> bool {
        self.preferred_name.is_some()
    }

    // Param is passed by value, moved
    pub fn set_preferred_name(&mut self, v: ::std::string::String) {
        self.preferred_name = ::std::option::Option::Some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_preferred_name(&mut self) -> &mut ::std::string::String {
        if self.preferred_name.is_none() {
            self.preferred_name = ::std::option::Option::Some(::std::string::String::new());
        }
        self.preferred_name.as_mut().unwrap()
    }

    // Take field
    pub fn take_preferred_name(&mut self) -> ::std::string::String {
        self.preferred_name.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string autonym = 6;

    pub fn autonym(&self) -> &str {
        match self.autonym.as_ref() {
            Some(v) => v,
            None => "",
        }
    }

    pub fn clear_autonym(&mut self) {
        self.autonym = ::std::option::Option::None;
    }

    pub fn has_autonym(&self) -> bool {
        self.autonym.is_some()
    }

    // Param is passed by value, moved
    pub fn set_autonym(&mut self, v: ::std::string::String) {
        self.autonym = ::std::option::Option::Some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_autonym(&mut self) -> &mut ::std::string::String {
        if self.autonym.is_none() {
            self.autonym = ::std::option::Option::Some(::std::string::String::new());
        }
        self.autonym.as_mut().unwrap()
    }

    // Take field
    pub fn take_autonym(&mut self) -> ::std::string::String {
        self.autonym.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional int32 population = 7;

    pub fn population(&self) -> i32 {
        self.population.unwrap_or(0)
    }

    pub fn clear_population(&mut self) {
        self.population = ::std::option::Option::None;
    }

    pub fn has_population(&self) -> bool {
        self.population.is_some()
    }

    // Param is passed by value, moved
    pub fn set_population(&mut self, v: i32) {
        self.population = ::std::option::Option::Some(v);
    }

    // optional bool historical = 11;

    pub fn historical(&self) -> bool {
        self.historical.unwrap_or(false)
    }

    pub fn clear_historical(&mut self) {
        self.historical = ::std::option::Option::None;
    }

    pub fn has_historical(&self) -> bool {
        self.historical.is_some()
    }

    // Param is passed by value, moved
    pub fn set_historical(&mut self, v: bool) {
        self.historical = ::std::option::Option::Some(v);
    }

    // optional string note = 13;

    pub fn note(&self) -> &str {
        match self.note.as_ref() {
            Some(v) => v,
            None => "",
        }
    }

    pub fn clear_note(&mut self) {
        self.note = ::std::option::Option::None;
    }

    pub fn has_note(&self) -> bool {
        self.note.is_some()
    }

    // Param is passed by value, moved
    pub fn set_note(&mut self, v: ::std::string::String) {
        self.note = ::std::option::Option::Some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_note(&mut self) -> &mut ::std::string::String {
        if self.note.is_none() {
            self.note = ::std::option::Option::Some(::std::string::String::new());
        }
        self.note.as_mut().unwrap()
    }

    // Take field
    pub fn take_note(&mut self) -> ::std::string::String {
        self.note.take().unwrap_or_else(|| ::std::string::String::new())
    }

    fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
        let mut fields = ::std::vec::Vec::with_capacity(13);
        let mut oneofs = ::std::vec::Vec::with_capacity(0);
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "id",
            |m: &LanguageProto| { &m.id },
            |m: &mut LanguageProto| { &mut m.id },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "language",
            |m: &LanguageProto| { &m.language },
            |m: &mut LanguageProto| { &mut m.language },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "script",
            |m: &LanguageProto| { &m.script },
            |m: &mut LanguageProto| { &mut m.script },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "name",
            |m: &LanguageProto| { &m.name },
            |m: &mut LanguageProto| { &mut m.name },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "preferred_name",
            |m: &LanguageProto| { &m.preferred_name },
            |m: &mut LanguageProto| { &mut m.preferred_name },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "autonym",
            |m: &LanguageProto| { &m.autonym },
            |m: &mut LanguageProto| { &mut m.autonym },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "population",
            |m: &LanguageProto| { &m.population },
            |m: &mut LanguageProto| { &mut m.population },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
            "region",
            |m: &LanguageProto| { &m.region },
            |m: &mut LanguageProto| { &mut m.region },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_message_field_accessor::<_, ExemplarCharsProto>(
            "exemplar_chars",
            |m: &LanguageProto| { &m.exemplar_chars },
            |m: &mut LanguageProto| { &mut m.exemplar_chars },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_message_field_accessor::<_, SampleTextProto>(
            "sample_text",
            |m: &LanguageProto| { &m.sample_text },
            |m: &mut LanguageProto| { &mut m.sample_text },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "historical",
            |m: &LanguageProto| { &m.historical },
            |m: &mut LanguageProto| { &mut m.historical },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
            "source",
            |m: &LanguageProto| { &m.source },
            |m: &mut LanguageProto| { &mut m.source },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "note",
            |m: &LanguageProto| { &m.note },
            |m: &mut LanguageProto| { &mut m.note },
        ));
        ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<LanguageProto>(
            "LanguageProto",
            fields,
            oneofs,
        )
    }
}

impl ::protobuf::Message for LanguageProto {
    const NAME: &'static str = "LanguageProto";

    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                10 => {
                    self.id = ::std::option::Option::Some(is.read_string()?);
                },
                18 => {
                    self.language = ::std::option::Option::Some(is.read_string()?);
                },
                26 => {
                    self.script = ::std::option::Option::Some(is.read_string()?);
                },
                34 => {
                    self.name = ::std::option::Option::Some(is.read_string()?);
                },
                42 => {
                    self.preferred_name = ::std::option::Option::Some(is.read_string()?);
                },
                50 => {
                    self.autonym = ::std::option::Option::Some(is.read_string()?);
                },
                56 => {
                    self.population = ::std::option::Option::Some(is.read_int32()?);
                },
                66 => {
                    self.region.push(is.read_string()?);
                },
                74 => {
                    ::protobuf::rt::read_singular_message_into_field(is, &mut self.exemplar_chars)?;
                },
                82 => {
                    ::protobuf::rt::read_singular_message_into_field(is, &mut self.sample_text)?;
                },
                88 => {
                    self.historical = ::std::option::Option::Some(is.read_bool()?);
                },
                98 => {
                    self.source.push(is.read_string()?);
                },
                106 => {
                    self.note = ::std::option::Option::Some(is.read_string()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.id.as_ref() {
            my_size += ::protobuf::rt::string_size(1, &v);
        }
        if let Some(v) = self.language.as_ref() {
            my_size += ::protobuf::rt::string_size(2, &v);
        }
        if let Some(v) = self.script.as_ref() {
            my_size += ::protobuf::rt::string_size(3, &v);
        }
        if let Some(v) = self.name.as_ref() {
            my_size += ::protobuf::rt::string_size(4, &v);
        }
        if let Some(v) = self.preferred_name.as_ref() {
            my_size += ::protobuf::rt::string_size(5, &v);
        }
        if let Some(v) = self.autonym.as_ref() {
            my_size += ::protobuf::rt::string_size(6, &v);
        }
        if let Some(v) = self.population {
            my_size += ::protobuf::rt::int32_size(7, v);
        }
        for value in &self.region {
            my_size += ::protobuf::rt::string_size(8, &value);
        };
        if let Some(v) = self.exemplar_chars.as_ref() {
            let len = v.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
        }
        if let Some(v) = self.sample_text.as_ref() {
            let len = v.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
        }
        if let Some(v) = self.historical {
            my_size += 1 + 1;
        }
        for value in &self.source {
            my_size += ::protobuf::rt::string_size(12, &value);
        };
        if let Some(v) = self.note.as_ref() {
            my_size += ::protobuf::rt::string_size(13, &v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.id.as_ref() {
            os.write_string(1, v)?;
        }
        if let Some(v) = self.language.as_ref() {
            os.write_string(2, v)?;
        }
        if let Some(v) = self.script.as_ref() {
            os.write_string(3, v)?;
        }
        if let Some(v) = self.name.as_ref() {
            os.write_string(4, v)?;
        }
        if let Some(v) = self.preferred_name.as_ref() {
            os.write_string(5, v)?;
        }
        if let Some(v) = self.autonym.as_ref() {
            os.write_string(6, v)?;
        }
        if let Some(v) = self.population {
            os.write_int32(7, v)?;
        }
        for v in &self.region {
            os.write_string(8, &v)?;
        };
        if let Some(v) = self.exemplar_chars.as_ref() {
            ::protobuf::rt::write_message_field_with_cached_size(9, v, os)?;
        }
        if let Some(v) = self.sample_text.as_ref() {
            ::protobuf::rt::write_message_field_with_cached_size(10, v, os)?;
        }
        if let Some(v) = self.historical {
            os.write_bool(11, v)?;
        }
        for v in &self.source {
            os.write_string(12, &v)?;
        };
        if let Some(v) = self.note.as_ref() {
            os.write_string(13, v)?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }

    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }

    fn new() -> LanguageProto {
        LanguageProto::new()
    }

    fn clear(&mut self) {
        self.id = ::std::option::Option::None;
        self.language = ::std::option::Option::None;
        self.script = ::std::option::Option::None;
        self.name = ::std::option::Option::None;
        self.preferred_name = ::std::option::Option::None;
        self.autonym = ::std::option::Option::None;
        self.population = ::std::option::Option::None;
        self.region.clear();
        self.exemplar_chars.clear();
        self.sample_text.clear();
        self.historical = ::std::option::Option::None;
        self.source.clear();
        self.note = ::std::option::Option::None;
        self.special_fields.clear();
    }

    fn default_instance() -> &'static LanguageProto {
        static instance: LanguageProto = LanguageProto {
            id: ::std::option::Option::None,
            language: ::std::option::Option::None,
            script: ::std::option::Option::None,
            name: ::std::option::Option::None,
            preferred_name: ::std::option::Option::None,
            autonym: ::std::option::Option::None,
            population: ::std::option::Option::None,
            region: ::std::vec::Vec::new(),
            exemplar_chars: ::protobuf::MessageField::none(),
            sample_text: ::protobuf::MessageField::none(),
            historical: ::std::option::Option::None,
            source: ::std::vec::Vec::new(),
            note: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}

impl ::protobuf::MessageFull for LanguageProto {
    fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
        descriptor.get(|| file_descriptor().message_by_package_relative_name("LanguageProto").unwrap()).clone()
    }
}

impl ::std::fmt::Display for LanguageProto {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for LanguageProto {
    type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}

///  Space-separated lists of characters representative of a given language.
// @@protoc_insertion_point(message:google.languages_public.ExemplarCharsProto)
#[derive(PartialEq,Clone,Default,Debug)]
pub struct ExemplarCharsProto {
    // message fields
    // @@protoc_insertion_point(field:google.languages_public.ExemplarCharsProto.base)
    pub base: ::std::option::Option<::std::string::String>,
    // @@protoc_insertion_point(field:google.languages_public.ExemplarCharsProto.auxiliary)
    pub auxiliary: ::std::option::Option<::std::string::String>,
    // @@protoc_insertion_point(field:google.languages_public.ExemplarCharsProto.marks)
    pub marks: ::std::option::Option<::std::string::String>,
    // @@protoc_insertion_point(field:google.languages_public.ExemplarCharsProto.numerals)
    pub numerals: ::std::option::Option<::std::string::String>,
    // @@protoc_insertion_point(field:google.languages_public.ExemplarCharsProto.punctuation)
    pub punctuation: ::std::option::Option<::std::string::String>,
    // @@protoc_insertion_point(field:google.languages_public.ExemplarCharsProto.index)
    pub index: ::std::option::Option<::std::string::String>,
    // @@protoc_insertion_point(field:google.languages_public.ExemplarCharsProto.not_required)
    pub not_required: ::std::option::Option<::std::string::String>,
    // special fields
    // @@protoc_insertion_point(special_field:google.languages_public.ExemplarCharsProto.special_fields)
    pub special_fields: ::protobuf::SpecialFields,
}

impl<'a> ::std::default::Default for &'a ExemplarCharsProto {
    fn default() -> &'a ExemplarCharsProto {
        <ExemplarCharsProto as ::protobuf::Message>::default_instance()
    }
}

impl ExemplarCharsProto {
    pub fn new() -> ExemplarCharsProto {
        ::std::default::Default::default()
    }

    // optional string base = 1;

    pub fn base(&self) -> &str {
        match self.base.as_ref() {
            Some(v) => v,
            None => "",
        }
    }

    pub fn clear_base(&mut self) {
        self.base = ::std::option::Option::None;
    }

    pub fn has_base(&self) -> bool {
        self.base.is_some()
    }

    // Param is passed by value, moved
    pub fn set_base(&mut self, v: ::std::string::String) {
        self.base = ::std::option::Option::Some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_base(&mut self) -> &mut ::std::string::String {
        if self.base.is_none() {
            self.base = ::std::option::Option::Some(::std::string::String::new());
        }
        self.base.as_mut().unwrap()
    }

    // Take field
    pub fn take_base(&mut self) -> ::std::string::String {
        self.base.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string auxiliary = 2;

    pub fn auxiliary(&self) -> &str {
        match self.auxiliary.as_ref() {
            Some(v) => v,
            None => "",
        }
    }

    pub fn clear_auxiliary(&mut self) {
        self.auxiliary = ::std::option::Option::None;
    }

    pub fn has_auxiliary(&self) -> bool {
        self.auxiliary.is_some()
    }

    // Param is passed by value, moved
    pub fn set_auxiliary(&mut self, v: ::std::string::String) {
        self.auxiliary = ::std::option::Option::Some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_auxiliary(&mut self) -> &mut ::std::string::String {
        if self.auxiliary.is_none() {
            self.auxiliary = ::std::option::Option::Some(::std::string::String::new());
        }
        self.auxiliary.as_mut().unwrap()
    }

    // Take field
    pub fn take_auxiliary(&mut self) -> ::std::string::String {
        self.auxiliary.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string marks = 3;

    pub fn marks(&self) -> &str {
        match self.marks.as_ref() {
            Some(v) => v,
            None => "",
        }
    }

    pub fn clear_marks(&mut self) {
        self.marks = ::std::option::Option::None;
    }

    pub fn has_marks(&self) -> bool {
        self.marks.is_some()
    }

    // Param is passed by value, moved
    pub fn set_marks(&mut self, v: ::std::string::String) {
        self.marks = ::std::option::Option::Some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_marks(&mut self) -> &mut ::std::string::String {
        if self.marks.is_none() {
            self.marks = ::std::option::Option::Some(::std::string::String::new());
        }
        self.marks.as_mut().unwrap()
    }

    // Take field
    pub fn take_marks(&mut self) -> ::std::string::String {
        self.marks.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string numerals = 4;

    pub fn numerals(&self) -> &str {
        match self.numerals.as_ref() {
            Some(v) => v,
            None => "",
        }
    }

    pub fn clear_numerals(&mut self) {
        self.numerals = ::std::option::Option::None;
    }

    pub fn has_numerals(&self) -> bool {
        self.numerals.is_some()
    }

    // Param is passed by value, moved
    pub fn set_numerals(&mut self, v: ::std::string::String) {
        self.numerals = ::std::option::Option::Some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_numerals(&mut self) -> &mut ::std::string::String {
        if self.numerals.is_none() {
            self.numerals = ::std::option::Option::Some(::std::string::String::new());
        }
        self.numerals.as_mut().unwrap()
    }

    // Take field
    pub fn take_numerals(&mut self) -> ::std::string::String {
        self.numerals.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string punctuation = 5;

    pub fn punctuation(&self) -> &str {
        match self.punctuation.as_ref() {
            Some(v) => v,
            None => "",
        }
    }

    pub fn clear_punctuation(&mut self) {
        self.punctuation = ::std::option::Option::None;
    }

    pub fn has_punctuation(&self) -> bool {
        self.punctuation.is_some()
    }

    // Param is passed by value, moved
    pub fn set_punctuation(&mut self, v: ::std::string::String) {
        self.punctuation = ::std::option::Option::Some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_punctuation(&mut self) -> &mut ::std::string::String {
        if self.punctuation.is_none() {
            self.punctuation = ::std::option::Option::Some(::std::string::String::new());
        }
        self.punctuation.as_mut().unwrap()
    }

    // Take field
    pub fn take_punctuation(&mut self) -> ::std::string::String {
        self.punctuation.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string index = 6;

    pub fn index(&self) -> &str {
        match self.index.as_ref() {
            Some(v) => v,
            None => "",
        }
    }

    pub fn clear_index(&mut self) {
        self.index = ::std::option::Option::None;
    }

    pub fn has_index(&self) -> bool {
        self.index.is_some()
    }

    // Param is passed by value, moved
    pub fn set_index(&mut self, v: ::std::string::String) {
        self.index = ::std::option::Option::Some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_index(&mut self) -> &mut ::std::string::String {
        if self.index.is_none() {
            self.index = ::std::option::Option::Some(::std::string::String::new());
        }
        self.index.as_mut().unwrap()
    }

    // Take field
    pub fn take_index(&mut self) -> ::std::string::String {
        self.index.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string not_required = 7;

    pub fn not_required(&self) -> &str {
        match self.not_required.as_ref() {
            Some(v) => v,
            None => "",
        }
    }

    pub fn clear_not_required(&mut self) {
        self.not_required = ::std::option::Option::None;
    }

    pub fn has_not_required(&self) -> bool {
        self.not_required.is_some()
    }

    // Param is passed by value, moved
    pub fn set_not_required(&mut self, v: ::std::string::String) {
        self.not_required = ::std::option::Option::Some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_not_required(&mut self) -> &mut ::std::string::String {
        if self.not_required.is_none() {
            self.not_required = ::std::option::Option::Some(::std::string::String::new());
        }
        self.not_required.as_mut().unwrap()
    }

    // Take field
    pub fn take_not_required(&mut self) -> ::std::string::String {
        self.not_required.take().unwrap_or_else(|| ::std::string::String::new())
    }

    fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
        let mut fields = ::std::vec::Vec::with_capacity(7);
        let mut oneofs = ::std::vec::Vec::with_capacity(0);
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "base",
            |m: &ExemplarCharsProto| { &m.base },
            |m: &mut ExemplarCharsProto| { &mut m.base },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "auxiliary",
            |m: &ExemplarCharsProto| { &m.auxiliary },
            |m: &mut ExemplarCharsProto| { &mut m.auxiliary },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "marks",
            |m: &ExemplarCharsProto| { &m.marks },
            |m: &mut ExemplarCharsProto| { &mut m.marks },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "numerals",
            |m: &ExemplarCharsProto| { &m.numerals },
            |m: &mut ExemplarCharsProto| { &mut m.numerals },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "punctuation",
            |m: &ExemplarCharsProto| { &m.punctuation },
            |m: &mut ExemplarCharsProto| { &mut m.punctuation },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "index",
            |m: &ExemplarCharsProto| { &m.index },
            |m: &mut ExemplarCharsProto| { &mut m.index },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "not_required",
            |m: &ExemplarCharsProto| { &m.not_required },
            |m: &mut ExemplarCharsProto| { &mut m.not_required },
        ));
        ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<ExemplarCharsProto>(
            "ExemplarCharsProto",
            fields,
            oneofs,
        )
    }
}

impl ::protobuf::Message for ExemplarCharsProto {
    const NAME: &'static str = "ExemplarCharsProto";

    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                10 => {
                    self.base = ::std::option::Option::Some(is.read_string()?);
                },
                18 => {
                    self.auxiliary = ::std::option::Option::Some(is.read_string()?);
                },
                26 => {
                    self.marks = ::std::option::Option::Some(is.read_string()?);
                },
                34 => {
                    self.numerals = ::std::option::Option::Some(is.read_string()?);
                },
                42 => {
                    self.punctuation = ::std::option::Option::Some(is.read_string()?);
                },
                50 => {
                    self.index = ::std::option::Option::Some(is.read_string()?);
                },
                58 => {
                    self.not_required = ::std::option::Option::Some(is.read_string()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.base.as_ref() {
            my_size += ::protobuf::rt::string_size(1, &v);
        }
        if let Some(v) = self.auxiliary.as_ref() {
            my_size += ::protobuf::rt::string_size(2, &v);
        }
        if let Some(v) = self.marks.as_ref() {
            my_size += ::protobuf::rt::string_size(3, &v);
        }
        if let Some(v) = self.numerals.as_ref() {
            my_size += ::protobuf::rt::string_size(4, &v);
        }
        if let Some(v) = self.punctuation.as_ref() {
            my_size += ::protobuf::rt::string_size(5, &v);
        }
        if let Some(v) = self.index.as_ref() {
            my_size += ::protobuf::rt::string_size(6, &v);
        }
        if let Some(v) = self.not_required.as_ref() {
            my_size += ::protobuf::rt::string_size(7, &v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.base.as_ref() {
            os.write_string(1, v)?;
        }
        if let Some(v) = self.auxiliary.as_ref() {
            os.write_string(2, v)?;
        }
        if let Some(v) = self.marks.as_ref() {
            os.write_string(3, v)?;
        }
        if let Some(v) = self.numerals.as_ref() {
            os.write_string(4, v)?;
        }
        if let Some(v) = self.punctuation.as_ref() {
            os.write_string(5, v)?;
        }
        if let Some(v) = self.index.as_ref() {
            os.write_string(6, v)?;
        }
        if let Some(v) = self.not_required.as_ref() {
            os.write_string(7, v)?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }

    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }

    fn new() -> ExemplarCharsProto {
        ExemplarCharsProto::new()
    }

    fn clear(&mut self) {
        self.base = ::std::option::Option::None;
        self.auxiliary = ::std::option::Option::None;
        self.marks = ::std::option::Option::None;
        self.numerals = ::std::option::Option::None;
        self.punctuation = ::std::option::Option::None;
        self.index = ::std::option::Option::None;
        self.not_required = ::std::option::Option::None;
        self.special_fields.clear();
    }

    fn default_instance() -> &'static ExemplarCharsProto {
        static instance: ExemplarCharsProto = ExemplarCharsProto {
            base: ::std::option::Option::None,
            auxiliary: ::std::option::Option::None,
            marks: ::std::option::Option::None,
            numerals: ::std::option::Option::None,
            punctuation: ::std::option::Option::None,
            index: ::std::option::Option::None,
            not_required: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}

impl ::protobuf::MessageFull for ExemplarCharsProto {
    fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
        descriptor.get(|| file_descriptor().message_by_package_relative_name("ExemplarCharsProto").unwrap()).clone()
    }
}

impl ::std::fmt::Display for ExemplarCharsProto {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for ExemplarCharsProto {
    type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}

// @@protoc_insertion_point(message:google.languages_public.SampleTextProto)
#[derive(PartialEq,Clone,Default,Debug)]
pub struct SampleTextProto {
    // message fields
    // @@protoc_insertion_point(field:google.languages_public.SampleTextProto.masthead_full)
    pub masthead_full: ::std::option::Option<::std::string::String>,
    // @@protoc_insertion_point(field:google.languages_public.SampleTextProto.masthead_partial)
    pub masthead_partial: ::std::option::Option<::std::string::String>,
    // @@protoc_insertion_point(field:google.languages_public.SampleTextProto.styles)
    pub styles: ::std::option::Option<::std::string::String>,
    // @@protoc_insertion_point(field:google.languages_public.SampleTextProto.tester)
    pub tester: ::std::option::Option<::std::string::String>,
    // @@protoc_insertion_point(field:google.languages_public.SampleTextProto.poster_sm)
    pub poster_sm: ::std::option::Option<::std::string::String>,
    // @@protoc_insertion_point(field:google.languages_public.SampleTextProto.poster_md)
    pub poster_md: ::std::option::Option<::std::string::String>,
    // @@protoc_insertion_point(field:google.languages_public.SampleTextProto.poster_lg)
    pub poster_lg: ::std::option::Option<::std::string::String>,
    // @@protoc_insertion_point(field:google.languages_public.SampleTextProto.specimen_48)
    pub specimen_48: ::std::option::Option<::std::string::String>,
    // @@protoc_insertion_point(field:google.languages_public.SampleTextProto.specimen_36)
    pub specimen_36: ::std::option::Option<::std::string::String>,
    // @@protoc_insertion_point(field:google.languages_public.SampleTextProto.specimen_32)
    pub specimen_32: ::std::option::Option<::std::string::String>,
    // @@protoc_insertion_point(field:google.languages_public.SampleTextProto.specimen_21)
    pub specimen_21: ::std::option::Option<::std::string::String>,
    // @@protoc_insertion_point(field:google.languages_public.SampleTextProto.specimen_16)
    pub specimen_16: ::std::option::Option<::std::string::String>,
    // @@protoc_insertion_point(field:google.languages_public.SampleTextProto.note)
    pub note: ::std::option::Option<::std::string::String>,
    // special fields
    // @@protoc_insertion_point(special_field:google.languages_public.SampleTextProto.special_fields)
    pub special_fields: ::protobuf::SpecialFields,
}

impl<'a> ::std::default::Default for &'a SampleTextProto {
    fn default() -> &'a SampleTextProto {
        <SampleTextProto as ::protobuf::Message>::default_instance()
    }
}

impl SampleTextProto {
    pub fn new() -> SampleTextProto {
        ::std::default::Default::default()
    }

    // optional string masthead_full = 1;

    pub fn masthead_full(&self) -> &str {
        match self.masthead_full.as_ref() {
            Some(v) => v,
            None => "",
        }
    }

    pub fn clear_masthead_full(&mut self) {
        self.masthead_full = ::std::option::Option::None;
    }

    pub fn has_masthead_full(&self) -> bool {
        self.masthead_full.is_some()
    }

    // Param is passed by value, moved
    pub fn set_masthead_full(&mut self, v: ::std::string::String) {
        self.masthead_full = ::std::option::Option::Some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_masthead_full(&mut self) -> &mut ::std::string::String {
        if self.masthead_full.is_none() {
            self.masthead_full = ::std::option::Option::Some(::std::string::String::new());
        }
        self.masthead_full.as_mut().unwrap()
    }

    // Take field
    pub fn take_masthead_full(&mut self) -> ::std::string::String {
        self.masthead_full.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string masthead_partial = 2;

    pub fn masthead_partial(&self) -> &str {
        match self.masthead_partial.as_ref() {
            Some(v) => v,
            None => "",
        }
    }

    pub fn clear_masthead_partial(&mut self) {
        self.masthead_partial = ::std::option::Option::None;
    }

    pub fn has_masthead_partial(&self) -> bool {
        self.masthead_partial.is_some()
    }

    // Param is passed by value, moved
    pub fn set_masthead_partial(&mut self, v: ::std::string::String) {
        self.masthead_partial = ::std::option::Option::Some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_masthead_partial(&mut self) -> &mut ::std::string::String {
        if self.masthead_partial.is_none() {
            self.masthead_partial = ::std::option::Option::Some(::std::string::String::new());
        }
        self.masthead_partial.as_mut().unwrap()
    }

    // Take field
    pub fn take_masthead_partial(&mut self) -> ::std::string::String {
        self.masthead_partial.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string styles = 3;

    pub fn styles(&self) -> &str {
        match self.styles.as_ref() {
            Some(v) => v,
            None => "",
        }
    }

    pub fn clear_styles(&mut self) {
        self.styles = ::std::option::Option::None;
    }

    pub fn has_styles(&self) -> bool {
        self.styles.is_some()
    }

    // Param is passed by value, moved
    pub fn set_styles(&mut self, v: ::std::string::String) {
        self.styles = ::std::option::Option::Some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_styles(&mut self) -> &mut ::std::string::String {
        if self.styles.is_none() {
            self.styles = ::std::option::Option::Some(::std::string::String::new());
        }
        self.styles.as_mut().unwrap()
    }

    // Take field
    pub fn take_styles(&mut self) -> ::std::string::String {
        self.styles.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string tester = 4;

    pub fn tester(&self) -> &str {
        match self.tester.as_ref() {
            Some(v) => v,
            None => "",
        }
    }

    pub fn clear_tester(&mut self) {
        self.tester = ::std::option::Option::None;
    }

    pub fn has_tester(&self) -> bool {
        self.tester.is_some()
    }

    // Param is passed by value, moved
    pub fn set_tester(&mut self, v: ::std::string::String) {
        self.tester = ::std::option::Option::Some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_tester(&mut self) -> &mut ::std::string::String {
        if self.tester.is_none() {
            self.tester = ::std::option::Option::Some(::std::string::String::new());
        }
        self.tester.as_mut().unwrap()
    }

    // Take field
    pub fn take_tester(&mut self) -> ::std::string::String {
        self.tester.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string poster_sm = 5;

    pub fn poster_sm(&self) -> &str {
        match self.poster_sm.as_ref() {
            Some(v) => v,
            None => "",
        }
    }

    pub fn clear_poster_sm(&mut self) {
        self.poster_sm = ::std::option::Option::None;
    }

    pub fn has_poster_sm(&self) -> bool {
        self.poster_sm.is_some()
    }

    // Param is passed by value, moved
    pub fn set_poster_sm(&mut self, v: ::std::string::String) {
        self.poster_sm = ::std::option::Option::Some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_poster_sm(&mut self) -> &mut ::std::string::String {
        if self.poster_sm.is_none() {
            self.poster_sm = ::std::option::Option::Some(::std::string::String::new());
        }
        self.poster_sm.as_mut().unwrap()
    }

    // Take field
    pub fn take_poster_sm(&mut self) -> ::std::string::String {
        self.poster_sm.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string poster_md = 6;

    pub fn poster_md(&self) -> &str {
        match self.poster_md.as_ref() {
            Some(v) => v,
            None => "",
        }
    }

    pub fn clear_poster_md(&mut self) {
        self.poster_md = ::std::option::Option::None;
    }

    pub fn has_poster_md(&self) -> bool {
        self.poster_md.is_some()
    }

    // Param is passed by value, moved
    pub fn set_poster_md(&mut self, v: ::std::string::String) {
        self.poster_md = ::std::option::Option::Some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_poster_md(&mut self) -> &mut ::std::string::String {
        if self.poster_md.is_none() {
            self.poster_md = ::std::option::Option::Some(::std::string::String::new());
        }
        self.poster_md.as_mut().unwrap()
    }

    // Take field
    pub fn take_poster_md(&mut self) -> ::std::string::String {
        self.poster_md.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string poster_lg = 7;

    pub fn poster_lg(&self) -> &str {
        match self.poster_lg.as_ref() {
            Some(v) => v,
            None => "",
        }
    }

    pub fn clear_poster_lg(&mut self) {
        self.poster_lg = ::std::option::Option::None;
    }

    pub fn has_poster_lg(&self) -> bool {
        self.poster_lg.is_some()
    }

    // Param is passed by value, moved
    pub fn set_poster_lg(&mut self, v: ::std::string::String) {
        self.poster_lg = ::std::option::Option::Some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_poster_lg(&mut self) -> &mut ::std::string::String {
        if self.poster_lg.is_none() {
            self.poster_lg = ::std::option::Option::Some(::std::string::String::new());
        }
        self.poster_lg.as_mut().unwrap()
    }

    // Take field
    pub fn take_poster_lg(&mut self) -> ::std::string::String {
        self.poster_lg.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string specimen_48 = 8;

    pub fn specimen_48(&self) -> &str {
        match self.specimen_48.as_ref() {
            Some(v) => v,
            None => "",
        }
    }

    pub fn clear_specimen_48(&mut self) {
        self.specimen_48 = ::std::option::Option::None;
    }

    pub fn has_specimen_48(&self) -> bool {
        self.specimen_48.is_some()
    }

    // Param is passed by value, moved
    pub fn set_specimen_48(&mut self, v: ::std::string::String) {
        self.specimen_48 = ::std::option::Option::Some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_specimen_48(&mut self) -> &mut ::std::string::String {
        if self.specimen_48.is_none() {
            self.specimen_48 = ::std::option::Option::Some(::std::string::String::new());
        }
        self.specimen_48.as_mut().unwrap()
    }

    // Take field
    pub fn take_specimen_48(&mut self) -> ::std::string::String {
        self.specimen_48.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string specimen_36 = 9;

    pub fn specimen_36(&self) -> &str {
        match self.specimen_36.as_ref() {
            Some(v) => v,
            None => "",
        }
    }

    pub fn clear_specimen_36(&mut self) {
        self.specimen_36 = ::std::option::Option::None;
    }

    pub fn has_specimen_36(&self) -> bool {
        self.specimen_36.is_some()
    }

    // Param is passed by value, moved
    pub fn set_specimen_36(&mut self, v: ::std::string::String) {
        self.specimen_36 = ::std::option::Option::Some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_specimen_36(&mut self) -> &mut ::std::string::String {
        if self.specimen_36.is_none() {
            self.specimen_36 = ::std::option::Option::Some(::std::string::String::new());
        }
        self.specimen_36.as_mut().unwrap()
    }

    // Take field
    pub fn take_specimen_36(&mut self) -> ::std::string::String {
        self.specimen_36.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string specimen_32 = 10;

    pub fn specimen_32(&self) -> &str {
        match self.specimen_32.as_ref() {
            Some(v) => v,
            None => "",
        }
    }

    pub fn clear_specimen_32(&mut self) {
        self.specimen_32 = ::std::option::Option::None;
    }

    pub fn has_specimen_32(&self) -> bool {
        self.specimen_32.is_some()
    }

    // Param is passed by value, moved
    pub fn set_specimen_32(&mut self, v: ::std::string::String) {
        self.specimen_32 = ::std::option::Option::Some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_specimen_32(&mut self) -> &mut ::std::string::String {
        if self.specimen_32.is_none() {
            self.specimen_32 = ::std::option::Option::Some(::std::string::String::new());
        }
        self.specimen_32.as_mut().unwrap()
    }

    // Take field
    pub fn take_specimen_32(&mut self) -> ::std::string::String {
        self.specimen_32.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string specimen_21 = 11;

    pub fn specimen_21(&self) -> &str {
        match self.specimen_21.as_ref() {
            Some(v) => v,
            None => "",
        }
    }

    pub fn clear_specimen_21(&mut self) {
        self.specimen_21 = ::std::option::Option::None;
    }

    pub fn has_specimen_21(&self) -> bool {
        self.specimen_21.is_some()
    }

    // Param is passed by value, moved
    pub fn set_specimen_21(&mut self, v: ::std::string::String) {
        self.specimen_21 = ::std::option::Option::Some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_specimen_21(&mut self) -> &mut ::std::string::String {
        if self.specimen_21.is_none() {
            self.specimen_21 = ::std::option::Option::Some(::std::string::String::new());
        }
        self.specimen_21.as_mut().unwrap()
    }

    // Take field
    pub fn take_specimen_21(&mut self) -> ::std::string::String {
        self.specimen_21.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string specimen_16 = 12;

    pub fn specimen_16(&self) -> &str {
        match self.specimen_16.as_ref() {
            Some(v) => v,
            None => "",
        }
    }

    pub fn clear_specimen_16(&mut self) {
        self.specimen_16 = ::std::option::Option::None;
    }

    pub fn has_specimen_16(&self) -> bool {
        self.specimen_16.is_some()
    }

    // Param is passed by value, moved
    pub fn set_specimen_16(&mut self, v: ::std::string::String) {
        self.specimen_16 = ::std::option::Option::Some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_specimen_16(&mut self) -> &mut ::std::string::String {
        if self.specimen_16.is_none() {
            self.specimen_16 = ::std::option::Option::Some(::std::string::String::new());
        }
        self.specimen_16.as_mut().unwrap()
    }

    // Take field
    pub fn take_specimen_16(&mut self) -> ::std::string::String {
        self.specimen_16.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string note = 13;

    pub fn note(&self) -> &str {
        match self.note.as_ref() {
            Some(v) => v,
            None => "",
        }
    }

    pub fn clear_note(&mut self) {
        self.note = ::std::option::Option::None;
    }

    pub fn has_note(&self) -> bool {
        self.note.is_some()
    }

    // Param is passed by value, moved
    pub fn set_note(&mut self, v: ::std::string::String) {
        self.note = ::std::option::Option::Some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_note(&mut self) -> &mut ::std::string::String {
        if self.note.is_none() {
            self.note = ::std::option::Option::Some(::std::string::String::new());
        }
        self.note.as_mut().unwrap()
    }

    // Take field
    pub fn take_note(&mut self) -> ::std::string::String {
        self.note.take().unwrap_or_else(|| ::std::string::String::new())
    }

    fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
        let mut fields = ::std::vec::Vec::with_capacity(13);
        let mut oneofs = ::std::vec::Vec::with_capacity(0);
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "masthead_full",
            |m: &SampleTextProto| { &m.masthead_full },
            |m: &mut SampleTextProto| { &mut m.masthead_full },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "masthead_partial",
            |m: &SampleTextProto| { &m.masthead_partial },
            |m: &mut SampleTextProto| { &mut m.masthead_partial },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "styles",
            |m: &SampleTextProto| { &m.styles },
            |m: &mut SampleTextProto| { &mut m.styles },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "tester",
            |m: &SampleTextProto| { &m.tester },
            |m: &mut SampleTextProto| { &mut m.tester },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "poster_sm",
            |m: &SampleTextProto| { &m.poster_sm },
            |m: &mut SampleTextProto| { &mut m.poster_sm },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "poster_md",
            |m: &SampleTextProto| { &m.poster_md },
            |m: &mut SampleTextProto| { &mut m.poster_md },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "poster_lg",
            |m: &SampleTextProto| { &m.poster_lg },
            |m: &mut SampleTextProto| { &mut m.poster_lg },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "specimen_48",
            |m: &SampleTextProto| { &m.specimen_48 },
            |m: &mut SampleTextProto| { &mut m.specimen_48 },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "specimen_36",
            |m: &SampleTextProto| { &m.specimen_36 },
            |m: &mut SampleTextProto| { &mut m.specimen_36 },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "specimen_32",
            |m: &SampleTextProto| { &m.specimen_32 },
            |m: &mut SampleTextProto| { &mut m.specimen_32 },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "specimen_21",
            |m: &SampleTextProto| { &m.specimen_21 },
            |m: &mut SampleTextProto| { &mut m.specimen_21 },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "specimen_16",
            |m: &SampleTextProto| { &m.specimen_16 },
            |m: &mut SampleTextProto| { &mut m.specimen_16 },
        ));
        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
            "note",
            |m: &SampleTextProto| { &m.note },
            |m: &mut SampleTextProto| { &mut m.note },
        ));
        ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<SampleTextProto>(
            "SampleTextProto",
            fields,
            oneofs,
        )
    }
}

impl ::protobuf::Message for SampleTextProto {
    const NAME: &'static str = "SampleTextProto";

    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
        while let Some(tag) = is.read_raw_tag_or_eof()? {
            match tag {
                10 => {
                    self.masthead_full = ::std::option::Option::Some(is.read_string()?);
                },
                18 => {
                    self.masthead_partial = ::std::option::Option::Some(is.read_string()?);
                },
                26 => {
                    self.styles = ::std::option::Option::Some(is.read_string()?);
                },
                34 => {
                    self.tester = ::std::option::Option::Some(is.read_string()?);
                },
                42 => {
                    self.poster_sm = ::std::option::Option::Some(is.read_string()?);
                },
                50 => {
                    self.poster_md = ::std::option::Option::Some(is.read_string()?);
                },
                58 => {
                    self.poster_lg = ::std::option::Option::Some(is.read_string()?);
                },
                66 => {
                    self.specimen_48 = ::std::option::Option::Some(is.read_string()?);
                },
                74 => {
                    self.specimen_36 = ::std::option::Option::Some(is.read_string()?);
                },
                82 => {
                    self.specimen_32 = ::std::option::Option::Some(is.read_string()?);
                },
                90 => {
                    self.specimen_21 = ::std::option::Option::Some(is.read_string()?);
                },
                98 => {
                    self.specimen_16 = ::std::option::Option::Some(is.read_string()?);
                },
                106 => {
                    self.note = ::std::option::Option::Some(is.read_string()?);
                },
                tag => {
                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u64 {
        let mut my_size = 0;
        if let Some(v) = self.masthead_full.as_ref() {
            my_size += ::protobuf::rt::string_size(1, &v);
        }
        if let Some(v) = self.masthead_partial.as_ref() {
            my_size += ::protobuf::rt::string_size(2, &v);
        }
        if let Some(v) = self.styles.as_ref() {
            my_size += ::protobuf::rt::string_size(3, &v);
        }
        if let Some(v) = self.tester.as_ref() {
            my_size += ::protobuf::rt::string_size(4, &v);
        }
        if let Some(v) = self.poster_sm.as_ref() {
            my_size += ::protobuf::rt::string_size(5, &v);
        }
        if let Some(v) = self.poster_md.as_ref() {
            my_size += ::protobuf::rt::string_size(6, &v);
        }
        if let Some(v) = self.poster_lg.as_ref() {
            my_size += ::protobuf::rt::string_size(7, &v);
        }
        if let Some(v) = self.specimen_48.as_ref() {
            my_size += ::protobuf::rt::string_size(8, &v);
        }
        if let Some(v) = self.specimen_36.as_ref() {
            my_size += ::protobuf::rt::string_size(9, &v);
        }
        if let Some(v) = self.specimen_32.as_ref() {
            my_size += ::protobuf::rt::string_size(10, &v);
        }
        if let Some(v) = self.specimen_21.as_ref() {
            my_size += ::protobuf::rt::string_size(11, &v);
        }
        if let Some(v) = self.specimen_16.as_ref() {
            my_size += ::protobuf::rt::string_size(12, &v);
        }
        if let Some(v) = self.note.as_ref() {
            my_size += ::protobuf::rt::string_size(13, &v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
        self.special_fields.cached_size().set(my_size as u32);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
        if let Some(v) = self.masthead_full.as_ref() {
            os.write_string(1, v)?;
        }
        if let Some(v) = self.masthead_partial.as_ref() {
            os.write_string(2, v)?;
        }
        if let Some(v) = self.styles.as_ref() {
            os.write_string(3, v)?;
        }
        if let Some(v) = self.tester.as_ref() {
            os.write_string(4, v)?;
        }
        if let Some(v) = self.poster_sm.as_ref() {
            os.write_string(5, v)?;
        }
        if let Some(v) = self.poster_md.as_ref() {
            os.write_string(6, v)?;
        }
        if let Some(v) = self.poster_lg.as_ref() {
            os.write_string(7, v)?;
        }
        if let Some(v) = self.specimen_48.as_ref() {
            os.write_string(8, v)?;
        }
        if let Some(v) = self.specimen_36.as_ref() {
            os.write_string(9, v)?;
        }
        if let Some(v) = self.specimen_32.as_ref() {
            os.write_string(10, v)?;
        }
        if let Some(v) = self.specimen_21.as_ref() {
            os.write_string(11, v)?;
        }
        if let Some(v) = self.specimen_16.as_ref() {
            os.write_string(12, v)?;
        }
        if let Some(v) = self.note.as_ref() {
            os.write_string(13, v)?;
        }
        os.write_unknown_fields(self.special_fields.unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn special_fields(&self) -> &::protobuf::SpecialFields {
        &self.special_fields
    }

    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
        &mut self.special_fields
    }

    fn new() -> SampleTextProto {
        SampleTextProto::new()
    }

    fn clear(&mut self) {
        self.masthead_full = ::std::option::Option::None;
        self.masthead_partial = ::std::option::Option::None;
        self.styles = ::std::option::Option::None;
        self.tester = ::std::option::Option::None;
        self.poster_sm = ::std::option::Option::None;
        self.poster_md = ::std::option::Option::None;
        self.poster_lg = ::std::option::Option::None;
        self.specimen_48 = ::std::option::Option::None;
        self.specimen_36 = ::std::option::Option::None;
        self.specimen_32 = ::std::option::Option::None;
        self.specimen_21 = ::std::option::Option::None;
        self.specimen_16 = ::std::option::Option::None;
        self.note = ::std::option::Option::None;
        self.special_fields.clear();
    }

    fn default_instance() -> &'static SampleTextProto {
        static instance: SampleTextProto = SampleTextProto {
            masthead_full: ::std::option::Option::None,
            masthead_partial: ::std::option::Option::None,
            styles: ::std::option::Option::None,
            tester: ::std::option::Option::None,
            poster_sm: ::std::option::Option::None,
            poster_md: ::std::option::Option::None,
            poster_lg: ::std::option::Option::None,
            specimen_48: ::std::option::Option::None,
            specimen_36: ::std::option::Option::None,
            specimen_32: ::std::option::Option::None,
            specimen_21: ::std::option::Option::None,
            specimen_16: ::std::option::Option::None,
            note: ::std::option::Option::None,
            special_fields: ::protobuf::SpecialFields::new(),
        };
        &instance
    }
}

impl ::protobuf::MessageFull for SampleTextProto {
    fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
        descriptor.get(|| file_descriptor().message_by_package_relative_name("SampleTextProto").unwrap()).clone()
    }
}

impl ::std::fmt::Display for SampleTextProto {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for SampleTextProto {
    type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}

static file_descriptor_proto_data: &'static [u8] = b"\
    \n\x16languages_public.proto\x12\x17google.languages_public\"t\n\x0bRegi\
    onProto\x12\x0e\n\x02id\x18\x01\x20\x01(\tR\x02id\x12\x12\n\x04name\x18\
    \x02\x20\x01(\tR\x04name\x12\x1e\n\npopulation\x18\x03\x20\x01(\x05R\npo\
    pulation\x12!\n\x0cregion_group\x18\x04\x20\x03(\tR\x0bregionGroup\"\xa1\
    \x01\n\x0bScriptProto\x12\x0e\n\x02id\x18\x01\x20\x01(\tR\x02id\x12\x12\
    \n\x04name\x18\x02\x20\x01(\tR\x04name\x12\x1e\n\nhistorical\x18\x03\x20\
    \x01(\x08R\nhistorical\x12\x1c\n\tfictional\x18\x04\x20\x01(\x08R\tficti\
    onal\x12\x16\n\x06family\x18\x05\x20\x01(\tR\x06family\x12\x18\n\x07summ\
    ary\x18\x06\x20\x01(\tR\x07summary\"\xcb\x03\n\rLanguageProto\x12\x0e\n\
    \x02id\x18\x01\x20\x01(\tR\x02id\x12\x1a\n\x08language\x18\x02\x20\x01(\
    \tR\x08language\x12\x16\n\x06script\x18\x03\x20\x01(\tR\x06script\x12\
    \x12\n\x04name\x18\x04\x20\x01(\tR\x04name\x12%\n\x0epreferred_name\x18\
    \x05\x20\x01(\tR\rpreferredName\x12\x18\n\x07autonym\x18\x06\x20\x01(\tR\
    \x07autonym\x12\x1e\n\npopulation\x18\x07\x20\x01(\x05R\npopulation\x12\
    \x16\n\x06region\x18\x08\x20\x03(\tR\x06region\x12R\n\x0eexemplar_chars\
    \x18\t\x20\x01(\x0b2+.google.languages_public.ExemplarCharsProtoR\rexemp\
    larChars\x12I\n\x0bsample_text\x18\n\x20\x01(\x0b2(.google.languages_pub\
    lic.SampleTextProtoR\nsampleText\x12\x1e\n\nhistorical\x18\x0b\x20\x01(\
    \x08R\nhistorical\x12\x16\n\x06source\x18\x0c\x20\x03(\tR\x06source\x12\
    \x12\n\x04note\x18\r\x20\x01(\tR\x04note\"\xd3\x01\n\x12ExemplarCharsPro\
    to\x12\x12\n\x04base\x18\x01\x20\x01(\tR\x04base\x12\x1c\n\tauxiliary\
    \x18\x02\x20\x01(\tR\tauxiliary\x12\x14\n\x05marks\x18\x03\x20\x01(\tR\
    \x05marks\x12\x1a\n\x08numerals\x18\x04\x20\x01(\tR\x08numerals\x12\x20\
    \n\x0bpunctuation\x18\x05\x20\x01(\tR\x0bpunctuation\x12\x14\n\x05index\
    \x18\x06\x20\x01(\tR\x05index\x12!\n\x0cnot_required\x18\x07\x20\x01(\tR\
    \x0bnotRequired\"\xa1\x03\n\x0fSampleTextProto\x12#\n\rmasthead_full\x18\
    \x01\x20\x01(\tR\x0cmastheadFull\x12)\n\x10masthead_partial\x18\x02\x20\
    \x01(\tR\x0fmastheadPartial\x12\x16\n\x06styles\x18\x03\x20\x01(\tR\x06s\
    tyles\x12\x16\n\x06tester\x18\x04\x20\x01(\tR\x06tester\x12\x1b\n\tposte\
    r_sm\x18\x05\x20\x01(\tR\x08posterSm\x12\x1b\n\tposter_md\x18\x06\x20\
    \x01(\tR\x08posterMd\x12\x1b\n\tposter_lg\x18\x07\x20\x01(\tR\x08posterL\
    g\x12\x1f\n\x0bspecimen_48\x18\x08\x20\x01(\tR\nspecimen48\x12\x1f\n\x0b\
    specimen_36\x18\t\x20\x01(\tR\nspecimen36\x12\x1f\n\x0bspecimen_32\x18\n\
    \x20\x01(\tR\nspecimen32\x12\x1f\n\x0bspecimen_21\x18\x0b\x20\x01(\tR\ns\
    pecimen21\x12\x1f\n\x0bspecimen_16\x18\x0c\x20\x01(\tR\nspecimen16\x12\
    \x12\n\x04note\x18\r\x20\x01(\tR\x04noteJ\xcc\x1b\n\x06\x12\x04\0\0H\x01\
    \n\x08\n\x01\x0c\x12\x03\0\0\x12\n6\n\x01\x02\x12\x03\x05\0\x20\x1a,*\n\
    \x20languages/regions/scripts\x20proto\x20formats.\n\n:\n\x02\x04\0\x12\
    \x04\x08\0\x0f\x01\x1a.\x20A\x20region\x20or\x20territory\x20as\x20defin\
    ed\x20in\x20the\x20CLDR\n\n\n\n\x03\x04\0\x01\x12\x03\x08\x08\x13\n+\n\
    \x04\x04\0\x02\0\x12\x03\t\x02\x19\"\x1e\x20Region\x20codes\x20defined\
    \x20by\x20CLDR\n\n\x0c\n\x05\x04\0\x02\0\x04\x12\x03\t\x02\n\n\x0c\n\x05\
    \x04\0\x02\0\x05\x12\x03\t\x0b\x11\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03\t\
    \x12\x14\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03\t\x17\x18\n\x0b\n\x04\x04\0\
    \x02\x01\x12\x03\n\x02\x1b\n\x0c\n\x05\x04\0\x02\x01\x04\x12\x03\n\x02\n\
    \n\x0c\n\x05\x04\0\x02\x01\x05\x12\x03\n\x0b\x11\n\x0c\n\x05\x04\0\x02\
    \x01\x01\x12\x03\n\x12\x16\n\x0c\n\x05\x04\0\x02\x01\x03\x12\x03\n\x19\
    \x1a\n\x0b\n\x04\x04\0\x02\x02\x12\x03\x0b\x02\x20\n\x0c\n\x05\x04\0\x02\
    \x02\x04\x12\x03\x0b\x02\n\n\x0c\n\x05\x04\0\x02\x02\x05\x12\x03\x0b\x0b\
    \x10\n\x0c\n\x05\x04\0\x02\x02\x01\x12\x03\x0b\x11\x1b\n\x0c\n\x05\x04\0\
    \x02\x02\x03\x12\x03\x0b\x1e\x1f\n\x0b\n\x04\x04\0\x02\x03\x12\x03\x0c\
    \x02#\n\x0c\n\x05\x04\0\x02\x03\x04\x12\x03\x0c\x02\n\n\x0c\n\x05\x04\0\
    \x02\x03\x05\x12\x03\x0c\x0b\x11\n\x0c\n\x05\x04\0\x02\x03\x01\x12\x03\
    \x0c\x12\x1e\n\x0c\n\x05\x04\0\x02\x03\x03\x12\x03\x0c!\"\n\n\n\x02\x04\
    \x01\x12\x04\x11\0\x19\x01\n\n\n\x03\x04\x01\x01\x12\x03\x11\x08\x13\n+\
    \n\x04\x04\x01\x02\0\x12\x03\x12\x02\x19\"\x1e\x20Script\x20codes\x20def\
    ined\x20by\x20CLDR\n\n\x0c\n\x05\x04\x01\x02\0\x04\x12\x03\x12\x02\n\n\
    \x0c\n\x05\x04\x01\x02\0\x05\x12\x03\x12\x0b\x11\n\x0c\n\x05\x04\x01\x02\
    \0\x01\x12\x03\x12\x12\x14\n\x0c\n\x05\x04\x01\x02\0\x03\x12\x03\x12\x17\
    \x18\n\x0b\n\x04\x04\x01\x02\x01\x12\x03\x13\x02\x1b\n\x0c\n\x05\x04\x01\
    \x02\x01\x04\x12\x03\x13\x02\n\n\x0c\n\x05\x04\x01\x02\x01\x05\x12\x03\
    \x13\x0b\x11\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03\x13\x12\x16\n\x0c\n\
    \x05\x04\x01\x02\x01\x03\x12\x03\x13\x19\x1a\n\x0b\n\x04\x04\x01\x02\x02\
    \x12\x03\x14\x02\x1f\n\x0c\n\x05\x04\x01\x02\x02\x04\x12\x03\x14\x02\n\n\
    \x0c\n\x05\x04\x01\x02\x02\x05\x12\x03\x14\x0b\x0f\n\x0c\n\x05\x04\x01\
    \x02\x02\x01\x12\x03\x14\x10\x1a\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\x03\
    \x14\x1d\x1e\n\x0b\n\x04\x04\x01\x02\x03\x12\x03\x15\x02\x1e\n\x0c\n\x05\
    \x04\x01\x02\x03\x04\x12\x03\x15\x02\n\n\x0c\n\x05\x04\x01\x02\x03\x05\
    \x12\x03\x15\x0b\x0f\n\x0c\n\x05\x04\x01\x02\x03\x01\x12\x03\x15\x10\x19\
    \n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x03\x15\x1c\x1d\n\x0b\n\x04\x04\x01\
    \x02\x04\x12\x03\x16\x02\x1d\n\x0c\n\x05\x04\x01\x02\x04\x04\x12\x03\x16\
    \x02\n\n\x0c\n\x05\x04\x01\x02\x04\x05\x12\x03\x16\x0b\x11\n\x0c\n\x05\
    \x04\x01\x02\x04\x01\x12\x03\x16\x12\x18\n\x0c\n\x05\x04\x01\x02\x04\x03\
    \x12\x03\x16\x1b\x1c\n\x18\n\x04\x04\x01\x02\x05\x12\x03\x17\x02\x1e\"\
    \x0b\x20Next\x20=\x206;\n\n\x0c\n\x05\x04\x01\x02\x05\x04\x12\x03\x17\
    \x02\n\n\x0c\n\x05\x04\x01\x02\x05\x05\x12\x03\x17\x0b\x11\n\x0c\n\x05\
    \x04\x01\x02\x05\x01\x12\x03\x17\x12\x19\n\x0c\n\x05\x04\x01\x02\x05\x03\
    \x12\x03\x17\x1c\x1d\n\n\n\x02\x04\x02\x12\x04\x1b\0+\x01\n\n\n\x03\x04\
    \x02\x01\x12\x03\x1b\x08\x15\n2\n\x04\x04\x02\x02\0\x12\x03\x1c\x02\x19\
    \"%\x20Either\x20${lang}\x20or\x20${lang}_${script}\n\n\x0c\n\x05\x04\
    \x02\x02\0\x04\x12\x03\x1c\x02\n\n\x0c\n\x05\x04\x02\x02\0\x05\x12\x03\
    \x1c\x0b\x11\n\x0c\n\x05\x04\x02\x02\0\x01\x12\x03\x1c\x12\x14\n\x0c\n\
    \x05\x04\x02\x02\0\x03\x12\x03\x1c\x17\x18\n\x15\n\x04\x04\x02\x02\x01\
    \x12\x03\x1d\x02\x1f\"\x08\x20BCP\x2047\n\n\x0c\n\x05\x04\x02\x02\x01\
    \x04\x12\x03\x1d\x02\n\n\x0c\n\x05\x04\x02\x02\x01\x05\x12\x03\x1d\x0b\
    \x11\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03\x1d\x12\x1a\n\x0c\n\x05\x04\
    \x02\x02\x01\x03\x12\x03\x1d\x1d\x1e\n\x0b\n\x04\x04\x02\x02\x02\x12\x03\
    \x1e\x02\x1d\n\x0c\n\x05\x04\x02\x02\x02\x04\x12\x03\x1e\x02\n\n\x0c\n\
    \x05\x04\x02\x02\x02\x05\x12\x03\x1e\x0b\x11\n\x0c\n\x05\x04\x02\x02\x02\
    \x01\x12\x03\x1e\x12\x18\n\x0c\n\x05\x04\x02\x02\x02\x03\x12\x03\x1e\x1b\
    \x1c\n\x0b\n\x04\x04\x02\x02\x03\x12\x03\x1f\x02\x1b\n\x0c\n\x05\x04\x02\
    \x02\x03\x04\x12\x03\x1f\x02\n\n\x0c\n\x05\x04\x02\x02\x03\x05\x12\x03\
    \x1f\x0b\x11\n\x0c\n\x05\x04\x02\x02\x03\x01\x12\x03\x1f\x12\x16\n\x0c\n\
    \x05\x04\x02\x02\x03\x03\x12\x03\x1f\x19\x1a\n\x0b\n\x04\x04\x02\x02\x04\
    \x12\x03\x20\x02%\n\x0c\n\x05\x04\x02\x02\x04\x04\x12\x03\x20\x02\n\n\
    \x0c\n\x05\x04\x02\x02\x04\x05\x12\x03\x20\x0b\x11\n\x0c\n\x05\x04\x02\
    \x02\x04\x01\x12\x03\x20\x12\x20\n\x0c\n\x05\x04\x02\x02\x04\x03\x12\x03\
    \x20#$\n;\n\x04\x04\x02\x02\x05\x12\x03!\x02\x1e\".\x20Name\x20of\x20lan\
    guage\x20as\x20written\x20in\x20that\x20language\n\n\x0c\n\x05\x04\x02\
    \x02\x05\x04\x12\x03!\x02\n\n\x0c\n\x05\x04\x02\x02\x05\x05\x12\x03!\x0b\
    \x11\n\x0c\n\x05\x04\x02\x02\x05\x01\x12\x03!\x12\x19\n\x0c\n\x05\x04\
    \x02\x02\x05\x03\x12\x03!\x1c\x1d\n\x0b\n\x04\x04\x02\x02\x06\x12\x03\"\
    \x02\x20\n\x0c\n\x05\x04\x02\x02\x06\x04\x12\x03\"\x02\n\n\x0c\n\x05\x04\
    \x02\x02\x06\x05\x12\x03\"\x0b\x10\n\x0c\n\x05\x04\x02\x02\x06\x01\x12\
    \x03\"\x11\x1b\n\x0c\n\x05\x04\x02\x02\x06\x03\x12\x03\"\x1e\x1f\n\x0b\n\
    \x04\x04\x02\x02\x07\x12\x03#\x02\x1d\n\x0c\n\x05\x04\x02\x02\x07\x04\
    \x12\x03#\x02\n\n\x0c\n\x05\x04\x02\x02\x07\x05\x12\x03#\x0b\x11\n\x0c\n\
    \x05\x04\x02\x02\x07\x01\x12\x03#\x12\x18\n\x0c\n\x05\x04\x02\x02\x07\
    \x03\x12\x03#\x1b\x1c\n\x0b\n\x04\x04\x02\x02\x08\x12\x03$\x021\n\x0c\n\
    \x05\x04\x02\x02\x08\x04\x12\x03$\x02\n\n\x0c\n\x05\x04\x02\x02\x08\x06\
    \x12\x03$\x0b\x1d\n\x0c\n\x05\x04\x02\x02\x08\x01\x12\x03$\x1e,\n\x0c\n\
    \x05\x04\x02\x02\x08\x03\x12\x03$/0\n\x0b\n\x04\x04\x02\x02\t\x12\x03%\
    \x02,\n\x0c\n\x05\x04\x02\x02\t\x04\x12\x03%\x02\n\n\x0c\n\x05\x04\x02\
    \x02\t\x06\x12\x03%\x0b\x1a\n\x0c\n\x05\x04\x02\x02\t\x01\x12\x03%\x1b&\
    \n\x0c\n\x05\x04\x02\x02\t\x03\x12\x03%)+\n\x0b\n\x04\x04\x02\x02\n\x12\
    \x03&\x02\x20\n\x0c\n\x05\x04\x02\x02\n\x04\x12\x03&\x02\n\n\x0c\n\x05\
    \x04\x02\x02\n\x05\x12\x03&\x0b\x0f\n\x0c\n\x05\x04\x02\x02\n\x01\x12\
    \x03&\x10\x1a\n\x0c\n\x05\x04\x02\x02\n\x03\x12\x03&\x1d\x1f\n\x0b\n\x04\
    \x04\x02\x02\x0b\x12\x03'\x02\x1e\n\x0c\n\x05\x04\x02\x02\x0b\x04\x12\
    \x03'\x02\n\n\x0c\n\x05\x04\x02\x02\x0b\x05\x12\x03'\x0b\x11\n\x0c\n\x05\
    \x04\x02\x02\x0b\x01\x12\x03'\x12\x18\n\x0c\n\x05\x04\x02\x02\x0b\x03\
    \x12\x03'\x1b\x1d\n\x0b\n\x04\x04\x02\x02\x0c\x12\x03(\x02\x1c\n\x0c\n\
    \x05\x04\x02\x02\x0c\x04\x12\x03(\x02\n\n\x0c\n\x05\x04\x02\x02\x0c\x05\
    \x12\x03(\x0b\x11\n\x0c\n\x05\x04\x02\x02\x0c\x01\x12\x03(\x12\x16\n\x0c\
    \n\x05\x04\x02\x02\x0c\x03\x12\x03(\x19\x1b\nU\n\x02\x04\x03\x12\x04.\08\
    \x01\x1aI\x20Space-separated\x20lists\x20of\x20characters\x20representat\
    ive\x20of\x20a\x20given\x20language.\n\n\n\n\x03\x04\x03\x01\x12\x03.\
    \x08\x1a\n\x0b\n\x04\x04\x03\x02\0\x12\x03/\x02\x1b\n\x0c\n\x05\x04\x03\
    \x02\0\x04\x12\x03/\x02\n\n\x0c\n\x05\x04\x03\x02\0\x05\x12\x03/\x0b\x11\
    \n\x0c\n\x05\x04\x03\x02\0\x01\x12\x03/\x12\x16\n\x0c\n\x05\x04\x03\x02\
    \0\x03\x12\x03/\x19\x1a\n\x0b\n\x04\x04\x03\x02\x01\x12\x030\x02\x20\n\
    \x0c\n\x05\x04\x03\x02\x01\x04\x12\x030\x02\n\n\x0c\n\x05\x04\x03\x02\
    \x01\x05\x12\x030\x0b\x11\n\x0c\n\x05\x04\x03\x02\x01\x01\x12\x030\x12\
    \x1b\n\x0c\n\x05\x04\x03\x02\x01\x03\x12\x030\x1e\x1f\n\x0b\n\x04\x04\
    \x03\x02\x02\x12\x031\x02\x1c\n\x0c\n\x05\x04\x03\x02\x02\x04\x12\x031\
    \x02\n\n\x0c\n\x05\x04\x03\x02\x02\x05\x12\x031\x0b\x11\n\x0c\n\x05\x04\
    \x03\x02\x02\x01\x12\x031\x12\x17\n\x0c\n\x05\x04\x03\x02\x02\x03\x12\
    \x031\x1a\x1b\n\x0b\n\x04\x04\x03\x02\x03\x12\x032\x02\x1f\n\x0c\n\x05\
    \x04\x03\x02\x03\x04\x12\x032\x02\n\n\x0c\n\x05\x04\x03\x02\x03\x05\x12\
    \x032\x0b\x11\n\x0c\n\x05\x04\x03\x02\x03\x01\x12\x032\x12\x1a\n\x0c\n\
    \x05\x04\x03\x02\x03\x03\x12\x032\x1d\x1e\n\x0b\n\x04\x04\x03\x02\x04\
    \x12\x033\x02\"\n\x0c\n\x05\x04\x03\x02\x04\x04\x12\x033\x02\n\n\x0c\n\
    \x05\x04\x03\x02\x04\x05\x12\x033\x0b\x11\n\x0c\n\x05\x04\x03\x02\x04\
    \x01\x12\x033\x12\x1d\n\x0c\n\x05\x04\x03\x02\x04\x03\x12\x033\x20!\n\
    \x0b\n\x04\x04\x03\x02\x05\x12\x034\x02\x1c\n\x0c\n\x05\x04\x03\x02\x05\
    \x04\x12\x034\x02\n\n\x0c\n\x05\x04\x03\x02\x05\x05\x12\x034\x0b\x11\n\
    \x0c\n\x05\x04\x03\x02\x05\x01\x12\x034\x12\x17\n\x0c\n\x05\x04\x03\x02\
    \x05\x03\x12\x034\x1a\x1b\nU\n\x04\x04\x03\x02\x06\x12\x035\x02#\"H\x20B\
    ase\x20characters\x20which\x20can\x20be\x20ignored\x20when\x20determinin\
    g\x20language\x20support\n\n\x0c\n\x05\x04\x03\x02\x06\x04\x12\x035\x02\
    \n\n\x0c\n\x05\x04\x03\x02\x06\x05\x12\x035\x0b\x11\n\x0c\n\x05\x04\x03\
    \x02\x06\x01\x12\x035\x12\x1e\n\x0c\n\x05\x04\x03\x02\x06\x03\x12\x035!\
    \"\n\n\n\x02\x04\x04\x12\x04:\0H\x01\n\n\n\x03\x04\x04\x01\x12\x03:\x08\
    \x17\n\x0b\n\x04\x04\x04\x02\0\x12\x03;\x02$\n\x0c\n\x05\x04\x04\x02\0\
    \x04\x12\x03;\x02\n\n\x0c\n\x05\x04\x04\x02\0\x05\x12\x03;\x0b\x11\n\x0c\
    \n\x05\x04\x04\x02\0\x01\x12\x03;\x12\x1f\n\x0c\n\x05\x04\x04\x02\0\x03\
    \x12\x03;\"#\n\x0b\n\x04\x04\x04\x02\x01\x12\x03<\x02'\n\x0c\n\x05\x04\
    \x04\x02\x01\x04\x12\x03<\x02\n\n\x0c\n\x05\x04\x04\x02\x01\x05\x12\x03<\
    \x0b\x11\n\x0c\n\x05\x04\x04\x02\x01\x01\x12\x03<\x12\"\n\x0c\n\x05\x04\
    \x04\x02\x01\x03\x12\x03<%&\n\x0b\n\x04\x04\x04\x02\x02\x12\x03=\x02\x1d\
    \n\x0c\n\x05\x04\x04\x02\x02\x04\x12\x03=\x02\n\n\x0c\n\x05\x04\x04\x02\
    \x02\x05\x12\x03=\x0b\x11\n\x0c\n\x05\x04\x04\x02\x02\x01\x12\x03=\x12\
    \x18\n\x0c\n\x05\x04\x04\x02\x02\x03\x12\x03=\x1b\x1c\n\x0b\n\x04\x04\
    \x04\x02\x03\x12\x03>\x02\x1d\n\x0c\n\x05\x04\x04\x02\x03\x04\x12\x03>\
    \x02\n\n\x0c\n\x05\x04\x04\x02\x03\x05\x12\x03>\x0b\x11\n\x0c\n\x05\x04\
    \x04\x02\x03\x01\x12\x03>\x12\x18\n\x0c\n\x05\x04\x04\x02\x03\x03\x12\
    \x03>\x1b\x1c\n\x0b\n\x04\x04\x04\x02\x04\x12\x03?\x02\x20\n\x0c\n\x05\
    \x04\x04\x02\x04\x04\x12\x03?\x02\n\n\x0c\n\x05\x04\x04\x02\x04\x05\x12\
    \x03?\x0b\x11\n\x0c\n\x05\x04\x04\x02\x04\x01\x12\x03?\x12\x1b\n\x0c\n\
    \x05\x04\x04\x02\x04\x03\x12\x03?\x1e\x1f\n\x0b\n\x04\x04\x04\x02\x05\
    \x12\x03@\x02\x20\n\x0c\n\x05\x04\x04\x02\x05\x04\x12\x03@\x02\n\n\x0c\n\
    \x05\x04\x04\x02\x05\x05\x12\x03@\x0b\x11\n\x0c\n\x05\x04\x04\x02\x05\
    \x01\x12\x03@\x12\x1b\n\x0c\n\x05\x04\x04\x02\x05\x03\x12\x03@\x1e\x1f\n\
    \x0b\n\x04\x04\x04\x02\x06\x12\x03A\x02\x20\n\x0c\n\x05\x04\x04\x02\x06\
    \x04\x12\x03A\x02\n\n\x0c\n\x05\x04\x04\x02\x06\x05\x12\x03A\x0b\x11\n\
    \x0c\n\x05\x04\x04\x02\x06\x01\x12\x03A\x12\x1b\n\x0c\n\x05\x04\x04\x02\
    \x06\x03\x12\x03A\x1e\x1f\n\x0b\n\x04\x04\x04\x02\x07\x12\x03B\x02\"\n\
    \x0c\n\x05\x04\x04\x02\x07\x04\x12\x03B\x02\n\n\x0c\n\x05\x04\x04\x02\
    \x07\x05\x12\x03B\x0b\x11\n\x0c\n\x05\x04\x04\x02\x07\x01\x12\x03B\x12\
    \x1d\n\x0c\n\x05\x04\x04\x02\x07\x03\x12\x03B\x20!\n\x0b\n\x04\x04\x04\
    \x02\x08\x12\x03C\x02\"\n\x0c\n\x05\x04\x04\x02\x08\x04\x12\x03C\x02\n\n\
    \x0c\n\x05\x04\x04\x02\x08\x05\x12\x03C\x0b\x11\n\x0c\n\x05\x04\x04\x02\
    \x08\x01\x12\x03C\x12\x1d\n\x0c\n\x05\x04\x04\x02\x08\x03\x12\x03C\x20!\
    \n\x0b\n\x04\x04\x04\x02\t\x12\x03D\x02#\n\x0c\n\x05\x04\x04\x02\t\x04\
    \x12\x03D\x02\n\n\x0c\n\x05\x04\x04\x02\t\x05\x12\x03D\x0b\x11\n\x0c\n\
    \x05\x04\x04\x02\t\x01\x12\x03D\x12\x1d\n\x0c\n\x05\x04\x04\x02\t\x03\
    \x12\x03D\x20\"\n\x0b\n\x04\x04\x04\x02\n\x12\x03E\x02#\n\x0c\n\x05\x04\
    \x04\x02\n\x04\x12\x03E\x02\n\n\x0c\n\x05\x04\x04\x02\n\x05\x12\x03E\x0b\
    \x11\n\x0c\n\x05\x04\x04\x02\n\x01\x12\x03E\x12\x1d\n\x0c\n\x05\x04\x04\
    \x02\n\x03\x12\x03E\x20\"\n\x0b\n\x04\x04\x04\x02\x0b\x12\x03F\x02#\n\
    \x0c\n\x05\x04\x04\x02\x0b\x04\x12\x03F\x02\n\n\x0c\n\x05\x04\x04\x02\
    \x0b\x05\x12\x03F\x0b\x11\n\x0c\n\x05\x04\x04\x02\x0b\x01\x12\x03F\x12\
    \x1d\n\x0c\n\x05\x04\x04\x02\x0b\x03\x12\x03F\x20\"\n\x0b\n\x04\x04\x04\
    \x02\x0c\x12\x03G\x02\x1c\n\x0c\n\x05\x04\x04\x02\x0c\x04\x12\x03G\x02\n\
    \n\x0c\n\x05\x04\x04\x02\x0c\x05\x12\x03G\x0b\x11\n\x0c\n\x05\x04\x04\
    \x02\x0c\x01\x12\x03G\x12\x16\n\x0c\n\x05\x04\x04\x02\x0c\x03\x12\x03G\
    \x19\x1b\
";

/// `FileDescriptorProto` object which was a source for this generated file
fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
    static file_descriptor_proto_lazy: ::protobuf::rt::Lazy<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::Lazy::new();
    file_descriptor_proto_lazy.get(|| {
        ::protobuf::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
    })
}

/// `FileDescriptor` object which allows dynamic access to files
pub fn file_descriptor() -> &'static ::protobuf::reflect::FileDescriptor {
    static generated_file_descriptor_lazy: ::protobuf::rt::Lazy<::protobuf::reflect::GeneratedFileDescriptor> = ::protobuf::rt::Lazy::new();
    static file_descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::FileDescriptor> = ::protobuf::rt::Lazy::new();
    file_descriptor.get(|| {
        let generated_file_descriptor = generated_file_descriptor_lazy.get(|| {
            let mut deps = ::std::vec::Vec::with_capacity(0);
            let mut messages = ::std::vec::Vec::with_capacity(5);
            messages.push(RegionProto::generated_message_descriptor_data());
            messages.push(ScriptProto::generated_message_descriptor_data());
            messages.push(LanguageProto::generated_message_descriptor_data());
            messages.push(ExemplarCharsProto::generated_message_descriptor_data());
            messages.push(SampleTextProto::generated_message_descriptor_data());
            let mut enums = ::std::vec::Vec::with_capacity(0);
            ::protobuf::reflect::GeneratedFileDescriptor::new_generated(
                file_descriptor_proto(),
                deps,
                messages,
                enums,
            )
        });
        ::protobuf::reflect::FileDescriptor::new_generated_2(generated_file_descriptor)
    })
}
