You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: bucket-metadata_gen.go
    path of file: ./repos/minio/cmd
    
    the code of the file until where you have to start completion: package cmd

// Code generated by github.com/tinylib/msgp DO NOT EDIT.

import (
	"github.com/tinylib/msgp/msgp"
)

// DecodeMsg implements msgp.Decodable
func (z *BucketMetadata) DecodeMsg(dc *msgp.Reader) (err error) {
	var field []byte
	_ = field
	var zb0001 uint32
	zb0001, err = dc.ReadMapHeader()
	if err != nil {
		err = msgp.WrapError(err)
		return
	}
	for zb0001 > 0 {
		zb0001--
		field, err = dc.ReadMapKeyPtr()
		if err != nil {
			err = msgp.WrapError(err)
			return
		}
		switch msgp.UnsafeString(field) {
		case "Name":
			z.Name, err = dc.ReadString()
			if err != nil {
				err = msgp.WrapError(err, "Name")
				return
			}
		case "Created":
			z.Created, err = dc.ReadTime()
			if err != nil {
				err = msgp.WrapError(err, "Created")
				return
			}
		case "LockEnabled":
			z.LockEnabled, err = dc.ReadBool()
			if err != nil {
				err = msgp.WrapError(err, "LockEnabled")
				return
			}
		case "PolicyConfigJSON":
			z.PolicyConfigJSON, err = dc.ReadBytes(z.PolicyConfigJSON)
			if err != nil {
				err = msgp.WrapError(err, "PolicyConfigJSON")
				return
			}
		case "NotificationConfigXML":
			z.NotificationConfigXML, err = dc.ReadBytes(z.NotificationConfigXML)
			if err != nil {
				err = msgp.WrapError(err, "NotificationConfigXML")
				return
			}
		case "LifecycleConfigXML":
			z.LifecycleConfigXML, err = dc.ReadBytes(z.LifecycleConfigXML)
			if err != nil {
				err = msgp.WrapError(err, "LifecycleConfigXML")
				return
			}
		case "ObjectLockConfigXML":
			z.ObjectLockConfigXML, err = dc.ReadBytes(z.ObjectLockConfigXML)
			if err != nil {
				err = msgp.WrapError(err, "ObjectLockConfigXML")
				return
			}
		case "VersioningConfigXML":
			z.VersioningConfigXML, err = dc.ReadBytes(z.VersioningConfigXML)
			if err != nil {
				err = msgp.WrapError(err, "VersioningConfigXML")
				return
			}
		case "EncryptionConfigXML":
			z.EncryptionConfigXML, err = dc.ReadBytes(z.EncryptionConfigXML)
			if err != nil {
				err = msgp.WrapError(err, "EncryptionConfigXML")
				return
			}
		case "TaggingConfigXML":
			z.TaggingConfigXML, err = dc.ReadBytes(z.TaggingConfigXML)
			if err != nil {
				err = msgp.WrapError(err, "TaggingConfigXML")
				return
			}
		case "QuotaConfigJSON":
			z.QuotaConfigJSON, err = dc.ReadBytes(z.QuotaConfigJSON)
			if err != nil {
				err = msgp.WrapError(err, "QuotaConfigJSON")
				return
			}
		case "ReplicationConfigXML":
			z.ReplicationConfigXML, err = dc.ReadBytes(z.ReplicationConfigXML)
			if err != nil {
				err = msgp.WrapError(err, "ReplicationConfigXML")
				return
			}
		case "BucketTargetsConfigJSON":
			z.BucketTargetsConfigJSON, err = dc.ReadBytes(z.BucketTargetsConfigJSON)
			if err != nil {
				err = msgp.WrapError(err, "BucketTargetsConfigJSON")
				return
			}
		case "BucketTargetsConfigMetaJSON":
			z.BucketTargetsConfigMetaJSON, err = dc.ReadBytes(z.BucketTargetsConfigMetaJSON)
			if err != nil {
				err = msgp.WrapError(err, "BucketTargetsConfigMetaJSON")
				return
			}
		case "PolicyConfigUpdatedAt":
			z.PolicyConfigUpdatedAt, err = dc.ReadTime()
			if err != nil {
				err = msgp.WrapError(err, "PolicyConfigUpdatedAt")
				return
			}
		case "ObjectLockConfigUpdatedAt":
			z.ObjectLockConfigUpdatedAt, err = dc.ReadTime()
			if err != nil {
				err = msgp.WrapError(err, "ObjectLockConfigUpdatedAt")
				return
			}
		case "EncryptionConfigUpdatedAt":
			z.EncryptionConfigUpdatedAt, err = dc.ReadTime()
			if err != nil {
				err = msgp.WrapError(err, "EncryptionConfigUpdatedAt")
				return
			}
		case "TaggingConfigUpdatedAt":
			z.TaggingConfigUpdatedAt, err = dc.ReadTime()
			if err != nil {
				err = msgp.WrapError(err, "TaggingConfigUpdatedAt")
				return
			}
		case "QuotaConfigUpdatedAt":
			z.QuotaConfigUpdatedAt, err = dc.ReadTime()
			if err != nil {
				err = msgp.WrapError(err, "QuotaConfigUpdatedAt")
				return
			}
		case "ReplicationConfigUpdatedAt":
			z.ReplicationConfigUpdatedAt, err = dc.ReadTime()
			if err != nil {
				err = msgp.WrapError(err, "ReplicationConfigUpdatedAt")
				return
			}
		case "VersioningConfigUpdatedAt":
			z.VersioningConfigUpdatedAt, err = dc.ReadTime()
			if err != nil {
				err = msgp.WrapError(err, "VersioningConfigUpdatedAt")
				return
			}
		case "LifecycleConfigUpdatedAt":
			z.LifecycleConfigUpdatedAt, err = dc.ReadTime()
			if err != nil {
				err = msgp.WrapError(err, "LifecycleConfigUpdatedAt")
				return
			}
		default:
			err = dc.Skip()
			if err != nil {
				err = msgp.WrapError(err)
				return
			}
		}
	}
	return
}

// EncodeMsg implements msgp.Encodable
func (z *BucketMetadata) EncodeMsg(en *msgp.Writer) (err erro
    
func (z *BucketMetadata) UnmarshalMsg(bts []byte) (o []byte, err error) {
	var field []byte
	_ = field
	var zb0001 uint32
	zb0001, bts, err = msgp.ReadMapHeaderBytes(bts)
	if err != nil {
		err = msgp.WrapError(err)
		return
	}
	for zb0001 > 0 {
		zb0001--
		field, bts, err = msgp.ReadMapKeyZC(bts)
		if err != nil {
			err = msgp.WrapError(err)
			return
		}
		switch msgp.UnsafeString(field) {
		case "Name":
			z.Name, bts, err = msgp.ReadStringBytes(bts)
			if err != nil {
				err = msgp.WrapError(err, "Name")
				return
			}
		case "Created":
			z.Created, bts, err = msgp.ReadTimeBytes(bts)
			if err != nil {
				err = msgp.WrapError(err, "Created")
				return
			}
		case "LockEnabled":
			z.LockEnabled, bts, err = msgp.ReadBoolBytes(bts)
			if err != nil {
				err = msgp.WrapError(err, "LockEnabled")
				return
			}
		case "PolicyConfigJSON":
			z.PolicyConfigJSON, bts, err = msgp.ReadBytesBytes(bts, z.PolicyConfigJSON)
			if err != nil {
				err = msgp.WrapError(err, "PolicyConfigJSON")
				return
			}
		case "NotificationConfigXML":
			z.NotificationConfigXML, bts, err = msgp.ReadBytesBytes(bts, z.NotificationConfigXML)
			if err != nil {
				err = msgp.WrapError(err, "NotificationConfigXML")
				return
			}
		case "LifecycleConfigXML":
			z.LifecycleConfigXML, bts, err = msgp.ReadBytesBytes(bts, z.LifecycleConfigXML)
			if err != nil {
				err = msgp.WrapError(err, "LifecycleConfigXML")
				return
			}
		case "ObjectLockConfigXML":
			z.ObjectLockConfigXML, bts, err = msgp.ReadBytesBytes(bts, z.ObjectLockConfigXML)
			if err != nil {
				err = msgp.WrapError(err, "ObjectLockConfigXML")
				return
			}
		case "VersioningConfigXML":
			z.VersioningConfigXML, bts, err = msgp.ReadBytesBytes(bts, z.VersioningConfigXML)
			if err != nil {
				err = msgp.WrapError(err, "VersioningConfigXML")
				return
			}
		case "EncryptionConfigXML":
			z.EncryptionConfigXML, bts, err = msgp.ReadBytesBytes(bts, z.EncryptionConfigXML)
			if err != nil {
				err = msgp.WrapError(err, "EncryptionConfigXML")
				return
			}
		case "TaggingConfigXML":
			z.TaggingConfigXML, bts, err = msgp.ReadBytesBytes(bts, z.TaggingConfigXML)
			if err != nil {
				err = msgp.WrapError(err, "TaggingConfigXML")
				return
			}
		case "QuotaConfigJSON":
			z.QuotaConfigJSON, bts, err = msgp.ReadBytesBytes(bts, z.QuotaConfigJSON)
			if err != nil {
				err = msgp.WrapError(err, "QuotaConfigJSON")
				return
			}
		case "ReplicationConfigXML":
			z.ReplicationConfigXML, bts, err = msgp.ReadBytesBytes(bts, z.ReplicationConfigXML)
			if err != nil {
				err = msgp.WrapError(err, "ReplicationConfigXML")
				return
			}
		case "BucketTargetsConfigJSON":
			z.BucketTargetsConfigJSON, bts, err = msgp.ReadBytesBytes(bts, z.BucketTargetsConfigJSON)
			if err != nil {
				err = msgp.WrapError(err, "BucketTargetsConfigJSON")
				return
			}
		case "BucketTargetsConfigMetaJSON":
			z.BucketTargetsConfigMetaJSON, bts, err = msgp.ReadBytesBytes(bts, z.BucketTargetsConfigMetaJSON)
			if err != nil {
				err = msgp.WrapError(err, "BucketTargetsConfigMetaJSON")
				return
			}
		case "PolicyConfigUpdatedAt":
			z.PolicyConfigUpdatedAt, bts, err = msgp.ReadTimeBytes(bts)
			if err != nil {
				err = msgp.WrapError(err, "PolicyConfigUpdatedAt")
				return
			}
		case "ObjectLockConfigUpdatedAt":
			z.ObjectLockConfigUpdatedAt, bts, err = msgp.ReadTimeBytes(bts)
			if err != nil {
				err = msgp.WrapError(err, "ObjectLockConfigUpdatedAt")
				return
			}
		case "EncryptionConfigUpdatedAt":
			z.EncryptionConfigUpdatedAt, bts, err = msgp.ReadTimeBytes(bts)
			if err != nil {
				err = msgp.WrapError(err, "EncryptionConfigUpdatedAt")
				return
			}
		case "TaggingConfigUpdatedAt":
			z.TaggingConfigUpdatedAt, bts, err = msgp.ReadTimeBytes(bts)
			if err != nil {
				err = msgp.WrapError(err, "TaggingConfigUpdatedAt")
				return
			}
		case "QuotaConfigUpdatedAt":
			z.QuotaConfigUpdatedAt, bts, err = msgp.ReadTimeBytes(bts)
			if err != nil {
				err = msgp.WrapError(err, "QuotaConfigUpdatedAt")
				return
			}
		case "ReplicationConfigUpdatedAt":
			z.ReplicationConfigUpdatedAt, bts, err = msgp.ReadTimeBytes(bts)
			if err != nil {
				err = msgp.WrapError(err, "ReplicationConfigUpdatedAt")
				return
			}
		case "VersioningConfigUpdatedAt":
			z.VersioningConfigUpdatedAt, bts, err = msgp.ReadTimeBytes(bts)
			if err != nil {
				err = msgp.WrapError(err, "VersioningConfigUpdatedAt")
				return
			}
		case "LifecycleConfigUpdatedAt":
			z.LifecycleConfigUpdatedAt, bts, err = msgp.ReadTimeBytes(bts)
			if err != nil {
				err = msgp.WrapError(err, "LifecycleConfigUpdatedAt")
				return
			}
		default:
			bts, err = msgp.Skip(bts)
			if err != nil {
				err = msgp.WrapError(err)
				return
			}
		}
	}
	o = bts
	return
}