[fidl] Update conformance tests

Mechanical regen after I1c76185508d72e71effe9b20d0322b897613a4c9

Change-Id: Iab964082e4cbd2dfaf6bea953a11cbe77570f4b7
diff --git a/src/syscall/zx/fidl/conformance/impl.go b/src/syscall/zx/fidl/conformance/impl.go
index db46295..527e6bd 100644
--- a/src/syscall/zx/fidl/conformance/impl.go
+++ b/src/syscall/zx/fidl/conformance/impl.go
@@ -16,6 +16,225 @@
 	_bindings "syscall/zx/fidl"
 )
 
+type UnionWithBoundStringStruct struct {
+	_ struct{}             `fidl:"s,24,8" fidl_size_v1:"24" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"24" fidl_alignment_v1_no_ee:"8"`
+	V UnionWithBoundString `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+}
+
+var _mUnionWithBoundStringStruct = _bindings.CreateLazyMarshaler(UnionWithBoundStringStruct{})
+
+func (msg *UnionWithBoundStringStruct) Marshaler() _bindings.Marshaler {
+	return _mUnionWithBoundStringStruct
+}
+
+type SingleVariantUnionStruct struct {
+	_ struct{}           `fidl:"s,8,4" fidl_size_v1:"24" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"24" fidl_alignment_v1_no_ee:"8"`
+	U SingleVariantUnion `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+}
+
+var _mSingleVariantUnionStruct = _bindings.CreateLazyMarshaler(SingleVariantUnionStruct{})
+
+func (msg *SingleVariantUnionStruct) Marshaler() _bindings.Marshaler {
+	return _mSingleVariantUnionStruct
+}
+
+type Length2StringWrapper struct {
+	_             struct{} `fidl:"s,16,8" fidl_size_v1:"16" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"16" fidl_alignment_v1_no_ee:"8"`
+	Length2String string   `fidl:"0,2" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+}
+
+var _mLength2StringWrapper = _bindings.CreateLazyMarshaler(Length2StringWrapper{})
+
+func (msg *Length2StringWrapper) Marshaler() _bindings.Marshaler {
+	return _mLength2StringWrapper
+}
+
+type StringWrapper struct {
+	_   struct{} `fidl:"s,16,8" fidl_size_v1:"16" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"16" fidl_alignment_v1_no_ee:"8"`
+	Str string   `fidl:"0," fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+}
+
+var _mStringWrapper = _bindings.CreateLazyMarshaler(StringWrapper{})
+
+func (msg *StringWrapper) Marshaler() _bindings.Marshaler {
+	return _mStringWrapper
+}
+
+type TestXUnionInTable struct {
+	_     struct{}      `fidl:"s,16,8" fidl_size_v1:"16" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"16" fidl_alignment_v1_no_ee:"8"`
+	Value XUnionInTable `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+}
+
+var _mTestXUnionInTable = _bindings.CreateLazyMarshaler(TestXUnionInTable{})
+
+func (msg *TestXUnionInTable) Marshaler() _bindings.Marshaler {
+	return _mTestXUnionInTable
+}
+
+type InterfaceConfig struct {
+	_               struct{}        `fidl:"s,48,8" fidl_size_v1:"40" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"40" fidl_alignment_v1_no_ee:"8"`
+	Name            string          `fidl:"0," fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+	IpAddressConfig IpAddressConfig `fidl:"16" fidl_offset_v1:"16" fidl_offset_v1_no_ee:"16"`
+}
+
+var _mInterfaceConfig = _bindings.CreateLazyMarshaler(InterfaceConfig{})
+
+func (msg *InterfaceConfig) Marshaler() _bindings.Marshaler {
+	return _mInterfaceConfig
+}
+
+type TestAddEthernetDeviceRequest struct {
+	_                   struct{}        `fidl:"s,72,8" fidl_size_v1:"64" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"64" fidl_alignment_v1_no_ee:"8"`
+	TopologicalPath     string          `fidl:"0," fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+	Config              InterfaceConfig `fidl:"16" fidl_offset_v1:"16" fidl_offset_v1_no_ee:"16"`
+	ThisShouldBeAHandle uint32          `fidl:"64" fidl_offset_v1:"56" fidl_offset_v1_no_ee:"56"`
+}
+
+var _mTestAddEthernetDeviceRequest = _bindings.CreateLazyMarshaler(TestAddEthernetDeviceRequest{})
+
+func (msg *TestAddEthernetDeviceRequest) Marshaler() _bindings.Marshaler {
+	return _mTestAddEthernetDeviceRequest
+}
+
+type NodeAttributes struct {
+	_                struct{} `fidl:"s,56,8" fidl_size_v1:"56" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"56" fidl_alignment_v1_no_ee:"8"`
+	Mode             uint32   `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+	Id               uint64   `fidl:"8" fidl_offset_v1:"8" fidl_offset_v1_no_ee:"8"`
+	ContentSize      uint64   `fidl:"16" fidl_offset_v1:"16" fidl_offset_v1_no_ee:"16"`
+	StorageSize      uint64   `fidl:"24" fidl_offset_v1:"24" fidl_offset_v1_no_ee:"24"`
+	LinkCount        uint64   `fidl:"32" fidl_offset_v1:"32" fidl_offset_v1_no_ee:"32"`
+	CreationTime     uint64   `fidl:"40" fidl_offset_v1:"40" fidl_offset_v1_no_ee:"40"`
+	ModificationTime uint64   `fidl:"48" fidl_offset_v1:"48" fidl_offset_v1_no_ee:"48"`
+}
+
+var _mNodeAttributes = _bindings.CreateLazyMarshaler(NodeAttributes{})
+
+func (msg *NodeAttributes) Marshaler() _bindings.Marshaler {
+	return _mNodeAttributes
+}
+
+type FileGetAttrResponse struct {
+	_          struct{}       `fidl:"s,64,8" fidl_size_v1:"64" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"64" fidl_alignment_v1_no_ee:"8"`
+	S          int32          `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+	Attributes NodeAttributes `fidl:"8" fidl_offset_v1:"8" fidl_offset_v1_no_ee:"8"`
+}
+
+var _mFileGetAttrResponse = _bindings.CreateLazyMarshaler(FileGetAttrResponse{})
+
+func (msg *FileGetAttrResponse) Marshaler() _bindings.Marshaler {
+	return _mFileGetAttrResponse
+}
+
+type StructOfSimpleTable struct {
+	_     struct{}    `fidl:"s,16,8" fidl_size_v1:"16" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"16" fidl_alignment_v1_no_ee:"8"`
+	Table SimpleTable `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+}
+
+var _mStructOfSimpleTable = _bindings.CreateLazyMarshaler(StructOfSimpleTable{})
+
+func (msg *StructOfSimpleTable) Marshaler() _bindings.Marshaler {
+	return _mStructOfSimpleTable
+}
+
+type SimpleTableThenUint64 struct {
+	_      struct{}    `fidl:"s,24,8" fidl_size_v1:"24" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"24" fidl_alignment_v1_no_ee:"8"`
+	Table  SimpleTable `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+	Number uint64      `fidl:"16" fidl_offset_v1:"16" fidl_offset_v1_no_ee:"16"`
+}
+
+var _mSimpleTableThenUint64 = _bindings.CreateLazyMarshaler(SimpleTableThenUint64{})
+
+func (msg *SimpleTableThenUint64) Marshaler() _bindings.Marshaler {
+	return _mSimpleTableThenUint64
+}
+
+type StructOfTableWithStringAndVector struct {
+	_     struct{}                 `fidl:"s,16,8" fidl_size_v1:"16" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"16" fidl_alignment_v1_no_ee:"8"`
+	Table TableWithStringAndVector `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+}
+
+var _mStructOfTableWithStringAndVector = _bindings.CreateLazyMarshaler(StructOfTableWithStringAndVector{})
+
+func (msg *StructOfTableWithStringAndVector) Marshaler() _bindings.Marshaler {
+	return _mStructOfTableWithStringAndVector
+}
+
+type Int64Struct struct {
+	_ struct{} `fidl:"s,8,8" fidl_size_v1:"8" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"8" fidl_alignment_v1_no_ee:"8"`
+	X int64    `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+}
+
+var _mInt64Struct = _bindings.CreateLazyMarshaler(Int64Struct{})
+
+func (msg *Int64Struct) Marshaler() _bindings.Marshaler {
+	return _mInt64Struct
+}
+
+type TestInlineXUnionInStruct struct {
+	_      struct{}     `fidl:"s,56,8" fidl_size_v1:"56" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"56" fidl_alignment_v1_no_ee:"8"`
+	Before string       `fidl:"0," fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+	Xu     SampleXUnion `fidl:"16" fidl_offset_v1:"16" fidl_offset_v1_no_ee:"16"`
+	After  string       `fidl:"40," fidl_offset_v1:"40" fidl_offset_v1_no_ee:"40"`
+}
+
+var _mTestInlineXUnionInStruct = _bindings.CreateLazyMarshaler(TestInlineXUnionInStruct{})
+
+func (msg *TestInlineXUnionInStruct) Marshaler() _bindings.Marshaler {
+	return _mTestInlineXUnionInStruct
+}
+
+type TestOptionalXUnionInStruct struct {
+	_      struct{}      `fidl:"s,56,8" fidl_size_v1:"56" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"56" fidl_alignment_v1_no_ee:"8"`
+	Before string        `fidl:"0," fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+	Xu     *SampleXUnion `fidl:"16" fidl_offset_v1:"16" fidl_offset_v1_no_ee:"16"`
+	After  string        `fidl:"40," fidl_offset_v1:"40" fidl_offset_v1_no_ee:"40"`
+}
+
+var _mTestOptionalXUnionInStruct = _bindings.CreateLazyMarshaler(TestOptionalXUnionInStruct{})
+
+func (msg *TestOptionalXUnionInStruct) Marshaler() _bindings.Marshaler {
+	return _mTestOptionalXUnionInStruct
+}
+
+type TestStrictXUnionInStruct struct {
+	_  struct{}           `fidl:"s,24,8" fidl_size_v1:"24" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"24" fidl_alignment_v1_no_ee:"8"`
+	Xu SampleStrictXUnion `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+}
+
+var _mTestStrictXUnionInStruct = _bindings.CreateLazyMarshaler(TestStrictXUnionInStruct{})
+
+func (msg *TestStrictXUnionInStruct) Marshaler() _bindings.Marshaler {
+	return _mTestStrictXUnionInStruct
+}
+
+type TestFlexibleXUnionInStruct struct {
+	_  struct{}     `fidl:"s,24,8" fidl_size_v1:"24" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"24" fidl_alignment_v1_no_ee:"8"`
+	Xu SampleXUnion `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+}
+
+var _mTestFlexibleXUnionInStruct = _bindings.CreateLazyMarshaler(TestFlexibleXUnionInStruct{})
+
+func (msg *TestFlexibleXUnionInStruct) Marshaler() _bindings.Marshaler {
+	return _mTestFlexibleXUnionInStruct
+}
+
+type StructWithOptionals struct {
+	_   struct{}               `fidl:"s,104,8" fidl_size_v1:"128" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"128" fidl_alignment_v1_no_ee:"8"`
+	S   EmptyStruct            `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+	S2  *EmptyStruct           `fidl:"8" fidl_offset_v1:"8" fidl_offset_v1_no_ee:"8"`
+	T   TableWithEmptyStruct   `fidl:"16" fidl_offset_v1:"16" fidl_offset_v1_no_ee:"16"`
+	Xu  XUnionWithEmptyStruct  `fidl:"32" fidl_offset_v1:"32" fidl_offset_v1_no_ee:"32"`
+	Xu2 *XUnionWithEmptyStruct `fidl:"56" fidl_offset_v1:"56" fidl_offset_v1_no_ee:"56"`
+	U   UnionWithEmptyStruct   `fidl:"80" fidl_offset_v1:"80" fidl_offset_v1_no_ee:"80"`
+	U2  *UnionWithEmptyStruct  `fidl:"96" fidl_offset_v1:"104" fidl_offset_v1_no_ee:"104"`
+}
+
+var _mStructWithOptionals = _bindings.CreateLazyMarshaler(StructWithOptionals{})
+
+func (msg *StructWithOptionals) Marshaler() _bindings.Marshaler {
+	return _mStructWithOptionals
+}
+
 type EmptyStruct struct {
 	_ struct{} `fidl:"s,1,1" fidl_size_v1:"1" fidl_alignment_v1:"1" fidl_size_v1_no_ee:"1" fidl_alignment_v1_no_ee:"1"`
 }
@@ -67,109 +286,6 @@
 	return _mUint64Uint32Uint16Uint8
 }
 
-type UnionWithBoundStringStruct struct {
-	_ struct{}             `fidl:"s,24,8" fidl_size_v1:"24" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"24" fidl_alignment_v1_no_ee:"8"`
-	V UnionWithBoundString `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
-}
-
-var _mUnionWithBoundStringStruct = _bindings.CreateLazyMarshaler(UnionWithBoundStringStruct{})
-
-func (msg *UnionWithBoundStringStruct) Marshaler() _bindings.Marshaler {
-	return _mUnionWithBoundStringStruct
-}
-
-type SingleVariantUnionStruct struct {
-	_ struct{}           `fidl:"s,8,4" fidl_size_v1:"24" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"24" fidl_alignment_v1_no_ee:"8"`
-	U SingleVariantUnion `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
-}
-
-var _mSingleVariantUnionStruct = _bindings.CreateLazyMarshaler(SingleVariantUnionStruct{})
-
-func (msg *SingleVariantUnionStruct) Marshaler() _bindings.Marshaler {
-	return _mSingleVariantUnionStruct
-}
-
-type SandwichUnionSize8Alignment4 struct {
-	_      struct{}             `fidl:"s,16,4" fidl_size_v1:"40" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"40" fidl_alignment_v1_no_ee:"8"`
-	Before uint32               `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
-	Value  UnionSize8Alignment4 `fidl:"4" fidl_offset_v1:"8" fidl_offset_v1_no_ee:"8"`
-	After  uint32               `fidl:"12" fidl_offset_v1:"32" fidl_offset_v1_no_ee:"32"`
-}
-
-var _mSandwichUnionSize8Alignment4 = _bindings.CreateLazyMarshaler(SandwichUnionSize8Alignment4{})
-
-func (msg *SandwichUnionSize8Alignment4) Marshaler() _bindings.Marshaler {
-	return _mSandwichUnionSize8Alignment4
-}
-
-type SandwichUnionSize12Alignment4 struct {
-	_      struct{}              `fidl:"s,20,4" fidl_size_v1:"40" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"40" fidl_alignment_v1_no_ee:"8"`
-	Before uint32                `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
-	Value  UnionSize12Alignment4 `fidl:"4" fidl_offset_v1:"8" fidl_offset_v1_no_ee:"8"`
-	After  uint32                `fidl:"16" fidl_offset_v1:"32" fidl_offset_v1_no_ee:"32"`
-}
-
-var _mSandwichUnionSize12Alignment4 = _bindings.CreateLazyMarshaler(SandwichUnionSize12Alignment4{})
-
-func (msg *SandwichUnionSize12Alignment4) Marshaler() _bindings.Marshaler {
-	return _mSandwichUnionSize12Alignment4
-}
-
-type StructSize16Alignment8 struct {
-	_  struct{} `fidl:"s,16,8" fidl_size_v1:"16" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"16" fidl_alignment_v1_no_ee:"8"`
-	F1 uint64   `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
-	F2 uint64   `fidl:"8" fidl_offset_v1:"8" fidl_offset_v1_no_ee:"8"`
-}
-
-var _mStructSize16Alignment8 = _bindings.CreateLazyMarshaler(StructSize16Alignment8{})
-
-func (msg *StructSize16Alignment8) Marshaler() _bindings.Marshaler {
-	return _mStructSize16Alignment8
-}
-
-type SandwichUnionSize24Alignment8 struct {
-	_      struct{}              `fidl:"s,40,8" fidl_size_v1:"40" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"40" fidl_alignment_v1_no_ee:"8"`
-	Before uint32                `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
-	Value  UnionSize24Alignment8 `fidl:"8" fidl_offset_v1:"8" fidl_offset_v1_no_ee:"8"`
-	After  uint32                `fidl:"32" fidl_offset_v1:"32" fidl_offset_v1_no_ee:"32"`
-}
-
-var _mSandwichUnionSize24Alignment8 = _bindings.CreateLazyMarshaler(SandwichUnionSize24Alignment8{})
-
-func (msg *SandwichUnionSize24Alignment8) Marshaler() _bindings.Marshaler {
-	return _mSandwichUnionSize24Alignment8
-}
-
-type SandwichUnionSize36Alignment4 struct {
-	_      struct{}              `fidl:"s,44,4" fidl_size_v1:"40" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"40" fidl_alignment_v1_no_ee:"8"`
-	Before uint32                `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
-	Value  UnionSize36Alignment4 `fidl:"4" fidl_offset_v1:"8" fidl_offset_v1_no_ee:"8"`
-	After  uint32                `fidl:"40" fidl_offset_v1:"32" fidl_offset_v1_no_ee:"32"`
-}
-
-var _mSandwichUnionSize36Alignment4 = _bindings.CreateLazyMarshaler(SandwichUnionSize36Alignment4{})
-
-func (msg *SandwichUnionSize36Alignment4) Marshaler() _bindings.Marshaler {
-	return _mSandwichUnionSize36Alignment4
-}
-
-type StructWithOptionals struct {
-	_   struct{}               `fidl:"s,104,8" fidl_size_v1:"128" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"128" fidl_alignment_v1_no_ee:"8"`
-	S   EmptyStruct            `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
-	S2  *EmptyStruct           `fidl:"8" fidl_offset_v1:"8" fidl_offset_v1_no_ee:"8"`
-	T   TableWithEmptyStruct   `fidl:"16" fidl_offset_v1:"16" fidl_offset_v1_no_ee:"16"`
-	Xu  XUnionWithEmptyStruct  `fidl:"32" fidl_offset_v1:"32" fidl_offset_v1_no_ee:"32"`
-	Xu2 *XUnionWithEmptyStruct `fidl:"56" fidl_offset_v1:"56" fidl_offset_v1_no_ee:"56"`
-	U   UnionWithEmptyStruct   `fidl:"80" fidl_offset_v1:"80" fidl_offset_v1_no_ee:"80"`
-	U2  *UnionWithEmptyStruct  `fidl:"96" fidl_offset_v1:"104" fidl_offset_v1_no_ee:"104"`
-}
-
-var _mStructWithOptionals = _bindings.CreateLazyMarshaler(StructWithOptionals{})
-
-func (msg *StructWithOptionals) Marshaler() _bindings.Marshaler {
-	return _mStructWithOptionals
-}
-
 type ThreeByte struct {
 	_     struct{} `fidl:"s,3,1" fidl_size_v1:"3" fidl_alignment_v1:"1" fidl_size_v1_no_ee:"3" fidl_alignment_v1_no_ee:"1"`
 	Elem1 uint8    `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
@@ -265,97 +381,48 @@
 	return _mFiveByteInArray
 }
 
-type StructOfSimpleTable struct {
-	_     struct{}    `fidl:"s,16,8" fidl_size_v1:"16" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"16" fidl_alignment_v1_no_ee:"8"`
-	Table SimpleTable `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+type StructWithInt struct {
+	_ struct{} `fidl:"s,4,4" fidl_size_v1:"4" fidl_alignment_v1:"4" fidl_size_v1_no_ee:"4" fidl_alignment_v1_no_ee:"4"`
+	X int32    `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
 }
 
-var _mStructOfSimpleTable = _bindings.CreateLazyMarshaler(StructOfSimpleTable{})
+var _mStructWithInt = _bindings.CreateLazyMarshaler(StructWithInt{})
 
-func (msg *StructOfSimpleTable) Marshaler() _bindings.Marshaler {
-	return _mStructOfSimpleTable
+func (msg *StructWithInt) Marshaler() _bindings.Marshaler {
+	return _mStructWithInt
 }
 
-type SimpleTableThenUint64 struct {
-	_      struct{}    `fidl:"s,24,8" fidl_size_v1:"24" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"24" fidl_alignment_v1_no_ee:"8"`
-	Table  SimpleTable `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
-	Number uint64      `fidl:"16" fidl_offset_v1:"16" fidl_offset_v1_no_ee:"16"`
+type StructWithArrays struct {
+	_                 struct{}          `fidl:"s,120,8" fidl_size_v1:"120" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"120" fidl_alignment_v1_no_ee:"8"`
+	ArrInt            [2]int32          `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+	ArrString         [2]string         `fidl:"8," fidl_offset_v1:"8" fidl_offset_v1_no_ee:"8"`
+	ArrNullableString [2]*string        `fidl:"40," fidl_offset_v1:"40" fidl_offset_v1_no_ee:"40"`
+	ArrStruct         [2]StructWithInt  `fidl:"72" fidl_offset_v1:"72" fidl_offset_v1_no_ee:"72"`
+	ArrNullableStruct [2]*StructWithInt `fidl:"80" fidl_offset_v1:"80" fidl_offset_v1_no_ee:"80"`
+	ArrArrInt         [2][3]int32       `fidl:"96" fidl_offset_v1:"96" fidl_offset_v1_no_ee:"96"`
 }
 
-var _mSimpleTableThenUint64 = _bindings.CreateLazyMarshaler(SimpleTableThenUint64{})
+var _mStructWithArrays = _bindings.CreateLazyMarshaler(StructWithArrays{})
 
-func (msg *SimpleTableThenUint64) Marshaler() _bindings.Marshaler {
-	return _mSimpleTableThenUint64
+func (msg *StructWithArrays) Marshaler() _bindings.Marshaler {
+	return _mStructWithArrays
 }
 
-type StructOfTableWithStringAndVector struct {
-	_     struct{}                 `fidl:"s,16,8" fidl_size_v1:"16" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"16" fidl_alignment_v1_no_ee:"8"`
-	Table TableWithStringAndVector `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+type StructWithVectors struct {
+	_                 struct{}         `fidl:"s,112,8" fidl_size_v1:"112" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"112" fidl_alignment_v1_no_ee:"8"`
+	VecEmpty          []int32          `fidl:"0," fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+	VecInt            []int32          `fidl:"16," fidl_offset_v1:"16" fidl_offset_v1_no_ee:"16"`
+	VecString         []string         `fidl:"32,," fidl_offset_v1:"32" fidl_offset_v1_no_ee:"32"`
+	VecNullableString []*string        `fidl:"48,," fidl_offset_v1:"48" fidl_offset_v1_no_ee:"48"`
+	VecStruct         []StructWithInt  `fidl:"64," fidl_offset_v1:"64" fidl_offset_v1_no_ee:"64"`
+	VecNullableStruct []*StructWithInt `fidl:"80," fidl_offset_v1:"80" fidl_offset_v1_no_ee:"80"`
+	VecVecInt         [][]int32        `fidl:"96,," fidl_offset_v1:"96" fidl_offset_v1_no_ee:"96"`
 }
 
-var _mStructOfTableWithStringAndVector = _bindings.CreateLazyMarshaler(StructOfTableWithStringAndVector{})
+var _mStructWithVectors = _bindings.CreateLazyMarshaler(StructWithVectors{})
 
-func (msg *StructOfTableWithStringAndVector) Marshaler() _bindings.Marshaler {
-	return _mStructOfTableWithStringAndVector
-}
-
-type Int64Struct struct {
-	_ struct{} `fidl:"s,8,8" fidl_size_v1:"8" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"8" fidl_alignment_v1_no_ee:"8"`
-	X int64    `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
-}
-
-var _mInt64Struct = _bindings.CreateLazyMarshaler(Int64Struct{})
-
-func (msg *Int64Struct) Marshaler() _bindings.Marshaler {
-	return _mInt64Struct
-}
-
-type TestInlineXUnionInStruct struct {
-	_      struct{}     `fidl:"s,56,8" fidl_size_v1:"56" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"56" fidl_alignment_v1_no_ee:"8"`
-	Before string       `fidl:"0," fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
-	Xu     SampleXUnion `fidl:"16" fidl_offset_v1:"16" fidl_offset_v1_no_ee:"16"`
-	After  string       `fidl:"40," fidl_offset_v1:"40" fidl_offset_v1_no_ee:"40"`
-}
-
-var _mTestInlineXUnionInStruct = _bindings.CreateLazyMarshaler(TestInlineXUnionInStruct{})
-
-func (msg *TestInlineXUnionInStruct) Marshaler() _bindings.Marshaler {
-	return _mTestInlineXUnionInStruct
-}
-
-type TestOptionalXUnionInStruct struct {
-	_      struct{}      `fidl:"s,56,8" fidl_size_v1:"56" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"56" fidl_alignment_v1_no_ee:"8"`
-	Before string        `fidl:"0," fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
-	Xu     *SampleXUnion `fidl:"16" fidl_offset_v1:"16" fidl_offset_v1_no_ee:"16"`
-	After  string        `fidl:"40," fidl_offset_v1:"40" fidl_offset_v1_no_ee:"40"`
-}
-
-var _mTestOptionalXUnionInStruct = _bindings.CreateLazyMarshaler(TestOptionalXUnionInStruct{})
-
-func (msg *TestOptionalXUnionInStruct) Marshaler() _bindings.Marshaler {
-	return _mTestOptionalXUnionInStruct
-}
-
-type TestStrictXUnionInStruct struct {
-	_  struct{}           `fidl:"s,24,8" fidl_size_v1:"24" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"24" fidl_alignment_v1_no_ee:"8"`
-	Xu SampleStrictXUnion `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
-}
-
-var _mTestStrictXUnionInStruct = _bindings.CreateLazyMarshaler(TestStrictXUnionInStruct{})
-
-func (msg *TestStrictXUnionInStruct) Marshaler() _bindings.Marshaler {
-	return _mTestStrictXUnionInStruct
-}
-
-type TestFlexibleXUnionInStruct struct {
-	_  struct{}     `fidl:"s,24,8" fidl_size_v1:"24" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"24" fidl_alignment_v1_no_ee:"8"`
-	Xu SampleXUnion `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
-}
-
-var _mTestFlexibleXUnionInStruct = _bindings.CreateLazyMarshaler(TestFlexibleXUnionInStruct{})
-
-func (msg *TestFlexibleXUnionInStruct) Marshaler() _bindings.Marshaler {
-	return _mTestFlexibleXUnionInStruct
+func (msg *StructWithVectors) Marshaler() _bindings.Marshaler {
+	return _mStructWithVectors
 }
 
 type MyBool struct {
@@ -826,135 +893,162 @@
 	return _mArrayStruct
 }
 
-type StructWithInt struct {
-	_ struct{} `fidl:"s,4,4" fidl_size_v1:"4" fidl_alignment_v1:"4" fidl_size_v1_no_ee:"4" fidl_alignment_v1_no_ee:"4"`
-	X int32    `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+type TransformerEmptyStruct struct {
+	_ struct{} `fidl:"s,1,1" fidl_size_v1:"1" fidl_alignment_v1:"1" fidl_size_v1_no_ee:"1" fidl_alignment_v1_no_ee:"1"`
 }
 
-var _mStructWithInt = _bindings.CreateLazyMarshaler(StructWithInt{})
+var _mTransformerEmptyStruct = _bindings.CreateLazyMarshaler(TransformerEmptyStruct{})
 
-func (msg *StructWithInt) Marshaler() _bindings.Marshaler {
-	return _mStructWithInt
+func (msg *TransformerEmptyStruct) Marshaler() _bindings.Marshaler {
+	return _mTransformerEmptyStruct
 }
 
-type StructWithArrays struct {
-	_                 struct{}          `fidl:"s,120,8" fidl_size_v1:"120" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"120" fidl_alignment_v1_no_ee:"8"`
-	ArrInt            [2]int32          `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
-	ArrString         [2]string         `fidl:"8," fidl_offset_v1:"8" fidl_offset_v1_no_ee:"8"`
-	ArrNullableString [2]*string        `fidl:"40," fidl_offset_v1:"40" fidl_offset_v1_no_ee:"40"`
-	ArrStruct         [2]StructWithInt  `fidl:"72" fidl_offset_v1:"72" fidl_offset_v1_no_ee:"72"`
-	ArrNullableStruct [2]*StructWithInt `fidl:"80" fidl_offset_v1:"80" fidl_offset_v1_no_ee:"80"`
-	ArrArrInt         [2][3]int32       `fidl:"96" fidl_offset_v1:"96" fidl_offset_v1_no_ee:"96"`
+type EmptyStructUnionStruct struct {
+	_ struct{}         `fidl:"s,8,4" fidl_size_v1:"24" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"24" fidl_alignment_v1_no_ee:"8"`
+	U EmptyStructUnion `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
 }
 
-var _mStructWithArrays = _bindings.CreateLazyMarshaler(StructWithArrays{})
+var _mEmptyStructUnionStruct = _bindings.CreateLazyMarshaler(EmptyStructUnionStruct{})
 
-func (msg *StructWithArrays) Marshaler() _bindings.Marshaler {
-	return _mStructWithArrays
+func (msg *EmptyStructUnionStruct) Marshaler() _bindings.Marshaler {
+	return _mEmptyStructUnionStruct
 }
 
-type StructWithVectors struct {
-	_                 struct{}         `fidl:"s,112,8" fidl_size_v1:"112" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"112" fidl_alignment_v1_no_ee:"8"`
-	VecEmpty          []int32          `fidl:"0," fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
-	VecInt            []int32          `fidl:"16," fidl_offset_v1:"16" fidl_offset_v1_no_ee:"16"`
-	VecString         []string         `fidl:"32,," fidl_offset_v1:"32" fidl_offset_v1_no_ee:"32"`
-	VecNullableString []*string        `fidl:"48,," fidl_offset_v1:"48" fidl_offset_v1_no_ee:"48"`
-	VecStruct         []StructWithInt  `fidl:"64," fidl_offset_v1:"64" fidl_offset_v1_no_ee:"64"`
-	VecNullableStruct []*StructWithInt `fidl:"80," fidl_offset_v1:"80" fidl_offset_v1_no_ee:"80"`
-	VecVecInt         [][]int32        `fidl:"96,," fidl_offset_v1:"96" fidl_offset_v1_no_ee:"96"`
+type Size8Align8 struct {
+	_    struct{} `fidl:"s,8,8" fidl_size_v1:"8" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"8" fidl_alignment_v1_no_ee:"8"`
+	Data uint64   `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
 }
 
-var _mStructWithVectors = _bindings.CreateLazyMarshaler(StructWithVectors{})
+var _mSize8Align8 = _bindings.CreateLazyMarshaler(Size8Align8{})
 
-func (msg *StructWithVectors) Marshaler() _bindings.Marshaler {
-	return _mStructWithVectors
+func (msg *Size8Align8) Marshaler() _bindings.Marshaler {
+	return _mSize8Align8
 }
 
-type Length2StringWrapper struct {
-	_             struct{} `fidl:"s,16,8" fidl_size_v1:"16" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"16" fidl_alignment_v1_no_ee:"8"`
-	Length2String string   `fidl:"0,2" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+type NoCodingTablesStressor struct {
+	_  struct{}          `fidl:"s,208,8" fidl_size_v1:"160" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"160" fidl_alignment_v1_no_ee:"8"`
+	F1 uint64            `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+	F2 uint64            `fidl:"8" fidl_offset_v1:"8" fidl_offset_v1_no_ee:"8"`
+	U1 UnionSize36Align4 `fidl:"16" fidl_offset_v1:"16" fidl_offset_v1_no_ee:"16"`
+	F3 uint64            `fidl:"56" fidl_offset_v1:"40" fidl_offset_v1_no_ee:"40"`
+	F4 uint64            `fidl:"64" fidl_offset_v1:"48" fidl_offset_v1_no_ee:"48"`
+	U2 UnionSize36Align4 `fidl:"72" fidl_offset_v1:"56" fidl_offset_v1_no_ee:"56"`
+	F5 uint64            `fidl:"112" fidl_offset_v1:"80" fidl_offset_v1_no_ee:"80"`
+	F6 uint64            `fidl:"120" fidl_offset_v1:"88" fidl_offset_v1_no_ee:"88"`
+	U3 UnionSize36Align4 `fidl:"128" fidl_offset_v1:"96" fidl_offset_v1_no_ee:"96"`
+	F7 uint64            `fidl:"168" fidl_offset_v1:"120" fidl_offset_v1_no_ee:"120"`
+	P1 *Size8Align8      `fidl:"176" fidl_offset_v1:"128" fidl_offset_v1_no_ee:"128"`
+	F8 uint64            `fidl:"184" fidl_offset_v1:"136" fidl_offset_v1_no_ee:"136"`
+	P2 *Size8Align8      `fidl:"192" fidl_offset_v1:"144" fidl_offset_v1_no_ee:"144"`
+	F9 uint64            `fidl:"200" fidl_offset_v1:"152" fidl_offset_v1_no_ee:"152"`
 }
 
-var _mLength2StringWrapper = _bindings.CreateLazyMarshaler(Length2StringWrapper{})
+var _mNoCodingTablesStressor = _bindings.CreateLazyMarshaler(NoCodingTablesStressor{})
 
-func (msg *Length2StringWrapper) Marshaler() _bindings.Marshaler {
-	return _mLength2StringWrapper
+func (msg *NoCodingTablesStressor) Marshaler() _bindings.Marshaler {
+	return _mNoCodingTablesStressor
 }
 
-type StringWrapper struct {
-	_   struct{} `fidl:"s,16,8" fidl_size_v1:"16" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"16" fidl_alignment_v1_no_ee:"8"`
-	Str string   `fidl:"0," fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+type OutOfLineSandwich1 struct {
+	_      struct{}    `fidl:"s,48,8" fidl_size_v1:"48" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"48" fidl_alignment_v1_no_ee:"8"`
+	Before string      `fidl:"0," fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+	V      []Sandwich1 `fidl:"16,1" fidl_offset_v1:"16" fidl_offset_v1_no_ee:"16"`
+	After  string      `fidl:"32," fidl_offset_v1:"32" fidl_offset_v1_no_ee:"32"`
 }
 
-var _mStringWrapper = _bindings.CreateLazyMarshaler(StringWrapper{})
+var _mOutOfLineSandwich1 = _bindings.CreateLazyMarshaler(OutOfLineSandwich1{})
 
-func (msg *StringWrapper) Marshaler() _bindings.Marshaler {
-	return _mStringWrapper
+func (msg *OutOfLineSandwich1) Marshaler() _bindings.Marshaler {
+	return _mOutOfLineSandwich1
 }
 
-type TestXUnionInTable struct {
-	_     struct{}      `fidl:"s,16,8" fidl_size_v1:"16" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"16" fidl_alignment_v1_no_ee:"8"`
-	Value XUnionInTable `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+type OutOfLineSandwich1WithOptUnion struct {
+	_      struct{}                `fidl:"s,48,8" fidl_size_v1:"48" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"48" fidl_alignment_v1_no_ee:"8"`
+	Before string                  `fidl:"0," fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+	V      []Sandwich1WithOptUnion `fidl:"16,1" fidl_offset_v1:"16" fidl_offset_v1_no_ee:"16"`
+	After  string                  `fidl:"32," fidl_offset_v1:"32" fidl_offset_v1_no_ee:"32"`
 }
 
-var _mTestXUnionInTable = _bindings.CreateLazyMarshaler(TestXUnionInTable{})
+var _mOutOfLineSandwich1WithOptUnion = _bindings.CreateLazyMarshaler(OutOfLineSandwich1WithOptUnion{})
 
-func (msg *TestXUnionInTable) Marshaler() _bindings.Marshaler {
-	return _mTestXUnionInTable
+func (msg *OutOfLineSandwich1WithOptUnion) Marshaler() _bindings.Marshaler {
+	return _mOutOfLineSandwich1WithOptUnion
 }
 
-type InterfaceConfig struct {
-	_               struct{}        `fidl:"s,48,8" fidl_size_v1:"40" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"40" fidl_alignment_v1_no_ee:"8"`
-	Name            string          `fidl:"0," fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
-	IpAddressConfig IpAddressConfig `fidl:"16" fidl_offset_v1:"16" fidl_offset_v1_no_ee:"16"`
+type Regression4 struct {
+	_  struct{}          `fidl:"s,32,8" fidl_size_v1:"32" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"32" fidl_alignment_v1_no_ee:"8"`
+	F1 uint8             `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+	F2 uint32            `fidl:"4" fidl_offset_v1:"4" fidl_offset_v1_no_ee:"4"`
+	S1 StructSize3Align1 `fidl:"8" fidl_offset_v1:"8" fidl_offset_v1_no_ee:"8"`
+	F3 uint8             `fidl:"11" fidl_offset_v1:"11" fidl_offset_v1_no_ee:"11"`
+	F4 uint16            `fidl:"12" fidl_offset_v1:"12" fidl_offset_v1_no_ee:"12"`
+	F5 uint64            `fidl:"16" fidl_offset_v1:"16" fidl_offset_v1_no_ee:"16"`
+	F6 uint8             `fidl:"24" fidl_offset_v1:"24" fidl_offset_v1_no_ee:"24"`
 }
 
-var _mInterfaceConfig = _bindings.CreateLazyMarshaler(InterfaceConfig{})
+var _mRegression4 = _bindings.CreateLazyMarshaler(Regression4{})
 
-func (msg *InterfaceConfig) Marshaler() _bindings.Marshaler {
-	return _mInterfaceConfig
+func (msg *Regression4) Marshaler() _bindings.Marshaler {
+	return _mRegression4
 }
 
-type TestAddEthernetDeviceRequest struct {
-	_                   struct{}        `fidl:"s,72,8" fidl_size_v1:"64" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"64" fidl_alignment_v1_no_ee:"8"`
-	TopologicalPath     string          `fidl:"0," fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
-	Config              InterfaceConfig `fidl:"16" fidl_offset_v1:"16" fidl_offset_v1_no_ee:"16"`
-	ThisShouldBeAHandle uint32          `fidl:"64" fidl_offset_v1:"56" fidl_offset_v1_no_ee:"56"`
+type Sandwich4Align8 struct {
+	_                     struct{}  `fidl:"s,56,8" fidl_size_v1:"48" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"48" fidl_alignment_v1_no_ee:"8"`
+	Sandwich4             Sandwich4 `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+	Alignment8Enforcement uint64    `fidl:"48" fidl_offset_v1:"40" fidl_offset_v1_no_ee:"40"`
 }
 
-var _mTestAddEthernetDeviceRequest = _bindings.CreateLazyMarshaler(TestAddEthernetDeviceRequest{})
+var _mSandwich4Align8 = _bindings.CreateLazyMarshaler(Sandwich4Align8{})
 
-func (msg *TestAddEthernetDeviceRequest) Marshaler() _bindings.Marshaler {
-	return _mTestAddEthernetDeviceRequest
+func (msg *Sandwich4Align8) Marshaler() _bindings.Marshaler {
+	return _mSandwich4Align8
 }
 
-type NodeAttributes struct {
-	_                struct{} `fidl:"s,56,8" fidl_size_v1:"56" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"56" fidl_alignment_v1_no_ee:"8"`
-	Mode             uint32   `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
-	Id               uint64   `fidl:"8" fidl_offset_v1:"8" fidl_offset_v1_no_ee:"8"`
-	ContentSize      uint64   `fidl:"16" fidl_offset_v1:"16" fidl_offset_v1_no_ee:"16"`
-	StorageSize      uint64   `fidl:"24" fidl_offset_v1:"24" fidl_offset_v1_no_ee:"24"`
-	LinkCount        uint64   `fidl:"32" fidl_offset_v1:"32" fidl_offset_v1_no_ee:"32"`
-	CreationTime     uint64   `fidl:"40" fidl_offset_v1:"40" fidl_offset_v1_no_ee:"40"`
-	ModificationTime uint64   `fidl:"48" fidl_offset_v1:"48" fidl_offset_v1_no_ee:"48"`
+type Sandwich4Align8WithPointer struct {
+	_                     struct{}     `fidl:"s,56,8" fidl_size_v1:"48" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"48" fidl_alignment_v1_no_ee:"8"`
+	Sandwich4             Sandwich4    `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+	Alignment8Enforcement *Size8Align8 `fidl:"48" fidl_offset_v1:"40" fidl_offset_v1_no_ee:"40"`
 }
 
-var _mNodeAttributes = _bindings.CreateLazyMarshaler(NodeAttributes{})
+var _mSandwich4Align8WithPointer = _bindings.CreateLazyMarshaler(Sandwich4Align8WithPointer{})
 
-func (msg *NodeAttributes) Marshaler() _bindings.Marshaler {
-	return _mNodeAttributes
+func (msg *Sandwich4Align8WithPointer) Marshaler() _bindings.Marshaler {
+	return _mSandwich4Align8WithPointer
 }
 
-type FileGetAttrResponse struct {
-	_          struct{}       `fidl:"s,64,8" fidl_size_v1:"64" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"64" fidl_alignment_v1_no_ee:"8"`
-	S          int32          `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
-	Attributes NodeAttributes `fidl:"8" fidl_offset_v1:"8" fidl_offset_v1_no_ee:"8"`
+type Sandwich9 struct {
+	_        struct{}                 `fidl:"s,40,8" fidl_size_v1:"40" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"40" fidl_alignment_v1_no_ee:"8"`
+	Before   uint16                   `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+	TheUnion UnionWithVectorOfVectors `fidl:"8" fidl_offset_v1:"8" fidl_offset_v1_no_ee:"8"`
+	After    uint16                   `fidl:"32" fidl_offset_v1:"32" fidl_offset_v1_no_ee:"32"`
 }
 
-var _mFileGetAttrResponse = _bindings.CreateLazyMarshaler(FileGetAttrResponse{})
+var _mSandwich9 = _bindings.CreateLazyMarshaler(Sandwich9{})
 
-func (msg *FileGetAttrResponse) Marshaler() _bindings.Marshaler {
-	return _mFileGetAttrResponse
+func (msg *Sandwich9) Marshaler() _bindings.Marshaler {
+	return _mSandwich9
+}
+
+type SimpleTableArrayStruct struct {
+	_        struct{}                  `fidl:"s,32,8" fidl_size_v1:"32" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"32" fidl_alignment_v1_no_ee:"8"`
+	TheArray [2]TransformerSimpleTable `fidl:"0" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+}
+
+var _mSimpleTableArrayStruct = _bindings.CreateLazyMarshaler(SimpleTableArrayStruct{})
+
+func (msg *SimpleTableArrayStruct) Marshaler() _bindings.Marshaler {
+	return _mSimpleTableArrayStruct
+}
+
+type StringUnionVector struct {
+	_         struct{}       `fidl:"s,16,8" fidl_size_v1:"16" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"16" fidl_alignment_v1_no_ee:"8"`
+	TheVector []*StringUnion `fidl:"0,3" fidl_offset_v1:"0" fidl_offset_v1_no_ee:"0"`
+}
+
+var _mStringUnionVector = _bindings.CreateLazyMarshaler(StringUnionVector{})
+
+func (msg *StringUnionVector) Marshaler() _bindings.Marshaler {
+	return _mStringUnionVector
 }
 
 type I_unionWithBoundStringTag uint32
@@ -1011,294 +1105,43 @@
 	return _u
 }
 
-type I_unionSize8Alignment4Tag uint32
+type I_ipAddressConfigTag uint32
 
 const (
-	_ I_unionSize8Alignment4Tag = iota
-	UnionSize8Alignment4Unused1
-	UnionSize8Alignment4Unused2
-	UnionSize8Alignment4Variant
+	_ I_ipAddressConfigTag = iota
+	IpAddressConfigPaddingSize24Align4
+	IpAddressConfigDhcp
 )
 
-type UnionSize8Alignment4 struct {
-	I_unionSize8Alignment4Tag `fidl:"u,8,4" fidl_size_v1:"24" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"24" fidl_alignment_v1_no_ee:"8"`
-	Unused1                   uint8  `fidl:"1"`
-	Unused2                   uint8  `fidl:"2"`
-	Variant                   uint32 `fidl:"3"`
+type IpAddressConfig struct {
+	I_ipAddressConfigTag `fidl:"u,28,4" fidl_size_v1:"24" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"24" fidl_alignment_v1_no_ee:"8"`
+	PaddingSize24Align4  [6]uint32 `fidl:"1"`
+	Dhcp                 bool      `fidl:"2"`
 }
 
-func (u *UnionSize8Alignment4) Which() I_unionSize8Alignment4Tag {
-	return u.I_unionSize8Alignment4Tag
+func (u *IpAddressConfig) Which() I_ipAddressConfigTag {
+	return u.I_ipAddressConfigTag
 }
 
-func (u *UnionSize8Alignment4) SetUnused1(unused1 uint8) {
-	u.I_unionSize8Alignment4Tag = UnionSize8Alignment4Unused1
-	u.Unused1 = unused1
+func (u *IpAddressConfig) SetPaddingSize24Align4(paddingSize24Align4 [6]uint32) {
+	u.I_ipAddressConfigTag = IpAddressConfigPaddingSize24Align4
+	u.PaddingSize24Align4 = paddingSize24Align4
 }
 
-func UnionSize8Alignment4WithUnused1(unused1 uint8) UnionSize8Alignment4 {
-	var _u UnionSize8Alignment4
-	_u.SetUnused1(unused1)
+func IpAddressConfigWithPaddingSize24Align4(paddingSize24Align4 [6]uint32) IpAddressConfig {
+	var _u IpAddressConfig
+	_u.SetPaddingSize24Align4(paddingSize24Align4)
 	return _u
 }
 
-func (u *UnionSize8Alignment4) SetUnused2(unused2 uint8) {
-	u.I_unionSize8Alignment4Tag = UnionSize8Alignment4Unused2
-	u.Unused2 = unused2
+func (u *IpAddressConfig) SetDhcp(dhcp bool) {
+	u.I_ipAddressConfigTag = IpAddressConfigDhcp
+	u.Dhcp = dhcp
 }
 
-func UnionSize8Alignment4WithUnused2(unused2 uint8) UnionSize8Alignment4 {
-	var _u UnionSize8Alignment4
-	_u.SetUnused2(unused2)
-	return _u
-}
-
-func (u *UnionSize8Alignment4) SetVariant(variant uint32) {
-	u.I_unionSize8Alignment4Tag = UnionSize8Alignment4Variant
-	u.Variant = variant
-}
-
-func UnionSize8Alignment4WithVariant(variant uint32) UnionSize8Alignment4 {
-	var _u UnionSize8Alignment4
-	_u.SetVariant(variant)
-	return _u
-}
-
-type I_unionSize12Alignment4Tag uint32
-
-const (
-	_ I_unionSize12Alignment4Tag = iota
-	UnionSize12Alignment4Unused1
-	UnionSize12Alignment4Unused2
-	UnionSize12Alignment4Unused3
-	UnionSize12Alignment4Variant
-)
-
-type UnionSize12Alignment4 struct {
-	I_unionSize12Alignment4Tag `fidl:"u,12,4" fidl_size_v1:"24" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"24" fidl_alignment_v1_no_ee:"8"`
-	Unused1                    uint8    `fidl:"1"`
-	Unused2                    uint8    `fidl:"2"`
-	Unused3                    uint8    `fidl:"3"`
-	Variant                    [6]uint8 `fidl:"4"`
-}
-
-func (u *UnionSize12Alignment4) Which() I_unionSize12Alignment4Tag {
-	return u.I_unionSize12Alignment4Tag
-}
-
-func (u *UnionSize12Alignment4) SetUnused1(unused1 uint8) {
-	u.I_unionSize12Alignment4Tag = UnionSize12Alignment4Unused1
-	u.Unused1 = unused1
-}
-
-func UnionSize12Alignment4WithUnused1(unused1 uint8) UnionSize12Alignment4 {
-	var _u UnionSize12Alignment4
-	_u.SetUnused1(unused1)
-	return _u
-}
-
-func (u *UnionSize12Alignment4) SetUnused2(unused2 uint8) {
-	u.I_unionSize12Alignment4Tag = UnionSize12Alignment4Unused2
-	u.Unused2 = unused2
-}
-
-func UnionSize12Alignment4WithUnused2(unused2 uint8) UnionSize12Alignment4 {
-	var _u UnionSize12Alignment4
-	_u.SetUnused2(unused2)
-	return _u
-}
-
-func (u *UnionSize12Alignment4) SetUnused3(unused3 uint8) {
-	u.I_unionSize12Alignment4Tag = UnionSize12Alignment4Unused3
-	u.Unused3 = unused3
-}
-
-func UnionSize12Alignment4WithUnused3(unused3 uint8) UnionSize12Alignment4 {
-	var _u UnionSize12Alignment4
-	_u.SetUnused3(unused3)
-	return _u
-}
-
-func (u *UnionSize12Alignment4) SetVariant(variant [6]uint8) {
-	u.I_unionSize12Alignment4Tag = UnionSize12Alignment4Variant
-	u.Variant = variant
-}
-
-func UnionSize12Alignment4WithVariant(variant [6]uint8) UnionSize12Alignment4 {
-	var _u UnionSize12Alignment4
-	_u.SetVariant(variant)
-	return _u
-}
-
-type I_unionSize24Alignment8Tag uint32
-
-const (
-	_ I_unionSize24Alignment8Tag = iota
-	UnionSize24Alignment8Unused1
-	UnionSize24Alignment8Unused2
-	UnionSize24Alignment8Unused3
-	UnionSize24Alignment8Variant
-)
-
-type UnionSize24Alignment8 struct {
-	I_unionSize24Alignment8Tag `fidl:"u,24,8" fidl_size_v1:"24" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"24" fidl_alignment_v1_no_ee:"8"`
-	Unused1                    uint8                  `fidl:"1"`
-	Unused2                    uint8                  `fidl:"2"`
-	Unused3                    uint8                  `fidl:"3"`
-	Variant                    StructSize16Alignment8 `fidl:"4"`
-}
-
-func (u *UnionSize24Alignment8) Which() I_unionSize24Alignment8Tag {
-	return u.I_unionSize24Alignment8Tag
-}
-
-func (u *UnionSize24Alignment8) SetUnused1(unused1 uint8) {
-	u.I_unionSize24Alignment8Tag = UnionSize24Alignment8Unused1
-	u.Unused1 = unused1
-}
-
-func UnionSize24Alignment8WithUnused1(unused1 uint8) UnionSize24Alignment8 {
-	var _u UnionSize24Alignment8
-	_u.SetUnused1(unused1)
-	return _u
-}
-
-func (u *UnionSize24Alignment8) SetUnused2(unused2 uint8) {
-	u.I_unionSize24Alignment8Tag = UnionSize24Alignment8Unused2
-	u.Unused2 = unused2
-}
-
-func UnionSize24Alignment8WithUnused2(unused2 uint8) UnionSize24Alignment8 {
-	var _u UnionSize24Alignment8
-	_u.SetUnused2(unused2)
-	return _u
-}
-
-func (u *UnionSize24Alignment8) SetUnused3(unused3 uint8) {
-	u.I_unionSize24Alignment8Tag = UnionSize24Alignment8Unused3
-	u.Unused3 = unused3
-}
-
-func UnionSize24Alignment8WithUnused3(unused3 uint8) UnionSize24Alignment8 {
-	var _u UnionSize24Alignment8
-	_u.SetUnused3(unused3)
-	return _u
-}
-
-func (u *UnionSize24Alignment8) SetVariant(variant StructSize16Alignment8) {
-	u.I_unionSize24Alignment8Tag = UnionSize24Alignment8Variant
-	u.Variant = variant
-}
-
-func UnionSize24Alignment8WithVariant(variant StructSize16Alignment8) UnionSize24Alignment8 {
-	var _u UnionSize24Alignment8
-	_u.SetVariant(variant)
-	return _u
-}
-
-type I_unionSize36Alignment4Tag uint32
-
-const (
-	_ I_unionSize36Alignment4Tag = iota
-	UnionSize36Alignment4Unused1
-	UnionSize36Alignment4Unused2
-	UnionSize36Alignment4Unused3
-	UnionSize36Alignment4Variant
-)
-
-type UnionSize36Alignment4 struct {
-	I_unionSize36Alignment4Tag `fidl:"u,36,4" fidl_size_v1:"24" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"24" fidl_alignment_v1_no_ee:"8"`
-	Unused1                    uint8     `fidl:"1"`
-	Unused2                    uint8     `fidl:"2"`
-	Unused3                    uint8     `fidl:"3"`
-	Variant                    [32]uint8 `fidl:"4"`
-}
-
-func (u *UnionSize36Alignment4) Which() I_unionSize36Alignment4Tag {
-	return u.I_unionSize36Alignment4Tag
-}
-
-func (u *UnionSize36Alignment4) SetUnused1(unused1 uint8) {
-	u.I_unionSize36Alignment4Tag = UnionSize36Alignment4Unused1
-	u.Unused1 = unused1
-}
-
-func UnionSize36Alignment4WithUnused1(unused1 uint8) UnionSize36Alignment4 {
-	var _u UnionSize36Alignment4
-	_u.SetUnused1(unused1)
-	return _u
-}
-
-func (u *UnionSize36Alignment4) SetUnused2(unused2 uint8) {
-	u.I_unionSize36Alignment4Tag = UnionSize36Alignment4Unused2
-	u.Unused2 = unused2
-}
-
-func UnionSize36Alignment4WithUnused2(unused2 uint8) UnionSize36Alignment4 {
-	var _u UnionSize36Alignment4
-	_u.SetUnused2(unused2)
-	return _u
-}
-
-func (u *UnionSize36Alignment4) SetUnused3(unused3 uint8) {
-	u.I_unionSize36Alignment4Tag = UnionSize36Alignment4Unused3
-	u.Unused3 = unused3
-}
-
-func UnionSize36Alignment4WithUnused3(unused3 uint8) UnionSize36Alignment4 {
-	var _u UnionSize36Alignment4
-	_u.SetUnused3(unused3)
-	return _u
-}
-
-func (u *UnionSize36Alignment4) SetVariant(variant [32]uint8) {
-	u.I_unionSize36Alignment4Tag = UnionSize36Alignment4Variant
-	u.Variant = variant
-}
-
-func UnionSize36Alignment4WithVariant(variant [32]uint8) UnionSize36Alignment4 {
-	var _u UnionSize36Alignment4
-	_u.SetVariant(variant)
-	return _u
-}
-
-type I_unionWithEmptyStructTag uint32
-
-const (
-	_ I_unionWithEmptyStructTag = iota
-	UnionWithEmptyStructS
-	UnionWithEmptyStructForceAlignmentOf8
-)
-
-type UnionWithEmptyStruct struct {
-	I_unionWithEmptyStructTag `fidl:"u,16,8" fidl_size_v1:"24" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"24" fidl_alignment_v1_no_ee:"8"`
-	S                         EmptyStruct `fidl:"1"`
-	ForceAlignmentOf8         uint64      `fidl:"2"`
-}
-
-func (u *UnionWithEmptyStruct) Which() I_unionWithEmptyStructTag {
-	return u.I_unionWithEmptyStructTag
-}
-
-func (u *UnionWithEmptyStruct) SetS(s EmptyStruct) {
-	u.I_unionWithEmptyStructTag = UnionWithEmptyStructS
-	u.S = s
-}
-
-func UnionWithEmptyStructWithS(s EmptyStruct) UnionWithEmptyStruct {
-	var _u UnionWithEmptyStruct
-	_u.SetS(s)
-	return _u
-}
-
-func (u *UnionWithEmptyStruct) SetForceAlignmentOf8(forceAlignmentOf8 uint64) {
-	u.I_unionWithEmptyStructTag = UnionWithEmptyStructForceAlignmentOf8
-	u.ForceAlignmentOf8 = forceAlignmentOf8
-}
-
-func UnionWithEmptyStructWithForceAlignmentOf8(forceAlignmentOf8 uint64) UnionWithEmptyStruct {
-	var _u UnionWithEmptyStruct
-	_u.SetForceAlignmentOf8(forceAlignmentOf8)
+func IpAddressConfigWithDhcp(dhcp bool) IpAddressConfig {
+	var _u IpAddressConfig
+	_u.SetDhcp(dhcp)
 	return _u
 }
 
@@ -1368,6 +1211,46 @@
 	return _u
 }
 
+type I_unionWithEmptyStructTag uint32
+
+const (
+	_ I_unionWithEmptyStructTag = iota
+	UnionWithEmptyStructS
+	UnionWithEmptyStructForceAlignmentOf8
+)
+
+type UnionWithEmptyStruct struct {
+	I_unionWithEmptyStructTag `fidl:"u,16,8" fidl_size_v1:"24" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"24" fidl_alignment_v1_no_ee:"8"`
+	S                         EmptyStruct `fidl:"1"`
+	ForceAlignmentOf8         uint64      `fidl:"2"`
+}
+
+func (u *UnionWithEmptyStruct) Which() I_unionWithEmptyStructTag {
+	return u.I_unionWithEmptyStructTag
+}
+
+func (u *UnionWithEmptyStruct) SetS(s EmptyStruct) {
+	u.I_unionWithEmptyStructTag = UnionWithEmptyStructS
+	u.S = s
+}
+
+func UnionWithEmptyStructWithS(s EmptyStruct) UnionWithEmptyStruct {
+	var _u UnionWithEmptyStruct
+	_u.SetS(s)
+	return _u
+}
+
+func (u *UnionWithEmptyStruct) SetForceAlignmentOf8(forceAlignmentOf8 uint64) {
+	u.I_unionWithEmptyStructTag = UnionWithEmptyStructForceAlignmentOf8
+	u.ForceAlignmentOf8 = forceAlignmentOf8
+}
+
+func UnionWithEmptyStructWithForceAlignmentOf8(forceAlignmentOf8 uint64) UnionWithEmptyStruct {
+	var _u UnionWithEmptyStruct
+	_u.SetForceAlignmentOf8(forceAlignmentOf8)
+	return _u
+}
+
 type I_unionSize8Align4Tag uint32
 
 const (
@@ -1835,12 +1718,14 @@
 	_ I_stringUnionTag = iota
 	StringUnionUnused
 	StringUnionS
+	StringUnionU8
 )
 
 type StringUnion struct {
 	I_stringUnionTag `fidl:"u,24,8" fidl_size_v1:"24" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"24" fidl_alignment_v1_no_ee:"8"`
 	Unused           uint8  `fidl:"1"`
 	S                string `fidl:"2,"`
+	U8               uint8  `fidl:"3"`
 }
 
 func (u *StringUnion) Which() I_stringUnionTag {
@@ -1869,80 +1754,81 @@
 	return _u
 }
 
-type I_ipAddressConfigTag uint32
-
-const (
-	_ I_ipAddressConfigTag = iota
-	IpAddressConfigPaddingSize24Align4
-	IpAddressConfigDhcp
-)
-
-type IpAddressConfig struct {
-	I_ipAddressConfigTag `fidl:"u,28,4" fidl_size_v1:"24" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"24" fidl_alignment_v1_no_ee:"8"`
-	PaddingSize24Align4  [6]uint32 `fidl:"1"`
-	Dhcp                 bool      `fidl:"2"`
+func (u *StringUnion) SetU8(u8 uint8) {
+	u.I_stringUnionTag = StringUnionU8
+	u.U8 = u8
 }
 
-func (u *IpAddressConfig) Which() I_ipAddressConfigTag {
-	return u.I_ipAddressConfigTag
-}
-
-func (u *IpAddressConfig) SetPaddingSize24Align4(paddingSize24Align4 [6]uint32) {
-	u.I_ipAddressConfigTag = IpAddressConfigPaddingSize24Align4
-	u.PaddingSize24Align4 = paddingSize24Align4
-}
-
-func IpAddressConfigWithPaddingSize24Align4(paddingSize24Align4 [6]uint32) IpAddressConfig {
-	var _u IpAddressConfig
-	_u.SetPaddingSize24Align4(paddingSize24Align4)
+func StringUnionWithU8(u8 uint8) StringUnion {
+	var _u StringUnion
+	_u.SetU8(u8)
 	return _u
 }
 
-func (u *IpAddressConfig) SetDhcp(dhcp bool) {
-	u.I_ipAddressConfigTag = IpAddressConfigDhcp
-	u.Dhcp = dhcp
+type I_emptyStructUnionTag uint32
+
+const (
+	_ I_emptyStructUnionTag = iota
+	EmptyStructUnionUnused
+	EmptyStructUnionEs
+)
+
+type EmptyStructUnion struct {
+	I_emptyStructUnionTag `fidl:"u,8,4" fidl_size_v1:"24" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"24" fidl_alignment_v1_no_ee:"8"`
+	Unused                uint8                  `fidl:"1"`
+	Es                    TransformerEmptyStruct `fidl:"2"`
 }
 
-func IpAddressConfigWithDhcp(dhcp bool) IpAddressConfig {
-	var _u IpAddressConfig
-	_u.SetDhcp(dhcp)
+func (u *EmptyStructUnion) Which() I_emptyStructUnionTag {
+	return u.I_emptyStructUnionTag
+}
+
+func (u *EmptyStructUnion) SetUnused(unused uint8) {
+	u.I_emptyStructUnionTag = EmptyStructUnionUnused
+	u.Unused = unused
+}
+
+func EmptyStructUnionWithUnused(unused uint8) EmptyStructUnion {
+	var _u EmptyStructUnion
+	_u.SetUnused(unused)
 	return _u
 }
 
-type I_xUnionWithEmptyStructTag uint32
+func (u *EmptyStructUnion) SetEs(es TransformerEmptyStruct) {
+	u.I_emptyStructUnionTag = EmptyStructUnionEs
+	u.Es = es
+}
+
+func EmptyStructUnionWithEs(es TransformerEmptyStruct) EmptyStructUnion {
+	var _u EmptyStructUnion
+	_u.SetEs(es)
+	return _u
+}
+
+type I_unionWithVectorOfVectorsTag uint32
 
 const (
-	XUnionWithEmptyStruct_unknownData = 0          // 0x00000000
-	XUnionWithEmptyStructS            = 1956241662 // 0x7499e0fe
+	_ I_unionWithVectorOfVectorsTag = iota
+	UnionWithVectorOfVectorsV
 )
 
-type XUnionWithEmptyStruct struct {
-	I_xUnionWithEmptyStructTag `fidl:"x,24,8" fidl_size_v1:"24" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"24" fidl_alignment_v1_no_ee:"8"`
-	I_unknownData              []byte
-	S                          EmptyStruct `fidl:"1956241662"`
+type UnionWithVectorOfVectors struct {
+	I_unionWithVectorOfVectorsTag `fidl:"u,24,8" fidl_size_v1:"24" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"24" fidl_alignment_v1_no_ee:"8"`
+	V                             [][]*StructSize3Align1 `fidl:"1,,"`
 }
 
-func (_m *XUnionWithEmptyStruct) Which() I_xUnionWithEmptyStructTag {
-	switch _m.I_xUnionWithEmptyStructTag {
-	case 1956241662:
-		return XUnionWithEmptyStructS
-	default:
-		return XUnionWithEmptyStruct_unknownData
-	}
+func (u *UnionWithVectorOfVectors) Which() I_unionWithVectorOfVectorsTag {
+	return u.I_unionWithVectorOfVectorsTag
 }
 
-func (_m *XUnionWithEmptyStruct) Ordinal() uint32 {
-	return uint32(_m.I_xUnionWithEmptyStructTag)
+func (u *UnionWithVectorOfVectors) SetV(v [][]*StructSize3Align1) {
+	u.I_unionWithVectorOfVectorsTag = UnionWithVectorOfVectorsV
+	u.V = v
 }
 
-func (_m *XUnionWithEmptyStruct) SetS(s EmptyStruct) {
-	_m.I_xUnionWithEmptyStructTag = XUnionWithEmptyStructS
-	_m.S = s
-}
-
-func XUnionWithEmptyStructWithS(s EmptyStruct) XUnionWithEmptyStruct {
-	var _u XUnionWithEmptyStruct
-	_u.SetS(s)
+func UnionWithVectorOfVectorsWithV(v [][]*StructSize3Align1) UnionWithVectorOfVectors {
+	var _u UnionWithVectorOfVectors
+	_u.SetV(v)
 	return _u
 }
 
@@ -2069,6 +1955,43 @@
 	return _u
 }
 
+type I_xUnionWithEmptyStructTag uint32
+
+const (
+	XUnionWithEmptyStruct_unknownData = 0          // 0x00000000
+	XUnionWithEmptyStructS            = 1956241662 // 0x7499e0fe
+)
+
+type XUnionWithEmptyStruct struct {
+	I_xUnionWithEmptyStructTag `fidl:"x,24,8" fidl_size_v1:"24" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"24" fidl_alignment_v1_no_ee:"8"`
+	I_unknownData              []byte
+	S                          EmptyStruct `fidl:"1956241662"`
+}
+
+func (_m *XUnionWithEmptyStruct) Which() I_xUnionWithEmptyStructTag {
+	switch _m.I_xUnionWithEmptyStructTag {
+	case 1956241662:
+		return XUnionWithEmptyStructS
+	default:
+		return XUnionWithEmptyStruct_unknownData
+	}
+}
+
+func (_m *XUnionWithEmptyStruct) Ordinal() uint32 {
+	return uint32(_m.I_xUnionWithEmptyStructTag)
+}
+
+func (_m *XUnionWithEmptyStruct) SetS(s EmptyStruct) {
+	_m.I_xUnionWithEmptyStructTag = XUnionWithEmptyStructS
+	_m.S = s
+}
+
+func XUnionWithEmptyStructWithS(s EmptyStruct) XUnionWithEmptyStruct {
+	var _u XUnionWithEmptyStruct
+	_u.SetS(s)
+	return _u
+}
+
 type I_xUnionWithStructTag uint32
 
 const (
@@ -2195,34 +2118,86 @@
 	return _u
 }
 
-type TableWithEmptyStruct struct {
-	_        struct{}    `fidl:"t,16,8" fidl_size_v1:"16" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"16" fidl_alignment_v1_no_ee:"8"`
-	S        EmptyStruct `fidl:"1"`
-	SPresent bool
+type XUnionInTable struct {
+	_             struct{} `fidl:"t,16,8" fidl_size_v1:"16" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"16" fidl_alignment_v1_no_ee:"8"`
+	Before        string   `fidl:"1,"`
+	BeforePresent bool
+	Xu            SampleXUnion `fidl:"2"`
+	XuPresent     bool
+	After         string `fidl:"3,"`
+	AfterPresent  bool
 }
 
-func (u *TableWithEmptyStruct) SetS(s EmptyStruct) {
-	u.S = s
-	u.SPresent = true
+func (u *XUnionInTable) SetBefore(before string) {
+	u.Before = before
+	u.BeforePresent = true
 }
 
-func (u *TableWithEmptyStruct) GetS() EmptyStruct {
-	return u.S
+func (u *XUnionInTable) GetBefore() string {
+	return u.Before
 }
 
-func (u *TableWithEmptyStruct) GetSWithDefault(_default EmptyStruct) EmptyStruct {
-	if !u.HasS() {
+func (u *XUnionInTable) GetBeforeWithDefault(_default string) string {
+	if !u.HasBefore() {
 		return _default
 	}
-	return u.S
+	return u.Before
 }
 
-func (u *TableWithEmptyStruct) HasS() bool {
-	return u.SPresent
+func (u *XUnionInTable) HasBefore() bool {
+	return u.BeforePresent
 }
 
-func (u *TableWithEmptyStruct) ClearS() {
-	u.SPresent = false
+func (u *XUnionInTable) ClearBefore() {
+	u.BeforePresent = false
+}
+
+func (u *XUnionInTable) SetXu(xu SampleXUnion) {
+	u.Xu = xu
+	u.XuPresent = true
+}
+
+func (u *XUnionInTable) GetXu() SampleXUnion {
+	return u.Xu
+}
+
+func (u *XUnionInTable) GetXuWithDefault(_default SampleXUnion) SampleXUnion {
+	if !u.HasXu() {
+		return _default
+	}
+	return u.Xu
+}
+
+func (u *XUnionInTable) HasXu() bool {
+	return u.XuPresent
+}
+
+func (u *XUnionInTable) ClearXu() {
+	u.XuPresent = false
+}
+
+func (u *XUnionInTable) SetAfter(after string) {
+	u.After = after
+	u.AfterPresent = true
+}
+
+func (u *XUnionInTable) GetAfter() string {
+	return u.After
+}
+
+func (u *XUnionInTable) GetAfterWithDefault(_default string) string {
+	if !u.HasAfter() {
+		return _default
+	}
+	return u.After
+}
+
+func (u *XUnionInTable) HasAfter() bool {
+	return u.AfterPresent
+}
+
+func (u *XUnionInTable) ClearAfter() {
+	u.AfterPresent = false
 }
 
 type SimpleTable struct {
@@ -2363,6 +2338,36 @@
 	u.BazPresent = false
 }
 
+type TableWithEmptyStruct struct {
+	_        struct{}    `fidl:"t,16,8" fidl_size_v1:"16" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"16" fidl_alignment_v1_no_ee:"8"`
+	S        EmptyStruct `fidl:"1"`
+	SPresent bool
+}
+
+func (u *TableWithEmptyStruct) SetS(s EmptyStruct) {
+	u.S = s
+	u.SPresent = true
+}
+
+func (u *TableWithEmptyStruct) GetS() EmptyStruct {
+	return u.S
+}
+
+func (u *TableWithEmptyStruct) GetSWithDefault(_default EmptyStruct) EmptyStruct {
+	if !u.HasS() {
+		return _default
+	}
+	return u.S
+}
+
+func (u *TableWithEmptyStruct) HasS() bool {
+	return u.SPresent
+}
+
+func (u *TableWithEmptyStruct) ClearS() {
+	u.SPresent = false
+}
+
 type TableStructWithReservedSandwich struct {
 	_         struct{}          `fidl:"t,16,8" fidl_size_v1:"16" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"16" fidl_alignment_v1_no_ee:"8"`
 	S1        StructSize3Align1 `fidl:"2"`
@@ -2639,86 +2644,34 @@
 	u.S2Present = false
 }
 
-type XUnionInTable struct {
-	_             struct{} `fidl:"t,16,8" fidl_size_v1:"16" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"16" fidl_alignment_v1_no_ee:"8"`
-	Before        string   `fidl:"1,"`
-	BeforePresent bool
-	Xu            SampleXUnion `fidl:"2"`
-	XuPresent     bool
-	After         string `fidl:"3,"`
-	AfterPresent  bool
+type TransformerSimpleTable struct {
+	_            struct{} `fidl:"t,16,8" fidl_size_v1:"16" fidl_alignment_v1:"8" fidl_size_v1_no_ee:"16" fidl_alignment_v1_no_ee:"8"`
+	Value        uint32   `fidl:"1"`
+	ValuePresent bool
 }
 
-func (u *XUnionInTable) SetBefore(before string) {
-	u.Before = before
-	u.BeforePresent = true
+func (u *TransformerSimpleTable) SetValue(value uint32) {
+	u.Value = value
+	u.ValuePresent = true
 }
 
-func (u *XUnionInTable) GetBefore() string {
-	return u.Before
+func (u *TransformerSimpleTable) GetValue() uint32 {
+	return u.Value
 }
 
-func (u *XUnionInTable) GetBeforeWithDefault(_default string) string {
-	if !u.HasBefore() {
+func (u *TransformerSimpleTable) GetValueWithDefault(_default uint32) uint32 {
+	if !u.HasValue() {
 		return _default
 	}
-	return u.Before
+	return u.Value
 }
 
-func (u *XUnionInTable) HasBefore() bool {
-	return u.BeforePresent
+func (u *TransformerSimpleTable) HasValue() bool {
+	return u.ValuePresent
 }
 
-func (u *XUnionInTable) ClearBefore() {
-	u.BeforePresent = false
-}
-
-func (u *XUnionInTable) SetXu(xu SampleXUnion) {
-	u.Xu = xu
-	u.XuPresent = true
-}
-
-func (u *XUnionInTable) GetXu() SampleXUnion {
-	return u.Xu
-}
-
-func (u *XUnionInTable) GetXuWithDefault(_default SampleXUnion) SampleXUnion {
-	if !u.HasXu() {
-		return _default
-	}
-	return u.Xu
-}
-
-func (u *XUnionInTable) HasXu() bool {
-	return u.XuPresent
-}
-
-func (u *XUnionInTable) ClearXu() {
-	u.XuPresent = false
-}
-
-func (u *XUnionInTable) SetAfter(after string) {
-	u.After = after
-	u.AfterPresent = true
-}
-
-func (u *XUnionInTable) GetAfter() string {
-	return u.After
-}
-
-func (u *XUnionInTable) GetAfterWithDefault(_default string) string {
-	if !u.HasAfter() {
-		return _default
-	}
-	return u.After
-}
-
-func (u *XUnionInTable) HasAfter() bool {
-	return u.AfterPresent
-}
-
-func (u *XUnionInTable) ClearAfter() {
-	u.AfterPresent = false
+func (u *TransformerSimpleTable) ClearValue() {
+	u.ValuePresent = false
 }
 
 type EthernetDeviceInterface _bindings.ChannelProxy
diff --git a/src/syscall/zx/fidl/fidl_test/conformance_test.go b/src/syscall/zx/fidl/fidl_test/conformance_test.go
index abee77b..1a4febc 100644
--- a/src/syscall/zx/fidl/fidl_test/conformance_test.go
+++ b/src/syscall/zx/fidl/fidl_test/conformance_test.go
@@ -3995,6 +3995,1373 @@
 	}
 
 	{
+		v1 := conformance.TransformerEmptyStruct{}
+
+		encodeSuccessCase{
+			name: "TransformerEmptyStruct",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: false,
+				EncodeUnionsAsXUnionBytes:   false,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.TransformerEmptyStruct{}
+
+		encodeSuccessCase{
+			name: "TransformerEmptyStruct_v1",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: true,
+				EncodeUnionsAsXUnionBytes:   true,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.EmptyStructUnionStruct{}
+		v2 := conformance.EmptyStructUnion{}
+		v3 := conformance.TransformerEmptyStruct{}
+		v2.SetEs(v3)
+		v1.U = v2
+
+		encodeSuccessCase{
+			name: "EmptyStructUnion",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: false,
+				EncodeUnionsAsXUnionBytes:   false,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.EmptyStructUnionStruct{}
+		v2 := conformance.EmptyStructUnion{}
+		v3 := conformance.TransformerEmptyStruct{}
+		v2.SetEs(v3)
+		v1.U = v2
+
+		encodeSuccessCase{
+			name: "EmptyStructUnion_v1",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: true,
+				EncodeUnionsAsXUnionBytes:   true,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.NoCodingTablesStressor{}
+		var v2 uint64 = 1229782938247303441
+		v1.F1 = v2
+		var v3 uint64 = 2459565876494606882
+		v1.F2 = v3
+		v4 := conformance.UnionSize36Align4{}
+		var v5 uint8 = 51
+		var v6 uint8 = 51
+		var v7 uint8 = 51
+		var v8 uint8 = 51
+		var v9 uint8 = 51
+		var v10 uint8 = 51
+		var v11 uint8 = 51
+		var v12 uint8 = 51
+		var v13 uint8 = 51
+		var v14 uint8 = 51
+		var v15 uint8 = 51
+		var v16 uint8 = 51
+		var v17 uint8 = 51
+		var v18 uint8 = 51
+		var v19 uint8 = 51
+		var v20 uint8 = 51
+		var v21 uint8 = 51
+		var v22 uint8 = 51
+		var v23 uint8 = 51
+		var v24 uint8 = 51
+		var v25 uint8 = 51
+		var v26 uint8 = 51
+		var v27 uint8 = 51
+		var v28 uint8 = 51
+		var v29 uint8 = 51
+		var v30 uint8 = 51
+		var v31 uint8 = 51
+		var v32 uint8 = 51
+		var v33 uint8 = 51
+		var v34 uint8 = 51
+		var v35 uint8 = 51
+		var v36 uint8 = 51
+		v37 := [32]uint8{v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36}
+		v4.SetVariant(v37)
+		v1.U1 = v4
+		var v38 uint64 = 4919131752989213764
+		v1.F3 = v38
+		var v39 uint64 = 6148914691236517205
+		v1.F4 = v39
+		v40 := conformance.UnionSize36Align4{}
+		var v41 uint8 = 102
+		var v42 uint8 = 102
+		var v43 uint8 = 102
+		var v44 uint8 = 102
+		var v45 uint8 = 102
+		var v46 uint8 = 102
+		var v47 uint8 = 102
+		var v48 uint8 = 102
+		var v49 uint8 = 102
+		var v50 uint8 = 102
+		var v51 uint8 = 102
+		var v52 uint8 = 102
+		var v53 uint8 = 102
+		var v54 uint8 = 102
+		var v55 uint8 = 102
+		var v56 uint8 = 102
+		var v57 uint8 = 102
+		var v58 uint8 = 102
+		var v59 uint8 = 102
+		var v60 uint8 = 102
+		var v61 uint8 = 102
+		var v62 uint8 = 102
+		var v63 uint8 = 102
+		var v64 uint8 = 102
+		var v65 uint8 = 102
+		var v66 uint8 = 102
+		var v67 uint8 = 102
+		var v68 uint8 = 102
+		var v69 uint8 = 102
+		var v70 uint8 = 102
+		var v71 uint8 = 102
+		var v72 uint8 = 102
+		v73 := [32]uint8{v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72}
+		v40.SetVariant(v73)
+		v1.U2 = v40
+		var v74 uint64 = 8608480567731124087
+		v1.F5 = v74
+		var v75 uint64 = 9838263505978427528
+		v1.F6 = v75
+		v76 := conformance.UnionSize36Align4{}
+		var v77 uint8 = 153
+		var v78 uint8 = 153
+		var v79 uint8 = 153
+		var v80 uint8 = 153
+		var v81 uint8 = 153
+		var v82 uint8 = 153
+		var v83 uint8 = 153
+		var v84 uint8 = 153
+		var v85 uint8 = 153
+		var v86 uint8 = 153
+		var v87 uint8 = 153
+		var v88 uint8 = 153
+		var v89 uint8 = 153
+		var v90 uint8 = 153
+		var v91 uint8 = 153
+		var v92 uint8 = 153
+		var v93 uint8 = 153
+		var v94 uint8 = 153
+		var v95 uint8 = 153
+		var v96 uint8 = 153
+		var v97 uint8 = 153
+		var v98 uint8 = 153
+		var v99 uint8 = 153
+		var v100 uint8 = 153
+		var v101 uint8 = 153
+		var v102 uint8 = 153
+		var v103 uint8 = 153
+		var v104 uint8 = 153
+		var v105 uint8 = 153
+		var v106 uint8 = 153
+		var v107 uint8 = 153
+		var v108 uint8 = 153
+		v109 := [32]uint8{v77, v78, v79, v80, v81, v82, v83, v84, v85, v86, v87, v88, v89, v90, v91, v92, v93, v94, v95, v96, v97, v98, v99, v100, v101, v102, v103, v104, v105, v106, v107, v108}
+		v76.SetVariant(v109)
+		v1.U3 = v76
+		var v110 uint64 = 12297829382473034410
+		v1.F7 = v110
+		v111 := &conformance.Size8Align8{}
+		var v112 uint64 = 17216961135462248174
+		v111.Data = v112
+		v1.P1 = v111
+		var v113 uint64 = 13527612320720337851
+		v1.F8 = v113
+		v114 := &conformance.Size8Align8{}
+		var v115 uint64 = 17216961135462248174
+		v114.Data = v115
+		v1.P2 = v114
+		var v116 uint64 = 15987178197214944733
+		v1.F9 = v116
+
+		encodeSuccessCase{
+			name: "NoCodingTablesStressor",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: false,
+				EncodeUnionsAsXUnionBytes:   false,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
+				0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
+				0x03, 0x00, 0x00, 0x00, 0x33, 0x33, 0x33, 0x33,
+				0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
+				0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
+				0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
+				0x33, 0x33, 0x33, 0x33, 0x00, 0x00, 0x00, 0x00,
+				0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
+				0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+				0x03, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66,
+				0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,
+				0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,
+				0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,
+				0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00,
+				0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
+				0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
+				0x03, 0x00, 0x00, 0x00, 0x99, 0x99, 0x99, 0x99,
+				0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
+				0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
+				0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
+				0x99, 0x99, 0x99, 0x99, 0x00, 0x00, 0x00, 0x00,
+				0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
+				0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee,
+				0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.NoCodingTablesStressor{}
+		var v2 uint64 = 1229782938247303441
+		v1.F1 = v2
+		var v3 uint64 = 2459565876494606882
+		v1.F2 = v3
+		v4 := conformance.UnionSize36Align4{}
+		var v5 uint8 = 51
+		var v6 uint8 = 51
+		var v7 uint8 = 51
+		var v8 uint8 = 51
+		var v9 uint8 = 51
+		var v10 uint8 = 51
+		var v11 uint8 = 51
+		var v12 uint8 = 51
+		var v13 uint8 = 51
+		var v14 uint8 = 51
+		var v15 uint8 = 51
+		var v16 uint8 = 51
+		var v17 uint8 = 51
+		var v18 uint8 = 51
+		var v19 uint8 = 51
+		var v20 uint8 = 51
+		var v21 uint8 = 51
+		var v22 uint8 = 51
+		var v23 uint8 = 51
+		var v24 uint8 = 51
+		var v25 uint8 = 51
+		var v26 uint8 = 51
+		var v27 uint8 = 51
+		var v28 uint8 = 51
+		var v29 uint8 = 51
+		var v30 uint8 = 51
+		var v31 uint8 = 51
+		var v32 uint8 = 51
+		var v33 uint8 = 51
+		var v34 uint8 = 51
+		var v35 uint8 = 51
+		var v36 uint8 = 51
+		v37 := [32]uint8{v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36}
+		v4.SetVariant(v37)
+		v1.U1 = v4
+		var v38 uint64 = 4919131752989213764
+		v1.F3 = v38
+		var v39 uint64 = 6148914691236517205
+		v1.F4 = v39
+		v40 := conformance.UnionSize36Align4{}
+		var v41 uint8 = 102
+		var v42 uint8 = 102
+		var v43 uint8 = 102
+		var v44 uint8 = 102
+		var v45 uint8 = 102
+		var v46 uint8 = 102
+		var v47 uint8 = 102
+		var v48 uint8 = 102
+		var v49 uint8 = 102
+		var v50 uint8 = 102
+		var v51 uint8 = 102
+		var v52 uint8 = 102
+		var v53 uint8 = 102
+		var v54 uint8 = 102
+		var v55 uint8 = 102
+		var v56 uint8 = 102
+		var v57 uint8 = 102
+		var v58 uint8 = 102
+		var v59 uint8 = 102
+		var v60 uint8 = 102
+		var v61 uint8 = 102
+		var v62 uint8 = 102
+		var v63 uint8 = 102
+		var v64 uint8 = 102
+		var v65 uint8 = 102
+		var v66 uint8 = 102
+		var v67 uint8 = 102
+		var v68 uint8 = 102
+		var v69 uint8 = 102
+		var v70 uint8 = 102
+		var v71 uint8 = 102
+		var v72 uint8 = 102
+		v73 := [32]uint8{v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72}
+		v40.SetVariant(v73)
+		v1.U2 = v40
+		var v74 uint64 = 8608480567731124087
+		v1.F5 = v74
+		var v75 uint64 = 9838263505978427528
+		v1.F6 = v75
+		v76 := conformance.UnionSize36Align4{}
+		var v77 uint8 = 153
+		var v78 uint8 = 153
+		var v79 uint8 = 153
+		var v80 uint8 = 153
+		var v81 uint8 = 153
+		var v82 uint8 = 153
+		var v83 uint8 = 153
+		var v84 uint8 = 153
+		var v85 uint8 = 153
+		var v86 uint8 = 153
+		var v87 uint8 = 153
+		var v88 uint8 = 153
+		var v89 uint8 = 153
+		var v90 uint8 = 153
+		var v91 uint8 = 153
+		var v92 uint8 = 153
+		var v93 uint8 = 153
+		var v94 uint8 = 153
+		var v95 uint8 = 153
+		var v96 uint8 = 153
+		var v97 uint8 = 153
+		var v98 uint8 = 153
+		var v99 uint8 = 153
+		var v100 uint8 = 153
+		var v101 uint8 = 153
+		var v102 uint8 = 153
+		var v103 uint8 = 153
+		var v104 uint8 = 153
+		var v105 uint8 = 153
+		var v106 uint8 = 153
+		var v107 uint8 = 153
+		var v108 uint8 = 153
+		v109 := [32]uint8{v77, v78, v79, v80, v81, v82, v83, v84, v85, v86, v87, v88, v89, v90, v91, v92, v93, v94, v95, v96, v97, v98, v99, v100, v101, v102, v103, v104, v105, v106, v107, v108}
+		v76.SetVariant(v109)
+		v1.U3 = v76
+		var v110 uint64 = 12297829382473034410
+		v1.F7 = v110
+		v111 := &conformance.Size8Align8{}
+		var v112 uint64 = 17216961135462248174
+		v111.Data = v112
+		v1.P1 = v111
+		var v113 uint64 = 13527612320720337851
+		v1.F8 = v113
+		v114 := &conformance.Size8Align8{}
+		var v115 uint64 = 17216961135462248174
+		v114.Data = v115
+		v1.P2 = v114
+		var v116 uint64 = 15987178197214944733
+		v1.F9 = v116
+
+		encodeSuccessCase{
+			name: "NoCodingTablesStressor_v1",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: true,
+				EncodeUnionsAsXUnionBytes:   true,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
+				0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
+				0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
+				0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+				0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
+				0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
+				0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
+				0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
+				0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
+				0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
+				0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
+				0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,
+				0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,
+				0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,
+				0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,
+				0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
+				0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
+				0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
+				0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
+				0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee,
+				0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.OutOfLineSandwich1{}
+		v2 := "soft migrations rock!"
+		v1.Before = v2
+		v3 := conformance.Sandwich1{}
+		var v4 uint32 = 67305985
+		v3.Before = v4
+		v5 := conformance.UnionSize8Align4{}
+		var v6 uint32 = 202050057
+		v5.SetVariant(v6)
+		v3.TheUnion = v5
+		var v7 uint32 = 134678021
+		v3.After = v7
+		v8 := []conformance.Sandwich1{v3}
+		v1.V = v8
+		v9 := "hard transitions suck!"
+		v1.After = v9
+
+		encodeSuccessCase{
+			name: "OutOfLineSandwich1Case1",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: false,
+				EncodeUnionsAsXUnionBytes:   false,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x73, 0x6f, 0x66, 0x74, 0x20, 0x6d, 0x69, 0x67,
+				0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20,
+				0x72, 0x6f, 0x63, 0x6b, 0x21, 0x00, 0x00, 0x00,
+				0x01, 0x02, 0x03, 0x04, 0x02, 0x00, 0x00, 0x00,
+				0x09, 0x0a, 0x0b, 0x0c, 0x05, 0x06, 0x07, 0x08,
+				0x68, 0x61, 0x72, 0x64, 0x20, 0x74, 0x72, 0x61,
+				0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+				0x20, 0x73, 0x75, 0x63, 0x6b, 0x21, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.OutOfLineSandwich1{}
+		v2 := "soft migrations rock!"
+		v1.Before = v2
+		v3 := conformance.Sandwich1{}
+		var v4 uint32 = 67305985
+		v3.Before = v4
+		v5 := conformance.UnionSize8Align4{}
+		var v6 uint32 = 202050057
+		v5.SetVariant(v6)
+		v3.TheUnion = v5
+		var v7 uint32 = 134678021
+		v3.After = v7
+		v8 := []conformance.Sandwich1{v3}
+		v1.V = v8
+		v9 := "hard transitions suck!"
+		v1.After = v9
+
+		encodeSuccessCase{
+			name: "OutOfLineSandwich1Case1_v1",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: true,
+				EncodeUnionsAsXUnionBytes:   true,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x73, 0x6f, 0x66, 0x74, 0x20, 0x6d, 0x69, 0x67,
+				0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20,
+				0x72, 0x6f, 0x63, 0x6b, 0x21, 0x00, 0x00, 0x00,
+				0x01, 0x02, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00,
+				0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x05, 0x06, 0x07, 0x08, 0x00, 0x00, 0x00, 0x00,
+				0x09, 0x0a, 0x0b, 0x0c, 0x00, 0x00, 0x00, 0x00,
+				0x68, 0x61, 0x72, 0x64, 0x20, 0x74, 0x72, 0x61,
+				0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+				0x20, 0x73, 0x75, 0x63, 0x6b, 0x21, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.OutOfLineSandwich1WithOptUnion{}
+		v2 := "soft migrations rock!"
+		v1.Before = v2
+		v3 := conformance.Sandwich1WithOptUnion{}
+		var v4 uint32 = 67305985
+		v3.Before = v4
+		v5 := &conformance.UnionSize8Align4{}
+		var v6 uint32 = 202050057
+		v5.SetVariant(v6)
+		v3.OptUnion = v5
+		var v7 uint32 = 134678021
+		v3.After = v7
+		v8 := []conformance.Sandwich1WithOptUnion{v3}
+		v1.V = v8
+		v9 := "hard transitions suck!"
+		v1.After = v9
+
+		encodeSuccessCase{
+			name: "OutOfLineSandwich1WithOptUnionPresent",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: false,
+				EncodeUnionsAsXUnionBytes:   false,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x73, 0x6f, 0x66, 0x74, 0x20, 0x6d, 0x69, 0x67,
+				0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20,
+				0x72, 0x6f, 0x63, 0x6b, 0x21, 0x00, 0x00, 0x00,
+				0x01, 0x02, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x05, 0x06, 0x07, 0x08, 0x00, 0x00, 0x00, 0x00,
+				0x02, 0x00, 0x00, 0x00, 0x09, 0x0a, 0x0b, 0x0c,
+				0x68, 0x61, 0x72, 0x64, 0x20, 0x74, 0x72, 0x61,
+				0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+				0x20, 0x73, 0x75, 0x63, 0x6b, 0x21, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.OutOfLineSandwich1WithOptUnion{}
+		v2 := "soft migrations rock!"
+		v1.Before = v2
+		v3 := conformance.Sandwich1WithOptUnion{}
+		var v4 uint32 = 67305985
+		v3.Before = v4
+		v5 := &conformance.UnionSize8Align4{}
+		var v6 uint32 = 202050057
+		v5.SetVariant(v6)
+		v3.OptUnion = v5
+		var v7 uint32 = 134678021
+		v3.After = v7
+		v8 := []conformance.Sandwich1WithOptUnion{v3}
+		v1.V = v8
+		v9 := "hard transitions suck!"
+		v1.After = v9
+
+		encodeSuccessCase{
+			name: "OutOfLineSandwich1WithOptUnionPresent_v1",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: true,
+				EncodeUnionsAsXUnionBytes:   true,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x73, 0x6f, 0x66, 0x74, 0x20, 0x6d, 0x69, 0x67,
+				0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20,
+				0x72, 0x6f, 0x63, 0x6b, 0x21, 0x00, 0x00, 0x00,
+				0x01, 0x02, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00,
+				0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x05, 0x06, 0x07, 0x08, 0x00, 0x00, 0x00, 0x00,
+				0x09, 0x0a, 0x0b, 0x0c, 0x00, 0x00, 0x00, 0x00,
+				0x68, 0x61, 0x72, 0x64, 0x20, 0x74, 0x72, 0x61,
+				0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+				0x20, 0x73, 0x75, 0x63, 0x6b, 0x21, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.OutOfLineSandwich1WithOptUnion{}
+		v2 := "soft migrations rock!"
+		v1.Before = v2
+		v3 := conformance.Sandwich1WithOptUnion{}
+		var v4 uint32 = 67305985
+		v3.Before = v4
+		var v5 uint32 = 134678021
+		v3.After = v5
+		v6 := []conformance.Sandwich1WithOptUnion{v3}
+		v1.V = v6
+		v7 := "hard transitions suck!"
+		v1.After = v7
+
+		encodeSuccessCase{
+			name: "OutOfLineSandwich1WithOptUnionAbsent",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: false,
+				EncodeUnionsAsXUnionBytes:   false,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x73, 0x6f, 0x66, 0x74, 0x20, 0x6d, 0x69, 0x67,
+				0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20,
+				0x72, 0x6f, 0x63, 0x6b, 0x21, 0x00, 0x00, 0x00,
+				0x01, 0x02, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00,
+				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x05, 0x06, 0x07, 0x08, 0x00, 0x00, 0x00, 0x00,
+				0x68, 0x61, 0x72, 0x64, 0x20, 0x74, 0x72, 0x61,
+				0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+				0x20, 0x73, 0x75, 0x63, 0x6b, 0x21, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.OutOfLineSandwich1WithOptUnion{}
+		v2 := "soft migrations rock!"
+		v1.Before = v2
+		v3 := conformance.Sandwich1WithOptUnion{}
+		var v4 uint32 = 67305985
+		v3.Before = v4
+		var v5 uint32 = 134678021
+		v3.After = v5
+		v6 := []conformance.Sandwich1WithOptUnion{v3}
+		v1.V = v6
+		v7 := "hard transitions suck!"
+		v1.After = v7
+
+		encodeSuccessCase{
+			name: "OutOfLineSandwich1WithOptUnionAbsent_v1",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: true,
+				EncodeUnionsAsXUnionBytes:   true,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x73, 0x6f, 0x66, 0x74, 0x20, 0x6d, 0x69, 0x67,
+				0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20,
+				0x72, 0x6f, 0x63, 0x6b, 0x21, 0x00, 0x00, 0x00,
+				0x01, 0x02, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00,
+				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x05, 0x06, 0x07, 0x08, 0x00, 0x00, 0x00, 0x00,
+				0x68, 0x61, 0x72, 0x64, 0x20, 0x74, 0x72, 0x61,
+				0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+				0x20, 0x73, 0x75, 0x63, 0x6b, 0x21, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.Regression4{}
+		var v2 uint8 = 1
+		v1.F1 = v2
+		var v3 uint32 = 2
+		v1.F2 = v3
+		v4 := conformance.StructSize3Align1{}
+		var v5 uint8 = 9
+		var v6 uint8 = 10
+		var v7 uint8 = 11
+		v8 := [3]uint8{v5, v6, v7}
+		v4.ThreeBytes = v8
+		v1.S1 = v4
+		var v9 uint8 = 3
+		v1.F3 = v9
+		var v10 uint16 = 4
+		v1.F4 = v10
+		var v11 uint64 = 5
+		v1.F5 = v11
+		var v12 uint8 = 6
+		v1.F6 = v12
+
+		encodeSuccessCase{
+			name: "Regression4",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: false,
+				EncodeUnionsAsXUnionBytes:   false,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+				0x09, 0x0a, 0x0b, 0x03, 0x04, 0x00, 0x00, 0x00,
+				0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.Regression4{}
+		var v2 uint8 = 1
+		v1.F1 = v2
+		var v3 uint32 = 2
+		v1.F2 = v3
+		v4 := conformance.StructSize3Align1{}
+		var v5 uint8 = 9
+		var v6 uint8 = 10
+		var v7 uint8 = 11
+		v8 := [3]uint8{v5, v6, v7}
+		v4.ThreeBytes = v8
+		v1.S1 = v4
+		var v9 uint8 = 3
+		v1.F3 = v9
+		var v10 uint16 = 4
+		v1.F4 = v10
+		var v11 uint64 = 5
+		v1.F5 = v11
+		var v12 uint8 = 6
+		v1.F6 = v12
+
+		encodeSuccessCase{
+			name: "Regression4_v1",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: true,
+				EncodeUnionsAsXUnionBytes:   true,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+				0x09, 0x0a, 0x0b, 0x03, 0x04, 0x00, 0x00, 0x00,
+				0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.Sandwich4Align8{}
+		v2 := conformance.Sandwich4{}
+		var v3 uint32 = 67305985
+		v2.Before = v3
+		v4 := conformance.UnionSize36Align4{}
+		var v5 uint8 = 160
+		var v6 uint8 = 161
+		var v7 uint8 = 162
+		var v8 uint8 = 163
+		var v9 uint8 = 164
+		var v10 uint8 = 165
+		var v11 uint8 = 166
+		var v12 uint8 = 167
+		var v13 uint8 = 168
+		var v14 uint8 = 169
+		var v15 uint8 = 170
+		var v16 uint8 = 171
+		var v17 uint8 = 172
+		var v18 uint8 = 173
+		var v19 uint8 = 174
+		var v20 uint8 = 175
+		var v21 uint8 = 176
+		var v22 uint8 = 177
+		var v23 uint8 = 178
+		var v24 uint8 = 179
+		var v25 uint8 = 180
+		var v26 uint8 = 181
+		var v27 uint8 = 182
+		var v28 uint8 = 183
+		var v29 uint8 = 184
+		var v30 uint8 = 185
+		var v31 uint8 = 186
+		var v32 uint8 = 187
+		var v33 uint8 = 188
+		var v34 uint8 = 189
+		var v35 uint8 = 190
+		var v36 uint8 = 191
+		v37 := [32]uint8{v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36}
+		v4.SetVariant(v37)
+		v2.TheUnion = v4
+		var v38 uint32 = 134678021
+		v2.After = v38
+		v1.Sandwich4 = v2
+		var v39 uint64 = 1157159078456920585
+		v1.Alignment8Enforcement = v39
+
+		encodeSuccessCase{
+			name: "Sandwich4Align8",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: false,
+				EncodeUnionsAsXUnionBytes:   false,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x01, 0x02, 0x03, 0x04, 0x03, 0x00, 0x00, 0x00,
+				0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
+				0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
+				0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
+				0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
+				0x05, 0x06, 0x07, 0x08, 0x00, 0x00, 0x00, 0x00,
+				0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.Sandwich4Align8{}
+		v2 := conformance.Sandwich4{}
+		var v3 uint32 = 67305985
+		v2.Before = v3
+		v4 := conformance.UnionSize36Align4{}
+		var v5 uint8 = 160
+		var v6 uint8 = 161
+		var v7 uint8 = 162
+		var v8 uint8 = 163
+		var v9 uint8 = 164
+		var v10 uint8 = 165
+		var v11 uint8 = 166
+		var v12 uint8 = 167
+		var v13 uint8 = 168
+		var v14 uint8 = 169
+		var v15 uint8 = 170
+		var v16 uint8 = 171
+		var v17 uint8 = 172
+		var v18 uint8 = 173
+		var v19 uint8 = 174
+		var v20 uint8 = 175
+		var v21 uint8 = 176
+		var v22 uint8 = 177
+		var v23 uint8 = 178
+		var v24 uint8 = 179
+		var v25 uint8 = 180
+		var v26 uint8 = 181
+		var v27 uint8 = 182
+		var v28 uint8 = 183
+		var v29 uint8 = 184
+		var v30 uint8 = 185
+		var v31 uint8 = 186
+		var v32 uint8 = 187
+		var v33 uint8 = 188
+		var v34 uint8 = 189
+		var v35 uint8 = 190
+		var v36 uint8 = 191
+		v37 := [32]uint8{v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36}
+		v4.SetVariant(v37)
+		v2.TheUnion = v4
+		var v38 uint32 = 134678021
+		v2.After = v38
+		v1.Sandwich4 = v2
+		var v39 uint64 = 1157159078456920585
+		v1.Alignment8Enforcement = v39
+
+		encodeSuccessCase{
+			name: "Sandwich4Align8_v1",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: true,
+				EncodeUnionsAsXUnionBytes:   true,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x01, 0x02, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00,
+				0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x05, 0x06, 0x07, 0x08, 0x00, 0x00, 0x00, 0x00,
+				0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10,
+				0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
+				0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
+				0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
+				0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.Sandwich4Align8WithPointer{}
+		v2 := conformance.Sandwich4{}
+		var v3 uint32 = 67305985
+		v2.Before = v3
+		v4 := conformance.UnionSize36Align4{}
+		var v5 uint8 = 160
+		var v6 uint8 = 161
+		var v7 uint8 = 162
+		var v8 uint8 = 163
+		var v9 uint8 = 164
+		var v10 uint8 = 165
+		var v11 uint8 = 166
+		var v12 uint8 = 167
+		var v13 uint8 = 168
+		var v14 uint8 = 169
+		var v15 uint8 = 170
+		var v16 uint8 = 171
+		var v17 uint8 = 172
+		var v18 uint8 = 173
+		var v19 uint8 = 174
+		var v20 uint8 = 175
+		var v21 uint8 = 176
+		var v22 uint8 = 177
+		var v23 uint8 = 178
+		var v24 uint8 = 179
+		var v25 uint8 = 180
+		var v26 uint8 = 181
+		var v27 uint8 = 182
+		var v28 uint8 = 183
+		var v29 uint8 = 184
+		var v30 uint8 = 185
+		var v31 uint8 = 186
+		var v32 uint8 = 187
+		var v33 uint8 = 188
+		var v34 uint8 = 189
+		var v35 uint8 = 190
+		var v36 uint8 = 191
+		v37 := [32]uint8{v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36}
+		v4.SetVariant(v37)
+		v2.TheUnion = v4
+		var v38 uint32 = 134678021
+		v2.After = v38
+		v1.Sandwich4 = v2
+		v39 := &conformance.Size8Align8{}
+		var v40 uint64 = 1157159078456920585
+		v39.Data = v40
+		v1.Alignment8Enforcement = v39
+
+		encodeSuccessCase{
+			name: "Sandwich4Align8WithPointer",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: false,
+				EncodeUnionsAsXUnionBytes:   false,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x01, 0x02, 0x03, 0x04, 0x03, 0x00, 0x00, 0x00,
+				0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
+				0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
+				0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
+				0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
+				0x05, 0x06, 0x07, 0x08, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.Sandwich4Align8WithPointer{}
+		v2 := conformance.Sandwich4{}
+		var v3 uint32 = 67305985
+		v2.Before = v3
+		v4 := conformance.UnionSize36Align4{}
+		var v5 uint8 = 160
+		var v6 uint8 = 161
+		var v7 uint8 = 162
+		var v8 uint8 = 163
+		var v9 uint8 = 164
+		var v10 uint8 = 165
+		var v11 uint8 = 166
+		var v12 uint8 = 167
+		var v13 uint8 = 168
+		var v14 uint8 = 169
+		var v15 uint8 = 170
+		var v16 uint8 = 171
+		var v17 uint8 = 172
+		var v18 uint8 = 173
+		var v19 uint8 = 174
+		var v20 uint8 = 175
+		var v21 uint8 = 176
+		var v22 uint8 = 177
+		var v23 uint8 = 178
+		var v24 uint8 = 179
+		var v25 uint8 = 180
+		var v26 uint8 = 181
+		var v27 uint8 = 182
+		var v28 uint8 = 183
+		var v29 uint8 = 184
+		var v30 uint8 = 185
+		var v31 uint8 = 186
+		var v32 uint8 = 187
+		var v33 uint8 = 188
+		var v34 uint8 = 189
+		var v35 uint8 = 190
+		var v36 uint8 = 191
+		v37 := [32]uint8{v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36}
+		v4.SetVariant(v37)
+		v2.TheUnion = v4
+		var v38 uint32 = 134678021
+		v2.After = v38
+		v1.Sandwich4 = v2
+		v39 := &conformance.Size8Align8{}
+		var v40 uint64 = 1157159078456920585
+		v39.Data = v40
+		v1.Alignment8Enforcement = v39
+
+		encodeSuccessCase{
+			name: "Sandwich4Align8WithPointer_v1",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: true,
+				EncodeUnionsAsXUnionBytes:   true,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x01, 0x02, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00,
+				0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x05, 0x06, 0x07, 0x08, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
+				0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
+				0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
+				0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
+				0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.Sandwich8{}
+		var v2 uint64 = 67305985
+		v1.Before = v2
+		v3 := conformance.UnionOfUnion{}
+		v4 := conformance.UnionSize8Align4{}
+		var v5 uint32 = 202050057
+		v4.SetVariant(v5)
+		v3.SetSize8align4(v4)
+		v1.UnionOfUnion = v3
+		var v6 uint32 = 134678021
+		v1.After = v6
+
+		encodeSuccessCase{
+			name: "Sandwich8Case1",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: false,
+				EncodeUnionsAsXUnionBytes:   false,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x01, 0x02, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00,
+				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x02, 0x00, 0x00, 0x00, 0x09, 0x0a, 0x0b, 0x0c,
+				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x05, 0x06, 0x07, 0x08, 0x00, 0x00, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.Sandwich8{}
+		var v2 uint64 = 67305985
+		v1.Before = v2
+		v3 := conformance.UnionOfUnion{}
+		v4 := conformance.UnionSize8Align4{}
+		var v5 uint32 = 202050057
+		v4.SetVariant(v5)
+		v3.SetSize8align4(v4)
+		v1.UnionOfUnion = v3
+		var v6 uint32 = 134678021
+		v1.After = v6
+
+		encodeSuccessCase{
+			name: "Sandwich8Case1_v1",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: true,
+				EncodeUnionsAsXUnionBytes:   true,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x01, 0x02, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00,
+				0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x05, 0x06, 0x07, 0x08, 0x00, 0x00, 0x00, 0x00,
+				0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x09, 0x0a, 0x0b, 0x0c, 0x00, 0x00, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.Sandwich9{}
+		var v2 uint16 = 513
+		v1.Before = v2
+		v3 := conformance.UnionWithVectorOfVectors{}
+		v4 := &conformance.StructSize3Align1{}
+		var v5 uint8 = 16
+		var v6 uint8 = 17
+		var v7 uint8 = 18
+		v8 := [3]uint8{v5, v6, v7}
+		v4.ThreeBytes = v8
+		v9 := &conformance.StructSize3Align1{}
+		var v10 uint8 = 19
+		var v11 uint8 = 20
+		var v12 uint8 = 21
+		v13 := [3]uint8{v10, v11, v12}
+		v9.ThreeBytes = v13
+		v14 := []*conformance.StructSize3Align1{v4, v9}
+		v15 := [][]*conformance.StructSize3Align1{v14}
+		v3.SetV(v15)
+		v1.TheUnion = v3
+		var v16 uint16 = 4625
+		v1.After = v16
+
+		encodeSuccessCase{
+			name: "Sandwich9Case1",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: false,
+				EncodeUnionsAsXUnionBytes:   false,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x11, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x10, 0x11, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x13, 0x14, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.Sandwich9{}
+		var v2 uint16 = 513
+		v1.Before = v2
+		v3 := conformance.UnionWithVectorOfVectors{}
+		v4 := &conformance.StructSize3Align1{}
+		var v5 uint8 = 16
+		var v6 uint8 = 17
+		var v7 uint8 = 18
+		v8 := [3]uint8{v5, v6, v7}
+		v4.ThreeBytes = v8
+		v9 := &conformance.StructSize3Align1{}
+		var v10 uint8 = 19
+		var v11 uint8 = 20
+		var v12 uint8 = 21
+		v13 := [3]uint8{v10, v11, v12}
+		v9.ThreeBytes = v13
+		v14 := []*conformance.StructSize3Align1{v4, v9}
+		v15 := [][]*conformance.StructSize3Align1{v14}
+		v3.SetV(v15)
+		v1.TheUnion = v3
+		var v16 uint16 = 4625
+		v1.After = v16
+
+		encodeSuccessCase{
+			name: "Sandwich9Case1_v1",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: true,
+				EncodeUnionsAsXUnionBytes:   true,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x11, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x10, 0x11, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x13, 0x14, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.SimpleTableArrayStruct{}
+		v2 := conformance.TransformerSimpleTable{}
+		var v3 uint32 = 2745344416
+		v2.SetValue(v3)
+		v4 := conformance.TransformerSimpleTable{}
+		var v5 uint32 = 3014832560
+		v4.SetValue(v5)
+		v6 := [2]conformance.TransformerSimpleTable{v2, v4}
+		v1.TheArray = v6
+
+		encodeSuccessCase{
+			name: "SimpleTableArrayStruct",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: false,
+				EncodeUnionsAsXUnionBytes:   false,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0xa0, 0xa1, 0xa2, 0xa3, 0x00, 0x00, 0x00, 0x00,
+				0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0xb0, 0xb1, 0xb2, 0xb3, 0x00, 0x00, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.SimpleTableArrayStruct{}
+		v2 := conformance.TransformerSimpleTable{}
+		var v3 uint32 = 2745344416
+		v2.SetValue(v3)
+		v4 := conformance.TransformerSimpleTable{}
+		var v5 uint32 = 3014832560
+		v4.SetValue(v5)
+		v6 := [2]conformance.TransformerSimpleTable{v2, v4}
+		v1.TheArray = v6
+
+		encodeSuccessCase{
+			name: "SimpleTableArrayStruct_v1",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: true,
+				EncodeUnionsAsXUnionBytes:   true,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0xa0, 0xa1, 0xa2, 0xa3, 0x00, 0x00, 0x00, 0x00,
+				0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0xb0, 0xb1, 0xb2, 0xb3, 0x00, 0x00, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.StringUnionVector{}
+		v2 := &conformance.StringUnion{}
+		v3 := "hello"
+		v2.SetS(v3)
+		v4 := &conformance.StringUnion{}
+		var v5 uint8 = 170
+		v4.SetU8(v5)
+		v6 := &conformance.StringUnion{}
+		var v7 uint8 = 187
+		v6.SetU8(v7)
+		v8 := []*conformance.StringUnion{v2, v4, v6}
+		v1.TheVector = v8
+
+		encodeSuccessCase{
+			name: "StringUnionVector",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: false,
+				EncodeUnionsAsXUnionBytes:   false,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x00, 0x00, 0x00,
+				0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.StringUnionVector{}
+		v2 := &conformance.StringUnion{}
+		v3 := "hello"
+		v2.SetS(v3)
+		v4 := &conformance.StringUnion{}
+		var v5 uint8 = 170
+		v4.SetU8(v5)
+		v6 := &conformance.StringUnion{}
+		var v7 uint8 = 187
+		v6.SetU8(v7)
+		v8 := []*conformance.StringUnion{v2, v4, v6}
+		v1.TheVector = v8
+
+		encodeSuccessCase{
+			name: "StringUnionVector_v1",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: true,
+				EncodeUnionsAsXUnionBytes:   true,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x00, 0x00, 0x00,
+				0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
 		v1 := conformance.UnionWithBoundStringStruct{}
 		v2 := conformance.UnionWithBoundString{}
 		v3 := "abcd"
@@ -4060,318 +5427,6 @@
 		}.check(t)
 	}
 
-	{
-		v1 := conformance.SandwichUnionSize8Alignment4{}
-		var v2 uint32 = 10
-		v1.Before = v2
-		v3 := conformance.UnionSize8Alignment4{}
-		var v4 uint32 = 4
-		v3.SetVariant(v4)
-		v1.Value = v3
-		var v5 uint32 = 20
-		v1.After = v5
-
-		encodeSuccessCase{
-			name: "UnionSize8Alignment4",
-			context: fidl.MarshalerContext{
-				DecodeUnionsFromXUnionBytes: false,
-				EncodeUnionsAsXUnionBytes:   false,
-			},
-			input: &v1,
-			bytes: []byte{
-				0x0a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
-				0x04, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
-			},
-		}.check(t)
-	}
-
-	{
-		v1 := conformance.SandwichUnionSize8Alignment4{}
-		var v2 uint32 = 10
-		v1.Before = v2
-		v3 := conformance.UnionSize8Alignment4{}
-		var v4 uint32 = 4
-		v3.SetVariant(v4)
-		v1.Value = v3
-		var v5 uint32 = 20
-		v1.After = v5
-
-		encodeSuccessCase{
-			name: "UnionSize8Alignment4_v1",
-			context: fidl.MarshalerContext{
-				DecodeUnionsFromXUnionBytes: true,
-				EncodeUnionsAsXUnionBytes:   true,
-			},
-			input: &v1,
-			bytes: []byte{
-				0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
-				0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-			},
-		}.check(t)
-	}
-
-	{
-		v1 := conformance.SandwichUnionSize12Alignment4{}
-		var v2 uint32 = 10
-		v1.Before = v2
-		v3 := conformance.UnionSize12Alignment4{}
-		var v4 uint8 = 1
-		var v5 uint8 = 2
-		var v6 uint8 = 3
-		var v7 uint8 = 4
-		var v8 uint8 = 5
-		var v9 uint8 = 6
-		v10 := [6]uint8{v4, v5, v6, v7, v8, v9}
-		v3.SetVariant(v10)
-		v1.Value = v3
-		var v11 uint32 = 20
-		v1.After = v11
-
-		encodeSuccessCase{
-			name: "UnionSize12Alignment4",
-			context: fidl.MarshalerContext{
-				DecodeUnionsFromXUnionBytes: false,
-				EncodeUnionsAsXUnionBytes:   false,
-			},
-			input: &v1,
-			bytes: []byte{
-				0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
-				0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x00, 0x00,
-				0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-			},
-		}.check(t)
-	}
-
-	{
-		v1 := conformance.SandwichUnionSize12Alignment4{}
-		var v2 uint32 = 10
-		v1.Before = v2
-		v3 := conformance.UnionSize12Alignment4{}
-		var v4 uint8 = 1
-		var v5 uint8 = 2
-		var v6 uint8 = 3
-		var v7 uint8 = 4
-		var v8 uint8 = 5
-		var v9 uint8 = 6
-		v10 := [6]uint8{v4, v5, v6, v7, v8, v9}
-		v3.SetVariant(v10)
-		v1.Value = v3
-		var v11 uint32 = 20
-		v1.After = v11
-
-		encodeSuccessCase{
-			name: "UnionSize12Alignment4_v1",
-			context: fidl.MarshalerContext{
-				DecodeUnionsFromXUnionBytes: true,
-				EncodeUnionsAsXUnionBytes:   true,
-			},
-			input: &v1,
-			bytes: []byte{
-				0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
-				0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x00, 0x00,
-			},
-		}.check(t)
-	}
-
-	{
-		v1 := conformance.SandwichUnionSize24Alignment8{}
-		var v2 uint32 = 10
-		v1.Before = v2
-		v3 := conformance.UnionSize24Alignment8{}
-		v4 := conformance.StructSize16Alignment8{}
-		var v5 uint64 = 1
-		v4.F1 = v5
-		var v6 uint64 = 2
-		v4.F2 = v6
-		v3.SetVariant(v4)
-		v1.Value = v3
-		var v7 uint32 = 20
-		v1.After = v7
-
-		encodeSuccessCase{
-			name: "UnionSize24Alignment8",
-			context: fidl.MarshalerContext{
-				DecodeUnionsFromXUnionBytes: false,
-				EncodeUnionsAsXUnionBytes:   false,
-			},
-			input: &v1,
-			bytes: []byte{
-				0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-			},
-		}.check(t)
-	}
-
-	{
-		v1 := conformance.SandwichUnionSize24Alignment8{}
-		var v2 uint32 = 10
-		v1.Before = v2
-		v3 := conformance.UnionSize24Alignment8{}
-		v4 := conformance.StructSize16Alignment8{}
-		var v5 uint64 = 1
-		v4.F1 = v5
-		var v6 uint64 = 2
-		v4.F2 = v6
-		v3.SetVariant(v4)
-		v1.Value = v3
-		var v7 uint32 = 20
-		v1.After = v7
-
-		encodeSuccessCase{
-			name: "UnionSize24Alignment8_v1",
-			context: fidl.MarshalerContext{
-				DecodeUnionsFromXUnionBytes: true,
-				EncodeUnionsAsXUnionBytes:   true,
-			},
-			input: &v1,
-			bytes: []byte{
-				0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
-				0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-			},
-		}.check(t)
-	}
-
-	{
-		v1 := conformance.SandwichUnionSize36Alignment4{}
-		var v2 uint32 = 10
-		v1.Before = v2
-		v3 := conformance.UnionSize36Alignment4{}
-		var v4 uint8 = 1
-		var v5 uint8 = 2
-		var v6 uint8 = 3
-		var v7 uint8 = 4
-		var v8 uint8 = 5
-		var v9 uint8 = 6
-		var v10 uint8 = 7
-		var v11 uint8 = 8
-		var v12 uint8 = 9
-		var v13 uint8 = 10
-		var v14 uint8 = 11
-		var v15 uint8 = 12
-		var v16 uint8 = 13
-		var v17 uint8 = 14
-		var v18 uint8 = 15
-		var v19 uint8 = 16
-		var v20 uint8 = 17
-		var v21 uint8 = 18
-		var v22 uint8 = 19
-		var v23 uint8 = 20
-		var v24 uint8 = 21
-		var v25 uint8 = 22
-		var v26 uint8 = 23
-		var v27 uint8 = 24
-		var v28 uint8 = 25
-		var v29 uint8 = 26
-		var v30 uint8 = 27
-		var v31 uint8 = 28
-		var v32 uint8 = 29
-		var v33 uint8 = 30
-		var v34 uint8 = 31
-		var v35 uint8 = 32
-		v36 := [32]uint8{v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35}
-		v3.SetVariant(v36)
-		v1.Value = v3
-		var v37 uint32 = 20
-		v1.After = v37
-
-		encodeSuccessCase{
-			name: "UnionSize36Alignment4",
-			context: fidl.MarshalerContext{
-				DecodeUnionsFromXUnionBytes: false,
-				EncodeUnionsAsXUnionBytes:   false,
-			},
-			input: &v1,
-			bytes: []byte{
-				0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
-				0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
-				0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10,
-				0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,
-				0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20,
-				0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-			},
-		}.check(t)
-	}
-
-	{
-		v1 := conformance.SandwichUnionSize36Alignment4{}
-		var v2 uint32 = 10
-		v1.Before = v2
-		v3 := conformance.UnionSize36Alignment4{}
-		var v4 uint8 = 1
-		var v5 uint8 = 2
-		var v6 uint8 = 3
-		var v7 uint8 = 4
-		var v8 uint8 = 5
-		var v9 uint8 = 6
-		var v10 uint8 = 7
-		var v11 uint8 = 8
-		var v12 uint8 = 9
-		var v13 uint8 = 10
-		var v14 uint8 = 11
-		var v15 uint8 = 12
-		var v16 uint8 = 13
-		var v17 uint8 = 14
-		var v18 uint8 = 15
-		var v19 uint8 = 16
-		var v20 uint8 = 17
-		var v21 uint8 = 18
-		var v22 uint8 = 19
-		var v23 uint8 = 20
-		var v24 uint8 = 21
-		var v25 uint8 = 22
-		var v26 uint8 = 23
-		var v27 uint8 = 24
-		var v28 uint8 = 25
-		var v29 uint8 = 26
-		var v30 uint8 = 27
-		var v31 uint8 = 28
-		var v32 uint8 = 29
-		var v33 uint8 = 30
-		var v34 uint8 = 31
-		var v35 uint8 = 32
-		v36 := [32]uint8{v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35}
-		v3.SetVariant(v36)
-		v1.Value = v3
-		var v37 uint32 = 20
-		v1.After = v37
-
-		encodeSuccessCase{
-			name: "UnionSize36Alignment4_v1",
-			context: fidl.MarshalerContext{
-				DecodeUnionsFromXUnionBytes: true,
-				EncodeUnionsAsXUnionBytes:   true,
-			},
-			input: &v1,
-			bytes: []byte{
-				0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
-				0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
-				0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10,
-				0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,
-				0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20,
-			},
-		}.check(t)
-	}
-
 }
 
 func TestAllDecodeSuccessCases(t *testing.T) {
@@ -8352,6 +9407,1373 @@
 	}
 
 	{
+		v1 := conformance.TransformerEmptyStruct{}
+
+		decodeSuccessCase{
+			name: "TransformerEmptyStruct",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: false,
+				EncodeUnionsAsXUnionBytes:   false,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.TransformerEmptyStruct{}
+
+		decodeSuccessCase{
+			name: "TransformerEmptyStruct_v1",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: true,
+				EncodeUnionsAsXUnionBytes:   true,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.EmptyStructUnionStruct{}
+		v2 := conformance.EmptyStructUnion{}
+		v3 := conformance.TransformerEmptyStruct{}
+		v2.SetEs(v3)
+		v1.U = v2
+
+		decodeSuccessCase{
+			name: "EmptyStructUnion",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: false,
+				EncodeUnionsAsXUnionBytes:   false,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.EmptyStructUnionStruct{}
+		v2 := conformance.EmptyStructUnion{}
+		v3 := conformance.TransformerEmptyStruct{}
+		v2.SetEs(v3)
+		v1.U = v2
+
+		decodeSuccessCase{
+			name: "EmptyStructUnion_v1",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: true,
+				EncodeUnionsAsXUnionBytes:   true,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.NoCodingTablesStressor{}
+		var v2 uint64 = 1229782938247303441
+		v1.F1 = v2
+		var v3 uint64 = 2459565876494606882
+		v1.F2 = v3
+		v4 := conformance.UnionSize36Align4{}
+		var v5 uint8 = 51
+		var v6 uint8 = 51
+		var v7 uint8 = 51
+		var v8 uint8 = 51
+		var v9 uint8 = 51
+		var v10 uint8 = 51
+		var v11 uint8 = 51
+		var v12 uint8 = 51
+		var v13 uint8 = 51
+		var v14 uint8 = 51
+		var v15 uint8 = 51
+		var v16 uint8 = 51
+		var v17 uint8 = 51
+		var v18 uint8 = 51
+		var v19 uint8 = 51
+		var v20 uint8 = 51
+		var v21 uint8 = 51
+		var v22 uint8 = 51
+		var v23 uint8 = 51
+		var v24 uint8 = 51
+		var v25 uint8 = 51
+		var v26 uint8 = 51
+		var v27 uint8 = 51
+		var v28 uint8 = 51
+		var v29 uint8 = 51
+		var v30 uint8 = 51
+		var v31 uint8 = 51
+		var v32 uint8 = 51
+		var v33 uint8 = 51
+		var v34 uint8 = 51
+		var v35 uint8 = 51
+		var v36 uint8 = 51
+		v37 := [32]uint8{v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36}
+		v4.SetVariant(v37)
+		v1.U1 = v4
+		var v38 uint64 = 4919131752989213764
+		v1.F3 = v38
+		var v39 uint64 = 6148914691236517205
+		v1.F4 = v39
+		v40 := conformance.UnionSize36Align4{}
+		var v41 uint8 = 102
+		var v42 uint8 = 102
+		var v43 uint8 = 102
+		var v44 uint8 = 102
+		var v45 uint8 = 102
+		var v46 uint8 = 102
+		var v47 uint8 = 102
+		var v48 uint8 = 102
+		var v49 uint8 = 102
+		var v50 uint8 = 102
+		var v51 uint8 = 102
+		var v52 uint8 = 102
+		var v53 uint8 = 102
+		var v54 uint8 = 102
+		var v55 uint8 = 102
+		var v56 uint8 = 102
+		var v57 uint8 = 102
+		var v58 uint8 = 102
+		var v59 uint8 = 102
+		var v60 uint8 = 102
+		var v61 uint8 = 102
+		var v62 uint8 = 102
+		var v63 uint8 = 102
+		var v64 uint8 = 102
+		var v65 uint8 = 102
+		var v66 uint8 = 102
+		var v67 uint8 = 102
+		var v68 uint8 = 102
+		var v69 uint8 = 102
+		var v70 uint8 = 102
+		var v71 uint8 = 102
+		var v72 uint8 = 102
+		v73 := [32]uint8{v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72}
+		v40.SetVariant(v73)
+		v1.U2 = v40
+		var v74 uint64 = 8608480567731124087
+		v1.F5 = v74
+		var v75 uint64 = 9838263505978427528
+		v1.F6 = v75
+		v76 := conformance.UnionSize36Align4{}
+		var v77 uint8 = 153
+		var v78 uint8 = 153
+		var v79 uint8 = 153
+		var v80 uint8 = 153
+		var v81 uint8 = 153
+		var v82 uint8 = 153
+		var v83 uint8 = 153
+		var v84 uint8 = 153
+		var v85 uint8 = 153
+		var v86 uint8 = 153
+		var v87 uint8 = 153
+		var v88 uint8 = 153
+		var v89 uint8 = 153
+		var v90 uint8 = 153
+		var v91 uint8 = 153
+		var v92 uint8 = 153
+		var v93 uint8 = 153
+		var v94 uint8 = 153
+		var v95 uint8 = 153
+		var v96 uint8 = 153
+		var v97 uint8 = 153
+		var v98 uint8 = 153
+		var v99 uint8 = 153
+		var v100 uint8 = 153
+		var v101 uint8 = 153
+		var v102 uint8 = 153
+		var v103 uint8 = 153
+		var v104 uint8 = 153
+		var v105 uint8 = 153
+		var v106 uint8 = 153
+		var v107 uint8 = 153
+		var v108 uint8 = 153
+		v109 := [32]uint8{v77, v78, v79, v80, v81, v82, v83, v84, v85, v86, v87, v88, v89, v90, v91, v92, v93, v94, v95, v96, v97, v98, v99, v100, v101, v102, v103, v104, v105, v106, v107, v108}
+		v76.SetVariant(v109)
+		v1.U3 = v76
+		var v110 uint64 = 12297829382473034410
+		v1.F7 = v110
+		v111 := &conformance.Size8Align8{}
+		var v112 uint64 = 17216961135462248174
+		v111.Data = v112
+		v1.P1 = v111
+		var v113 uint64 = 13527612320720337851
+		v1.F8 = v113
+		v114 := &conformance.Size8Align8{}
+		var v115 uint64 = 17216961135462248174
+		v114.Data = v115
+		v1.P2 = v114
+		var v116 uint64 = 15987178197214944733
+		v1.F9 = v116
+
+		decodeSuccessCase{
+			name: "NoCodingTablesStressor",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: false,
+				EncodeUnionsAsXUnionBytes:   false,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
+				0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
+				0x03, 0x00, 0x00, 0x00, 0x33, 0x33, 0x33, 0x33,
+				0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
+				0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
+				0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
+				0x33, 0x33, 0x33, 0x33, 0x00, 0x00, 0x00, 0x00,
+				0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
+				0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+				0x03, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66,
+				0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,
+				0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,
+				0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,
+				0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00,
+				0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
+				0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
+				0x03, 0x00, 0x00, 0x00, 0x99, 0x99, 0x99, 0x99,
+				0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
+				0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
+				0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
+				0x99, 0x99, 0x99, 0x99, 0x00, 0x00, 0x00, 0x00,
+				0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
+				0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee,
+				0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.NoCodingTablesStressor{}
+		var v2 uint64 = 1229782938247303441
+		v1.F1 = v2
+		var v3 uint64 = 2459565876494606882
+		v1.F2 = v3
+		v4 := conformance.UnionSize36Align4{}
+		var v5 uint8 = 51
+		var v6 uint8 = 51
+		var v7 uint8 = 51
+		var v8 uint8 = 51
+		var v9 uint8 = 51
+		var v10 uint8 = 51
+		var v11 uint8 = 51
+		var v12 uint8 = 51
+		var v13 uint8 = 51
+		var v14 uint8 = 51
+		var v15 uint8 = 51
+		var v16 uint8 = 51
+		var v17 uint8 = 51
+		var v18 uint8 = 51
+		var v19 uint8 = 51
+		var v20 uint8 = 51
+		var v21 uint8 = 51
+		var v22 uint8 = 51
+		var v23 uint8 = 51
+		var v24 uint8 = 51
+		var v25 uint8 = 51
+		var v26 uint8 = 51
+		var v27 uint8 = 51
+		var v28 uint8 = 51
+		var v29 uint8 = 51
+		var v30 uint8 = 51
+		var v31 uint8 = 51
+		var v32 uint8 = 51
+		var v33 uint8 = 51
+		var v34 uint8 = 51
+		var v35 uint8 = 51
+		var v36 uint8 = 51
+		v37 := [32]uint8{v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36}
+		v4.SetVariant(v37)
+		v1.U1 = v4
+		var v38 uint64 = 4919131752989213764
+		v1.F3 = v38
+		var v39 uint64 = 6148914691236517205
+		v1.F4 = v39
+		v40 := conformance.UnionSize36Align4{}
+		var v41 uint8 = 102
+		var v42 uint8 = 102
+		var v43 uint8 = 102
+		var v44 uint8 = 102
+		var v45 uint8 = 102
+		var v46 uint8 = 102
+		var v47 uint8 = 102
+		var v48 uint8 = 102
+		var v49 uint8 = 102
+		var v50 uint8 = 102
+		var v51 uint8 = 102
+		var v52 uint8 = 102
+		var v53 uint8 = 102
+		var v54 uint8 = 102
+		var v55 uint8 = 102
+		var v56 uint8 = 102
+		var v57 uint8 = 102
+		var v58 uint8 = 102
+		var v59 uint8 = 102
+		var v60 uint8 = 102
+		var v61 uint8 = 102
+		var v62 uint8 = 102
+		var v63 uint8 = 102
+		var v64 uint8 = 102
+		var v65 uint8 = 102
+		var v66 uint8 = 102
+		var v67 uint8 = 102
+		var v68 uint8 = 102
+		var v69 uint8 = 102
+		var v70 uint8 = 102
+		var v71 uint8 = 102
+		var v72 uint8 = 102
+		v73 := [32]uint8{v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72}
+		v40.SetVariant(v73)
+		v1.U2 = v40
+		var v74 uint64 = 8608480567731124087
+		v1.F5 = v74
+		var v75 uint64 = 9838263505978427528
+		v1.F6 = v75
+		v76 := conformance.UnionSize36Align4{}
+		var v77 uint8 = 153
+		var v78 uint8 = 153
+		var v79 uint8 = 153
+		var v80 uint8 = 153
+		var v81 uint8 = 153
+		var v82 uint8 = 153
+		var v83 uint8 = 153
+		var v84 uint8 = 153
+		var v85 uint8 = 153
+		var v86 uint8 = 153
+		var v87 uint8 = 153
+		var v88 uint8 = 153
+		var v89 uint8 = 153
+		var v90 uint8 = 153
+		var v91 uint8 = 153
+		var v92 uint8 = 153
+		var v93 uint8 = 153
+		var v94 uint8 = 153
+		var v95 uint8 = 153
+		var v96 uint8 = 153
+		var v97 uint8 = 153
+		var v98 uint8 = 153
+		var v99 uint8 = 153
+		var v100 uint8 = 153
+		var v101 uint8 = 153
+		var v102 uint8 = 153
+		var v103 uint8 = 153
+		var v104 uint8 = 153
+		var v105 uint8 = 153
+		var v106 uint8 = 153
+		var v107 uint8 = 153
+		var v108 uint8 = 153
+		v109 := [32]uint8{v77, v78, v79, v80, v81, v82, v83, v84, v85, v86, v87, v88, v89, v90, v91, v92, v93, v94, v95, v96, v97, v98, v99, v100, v101, v102, v103, v104, v105, v106, v107, v108}
+		v76.SetVariant(v109)
+		v1.U3 = v76
+		var v110 uint64 = 12297829382473034410
+		v1.F7 = v110
+		v111 := &conformance.Size8Align8{}
+		var v112 uint64 = 17216961135462248174
+		v111.Data = v112
+		v1.P1 = v111
+		var v113 uint64 = 13527612320720337851
+		v1.F8 = v113
+		v114 := &conformance.Size8Align8{}
+		var v115 uint64 = 17216961135462248174
+		v114.Data = v115
+		v1.P2 = v114
+		var v116 uint64 = 15987178197214944733
+		v1.F9 = v116
+
+		decodeSuccessCase{
+			name: "NoCodingTablesStressor_v1",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: true,
+				EncodeUnionsAsXUnionBytes:   true,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
+				0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
+				0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
+				0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+				0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
+				0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
+				0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
+				0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
+				0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
+				0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
+				0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
+				0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,
+				0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,
+				0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,
+				0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,
+				0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
+				0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
+				0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
+				0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
+				0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee,
+				0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.OutOfLineSandwich1{}
+		v2 := "soft migrations rock!"
+		v1.Before = v2
+		v3 := conformance.Sandwich1{}
+		var v4 uint32 = 67305985
+		v3.Before = v4
+		v5 := conformance.UnionSize8Align4{}
+		var v6 uint32 = 202050057
+		v5.SetVariant(v6)
+		v3.TheUnion = v5
+		var v7 uint32 = 134678021
+		v3.After = v7
+		v8 := []conformance.Sandwich1{v3}
+		v1.V = v8
+		v9 := "hard transitions suck!"
+		v1.After = v9
+
+		decodeSuccessCase{
+			name: "OutOfLineSandwich1Case1",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: false,
+				EncodeUnionsAsXUnionBytes:   false,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x73, 0x6f, 0x66, 0x74, 0x20, 0x6d, 0x69, 0x67,
+				0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20,
+				0x72, 0x6f, 0x63, 0x6b, 0x21, 0x00, 0x00, 0x00,
+				0x01, 0x02, 0x03, 0x04, 0x02, 0x00, 0x00, 0x00,
+				0x09, 0x0a, 0x0b, 0x0c, 0x05, 0x06, 0x07, 0x08,
+				0x68, 0x61, 0x72, 0x64, 0x20, 0x74, 0x72, 0x61,
+				0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+				0x20, 0x73, 0x75, 0x63, 0x6b, 0x21, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.OutOfLineSandwich1{}
+		v2 := "soft migrations rock!"
+		v1.Before = v2
+		v3 := conformance.Sandwich1{}
+		var v4 uint32 = 67305985
+		v3.Before = v4
+		v5 := conformance.UnionSize8Align4{}
+		var v6 uint32 = 202050057
+		v5.SetVariant(v6)
+		v3.TheUnion = v5
+		var v7 uint32 = 134678021
+		v3.After = v7
+		v8 := []conformance.Sandwich1{v3}
+		v1.V = v8
+		v9 := "hard transitions suck!"
+		v1.After = v9
+
+		decodeSuccessCase{
+			name: "OutOfLineSandwich1Case1_v1",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: true,
+				EncodeUnionsAsXUnionBytes:   true,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x73, 0x6f, 0x66, 0x74, 0x20, 0x6d, 0x69, 0x67,
+				0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20,
+				0x72, 0x6f, 0x63, 0x6b, 0x21, 0x00, 0x00, 0x00,
+				0x01, 0x02, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00,
+				0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x05, 0x06, 0x07, 0x08, 0x00, 0x00, 0x00, 0x00,
+				0x09, 0x0a, 0x0b, 0x0c, 0x00, 0x00, 0x00, 0x00,
+				0x68, 0x61, 0x72, 0x64, 0x20, 0x74, 0x72, 0x61,
+				0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+				0x20, 0x73, 0x75, 0x63, 0x6b, 0x21, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.OutOfLineSandwich1WithOptUnion{}
+		v2 := "soft migrations rock!"
+		v1.Before = v2
+		v3 := conformance.Sandwich1WithOptUnion{}
+		var v4 uint32 = 67305985
+		v3.Before = v4
+		v5 := &conformance.UnionSize8Align4{}
+		var v6 uint32 = 202050057
+		v5.SetVariant(v6)
+		v3.OptUnion = v5
+		var v7 uint32 = 134678021
+		v3.After = v7
+		v8 := []conformance.Sandwich1WithOptUnion{v3}
+		v1.V = v8
+		v9 := "hard transitions suck!"
+		v1.After = v9
+
+		decodeSuccessCase{
+			name: "OutOfLineSandwich1WithOptUnionPresent",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: false,
+				EncodeUnionsAsXUnionBytes:   false,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x73, 0x6f, 0x66, 0x74, 0x20, 0x6d, 0x69, 0x67,
+				0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20,
+				0x72, 0x6f, 0x63, 0x6b, 0x21, 0x00, 0x00, 0x00,
+				0x01, 0x02, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x05, 0x06, 0x07, 0x08, 0x00, 0x00, 0x00, 0x00,
+				0x02, 0x00, 0x00, 0x00, 0x09, 0x0a, 0x0b, 0x0c,
+				0x68, 0x61, 0x72, 0x64, 0x20, 0x74, 0x72, 0x61,
+				0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+				0x20, 0x73, 0x75, 0x63, 0x6b, 0x21, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.OutOfLineSandwich1WithOptUnion{}
+		v2 := "soft migrations rock!"
+		v1.Before = v2
+		v3 := conformance.Sandwich1WithOptUnion{}
+		var v4 uint32 = 67305985
+		v3.Before = v4
+		v5 := &conformance.UnionSize8Align4{}
+		var v6 uint32 = 202050057
+		v5.SetVariant(v6)
+		v3.OptUnion = v5
+		var v7 uint32 = 134678021
+		v3.After = v7
+		v8 := []conformance.Sandwich1WithOptUnion{v3}
+		v1.V = v8
+		v9 := "hard transitions suck!"
+		v1.After = v9
+
+		decodeSuccessCase{
+			name: "OutOfLineSandwich1WithOptUnionPresent_v1",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: true,
+				EncodeUnionsAsXUnionBytes:   true,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x73, 0x6f, 0x66, 0x74, 0x20, 0x6d, 0x69, 0x67,
+				0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20,
+				0x72, 0x6f, 0x63, 0x6b, 0x21, 0x00, 0x00, 0x00,
+				0x01, 0x02, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00,
+				0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x05, 0x06, 0x07, 0x08, 0x00, 0x00, 0x00, 0x00,
+				0x09, 0x0a, 0x0b, 0x0c, 0x00, 0x00, 0x00, 0x00,
+				0x68, 0x61, 0x72, 0x64, 0x20, 0x74, 0x72, 0x61,
+				0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+				0x20, 0x73, 0x75, 0x63, 0x6b, 0x21, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.OutOfLineSandwich1WithOptUnion{}
+		v2 := "soft migrations rock!"
+		v1.Before = v2
+		v3 := conformance.Sandwich1WithOptUnion{}
+		var v4 uint32 = 67305985
+		v3.Before = v4
+		var v5 uint32 = 134678021
+		v3.After = v5
+		v6 := []conformance.Sandwich1WithOptUnion{v3}
+		v1.V = v6
+		v7 := "hard transitions suck!"
+		v1.After = v7
+
+		decodeSuccessCase{
+			name: "OutOfLineSandwich1WithOptUnionAbsent",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: false,
+				EncodeUnionsAsXUnionBytes:   false,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x73, 0x6f, 0x66, 0x74, 0x20, 0x6d, 0x69, 0x67,
+				0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20,
+				0x72, 0x6f, 0x63, 0x6b, 0x21, 0x00, 0x00, 0x00,
+				0x01, 0x02, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00,
+				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x05, 0x06, 0x07, 0x08, 0x00, 0x00, 0x00, 0x00,
+				0x68, 0x61, 0x72, 0x64, 0x20, 0x74, 0x72, 0x61,
+				0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+				0x20, 0x73, 0x75, 0x63, 0x6b, 0x21, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.OutOfLineSandwich1WithOptUnion{}
+		v2 := "soft migrations rock!"
+		v1.Before = v2
+		v3 := conformance.Sandwich1WithOptUnion{}
+		var v4 uint32 = 67305985
+		v3.Before = v4
+		var v5 uint32 = 134678021
+		v3.After = v5
+		v6 := []conformance.Sandwich1WithOptUnion{v3}
+		v1.V = v6
+		v7 := "hard transitions suck!"
+		v1.After = v7
+
+		decodeSuccessCase{
+			name: "OutOfLineSandwich1WithOptUnionAbsent_v1",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: true,
+				EncodeUnionsAsXUnionBytes:   true,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x73, 0x6f, 0x66, 0x74, 0x20, 0x6d, 0x69, 0x67,
+				0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20,
+				0x72, 0x6f, 0x63, 0x6b, 0x21, 0x00, 0x00, 0x00,
+				0x01, 0x02, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00,
+				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x05, 0x06, 0x07, 0x08, 0x00, 0x00, 0x00, 0x00,
+				0x68, 0x61, 0x72, 0x64, 0x20, 0x74, 0x72, 0x61,
+				0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+				0x20, 0x73, 0x75, 0x63, 0x6b, 0x21, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.Regression4{}
+		var v2 uint8 = 1
+		v1.F1 = v2
+		var v3 uint32 = 2
+		v1.F2 = v3
+		v4 := conformance.StructSize3Align1{}
+		var v5 uint8 = 9
+		var v6 uint8 = 10
+		var v7 uint8 = 11
+		v8 := [3]uint8{v5, v6, v7}
+		v4.ThreeBytes = v8
+		v1.S1 = v4
+		var v9 uint8 = 3
+		v1.F3 = v9
+		var v10 uint16 = 4
+		v1.F4 = v10
+		var v11 uint64 = 5
+		v1.F5 = v11
+		var v12 uint8 = 6
+		v1.F6 = v12
+
+		decodeSuccessCase{
+			name: "Regression4",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: false,
+				EncodeUnionsAsXUnionBytes:   false,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+				0x09, 0x0a, 0x0b, 0x03, 0x04, 0x00, 0x00, 0x00,
+				0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.Regression4{}
+		var v2 uint8 = 1
+		v1.F1 = v2
+		var v3 uint32 = 2
+		v1.F2 = v3
+		v4 := conformance.StructSize3Align1{}
+		var v5 uint8 = 9
+		var v6 uint8 = 10
+		var v7 uint8 = 11
+		v8 := [3]uint8{v5, v6, v7}
+		v4.ThreeBytes = v8
+		v1.S1 = v4
+		var v9 uint8 = 3
+		v1.F3 = v9
+		var v10 uint16 = 4
+		v1.F4 = v10
+		var v11 uint64 = 5
+		v1.F5 = v11
+		var v12 uint8 = 6
+		v1.F6 = v12
+
+		decodeSuccessCase{
+			name: "Regression4_v1",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: true,
+				EncodeUnionsAsXUnionBytes:   true,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+				0x09, 0x0a, 0x0b, 0x03, 0x04, 0x00, 0x00, 0x00,
+				0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.Sandwich4Align8{}
+		v2 := conformance.Sandwich4{}
+		var v3 uint32 = 67305985
+		v2.Before = v3
+		v4 := conformance.UnionSize36Align4{}
+		var v5 uint8 = 160
+		var v6 uint8 = 161
+		var v7 uint8 = 162
+		var v8 uint8 = 163
+		var v9 uint8 = 164
+		var v10 uint8 = 165
+		var v11 uint8 = 166
+		var v12 uint8 = 167
+		var v13 uint8 = 168
+		var v14 uint8 = 169
+		var v15 uint8 = 170
+		var v16 uint8 = 171
+		var v17 uint8 = 172
+		var v18 uint8 = 173
+		var v19 uint8 = 174
+		var v20 uint8 = 175
+		var v21 uint8 = 176
+		var v22 uint8 = 177
+		var v23 uint8 = 178
+		var v24 uint8 = 179
+		var v25 uint8 = 180
+		var v26 uint8 = 181
+		var v27 uint8 = 182
+		var v28 uint8 = 183
+		var v29 uint8 = 184
+		var v30 uint8 = 185
+		var v31 uint8 = 186
+		var v32 uint8 = 187
+		var v33 uint8 = 188
+		var v34 uint8 = 189
+		var v35 uint8 = 190
+		var v36 uint8 = 191
+		v37 := [32]uint8{v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36}
+		v4.SetVariant(v37)
+		v2.TheUnion = v4
+		var v38 uint32 = 134678021
+		v2.After = v38
+		v1.Sandwich4 = v2
+		var v39 uint64 = 1157159078456920585
+		v1.Alignment8Enforcement = v39
+
+		decodeSuccessCase{
+			name: "Sandwich4Align8",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: false,
+				EncodeUnionsAsXUnionBytes:   false,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x01, 0x02, 0x03, 0x04, 0x03, 0x00, 0x00, 0x00,
+				0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
+				0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
+				0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
+				0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
+				0x05, 0x06, 0x07, 0x08, 0x00, 0x00, 0x00, 0x00,
+				0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.Sandwich4Align8{}
+		v2 := conformance.Sandwich4{}
+		var v3 uint32 = 67305985
+		v2.Before = v3
+		v4 := conformance.UnionSize36Align4{}
+		var v5 uint8 = 160
+		var v6 uint8 = 161
+		var v7 uint8 = 162
+		var v8 uint8 = 163
+		var v9 uint8 = 164
+		var v10 uint8 = 165
+		var v11 uint8 = 166
+		var v12 uint8 = 167
+		var v13 uint8 = 168
+		var v14 uint8 = 169
+		var v15 uint8 = 170
+		var v16 uint8 = 171
+		var v17 uint8 = 172
+		var v18 uint8 = 173
+		var v19 uint8 = 174
+		var v20 uint8 = 175
+		var v21 uint8 = 176
+		var v22 uint8 = 177
+		var v23 uint8 = 178
+		var v24 uint8 = 179
+		var v25 uint8 = 180
+		var v26 uint8 = 181
+		var v27 uint8 = 182
+		var v28 uint8 = 183
+		var v29 uint8 = 184
+		var v30 uint8 = 185
+		var v31 uint8 = 186
+		var v32 uint8 = 187
+		var v33 uint8 = 188
+		var v34 uint8 = 189
+		var v35 uint8 = 190
+		var v36 uint8 = 191
+		v37 := [32]uint8{v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36}
+		v4.SetVariant(v37)
+		v2.TheUnion = v4
+		var v38 uint32 = 134678021
+		v2.After = v38
+		v1.Sandwich4 = v2
+		var v39 uint64 = 1157159078456920585
+		v1.Alignment8Enforcement = v39
+
+		decodeSuccessCase{
+			name: "Sandwich4Align8_v1",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: true,
+				EncodeUnionsAsXUnionBytes:   true,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x01, 0x02, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00,
+				0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x05, 0x06, 0x07, 0x08, 0x00, 0x00, 0x00, 0x00,
+				0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10,
+				0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
+				0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
+				0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
+				0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.Sandwich4Align8WithPointer{}
+		v2 := conformance.Sandwich4{}
+		var v3 uint32 = 67305985
+		v2.Before = v3
+		v4 := conformance.UnionSize36Align4{}
+		var v5 uint8 = 160
+		var v6 uint8 = 161
+		var v7 uint8 = 162
+		var v8 uint8 = 163
+		var v9 uint8 = 164
+		var v10 uint8 = 165
+		var v11 uint8 = 166
+		var v12 uint8 = 167
+		var v13 uint8 = 168
+		var v14 uint8 = 169
+		var v15 uint8 = 170
+		var v16 uint8 = 171
+		var v17 uint8 = 172
+		var v18 uint8 = 173
+		var v19 uint8 = 174
+		var v20 uint8 = 175
+		var v21 uint8 = 176
+		var v22 uint8 = 177
+		var v23 uint8 = 178
+		var v24 uint8 = 179
+		var v25 uint8 = 180
+		var v26 uint8 = 181
+		var v27 uint8 = 182
+		var v28 uint8 = 183
+		var v29 uint8 = 184
+		var v30 uint8 = 185
+		var v31 uint8 = 186
+		var v32 uint8 = 187
+		var v33 uint8 = 188
+		var v34 uint8 = 189
+		var v35 uint8 = 190
+		var v36 uint8 = 191
+		v37 := [32]uint8{v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36}
+		v4.SetVariant(v37)
+		v2.TheUnion = v4
+		var v38 uint32 = 134678021
+		v2.After = v38
+		v1.Sandwich4 = v2
+		v39 := &conformance.Size8Align8{}
+		var v40 uint64 = 1157159078456920585
+		v39.Data = v40
+		v1.Alignment8Enforcement = v39
+
+		decodeSuccessCase{
+			name: "Sandwich4Align8WithPointer",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: false,
+				EncodeUnionsAsXUnionBytes:   false,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x01, 0x02, 0x03, 0x04, 0x03, 0x00, 0x00, 0x00,
+				0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
+				0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
+				0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
+				0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
+				0x05, 0x06, 0x07, 0x08, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.Sandwich4Align8WithPointer{}
+		v2 := conformance.Sandwich4{}
+		var v3 uint32 = 67305985
+		v2.Before = v3
+		v4 := conformance.UnionSize36Align4{}
+		var v5 uint8 = 160
+		var v6 uint8 = 161
+		var v7 uint8 = 162
+		var v8 uint8 = 163
+		var v9 uint8 = 164
+		var v10 uint8 = 165
+		var v11 uint8 = 166
+		var v12 uint8 = 167
+		var v13 uint8 = 168
+		var v14 uint8 = 169
+		var v15 uint8 = 170
+		var v16 uint8 = 171
+		var v17 uint8 = 172
+		var v18 uint8 = 173
+		var v19 uint8 = 174
+		var v20 uint8 = 175
+		var v21 uint8 = 176
+		var v22 uint8 = 177
+		var v23 uint8 = 178
+		var v24 uint8 = 179
+		var v25 uint8 = 180
+		var v26 uint8 = 181
+		var v27 uint8 = 182
+		var v28 uint8 = 183
+		var v29 uint8 = 184
+		var v30 uint8 = 185
+		var v31 uint8 = 186
+		var v32 uint8 = 187
+		var v33 uint8 = 188
+		var v34 uint8 = 189
+		var v35 uint8 = 190
+		var v36 uint8 = 191
+		v37 := [32]uint8{v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36}
+		v4.SetVariant(v37)
+		v2.TheUnion = v4
+		var v38 uint32 = 134678021
+		v2.After = v38
+		v1.Sandwich4 = v2
+		v39 := &conformance.Size8Align8{}
+		var v40 uint64 = 1157159078456920585
+		v39.Data = v40
+		v1.Alignment8Enforcement = v39
+
+		decodeSuccessCase{
+			name: "Sandwich4Align8WithPointer_v1",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: true,
+				EncodeUnionsAsXUnionBytes:   true,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x01, 0x02, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00,
+				0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x05, 0x06, 0x07, 0x08, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
+				0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
+				0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
+				0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
+				0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.Sandwich8{}
+		var v2 uint64 = 67305985
+		v1.Before = v2
+		v3 := conformance.UnionOfUnion{}
+		v4 := conformance.UnionSize8Align4{}
+		var v5 uint32 = 202050057
+		v4.SetVariant(v5)
+		v3.SetSize8align4(v4)
+		v1.UnionOfUnion = v3
+		var v6 uint32 = 134678021
+		v1.After = v6
+
+		decodeSuccessCase{
+			name: "Sandwich8Case1",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: false,
+				EncodeUnionsAsXUnionBytes:   false,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x01, 0x02, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00,
+				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x02, 0x00, 0x00, 0x00, 0x09, 0x0a, 0x0b, 0x0c,
+				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x05, 0x06, 0x07, 0x08, 0x00, 0x00, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.Sandwich8{}
+		var v2 uint64 = 67305985
+		v1.Before = v2
+		v3 := conformance.UnionOfUnion{}
+		v4 := conformance.UnionSize8Align4{}
+		var v5 uint32 = 202050057
+		v4.SetVariant(v5)
+		v3.SetSize8align4(v4)
+		v1.UnionOfUnion = v3
+		var v6 uint32 = 134678021
+		v1.After = v6
+
+		decodeSuccessCase{
+			name: "Sandwich8Case1_v1",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: true,
+				EncodeUnionsAsXUnionBytes:   true,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x01, 0x02, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00,
+				0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x05, 0x06, 0x07, 0x08, 0x00, 0x00, 0x00, 0x00,
+				0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x09, 0x0a, 0x0b, 0x0c, 0x00, 0x00, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.Sandwich9{}
+		var v2 uint16 = 513
+		v1.Before = v2
+		v3 := conformance.UnionWithVectorOfVectors{}
+		v4 := &conformance.StructSize3Align1{}
+		var v5 uint8 = 16
+		var v6 uint8 = 17
+		var v7 uint8 = 18
+		v8 := [3]uint8{v5, v6, v7}
+		v4.ThreeBytes = v8
+		v9 := &conformance.StructSize3Align1{}
+		var v10 uint8 = 19
+		var v11 uint8 = 20
+		var v12 uint8 = 21
+		v13 := [3]uint8{v10, v11, v12}
+		v9.ThreeBytes = v13
+		v14 := []*conformance.StructSize3Align1{v4, v9}
+		v15 := [][]*conformance.StructSize3Align1{v14}
+		v3.SetV(v15)
+		v1.TheUnion = v3
+		var v16 uint16 = 4625
+		v1.After = v16
+
+		decodeSuccessCase{
+			name: "Sandwich9Case1",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: false,
+				EncodeUnionsAsXUnionBytes:   false,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x11, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x10, 0x11, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x13, 0x14, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.Sandwich9{}
+		var v2 uint16 = 513
+		v1.Before = v2
+		v3 := conformance.UnionWithVectorOfVectors{}
+		v4 := &conformance.StructSize3Align1{}
+		var v5 uint8 = 16
+		var v6 uint8 = 17
+		var v7 uint8 = 18
+		v8 := [3]uint8{v5, v6, v7}
+		v4.ThreeBytes = v8
+		v9 := &conformance.StructSize3Align1{}
+		var v10 uint8 = 19
+		var v11 uint8 = 20
+		var v12 uint8 = 21
+		v13 := [3]uint8{v10, v11, v12}
+		v9.ThreeBytes = v13
+		v14 := []*conformance.StructSize3Align1{v4, v9}
+		v15 := [][]*conformance.StructSize3Align1{v14}
+		v3.SetV(v15)
+		v1.TheUnion = v3
+		var v16 uint16 = 4625
+		v1.After = v16
+
+		decodeSuccessCase{
+			name: "Sandwich9Case1_v1",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: true,
+				EncodeUnionsAsXUnionBytes:   true,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x11, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x10, 0x11, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x13, 0x14, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.SimpleTableArrayStruct{}
+		v2 := conformance.TransformerSimpleTable{}
+		var v3 uint32 = 2745344416
+		v2.SetValue(v3)
+		v4 := conformance.TransformerSimpleTable{}
+		var v5 uint32 = 3014832560
+		v4.SetValue(v5)
+		v6 := [2]conformance.TransformerSimpleTable{v2, v4}
+		v1.TheArray = v6
+
+		decodeSuccessCase{
+			name: "SimpleTableArrayStruct",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: false,
+				EncodeUnionsAsXUnionBytes:   false,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0xa0, 0xa1, 0xa2, 0xa3, 0x00, 0x00, 0x00, 0x00,
+				0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0xb0, 0xb1, 0xb2, 0xb3, 0x00, 0x00, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.SimpleTableArrayStruct{}
+		v2 := conformance.TransformerSimpleTable{}
+		var v3 uint32 = 2745344416
+		v2.SetValue(v3)
+		v4 := conformance.TransformerSimpleTable{}
+		var v5 uint32 = 3014832560
+		v4.SetValue(v5)
+		v6 := [2]conformance.TransformerSimpleTable{v2, v4}
+		v1.TheArray = v6
+
+		decodeSuccessCase{
+			name: "SimpleTableArrayStruct_v1",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: true,
+				EncodeUnionsAsXUnionBytes:   true,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0xa0, 0xa1, 0xa2, 0xa3, 0x00, 0x00, 0x00, 0x00,
+				0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0xb0, 0xb1, 0xb2, 0xb3, 0x00, 0x00, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.StringUnionVector{}
+		v2 := &conformance.StringUnion{}
+		v3 := "hello"
+		v2.SetS(v3)
+		v4 := &conformance.StringUnion{}
+		var v5 uint8 = 170
+		v4.SetU8(v5)
+		v6 := &conformance.StringUnion{}
+		var v7 uint8 = 187
+		v6.SetU8(v7)
+		v8 := []*conformance.StringUnion{v2, v4, v6}
+		v1.TheVector = v8
+
+		decodeSuccessCase{
+			name: "StringUnionVector",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: false,
+				EncodeUnionsAsXUnionBytes:   false,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x00, 0x00, 0x00,
+				0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
+		v1 := conformance.StringUnionVector{}
+		v2 := &conformance.StringUnion{}
+		v3 := "hello"
+		v2.SetS(v3)
+		v4 := &conformance.StringUnion{}
+		var v5 uint8 = 170
+		v4.SetU8(v5)
+		v6 := &conformance.StringUnion{}
+		var v7 uint8 = 187
+		v6.SetU8(v7)
+		v8 := []*conformance.StringUnion{v2, v4, v6}
+		v1.TheVector = v8
+
+		decodeSuccessCase{
+			name: "StringUnionVector_v1",
+			context: fidl.MarshalerContext{
+				DecodeUnionsFromXUnionBytes: true,
+				EncodeUnionsAsXUnionBytes:   true,
+			},
+			input: &v1,
+			bytes: []byte{
+				0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x00, 0x00, 0x00,
+				0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			},
+		}.check(t)
+	}
+
+	{
 		v1 := conformance.UnionWithBoundStringStruct{}
 		v2 := conformance.UnionWithBoundString{}
 		v3 := "abcd"
@@ -8417,318 +10839,6 @@
 		}.check(t)
 	}
 
-	{
-		v1 := conformance.SandwichUnionSize8Alignment4{}
-		var v2 uint32 = 10
-		v1.Before = v2
-		v3 := conformance.UnionSize8Alignment4{}
-		var v4 uint32 = 4
-		v3.SetVariant(v4)
-		v1.Value = v3
-		var v5 uint32 = 20
-		v1.After = v5
-
-		decodeSuccessCase{
-			name: "UnionSize8Alignment4",
-			context: fidl.MarshalerContext{
-				DecodeUnionsFromXUnionBytes: false,
-				EncodeUnionsAsXUnionBytes:   false,
-			},
-			input: &v1,
-			bytes: []byte{
-				0x0a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
-				0x04, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
-			},
-		}.check(t)
-	}
-
-	{
-		v1 := conformance.SandwichUnionSize8Alignment4{}
-		var v2 uint32 = 10
-		v1.Before = v2
-		v3 := conformance.UnionSize8Alignment4{}
-		var v4 uint32 = 4
-		v3.SetVariant(v4)
-		v1.Value = v3
-		var v5 uint32 = 20
-		v1.After = v5
-
-		decodeSuccessCase{
-			name: "UnionSize8Alignment4_v1",
-			context: fidl.MarshalerContext{
-				DecodeUnionsFromXUnionBytes: true,
-				EncodeUnionsAsXUnionBytes:   true,
-			},
-			input: &v1,
-			bytes: []byte{
-				0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
-				0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-			},
-		}.check(t)
-	}
-
-	{
-		v1 := conformance.SandwichUnionSize12Alignment4{}
-		var v2 uint32 = 10
-		v1.Before = v2
-		v3 := conformance.UnionSize12Alignment4{}
-		var v4 uint8 = 1
-		var v5 uint8 = 2
-		var v6 uint8 = 3
-		var v7 uint8 = 4
-		var v8 uint8 = 5
-		var v9 uint8 = 6
-		v10 := [6]uint8{v4, v5, v6, v7, v8, v9}
-		v3.SetVariant(v10)
-		v1.Value = v3
-		var v11 uint32 = 20
-		v1.After = v11
-
-		decodeSuccessCase{
-			name: "UnionSize12Alignment4",
-			context: fidl.MarshalerContext{
-				DecodeUnionsFromXUnionBytes: false,
-				EncodeUnionsAsXUnionBytes:   false,
-			},
-			input: &v1,
-			bytes: []byte{
-				0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
-				0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x00, 0x00,
-				0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-			},
-		}.check(t)
-	}
-
-	{
-		v1 := conformance.SandwichUnionSize12Alignment4{}
-		var v2 uint32 = 10
-		v1.Before = v2
-		v3 := conformance.UnionSize12Alignment4{}
-		var v4 uint8 = 1
-		var v5 uint8 = 2
-		var v6 uint8 = 3
-		var v7 uint8 = 4
-		var v8 uint8 = 5
-		var v9 uint8 = 6
-		v10 := [6]uint8{v4, v5, v6, v7, v8, v9}
-		v3.SetVariant(v10)
-		v1.Value = v3
-		var v11 uint32 = 20
-		v1.After = v11
-
-		decodeSuccessCase{
-			name: "UnionSize12Alignment4_v1",
-			context: fidl.MarshalerContext{
-				DecodeUnionsFromXUnionBytes: true,
-				EncodeUnionsAsXUnionBytes:   true,
-			},
-			input: &v1,
-			bytes: []byte{
-				0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
-				0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x00, 0x00,
-			},
-		}.check(t)
-	}
-
-	{
-		v1 := conformance.SandwichUnionSize24Alignment8{}
-		var v2 uint32 = 10
-		v1.Before = v2
-		v3 := conformance.UnionSize24Alignment8{}
-		v4 := conformance.StructSize16Alignment8{}
-		var v5 uint64 = 1
-		v4.F1 = v5
-		var v6 uint64 = 2
-		v4.F2 = v6
-		v3.SetVariant(v4)
-		v1.Value = v3
-		var v7 uint32 = 20
-		v1.After = v7
-
-		decodeSuccessCase{
-			name: "UnionSize24Alignment8",
-			context: fidl.MarshalerContext{
-				DecodeUnionsFromXUnionBytes: false,
-				EncodeUnionsAsXUnionBytes:   false,
-			},
-			input: &v1,
-			bytes: []byte{
-				0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-			},
-		}.check(t)
-	}
-
-	{
-		v1 := conformance.SandwichUnionSize24Alignment8{}
-		var v2 uint32 = 10
-		v1.Before = v2
-		v3 := conformance.UnionSize24Alignment8{}
-		v4 := conformance.StructSize16Alignment8{}
-		var v5 uint64 = 1
-		v4.F1 = v5
-		var v6 uint64 = 2
-		v4.F2 = v6
-		v3.SetVariant(v4)
-		v1.Value = v3
-		var v7 uint32 = 20
-		v1.After = v7
-
-		decodeSuccessCase{
-			name: "UnionSize24Alignment8_v1",
-			context: fidl.MarshalerContext{
-				DecodeUnionsFromXUnionBytes: true,
-				EncodeUnionsAsXUnionBytes:   true,
-			},
-			input: &v1,
-			bytes: []byte{
-				0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
-				0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-			},
-		}.check(t)
-	}
-
-	{
-		v1 := conformance.SandwichUnionSize36Alignment4{}
-		var v2 uint32 = 10
-		v1.Before = v2
-		v3 := conformance.UnionSize36Alignment4{}
-		var v4 uint8 = 1
-		var v5 uint8 = 2
-		var v6 uint8 = 3
-		var v7 uint8 = 4
-		var v8 uint8 = 5
-		var v9 uint8 = 6
-		var v10 uint8 = 7
-		var v11 uint8 = 8
-		var v12 uint8 = 9
-		var v13 uint8 = 10
-		var v14 uint8 = 11
-		var v15 uint8 = 12
-		var v16 uint8 = 13
-		var v17 uint8 = 14
-		var v18 uint8 = 15
-		var v19 uint8 = 16
-		var v20 uint8 = 17
-		var v21 uint8 = 18
-		var v22 uint8 = 19
-		var v23 uint8 = 20
-		var v24 uint8 = 21
-		var v25 uint8 = 22
-		var v26 uint8 = 23
-		var v27 uint8 = 24
-		var v28 uint8 = 25
-		var v29 uint8 = 26
-		var v30 uint8 = 27
-		var v31 uint8 = 28
-		var v32 uint8 = 29
-		var v33 uint8 = 30
-		var v34 uint8 = 31
-		var v35 uint8 = 32
-		v36 := [32]uint8{v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35}
-		v3.SetVariant(v36)
-		v1.Value = v3
-		var v37 uint32 = 20
-		v1.After = v37
-
-		decodeSuccessCase{
-			name: "UnionSize36Alignment4",
-			context: fidl.MarshalerContext{
-				DecodeUnionsFromXUnionBytes: false,
-				EncodeUnionsAsXUnionBytes:   false,
-			},
-			input: &v1,
-			bytes: []byte{
-				0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
-				0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
-				0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10,
-				0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,
-				0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20,
-				0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-			},
-		}.check(t)
-	}
-
-	{
-		v1 := conformance.SandwichUnionSize36Alignment4{}
-		var v2 uint32 = 10
-		v1.Before = v2
-		v3 := conformance.UnionSize36Alignment4{}
-		var v4 uint8 = 1
-		var v5 uint8 = 2
-		var v6 uint8 = 3
-		var v7 uint8 = 4
-		var v8 uint8 = 5
-		var v9 uint8 = 6
-		var v10 uint8 = 7
-		var v11 uint8 = 8
-		var v12 uint8 = 9
-		var v13 uint8 = 10
-		var v14 uint8 = 11
-		var v15 uint8 = 12
-		var v16 uint8 = 13
-		var v17 uint8 = 14
-		var v18 uint8 = 15
-		var v19 uint8 = 16
-		var v20 uint8 = 17
-		var v21 uint8 = 18
-		var v22 uint8 = 19
-		var v23 uint8 = 20
-		var v24 uint8 = 21
-		var v25 uint8 = 22
-		var v26 uint8 = 23
-		var v27 uint8 = 24
-		var v28 uint8 = 25
-		var v29 uint8 = 26
-		var v30 uint8 = 27
-		var v31 uint8 = 28
-		var v32 uint8 = 29
-		var v33 uint8 = 30
-		var v34 uint8 = 31
-		var v35 uint8 = 32
-		v36 := [32]uint8{v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35}
-		v3.SetVariant(v36)
-		v1.Value = v3
-		var v37 uint32 = 20
-		v1.After = v37
-
-		decodeSuccessCase{
-			name: "UnionSize36Alignment4_v1",
-			context: fidl.MarshalerContext{
-				DecodeUnionsFromXUnionBytes: true,
-				EncodeUnionsAsXUnionBytes:   true,
-			},
-			input: &v1,
-			bytes: []byte{
-				0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
-				0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-				0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
-				0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10,
-				0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,
-				0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20,
-			},
-		}.check(t)
-	}
-
 }
 
 func TestAllEncodeFailureCases(t *testing.T) {