// ************************************************************
// DO NOT EDIT.
// THIS FILE IS AUTO-GENERATED BY codecgen.
// ************************************************************

package benchmark

import (
	"errors"
	"fmt"
	codec1978 "github.com/ugorji/go/codec"
	"reflect"
	"runtime"
)

const (
	// ----- content types ----
	codecSelferC_UTF86212 = 1
	codecSelferC_RAW6212  = 0
	// ----- value types used ----
	codecSelferValueTypeArray6212 = 10
	codecSelferValueTypeMap6212   = 9
	// ----- containerStateValues ----
	codecSelfer_containerMapKey6212    = 2
	codecSelfer_containerMapValue6212  = 3
	codecSelfer_containerMapEnd6212    = 4
	codecSelfer_containerArrayElem6212 = 6
	codecSelfer_containerArrayEnd6212  = 7
)

var (
	codecSelferBitsize6212                         = uint8(reflect.TypeOf(uint(0)).Bits())
	codecSelferOnlyMapOrArrayEncodeToStructErr6212 = errors.New(`only encoded map or array can be decoded into a struct`)
)

type codecSelfer6212 struct{}

func init() {
	if codec1978.GenVersion != 5 {
		_, file, _, _ := runtime.Caller(0)
		err := fmt.Errorf("codecgen version mismatch: current: %v, need %v. Re-generate file: %v",
			5, codec1978.GenVersion, file)
		panic(err)
	}
	if false { // reference the types, but skip this branch at build/run time
	}
}

func (x *SmallPayload) CodecEncodeSelf(e *codec1978.Encoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperEncoder(e)
	_, _, _ = h, z, r
	if x == nil {
		r.EncodeNil()
	} else {
		yym1 := z.EncBinary()
		_ = yym1
		if false {
		} else if z.HasExtensions() && z.EncExt(x) {
		} else if !yym1 && z.IsJSONHandle() {
			z.EncJSONMarshal(x)
		} else {
			yysep2 := !z.EncBinary()
			yy2arr2 := z.EncBasicHandle().StructToArray
			var yyq2 [9]bool
			_, _, _ = yysep2, yyq2, yy2arr2
			const yyr2 bool = false
			var yynn2 int
			if yyr2 || yy2arr2 {
				r.EncodeArrayStart(9)
			} else {
				yynn2 = 9
				for _, b := range yyq2 {
					if b {
						yynn2++
					}
				}
				r.EncodeMapStart(yynn2)
				yynn2 = 0
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayElem6212)
				yym4 := z.EncBinary()
				_ = yym4
				if false {
				} else {
					r.EncodeInt(int64(x.St))
				}
			} else {
				z.EncSendContainerState(codecSelfer_containerMapKey6212)
				r.EncodeString(codecSelferC_UTF86212, string("St"))
				z.EncSendContainerState(codecSelfer_containerMapValue6212)
				yym5 := z.EncBinary()
				_ = yym5
				if false {
				} else {
					r.EncodeInt(int64(x.St))
				}
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayElem6212)
				yym7 := z.EncBinary()
				_ = yym7
				if false {
				} else {
					r.EncodeInt(int64(x.Sid))
				}
			} else {
				z.EncSendContainerState(codecSelfer_containerMapKey6212)
				r.EncodeString(codecSelferC_UTF86212, string("Sid"))
				z.EncSendContainerState(codecSelfer_containerMapValue6212)
				yym8 := z.EncBinary()
				_ = yym8
				if false {
				} else {
					r.EncodeInt(int64(x.Sid))
				}
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayElem6212)
				yym10 := z.EncBinary()
				_ = yym10
				if false {
				} else {
					r.EncodeString(codecSelferC_UTF86212, string(x.Tt))
				}
			} else {
				z.EncSendContainerState(codecSelfer_containerMapKey6212)
				r.EncodeString(codecSelferC_UTF86212, string("Tt"))
				z.EncSendContainerState(codecSelfer_containerMapValue6212)
				yym11 := z.EncBinary()
				_ = yym11
				if false {
				} else {
					r.EncodeString(codecSelferC_UTF86212, string(x.Tt))
				}
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayElem6212)
				yym13 := z.EncBinary()
				_ = yym13
				if false {
				} else {
					r.EncodeInt(int64(x.Gr))
				}
			} else {
				z.EncSendContainerState(codecSelfer_containerMapKey6212)
				r.EncodeString(codecSelferC_UTF86212, string("Gr"))
				z.EncSendContainerState(codecSelfer_containerMapValue6212)
				yym14 := z.EncBinary()
				_ = yym14
				if false {
				} else {
					r.EncodeInt(int64(x.Gr))
				}
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayElem6212)
				yym16 := z.EncBinary()
				_ = yym16
				if false {
				} else {
					r.EncodeString(codecSelferC_UTF86212, string(x.Uuid))
				}
			} else {
				z.EncSendContainerState(codecSelfer_containerMapKey6212)
				r.EncodeString(codecSelferC_UTF86212, string("Uuid"))
				z.EncSendContainerState(codecSelfer_containerMapValue6212)
				yym17 := z.EncBinary()
				_ = yym17
				if false {
				} else {
					r.EncodeString(codecSelferC_UTF86212, string(x.Uuid))
				}
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayElem6212)
				yym19 := z.EncBinary()
				_ = yym19
				if false {
				} else {
					r.EncodeString(codecSelferC_UTF86212, string(x.Ip))
				}
			} else {
				z.EncSendContainerState(codecSelfer_containerMapKey6212)
				r.EncodeString(codecSelferC_UTF86212, string("Ip"))
				z.EncSendContainerState(codecSelfer_containerMapValue6212)
				yym20 := z.EncBinary()
				_ = yym20
				if false {
				} else {
					r.EncodeString(codecSelferC_UTF86212, string(x.Ip))
				}
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayElem6212)
				yym22 := z.EncBinary()
				_ = yym22
				if false {
				} else {
					r.EncodeString(codecSelferC_UTF86212, string(x.Ua))
				}
			} else {
				z.EncSendContainerState(codecSelfer_containerMapKey6212)
				r.EncodeString(codecSelferC_UTF86212, string("Ua"))
				z.EncSendContainerState(codecSelfer_containerMapValue6212)
				yym23 := z.EncBinary()
				_ = yym23
				if false {
				} else {
					r.EncodeString(codecSelferC_UTF86212, string(x.Ua))
				}
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayElem6212)
				yym25 := z.EncBinary()
				_ = yym25
				if false {
				} else {
					r.EncodeInt(int64(x.Tz))
				}
			} else {
				z.EncSendContainerState(codecSelfer_containerMapKey6212)
				r.EncodeString(codecSelferC_UTF86212, string("Tz"))
				z.EncSendContainerState(codecSelfer_containerMapValue6212)
				yym26 := z.EncBinary()
				_ = yym26
				if false {
				} else {
					r.EncodeInt(int64(x.Tz))
				}
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayElem6212)
				yym28 := z.EncBinary()
				_ = yym28
				if false {
				} else {
					r.EncodeInt(int64(x.V))
				}
			} else {
				z.EncSendContainerState(codecSelfer_containerMapKey6212)
				r.EncodeString(codecSelferC_UTF86212, string("V"))
				z.EncSendContainerState(codecSelfer_containerMapValue6212)
				yym29 := z.EncBinary()
				_ = yym29
				if false {
				} else {
					r.EncodeInt(int64(x.V))
				}
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayEnd6212)
			} else {
				z.EncSendContainerState(codecSelfer_containerMapEnd6212)
			}
		}
	}
}

func (x *SmallPayload) CodecDecodeSelf(d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r
	yym1 := z.DecBinary()
	_ = yym1
	if false {
	} else if z.HasExtensions() && z.DecExt(x) {
	} else if !yym1 && z.IsJSONHandle() {
		z.DecJSONUnmarshal(x)
	} else {
		yyct2 := r.ContainerType()
		if yyct2 == codecSelferValueTypeMap6212 {
			yyl2 := r.ReadMapStart()
			if yyl2 == 0 {
				z.DecSendContainerState(codecSelfer_containerMapEnd6212)
			} else {
				x.codecDecodeSelfFromMap(yyl2, d)
			}
		} else if yyct2 == codecSelferValueTypeArray6212 {
			yyl2 := r.ReadArrayStart()
			if yyl2 == 0 {
				z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
			} else {
				x.codecDecodeSelfFromArray(yyl2, d)
			}
		} else {
			panic(codecSelferOnlyMapOrArrayEncodeToStructErr6212)
		}
	}
}

func (x *SmallPayload) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yys3Slc = z.DecScratchBuffer() // default slice to decode into
	_ = yys3Slc
	var yyhl3 bool = l >= 0
	for yyj3 := 0; ; yyj3++ {
		if yyhl3 {
			if yyj3 >= l {
				break
			}
		} else {
			if r.CheckBreak() {
				break
			}
		}
		z.DecSendContainerState(codecSelfer_containerMapKey6212)
		yys3Slc = r.DecodeBytes(yys3Slc, true, true)
		yys3 := string(yys3Slc)
		z.DecSendContainerState(codecSelfer_containerMapValue6212)
		switch yys3 {
		case "St":
			if r.TryDecodeAsNil() {
				x.St = 0
			} else {
				yyv4 := &x.St
				yym5 := z.DecBinary()
				_ = yym5
				if false {
				} else {
					*((*int)(yyv4)) = int(r.DecodeInt(codecSelferBitsize6212))
				}
			}
		case "Sid":
			if r.TryDecodeAsNil() {
				x.Sid = 0
			} else {
				yyv6 := &x.Sid
				yym7 := z.DecBinary()
				_ = yym7
				if false {
				} else {
					*((*int)(yyv6)) = int(r.DecodeInt(codecSelferBitsize6212))
				}
			}
		case "Tt":
			if r.TryDecodeAsNil() {
				x.Tt = ""
			} else {
				yyv8 := &x.Tt
				yym9 := z.DecBinary()
				_ = yym9
				if false {
				} else {
					*((*string)(yyv8)) = r.DecodeString()
				}
			}
		case "Gr":
			if r.TryDecodeAsNil() {
				x.Gr = 0
			} else {
				yyv10 := &x.Gr
				yym11 := z.DecBinary()
				_ = yym11
				if false {
				} else {
					*((*int)(yyv10)) = int(r.DecodeInt(codecSelferBitsize6212))
				}
			}
		case "Uuid":
			if r.TryDecodeAsNil() {
				x.Uuid = ""
			} else {
				yyv12 := &x.Uuid
				yym13 := z.DecBinary()
				_ = yym13
				if false {
				} else {
					*((*string)(yyv12)) = r.DecodeString()
				}
			}
		case "Ip":
			if r.TryDecodeAsNil() {
				x.Ip = ""
			} else {
				yyv14 := &x.Ip
				yym15 := z.DecBinary()
				_ = yym15
				if false {
				} else {
					*((*string)(yyv14)) = r.DecodeString()
				}
			}
		case "Ua":
			if r.TryDecodeAsNil() {
				x.Ua = ""
			} else {
				yyv16 := &x.Ua
				yym17 := z.DecBinary()
				_ = yym17
				if false {
				} else {
					*((*string)(yyv16)) = r.DecodeString()
				}
			}
		case "Tz":
			if r.TryDecodeAsNil() {
				x.Tz = 0
			} else {
				yyv18 := &x.Tz
				yym19 := z.DecBinary()
				_ = yym19
				if false {
				} else {
					*((*int)(yyv18)) = int(r.DecodeInt(codecSelferBitsize6212))
				}
			}
		case "V":
			if r.TryDecodeAsNil() {
				x.V = 0
			} else {
				yyv20 := &x.V
				yym21 := z.DecBinary()
				_ = yym21
				if false {
				} else {
					*((*int)(yyv20)) = int(r.DecodeInt(codecSelferBitsize6212))
				}
			}
		default:
			z.DecStructFieldNotFound(-1, yys3)
		} // end switch yys3
	} // end for yyj3
	z.DecSendContainerState(codecSelfer_containerMapEnd6212)
}

func (x *SmallPayload) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyj22 int
	var yyb22 bool
	var yyhl22 bool = l >= 0
	yyj22++
	if yyhl22 {
		yyb22 = yyj22 > l
	} else {
		yyb22 = r.CheckBreak()
	}
	if yyb22 {
		z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
		return
	}
	z.DecSendContainerState(codecSelfer_containerArrayElem6212)
	if r.TryDecodeAsNil() {
		x.St = 0
	} else {
		yyv23 := &x.St
		yym24 := z.DecBinary()
		_ = yym24
		if false {
		} else {
			*((*int)(yyv23)) = int(r.DecodeInt(codecSelferBitsize6212))
		}
	}
	yyj22++
	if yyhl22 {
		yyb22 = yyj22 > l
	} else {
		yyb22 = r.CheckBreak()
	}
	if yyb22 {
		z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
		return
	}
	z.DecSendContainerState(codecSelfer_containerArrayElem6212)
	if r.TryDecodeAsNil() {
		x.Sid = 0
	} else {
		yyv25 := &x.Sid
		yym26 := z.DecBinary()
		_ = yym26
		if false {
		} else {
			*((*int)(yyv25)) = int(r.DecodeInt(codecSelferBitsize6212))
		}
	}
	yyj22++
	if yyhl22 {
		yyb22 = yyj22 > l
	} else {
		yyb22 = r.CheckBreak()
	}
	if yyb22 {
		z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
		return
	}
	z.DecSendContainerState(codecSelfer_containerArrayElem6212)
	if r.TryDecodeAsNil() {
		x.Tt = ""
	} else {
		yyv27 := &x.Tt
		yym28 := z.DecBinary()
		_ = yym28
		if false {
		} else {
			*((*string)(yyv27)) = r.DecodeString()
		}
	}
	yyj22++
	if yyhl22 {
		yyb22 = yyj22 > l
	} else {
		yyb22 = r.CheckBreak()
	}
	if yyb22 {
		z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
		return
	}
	z.DecSendContainerState(codecSelfer_containerArrayElem6212)
	if r.TryDecodeAsNil() {
		x.Gr = 0
	} else {
		yyv29 := &x.Gr
		yym30 := z.DecBinary()
		_ = yym30
		if false {
		} else {
			*((*int)(yyv29)) = int(r.DecodeInt(codecSelferBitsize6212))
		}
	}
	yyj22++
	if yyhl22 {
		yyb22 = yyj22 > l
	} else {
		yyb22 = r.CheckBreak()
	}
	if yyb22 {
		z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
		return
	}
	z.DecSendContainerState(codecSelfer_containerArrayElem6212)
	if r.TryDecodeAsNil() {
		x.Uuid = ""
	} else {
		yyv31 := &x.Uuid
		yym32 := z.DecBinary()
		_ = yym32
		if false {
		} else {
			*((*string)(yyv31)) = r.DecodeString()
		}
	}
	yyj22++
	if yyhl22 {
		yyb22 = yyj22 > l
	} else {
		yyb22 = r.CheckBreak()
	}
	if yyb22 {
		z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
		return
	}
	z.DecSendContainerState(codecSelfer_containerArrayElem6212)
	if r.TryDecodeAsNil() {
		x.Ip = ""
	} else {
		yyv33 := &x.Ip
		yym34 := z.DecBinary()
		_ = yym34
		if false {
		} else {
			*((*string)(yyv33)) = r.DecodeString()
		}
	}
	yyj22++
	if yyhl22 {
		yyb22 = yyj22 > l
	} else {
		yyb22 = r.CheckBreak()
	}
	if yyb22 {
		z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
		return
	}
	z.DecSendContainerState(codecSelfer_containerArrayElem6212)
	if r.TryDecodeAsNil() {
		x.Ua = ""
	} else {
		yyv35 := &x.Ua
		yym36 := z.DecBinary()
		_ = yym36
		if false {
		} else {
			*((*string)(yyv35)) = r.DecodeString()
		}
	}
	yyj22++
	if yyhl22 {
		yyb22 = yyj22 > l
	} else {
		yyb22 = r.CheckBreak()
	}
	if yyb22 {
		z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
		return
	}
	z.DecSendContainerState(codecSelfer_containerArrayElem6212)
	if r.TryDecodeAsNil() {
		x.Tz = 0
	} else {
		yyv37 := &x.Tz
		yym38 := z.DecBinary()
		_ = yym38
		if false {
		} else {
			*((*int)(yyv37)) = int(r.DecodeInt(codecSelferBitsize6212))
		}
	}
	yyj22++
	if yyhl22 {
		yyb22 = yyj22 > l
	} else {
		yyb22 = r.CheckBreak()
	}
	if yyb22 {
		z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
		return
	}
	z.DecSendContainerState(codecSelfer_containerArrayElem6212)
	if r.TryDecodeAsNil() {
		x.V = 0
	} else {
		yyv39 := &x.V
		yym40 := z.DecBinary()
		_ = yym40
		if false {
		} else {
			*((*int)(yyv39)) = int(r.DecodeInt(codecSelferBitsize6212))
		}
	}
	for {
		yyj22++
		if yyhl22 {
			yyb22 = yyj22 > l
		} else {
			yyb22 = r.CheckBreak()
		}
		if yyb22 {
			break
		}
		z.DecSendContainerState(codecSelfer_containerArrayElem6212)
		z.DecStructFieldNotFound(yyj22-1, "")
	}
	z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
}

func (x *CBAvatar) CodecEncodeSelf(e *codec1978.Encoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperEncoder(e)
	_, _, _ = h, z, r
	if x == nil {
		r.EncodeNil()
	} else {
		yym1 := z.EncBinary()
		_ = yym1
		if false {
		} else if z.HasExtensions() && z.EncExt(x) {
		} else if !yym1 && z.IsJSONHandle() {
			z.EncJSONMarshal(x)
		} else {
			yysep2 := !z.EncBinary()
			yy2arr2 := z.EncBasicHandle().StructToArray
			var yyq2 [1]bool
			_, _, _ = yysep2, yyq2, yy2arr2
			const yyr2 bool = false
			var yynn2 int
			if yyr2 || yy2arr2 {
				r.EncodeArrayStart(1)
			} else {
				yynn2 = 1
				for _, b := range yyq2 {
					if b {
						yynn2++
					}
				}
				r.EncodeMapStart(yynn2)
				yynn2 = 0
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayElem6212)
				yym4 := z.EncBinary()
				_ = yym4
				if false {
				} else {
					r.EncodeString(codecSelferC_UTF86212, string(x.Url))
				}
			} else {
				z.EncSendContainerState(codecSelfer_containerMapKey6212)
				r.EncodeString(codecSelferC_UTF86212, string("Url"))
				z.EncSendContainerState(codecSelfer_containerMapValue6212)
				yym5 := z.EncBinary()
				_ = yym5
				if false {
				} else {
					r.EncodeString(codecSelferC_UTF86212, string(x.Url))
				}
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayEnd6212)
			} else {
				z.EncSendContainerState(codecSelfer_containerMapEnd6212)
			}
		}
	}
}

func (x *CBAvatar) CodecDecodeSelf(d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r
	yym1 := z.DecBinary()
	_ = yym1
	if false {
	} else if z.HasExtensions() && z.DecExt(x) {
	} else if !yym1 && z.IsJSONHandle() {
		z.DecJSONUnmarshal(x)
	} else {
		yyct2 := r.ContainerType()
		if yyct2 == codecSelferValueTypeMap6212 {
			yyl2 := r.ReadMapStart()
			if yyl2 == 0 {
				z.DecSendContainerState(codecSelfer_containerMapEnd6212)
			} else {
				x.codecDecodeSelfFromMap(yyl2, d)
			}
		} else if yyct2 == codecSelferValueTypeArray6212 {
			yyl2 := r.ReadArrayStart()
			if yyl2 == 0 {
				z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
			} else {
				x.codecDecodeSelfFromArray(yyl2, d)
			}
		} else {
			panic(codecSelferOnlyMapOrArrayEncodeToStructErr6212)
		}
	}
}

func (x *CBAvatar) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yys3Slc = z.DecScratchBuffer() // default slice to decode into
	_ = yys3Slc
	var yyhl3 bool = l >= 0
	for yyj3 := 0; ; yyj3++ {
		if yyhl3 {
			if yyj3 >= l {
				break
			}
		} else {
			if r.CheckBreak() {
				break
			}
		}
		z.DecSendContainerState(codecSelfer_containerMapKey6212)
		yys3Slc = r.DecodeBytes(yys3Slc, true, true)
		yys3 := string(yys3Slc)
		z.DecSendContainerState(codecSelfer_containerMapValue6212)
		switch yys3 {
		case "Url":
			if r.TryDecodeAsNil() {
				x.Url = ""
			} else {
				yyv4 := &x.Url
				yym5 := z.DecBinary()
				_ = yym5
				if false {
				} else {
					*((*string)(yyv4)) = r.DecodeString()
				}
			}
		default:
			z.DecStructFieldNotFound(-1, yys3)
		} // end switch yys3
	} // end for yyj3
	z.DecSendContainerState(codecSelfer_containerMapEnd6212)
}

func (x *CBAvatar) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyj6 int
	var yyb6 bool
	var yyhl6 bool = l >= 0
	yyj6++
	if yyhl6 {
		yyb6 = yyj6 > l
	} else {
		yyb6 = r.CheckBreak()
	}
	if yyb6 {
		z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
		return
	}
	z.DecSendContainerState(codecSelfer_containerArrayElem6212)
	if r.TryDecodeAsNil() {
		x.Url = ""
	} else {
		yyv7 := &x.Url
		yym8 := z.DecBinary()
		_ = yym8
		if false {
		} else {
			*((*string)(yyv7)) = r.DecodeString()
		}
	}
	for {
		yyj6++
		if yyhl6 {
			yyb6 = yyj6 > l
		} else {
			yyb6 = r.CheckBreak()
		}
		if yyb6 {
			break
		}
		z.DecSendContainerState(codecSelfer_containerArrayElem6212)
		z.DecStructFieldNotFound(yyj6-1, "")
	}
	z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
}

func (x *CBGravatar) CodecEncodeSelf(e *codec1978.Encoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperEncoder(e)
	_, _, _ = h, z, r
	if x == nil {
		r.EncodeNil()
	} else {
		yym1 := z.EncBinary()
		_ = yym1
		if false {
		} else if z.HasExtensions() && z.EncExt(x) {
		} else if !yym1 && z.IsJSONHandle() {
			z.EncJSONMarshal(x)
		} else {
			yysep2 := !z.EncBinary()
			yy2arr2 := z.EncBasicHandle().StructToArray
			var yyq2 [1]bool
			_, _, _ = yysep2, yyq2, yy2arr2
			const yyr2 bool = false
			var yynn2 int
			if yyr2 || yy2arr2 {
				r.EncodeArrayStart(1)
			} else {
				yynn2 = 1
				for _, b := range yyq2 {
					if b {
						yynn2++
					}
				}
				r.EncodeMapStart(yynn2)
				yynn2 = 0
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayElem6212)
				if x.Avatars == nil {
					r.EncodeNil()
				} else {
					yym4 := z.EncBinary()
					_ = yym4
					if false {
					} else {
						h.encSlicePtrtoCBAvatar(([]*CBAvatar)(x.Avatars), e)
					}
				}
			} else {
				z.EncSendContainerState(codecSelfer_containerMapKey6212)
				r.EncodeString(codecSelferC_UTF86212, string("Avatars"))
				z.EncSendContainerState(codecSelfer_containerMapValue6212)
				if x.Avatars == nil {
					r.EncodeNil()
				} else {
					yym5 := z.EncBinary()
					_ = yym5
					if false {
					} else {
						h.encSlicePtrtoCBAvatar(([]*CBAvatar)(x.Avatars), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayEnd6212)
			} else {
				z.EncSendContainerState(codecSelfer_containerMapEnd6212)
			}
		}
	}
}

func (x *CBGravatar) CodecDecodeSelf(d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r
	yym1 := z.DecBinary()
	_ = yym1
	if false {
	} else if z.HasExtensions() && z.DecExt(x) {
	} else if !yym1 && z.IsJSONHandle() {
		z.DecJSONUnmarshal(x)
	} else {
		yyct2 := r.ContainerType()
		if yyct2 == codecSelferValueTypeMap6212 {
			yyl2 := r.ReadMapStart()
			if yyl2 == 0 {
				z.DecSendContainerState(codecSelfer_containerMapEnd6212)
			} else {
				x.codecDecodeSelfFromMap(yyl2, d)
			}
		} else if yyct2 == codecSelferValueTypeArray6212 {
			yyl2 := r.ReadArrayStart()
			if yyl2 == 0 {
				z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
			} else {
				x.codecDecodeSelfFromArray(yyl2, d)
			}
		} else {
			panic(codecSelferOnlyMapOrArrayEncodeToStructErr6212)
		}
	}
}

func (x *CBGravatar) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yys3Slc = z.DecScratchBuffer() // default slice to decode into
	_ = yys3Slc
	var yyhl3 bool = l >= 0
	for yyj3 := 0; ; yyj3++ {
		if yyhl3 {
			if yyj3 >= l {
				break
			}
		} else {
			if r.CheckBreak() {
				break
			}
		}
		z.DecSendContainerState(codecSelfer_containerMapKey6212)
		yys3Slc = r.DecodeBytes(yys3Slc, true, true)
		yys3 := string(yys3Slc)
		z.DecSendContainerState(codecSelfer_containerMapValue6212)
		switch yys3 {
		case "Avatars":
			if r.TryDecodeAsNil() {
				x.Avatars = nil
			} else {
				yyv4 := &x.Avatars
				yym5 := z.DecBinary()
				_ = yym5
				if false {
				} else {
					h.decSlicePtrtoCBAvatar((*[]*CBAvatar)(yyv4), d)
				}
			}
		default:
			z.DecStructFieldNotFound(-1, yys3)
		} // end switch yys3
	} // end for yyj3
	z.DecSendContainerState(codecSelfer_containerMapEnd6212)
}

func (x *CBGravatar) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyj6 int
	var yyb6 bool
	var yyhl6 bool = l >= 0
	yyj6++
	if yyhl6 {
		yyb6 = yyj6 > l
	} else {
		yyb6 = r.CheckBreak()
	}
	if yyb6 {
		z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
		return
	}
	z.DecSendContainerState(codecSelfer_containerArrayElem6212)
	if r.TryDecodeAsNil() {
		x.Avatars = nil
	} else {
		yyv7 := &x.Avatars
		yym8 := z.DecBinary()
		_ = yym8
		if false {
		} else {
			h.decSlicePtrtoCBAvatar((*[]*CBAvatar)(yyv7), d)
		}
	}
	for {
		yyj6++
		if yyhl6 {
			yyb6 = yyj6 > l
		} else {
			yyb6 = r.CheckBreak()
		}
		if yyb6 {
			break
		}
		z.DecSendContainerState(codecSelfer_containerArrayElem6212)
		z.DecStructFieldNotFound(yyj6-1, "")
	}
	z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
}

func (x *CBGithub) CodecEncodeSelf(e *codec1978.Encoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperEncoder(e)
	_, _, _ = h, z, r
	if x == nil {
		r.EncodeNil()
	} else {
		yym1 := z.EncBinary()
		_ = yym1
		if false {
		} else if z.HasExtensions() && z.EncExt(x) {
		} else if !yym1 && z.IsJSONHandle() {
			z.EncJSONMarshal(x)
		} else {
			yysep2 := !z.EncBinary()
			yy2arr2 := z.EncBasicHandle().StructToArray
			var yyq2 [1]bool
			_, _, _ = yysep2, yyq2, yy2arr2
			const yyr2 bool = false
			var yynn2 int
			if yyr2 || yy2arr2 {
				r.EncodeArrayStart(1)
			} else {
				yynn2 = 1
				for _, b := range yyq2 {
					if b {
						yynn2++
					}
				}
				r.EncodeMapStart(yynn2)
				yynn2 = 0
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayElem6212)
				yym4 := z.EncBinary()
				_ = yym4
				if false {
				} else {
					r.EncodeInt(int64(x.Followers))
				}
			} else {
				z.EncSendContainerState(codecSelfer_containerMapKey6212)
				r.EncodeString(codecSelferC_UTF86212, string("Followers"))
				z.EncSendContainerState(codecSelfer_containerMapValue6212)
				yym5 := z.EncBinary()
				_ = yym5
				if false {
				} else {
					r.EncodeInt(int64(x.Followers))
				}
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayEnd6212)
			} else {
				z.EncSendContainerState(codecSelfer_containerMapEnd6212)
			}
		}
	}
}

func (x *CBGithub) CodecDecodeSelf(d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r
	yym1 := z.DecBinary()
	_ = yym1
	if false {
	} else if z.HasExtensions() && z.DecExt(x) {
	} else if !yym1 && z.IsJSONHandle() {
		z.DecJSONUnmarshal(x)
	} else {
		yyct2 := r.ContainerType()
		if yyct2 == codecSelferValueTypeMap6212 {
			yyl2 := r.ReadMapStart()
			if yyl2 == 0 {
				z.DecSendContainerState(codecSelfer_containerMapEnd6212)
			} else {
				x.codecDecodeSelfFromMap(yyl2, d)
			}
		} else if yyct2 == codecSelferValueTypeArray6212 {
			yyl2 := r.ReadArrayStart()
			if yyl2 == 0 {
				z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
			} else {
				x.codecDecodeSelfFromArray(yyl2, d)
			}
		} else {
			panic(codecSelferOnlyMapOrArrayEncodeToStructErr6212)
		}
	}
}

func (x *CBGithub) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yys3Slc = z.DecScratchBuffer() // default slice to decode into
	_ = yys3Slc
	var yyhl3 bool = l >= 0
	for yyj3 := 0; ; yyj3++ {
		if yyhl3 {
			if yyj3 >= l {
				break
			}
		} else {
			if r.CheckBreak() {
				break
			}
		}
		z.DecSendContainerState(codecSelfer_containerMapKey6212)
		yys3Slc = r.DecodeBytes(yys3Slc, true, true)
		yys3 := string(yys3Slc)
		z.DecSendContainerState(codecSelfer_containerMapValue6212)
		switch yys3 {
		case "Followers":
			if r.TryDecodeAsNil() {
				x.Followers = 0
			} else {
				yyv4 := &x.Followers
				yym5 := z.DecBinary()
				_ = yym5
				if false {
				} else {
					*((*int)(yyv4)) = int(r.DecodeInt(codecSelferBitsize6212))
				}
			}
		default:
			z.DecStructFieldNotFound(-1, yys3)
		} // end switch yys3
	} // end for yyj3
	z.DecSendContainerState(codecSelfer_containerMapEnd6212)
}

func (x *CBGithub) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyj6 int
	var yyb6 bool
	var yyhl6 bool = l >= 0
	yyj6++
	if yyhl6 {
		yyb6 = yyj6 > l
	} else {
		yyb6 = r.CheckBreak()
	}
	if yyb6 {
		z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
		return
	}
	z.DecSendContainerState(codecSelfer_containerArrayElem6212)
	if r.TryDecodeAsNil() {
		x.Followers = 0
	} else {
		yyv7 := &x.Followers
		yym8 := z.DecBinary()
		_ = yym8
		if false {
		} else {
			*((*int)(yyv7)) = int(r.DecodeInt(codecSelferBitsize6212))
		}
	}
	for {
		yyj6++
		if yyhl6 {
			yyb6 = yyj6 > l
		} else {
			yyb6 = r.CheckBreak()
		}
		if yyb6 {
			break
		}
		z.DecSendContainerState(codecSelfer_containerArrayElem6212)
		z.DecStructFieldNotFound(yyj6-1, "")
	}
	z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
}

func (x *CBName) CodecEncodeSelf(e *codec1978.Encoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperEncoder(e)
	_, _, _ = h, z, r
	if x == nil {
		r.EncodeNil()
	} else {
		yym1 := z.EncBinary()
		_ = yym1
		if false {
		} else if z.HasExtensions() && z.EncExt(x) {
		} else if !yym1 && z.IsJSONHandle() {
			z.EncJSONMarshal(x)
		} else {
			yysep2 := !z.EncBinary()
			yy2arr2 := z.EncBasicHandle().StructToArray
			var yyq2 [1]bool
			_, _, _ = yysep2, yyq2, yy2arr2
			const yyr2 bool = false
			var yynn2 int
			if yyr2 || yy2arr2 {
				r.EncodeArrayStart(1)
			} else {
				yynn2 = 1
				for _, b := range yyq2 {
					if b {
						yynn2++
					}
				}
				r.EncodeMapStart(yynn2)
				yynn2 = 0
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayElem6212)
				yym4 := z.EncBinary()
				_ = yym4
				if false {
				} else {
					r.EncodeString(codecSelferC_UTF86212, string(x.FullName))
				}
			} else {
				z.EncSendContainerState(codecSelfer_containerMapKey6212)
				r.EncodeString(codecSelferC_UTF86212, string("FullName"))
				z.EncSendContainerState(codecSelfer_containerMapValue6212)
				yym5 := z.EncBinary()
				_ = yym5
				if false {
				} else {
					r.EncodeString(codecSelferC_UTF86212, string(x.FullName))
				}
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayEnd6212)
			} else {
				z.EncSendContainerState(codecSelfer_containerMapEnd6212)
			}
		}
	}
}

func (x *CBName) CodecDecodeSelf(d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r
	yym1 := z.DecBinary()
	_ = yym1
	if false {
	} else if z.HasExtensions() && z.DecExt(x) {
	} else if !yym1 && z.IsJSONHandle() {
		z.DecJSONUnmarshal(x)
	} else {
		yyct2 := r.ContainerType()
		if yyct2 == codecSelferValueTypeMap6212 {
			yyl2 := r.ReadMapStart()
			if yyl2 == 0 {
				z.DecSendContainerState(codecSelfer_containerMapEnd6212)
			} else {
				x.codecDecodeSelfFromMap(yyl2, d)
			}
		} else if yyct2 == codecSelferValueTypeArray6212 {
			yyl2 := r.ReadArrayStart()
			if yyl2 == 0 {
				z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
			} else {
				x.codecDecodeSelfFromArray(yyl2, d)
			}
		} else {
			panic(codecSelferOnlyMapOrArrayEncodeToStructErr6212)
		}
	}
}

func (x *CBName) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yys3Slc = z.DecScratchBuffer() // default slice to decode into
	_ = yys3Slc
	var yyhl3 bool = l >= 0
	for yyj3 := 0; ; yyj3++ {
		if yyhl3 {
			if yyj3 >= l {
				break
			}
		} else {
			if r.CheckBreak() {
				break
			}
		}
		z.DecSendContainerState(codecSelfer_containerMapKey6212)
		yys3Slc = r.DecodeBytes(yys3Slc, true, true)
		yys3 := string(yys3Slc)
		z.DecSendContainerState(codecSelfer_containerMapValue6212)
		switch yys3 {
		case "FullName":
			if r.TryDecodeAsNil() {
				x.FullName = ""
			} else {
				yyv4 := &x.FullName
				yym5 := z.DecBinary()
				_ = yym5
				if false {
				} else {
					*((*string)(yyv4)) = r.DecodeString()
				}
			}
		default:
			z.DecStructFieldNotFound(-1, yys3)
		} // end switch yys3
	} // end for yyj3
	z.DecSendContainerState(codecSelfer_containerMapEnd6212)
}

func (x *CBName) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyj6 int
	var yyb6 bool
	var yyhl6 bool = l >= 0
	yyj6++
	if yyhl6 {
		yyb6 = yyj6 > l
	} else {
		yyb6 = r.CheckBreak()
	}
	if yyb6 {
		z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
		return
	}
	z.DecSendContainerState(codecSelfer_containerArrayElem6212)
	if r.TryDecodeAsNil() {
		x.FullName = ""
	} else {
		yyv7 := &x.FullName
		yym8 := z.DecBinary()
		_ = yym8
		if false {
		} else {
			*((*string)(yyv7)) = r.DecodeString()
		}
	}
	for {
		yyj6++
		if yyhl6 {
			yyb6 = yyj6 > l
		} else {
			yyb6 = r.CheckBreak()
		}
		if yyb6 {
			break
		}
		z.DecSendContainerState(codecSelfer_containerArrayElem6212)
		z.DecStructFieldNotFound(yyj6-1, "")
	}
	z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
}

func (x *CBPerson) CodecEncodeSelf(e *codec1978.Encoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperEncoder(e)
	_, _, _ = h, z, r
	if x == nil {
		r.EncodeNil()
	} else {
		yym1 := z.EncBinary()
		_ = yym1
		if false {
		} else if z.HasExtensions() && z.EncExt(x) {
		} else if !yym1 && z.IsJSONHandle() {
			z.EncJSONMarshal(x)
		} else {
			yysep2 := !z.EncBinary()
			yy2arr2 := z.EncBasicHandle().StructToArray
			var yyq2 [3]bool
			_, _, _ = yysep2, yyq2, yy2arr2
			const yyr2 bool = false
			var yynn2 int
			if yyr2 || yy2arr2 {
				r.EncodeArrayStart(3)
			} else {
				yynn2 = 3
				for _, b := range yyq2 {
					if b {
						yynn2++
					}
				}
				r.EncodeMapStart(yynn2)
				yynn2 = 0
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayElem6212)
				if x.Name == nil {
					r.EncodeNil()
				} else {
					x.Name.CodecEncodeSelf(e)
				}
			} else {
				z.EncSendContainerState(codecSelfer_containerMapKey6212)
				r.EncodeString(codecSelferC_UTF86212, string("Name"))
				z.EncSendContainerState(codecSelfer_containerMapValue6212)
				if x.Name == nil {
					r.EncodeNil()
				} else {
					x.Name.CodecEncodeSelf(e)
				}
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayElem6212)
				if x.Github == nil {
					r.EncodeNil()
				} else {
					x.Github.CodecEncodeSelf(e)
				}
			} else {
				z.EncSendContainerState(codecSelfer_containerMapKey6212)
				r.EncodeString(codecSelferC_UTF86212, string("Github"))
				z.EncSendContainerState(codecSelfer_containerMapValue6212)
				if x.Github == nil {
					r.EncodeNil()
				} else {
					x.Github.CodecEncodeSelf(e)
				}
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayElem6212)
				if x.Gravatar == nil {
					r.EncodeNil()
				} else {
					x.Gravatar.CodecEncodeSelf(e)
				}
			} else {
				z.EncSendContainerState(codecSelfer_containerMapKey6212)
				r.EncodeString(codecSelferC_UTF86212, string("Gravatar"))
				z.EncSendContainerState(codecSelfer_containerMapValue6212)
				if x.Gravatar == nil {
					r.EncodeNil()
				} else {
					x.Gravatar.CodecEncodeSelf(e)
				}
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayEnd6212)
			} else {
				z.EncSendContainerState(codecSelfer_containerMapEnd6212)
			}
		}
	}
}

func (x *CBPerson) CodecDecodeSelf(d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r
	yym1 := z.DecBinary()
	_ = yym1
	if false {
	} else if z.HasExtensions() && z.DecExt(x) {
	} else if !yym1 && z.IsJSONHandle() {
		z.DecJSONUnmarshal(x)
	} else {
		yyct2 := r.ContainerType()
		if yyct2 == codecSelferValueTypeMap6212 {
			yyl2 := r.ReadMapStart()
			if yyl2 == 0 {
				z.DecSendContainerState(codecSelfer_containerMapEnd6212)
			} else {
				x.codecDecodeSelfFromMap(yyl2, d)
			}
		} else if yyct2 == codecSelferValueTypeArray6212 {
			yyl2 := r.ReadArrayStart()
			if yyl2 == 0 {
				z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
			} else {
				x.codecDecodeSelfFromArray(yyl2, d)
			}
		} else {
			panic(codecSelferOnlyMapOrArrayEncodeToStructErr6212)
		}
	}
}

func (x *CBPerson) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yys3Slc = z.DecScratchBuffer() // default slice to decode into
	_ = yys3Slc
	var yyhl3 bool = l >= 0
	for yyj3 := 0; ; yyj3++ {
		if yyhl3 {
			if yyj3 >= l {
				break
			}
		} else {
			if r.CheckBreak() {
				break
			}
		}
		z.DecSendContainerState(codecSelfer_containerMapKey6212)
		yys3Slc = r.DecodeBytes(yys3Slc, true, true)
		yys3 := string(yys3Slc)
		z.DecSendContainerState(codecSelfer_containerMapValue6212)
		switch yys3 {
		case "Name":
			if r.TryDecodeAsNil() {
				if x.Name != nil {
					x.Name = nil
				}
			} else {
				if x.Name == nil {
					x.Name = new(CBName)
				}
				x.Name.CodecDecodeSelf(d)
			}
		case "Github":
			if r.TryDecodeAsNil() {
				if x.Github != nil {
					x.Github = nil
				}
			} else {
				if x.Github == nil {
					x.Github = new(CBGithub)
				}
				x.Github.CodecDecodeSelf(d)
			}
		case "Gravatar":
			if r.TryDecodeAsNil() {
				if x.Gravatar != nil {
					x.Gravatar = nil
				}
			} else {
				if x.Gravatar == nil {
					x.Gravatar = new(CBGravatar)
				}
				x.Gravatar.CodecDecodeSelf(d)
			}
		default:
			z.DecStructFieldNotFound(-1, yys3)
		} // end switch yys3
	} // end for yyj3
	z.DecSendContainerState(codecSelfer_containerMapEnd6212)
}

func (x *CBPerson) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyj7 int
	var yyb7 bool
	var yyhl7 bool = l >= 0
	yyj7++
	if yyhl7 {
		yyb7 = yyj7 > l
	} else {
		yyb7 = r.CheckBreak()
	}
	if yyb7 {
		z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
		return
	}
	z.DecSendContainerState(codecSelfer_containerArrayElem6212)
	if r.TryDecodeAsNil() {
		if x.Name != nil {
			x.Name = nil
		}
	} else {
		if x.Name == nil {
			x.Name = new(CBName)
		}
		x.Name.CodecDecodeSelf(d)
	}
	yyj7++
	if yyhl7 {
		yyb7 = yyj7 > l
	} else {
		yyb7 = r.CheckBreak()
	}
	if yyb7 {
		z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
		return
	}
	z.DecSendContainerState(codecSelfer_containerArrayElem6212)
	if r.TryDecodeAsNil() {
		if x.Github != nil {
			x.Github = nil
		}
	} else {
		if x.Github == nil {
			x.Github = new(CBGithub)
		}
		x.Github.CodecDecodeSelf(d)
	}
	yyj7++
	if yyhl7 {
		yyb7 = yyj7 > l
	} else {
		yyb7 = r.CheckBreak()
	}
	if yyb7 {
		z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
		return
	}
	z.DecSendContainerState(codecSelfer_containerArrayElem6212)
	if r.TryDecodeAsNil() {
		if x.Gravatar != nil {
			x.Gravatar = nil
		}
	} else {
		if x.Gravatar == nil {
			x.Gravatar = new(CBGravatar)
		}
		x.Gravatar.CodecDecodeSelf(d)
	}
	for {
		yyj7++
		if yyhl7 {
			yyb7 = yyj7 > l
		} else {
			yyb7 = r.CheckBreak()
		}
		if yyb7 {
			break
		}
		z.DecSendContainerState(codecSelfer_containerArrayElem6212)
		z.DecStructFieldNotFound(yyj7-1, "")
	}
	z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
}

func (x *MediumPayload) CodecEncodeSelf(e *codec1978.Encoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperEncoder(e)
	_, _, _ = h, z, r
	if x == nil {
		r.EncodeNil()
	} else {
		yym1 := z.EncBinary()
		_ = yym1
		if false {
		} else if z.HasExtensions() && z.EncExt(x) {
		} else if !yym1 && z.IsJSONHandle() {
			z.EncJSONMarshal(x)
		} else {
			yysep2 := !z.EncBinary()
			yy2arr2 := z.EncBasicHandle().StructToArray
			var yyq2 [2]bool
			_, _, _ = yysep2, yyq2, yy2arr2
			const yyr2 bool = false
			var yynn2 int
			if yyr2 || yy2arr2 {
				r.EncodeArrayStart(2)
			} else {
				yynn2 = 2
				for _, b := range yyq2 {
					if b {
						yynn2++
					}
				}
				r.EncodeMapStart(yynn2)
				yynn2 = 0
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayElem6212)
				if x.Person == nil {
					r.EncodeNil()
				} else {
					x.Person.CodecEncodeSelf(e)
				}
			} else {
				z.EncSendContainerState(codecSelfer_containerMapKey6212)
				r.EncodeString(codecSelferC_UTF86212, string("Person"))
				z.EncSendContainerState(codecSelfer_containerMapValue6212)
				if x.Person == nil {
					r.EncodeNil()
				} else {
					x.Person.CodecEncodeSelf(e)
				}
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayElem6212)
				if x.Company == nil {
					r.EncodeNil()
				} else {
					yym7 := z.EncBinary()
					_ = yym7
					if false {
					} else {
						z.F.EncMapStringIntfV(x.Company, false, e)
					}
				}
			} else {
				z.EncSendContainerState(codecSelfer_containerMapKey6212)
				r.EncodeString(codecSelferC_UTF86212, string("Company"))
				z.EncSendContainerState(codecSelfer_containerMapValue6212)
				if x.Company == nil {
					r.EncodeNil()
				} else {
					yym8 := z.EncBinary()
					_ = yym8
					if false {
					} else {
						z.F.EncMapStringIntfV(x.Company, false, e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayEnd6212)
			} else {
				z.EncSendContainerState(codecSelfer_containerMapEnd6212)
			}
		}
	}
}

func (x *MediumPayload) CodecDecodeSelf(d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r
	yym1 := z.DecBinary()
	_ = yym1
	if false {
	} else if z.HasExtensions() && z.DecExt(x) {
	} else if !yym1 && z.IsJSONHandle() {
		z.DecJSONUnmarshal(x)
	} else {
		yyct2 := r.ContainerType()
		if yyct2 == codecSelferValueTypeMap6212 {
			yyl2 := r.ReadMapStart()
			if yyl2 == 0 {
				z.DecSendContainerState(codecSelfer_containerMapEnd6212)
			} else {
				x.codecDecodeSelfFromMap(yyl2, d)
			}
		} else if yyct2 == codecSelferValueTypeArray6212 {
			yyl2 := r.ReadArrayStart()
			if yyl2 == 0 {
				z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
			} else {
				x.codecDecodeSelfFromArray(yyl2, d)
			}
		} else {
			panic(codecSelferOnlyMapOrArrayEncodeToStructErr6212)
		}
	}
}

func (x *MediumPayload) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yys3Slc = z.DecScratchBuffer() // default slice to decode into
	_ = yys3Slc
	var yyhl3 bool = l >= 0
	for yyj3 := 0; ; yyj3++ {
		if yyhl3 {
			if yyj3 >= l {
				break
			}
		} else {
			if r.CheckBreak() {
				break
			}
		}
		z.DecSendContainerState(codecSelfer_containerMapKey6212)
		yys3Slc = r.DecodeBytes(yys3Slc, true, true)
		yys3 := string(yys3Slc)
		z.DecSendContainerState(codecSelfer_containerMapValue6212)
		switch yys3 {
		case "Person":
			if r.TryDecodeAsNil() {
				if x.Person != nil {
					x.Person = nil
				}
			} else {
				if x.Person == nil {
					x.Person = new(CBPerson)
				}
				x.Person.CodecDecodeSelf(d)
			}
		case "Company":
			if r.TryDecodeAsNil() {
				x.Company = nil
			} else {
				yyv5 := &x.Company
				yym6 := z.DecBinary()
				_ = yym6
				if false {
				} else {
					z.F.DecMapStringIntfX(yyv5, false, d)
				}
			}
		default:
			z.DecStructFieldNotFound(-1, yys3)
		} // end switch yys3
	} // end for yyj3
	z.DecSendContainerState(codecSelfer_containerMapEnd6212)
}

func (x *MediumPayload) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyj7 int
	var yyb7 bool
	var yyhl7 bool = l >= 0
	yyj7++
	if yyhl7 {
		yyb7 = yyj7 > l
	} else {
		yyb7 = r.CheckBreak()
	}
	if yyb7 {
		z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
		return
	}
	z.DecSendContainerState(codecSelfer_containerArrayElem6212)
	if r.TryDecodeAsNil() {
		if x.Person != nil {
			x.Person = nil
		}
	} else {
		if x.Person == nil {
			x.Person = new(CBPerson)
		}
		x.Person.CodecDecodeSelf(d)
	}
	yyj7++
	if yyhl7 {
		yyb7 = yyj7 > l
	} else {
		yyb7 = r.CheckBreak()
	}
	if yyb7 {
		z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
		return
	}
	z.DecSendContainerState(codecSelfer_containerArrayElem6212)
	if r.TryDecodeAsNil() {
		x.Company = nil
	} else {
		yyv9 := &x.Company
		yym10 := z.DecBinary()
		_ = yym10
		if false {
		} else {
			z.F.DecMapStringIntfX(yyv9, false, d)
		}
	}
	for {
		yyj7++
		if yyhl7 {
			yyb7 = yyj7 > l
		} else {
			yyb7 = r.CheckBreak()
		}
		if yyb7 {
			break
		}
		z.DecSendContainerState(codecSelfer_containerArrayElem6212)
		z.DecStructFieldNotFound(yyj7-1, "")
	}
	z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
}

func (x *DSUser) CodecEncodeSelf(e *codec1978.Encoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperEncoder(e)
	_, _, _ = h, z, r
	if x == nil {
		r.EncodeNil()
	} else {
		yym1 := z.EncBinary()
		_ = yym1
		if false {
		} else if z.HasExtensions() && z.EncExt(x) {
		} else if !yym1 && z.IsJSONHandle() {
			z.EncJSONMarshal(x)
		} else {
			yysep2 := !z.EncBinary()
			yy2arr2 := z.EncBasicHandle().StructToArray
			var yyq2 [1]bool
			_, _, _ = yysep2, yyq2, yy2arr2
			const yyr2 bool = false
			var yynn2 int
			if yyr2 || yy2arr2 {
				r.EncodeArrayStart(1)
			} else {
				yynn2 = 1
				for _, b := range yyq2 {
					if b {
						yynn2++
					}
				}
				r.EncodeMapStart(yynn2)
				yynn2 = 0
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayElem6212)
				yym4 := z.EncBinary()
				_ = yym4
				if false {
				} else {
					r.EncodeString(codecSelferC_UTF86212, string(x.Username))
				}
			} else {
				z.EncSendContainerState(codecSelfer_containerMapKey6212)
				r.EncodeString(codecSelferC_UTF86212, string("Username"))
				z.EncSendContainerState(codecSelfer_containerMapValue6212)
				yym5 := z.EncBinary()
				_ = yym5
				if false {
				} else {
					r.EncodeString(codecSelferC_UTF86212, string(x.Username))
				}
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayEnd6212)
			} else {
				z.EncSendContainerState(codecSelfer_containerMapEnd6212)
			}
		}
	}
}

func (x *DSUser) CodecDecodeSelf(d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r
	yym1 := z.DecBinary()
	_ = yym1
	if false {
	} else if z.HasExtensions() && z.DecExt(x) {
	} else if !yym1 && z.IsJSONHandle() {
		z.DecJSONUnmarshal(x)
	} else {
		yyct2 := r.ContainerType()
		if yyct2 == codecSelferValueTypeMap6212 {
			yyl2 := r.ReadMapStart()
			if yyl2 == 0 {
				z.DecSendContainerState(codecSelfer_containerMapEnd6212)
			} else {
				x.codecDecodeSelfFromMap(yyl2, d)
			}
		} else if yyct2 == codecSelferValueTypeArray6212 {
			yyl2 := r.ReadArrayStart()
			if yyl2 == 0 {
				z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
			} else {
				x.codecDecodeSelfFromArray(yyl2, d)
			}
		} else {
			panic(codecSelferOnlyMapOrArrayEncodeToStructErr6212)
		}
	}
}

func (x *DSUser) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yys3Slc = z.DecScratchBuffer() // default slice to decode into
	_ = yys3Slc
	var yyhl3 bool = l >= 0
	for yyj3 := 0; ; yyj3++ {
		if yyhl3 {
			if yyj3 >= l {
				break
			}
		} else {
			if r.CheckBreak() {
				break
			}
		}
		z.DecSendContainerState(codecSelfer_containerMapKey6212)
		yys3Slc = r.DecodeBytes(yys3Slc, true, true)
		yys3 := string(yys3Slc)
		z.DecSendContainerState(codecSelfer_containerMapValue6212)
		switch yys3 {
		case "Username":
			if r.TryDecodeAsNil() {
				x.Username = ""
			} else {
				yyv4 := &x.Username
				yym5 := z.DecBinary()
				_ = yym5
				if false {
				} else {
					*((*string)(yyv4)) = r.DecodeString()
				}
			}
		default:
			z.DecStructFieldNotFound(-1, yys3)
		} // end switch yys3
	} // end for yyj3
	z.DecSendContainerState(codecSelfer_containerMapEnd6212)
}

func (x *DSUser) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyj6 int
	var yyb6 bool
	var yyhl6 bool = l >= 0
	yyj6++
	if yyhl6 {
		yyb6 = yyj6 > l
	} else {
		yyb6 = r.CheckBreak()
	}
	if yyb6 {
		z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
		return
	}
	z.DecSendContainerState(codecSelfer_containerArrayElem6212)
	if r.TryDecodeAsNil() {
		x.Username = ""
	} else {
		yyv7 := &x.Username
		yym8 := z.DecBinary()
		_ = yym8
		if false {
		} else {
			*((*string)(yyv7)) = r.DecodeString()
		}
	}
	for {
		yyj6++
		if yyhl6 {
			yyb6 = yyj6 > l
		} else {
			yyb6 = r.CheckBreak()
		}
		if yyb6 {
			break
		}
		z.DecSendContainerState(codecSelfer_containerArrayElem6212)
		z.DecStructFieldNotFound(yyj6-1, "")
	}
	z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
}

func (x *DSTopic) CodecEncodeSelf(e *codec1978.Encoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperEncoder(e)
	_, _, _ = h, z, r
	if x == nil {
		r.EncodeNil()
	} else {
		yym1 := z.EncBinary()
		_ = yym1
		if false {
		} else if z.HasExtensions() && z.EncExt(x) {
		} else if !yym1 && z.IsJSONHandle() {
			z.EncJSONMarshal(x)
		} else {
			yysep2 := !z.EncBinary()
			yy2arr2 := z.EncBasicHandle().StructToArray
			var yyq2 [2]bool
			_, _, _ = yysep2, yyq2, yy2arr2
			const yyr2 bool = false
			var yynn2 int
			if yyr2 || yy2arr2 {
				r.EncodeArrayStart(2)
			} else {
				yynn2 = 2
				for _, b := range yyq2 {
					if b {
						yynn2++
					}
				}
				r.EncodeMapStart(yynn2)
				yynn2 = 0
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayElem6212)
				yym4 := z.EncBinary()
				_ = yym4
				if false {
				} else {
					r.EncodeInt(int64(x.Id))
				}
			} else {
				z.EncSendContainerState(codecSelfer_containerMapKey6212)
				r.EncodeString(codecSelferC_UTF86212, string("Id"))
				z.EncSendContainerState(codecSelfer_containerMapValue6212)
				yym5 := z.EncBinary()
				_ = yym5
				if false {
				} else {
					r.EncodeInt(int64(x.Id))
				}
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayElem6212)
				yym7 := z.EncBinary()
				_ = yym7
				if false {
				} else {
					r.EncodeString(codecSelferC_UTF86212, string(x.Slug))
				}
			} else {
				z.EncSendContainerState(codecSelfer_containerMapKey6212)
				r.EncodeString(codecSelferC_UTF86212, string("Slug"))
				z.EncSendContainerState(codecSelfer_containerMapValue6212)
				yym8 := z.EncBinary()
				_ = yym8
				if false {
				} else {
					r.EncodeString(codecSelferC_UTF86212, string(x.Slug))
				}
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayEnd6212)
			} else {
				z.EncSendContainerState(codecSelfer_containerMapEnd6212)
			}
		}
	}
}

func (x *DSTopic) CodecDecodeSelf(d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r
	yym1 := z.DecBinary()
	_ = yym1
	if false {
	} else if z.HasExtensions() && z.DecExt(x) {
	} else if !yym1 && z.IsJSONHandle() {
		z.DecJSONUnmarshal(x)
	} else {
		yyct2 := r.ContainerType()
		if yyct2 == codecSelferValueTypeMap6212 {
			yyl2 := r.ReadMapStart()
			if yyl2 == 0 {
				z.DecSendContainerState(codecSelfer_containerMapEnd6212)
			} else {
				x.codecDecodeSelfFromMap(yyl2, d)
			}
		} else if yyct2 == codecSelferValueTypeArray6212 {
			yyl2 := r.ReadArrayStart()
			if yyl2 == 0 {
				z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
			} else {
				x.codecDecodeSelfFromArray(yyl2, d)
			}
		} else {
			panic(codecSelferOnlyMapOrArrayEncodeToStructErr6212)
		}
	}
}

func (x *DSTopic) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yys3Slc = z.DecScratchBuffer() // default slice to decode into
	_ = yys3Slc
	var yyhl3 bool = l >= 0
	for yyj3 := 0; ; yyj3++ {
		if yyhl3 {
			if yyj3 >= l {
				break
			}
		} else {
			if r.CheckBreak() {
				break
			}
		}
		z.DecSendContainerState(codecSelfer_containerMapKey6212)
		yys3Slc = r.DecodeBytes(yys3Slc, true, true)
		yys3 := string(yys3Slc)
		z.DecSendContainerState(codecSelfer_containerMapValue6212)
		switch yys3 {
		case "Id":
			if r.TryDecodeAsNil() {
				x.Id = 0
			} else {
				yyv4 := &x.Id
				yym5 := z.DecBinary()
				_ = yym5
				if false {
				} else {
					*((*int)(yyv4)) = int(r.DecodeInt(codecSelferBitsize6212))
				}
			}
		case "Slug":
			if r.TryDecodeAsNil() {
				x.Slug = ""
			} else {
				yyv6 := &x.Slug
				yym7 := z.DecBinary()
				_ = yym7
				if false {
				} else {
					*((*string)(yyv6)) = r.DecodeString()
				}
			}
		default:
			z.DecStructFieldNotFound(-1, yys3)
		} // end switch yys3
	} // end for yyj3
	z.DecSendContainerState(codecSelfer_containerMapEnd6212)
}

func (x *DSTopic) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyj8 int
	var yyb8 bool
	var yyhl8 bool = l >= 0
	yyj8++
	if yyhl8 {
		yyb8 = yyj8 > l
	} else {
		yyb8 = r.CheckBreak()
	}
	if yyb8 {
		z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
		return
	}
	z.DecSendContainerState(codecSelfer_containerArrayElem6212)
	if r.TryDecodeAsNil() {
		x.Id = 0
	} else {
		yyv9 := &x.Id
		yym10 := z.DecBinary()
		_ = yym10
		if false {
		} else {
			*((*int)(yyv9)) = int(r.DecodeInt(codecSelferBitsize6212))
		}
	}
	yyj8++
	if yyhl8 {
		yyb8 = yyj8 > l
	} else {
		yyb8 = r.CheckBreak()
	}
	if yyb8 {
		z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
		return
	}
	z.DecSendContainerState(codecSelfer_containerArrayElem6212)
	if r.TryDecodeAsNil() {
		x.Slug = ""
	} else {
		yyv11 := &x.Slug
		yym12 := z.DecBinary()
		_ = yym12
		if false {
		} else {
			*((*string)(yyv11)) = r.DecodeString()
		}
	}
	for {
		yyj8++
		if yyhl8 {
			yyb8 = yyj8 > l
		} else {
			yyb8 = r.CheckBreak()
		}
		if yyb8 {
			break
		}
		z.DecSendContainerState(codecSelfer_containerArrayElem6212)
		z.DecStructFieldNotFound(yyj8-1, "")
	}
	z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
}

func (x *DSTopicsList) CodecEncodeSelf(e *codec1978.Encoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperEncoder(e)
	_, _, _ = h, z, r
	if x == nil {
		r.EncodeNil()
	} else {
		yym1 := z.EncBinary()
		_ = yym1
		if false {
		} else if z.HasExtensions() && z.EncExt(x) {
		} else if !yym1 && z.IsJSONHandle() {
			z.EncJSONMarshal(x)
		} else {
			yysep2 := !z.EncBinary()
			yy2arr2 := z.EncBasicHandle().StructToArray
			var yyq2 [2]bool
			_, _, _ = yysep2, yyq2, yy2arr2
			const yyr2 bool = false
			var yynn2 int
			if yyr2 || yy2arr2 {
				r.EncodeArrayStart(2)
			} else {
				yynn2 = 2
				for _, b := range yyq2 {
					if b {
						yynn2++
					}
				}
				r.EncodeMapStart(yynn2)
				yynn2 = 0
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayElem6212)
				if x.Topics == nil {
					r.EncodeNil()
				} else {
					yym4 := z.EncBinary()
					_ = yym4
					if false {
					} else {
						h.encSlicePtrtoDSTopic(([]*DSTopic)(x.Topics), e)
					}
				}
			} else {
				z.EncSendContainerState(codecSelfer_containerMapKey6212)
				r.EncodeString(codecSelferC_UTF86212, string("Topics"))
				z.EncSendContainerState(codecSelfer_containerMapValue6212)
				if x.Topics == nil {
					r.EncodeNil()
				} else {
					yym5 := z.EncBinary()
					_ = yym5
					if false {
					} else {
						h.encSlicePtrtoDSTopic(([]*DSTopic)(x.Topics), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayElem6212)
				yym7 := z.EncBinary()
				_ = yym7
				if false {
				} else {
					r.EncodeString(codecSelferC_UTF86212, string(x.MoreTopicsUrl))
				}
			} else {
				z.EncSendContainerState(codecSelfer_containerMapKey6212)
				r.EncodeString(codecSelferC_UTF86212, string("MoreTopicsUrl"))
				z.EncSendContainerState(codecSelfer_containerMapValue6212)
				yym8 := z.EncBinary()
				_ = yym8
				if false {
				} else {
					r.EncodeString(codecSelferC_UTF86212, string(x.MoreTopicsUrl))
				}
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayEnd6212)
			} else {
				z.EncSendContainerState(codecSelfer_containerMapEnd6212)
			}
		}
	}
}

func (x *DSTopicsList) CodecDecodeSelf(d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r
	yym1 := z.DecBinary()
	_ = yym1
	if false {
	} else if z.HasExtensions() && z.DecExt(x) {
	} else if !yym1 && z.IsJSONHandle() {
		z.DecJSONUnmarshal(x)
	} else {
		yyct2 := r.ContainerType()
		if yyct2 == codecSelferValueTypeMap6212 {
			yyl2 := r.ReadMapStart()
			if yyl2 == 0 {
				z.DecSendContainerState(codecSelfer_containerMapEnd6212)
			} else {
				x.codecDecodeSelfFromMap(yyl2, d)
			}
		} else if yyct2 == codecSelferValueTypeArray6212 {
			yyl2 := r.ReadArrayStart()
			if yyl2 == 0 {
				z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
			} else {
				x.codecDecodeSelfFromArray(yyl2, d)
			}
		} else {
			panic(codecSelferOnlyMapOrArrayEncodeToStructErr6212)
		}
	}
}

func (x *DSTopicsList) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yys3Slc = z.DecScratchBuffer() // default slice to decode into
	_ = yys3Slc
	var yyhl3 bool = l >= 0
	for yyj3 := 0; ; yyj3++ {
		if yyhl3 {
			if yyj3 >= l {
				break
			}
		} else {
			if r.CheckBreak() {
				break
			}
		}
		z.DecSendContainerState(codecSelfer_containerMapKey6212)
		yys3Slc = r.DecodeBytes(yys3Slc, true, true)
		yys3 := string(yys3Slc)
		z.DecSendContainerState(codecSelfer_containerMapValue6212)
		switch yys3 {
		case "Topics":
			if r.TryDecodeAsNil() {
				x.Topics = nil
			} else {
				yyv4 := &x.Topics
				yym5 := z.DecBinary()
				_ = yym5
				if false {
				} else {
					h.decSlicePtrtoDSTopic((*[]*DSTopic)(yyv4), d)
				}
			}
		case "MoreTopicsUrl":
			if r.TryDecodeAsNil() {
				x.MoreTopicsUrl = ""
			} else {
				yyv6 := &x.MoreTopicsUrl
				yym7 := z.DecBinary()
				_ = yym7
				if false {
				} else {
					*((*string)(yyv6)) = r.DecodeString()
				}
			}
		default:
			z.DecStructFieldNotFound(-1, yys3)
		} // end switch yys3
	} // end for yyj3
	z.DecSendContainerState(codecSelfer_containerMapEnd6212)
}

func (x *DSTopicsList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyj8 int
	var yyb8 bool
	var yyhl8 bool = l >= 0
	yyj8++
	if yyhl8 {
		yyb8 = yyj8 > l
	} else {
		yyb8 = r.CheckBreak()
	}
	if yyb8 {
		z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
		return
	}
	z.DecSendContainerState(codecSelfer_containerArrayElem6212)
	if r.TryDecodeAsNil() {
		x.Topics = nil
	} else {
		yyv9 := &x.Topics
		yym10 := z.DecBinary()
		_ = yym10
		if false {
		} else {
			h.decSlicePtrtoDSTopic((*[]*DSTopic)(yyv9), d)
		}
	}
	yyj8++
	if yyhl8 {
		yyb8 = yyj8 > l
	} else {
		yyb8 = r.CheckBreak()
	}
	if yyb8 {
		z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
		return
	}
	z.DecSendContainerState(codecSelfer_containerArrayElem6212)
	if r.TryDecodeAsNil() {
		x.MoreTopicsUrl = ""
	} else {
		yyv11 := &x.MoreTopicsUrl
		yym12 := z.DecBinary()
		_ = yym12
		if false {
		} else {
			*((*string)(yyv11)) = r.DecodeString()
		}
	}
	for {
		yyj8++
		if yyhl8 {
			yyb8 = yyj8 > l
		} else {
			yyb8 = r.CheckBreak()
		}
		if yyb8 {
			break
		}
		z.DecSendContainerState(codecSelfer_containerArrayElem6212)
		z.DecStructFieldNotFound(yyj8-1, "")
	}
	z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
}

func (x *LargePayload) CodecEncodeSelf(e *codec1978.Encoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperEncoder(e)
	_, _, _ = h, z, r
	if x == nil {
		r.EncodeNil()
	} else {
		yym1 := z.EncBinary()
		_ = yym1
		if false {
		} else if z.HasExtensions() && z.EncExt(x) {
		} else if !yym1 && z.IsJSONHandle() {
			z.EncJSONMarshal(x)
		} else {
			yysep2 := !z.EncBinary()
			yy2arr2 := z.EncBasicHandle().StructToArray
			var yyq2 [2]bool
			_, _, _ = yysep2, yyq2, yy2arr2
			const yyr2 bool = false
			var yynn2 int
			if yyr2 || yy2arr2 {
				r.EncodeArrayStart(2)
			} else {
				yynn2 = 2
				for _, b := range yyq2 {
					if b {
						yynn2++
					}
				}
				r.EncodeMapStart(yynn2)
				yynn2 = 0
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayElem6212)
				if x.Users == nil {
					r.EncodeNil()
				} else {
					yym4 := z.EncBinary()
					_ = yym4
					if false {
					} else {
						h.encSlicePtrtoDSUser(([]*DSUser)(x.Users), e)
					}
				}
			} else {
				z.EncSendContainerState(codecSelfer_containerMapKey6212)
				r.EncodeString(codecSelferC_UTF86212, string("Users"))
				z.EncSendContainerState(codecSelfer_containerMapValue6212)
				if x.Users == nil {
					r.EncodeNil()
				} else {
					yym5 := z.EncBinary()
					_ = yym5
					if false {
					} else {
						h.encSlicePtrtoDSUser(([]*DSUser)(x.Users), e)
					}
				}
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayElem6212)
				if x.Topics == nil {
					r.EncodeNil()
				} else {
					x.Topics.CodecEncodeSelf(e)
				}
			} else {
				z.EncSendContainerState(codecSelfer_containerMapKey6212)
				r.EncodeString(codecSelferC_UTF86212, string("Topics"))
				z.EncSendContainerState(codecSelfer_containerMapValue6212)
				if x.Topics == nil {
					r.EncodeNil()
				} else {
					x.Topics.CodecEncodeSelf(e)
				}
			}
			if yyr2 || yy2arr2 {
				z.EncSendContainerState(codecSelfer_containerArrayEnd6212)
			} else {
				z.EncSendContainerState(codecSelfer_containerMapEnd6212)
			}
		}
	}
}

func (x *LargePayload) CodecDecodeSelf(d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r
	yym1 := z.DecBinary()
	_ = yym1
	if false {
	} else if z.HasExtensions() && z.DecExt(x) {
	} else if !yym1 && z.IsJSONHandle() {
		z.DecJSONUnmarshal(x)
	} else {
		yyct2 := r.ContainerType()
		if yyct2 == codecSelferValueTypeMap6212 {
			yyl2 := r.ReadMapStart()
			if yyl2 == 0 {
				z.DecSendContainerState(codecSelfer_containerMapEnd6212)
			} else {
				x.codecDecodeSelfFromMap(yyl2, d)
			}
		} else if yyct2 == codecSelferValueTypeArray6212 {
			yyl2 := r.ReadArrayStart()
			if yyl2 == 0 {
				z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
			} else {
				x.codecDecodeSelfFromArray(yyl2, d)
			}
		} else {
			panic(codecSelferOnlyMapOrArrayEncodeToStructErr6212)
		}
	}
}

func (x *LargePayload) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yys3Slc = z.DecScratchBuffer() // default slice to decode into
	_ = yys3Slc
	var yyhl3 bool = l >= 0
	for yyj3 := 0; ; yyj3++ {
		if yyhl3 {
			if yyj3 >= l {
				break
			}
		} else {
			if r.CheckBreak() {
				break
			}
		}
		z.DecSendContainerState(codecSelfer_containerMapKey6212)
		yys3Slc = r.DecodeBytes(yys3Slc, true, true)
		yys3 := string(yys3Slc)
		z.DecSendContainerState(codecSelfer_containerMapValue6212)
		switch yys3 {
		case "Users":
			if r.TryDecodeAsNil() {
				x.Users = nil
			} else {
				yyv4 := &x.Users
				yym5 := z.DecBinary()
				_ = yym5
				if false {
				} else {
					h.decSlicePtrtoDSUser((*[]*DSUser)(yyv4), d)
				}
			}
		case "Topics":
			if r.TryDecodeAsNil() {
				if x.Topics != nil {
					x.Topics = nil
				}
			} else {
				if x.Topics == nil {
					x.Topics = new(DSTopicsList)
				}
				x.Topics.CodecDecodeSelf(d)
			}
		default:
			z.DecStructFieldNotFound(-1, yys3)
		} // end switch yys3
	} // end for yyj3
	z.DecSendContainerState(codecSelfer_containerMapEnd6212)
}

func (x *LargePayload) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r
	var yyj7 int
	var yyb7 bool
	var yyhl7 bool = l >= 0
	yyj7++
	if yyhl7 {
		yyb7 = yyj7 > l
	} else {
		yyb7 = r.CheckBreak()
	}
	if yyb7 {
		z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
		return
	}
	z.DecSendContainerState(codecSelfer_containerArrayElem6212)
	if r.TryDecodeAsNil() {
		x.Users = nil
	} else {
		yyv8 := &x.Users
		yym9 := z.DecBinary()
		_ = yym9
		if false {
		} else {
			h.decSlicePtrtoDSUser((*[]*DSUser)(yyv8), d)
		}
	}
	yyj7++
	if yyhl7 {
		yyb7 = yyj7 > l
	} else {
		yyb7 = r.CheckBreak()
	}
	if yyb7 {
		z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
		return
	}
	z.DecSendContainerState(codecSelfer_containerArrayElem6212)
	if r.TryDecodeAsNil() {
		if x.Topics != nil {
			x.Topics = nil
		}
	} else {
		if x.Topics == nil {
			x.Topics = new(DSTopicsList)
		}
		x.Topics.CodecDecodeSelf(d)
	}
	for {
		yyj7++
		if yyhl7 {
			yyb7 = yyj7 > l
		} else {
			yyb7 = r.CheckBreak()
		}
		if yyb7 {
			break
		}
		z.DecSendContainerState(codecSelfer_containerArrayElem6212)
		z.DecStructFieldNotFound(yyj7-1, "")
	}
	z.DecSendContainerState(codecSelfer_containerArrayEnd6212)
}

func (x codecSelfer6212) encSlicePtrtoCBAvatar(v []*CBAvatar, e *codec1978.Encoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.EncodeArrayStart(len(v))
	for _, yyv1 := range v {
		z.EncSendContainerState(codecSelfer_containerArrayElem6212)
		if yyv1 == nil {
			r.EncodeNil()
		} else {
			yyv1.CodecEncodeSelf(e)
		}
	}
	z.EncSendContainerState(codecSelfer_containerArrayEnd6212)
}

func (x codecSelfer6212) decSlicePtrtoCBAvatar(v *[]*CBAvatar, d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyh1, yyl1 := z.DecSliceHelperStart()
	var yyc1 bool
	_ = yyc1
	if yyl1 == 0 {
		if yyv1 == nil {
			yyv1 = []*CBAvatar{}
			yyc1 = true
		} else if len(yyv1) != 0 {
			yyv1 = yyv1[:0]
			yyc1 = true
		}
	} else if yyl1 > 0 {
		var yyrr1, yyrl1 int
		var yyrt1 bool
		_, _ = yyrl1, yyrt1
		yyrr1 = yyl1 // len(yyv1)
		if yyl1 > cap(yyv1) {

			yyrg1 := len(yyv1) > 0
			yyv21 := yyv1
			yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
			if yyrt1 {
				if yyrl1 <= cap(yyv1) {
					yyv1 = yyv1[:yyrl1]
				} else {
					yyv1 = make([]*CBAvatar, yyrl1)
				}
			} else {
				yyv1 = make([]*CBAvatar, yyrl1)
			}
			yyc1 = true
			yyrr1 = len(yyv1)
			if yyrg1 {
				copy(yyv1, yyv21)
			}
		} else if yyl1 != len(yyv1) {
			yyv1 = yyv1[:yyl1]
			yyc1 = true
		}
		yyj1 := 0
		for ; yyj1 < yyrr1; yyj1++ {
			yyh1.ElemContainerState(yyj1)
			if r.TryDecodeAsNil() {
				if yyv1[yyj1] != nil {
					*yyv1[yyj1] = CBAvatar{}
				}
			} else {
				if yyv1[yyj1] == nil {
					yyv1[yyj1] = new(CBAvatar)
				}
				yyw2 := yyv1[yyj1]
				yyw2.CodecDecodeSelf(d)
			}

		}
		if yyrt1 {
			for ; yyj1 < yyl1; yyj1++ {
				yyv1 = append(yyv1, nil)
				yyh1.ElemContainerState(yyj1)
				if r.TryDecodeAsNil() {
					if yyv1[yyj1] != nil {
						*yyv1[yyj1] = CBAvatar{}
					}
				} else {
					if yyv1[yyj1] == nil {
						yyv1[yyj1] = new(CBAvatar)
					}
					yyw3 := yyv1[yyj1]
					yyw3.CodecDecodeSelf(d)
				}

			}
		}

	} else {
		yyj1 := 0
		for ; !r.CheckBreak(); yyj1++ {

			if yyj1 >= len(yyv1) {
				yyv1 = append(yyv1, nil) // var yyz1 *CBAvatar
				yyc1 = true
			}
			yyh1.ElemContainerState(yyj1)
			if yyj1 < len(yyv1) {
				if r.TryDecodeAsNil() {
					if yyv1[yyj1] != nil {
						*yyv1[yyj1] = CBAvatar{}
					}
				} else {
					if yyv1[yyj1] == nil {
						yyv1[yyj1] = new(CBAvatar)
					}
					yyw4 := yyv1[yyj1]
					yyw4.CodecDecodeSelf(d)
				}

			} else {
				z.DecSwallow()
			}

		}
		if yyj1 < len(yyv1) {
			yyv1 = yyv1[:yyj1]
			yyc1 = true
		} else if yyj1 == 0 && yyv1 == nil {
			yyv1 = []*CBAvatar{}
			yyc1 = true
		}
	}
	yyh1.End()
	if yyc1 {
		*v = yyv1
	}
}

func (x codecSelfer6212) encSlicePtrtoDSTopic(v []*DSTopic, e *codec1978.Encoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.EncodeArrayStart(len(v))
	for _, yyv1 := range v {
		z.EncSendContainerState(codecSelfer_containerArrayElem6212)
		if yyv1 == nil {
			r.EncodeNil()
		} else {
			yyv1.CodecEncodeSelf(e)
		}
	}
	z.EncSendContainerState(codecSelfer_containerArrayEnd6212)
}

func (x codecSelfer6212) decSlicePtrtoDSTopic(v *[]*DSTopic, d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyh1, yyl1 := z.DecSliceHelperStart()
	var yyc1 bool
	_ = yyc1
	if yyl1 == 0 {
		if yyv1 == nil {
			yyv1 = []*DSTopic{}
			yyc1 = true
		} else if len(yyv1) != 0 {
			yyv1 = yyv1[:0]
			yyc1 = true
		}
	} else if yyl1 > 0 {
		var yyrr1, yyrl1 int
		var yyrt1 bool
		_, _ = yyrl1, yyrt1
		yyrr1 = yyl1 // len(yyv1)
		if yyl1 > cap(yyv1) {

			yyrg1 := len(yyv1) > 0
			yyv21 := yyv1
			yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
			if yyrt1 {
				if yyrl1 <= cap(yyv1) {
					yyv1 = yyv1[:yyrl1]
				} else {
					yyv1 = make([]*DSTopic, yyrl1)
				}
			} else {
				yyv1 = make([]*DSTopic, yyrl1)
			}
			yyc1 = true
			yyrr1 = len(yyv1)
			if yyrg1 {
				copy(yyv1, yyv21)
			}
		} else if yyl1 != len(yyv1) {
			yyv1 = yyv1[:yyl1]
			yyc1 = true
		}
		yyj1 := 0
		for ; yyj1 < yyrr1; yyj1++ {
			yyh1.ElemContainerState(yyj1)
			if r.TryDecodeAsNil() {
				if yyv1[yyj1] != nil {
					*yyv1[yyj1] = DSTopic{}
				}
			} else {
				if yyv1[yyj1] == nil {
					yyv1[yyj1] = new(DSTopic)
				}
				yyw2 := yyv1[yyj1]
				yyw2.CodecDecodeSelf(d)
			}

		}
		if yyrt1 {
			for ; yyj1 < yyl1; yyj1++ {
				yyv1 = append(yyv1, nil)
				yyh1.ElemContainerState(yyj1)
				if r.TryDecodeAsNil() {
					if yyv1[yyj1] != nil {
						*yyv1[yyj1] = DSTopic{}
					}
				} else {
					if yyv1[yyj1] == nil {
						yyv1[yyj1] = new(DSTopic)
					}
					yyw3 := yyv1[yyj1]
					yyw3.CodecDecodeSelf(d)
				}

			}
		}

	} else {
		yyj1 := 0
		for ; !r.CheckBreak(); yyj1++ {

			if yyj1 >= len(yyv1) {
				yyv1 = append(yyv1, nil) // var yyz1 *DSTopic
				yyc1 = true
			}
			yyh1.ElemContainerState(yyj1)
			if yyj1 < len(yyv1) {
				if r.TryDecodeAsNil() {
					if yyv1[yyj1] != nil {
						*yyv1[yyj1] = DSTopic{}
					}
				} else {
					if yyv1[yyj1] == nil {
						yyv1[yyj1] = new(DSTopic)
					}
					yyw4 := yyv1[yyj1]
					yyw4.CodecDecodeSelf(d)
				}

			} else {
				z.DecSwallow()
			}

		}
		if yyj1 < len(yyv1) {
			yyv1 = yyv1[:yyj1]
			yyc1 = true
		} else if yyj1 == 0 && yyv1 == nil {
			yyv1 = []*DSTopic{}
			yyc1 = true
		}
	}
	yyh1.End()
	if yyc1 {
		*v = yyv1
	}
}

func (x codecSelfer6212) encSlicePtrtoDSUser(v []*DSUser, e *codec1978.Encoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperEncoder(e)
	_, _, _ = h, z, r
	r.EncodeArrayStart(len(v))
	for _, yyv1 := range v {
		z.EncSendContainerState(codecSelfer_containerArrayElem6212)
		if yyv1 == nil {
			r.EncodeNil()
		} else {
			yyv1.CodecEncodeSelf(e)
		}
	}
	z.EncSendContainerState(codecSelfer_containerArrayEnd6212)
}

func (x codecSelfer6212) decSlicePtrtoDSUser(v *[]*DSUser, d *codec1978.Decoder) {
	var h codecSelfer6212
	z, r := codec1978.GenHelperDecoder(d)
	_, _, _ = h, z, r

	yyv1 := *v
	yyh1, yyl1 := z.DecSliceHelperStart()
	var yyc1 bool
	_ = yyc1
	if yyl1 == 0 {
		if yyv1 == nil {
			yyv1 = []*DSUser{}
			yyc1 = true
		} else if len(yyv1) != 0 {
			yyv1 = yyv1[:0]
			yyc1 = true
		}
	} else if yyl1 > 0 {
		var yyrr1, yyrl1 int
		var yyrt1 bool
		_, _ = yyrl1, yyrt1
		yyrr1 = yyl1 // len(yyv1)
		if yyl1 > cap(yyv1) {

			yyrg1 := len(yyv1) > 0
			yyv21 := yyv1
			yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
			if yyrt1 {
				if yyrl1 <= cap(yyv1) {
					yyv1 = yyv1[:yyrl1]
				} else {
					yyv1 = make([]*DSUser, yyrl1)
				}
			} else {
				yyv1 = make([]*DSUser, yyrl1)
			}
			yyc1 = true
			yyrr1 = len(yyv1)
			if yyrg1 {
				copy(yyv1, yyv21)
			}
		} else if yyl1 != len(yyv1) {
			yyv1 = yyv1[:yyl1]
			yyc1 = true
		}
		yyj1 := 0
		for ; yyj1 < yyrr1; yyj1++ {
			yyh1.ElemContainerState(yyj1)
			if r.TryDecodeAsNil() {
				if yyv1[yyj1] != nil {
					*yyv1[yyj1] = DSUser{}
				}
			} else {
				if yyv1[yyj1] == nil {
					yyv1[yyj1] = new(DSUser)
				}
				yyw2 := yyv1[yyj1]
				yyw2.CodecDecodeSelf(d)
			}

		}
		if yyrt1 {
			for ; yyj1 < yyl1; yyj1++ {
				yyv1 = append(yyv1, nil)
				yyh1.ElemContainerState(yyj1)
				if r.TryDecodeAsNil() {
					if yyv1[yyj1] != nil {
						*yyv1[yyj1] = DSUser{}
					}
				} else {
					if yyv1[yyj1] == nil {
						yyv1[yyj1] = new(DSUser)
					}
					yyw3 := yyv1[yyj1]
					yyw3.CodecDecodeSelf(d)
				}

			}
		}

	} else {
		yyj1 := 0
		for ; !r.CheckBreak(); yyj1++ {

			if yyj1 >= len(yyv1) {
				yyv1 = append(yyv1, nil) // var yyz1 *DSUser
				yyc1 = true
			}
			yyh1.ElemContainerState(yyj1)
			if yyj1 < len(yyv1) {
				if r.TryDecodeAsNil() {
					if yyv1[yyj1] != nil {
						*yyv1[yyj1] = DSUser{}
					}
				} else {
					if yyv1[yyj1] == nil {
						yyv1[yyj1] = new(DSUser)
					}
					yyw4 := yyv1[yyj1]
					yyw4.CodecDecodeSelf(d)
				}

			} else {
				z.DecSwallow()
			}

		}
		if yyj1 < len(yyv1) {
			yyv1 = yyv1[:yyj1]
			yyc1 = true
		} else if yyj1 == 0 && yyv1 == nil {
			yyv1 = []*DSUser{}
			yyc1 = true
		}
	}
	yyh1.End()
	if yyc1 {
		*v = yyv1
	}
}
