github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/libraries/pingcap/tipb/src/select.rs (about)

     1  // This file is generated. Do not edit
     2  // @generated
     3  
     4  #![allow(dead_code)]
     5  #![allow(non_camel_case_types)]
     6  #![allow(non_snake_case)]
     7  #![allow(non_upper_case_globals)]
     8  #![allow(unused_imports)]
     9  
    10  use protobuf::Message as Message_imported_for_functions;
    11  use protobuf::ProtobufEnum as ProtobufEnum_imported_for_functions;
    12  
    13  #[derive(Clone,Default)]
    14  pub struct KeyRange {
    15      // message fields
    16      low: ::protobuf::SingularField<::std::vec::Vec<u8>>,
    17      high: ::protobuf::SingularField<::std::vec::Vec<u8>>,
    18      // special fields
    19      unknown_fields: ::protobuf::UnknownFields,
    20      cached_size: ::std::cell::Cell<u32>,
    21  }
    22  
    23  // see codegen.rs for the explanation why impl Sync explicitly
    24  unsafe impl ::std::marker::Sync for KeyRange {}
    25  
    26  impl KeyRange {
    27      pub fn new() -> KeyRange {
    28          ::std::default::Default::default()
    29      }
    30  
    31      pub fn default_instance() -> &'static KeyRange {
    32          static mut instance: ::protobuf::lazy::Lazy<KeyRange> = ::protobuf::lazy::Lazy {
    33              lock: ::protobuf::lazy::ONCE_INIT,
    34              ptr: 0 as *const KeyRange,
    35          };
    36          unsafe {
    37              instance.get(|| {
    38                  KeyRange {
    39                      low: ::protobuf::SingularField::none(),
    40                      high: ::protobuf::SingularField::none(),
    41                      unknown_fields: ::protobuf::UnknownFields::new(),
    42                      cached_size: ::std::cell::Cell::new(0),
    43                  }
    44              })
    45          }
    46      }
    47  
    48      // optional bytes low = 1;
    49  
    50      pub fn clear_low(&mut self) {
    51          self.low.clear();
    52      }
    53  
    54      pub fn has_low(&self) -> bool {
    55          self.low.is_some()
    56      }
    57  
    58      // Param is passed by value, moved
    59      pub fn set_low(&mut self, v: ::std::vec::Vec<u8>) {
    60          self.low = ::protobuf::SingularField::some(v);
    61      }
    62  
    63      // Mutable pointer to the field.
    64      // If field is not initialized, it is initialized with default value first.
    65      pub fn mut_low<'a>(&'a mut self) -> &'a mut ::std::vec::Vec<u8> {
    66          if self.low.is_none() {
    67              self.low.set_default();
    68          };
    69          self.low.as_mut().unwrap()
    70      }
    71  
    72      // Take field
    73      pub fn take_low(&mut self) -> ::std::vec::Vec<u8> {
    74          self.low.take().unwrap_or_else(|| ::std::vec::Vec::new())
    75      }
    76  
    77      pub fn get_low<'a>(&'a self) -> &'a [u8] {
    78          match self.low.as_ref() {
    79              Some(v) => &v,
    80              None => &[],
    81          }
    82      }
    83  
    84      // optional bytes high = 2;
    85  
    86      pub fn clear_high(&mut self) {
    87          self.high.clear();
    88      }
    89  
    90      pub fn has_high(&self) -> bool {
    91          self.high.is_some()
    92      }
    93  
    94      // Param is passed by value, moved
    95      pub fn set_high(&mut self, v: ::std::vec::Vec<u8>) {
    96          self.high = ::protobuf::SingularField::some(v);
    97      }
    98  
    99      // Mutable pointer to the field.
   100      // If field is not initialized, it is initialized with default value first.
   101      pub fn mut_high<'a>(&'a mut self) -> &'a mut ::std::vec::Vec<u8> {
   102          if self.high.is_none() {
   103              self.high.set_default();
   104          };
   105          self.high.as_mut().unwrap()
   106      }
   107  
   108      // Take field
   109      pub fn take_high(&mut self) -> ::std::vec::Vec<u8> {
   110          self.high.take().unwrap_or_else(|| ::std::vec::Vec::new())
   111      }
   112  
   113      pub fn get_high<'a>(&'a self) -> &'a [u8] {
   114          match self.high.as_ref() {
   115              Some(v) => &v,
   116              None => &[],
   117          }
   118      }
   119  }
   120  
   121  impl ::protobuf::Message for KeyRange {
   122      fn is_initialized(&self) -> bool {
   123          true
   124      }
   125  
   126      fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
   127          while !try!(is.eof()) {
   128              let (field_number, wire_type) = try!(is.read_tag_unpack());
   129              match field_number {
   130                  1 => {
   131                      try!(::protobuf::rt::read_singular_bytes_into(wire_type, is, &mut self.low));
   132                  },
   133                  2 => {
   134                      try!(::protobuf::rt::read_singular_bytes_into(wire_type, is, &mut self.high));
   135                  },
   136                  _ => {
   137                      try!(::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields()));
   138                  },
   139              };
   140          }
   141          ::std::result::Result::Ok(())
   142      }
   143  
   144      // Compute sizes of nested messages
   145      #[allow(unused_variables)]
   146      fn compute_size(&self) -> u32 {
   147          let mut my_size = 0;
   148          for value in self.low.iter() {
   149              my_size += ::protobuf::rt::bytes_size(1, &value);
   150          };
   151          for value in self.high.iter() {
   152              my_size += ::protobuf::rt::bytes_size(2, &value);
   153          };
   154          my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
   155          self.cached_size.set(my_size);
   156          my_size
   157      }
   158  
   159      fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
   160          if let Some(v) = self.low.as_ref() {
   161              try!(os.write_bytes(1, &v));
   162          };
   163          if let Some(v) = self.high.as_ref() {
   164              try!(os.write_bytes(2, &v));
   165          };
   166          try!(os.write_unknown_fields(self.get_unknown_fields()));
   167          ::std::result::Result::Ok(())
   168      }
   169  
   170      fn get_cached_size(&self) -> u32 {
   171          self.cached_size.get()
   172      }
   173  
   174      fn get_unknown_fields<'s>(&'s self) -> &'s ::protobuf::UnknownFields {
   175          &self.unknown_fields
   176      }
   177  
   178      fn mut_unknown_fields<'s>(&'s mut self) -> &'s mut ::protobuf::UnknownFields {
   179          &mut self.unknown_fields
   180      }
   181  
   182      fn type_id(&self) -> ::std::any::TypeId {
   183          ::std::any::TypeId::of::<KeyRange>()
   184      }
   185  
   186      fn as_any(&self) -> &::std::any::Any {
   187          self as &::std::any::Any
   188      }
   189  
   190      fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
   191          ::protobuf::MessageStatic::descriptor_static(None::<Self>)
   192      }
   193  }
   194  
   195  impl ::protobuf::MessageStatic for KeyRange {
   196      fn new() -> KeyRange {
   197          KeyRange::new()
   198      }
   199  
   200      fn descriptor_static(_: ::std::option::Option<KeyRange>) -> &'static ::protobuf::reflect::MessageDescriptor {
   201          static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
   202              lock: ::protobuf::lazy::ONCE_INIT,
   203              ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
   204          };
   205          unsafe {
   206              descriptor.get(|| {
   207                  let mut fields = ::std::vec::Vec::new();
   208                  fields.push(::protobuf::reflect::accessor::make_singular_bytes_accessor(
   209                      "low",
   210                      KeyRange::has_low,
   211                      KeyRange::get_low,
   212                  ));
   213                  fields.push(::protobuf::reflect::accessor::make_singular_bytes_accessor(
   214                      "high",
   215                      KeyRange::has_high,
   216                      KeyRange::get_high,
   217                  ));
   218                  ::protobuf::reflect::MessageDescriptor::new::<KeyRange>(
   219                      "KeyRange",
   220                      fields,
   221                      file_descriptor_proto()
   222                  )
   223              })
   224          }
   225      }
   226  }
   227  
   228  impl ::protobuf::Clear for KeyRange {
   229      fn clear(&mut self) {
   230          self.clear_low();
   231          self.clear_high();
   232          self.unknown_fields.clear();
   233      }
   234  }
   235  
   236  impl ::std::cmp::PartialEq for KeyRange {
   237      fn eq(&self, other: &KeyRange) -> bool {
   238          self.low == other.low &&
   239          self.high == other.high &&
   240          self.unknown_fields == other.unknown_fields
   241      }
   242  }
   243  
   244  impl ::std::fmt::Debug for KeyRange {
   245      fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
   246          ::protobuf::text_format::fmt(self, f)
   247      }
   248  }
   249  
   250  #[derive(Clone,Default)]
   251  pub struct ByItem {
   252      // message fields
   253      expr: ::protobuf::SingularPtrField<super::expression::Expr>,
   254      desc: ::std::option::Option<bool>,
   255      // special fields
   256      unknown_fields: ::protobuf::UnknownFields,
   257      cached_size: ::std::cell::Cell<u32>,
   258  }
   259  
   260  // see codegen.rs for the explanation why impl Sync explicitly
   261  unsafe impl ::std::marker::Sync for ByItem {}
   262  
   263  impl ByItem {
   264      pub fn new() -> ByItem {
   265          ::std::default::Default::default()
   266      }
   267  
   268      pub fn default_instance() -> &'static ByItem {
   269          static mut instance: ::protobuf::lazy::Lazy<ByItem> = ::protobuf::lazy::Lazy {
   270              lock: ::protobuf::lazy::ONCE_INIT,
   271              ptr: 0 as *const ByItem,
   272          };
   273          unsafe {
   274              instance.get(|| {
   275                  ByItem {
   276                      expr: ::protobuf::SingularPtrField::none(),
   277                      desc: ::std::option::Option::None,
   278                      unknown_fields: ::protobuf::UnknownFields::new(),
   279                      cached_size: ::std::cell::Cell::new(0),
   280                  }
   281              })
   282          }
   283      }
   284  
   285      // optional .tipb.Expr expr = 1;
   286  
   287      pub fn clear_expr(&mut self) {
   288          self.expr.clear();
   289      }
   290  
   291      pub fn has_expr(&self) -> bool {
   292          self.expr.is_some()
   293      }
   294  
   295      // Param is passed by value, moved
   296      pub fn set_expr(&mut self, v: super::expression::Expr) {
   297          self.expr = ::protobuf::SingularPtrField::some(v);
   298      }
   299  
   300      // Mutable pointer to the field.
   301      // If field is not initialized, it is initialized with default value first.
   302      pub fn mut_expr<'a>(&'a mut self) -> &'a mut super::expression::Expr {
   303          if self.expr.is_none() {
   304              self.expr.set_default();
   305          };
   306          self.expr.as_mut().unwrap()
   307      }
   308  
   309      // Take field
   310      pub fn take_expr(&mut self) -> super::expression::Expr {
   311          self.expr.take().unwrap_or_else(|| super::expression::Expr::new())
   312      }
   313  
   314      pub fn get_expr<'a>(&'a self) -> &'a super::expression::Expr {
   315          self.expr.as_ref().unwrap_or_else(|| super::expression::Expr::default_instance())
   316      }
   317  
   318      // optional bool desc = 2;
   319  
   320      pub fn clear_desc(&mut self) {
   321          self.desc = ::std::option::Option::None;
   322      }
   323  
   324      pub fn has_desc(&self) -> bool {
   325          self.desc.is_some()
   326      }
   327  
   328      // Param is passed by value, moved
   329      pub fn set_desc(&mut self, v: bool) {
   330          self.desc = ::std::option::Option::Some(v);
   331      }
   332  
   333      pub fn get_desc<'a>(&self) -> bool {
   334          self.desc.unwrap_or(false)
   335      }
   336  }
   337  
   338  impl ::protobuf::Message for ByItem {
   339      fn is_initialized(&self) -> bool {
   340          true
   341      }
   342  
   343      fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
   344          while !try!(is.eof()) {
   345              let (field_number, wire_type) = try!(is.read_tag_unpack());
   346              match field_number {
   347                  1 => {
   348                      try!(::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.expr));
   349                  },
   350                  2 => {
   351                      if wire_type != ::protobuf::wire_format::WireTypeVarint {
   352                          return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
   353                      };
   354                      let tmp = try!(is.read_bool());
   355                      self.desc = ::std::option::Option::Some(tmp);
   356                  },
   357                  _ => {
   358                      try!(::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields()));
   359                  },
   360              };
   361          }
   362          ::std::result::Result::Ok(())
   363      }
   364  
   365      // Compute sizes of nested messages
   366      #[allow(unused_variables)]
   367      fn compute_size(&self) -> u32 {
   368          let mut my_size = 0;
   369          for value in self.expr.iter() {
   370              let len = value.compute_size();
   371              my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
   372          };
   373          if self.desc.is_some() {
   374              my_size += 2;
   375          };
   376          my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
   377          self.cached_size.set(my_size);
   378          my_size
   379      }
   380  
   381      fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
   382          if let Some(v) = self.expr.as_ref() {
   383              try!(os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited));
   384              try!(os.write_raw_varint32(v.get_cached_size()));
   385              try!(v.write_to_with_cached_sizes(os));
   386          };
   387          if let Some(v) = self.desc {
   388              try!(os.write_bool(2, v));
   389          };
   390          try!(os.write_unknown_fields(self.get_unknown_fields()));
   391          ::std::result::Result::Ok(())
   392      }
   393  
   394      fn get_cached_size(&self) -> u32 {
   395          self.cached_size.get()
   396      }
   397  
   398      fn get_unknown_fields<'s>(&'s self) -> &'s ::protobuf::UnknownFields {
   399          &self.unknown_fields
   400      }
   401  
   402      fn mut_unknown_fields<'s>(&'s mut self) -> &'s mut ::protobuf::UnknownFields {
   403          &mut self.unknown_fields
   404      }
   405  
   406      fn type_id(&self) -> ::std::any::TypeId {
   407          ::std::any::TypeId::of::<ByItem>()
   408      }
   409  
   410      fn as_any(&self) -> &::std::any::Any {
   411          self as &::std::any::Any
   412      }
   413  
   414      fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
   415          ::protobuf::MessageStatic::descriptor_static(None::<Self>)
   416      }
   417  }
   418  
   419  impl ::protobuf::MessageStatic for ByItem {
   420      fn new() -> ByItem {
   421          ByItem::new()
   422      }
   423  
   424      fn descriptor_static(_: ::std::option::Option<ByItem>) -> &'static ::protobuf::reflect::MessageDescriptor {
   425          static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
   426              lock: ::protobuf::lazy::ONCE_INIT,
   427              ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
   428          };
   429          unsafe {
   430              descriptor.get(|| {
   431                  let mut fields = ::std::vec::Vec::new();
   432                  fields.push(::protobuf::reflect::accessor::make_singular_message_accessor(
   433                      "expr",
   434                      ByItem::has_expr,
   435                      ByItem::get_expr,
   436                  ));
   437                  fields.push(::protobuf::reflect::accessor::make_singular_bool_accessor(
   438                      "desc",
   439                      ByItem::has_desc,
   440                      ByItem::get_desc,
   441                  ));
   442                  ::protobuf::reflect::MessageDescriptor::new::<ByItem>(
   443                      "ByItem",
   444                      fields,
   445                      file_descriptor_proto()
   446                  )
   447              })
   448          }
   449      }
   450  }
   451  
   452  impl ::protobuf::Clear for ByItem {
   453      fn clear(&mut self) {
   454          self.clear_expr();
   455          self.clear_desc();
   456          self.unknown_fields.clear();
   457      }
   458  }
   459  
   460  impl ::std::cmp::PartialEq for ByItem {
   461      fn eq(&self, other: &ByItem) -> bool {
   462          self.expr == other.expr &&
   463          self.desc == other.desc &&
   464          self.unknown_fields == other.unknown_fields
   465      }
   466  }
   467  
   468  impl ::std::fmt::Debug for ByItem {
   469      fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
   470          ::protobuf::text_format::fmt(self, f)
   471      }
   472  }
   473  
   474  #[derive(Clone,Default)]
   475  pub struct SelectRequest {
   476      // message fields
   477      start_ts: ::std::option::Option<u64>,
   478      table_info: ::protobuf::SingularPtrField<super::schema::TableInfo>,
   479      index_info: ::protobuf::SingularPtrField<super::schema::IndexInfo>,
   480      fields: ::protobuf::RepeatedField<super::expression::Expr>,
   481      ranges: ::protobuf::RepeatedField<KeyRange>,
   482      distinct: ::std::option::Option<bool>,
   483      field_where: ::protobuf::SingularPtrField<super::expression::Expr>,
   484      group_by: ::protobuf::RepeatedField<ByItem>,
   485      having: ::protobuf::SingularPtrField<super::expression::Expr>,
   486      order_by: ::protobuf::RepeatedField<ByItem>,
   487      limit: ::std::option::Option<i64>,
   488      // special fields
   489      unknown_fields: ::protobuf::UnknownFields,
   490      cached_size: ::std::cell::Cell<u32>,
   491  }
   492  
   493  // see codegen.rs for the explanation why impl Sync explicitly
   494  unsafe impl ::std::marker::Sync for SelectRequest {}
   495  
   496  impl SelectRequest {
   497      pub fn new() -> SelectRequest {
   498          ::std::default::Default::default()
   499      }
   500  
   501      pub fn default_instance() -> &'static SelectRequest {
   502          static mut instance: ::protobuf::lazy::Lazy<SelectRequest> = ::protobuf::lazy::Lazy {
   503              lock: ::protobuf::lazy::ONCE_INIT,
   504              ptr: 0 as *const SelectRequest,
   505          };
   506          unsafe {
   507              instance.get(|| {
   508                  SelectRequest {
   509                      start_ts: ::std::option::Option::None,
   510                      table_info: ::protobuf::SingularPtrField::none(),
   511                      index_info: ::protobuf::SingularPtrField::none(),
   512                      fields: ::protobuf::RepeatedField::new(),
   513                      ranges: ::protobuf::RepeatedField::new(),
   514                      distinct: ::std::option::Option::None,
   515                      field_where: ::protobuf::SingularPtrField::none(),
   516                      group_by: ::protobuf::RepeatedField::new(),
   517                      having: ::protobuf::SingularPtrField::none(),
   518                      order_by: ::protobuf::RepeatedField::new(),
   519                      limit: ::std::option::Option::None,
   520                      unknown_fields: ::protobuf::UnknownFields::new(),
   521                      cached_size: ::std::cell::Cell::new(0),
   522                  }
   523              })
   524          }
   525      }
   526  
   527      // optional uint64 start_ts = 1;
   528  
   529      pub fn clear_start_ts(&mut self) {
   530          self.start_ts = ::std::option::Option::None;
   531      }
   532  
   533      pub fn has_start_ts(&self) -> bool {
   534          self.start_ts.is_some()
   535      }
   536  
   537      // Param is passed by value, moved
   538      pub fn set_start_ts(&mut self, v: u64) {
   539          self.start_ts = ::std::option::Option::Some(v);
   540      }
   541  
   542      pub fn get_start_ts<'a>(&self) -> u64 {
   543          self.start_ts.unwrap_or(0)
   544      }
   545  
   546      // optional .tipb.TableInfo table_info = 2;
   547  
   548      pub fn clear_table_info(&mut self) {
   549          self.table_info.clear();
   550      }
   551  
   552      pub fn has_table_info(&self) -> bool {
   553          self.table_info.is_some()
   554      }
   555  
   556      // Param is passed by value, moved
   557      pub fn set_table_info(&mut self, v: super::schema::TableInfo) {
   558          self.table_info = ::protobuf::SingularPtrField::some(v);
   559      }
   560  
   561      // Mutable pointer to the field.
   562      // If field is not initialized, it is initialized with default value first.
   563      pub fn mut_table_info<'a>(&'a mut self) -> &'a mut super::schema::TableInfo {
   564          if self.table_info.is_none() {
   565              self.table_info.set_default();
   566          };
   567          self.table_info.as_mut().unwrap()
   568      }
   569  
   570      // Take field
   571      pub fn take_table_info(&mut self) -> super::schema::TableInfo {
   572          self.table_info.take().unwrap_or_else(|| super::schema::TableInfo::new())
   573      }
   574  
   575      pub fn get_table_info<'a>(&'a self) -> &'a super::schema::TableInfo {
   576          self.table_info.as_ref().unwrap_or_else(|| super::schema::TableInfo::default_instance())
   577      }
   578  
   579      // optional .tipb.IndexInfo index_info = 3;
   580  
   581      pub fn clear_index_info(&mut self) {
   582          self.index_info.clear();
   583      }
   584  
   585      pub fn has_index_info(&self) -> bool {
   586          self.index_info.is_some()
   587      }
   588  
   589      // Param is passed by value, moved
   590      pub fn set_index_info(&mut self, v: super::schema::IndexInfo) {
   591          self.index_info = ::protobuf::SingularPtrField::some(v);
   592      }
   593  
   594      // Mutable pointer to the field.
   595      // If field is not initialized, it is initialized with default value first.
   596      pub fn mut_index_info<'a>(&'a mut self) -> &'a mut super::schema::IndexInfo {
   597          if self.index_info.is_none() {
   598              self.index_info.set_default();
   599          };
   600          self.index_info.as_mut().unwrap()
   601      }
   602  
   603      // Take field
   604      pub fn take_index_info(&mut self) -> super::schema::IndexInfo {
   605          self.index_info.take().unwrap_or_else(|| super::schema::IndexInfo::new())
   606      }
   607  
   608      pub fn get_index_info<'a>(&'a self) -> &'a super::schema::IndexInfo {
   609          self.index_info.as_ref().unwrap_or_else(|| super::schema::IndexInfo::default_instance())
   610      }
   611  
   612      // repeated .tipb.Expr fields = 4;
   613  
   614      pub fn clear_fields(&mut self) {
   615          self.fields.clear();
   616      }
   617  
   618      // Param is passed by value, moved
   619      pub fn set_fields(&mut self, v: ::protobuf::RepeatedField<super::expression::Expr>) {
   620          self.fields = v;
   621      }
   622  
   623      // Mutable pointer to the field.
   624      pub fn mut_fields<'a>(&'a mut self) -> &'a mut ::protobuf::RepeatedField<super::expression::Expr> {
   625          &mut self.fields
   626      }
   627  
   628      // Take field
   629      pub fn take_fields(&mut self) -> ::protobuf::RepeatedField<super::expression::Expr> {
   630          ::std::mem::replace(&mut self.fields, ::protobuf::RepeatedField::new())
   631      }
   632  
   633      pub fn get_fields<'a>(&'a self) -> &'a [super::expression::Expr] {
   634          &self.fields
   635      }
   636  
   637      // repeated .tipb.KeyRange ranges = 5;
   638  
   639      pub fn clear_ranges(&mut self) {
   640          self.ranges.clear();
   641      }
   642  
   643      // Param is passed by value, moved
   644      pub fn set_ranges(&mut self, v: ::protobuf::RepeatedField<KeyRange>) {
   645          self.ranges = v;
   646      }
   647  
   648      // Mutable pointer to the field.
   649      pub fn mut_ranges<'a>(&'a mut self) -> &'a mut ::protobuf::RepeatedField<KeyRange> {
   650          &mut self.ranges
   651      }
   652  
   653      // Take field
   654      pub fn take_ranges(&mut self) -> ::protobuf::RepeatedField<KeyRange> {
   655          ::std::mem::replace(&mut self.ranges, ::protobuf::RepeatedField::new())
   656      }
   657  
   658      pub fn get_ranges<'a>(&'a self) -> &'a [KeyRange] {
   659          &self.ranges
   660      }
   661  
   662      // optional bool distinct = 6;
   663  
   664      pub fn clear_distinct(&mut self) {
   665          self.distinct = ::std::option::Option::None;
   666      }
   667  
   668      pub fn has_distinct(&self) -> bool {
   669          self.distinct.is_some()
   670      }
   671  
   672      // Param is passed by value, moved
   673      pub fn set_distinct(&mut self, v: bool) {
   674          self.distinct = ::std::option::Option::Some(v);
   675      }
   676  
   677      pub fn get_distinct<'a>(&self) -> bool {
   678          self.distinct.unwrap_or(false)
   679      }
   680  
   681      // optional .tipb.Expr where = 7;
   682  
   683      pub fn clear_field_where(&mut self) {
   684          self.field_where.clear();
   685      }
   686  
   687      pub fn has_field_where(&self) -> bool {
   688          self.field_where.is_some()
   689      }
   690  
   691      // Param is passed by value, moved
   692      pub fn set_field_where(&mut self, v: super::expression::Expr) {
   693          self.field_where = ::protobuf::SingularPtrField::some(v);
   694      }
   695  
   696      // Mutable pointer to the field.
   697      // If field is not initialized, it is initialized with default value first.
   698      pub fn mut_field_where<'a>(&'a mut self) -> &'a mut super::expression::Expr {
   699          if self.field_where.is_none() {
   700              self.field_where.set_default();
   701          };
   702          self.field_where.as_mut().unwrap()
   703      }
   704  
   705      // Take field
   706      pub fn take_field_where(&mut self) -> super::expression::Expr {
   707          self.field_where.take().unwrap_or_else(|| super::expression::Expr::new())
   708      }
   709  
   710      pub fn get_field_where<'a>(&'a self) -> &'a super::expression::Expr {
   711          self.field_where.as_ref().unwrap_or_else(|| super::expression::Expr::default_instance())
   712      }
   713  
   714      // repeated .tipb.ByItem group_by = 8;
   715  
   716      pub fn clear_group_by(&mut self) {
   717          self.group_by.clear();
   718      }
   719  
   720      // Param is passed by value, moved
   721      pub fn set_group_by(&mut self, v: ::protobuf::RepeatedField<ByItem>) {
   722          self.group_by = v;
   723      }
   724  
   725      // Mutable pointer to the field.
   726      pub fn mut_group_by<'a>(&'a mut self) -> &'a mut ::protobuf::RepeatedField<ByItem> {
   727          &mut self.group_by
   728      }
   729  
   730      // Take field
   731      pub fn take_group_by(&mut self) -> ::protobuf::RepeatedField<ByItem> {
   732          ::std::mem::replace(&mut self.group_by, ::protobuf::RepeatedField::new())
   733      }
   734  
   735      pub fn get_group_by<'a>(&'a self) -> &'a [ByItem] {
   736          &self.group_by
   737      }
   738  
   739      // optional .tipb.Expr having = 9;
   740  
   741      pub fn clear_having(&mut self) {
   742          self.having.clear();
   743      }
   744  
   745      pub fn has_having(&self) -> bool {
   746          self.having.is_some()
   747      }
   748  
   749      // Param is passed by value, moved
   750      pub fn set_having(&mut self, v: super::expression::Expr) {
   751          self.having = ::protobuf::SingularPtrField::some(v);
   752      }
   753  
   754      // Mutable pointer to the field.
   755      // If field is not initialized, it is initialized with default value first.
   756      pub fn mut_having<'a>(&'a mut self) -> &'a mut super::expression::Expr {
   757          if self.having.is_none() {
   758              self.having.set_default();
   759          };
   760          self.having.as_mut().unwrap()
   761      }
   762  
   763      // Take field
   764      pub fn take_having(&mut self) -> super::expression::Expr {
   765          self.having.take().unwrap_or_else(|| super::expression::Expr::new())
   766      }
   767  
   768      pub fn get_having<'a>(&'a self) -> &'a super::expression::Expr {
   769          self.having.as_ref().unwrap_or_else(|| super::expression::Expr::default_instance())
   770      }
   771  
   772      // repeated .tipb.ByItem order_by = 10;
   773  
   774      pub fn clear_order_by(&mut self) {
   775          self.order_by.clear();
   776      }
   777  
   778      // Param is passed by value, moved
   779      pub fn set_order_by(&mut self, v: ::protobuf::RepeatedField<ByItem>) {
   780          self.order_by = v;
   781      }
   782  
   783      // Mutable pointer to the field.
   784      pub fn mut_order_by<'a>(&'a mut self) -> &'a mut ::protobuf::RepeatedField<ByItem> {
   785          &mut self.order_by
   786      }
   787  
   788      // Take field
   789      pub fn take_order_by(&mut self) -> ::protobuf::RepeatedField<ByItem> {
   790          ::std::mem::replace(&mut self.order_by, ::protobuf::RepeatedField::new())
   791      }
   792  
   793      pub fn get_order_by<'a>(&'a self) -> &'a [ByItem] {
   794          &self.order_by
   795      }
   796  
   797      // optional int64 limit = 12;
   798  
   799      pub fn clear_limit(&mut self) {
   800          self.limit = ::std::option::Option::None;
   801      }
   802  
   803      pub fn has_limit(&self) -> bool {
   804          self.limit.is_some()
   805      }
   806  
   807      // Param is passed by value, moved
   808      pub fn set_limit(&mut self, v: i64) {
   809          self.limit = ::std::option::Option::Some(v);
   810      }
   811  
   812      pub fn get_limit<'a>(&self) -> i64 {
   813          self.limit.unwrap_or(0)
   814      }
   815  }
   816  
   817  impl ::protobuf::Message for SelectRequest {
   818      fn is_initialized(&self) -> bool {
   819          true
   820      }
   821  
   822      fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
   823          while !try!(is.eof()) {
   824              let (field_number, wire_type) = try!(is.read_tag_unpack());
   825              match field_number {
   826                  1 => {
   827                      if wire_type != ::protobuf::wire_format::WireTypeVarint {
   828                          return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
   829                      };
   830                      let tmp = try!(is.read_uint64());
   831                      self.start_ts = ::std::option::Option::Some(tmp);
   832                  },
   833                  2 => {
   834                      try!(::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.table_info));
   835                  },
   836                  3 => {
   837                      try!(::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.index_info));
   838                  },
   839                  4 => {
   840                      try!(::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.fields));
   841                  },
   842                  5 => {
   843                      try!(::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.ranges));
   844                  },
   845                  6 => {
   846                      if wire_type != ::protobuf::wire_format::WireTypeVarint {
   847                          return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
   848                      };
   849                      let tmp = try!(is.read_bool());
   850                      self.distinct = ::std::option::Option::Some(tmp);
   851                  },
   852                  7 => {
   853                      try!(::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.field_where));
   854                  },
   855                  8 => {
   856                      try!(::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.group_by));
   857                  },
   858                  9 => {
   859                      try!(::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.having));
   860                  },
   861                  10 => {
   862                      try!(::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.order_by));
   863                  },
   864                  12 => {
   865                      if wire_type != ::protobuf::wire_format::WireTypeVarint {
   866                          return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
   867                      };
   868                      let tmp = try!(is.read_int64());
   869                      self.limit = ::std::option::Option::Some(tmp);
   870                  },
   871                  _ => {
   872                      try!(::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields()));
   873                  },
   874              };
   875          }
   876          ::std::result::Result::Ok(())
   877      }
   878  
   879      // Compute sizes of nested messages
   880      #[allow(unused_variables)]
   881      fn compute_size(&self) -> u32 {
   882          let mut my_size = 0;
   883          for value in self.start_ts.iter() {
   884              my_size += ::protobuf::rt::value_size(1, *value, ::protobuf::wire_format::WireTypeVarint);
   885          };
   886          for value in self.table_info.iter() {
   887              let len = value.compute_size();
   888              my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
   889          };
   890          for value in self.index_info.iter() {
   891              let len = value.compute_size();
   892              my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
   893          };
   894          for value in self.fields.iter() {
   895              let len = value.compute_size();
   896              my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
   897          };
   898          for value in self.ranges.iter() {
   899              let len = value.compute_size();
   900              my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
   901          };
   902          if self.distinct.is_some() {
   903              my_size += 2;
   904          };
   905          for value in self.field_where.iter() {
   906              let len = value.compute_size();
   907              my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
   908          };
   909          for value in self.group_by.iter() {
   910              let len = value.compute_size();
   911              my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
   912          };
   913          for value in self.having.iter() {
   914              let len = value.compute_size();
   915              my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
   916          };
   917          for value in self.order_by.iter() {
   918              let len = value.compute_size();
   919              my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
   920          };
   921          for value in self.limit.iter() {
   922              my_size += ::protobuf::rt::value_size(12, *value, ::protobuf::wire_format::WireTypeVarint);
   923          };
   924          my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
   925          self.cached_size.set(my_size);
   926          my_size
   927      }
   928  
   929      fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
   930          if let Some(v) = self.start_ts {
   931              try!(os.write_uint64(1, v));
   932          };
   933          if let Some(v) = self.table_info.as_ref() {
   934              try!(os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited));
   935              try!(os.write_raw_varint32(v.get_cached_size()));
   936              try!(v.write_to_with_cached_sizes(os));
   937          };
   938          if let Some(v) = self.index_info.as_ref() {
   939              try!(os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited));
   940              try!(os.write_raw_varint32(v.get_cached_size()));
   941              try!(v.write_to_with_cached_sizes(os));
   942          };
   943          for v in self.fields.iter() {
   944              try!(os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited));
   945              try!(os.write_raw_varint32(v.get_cached_size()));
   946              try!(v.write_to_with_cached_sizes(os));
   947          };
   948          for v in self.ranges.iter() {
   949              try!(os.write_tag(5, ::protobuf::wire_format::WireTypeLengthDelimited));
   950              try!(os.write_raw_varint32(v.get_cached_size()));
   951              try!(v.write_to_with_cached_sizes(os));
   952          };
   953          if let Some(v) = self.distinct {
   954              try!(os.write_bool(6, v));
   955          };
   956          if let Some(v) = self.field_where.as_ref() {
   957              try!(os.write_tag(7, ::protobuf::wire_format::WireTypeLengthDelimited));
   958              try!(os.write_raw_varint32(v.get_cached_size()));
   959              try!(v.write_to_with_cached_sizes(os));
   960          };
   961          for v in self.group_by.iter() {
   962              try!(os.write_tag(8, ::protobuf::wire_format::WireTypeLengthDelimited));
   963              try!(os.write_raw_varint32(v.get_cached_size()));
   964              try!(v.write_to_with_cached_sizes(os));
   965          };
   966          if let Some(v) = self.having.as_ref() {
   967              try!(os.write_tag(9, ::protobuf::wire_format::WireTypeLengthDelimited));
   968              try!(os.write_raw_varint32(v.get_cached_size()));
   969              try!(v.write_to_with_cached_sizes(os));
   970          };
   971          for v in self.order_by.iter() {
   972              try!(os.write_tag(10, ::protobuf::wire_format::WireTypeLengthDelimited));
   973              try!(os.write_raw_varint32(v.get_cached_size()));
   974              try!(v.write_to_with_cached_sizes(os));
   975          };
   976          if let Some(v) = self.limit {
   977              try!(os.write_int64(12, v));
   978          };
   979          try!(os.write_unknown_fields(self.get_unknown_fields()));
   980          ::std::result::Result::Ok(())
   981      }
   982  
   983      fn get_cached_size(&self) -> u32 {
   984          self.cached_size.get()
   985      }
   986  
   987      fn get_unknown_fields<'s>(&'s self) -> &'s ::protobuf::UnknownFields {
   988          &self.unknown_fields
   989      }
   990  
   991      fn mut_unknown_fields<'s>(&'s mut self) -> &'s mut ::protobuf::UnknownFields {
   992          &mut self.unknown_fields
   993      }
   994  
   995      fn type_id(&self) -> ::std::any::TypeId {
   996          ::std::any::TypeId::of::<SelectRequest>()
   997      }
   998  
   999      fn as_any(&self) -> &::std::any::Any {
  1000          self as &::std::any::Any
  1001      }
  1002  
  1003      fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
  1004          ::protobuf::MessageStatic::descriptor_static(None::<Self>)
  1005      }
  1006  }
  1007  
  1008  impl ::protobuf::MessageStatic for SelectRequest {
  1009      fn new() -> SelectRequest {
  1010          SelectRequest::new()
  1011      }
  1012  
  1013      fn descriptor_static(_: ::std::option::Option<SelectRequest>) -> &'static ::protobuf::reflect::MessageDescriptor {
  1014          static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
  1015              lock: ::protobuf::lazy::ONCE_INIT,
  1016              ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
  1017          };
  1018          unsafe {
  1019              descriptor.get(|| {
  1020                  let mut fields = ::std::vec::Vec::new();
  1021                  fields.push(::protobuf::reflect::accessor::make_singular_u64_accessor(
  1022                      "start_ts",
  1023                      SelectRequest::has_start_ts,
  1024                      SelectRequest::get_start_ts,
  1025                  ));
  1026                  fields.push(::protobuf::reflect::accessor::make_singular_message_accessor(
  1027                      "table_info",
  1028                      SelectRequest::has_table_info,
  1029                      SelectRequest::get_table_info,
  1030                  ));
  1031                  fields.push(::protobuf::reflect::accessor::make_singular_message_accessor(
  1032                      "index_info",
  1033                      SelectRequest::has_index_info,
  1034                      SelectRequest::get_index_info,
  1035                  ));
  1036                  fields.push(::protobuf::reflect::accessor::make_repeated_message_accessor(
  1037                      "fields",
  1038                      SelectRequest::get_fields,
  1039                  ));
  1040                  fields.push(::protobuf::reflect::accessor::make_repeated_message_accessor(
  1041                      "ranges",
  1042                      SelectRequest::get_ranges,
  1043                  ));
  1044                  fields.push(::protobuf::reflect::accessor::make_singular_bool_accessor(
  1045                      "distinct",
  1046                      SelectRequest::has_distinct,
  1047                      SelectRequest::get_distinct,
  1048                  ));
  1049                  fields.push(::protobuf::reflect::accessor::make_singular_message_accessor(
  1050                      "where",
  1051                      SelectRequest::has_field_where,
  1052                      SelectRequest::get_field_where,
  1053                  ));
  1054                  fields.push(::protobuf::reflect::accessor::make_repeated_message_accessor(
  1055                      "group_by",
  1056                      SelectRequest::get_group_by,
  1057                  ));
  1058                  fields.push(::protobuf::reflect::accessor::make_singular_message_accessor(
  1059                      "having",
  1060                      SelectRequest::has_having,
  1061                      SelectRequest::get_having,
  1062                  ));
  1063                  fields.push(::protobuf::reflect::accessor::make_repeated_message_accessor(
  1064                      "order_by",
  1065                      SelectRequest::get_order_by,
  1066                  ));
  1067                  fields.push(::protobuf::reflect::accessor::make_singular_i64_accessor(
  1068                      "limit",
  1069                      SelectRequest::has_limit,
  1070                      SelectRequest::get_limit,
  1071                  ));
  1072                  ::protobuf::reflect::MessageDescriptor::new::<SelectRequest>(
  1073                      "SelectRequest",
  1074                      fields,
  1075                      file_descriptor_proto()
  1076                  )
  1077              })
  1078          }
  1079      }
  1080  }
  1081  
  1082  impl ::protobuf::Clear for SelectRequest {
  1083      fn clear(&mut self) {
  1084          self.clear_start_ts();
  1085          self.clear_table_info();
  1086          self.clear_index_info();
  1087          self.clear_fields();
  1088          self.clear_ranges();
  1089          self.clear_distinct();
  1090          self.clear_field_where();
  1091          self.clear_group_by();
  1092          self.clear_having();
  1093          self.clear_order_by();
  1094          self.clear_limit();
  1095          self.unknown_fields.clear();
  1096      }
  1097  }
  1098  
  1099  impl ::std::cmp::PartialEq for SelectRequest {
  1100      fn eq(&self, other: &SelectRequest) -> bool {
  1101          self.start_ts == other.start_ts &&
  1102          self.table_info == other.table_info &&
  1103          self.index_info == other.index_info &&
  1104          self.fields == other.fields &&
  1105          self.ranges == other.ranges &&
  1106          self.distinct == other.distinct &&
  1107          self.field_where == other.field_where &&
  1108          self.group_by == other.group_by &&
  1109          self.having == other.having &&
  1110          self.order_by == other.order_by &&
  1111          self.limit == other.limit &&
  1112          self.unknown_fields == other.unknown_fields
  1113      }
  1114  }
  1115  
  1116  impl ::std::fmt::Debug for SelectRequest {
  1117      fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
  1118          ::protobuf::text_format::fmt(self, f)
  1119      }
  1120  }
  1121  
  1122  #[derive(Clone,Default)]
  1123  pub struct Row {
  1124      // message fields
  1125      handle: ::protobuf::SingularField<::std::vec::Vec<u8>>,
  1126      data: ::protobuf::SingularField<::std::vec::Vec<u8>>,
  1127      // special fields
  1128      unknown_fields: ::protobuf::UnknownFields,
  1129      cached_size: ::std::cell::Cell<u32>,
  1130  }
  1131  
  1132  // see codegen.rs for the explanation why impl Sync explicitly
  1133  unsafe impl ::std::marker::Sync for Row {}
  1134  
  1135  impl Row {
  1136      pub fn new() -> Row {
  1137          ::std::default::Default::default()
  1138      }
  1139  
  1140      pub fn default_instance() -> &'static Row {
  1141          static mut instance: ::protobuf::lazy::Lazy<Row> = ::protobuf::lazy::Lazy {
  1142              lock: ::protobuf::lazy::ONCE_INIT,
  1143              ptr: 0 as *const Row,
  1144          };
  1145          unsafe {
  1146              instance.get(|| {
  1147                  Row {
  1148                      handle: ::protobuf::SingularField::none(),
  1149                      data: ::protobuf::SingularField::none(),
  1150                      unknown_fields: ::protobuf::UnknownFields::new(),
  1151                      cached_size: ::std::cell::Cell::new(0),
  1152                  }
  1153              })
  1154          }
  1155      }
  1156  
  1157      // optional bytes handle = 1;
  1158  
  1159      pub fn clear_handle(&mut self) {
  1160          self.handle.clear();
  1161      }
  1162  
  1163      pub fn has_handle(&self) -> bool {
  1164          self.handle.is_some()
  1165      }
  1166  
  1167      // Param is passed by value, moved
  1168      pub fn set_handle(&mut self, v: ::std::vec::Vec<u8>) {
  1169          self.handle = ::protobuf::SingularField::some(v);
  1170      }
  1171  
  1172      // Mutable pointer to the field.
  1173      // If field is not initialized, it is initialized with default value first.
  1174      pub fn mut_handle<'a>(&'a mut self) -> &'a mut ::std::vec::Vec<u8> {
  1175          if self.handle.is_none() {
  1176              self.handle.set_default();
  1177          };
  1178          self.handle.as_mut().unwrap()
  1179      }
  1180  
  1181      // Take field
  1182      pub fn take_handle(&mut self) -> ::std::vec::Vec<u8> {
  1183          self.handle.take().unwrap_or_else(|| ::std::vec::Vec::new())
  1184      }
  1185  
  1186      pub fn get_handle<'a>(&'a self) -> &'a [u8] {
  1187          match self.handle.as_ref() {
  1188              Some(v) => &v,
  1189              None => &[],
  1190          }
  1191      }
  1192  
  1193      // optional bytes data = 2;
  1194  
  1195      pub fn clear_data(&mut self) {
  1196          self.data.clear();
  1197      }
  1198  
  1199      pub fn has_data(&self) -> bool {
  1200          self.data.is_some()
  1201      }
  1202  
  1203      // Param is passed by value, moved
  1204      pub fn set_data(&mut self, v: ::std::vec::Vec<u8>) {
  1205          self.data = ::protobuf::SingularField::some(v);
  1206      }
  1207  
  1208      // Mutable pointer to the field.
  1209      // If field is not initialized, it is initialized with default value first.
  1210      pub fn mut_data<'a>(&'a mut self) -> &'a mut ::std::vec::Vec<u8> {
  1211          if self.data.is_none() {
  1212              self.data.set_default();
  1213          };
  1214          self.data.as_mut().unwrap()
  1215      }
  1216  
  1217      // Take field
  1218      pub fn take_data(&mut self) -> ::std::vec::Vec<u8> {
  1219          self.data.take().unwrap_or_else(|| ::std::vec::Vec::new())
  1220      }
  1221  
  1222      pub fn get_data<'a>(&'a self) -> &'a [u8] {
  1223          match self.data.as_ref() {
  1224              Some(v) => &v,
  1225              None => &[],
  1226          }
  1227      }
  1228  }
  1229  
  1230  impl ::protobuf::Message for Row {
  1231      fn is_initialized(&self) -> bool {
  1232          true
  1233      }
  1234  
  1235      fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
  1236          while !try!(is.eof()) {
  1237              let (field_number, wire_type) = try!(is.read_tag_unpack());
  1238              match field_number {
  1239                  1 => {
  1240                      try!(::protobuf::rt::read_singular_bytes_into(wire_type, is, &mut self.handle));
  1241                  },
  1242                  2 => {
  1243                      try!(::protobuf::rt::read_singular_bytes_into(wire_type, is, &mut self.data));
  1244                  },
  1245                  _ => {
  1246                      try!(::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields()));
  1247                  },
  1248              };
  1249          }
  1250          ::std::result::Result::Ok(())
  1251      }
  1252  
  1253      // Compute sizes of nested messages
  1254      #[allow(unused_variables)]
  1255      fn compute_size(&self) -> u32 {
  1256          let mut my_size = 0;
  1257          for value in self.handle.iter() {
  1258              my_size += ::protobuf::rt::bytes_size(1, &value);
  1259          };
  1260          for value in self.data.iter() {
  1261              my_size += ::protobuf::rt::bytes_size(2, &value);
  1262          };
  1263          my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
  1264          self.cached_size.set(my_size);
  1265          my_size
  1266      }
  1267  
  1268      fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
  1269          if let Some(v) = self.handle.as_ref() {
  1270              try!(os.write_bytes(1, &v));
  1271          };
  1272          if let Some(v) = self.data.as_ref() {
  1273              try!(os.write_bytes(2, &v));
  1274          };
  1275          try!(os.write_unknown_fields(self.get_unknown_fields()));
  1276          ::std::result::Result::Ok(())
  1277      }
  1278  
  1279      fn get_cached_size(&self) -> u32 {
  1280          self.cached_size.get()
  1281      }
  1282  
  1283      fn get_unknown_fields<'s>(&'s self) -> &'s ::protobuf::UnknownFields {
  1284          &self.unknown_fields
  1285      }
  1286  
  1287      fn mut_unknown_fields<'s>(&'s mut self) -> &'s mut ::protobuf::UnknownFields {
  1288          &mut self.unknown_fields
  1289      }
  1290  
  1291      fn type_id(&self) -> ::std::any::TypeId {
  1292          ::std::any::TypeId::of::<Row>()
  1293      }
  1294  
  1295      fn as_any(&self) -> &::std::any::Any {
  1296          self as &::std::any::Any
  1297      }
  1298  
  1299      fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
  1300          ::protobuf::MessageStatic::descriptor_static(None::<Self>)
  1301      }
  1302  }
  1303  
  1304  impl ::protobuf::MessageStatic for Row {
  1305      fn new() -> Row {
  1306          Row::new()
  1307      }
  1308  
  1309      fn descriptor_static(_: ::std::option::Option<Row>) -> &'static ::protobuf::reflect::MessageDescriptor {
  1310          static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
  1311              lock: ::protobuf::lazy::ONCE_INIT,
  1312              ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
  1313          };
  1314          unsafe {
  1315              descriptor.get(|| {
  1316                  let mut fields = ::std::vec::Vec::new();
  1317                  fields.push(::protobuf::reflect::accessor::make_singular_bytes_accessor(
  1318                      "handle",
  1319                      Row::has_handle,
  1320                      Row::get_handle,
  1321                  ));
  1322                  fields.push(::protobuf::reflect::accessor::make_singular_bytes_accessor(
  1323                      "data",
  1324                      Row::has_data,
  1325                      Row::get_data,
  1326                  ));
  1327                  ::protobuf::reflect::MessageDescriptor::new::<Row>(
  1328                      "Row",
  1329                      fields,
  1330                      file_descriptor_proto()
  1331                  )
  1332              })
  1333          }
  1334      }
  1335  }
  1336  
  1337  impl ::protobuf::Clear for Row {
  1338      fn clear(&mut self) {
  1339          self.clear_handle();
  1340          self.clear_data();
  1341          self.unknown_fields.clear();
  1342      }
  1343  }
  1344  
  1345  impl ::std::cmp::PartialEq for Row {
  1346      fn eq(&self, other: &Row) -> bool {
  1347          self.handle == other.handle &&
  1348          self.data == other.data &&
  1349          self.unknown_fields == other.unknown_fields
  1350      }
  1351  }
  1352  
  1353  impl ::std::fmt::Debug for Row {
  1354      fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
  1355          ::protobuf::text_format::fmt(self, f)
  1356      }
  1357  }
  1358  
  1359  #[derive(Clone,Default)]
  1360  pub struct Error {
  1361      // message fields
  1362      code: ::std::option::Option<i32>,
  1363      msg: ::protobuf::SingularField<::std::string::String>,
  1364      // special fields
  1365      unknown_fields: ::protobuf::UnknownFields,
  1366      cached_size: ::std::cell::Cell<u32>,
  1367  }
  1368  
  1369  // see codegen.rs for the explanation why impl Sync explicitly
  1370  unsafe impl ::std::marker::Sync for Error {}
  1371  
  1372  impl Error {
  1373      pub fn new() -> Error {
  1374          ::std::default::Default::default()
  1375      }
  1376  
  1377      pub fn default_instance() -> &'static Error {
  1378          static mut instance: ::protobuf::lazy::Lazy<Error> = ::protobuf::lazy::Lazy {
  1379              lock: ::protobuf::lazy::ONCE_INIT,
  1380              ptr: 0 as *const Error,
  1381          };
  1382          unsafe {
  1383              instance.get(|| {
  1384                  Error {
  1385                      code: ::std::option::Option::None,
  1386                      msg: ::protobuf::SingularField::none(),
  1387                      unknown_fields: ::protobuf::UnknownFields::new(),
  1388                      cached_size: ::std::cell::Cell::new(0),
  1389                  }
  1390              })
  1391          }
  1392      }
  1393  
  1394      // optional int32 code = 1;
  1395  
  1396      pub fn clear_code(&mut self) {
  1397          self.code = ::std::option::Option::None;
  1398      }
  1399  
  1400      pub fn has_code(&self) -> bool {
  1401          self.code.is_some()
  1402      }
  1403  
  1404      // Param is passed by value, moved
  1405      pub fn set_code(&mut self, v: i32) {
  1406          self.code = ::std::option::Option::Some(v);
  1407      }
  1408  
  1409      pub fn get_code<'a>(&self) -> i32 {
  1410          self.code.unwrap_or(0)
  1411      }
  1412  
  1413      // optional string msg = 2;
  1414  
  1415      pub fn clear_msg(&mut self) {
  1416          self.msg.clear();
  1417      }
  1418  
  1419      pub fn has_msg(&self) -> bool {
  1420          self.msg.is_some()
  1421      }
  1422  
  1423      // Param is passed by value, moved
  1424      pub fn set_msg(&mut self, v: ::std::string::String) {
  1425          self.msg = ::protobuf::SingularField::some(v);
  1426      }
  1427  
  1428      // Mutable pointer to the field.
  1429      // If field is not initialized, it is initialized with default value first.
  1430      pub fn mut_msg<'a>(&'a mut self) -> &'a mut ::std::string::String {
  1431          if self.msg.is_none() {
  1432              self.msg.set_default();
  1433          };
  1434          self.msg.as_mut().unwrap()
  1435      }
  1436  
  1437      // Take field
  1438      pub fn take_msg(&mut self) -> ::std::string::String {
  1439          self.msg.take().unwrap_or_else(|| ::std::string::String::new())
  1440      }
  1441  
  1442      pub fn get_msg<'a>(&'a self) -> &'a str {
  1443          match self.msg.as_ref() {
  1444              Some(v) => &v,
  1445              None => "",
  1446          }
  1447      }
  1448  }
  1449  
  1450  impl ::protobuf::Message for Error {
  1451      fn is_initialized(&self) -> bool {
  1452          true
  1453      }
  1454  
  1455      fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
  1456          while !try!(is.eof()) {
  1457              let (field_number, wire_type) = try!(is.read_tag_unpack());
  1458              match field_number {
  1459                  1 => {
  1460                      if wire_type != ::protobuf::wire_format::WireTypeVarint {
  1461                          return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
  1462                      };
  1463                      let tmp = try!(is.read_int32());
  1464                      self.code = ::std::option::Option::Some(tmp);
  1465                  },
  1466                  2 => {
  1467                      try!(::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.msg));
  1468                  },
  1469                  _ => {
  1470                      try!(::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields()));
  1471                  },
  1472              };
  1473          }
  1474          ::std::result::Result::Ok(())
  1475      }
  1476  
  1477      // Compute sizes of nested messages
  1478      #[allow(unused_variables)]
  1479      fn compute_size(&self) -> u32 {
  1480          let mut my_size = 0;
  1481          for value in self.code.iter() {
  1482              my_size += ::protobuf::rt::value_size(1, *value, ::protobuf::wire_format::WireTypeVarint);
  1483          };
  1484          for value in self.msg.iter() {
  1485              my_size += ::protobuf::rt::string_size(2, &value);
  1486          };
  1487          my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
  1488          self.cached_size.set(my_size);
  1489          my_size
  1490      }
  1491  
  1492      fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
  1493          if let Some(v) = self.code {
  1494              try!(os.write_int32(1, v));
  1495          };
  1496          if let Some(v) = self.msg.as_ref() {
  1497              try!(os.write_string(2, &v));
  1498          };
  1499          try!(os.write_unknown_fields(self.get_unknown_fields()));
  1500          ::std::result::Result::Ok(())
  1501      }
  1502  
  1503      fn get_cached_size(&self) -> u32 {
  1504          self.cached_size.get()
  1505      }
  1506  
  1507      fn get_unknown_fields<'s>(&'s self) -> &'s ::protobuf::UnknownFields {
  1508          &self.unknown_fields
  1509      }
  1510  
  1511      fn mut_unknown_fields<'s>(&'s mut self) -> &'s mut ::protobuf::UnknownFields {
  1512          &mut self.unknown_fields
  1513      }
  1514  
  1515      fn type_id(&self) -> ::std::any::TypeId {
  1516          ::std::any::TypeId::of::<Error>()
  1517      }
  1518  
  1519      fn as_any(&self) -> &::std::any::Any {
  1520          self as &::std::any::Any
  1521      }
  1522  
  1523      fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
  1524          ::protobuf::MessageStatic::descriptor_static(None::<Self>)
  1525      }
  1526  }
  1527  
  1528  impl ::protobuf::MessageStatic for Error {
  1529      fn new() -> Error {
  1530          Error::new()
  1531      }
  1532  
  1533      fn descriptor_static(_: ::std::option::Option<Error>) -> &'static ::protobuf::reflect::MessageDescriptor {
  1534          static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
  1535              lock: ::protobuf::lazy::ONCE_INIT,
  1536              ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
  1537          };
  1538          unsafe {
  1539              descriptor.get(|| {
  1540                  let mut fields = ::std::vec::Vec::new();
  1541                  fields.push(::protobuf::reflect::accessor::make_singular_i32_accessor(
  1542                      "code",
  1543                      Error::has_code,
  1544                      Error::get_code,
  1545                  ));
  1546                  fields.push(::protobuf::reflect::accessor::make_singular_string_accessor(
  1547                      "msg",
  1548                      Error::has_msg,
  1549                      Error::get_msg,
  1550                  ));
  1551                  ::protobuf::reflect::MessageDescriptor::new::<Error>(
  1552                      "Error",
  1553                      fields,
  1554                      file_descriptor_proto()
  1555                  )
  1556              })
  1557          }
  1558      }
  1559  }
  1560  
  1561  impl ::protobuf::Clear for Error {
  1562      fn clear(&mut self) {
  1563          self.clear_code();
  1564          self.clear_msg();
  1565          self.unknown_fields.clear();
  1566      }
  1567  }
  1568  
  1569  impl ::std::cmp::PartialEq for Error {
  1570      fn eq(&self, other: &Error) -> bool {
  1571          self.code == other.code &&
  1572          self.msg == other.msg &&
  1573          self.unknown_fields == other.unknown_fields
  1574      }
  1575  }
  1576  
  1577  impl ::std::fmt::Debug for Error {
  1578      fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
  1579          ::protobuf::text_format::fmt(self, f)
  1580      }
  1581  }
  1582  
  1583  #[derive(Clone,Default)]
  1584  pub struct SelectResponse {
  1585      // message fields
  1586      error: ::protobuf::SingularPtrField<Error>,
  1587      rows: ::protobuf::RepeatedField<Row>,
  1588      // special fields
  1589      unknown_fields: ::protobuf::UnknownFields,
  1590      cached_size: ::std::cell::Cell<u32>,
  1591  }
  1592  
  1593  // see codegen.rs for the explanation why impl Sync explicitly
  1594  unsafe impl ::std::marker::Sync for SelectResponse {}
  1595  
  1596  impl SelectResponse {
  1597      pub fn new() -> SelectResponse {
  1598          ::std::default::Default::default()
  1599      }
  1600  
  1601      pub fn default_instance() -> &'static SelectResponse {
  1602          static mut instance: ::protobuf::lazy::Lazy<SelectResponse> = ::protobuf::lazy::Lazy {
  1603              lock: ::protobuf::lazy::ONCE_INIT,
  1604              ptr: 0 as *const SelectResponse,
  1605          };
  1606          unsafe {
  1607              instance.get(|| {
  1608                  SelectResponse {
  1609                      error: ::protobuf::SingularPtrField::none(),
  1610                      rows: ::protobuf::RepeatedField::new(),
  1611                      unknown_fields: ::protobuf::UnknownFields::new(),
  1612                      cached_size: ::std::cell::Cell::new(0),
  1613                  }
  1614              })
  1615          }
  1616      }
  1617  
  1618      // optional .tipb.Error error = 1;
  1619  
  1620      pub fn clear_error(&mut self) {
  1621          self.error.clear();
  1622      }
  1623  
  1624      pub fn has_error(&self) -> bool {
  1625          self.error.is_some()
  1626      }
  1627  
  1628      // Param is passed by value, moved
  1629      pub fn set_error(&mut self, v: Error) {
  1630          self.error = ::protobuf::SingularPtrField::some(v);
  1631      }
  1632  
  1633      // Mutable pointer to the field.
  1634      // If field is not initialized, it is initialized with default value first.
  1635      pub fn mut_error<'a>(&'a mut self) -> &'a mut Error {
  1636          if self.error.is_none() {
  1637              self.error.set_default();
  1638          };
  1639          self.error.as_mut().unwrap()
  1640      }
  1641  
  1642      // Take field
  1643      pub fn take_error(&mut self) -> Error {
  1644          self.error.take().unwrap_or_else(|| Error::new())
  1645      }
  1646  
  1647      pub fn get_error<'a>(&'a self) -> &'a Error {
  1648          self.error.as_ref().unwrap_or_else(|| Error::default_instance())
  1649      }
  1650  
  1651      // repeated .tipb.Row rows = 2;
  1652  
  1653      pub fn clear_rows(&mut self) {
  1654          self.rows.clear();
  1655      }
  1656  
  1657      // Param is passed by value, moved
  1658      pub fn set_rows(&mut self, v: ::protobuf::RepeatedField<Row>) {
  1659          self.rows = v;
  1660      }
  1661  
  1662      // Mutable pointer to the field.
  1663      pub fn mut_rows<'a>(&'a mut self) -> &'a mut ::protobuf::RepeatedField<Row> {
  1664          &mut self.rows
  1665      }
  1666  
  1667      // Take field
  1668      pub fn take_rows(&mut self) -> ::protobuf::RepeatedField<Row> {
  1669          ::std::mem::replace(&mut self.rows, ::protobuf::RepeatedField::new())
  1670      }
  1671  
  1672      pub fn get_rows<'a>(&'a self) -> &'a [Row] {
  1673          &self.rows
  1674      }
  1675  }
  1676  
  1677  impl ::protobuf::Message for SelectResponse {
  1678      fn is_initialized(&self) -> bool {
  1679          true
  1680      }
  1681  
  1682      fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> {
  1683          while !try!(is.eof()) {
  1684              let (field_number, wire_type) = try!(is.read_tag_unpack());
  1685              match field_number {
  1686                  1 => {
  1687                      try!(::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.error));
  1688                  },
  1689                  2 => {
  1690                      try!(::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.rows));
  1691                  },
  1692                  _ => {
  1693                      try!(::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields()));
  1694                  },
  1695              };
  1696          }
  1697          ::std::result::Result::Ok(())
  1698      }
  1699  
  1700      // Compute sizes of nested messages
  1701      #[allow(unused_variables)]
  1702      fn compute_size(&self) -> u32 {
  1703          let mut my_size = 0;
  1704          for value in self.error.iter() {
  1705              let len = value.compute_size();
  1706              my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
  1707          };
  1708          for value in self.rows.iter() {
  1709              let len = value.compute_size();
  1710              my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
  1711          };
  1712          my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
  1713          self.cached_size.set(my_size);
  1714          my_size
  1715      }
  1716  
  1717      fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream) -> ::protobuf::ProtobufResult<()> {
  1718          if let Some(v) = self.error.as_ref() {
  1719              try!(os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited));
  1720              try!(os.write_raw_varint32(v.get_cached_size()));
  1721              try!(v.write_to_with_cached_sizes(os));
  1722          };
  1723          for v in self.rows.iter() {
  1724              try!(os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited));
  1725              try!(os.write_raw_varint32(v.get_cached_size()));
  1726              try!(v.write_to_with_cached_sizes(os));
  1727          };
  1728          try!(os.write_unknown_fields(self.get_unknown_fields()));
  1729          ::std::result::Result::Ok(())
  1730      }
  1731  
  1732      fn get_cached_size(&self) -> u32 {
  1733          self.cached_size.get()
  1734      }
  1735  
  1736      fn get_unknown_fields<'s>(&'s self) -> &'s ::protobuf::UnknownFields {
  1737          &self.unknown_fields
  1738      }
  1739  
  1740      fn mut_unknown_fields<'s>(&'s mut self) -> &'s mut ::protobuf::UnknownFields {
  1741          &mut self.unknown_fields
  1742      }
  1743  
  1744      fn type_id(&self) -> ::std::any::TypeId {
  1745          ::std::any::TypeId::of::<SelectResponse>()
  1746      }
  1747  
  1748      fn as_any(&self) -> &::std::any::Any {
  1749          self as &::std::any::Any
  1750      }
  1751  
  1752      fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
  1753          ::protobuf::MessageStatic::descriptor_static(None::<Self>)
  1754      }
  1755  }
  1756  
  1757  impl ::protobuf::MessageStatic for SelectResponse {
  1758      fn new() -> SelectResponse {
  1759          SelectResponse::new()
  1760      }
  1761  
  1762      fn descriptor_static(_: ::std::option::Option<SelectResponse>) -> &'static ::protobuf::reflect::MessageDescriptor {
  1763          static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
  1764              lock: ::protobuf::lazy::ONCE_INIT,
  1765              ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
  1766          };
  1767          unsafe {
  1768              descriptor.get(|| {
  1769                  let mut fields = ::std::vec::Vec::new();
  1770                  fields.push(::protobuf::reflect::accessor::make_singular_message_accessor(
  1771                      "error",
  1772                      SelectResponse::has_error,
  1773                      SelectResponse::get_error,
  1774                  ));
  1775                  fields.push(::protobuf::reflect::accessor::make_repeated_message_accessor(
  1776                      "rows",
  1777                      SelectResponse::get_rows,
  1778                  ));
  1779                  ::protobuf::reflect::MessageDescriptor::new::<SelectResponse>(
  1780                      "SelectResponse",
  1781                      fields,
  1782                      file_descriptor_proto()
  1783                  )
  1784              })
  1785          }
  1786      }
  1787  }
  1788  
  1789  impl ::protobuf::Clear for SelectResponse {
  1790      fn clear(&mut self) {
  1791          self.clear_error();
  1792          self.clear_rows();
  1793          self.unknown_fields.clear();
  1794      }
  1795  }
  1796  
  1797  impl ::std::cmp::PartialEq for SelectResponse {
  1798      fn eq(&self, other: &SelectResponse) -> bool {
  1799          self.error == other.error &&
  1800          self.rows == other.rows &&
  1801          self.unknown_fields == other.unknown_fields
  1802      }
  1803  }
  1804  
  1805  impl ::std::fmt::Debug for SelectResponse {
  1806      fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
  1807          ::protobuf::text_format::fmt(self, f)
  1808      }
  1809  }
  1810  
  1811  static file_descriptor_proto_data: &'static [u8] = &[
  1812      0x0a, 0x0c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04,
  1813      0x74, 0x69, 0x70, 0x62, 0x1a, 0x10, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
  1814      0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x70,
  1815      0x72, 0x6f, 0x74, 0x6f, 0x22, 0x25, 0x0a, 0x08, 0x4b, 0x65, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65,
  1816      0x12, 0x0b, 0x0a, 0x03, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x12, 0x0c, 0x0a,
  1817      0x04, 0x68, 0x69, 0x67, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x22, 0x30, 0x0a, 0x06, 0x42,
  1818      0x79, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x18, 0x0a, 0x04, 0x65, 0x78, 0x70, 0x72, 0x18, 0x01, 0x20,
  1819      0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x74, 0x69, 0x70, 0x62, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x12,
  1820      0x0c, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x22, 0xbf, 0x02,
  1821      0x0a, 0x0d, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
  1822      0x10, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
  1823      0x04, 0x12, 0x23, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18,
  1824      0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x69, 0x70, 0x62, 0x2e, 0x54, 0x61, 0x62,
  1825      0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x0a, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f,
  1826      0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x69, 0x70,
  1827      0x62, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x06, 0x66,
  1828      0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x74, 0x69,
  1829      0x70, 0x62, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x12, 0x1e, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x67, 0x65,
  1830      0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x69, 0x70, 0x62, 0x2e, 0x4b,
  1831      0x65, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x74, 0x69,
  1832      0x6e, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x12, 0x19, 0x0a, 0x05, 0x77, 0x68, 0x65,
  1833      0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x74, 0x69, 0x70, 0x62, 0x2e,
  1834      0x45, 0x78, 0x70, 0x72, 0x12, 0x1e, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x62, 0x79,
  1835      0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x74, 0x69, 0x70, 0x62, 0x2e, 0x42, 0x79,
  1836      0x49, 0x74, 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x06, 0x68, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x18, 0x09,
  1837      0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x74, 0x69, 0x70, 0x62, 0x2e, 0x45, 0x78, 0x70, 0x72,
  1838      0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x0a, 0x20, 0x03,
  1839      0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x74, 0x69, 0x70, 0x62, 0x2e, 0x42, 0x79, 0x49, 0x74, 0x65, 0x6d,
  1840      0x12, 0x0d, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x22,
  1841      0x23, 0x0a, 0x03, 0x52, 0x6f, 0x77, 0x12, 0x0e, 0x0a, 0x06, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65,
  1842      0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x12, 0x0c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02,
  1843      0x20, 0x01, 0x28, 0x0c, 0x22, 0x22, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x0c, 0x0a,
  1844      0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x12, 0x0b, 0x0a, 0x03, 0x6d,
  1845      0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x22, 0x45, 0x0a, 0x0e, 0x53, 0x65, 0x6c, 0x65,
  1846      0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x05, 0x65, 0x72,
  1847      0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x69, 0x70, 0x62,
  1848      0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x02,
  1849      0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x74, 0x69, 0x70, 0x62, 0x2e, 0x52, 0x6f, 0x77, 0x42,
  1850      0x19, 0x0a, 0x15, 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x69, 0x6e, 0x67, 0x63, 0x61, 0x70, 0x2e, 0x74,
  1851      0x69, 0x64, 0x62, 0x2e, 0x74, 0x69, 0x70, 0x62, 0x50, 0x01, 0x4a, 0xaf, 0x14, 0x0a, 0x06, 0x12,
  1852      0x04, 0x00, 0x00, 0x4c, 0x01, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x02, 0x08, 0x0c, 0x0a,
  1853      0x08, 0x0a, 0x01, 0x08, 0x12, 0x03, 0x04, 0x00, 0x22, 0x0a, 0x0b, 0x0a, 0x04, 0x08, 0xe7, 0x07,
  1854      0x00, 0x12, 0x03, 0x04, 0x00, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x08, 0xe7, 0x07, 0x00, 0x02, 0x12,
  1855      0x03, 0x04, 0x07, 0x1a, 0x0a, 0x0d, 0x0a, 0x06, 0x08, 0xe7, 0x07, 0x00, 0x02, 0x00, 0x12, 0x03,
  1856      0x04, 0x07, 0x1a, 0x0a, 0x0e, 0x0a, 0x07, 0x08, 0xe7, 0x07, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03,
  1857      0x04, 0x07, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x08, 0xe7, 0x07, 0x00, 0x03, 0x12, 0x03, 0x04, 0x1d,
  1858      0x21, 0x0a, 0x08, 0x0a, 0x01, 0x08, 0x12, 0x03, 0x05, 0x00, 0x2e, 0x0a, 0x0b, 0x0a, 0x04, 0x08,
  1859      0xe7, 0x07, 0x01, 0x12, 0x03, 0x05, 0x00, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x08, 0xe7, 0x07, 0x01,
  1860      0x02, 0x12, 0x03, 0x05, 0x07, 0x13, 0x0a, 0x0d, 0x0a, 0x06, 0x08, 0xe7, 0x07, 0x01, 0x02, 0x00,
  1861      0x12, 0x03, 0x05, 0x07, 0x13, 0x0a, 0x0e, 0x0a, 0x07, 0x08, 0xe7, 0x07, 0x01, 0x02, 0x00, 0x01,
  1862      0x12, 0x03, 0x05, 0x07, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x08, 0xe7, 0x07, 0x01, 0x07, 0x12, 0x03,
  1863      0x05, 0x16, 0x2d, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x00, 0x12, 0x03, 0x07, 0x07, 0x19, 0x0a, 0x09,
  1864      0x0a, 0x02, 0x03, 0x01, 0x12, 0x03, 0x08, 0x07, 0x15, 0x0a, 0x65, 0x0a, 0x02, 0x04, 0x00, 0x12,
  1865      0x04, 0x0b, 0x00, 0x0e, 0x01, 0x1a, 0x59, 0x20, 0x4b, 0x65, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65,
  1866      0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x20,
  1867      0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x2c,
  1868      0x20, 0x6c, 0x6f, 0x77, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x2c, 0x20,
  1869      0x68, 0x69, 0x67, 0x68, 0x20, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x2e, 0x20, 0x28, 0x6c,
  1870      0x6f, 0x77, 0x20, 0x3c, 0x3d, 0x20, 0x78, 0x20, 0x3c, 0x20, 0x68, 0x69, 0x67, 0x68, 0x29, 0x0a,
  1871      0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, 0x01, 0x12, 0x03, 0x0b, 0x08, 0x10, 0x0a, 0x0b, 0x0a, 0x04,
  1872      0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x0c, 0x08, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02,
  1873      0x00, 0x04, 0x12, 0x03, 0x0c, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x05,
  1874      0x12, 0x03, 0x0c, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03,
  1875      0x0c, 0x17, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x0c, 0x1d,
  1876      0x1e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x0d, 0x08, 0x20, 0x0a, 0x0c,
  1877      0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x04, 0x12, 0x03, 0x0d, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05,
  1878      0x04, 0x00, 0x02, 0x01, 0x05, 0x12, 0x03, 0x0d, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00,
  1879      0x02, 0x01, 0x01, 0x12, 0x03, 0x0d, 0x17, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01,
  1880      0x03, 0x12, 0x03, 0x0d, 0x1e, 0x1f, 0x0a, 0x34, 0x0a, 0x02, 0x04, 0x01, 0x12, 0x04, 0x11, 0x00,
  1881      0x14, 0x01, 0x1a, 0x28, 0x20, 0x42, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x20, 0x74, 0x79, 0x70, 0x65,
  1882      0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x62, 0x79, 0x20, 0x61, 0x6e,
  1883      0x64, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x62, 0x79, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03,
  1884      0x04, 0x01, 0x01, 0x12, 0x03, 0x11, 0x08, 0x0e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x00,
  1885      0x12, 0x03, 0x12, 0x08, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x04, 0x12, 0x03,
  1886      0x12, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x06, 0x12, 0x03, 0x12, 0x11,
  1887      0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x01, 0x12, 0x03, 0x12, 0x16, 0x1a, 0x0a,
  1888      0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x03, 0x12, 0x03, 0x12, 0x1d, 0x1e, 0x0a, 0x0b, 0x0a,
  1889      0x04, 0x04, 0x01, 0x02, 0x01, 0x12, 0x03, 0x13, 0x08, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01,
  1890      0x02, 0x01, 0x04, 0x12, 0x03, 0x13, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01,
  1891      0x05, 0x12, 0x03, 0x13, 0x11, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x01, 0x12,
  1892      0x03, 0x13, 0x16, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x03, 0x12, 0x03, 0x13,
  1893      0x1d, 0x1e, 0x0a, 0x45, 0x0a, 0x02, 0x04, 0x02, 0x12, 0x04, 0x17, 0x00, 0x39, 0x01, 0x1a, 0x39,
  1894      0x20, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x77,
  1895      0x6f, 0x72, 0x6b, 0x73, 0x20, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x61, 0x20, 0x73, 0x69, 0x6d, 0x70,
  1896      0x6c, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x73, 0x74,
  1897      0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x02, 0x01,
  1898      0x12, 0x03, 0x17, 0x08, 0x15, 0x0a, 0x2b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x00, 0x12, 0x03, 0x19,
  1899      0x08, 0x25, 0x1a, 0x1e, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
  1900      0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
  1901      0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x04, 0x12, 0x03, 0x19, 0x08, 0x10,
  1902      0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x05, 0x12, 0x03, 0x19, 0x11, 0x17, 0x0a, 0x0c,
  1903      0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x01, 0x12, 0x03, 0x19, 0x18, 0x20, 0x0a, 0x0c, 0x0a, 0x05,
  1904      0x04, 0x02, 0x02, 0x00, 0x03, 0x12, 0x03, 0x19, 0x23, 0x24, 0x0a, 0x5f, 0x0a, 0x04, 0x04, 0x02,
  1905      0x02, 0x01, 0x12, 0x03, 0x1c, 0x08, 0x2a, 0x1a, 0x52, 0x20, 0x49, 0x66, 0x20, 0x74, 0x61, 0x62,
  1906      0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6e,
  1907      0x75, 0x6c, 0x6c, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e,
  1908      0x74, 0x73, 0x20, 0x61, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x73, 0x63, 0x61, 0x6e, 0x2c,
  1909      0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x20, 0x77, 0x6f, 0x75, 0x6c,
  1910      0x64, 0x20, 0x62, 0x65, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04,
  1911      0x02, 0x02, 0x01, 0x04, 0x12, 0x03, 0x1c, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02,
  1912      0x01, 0x06, 0x12, 0x03, 0x1c, 0x11, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x01,
  1913      0x12, 0x03, 0x1c, 0x1b, 0x25, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x03, 0x12, 0x03,
  1914      0x1c, 0x28, 0x29, 0x0a, 0x60, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x02, 0x12, 0x03, 0x1f, 0x08, 0x2a,
  1915      0x1a, 0x53, 0x20, 0x49, 0x66, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x69, 0x6e, 0x66, 0x6f,
  1916      0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x20, 0x69, 0x74,
  1917      0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x69,
  1918      0x6e, 0x64, 0x65, 0x78, 0x20, 0x73, 0x63, 0x61, 0x6e, 0x2c, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65,
  1919      0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x20, 0x77, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x62, 0x65, 0x20, 0x6e,
  1920      0x75, 0x6c, 0x6c, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x04, 0x12, 0x03,
  1921      0x1f, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x06, 0x12, 0x03, 0x1f, 0x11,
  1922      0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x01, 0x12, 0x03, 0x1f, 0x1b, 0x25, 0x0a,
  1923      0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x03, 0x12, 0x03, 0x1f, 0x28, 0x29, 0x0a, 0xab, 0x01,
  1924      0x0a, 0x04, 0x04, 0x02, 0x02, 0x03, 0x12, 0x03, 0x23, 0x08, 0x21, 0x1a, 0x9d, 0x01, 0x20, 0x66,
  1925      0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x6c, 0x65,
  1926      0x63, 0x74, 0x65, 0x64, 0x2c, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x74, 0x79, 0x70,
  1927      0x65, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x20,
  1928      0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x69,
  1929      0x6d, 0x70, 0x6c, 0x65, 0x20, 0x73, 0x63, 0x61, 0x6e, 0x2e, 0x0a, 0x20, 0x6f, 0x72, 0x20, 0x61,
  1930      0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74,
  1931      0x69, 0x6f, 0x6e, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64,
  1932      0x73, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x2c, 0x20, 0x6f, 0x6e, 0x6c,
  1933      0x79, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65,
  1934      0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04,
  1935      0x02, 0x02, 0x03, 0x04, 0x12, 0x03, 0x23, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02,
  1936      0x03, 0x06, 0x12, 0x03, 0x23, 0x11, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x03, 0x01,
  1937      0x12, 0x03, 0x23, 0x16, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x03, 0x03, 0x12, 0x03,
  1938      0x23, 0x1f, 0x20, 0x0a, 0x34, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x04, 0x12, 0x03, 0x26, 0x08, 0x25,
  1939      0x1a, 0x27, 0x20, 0x64, 0x69, 0x73, 0x6a, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x68, 0x61, 0x6e, 0x64,
  1940      0x6c, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20,
  1941      0x73, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02,
  1942      0x04, 0x04, 0x12, 0x03, 0x26, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x06,
  1943      0x12, 0x03, 0x26, 0x11, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x01, 0x12, 0x03,
  1944      0x26, 0x1a, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x03, 0x12, 0x03, 0x26, 0x23,
  1945      0x24, 0x0a, 0x1f, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x05, 0x12, 0x03, 0x29, 0x08, 0x23, 0x1a, 0x12,
  1946      0x20, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x63, 0x74, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
  1947      0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x04, 0x12, 0x03, 0x29, 0x08, 0x10,
  1948      0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x05, 0x12, 0x03, 0x29, 0x11, 0x15, 0x0a, 0x0c,
  1949      0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x01, 0x12, 0x03, 0x29, 0x16, 0x1e, 0x0a, 0x0c, 0x0a, 0x05,
  1950      0x04, 0x02, 0x02, 0x05, 0x03, 0x12, 0x03, 0x29, 0x21, 0x22, 0x0a, 0x1f, 0x0a, 0x04, 0x04, 0x02,
  1951      0x02, 0x06, 0x12, 0x03, 0x2c, 0x08, 0x20, 0x1a, 0x12, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20,
  1952      0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04,
  1953      0x02, 0x02, 0x06, 0x04, 0x12, 0x03, 0x2c, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02,
  1954      0x06, 0x06, 0x12, 0x03, 0x2c, 0x11, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x06, 0x01,
  1955      0x12, 0x03, 0x2c, 0x16, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x06, 0x03, 0x12, 0x03,
  1956      0x2c, 0x1e, 0x1f, 0x0a, 0x1f, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x07, 0x12, 0x03, 0x2f, 0x08, 0x25,
  1957      0x1a, 0x12, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6c, 0x61, 0x75,
  1958      0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x07, 0x04, 0x12, 0x03, 0x2f,
  1959      0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x07, 0x06, 0x12, 0x03, 0x2f, 0x11, 0x17,
  1960      0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x07, 0x01, 0x12, 0x03, 0x2f, 0x18, 0x20, 0x0a, 0x0c,
  1961      0x0a, 0x05, 0x04, 0x02, 0x02, 0x07, 0x03, 0x12, 0x03, 0x2f, 0x23, 0x24, 0x0a, 0x1d, 0x0a, 0x04,
  1962      0x04, 0x02, 0x02, 0x08, 0x12, 0x03, 0x32, 0x08, 0x21, 0x1a, 0x10, 0x20, 0x68, 0x61, 0x76, 0x69,
  1963      0x6e, 0x67, 0x20, 0x63, 0x6c, 0x61, 0x75, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04,
  1964      0x02, 0x02, 0x08, 0x04, 0x12, 0x03, 0x32, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02,
  1965      0x08, 0x06, 0x12, 0x03, 0x32, 0x11, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x08, 0x01,
  1966      0x12, 0x03, 0x32, 0x16, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x08, 0x03, 0x12, 0x03,
  1967      0x32, 0x1f, 0x20, 0x0a, 0x1f, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x09, 0x12, 0x03, 0x35, 0x08, 0x26,
  1968      0x1a, 0x12, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6c, 0x61, 0x75,
  1969      0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x09, 0x04, 0x12, 0x03, 0x35,
  1970      0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x09, 0x06, 0x12, 0x03, 0x35, 0x11, 0x17,
  1971      0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x09, 0x01, 0x12, 0x03, 0x35, 0x18, 0x20, 0x0a, 0x0c,
  1972      0x0a, 0x05, 0x04, 0x02, 0x02, 0x09, 0x03, 0x12, 0x03, 0x35, 0x23, 0x25, 0x0a, 0x2f, 0x0a, 0x04,
  1973      0x04, 0x02, 0x02, 0x0a, 0x12, 0x03, 0x38, 0x08, 0x22, 0x1a, 0x22, 0x20, 0x6c, 0x69, 0x6d, 0x69,
  1974      0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20,
  1975      0x62, 0x65, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a,
  1976      0x05, 0x04, 0x02, 0x02, 0x0a, 0x04, 0x12, 0x03, 0x38, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04,
  1977      0x02, 0x02, 0x0a, 0x05, 0x12, 0x03, 0x38, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02,
  1978      0x0a, 0x01, 0x12, 0x03, 0x38, 0x17, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x0a, 0x03,
  1979      0x12, 0x03, 0x38, 0x1f, 0x21, 0x0a, 0x2c, 0x0a, 0x02, 0x04, 0x03, 0x12, 0x04, 0x3c, 0x00, 0x3f,
  1980      0x01, 0x1a, 0x20, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61,
  1981      0x6c, 0x6c, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61,
  1982      0x74, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x03, 0x01, 0x12, 0x03, 0x3c, 0x08, 0x0b, 0x0a,
  1983      0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x00, 0x12, 0x03, 0x3d, 0x08, 0x22, 0x0a, 0x0c, 0x0a, 0x05,
  1984      0x04, 0x03, 0x02, 0x00, 0x04, 0x12, 0x03, 0x3d, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03,
  1985      0x02, 0x00, 0x05, 0x12, 0x03, 0x3d, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00,
  1986      0x01, 0x12, 0x03, 0x3d, 0x17, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x03, 0x12,
  1987      0x03, 0x3d, 0x20, 0x21, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x01, 0x12, 0x03, 0x3e, 0x08,
  1988      0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x04, 0x12, 0x03, 0x3e, 0x08, 0x10, 0x0a,
  1989      0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x05, 0x12, 0x03, 0x3e, 0x11, 0x16, 0x0a, 0x0c, 0x0a,
  1990      0x05, 0x04, 0x03, 0x02, 0x01, 0x01, 0x12, 0x03, 0x3e, 0x17, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04,
  1991      0x03, 0x02, 0x01, 0x03, 0x12, 0x03, 0x3e, 0x1e, 0x1f, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x04, 0x12,
  1992      0x04, 0x41, 0x00, 0x44, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x04, 0x01, 0x12, 0x03, 0x41, 0x08,
  1993      0x0d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x00, 0x12, 0x03, 0x42, 0x08, 0x20, 0x0a, 0x0c,
  1994      0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x04, 0x12, 0x03, 0x42, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05,
  1995      0x04, 0x04, 0x02, 0x00, 0x05, 0x12, 0x03, 0x42, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04,
  1996      0x02, 0x00, 0x01, 0x12, 0x03, 0x42, 0x17, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00,
  1997      0x03, 0x12, 0x03, 0x42, 0x1e, 0x1f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x01, 0x12, 0x03,
  1998      0x43, 0x08, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, 0x04, 0x12, 0x03, 0x43, 0x08,
  1999      0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, 0x05, 0x12, 0x03, 0x43, 0x11, 0x17, 0x0a,
  2000      0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, 0x01, 0x12, 0x03, 0x43, 0x18, 0x1b, 0x0a, 0x0c, 0x0a,
  2001      0x05, 0x04, 0x04, 0x02, 0x01, 0x03, 0x12, 0x03, 0x43, 0x1e, 0x1f, 0x0a, 0x29, 0x0a, 0x02, 0x04,
  2002      0x05, 0x12, 0x04, 0x47, 0x00, 0x4c, 0x01, 0x1a, 0x1d, 0x20, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
  2003      0x73, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71,
  2004      0x75, 0x65, 0x73, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x05, 0x01, 0x12, 0x03, 0x47,
  2005      0x08, 0x16, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x00, 0x12, 0x03, 0x48, 0x08, 0x21, 0x0a,
  2006      0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x04, 0x12, 0x03, 0x48, 0x08, 0x10, 0x0a, 0x0c, 0x0a,
  2007      0x05, 0x04, 0x05, 0x02, 0x00, 0x06, 0x12, 0x03, 0x48, 0x11, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04,
  2008      0x05, 0x02, 0x00, 0x01, 0x12, 0x03, 0x48, 0x17, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02,
  2009      0x00, 0x03, 0x12, 0x03, 0x48, 0x1f, 0x20, 0x0a, 0x1b, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x01, 0x12,
  2010      0x03, 0x4b, 0x08, 0x1e, 0x1a, 0x0e, 0x20, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x20, 0x72, 0x6f,
  2011      0x77, 0x73, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x04, 0x12, 0x03, 0x4b,
  2012      0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x06, 0x12, 0x03, 0x4b, 0x11, 0x14,
  2013      0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x01, 0x12, 0x03, 0x4b, 0x15, 0x19, 0x0a, 0x0c,
  2014      0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x03, 0x12, 0x03, 0x4b, 0x1c, 0x1d,
  2015  ];
  2016  
  2017  static mut file_descriptor_proto_lazy: ::protobuf::lazy::Lazy<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::lazy::Lazy {
  2018      lock: ::protobuf::lazy::ONCE_INIT,
  2019      ptr: 0 as *const ::protobuf::descriptor::FileDescriptorProto,
  2020  };
  2021  
  2022  fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
  2023      ::protobuf::parse_from_bytes(file_descriptor_proto_data).unwrap()
  2024  }
  2025  
  2026  pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
  2027      unsafe {
  2028          file_descriptor_proto_lazy.get(|| {
  2029              parse_descriptor_proto()
  2030          })
  2031      }
  2032  }