// Copyright (c) 2019, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

syntax = "proto2";

package extend_unittest;

import "google/protobuf/unittest.proto";

message Outer {
  optional Inner inner = 1;
  repeated Inner inners = 2;
  map<int32, Inner> inner_map = 3;
  map<string, string> string_map = 4;
  extensions 5 to max;
}

extend Outer {
  optional Inner extension_inner = 5;
}

message Inner {
  optional string value = 1;
  optional InnerMost inner_most = 2;
  extensions 3 to max;
}

extend Inner {
  optional string inner_extension_string = 3;
}

message InnerMost {
  optional string value = 1;
  extensions 2 to max;
}

extend InnerMost {
  optional string inner_most_extension_string = 2;
}

extend proto2_unittest.TestAllExtensions {
  optional Outer outer = 104;
}

extend Outer {
    repeated string extension_repeated = 6;
}
