// WARNING: This file is machine generated by fidlgen.

// fidl_experiment = output_index_json

#include <lib/fidl/internal.h>

static const struct FidlCodedArray Array5_26StringunboundednotnullableTable;
static const struct FidlCodedString StringunboundednotnullableTable;
static const struct FidlCodedArray Array5_23StringunboundednullableTable;
static const struct FidlCodedString StringunboundednullableTable;
static const struct FidlCodedArray Array5_26test_typesinprotocols_BitsTable;
const struct FidlCodedBits test_typesinprotocols_BitsTable;
static const struct FidlCodedArray Array5_26test_typesinprotocols_EnumTable;
const struct FidlCodedEnum test_typesinprotocols_EnumTable;
static const struct FidlCodedArray Array5_27test_typesinprotocols_TableTable;
const struct FidlCodedTable test_typesinprotocols_TableTable;
static const struct FidlCodedArray Array5_27test_typesinprotocols_UnionTable;
const struct FidlCodedUnion test_typesinprotocols_UnionTable;
static const struct FidlCodedArray Array5_37Pointer28test_typesinprotocols_StructTable;
static const struct FidlCodedStructPointer Pointer28test_typesinprotocols_StructTable;
const struct FidlCodedStruct test_typesinprotocols_StructTable;
static const struct FidlCodedArray Array5_38test_typesinprotocols_UnionNullableRefTable;
const struct FidlCodedUnion test_typesinprotocols_UnionNullableRefTable;
static const struct FidlCodedArray Array5_49Vectorunboundednotnullable_20fidl_internal_kUint8Table;
static const struct FidlCodedVector Vectorunboundednotnullable_20fidl_internal_kUint8Table;
static const struct FidlCodedVector Vectorunboundednotnullable_29Array5_20fidl_internal_kUint8Table;
static const struct FidlCodedArray Array5_20fidl_internal_kUint8Table;
static const struct FidlCodedVector Vectorunboundednotnullable_49Vectorunboundednotnullable_20fidl_internal_kUint8Table;
static const struct FidlCodedHandle Handlehandle2147483648notnullableTable;
static const struct FidlCodedHandle Handlevmo2147483648notnullableTable;
static const struct FidlCodedHandle Protocol30test_typesinprotocols_ProtocolnotnullableTable;
static const struct FidlCodedHandle Request0notnullableTable;
const struct FidlCodedTable test_typesinprotocols_ResourceTableTable;
const struct FidlCodedUnion test_typesinprotocols_ResourceUnionTable;
static const struct FidlCodedHandle Handlehandle2147483648nullableTable;
static const struct FidlCodedHandle Handlevmo2147483648nullableTable;
static const struct FidlCodedHandle Protocol30test_typesinprotocols_ProtocolnullableTable;
static const struct FidlCodedHandle Request0nullableTable;
static const struct FidlCodedStructPointer Pointer36test_typesinprotocols_ResourceStructTable;
const struct FidlCodedStruct test_typesinprotocols_ResourceStructTable;
const struct FidlCodedUnion test_typesinprotocols_ResourceUnionNullableRefTable;
static const struct FidlCodedArray Array5_33Handlehandle2147483648notnullableTable;
static const struct FidlCodedArray Array5_30Handlevmo2147483648notnullableTable;
static const struct FidlCodedArray Array5_51Protocol30test_typesinprotocols_ProtocolnotnullableTable;
static const struct FidlCodedArray Array5_19Request0notnullableTable;
static const struct FidlCodedArray Array5_35test_typesinprotocols_ResourceTableTable;
static const struct FidlCodedArray Array5_35test_typesinprotocols_ResourceUnionTable;
static const struct FidlCodedVector Vectorunboundednotnullable_33Handlehandle2147483648notnullableTable;
static const struct FidlCodedVector Vectorunboundednotnullable_30Handlevmo2147483648notnullableTable;
static const struct FidlCodedVector Vectorunboundednotnullable_51Protocol30test_typesinprotocols_ProtocolnotnullableTable;
static const struct FidlCodedVector Vectorunboundednotnullable_19Request0notnullableTable;
static const struct FidlCodedVector Vectorunboundednotnullable_36test_typesinprotocols_ResourceStructTable;
static const struct FidlCodedVector Vectorunboundednotnullable_35test_typesinprotocols_ResourceTableTable;
static const struct FidlCodedVector Vectorunboundednotnullable_35test_typesinprotocols_ResourceUnionTable;
static const struct FidlCodedVector Vectorunboundednotnullable_21fidl_internal_kUint16Table;
static const struct FidlCodedVector Vectorunboundednotnullable_21fidl_internal_kUint32Table;
static const struct FidlCodedVector Vectorunboundednotnullable_21fidl_internal_kUint64Table;
static const struct FidlCodedVector Vectorunboundednotnullable_19fidl_internal_kInt8Table;
static const struct FidlCodedVector Vectorunboundednotnullable_20fidl_internal_kInt16Table;
static const struct FidlCodedVector Vectorunboundednotnullable_20fidl_internal_kInt32Table;
static const struct FidlCodedVector Vectorunboundednotnullable_20fidl_internal_kInt64Table;
static const struct FidlCodedVector Vectorunboundednotnullable_22fidl_internal_kFloat32Table;
static const struct FidlCodedVector Vectorunboundednotnullable_22fidl_internal_kFloat64Table;
static const struct FidlCodedVector Vectorunboundednotnullable_26StringunboundednotnullableTable;
static const struct FidlCodedVector Vectorunboundednotnullable_23StringunboundednullableTable;
static const struct FidlCodedVector Vectorunboundednotnullable_26test_typesinprotocols_BitsTable;
static const struct FidlCodedVector Vectorunboundednotnullable_26test_typesinprotocols_EnumTable;
static const struct FidlCodedVector Vectorunboundednotnullable_28test_typesinprotocols_StructTable;
static const struct FidlCodedVector Vectorunboundednotnullable_27test_typesinprotocols_TableTable;
static const struct FidlCodedVector Vectorunboundednotnullable_27test_typesinprotocols_UnionTable;
static const struct FidlCodedVector Vectorunboundednotnullable_37Pointer28test_typesinprotocols_StructTable;
static const struct FidlCodedVector Vectorunboundednotnullable_38test_typesinprotocols_UnionNullableRefTable;
static const struct FidlCodedVector Vectorunboundednullable_20fidl_internal_kUint8Table;
static const struct FidlCodedVector Vectorunboundednullable_26StringunboundednotnullableTable;
static const struct FidlCodedVector Vectorunboundednullable_37Pointer28test_typesinprotocols_StructTable;
const struct FidlCodedStruct test_typesinprotocols_ArrayBasicTable;
const struct FidlCodedStruct test_typesinprotocols_ArrayCompoundTable;
const struct FidlCodedStruct test_typesinprotocols_ArrayVectorNestedTable;
const struct FidlCodedStruct test_typesinprotocols_BasicTable;
const struct FidlCodedStruct test_typesinprotocols_CompoundTable;
const struct FidlCodedStruct test_typesinprotocols_ResourceTable;
const struct FidlCodedStruct test_typesinprotocols_VectorBasicTable;
const struct FidlCodedStruct test_typesinprotocols_VectorCompoundTable;
const struct FidlCodedStruct test_typesinprotocols_VectorOptionalTable;

const struct FidlCodedBits test_typesinprotocols_BitsTable = {
    .tag = kFidlTypeBits,
    .name = "test.typesinprotocols/Bits",
    .underlying_type = kFidlCodedPrimitiveSubtype_Uint32,
    .strictness = kFidlStrictness_Flexible,
    .mask = 0x1,
};

const struct FidlCodedEnum test_typesinprotocols_EnumTable = {
    .tag = kFidlTypeEnum,
    .name = "test.typesinprotocols/Enum",
    .underlying_type = kFidlCodedPrimitiveSubtype_Uint32,
    .strictness = kFidlStrictness_Flexible,
    .validate = NULL,
};

static const struct FidlStructElement Fields32test_typesinprotocols_ArrayBasic[] = {
    {
        .padding = {
            .header = {
                .element_type = kFidlStructElementType_Padding64,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 0,
            .mask_64 = 0xff0000000000,
        },
    },
    {
        .padding = {
            .header = {
                .element_type = kFidlStructElementType_Padding64,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 32,
            .mask_64 = 0xffffffff00000000,
        },
    },
    {
        .padding = {
            .header = {
                .element_type = kFidlStructElementType_Padding64,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 80,
            .mask_64 = 0xff0000000000,
        },
    },
    {
        .padding = {
            .header = {
                .element_type = kFidlStructElementType_Padding64,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 112,
            .mask_64 = 0xffffffff00000000,
        },
    },
    {
        .padding = {
            .header = {
                .element_type = kFidlStructElementType_Padding64,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 176,
            .mask_64 = 0xffffffff00000000,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 224,
            .field_type = (const fidl_type_t*)&Array5_26StringunboundednotnullableTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 304,
            .field_type = (const fidl_type_t*)&Array5_23StringunboundednullableTable,
        },
    },
};
const struct FidlCodedStruct test_typesinprotocols_ArrayBasicTable = {
    .tag = kFidlTypeStruct,
    .name = "test.typesinprotocols/ArrayBasic",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 384,
    .elements = Fields32test_typesinprotocols_ArrayBasic,
    .element_count = 7,
};

static const struct FidlStructElement Fields35test_typesinprotocols_ArrayCompound[] = {
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 0,
            .field_type = (const fidl_type_t*)&Array5_26test_typesinprotocols_BitsTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 20,
            .field_type = (const fidl_type_t*)&Array5_26test_typesinprotocols_EnumTable,
        },
    },
    {
        .padding = {
            .header = {
                .element_type = kFidlStructElementType_Padding64,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 40,
            .mask_64 = 0xffffff0000000000,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 48,
            .field_type = (const fidl_type_t*)&Array5_27test_typesinprotocols_TableTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 128,
            .field_type = (const fidl_type_t*)&Array5_27test_typesinprotocols_UnionTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 208,
            .field_type = (const fidl_type_t*)&Array5_37Pointer28test_typesinprotocols_StructTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 248,
            .field_type = (const fidl_type_t*)&Array5_38test_typesinprotocols_UnionNullableRefTable,
        },
    },
};
const struct FidlCodedStruct test_typesinprotocols_ArrayCompoundTable = {
    .tag = kFidlTypeStruct,
    .name = "test.typesinprotocols/ArrayCompound",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 328,
    .elements = Fields35test_typesinprotocols_ArrayCompound,
    .element_count = 7,
};

static const struct FidlStructElement Fields39test_typesinprotocols_ArrayVectorNested[] = {
    {
        .padding = {
            .header = {
                .element_type = kFidlStructElementType_Padding64,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 24,
            .mask_64 = 0xffffffffffffff00,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 32,
            .field_type = (const fidl_type_t*)&Array5_49Vectorunboundednotnullable_20fidl_internal_kUint8Table,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 112,
            .field_type = (const fidl_type_t*)&Vectorunboundednotnullable_29Array5_20fidl_internal_kUint8Table,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 128,
            .field_type = (const fidl_type_t*)&Vectorunboundednotnullable_49Vectorunboundednotnullable_20fidl_internal_kUint8Table,
        },
    },
};
const struct FidlCodedStruct test_typesinprotocols_ArrayVectorNestedTable = {
    .tag = kFidlTypeStruct,
    .name = "test.typesinprotocols/ArrayVectorNested",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 144,
    .elements = Fields39test_typesinprotocols_ArrayVectorNested,
    .element_count = 4,
};

static const struct FidlStructElement Fields27test_typesinprotocols_Basic[] = {
    {
        .padding = {
            .header = {
                .element_type = kFidlStructElementType_Padding64,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 0,
            .mask_64 = 0xff00,
        },
    },
    {
        .padding = {
            .header = {
                .element_type = kFidlStructElementType_Padding64,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 16,
            .mask_64 = 0xff00,
        },
    },
    {
        .padding = {
            .header = {
                .element_type = kFidlStructElementType_Padding64,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 32,
            .mask_64 = 0xffffffff00000000,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 48,
            .field_type = (const fidl_type_t*)&StringunboundednotnullableTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 64,
            .field_type = (const fidl_type_t*)&StringunboundednullableTable,
        },
    },
};
const struct FidlCodedStruct test_typesinprotocols_BasicTable = {
    .tag = kFidlTypeStruct,
    .name = "test.typesinprotocols/Basic",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 80,
    .elements = Fields27test_typesinprotocols_Basic,
    .element_count = 5,
};

static const struct FidlStructElement Fields30test_typesinprotocols_Compound[] = {
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 0,
            .field_type = (const fidl_type_t*)&test_typesinprotocols_BitsTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 4,
            .field_type = (const fidl_type_t*)&test_typesinprotocols_EnumTable,
        },
    },
    {
        .padding = {
            .header = {
                .element_type = kFidlStructElementType_Padding64,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 8,
            .mask_64 = 0xffffffffffffff00,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 16,
            .field_type = (const fidl_type_t*)&test_typesinprotocols_TableTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 32,
            .field_type = (const fidl_type_t*)&test_typesinprotocols_UnionTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 48,
            .field_type = (const fidl_type_t*)&Pointer28test_typesinprotocols_StructTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 56,
            .field_type = (const fidl_type_t*)&test_typesinprotocols_UnionNullableRefTable,
        },
    },
};
const struct FidlCodedStruct test_typesinprotocols_CompoundTable = {
    .tag = kFidlTypeStruct,
    .name = "test.typesinprotocols/Compound",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 72,
    .elements = Fields30test_typesinprotocols_Compound,
    .element_count = 7,
};

static const struct FidlStructElement Fields30test_typesinprotocols_Resource[] = {
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_Resource,
            },
            .offset_v2 = 0,
            .field_type = (const fidl_type_t*)&Handlehandle2147483648notnullableTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_Resource,
            },
            .offset_v2 = 4,
            .field_type = (const fidl_type_t*)&Handlevmo2147483648notnullableTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_Resource,
            },
            .offset_v2 = 8,
            .field_type = (const fidl_type_t*)&Protocol30test_typesinprotocols_ProtocolnotnullableTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_Resource,
            },
            .offset_v2 = 12,
            .field_type = (const fidl_type_t*)&Request0notnullableTable,
        },
    },
    {
        .padding = {
            .header = {
                .element_type = kFidlStructElementType_Padding64,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 16,
            .mask_64 = 0xffffffffffffff00,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_Resource,
            },
            .offset_v2 = 24,
            .field_type = (const fidl_type_t*)&test_typesinprotocols_ResourceTableTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_Resource,
            },
            .offset_v2 = 40,
            .field_type = (const fidl_type_t*)&test_typesinprotocols_ResourceUnionTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_Resource,
            },
            .offset_v2 = 56,
            .field_type = (const fidl_type_t*)&Handlehandle2147483648nullableTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_Resource,
            },
            .offset_v2 = 60,
            .field_type = (const fidl_type_t*)&Handlevmo2147483648nullableTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_Resource,
            },
            .offset_v2 = 64,
            .field_type = (const fidl_type_t*)&Protocol30test_typesinprotocols_ProtocolnullableTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_Resource,
            },
            .offset_v2 = 68,
            .field_type = (const fidl_type_t*)&Request0nullableTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_Resource,
            },
            .offset_v2 = 72,
            .field_type = (const fidl_type_t*)&Pointer36test_typesinprotocols_ResourceStructTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_Resource,
            },
            .offset_v2 = 80,
            .field_type = (const fidl_type_t*)&test_typesinprotocols_ResourceUnionNullableRefTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_Resource,
            },
            .offset_v2 = 96,
            .field_type = (const fidl_type_t*)&Array5_33Handlehandle2147483648notnullableTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_Resource,
            },
            .offset_v2 = 116,
            .field_type = (const fidl_type_t*)&Array5_30Handlevmo2147483648notnullableTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_Resource,
            },
            .offset_v2 = 136,
            .field_type = (const fidl_type_t*)&Array5_51Protocol30test_typesinprotocols_ProtocolnotnullableTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_Resource,
            },
            .offset_v2 = 156,
            .field_type = (const fidl_type_t*)&Array5_19Request0notnullableTable,
        },
    },
    {
        .padding = {
            .header = {
                .element_type = kFidlStructElementType_Padding64,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 176,
            .mask_64 = 0xffffff0000000000,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_Resource,
            },
            .offset_v2 = 184,
            .field_type = (const fidl_type_t*)&Array5_35test_typesinprotocols_ResourceTableTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_Resource,
            },
            .offset_v2 = 264,
            .field_type = (const fidl_type_t*)&Array5_35test_typesinprotocols_ResourceUnionTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_Resource,
            },
            .offset_v2 = 344,
            .field_type = (const fidl_type_t*)&Vectorunboundednotnullable_33Handlehandle2147483648notnullableTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_Resource,
            },
            .offset_v2 = 360,
            .field_type = (const fidl_type_t*)&Vectorunboundednotnullable_30Handlevmo2147483648notnullableTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_Resource,
            },
            .offset_v2 = 376,
            .field_type = (const fidl_type_t*)&Vectorunboundednotnullable_51Protocol30test_typesinprotocols_ProtocolnotnullableTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_Resource,
            },
            .offset_v2 = 392,
            .field_type = (const fidl_type_t*)&Vectorunboundednotnullable_19Request0notnullableTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_Resource,
            },
            .offset_v2 = 408,
            .field_type = (const fidl_type_t*)&Vectorunboundednotnullable_36test_typesinprotocols_ResourceStructTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_Resource,
            },
            .offset_v2 = 424,
            .field_type = (const fidl_type_t*)&Vectorunboundednotnullable_35test_typesinprotocols_ResourceTableTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_Resource,
            },
            .offset_v2 = 440,
            .field_type = (const fidl_type_t*)&Vectorunboundednotnullable_35test_typesinprotocols_ResourceUnionTable,
        },
    },
};
const struct FidlCodedStruct test_typesinprotocols_ResourceTable = {
    .tag = kFidlTypeStruct,
    .name = "test.typesinprotocols/Resource",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 456,
    .elements = Fields30test_typesinprotocols_Resource,
    .element_count = 27,
};

const struct FidlCodedStruct test_typesinprotocols_ResourceStructTable = {
    .tag = kFidlTypeStruct,
    .name = "test.typesinprotocols/ResourceStruct",
    .is_empty = kFidlEmpty_IsEmpty,
    .size_v2 = 1,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_typesinprotocols_StructTable = {
    .tag = kFidlTypeStruct,
    .name = "test.typesinprotocols/Struct",
    .is_empty = kFidlEmpty_IsEmpty,
    .size_v2 = 1,
    .elements = NULL,
    .element_count = 0,
};

static const struct FidlStructElement Fields33test_typesinprotocols_VectorBasic[] = {
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 0,
            .field_type = (const fidl_type_t*)&Vectorunboundednotnullable_20fidl_internal_kUint8Table,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 16,
            .field_type = (const fidl_type_t*)&Vectorunboundednotnullable_21fidl_internal_kUint16Table,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 32,
            .field_type = (const fidl_type_t*)&Vectorunboundednotnullable_21fidl_internal_kUint32Table,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 48,
            .field_type = (const fidl_type_t*)&Vectorunboundednotnullable_21fidl_internal_kUint64Table,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 64,
            .field_type = (const fidl_type_t*)&Vectorunboundednotnullable_19fidl_internal_kInt8Table,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 80,
            .field_type = (const fidl_type_t*)&Vectorunboundednotnullable_20fidl_internal_kInt16Table,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 96,
            .field_type = (const fidl_type_t*)&Vectorunboundednotnullable_20fidl_internal_kInt32Table,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 112,
            .field_type = (const fidl_type_t*)&Vectorunboundednotnullable_20fidl_internal_kInt64Table,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 128,
            .field_type = (const fidl_type_t*)&Vectorunboundednotnullable_22fidl_internal_kFloat32Table,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 144,
            .field_type = (const fidl_type_t*)&Vectorunboundednotnullable_22fidl_internal_kFloat64Table,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 160,
            .field_type = (const fidl_type_t*)&Vectorunboundednotnullable_26StringunboundednotnullableTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 176,
            .field_type = (const fidl_type_t*)&Vectorunboundednotnullable_23StringunboundednullableTable,
        },
    },
};
const struct FidlCodedStruct test_typesinprotocols_VectorBasicTable = {
    .tag = kFidlTypeStruct,
    .name = "test.typesinprotocols/VectorBasic",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 192,
    .elements = Fields33test_typesinprotocols_VectorBasic,
    .element_count = 12,
};

static const struct FidlStructElement Fields36test_typesinprotocols_VectorCompound[] = {
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 0,
            .field_type = (const fidl_type_t*)&Vectorunboundednotnullable_26test_typesinprotocols_BitsTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 16,
            .field_type = (const fidl_type_t*)&Vectorunboundednotnullable_26test_typesinprotocols_EnumTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 32,
            .field_type = (const fidl_type_t*)&Vectorunboundednotnullable_28test_typesinprotocols_StructTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 48,
            .field_type = (const fidl_type_t*)&Vectorunboundednotnullable_27test_typesinprotocols_TableTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 64,
            .field_type = (const fidl_type_t*)&Vectorunboundednotnullable_27test_typesinprotocols_UnionTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 80,
            .field_type = (const fidl_type_t*)&Vectorunboundednotnullable_37Pointer28test_typesinprotocols_StructTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 96,
            .field_type = (const fidl_type_t*)&Vectorunboundednotnullable_38test_typesinprotocols_UnionNullableRefTable,
        },
    },
};
const struct FidlCodedStruct test_typesinprotocols_VectorCompoundTable = {
    .tag = kFidlTypeStruct,
    .name = "test.typesinprotocols/VectorCompound",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 112,
    .elements = Fields36test_typesinprotocols_VectorCompound,
    .element_count = 7,
};

static const struct FidlStructElement Fields36test_typesinprotocols_VectorOptional[] = {
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 0,
            .field_type = (const fidl_type_t*)&Vectorunboundednullable_20fidl_internal_kUint8Table,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 16,
            .field_type = (const fidl_type_t*)&Vectorunboundednullable_26StringunboundednotnullableTable,
        },
    },
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 48,
            .field_type = (const fidl_type_t*)&Vectorunboundednullable_37Pointer28test_typesinprotocols_StructTable,
        },
    },
};
const struct FidlCodedStruct test_typesinprotocols_VectorOptionalTable = {
    .tag = kFidlTypeStruct,
    .name = "test.typesinprotocols/VectorOptional",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 64,
    .elements = Fields36test_typesinprotocols_VectorOptional,
    .element_count = 3,
};

const struct FidlCodedTable test_typesinprotocols_ResourceTableTable = {
    .tag = kFidlTypeTable,
    .name = "test.typesinprotocols/ResourceTable",
    .is_resource = kFidlIsResource_Resource,
    .fields = NULL,
    .field_count = 0,
};

const struct FidlCodedTable test_typesinprotocols_TableTable = {
    .tag = kFidlTypeTable,
    .name = "test.typesinprotocols/Table",
    .is_resource = kFidlIsResource_NotResource,
    .fields = NULL,
    .field_count = 0,
};

static const struct FidlUnionField Fields53test_typesinprotocols_Protocol_ErrorArrayBasic_Result[] = {
    {.type = (const fidl_type_t*)&test_typesinprotocols_ArrayBasicTable},
    {.type = (const fidl_type_t*)&fidl_internal_kUint32Table},
};
const struct FidlCodedUnion test_typesinprotocols_Protocol_ErrorArrayBasic_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.typesinprotocols/Protocol_ErrorArrayBasic_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields53test_typesinprotocols_Protocol_ErrorArrayBasic_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_typesinprotocols_Protocol_ErrorArrayBasic_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.typesinprotocols/Protocol_ErrorArrayBasic_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields53test_typesinprotocols_Protocol_ErrorArrayBasic_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields56test_typesinprotocols_Protocol_ErrorArrayCompound_Result[] = {
    {.type = (const fidl_type_t*)&test_typesinprotocols_ArrayCompoundTable},
    {.type = (const fidl_type_t*)&fidl_internal_kUint32Table},
};
const struct FidlCodedUnion test_typesinprotocols_Protocol_ErrorArrayCompound_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.typesinprotocols/Protocol_ErrorArrayCompound_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields56test_typesinprotocols_Protocol_ErrorArrayCompound_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_typesinprotocols_Protocol_ErrorArrayCompound_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.typesinprotocols/Protocol_ErrorArrayCompound_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields56test_typesinprotocols_Protocol_ErrorArrayCompound_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields60test_typesinprotocols_Protocol_ErrorArrayVectorNested_Result[] = {
    {.type = (const fidl_type_t*)&test_typesinprotocols_ArrayVectorNestedTable},
    {.type = (const fidl_type_t*)&fidl_internal_kUint32Table},
};
const struct FidlCodedUnion test_typesinprotocols_Protocol_ErrorArrayVectorNested_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.typesinprotocols/Protocol_ErrorArrayVectorNested_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields60test_typesinprotocols_Protocol_ErrorArrayVectorNested_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_typesinprotocols_Protocol_ErrorArrayVectorNested_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.typesinprotocols/Protocol_ErrorArrayVectorNested_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields60test_typesinprotocols_Protocol_ErrorArrayVectorNested_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields48test_typesinprotocols_Protocol_ErrorBasic_Result[] = {
    {.type = (const fidl_type_t*)&test_typesinprotocols_BasicTable},
    {.type = (const fidl_type_t*)&fidl_internal_kUint32Table},
};
const struct FidlCodedUnion test_typesinprotocols_Protocol_ErrorBasic_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.typesinprotocols/Protocol_ErrorBasic_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields48test_typesinprotocols_Protocol_ErrorBasic_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_typesinprotocols_Protocol_ErrorBasic_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.typesinprotocols/Protocol_ErrorBasic_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields48test_typesinprotocols_Protocol_ErrorBasic_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields51test_typesinprotocols_Protocol_ErrorCompound_Result[] = {
    {.type = (const fidl_type_t*)&test_typesinprotocols_CompoundTable},
    {.type = (const fidl_type_t*)&fidl_internal_kUint32Table},
};
const struct FidlCodedUnion test_typesinprotocols_Protocol_ErrorCompound_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.typesinprotocols/Protocol_ErrorCompound_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields51test_typesinprotocols_Protocol_ErrorCompound_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_typesinprotocols_Protocol_ErrorCompound_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.typesinprotocols/Protocol_ErrorCompound_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields51test_typesinprotocols_Protocol_ErrorCompound_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields51test_typesinprotocols_Protocol_ErrorResource_Result[] = {
    {.type = (const fidl_type_t*)&test_typesinprotocols_ResourceTable},
    {.type = (const fidl_type_t*)&fidl_internal_kUint32Table},
};
const struct FidlCodedUnion test_typesinprotocols_Protocol_ErrorResource_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.typesinprotocols/Protocol_ErrorResource_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_Resource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields51test_typesinprotocols_Protocol_ErrorResource_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_typesinprotocols_Protocol_ErrorResource_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.typesinprotocols/Protocol_ErrorResource_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_Resource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields51test_typesinprotocols_Protocol_ErrorResource_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields54test_typesinprotocols_Protocol_ErrorVectorBasic_Result[] = {
    {.type = (const fidl_type_t*)&test_typesinprotocols_VectorBasicTable},
    {.type = (const fidl_type_t*)&fidl_internal_kUint32Table},
};
const struct FidlCodedUnion test_typesinprotocols_Protocol_ErrorVectorBasic_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.typesinprotocols/Protocol_ErrorVectorBasic_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields54test_typesinprotocols_Protocol_ErrorVectorBasic_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_typesinprotocols_Protocol_ErrorVectorBasic_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.typesinprotocols/Protocol_ErrorVectorBasic_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields54test_typesinprotocols_Protocol_ErrorVectorBasic_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields57test_typesinprotocols_Protocol_ErrorVectorCompound_Result[] = {
    {.type = (const fidl_type_t*)&test_typesinprotocols_VectorCompoundTable},
    {.type = (const fidl_type_t*)&fidl_internal_kUint32Table},
};
const struct FidlCodedUnion test_typesinprotocols_Protocol_ErrorVectorCompound_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.typesinprotocols/Protocol_ErrorVectorCompound_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields57test_typesinprotocols_Protocol_ErrorVectorCompound_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_typesinprotocols_Protocol_ErrorVectorCompound_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.typesinprotocols/Protocol_ErrorVectorCompound_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields57test_typesinprotocols_Protocol_ErrorVectorCompound_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields57test_typesinprotocols_Protocol_ErrorVectorOptional_Result[] = {
    {.type = (const fidl_type_t*)&test_typesinprotocols_VectorOptionalTable},
    {.type = (const fidl_type_t*)&fidl_internal_kUint32Table},
};
const struct FidlCodedUnion test_typesinprotocols_Protocol_ErrorVectorOptional_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.typesinprotocols/Protocol_ErrorVectorOptional_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields57test_typesinprotocols_Protocol_ErrorVectorOptional_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_typesinprotocols_Protocol_ErrorVectorOptional_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.typesinprotocols/Protocol_ErrorVectorOptional_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields57test_typesinprotocols_Protocol_ErrorVectorOptional_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields35test_typesinprotocols_ResourceUnion[] = {
    {.type = (const fidl_type_t*)&fidl_internal_kBoolTable},
};
const struct FidlCodedUnion test_typesinprotocols_ResourceUnionTable = {
    .tag = kFidlTypeUnion,
    .name = "test.typesinprotocols/ResourceUnion",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_Resource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields35test_typesinprotocols_ResourceUnion,
    .field_count = 1,
};
const struct FidlCodedUnion test_typesinprotocols_ResourceUnionNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.typesinprotocols/ResourceUnion",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_Resource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields35test_typesinprotocols_ResourceUnion,
    .field_count = 1,
};

static const struct FidlUnionField Fields27test_typesinprotocols_Union[] = {
    {.type = (const fidl_type_t*)&fidl_internal_kBoolTable},
};
const struct FidlCodedUnion test_typesinprotocols_UnionTable = {
    .tag = kFidlTypeUnion,
    .name = "test.typesinprotocols/Union",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields27test_typesinprotocols_Union,
    .field_count = 1,
};
const struct FidlCodedUnion test_typesinprotocols_UnionNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.typesinprotocols/Union",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields27test_typesinprotocols_Union,
    .field_count = 1,
};

static const struct FidlCodedArray Array5_26StringunboundednotnullableTable = {
    .tag = kFidlTypeArray,
    .element = (const fidl_type_t*)&StringunboundednotnullableTable,
    .array_size_v2 = 80,
    .element_size_v2 = 16,
};

static const struct FidlCodedArray Array5_23StringunboundednullableTable = {
    .tag = kFidlTypeArray,
    .element = (const fidl_type_t*)&StringunboundednullableTable,
    .array_size_v2 = 80,
    .element_size_v2 = 16,
};

static const struct FidlCodedArray Array5_26test_typesinprotocols_BitsTable = {
    .tag = kFidlTypeArray,
    .element = (const fidl_type_t*)&test_typesinprotocols_BitsTable,
    .array_size_v2 = 20,
    .element_size_v2 = 4,
};

static const struct FidlCodedArray Array5_26test_typesinprotocols_EnumTable = {
    .tag = kFidlTypeArray,
    .element = (const fidl_type_t*)&test_typesinprotocols_EnumTable,
    .array_size_v2 = 20,
    .element_size_v2 = 4,
};

static const struct FidlCodedArray Array5_27test_typesinprotocols_TableTable = {
    .tag = kFidlTypeArray,
    .element = (const fidl_type_t*)&test_typesinprotocols_TableTable,
    .array_size_v2 = 80,
    .element_size_v2 = 16,
};

static const struct FidlCodedArray Array5_27test_typesinprotocols_UnionTable = {
    .tag = kFidlTypeArray,
    .element = (const fidl_type_t*)&test_typesinprotocols_UnionTable,
    .array_size_v2 = 80,
    .element_size_v2 = 16,
};

static const struct FidlCodedArray Array5_37Pointer28test_typesinprotocols_StructTable = {
    .tag = kFidlTypeArray,
    .element = (const fidl_type_t*)&Pointer28test_typesinprotocols_StructTable,
    .array_size_v2 = 40,
    .element_size_v2 = 8,
};

static const struct FidlCodedArray Array5_38test_typesinprotocols_UnionNullableRefTable = {
    .tag = kFidlTypeArray,
    .element = (const fidl_type_t*)&test_typesinprotocols_UnionNullableRefTable,
    .array_size_v2 = 80,
    .element_size_v2 = 16,
};

static const struct FidlCodedArray Array5_49Vectorunboundednotnullable_20fidl_internal_kUint8Table = {
    .tag = kFidlTypeArray,
    .element = (const fidl_type_t*)&Vectorunboundednotnullable_20fidl_internal_kUint8Table,
    .array_size_v2 = 80,
    .element_size_v2 = 16,
};

static const struct FidlCodedArray Array5_20fidl_internal_kUint8Table = {
    .tag = kFidlTypeArray,
    .element = (const fidl_type_t*)&fidl_internal_kUint8Table,
    .array_size_v2 = 5,
    .element_size_v2 = 1,
};

static const struct FidlCodedArray Array5_33Handlehandle2147483648notnullableTable = {
    .tag = kFidlTypeArray,
    .element = (const fidl_type_t*)&Handlehandle2147483648notnullableTable,
    .array_size_v2 = 20,
    .element_size_v2 = 4,
};

static const struct FidlCodedArray Array5_30Handlevmo2147483648notnullableTable = {
    .tag = kFidlTypeArray,
    .element = (const fidl_type_t*)&Handlevmo2147483648notnullableTable,
    .array_size_v2 = 20,
    .element_size_v2 = 4,
};

static const struct FidlCodedArray Array5_51Protocol30test_typesinprotocols_ProtocolnotnullableTable = {
    .tag = kFidlTypeArray,
    .element = (const fidl_type_t*)&Protocol30test_typesinprotocols_ProtocolnotnullableTable,
    .array_size_v2 = 20,
    .element_size_v2 = 4,
};

static const struct FidlCodedArray Array5_19Request0notnullableTable = {
    .tag = kFidlTypeArray,
    .element = (const fidl_type_t*)&Request0notnullableTable,
    .array_size_v2 = 20,
    .element_size_v2 = 4,
};

static const struct FidlCodedArray Array5_35test_typesinprotocols_ResourceTableTable = {
    .tag = kFidlTypeArray,
    .element = (const fidl_type_t*)&test_typesinprotocols_ResourceTableTable,
    .array_size_v2 = 80,
    .element_size_v2 = 16,
};

static const struct FidlCodedArray Array5_35test_typesinprotocols_ResourceUnionTable = {
    .tag = kFidlTypeArray,
    .element = (const fidl_type_t*)&test_typesinprotocols_ResourceUnionTable,
    .array_size_v2 = 80,
    .element_size_v2 = 16,
};

static const struct FidlCodedVector Vectorunboundednotnullable_20fidl_internal_kUint8Table = {
    .tag = kFidlTypeVector,
    .element = (const fidl_type_t*)&fidl_internal_kUint8Table,
    .max_count = 4294967295,
    .nullable = kFidlNullability_Nonnullable,
    .element_size_v2 = 1,
};

static const struct FidlCodedVector Vectorunboundednotnullable_29Array5_20fidl_internal_kUint8Table = {
    .tag = kFidlTypeVector,
    .element = (const fidl_type_t*)&Array5_20fidl_internal_kUint8Table,
    .max_count = 4294967295,
    .nullable = kFidlNullability_Nonnullable,
    .element_size_v2 = 5,
};

static const struct FidlCodedVector Vectorunboundednotnullable_49Vectorunboundednotnullable_20fidl_internal_kUint8Table = {
    .tag = kFidlTypeVector,
    .element = (const fidl_type_t*)&Vectorunboundednotnullable_20fidl_internal_kUint8Table,
    .max_count = 4294967295,
    .nullable = kFidlNullability_Nonnullable,
    .element_size_v2 = 16,
};

static const struct FidlCodedVector Vectorunboundednotnullable_33Handlehandle2147483648notnullableTable = {
    .tag = kFidlTypeVector,
    .element = (const fidl_type_t*)&Handlehandle2147483648notnullableTable,
    .max_count = 4294967295,
    .nullable = kFidlNullability_Nonnullable,
    .element_size_v2 = 4,
};

static const struct FidlCodedVector Vectorunboundednotnullable_30Handlevmo2147483648notnullableTable = {
    .tag = kFidlTypeVector,
    .element = (const fidl_type_t*)&Handlevmo2147483648notnullableTable,
    .max_count = 4294967295,
    .nullable = kFidlNullability_Nonnullable,
    .element_size_v2 = 4,
};

static const struct FidlCodedVector Vectorunboundednotnullable_51Protocol30test_typesinprotocols_ProtocolnotnullableTable = {
    .tag = kFidlTypeVector,
    .element = (const fidl_type_t*)&Protocol30test_typesinprotocols_ProtocolnotnullableTable,
    .max_count = 4294967295,
    .nullable = kFidlNullability_Nonnullable,
    .element_size_v2 = 4,
};

static const struct FidlCodedVector Vectorunboundednotnullable_19Request0notnullableTable = {
    .tag = kFidlTypeVector,
    .element = (const fidl_type_t*)&Request0notnullableTable,
    .max_count = 4294967295,
    .nullable = kFidlNullability_Nonnullable,
    .element_size_v2 = 4,
};

static const struct FidlCodedVector Vectorunboundednotnullable_36test_typesinprotocols_ResourceStructTable = {
    .tag = kFidlTypeVector,
    .element = (const fidl_type_t*)&test_typesinprotocols_ResourceStructTable,
    .max_count = 4294967295,
    .nullable = kFidlNullability_Nonnullable,
    .element_size_v2 = 1,
};

static const struct FidlCodedVector Vectorunboundednotnullable_35test_typesinprotocols_ResourceTableTable = {
    .tag = kFidlTypeVector,
    .element = (const fidl_type_t*)&test_typesinprotocols_ResourceTableTable,
    .max_count = 4294967295,
    .nullable = kFidlNullability_Nonnullable,
    .element_size_v2 = 16,
};

static const struct FidlCodedVector Vectorunboundednotnullable_35test_typesinprotocols_ResourceUnionTable = {
    .tag = kFidlTypeVector,
    .element = (const fidl_type_t*)&test_typesinprotocols_ResourceUnionTable,
    .max_count = 4294967295,
    .nullable = kFidlNullability_Nonnullable,
    .element_size_v2 = 16,
};

static const struct FidlCodedVector Vectorunboundednotnullable_21fidl_internal_kUint16Table = {
    .tag = kFidlTypeVector,
    .element = (const fidl_type_t*)&fidl_internal_kUint16Table,
    .max_count = 4294967295,
    .nullable = kFidlNullability_Nonnullable,
    .element_size_v2 = 2,
};

static const struct FidlCodedVector Vectorunboundednotnullable_21fidl_internal_kUint32Table = {
    .tag = kFidlTypeVector,
    .element = (const fidl_type_t*)&fidl_internal_kUint32Table,
    .max_count = 4294967295,
    .nullable = kFidlNullability_Nonnullable,
    .element_size_v2 = 4,
};

static const struct FidlCodedVector Vectorunboundednotnullable_21fidl_internal_kUint64Table = {
    .tag = kFidlTypeVector,
    .element = (const fidl_type_t*)&fidl_internal_kUint64Table,
    .max_count = 4294967295,
    .nullable = kFidlNullability_Nonnullable,
    .element_size_v2 = 8,
};

static const struct FidlCodedVector Vectorunboundednotnullable_19fidl_internal_kInt8Table = {
    .tag = kFidlTypeVector,
    .element = (const fidl_type_t*)&fidl_internal_kInt8Table,
    .max_count = 4294967295,
    .nullable = kFidlNullability_Nonnullable,
    .element_size_v2 = 1,
};

static const struct FidlCodedVector Vectorunboundednotnullable_20fidl_internal_kInt16Table = {
    .tag = kFidlTypeVector,
    .element = (const fidl_type_t*)&fidl_internal_kInt16Table,
    .max_count = 4294967295,
    .nullable = kFidlNullability_Nonnullable,
    .element_size_v2 = 2,
};

static const struct FidlCodedVector Vectorunboundednotnullable_20fidl_internal_kInt32Table = {
    .tag = kFidlTypeVector,
    .element = (const fidl_type_t*)&fidl_internal_kInt32Table,
    .max_count = 4294967295,
    .nullable = kFidlNullability_Nonnullable,
    .element_size_v2 = 4,
};

static const struct FidlCodedVector Vectorunboundednotnullable_20fidl_internal_kInt64Table = {
    .tag = kFidlTypeVector,
    .element = (const fidl_type_t*)&fidl_internal_kInt64Table,
    .max_count = 4294967295,
    .nullable = kFidlNullability_Nonnullable,
    .element_size_v2 = 8,
};

static const struct FidlCodedVector Vectorunboundednotnullable_22fidl_internal_kFloat32Table = {
    .tag = kFidlTypeVector,
    .element = (const fidl_type_t*)&fidl_internal_kFloat32Table,
    .max_count = 4294967295,
    .nullable = kFidlNullability_Nonnullable,
    .element_size_v2 = 4,
};

static const struct FidlCodedVector Vectorunboundednotnullable_22fidl_internal_kFloat64Table = {
    .tag = kFidlTypeVector,
    .element = (const fidl_type_t*)&fidl_internal_kFloat64Table,
    .max_count = 4294967295,
    .nullable = kFidlNullability_Nonnullable,
    .element_size_v2 = 8,
};

static const struct FidlCodedVector Vectorunboundednotnullable_26StringunboundednotnullableTable = {
    .tag = kFidlTypeVector,
    .element = (const fidl_type_t*)&StringunboundednotnullableTable,
    .max_count = 4294967295,
    .nullable = kFidlNullability_Nonnullable,
    .element_size_v2 = 16,
};

static const struct FidlCodedVector Vectorunboundednotnullable_23StringunboundednullableTable = {
    .tag = kFidlTypeVector,
    .element = (const fidl_type_t*)&StringunboundednullableTable,
    .max_count = 4294967295,
    .nullable = kFidlNullability_Nonnullable,
    .element_size_v2 = 16,
};

static const struct FidlCodedVector Vectorunboundednotnullable_26test_typesinprotocols_BitsTable = {
    .tag = kFidlTypeVector,
    .element = (const fidl_type_t*)&test_typesinprotocols_BitsTable,
    .max_count = 4294967295,
    .nullable = kFidlNullability_Nonnullable,
    .element_size_v2 = 4,
};

static const struct FidlCodedVector Vectorunboundednotnullable_26test_typesinprotocols_EnumTable = {
    .tag = kFidlTypeVector,
    .element = (const fidl_type_t*)&test_typesinprotocols_EnumTable,
    .max_count = 4294967295,
    .nullable = kFidlNullability_Nonnullable,
    .element_size_v2 = 4,
};

static const struct FidlCodedVector Vectorunboundednotnullable_28test_typesinprotocols_StructTable = {
    .tag = kFidlTypeVector,
    .element = (const fidl_type_t*)&test_typesinprotocols_StructTable,
    .max_count = 4294967295,
    .nullable = kFidlNullability_Nonnullable,
    .element_size_v2 = 1,
};

static const struct FidlCodedVector Vectorunboundednotnullable_27test_typesinprotocols_TableTable = {
    .tag = kFidlTypeVector,
    .element = (const fidl_type_t*)&test_typesinprotocols_TableTable,
    .max_count = 4294967295,
    .nullable = kFidlNullability_Nonnullable,
    .element_size_v2 = 16,
};

static const struct FidlCodedVector Vectorunboundednotnullable_27test_typesinprotocols_UnionTable = {
    .tag = kFidlTypeVector,
    .element = (const fidl_type_t*)&test_typesinprotocols_UnionTable,
    .max_count = 4294967295,
    .nullable = kFidlNullability_Nonnullable,
    .element_size_v2 = 16,
};

static const struct FidlCodedVector Vectorunboundednotnullable_37Pointer28test_typesinprotocols_StructTable = {
    .tag = kFidlTypeVector,
    .element = (const fidl_type_t*)&Pointer28test_typesinprotocols_StructTable,
    .max_count = 4294967295,
    .nullable = kFidlNullability_Nonnullable,
    .element_size_v2 = 8,
};

static const struct FidlCodedVector Vectorunboundednotnullable_38test_typesinprotocols_UnionNullableRefTable = {
    .tag = kFidlTypeVector,
    .element = (const fidl_type_t*)&test_typesinprotocols_UnionNullableRefTable,
    .max_count = 4294967295,
    .nullable = kFidlNullability_Nonnullable,
    .element_size_v2 = 16,
};

static const struct FidlCodedVector Vectorunboundednullable_20fidl_internal_kUint8Table = {
    .tag = kFidlTypeVector,
    .element = (const fidl_type_t*)&fidl_internal_kUint8Table,
    .max_count = 4294967295,
    .nullable = kFidlNullability_Nullable,
    .element_size_v2 = 1,
};

static const struct FidlCodedVector Vectorunboundednullable_26StringunboundednotnullableTable = {
    .tag = kFidlTypeVector,
    .element = (const fidl_type_t*)&StringunboundednotnullableTable,
    .max_count = 4294967295,
    .nullable = kFidlNullability_Nullable,
    .element_size_v2 = 16,
};

static const struct FidlCodedVector Vectorunboundednullable_37Pointer28test_typesinprotocols_StructTable = {
    .tag = kFidlTypeVector,
    .element = (const fidl_type_t*)&Pointer28test_typesinprotocols_StructTable,
    .max_count = 4294967295,
    .nullable = kFidlNullability_Nullable,
    .element_size_v2 = 8,
};

static const struct FidlCodedString StringunboundednotnullableTable = {
    .tag = kFidlTypeString,
    .max_size = 4294967295,
    .nullable = kFidlNullability_Nonnullable,
};

static const struct FidlCodedString StringunboundednullableTable = {
    .tag = kFidlTypeString,
    .max_size = 4294967295,
    .nullable = kFidlNullability_Nullable,
};

static const struct FidlCodedHandle Handlehandle2147483648notnullableTable = {
    .tag = kFidlTypeHandle,
    .handle_subtype = ZX_OBJ_TYPE_NONE,
    .handle_rights = 0x80000000,
    .nullable = kFidlNullability_Nonnullable,
};

static const struct FidlCodedHandle Handlevmo2147483648notnullableTable = {
    .tag = kFidlTypeHandle,
    .handle_subtype = ZX_OBJ_TYPE_VMO,
    .handle_rights = 0x80000000,
    .nullable = kFidlNullability_Nonnullable,
};

static const struct FidlCodedHandle Protocol30test_typesinprotocols_ProtocolnotnullableTable = {
    .tag = kFidlTypeHandle,
    .handle_subtype = ZX_OBJ_TYPE_CHANNEL,
    .handle_rights = ZX_DEFAULT_CHANNEL_RIGHTS,
    .nullable = kFidlNullability_Nonnullable,
};

static const struct FidlCodedHandle Request0notnullableTable = {
    .tag = kFidlTypeHandle,
    .handle_subtype = ZX_OBJ_TYPE_CHANNEL,
    .handle_rights = ZX_DEFAULT_CHANNEL_RIGHTS,
    .nullable = kFidlNullability_Nonnullable,
};

static const struct FidlCodedHandle Handlehandle2147483648nullableTable = {
    .tag = kFidlTypeHandle,
    .handle_subtype = ZX_OBJ_TYPE_NONE,
    .handle_rights = 0x80000000,
    .nullable = kFidlNullability_Nullable,
};

static const struct FidlCodedHandle Handlevmo2147483648nullableTable = {
    .tag = kFidlTypeHandle,
    .handle_subtype = ZX_OBJ_TYPE_VMO,
    .handle_rights = 0x80000000,
    .nullable = kFidlNullability_Nullable,
};

static const struct FidlCodedHandle Protocol30test_typesinprotocols_ProtocolnullableTable = {
    .tag = kFidlTypeHandle,
    .handle_subtype = ZX_OBJ_TYPE_CHANNEL,
    .handle_rights = ZX_DEFAULT_CHANNEL_RIGHTS,
    .nullable = kFidlNullability_Nullable,
};

static const struct FidlCodedHandle Request0nullableTable = {
    .tag = kFidlTypeHandle,
    .handle_subtype = ZX_OBJ_TYPE_CHANNEL,
    .handle_rights = ZX_DEFAULT_CHANNEL_RIGHTS,
    .nullable = kFidlNullability_Nullable,
};

static const struct FidlCodedStructPointer Pointer28test_typesinprotocols_StructTable = {
    .tag = kFidlTypeStructPointer,
    .struct_type = &test_typesinprotocols_StructTable,
};

static const struct FidlCodedStructPointer Pointer36test_typesinprotocols_ResourceStructTable = {
    .tag = kFidlTypeStructPointer,
    .struct_type = &test_typesinprotocols_ResourceStructTable,
};
