edition = "2023";

package a;

option features.utf8_validation = NONE;

message D1 {
  string str = 1;
  repeated string strs = 2;
  map<string, int32> str2int = 3;
  map<int32, string> int2str = 4;
  map<string, string> str2str = 5;
  D1 msg = 6;
  int32 int = 7;
}

message D2 {
  string str = 1;
  repeated string strs = 2;
  map<string, int32> str2int = 3;
  map<int32, string> int2str = 4;
  map<string, string> str2str = 5;
  D2 msg = 6;
  int32 int = 7;
}

message D3 {
  string str = 1;
  repeated string strs = 2;
  map<string, int32> str2int = 3;
  map<int32, string> int2str = 4;
  map<string, string> str2str = 5;
  D3 msg = 6;
  int32 int = 7;
}

message D4 {
  string str = 1 [features.utf8_validation = VERIFY];
  repeated string strs = 2 [features.utf8_validation = VERIFY];
  map<string, int32> str2int = 3 [features.utf8_validation = VERIFY];
  map<int32, string> int2str = 4 [features.utf8_validation = VERIFY];
  map<string, string> str2str = 5 [features.utf8_validation = VERIFY];
  D4 msg = 6;
  int32 int = 7;
}

message D5 {
  string str = 1 [features.utf8_validation = VERIFY];
  repeated string strs = 2 [features.utf8_validation = VERIFY];
  map<string, int32> str2int = 3 [features.utf8_validation = VERIFY];
  map<int32, string> int2str = 4 [features.utf8_validation = VERIFY];
  map<string, string> str2str = 5 [features.utf8_validation = VERIFY];
  D5 msg = 6;
  int32 int = 7;
}

message D6 {
  string str = 1 [features.utf8_validation = VERIFY];
  repeated string strs = 2 [features.utf8_validation = VERIFY];
  map<string, int32> str2int = 3 [features.utf8_validation = VERIFY];
  map<int32, string> int2str = 4 [features.utf8_validation = VERIFY];
  map<string, string> str2str = 5 [features.utf8_validation = VERIFY];
  D6 msg = 6;
  int32 int = 7;
}
