SEQUENCE {
  [0] {
    SEQUENCE {
      [4] {
        SEQUENCE {
          SET {
            SEQUENCE {
              # countryName
              OBJECT_IDENTIFIER { 2.5.4.6 }
              PrintableString { "US" }
            }
          }
        }
      }
    }
    SEQUENCE {
      [4] {
        SEQUENCE {
          SET {
            SEQUENCE {
              # countryName
              OBJECT_IDENTIFIER { 2.5.4.6 }
              PrintableString { "US" }
            }
          }
          SET {
            SEQUENCE {
              # stateOrProvinceName
              OBJECT_IDENTIFIER { 2.5.4.8 }
              UTF8String { "California" }
            }
          }
          SET {
            SEQUENCE {
              # localityName
              OBJECT_IDENTIFIER { 2.5.4.7 }
              UTF8String { "Mountain View" }
            }
          }
        }
      }
    }
    SEQUENCE {
      [4] {
        SEQUENCE {
          SET {
            SEQUENCE {
              # countryName
              OBJECT_IDENTIFIER { 2.5.4.6 }
              PrintableString { "JP" }
            }
          }
          SET {
            SEQUENCE {
              # stateOrProvinceName
              OBJECT_IDENTIFIER { 2.5.4.8 }
              UTF8String { `e69db1e4baac` }
            }
          }
        }
      }
    }
  }
  [1] {
    SEQUENCE {
      [4] {
        SEQUENCE {
          SET {
            SEQUENCE {
              # countryName
              OBJECT_IDENTIFIER { 2.5.4.6 }
              PrintableString { "US" }
            }
          }
          SET {
            SEQUENCE {
              # stateOrProvinceName
              OBJECT_IDENTIFIER { 2.5.4.8 }
              UTF8String { "California" }
            }
          }
        }
      }
    }
    SEQUENCE {
      [4] {
        SEQUENCE {
          SET {
            SEQUENCE {
              # countryName
              OBJECT_IDENTIFIER { 2.5.4.6 }
              PrintableString { "DE" }
            }
          }
        }
      }
    }
  }
}
-----BEGIN NAME CONSTRAINTS-----
MIG2oHcwEaQPMA0xCzAJBgNVBAYTAlVTMD6kPDA6MQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2Fs
aWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzAipCAwHjELMAkGA1UEBhMCSlAxDzANBgNV
BAgMBuadseS6rKE7MCakJDAiMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTARpA8w
DTELMAkGA1UEBhMCREU=
-----END NAME CONSTRAINTS-----
