package protos

import (
	context "context"
	fmt "fmt"
	proto "github.com/golang/protobuf/proto"
	timestamp "github.com/golang/protobuf/ptypes/timestamp"
	wrappers "github.com/golang/protobuf/ptypes/wrappers"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
	protos "magma/lte/cloud/go/protos"
	protos1 "magma/orc8r/lib/go/protos"
	math "math"
)

var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

const _ = proto.ProtoPackageIsVersion3 

type FinalUnitAction int32

const (
	FinalUnitAction_Terminate FinalUnitAction = 0
	FinalUnitAction_Redirect  FinalUnitAction = 1
	FinalUnitAction_Restrict  FinalUnitAction = 2
)

var FinalUnitAction_name = map[int32]string{
	0: "Terminate",
	1: "Redirect",
	2: "Restrict",
}

var FinalUnitAction_value = map[string]int32{
	"Terminate": 0,
	"Redirect":  1,
	"Restrict":  2,
}

func (x FinalUnitAction) String() string {
	return proto.EnumName(FinalUnitAction_name, int32(x))
}

func (FinalUnitAction) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{0}
}

type MonitoringLevel int32

const (
	MonitoringLevel_SessionLevel MonitoringLevel = 0
	MonitoringLevel_RuleLevel    MonitoringLevel = 1
)

var MonitoringLevel_name = map[int32]string{
	0: "SessionLevel",
	1: "RuleLevel",
}

var MonitoringLevel_value = map[string]int32{
	"SessionLevel": 0,
	"RuleLevel":    1,
}

func (x MonitoringLevel) String() string {
	return proto.EnumName(MonitoringLevel_name, int32(x))
}

func (MonitoringLevel) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{1}
}

type CCRequestType int32

const (

	CCRequestType__INVALID    CCRequestType = 0
	CCRequestType_INITIAL     CCRequestType = 1
	CCRequestType_UPDATE      CCRequestType = 2
	CCRequestType_TERMINATION CCRequestType = 3
)

var CCRequestType_name = map[int32]string{
	0: "_INVALID",
	1: "INITIAL",
	2: "UPDATE",
	3: "TERMINATION",
}

var CCRequestType_value = map[string]int32{
	"_INVALID":    0,
	"INITIAL":     1,
	"UPDATE":      2,
	"TERMINATION": 3,
}

func (x CCRequestType) String() string {
	return proto.EnumName(CCRequestType_name, int32(x))
}

func (CCRequestType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{2}
}

type UnexpectedRequestBehavior int32

const (

	UnexpectedRequestBehavior_CONTINUE_WITH_ERROR          UnexpectedRequestBehavior = 0
	UnexpectedRequestBehavior_CONTINUE_WITH_DEFAULT_ANSWER UnexpectedRequestBehavior = 1
)

var UnexpectedRequestBehavior_name = map[int32]string{
	0: "CONTINUE_WITH_ERROR",
	1: "CONTINUE_WITH_DEFAULT_ANSWER",
}

var UnexpectedRequestBehavior_value = map[string]int32{
	"CONTINUE_WITH_ERROR":          0,
	"CONTINUE_WITH_DEFAULT_ANSWER": 1,
}

func (x UnexpectedRequestBehavior) String() string {
	return proto.EnumName(UnexpectedRequestBehavior_name, int32(x))
}

func (UnexpectedRequestBehavior) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{3}
}

type AbortCauseType int32

const (
	AbortCauseType_BearerReleased              AbortCauseType = 0
	AbortCauseType_InsufficientServerResources AbortCauseType = 1
	AbortCauseType_InsufficientBearerResources AbortCauseType = 2
)

var AbortCauseType_name = map[int32]string{
	0: "BearerReleased",
	1: "InsufficientServerResources",
	2: "InsufficientBearerResources",
}

var AbortCauseType_value = map[string]int32{
	"BearerReleased":              0,
	"InsufficientServerResources": 1,
	"InsufficientBearerResources": 2,
}

func (x AbortCauseType) String() string {
	return proto.EnumName(AbortCauseType_name, int32(x))
}

func (AbortCauseType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{4}
}

type Reply_ServerBehavior int32

const (
	Reply_REPLY_INSTANTLY Reply_ServerBehavior = 0
	Reply_REPLY_LATE      Reply_ServerBehavior = 1
	Reply_NO_REPLY        Reply_ServerBehavior = 2
)

var Reply_ServerBehavior_name = map[int32]string{
	0: "REPLY_INSTANTLY",
	1: "REPLY_LATE",
	2: "NO_REPLY",
}

var Reply_ServerBehavior_value = map[string]int32{
	"REPLY_INSTANTLY": 0,
	"REPLY_LATE":      1,
	"NO_REPLY":        2,
}

func (x Reply_ServerBehavior) String() string {
	return proto.EnumName(Reply_ServerBehavior_name, int32(x))
}

func (Reply_ServerBehavior) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{0, 0}
}

type CreditInfo_UnitType int32

const (
	CreditInfo_Bytes CreditInfo_UnitType = 0
	CreditInfo_Time  CreditInfo_UnitType = 1
)

var CreditInfo_UnitType_name = map[int32]string{
	0: "Bytes",
	1: "Time",
}

var CreditInfo_UnitType_value = map[string]int32{
	"Bytes": 0,
	"Time":  1,
}

func (x CreditInfo_UnitType) String() string {
	return proto.EnumName(CreditInfo_UnitType_name, int32(x))
}

func (CreditInfo_UnitType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{7, 0}
}

type Reply struct {
	ServerBehavior Reply_ServerBehavior `protobuf:"varint,1,opt,name=server_behavior,json=serverBehavior,proto3,enum=magma.feg.Reply_ServerBehavior" json:"server_behavior,omitempty"`

	ReplyDelay int32 `protobuf:"varint,2,opt,name=reply_delay,json=replyDelay,proto3" json:"reply_delay,omitempty"`

	SgsMessage isReply_SgsMessage `protobuf_oneof:"sgs_message"`

	GxgyMessage          isReply_GxgyMessage `protobuf_oneof:"gxgy_message"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

func (m *Reply) Reset()         { *m = Reply{} }
func (m *Reply) String() string { return proto.CompactTextString(m) }
func (*Reply) ProtoMessage()    {}
func (*Reply) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{0}
}

func (m *Reply) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Reply.Unmarshal(m, b)
}
func (m *Reply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Reply.Marshal(b, m, deterministic)
}
func (m *Reply) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Reply.Merge(m, src)
}
func (m *Reply) XXX_Size() int {
	return xxx_messageInfo_Reply.Size(m)
}
func (m *Reply) XXX_DiscardUnknown() {
	xxx_messageInfo_Reply.DiscardUnknown(m)
}

var xxx_messageInfo_Reply proto.InternalMessageInfo

func (m *Reply) GetServerBehavior() Reply_ServerBehavior {
	if m != nil {
		return m.ServerBehavior
	}
	return Reply_REPLY_INSTANTLY
}

func (m *Reply) GetReplyDelay() int32 {
	if m != nil {
		return m.ReplyDelay
	}
	return 0
}

type isReply_SgsMessage interface {
	isReply_SgsMessage()
}

type Reply_AlertRequest struct {
	AlertRequest *AlertRequest `protobuf:"bytes,3,opt,name=alert_request,json=alertRequest,proto3,oneof"`
}

type Reply_DownlinkUnitdata struct {
	DownlinkUnitdata *DownlinkUnitdata `protobuf:"bytes,4,opt,name=downlink_unitdata,json=downlinkUnitdata,proto3,oneof"`
}

type Reply_EpsDetachAck struct {
	EpsDetachAck *EPSDetachAck `protobuf:"bytes,5,opt,name=eps_detach_ack,json=epsDetachAck,proto3,oneof"`
}

type Reply_ImsiDetachAck struct {
	ImsiDetachAck *IMSIDetachAck `protobuf:"bytes,6,opt,name=imsi_detach_ack,json=imsiDetachAck,proto3,oneof"`
}

type Reply_LocationUpdateAccept struct {
	LocationUpdateAccept *LocationUpdateAccept `protobuf:"bytes,7,opt,name=location_update_accept,json=locationUpdateAccept,proto3,oneof"`
}

type Reply_LocationUpdateReject struct {
	LocationUpdateReject *LocationUpdateReject `protobuf:"bytes,8,opt,name=location_update_reject,json=locationUpdateReject,proto3,oneof"`
}

type Reply_MmInformationRequest struct {
	MmInformationRequest *MMInformationRequest `protobuf:"bytes,9,opt,name=mm_information_request,json=mmInformationRequest,proto3,oneof"`
}

type Reply_PagingRequest struct {
	PagingRequest *PagingRequest `protobuf:"bytes,10,opt,name=paging_request,json=pagingRequest,proto3,oneof"`
}

type Reply_ReleaseRequest struct {
	ReleaseRequest *ReleaseRequest `protobuf:"bytes,11,opt,name=release_request,json=releaseRequest,proto3,oneof"`
}

type Reply_ServiceAbortRequest struct {
	ServiceAbortRequest *ServiceAbortRequest `protobuf:"bytes,12,opt,name=service_abort_request,json=serviceAbortRequest,proto3,oneof"`
}

type Reply_ResetAck struct {
	ResetAck *ResetAck `protobuf:"bytes,13,opt,name=reset_ack,json=resetAck,proto3,oneof"`
}

type Reply_ResetIndication struct {
	ResetIndication *ResetIndication `protobuf:"bytes,14,opt,name=reset_indication,json=resetIndication,proto3,oneof"`
}

type Reply_Status struct {
	Status *Status `protobuf:"bytes,15,opt,name=status,proto3,oneof"`
}

func (*Reply_AlertRequest) isReply_SgsMessage() {}

func (*Reply_DownlinkUnitdata) isReply_SgsMessage() {}

func (*Reply_EpsDetachAck) isReply_SgsMessage() {}

func (*Reply_ImsiDetachAck) isReply_SgsMessage() {}

func (*Reply_LocationUpdateAccept) isReply_SgsMessage() {}

func (*Reply_LocationUpdateReject) isReply_SgsMessage() {}

func (*Reply_MmInformationRequest) isReply_SgsMessage() {}

func (*Reply_PagingRequest) isReply_SgsMessage() {}

func (*Reply_ReleaseRequest) isReply_SgsMessage() {}

func (*Reply_ServiceAbortRequest) isReply_SgsMessage() {}

func (*Reply_ResetAck) isReply_SgsMessage() {}

func (*Reply_ResetIndication) isReply_SgsMessage() {}

func (*Reply_Status) isReply_SgsMessage() {}

func (m *Reply) GetSgsMessage() isReply_SgsMessage {
	if m != nil {
		return m.SgsMessage
	}
	return nil
}

func (m *Reply) GetAlertRequest() *AlertRequest {
	if x, ok := m.GetSgsMessage().(*Reply_AlertRequest); ok {
		return x.AlertRequest
	}
	return nil
}

func (m *Reply) GetDownlinkUnitdata() *DownlinkUnitdata {
	if x, ok := m.GetSgsMessage().(*Reply_DownlinkUnitdata); ok {
		return x.DownlinkUnitdata
	}
	return nil
}

func (m *Reply) GetEpsDetachAck() *EPSDetachAck {
	if x, ok := m.GetSgsMessage().(*Reply_EpsDetachAck); ok {
		return x.EpsDetachAck
	}
	return nil
}

func (m *Reply) GetImsiDetachAck() *IMSIDetachAck {
	if x, ok := m.GetSgsMessage().(*Reply_ImsiDetachAck); ok {
		return x.ImsiDetachAck
	}
	return nil
}

func (m *Reply) GetLocationUpdateAccept() *LocationUpdateAccept {
	if x, ok := m.GetSgsMessage().(*Reply_LocationUpdateAccept); ok {
		return x.LocationUpdateAccept
	}
	return nil
}

func (m *Reply) GetLocationUpdateReject() *LocationUpdateReject {
	if x, ok := m.GetSgsMessage().(*Reply_LocationUpdateReject); ok {
		return x.LocationUpdateReject
	}
	return nil
}

func (m *Reply) GetMmInformationRequest() *MMInformationRequest {
	if x, ok := m.GetSgsMessage().(*Reply_MmInformationRequest); ok {
		return x.MmInformationRequest
	}
	return nil
}

func (m *Reply) GetPagingRequest() *PagingRequest {
	if x, ok := m.GetSgsMessage().(*Reply_PagingRequest); ok {
		return x.PagingRequest
	}
	return nil
}

func (m *Reply) GetReleaseRequest() *ReleaseRequest {
	if x, ok := m.GetSgsMessage().(*Reply_ReleaseRequest); ok {
		return x.ReleaseRequest
	}
	return nil
}

func (m *Reply) GetServiceAbortRequest() *ServiceAbortRequest {
	if x, ok := m.GetSgsMessage().(*Reply_ServiceAbortRequest); ok {
		return x.ServiceAbortRequest
	}
	return nil
}

func (m *Reply) GetResetAck() *ResetAck {
	if x, ok := m.GetSgsMessage().(*Reply_ResetAck); ok {
		return x.ResetAck
	}
	return nil
}

func (m *Reply) GetResetIndication() *ResetIndication {
	if x, ok := m.GetSgsMessage().(*Reply_ResetIndication); ok {
		return x.ResetIndication
	}
	return nil
}

func (m *Reply) GetStatus() *Status {
	if x, ok := m.GetSgsMessage().(*Reply_Status); ok {
		return x.Status
	}
	return nil
}

type isReply_GxgyMessage interface {
	isReply_GxgyMessage()
}

type Reply_CreateSessionResponse struct {
	CreateSessionResponse *protos.CreateSessionResponse `protobuf:"bytes,16,opt,name=create_session_response,json=createSessionResponse,proto3,oneof"`
}

type Reply_UpdateSessionResponse struct {
	UpdateSessionResponse *protos.UpdateSessionResponse `protobuf:"bytes,17,opt,name=update_session_response,json=updateSessionResponse,proto3,oneof"`
}

type Reply_SessionTerminateResponse struct {
	SessionTerminateResponse *protos.SessionTerminateResponse `protobuf:"bytes,18,opt,name=session_terminate_response,json=sessionTerminateResponse,proto3,oneof"`
}

func (*Reply_CreateSessionResponse) isReply_GxgyMessage() {}

func (*Reply_UpdateSessionResponse) isReply_GxgyMessage() {}

func (*Reply_SessionTerminateResponse) isReply_GxgyMessage() {}

func (m *Reply) GetGxgyMessage() isReply_GxgyMessage {
	if m != nil {
		return m.GxgyMessage
	}
	return nil
}

func (m *Reply) GetCreateSessionResponse() *protos.CreateSessionResponse {
	if x, ok := m.GetGxgyMessage().(*Reply_CreateSessionResponse); ok {
		return x.CreateSessionResponse
	}
	return nil
}

func (m *Reply) GetUpdateSessionResponse() *protos.UpdateSessionResponse {
	if x, ok := m.GetGxgyMessage().(*Reply_UpdateSessionResponse); ok {
		return x.UpdateSessionResponse
	}
	return nil
}

func (m *Reply) GetSessionTerminateResponse() *protos.SessionTerminateResponse {
	if x, ok := m.GetGxgyMessage().(*Reply_SessionTerminateResponse); ok {
		return x.SessionTerminateResponse
	}
	return nil
}

func (*Reply) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*Reply_AlertRequest)(nil),
		(*Reply_DownlinkUnitdata)(nil),
		(*Reply_EpsDetachAck)(nil),
		(*Reply_ImsiDetachAck)(nil),
		(*Reply_LocationUpdateAccept)(nil),
		(*Reply_LocationUpdateReject)(nil),
		(*Reply_MmInformationRequest)(nil),
		(*Reply_PagingRequest)(nil),
		(*Reply_ReleaseRequest)(nil),
		(*Reply_ServiceAbortRequest)(nil),
		(*Reply_ResetAck)(nil),
		(*Reply_ResetIndication)(nil),
		(*Reply_Status)(nil),
		(*Reply_CreateSessionResponse)(nil),
		(*Reply_UpdateSessionResponse)(nil),
		(*Reply_SessionTerminateResponse)(nil),
	}
}

type ExpectedRequest struct {

	SgsMessage isExpectedRequest_SgsMessage `protobuf_oneof:"sgs_message"`

	GxgyMessage          isExpectedRequest_GxgyMessage `protobuf_oneof:"gxgy_message"`
	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
	XXX_unrecognized     []byte                        `json:"-"`
	XXX_sizecache        int32                         `json:"-"`
}

func (m *ExpectedRequest) Reset()         { *m = ExpectedRequest{} }
func (m *ExpectedRequest) String() string { return proto.CompactTextString(m) }
func (*ExpectedRequest) ProtoMessage()    {}
func (*ExpectedRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{1}
}

func (m *ExpectedRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ExpectedRequest.Unmarshal(m, b)
}
func (m *ExpectedRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ExpectedRequest.Marshal(b, m, deterministic)
}
func (m *ExpectedRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ExpectedRequest.Merge(m, src)
}
func (m *ExpectedRequest) XXX_Size() int {
	return xxx_messageInfo_ExpectedRequest.Size(m)
}
func (m *ExpectedRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_ExpectedRequest.DiscardUnknown(m)
}

var xxx_messageInfo_ExpectedRequest proto.InternalMessageInfo

type isExpectedRequest_SgsMessage interface {
	isExpectedRequest_SgsMessage()
}

type ExpectedRequest_AlertAck struct {
	AlertAck *AlertAck `protobuf:"bytes,1,opt,name=alert_ack,json=alertAck,proto3,oneof"`
}

type ExpectedRequest_AlertReject struct {
	AlertReject *AlertReject `protobuf:"bytes,2,opt,name=alert_reject,json=alertReject,proto3,oneof"`
}

type ExpectedRequest_EpsDetachIndication struct {
	EpsDetachIndication *EPSDetachIndication `protobuf:"bytes,3,opt,name=eps_detach_indication,json=epsDetachIndication,proto3,oneof"`
}

type ExpectedRequest_ImsiDetachIndication struct {
	ImsiDetachIndication *IMSIDetachIndication `protobuf:"bytes,4,opt,name=imsi_detach_indication,json=imsiDetachIndication,proto3,oneof"`
}

type ExpectedRequest_LocationUpdateRequest struct {
	LocationUpdateRequest *LocationUpdateRequest `protobuf:"bytes,5,opt,name=location_update_request,json=locationUpdateRequest,proto3,oneof"`
}

type ExpectedRequest_PagingReject struct {
	PagingReject *PagingReject `protobuf:"bytes,6,opt,name=paging_reject,json=pagingReject,proto3,oneof"`
}

type ExpectedRequest_ServiceRequest struct {
	ServiceRequest *ServiceRequest `protobuf:"bytes,7,opt,name=service_request,json=serviceRequest,proto3,oneof"`
}

type ExpectedRequest_TmsiReallocationComplete struct {
	TmsiReallocationComplete *TMSIReallocationComplete `protobuf:"bytes,8,opt,name=tmsi_reallocation_complete,json=tmsiReallocationComplete,proto3,oneof"`
}

type ExpectedRequest_UeActivityIndication struct {
	UeActivityIndication *UEActivityIndication `protobuf:"bytes,9,opt,name=ue_activity_indication,json=ueActivityIndication,proto3,oneof"`
}

type ExpectedRequest_UeUnreachable struct {
	UeUnreachable *UEUnreachable `protobuf:"bytes,10,opt,name=ue_unreachable,json=ueUnreachable,proto3,oneof"`
}

type ExpectedRequest_UplinkUnitdata struct {
	UplinkUnitdata *UplinkUnitdata `protobuf:"bytes,11,opt,name=uplink_unitdata,json=uplinkUnitdata,proto3,oneof"`
}

type ExpectedRequest_ResetAck struct {
	ResetAck *ResetAck `protobuf:"bytes,12,opt,name=reset_ack,json=resetAck,proto3,oneof"`
}

type ExpectedRequest_ResetIndication struct {
	ResetIndication *ResetIndication `protobuf:"bytes,13,opt,name=reset_indication,json=resetIndication,proto3,oneof"`
}

type ExpectedRequest_Status struct {
	Status *Status `protobuf:"bytes,14,opt,name=status,proto3,oneof"`
}

func (*ExpectedRequest_AlertAck) isExpectedRequest_SgsMessage() {}

func (*ExpectedRequest_AlertReject) isExpectedRequest_SgsMessage() {}

func (*ExpectedRequest_EpsDetachIndication) isExpectedRequest_SgsMessage() {}

func (*ExpectedRequest_ImsiDetachIndication) isExpectedRequest_SgsMessage() {}

func (*ExpectedRequest_LocationUpdateRequest) isExpectedRequest_SgsMessage() {}

func (*ExpectedRequest_PagingReject) isExpectedRequest_SgsMessage() {}

func (*ExpectedRequest_ServiceRequest) isExpectedRequest_SgsMessage() {}

func (*ExpectedRequest_TmsiReallocationComplete) isExpectedRequest_SgsMessage() {}

func (*ExpectedRequest_UeActivityIndication) isExpectedRequest_SgsMessage() {}

func (*ExpectedRequest_UeUnreachable) isExpectedRequest_SgsMessage() {}

func (*ExpectedRequest_UplinkUnitdata) isExpectedRequest_SgsMessage() {}

func (*ExpectedRequest_ResetAck) isExpectedRequest_SgsMessage() {}

func (*ExpectedRequest_ResetIndication) isExpectedRequest_SgsMessage() {}

func (*ExpectedRequest_Status) isExpectedRequest_SgsMessage() {}

func (m *ExpectedRequest) GetSgsMessage() isExpectedRequest_SgsMessage {
	if m != nil {
		return m.SgsMessage
	}
	return nil
}

func (m *ExpectedRequest) GetAlertAck() *AlertAck {
	if x, ok := m.GetSgsMessage().(*ExpectedRequest_AlertAck); ok {
		return x.AlertAck
	}
	return nil
}

func (m *ExpectedRequest) GetAlertReject() *AlertReject {
	if x, ok := m.GetSgsMessage().(*ExpectedRequest_AlertReject); ok {
		return x.AlertReject
	}
	return nil
}

func (m *ExpectedRequest) GetEpsDetachIndication() *EPSDetachIndication {
	if x, ok := m.GetSgsMessage().(*ExpectedRequest_EpsDetachIndication); ok {
		return x.EpsDetachIndication
	}
	return nil
}

func (m *ExpectedRequest) GetImsiDetachIndication() *IMSIDetachIndication {
	if x, ok := m.GetSgsMessage().(*ExpectedRequest_ImsiDetachIndication); ok {
		return x.ImsiDetachIndication
	}
	return nil
}

func (m *ExpectedRequest) GetLocationUpdateRequest() *LocationUpdateRequest {
	if x, ok := m.GetSgsMessage().(*ExpectedRequest_LocationUpdateRequest); ok {
		return x.LocationUpdateRequest
	}
	return nil
}

func (m *ExpectedRequest) GetPagingReject() *PagingReject {
	if x, ok := m.GetSgsMessage().(*ExpectedRequest_PagingReject); ok {
		return x.PagingReject
	}
	return nil
}

func (m *ExpectedRequest) GetServiceRequest() *ServiceRequest {
	if x, ok := m.GetSgsMessage().(*ExpectedRequest_ServiceRequest); ok {
		return x.ServiceRequest
	}
	return nil
}

func (m *ExpectedRequest) GetTmsiReallocationComplete() *TMSIReallocationComplete {
	if x, ok := m.GetSgsMessage().(*ExpectedRequest_TmsiReallocationComplete); ok {
		return x.TmsiReallocationComplete
	}
	return nil
}

func (m *ExpectedRequest) GetUeActivityIndication() *UEActivityIndication {
	if x, ok := m.GetSgsMessage().(*ExpectedRequest_UeActivityIndication); ok {
		return x.UeActivityIndication
	}
	return nil
}

func (m *ExpectedRequest) GetUeUnreachable() *UEUnreachable {
	if x, ok := m.GetSgsMessage().(*ExpectedRequest_UeUnreachable); ok {
		return x.UeUnreachable
	}
	return nil
}

func (m *ExpectedRequest) GetUplinkUnitdata() *UplinkUnitdata {
	if x, ok := m.GetSgsMessage().(*ExpectedRequest_UplinkUnitdata); ok {
		return x.UplinkUnitdata
	}
	return nil
}

func (m *ExpectedRequest) GetResetAck() *ResetAck {
	if x, ok := m.GetSgsMessage().(*ExpectedRequest_ResetAck); ok {
		return x.ResetAck
	}
	return nil
}

func (m *ExpectedRequest) GetResetIndication() *ResetIndication {
	if x, ok := m.GetSgsMessage().(*ExpectedRequest_ResetIndication); ok {
		return x.ResetIndication
	}
	return nil
}

func (m *ExpectedRequest) GetStatus() *Status {
	if x, ok := m.GetSgsMessage().(*ExpectedRequest_Status); ok {
		return x.Status
	}
	return nil
}

type isExpectedRequest_GxgyMessage interface {
	isExpectedRequest_GxgyMessage()
}

type ExpectedRequest_CreateSessionRequest struct {
	CreateSessionRequest *protos.CreateSessionRequest `protobuf:"bytes,15,opt,name=create_session_request,json=createSessionRequest,proto3,oneof"`
}

type ExpectedRequest_UpdateSessionRequest struct {
	UpdateSessionRequest *protos.UpdateSessionRequest `protobuf:"bytes,16,opt,name=update_session_request,json=updateSessionRequest,proto3,oneof"`
}

type ExpectedRequest_SessionTerminateRequest struct {
	SessionTerminateRequest *protos.SessionTerminateRequest `protobuf:"bytes,17,opt,name=session_terminate_request,json=sessionTerminateRequest,proto3,oneof"`
}

func (*ExpectedRequest_CreateSessionRequest) isExpectedRequest_GxgyMessage() {}

func (*ExpectedRequest_UpdateSessionRequest) isExpectedRequest_GxgyMessage() {}

func (*ExpectedRequest_SessionTerminateRequest) isExpectedRequest_GxgyMessage() {}

func (m *ExpectedRequest) GetGxgyMessage() isExpectedRequest_GxgyMessage {
	if m != nil {
		return m.GxgyMessage
	}
	return nil
}

func (m *ExpectedRequest) GetCreateSessionRequest() *protos.CreateSessionRequest {
	if x, ok := m.GetGxgyMessage().(*ExpectedRequest_CreateSessionRequest); ok {
		return x.CreateSessionRequest
	}
	return nil
}

func (m *ExpectedRequest) GetUpdateSessionRequest() *protos.UpdateSessionRequest {
	if x, ok := m.GetGxgyMessage().(*ExpectedRequest_UpdateSessionRequest); ok {
		return x.UpdateSessionRequest
	}
	return nil
}

func (m *ExpectedRequest) GetSessionTerminateRequest() *protos.SessionTerminateRequest {
	if x, ok := m.GetGxgyMessage().(*ExpectedRequest_SessionTerminateRequest); ok {
		return x.SessionTerminateRequest
	}
	return nil
}

func (*ExpectedRequest) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*ExpectedRequest_AlertAck)(nil),
		(*ExpectedRequest_AlertReject)(nil),
		(*ExpectedRequest_EpsDetachIndication)(nil),
		(*ExpectedRequest_ImsiDetachIndication)(nil),
		(*ExpectedRequest_LocationUpdateRequest)(nil),
		(*ExpectedRequest_PagingReject)(nil),
		(*ExpectedRequest_ServiceRequest)(nil),
		(*ExpectedRequest_TmsiReallocationComplete)(nil),
		(*ExpectedRequest_UeActivityIndication)(nil),
		(*ExpectedRequest_UeUnreachable)(nil),
		(*ExpectedRequest_UplinkUnitdata)(nil),
		(*ExpectedRequest_ResetAck)(nil),
		(*ExpectedRequest_ResetIndication)(nil),
		(*ExpectedRequest_Status)(nil),
		(*ExpectedRequest_CreateSessionRequest)(nil),
		(*ExpectedRequest_UpdateSessionRequest)(nil),
		(*ExpectedRequest_SessionTerminateRequest)(nil),
	}
}

type RequestReply struct {
	Request              *ExpectedRequest `protobuf:"bytes,1,opt,name=request,proto3" json:"request,omitempty"`
	Reply                *Reply           `protobuf:"bytes,2,opt,name=reply,proto3" json:"reply,omitempty"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *RequestReply) Reset()         { *m = RequestReply{} }
func (m *RequestReply) String() string { return proto.CompactTextString(m) }
func (*RequestReply) ProtoMessage()    {}
func (*RequestReply) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{2}
}

func (m *RequestReply) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RequestReply.Unmarshal(m, b)
}
func (m *RequestReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RequestReply.Marshal(b, m, deterministic)
}
func (m *RequestReply) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RequestReply.Merge(m, src)
}
func (m *RequestReply) XXX_Size() int {
	return xxx_messageInfo_RequestReply.Size(m)
}
func (m *RequestReply) XXX_DiscardUnknown() {
	xxx_messageInfo_RequestReply.DiscardUnknown(m)
}

var xxx_messageInfo_RequestReply proto.InternalMessageInfo

func (m *RequestReply) GetRequest() *ExpectedRequest {
	if m != nil {
		return m.Request
	}
	return nil
}

func (m *RequestReply) GetReply() *Reply {
	if m != nil {
		return m.Reply
	}
	return nil
}

type ServerConfiguration struct {
	RequestReply         []*RequestReply `protobuf:"bytes,1,rep,name=request_reply,json=requestReply,proto3" json:"request_reply,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *ServerConfiguration) Reset()         { *m = ServerConfiguration{} }
func (m *ServerConfiguration) String() string { return proto.CompactTextString(m) }
func (*ServerConfiguration) ProtoMessage()    {}
func (*ServerConfiguration) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{3}
}

func (m *ServerConfiguration) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ServerConfiguration.Unmarshal(m, b)
}
func (m *ServerConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ServerConfiguration.Marshal(b, m, deterministic)
}
func (m *ServerConfiguration) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ServerConfiguration.Merge(m, src)
}
func (m *ServerConfiguration) XXX_Size() int {
	return xxx_messageInfo_ServerConfiguration.Size(m)
}
func (m *ServerConfiguration) XXX_DiscardUnknown() {
	xxx_messageInfo_ServerConfiguration.DiscardUnknown(m)
}

var xxx_messageInfo_ServerConfiguration proto.InternalMessageInfo

func (m *ServerConfiguration) GetRequestReply() []*RequestReply {
	if m != nil {
		return m.RequestReply
	}
	return nil
}

type RedirectServer struct {
	RedirectServerAddress string   `protobuf:"bytes,1,opt,name=RedirectServerAddress,proto3" json:"RedirectServerAddress,omitempty"`
	XXX_NoUnkeyedLiteral  struct{} `json:"-"`
	XXX_unrecognized      []byte   `json:"-"`
	XXX_sizecache         int32    `json:"-"`
}

func (m *RedirectServer) Reset()         { *m = RedirectServer{} }
func (m *RedirectServer) String() string { return proto.CompactTextString(m) }
func (*RedirectServer) ProtoMessage()    {}
func (*RedirectServer) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{4}
}

func (m *RedirectServer) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RedirectServer.Unmarshal(m, b)
}
func (m *RedirectServer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RedirectServer.Marshal(b, m, deterministic)
}
func (m *RedirectServer) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RedirectServer.Merge(m, src)
}
func (m *RedirectServer) XXX_Size() int {
	return xxx_messageInfo_RedirectServer.Size(m)
}
func (m *RedirectServer) XXX_DiscardUnknown() {
	xxx_messageInfo_RedirectServer.DiscardUnknown(m)
}

var xxx_messageInfo_RedirectServer proto.InternalMessageInfo

func (m *RedirectServer) GetRedirectServerAddress() string {
	if m != nil {
		return m.RedirectServerAddress
	}
	return ""
}

type FinalUnitIndication struct {
	RedirectServer       *RedirectServer `protobuf:"bytes,1,opt,name=redirect_server,json=redirectServer,proto3" json:"redirect_server,omitempty"`
	FinalUnitAction      FinalUnitAction `protobuf:"varint,2,opt,name=final_unit_action,json=finalUnitAction,proto3,enum=magma.feg.FinalUnitAction" json:"final_unit_action,omitempty"`
	RestrictRules        []string        `protobuf:"bytes,3,rep,name=restrict_rules,json=restrictRules,proto3" json:"restrict_rules,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *FinalUnitIndication) Reset()         { *m = FinalUnitIndication{} }
func (m *FinalUnitIndication) String() string { return proto.CompactTextString(m) }
func (*FinalUnitIndication) ProtoMessage()    {}
func (*FinalUnitIndication) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{5}
}

func (m *FinalUnitIndication) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_FinalUnitIndication.Unmarshal(m, b)
}
func (m *FinalUnitIndication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_FinalUnitIndication.Marshal(b, m, deterministic)
}
func (m *FinalUnitIndication) XXX_Merge(src proto.Message) {
	xxx_messageInfo_FinalUnitIndication.Merge(m, src)
}
func (m *FinalUnitIndication) XXX_Size() int {
	return xxx_messageInfo_FinalUnitIndication.Size(m)
}
func (m *FinalUnitIndication) XXX_DiscardUnknown() {
	xxx_messageInfo_FinalUnitIndication.DiscardUnknown(m)
}

var xxx_messageInfo_FinalUnitIndication proto.InternalMessageInfo

func (m *FinalUnitIndication) GetRedirectServer() *RedirectServer {
	if m != nil {
		return m.RedirectServer
	}
	return nil
}

func (m *FinalUnitIndication) GetFinalUnitAction() FinalUnitAction {
	if m != nil {
		return m.FinalUnitAction
	}
	return FinalUnitAction_Terminate
}

func (m *FinalUnitIndication) GetRestrictRules() []string {
	if m != nil {
		return m.RestrictRules
	}
	return nil
}

type OCSConfig struct {
	MaxUsageOctets       *Octets              `protobuf:"bytes,1,opt,name=max_usage_octets,json=maxUsageOctets,proto3" json:"max_usage_octets,omitempty"`
	MaxUsageTime         uint32               `protobuf:"varint,2,opt,name=max_usage_time,json=maxUsageTime,proto3" json:"max_usage_time,omitempty"`
	ValidityTime         uint32               `protobuf:"varint,3,opt,name=validity_time,json=validityTime,proto3" json:"validity_time,omitempty"`
	UseMockDriver        bool                 `protobuf:"varint,4,opt,name=use_mock_driver,json=useMockDriver,proto3" json:"use_mock_driver,omitempty"`
	FinalUnitIndication  *FinalUnitIndication `protobuf:"bytes,5,opt,name=final_unit_indication,json=finalUnitIndication,proto3" json:"final_unit_indication,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *OCSConfig) Reset()         { *m = OCSConfig{} }
func (m *OCSConfig) String() string { return proto.CompactTextString(m) }
func (*OCSConfig) ProtoMessage()    {}
func (*OCSConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{6}
}

func (m *OCSConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_OCSConfig.Unmarshal(m, b)
}
func (m *OCSConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_OCSConfig.Marshal(b, m, deterministic)
}
func (m *OCSConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_OCSConfig.Merge(m, src)
}
func (m *OCSConfig) XXX_Size() int {
	return xxx_messageInfo_OCSConfig.Size(m)
}
func (m *OCSConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_OCSConfig.DiscardUnknown(m)
}

var xxx_messageInfo_OCSConfig proto.InternalMessageInfo

func (m *OCSConfig) GetMaxUsageOctets() *Octets {
	if m != nil {
		return m.MaxUsageOctets
	}
	return nil
}

func (m *OCSConfig) GetMaxUsageTime() uint32 {
	if m != nil {
		return m.MaxUsageTime
	}
	return 0
}

func (m *OCSConfig) GetValidityTime() uint32 {
	if m != nil {
		return m.ValidityTime
	}
	return 0
}

func (m *OCSConfig) GetUseMockDriver() bool {
	if m != nil {
		return m.UseMockDriver
	}
	return false
}

func (m *OCSConfig) GetFinalUnitIndication() *FinalUnitIndication {
	if m != nil {
		return m.FinalUnitIndication
	}
	return nil
}

type CreditInfo struct {
	Imsi                 string              `protobuf:"bytes,1,opt,name=imsi,proto3" json:"imsi,omitempty"`
	ChargingKey          uint32              `protobuf:"varint,2,opt,name=charging_key,json=chargingKey,proto3" json:"charging_key,omitempty"`
	Volume               *Octets             `protobuf:"bytes,3,opt,name=volume,proto3" json:"volume,omitempty"`
	UnitType             CreditInfo_UnitType `protobuf:"varint,4,opt,name=unit_type,json=unitType,proto3,enum=magma.feg.CreditInfo_UnitType" json:"unit_type,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

func (m *CreditInfo) Reset()         { *m = CreditInfo{} }
func (m *CreditInfo) String() string { return proto.CompactTextString(m) }
func (*CreditInfo) ProtoMessage()    {}
func (*CreditInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{7}
}

func (m *CreditInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CreditInfo.Unmarshal(m, b)
}
func (m *CreditInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CreditInfo.Marshal(b, m, deterministic)
}
func (m *CreditInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CreditInfo.Merge(m, src)
}
func (m *CreditInfo) XXX_Size() int {
	return xxx_messageInfo_CreditInfo.Size(m)
}
func (m *CreditInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_CreditInfo.DiscardUnknown(m)
}

var xxx_messageInfo_CreditInfo proto.InternalMessageInfo

func (m *CreditInfo) GetImsi() string {
	if m != nil {
		return m.Imsi
	}
	return ""
}

func (m *CreditInfo) GetChargingKey() uint32 {
	if m != nil {
		return m.ChargingKey
	}
	return 0
}

func (m *CreditInfo) GetVolume() *Octets {
	if m != nil {
		return m.Volume
	}
	return nil
}

func (m *CreditInfo) GetUnitType() CreditInfo_UnitType {
	if m != nil {
		return m.UnitType
	}
	return CreditInfo_Bytes
}

type CreditInfos struct {
	CreditInformation    map[uint32]*CreditInfo `protobuf:"bytes,1,rep,name=creditInformation,proto3" json:"creditInformation,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
	XXX_unrecognized     []byte                 `json:"-"`
	XXX_sizecache        int32                  `json:"-"`
}

func (m *CreditInfos) Reset()         { *m = CreditInfos{} }
func (m *CreditInfos) String() string { return proto.CompactTextString(m) }
func (*CreditInfos) ProtoMessage()    {}
func (*CreditInfos) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{8}
}

func (m *CreditInfos) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CreditInfos.Unmarshal(m, b)
}
func (m *CreditInfos) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CreditInfos.Marshal(b, m, deterministic)
}
func (m *CreditInfos) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CreditInfos.Merge(m, src)
}
func (m *CreditInfos) XXX_Size() int {
	return xxx_messageInfo_CreditInfos.Size(m)
}
func (m *CreditInfos) XXX_DiscardUnknown() {
	xxx_messageInfo_CreditInfos.DiscardUnknown(m)
}

var xxx_messageInfo_CreditInfos proto.InternalMessageInfo

func (m *CreditInfos) GetCreditInformation() map[uint32]*CreditInfo {
	if m != nil {
		return m.CreditInformation
	}
	return nil
}

type ChargingReAuthTarget struct {
	Imsi                 string   `protobuf:"bytes,1,opt,name=imsi,proto3" json:"imsi,omitempty"`
	RatingGroup          uint32   `protobuf:"varint,2,opt,name=rating_group,json=ratingGroup,proto3" json:"rating_group,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ChargingReAuthTarget) Reset()         { *m = ChargingReAuthTarget{} }
func (m *ChargingReAuthTarget) String() string { return proto.CompactTextString(m) }
func (*ChargingReAuthTarget) ProtoMessage()    {}
func (*ChargingReAuthTarget) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{9}
}

func (m *ChargingReAuthTarget) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ChargingReAuthTarget.Unmarshal(m, b)
}
func (m *ChargingReAuthTarget) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ChargingReAuthTarget.Marshal(b, m, deterministic)
}
func (m *ChargingReAuthTarget) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ChargingReAuthTarget.Merge(m, src)
}
func (m *ChargingReAuthTarget) XXX_Size() int {
	return xxx_messageInfo_ChargingReAuthTarget.Size(m)
}
func (m *ChargingReAuthTarget) XXX_DiscardUnknown() {
	xxx_messageInfo_ChargingReAuthTarget.DiscardUnknown(m)
}

var xxx_messageInfo_ChargingReAuthTarget proto.InternalMessageInfo

func (m *ChargingReAuthTarget) GetImsi() string {
	if m != nil {
		return m.Imsi
	}
	return ""
}

func (m *ChargingReAuthTarget) GetRatingGroup() uint32 {
	if m != nil {
		return m.RatingGroup
	}
	return 0
}

type ChargingReAuthAnswer struct {
	SessionId            string   `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	ResultCode           uint32   `protobuf:"varint,2,opt,name=result_code,json=resultCode,proto3" json:"result_code,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ChargingReAuthAnswer) Reset()         { *m = ChargingReAuthAnswer{} }
func (m *ChargingReAuthAnswer) String() string { return proto.CompactTextString(m) }
func (*ChargingReAuthAnswer) ProtoMessage()    {}
func (*ChargingReAuthAnswer) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{10}
}

func (m *ChargingReAuthAnswer) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ChargingReAuthAnswer.Unmarshal(m, b)
}
func (m *ChargingReAuthAnswer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ChargingReAuthAnswer.Marshal(b, m, deterministic)
}
func (m *ChargingReAuthAnswer) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ChargingReAuthAnswer.Merge(m, src)
}
func (m *ChargingReAuthAnswer) XXX_Size() int {
	return xxx_messageInfo_ChargingReAuthAnswer.Size(m)
}
func (m *ChargingReAuthAnswer) XXX_DiscardUnknown() {
	xxx_messageInfo_ChargingReAuthAnswer.DiscardUnknown(m)
}

var xxx_messageInfo_ChargingReAuthAnswer proto.InternalMessageInfo

func (m *ChargingReAuthAnswer) GetSessionId() string {
	if m != nil {
		return m.SessionId
	}
	return ""
}

func (m *ChargingReAuthAnswer) GetResultCode() uint32 {
	if m != nil {
		return m.ResultCode
	}
	return 0
}

type PCRFConfigs struct {
	UseMockDriver        bool     `protobuf:"varint,1,opt,name=use_mock_driver,json=useMockDriver,proto3" json:"use_mock_driver,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PCRFConfigs) Reset()         { *m = PCRFConfigs{} }
func (m *PCRFConfigs) String() string { return proto.CompactTextString(m) }
func (*PCRFConfigs) ProtoMessage()    {}
func (*PCRFConfigs) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{11}
}

func (m *PCRFConfigs) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PCRFConfigs.Unmarshal(m, b)
}
func (m *PCRFConfigs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PCRFConfigs.Marshal(b, m, deterministic)
}
func (m *PCRFConfigs) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PCRFConfigs.Merge(m, src)
}
func (m *PCRFConfigs) XXX_Size() int {
	return xxx_messageInfo_PCRFConfigs.Size(m)
}
func (m *PCRFConfigs) XXX_DiscardUnknown() {
	xxx_messageInfo_PCRFConfigs.DiscardUnknown(m)
}

var xxx_messageInfo_PCRFConfigs proto.InternalMessageInfo

func (m *PCRFConfigs) GetUseMockDriver() bool {
	if m != nil {
		return m.UseMockDriver
	}
	return false
}

type AccountRules struct {
	Imsi                   string            `protobuf:"bytes,1,opt,name=imsi,proto3" json:"imsi,omitempty"`
	StaticRuleNames        []string          `protobuf:"bytes,2,rep,name=static_rule_names,json=staticRuleNames,proto3" json:"static_rule_names,omitempty"`
	StaticRuleBaseNames    []string          `protobuf:"bytes,3,rep,name=static_rule_base_names,json=staticRuleBaseNames,proto3" json:"static_rule_base_names,omitempty"`
	DynamicRuleDefinitions []*RuleDefinition `protobuf:"bytes,4,rep,name=dynamic_rule_definitions,json=dynamicRuleDefinitions,proto3" json:"dynamic_rule_definitions,omitempty"`
	XXX_NoUnkeyedLiteral   struct{}          `json:"-"`
	XXX_unrecognized       []byte            `json:"-"`
	XXX_sizecache          int32             `json:"-"`
}

func (m *AccountRules) Reset()         { *m = AccountRules{} }
func (m *AccountRules) String() string { return proto.CompactTextString(m) }
func (*AccountRules) ProtoMessage()    {}
func (*AccountRules) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{12}
}

func (m *AccountRules) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AccountRules.Unmarshal(m, b)
}
func (m *AccountRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AccountRules.Marshal(b, m, deterministic)
}
func (m *AccountRules) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AccountRules.Merge(m, src)
}
func (m *AccountRules) XXX_Size() int {
	return xxx_messageInfo_AccountRules.Size(m)
}
func (m *AccountRules) XXX_DiscardUnknown() {
	xxx_messageInfo_AccountRules.DiscardUnknown(m)
}

var xxx_messageInfo_AccountRules proto.InternalMessageInfo

func (m *AccountRules) GetImsi() string {
	if m != nil {
		return m.Imsi
	}
	return ""
}

func (m *AccountRules) GetStaticRuleNames() []string {
	if m != nil {
		return m.StaticRuleNames
	}
	return nil
}

func (m *AccountRules) GetStaticRuleBaseNames() []string {
	if m != nil {
		return m.StaticRuleBaseNames
	}
	return nil
}

func (m *AccountRules) GetDynamicRuleDefinitions() []*RuleDefinition {
	if m != nil {
		return m.DynamicRuleDefinitions
	}
	return nil
}

type RuleDefinition struct {
	RuleName             string                      `protobuf:"bytes,1,opt,name=rule_name,json=ruleName,proto3" json:"rule_name,omitempty"`
	RatingGroup          uint32                      `protobuf:"varint,2,opt,name=rating_group,json=ratingGroup,proto3" json:"rating_group,omitempty"`
	Precedence           uint32                      `protobuf:"varint,3,opt,name=precedence,proto3" json:"precedence,omitempty"`
	MonitoringKey        string                      `protobuf:"bytes,4,opt,name=monitoring_key,json=monitoringKey,proto3" json:"monitoring_key,omitempty"`
	FlowDescriptions     []string                    `protobuf:"bytes,5,rep,name=flow_descriptions,json=flowDescriptions,proto3" json:"flow_descriptions,omitempty"`
	RedirectInformation  *protos.RedirectInformation `protobuf:"bytes,7,opt,name=redirect_information,json=redirectInformation,proto3" json:"redirect_information,omitempty"`
	QosInformation       *protos.FlowQos             `protobuf:"bytes,8,opt,name=qos_information,json=qosInformation,proto3" json:"qos_information,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                    `json:"-"`
	XXX_unrecognized     []byte                      `json:"-"`
	XXX_sizecache        int32                       `json:"-"`
}

func (m *RuleDefinition) Reset()         { *m = RuleDefinition{} }
func (m *RuleDefinition) String() string { return proto.CompactTextString(m) }
func (*RuleDefinition) ProtoMessage()    {}
func (*RuleDefinition) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{13}
}

func (m *RuleDefinition) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RuleDefinition.Unmarshal(m, b)
}
func (m *RuleDefinition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RuleDefinition.Marshal(b, m, deterministic)
}
func (m *RuleDefinition) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RuleDefinition.Merge(m, src)
}
func (m *RuleDefinition) XXX_Size() int {
	return xxx_messageInfo_RuleDefinition.Size(m)
}
func (m *RuleDefinition) XXX_DiscardUnknown() {
	xxx_messageInfo_RuleDefinition.DiscardUnknown(m)
}

var xxx_messageInfo_RuleDefinition proto.InternalMessageInfo

func (m *RuleDefinition) GetRuleName() string {
	if m != nil {
		return m.RuleName
	}
	return ""
}

func (m *RuleDefinition) GetRatingGroup() uint32 {
	if m != nil {
		return m.RatingGroup
	}
	return 0
}

func (m *RuleDefinition) GetPrecedence() uint32 {
	if m != nil {
		return m.Precedence
	}
	return 0
}

func (m *RuleDefinition) GetMonitoringKey() string {
	if m != nil {
		return m.MonitoringKey
	}
	return ""
}

func (m *RuleDefinition) GetFlowDescriptions() []string {
	if m != nil {
		return m.FlowDescriptions
	}
	return nil
}

func (m *RuleDefinition) GetRedirectInformation() *protos.RedirectInformation {
	if m != nil {
		return m.RedirectInformation
	}
	return nil
}

func (m *RuleDefinition) GetQosInformation() *protos.FlowQos {
	if m != nil {
		return m.QosInformation
	}
	return nil
}

type UsageMonitorConfiguration struct {
	Imsi                 string          `protobuf:"bytes,1,opt,name=imsi,proto3" json:"imsi,omitempty"`
	UsageMonitorCredits  []*UsageMonitor `protobuf:"bytes,2,rep,name=usage_monitor_credits,json=usageMonitorCredits,proto3" json:"usage_monitor_credits,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *UsageMonitorConfiguration) Reset()         { *m = UsageMonitorConfiguration{} }
func (m *UsageMonitorConfiguration) String() string { return proto.CompactTextString(m) }
func (*UsageMonitorConfiguration) ProtoMessage()    {}
func (*UsageMonitorConfiguration) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{14}
}

func (m *UsageMonitorConfiguration) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UsageMonitorConfiguration.Unmarshal(m, b)
}
func (m *UsageMonitorConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UsageMonitorConfiguration.Marshal(b, m, deterministic)
}
func (m *UsageMonitorConfiguration) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UsageMonitorConfiguration.Merge(m, src)
}
func (m *UsageMonitorConfiguration) XXX_Size() int {
	return xxx_messageInfo_UsageMonitorConfiguration.Size(m)
}
func (m *UsageMonitorConfiguration) XXX_DiscardUnknown() {
	xxx_messageInfo_UsageMonitorConfiguration.DiscardUnknown(m)
}

var xxx_messageInfo_UsageMonitorConfiguration proto.InternalMessageInfo

func (m *UsageMonitorConfiguration) GetImsi() string {
	if m != nil {
		return m.Imsi
	}
	return ""
}

func (m *UsageMonitorConfiguration) GetUsageMonitorCredits() []*UsageMonitor {
	if m != nil {
		return m.UsageMonitorCredits
	}
	return nil
}

type UsageMonitor struct {

	MonitorInfoPerRequest *UsageMonitoringInformation `protobuf:"bytes,1,opt,name=monitor_info_per_request,json=monitorInfoPerRequest,proto3" json:"monitor_info_per_request,omitempty"`

	TotalQuota           *Octets  `protobuf:"bytes,2,opt,name=total_quota,json=totalQuota,proto3" json:"total_quota,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *UsageMonitor) Reset()         { *m = UsageMonitor{} }
func (m *UsageMonitor) String() string { return proto.CompactTextString(m) }
func (*UsageMonitor) ProtoMessage()    {}
func (*UsageMonitor) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{15}
}

func (m *UsageMonitor) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UsageMonitor.Unmarshal(m, b)
}
func (m *UsageMonitor) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UsageMonitor.Marshal(b, m, deterministic)
}
func (m *UsageMonitor) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UsageMonitor.Merge(m, src)
}
func (m *UsageMonitor) XXX_Size() int {
	return xxx_messageInfo_UsageMonitor.Size(m)
}
func (m *UsageMonitor) XXX_DiscardUnknown() {
	xxx_messageInfo_UsageMonitor.DiscardUnknown(m)
}

var xxx_messageInfo_UsageMonitor proto.InternalMessageInfo

func (m *UsageMonitor) GetMonitorInfoPerRequest() *UsageMonitoringInformation {
	if m != nil {
		return m.MonitorInfoPerRequest
	}
	return nil
}

func (m *UsageMonitor) GetTotalQuota() *Octets {
	if m != nil {
		return m.TotalQuota
	}
	return nil
}

type GxCreditControlExpectations struct {
	Expectations              []*GxCreditControlExpectation `protobuf:"bytes,1,rep,name=expectations,proto3" json:"expectations,omitempty"`
	UnexpectedRequestBehavior UnexpectedRequestBehavior     `protobuf:"varint,2,opt,name=unexpected_request_behavior,json=unexpectedRequestBehavior,proto3,enum=magma.feg.UnexpectedRequestBehavior" json:"unexpected_request_behavior,omitempty"`
	GxDefaultCca              *GxCreditControlAnswer        `protobuf:"bytes,3,opt,name=gx_default_cca,json=gxDefaultCca,proto3" json:"gx_default_cca,omitempty"`
	TotalExpectedUsage        *Octets                       `protobuf:"bytes,4,opt,name=total_expected_usage,json=totalExpectedUsage,proto3" json:"total_expected_usage,omitempty"`
	XXX_NoUnkeyedLiteral      struct{}                      `json:"-"`
	XXX_unrecognized          []byte                        `json:"-"`
	XXX_sizecache             int32                         `json:"-"`
}

func (m *GxCreditControlExpectations) Reset()         { *m = GxCreditControlExpectations{} }
func (m *GxCreditControlExpectations) String() string { return proto.CompactTextString(m) }
func (*GxCreditControlExpectations) ProtoMessage()    {}
func (*GxCreditControlExpectations) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{16}
}

func (m *GxCreditControlExpectations) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GxCreditControlExpectations.Unmarshal(m, b)
}
func (m *GxCreditControlExpectations) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GxCreditControlExpectations.Marshal(b, m, deterministic)
}
func (m *GxCreditControlExpectations) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GxCreditControlExpectations.Merge(m, src)
}
func (m *GxCreditControlExpectations) XXX_Size() int {
	return xxx_messageInfo_GxCreditControlExpectations.Size(m)
}
func (m *GxCreditControlExpectations) XXX_DiscardUnknown() {
	xxx_messageInfo_GxCreditControlExpectations.DiscardUnknown(m)
}

var xxx_messageInfo_GxCreditControlExpectations proto.InternalMessageInfo

func (m *GxCreditControlExpectations) GetExpectations() []*GxCreditControlExpectation {
	if m != nil {
		return m.Expectations
	}
	return nil
}

func (m *GxCreditControlExpectations) GetUnexpectedRequestBehavior() UnexpectedRequestBehavior {
	if m != nil {
		return m.UnexpectedRequestBehavior
	}
	return UnexpectedRequestBehavior_CONTINUE_WITH_ERROR
}

func (m *GxCreditControlExpectations) GetGxDefaultCca() *GxCreditControlAnswer {
	if m != nil {
		return m.GxDefaultCca
	}
	return nil
}

func (m *GxCreditControlExpectations) GetTotalExpectedUsage() *Octets {
	if m != nil {
		return m.TotalExpectedUsage
	}
	return nil
}

type GxCreditControlResult struct {
	Results              []*ExpectationResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
	Errors               []*ErrorByIndex      `protobuf:"bytes,2,rep,name=errors,proto3" json:"errors,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *GxCreditControlResult) Reset()         { *m = GxCreditControlResult{} }
func (m *GxCreditControlResult) String() string { return proto.CompactTextString(m) }
func (*GxCreditControlResult) ProtoMessage()    {}
func (*GxCreditControlResult) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{17}
}

func (m *GxCreditControlResult) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GxCreditControlResult.Unmarshal(m, b)
}
func (m *GxCreditControlResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GxCreditControlResult.Marshal(b, m, deterministic)
}
func (m *GxCreditControlResult) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GxCreditControlResult.Merge(m, src)
}
func (m *GxCreditControlResult) XXX_Size() int {
	return xxx_messageInfo_GxCreditControlResult.Size(m)
}
func (m *GxCreditControlResult) XXX_DiscardUnknown() {
	xxx_messageInfo_GxCreditControlResult.DiscardUnknown(m)
}

var xxx_messageInfo_GxCreditControlResult proto.InternalMessageInfo

func (m *GxCreditControlResult) GetResults() []*ExpectationResult {
	if m != nil {
		return m.Results
	}
	return nil
}

func (m *GxCreditControlResult) GetErrors() []*ErrorByIndex {
	if m != nil {
		return m.Errors
	}
	return nil
}

type ErrorByIndex struct {
	Index                int32    `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"`
	Error                string   `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ErrorByIndex) Reset()         { *m = ErrorByIndex{} }
func (m *ErrorByIndex) String() string { return proto.CompactTextString(m) }
func (*ErrorByIndex) ProtoMessage()    {}
func (*ErrorByIndex) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{18}
}

func (m *ErrorByIndex) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ErrorByIndex.Unmarshal(m, b)
}
func (m *ErrorByIndex) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ErrorByIndex.Marshal(b, m, deterministic)
}
func (m *ErrorByIndex) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ErrorByIndex.Merge(m, src)
}
func (m *ErrorByIndex) XXX_Size() int {
	return xxx_messageInfo_ErrorByIndex.Size(m)
}
func (m *ErrorByIndex) XXX_DiscardUnknown() {
	xxx_messageInfo_ErrorByIndex.DiscardUnknown(m)
}

var xxx_messageInfo_ErrorByIndex proto.InternalMessageInfo

func (m *ErrorByIndex) GetIndex() int32 {
	if m != nil {
		return m.Index
	}
	return 0
}

func (m *ErrorByIndex) GetError() string {
	if m != nil {
		return m.Error
	}
	return ""
}

type ExpectationResult struct {
	ExpectationIndex     int32    `protobuf:"varint,1,opt,name=expectation_index,json=expectationIndex,proto3" json:"expectation_index,omitempty"`
	ExpectationMet       bool     `protobuf:"varint,2,opt,name=expectation_met,json=expectationMet,proto3" json:"expectation_met,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ExpectationResult) Reset()         { *m = ExpectationResult{} }
func (m *ExpectationResult) String() string { return proto.CompactTextString(m) }
func (*ExpectationResult) ProtoMessage()    {}
func (*ExpectationResult) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{19}
}

func (m *ExpectationResult) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ExpectationResult.Unmarshal(m, b)
}
func (m *ExpectationResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ExpectationResult.Marshal(b, m, deterministic)
}
func (m *ExpectationResult) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ExpectationResult.Merge(m, src)
}
func (m *ExpectationResult) XXX_Size() int {
	return xxx_messageInfo_ExpectationResult.Size(m)
}
func (m *ExpectationResult) XXX_DiscardUnknown() {
	xxx_messageInfo_ExpectationResult.DiscardUnknown(m)
}

var xxx_messageInfo_ExpectationResult proto.InternalMessageInfo

func (m *ExpectationResult) GetExpectationIndex() int32 {
	if m != nil {
		return m.ExpectationIndex
	}
	return 0
}

func (m *ExpectationResult) GetExpectationMet() bool {
	if m != nil {
		return m.ExpectationMet
	}
	return false
}

type GxCreditControlExpectation struct {
	ExpectedRequest      *GxCreditControlRequest `protobuf:"bytes,1,opt,name=expected_request,json=expectedRequest,proto3" json:"expected_request,omitempty"`
	Answer               *GxCreditControlAnswer  `protobuf:"bytes,2,opt,name=answer,proto3" json:"answer,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
	XXX_unrecognized     []byte                  `json:"-"`
	XXX_sizecache        int32                   `json:"-"`
}

func (m *GxCreditControlExpectation) Reset()         { *m = GxCreditControlExpectation{} }
func (m *GxCreditControlExpectation) String() string { return proto.CompactTextString(m) }
func (*GxCreditControlExpectation) ProtoMessage()    {}
func (*GxCreditControlExpectation) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{20}
}

func (m *GxCreditControlExpectation) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GxCreditControlExpectation.Unmarshal(m, b)
}
func (m *GxCreditControlExpectation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GxCreditControlExpectation.Marshal(b, m, deterministic)
}
func (m *GxCreditControlExpectation) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GxCreditControlExpectation.Merge(m, src)
}
func (m *GxCreditControlExpectation) XXX_Size() int {
	return xxx_messageInfo_GxCreditControlExpectation.Size(m)
}
func (m *GxCreditControlExpectation) XXX_DiscardUnknown() {
	xxx_messageInfo_GxCreditControlExpectation.DiscardUnknown(m)
}

var xxx_messageInfo_GxCreditControlExpectation proto.InternalMessageInfo

func (m *GxCreditControlExpectation) GetExpectedRequest() *GxCreditControlRequest {
	if m != nil {
		return m.ExpectedRequest
	}
	return nil
}

func (m *GxCreditControlExpectation) GetAnswer() *GxCreditControlAnswer {
	if m != nil {
		return m.Answer
	}
	return nil
}

type GxCreditControlRequest struct {
	Imsi                   string                        `protobuf:"bytes,1,opt,name=imsi,proto3" json:"imsi,omitempty"`
	RequestType            CCRequestType                 `protobuf:"varint,2,opt,name=request_type,json=requestType,proto3,enum=magma.feg.CCRequestType" json:"request_type,omitempty"`
	RequestNumber          *wrappers.Int32Value          `protobuf:"bytes,3,opt,name=request_number,json=requestNumber,proto3" json:"request_number,omitempty"`
	UsageMonitoringReports []*UsageMonitoringInformation `protobuf:"bytes,11,rep,name=usage_monitoring_reports,json=usageMonitoringReports,proto3" json:"usage_monitoring_reports,omitempty"`

	UsageReportDelta     uint64               `protobuf:"varint,12,opt,name=usage_report_delta,json=usageReportDelta,proto3" json:"usage_report_delta,omitempty"`
	EventTrigger         *wrappers.Int32Value `protobuf:"bytes,13,opt,name=event_trigger,json=eventTrigger,proto3" json:"event_trigger,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *GxCreditControlRequest) Reset()         { *m = GxCreditControlRequest{} }
func (m *GxCreditControlRequest) String() string { return proto.CompactTextString(m) }
func (*GxCreditControlRequest) ProtoMessage()    {}
func (*GxCreditControlRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{21}
}

func (m *GxCreditControlRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GxCreditControlRequest.Unmarshal(m, b)
}
func (m *GxCreditControlRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GxCreditControlRequest.Marshal(b, m, deterministic)
}
func (m *GxCreditControlRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GxCreditControlRequest.Merge(m, src)
}
func (m *GxCreditControlRequest) XXX_Size() int {
	return xxx_messageInfo_GxCreditControlRequest.Size(m)
}
func (m *GxCreditControlRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_GxCreditControlRequest.DiscardUnknown(m)
}

var xxx_messageInfo_GxCreditControlRequest proto.InternalMessageInfo

func (m *GxCreditControlRequest) GetImsi() string {
	if m != nil {
		return m.Imsi
	}
	return ""
}

func (m *GxCreditControlRequest) GetRequestType() CCRequestType {
	if m != nil {
		return m.RequestType
	}
	return CCRequestType__INVALID
}

func (m *GxCreditControlRequest) GetRequestNumber() *wrappers.Int32Value {
	if m != nil {
		return m.RequestNumber
	}
	return nil
}

func (m *GxCreditControlRequest) GetUsageMonitoringReports() []*UsageMonitoringInformation {
	if m != nil {
		return m.UsageMonitoringReports
	}
	return nil
}

func (m *GxCreditControlRequest) GetUsageReportDelta() uint64 {
	if m != nil {
		return m.UsageReportDelta
	}
	return 0
}

func (m *GxCreditControlRequest) GetEventTrigger() *wrappers.Int32Value {
	if m != nil {
		return m.EventTrigger
	}
	return nil
}

type GxCreditControlAnswer struct {

	ResultCode           uint32                        `protobuf:"varint,1,opt,name=result_code,json=resultCode,proto3" json:"result_code,omitempty"`
	UsageMonitoringInfos []*UsageMonitoringInformation `protobuf:"bytes,11,rep,name=usage_monitoring_infos,json=usageMonitoringInfos,proto3" json:"usage_monitoring_infos,omitempty"`
	RuleInstalls         *RuleInstalls                 `protobuf:"bytes,12,opt,name=rule_installs,json=ruleInstalls,proto3" json:"rule_installs,omitempty"`
	RuleRemovals         *RuleRemovals                 `protobuf:"bytes,13,opt,name=rule_removals,json=ruleRemovals,proto3" json:"rule_removals,omitempty"`
	EventTriggers        []uint32                      `protobuf:"varint,14,rep,packed,name=event_triggers,json=eventTriggers,proto3" json:"event_triggers,omitempty"`
	RevalidationTime     *timestamp.Timestamp          `protobuf:"bytes,15,opt,name=revalidation_time,json=revalidationTime,proto3" json:"revalidation_time,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
	XXX_unrecognized     []byte                        `json:"-"`
	XXX_sizecache        int32                         `json:"-"`
}

func (m *GxCreditControlAnswer) Reset()         { *m = GxCreditControlAnswer{} }
func (m *GxCreditControlAnswer) String() string { return proto.CompactTextString(m) }
func (*GxCreditControlAnswer) ProtoMessage()    {}
func (*GxCreditControlAnswer) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{22}
}

func (m *GxCreditControlAnswer) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GxCreditControlAnswer.Unmarshal(m, b)
}
func (m *GxCreditControlAnswer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GxCreditControlAnswer.Marshal(b, m, deterministic)
}
func (m *GxCreditControlAnswer) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GxCreditControlAnswer.Merge(m, src)
}
func (m *GxCreditControlAnswer) XXX_Size() int {
	return xxx_messageInfo_GxCreditControlAnswer.Size(m)
}
func (m *GxCreditControlAnswer) XXX_DiscardUnknown() {
	xxx_messageInfo_GxCreditControlAnswer.DiscardUnknown(m)
}

var xxx_messageInfo_GxCreditControlAnswer proto.InternalMessageInfo

func (m *GxCreditControlAnswer) GetResultCode() uint32 {
	if m != nil {
		return m.ResultCode
	}
	return 0
}

func (m *GxCreditControlAnswer) GetUsageMonitoringInfos() []*UsageMonitoringInformation {
	if m != nil {
		return m.UsageMonitoringInfos
	}
	return nil
}

func (m *GxCreditControlAnswer) GetRuleInstalls() *RuleInstalls {
	if m != nil {
		return m.RuleInstalls
	}
	return nil
}

func (m *GxCreditControlAnswer) GetRuleRemovals() *RuleRemovals {
	if m != nil {
		return m.RuleRemovals
	}
	return nil
}

func (m *GxCreditControlAnswer) GetEventTriggers() []uint32 {
	if m != nil {
		return m.EventTriggers
	}
	return nil
}

func (m *GxCreditControlAnswer) GetRevalidationTime() *timestamp.Timestamp {
	if m != nil {
		return m.RevalidationTime
	}
	return nil
}

type GyCreditControlExpectations struct {
	Expectations              []*GyCreditControlExpectation `protobuf:"bytes,1,rep,name=expectations,proto3" json:"expectations,omitempty"`
	UnexpectedRequestBehavior UnexpectedRequestBehavior     `protobuf:"varint,2,opt,name=unexpected_request_behavior,json=unexpectedRequestBehavior,proto3,enum=magma.feg.UnexpectedRequestBehavior" json:"unexpected_request_behavior,omitempty"`
	GyDefaultCca              *GyCreditControlAnswer        `protobuf:"bytes,3,opt,name=gy_default_cca,json=gyDefaultCca,proto3" json:"gy_default_cca,omitempty"`
	XXX_NoUnkeyedLiteral      struct{}                      `json:"-"`
	XXX_unrecognized          []byte                        `json:"-"`
	XXX_sizecache             int32                         `json:"-"`
}

func (m *GyCreditControlExpectations) Reset()         { *m = GyCreditControlExpectations{} }
func (m *GyCreditControlExpectations) String() string { return proto.CompactTextString(m) }
func (*GyCreditControlExpectations) ProtoMessage()    {}
func (*GyCreditControlExpectations) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{23}
}

func (m *GyCreditControlExpectations) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GyCreditControlExpectations.Unmarshal(m, b)
}
func (m *GyCreditControlExpectations) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GyCreditControlExpectations.Marshal(b, m, deterministic)
}
func (m *GyCreditControlExpectations) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GyCreditControlExpectations.Merge(m, src)
}
func (m *GyCreditControlExpectations) XXX_Size() int {
	return xxx_messageInfo_GyCreditControlExpectations.Size(m)
}
func (m *GyCreditControlExpectations) XXX_DiscardUnknown() {
	xxx_messageInfo_GyCreditControlExpectations.DiscardUnknown(m)
}

var xxx_messageInfo_GyCreditControlExpectations proto.InternalMessageInfo

func (m *GyCreditControlExpectations) GetExpectations() []*GyCreditControlExpectation {
	if m != nil {
		return m.Expectations
	}
	return nil
}

func (m *GyCreditControlExpectations) GetUnexpectedRequestBehavior() UnexpectedRequestBehavior {
	if m != nil {
		return m.UnexpectedRequestBehavior
	}
	return UnexpectedRequestBehavior_CONTINUE_WITH_ERROR
}

func (m *GyCreditControlExpectations) GetGyDefaultCca() *GyCreditControlAnswer {
	if m != nil {
		return m.GyDefaultCca
	}
	return nil
}

type GyCreditControlResult struct {
	Results              []*ExpectationResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
	Errors               []*ErrorByIndex      `protobuf:"bytes,2,rep,name=errors,proto3" json:"errors,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *GyCreditControlResult) Reset()         { *m = GyCreditControlResult{} }
func (m *GyCreditControlResult) String() string { return proto.CompactTextString(m) }
func (*GyCreditControlResult) ProtoMessage()    {}
func (*GyCreditControlResult) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{24}
}

func (m *GyCreditControlResult) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GyCreditControlResult.Unmarshal(m, b)
}
func (m *GyCreditControlResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GyCreditControlResult.Marshal(b, m, deterministic)
}
func (m *GyCreditControlResult) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GyCreditControlResult.Merge(m, src)
}
func (m *GyCreditControlResult) XXX_Size() int {
	return xxx_messageInfo_GyCreditControlResult.Size(m)
}
func (m *GyCreditControlResult) XXX_DiscardUnknown() {
	xxx_messageInfo_GyCreditControlResult.DiscardUnknown(m)
}

var xxx_messageInfo_GyCreditControlResult proto.InternalMessageInfo

func (m *GyCreditControlResult) GetResults() []*ExpectationResult {
	if m != nil {
		return m.Results
	}
	return nil
}

func (m *GyCreditControlResult) GetErrors() []*ErrorByIndex {
	if m != nil {
		return m.Errors
	}
	return nil
}

type GyCreditControlExpectation struct {
	ExpectedRequest      *GyCreditControlRequest `protobuf:"bytes,1,opt,name=expected_request,json=expectedRequest,proto3" json:"expected_request,omitempty"`
	Answer               *GyCreditControlAnswer  `protobuf:"bytes,2,opt,name=answer,proto3" json:"answer,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
	XXX_unrecognized     []byte                  `json:"-"`
	XXX_sizecache        int32                   `json:"-"`
}

func (m *GyCreditControlExpectation) Reset()         { *m = GyCreditControlExpectation{} }
func (m *GyCreditControlExpectation) String() string { return proto.CompactTextString(m) }
func (*GyCreditControlExpectation) ProtoMessage()    {}
func (*GyCreditControlExpectation) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{25}
}

func (m *GyCreditControlExpectation) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GyCreditControlExpectation.Unmarshal(m, b)
}
func (m *GyCreditControlExpectation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GyCreditControlExpectation.Marshal(b, m, deterministic)
}
func (m *GyCreditControlExpectation) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GyCreditControlExpectation.Merge(m, src)
}
func (m *GyCreditControlExpectation) XXX_Size() int {
	return xxx_messageInfo_GyCreditControlExpectation.Size(m)
}
func (m *GyCreditControlExpectation) XXX_DiscardUnknown() {
	xxx_messageInfo_GyCreditControlExpectation.DiscardUnknown(m)
}

var xxx_messageInfo_GyCreditControlExpectation proto.InternalMessageInfo

func (m *GyCreditControlExpectation) GetExpectedRequest() *GyCreditControlRequest {
	if m != nil {
		return m.ExpectedRequest
	}
	return nil
}

func (m *GyCreditControlExpectation) GetAnswer() *GyCreditControlAnswer {
	if m != nil {
		return m.Answer
	}
	return nil
}

type GyCreditControlRequest struct {
	Imsi          string                           `protobuf:"bytes,1,opt,name=imsi,proto3" json:"imsi,omitempty"`
	RequestType   CCRequestType                    `protobuf:"varint,2,opt,name=request_type,json=requestType,proto3,enum=magma.feg.CCRequestType" json:"request_type,omitempty"`
	RequestNumber *wrappers.Int32Value             `protobuf:"bytes,3,opt,name=request_number,json=requestNumber,proto3" json:"request_number,omitempty"`
	QosInfo       *QosInfo                         `protobuf:"bytes,21,opt,name=qos_info,json=qosInfo,proto3" json:"qos_info,omitempty"`
	Mscc          []*MultipleServicesCreditControl `protobuf:"bytes,22,rep,name=mscc,proto3" json:"mscc,omitempty"`

	UsageReportDelta     uint64   `protobuf:"varint,12,opt,name=usage_report_delta,json=usageReportDelta,proto3" json:"usage_report_delta,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GyCreditControlRequest) Reset()         { *m = GyCreditControlRequest{} }
func (m *GyCreditControlRequest) String() string { return proto.CompactTextString(m) }
func (*GyCreditControlRequest) ProtoMessage()    {}
func (*GyCreditControlRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{26}
}

func (m *GyCreditControlRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GyCreditControlRequest.Unmarshal(m, b)
}
func (m *GyCreditControlRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GyCreditControlRequest.Marshal(b, m, deterministic)
}
func (m *GyCreditControlRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GyCreditControlRequest.Merge(m, src)
}
func (m *GyCreditControlRequest) XXX_Size() int {
	return xxx_messageInfo_GyCreditControlRequest.Size(m)
}
func (m *GyCreditControlRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_GyCreditControlRequest.DiscardUnknown(m)
}

var xxx_messageInfo_GyCreditControlRequest proto.InternalMessageInfo

func (m *GyCreditControlRequest) GetImsi() string {
	if m != nil {
		return m.Imsi
	}
	return ""
}

func (m *GyCreditControlRequest) GetRequestType() CCRequestType {
	if m != nil {
		return m.RequestType
	}
	return CCRequestType__INVALID
}

func (m *GyCreditControlRequest) GetRequestNumber() *wrappers.Int32Value {
	if m != nil {
		return m.RequestNumber
	}
	return nil
}

func (m *GyCreditControlRequest) GetQosInfo() *QosInfo {
	if m != nil {
		return m.QosInfo
	}
	return nil
}

func (m *GyCreditControlRequest) GetMscc() []*MultipleServicesCreditControl {
	if m != nil {
		return m.Mscc
	}
	return nil
}

func (m *GyCreditControlRequest) GetUsageReportDelta() uint64 {
	if m != nil {
		return m.UsageReportDelta
	}
	return 0
}

type GyCreditControlAnswer struct {
	RequestType          CCRequestType `protobuf:"varint,1,opt,name=request_type,json=requestType,proto3,enum=magma.feg.CCRequestType" json:"request_type,omitempty"`
	RequestNumber        uint32        `protobuf:"varint,2,opt,name=request_number,json=requestNumber,proto3" json:"request_number,omitempty"`
	ResultCode           uint32        `protobuf:"varint,3,opt,name=result_code,json=resultCode,proto3" json:"result_code,omitempty"`
	QuotaGrants          []*QuotaGrant `protobuf:"bytes,4,rep,name=quota_grants,json=quotaGrants,proto3" json:"quota_grants,omitempty"`
	LinkFailure          bool          `protobuf:"varint,5,opt,name=link_failure,json=linkFailure,proto3" json:"link_failure,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *GyCreditControlAnswer) Reset()         { *m = GyCreditControlAnswer{} }
func (m *GyCreditControlAnswer) String() string { return proto.CompactTextString(m) }
func (*GyCreditControlAnswer) ProtoMessage()    {}
func (*GyCreditControlAnswer) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{27}
}

func (m *GyCreditControlAnswer) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GyCreditControlAnswer.Unmarshal(m, b)
}
func (m *GyCreditControlAnswer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GyCreditControlAnswer.Marshal(b, m, deterministic)
}
func (m *GyCreditControlAnswer) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GyCreditControlAnswer.Merge(m, src)
}
func (m *GyCreditControlAnswer) XXX_Size() int {
	return xxx_messageInfo_GyCreditControlAnswer.Size(m)
}
func (m *GyCreditControlAnswer) XXX_DiscardUnknown() {
	xxx_messageInfo_GyCreditControlAnswer.DiscardUnknown(m)
}

var xxx_messageInfo_GyCreditControlAnswer proto.InternalMessageInfo

func (m *GyCreditControlAnswer) GetRequestType() CCRequestType {
	if m != nil {
		return m.RequestType
	}
	return CCRequestType__INVALID
}

func (m *GyCreditControlAnswer) GetRequestNumber() uint32 {
	if m != nil {
		return m.RequestNumber
	}
	return 0
}

func (m *GyCreditControlAnswer) GetResultCode() uint32 {
	if m != nil {
		return m.ResultCode
	}
	return 0
}

func (m *GyCreditControlAnswer) GetQuotaGrants() []*QuotaGrant {
	if m != nil {
		return m.QuotaGrants
	}
	return nil
}

func (m *GyCreditControlAnswer) GetLinkFailure() bool {
	if m != nil {
		return m.LinkFailure
	}
	return false
}

type QuotaGrant struct {
	RatingGroup          uint32               `protobuf:"varint,1,opt,name=rating_group,json=ratingGroup,proto3" json:"rating_group,omitempty"`
	GrantedServiceUnit   *Octets              `protobuf:"bytes,2,opt,name=granted_service_unit,json=grantedServiceUnit,proto3" json:"granted_service_unit,omitempty"`
	ValidityTime         uint32               `protobuf:"varint,3,opt,name=validity_time,json=validityTime,proto3" json:"validity_time,omitempty"`
	ResultCode           uint32               `protobuf:"varint,4,opt,name=result_code,json=resultCode,proto3" json:"result_code,omitempty"`
	IsFinalCredit        bool                 `protobuf:"varint,11,opt,name=is_final_credit,json=isFinalCredit,proto3" json:"is_final_credit,omitempty"`
	FinalUnitIndication  *FinalUnitIndication `protobuf:"bytes,12,opt,name=final_unit_indication,json=finalUnitIndication,proto3" json:"final_unit_indication,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *QuotaGrant) Reset()         { *m = QuotaGrant{} }
func (m *QuotaGrant) String() string { return proto.CompactTextString(m) }
func (*QuotaGrant) ProtoMessage()    {}
func (*QuotaGrant) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{28}
}

func (m *QuotaGrant) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QuotaGrant.Unmarshal(m, b)
}
func (m *QuotaGrant) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QuotaGrant.Marshal(b, m, deterministic)
}
func (m *QuotaGrant) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QuotaGrant.Merge(m, src)
}
func (m *QuotaGrant) XXX_Size() int {
	return xxx_messageInfo_QuotaGrant.Size(m)
}
func (m *QuotaGrant) XXX_DiscardUnknown() {
	xxx_messageInfo_QuotaGrant.DiscardUnknown(m)
}

var xxx_messageInfo_QuotaGrant proto.InternalMessageInfo

func (m *QuotaGrant) GetRatingGroup() uint32 {
	if m != nil {
		return m.RatingGroup
	}
	return 0
}

func (m *QuotaGrant) GetGrantedServiceUnit() *Octets {
	if m != nil {
		return m.GrantedServiceUnit
	}
	return nil
}

func (m *QuotaGrant) GetValidityTime() uint32 {
	if m != nil {
		return m.ValidityTime
	}
	return 0
}

func (m *QuotaGrant) GetResultCode() uint32 {
	if m != nil {
		return m.ResultCode
	}
	return 0
}

func (m *QuotaGrant) GetIsFinalCredit() bool {
	if m != nil {
		return m.IsFinalCredit
	}
	return false
}

func (m *QuotaGrant) GetFinalUnitIndication() *FinalUnitIndication {
	if m != nil {
		return m.FinalUnitIndication
	}
	return nil
}

type UsageMonitoringInformation struct {
	MonitoringKey        []byte          `protobuf:"bytes,1,opt,name=monitoring_key,json=monitoringKey,proto3" json:"monitoring_key,omitempty"`
	MonitoringLevel      MonitoringLevel `protobuf:"varint,2,opt,name=monitoring_level,json=monitoringLevel,proto3,enum=magma.feg.MonitoringLevel" json:"monitoring_level,omitempty"`
	Octets               *Octets         `protobuf:"bytes,3,opt,name=octets,proto3" json:"octets,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *UsageMonitoringInformation) Reset()         { *m = UsageMonitoringInformation{} }
func (m *UsageMonitoringInformation) String() string { return proto.CompactTextString(m) }
func (*UsageMonitoringInformation) ProtoMessage()    {}
func (*UsageMonitoringInformation) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{29}
}

func (m *UsageMonitoringInformation) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UsageMonitoringInformation.Unmarshal(m, b)
}
func (m *UsageMonitoringInformation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UsageMonitoringInformation.Marshal(b, m, deterministic)
}
func (m *UsageMonitoringInformation) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UsageMonitoringInformation.Merge(m, src)
}
func (m *UsageMonitoringInformation) XXX_Size() int {
	return xxx_messageInfo_UsageMonitoringInformation.Size(m)
}
func (m *UsageMonitoringInformation) XXX_DiscardUnknown() {
	xxx_messageInfo_UsageMonitoringInformation.DiscardUnknown(m)
}

var xxx_messageInfo_UsageMonitoringInformation proto.InternalMessageInfo

func (m *UsageMonitoringInformation) GetMonitoringKey() []byte {
	if m != nil {
		return m.MonitoringKey
	}
	return nil
}

func (m *UsageMonitoringInformation) GetMonitoringLevel() MonitoringLevel {
	if m != nil {
		return m.MonitoringLevel
	}
	return MonitoringLevel_SessionLevel
}

func (m *UsageMonitoringInformation) GetOctets() *Octets {
	if m != nil {
		return m.Octets
	}
	return nil
}

type MultipleServicesCreditControl struct {
	RatingGroup          uint32   `protobuf:"varint,1,opt,name=rating_group,json=ratingGroup,proto3" json:"rating_group,omitempty"`
	UsedServiceUnit      *Octets  `protobuf:"bytes,2,opt,name=used_service_unit,json=usedServiceUnit,proto3" json:"used_service_unit,omitempty"`
	UpdateType           int32    `protobuf:"varint,3,opt,name=update_type,json=updateType,proto3" json:"update_type,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *MultipleServicesCreditControl) Reset()         { *m = MultipleServicesCreditControl{} }
func (m *MultipleServicesCreditControl) String() string { return proto.CompactTextString(m) }
func (*MultipleServicesCreditControl) ProtoMessage()    {}
func (*MultipleServicesCreditControl) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{30}
}

func (m *MultipleServicesCreditControl) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MultipleServicesCreditControl.Unmarshal(m, b)
}
func (m *MultipleServicesCreditControl) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MultipleServicesCreditControl.Marshal(b, m, deterministic)
}
func (m *MultipleServicesCreditControl) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MultipleServicesCreditControl.Merge(m, src)
}
func (m *MultipleServicesCreditControl) XXX_Size() int {
	return xxx_messageInfo_MultipleServicesCreditControl.Size(m)
}
func (m *MultipleServicesCreditControl) XXX_DiscardUnknown() {
	xxx_messageInfo_MultipleServicesCreditControl.DiscardUnknown(m)
}

var xxx_messageInfo_MultipleServicesCreditControl proto.InternalMessageInfo

func (m *MultipleServicesCreditControl) GetRatingGroup() uint32 {
	if m != nil {
		return m.RatingGroup
	}
	return 0
}

func (m *MultipleServicesCreditControl) GetUsedServiceUnit() *Octets {
	if m != nil {
		return m.UsedServiceUnit
	}
	return nil
}

func (m *MultipleServicesCreditControl) GetUpdateType() int32 {
	if m != nil {
		return m.UpdateType
	}
	return 0
}

type QosInfo struct {

	ApnAggMaxBitRateUl uint32 `protobuf:"varint,1,opt,name=apn_agg_max_bit_rate_ul,json=apnAggMaxBitRateUl,proto3" json:"apn_agg_max_bit_rate_ul,omitempty"`

	ApnAggMaxBitRateDl   uint32   `protobuf:"varint,2,opt,name=apn_agg_max_bit_rate_dl,json=apnAggMaxBitRateDl,proto3" json:"apn_agg_max_bit_rate_dl,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *QosInfo) Reset()         { *m = QosInfo{} }
func (m *QosInfo) String() string { return proto.CompactTextString(m) }
func (*QosInfo) ProtoMessage()    {}
func (*QosInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{31}
}

func (m *QosInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QosInfo.Unmarshal(m, b)
}
func (m *QosInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QosInfo.Marshal(b, m, deterministic)
}
func (m *QosInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QosInfo.Merge(m, src)
}
func (m *QosInfo) XXX_Size() int {
	return xxx_messageInfo_QosInfo.Size(m)
}
func (m *QosInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_QosInfo.DiscardUnknown(m)
}

var xxx_messageInfo_QosInfo proto.InternalMessageInfo

func (m *QosInfo) GetApnAggMaxBitRateUl() uint32 {
	if m != nil {
		return m.ApnAggMaxBitRateUl
	}
	return 0
}

func (m *QosInfo) GetApnAggMaxBitRateDl() uint32 {
	if m != nil {
		return m.ApnAggMaxBitRateDl
	}
	return 0
}

type RuleInstalls struct {
	RuleNames            []string             `protobuf:"bytes,1,rep,name=rule_names,json=ruleNames,proto3" json:"rule_names,omitempty"`
	RuleBaseNames        []string             `protobuf:"bytes,2,rep,name=rule_base_names,json=ruleBaseNames,proto3" json:"rule_base_names,omitempty"`
	RuleDefinitions      []*RuleDefinition    `protobuf:"bytes,3,rep,name=rule_definitions,json=ruleDefinitions,proto3" json:"rule_definitions,omitempty"`
	ActivationTime       *timestamp.Timestamp `protobuf:"bytes,4,opt,name=activation_time,json=activationTime,proto3" json:"activation_time,omitempty"`
	DeactivationTime     *timestamp.Timestamp `protobuf:"bytes,5,opt,name=deactivation_time,json=deactivationTime,proto3" json:"deactivation_time,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *RuleInstalls) Reset()         { *m = RuleInstalls{} }
func (m *RuleInstalls) String() string { return proto.CompactTextString(m) }
func (*RuleInstalls) ProtoMessage()    {}
func (*RuleInstalls) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{32}
}

func (m *RuleInstalls) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RuleInstalls.Unmarshal(m, b)
}
func (m *RuleInstalls) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RuleInstalls.Marshal(b, m, deterministic)
}
func (m *RuleInstalls) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RuleInstalls.Merge(m, src)
}
func (m *RuleInstalls) XXX_Size() int {
	return xxx_messageInfo_RuleInstalls.Size(m)
}
func (m *RuleInstalls) XXX_DiscardUnknown() {
	xxx_messageInfo_RuleInstalls.DiscardUnknown(m)
}

var xxx_messageInfo_RuleInstalls proto.InternalMessageInfo

func (m *RuleInstalls) GetRuleNames() []string {
	if m != nil {
		return m.RuleNames
	}
	return nil
}

func (m *RuleInstalls) GetRuleBaseNames() []string {
	if m != nil {
		return m.RuleBaseNames
	}
	return nil
}

func (m *RuleInstalls) GetRuleDefinitions() []*RuleDefinition {
	if m != nil {
		return m.RuleDefinitions
	}
	return nil
}

func (m *RuleInstalls) GetActivationTime() *timestamp.Timestamp {
	if m != nil {
		return m.ActivationTime
	}
	return nil
}

func (m *RuleInstalls) GetDeactivationTime() *timestamp.Timestamp {
	if m != nil {
		return m.DeactivationTime
	}
	return nil
}

type RuleRemovals struct {
	RuleNames            []string `protobuf:"bytes,1,rep,name=rule_names,json=ruleNames,proto3" json:"rule_names,omitempty"`
	RuleBaseNames        []string `protobuf:"bytes,2,rep,name=rule_base_names,json=ruleBaseNames,proto3" json:"rule_base_names,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *RuleRemovals) Reset()         { *m = RuleRemovals{} }
func (m *RuleRemovals) String() string { return proto.CompactTextString(m) }
func (*RuleRemovals) ProtoMessage()    {}
func (*RuleRemovals) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{33}
}

func (m *RuleRemovals) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RuleRemovals.Unmarshal(m, b)
}
func (m *RuleRemovals) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RuleRemovals.Marshal(b, m, deterministic)
}
func (m *RuleRemovals) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RuleRemovals.Merge(m, src)
}
func (m *RuleRemovals) XXX_Size() int {
	return xxx_messageInfo_RuleRemovals.Size(m)
}
func (m *RuleRemovals) XXX_DiscardUnknown() {
	xxx_messageInfo_RuleRemovals.DiscardUnknown(m)
}

var xxx_messageInfo_RuleRemovals proto.InternalMessageInfo

func (m *RuleRemovals) GetRuleNames() []string {
	if m != nil {
		return m.RuleNames
	}
	return nil
}

func (m *RuleRemovals) GetRuleBaseNames() []string {
	if m != nil {
		return m.RuleBaseNames
	}
	return nil
}

type Octets struct {
	TotalOctets          uint64   `protobuf:"varint,1,opt,name=total_octets,json=totalOctets,proto3" json:"total_octets,omitempty"`
	InputOctets          uint64   `protobuf:"varint,2,opt,name=input_octets,json=inputOctets,proto3" json:"input_octets,omitempty"`
	OutputOctets         uint64   `protobuf:"varint,3,opt,name=output_octets,json=outputOctets,proto3" json:"output_octets,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Octets) Reset()         { *m = Octets{} }
func (m *Octets) String() string { return proto.CompactTextString(m) }
func (*Octets) ProtoMessage()    {}
func (*Octets) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{34}
}

func (m *Octets) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Octets.Unmarshal(m, b)
}
func (m *Octets) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Octets.Marshal(b, m, deterministic)
}
func (m *Octets) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Octets.Merge(m, src)
}
func (m *Octets) XXX_Size() int {
	return xxx_messageInfo_Octets.Size(m)
}
func (m *Octets) XXX_DiscardUnknown() {
	xxx_messageInfo_Octets.DiscardUnknown(m)
}

var xxx_messageInfo_Octets proto.InternalMessageInfo

func (m *Octets) GetTotalOctets() uint64 {
	if m != nil {
		return m.TotalOctets
	}
	return 0
}

func (m *Octets) GetInputOctets() uint64 {
	if m != nil {
		return m.InputOctets
	}
	return 0
}

func (m *Octets) GetOutputOctets() uint64 {
	if m != nil {
		return m.OutputOctets
	}
	return 0
}

type PolicyReAuthTarget struct {
	Imsi                 string                        `protobuf:"bytes,1,opt,name=imsi,proto3" json:"imsi,omitempty"`
	RulesToRemove        *RuleRemovals                 `protobuf:"bytes,2,opt,name=rules_to_remove,json=rulesToRemove,proto3" json:"rules_to_remove,omitempty"`
	RulesToInstall       *RuleInstalls                 `protobuf:"bytes,3,opt,name=rules_to_install,json=rulesToInstall,proto3" json:"rules_to_install,omitempty"`
	UsageMonitoringInfos []*UsageMonitoringInformation `protobuf:"bytes,4,rep,name=usage_monitoring_infos,json=usageMonitoringInfos,proto3" json:"usage_monitoring_infos,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
	XXX_unrecognized     []byte                        `json:"-"`
	XXX_sizecache        int32                         `json:"-"`
}

func (m *PolicyReAuthTarget) Reset()         { *m = PolicyReAuthTarget{} }
func (m *PolicyReAuthTarget) String() string { return proto.CompactTextString(m) }
func (*PolicyReAuthTarget) ProtoMessage()    {}
func (*PolicyReAuthTarget) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{35}
}

func (m *PolicyReAuthTarget) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PolicyReAuthTarget.Unmarshal(m, b)
}
func (m *PolicyReAuthTarget) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PolicyReAuthTarget.Marshal(b, m, deterministic)
}
func (m *PolicyReAuthTarget) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PolicyReAuthTarget.Merge(m, src)
}
func (m *PolicyReAuthTarget) XXX_Size() int {
	return xxx_messageInfo_PolicyReAuthTarget.Size(m)
}
func (m *PolicyReAuthTarget) XXX_DiscardUnknown() {
	xxx_messageInfo_PolicyReAuthTarget.DiscardUnknown(m)
}

var xxx_messageInfo_PolicyReAuthTarget proto.InternalMessageInfo

func (m *PolicyReAuthTarget) GetImsi() string {
	if m != nil {
		return m.Imsi
	}
	return ""
}

func (m *PolicyReAuthTarget) GetRulesToRemove() *RuleRemovals {
	if m != nil {
		return m.RulesToRemove
	}
	return nil
}

func (m *PolicyReAuthTarget) GetRulesToInstall() *RuleInstalls {
	if m != nil {
		return m.RulesToInstall
	}
	return nil
}

func (m *PolicyReAuthTarget) GetUsageMonitoringInfos() []*UsageMonitoringInformation {
	if m != nil {
		return m.UsageMonitoringInfos
	}
	return nil
}

type PolicyReAuthAnswer struct {
	SessionId            string            `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	ResultCode           uint32            `protobuf:"varint,2,opt,name=result_code,json=resultCode,proto3" json:"result_code,omitempty"`
	FailedRules          map[string]uint32 `protobuf:"bytes,3,rep,name=failed_rules,json=failedRules,proto3" json:"failed_rules,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *PolicyReAuthAnswer) Reset()         { *m = PolicyReAuthAnswer{} }
func (m *PolicyReAuthAnswer) String() string { return proto.CompactTextString(m) }
func (*PolicyReAuthAnswer) ProtoMessage()    {}
func (*PolicyReAuthAnswer) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{36}
}

func (m *PolicyReAuthAnswer) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PolicyReAuthAnswer.Unmarshal(m, b)
}
func (m *PolicyReAuthAnswer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PolicyReAuthAnswer.Marshal(b, m, deterministic)
}
func (m *PolicyReAuthAnswer) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PolicyReAuthAnswer.Merge(m, src)
}
func (m *PolicyReAuthAnswer) XXX_Size() int {
	return xxx_messageInfo_PolicyReAuthAnswer.Size(m)
}
func (m *PolicyReAuthAnswer) XXX_DiscardUnknown() {
	xxx_messageInfo_PolicyReAuthAnswer.DiscardUnknown(m)
}

var xxx_messageInfo_PolicyReAuthAnswer proto.InternalMessageInfo

func (m *PolicyReAuthAnswer) GetSessionId() string {
	if m != nil {
		return m.SessionId
	}
	return ""
}

func (m *PolicyReAuthAnswer) GetResultCode() uint32 {
	if m != nil {
		return m.ResultCode
	}
	return 0
}

func (m *PolicyReAuthAnswer) GetFailedRules() map[string]uint32 {
	if m != nil {
		return m.FailedRules
	}
	return nil
}

type AbortSessionRequest struct {
	Imsi                 string   `protobuf:"bytes,1,opt,name=imsi,proto3" json:"imsi,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *AbortSessionRequest) Reset()         { *m = AbortSessionRequest{} }
func (m *AbortSessionRequest) String() string { return proto.CompactTextString(m) }
func (*AbortSessionRequest) ProtoMessage()    {}
func (*AbortSessionRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{37}
}

func (m *AbortSessionRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AbortSessionRequest.Unmarshal(m, b)
}
func (m *AbortSessionRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AbortSessionRequest.Marshal(b, m, deterministic)
}
func (m *AbortSessionRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AbortSessionRequest.Merge(m, src)
}
func (m *AbortSessionRequest) XXX_Size() int {
	return xxx_messageInfo_AbortSessionRequest.Size(m)
}
func (m *AbortSessionRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_AbortSessionRequest.DiscardUnknown(m)
}

var xxx_messageInfo_AbortSessionRequest proto.InternalMessageInfo

func (m *AbortSessionRequest) GetImsi() string {
	if m != nil {
		return m.Imsi
	}
	return ""
}

type AbortSessionAnswer struct {
	SessionId            string   `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	ResultCode           uint32   `protobuf:"varint,2,opt,name=result_code,json=resultCode,proto3" json:"result_code,omitempty"`
	ErrorMessage         string   `protobuf:"bytes,3,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *AbortSessionAnswer) Reset()         { *m = AbortSessionAnswer{} }
func (m *AbortSessionAnswer) String() string { return proto.CompactTextString(m) }
func (*AbortSessionAnswer) ProtoMessage()    {}
func (*AbortSessionAnswer) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{38}
}

func (m *AbortSessionAnswer) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AbortSessionAnswer.Unmarshal(m, b)
}
func (m *AbortSessionAnswer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AbortSessionAnswer.Marshal(b, m, deterministic)
}
func (m *AbortSessionAnswer) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AbortSessionAnswer.Merge(m, src)
}
func (m *AbortSessionAnswer) XXX_Size() int {
	return xxx_messageInfo_AbortSessionAnswer.Size(m)
}
func (m *AbortSessionAnswer) XXX_DiscardUnknown() {
	xxx_messageInfo_AbortSessionAnswer.DiscardUnknown(m)
}

var xxx_messageInfo_AbortSessionAnswer proto.InternalMessageInfo

func (m *AbortSessionAnswer) GetSessionId() string {
	if m != nil {
		return m.SessionId
	}
	return ""
}

func (m *AbortSessionAnswer) GetResultCode() uint32 {
	if m != nil {
		return m.ResultCode
	}
	return 0
}

func (m *AbortSessionAnswer) GetErrorMessage() string {
	if m != nil {
		return m.ErrorMessage
	}
	return ""
}

func init() {
	proto.RegisterEnum("magma.feg.FinalUnitAction", FinalUnitAction_name, FinalUnitAction_value)
	proto.RegisterEnum("magma.feg.MonitoringLevel", MonitoringLevel_name, MonitoringLevel_value)
	proto.RegisterEnum("magma.feg.CCRequestType", CCRequestType_name, CCRequestType_value)
	proto.RegisterEnum("magma.feg.UnexpectedRequestBehavior", UnexpectedRequestBehavior_name, UnexpectedRequestBehavior_value)
	proto.RegisterEnum("magma.feg.AbortCauseType", AbortCauseType_name, AbortCauseType_value)
	proto.RegisterEnum("magma.feg.Reply_ServerBehavior", Reply_ServerBehavior_name, Reply_ServerBehavior_value)
	proto.RegisterEnum("magma.feg.CreditInfo_UnitType", CreditInfo_UnitType_name, CreditInfo_UnitType_value)
	proto.RegisterType((*Reply)(nil), "magma.feg.Reply")
	proto.RegisterType((*ExpectedRequest)(nil), "magma.feg.ExpectedRequest")
	proto.RegisterType((*RequestReply)(nil), "magma.feg.RequestReply")
	proto.RegisterType((*ServerConfiguration)(nil), "magma.feg.ServerConfiguration")
	proto.RegisterType((*RedirectServer)(nil), "magma.feg.RedirectServer")
	proto.RegisterType((*FinalUnitIndication)(nil), "magma.feg.FinalUnitIndication")
	proto.RegisterType((*OCSConfig)(nil), "magma.feg.OCSConfig")
	proto.RegisterType((*CreditInfo)(nil), "magma.feg.CreditInfo")
	proto.RegisterType((*CreditInfos)(nil), "magma.feg.CreditInfos")
	proto.RegisterMapType((map[uint32]*CreditInfo)(nil), "magma.feg.CreditInfos.CreditInformationEntry")
	proto.RegisterType((*ChargingReAuthTarget)(nil), "magma.feg.ChargingReAuthTarget")
	proto.RegisterType((*ChargingReAuthAnswer)(nil), "magma.feg.ChargingReAuthAnswer")
	proto.RegisterType((*PCRFConfigs)(nil), "magma.feg.PCRFConfigs")
	proto.RegisterType((*AccountRules)(nil), "magma.feg.AccountRules")
	proto.RegisterType((*RuleDefinition)(nil), "magma.feg.RuleDefinition")
	proto.RegisterType((*UsageMonitorConfiguration)(nil), "magma.feg.UsageMonitorConfiguration")
	proto.RegisterType((*UsageMonitor)(nil), "magma.feg.UsageMonitor")
	proto.RegisterType((*GxCreditControlExpectations)(nil), "magma.feg.GxCreditControlExpectations")
	proto.RegisterType((*GxCreditControlResult)(nil), "magma.feg.GxCreditControlResult")
	proto.RegisterType((*ErrorByIndex)(nil), "magma.feg.ErrorByIndex")
	proto.RegisterType((*ExpectationResult)(nil), "magma.feg.ExpectationResult")
	proto.RegisterType((*GxCreditControlExpectation)(nil), "magma.feg.GxCreditControlExpectation")
	proto.RegisterType((*GxCreditControlRequest)(nil), "magma.feg.GxCreditControlRequest")
	proto.RegisterType((*GxCreditControlAnswer)(nil), "magma.feg.GxCreditControlAnswer")
	proto.RegisterType((*GyCreditControlExpectations)(nil), "magma.feg.GyCreditControlExpectations")
	proto.RegisterType((*GyCreditControlResult)(nil), "magma.feg.GyCreditControlResult")
	proto.RegisterType((*GyCreditControlExpectation)(nil), "magma.feg.GyCreditControlExpectation")
	proto.RegisterType((*GyCreditControlRequest)(nil), "magma.feg.GyCreditControlRequest")
	proto.RegisterType((*GyCreditControlAnswer)(nil), "magma.feg.GyCreditControlAnswer")
	proto.RegisterType((*QuotaGrant)(nil), "magma.feg.QuotaGrant")
	proto.RegisterType((*UsageMonitoringInformation)(nil), "magma.feg.UsageMonitoringInformation")
	proto.RegisterType((*MultipleServicesCreditControl)(nil), "magma.feg.MultipleServicesCreditControl")
	proto.RegisterType((*QosInfo)(nil), "magma.feg.QosInfo")
	proto.RegisterType((*RuleInstalls)(nil), "magma.feg.RuleInstalls")
	proto.RegisterType((*RuleRemovals)(nil), "magma.feg.RuleRemovals")
	proto.RegisterType((*Octets)(nil), "magma.feg.Octets")
	proto.RegisterType((*PolicyReAuthTarget)(nil), "magma.feg.PolicyReAuthTarget")
	proto.RegisterType((*PolicyReAuthAnswer)(nil), "magma.feg.PolicyReAuthAnswer")
	proto.RegisterMapType((map[string]uint32)(nil), "magma.feg.PolicyReAuthAnswer.FailedRulesEntry")
	proto.RegisterType((*AbortSessionRequest)(nil), "magma.feg.AbortSessionRequest")
	proto.RegisterType((*AbortSessionAnswer)(nil), "magma.feg.AbortSessionAnswer")
}

func init() { proto.RegisterFile("feg/protos/mock_core.proto", fileDescriptor_ef3afe2df05d1dc6) }

var fileDescriptor_ef3afe2df05d1dc6 = []byte{

	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x5a, 0x4b, 0x93, 0x1b, 0xc9,
	0x56, 0x96, 0xd4, 0x0f, 0xb7, 0x8e, 0x5e, 0xd5, 0xd9, 0x0f, 0xcb, 0xed, 0xeb, 0x71, 0x4f, 0x79,
	0xc6, 0x78, 0x7c, 0xb9, 0xed, 0x88, 0x9e, 0x0b, 0x38, 0xc6, 0x33, 0x77, 0x50, 0xab, 0xbb, 0xdd,
	0x62, 0xfa, 0x61, 0xa7, 0xd4, 0x76, 0xdc, 0x99, 0x08, 0x8a, 0xea, 0x52, 0x4a, 0x2e, 0x5c, 0xaa,
	0x92, 0x33, 0xab, 0xda, 0xad, 0x08, 0x16, 0xb0, 0x60, 0x41, 0x04, 0x11, 0xec, 0x08, 0xd6, 0x04,
	0x1b, 0x7e, 0x00, 0xf0, 0x13, 0xb8, 0x0b, 0x96, 0x2c, 0x88, 0xe0, 0x07, 0xf0, 0x13, 0x08, 0x36,
	0x04, 0x91, 0x8f, 0x92, 0xb2, 0x1e, 0x72, 0x7b, 0xae, 0x07, 0x86, 0xbb, 0x92, 0xea, 0xe4, 0x77,
	0x4e, 0x65, 0x9e, 0x3c, 0xf9, 0xe5, 0xc9, 0x93, 0x05, 0x5b, 0x03, 0x32, 0x7c, 0x34, 0xa6, 0x41,
	0x18, 0xb0, 0x47, 0xa3, 0xc0, 0x79, 0x6d, 0x39, 0x01, 0x25, 0x3b, 0x42, 0x80, 0xca, 0x23, 0x7b,
	0x38, 0xb2, 0x77, 0x06, 0x64, 0xb8, 0x75, 0x2b, 0xa0, 0xce, 0x63, 0x1a, 0x03, 0x9d, 0x60, 0x34,
	0x0a, 0x7c, 0x89, 0xda, 0xda, 0xd0, 0x2c, 0x38, 0x6c, 0x70, 0xa1, 0xc4, 0xb7, 0xbc, 0x90, 0xc4,
	0xe2, 0x71, 0xe0, 0xb9, 0xce, 0xa4, 0x1f, 0x37, 0x6d, 0x6b, 0x4d, 0x8c, 0x30, 0xe6, 0x06, 0xbe,
	0x35, 0xb2, 0x7d, 0x7b, 0x48, 0xa8, 0x42, 0xdc, 0xd1, 0x11, 0xd1, 0x05, 0x73, 0xa8, 0x7b, 0x41,
	0xe8, 0xd4, 0xc0, 0xdd, 0x61, 0x10, 0x0c, 0x3d, 0x85, 0xb8, 0x88, 0x06, 0x8f, 0x42, 0x77, 0x44,
	0x58, 0x68, 0x8f, 0xc6, 0x0a, 0xf0, 0x51, 0x1a, 0xf0, 0x96, 0xda, 0xe3, 0x31, 0xa1, 0x4c, 0xb6,
	0x9b, 0x7f, 0x53, 0x81, 0x25, 0x4c, 0xc6, 0xde, 0x04, 0x1d, 0x41, 0x83, 0x11, 0x7a, 0x49, 0xa8,
	0x75, 0x41, 0x5e, 0xd9, 0x97, 0x6e, 0x40, 0x9b, 0xc5, 0xed, 0xe2, 0x83, 0xfa, 0xee, 0xdd, 0x9d,
	0xe9, 0xe8, 0x77, 0x04, 0x74, 0xa7, 0x2b, 0x70, 0x7b, 0x0a, 0x86, 0xeb, 0x2c, 0xf1, 0x8c, 0xee,
	0x42, 0x85, 0x72, 0x9c, 0xd5, 0x27, 0x9e, 0x3d, 0x69, 0x96, 0xb6, 0x8b, 0x0f, 0x96, 0x30, 0x08,
	0xd1, 0x3e, 0x97, 0xa0, 0x5f, 0x40, 0xcd, 0xf6, 0x08, 0x0d, 0x2d, 0x4a, 0xde, 0x44, 0x84, 0x85,
	0xcd, 0x85, 0xed, 0xe2, 0x83, 0xca, 0xee, 0x4d, 0xed, 0x45, 0x2d, 0xde, 0x8e, 0x65, 0xf3, 0x51,
	0x01, 0x57, 0x6d, 0xed, 0x19, 0xfd, 0x01, 0xac, 0xf6, 0x83, 0xb7, 0xbe, 0xe7, 0xfa, 0xaf, 0xad,
	0xc8, 0x77, 0xc3, 0xbe, 0x1d, 0xda, 0xcd, 0x45, 0x61, 0xe3, 0xb6, 0x66, 0x63, 0x5f, 0x61, 0xce,
	0x15, 0xe4, 0xa8, 0x80, 0x8d, 0x7e, 0x4a, 0x86, 0xbe, 0x86, 0x3a, 0x19, 0x33, 0xab, 0x4f, 0x42,
	0xdb, 0x79, 0x65, 0xd9, 0xce, 0xeb, 0xe6, 0x52, 0xa6, 0x33, 0x07, 0xcf, 0xba, 0xfb, 0xa2, 0xbd,
	0xe5, 0xbc, 0xe6, 0x9d, 0x21, 0x63, 0x36, 0x7d, 0x46, 0x7b, 0xd0, 0x70, 0x47, 0xcc, 0xd5, 0x2d,
	0x2c, 0x0b, 0x0b, 0x4d, 0xcd, 0x42, 0xe7, 0xa4, 0xdb, 0xd1, 0x4d, 0xd4, 0xb8, 0xca, 0xcc, 0xc6,
	0x4b, 0xd8, 0xf4, 0x02, 0xc7, 0x0e, 0xf9, 0xfc, 0x47, 0xe3, 0xbe, 0x1d, 0x12, 0xcb, 0x76, 0x1c,
	0x32, 0x0e, 0x9b, 0x37, 0x84, 0x29, 0x7d, 0x0a, 0x8e, 0x15, 0xf0, 0x5c, 0xe0, 0x5a, 0x02, 0x76,
	0x54, 0xc0, 0xeb, 0x5e, 0x8e, 0x3c, 0xcf, 0x30, 0x25, 0x7f, 0x4c, 0x9c, 0xb0, 0xb9, 0x72, 0x8d,
	0x61, 0x2c, 0x60, 0x59, 0xc3, 0x52, 0xce, 0x0d, 0x8f, 0x46, 0x96, 0xeb, 0x0f, 0x02, 0x3a, 0x92,
	0xe6, 0xe3, 0xb9, 0x2c, 0x67, 0x0c, 0x9f, 0x9c, 0x74, 0x66, 0xb8, 0xd9, 0x9c, 0xae, 0x8f, 0x46,
	0x59, 0x39, 0x6a, 0x41, 0x7d, 0x6c, 0x0f, 0x5d, 0x7f, 0x38, 0x35, 0x08, 0x19, 0x6f, 0x3e, 0x13,
	0x80, 0x99, 0xa5, 0xda, 0x58, 0x17, 0xa0, 0x7d, 0x68, 0x50, 0xe2, 0x11, 0x9b, 0x91, 0xa9, 0x8d,
	0x8a, 0xb0, 0x71, 0x2b, 0x11, 0xc9, 0x02, 0x31, 0x33, 0x52, 0xa7, 0x09, 0x09, 0xea, 0xc1, 0x06,
	0x8f, 0x6b, 0xd7, 0x21, 0x96, 0x7d, 0x11, 0x68, 0xc1, 0x5a, 0x15, 0xb6, 0x3e, 0xd2, 0x6c, 0x75,
	0x25, 0xae, 0xc5, 0x61, 0x33, 0x83, 0x6b, 0x2c, 0x2b, 0x46, 0xbb, 0x50, 0xa6, 0x84, 0x91, 0x50,
	0xc4, 0x49, 0x4d, 0x58, 0x5a, 0x4b, 0xf4, 0x8a, 0x91, 0x50, 0x86, 0xc8, 0x0a, 0x55, 0xff, 0xd1,
	0x53, 0x30, 0xa4, 0x8e, 0xeb, 0xf7, 0x5d, 0x39, 0x17, 0xcd, 0xba, 0x50, 0xdd, 0x4a, 0xab, 0x76,
	0xa6, 0x88, 0xa3, 0x02, 0x6e, 0xd0, 0xa4, 0x08, 0xfd, 0x14, 0x96, 0x59, 0x68, 0x87, 0x11, 0x6b,
	0x36, 0x84, 0xfa, 0xaa, 0x3e, 0x06, 0xd1, 0x70, 0x54, 0xc0, 0x0a, 0x82, 0xbe, 0x85, 0x9b, 0x0e,
	0x25, 0x3c, 0x62, 0x62, 0x66, 0xa2, 0x84, 0x8d, 0x03, 0x9f, 0x91, 0xa6, 0x21, 0xb4, 0xb7, 0x95,
	0xb6, 0x17, 0x92, 0x9d, 0xb6, 0x40, 0x76, 0x25, 0x10, 0x2b, 0xdc, 0x51, 0x11, 0x6f, 0x38, 0x79,
	0x0d, 0xdc, 0xb6, 0x8a, 0xc6, 0x8c, 0xed, 0xd5, 0x8c, 0x6d, 0x19, 0x77, 0x39, 0xb6, 0xa3, 0xbc,
	0x06, 0xe4, 0xc0, 0x56, 0x6c, 0x34, 0x24, 0x74, 0xe4, 0xfa, 0x32, 0xe8, 0x95, 0x79, 0x24, 0xcc,
	0xdf, 0xd3, 0xcc, 0x2b, 0xfd, 0x5e, 0x8c, 0xd5, 0xde, 0xd0, 0x64, 0x73, 0xda, 0xcc, 0x36, 0xd4,
	0x93, 0x24, 0x88, 0xd6, 0xa0, 0x81, 0x0f, 0x9e, 0x1d, 0xff, 0xd2, 0xea, 0x9c, 0x76, 0x7b, 0xad,
	0xd3, 0xde, 0xf1, 0x2f, 0x8d, 0x02, 0xaa, 0x03, 0x48, 0xe1, 0x71, 0xab, 0x77, 0x60, 0x14, 0x51,
	0x15, 0x56, 0x4e, 0xcf, 0x2c, 0x21, 0x32, 0x4a, 0x7b, 0x35, 0xa8, 0xb0, 0x21, 0xb3, 0x46, 0x84,
	0x31, 0x7b, 0x48, 0xf6, 0xea, 0x50, 0x1d, 0x5e, 0x0d, 0x27, 0xf1, 0xb3, 0xf9, 0x4f, 0x00, 0x8d,
	0x83, 0xab, 0x31, 0x71, 0x42, 0xd2, 0xd7, 0xc2, 0x47, 0x32, 0x27, 0x0f, 0x9f, 0x62, 0x26, 0x7c,
	0x04, 0x6b, 0xaa, 0xf0, 0xb1, 0xd5, 0x7f, 0xf4, 0x04, 0xaa, 0x31, 0xdb, 0x8a, 0x95, 0x5f, 0x12,
	0x6a, 0x9b, 0x59, 0xb2, 0x55, 0x0b, 0xbe, 0x62, 0xcf, 0x1e, 0xf9, 0x2a, 0xd0, 0xe8, 0x51, 0x0b,
	0xc0, 0x85, 0xcc, 0x2a, 0x98, 0xb2, 0x64, 0x22, 0x08, 0xd7, 0xa6, 0x64, 0xa9, 0x05, 0xe2, 0x4b,
	0xd8, 0xd4, 0x39, 0x53, 0x33, 0xbb, 0x98, 0x61, 0x8f, 0x19, 0x75, 0x26, 0xec, 0xae, 0xcf, 0x18,
	0x54, 0x33, 0xfc, 0x2d, 0xdc, 0xcc, 0xf2, 0x9d, 0x5c, 0xb6, 0x4b, 0x89, 0xc0, 0xca, 0x23, 0xbc,
	0x78, 0xe1, 0x6e, 0x78, 0x79, 0x0d, 0x7c, 0xd7, 0x9a, 0x32, 0x93, 0x70, 0xe4, 0x72, 0x66, 0xa3,
	0x88, 0x89, 0x49, 0x79, 0xb2, 0x3a, 0xd6, 0x9e, 0x39, 0x2d, 0xc5, 0x84, 0x12, 0xf7, 0xe9, 0x46,
	0x86, 0x96, 0x14, 0x95, 0x68, 0xb4, 0xc4, 0x12, 0x12, 0x1e, 0xde, 0x21, 0x77, 0x1d, 0x25, 0xb6,
	0x37, 0x1d, 0xaa, 0x13, 0x8c, 0xc6, 0x1e, 0x09, 0x89, 0x62, 0xf5, 0x7b, 0x9a, 0xc1, 0xde, 0x49,
	0xb7, 0x83, 0x35, 0x6c, 0x5b, 0x41, 0x8f, 0x0a, 0xb8, 0xc9, 0x0d, 0xe5, 0xb5, 0xf1, 0xf9, 0x89,
	0xf8, 0x16, 0x14, 0xba, 0x97, 0x6e, 0x38, 0xd1, 0xe7, 0x27, 0xcb, 0xee, 0xe7, 0x07, 0x2d, 0x85,
	0x4b, 0xce, 0x4f, 0x44, 0xb2, 0x72, 0xce, 0xee, 0x11, 0xb1, 0x22, 0x9f, 0x12, 0xdb, 0x79, 0x65,
	0x5f, 0x78, 0x24, 0x87, 0xdd, 0xcf, 0x0f, 0xce, 0x67, 0xed, 0x9c, 0xdd, 0x23, 0xa2, 0x09, 0xb8,
	0x1b, 0xa3, 0x71, 0x72, 0xeb, 0xcf, 0xb2, 0xfb, 0xf9, 0x38, 0xb5, 0xf1, 0xd7, 0xa3, 0x84, 0x24,
	0xc9, 0xc3, 0xd5, 0x5f, 0x9f, 0x87, 0x6b, 0x1f, 0xc6, 0xc3, 0xf5, 0xeb, 0x79, 0xf8, 0x25, 0x6c,
	0x66, 0x78, 0x58, 0x46, 0x4f, 0x23, 0x31, 0x17, 0x39, 0x34, 0x2c, 0x63, 0xa8, 0x88, 0xd7, 0x9d,
	0x1c, 0xb9, 0x98, 0xe4, 0x34, 0x09, 0x4b, 0xc3, 0x46, 0xc6, 0x70, 0x8a, 0x83, 0xa7, 0x86, 0xa3,
	0x1c, 0x39, 0xfa, 0x23, 0xb8, 0x95, 0xc7, 0xc0, 0xd2, 0xb6, 0xe4, 0x77, 0xf3, 0x9d, 0x04, 0x1c,
	0x9b, 0xbf, 0xc9, 0xf2, 0x9b, 0xae, 0x63, 0x4e, 0x0f, 0xaa, 0x0a, 0x29, 0x53, 0xdb, 0x9f, 0xc3,
	0x8d, 0xf8, 0xf5, 0xc5, 0xcc, 0x7c, 0xa5, 0x28, 0x16, 0xc7, 0x50, 0x74, 0x1f, 0x96, 0x44, 0xce,
	0xaa, 0x08, 0xd3, 0x48, 0xa7, 0xc1, 0x58, 0x36, 0x9b, 0x5d, 0x58, 0x93, 0x7b, 0x41, 0x3b, 0xf0,
	0x07, 0xee, 0x30, 0xa2, 0x72, 0x92, 0xbf, 0x84, 0x9a, 0xb2, 0x64, 0x49, 0x33, 0xc5, 0xed, 0x85,
	0x14, 0x5d, 0xe8, 0x9d, 0xc4, 0x55, 0xaa, 0x3d, 0x99, 0x87, 0x50, 0xc7, 0xa4, 0xef, 0x52, 0xe2,
	0x84, 0xd2, 0x38, 0xfa, 0x39, 0x6c, 0x24, 0x25, 0xad, 0x7e, 0x9f, 0x12, 0xc6, 0xc4, 0x90, 0xca,
	0x38, 0xbf, 0xd1, 0xfc, 0x55, 0x11, 0xd6, 0x0e, 0x5d, 0xdf, 0xf6, 0x78, 0xe4, 0x6b, 0x21, 0xb8,
	0xc7, 0x73, 0x24, 0xa9, 0x60, 0xc9, 0xf4, 0x5d, 0xb9, 0x26, 0x99, 0x23, 0xe9, 0x26, 0x79, 0x86,
	0x94, 0xe8, 0xd1, 0x21, 0xac, 0x0e, 0xb8, 0x69, 0xb1, 0x10, 0x05, 0x5b, 0x04, 0xbe, 0x70, 0x56,
	0x3d, 0xe1, 0xe0, 0xe9, 0xeb, 0x5b, 0x02, 0x81, 0x1b, 0x83, 0xa4, 0x00, 0x7d, 0x0a, 0x75, 0x4a,
	0x58, 0x48, 0x5d, 0x27, 0xb4, 0x68, 0xe4, 0x11, 0xd6, 0x5c, 0xd8, 0x5e, 0x78, 0x50, 0xc6, 0xb5,
	0x58, 0x8a, 0xb9, 0xd0, 0xfc, 0xab, 0x12, 0x94, 0xcf, 0xda, 0x5d, 0xe9, 0x65, 0xf4, 0x04, 0x8c,
	0x91, 0x7d, 0x65, 0x45, 0x7c, 0xc2, 0xad, 0xc0, 0x09, 0x49, 0xc8, 0xd4, 0x08, 0xf4, 0xd5, 0x74,
	0x26, 0x1a, 0x70, 0x7d, 0x64, 0x5f, 0x9d, 0x73, 0xa4, 0x7c, 0x46, 0x9f, 0x40, 0x7d, 0xa6, 0xcc,
	0x8f, 0x4c, 0xa2, 0xdb, 0x35, 0x5c, 0x8d, 0x71, 0x3d, 0x77, 0x44, 0xd0, 0x3d, 0xa8, 0x5d, 0xda,
	0x9e, 0xdb, 0xe7, 0x14, 0x28, 0x40, 0x0b, 0x12, 0x14, 0x0b, 0x05, 0xe8, 0x3e, 0x34, 0x22, 0x46,
	0x2c, 0x71, 0x62, 0xec, 0x53, 0x97, 0x3b, 0x92, 0xef, 0x61, 0x2b, 0xb8, 0x16, 0x31, 0x72, 0x12,
	0x38, 0xaf, 0xf7, 0x85, 0x10, 0x61, 0xd8, 0xd0, 0x9c, 0xa5, 0x31, 0xc8, 0x52, 0x66, 0x23, 0xcd,
	0x99, 0x2f, 0xbc, 0x36, 0xc8, 0x0a, 0xcd, 0x7f, 0x29, 0x02, 0xb4, 0xf9, 0xa4, 0x84, 0x3c, 0x91,
	0x46, 0x08, 0x16, 0xf9, 0xa6, 0xa8, 0x02, 0x42, 0xfc, 0x47, 0x1f, 0x43, 0xd5, 0x79, 0x65, 0x53,
	0xb1, 0x6d, 0xbd, 0x26, 0x13, 0x35, 0xce, 0x4a, 0x2c, 0xfb, 0x86, 0x4c, 0xd0, 0x67, 0xb0, 0x7c,
	0x19, 0x78, 0x91, 0x1a, 0x5f, 0xae, 0xff, 0x14, 0x00, 0x3d, 0x81, 0xb2, 0xe8, 0x7e, 0x38, 0x19,
	0x13, 0x31, 0xcc, 0x7a, 0xa2, 0xe3, 0xb3, 0xbe, 0xec, 0xf0, 0x9e, 0xf6, 0x26, 0x63, 0x82, 0x57,
	0x22, 0xf5, 0xcf, 0xbc, 0x0b, 0x2b, 0xb1, 0x14, 0x95, 0x61, 0x69, 0x6f, 0x12, 0x12, 0x66, 0x14,
	0xd0, 0x0a, 0x2c, 0x72, 0x47, 0x1a, 0x45, 0xf3, 0x9f, 0x8b, 0x50, 0x99, 0x99, 0x60, 0xe8, 0x3b,
	0x58, 0x75, 0xa6, 0x8f, 0xea, 0x98, 0xa0, 0x56, 0xd1, 0xcf, 0x72, 0xdf, 0xca, 0xb4, 0xff, 0x0a,
	0x7f, 0xe0, 0x87, 0x74, 0x82, 0xb3, 0x76, 0xb6, 0xbe, 0x83, 0xcd, 0x7c, 0x30, 0x32, 0x60, 0x81,
	0x7b, 0xaa, 0x28, 0x3c, 0xc5, 0xff, 0xa2, 0x9f, 0xc2, 0xd2, 0xa5, 0xed, 0x45, 0x44, 0x31, 0xc1,
	0x46, 0xee, 0xcb, 0xb1, 0xc4, 0x7c, 0x51, 0x7a, 0x5c, 0x34, 0x4f, 0x60, 0xbd, 0xad, 0x3c, 0x8c,
	0x49, 0x2b, 0x0a, 0x5f, 0xf5, 0x6c, 0x3a, 0x24, 0xe1, 0xbc, 0x19, 0xe2, 0x8c, 0xe1, 0x0f, 0xad,
	0x21, 0x0d, 0xa2, 0x71, 0x3c, 0x43, 0x52, 0xf6, 0x94, 0x8b, 0xcc, 0x17, 0x69, 0x73, 0x2d, 0x9f,
	0xbd, 0x25, 0x14, 0xdd, 0x01, 0x88, 0x89, 0xd6, 0xed, 0x2b, 0xa3, 0x65, 0x25, 0xe9, 0xf4, 0xe5,
	0x39, 0x9c, 0x45, 0x5e, 0x68, 0x39, 0x41, 0x3f, 0x0e, 0x71, 0x90, 0xa2, 0x76, 0xd0, 0x27, 0xe6,
	0xef, 0x40, 0xe5, 0x59, 0x1b, 0x1f, 0xca, 0x15, 0xc5, 0xf2, 0x42, 0xb9, 0x98, 0x13, 0xca, 0xe6,
	0xbf, 0x15, 0xa1, 0xda, 0x72, 0x9c, 0x20, 0xf2, 0xe5, 0xca, 0xcc, 0x1d, 0xd6, 0x43, 0x58, 0xe5,
	0x1b, 0x98, 0xeb, 0x88, 0x25, 0x6d, 0xf9, 0xf6, 0x88, 0xb0, 0x66, 0x49, 0xac, 0xeb, 0x86, 0x6c,
	0xe0, 0xba, 0xa7, 0x5c, 0x8c, 0x3e, 0x87, 0x4d, 0x1d, 0x7b, 0xc1, 0x4f, 0x6e, 0x52, 0x41, 0x12,
	0xc1, 0xda, 0x4c, 0x61, 0xcf, 0x66, 0x4a, 0xa9, 0x0b, 0xcd, 0xfe, 0xc4, 0xb7, 0x47, 0xb1, 0x56,
	0x9f, 0x0c, 0x5c, 0xdf, 0xe5, 0xd3, 0xc8, 0x9a, 0x8b, 0x22, 0x48, 0x12, 0x54, 0x16, 0x79, 0x64,
	0x7f, 0x8a, 0xc0, 0x9b, 0x4a, 0x35, 0x29, 0x66, 0xe6, 0xbf, 0x96, 0xa0, 0x9e, 0x94, 0xa1, 0xdb,
	0x50, 0x9e, 0x8e, 0x40, 0x8d, 0x70, 0x85, 0xaa, 0xae, 0xbf, 0xc7, 0xe4, 0xa1, 0x8f, 0x00, 0xc6,
	0x94, 0x38, 0xa4, 0x4f, 0x7c, 0x27, 0xa6, 0x10, 0x4d, 0xc2, 0xd9, 0x6f, 0x14, 0xf8, 0x6e, 0x18,
	0xd0, 0x78, 0x8d, 0x2e, 0x8a, 0x97, 0xd4, 0x66, 0xd2, 0x6f, 0x44, 0x0c, 0xae, 0x0e, 0xbc, 0xe0,
	0xad, 0xd5, 0x27, 0xcc, 0xa1, 0xee, 0x58, 0x8e, 0x73, 0x49, 0xb8, 0xc7, 0xe0, 0x0d, 0xfb, 0x9a,
	0x1c, 0x3d, 0x87, 0xf5, 0x29, 0xbb, 0x6b, 0x67, 0x74, 0x95, 0x6f, 0x7e, 0xa4, 0x6d, 0xbe, 0x31,
	0xc5, 0xeb, 0x27, 0xf1, 0x35, 0x9a, 0x15, 0xa2, 0x27, 0xd0, 0x78, 0x13, 0xb0, 0x84, 0x35, 0x99,
	0x6c, 0x22, 0xcd, 0xda, 0xa1, 0x17, 0xbc, 0x7d, 0x1e, 0x30, 0x5c, 0x7f, 0x13, 0x30, 0x4d, 0xd9,
	0xfc, 0x13, 0xb8, 0x25, 0x68, 0xf5, 0x44, 0x0e, 0x29, 0xb9, 0x51, 0xe6, 0x45, 0xcf, 0x37, 0xb0,
	0x21, 0xc9, 0x59, 0x39, 0xc1, 0x92, 0x0b, 0x58, 0x46, 0x50, 0x72, 0x13, 0xd5, 0x0d, 0xe3, 0xb5,
	0x48, 0x7f, 0x8d, 0xd4, 0x31, 0xff, 0xb6, 0x08, 0x55, 0x1d, 0x85, 0xfe, 0x10, 0x9a, 0xb1, 0x5d,
	0x3e, 0x1e, 0x6b, 0x4c, 0xa8, 0x95, 0x4c, 0x10, 0x3e, 0x9d, 0xf3, 0x02, 0xd7, 0x1f, 0xea, 0x9e,
	0xda, 0x50, 0x66, 0xb8, 0xec, 0x19, 0xa1, 0xb3, 0x53, 0x5a, 0x25, 0x0c, 0x42, 0xdb, 0xb3, 0xde,
	0x44, 0x41, 0x68, 0x2b, 0xd6, 0xc8, 0xa1, 0x55, 0x10, 0xa8, 0xe7, 0x1c, 0x64, 0xfe, 0x7b, 0x09,
	0x6e, 0x3f, 0xbd, 0x92, 0x5d, 0x6e, 0x07, 0x7e, 0x48, 0x03, 0x4f, 0x66, 0x26, 0xb6, 0x9c, 0xd2,
	0x0e, 0x54, 0x89, 0xf6, 0xac, 0x78, 0x50, 0xef, 0xe7, 0x7c, 0x6d, 0x9c, 0x50, 0x45, 0x7d, 0xb8,
	0x1d, 0xf9, 0x44, 0xa5, 0x3d, 0xf1, 0xc0, 0x67, 0x55, 0x3f, 0xb9, 0x83, 0x7f, 0xa2, 0x7b, 0x60,
	0x8a, 0x8e, 0x13, 0xb0, 0xb8, 0xf4, 0x77, 0x2b, 0x9a, 0xd7, 0x84, 0x0e, 0xa1, 0x3e, 0xbc, 0xe2,
	0xab, 0xd2, 0x16, 0x0c, 0xe4, 0xd8, 0x6a, 0x7b, 0xd9, 0x9e, 0xdf, 0x65, 0x49, 0x6b, 0xb8, 0x3a,
	0xbc, 0xda, 0x97, 0x6a, 0x6d, 0xc7, 0x46, 0x6d, 0x58, 0x97, 0xce, 0x9c, 0xf6, 0x58, 0xcc, 0xb1,
	0x3a, 0x29, 0xe6, 0x78, 0x15, 0x09, 0x78, 0x9c, 0xd6, 0x89, 0xd9, 0x33, 0xff, 0xb4, 0x08, 0x1b,
	0xa9, 0x97, 0x61, 0xc1, 0x83, 0xe8, 0x77, 0x79, 0x6e, 0xc8, 0xff, 0xc5, 0x2e, 0xfd, 0x49, 0x26,
	0x37, 0x54, 0xf5, 0x29, 0x0e, 0xc2, 0x31, 0x18, 0x3d, 0x82, 0x65, 0x42, 0x69, 0x40, 0xf3, 0x42,
	0xf2, 0x80, 0x37, 0xec, 0xf1, 0x73, 0x0f, 0xb9, 0xc2, 0x0a, 0x66, 0x7e, 0x01, 0x55, 0x5d, 0x8e,
	0xd6, 0x61, 0xc9, 0xe5, 0x7f, 0x44, 0xc4, 0x2d, 0x61, 0xf9, 0xc0, 0xa5, 0x02, 0x2f, 0x66, 0xa1,
	0x8c, 0xe5, 0x83, 0xe9, 0xc2, 0x6a, 0xa6, 0x2b, 0x9c, 0x11, 0xb4, 0x69, 0xb5, 0x74, 0x63, 0x86,
	0xd6, 0x20, 0xdf, 0xf6, 0x5b, 0xd0, 0xd0, 0xc1, 0x23, 0x22, 0xeb, 0x00, 0x2b, 0xb8, 0xae, 0x89,
	0x4f, 0x48, 0x68, 0xfe, 0x5d, 0x11, 0xb6, 0xe6, 0x47, 0x12, 0x3a, 0x06, 0x23, 0x1d, 0x39, 0x6a,
	0xc9, 0x7c, 0x3c, 0x7f, 0x5e, 0xe3, 0x3c, 0xb7, 0x91, 0x8a, 0x15, 0xf4, 0x18, 0x96, 0x6d, 0x31,
	0xe7, 0x6a, 0x8d, 0x5c, 0x1f, 0x1b, 0x0a, 0x6f, 0xfe, 0x77, 0x09, 0x36, 0xf3, 0xdf, 0x92, 0xcb,
	0x27, 0x4f, 0x20, 0x4e, 0xaf, 0x65, 0xee, 0x22, 0x63, 0x5c, 0x3f, 0x75, 0xb6, 0xdb, 0x4a, 0x5f,
	0x64, 0x2d, 0x15, 0x3a, 0x7b, 0x40, 0x7b, 0x3c, 0x3f, 0x95, 0xca, 0x7e, 0x34, 0xba, 0x20, 0x54,
	0x45, 0xf2, 0xed, 0x1d, 0x59, 0x5c, 0xdf, 0x89, 0x8b, 0xeb, 0x3b, 0x1d, 0x3f, 0xfc, 0x7c, 0xf7,
	0x05, 0x4f, 0x03, 0x70, 0x9c, 0xfc, 0x9f, 0x0a, 0x0d, 0x64, 0x41, 0x33, 0x41, 0x68, 0xb2, 0x8c,
	0x30, 0x0e, 0x68, 0xc8, 0x9a, 0x95, 0xcc, 0x52, 0x7e, 0x07, 0xe5, 0x6c, 0x46, 0xc9, 0x36, 0x2c,
	0x8d, 0xa0, 0xdf, 0x06, 0x24, 0x5f, 0x20, 0xad, 0x5a, 0x7d, 0xe2, 0x85, 0xb6, 0x38, 0xd9, 0x2e,
	0x62, 0x43, 0xb4, 0x48, 0xe4, 0x3e, 0x97, 0xa3, 0xdf, 0x87, 0x1a, 0xb9, 0x24, 0x7e, 0x68, 0x85,
	0xd4, 0x1d, 0x0e, 0x09, 0x55, 0xe7, 0xd8, 0x77, 0x8e, 0xa8, 0x2a, 0x34, 0x7a, 0x52, 0xc1, 0xfc,
	0xb3, 0x85, 0xcc, 0x8a, 0x52, 0x59, 0x49, 0x2a, 0xed, 0x28, 0xa6, 0xd3, 0x0e, 0xf4, 0x1d, 0x6c,
	0x66, 0x7c, 0xc1, 0x79, 0xf8, 0x7b, 0x7a, 0x62, 0x3d, 0xca, 0xb6, 0x31, 0x71, 0xec, 0xe2, 0xdb,
	0xb5, 0xeb, 0xb3, 0xd0, 0xf6, 0x3c, 0xa6, 0x0e, 0xf7, 0x37, 0x53, 0xb9, 0x40, 0x47, 0x35, 0xe3,
	0x2a, 0xd5, 0x9e, 0xa6, 0xda, 0x94, 0x8c, 0x82, 0x4b, 0xdb, 0x63, 0xca, 0x2f, 0x69, 0x6d, 0xac,
	0x9a, 0xa5, 0x76, 0xfc, 0xc4, 0xb7, 0xf2, 0x84, 0x57, 0xf9, 0xf9, 0x7e, 0xe1, 0x41, 0x0d, 0xd7,
	0x74, 0xcf, 0x31, 0xf4, 0x14, 0x56, 0x29, 0x11, 0x87, 0x08, 0xb9, 0x18, 0xc5, 0xd9, 0xa2, 0xa1,
	0x0e, 0xa6, 0xe9, 0x09, 0xe8, 0xc5, 0x17, 0x3a, 0xd8, 0xd0, 0x95, 0xb8, 0xd8, 0xfc, 0x6b, 0xbe,
	0x67, 0x4c, 0x3e, 0x68, 0xcf, 0x98, 0xfc, 0xbf, 0xdb, 0x33, 0x26, 0xd7, 0xed, 0x19, 0x93, 0xfc,
	0x3d, 0x63, 0x32, 0xdb, 0x33, 0x24, 0xdd, 0x4f, 0x7e, 0x54, 0xba, 0x17, 0x3c, 0x3a, 0xf9, 0x50,
	0x1e, 0x9d, 0xfc, 0x00, 0x3c, 0x3a, 0x79, 0x17, 0x8f, 0xfe, 0x8a, 0xf3, 0xe8, 0xe4, 0x37, 0x87,
	0x47, 0x7f, 0x06, 0x2b, 0x71, 0x1a, 0xda, 0xdc, 0x48, 0xe4, 0x9f, 0xfc, 0xe5, 0xcf, 0x65, 0xda,
	0x89, 0x6f, 0xa8, 0xfc, 0x13, 0x7d, 0x09, 0x8b, 0x23, 0xe6, 0x38, 0xcd, 0x4d, 0x31, 0x69, 0x0f,
	0xf4, 0x4b, 0xa9, 0xc8, 0x0b, 0xdd, 0xb1, 0x47, 0x54, 0xc1, 0x95, 0x25, 0x5d, 0x20, 0xb4, 0xbe,
	0x1f, 0xa7, 0x9a, 0xff, 0x95, 0x0d, 0x3a, 0xc5, 0x88, 0x69, 0xaf, 0x15, 0xbf, 0x8f, 0xd7, 0x3e,
	0xcd, 0x78, 0x4d, 0x1e, 0x32, 0x52, 0x8e, 0x49, 0xb1, 0xee, 0x42, 0x86, 0x75, 0x1f, 0x43, 0x55,
	0xa4, 0xa3, 0xd6, 0x90, 0xda, 0x7e, 0x18, 0x9f, 0x91, 0xf4, 0xb3, 0xac, 0x48, 0x44, 0x9f, 0xf2,
	0x56, 0x5c, 0x79, 0x33, 0xfd, 0xcf, 0xf8, 0x21, 0x47, 0xd4, 0x5b, 0x07, 0xb6, 0xeb, 0x45, 0x94,
	0x88, 0x8a, 0xc5, 0x0a, 0xae, 0x70, 0xd9, 0xa1, 0x14, 0x99, 0xff, 0x58, 0x02, 0x98, 0xa9, 0x67,
	0x8e, 0x45, 0xc5, 0xec, 0xb1, 0xa8, 0x0d, 0xeb, 0xa2, 0x23, 0xa4, 0x6f, 0xc5, 0x55, 0xf1, 0xc8,
	0x77, 0xc3, 0xf9, 0xc9, 0x32, 0x52, 0x70, 0x35, 0x61, 0xe7, 0xbe, 0x1b, 0xbe, 0x5f, 0x85, 0x26,
	0xe5, 0x99, 0xc5, 0x8c, 0x67, 0xee, 0x43, 0xc3, 0x65, 0x96, 0xac, 0xce, 0xc8, 0x73, 0x86, 0xa8,
	0x28, 0xaf, 0xe0, 0x9a, 0xcb, 0x44, 0x2d, 0x46, 0xce, 0xe9, 0xfc, 0x12, 0x4e, 0xf5, 0xd7, 0x2f,
	0xe1, 0xfc, 0x43, 0x11, 0xb6, 0xe6, 0xef, 0x71, 0x39, 0x87, 0x43, 0xee, 0xca, 0x6a, 0xfa, 0x70,
	0x78, 0x00, 0x86, 0x06, 0xf3, 0xc8, 0x25, 0xf1, 0x72, 0x0a, 0x71, 0xb3, 0x57, 0x1c, 0x73, 0x04,
	0x6e, 0x8c, 0x92, 0x02, 0xf4, 0x19, 0x2c, 0xab, 0x4a, 0xda, 0xfc, 0x4a, 0x90, 0x04, 0xf0, 0x33,
	0xd5, 0x9d, 0x77, 0x2e, 0xa1, 0xf7, 0x89, 0x81, 0xaf, 0x60, 0x35, 0x62, 0xef, 0x1d, 0x00, 0x0d,
	0x8e, 0xd5, 0x67, 0xff, 0x2e, 0x54, 0x54, 0x01, 0x5b, 0xac, 0xaa, 0x05, 0xf9, 0x9d, 0x81, 0x14,
	0x89, 0x8a, 0x13, 0x83, 0x1b, 0x8a, 0x11, 0xd0, 0xe7, 0x70, 0xd3, 0x1e, 0xfb, 0x96, 0x3d, 0x1c,
	0x5a, 0x23, 0xfb, 0xca, 0xba, 0x70, 0x43, 0x8b, 0x72, 0xcd, 0xc8, 0x53, 0x1d, 0x43, 0xf6, 0xd8,
	0x6f, 0x0d, 0x87, 0x27, 0xf6, 0xd5, 0x9e, 0x1b, 0x62, 0x3b, 0x24, 0xe7, 0xde, 0x5c, 0xa5, 0xbe,
	0xa7, 0xd6, 0x60, 0x46, 0x69, 0xdf, 0x33, 0xff, 0xbe, 0x04, 0x55, 0x3d, 0xc3, 0x40, 0x77, 0x00,
	0xb4, 0x12, 0x48, 0x51, 0x1c, 0xd9, 0xcb, 0x74, 0x5a, 0xfc, 0xb8, 0x0f, 0x8d, 0x74, 0xd5, 0xa3,
	0xa4, 0xca, 0x9f, 0x89, 0x7a, 0xc7, 0x3e, 0x18, 0x99, 0x3a, 0xc7, 0xc2, 0x75, 0x75, 0x0e, 0x61,
	0x5a, 0x2b, 0x70, 0xa0, 0x36, 0x34, 0xc4, 0xb5, 0x8e, 0x96, 0x79, 0x2c, 0x5e, 0x9b, 0x79, 0xd4,
	0x67, 0x2a, 0x62, 0x45, 0x3d, 0x85, 0xd5, 0x3e, 0x49, 0x9b, 0x59, 0xba, 0x3e, 0x81, 0xd1, 0x95,
	0x44, 0x02, 0x73, 0x2e, 0x5d, 0x35, 0x4d, 0xa0, 0x7e, 0x18, 0x57, 0x99, 0x0c, 0x96, 0x55, 0xa1,
	0xf7, 0x63, 0xa8, 0xca, 0xc3, 0xa3, 0x56, 0x21, 0x5e, 0xc4, 0xf2, 0x74, 0x3e, 0x83, 0xb8, 0xfe,
	0x38, 0x0a, 0x63, 0x48, 0x49, 0x42, 0x84, 0x4c, 0x41, 0xee, 0x41, 0x2d, 0x88, 0x42, 0x0d, 0xb3,
	0x20, 0x30, 0x55, 0x29, 0x94, 0x20, 0xf3, 0x2f, 0x4a, 0x80, 0x9e, 0x89, 0xcf, 0x7b, 0xae, 0x2d,
	0xf9, 0x7d, 0x2d, 0xc7, 0xc1, 0xac, 0x30, 0x90, 0x99, 0x66, 0x5c, 0x59, 0x9c, 0x9b, 0x67, 0x8a,
	0x01, 0xb2, 0x5e, 0x20, 0x04, 0x04, 0xb5, 0x64, 0x2c, 0x08, 0x03, 0x2a, 0xd1, 0xcd, 0xf9, 0x86,
	0x26, 0x91, 0xe7, 0xd6, 0x95, 0x05, 0x25, 0x78, 0x47, 0x12, 0xbe, 0xf8, 0xc1, 0x49, 0xb8, 0xf9,
	0x1f, 0xc5, 0xa4, 0x2f, 0x7e, 0x98, 0x7a, 0x25, 0x7a, 0x0e, 0x55, 0xbe, 0x07, 0xf1, 0x94, 0x69,
	0x7a, 0x4d, 0x50, 0xd9, 0xdd, 0xd1, 0x2f, 0x60, 0x33, 0x2f, 0xdd, 0x39, 0x14, 0x1a, 0xa2, 0x50,
	0x29, 0x8b, 0xc1, 0x95, 0xc1, 0x4c, 0xb2, 0xf5, 0x0b, 0x30, 0xd2, 0x00, 0xbd, 0x00, 0x5c, 0x96,
	0x05, 0xe0, 0x75, 0xbd, 0x00, 0x5c, 0xd3, 0x2b, 0xbd, 0x9f, 0xc1, 0x9a, 0xf8, 0xbe, 0x23, 0x75,
	0x05, 0x96, 0x33, 0xeb, 0xe6, 0x04, 0x90, 0x0e, 0xfd, 0x81, 0x7c, 0x72, 0x0f, 0x6a, 0x22, 0xe3,
	0x8c, 0x2f, 0xbf, 0x44, 0x1c, 0x94, 0x71, 0x55, 0x08, 0x4f, 0xa4, 0xec, 0xe1, 0x97, 0xd0, 0x48,
	0xdd, 0xc2, 0xa0, 0x1a, 0x94, 0xa7, 0xd7, 0x6a, 0x46, 0x01, 0x55, 0x61, 0x25, 0x2e, 0x05, 0xca,
	0xef, 0x14, 0xb0, 0xba, 0x7b, 0x31, 0x4a, 0x0f, 0x77, 0xa1, 0x91, 0xda, 0x3a, 0x90, 0x01, 0x55,
	0x35, 0x0c, 0xf1, 0x6c, 0x14, 0xb8, 0x3d, 0xee, 0x42, 0xf9, 0x58, 0x7c, 0xf8, 0x14, 0x6a, 0x89,
	0x9c, 0x86, 0x9b, 0xb4, 0x3a, 0xa7, 0x2f, 0x5a, 0xc7, 0x9d, 0x7d, 0xa3, 0x80, 0x2a, 0x70, 0xa3,
	0x73, 0xda, 0xe9, 0x75, 0x5a, 0xc7, 0x46, 0x11, 0x01, 0x2c, 0x9f, 0x3f, 0xdb, 0x6f, 0xf5, 0x0e,
	0x8c, 0x12, 0x6a, 0x40, 0xa5, 0x77, 0x80, 0x4f, 0x3a, 0xa7, 0xad, 0x5e, 0xe7, 0xec, 0xd4, 0x58,
	0x78, 0xf8, 0x02, 0x6e, 0xcd, 0x3d, 0x4a, 0xa0, 0x9b, 0xb0, 0xd6, 0x3e, 0x3b, 0xed, 0x75, 0x4e,
	0xcf, 0x0f, 0xac, 0x97, 0x9d, 0xde, 0x91, 0x75, 0x80, 0xf1, 0x19, 0x36, 0x0a, 0x68, 0x1b, 0x7e,
	0x92, 0x6c, 0xd8, 0x3f, 0x38, 0x6c, 0x9d, 0x1f, 0xf7, 0xac, 0xd6, 0x69, 0xf7, 0xe5, 0x01, 0x36,
	0x8a, 0x0f, 0x07, 0x50, 0x17, 0xb3, 0xd1, 0xb6, 0x23, 0x26, 0x76, 0x0b, 0x84, 0xa0, 0xbe, 0x47,
	0x6c, 0x4a, 0xa8, 0xfa, 0x34, 0xa8, 0x6f, 0x14, 0xd0, 0x5d, 0xb8, 0xdd, 0xf1, 0x59, 0x34, 0x18,
	0xb8, 0x8e, 0x4b, 0xfc, 0xf8, 0x22, 0x8c, 0xb0, 0x20, 0xa2, 0x0e, 0x61, 0x46, 0x31, 0x0d, 0x88,
	0x0d, 0xc4, 0x80, 0xd2, 0xee, 0x5f, 0x16, 0x61, 0xfd, 0x24, 0x70, 0x5e, 0xb7, 0x03, 0x4a, 0x66,
	0x75, 0xcf, 0x80, 0xa2, 0x36, 0x54, 0xe5, 0xb3, 0xba, 0x4d, 0x4b, 0x7f, 0x50, 0x94, 0xba, 0x4f,
	0xdc, 0x8a, 0x77, 0x44, 0xf1, 0xfd, 0xe1, 0xce, 0x8b, 0xc0, 0xed, 0x9b, 0x05, 0xf4, 0x08, 0x96,
	0xc4, 0x7d, 0x33, 0xca, 0xb6, 0xe6, 0x2a, 0xec, 0xfe, 0xe7, 0x22, 0xdc, 0xe0, 0xdd, 0x39, 0x6b,
	0x77, 0xd1, 0x13, 0xa8, 0x77, 0x49, 0x78, 0xd6, 0xee, 0x76, 0x49, 0xc8, 0x37, 0x65, 0x86, 0xd6,
	0xf5, 0x5d, 0x37, 0xbe, 0x6a, 0xcb, 0x7f, 0xf3, 0xef, 0x41, 0xb9, 0x4b, 0x42, 0x95, 0x19, 0xe5,
	0xdf, 0x88, 0xe4, 0x2b, 0x7e, 0x05, 0x35, 0x79, 0x4d, 0xad, 0xae, 0x10, 0xd0, 0x4d, 0xfd, 0x2e,
	0x78, 0xfa, 0x89, 0x63, 0x67, 0x3f, 0x5f, 0xfd, 0x0b, 0x30, 0xda, 0x1e, 0xb1, 0xe9, 0x0c, 0xc9,
	0xde, 0x77, 0xf0, 0xe8, 0x18, 0x96, 0x25, 0x35, 0x20, 0xfd, 0x03, 0x86, 0xbc, 0x9b, 0x9a, 0xad,
	0xf9, 0x00, 0xb9, 0x6e, 0xcd, 0x02, 0xfa, 0x1a, 0xe0, 0x69, 0xec, 0x01, 0x36, 0x7f, 0x14, 0x9b,
	0xf9, 0x57, 0x55, 0x66, 0x01, 0x9d, 0x41, 0x55, 0x27, 0x84, 0x44, 0x04, 0xe4, 0x90, 0xca, 0xd6,
	0x9d, 0x39, 0xed, 0xd3, 0x1e, 0x9d, 0x42, 0xa3, 0x4b, 0xc2, 0x44, 0x09, 0xe0, 0xfe, 0x7b, 0x1d,
	0xf6, 0x59, 0xbe, 0xbf, 0xbe, 0x01, 0xd4, 0x62, 0x8c, 0xd0, 0xa4, 0xc9, 0x1c, 0x6f, 0x6f, 0xbf,
	0xeb, 0xcc, 0xca, 0xa9, 0xca, 0x2c, 0xec, 0xfe, 0xf9, 0x12, 0xac, 0xf0, 0xc8, 0x7b, 0xd6, 0xc6,
	0x87, 0xe8, 0x2b, 0x11, 0x7a, 0xfa, 0xe5, 0x93, 0xee, 0x26, 0x4d, 0xfe, 0xbf, 0x12, 0x43, 0x8f,
	0x61, 0xa5, 0x4b, 0xd4, 0xdd, 0x55, 0xe2, 0xa3, 0x53, 0xed, 0x52, 0x2b, 0x5f, 0xf3, 0x04, 0x8c,
	0x2e, 0x09, 0xf5, 0xfd, 0x90, 0xa1, 0x4f, 0xe6, 0xec, 0x94, 0xef, 0xb1, 0x7c, 0x3f, 0x24, 0x98,
	0x8f, 0xa6, 0xc1, 0x7c, 0x67, 0xce, 0x06, 0xa8, 0x42, 0xf9, 0xce, 0x3b, 0xf7, 0xc7, 0x1f, 0x23,
	0x0e, 0xaf, 0xfe, 0x4f, 0xe2, 0xf0, 0x2a, 0x37, 0x0e, 0xf7, 0x6e, 0x7f, 0x7b, 0x4b, 0x80, 0x1e,
	0x0d, 0xc8, 0xf0, 0x91, 0xe3, 0x05, 0x51, 0xff, 0xd1, 0x30, 0x50, 0x9f, 0x58, 0x5f, 0x2c, 0x8b,
	0xdf, 0xcf, 0xff, 0x27, 0x00, 0x00, 0xff, 0xff, 0x2b, 0x64, 0xc0, 0x57, 0x0d, 0x2e, 0x00, 0x00,
}

var _ context.Context
var _ grpc.ClientConnInterface

const _ = grpc.SupportPackageIsVersion6

type MockCoreConfiguratorClient interface {
	ConfigServer(ctx context.Context, in *ServerConfiguration, opts ...grpc.CallOption) (*protos1.Void, error)
	Reset(ctx context.Context, in *protos1.Void, opts ...grpc.CallOption) (*protos1.Void, error)
}

type mockCoreConfiguratorClient struct {
	cc grpc.ClientConnInterface
}

func NewMockCoreConfiguratorClient(cc grpc.ClientConnInterface) MockCoreConfiguratorClient {
	return &mockCoreConfiguratorClient{cc}
}

func (c *mockCoreConfiguratorClient) ConfigServer(ctx context.Context, in *ServerConfiguration, opts ...grpc.CallOption) (*protos1.Void, error) {
	out := new(protos1.Void)
	err := c.cc.Invoke(ctx, "/magma.feg.MockCoreConfigurator/ConfigServer", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mockCoreConfiguratorClient) Reset(ctx context.Context, in *protos1.Void, opts ...grpc.CallOption) (*protos1.Void, error) {
	out := new(protos1.Void)
	err := c.cc.Invoke(ctx, "/magma.feg.MockCoreConfigurator/Reset", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

type MockCoreConfiguratorServer interface {
	ConfigServer(context.Context, *ServerConfiguration) (*protos1.Void, error)
	Reset(context.Context, *protos1.Void) (*protos1.Void, error)
}

type UnimplementedMockCoreConfiguratorServer struct {
}

func (*UnimplementedMockCoreConfiguratorServer) ConfigServer(ctx context.Context, req *ServerConfiguration) (*protos1.Void, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ConfigServer not implemented")
}
func (*UnimplementedMockCoreConfiguratorServer) Reset(ctx context.Context, req *protos1.Void) (*protos1.Void, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Reset not implemented")
}

func RegisterMockCoreConfiguratorServer(s *grpc.Server, srv MockCoreConfiguratorServer) {
	s.RegisterService(&_MockCoreConfigurator_serviceDesc, srv)
}

func _MockCoreConfigurator_ConfigServer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ServerConfiguration)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockCoreConfiguratorServer).ConfigServer(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockCoreConfigurator/ConfigServer",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockCoreConfiguratorServer).ConfigServer(ctx, req.(*ServerConfiguration))
	}
	return interceptor(ctx, in, info, handler)
}

func _MockCoreConfigurator_Reset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(protos1.Void)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockCoreConfiguratorServer).Reset(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockCoreConfigurator/Reset",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockCoreConfiguratorServer).Reset(ctx, req.(*protos1.Void))
	}
	return interceptor(ctx, in, info, handler)
}

var _MockCoreConfigurator_serviceDesc = grpc.ServiceDesc{
	ServiceName: "magma.feg.MockCoreConfigurator",
	HandlerType: (*MockCoreConfiguratorServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "ConfigServer",
			Handler:    _MockCoreConfigurator_ConfigServer_Handler,
		},
		{
			MethodName: "Reset",
			Handler:    _MockCoreConfigurator_Reset_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "feg/protos/mock_core.proto",
}

type MockOCSClient interface {
	SetOCSSettings(ctx context.Context, in *OCSConfig, opts ...grpc.CallOption) (*protos1.Void, error)
	SetCredit(ctx context.Context, in *CreditInfo, opts ...grpc.CallOption) (*protos1.Void, error)
	CreateAccount(ctx context.Context, in *protos.SubscriberID, opts ...grpc.CallOption) (*protos1.Void, error)
	ClearSubscribers(ctx context.Context, in *protos1.Void, opts ...grpc.CallOption) (*protos1.Void, error)
	ReAuth(ctx context.Context, in *ChargingReAuthTarget, opts ...grpc.CallOption) (*ChargingReAuthAnswer, error)
	GetCredits(ctx context.Context, in *protos.SubscriberID, opts ...grpc.CallOption) (*CreditInfos, error)
	AbortSession(ctx context.Context, in *AbortSessionRequest, opts ...grpc.CallOption) (*AbortSessionAnswer, error)

	SetExpectations(ctx context.Context, in *GyCreditControlExpectations, opts ...grpc.CallOption) (*protos1.Void, error)
	AssertExpectations(ctx context.Context, in *protos1.Void, opts ...grpc.CallOption) (*GyCreditControlResult, error)
}

type mockOCSClient struct {
	cc grpc.ClientConnInterface
}

func NewMockOCSClient(cc grpc.ClientConnInterface) MockOCSClient {
	return &mockOCSClient{cc}
}

func (c *mockOCSClient) SetOCSSettings(ctx context.Context, in *OCSConfig, opts ...grpc.CallOption) (*protos1.Void, error) {
	out := new(protos1.Void)
	err := c.cc.Invoke(ctx, "/magma.feg.MockOCS/SetOCSSettings", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mockOCSClient) SetCredit(ctx context.Context, in *CreditInfo, opts ...grpc.CallOption) (*protos1.Void, error) {
	out := new(protos1.Void)
	err := c.cc.Invoke(ctx, "/magma.feg.MockOCS/SetCredit", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mockOCSClient) CreateAccount(ctx context.Context, in *protos.SubscriberID, opts ...grpc.CallOption) (*protos1.Void, error) {
	out := new(protos1.Void)
	err := c.cc.Invoke(ctx, "/magma.feg.MockOCS/CreateAccount", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mockOCSClient) ClearSubscribers(ctx context.Context, in *protos1.Void, opts ...grpc.CallOption) (*protos1.Void, error) {
	out := new(protos1.Void)
	err := c.cc.Invoke(ctx, "/magma.feg.MockOCS/ClearSubscribers", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mockOCSClient) ReAuth(ctx context.Context, in *ChargingReAuthTarget, opts ...grpc.CallOption) (*ChargingReAuthAnswer, error) {
	out := new(ChargingReAuthAnswer)
	err := c.cc.Invoke(ctx, "/magma.feg.MockOCS/ReAuth", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mockOCSClient) GetCredits(ctx context.Context, in *protos.SubscriberID, opts ...grpc.CallOption) (*CreditInfos, error) {
	out := new(CreditInfos)
	err := c.cc.Invoke(ctx, "/magma.feg.MockOCS/GetCredits", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mockOCSClient) AbortSession(ctx context.Context, in *AbortSessionRequest, opts ...grpc.CallOption) (*AbortSessionAnswer, error) {
	out := new(AbortSessionAnswer)
	err := c.cc.Invoke(ctx, "/magma.feg.MockOCS/AbortSession", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mockOCSClient) SetExpectations(ctx context.Context, in *GyCreditControlExpectations, opts ...grpc.CallOption) (*protos1.Void, error) {
	out := new(protos1.Void)
	err := c.cc.Invoke(ctx, "/magma.feg.MockOCS/SetExpectations", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mockOCSClient) AssertExpectations(ctx context.Context, in *protos1.Void, opts ...grpc.CallOption) (*GyCreditControlResult, error) {
	out := new(GyCreditControlResult)
	err := c.cc.Invoke(ctx, "/magma.feg.MockOCS/AssertExpectations", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

type MockOCSServer interface {
	SetOCSSettings(context.Context, *OCSConfig) (*protos1.Void, error)
	SetCredit(context.Context, *CreditInfo) (*protos1.Void, error)
	CreateAccount(context.Context, *protos.SubscriberID) (*protos1.Void, error)
	ClearSubscribers(context.Context, *protos1.Void) (*protos1.Void, error)
	ReAuth(context.Context, *ChargingReAuthTarget) (*ChargingReAuthAnswer, error)
	GetCredits(context.Context, *protos.SubscriberID) (*CreditInfos, error)
	AbortSession(context.Context, *AbortSessionRequest) (*AbortSessionAnswer, error)

	SetExpectations(context.Context, *GyCreditControlExpectations) (*protos1.Void, error)
	AssertExpectations(context.Context, *protos1.Void) (*GyCreditControlResult, error)
}

type UnimplementedMockOCSServer struct {
}

func (*UnimplementedMockOCSServer) SetOCSSettings(ctx context.Context, req *OCSConfig) (*protos1.Void, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetOCSSettings not implemented")
}
func (*UnimplementedMockOCSServer) SetCredit(ctx context.Context, req *CreditInfo) (*protos1.Void, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetCredit not implemented")
}
func (*UnimplementedMockOCSServer) CreateAccount(ctx context.Context, req *protos.SubscriberID) (*protos1.Void, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateAccount not implemented")
}
func (*UnimplementedMockOCSServer) ClearSubscribers(ctx context.Context, req *protos1.Void) (*protos1.Void, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ClearSubscribers not implemented")
}
func (*UnimplementedMockOCSServer) ReAuth(ctx context.Context, req *ChargingReAuthTarget) (*ChargingReAuthAnswer, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ReAuth not implemented")
}
func (*UnimplementedMockOCSServer) GetCredits(ctx context.Context, req *protos.SubscriberID) (*CreditInfos, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetCredits not implemented")
}
func (*UnimplementedMockOCSServer) AbortSession(ctx context.Context, req *AbortSessionRequest) (*AbortSessionAnswer, error) {
	return nil, status.Errorf(codes.Unimplemented, "method AbortSession not implemented")
}
func (*UnimplementedMockOCSServer) SetExpectations(ctx context.Context, req *GyCreditControlExpectations) (*protos1.Void, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetExpectations not implemented")
}
func (*UnimplementedMockOCSServer) AssertExpectations(ctx context.Context, req *protos1.Void) (*GyCreditControlResult, error) {
	return nil, status.Errorf(codes.Unimplemented, "method AssertExpectations not implemented")
}

func RegisterMockOCSServer(s *grpc.Server, srv MockOCSServer) {
	s.RegisterService(&_MockOCS_serviceDesc, srv)
}

func _MockOCS_SetOCSSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(OCSConfig)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockOCSServer).SetOCSSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockOCS/SetOCSSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockOCSServer).SetOCSSettings(ctx, req.(*OCSConfig))
	}
	return interceptor(ctx, in, info, handler)
}

func _MockOCS_SetCredit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreditInfo)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockOCSServer).SetCredit(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockOCS/SetCredit",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockOCSServer).SetCredit(ctx, req.(*CreditInfo))
	}
	return interceptor(ctx, in, info, handler)
}

func _MockOCS_CreateAccount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(protos.SubscriberID)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockOCSServer).CreateAccount(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockOCS/CreateAccount",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockOCSServer).CreateAccount(ctx, req.(*protos.SubscriberID))
	}
	return interceptor(ctx, in, info, handler)
}

func _MockOCS_ClearSubscribers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(protos1.Void)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockOCSServer).ClearSubscribers(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockOCS/ClearSubscribers",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockOCSServer).ClearSubscribers(ctx, req.(*protos1.Void))
	}
	return interceptor(ctx, in, info, handler)
}

func _MockOCS_ReAuth_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ChargingReAuthTarget)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockOCSServer).ReAuth(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockOCS/ReAuth",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockOCSServer).ReAuth(ctx, req.(*ChargingReAuthTarget))
	}
	return interceptor(ctx, in, info, handler)
}

func _MockOCS_GetCredits_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(protos.SubscriberID)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockOCSServer).GetCredits(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockOCS/GetCredits",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockOCSServer).GetCredits(ctx, req.(*protos.SubscriberID))
	}
	return interceptor(ctx, in, info, handler)
}

func _MockOCS_AbortSession_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AbortSessionRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockOCSServer).AbortSession(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockOCS/AbortSession",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockOCSServer).AbortSession(ctx, req.(*AbortSessionRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _MockOCS_SetExpectations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GyCreditControlExpectations)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockOCSServer).SetExpectations(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockOCS/SetExpectations",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockOCSServer).SetExpectations(ctx, req.(*GyCreditControlExpectations))
	}
	return interceptor(ctx, in, info, handler)
}

func _MockOCS_AssertExpectations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(protos1.Void)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockOCSServer).AssertExpectations(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockOCS/AssertExpectations",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockOCSServer).AssertExpectations(ctx, req.(*protos1.Void))
	}
	return interceptor(ctx, in, info, handler)
}

var _MockOCS_serviceDesc = grpc.ServiceDesc{
	ServiceName: "magma.feg.MockOCS",
	HandlerType: (*MockOCSServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "SetOCSSettings",
			Handler:    _MockOCS_SetOCSSettings_Handler,
		},
		{
			MethodName: "SetCredit",
			Handler:    _MockOCS_SetCredit_Handler,
		},
		{
			MethodName: "CreateAccount",
			Handler:    _MockOCS_CreateAccount_Handler,
		},
		{
			MethodName: "ClearSubscribers",
			Handler:    _MockOCS_ClearSubscribers_Handler,
		},
		{
			MethodName: "ReAuth",
			Handler:    _MockOCS_ReAuth_Handler,
		},
		{
			MethodName: "GetCredits",
			Handler:    _MockOCS_GetCredits_Handler,
		},
		{
			MethodName: "AbortSession",
			Handler:    _MockOCS_AbortSession_Handler,
		},
		{
			MethodName: "SetExpectations",
			Handler:    _MockOCS_SetExpectations_Handler,
		},
		{
			MethodName: "AssertExpectations",
			Handler:    _MockOCS_AssertExpectations_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "feg/protos/mock_core.proto",
}

type MockPCRFClient interface {
	SetPCRFConfigs(ctx context.Context, in *PCRFConfigs, opts ...grpc.CallOption) (*protos1.Void, error)
	CreateAccount(ctx context.Context, in *protos.SubscriberID, opts ...grpc.CallOption) (*protos1.Void, error)
	SetRules(ctx context.Context, in *AccountRules, opts ...grpc.CallOption) (*protos1.Void, error)
	SetUsageMonitors(ctx context.Context, in *UsageMonitorConfiguration, opts ...grpc.CallOption) (*protos1.Void, error)
	ClearSubscribers(ctx context.Context, in *protos1.Void, opts ...grpc.CallOption) (*protos1.Void, error)
	ReAuth(ctx context.Context, in *PolicyReAuthTarget, opts ...grpc.CallOption) (*PolicyReAuthAnswer, error)
	AbortSession(ctx context.Context, in *AbortSessionRequest, opts ...grpc.CallOption) (*AbortSessionAnswer, error)
	SetExpectations(ctx context.Context, in *GxCreditControlExpectations, opts ...grpc.CallOption) (*protos1.Void, error)
	AssertExpectations(ctx context.Context, in *protos1.Void, opts ...grpc.CallOption) (*GxCreditControlResult, error)
}

type mockPCRFClient struct {
	cc grpc.ClientConnInterface
}

func NewMockPCRFClient(cc grpc.ClientConnInterface) MockPCRFClient {
	return &mockPCRFClient{cc}
}

func (c *mockPCRFClient) SetPCRFConfigs(ctx context.Context, in *PCRFConfigs, opts ...grpc.CallOption) (*protos1.Void, error) {
	out := new(protos1.Void)
	err := c.cc.Invoke(ctx, "/magma.feg.MockPCRF/SetPCRFConfigs", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mockPCRFClient) CreateAccount(ctx context.Context, in *protos.SubscriberID, opts ...grpc.CallOption) (*protos1.Void, error) {
	out := new(protos1.Void)
	err := c.cc.Invoke(ctx, "/magma.feg.MockPCRF/CreateAccount", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mockPCRFClient) SetRules(ctx context.Context, in *AccountRules, opts ...grpc.CallOption) (*protos1.Void, error) {
	out := new(protos1.Void)
	err := c.cc.Invoke(ctx, "/magma.feg.MockPCRF/SetRules", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mockPCRFClient) SetUsageMonitors(ctx context.Context, in *UsageMonitorConfiguration, opts ...grpc.CallOption) (*protos1.Void, error) {
	out := new(protos1.Void)
	err := c.cc.Invoke(ctx, "/magma.feg.MockPCRF/SetUsageMonitors", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mockPCRFClient) ClearSubscribers(ctx context.Context, in *protos1.Void, opts ...grpc.CallOption) (*protos1.Void, error) {
	out := new(protos1.Void)
	err := c.cc.Invoke(ctx, "/magma.feg.MockPCRF/ClearSubscribers", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mockPCRFClient) ReAuth(ctx context.Context, in *PolicyReAuthTarget, opts ...grpc.CallOption) (*PolicyReAuthAnswer, error) {
	out := new(PolicyReAuthAnswer)
	err := c.cc.Invoke(ctx, "/magma.feg.MockPCRF/ReAuth", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mockPCRFClient) AbortSession(ctx context.Context, in *AbortSessionRequest, opts ...grpc.CallOption) (*AbortSessionAnswer, error) {
	out := new(AbortSessionAnswer)
	err := c.cc.Invoke(ctx, "/magma.feg.MockPCRF/AbortSession", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mockPCRFClient) SetExpectations(ctx context.Context, in *GxCreditControlExpectations, opts ...grpc.CallOption) (*protos1.Void, error) {
	out := new(protos1.Void)
	err := c.cc.Invoke(ctx, "/magma.feg.MockPCRF/SetExpectations", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mockPCRFClient) AssertExpectations(ctx context.Context, in *protos1.Void, opts ...grpc.CallOption) (*GxCreditControlResult, error) {
	out := new(GxCreditControlResult)
	err := c.cc.Invoke(ctx, "/magma.feg.MockPCRF/AssertExpectations", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

type MockPCRFServer interface {
	SetPCRFConfigs(context.Context, *PCRFConfigs) (*protos1.Void, error)
	CreateAccount(context.Context, *protos.SubscriberID) (*protos1.Void, error)
	SetRules(context.Context, *AccountRules) (*protos1.Void, error)
	SetUsageMonitors(context.Context, *UsageMonitorConfiguration) (*protos1.Void, error)
	ClearSubscribers(context.Context, *protos1.Void) (*protos1.Void, error)
	ReAuth(context.Context, *PolicyReAuthTarget) (*PolicyReAuthAnswer, error)
	AbortSession(context.Context, *AbortSessionRequest) (*AbortSessionAnswer, error)
	SetExpectations(context.Context, *GxCreditControlExpectations) (*protos1.Void, error)
	AssertExpectations(context.Context, *protos1.Void) (*GxCreditControlResult, error)
}

type UnimplementedMockPCRFServer struct {
}

func (*UnimplementedMockPCRFServer) SetPCRFConfigs(ctx context.Context, req *PCRFConfigs) (*protos1.Void, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetPCRFConfigs not implemented")
}
func (*UnimplementedMockPCRFServer) CreateAccount(ctx context.Context, req *protos.SubscriberID) (*protos1.Void, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateAccount not implemented")
}
func (*UnimplementedMockPCRFServer) SetRules(ctx context.Context, req *AccountRules) (*protos1.Void, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetRules not implemented")
}
func (*UnimplementedMockPCRFServer) SetUsageMonitors(ctx context.Context, req *UsageMonitorConfiguration) (*protos1.Void, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetUsageMonitors not implemented")
}
func (*UnimplementedMockPCRFServer) ClearSubscribers(ctx context.Context, req *protos1.Void) (*protos1.Void, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ClearSubscribers not implemented")
}
func (*UnimplementedMockPCRFServer) ReAuth(ctx context.Context, req *PolicyReAuthTarget) (*PolicyReAuthAnswer, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ReAuth not implemented")
}
func (*UnimplementedMockPCRFServer) AbortSession(ctx context.Context, req *AbortSessionRequest) (*AbortSessionAnswer, error) {
	return nil, status.Errorf(codes.Unimplemented, "method AbortSession not implemented")
}
func (*UnimplementedMockPCRFServer) SetExpectations(ctx context.Context, req *GxCreditControlExpectations) (*protos1.Void, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetExpectations not implemented")
}
func (*UnimplementedMockPCRFServer) AssertExpectations(ctx context.Context, req *protos1.Void) (*GxCreditControlResult, error) {
	return nil, status.Errorf(codes.Unimplemented, "method AssertExpectations not implemented")
}

func RegisterMockPCRFServer(s *grpc.Server, srv MockPCRFServer) {
	s.RegisterService(&_MockPCRF_serviceDesc, srv)
}

func _MockPCRF_SetPCRFConfigs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(PCRFConfigs)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockPCRFServer).SetPCRFConfigs(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockPCRF/SetPCRFConfigs",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockPCRFServer).SetPCRFConfigs(ctx, req.(*PCRFConfigs))
	}
	return interceptor(ctx, in, info, handler)
}

func _MockPCRF_CreateAccount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(protos.SubscriberID)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockPCRFServer).CreateAccount(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockPCRF/CreateAccount",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockPCRFServer).CreateAccount(ctx, req.(*protos.SubscriberID))
	}
	return interceptor(ctx, in, info, handler)
}

func _MockPCRF_SetRules_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AccountRules)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockPCRFServer).SetRules(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockPCRF/SetRules",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockPCRFServer).SetRules(ctx, req.(*AccountRules))
	}
	return interceptor(ctx, in, info, handler)
}

func _MockPCRF_SetUsageMonitors_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UsageMonitorConfiguration)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockPCRFServer).SetUsageMonitors(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockPCRF/SetUsageMonitors",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockPCRFServer).SetUsageMonitors(ctx, req.(*UsageMonitorConfiguration))
	}
	return interceptor(ctx, in, info, handler)
}

func _MockPCRF_ClearSubscribers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(protos1.Void)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockPCRFServer).ClearSubscribers(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockPCRF/ClearSubscribers",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockPCRFServer).ClearSubscribers(ctx, req.(*protos1.Void))
	}
	return interceptor(ctx, in, info, handler)
}

func _MockPCRF_ReAuth_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(PolicyReAuthTarget)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockPCRFServer).ReAuth(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockPCRF/ReAuth",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockPCRFServer).ReAuth(ctx, req.(*PolicyReAuthTarget))
	}
	return interceptor(ctx, in, info, handler)
}

func _MockPCRF_AbortSession_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AbortSessionRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockPCRFServer).AbortSession(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockPCRF/AbortSession",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockPCRFServer).AbortSession(ctx, req.(*AbortSessionRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _MockPCRF_SetExpectations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GxCreditControlExpectations)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockPCRFServer).SetExpectations(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockPCRF/SetExpectations",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockPCRFServer).SetExpectations(ctx, req.(*GxCreditControlExpectations))
	}
	return interceptor(ctx, in, info, handler)
}

func _MockPCRF_AssertExpectations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(protos1.Void)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockPCRFServer).AssertExpectations(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockPCRF/AssertExpectations",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockPCRFServer).AssertExpectations(ctx, req.(*protos1.Void))
	}
	return interceptor(ctx, in, info, handler)
}

var _MockPCRF_serviceDesc = grpc.ServiceDesc{
	ServiceName: "magma.feg.MockPCRF",
	HandlerType: (*MockPCRFServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "SetPCRFConfigs",
			Handler:    _MockPCRF_SetPCRFConfigs_Handler,
		},
		{
			MethodName: "CreateAccount",
			Handler:    _MockPCRF_CreateAccount_Handler,
		},
		{
			MethodName: "SetRules",
			Handler:    _MockPCRF_SetRules_Handler,
		},
		{
			MethodName: "SetUsageMonitors",
			Handler:    _MockPCRF_SetUsageMonitors_Handler,
		},
		{
			MethodName: "ClearSubscribers",
			Handler:    _MockPCRF_ClearSubscribers_Handler,
		},
		{
			MethodName: "ReAuth",
			Handler:    _MockPCRF_ReAuth_Handler,
		},
		{
			MethodName: "AbortSession",
			Handler:    _MockPCRF_AbortSession_Handler,
		},
		{
			MethodName: "SetExpectations",
			Handler:    _MockPCRF_SetExpectations_Handler,
		},
		{
			MethodName: "AssertExpectations",
			Handler:    _MockPCRF_AssertExpectations_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "feg/protos/mock_core.proto",
}
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: feg/protos/mock_core.proto

package protos

import (
	context "context"
	fmt "fmt"
	proto "github.com/golang/protobuf/proto"
	timestamp "github.com/golang/protobuf/ptypes/timestamp"
	wrappers "github.com/golang/protobuf/ptypes/wrappers"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
	protos "magma/lte/cloud/go/protos"
	protos1 "magma/orc8r/lib/go/protos"
	math "math"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

type FinalUnitAction int32

const (
	FinalUnitAction_Terminate FinalUnitAction = 0
	FinalUnitAction_Redirect  FinalUnitAction = 1
	FinalUnitAction_Restrict  FinalUnitAction = 2
)

var FinalUnitAction_name = map[int32]string{
	0: "Terminate",
	1: "Redirect",
	2: "Restrict",
}

var FinalUnitAction_value = map[string]int32{
	"Terminate": 0,
	"Redirect":  1,
	"Restrict":  2,
}

func (x FinalUnitAction) String() string {
	return proto.EnumName(FinalUnitAction_name, int32(x))
}

func (FinalUnitAction) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{0}
}

type MonitoringLevel int32

const (
	MonitoringLevel_SessionLevel MonitoringLevel = 0
	MonitoringLevel_RuleLevel    MonitoringLevel = 1
)

var MonitoringLevel_name = map[int32]string{
	0: "SessionLevel",
	1: "RuleLevel",
}

var MonitoringLevel_value = map[string]int32{
	"SessionLevel": 0,
	"RuleLevel":    1,
}

func (x MonitoringLevel) String() string {
	return proto.EnumName(MonitoringLevel_name, int32(x))
}

func (MonitoringLevel) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{1}
}

type CCRequestType int32

const (
	// proto3 requires enums to start at value 0. This should not be used.
	CCRequestType__INVALID    CCRequestType = 0
	CCRequestType_INITIAL     CCRequestType = 1
	CCRequestType_UPDATE      CCRequestType = 2
	CCRequestType_TERMINATION CCRequestType = 3
)

var CCRequestType_name = map[int32]string{
	0: "_INVALID",
	1: "INITIAL",
	2: "UPDATE",
	3: "TERMINATION",
}

var CCRequestType_value = map[string]int32{
	"_INVALID":    0,
	"INITIAL":     1,
	"UPDATE":      2,
	"TERMINATION": 3,
}

func (x CCRequestType) String() string {
	return proto.EnumName(CCRequestType_name, int32(x))
}

func (CCRequestType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{2}
}

type UnexpectedRequestBehavior int32

const (
	// Answer with a permanent failure diameter code, then the session will
	// be terminated. This will be the default behavior unless a default answer
	// is specified
	UnexpectedRequestBehavior_CONTINUE_WITH_ERROR          UnexpectedRequestBehavior = 0
	UnexpectedRequestBehavior_CONTINUE_WITH_DEFAULT_ANSWER UnexpectedRequestBehavior = 1
)

var UnexpectedRequestBehavior_name = map[int32]string{
	0: "CONTINUE_WITH_ERROR",
	1: "CONTINUE_WITH_DEFAULT_ANSWER",
}

var UnexpectedRequestBehavior_value = map[string]int32{
	"CONTINUE_WITH_ERROR":          0,
	"CONTINUE_WITH_DEFAULT_ANSWER": 1,
}

func (x UnexpectedRequestBehavior) String() string {
	return proto.EnumName(UnexpectedRequestBehavior_name, int32(x))
}

func (UnexpectedRequestBehavior) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{3}
}

type AbortCauseType int32

const (
	AbortCauseType_BearerReleased              AbortCauseType = 0
	AbortCauseType_InsufficientServerResources AbortCauseType = 1
	AbortCauseType_InsufficientBearerResources AbortCauseType = 2
)

var AbortCauseType_name = map[int32]string{
	0: "BearerReleased",
	1: "InsufficientServerResources",
	2: "InsufficientBearerResources",
}

var AbortCauseType_value = map[string]int32{
	"BearerReleased":              0,
	"InsufficientServerResources": 1,
	"InsufficientBearerResources": 2,
}

func (x AbortCauseType) String() string {
	return proto.EnumName(AbortCauseType_name, int32(x))
}

func (AbortCauseType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{4}
}

type Reply_ServerBehavior int32

const (
	Reply_REPLY_INSTANTLY Reply_ServerBehavior = 0
	Reply_REPLY_LATE      Reply_ServerBehavior = 1
	Reply_NO_REPLY        Reply_ServerBehavior = 2
)

var Reply_ServerBehavior_name = map[int32]string{
	0: "REPLY_INSTANTLY",
	1: "REPLY_LATE",
	2: "NO_REPLY",
}

var Reply_ServerBehavior_value = map[string]int32{
	"REPLY_INSTANTLY": 0,
	"REPLY_LATE":      1,
	"NO_REPLY":        2,
}

func (x Reply_ServerBehavior) String() string {
	return proto.EnumName(Reply_ServerBehavior_name, int32(x))
}

func (Reply_ServerBehavior) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{0, 0}
}

type CreditInfo_UnitType int32

const (
	CreditInfo_Bytes CreditInfo_UnitType = 0
	CreditInfo_Time  CreditInfo_UnitType = 1
)

var CreditInfo_UnitType_name = map[int32]string{
	0: "Bytes",
	1: "Time",
}

var CreditInfo_UnitType_value = map[string]int32{
	"Bytes": 0,
	"Time":  1,
}

func (x CreditInfo_UnitType) String() string {
	return proto.EnumName(CreditInfo_UnitType_name, int32(x))
}

func (CreditInfo_UnitType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{7, 0}
}

type Reply struct {
	ServerBehavior Reply_ServerBehavior `protobuf:"varint,1,opt,name=server_behavior,json=serverBehavior,proto3,enum=magma.feg.Reply_ServerBehavior" json:"server_behavior,omitempty"`
	// reply delaying time in sec
	ReplyDelay int32 `protobuf:"varint,2,opt,name=reply_delay,json=replyDelay,proto3" json:"reply_delay,omitempty"`
	// Types that are valid to be assigned to SgsMessage:
	//	*Reply_AlertRequest
	//	*Reply_DownlinkUnitdata
	//	*Reply_EpsDetachAck
	//	*Reply_ImsiDetachAck
	//	*Reply_LocationUpdateAccept
	//	*Reply_LocationUpdateReject
	//	*Reply_MmInformationRequest
	//	*Reply_PagingRequest
	//	*Reply_ReleaseRequest
	//	*Reply_ServiceAbortRequest
	//	*Reply_ResetAck
	//	*Reply_ResetIndication
	//	*Reply_Status
	SgsMessage isReply_SgsMessage `protobuf_oneof:"sgs_message"`
	// Types that are valid to be assigned to GxgyMessage:
	//	*Reply_CreateSessionResponse
	//	*Reply_UpdateSessionResponse
	//	*Reply_SessionTerminateResponse
	GxgyMessage          isReply_GxgyMessage `protobuf_oneof:"gxgy_message"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

func (m *Reply) Reset()         { *m = Reply{} }
func (m *Reply) String() string { return proto.CompactTextString(m) }
func (*Reply) ProtoMessage()    {}
func (*Reply) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{0}
}

func (m *Reply) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Reply.Unmarshal(m, b)
}
func (m *Reply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Reply.Marshal(b, m, deterministic)
}
func (m *Reply) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Reply.Merge(m, src)
}
func (m *Reply) XXX_Size() int {
	return xxx_messageInfo_Reply.Size(m)
}
func (m *Reply) XXX_DiscardUnknown() {
	xxx_messageInfo_Reply.DiscardUnknown(m)
}

var xxx_messageInfo_Reply proto.InternalMessageInfo

func (m *Reply) GetServerBehavior() Reply_ServerBehavior {
	if m != nil {
		return m.ServerBehavior
	}
	return Reply_REPLY_INSTANTLY
}

func (m *Reply) GetReplyDelay() int32 {
	if m != nil {
		return m.ReplyDelay
	}
	return 0
}

type isReply_SgsMessage interface {
	isReply_SgsMessage()
}

type Reply_AlertRequest struct {
	AlertRequest *AlertRequest `protobuf:"bytes,3,opt,name=alert_request,json=alertRequest,proto3,oneof"`
}

type Reply_DownlinkUnitdata struct {
	DownlinkUnitdata *DownlinkUnitdata `protobuf:"bytes,4,opt,name=downlink_unitdata,json=downlinkUnitdata,proto3,oneof"`
}

type Reply_EpsDetachAck struct {
	EpsDetachAck *EPSDetachAck `protobuf:"bytes,5,opt,name=eps_detach_ack,json=epsDetachAck,proto3,oneof"`
}

type Reply_ImsiDetachAck struct {
	ImsiDetachAck *IMSIDetachAck `protobuf:"bytes,6,opt,name=imsi_detach_ack,json=imsiDetachAck,proto3,oneof"`
}

type Reply_LocationUpdateAccept struct {
	LocationUpdateAccept *LocationUpdateAccept `protobuf:"bytes,7,opt,name=location_update_accept,json=locationUpdateAccept,proto3,oneof"`
}

type Reply_LocationUpdateReject struct {
	LocationUpdateReject *LocationUpdateReject `protobuf:"bytes,8,opt,name=location_update_reject,json=locationUpdateReject,proto3,oneof"`
}

type Reply_MmInformationRequest struct {
	MmInformationRequest *MMInformationRequest `protobuf:"bytes,9,opt,name=mm_information_request,json=mmInformationRequest,proto3,oneof"`
}

type Reply_PagingRequest struct {
	PagingRequest *PagingRequest `protobuf:"bytes,10,opt,name=paging_request,json=pagingRequest,proto3,oneof"`
}

type Reply_ReleaseRequest struct {
	ReleaseRequest *ReleaseRequest `protobuf:"bytes,11,opt,name=release_request,json=releaseRequest,proto3,oneof"`
}

type Reply_ServiceAbortRequest struct {
	ServiceAbortRequest *ServiceAbortRequest `protobuf:"bytes,12,opt,name=service_abort_request,json=serviceAbortRequest,proto3,oneof"`
}

type Reply_ResetAck struct {
	ResetAck *ResetAck `protobuf:"bytes,13,opt,name=reset_ack,json=resetAck,proto3,oneof"`
}

type Reply_ResetIndication struct {
	ResetIndication *ResetIndication `protobuf:"bytes,14,opt,name=reset_indication,json=resetIndication,proto3,oneof"`
}

type Reply_Status struct {
	Status *Status `protobuf:"bytes,15,opt,name=status,proto3,oneof"`
}

func (*Reply_AlertRequest) isReply_SgsMessage() {}

func (*Reply_DownlinkUnitdata) isReply_SgsMessage() {}

func (*Reply_EpsDetachAck) isReply_SgsMessage() {}

func (*Reply_ImsiDetachAck) isReply_SgsMessage() {}

func (*Reply_LocationUpdateAccept) isReply_SgsMessage() {}

func (*Reply_LocationUpdateReject) isReply_SgsMessage() {}

func (*Reply_MmInformationRequest) isReply_SgsMessage() {}

func (*Reply_PagingRequest) isReply_SgsMessage() {}

func (*Reply_ReleaseRequest) isReply_SgsMessage() {}

func (*Reply_ServiceAbortRequest) isReply_SgsMessage() {}

func (*Reply_ResetAck) isReply_SgsMessage() {}

func (*Reply_ResetIndication) isReply_SgsMessage() {}

func (*Reply_Status) isReply_SgsMessage() {}

func (m *Reply) GetSgsMessage() isReply_SgsMessage {
	if m != nil {
		return m.SgsMessage
	}
	return nil
}

func (m *Reply) GetAlertRequest() *AlertRequest {
	if x, ok := m.GetSgsMessage().(*Reply_AlertRequest); ok {
		return x.AlertRequest
	}
	return nil
}

func (m *Reply) GetDownlinkUnitdata() *DownlinkUnitdata {
	if x, ok := m.GetSgsMessage().(*Reply_DownlinkUnitdata); ok {
		return x.DownlinkUnitdata
	}
	return nil
}

func (m *Reply) GetEpsDetachAck() *EPSDetachAck {
	if x, ok := m.GetSgsMessage().(*Reply_EpsDetachAck); ok {
		return x.EpsDetachAck
	}
	return nil
}

func (m *Reply) GetImsiDetachAck() *IMSIDetachAck {
	if x, ok := m.GetSgsMessage().(*Reply_ImsiDetachAck); ok {
		return x.ImsiDetachAck
	}
	return nil
}

func (m *Reply) GetLocationUpdateAccept() *LocationUpdateAccept {
	if x, ok := m.GetSgsMessage().(*Reply_LocationUpdateAccept); ok {
		return x.LocationUpdateAccept
	}
	return nil
}

func (m *Reply) GetLocationUpdateReject() *LocationUpdateReject {
	if x, ok := m.GetSgsMessage().(*Reply_LocationUpdateReject); ok {
		return x.LocationUpdateReject
	}
	return nil
}

func (m *Reply) GetMmInformationRequest() *MMInformationRequest {
	if x, ok := m.GetSgsMessage().(*Reply_MmInformationRequest); ok {
		return x.MmInformationRequest
	}
	return nil
}

func (m *Reply) GetPagingRequest() *PagingRequest {
	if x, ok := m.GetSgsMessage().(*Reply_PagingRequest); ok {
		return x.PagingRequest
	}
	return nil
}

func (m *Reply) GetReleaseRequest() *ReleaseRequest {
	if x, ok := m.GetSgsMessage().(*Reply_ReleaseRequest); ok {
		return x.ReleaseRequest
	}
	return nil
}

func (m *Reply) GetServiceAbortRequest() *ServiceAbortRequest {
	if x, ok := m.GetSgsMessage().(*Reply_ServiceAbortRequest); ok {
		return x.ServiceAbortRequest
	}
	return nil
}

func (m *Reply) GetResetAck() *ResetAck {
	if x, ok := m.GetSgsMessage().(*Reply_ResetAck); ok {
		return x.ResetAck
	}
	return nil
}

func (m *Reply) GetResetIndication() *ResetIndication {
	if x, ok := m.GetSgsMessage().(*Reply_ResetIndication); ok {
		return x.ResetIndication
	}
	return nil
}

func (m *Reply) GetStatus() *Status {
	if x, ok := m.GetSgsMessage().(*Reply_Status); ok {
		return x.Status
	}
	return nil
}

type isReply_GxgyMessage interface {
	isReply_GxgyMessage()
}

type Reply_CreateSessionResponse struct {
	CreateSessionResponse *protos.CreateSessionResponse `protobuf:"bytes,16,opt,name=create_session_response,json=createSessionResponse,proto3,oneof"`
}

type Reply_UpdateSessionResponse struct {
	UpdateSessionResponse *protos.UpdateSessionResponse `protobuf:"bytes,17,opt,name=update_session_response,json=updateSessionResponse,proto3,oneof"`
}

type Reply_SessionTerminateResponse struct {
	SessionTerminateResponse *protos.SessionTerminateResponse `protobuf:"bytes,18,opt,name=session_terminate_response,json=sessionTerminateResponse,proto3,oneof"`
}

func (*Reply_CreateSessionResponse) isReply_GxgyMessage() {}

func (*Reply_UpdateSessionResponse) isReply_GxgyMessage() {}

func (*Reply_SessionTerminateResponse) isReply_GxgyMessage() {}

func (m *Reply) GetGxgyMessage() isReply_GxgyMessage {
	if m != nil {
		return m.GxgyMessage
	}
	return nil
}

func (m *Reply) GetCreateSessionResponse() *protos.CreateSessionResponse {
	if x, ok := m.GetGxgyMessage().(*Reply_CreateSessionResponse); ok {
		return x.CreateSessionResponse
	}
	return nil
}

func (m *Reply) GetUpdateSessionResponse() *protos.UpdateSessionResponse {
	if x, ok := m.GetGxgyMessage().(*Reply_UpdateSessionResponse); ok {
		return x.UpdateSessionResponse
	}
	return nil
}

func (m *Reply) GetSessionTerminateResponse() *protos.SessionTerminateResponse {
	if x, ok := m.GetGxgyMessage().(*Reply_SessionTerminateResponse); ok {
		return x.SessionTerminateResponse
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*Reply) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*Reply_AlertRequest)(nil),
		(*Reply_DownlinkUnitdata)(nil),
		(*Reply_EpsDetachAck)(nil),
		(*Reply_ImsiDetachAck)(nil),
		(*Reply_LocationUpdateAccept)(nil),
		(*Reply_LocationUpdateReject)(nil),
		(*Reply_MmInformationRequest)(nil),
		(*Reply_PagingRequest)(nil),
		(*Reply_ReleaseRequest)(nil),
		(*Reply_ServiceAbortRequest)(nil),
		(*Reply_ResetAck)(nil),
		(*Reply_ResetIndication)(nil),
		(*Reply_Status)(nil),
		(*Reply_CreateSessionResponse)(nil),
		(*Reply_UpdateSessionResponse)(nil),
		(*Reply_SessionTerminateResponse)(nil),
	}
}

type ExpectedRequest struct {
	// Types that are valid to be assigned to SgsMessage:
	//	*ExpectedRequest_AlertAck
	//	*ExpectedRequest_AlertReject
	//	*ExpectedRequest_EpsDetachIndication
	//	*ExpectedRequest_ImsiDetachIndication
	//	*ExpectedRequest_LocationUpdateRequest
	//	*ExpectedRequest_PagingReject
	//	*ExpectedRequest_ServiceRequest
	//	*ExpectedRequest_TmsiReallocationComplete
	//	*ExpectedRequest_UeActivityIndication
	//	*ExpectedRequest_UeUnreachable
	//	*ExpectedRequest_UplinkUnitdata
	//	*ExpectedRequest_ResetAck
	//	*ExpectedRequest_ResetIndication
	//	*ExpectedRequest_Status
	SgsMessage isExpectedRequest_SgsMessage `protobuf_oneof:"sgs_message"`
	// Types that are valid to be assigned to GxgyMessage:
	//	*ExpectedRequest_CreateSessionRequest
	//	*ExpectedRequest_UpdateSessionRequest
	//	*ExpectedRequest_SessionTerminateRequest
	GxgyMessage          isExpectedRequest_GxgyMessage `protobuf_oneof:"gxgy_message"`
	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
	XXX_unrecognized     []byte                        `json:"-"`
	XXX_sizecache        int32                         `json:"-"`
}

func (m *ExpectedRequest) Reset()         { *m = ExpectedRequest{} }
func (m *ExpectedRequest) String() string { return proto.CompactTextString(m) }
func (*ExpectedRequest) ProtoMessage()    {}
func (*ExpectedRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{1}
}

func (m *ExpectedRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ExpectedRequest.Unmarshal(m, b)
}
func (m *ExpectedRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ExpectedRequest.Marshal(b, m, deterministic)
}
func (m *ExpectedRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ExpectedRequest.Merge(m, src)
}
func (m *ExpectedRequest) XXX_Size() int {
	return xxx_messageInfo_ExpectedRequest.Size(m)
}
func (m *ExpectedRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_ExpectedRequest.DiscardUnknown(m)
}

var xxx_messageInfo_ExpectedRequest proto.InternalMessageInfo

type isExpectedRequest_SgsMessage interface {
	isExpectedRequest_SgsMessage()
}

type ExpectedRequest_AlertAck struct {
	AlertAck *AlertAck `protobuf:"bytes,1,opt,name=alert_ack,json=alertAck,proto3,oneof"`
}

type ExpectedRequest_AlertReject struct {
	AlertReject *AlertReject `protobuf:"bytes,2,opt,name=alert_reject,json=alertReject,proto3,oneof"`
}

type ExpectedRequest_EpsDetachIndication struct {
	EpsDetachIndication *EPSDetachIndication `protobuf:"bytes,3,opt,name=eps_detach_indication,json=epsDetachIndication,proto3,oneof"`
}

type ExpectedRequest_ImsiDetachIndication struct {
	ImsiDetachIndication *IMSIDetachIndication `protobuf:"bytes,4,opt,name=imsi_detach_indication,json=imsiDetachIndication,proto3,oneof"`
}

type ExpectedRequest_LocationUpdateRequest struct {
	LocationUpdateRequest *LocationUpdateRequest `protobuf:"bytes,5,opt,name=location_update_request,json=locationUpdateRequest,proto3,oneof"`
}

type ExpectedRequest_PagingReject struct {
	PagingReject *PagingReject `protobuf:"bytes,6,opt,name=paging_reject,json=pagingReject,proto3,oneof"`
}

type ExpectedRequest_ServiceRequest struct {
	ServiceRequest *ServiceRequest `protobuf:"bytes,7,opt,name=service_request,json=serviceRequest,proto3,oneof"`
}

type ExpectedRequest_TmsiReallocationComplete struct {
	TmsiReallocationComplete *TMSIReallocationComplete `protobuf:"bytes,8,opt,name=tmsi_reallocation_complete,json=tmsiReallocationComplete,proto3,oneof"`
}

type ExpectedRequest_UeActivityIndication struct {
	UeActivityIndication *UEActivityIndication `protobuf:"bytes,9,opt,name=ue_activity_indication,json=ueActivityIndication,proto3,oneof"`
}

type ExpectedRequest_UeUnreachable struct {
	UeUnreachable *UEUnreachable `protobuf:"bytes,10,opt,name=ue_unreachable,json=ueUnreachable,proto3,oneof"`
}

type ExpectedRequest_UplinkUnitdata struct {
	UplinkUnitdata *UplinkUnitdata `protobuf:"bytes,11,opt,name=uplink_unitdata,json=uplinkUnitdata,proto3,oneof"`
}

type ExpectedRequest_ResetAck struct {
	ResetAck *ResetAck `protobuf:"bytes,12,opt,name=reset_ack,json=resetAck,proto3,oneof"`
}

type ExpectedRequest_ResetIndication struct {
	ResetIndication *ResetIndication `protobuf:"bytes,13,opt,name=reset_indication,json=resetIndication,proto3,oneof"`
}

type ExpectedRequest_Status struct {
	Status *Status `protobuf:"bytes,14,opt,name=status,proto3,oneof"`
}

func (*ExpectedRequest_AlertAck) isExpectedRequest_SgsMessage() {}

func (*ExpectedRequest_AlertReject) isExpectedRequest_SgsMessage() {}

func (*ExpectedRequest_EpsDetachIndication) isExpectedRequest_SgsMessage() {}

func (*ExpectedRequest_ImsiDetachIndication) isExpectedRequest_SgsMessage() {}

func (*ExpectedRequest_LocationUpdateRequest) isExpectedRequest_SgsMessage() {}

func (*ExpectedRequest_PagingReject) isExpectedRequest_SgsMessage() {}

func (*ExpectedRequest_ServiceRequest) isExpectedRequest_SgsMessage() {}

func (*ExpectedRequest_TmsiReallocationComplete) isExpectedRequest_SgsMessage() {}

func (*ExpectedRequest_UeActivityIndication) isExpectedRequest_SgsMessage() {}

func (*ExpectedRequest_UeUnreachable) isExpectedRequest_SgsMessage() {}

func (*ExpectedRequest_UplinkUnitdata) isExpectedRequest_SgsMessage() {}

func (*ExpectedRequest_ResetAck) isExpectedRequest_SgsMessage() {}

func (*ExpectedRequest_ResetIndication) isExpectedRequest_SgsMessage() {}

func (*ExpectedRequest_Status) isExpectedRequest_SgsMessage() {}

func (m *ExpectedRequest) GetSgsMessage() isExpectedRequest_SgsMessage {
	if m != nil {
		return m.SgsMessage
	}
	return nil
}

func (m *ExpectedRequest) GetAlertAck() *AlertAck {
	if x, ok := m.GetSgsMessage().(*ExpectedRequest_AlertAck); ok {
		return x.AlertAck
	}
	return nil
}

func (m *ExpectedRequest) GetAlertReject() *AlertReject {
	if x, ok := m.GetSgsMessage().(*ExpectedRequest_AlertReject); ok {
		return x.AlertReject
	}
	return nil
}

func (m *ExpectedRequest) GetEpsDetachIndication() *EPSDetachIndication {
	if x, ok := m.GetSgsMessage().(*ExpectedRequest_EpsDetachIndication); ok {
		return x.EpsDetachIndication
	}
	return nil
}

func (m *ExpectedRequest) GetImsiDetachIndication() *IMSIDetachIndication {
	if x, ok := m.GetSgsMessage().(*ExpectedRequest_ImsiDetachIndication); ok {
		return x.ImsiDetachIndication
	}
	return nil
}

func (m *ExpectedRequest) GetLocationUpdateRequest() *LocationUpdateRequest {
	if x, ok := m.GetSgsMessage().(*ExpectedRequest_LocationUpdateRequest); ok {
		return x.LocationUpdateRequest
	}
	return nil
}

func (m *ExpectedRequest) GetPagingReject() *PagingReject {
	if x, ok := m.GetSgsMessage().(*ExpectedRequest_PagingReject); ok {
		return x.PagingReject
	}
	return nil
}

func (m *ExpectedRequest) GetServiceRequest() *ServiceRequest {
	if x, ok := m.GetSgsMessage().(*ExpectedRequest_ServiceRequest); ok {
		return x.ServiceRequest
	}
	return nil
}

func (m *ExpectedRequest) GetTmsiReallocationComplete() *TMSIReallocationComplete {
	if x, ok := m.GetSgsMessage().(*ExpectedRequest_TmsiReallocationComplete); ok {
		return x.TmsiReallocationComplete
	}
	return nil
}

func (m *ExpectedRequest) GetUeActivityIndication() *UEActivityIndication {
	if x, ok := m.GetSgsMessage().(*ExpectedRequest_UeActivityIndication); ok {
		return x.UeActivityIndication
	}
	return nil
}

func (m *ExpectedRequest) GetUeUnreachable() *UEUnreachable {
	if x, ok := m.GetSgsMessage().(*ExpectedRequest_UeUnreachable); ok {
		return x.UeUnreachable
	}
	return nil
}

func (m *ExpectedRequest) GetUplinkUnitdata() *UplinkUnitdata {
	if x, ok := m.GetSgsMessage().(*ExpectedRequest_UplinkUnitdata); ok {
		return x.UplinkUnitdata
	}
	return nil
}

func (m *ExpectedRequest) GetResetAck() *ResetAck {
	if x, ok := m.GetSgsMessage().(*ExpectedRequest_ResetAck); ok {
		return x.ResetAck
	}
	return nil
}

func (m *ExpectedRequest) GetResetIndication() *ResetIndication {
	if x, ok := m.GetSgsMessage().(*ExpectedRequest_ResetIndication); ok {
		return x.ResetIndication
	}
	return nil
}

func (m *ExpectedRequest) GetStatus() *Status {
	if x, ok := m.GetSgsMessage().(*ExpectedRequest_Status); ok {
		return x.Status
	}
	return nil
}

type isExpectedRequest_GxgyMessage interface {
	isExpectedRequest_GxgyMessage()
}

type ExpectedRequest_CreateSessionRequest struct {
	CreateSessionRequest *protos.CreateSessionRequest `protobuf:"bytes,15,opt,name=create_session_request,json=createSessionRequest,proto3,oneof"`
}

type ExpectedRequest_UpdateSessionRequest struct {
	UpdateSessionRequest *protos.UpdateSessionRequest `protobuf:"bytes,16,opt,name=update_session_request,json=updateSessionRequest,proto3,oneof"`
}

type ExpectedRequest_SessionTerminateRequest struct {
	SessionTerminateRequest *protos.SessionTerminateRequest `protobuf:"bytes,17,opt,name=session_terminate_request,json=sessionTerminateRequest,proto3,oneof"`
}

func (*ExpectedRequest_CreateSessionRequest) isExpectedRequest_GxgyMessage() {}

func (*ExpectedRequest_UpdateSessionRequest) isExpectedRequest_GxgyMessage() {}

func (*ExpectedRequest_SessionTerminateRequest) isExpectedRequest_GxgyMessage() {}

func (m *ExpectedRequest) GetGxgyMessage() isExpectedRequest_GxgyMessage {
	if m != nil {
		return m.GxgyMessage
	}
	return nil
}

func (m *ExpectedRequest) GetCreateSessionRequest() *protos.CreateSessionRequest {
	if x, ok := m.GetGxgyMessage().(*ExpectedRequest_CreateSessionRequest); ok {
		return x.CreateSessionRequest
	}
	return nil
}

func (m *ExpectedRequest) GetUpdateSessionRequest() *protos.UpdateSessionRequest {
	if x, ok := m.GetGxgyMessage().(*ExpectedRequest_UpdateSessionRequest); ok {
		return x.UpdateSessionRequest
	}
	return nil
}

func (m *ExpectedRequest) GetSessionTerminateRequest() *protos.SessionTerminateRequest {
	if x, ok := m.GetGxgyMessage().(*ExpectedRequest_SessionTerminateRequest); ok {
		return x.SessionTerminateRequest
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*ExpectedRequest) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*ExpectedRequest_AlertAck)(nil),
		(*ExpectedRequest_AlertReject)(nil),
		(*ExpectedRequest_EpsDetachIndication)(nil),
		(*ExpectedRequest_ImsiDetachIndication)(nil),
		(*ExpectedRequest_LocationUpdateRequest)(nil),
		(*ExpectedRequest_PagingReject)(nil),
		(*ExpectedRequest_ServiceRequest)(nil),
		(*ExpectedRequest_TmsiReallocationComplete)(nil),
		(*ExpectedRequest_UeActivityIndication)(nil),
		(*ExpectedRequest_UeUnreachable)(nil),
		(*ExpectedRequest_UplinkUnitdata)(nil),
		(*ExpectedRequest_ResetAck)(nil),
		(*ExpectedRequest_ResetIndication)(nil),
		(*ExpectedRequest_Status)(nil),
		(*ExpectedRequest_CreateSessionRequest)(nil),
		(*ExpectedRequest_UpdateSessionRequest)(nil),
		(*ExpectedRequest_SessionTerminateRequest)(nil),
	}
}

type RequestReply struct {
	Request              *ExpectedRequest `protobuf:"bytes,1,opt,name=request,proto3" json:"request,omitempty"`
	Reply                *Reply           `protobuf:"bytes,2,opt,name=reply,proto3" json:"reply,omitempty"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *RequestReply) Reset()         { *m = RequestReply{} }
func (m *RequestReply) String() string { return proto.CompactTextString(m) }
func (*RequestReply) ProtoMessage()    {}
func (*RequestReply) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{2}
}

func (m *RequestReply) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RequestReply.Unmarshal(m, b)
}
func (m *RequestReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RequestReply.Marshal(b, m, deterministic)
}
func (m *RequestReply) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RequestReply.Merge(m, src)
}
func (m *RequestReply) XXX_Size() int {
	return xxx_messageInfo_RequestReply.Size(m)
}
func (m *RequestReply) XXX_DiscardUnknown() {
	xxx_messageInfo_RequestReply.DiscardUnknown(m)
}

var xxx_messageInfo_RequestReply proto.InternalMessageInfo

func (m *RequestReply) GetRequest() *ExpectedRequest {
	if m != nil {
		return m.Request
	}
	return nil
}

func (m *RequestReply) GetReply() *Reply {
	if m != nil {
		return m.Reply
	}
	return nil
}

type ServerConfiguration struct {
	RequestReply         []*RequestReply `protobuf:"bytes,1,rep,name=request_reply,json=requestReply,proto3" json:"request_reply,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *ServerConfiguration) Reset()         { *m = ServerConfiguration{} }
func (m *ServerConfiguration) String() string { return proto.CompactTextString(m) }
func (*ServerConfiguration) ProtoMessage()    {}
func (*ServerConfiguration) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{3}
}

func (m *ServerConfiguration) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ServerConfiguration.Unmarshal(m, b)
}
func (m *ServerConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ServerConfiguration.Marshal(b, m, deterministic)
}
func (m *ServerConfiguration) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ServerConfiguration.Merge(m, src)
}
func (m *ServerConfiguration) XXX_Size() int {
	return xxx_messageInfo_ServerConfiguration.Size(m)
}
func (m *ServerConfiguration) XXX_DiscardUnknown() {
	xxx_messageInfo_ServerConfiguration.DiscardUnknown(m)
}

var xxx_messageInfo_ServerConfiguration proto.InternalMessageInfo

func (m *ServerConfiguration) GetRequestReply() []*RequestReply {
	if m != nil {
		return m.RequestReply
	}
	return nil
}

type RedirectServer struct {
	RedirectServerAddress string   `protobuf:"bytes,1,opt,name=RedirectServerAddress,proto3" json:"RedirectServerAddress,omitempty"`
	XXX_NoUnkeyedLiteral  struct{} `json:"-"`
	XXX_unrecognized      []byte   `json:"-"`
	XXX_sizecache         int32    `json:"-"`
}

func (m *RedirectServer) Reset()         { *m = RedirectServer{} }
func (m *RedirectServer) String() string { return proto.CompactTextString(m) }
func (*RedirectServer) ProtoMessage()    {}
func (*RedirectServer) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{4}
}

func (m *RedirectServer) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RedirectServer.Unmarshal(m, b)
}
func (m *RedirectServer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RedirectServer.Marshal(b, m, deterministic)
}
func (m *RedirectServer) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RedirectServer.Merge(m, src)
}
func (m *RedirectServer) XXX_Size() int {
	return xxx_messageInfo_RedirectServer.Size(m)
}
func (m *RedirectServer) XXX_DiscardUnknown() {
	xxx_messageInfo_RedirectServer.DiscardUnknown(m)
}

var xxx_messageInfo_RedirectServer proto.InternalMessageInfo

func (m *RedirectServer) GetRedirectServerAddress() string {
	if m != nil {
		return m.RedirectServerAddress
	}
	return ""
}

type FinalUnitIndication struct {
	RedirectServer       *RedirectServer `protobuf:"bytes,1,opt,name=redirect_server,json=redirectServer,proto3" json:"redirect_server,omitempty"`
	FinalUnitAction      FinalUnitAction `protobuf:"varint,2,opt,name=final_unit_action,json=finalUnitAction,proto3,enum=magma.feg.FinalUnitAction" json:"final_unit_action,omitempty"`
	RestrictRules        []string        `protobuf:"bytes,3,rep,name=restrict_rules,json=restrictRules,proto3" json:"restrict_rules,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *FinalUnitIndication) Reset()         { *m = FinalUnitIndication{} }
func (m *FinalUnitIndication) String() string { return proto.CompactTextString(m) }
func (*FinalUnitIndication) ProtoMessage()    {}
func (*FinalUnitIndication) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{5}
}

func (m *FinalUnitIndication) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_FinalUnitIndication.Unmarshal(m, b)
}
func (m *FinalUnitIndication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_FinalUnitIndication.Marshal(b, m, deterministic)
}
func (m *FinalUnitIndication) XXX_Merge(src proto.Message) {
	xxx_messageInfo_FinalUnitIndication.Merge(m, src)
}
func (m *FinalUnitIndication) XXX_Size() int {
	return xxx_messageInfo_FinalUnitIndication.Size(m)
}
func (m *FinalUnitIndication) XXX_DiscardUnknown() {
	xxx_messageInfo_FinalUnitIndication.DiscardUnknown(m)
}

var xxx_messageInfo_FinalUnitIndication proto.InternalMessageInfo

func (m *FinalUnitIndication) GetRedirectServer() *RedirectServer {
	if m != nil {
		return m.RedirectServer
	}
	return nil
}

func (m *FinalUnitIndication) GetFinalUnitAction() FinalUnitAction {
	if m != nil {
		return m.FinalUnitAction
	}
	return FinalUnitAction_Terminate
}

func (m *FinalUnitIndication) GetRestrictRules() []string {
	if m != nil {
		return m.RestrictRules
	}
	return nil
}

type OCSConfig struct {
	MaxUsageOctets       *Octets              `protobuf:"bytes,1,opt,name=max_usage_octets,json=maxUsageOctets,proto3" json:"max_usage_octets,omitempty"`
	MaxUsageTime         uint32               `protobuf:"varint,2,opt,name=max_usage_time,json=maxUsageTime,proto3" json:"max_usage_time,omitempty"`
	ValidityTime         uint32               `protobuf:"varint,3,opt,name=validity_time,json=validityTime,proto3" json:"validity_time,omitempty"`
	UseMockDriver        bool                 `protobuf:"varint,4,opt,name=use_mock_driver,json=useMockDriver,proto3" json:"use_mock_driver,omitempty"`
	FinalUnitIndication  *FinalUnitIndication `protobuf:"bytes,5,opt,name=final_unit_indication,json=finalUnitIndication,proto3" json:"final_unit_indication,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *OCSConfig) Reset()         { *m = OCSConfig{} }
func (m *OCSConfig) String() string { return proto.CompactTextString(m) }
func (*OCSConfig) ProtoMessage()    {}
func (*OCSConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{6}
}

func (m *OCSConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_OCSConfig.Unmarshal(m, b)
}
func (m *OCSConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_OCSConfig.Marshal(b, m, deterministic)
}
func (m *OCSConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_OCSConfig.Merge(m, src)
}
func (m *OCSConfig) XXX_Size() int {
	return xxx_messageInfo_OCSConfig.Size(m)
}
func (m *OCSConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_OCSConfig.DiscardUnknown(m)
}

var xxx_messageInfo_OCSConfig proto.InternalMessageInfo

func (m *OCSConfig) GetMaxUsageOctets() *Octets {
	if m != nil {
		return m.MaxUsageOctets
	}
	return nil
}

func (m *OCSConfig) GetMaxUsageTime() uint32 {
	if m != nil {
		return m.MaxUsageTime
	}
	return 0
}

func (m *OCSConfig) GetValidityTime() uint32 {
	if m != nil {
		return m.ValidityTime
	}
	return 0
}

func (m *OCSConfig) GetUseMockDriver() bool {
	if m != nil {
		return m.UseMockDriver
	}
	return false
}

func (m *OCSConfig) GetFinalUnitIndication() *FinalUnitIndication {
	if m != nil {
		return m.FinalUnitIndication
	}
	return nil
}

type CreditInfo struct {
	Imsi                 string              `protobuf:"bytes,1,opt,name=imsi,proto3" json:"imsi,omitempty"`
	ChargingKey          uint32              `protobuf:"varint,2,opt,name=charging_key,json=chargingKey,proto3" json:"charging_key,omitempty"`
	Volume               *Octets             `protobuf:"bytes,3,opt,name=volume,proto3" json:"volume,omitempty"`
	UnitType             CreditInfo_UnitType `protobuf:"varint,4,opt,name=unit_type,json=unitType,proto3,enum=magma.feg.CreditInfo_UnitType" json:"unit_type,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

func (m *CreditInfo) Reset()         { *m = CreditInfo{} }
func (m *CreditInfo) String() string { return proto.CompactTextString(m) }
func (*CreditInfo) ProtoMessage()    {}
func (*CreditInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{7}
}

func (m *CreditInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CreditInfo.Unmarshal(m, b)
}
func (m *CreditInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CreditInfo.Marshal(b, m, deterministic)
}
func (m *CreditInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CreditInfo.Merge(m, src)
}
func (m *CreditInfo) XXX_Size() int {
	return xxx_messageInfo_CreditInfo.Size(m)
}
func (m *CreditInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_CreditInfo.DiscardUnknown(m)
}

var xxx_messageInfo_CreditInfo proto.InternalMessageInfo

func (m *CreditInfo) GetImsi() string {
	if m != nil {
		return m.Imsi
	}
	return ""
}

func (m *CreditInfo) GetChargingKey() uint32 {
	if m != nil {
		return m.ChargingKey
	}
	return 0
}

func (m *CreditInfo) GetVolume() *Octets {
	if m != nil {
		return m.Volume
	}
	return nil
}

func (m *CreditInfo) GetUnitType() CreditInfo_UnitType {
	if m != nil {
		return m.UnitType
	}
	return CreditInfo_Bytes
}

type CreditInfos struct {
	CreditInformation    map[uint32]*CreditInfo `protobuf:"bytes,1,rep,name=creditInformation,proto3" json:"creditInformation,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
	XXX_unrecognized     []byte                 `json:"-"`
	XXX_sizecache        int32                  `json:"-"`
}

func (m *CreditInfos) Reset()         { *m = CreditInfos{} }
func (m *CreditInfos) String() string { return proto.CompactTextString(m) }
func (*CreditInfos) ProtoMessage()    {}
func (*CreditInfos) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{8}
}

func (m *CreditInfos) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CreditInfos.Unmarshal(m, b)
}
func (m *CreditInfos) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CreditInfos.Marshal(b, m, deterministic)
}
func (m *CreditInfos) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CreditInfos.Merge(m, src)
}
func (m *CreditInfos) XXX_Size() int {
	return xxx_messageInfo_CreditInfos.Size(m)
}
func (m *CreditInfos) XXX_DiscardUnknown() {
	xxx_messageInfo_CreditInfos.DiscardUnknown(m)
}

var xxx_messageInfo_CreditInfos proto.InternalMessageInfo

func (m *CreditInfos) GetCreditInformation() map[uint32]*CreditInfo {
	if m != nil {
		return m.CreditInformation
	}
	return nil
}

type ChargingReAuthTarget struct {
	Imsi                 string   `protobuf:"bytes,1,opt,name=imsi,proto3" json:"imsi,omitempty"`
	RatingGroup          uint32   `protobuf:"varint,2,opt,name=rating_group,json=ratingGroup,proto3" json:"rating_group,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ChargingReAuthTarget) Reset()         { *m = ChargingReAuthTarget{} }
func (m *ChargingReAuthTarget) String() string { return proto.CompactTextString(m) }
func (*ChargingReAuthTarget) ProtoMessage()    {}
func (*ChargingReAuthTarget) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{9}
}

func (m *ChargingReAuthTarget) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ChargingReAuthTarget.Unmarshal(m, b)
}
func (m *ChargingReAuthTarget) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ChargingReAuthTarget.Marshal(b, m, deterministic)
}
func (m *ChargingReAuthTarget) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ChargingReAuthTarget.Merge(m, src)
}
func (m *ChargingReAuthTarget) XXX_Size() int {
	return xxx_messageInfo_ChargingReAuthTarget.Size(m)
}
func (m *ChargingReAuthTarget) XXX_DiscardUnknown() {
	xxx_messageInfo_ChargingReAuthTarget.DiscardUnknown(m)
}

var xxx_messageInfo_ChargingReAuthTarget proto.InternalMessageInfo

func (m *ChargingReAuthTarget) GetImsi() string {
	if m != nil {
		return m.Imsi
	}
	return ""
}

func (m *ChargingReAuthTarget) GetRatingGroup() uint32 {
	if m != nil {
		return m.RatingGroup
	}
	return 0
}

type ChargingReAuthAnswer struct {
	SessionId            string   `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	ResultCode           uint32   `protobuf:"varint,2,opt,name=result_code,json=resultCode,proto3" json:"result_code,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ChargingReAuthAnswer) Reset()         { *m = ChargingReAuthAnswer{} }
func (m *ChargingReAuthAnswer) String() string { return proto.CompactTextString(m) }
func (*ChargingReAuthAnswer) ProtoMessage()    {}
func (*ChargingReAuthAnswer) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{10}
}

func (m *ChargingReAuthAnswer) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ChargingReAuthAnswer.Unmarshal(m, b)
}
func (m *ChargingReAuthAnswer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ChargingReAuthAnswer.Marshal(b, m, deterministic)
}
func (m *ChargingReAuthAnswer) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ChargingReAuthAnswer.Merge(m, src)
}
func (m *ChargingReAuthAnswer) XXX_Size() int {
	return xxx_messageInfo_ChargingReAuthAnswer.Size(m)
}
func (m *ChargingReAuthAnswer) XXX_DiscardUnknown() {
	xxx_messageInfo_ChargingReAuthAnswer.DiscardUnknown(m)
}

var xxx_messageInfo_ChargingReAuthAnswer proto.InternalMessageInfo

func (m *ChargingReAuthAnswer) GetSessionId() string {
	if m != nil {
		return m.SessionId
	}
	return ""
}

func (m *ChargingReAuthAnswer) GetResultCode() uint32 {
	if m != nil {
		return m.ResultCode
	}
	return 0
}

type PCRFConfigs struct {
	UseMockDriver        bool     `protobuf:"varint,1,opt,name=use_mock_driver,json=useMockDriver,proto3" json:"use_mock_driver,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PCRFConfigs) Reset()         { *m = PCRFConfigs{} }
func (m *PCRFConfigs) String() string { return proto.CompactTextString(m) }
func (*PCRFConfigs) ProtoMessage()    {}
func (*PCRFConfigs) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{11}
}

func (m *PCRFConfigs) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PCRFConfigs.Unmarshal(m, b)
}
func (m *PCRFConfigs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PCRFConfigs.Marshal(b, m, deterministic)
}
func (m *PCRFConfigs) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PCRFConfigs.Merge(m, src)
}
func (m *PCRFConfigs) XXX_Size() int {
	return xxx_messageInfo_PCRFConfigs.Size(m)
}
func (m *PCRFConfigs) XXX_DiscardUnknown() {
	xxx_messageInfo_PCRFConfigs.DiscardUnknown(m)
}

var xxx_messageInfo_PCRFConfigs proto.InternalMessageInfo

func (m *PCRFConfigs) GetUseMockDriver() bool {
	if m != nil {
		return m.UseMockDriver
	}
	return false
}

type AccountRules struct {
	Imsi                   string            `protobuf:"bytes,1,opt,name=imsi,proto3" json:"imsi,omitempty"`
	StaticRuleNames        []string          `protobuf:"bytes,2,rep,name=static_rule_names,json=staticRuleNames,proto3" json:"static_rule_names,omitempty"`
	StaticRuleBaseNames    []string          `protobuf:"bytes,3,rep,name=static_rule_base_names,json=staticRuleBaseNames,proto3" json:"static_rule_base_names,omitempty"`
	DynamicRuleDefinitions []*RuleDefinition `protobuf:"bytes,4,rep,name=dynamic_rule_definitions,json=dynamicRuleDefinitions,proto3" json:"dynamic_rule_definitions,omitempty"`
	XXX_NoUnkeyedLiteral   struct{}          `json:"-"`
	XXX_unrecognized       []byte            `json:"-"`
	XXX_sizecache          int32             `json:"-"`
}

func (m *AccountRules) Reset()         { *m = AccountRules{} }
func (m *AccountRules) String() string { return proto.CompactTextString(m) }
func (*AccountRules) ProtoMessage()    {}
func (*AccountRules) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{12}
}

func (m *AccountRules) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AccountRules.Unmarshal(m, b)
}
func (m *AccountRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AccountRules.Marshal(b, m, deterministic)
}
func (m *AccountRules) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AccountRules.Merge(m, src)
}
func (m *AccountRules) XXX_Size() int {
	return xxx_messageInfo_AccountRules.Size(m)
}
func (m *AccountRules) XXX_DiscardUnknown() {
	xxx_messageInfo_AccountRules.DiscardUnknown(m)
}

var xxx_messageInfo_AccountRules proto.InternalMessageInfo

func (m *AccountRules) GetImsi() string {
	if m != nil {
		return m.Imsi
	}
	return ""
}

func (m *AccountRules) GetStaticRuleNames() []string {
	if m != nil {
		return m.StaticRuleNames
	}
	return nil
}

func (m *AccountRules) GetStaticRuleBaseNames() []string {
	if m != nil {
		return m.StaticRuleBaseNames
	}
	return nil
}

func (m *AccountRules) GetDynamicRuleDefinitions() []*RuleDefinition {
	if m != nil {
		return m.DynamicRuleDefinitions
	}
	return nil
}

type RuleDefinition struct {
	RuleName             string                      `protobuf:"bytes,1,opt,name=rule_name,json=ruleName,proto3" json:"rule_name,omitempty"`
	RatingGroup          uint32                      `protobuf:"varint,2,opt,name=rating_group,json=ratingGroup,proto3" json:"rating_group,omitempty"`
	Precedence           uint32                      `protobuf:"varint,3,opt,name=precedence,proto3" json:"precedence,omitempty"`
	MonitoringKey        string                      `protobuf:"bytes,4,opt,name=monitoring_key,json=monitoringKey,proto3" json:"monitoring_key,omitempty"`
	FlowDescriptions     []string                    `protobuf:"bytes,5,rep,name=flow_descriptions,json=flowDescriptions,proto3" json:"flow_descriptions,omitempty"`
	RedirectInformation  *protos.RedirectInformation `protobuf:"bytes,7,opt,name=redirect_information,json=redirectInformation,proto3" json:"redirect_information,omitempty"`
	QosInformation       *protos.FlowQos             `protobuf:"bytes,8,opt,name=qos_information,json=qosInformation,proto3" json:"qos_information,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                    `json:"-"`
	XXX_unrecognized     []byte                      `json:"-"`
	XXX_sizecache        int32                       `json:"-"`
}

func (m *RuleDefinition) Reset()         { *m = RuleDefinition{} }
func (m *RuleDefinition) String() string { return proto.CompactTextString(m) }
func (*RuleDefinition) ProtoMessage()    {}
func (*RuleDefinition) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{13}
}

func (m *RuleDefinition) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RuleDefinition.Unmarshal(m, b)
}
func (m *RuleDefinition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RuleDefinition.Marshal(b, m, deterministic)
}
func (m *RuleDefinition) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RuleDefinition.Merge(m, src)
}
func (m *RuleDefinition) XXX_Size() int {
	return xxx_messageInfo_RuleDefinition.Size(m)
}
func (m *RuleDefinition) XXX_DiscardUnknown() {
	xxx_messageInfo_RuleDefinition.DiscardUnknown(m)
}

var xxx_messageInfo_RuleDefinition proto.InternalMessageInfo

func (m *RuleDefinition) GetRuleName() string {
	if m != nil {
		return m.RuleName
	}
	return ""
}

func (m *RuleDefinition) GetRatingGroup() uint32 {
	if m != nil {
		return m.RatingGroup
	}
	return 0
}

func (m *RuleDefinition) GetPrecedence() uint32 {
	if m != nil {
		return m.Precedence
	}
	return 0
}

func (m *RuleDefinition) GetMonitoringKey() string {
	if m != nil {
		return m.MonitoringKey
	}
	return ""
}

func (m *RuleDefinition) GetFlowDescriptions() []string {
	if m != nil {
		return m.FlowDescriptions
	}
	return nil
}

func (m *RuleDefinition) GetRedirectInformation() *protos.RedirectInformation {
	if m != nil {
		return m.RedirectInformation
	}
	return nil
}

func (m *RuleDefinition) GetQosInformation() *protos.FlowQos {
	if m != nil {
		return m.QosInformation
	}
	return nil
}

type UsageMonitorConfiguration struct {
	Imsi                 string          `protobuf:"bytes,1,opt,name=imsi,proto3" json:"imsi,omitempty"`
	UsageMonitorCredits  []*UsageMonitor `protobuf:"bytes,2,rep,name=usage_monitor_credits,json=usageMonitorCredits,proto3" json:"usage_monitor_credits,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *UsageMonitorConfiguration) Reset()         { *m = UsageMonitorConfiguration{} }
func (m *UsageMonitorConfiguration) String() string { return proto.CompactTextString(m) }
func (*UsageMonitorConfiguration) ProtoMessage()    {}
func (*UsageMonitorConfiguration) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{14}
}

func (m *UsageMonitorConfiguration) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UsageMonitorConfiguration.Unmarshal(m, b)
}
func (m *UsageMonitorConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UsageMonitorConfiguration.Marshal(b, m, deterministic)
}
func (m *UsageMonitorConfiguration) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UsageMonitorConfiguration.Merge(m, src)
}
func (m *UsageMonitorConfiguration) XXX_Size() int {
	return xxx_messageInfo_UsageMonitorConfiguration.Size(m)
}
func (m *UsageMonitorConfiguration) XXX_DiscardUnknown() {
	xxx_messageInfo_UsageMonitorConfiguration.DiscardUnknown(m)
}

var xxx_messageInfo_UsageMonitorConfiguration proto.InternalMessageInfo

func (m *UsageMonitorConfiguration) GetImsi() string {
	if m != nil {
		return m.Imsi
	}
	return ""
}

func (m *UsageMonitorConfiguration) GetUsageMonitorCredits() []*UsageMonitor {
	if m != nil {
		return m.UsageMonitorCredits
	}
	return nil
}

type UsageMonitor struct {
	// the usage monitoring information the PCRF sends per answer
	MonitorInfoPerRequest *UsageMonitoringInformation `protobuf:"bytes,1,opt,name=monitor_info_per_request,json=monitorInfoPerRequest,proto3" json:"monitor_info_per_request,omitempty"`
	// the total amount of quota assigned to the monitoring key
	TotalQuota           *Octets  `protobuf:"bytes,2,opt,name=total_quota,json=totalQuota,proto3" json:"total_quota,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *UsageMonitor) Reset()         { *m = UsageMonitor{} }
func (m *UsageMonitor) String() string { return proto.CompactTextString(m) }
func (*UsageMonitor) ProtoMessage()    {}
func (*UsageMonitor) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{15}
}

func (m *UsageMonitor) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UsageMonitor.Unmarshal(m, b)
}
func (m *UsageMonitor) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UsageMonitor.Marshal(b, m, deterministic)
}
func (m *UsageMonitor) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UsageMonitor.Merge(m, src)
}
func (m *UsageMonitor) XXX_Size() int {
	return xxx_messageInfo_UsageMonitor.Size(m)
}
func (m *UsageMonitor) XXX_DiscardUnknown() {
	xxx_messageInfo_UsageMonitor.DiscardUnknown(m)
}

var xxx_messageInfo_UsageMonitor proto.InternalMessageInfo

func (m *UsageMonitor) GetMonitorInfoPerRequest() *UsageMonitoringInformation {
	if m != nil {
		return m.MonitorInfoPerRequest
	}
	return nil
}

func (m *UsageMonitor) GetTotalQuota() *Octets {
	if m != nil {
		return m.TotalQuota
	}
	return nil
}

type GxCreditControlExpectations struct {
	Expectations              []*GxCreditControlExpectation `protobuf:"bytes,1,rep,name=expectations,proto3" json:"expectations,omitempty"`
	UnexpectedRequestBehavior UnexpectedRequestBehavior     `protobuf:"varint,2,opt,name=unexpected_request_behavior,json=unexpectedRequestBehavior,proto3,enum=magma.feg.UnexpectedRequestBehavior" json:"unexpected_request_behavior,omitempty"`
	GxDefaultCca              *GxCreditControlAnswer        `protobuf:"bytes,3,opt,name=gx_default_cca,json=gxDefaultCca,proto3" json:"gx_default_cca,omitempty"`
	TotalExpectedUsage        *Octets                       `protobuf:"bytes,4,opt,name=total_expected_usage,json=totalExpectedUsage,proto3" json:"total_expected_usage,omitempty"`
	XXX_NoUnkeyedLiteral      struct{}                      `json:"-"`
	XXX_unrecognized          []byte                        `json:"-"`
	XXX_sizecache             int32                         `json:"-"`
}

func (m *GxCreditControlExpectations) Reset()         { *m = GxCreditControlExpectations{} }
func (m *GxCreditControlExpectations) String() string { return proto.CompactTextString(m) }
func (*GxCreditControlExpectations) ProtoMessage()    {}
func (*GxCreditControlExpectations) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{16}
}

func (m *GxCreditControlExpectations) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GxCreditControlExpectations.Unmarshal(m, b)
}
func (m *GxCreditControlExpectations) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GxCreditControlExpectations.Marshal(b, m, deterministic)
}
func (m *GxCreditControlExpectations) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GxCreditControlExpectations.Merge(m, src)
}
func (m *GxCreditControlExpectations) XXX_Size() int {
	return xxx_messageInfo_GxCreditControlExpectations.Size(m)
}
func (m *GxCreditControlExpectations) XXX_DiscardUnknown() {
	xxx_messageInfo_GxCreditControlExpectations.DiscardUnknown(m)
}

var xxx_messageInfo_GxCreditControlExpectations proto.InternalMessageInfo

func (m *GxCreditControlExpectations) GetExpectations() []*GxCreditControlExpectation {
	if m != nil {
		return m.Expectations
	}
	return nil
}

func (m *GxCreditControlExpectations) GetUnexpectedRequestBehavior() UnexpectedRequestBehavior {
	if m != nil {
		return m.UnexpectedRequestBehavior
	}
	return UnexpectedRequestBehavior_CONTINUE_WITH_ERROR
}

func (m *GxCreditControlExpectations) GetGxDefaultCca() *GxCreditControlAnswer {
	if m != nil {
		return m.GxDefaultCca
	}
	return nil
}

func (m *GxCreditControlExpectations) GetTotalExpectedUsage() *Octets {
	if m != nil {
		return m.TotalExpectedUsage
	}
	return nil
}

type GxCreditControlResult struct {
	Results              []*ExpectationResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
	Errors               []*ErrorByIndex      `protobuf:"bytes,2,rep,name=errors,proto3" json:"errors,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *GxCreditControlResult) Reset()         { *m = GxCreditControlResult{} }
func (m *GxCreditControlResult) String() string { return proto.CompactTextString(m) }
func (*GxCreditControlResult) ProtoMessage()    {}
func (*GxCreditControlResult) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{17}
}

func (m *GxCreditControlResult) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GxCreditControlResult.Unmarshal(m, b)
}
func (m *GxCreditControlResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GxCreditControlResult.Marshal(b, m, deterministic)
}
func (m *GxCreditControlResult) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GxCreditControlResult.Merge(m, src)
}
func (m *GxCreditControlResult) XXX_Size() int {
	return xxx_messageInfo_GxCreditControlResult.Size(m)
}
func (m *GxCreditControlResult) XXX_DiscardUnknown() {
	xxx_messageInfo_GxCreditControlResult.DiscardUnknown(m)
}

var xxx_messageInfo_GxCreditControlResult proto.InternalMessageInfo

func (m *GxCreditControlResult) GetResults() []*ExpectationResult {
	if m != nil {
		return m.Results
	}
	return nil
}

func (m *GxCreditControlResult) GetErrors() []*ErrorByIndex {
	if m != nil {
		return m.Errors
	}
	return nil
}

type ErrorByIndex struct {
	Index                int32    `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"`
	Error                string   `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ErrorByIndex) Reset()         { *m = ErrorByIndex{} }
func (m *ErrorByIndex) String() string { return proto.CompactTextString(m) }
func (*ErrorByIndex) ProtoMessage()    {}
func (*ErrorByIndex) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{18}
}

func (m *ErrorByIndex) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ErrorByIndex.Unmarshal(m, b)
}
func (m *ErrorByIndex) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ErrorByIndex.Marshal(b, m, deterministic)
}
func (m *ErrorByIndex) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ErrorByIndex.Merge(m, src)
}
func (m *ErrorByIndex) XXX_Size() int {
	return xxx_messageInfo_ErrorByIndex.Size(m)
}
func (m *ErrorByIndex) XXX_DiscardUnknown() {
	xxx_messageInfo_ErrorByIndex.DiscardUnknown(m)
}

var xxx_messageInfo_ErrorByIndex proto.InternalMessageInfo

func (m *ErrorByIndex) GetIndex() int32 {
	if m != nil {
		return m.Index
	}
	return 0
}

func (m *ErrorByIndex) GetError() string {
	if m != nil {
		return m.Error
	}
	return ""
}

type ExpectationResult struct {
	ExpectationIndex     int32    `protobuf:"varint,1,opt,name=expectation_index,json=expectationIndex,proto3" json:"expectation_index,omitempty"`
	ExpectationMet       bool     `protobuf:"varint,2,opt,name=expectation_met,json=expectationMet,proto3" json:"expectation_met,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ExpectationResult) Reset()         { *m = ExpectationResult{} }
func (m *ExpectationResult) String() string { return proto.CompactTextString(m) }
func (*ExpectationResult) ProtoMessage()    {}
func (*ExpectationResult) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{19}
}

func (m *ExpectationResult) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ExpectationResult.Unmarshal(m, b)
}
func (m *ExpectationResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ExpectationResult.Marshal(b, m, deterministic)
}
func (m *ExpectationResult) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ExpectationResult.Merge(m, src)
}
func (m *ExpectationResult) XXX_Size() int {
	return xxx_messageInfo_ExpectationResult.Size(m)
}
func (m *ExpectationResult) XXX_DiscardUnknown() {
	xxx_messageInfo_ExpectationResult.DiscardUnknown(m)
}

var xxx_messageInfo_ExpectationResult proto.InternalMessageInfo

func (m *ExpectationResult) GetExpectationIndex() int32 {
	if m != nil {
		return m.ExpectationIndex
	}
	return 0
}

func (m *ExpectationResult) GetExpectationMet() bool {
	if m != nil {
		return m.ExpectationMet
	}
	return false
}

type GxCreditControlExpectation struct {
	ExpectedRequest      *GxCreditControlRequest `protobuf:"bytes,1,opt,name=expected_request,json=expectedRequest,proto3" json:"expected_request,omitempty"`
	Answer               *GxCreditControlAnswer  `protobuf:"bytes,2,opt,name=answer,proto3" json:"answer,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
	XXX_unrecognized     []byte                  `json:"-"`
	XXX_sizecache        int32                   `json:"-"`
}

func (m *GxCreditControlExpectation) Reset()         { *m = GxCreditControlExpectation{} }
func (m *GxCreditControlExpectation) String() string { return proto.CompactTextString(m) }
func (*GxCreditControlExpectation) ProtoMessage()    {}
func (*GxCreditControlExpectation) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{20}
}

func (m *GxCreditControlExpectation) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GxCreditControlExpectation.Unmarshal(m, b)
}
func (m *GxCreditControlExpectation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GxCreditControlExpectation.Marshal(b, m, deterministic)
}
func (m *GxCreditControlExpectation) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GxCreditControlExpectation.Merge(m, src)
}
func (m *GxCreditControlExpectation) XXX_Size() int {
	return xxx_messageInfo_GxCreditControlExpectation.Size(m)
}
func (m *GxCreditControlExpectation) XXX_DiscardUnknown() {
	xxx_messageInfo_GxCreditControlExpectation.DiscardUnknown(m)
}

var xxx_messageInfo_GxCreditControlExpectation proto.InternalMessageInfo

func (m *GxCreditControlExpectation) GetExpectedRequest() *GxCreditControlRequest {
	if m != nil {
		return m.ExpectedRequest
	}
	return nil
}

func (m *GxCreditControlExpectation) GetAnswer() *GxCreditControlAnswer {
	if m != nil {
		return m.Answer
	}
	return nil
}

type GxCreditControlRequest struct {
	Imsi                   string                        `protobuf:"bytes,1,opt,name=imsi,proto3" json:"imsi,omitempty"`
	RequestType            CCRequestType                 `protobuf:"varint,2,opt,name=request_type,json=requestType,proto3,enum=magma.feg.CCRequestType" json:"request_type,omitempty"`
	RequestNumber          *wrappers.Int32Value          `protobuf:"bytes,3,opt,name=request_number,json=requestNumber,proto3" json:"request_number,omitempty"`
	UsageMonitoringReports []*UsageMonitoringInformation `protobuf:"bytes,11,rep,name=usage_monitoring_reports,json=usageMonitoringReports,proto3" json:"usage_monitoring_reports,omitempty"`
	// As long as we use real traffic for the test, usage reporting will differ
	// each time. So this field will specify the acceptable range for the
	// value. We will accept a request as matching if
	// (expected report - delta) < actual report < (expected report + delta)
	UsageReportDelta     uint64               `protobuf:"varint,12,opt,name=usage_report_delta,json=usageReportDelta,proto3" json:"usage_report_delta,omitempty"`
	EventTrigger         *wrappers.Int32Value `protobuf:"bytes,13,opt,name=event_trigger,json=eventTrigger,proto3" json:"event_trigger,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *GxCreditControlRequest) Reset()         { *m = GxCreditControlRequest{} }
func (m *GxCreditControlRequest) String() string { return proto.CompactTextString(m) }
func (*GxCreditControlRequest) ProtoMessage()    {}
func (*GxCreditControlRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{21}
}

func (m *GxCreditControlRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GxCreditControlRequest.Unmarshal(m, b)
}
func (m *GxCreditControlRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GxCreditControlRequest.Marshal(b, m, deterministic)
}
func (m *GxCreditControlRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GxCreditControlRequest.Merge(m, src)
}
func (m *GxCreditControlRequest) XXX_Size() int {
	return xxx_messageInfo_GxCreditControlRequest.Size(m)
}
func (m *GxCreditControlRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_GxCreditControlRequest.DiscardUnknown(m)
}

var xxx_messageInfo_GxCreditControlRequest proto.InternalMessageInfo

func (m *GxCreditControlRequest) GetImsi() string {
	if m != nil {
		return m.Imsi
	}
	return ""
}

func (m *GxCreditControlRequest) GetRequestType() CCRequestType {
	if m != nil {
		return m.RequestType
	}
	return CCRequestType__INVALID
}

func (m *GxCreditControlRequest) GetRequestNumber() *wrappers.Int32Value {
	if m != nil {
		return m.RequestNumber
	}
	return nil
}

func (m *GxCreditControlRequest) GetUsageMonitoringReports() []*UsageMonitoringInformation {
	if m != nil {
		return m.UsageMonitoringReports
	}
	return nil
}

func (m *GxCreditControlRequest) GetUsageReportDelta() uint64 {
	if m != nil {
		return m.UsageReportDelta
	}
	return 0
}

func (m *GxCreditControlRequest) GetEventTrigger() *wrappers.Int32Value {
	if m != nil {
		return m.EventTrigger
	}
	return nil
}

type GxCreditControlAnswer struct {
	// request type and request number will be taken from the request
	ResultCode           uint32                        `protobuf:"varint,1,opt,name=result_code,json=resultCode,proto3" json:"result_code,omitempty"`
	UsageMonitoringInfos []*UsageMonitoringInformation `protobuf:"bytes,11,rep,name=usage_monitoring_infos,json=usageMonitoringInfos,proto3" json:"usage_monitoring_infos,omitempty"`
	RuleInstalls         *RuleInstalls                 `protobuf:"bytes,12,opt,name=rule_installs,json=ruleInstalls,proto3" json:"rule_installs,omitempty"`
	RuleRemovals         *RuleRemovals                 `protobuf:"bytes,13,opt,name=rule_removals,json=ruleRemovals,proto3" json:"rule_removals,omitempty"`
	EventTriggers        []uint32                      `protobuf:"varint,14,rep,packed,name=event_triggers,json=eventTriggers,proto3" json:"event_triggers,omitempty"`
	RevalidationTime     *timestamp.Timestamp          `protobuf:"bytes,15,opt,name=revalidation_time,json=revalidationTime,proto3" json:"revalidation_time,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
	XXX_unrecognized     []byte                        `json:"-"`
	XXX_sizecache        int32                         `json:"-"`
}

func (m *GxCreditControlAnswer) Reset()         { *m = GxCreditControlAnswer{} }
func (m *GxCreditControlAnswer) String() string { return proto.CompactTextString(m) }
func (*GxCreditControlAnswer) ProtoMessage()    {}
func (*GxCreditControlAnswer) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{22}
}

func (m *GxCreditControlAnswer) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GxCreditControlAnswer.Unmarshal(m, b)
}
func (m *GxCreditControlAnswer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GxCreditControlAnswer.Marshal(b, m, deterministic)
}
func (m *GxCreditControlAnswer) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GxCreditControlAnswer.Merge(m, src)
}
func (m *GxCreditControlAnswer) XXX_Size() int {
	return xxx_messageInfo_GxCreditControlAnswer.Size(m)
}
func (m *GxCreditControlAnswer) XXX_DiscardUnknown() {
	xxx_messageInfo_GxCreditControlAnswer.DiscardUnknown(m)
}

var xxx_messageInfo_GxCreditControlAnswer proto.InternalMessageInfo

func (m *GxCreditControlAnswer) GetResultCode() uint32 {
	if m != nil {
		return m.ResultCode
	}
	return 0
}

func (m *GxCreditControlAnswer) GetUsageMonitoringInfos() []*UsageMonitoringInformation {
	if m != nil {
		return m.UsageMonitoringInfos
	}
	return nil
}

func (m *GxCreditControlAnswer) GetRuleInstalls() *RuleInstalls {
	if m != nil {
		return m.RuleInstalls
	}
	return nil
}

func (m *GxCreditControlAnswer) GetRuleRemovals() *RuleRemovals {
	if m != nil {
		return m.RuleRemovals
	}
	return nil
}

func (m *GxCreditControlAnswer) GetEventTriggers() []uint32 {
	if m != nil {
		return m.EventTriggers
	}
	return nil
}

func (m *GxCreditControlAnswer) GetRevalidationTime() *timestamp.Timestamp {
	if m != nil {
		return m.RevalidationTime
	}
	return nil
}

type GyCreditControlExpectations struct {
	Expectations              []*GyCreditControlExpectation `protobuf:"bytes,1,rep,name=expectations,proto3" json:"expectations,omitempty"`
	UnexpectedRequestBehavior UnexpectedRequestBehavior     `protobuf:"varint,2,opt,name=unexpected_request_behavior,json=unexpectedRequestBehavior,proto3,enum=magma.feg.UnexpectedRequestBehavior" json:"unexpected_request_behavior,omitempty"`
	GyDefaultCca              *GyCreditControlAnswer        `protobuf:"bytes,3,opt,name=gy_default_cca,json=gyDefaultCca,proto3" json:"gy_default_cca,omitempty"`
	XXX_NoUnkeyedLiteral      struct{}                      `json:"-"`
	XXX_unrecognized          []byte                        `json:"-"`
	XXX_sizecache             int32                         `json:"-"`
}

func (m *GyCreditControlExpectations) Reset()         { *m = GyCreditControlExpectations{} }
func (m *GyCreditControlExpectations) String() string { return proto.CompactTextString(m) }
func (*GyCreditControlExpectations) ProtoMessage()    {}
func (*GyCreditControlExpectations) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{23}
}

func (m *GyCreditControlExpectations) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GyCreditControlExpectations.Unmarshal(m, b)
}
func (m *GyCreditControlExpectations) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GyCreditControlExpectations.Marshal(b, m, deterministic)
}
func (m *GyCreditControlExpectations) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GyCreditControlExpectations.Merge(m, src)
}
func (m *GyCreditControlExpectations) XXX_Size() int {
	return xxx_messageInfo_GyCreditControlExpectations.Size(m)
}
func (m *GyCreditControlExpectations) XXX_DiscardUnknown() {
	xxx_messageInfo_GyCreditControlExpectations.DiscardUnknown(m)
}

var xxx_messageInfo_GyCreditControlExpectations proto.InternalMessageInfo

func (m *GyCreditControlExpectations) GetExpectations() []*GyCreditControlExpectation {
	if m != nil {
		return m.Expectations
	}
	return nil
}

func (m *GyCreditControlExpectations) GetUnexpectedRequestBehavior() UnexpectedRequestBehavior {
	if m != nil {
		return m.UnexpectedRequestBehavior
	}
	return UnexpectedRequestBehavior_CONTINUE_WITH_ERROR
}

func (m *GyCreditControlExpectations) GetGyDefaultCca() *GyCreditControlAnswer {
	if m != nil {
		return m.GyDefaultCca
	}
	return nil
}

type GyCreditControlResult struct {
	Results              []*ExpectationResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
	Errors               []*ErrorByIndex      `protobuf:"bytes,2,rep,name=errors,proto3" json:"errors,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *GyCreditControlResult) Reset()         { *m = GyCreditControlResult{} }
func (m *GyCreditControlResult) String() string { return proto.CompactTextString(m) }
func (*GyCreditControlResult) ProtoMessage()    {}
func (*GyCreditControlResult) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{24}
}

func (m *GyCreditControlResult) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GyCreditControlResult.Unmarshal(m, b)
}
func (m *GyCreditControlResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GyCreditControlResult.Marshal(b, m, deterministic)
}
func (m *GyCreditControlResult) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GyCreditControlResult.Merge(m, src)
}
func (m *GyCreditControlResult) XXX_Size() int {
	return xxx_messageInfo_GyCreditControlResult.Size(m)
}
func (m *GyCreditControlResult) XXX_DiscardUnknown() {
	xxx_messageInfo_GyCreditControlResult.DiscardUnknown(m)
}

var xxx_messageInfo_GyCreditControlResult proto.InternalMessageInfo

func (m *GyCreditControlResult) GetResults() []*ExpectationResult {
	if m != nil {
		return m.Results
	}
	return nil
}

func (m *GyCreditControlResult) GetErrors() []*ErrorByIndex {
	if m != nil {
		return m.Errors
	}
	return nil
}

type GyCreditControlExpectation struct {
	ExpectedRequest      *GyCreditControlRequest `protobuf:"bytes,1,opt,name=expected_request,json=expectedRequest,proto3" json:"expected_request,omitempty"`
	Answer               *GyCreditControlAnswer  `protobuf:"bytes,2,opt,name=answer,proto3" json:"answer,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
	XXX_unrecognized     []byte                  `json:"-"`
	XXX_sizecache        int32                   `json:"-"`
}

func (m *GyCreditControlExpectation) Reset()         { *m = GyCreditControlExpectation{} }
func (m *GyCreditControlExpectation) String() string { return proto.CompactTextString(m) }
func (*GyCreditControlExpectation) ProtoMessage()    {}
func (*GyCreditControlExpectation) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{25}
}

func (m *GyCreditControlExpectation) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GyCreditControlExpectation.Unmarshal(m, b)
}
func (m *GyCreditControlExpectation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GyCreditControlExpectation.Marshal(b, m, deterministic)
}
func (m *GyCreditControlExpectation) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GyCreditControlExpectation.Merge(m, src)
}
func (m *GyCreditControlExpectation) XXX_Size() int {
	return xxx_messageInfo_GyCreditControlExpectation.Size(m)
}
func (m *GyCreditControlExpectation) XXX_DiscardUnknown() {
	xxx_messageInfo_GyCreditControlExpectation.DiscardUnknown(m)
}

var xxx_messageInfo_GyCreditControlExpectation proto.InternalMessageInfo

func (m *GyCreditControlExpectation) GetExpectedRequest() *GyCreditControlRequest {
	if m != nil {
		return m.ExpectedRequest
	}
	return nil
}

func (m *GyCreditControlExpectation) GetAnswer() *GyCreditControlAnswer {
	if m != nil {
		return m.Answer
	}
	return nil
}

type GyCreditControlRequest struct {
	Imsi          string                           `protobuf:"bytes,1,opt,name=imsi,proto3" json:"imsi,omitempty"`
	RequestType   CCRequestType                    `protobuf:"varint,2,opt,name=request_type,json=requestType,proto3,enum=magma.feg.CCRequestType" json:"request_type,omitempty"`
	RequestNumber *wrappers.Int32Value             `protobuf:"bytes,3,opt,name=request_number,json=requestNumber,proto3" json:"request_number,omitempty"`
	QosInfo       *QosInfo                         `protobuf:"bytes,21,opt,name=qos_info,json=qosInfo,proto3" json:"qos_info,omitempty"`
	Mscc          []*MultipleServicesCreditControl `protobuf:"bytes,22,rep,name=mscc,proto3" json:"mscc,omitempty"`
	// As long as we use real traffic for the test, usage reporting will differ
	// each time. So this field will specify the acceptable range for the
	// value. We will accept a request as matching if
	// (expected report - delta) < actual report < (expected report + delta)
	UsageReportDelta     uint64   `protobuf:"varint,12,opt,name=usage_report_delta,json=usageReportDelta,proto3" json:"usage_report_delta,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GyCreditControlRequest) Reset()         { *m = GyCreditControlRequest{} }
func (m *GyCreditControlRequest) String() string { return proto.CompactTextString(m) }
func (*GyCreditControlRequest) ProtoMessage()    {}
func (*GyCreditControlRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{26}
}

func (m *GyCreditControlRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GyCreditControlRequest.Unmarshal(m, b)
}
func (m *GyCreditControlRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GyCreditControlRequest.Marshal(b, m, deterministic)
}
func (m *GyCreditControlRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GyCreditControlRequest.Merge(m, src)
}
func (m *GyCreditControlRequest) XXX_Size() int {
	return xxx_messageInfo_GyCreditControlRequest.Size(m)
}
func (m *GyCreditControlRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_GyCreditControlRequest.DiscardUnknown(m)
}

var xxx_messageInfo_GyCreditControlRequest proto.InternalMessageInfo

func (m *GyCreditControlRequest) GetImsi() string {
	if m != nil {
		return m.Imsi
	}
	return ""
}

func (m *GyCreditControlRequest) GetRequestType() CCRequestType {
	if m != nil {
		return m.RequestType
	}
	return CCRequestType__INVALID
}

func (m *GyCreditControlRequest) GetRequestNumber() *wrappers.Int32Value {
	if m != nil {
		return m.RequestNumber
	}
	return nil
}

func (m *GyCreditControlRequest) GetQosInfo() *QosInfo {
	if m != nil {
		return m.QosInfo
	}
	return nil
}

func (m *GyCreditControlRequest) GetMscc() []*MultipleServicesCreditControl {
	if m != nil {
		return m.Mscc
	}
	return nil
}

func (m *GyCreditControlRequest) GetUsageReportDelta() uint64 {
	if m != nil {
		return m.UsageReportDelta
	}
	return 0
}

type GyCreditControlAnswer struct {
	RequestType          CCRequestType `protobuf:"varint,1,opt,name=request_type,json=requestType,proto3,enum=magma.feg.CCRequestType" json:"request_type,omitempty"`
	RequestNumber        uint32        `protobuf:"varint,2,opt,name=request_number,json=requestNumber,proto3" json:"request_number,omitempty"`
	ResultCode           uint32        `protobuf:"varint,3,opt,name=result_code,json=resultCode,proto3" json:"result_code,omitempty"`
	QuotaGrants          []*QuotaGrant `protobuf:"bytes,4,rep,name=quota_grants,json=quotaGrants,proto3" json:"quota_grants,omitempty"`
	LinkFailure          bool          `protobuf:"varint,5,opt,name=link_failure,json=linkFailure,proto3" json:"link_failure,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *GyCreditControlAnswer) Reset()         { *m = GyCreditControlAnswer{} }
func (m *GyCreditControlAnswer) String() string { return proto.CompactTextString(m) }
func (*GyCreditControlAnswer) ProtoMessage()    {}
func (*GyCreditControlAnswer) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{27}
}

func (m *GyCreditControlAnswer) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GyCreditControlAnswer.Unmarshal(m, b)
}
func (m *GyCreditControlAnswer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GyCreditControlAnswer.Marshal(b, m, deterministic)
}
func (m *GyCreditControlAnswer) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GyCreditControlAnswer.Merge(m, src)
}
func (m *GyCreditControlAnswer) XXX_Size() int {
	return xxx_messageInfo_GyCreditControlAnswer.Size(m)
}
func (m *GyCreditControlAnswer) XXX_DiscardUnknown() {
	xxx_messageInfo_GyCreditControlAnswer.DiscardUnknown(m)
}

var xxx_messageInfo_GyCreditControlAnswer proto.InternalMessageInfo

func (m *GyCreditControlAnswer) GetRequestType() CCRequestType {
	if m != nil {
		return m.RequestType
	}
	return CCRequestType__INVALID
}

func (m *GyCreditControlAnswer) GetRequestNumber() uint32 {
	if m != nil {
		return m.RequestNumber
	}
	return 0
}

func (m *GyCreditControlAnswer) GetResultCode() uint32 {
	if m != nil {
		return m.ResultCode
	}
	return 0
}

func (m *GyCreditControlAnswer) GetQuotaGrants() []*QuotaGrant {
	if m != nil {
		return m.QuotaGrants
	}
	return nil
}

func (m *GyCreditControlAnswer) GetLinkFailure() bool {
	if m != nil {
		return m.LinkFailure
	}
	return false
}

type QuotaGrant struct {
	RatingGroup          uint32               `protobuf:"varint,1,opt,name=rating_group,json=ratingGroup,proto3" json:"rating_group,omitempty"`
	GrantedServiceUnit   *Octets              `protobuf:"bytes,2,opt,name=granted_service_unit,json=grantedServiceUnit,proto3" json:"granted_service_unit,omitempty"`
	ValidityTime         uint32               `protobuf:"varint,3,opt,name=validity_time,json=validityTime,proto3" json:"validity_time,omitempty"`
	ResultCode           uint32               `protobuf:"varint,4,opt,name=result_code,json=resultCode,proto3" json:"result_code,omitempty"`
	IsFinalCredit        bool                 `protobuf:"varint,11,opt,name=is_final_credit,json=isFinalCredit,proto3" json:"is_final_credit,omitempty"`
	FinalUnitIndication  *FinalUnitIndication `protobuf:"bytes,12,opt,name=final_unit_indication,json=finalUnitIndication,proto3" json:"final_unit_indication,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *QuotaGrant) Reset()         { *m = QuotaGrant{} }
func (m *QuotaGrant) String() string { return proto.CompactTextString(m) }
func (*QuotaGrant) ProtoMessage()    {}
func (*QuotaGrant) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{28}
}

func (m *QuotaGrant) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QuotaGrant.Unmarshal(m, b)
}
func (m *QuotaGrant) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QuotaGrant.Marshal(b, m, deterministic)
}
func (m *QuotaGrant) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QuotaGrant.Merge(m, src)
}
func (m *QuotaGrant) XXX_Size() int {
	return xxx_messageInfo_QuotaGrant.Size(m)
}
func (m *QuotaGrant) XXX_DiscardUnknown() {
	xxx_messageInfo_QuotaGrant.DiscardUnknown(m)
}

var xxx_messageInfo_QuotaGrant proto.InternalMessageInfo

func (m *QuotaGrant) GetRatingGroup() uint32 {
	if m != nil {
		return m.RatingGroup
	}
	return 0
}

func (m *QuotaGrant) GetGrantedServiceUnit() *Octets {
	if m != nil {
		return m.GrantedServiceUnit
	}
	return nil
}

func (m *QuotaGrant) GetValidityTime() uint32 {
	if m != nil {
		return m.ValidityTime
	}
	return 0
}

func (m *QuotaGrant) GetResultCode() uint32 {
	if m != nil {
		return m.ResultCode
	}
	return 0
}

func (m *QuotaGrant) GetIsFinalCredit() bool {
	if m != nil {
		return m.IsFinalCredit
	}
	return false
}

func (m *QuotaGrant) GetFinalUnitIndication() *FinalUnitIndication {
	if m != nil {
		return m.FinalUnitIndication
	}
	return nil
}

// AVP: 1067
type UsageMonitoringInformation struct {
	MonitoringKey        []byte          `protobuf:"bytes,1,opt,name=monitoring_key,json=monitoringKey,proto3" json:"monitoring_key,omitempty"`
	MonitoringLevel      MonitoringLevel `protobuf:"varint,2,opt,name=monitoring_level,json=monitoringLevel,proto3,enum=magma.feg.MonitoringLevel" json:"monitoring_level,omitempty"`
	Octets               *Octets         `protobuf:"bytes,3,opt,name=octets,proto3" json:"octets,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *UsageMonitoringInformation) Reset()         { *m = UsageMonitoringInformation{} }
func (m *UsageMonitoringInformation) String() string { return proto.CompactTextString(m) }
func (*UsageMonitoringInformation) ProtoMessage()    {}
func (*UsageMonitoringInformation) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{29}
}

func (m *UsageMonitoringInformation) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UsageMonitoringInformation.Unmarshal(m, b)
}
func (m *UsageMonitoringInformation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UsageMonitoringInformation.Marshal(b, m, deterministic)
}
func (m *UsageMonitoringInformation) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UsageMonitoringInformation.Merge(m, src)
}
func (m *UsageMonitoringInformation) XXX_Size() int {
	return xxx_messageInfo_UsageMonitoringInformation.Size(m)
}
func (m *UsageMonitoringInformation) XXX_DiscardUnknown() {
	xxx_messageInfo_UsageMonitoringInformation.DiscardUnknown(m)
}

var xxx_messageInfo_UsageMonitoringInformation proto.InternalMessageInfo

func (m *UsageMonitoringInformation) GetMonitoringKey() []byte {
	if m != nil {
		return m.MonitoringKey
	}
	return nil
}

func (m *UsageMonitoringInformation) GetMonitoringLevel() MonitoringLevel {
	if m != nil {
		return m.MonitoringLevel
	}
	return MonitoringLevel_SessionLevel
}

func (m *UsageMonitoringInformation) GetOctets() *Octets {
	if m != nil {
		return m.Octets
	}
	return nil
}

type MultipleServicesCreditControl struct {
	RatingGroup          uint32   `protobuf:"varint,1,opt,name=rating_group,json=ratingGroup,proto3" json:"rating_group,omitempty"`
	UsedServiceUnit      *Octets  `protobuf:"bytes,2,opt,name=used_service_unit,json=usedServiceUnit,proto3" json:"used_service_unit,omitempty"`
	UpdateType           int32    `protobuf:"varint,3,opt,name=update_type,json=updateType,proto3" json:"update_type,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *MultipleServicesCreditControl) Reset()         { *m = MultipleServicesCreditControl{} }
func (m *MultipleServicesCreditControl) String() string { return proto.CompactTextString(m) }
func (*MultipleServicesCreditControl) ProtoMessage()    {}
func (*MultipleServicesCreditControl) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{30}
}

func (m *MultipleServicesCreditControl) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MultipleServicesCreditControl.Unmarshal(m, b)
}
func (m *MultipleServicesCreditControl) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MultipleServicesCreditControl.Marshal(b, m, deterministic)
}
func (m *MultipleServicesCreditControl) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MultipleServicesCreditControl.Merge(m, src)
}
func (m *MultipleServicesCreditControl) XXX_Size() int {
	return xxx_messageInfo_MultipleServicesCreditControl.Size(m)
}
func (m *MultipleServicesCreditControl) XXX_DiscardUnknown() {
	xxx_messageInfo_MultipleServicesCreditControl.DiscardUnknown(m)
}

var xxx_messageInfo_MultipleServicesCreditControl proto.InternalMessageInfo

func (m *MultipleServicesCreditControl) GetRatingGroup() uint32 {
	if m != nil {
		return m.RatingGroup
	}
	return 0
}

func (m *MultipleServicesCreditControl) GetUsedServiceUnit() *Octets {
	if m != nil {
		return m.UsedServiceUnit
	}
	return nil
}

func (m *MultipleServicesCreditControl) GetUpdateType() int32 {
	if m != nil {
		return m.UpdateType
	}
	return 0
}

type QosInfo struct {
	// AVP: 1041
	ApnAggMaxBitRateUl uint32 `protobuf:"varint,1,opt,name=apn_agg_max_bit_rate_ul,json=apnAggMaxBitRateUl,proto3" json:"apn_agg_max_bit_rate_ul,omitempty"`
	// AVP: 1040
	ApnAggMaxBitRateDl   uint32   `protobuf:"varint,2,opt,name=apn_agg_max_bit_rate_dl,json=apnAggMaxBitRateDl,proto3" json:"apn_agg_max_bit_rate_dl,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *QosInfo) Reset()         { *m = QosInfo{} }
func (m *QosInfo) String() string { return proto.CompactTextString(m) }
func (*QosInfo) ProtoMessage()    {}
func (*QosInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{31}
}

func (m *QosInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QosInfo.Unmarshal(m, b)
}
func (m *QosInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QosInfo.Marshal(b, m, deterministic)
}
func (m *QosInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QosInfo.Merge(m, src)
}
func (m *QosInfo) XXX_Size() int {
	return xxx_messageInfo_QosInfo.Size(m)
}
func (m *QosInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_QosInfo.DiscardUnknown(m)
}

var xxx_messageInfo_QosInfo proto.InternalMessageInfo

func (m *QosInfo) GetApnAggMaxBitRateUl() uint32 {
	if m != nil {
		return m.ApnAggMaxBitRateUl
	}
	return 0
}

func (m *QosInfo) GetApnAggMaxBitRateDl() uint32 {
	if m != nil {
		return m.ApnAggMaxBitRateDl
	}
	return 0
}

type RuleInstalls struct {
	RuleNames            []string             `protobuf:"bytes,1,rep,name=rule_names,json=ruleNames,proto3" json:"rule_names,omitempty"`
	RuleBaseNames        []string             `protobuf:"bytes,2,rep,name=rule_base_names,json=ruleBaseNames,proto3" json:"rule_base_names,omitempty"`
	RuleDefinitions      []*RuleDefinition    `protobuf:"bytes,3,rep,name=rule_definitions,json=ruleDefinitions,proto3" json:"rule_definitions,omitempty"`
	ActivationTime       *timestamp.Timestamp `protobuf:"bytes,4,opt,name=activation_time,json=activationTime,proto3" json:"activation_time,omitempty"`
	DeactivationTime     *timestamp.Timestamp `protobuf:"bytes,5,opt,name=deactivation_time,json=deactivationTime,proto3" json:"deactivation_time,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *RuleInstalls) Reset()         { *m = RuleInstalls{} }
func (m *RuleInstalls) String() string { return proto.CompactTextString(m) }
func (*RuleInstalls) ProtoMessage()    {}
func (*RuleInstalls) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{32}
}

func (m *RuleInstalls) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RuleInstalls.Unmarshal(m, b)
}
func (m *RuleInstalls) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RuleInstalls.Marshal(b, m, deterministic)
}
func (m *RuleInstalls) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RuleInstalls.Merge(m, src)
}
func (m *RuleInstalls) XXX_Size() int {
	return xxx_messageInfo_RuleInstalls.Size(m)
}
func (m *RuleInstalls) XXX_DiscardUnknown() {
	xxx_messageInfo_RuleInstalls.DiscardUnknown(m)
}

var xxx_messageInfo_RuleInstalls proto.InternalMessageInfo

func (m *RuleInstalls) GetRuleNames() []string {
	if m != nil {
		return m.RuleNames
	}
	return nil
}

func (m *RuleInstalls) GetRuleBaseNames() []string {
	if m != nil {
		return m.RuleBaseNames
	}
	return nil
}

func (m *RuleInstalls) GetRuleDefinitions() []*RuleDefinition {
	if m != nil {
		return m.RuleDefinitions
	}
	return nil
}

func (m *RuleInstalls) GetActivationTime() *timestamp.Timestamp {
	if m != nil {
		return m.ActivationTime
	}
	return nil
}

func (m *RuleInstalls) GetDeactivationTime() *timestamp.Timestamp {
	if m != nil {
		return m.DeactivationTime
	}
	return nil
}

type RuleRemovals struct {
	RuleNames            []string `protobuf:"bytes,1,rep,name=rule_names,json=ruleNames,proto3" json:"rule_names,omitempty"`
	RuleBaseNames        []string `protobuf:"bytes,2,rep,name=rule_base_names,json=ruleBaseNames,proto3" json:"rule_base_names,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *RuleRemovals) Reset()         { *m = RuleRemovals{} }
func (m *RuleRemovals) String() string { return proto.CompactTextString(m) }
func (*RuleRemovals) ProtoMessage()    {}
func (*RuleRemovals) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{33}
}

func (m *RuleRemovals) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RuleRemovals.Unmarshal(m, b)
}
func (m *RuleRemovals) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RuleRemovals.Marshal(b, m, deterministic)
}
func (m *RuleRemovals) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RuleRemovals.Merge(m, src)
}
func (m *RuleRemovals) XXX_Size() int {
	return xxx_messageInfo_RuleRemovals.Size(m)
}
func (m *RuleRemovals) XXX_DiscardUnknown() {
	xxx_messageInfo_RuleRemovals.DiscardUnknown(m)
}

var xxx_messageInfo_RuleRemovals proto.InternalMessageInfo

func (m *RuleRemovals) GetRuleNames() []string {
	if m != nil {
		return m.RuleNames
	}
	return nil
}

func (m *RuleRemovals) GetRuleBaseNames() []string {
	if m != nil {
		return m.RuleBaseNames
	}
	return nil
}

type Octets struct {
	TotalOctets          uint64   `protobuf:"varint,1,opt,name=total_octets,json=totalOctets,proto3" json:"total_octets,omitempty"`
	InputOctets          uint64   `protobuf:"varint,2,opt,name=input_octets,json=inputOctets,proto3" json:"input_octets,omitempty"`
	OutputOctets         uint64   `protobuf:"varint,3,opt,name=output_octets,json=outputOctets,proto3" json:"output_octets,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Octets) Reset()         { *m = Octets{} }
func (m *Octets) String() string { return proto.CompactTextString(m) }
func (*Octets) ProtoMessage()    {}
func (*Octets) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{34}
}

func (m *Octets) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Octets.Unmarshal(m, b)
}
func (m *Octets) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Octets.Marshal(b, m, deterministic)
}
func (m *Octets) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Octets.Merge(m, src)
}
func (m *Octets) XXX_Size() int {
	return xxx_messageInfo_Octets.Size(m)
}
func (m *Octets) XXX_DiscardUnknown() {
	xxx_messageInfo_Octets.DiscardUnknown(m)
}

var xxx_messageInfo_Octets proto.InternalMessageInfo

func (m *Octets) GetTotalOctets() uint64 {
	if m != nil {
		return m.TotalOctets
	}
	return 0
}

func (m *Octets) GetInputOctets() uint64 {
	if m != nil {
		return m.InputOctets
	}
	return 0
}

func (m *Octets) GetOutputOctets() uint64 {
	if m != nil {
		return m.OutputOctets
	}
	return 0
}

type PolicyReAuthTarget struct {
	Imsi                 string                        `protobuf:"bytes,1,opt,name=imsi,proto3" json:"imsi,omitempty"`
	RulesToRemove        *RuleRemovals                 `protobuf:"bytes,2,opt,name=rules_to_remove,json=rulesToRemove,proto3" json:"rules_to_remove,omitempty"`
	RulesToInstall       *RuleInstalls                 `protobuf:"bytes,3,opt,name=rules_to_install,json=rulesToInstall,proto3" json:"rules_to_install,omitempty"`
	UsageMonitoringInfos []*UsageMonitoringInformation `protobuf:"bytes,4,rep,name=usage_monitoring_infos,json=usageMonitoringInfos,proto3" json:"usage_monitoring_infos,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
	XXX_unrecognized     []byte                        `json:"-"`
	XXX_sizecache        int32                         `json:"-"`
}

func (m *PolicyReAuthTarget) Reset()         { *m = PolicyReAuthTarget{} }
func (m *PolicyReAuthTarget) String() string { return proto.CompactTextString(m) }
func (*PolicyReAuthTarget) ProtoMessage()    {}
func (*PolicyReAuthTarget) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{35}
}

func (m *PolicyReAuthTarget) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PolicyReAuthTarget.Unmarshal(m, b)
}
func (m *PolicyReAuthTarget) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PolicyReAuthTarget.Marshal(b, m, deterministic)
}
func (m *PolicyReAuthTarget) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PolicyReAuthTarget.Merge(m, src)
}
func (m *PolicyReAuthTarget) XXX_Size() int {
	return xxx_messageInfo_PolicyReAuthTarget.Size(m)
}
func (m *PolicyReAuthTarget) XXX_DiscardUnknown() {
	xxx_messageInfo_PolicyReAuthTarget.DiscardUnknown(m)
}

var xxx_messageInfo_PolicyReAuthTarget proto.InternalMessageInfo

func (m *PolicyReAuthTarget) GetImsi() string {
	if m != nil {
		return m.Imsi
	}
	return ""
}

func (m *PolicyReAuthTarget) GetRulesToRemove() *RuleRemovals {
	if m != nil {
		return m.RulesToRemove
	}
	return nil
}

func (m *PolicyReAuthTarget) GetRulesToInstall() *RuleInstalls {
	if m != nil {
		return m.RulesToInstall
	}
	return nil
}

func (m *PolicyReAuthTarget) GetUsageMonitoringInfos() []*UsageMonitoringInformation {
	if m != nil {
		return m.UsageMonitoringInfos
	}
	return nil
}

type PolicyReAuthAnswer struct {
	SessionId            string            `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	ResultCode           uint32            `protobuf:"varint,2,opt,name=result_code,json=resultCode,proto3" json:"result_code,omitempty"`
	FailedRules          map[string]uint32 `protobuf:"bytes,3,rep,name=failed_rules,json=failedRules,proto3" json:"failed_rules,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *PolicyReAuthAnswer) Reset()         { *m = PolicyReAuthAnswer{} }
func (m *PolicyReAuthAnswer) String() string { return proto.CompactTextString(m) }
func (*PolicyReAuthAnswer) ProtoMessage()    {}
func (*PolicyReAuthAnswer) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{36}
}

func (m *PolicyReAuthAnswer) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PolicyReAuthAnswer.Unmarshal(m, b)
}
func (m *PolicyReAuthAnswer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PolicyReAuthAnswer.Marshal(b, m, deterministic)
}
func (m *PolicyReAuthAnswer) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PolicyReAuthAnswer.Merge(m, src)
}
func (m *PolicyReAuthAnswer) XXX_Size() int {
	return xxx_messageInfo_PolicyReAuthAnswer.Size(m)
}
func (m *PolicyReAuthAnswer) XXX_DiscardUnknown() {
	xxx_messageInfo_PolicyReAuthAnswer.DiscardUnknown(m)
}

var xxx_messageInfo_PolicyReAuthAnswer proto.InternalMessageInfo

func (m *PolicyReAuthAnswer) GetSessionId() string {
	if m != nil {
		return m.SessionId
	}
	return ""
}

func (m *PolicyReAuthAnswer) GetResultCode() uint32 {
	if m != nil {
		return m.ResultCode
	}
	return 0
}

func (m *PolicyReAuthAnswer) GetFailedRules() map[string]uint32 {
	if m != nil {
		return m.FailedRules
	}
	return nil
}

type AbortSessionRequest struct {
	Imsi                 string   `protobuf:"bytes,1,opt,name=imsi,proto3" json:"imsi,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *AbortSessionRequest) Reset()         { *m = AbortSessionRequest{} }
func (m *AbortSessionRequest) String() string { return proto.CompactTextString(m) }
func (*AbortSessionRequest) ProtoMessage()    {}
func (*AbortSessionRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{37}
}

func (m *AbortSessionRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AbortSessionRequest.Unmarshal(m, b)
}
func (m *AbortSessionRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AbortSessionRequest.Marshal(b, m, deterministic)
}
func (m *AbortSessionRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AbortSessionRequest.Merge(m, src)
}
func (m *AbortSessionRequest) XXX_Size() int {
	return xxx_messageInfo_AbortSessionRequest.Size(m)
}
func (m *AbortSessionRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_AbortSessionRequest.DiscardUnknown(m)
}

var xxx_messageInfo_AbortSessionRequest proto.InternalMessageInfo

func (m *AbortSessionRequest) GetImsi() string {
	if m != nil {
		return m.Imsi
	}
	return ""
}

type AbortSessionAnswer struct {
	SessionId            string   `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	ResultCode           uint32   `protobuf:"varint,2,opt,name=result_code,json=resultCode,proto3" json:"result_code,omitempty"`
	ErrorMessage         string   `protobuf:"bytes,3,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *AbortSessionAnswer) Reset()         { *m = AbortSessionAnswer{} }
func (m *AbortSessionAnswer) String() string { return proto.CompactTextString(m) }
func (*AbortSessionAnswer) ProtoMessage()    {}
func (*AbortSessionAnswer) Descriptor() ([]byte, []int) {
	return fileDescriptor_ef3afe2df05d1dc6, []int{38}
}

func (m *AbortSessionAnswer) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AbortSessionAnswer.Unmarshal(m, b)
}
func (m *AbortSessionAnswer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AbortSessionAnswer.Marshal(b, m, deterministic)
}
func (m *AbortSessionAnswer) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AbortSessionAnswer.Merge(m, src)
}
func (m *AbortSessionAnswer) XXX_Size() int {
	return xxx_messageInfo_AbortSessionAnswer.Size(m)
}
func (m *AbortSessionAnswer) XXX_DiscardUnknown() {
	xxx_messageInfo_AbortSessionAnswer.DiscardUnknown(m)
}

var xxx_messageInfo_AbortSessionAnswer proto.InternalMessageInfo

func (m *AbortSessionAnswer) GetSessionId() string {
	if m != nil {
		return m.SessionId
	}
	return ""
}

func (m *AbortSessionAnswer) GetResultCode() uint32 {
	if m != nil {
		return m.ResultCode
	}
	return 0
}

func (m *AbortSessionAnswer) GetErrorMessage() string {
	if m != nil {
		return m.ErrorMessage
	}
	return ""
}

func init() {
	proto.RegisterEnum("magma.feg.FinalUnitAction", FinalUnitAction_name, FinalUnitAction_value)
	proto.RegisterEnum("magma.feg.MonitoringLevel", MonitoringLevel_name, MonitoringLevel_value)
	proto.RegisterEnum("magma.feg.CCRequestType", CCRequestType_name, CCRequestType_value)
	proto.RegisterEnum("magma.feg.UnexpectedRequestBehavior", UnexpectedRequestBehavior_name, UnexpectedRequestBehavior_value)
	proto.RegisterEnum("magma.feg.AbortCauseType", AbortCauseType_name, AbortCauseType_value)
	proto.RegisterEnum("magma.feg.Reply_ServerBehavior", Reply_ServerBehavior_name, Reply_ServerBehavior_value)
	proto.RegisterEnum("magma.feg.CreditInfo_UnitType", CreditInfo_UnitType_name, CreditInfo_UnitType_value)
	proto.RegisterType((*Reply)(nil), "magma.feg.Reply")
	proto.RegisterType((*ExpectedRequest)(nil), "magma.feg.ExpectedRequest")
	proto.RegisterType((*RequestReply)(nil), "magma.feg.RequestReply")
	proto.RegisterType((*ServerConfiguration)(nil), "magma.feg.ServerConfiguration")
	proto.RegisterType((*RedirectServer)(nil), "magma.feg.RedirectServer")
	proto.RegisterType((*FinalUnitIndication)(nil), "magma.feg.FinalUnitIndication")
	proto.RegisterType((*OCSConfig)(nil), "magma.feg.OCSConfig")
	proto.RegisterType((*CreditInfo)(nil), "magma.feg.CreditInfo")
	proto.RegisterType((*CreditInfos)(nil), "magma.feg.CreditInfos")
	proto.RegisterMapType((map[uint32]*CreditInfo)(nil), "magma.feg.CreditInfos.CreditInformationEntry")
	proto.RegisterType((*ChargingReAuthTarget)(nil), "magma.feg.ChargingReAuthTarget")
	proto.RegisterType((*ChargingReAuthAnswer)(nil), "magma.feg.ChargingReAuthAnswer")
	proto.RegisterType((*PCRFConfigs)(nil), "magma.feg.PCRFConfigs")
	proto.RegisterType((*AccountRules)(nil), "magma.feg.AccountRules")
	proto.RegisterType((*RuleDefinition)(nil), "magma.feg.RuleDefinition")
	proto.RegisterType((*UsageMonitorConfiguration)(nil), "magma.feg.UsageMonitorConfiguration")
	proto.RegisterType((*UsageMonitor)(nil), "magma.feg.UsageMonitor")
	proto.RegisterType((*GxCreditControlExpectations)(nil), "magma.feg.GxCreditControlExpectations")
	proto.RegisterType((*GxCreditControlResult)(nil), "magma.feg.GxCreditControlResult")
	proto.RegisterType((*ErrorByIndex)(nil), "magma.feg.ErrorByIndex")
	proto.RegisterType((*ExpectationResult)(nil), "magma.feg.ExpectationResult")
	proto.RegisterType((*GxCreditControlExpectation)(nil), "magma.feg.GxCreditControlExpectation")
	proto.RegisterType((*GxCreditControlRequest)(nil), "magma.feg.GxCreditControlRequest")
	proto.RegisterType((*GxCreditControlAnswer)(nil), "magma.feg.GxCreditControlAnswer")
	proto.RegisterType((*GyCreditControlExpectations)(nil), "magma.feg.GyCreditControlExpectations")
	proto.RegisterType((*GyCreditControlResult)(nil), "magma.feg.GyCreditControlResult")
	proto.RegisterType((*GyCreditControlExpectation)(nil), "magma.feg.GyCreditControlExpectation")
	proto.RegisterType((*GyCreditControlRequest)(nil), "magma.feg.GyCreditControlRequest")
	proto.RegisterType((*GyCreditControlAnswer)(nil), "magma.feg.GyCreditControlAnswer")
	proto.RegisterType((*QuotaGrant)(nil), "magma.feg.QuotaGrant")
	proto.RegisterType((*UsageMonitoringInformation)(nil), "magma.feg.UsageMonitoringInformation")
	proto.RegisterType((*MultipleServicesCreditControl)(nil), "magma.feg.MultipleServicesCreditControl")
	proto.RegisterType((*QosInfo)(nil), "magma.feg.QosInfo")
	proto.RegisterType((*RuleInstalls)(nil), "magma.feg.RuleInstalls")
	proto.RegisterType((*RuleRemovals)(nil), "magma.feg.RuleRemovals")
	proto.RegisterType((*Octets)(nil), "magma.feg.Octets")
	proto.RegisterType((*PolicyReAuthTarget)(nil), "magma.feg.PolicyReAuthTarget")
	proto.RegisterType((*PolicyReAuthAnswer)(nil), "magma.feg.PolicyReAuthAnswer")
	proto.RegisterMapType((map[string]uint32)(nil), "magma.feg.PolicyReAuthAnswer.FailedRulesEntry")
	proto.RegisterType((*AbortSessionRequest)(nil), "magma.feg.AbortSessionRequest")
	proto.RegisterType((*AbortSessionAnswer)(nil), "magma.feg.AbortSessionAnswer")
}

func init() { proto.RegisterFile("feg/protos/mock_core.proto", fileDescriptor_ef3afe2df05d1dc6) }

var fileDescriptor_ef3afe2df05d1dc6 = []byte{
	// 3632 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x5a, 0x4b, 0x93, 0x1b, 0xc9,
	0x56, 0x96, 0xd4, 0x0f, 0xb7, 0x8e, 0x5e, 0xd5, 0xd9, 0x0f, 0xcb, 0xed, 0xeb, 0x71, 0x4f, 0x79,
	0xc6, 0x78, 0x7c, 0xb9, 0xed, 0x88, 0x9e, 0x0b, 0x38, 0xc6, 0x33, 0x77, 0x50, 0xab, 0xbb, 0xdd,
	0x62, 0xfa, 0x61, 0xa7, 0xd4, 0x76, 0xdc, 0x99, 0x08, 0x8a, 0xea, 0x52, 0x4a, 0x2e, 0x5c, 0xaa,
	0x92, 0x33, 0xab, 0xda, 0xad, 0x08, 0x16, 0xb0, 0x60, 0x41, 0x04, 0x11, 0xec, 0x08, 0xd6, 0x04,
	0x1b, 0x7e, 0x00, 0xf0, 0x13, 0xb8, 0x0b, 0x96, 0x2c, 0x88, 0xe0, 0x07, 0xf0, 0x13, 0x08, 0x36,
	0x04, 0x91, 0x8f, 0x92, 0xb2, 0x1e, 0x72, 0x7b, 0xae, 0x07, 0x86, 0xbb, 0x92, 0xea, 0xe4, 0x77,
	0x4e, 0x65, 0x9e, 0x3c, 0xf9, 0xe5, 0xc9, 0x93, 0x05, 0x5b, 0x03, 0x32, 0x7c, 0x34, 0xa6, 0x41,
	0x18, 0xb0, 0x47, 0xa3, 0xc0, 0x79, 0x6d, 0x39, 0x01, 0x25, 0x3b, 0x42, 0x80, 0xca, 0x23, 0x7b,
	0x38, 0xb2, 0x77, 0x06, 0x64, 0xb8, 0x75, 0x2b, 0xa0, 0xce, 0x63, 0x1a, 0x03, 0x9d, 0x60, 0x34,
	0x0a, 0x7c, 0x89, 0xda, 0xda, 0xd0, 0x2c, 0x38, 0x6c, 0x70, 0xa1, 0xc4, 0xb7, 0xbc, 0x90, 0xc4,
	0xe2, 0x71, 0xe0, 0xb9, 0xce, 0xa4, 0x1f, 0x37, 0x6d, 0x6b, 0x4d, 0x8c, 0x30, 0xe6, 0x06, 0xbe,
	0x35, 0xb2, 0x7d, 0x7b, 0x48, 0xa8, 0x42, 0xdc, 0xd1, 0x11, 0xd1, 0x05, 0x73, 0xa8, 0x7b, 0x41,
	0xe8, 0xd4, 0xc0, 0xdd, 0x61, 0x10, 0x0c, 0x3d, 0x85, 0xb8, 0x88, 0x06, 0x8f, 0x42, 0x77, 0x44,
	0x58, 0x68, 0x8f, 0xc6, 0x0a, 0xf0, 0x51, 0x1a, 0xf0, 0x96, 0xda, 0xe3, 0x31, 0xa1, 0x4c, 0xb6,
	0x9b, 0x7f, 0x53, 0x81, 0x25, 0x4c, 0xc6, 0xde, 0x04, 0x1d, 0x41, 0x83, 0x11, 0x7a, 0x49, 0xa8,
	0x75, 0x41, 0x5e, 0xd9, 0x97, 0x6e, 0x40, 0x9b, 0xc5, 0xed, 0xe2, 0x83, 0xfa, 0xee, 0xdd, 0x9d,
	0xe9, 0xe8, 0x77, 0x04, 0x74, 0xa7, 0x2b, 0x70, 0x7b, 0x0a, 0x86, 0xeb, 0x2c, 0xf1, 0x8c, 0xee,
	0x42, 0x85, 0x72, 0x9c, 0xd5, 0x27, 0x9e, 0x3d, 0x69, 0x96, 0xb6, 0x8b, 0x0f, 0x96, 0x30, 0x08,
	0xd1, 0x3e, 0x97, 0xa0, 0x5f, 0x40, 0xcd, 0xf6, 0x08, 0x0d, 0x2d, 0x4a, 0xde, 0x44, 0x84, 0x85,
	0xcd, 0x85, 0xed, 0xe2, 0x83, 0xca, 0xee, 0x4d, 0xed, 0x45, 0x2d, 0xde, 0x8e, 0x65, 0xf3, 0x51,
	0x01, 0x57, 0x6d, 0xed, 0x19, 0xfd, 0x01, 0xac, 0xf6, 0x83, 0xb7, 0xbe, 0xe7, 0xfa, 0xaf, 0xad,
	0xc8, 0x77, 0xc3, 0xbe, 0x1d, 0xda, 0xcd, 0x45, 0x61, 0xe3, 0xb6, 0x66, 0x63, 0x5f, 0x61, 0xce,
	0x15, 0xe4, 0xa8, 0x80, 0x8d, 0x7e, 0x4a, 0x86, 0xbe, 0x86, 0x3a, 0x19, 0x33, 0xab, 0x4f, 0x42,
	0xdb, 0x79, 0x65, 0xd9, 0xce, 0xeb, 0xe6, 0x52, 0xa6, 0x33, 0x07, 0xcf, 0xba, 0xfb, 0xa2, 0xbd,
	0xe5, 0xbc, 0xe6, 0x9d, 0x21, 0x63, 0x36, 0x7d, 0x46, 0x7b, 0xd0, 0x70, 0x47, 0xcc, 0xd5, 0x2d,
	0x2c, 0x0b, 0x0b, 0x4d, 0xcd, 0x42, 0xe7, 0xa4, 0xdb, 0xd1, 0x4d, 0xd4, 0xb8, 0xca, 0xcc, 0xc6,
	0x4b, 0xd8, 0xf4, 0x02, 0xc7, 0x0e, 0xf9, 0xfc, 0x47, 0xe3, 0xbe, 0x1d, 0x12, 0xcb, 0x76, 0x1c,
	0x32, 0x0e, 0x9b, 0x37, 0x84, 0x29, 0x7d, 0x0a, 0x8e, 0x15, 0xf0, 0x5c, 0xe0, 0x5a, 0x02, 0x76,
	0x54, 0xc0, 0xeb, 0x5e, 0x8e, 0x3c, 0xcf, 0x30, 0x25, 0x7f, 0x4c, 0x9c, 0xb0, 0xb9, 0x72, 0x8d,
	0x61, 0x2c, 0x60, 0x59, 0xc3, 0x52, 0xce, 0x0d, 0x8f, 0x46, 0x96, 0xeb, 0x0f, 0x02, 0x3a, 0x92,
	0xe6, 0xe3, 0xb9, 0x2c, 0x67, 0x0c, 0x9f, 0x9c, 0x74, 0x66, 0xb8, 0xd9, 0x9c, 0xae, 0x8f, 0x46,
	0x59, 0x39, 0x6a, 0x41, 0x7d, 0x6c, 0x0f, 0x5d, 0x7f, 0x38, 0x35, 0x08, 0x19, 0x6f, 0x3e, 0x13,
	0x80, 0x99, 0xa5, 0xda, 0x58, 0x17, 0xa0, 0x7d, 0x68, 0x50, 0xe2, 0x11, 0x9b, 0x91, 0xa9, 0x8d,
	0x8a, 0xb0, 0x71, 0x2b, 0x11, 0xc9, 0x02, 0x31, 0x33, 0x52, 0xa7, 0x09, 0x09, 0xea, 0xc1, 0x06,
	0x8f, 0x6b, 0xd7, 0x21, 0x96, 0x7d, 0x11, 0x68, 0xc1, 0x5a, 0x15, 0xb6, 0x3e, 0xd2, 0x6c, 0x75,
	0x25, 0xae, 0xc5, 0x61, 0x33, 0x83, 0x6b, 0x2c, 0x2b, 0x46, 0xbb, 0x50, 0xa6, 0x84, 0x91, 0x50,
	0xc4, 0x49, 0x4d, 0x58, 0x5a, 0x4b, 0xf4, 0x8a, 0x91, 0x50, 0x86, 0xc8, 0x0a, 0x55, 0xff, 0xd1,
	0x53, 0x30, 0xa4, 0x8e, 0xeb, 0xf7, 0x5d, 0x39, 0x17, 0xcd, 0xba, 0x50, 0xdd, 0x4a, 0xab, 0x76,
	0xa6, 0x88, 0xa3, 0x02, 0x6e, 0xd0, 0xa4, 0x08, 0xfd, 0x14, 0x96, 0x59, 0x68, 0x87, 0x11, 0x6b,
	0x36, 0x84, 0xfa, 0xaa, 0x3e, 0x06, 0xd1, 0x70, 0x54, 0xc0, 0x0a, 0x82, 0xbe, 0x85, 0x9b, 0x0e,
	0x25, 0x3c, 0x62, 0x62, 0x66, 0xa2, 0x84, 0x8d, 0x03, 0x9f, 0x91, 0xa6, 0x21, 0xb4, 0xb7, 0x95,
	0xb6, 0x17, 0x92, 0x9d, 0xb6, 0x40, 0x76, 0x25, 0x10, 0x2b, 0xdc, 0x51, 0x11, 0x6f, 0x38, 0x79,
	0x0d, 0xdc, 0xb6, 0x8a, 0xc6, 0x8c, 0xed, 0xd5, 0x8c, 0x6d, 0x19, 0x77, 0x39, 0xb6, 0xa3, 0xbc,
	0x06, 0xe4, 0xc0, 0x56, 0x6c, 0x34, 0x24, 0x74, 0xe4, 0xfa, 0x32, 0xe8, 0x95, 0x79, 0x24, 0xcc,
	0xdf, 0xd3, 0xcc, 0x2b, 0xfd, 0x5e, 0x8c, 0xd5, 0xde, 0xd0, 0x64, 0x73, 0xda, 0xcc, 0x36, 0xd4,
	0x93, 0x24, 0x88, 0xd6, 0xa0, 0x81, 0x0f, 0x9e, 0x1d, 0xff, 0xd2, 0xea, 0x9c, 0x76, 0x7b, 0xad,
	0xd3, 0xde, 0xf1, 0x2f, 0x8d, 0x02, 0xaa, 0x03, 0x48, 0xe1, 0x71, 0xab, 0x77, 0x60, 0x14, 0x51,
	0x15, 0x56, 0x4e, 0xcf, 0x2c, 0x21, 0x32, 0x4a, 0x7b, 0x35, 0xa8, 0xb0, 0x21, 0xb3, 0x46, 0x84,
	0x31, 0x7b, 0x48, 0xf6, 0xea, 0x50, 0x1d, 0x5e, 0x0d, 0x27, 0xf1, 0xb3, 0xf9, 0x4f, 0x00, 0x8d,
	0x83, 0xab, 0x31, 0x71, 0x42, 0xd2, 0xd7, 0xc2, 0x47, 0x32, 0x27, 0x0f, 0x9f, 0x62, 0x26, 0x7c,
	0x04, 0x6b, 0xaa, 0xf0, 0xb1, 0xd5, 0x7f, 0xf4, 0x04, 0xaa, 0x31, 0xdb, 0x8a, 0x95, 0x5f, 0x12,
	0x6a, 0x9b, 0x59, 0xb2, 0x55, 0x0b, 0xbe, 0x62, 0xcf, 0x1e, 0xf9, 0x2a, 0xd0, 0xe8, 0x51, 0x0b,
	0xc0, 0x85, 0xcc, 0x2a, 0x98, 0xb2, 0x64, 0x22, 0x08, 0xd7, 0xa6, 0x64, 0xa9, 0x05, 0xe2, 0x4b,
	0xd8, 0xd4, 0x39, 0x53, 0x33, 0xbb, 0x98, 0x61, 0x8f, 0x19, 0x75, 0x26, 0xec, 0xae, 0xcf, 0x18,
	0x54, 0x33, 0xfc, 0x2d, 0xdc, 0xcc, 0xf2, 0x9d, 0x5c, 0xb6, 0x4b, 0x89, 0xc0, 0xca, 0x23, 0xbc,
	0x78, 0xe1, 0x6e, 0x78, 0x79, 0x0d, 0x7c, 0xd7, 0x9a, 0x32, 0x93, 0x70, 0xe4, 0x72, 0x66, 0xa3,
	0x88, 0x89, 0x49, 0x79, 0xb2, 0x3a, 0xd6, 0x9e, 0x39, 0x2d, 0xc5, 0x84, 0x12, 0xf7, 0xe9, 0x46,
	0x86, 0x96, 0x14, 0x95, 0x68, 0xb4, 0xc4, 0x12, 0x12, 0x1e, 0xde, 0x21, 0x77, 0x1d, 0x25, 0xb6,
	0x37, 0x1d, 0xaa, 0x13, 0x8c, 0xc6, 0x1e, 0x09, 0x89, 0x62, 0xf5, 0x7b, 0x9a, 0xc1, 0xde, 0x49,
	0xb7, 0x83, 0x35, 0x6c, 0x5b, 0x41, 0x8f, 0x0a, 0xb8, 0xc9, 0x0d, 0xe5, 0xb5, 0xf1, 0xf9, 0x89,
	0xf8, 0x16, 0x14, 0xba, 0x97, 0x6e, 0x38, 0xd1, 0xe7, 0x27, 0xcb, 0xee, 0xe7, 0x07, 0x2d, 0x85,
	0x4b, 0xce, 0x4f, 0x44, 0xb2, 0x72, 0xce, 0xee, 0x11, 0xb1, 0x22, 0x9f, 0x12, 0xdb, 0x79, 0x65,
	0x5f, 0x78, 0x24, 0x87, 0xdd, 0xcf, 0x0f, 0xce, 0x67, 0xed, 0x9c, 0xdd, 0x23, 0xa2, 0x09, 0xb8,
	0x1b, 0xa3, 0x71, 0x72, 0xeb, 0xcf, 0xb2, 0xfb, 0xf9, 0x38, 0xb5, 0xf1, 0xd7, 0xa3, 0x84, 0x24,
	0xc9, 0xc3, 0xd5, 0x5f, 0x9f, 0x87, 0x6b, 0x1f, 0xc6, 0xc3, 0xf5, 0xeb, 0x79, 0xf8, 0x25, 0x6c,
	0x66, 0x78, 0x58, 0x46, 0x4f, 0x23, 0x31, 0x17, 0x39, 0x34, 0x2c, 0x63, 0xa8, 0x88, 0xd7, 0x9d,
	0x1c, 0xb9, 0x98, 0xe4, 0x34, 0x09, 0x4b, 0xc3, 0x46, 0xc6, 0x70, 0x8a, 0x83, 0xa7, 0x86, 0xa3,
	0x1c, 0x39, 0xfa, 0x23, 0xb8, 0x95, 0xc7, 0xc0, 0xd2, 0xb6, 0xe4, 0x77, 0xf3, 0x9d, 0x04, 0x1c,
	0x9b, 0xbf, 0xc9, 0xf2, 0x9b, 0xae, 0x63, 0x4e, 0x0f, 0xaa, 0x0a, 0x29, 0x53, 0xdb, 0x9f, 0xc3,
	0x8d, 0xf8, 0xf5, 0xc5, 0xcc, 0x7c, 0xa5, 0x28, 0x16, 0xc7, 0x50, 0x74, 0x1f, 0x96, 0x44, 0xce,
	0xaa, 0x08, 0xd3, 0x48, 0xa7, 0xc1, 0x58, 0x36, 0x9b, 0x5d, 0x58, 0x93, 0x7b, 0x41, 0x3b, 0xf0,
	0x07, 0xee, 0x30, 0xa2, 0x72, 0x92, 0xbf, 0x84, 0x9a, 0xb2, 0x64, 0x49, 0x33, 0xc5, 0xed, 0x85,
	0x14, 0x5d, 0xe8, 0x9d, 0xc4, 0x55, 0xaa, 0x3d, 0x99, 0x87, 0x50, 0xc7, 0xa4, 0xef, 0x52, 0xe2,
	0x84, 0xd2, 0x38, 0xfa, 0x39, 0x6c, 0x24, 0x25, 0xad, 0x7e, 0x9f, 0x12, 0xc6, 0xc4, 0x90, 0xca,
	0x38, 0xbf, 0xd1, 0xfc, 0x55, 0x11, 0xd6, 0x0e, 0x5d, 0xdf, 0xf6, 0x78, 0xe4, 0x6b, 0x21, 0xb8,
	0xc7, 0x73, 0x24, 0xa9, 0x60, 0xc9, 0xf4, 0x5d, 0xb9, 0x26, 0x99, 0x23, 0xe9, 0x26, 0x79, 0x86,
	0x94, 0xe8, 0xd1, 0x21, 0xac, 0x0e, 0xb8, 0x69, 0xb1, 0x10, 0x05, 0x5b, 0x04, 0xbe, 0x70, 0x56,
	0x3d, 0xe1, 0xe0, 0xe9, 0xeb, 0x5b, 0x02, 0x81, 0x1b, 0x83, 0xa4, 0x00, 0x7d, 0x0a, 0x75, 0x4a,
	0x58, 0x48, 0x5d, 0x27, 0xb4, 0x68, 0xe4, 0x11, 0xd6, 0x5c, 0xd8, 0x5e, 0x78, 0x50, 0xc6, 0xb5,
	0x58, 0x8a, 0xb9, 0xd0, 0xfc, 0xab, 0x12, 0x94, 0xcf, 0xda, 0x5d, 0xe9, 0x65, 0xf4, 0x04, 0x8c,
	0x91, 0x7d, 0x65, 0x45, 0x7c, 0xc2, 0xad, 0xc0, 0x09, 0x49, 0xc8, 0xd4, 0x08, 0xf4, 0xd5, 0x74,
	0x26, 0x1a, 0x70, 0x7d, 0x64, 0x5f, 0x9d, 0x73, 0xa4, 0x7c, 0x46, 0x9f, 0x40, 0x7d, 0xa6, 0xcc,
	0x8f, 0x4c, 0xa2, 0xdb, 0x35, 0x5c, 0x8d, 0x71, 0x3d, 0x77, 0x44, 0xd0, 0x3d, 0xa8, 0x5d, 0xda,
	0x9e, 0xdb, 0xe7, 0x14, 0x28, 0x40, 0x0b, 0x12, 0x14, 0x0b, 0x05, 0xe8, 0x3e, 0x34, 0x22, 0x46,
	0x2c, 0x71, 0x62, 0xec, 0x53, 0x97, 0x3b, 0x92, 0xef, 0x61, 0x2b, 0xb8, 0x16, 0x31, 0x72, 0x12,
	0x38, 0xaf, 0xf7, 0x85, 0x10, 0x61, 0xd8, 0xd0, 0x9c, 0xa5, 0x31, 0xc8, 0x52, 0x66, 0x23, 0xcd,
	0x99, 0x2f, 0xbc, 0x36, 0xc8, 0x0a, 0xcd, 0x7f, 0x29, 0x02, 0xb4, 0xf9, 0xa4, 0x84, 0x3c, 0x91,
	0x46, 0x08, 0x16, 0xf9, 0xa6, 0xa8, 0x02, 0x42, 0xfc, 0x47, 0x1f, 0x43, 0xd5, 0x79, 0x65, 0x53,
	0xb1, 0x6d, 0xbd, 0x26, 0x13, 0x35, 0xce, 0x4a, 0x2c, 0xfb, 0x86, 0x4c, 0xd0, 0x67, 0xb0, 0x7c,
	0x19, 0x78, 0x91, 0x1a, 0x5f, 0xae, 0xff, 0x14, 0x00, 0x3d, 0x81, 0xb2, 0xe8, 0x7e, 0x38, 0x19,
	0x13, 0x31, 0xcc, 0x7a, 0xa2, 0xe3, 0xb3, 0xbe, 0xec, 0xf0, 0x9e, 0xf6, 0x26, 0x63, 0x82, 0x57,
	0x22, 0xf5, 0xcf, 0xbc, 0x0b, 0x2b, 0xb1, 0x14, 0x95, 0x61, 0x69, 0x6f, 0x12, 0x12, 0x66, 0x14,
	0xd0, 0x0a, 0x2c, 0x72, 0x47, 0x1a, 0x45, 0xf3, 0x9f, 0x8b, 0x50, 0x99, 0x99, 0x60, 0xe8, 0x3b,
	0x58, 0x75, 0xa6, 0x8f, 0xea, 0x98, 0xa0, 0x56, 0xd1, 0xcf, 0x72, 0xdf, 0xca, 0xb4, 0xff, 0x0a,
	0x7f, 0xe0, 0x87, 0x74, 0x82, 0xb3, 0x76, 0xb6, 0xbe, 0x83, 0xcd, 0x7c, 0x30, 0x32, 0x60, 0x81,
	0x7b, 0xaa, 0x28, 0x3c, 0xc5, 0xff, 0xa2, 0x9f, 0xc2, 0xd2, 0xa5, 0xed, 0x45, 0x44, 0x31, 0xc1,
	0x46, 0xee, 0xcb, 0xb1, 0xc4, 0x7c, 0x51, 0x7a, 0x5c, 0x34, 0x4f, 0x60, 0xbd, 0xad, 0x3c, 0x8c,
	0x49, 0x2b, 0x0a, 0x5f, 0xf5, 0x6c, 0x3a, 0x24, 0xe1, 0xbc, 0x19, 0xe2, 0x8c, 0xe1, 0x0f, 0xad,
	0x21, 0x0d, 0xa2, 0x71, 0x3c, 0x43, 0x52, 0xf6, 0x94, 0x8b, 0xcc, 0x17, 0x69, 0x73, 0x2d, 0x9f,
	0xbd, 0x25, 0x14, 0xdd, 0x01, 0x88, 0x89, 0xd6, 0xed, 0x2b, 0xa3, 0x65, 0x25, 0xe9, 0xf4, 0xe5,
	0x39, 0x9c, 0x45, 0x5e, 0x68, 0x39, 0x41, 0x3f, 0x0e, 0x71, 0x90, 0xa2, 0x76, 0xd0, 0x27, 0xe6,
	0xef, 0x40, 0xe5, 0x59, 0x1b, 0x1f, 0xca, 0x15, 0xc5, 0xf2, 0x42, 0xb9, 0x98, 0x13, 0xca, 0xe6,
	0xbf, 0x15, 0xa1, 0xda, 0x72, 0x9c, 0x20, 0xf2, 0xe5, 0xca, 0xcc, 0x1d, 0xd6, 0x43, 0x58, 0xe5,
	0x1b, 0x98, 0xeb, 0x88, 0x25, 0x6d, 0xf9, 0xf6, 0x88, 0xb0, 0x66, 0x49, 0xac, 0xeb, 0x86, 0x6c,
	0xe0, 0xba, 0xa7, 0x5c, 0x8c, 0x3e, 0x87, 0x4d, 0x1d, 0x7b, 0xc1, 0x4f, 0x6e, 0x52, 0x41, 0x12,
	0xc1, 0xda, 0x4c, 0x61, 0xcf, 0x66, 0x4a, 0xa9, 0x0b, 0xcd, 0xfe, 0xc4, 0xb7, 0x47, 0xb1, 0x56,
	0x9f, 0x0c, 0x5c, 0xdf, 0xe5, 0xd3, 0xc8, 0x9a, 0x8b, 0x22, 0x48, 0x12, 0x54, 0x16, 0x79, 0x64,
	0x7f, 0x8a, 0xc0, 0x9b, 0x4a, 0x35, 0x29, 0x66, 0xe6, 0xbf, 0x96, 0xa0, 0x9e, 0x94, 0xa1, 0xdb,
	0x50, 0x9e, 0x8e, 0x40, 0x8d, 0x70, 0x85, 0xaa, 0xae, 0xbf, 0xc7, 0xe4, 0xa1, 0x8f, 0x00, 0xc6,
	0x94, 0x38, 0xa4, 0x4f, 0x7c, 0x27, 0xa6, 0x10, 0x4d, 0xc2, 0xd9, 0x6f, 0x14, 0xf8, 0x6e, 0x18,
	0xd0, 0x78, 0x8d, 0x2e, 0x8a, 0x97, 0xd4, 0x66, 0xd2, 0x6f, 0x44, 0x0c, 0xae, 0x0e, 0xbc, 0xe0,
	0xad, 0xd5, 0x27, 0xcc, 0xa1, 0xee, 0x58, 0x8e, 0x73, 0x49, 0xb8, 0xc7, 0xe0, 0x0d, 0xfb, 0x9a,
	0x1c, 0x3d, 0x87, 0xf5, 0x29, 0xbb, 0x6b, 0x67, 0x74, 0x95, 0x6f, 0x7e, 0xa4, 0x6d, 0xbe, 0x31,
	0xc5, 0xeb, 0x27, 0xf1, 0x35, 0x9a, 0x15, 0xa2, 0x27, 0xd0, 0x78, 0x13, 0xb0, 0x84, 0x35, 0x99,
	0x6c, 0x22, 0xcd, 0xda, 0xa1, 0x17, 0xbc, 0x7d, 0x1e, 0x30, 0x5c, 0x7f, 0x13, 0x30, 0x4d, 0xd9,
	0xfc, 0x13, 0xb8, 0x25, 0x68, 0xf5, 0x44, 0x0e, 0x29, 0xb9, 0x51, 0xe6, 0x45, 0xcf, 0x37, 0xb0,
	0x21, 0xc9, 0x59, 0x39, 0xc1, 0x92, 0x0b, 0x58, 0x46, 0x50, 0x72, 0x13, 0xd5, 0x0d, 0xe3, 0xb5,
	0x48, 0x7f, 0x8d, 0xd4, 0x31, 0xff, 0xb6, 0x08, 0x55, 0x1d, 0x85, 0xfe, 0x10, 0x9a, 0xb1, 0x5d,
	0x3e, 0x1e, 0x6b, 0x4c, 0xa8, 0x95, 0x4c, 0x10, 0x3e, 0x9d, 0xf3, 0x02, 0xd7, 0x1f, 0xea, 0x9e,
	0xda, 0x50, 0x66, 0xb8, 0xec, 0x19, 0xa1, 0xb3, 0x53, 0x5a, 0x25, 0x0c, 0x42, 0xdb, 0xb3, 0xde,
	0x44, 0x41, 0x68, 0x2b, 0xd6, 0xc8, 0xa1, 0x55, 0x10, 0xa8, 0xe7, 0x1c, 0x64, 0xfe, 0x7b, 0x09,
	0x6e, 0x3f, 0xbd, 0x92, 0x5d, 0x6e, 0x07, 0x7e, 0x48, 0x03, 0x4f, 0x66, 0x26, 0xb6, 0x9c, 0xd2,
	0x0e, 0x54, 0x89, 0xf6, 0xac, 0x78, 0x50, 0xef, 0xe7, 0x7c, 0x6d, 0x9c, 0x50, 0x45, 0x7d, 0xb8,
	0x1d, 0xf9, 0x44, 0xa5, 0x3d, 0xf1, 0xc0, 0x67, 0x55, 0x3f, 0xb9, 0x83, 0x7f, 0xa2, 0x7b, 0x60,
	0x8a, 0x8e, 0x13, 0xb0, 0xb8, 0xf4, 0x77, 0x2b, 0x9a, 0xd7, 0x84, 0x0e, 0xa1, 0x3e, 0xbc, 0xe2,
	0xab, 0xd2, 0x16, 0x0c, 0xe4, 0xd8, 0x6a, 0x7b, 0xd9, 0x9e, 0xdf, 0x65, 0x49, 0x6b, 0xb8, 0x3a,
	0xbc, 0xda, 0x97, 0x6a, 0x6d, 0xc7, 0x46, 0x6d, 0x58, 0x97, 0xce, 0x9c, 0xf6, 0x58, 0xcc, 0xb1,
	0x3a, 0x29, 0xe6, 0x78, 0x15, 0x09, 0x78, 0x9c, 0xd6, 0x89, 0xd9, 0x33, 0xff, 0xb4, 0x08, 0x1b,
	0xa9, 0x97, 0x61, 0xc1, 0x83, 0xe8, 0x77, 0x79, 0x6e, 0xc8, 0xff, 0xc5, 0x2e, 0xfd, 0x49, 0x26,
	0x37, 0x54, 0xf5, 0x29, 0x0e, 0xc2, 0x31, 0x18, 0x3d, 0x82, 0x65, 0x42, 0x69, 0x40, 0xf3, 0x42,
	0xf2, 0x80, 0x37, 0xec, 0xf1, 0x73, 0x0f, 0xb9, 0xc2, 0x0a, 0x66, 0x7e, 0x01, 0x55, 0x5d, 0x8e,
	0xd6, 0x61, 0xc9, 0xe5, 0x7f, 0x44, 0xc4, 0x2d, 0x61, 0xf9, 0xc0, 0xa5, 0x02, 0x2f, 0x66, 0xa1,
	0x8c, 0xe5, 0x83, 0xe9, 0xc2, 0x6a, 0xa6, 0x2b, 0x9c, 0x11, 0xb4, 0x69, 0xb5, 0x74, 0x63, 0x86,
	0xd6, 0x20, 0xdf, 0xf6, 0x5b, 0xd0, 0xd0, 0xc1, 0x23, 0x22, 0xeb, 0x00, 0x2b, 0xb8, 0xae, 0x89,
	0x4f, 0x48, 0x68, 0xfe, 0x5d, 0x11, 0xb6, 0xe6, 0x47, 0x12, 0x3a, 0x06, 0x23, 0x1d, 0x39, 0x6a,
	0xc9, 0x7c, 0x3c, 0x7f, 0x5e, 0xe3, 0x3c, 0xb7, 0x91, 0x8a, 0x15, 0xf4, 0x18, 0x96, 0x6d, 0x31,
	0xe7, 0x6a, 0x8d, 0x5c, 0x1f, 0x1b, 0x0a, 0x6f, 0xfe, 0x77, 0x09, 0x36, 0xf3, 0xdf, 0x92, 0xcb,
	0x27, 0x4f, 0x20, 0x4e, 0xaf, 0x65, 0xee, 0x22, 0x63, 0x5c, 0x3f, 0x75, 0xb6, 0xdb, 0x4a, 0x5f,
	0x64, 0x2d, 0x15, 0x3a, 0x7b, 0x40, 0x7b, 0x3c, 0x3f, 0x95, 0xca, 0x7e, 0x34, 0xba, 0x20, 0x54,
	0x45, 0xf2, 0xed, 0x1d, 0x59, 0x5c, 0xdf, 0x89, 0x8b, 0xeb, 0x3b, 0x1d, 0x3f, 0xfc, 0x7c, 0xf7,
	0x05, 0x4f, 0x03, 0x70, 0x9c, 0xfc, 0x9f, 0x0a, 0x0d, 0x64, 0x41, 0x33, 0x41, 0x68, 0xb2, 0x8c,
	0x30, 0x0e, 0x68, 0xc8, 0x9a, 0x95, 0xcc, 0x52, 0x7e, 0x07, 0xe5, 0x6c, 0x46, 0xc9, 0x36, 0x2c,
	0x8d, 0xa0, 0xdf, 0x06, 0x24, 0x5f, 0x20, 0xad, 0x5a, 0x7d, 0xe2, 0x85, 0xb6, 0x38, 0xd9, 0x2e,
	0x62, 0x43, 0xb4, 0x48, 0xe4, 0x3e, 0x97, 0xa3, 0xdf, 0x87, 0x1a, 0xb9, 0x24, 0x7e, 0x68, 0x85,
	0xd4, 0x1d, 0x0e, 0x09, 0x55, 0xe7, 0xd8, 0x77, 0x8e, 0xa8, 0x2a, 0x34, 0x7a, 0x52, 0xc1, 0xfc,
	0xb3, 0x85, 0xcc, 0x8a, 0x52, 0x59, 0x49, 0x2a, 0xed, 0x28, 0xa6, 0xd3, 0x0e, 0xf4, 0x1d, 0x6c,
	0x66, 0x7c, 0xc1, 0x79, 0xf8, 0x7b, 0x7a, 0x62, 0x3d, 0xca, 0xb6, 0x31, 0x71, 0xec, 0xe2, 0xdb,
	0xb5, 0xeb, 0xb3, 0xd0, 0xf6, 0x3c, 0xa6, 0x0e, 0xf7, 0x37, 0x53, 0xb9, 0x40, 0x47, 0x35, 0xe3,
	0x2a, 0xd5, 0x9e, 0xa6, 0xda, 0x94, 0x8c, 0x82, 0x4b, 0xdb, 0x63, 0xca, 0x2f, 0x69, 0x6d, 0xac,
	0x9a, 0xa5, 0x76, 0xfc, 0xc4, 0xb7, 0xf2, 0x84, 0x57, 0xf9, 0xf9, 0x7e, 0xe1, 0x41, 0x0d, 0xd7,
	0x74, 0xcf, 0x31, 0xf4, 0x14, 0x56, 0x29, 0x11, 0x87, 0x08, 0xb9, 0x18, 0xc5, 0xd9, 0xa2, 0xa1,
	0x0e, 0xa6, 0xe9, 0x09, 0xe8, 0xc5, 0x17, 0x3a, 0xd8, 0xd0, 0x95, 0xb8, 0xd8, 0xfc, 0x6b, 0xbe,
	0x67, 0x4c, 0x3e, 0x68, 0xcf, 0x98, 0xfc, 0xbf, 0xdb, 0x33, 0x26, 0xd7, 0xed, 0x19, 0x93, 0xfc,
	0x3d, 0x63, 0x32, 0xdb, 0x33, 0x24, 0xdd, 0x4f, 0x7e, 0x54, 0xba, 0x17, 0x3c, 0x3a, 0xf9, 0x50,
	0x1e, 0x9d, 0xfc, 0x00, 0x3c, 0x3a, 0x79, 0x17, 0x8f, 0xfe, 0x8a, 0xf3, 0xe8, 0xe4, 0x37, 0x87,
	0x47, 0x7f, 0x06, 0x2b, 0x71, 0x1a, 0xda, 0xdc, 0x48, 0xe4, 0x9f, 0xfc, 0xe5, 0xcf, 0x65, 0xda,
	0x89, 0x6f, 0xa8, 0xfc, 0x13, 0x7d, 0x09, 0x8b, 0x23, 0xe6, 0x38, 0xcd, 0x4d, 0x31, 0x69, 0x0f,
	0xf4, 0x4b, 0xa9, 0xc8, 0x0b, 0xdd, 0xb1, 0x47, 0x54, 0xc1, 0x95, 0x25, 0x5d, 0x20, 0xb4, 0xbe,
	0x1f, 0xa7, 0x9a, 0xff, 0x95, 0x0d, 0x3a, 0xc5, 0x88, 0x69, 0xaf, 0x15, 0xbf, 0x8f, 0xd7, 0x3e,
	0xcd, 0x78, 0x4d, 0x1e, 0x32, 0x52, 0x8e, 0x49, 0xb1, 0xee, 0x42, 0x86, 0x75, 0x1f, 0x43, 0x55,
	0xa4, 0xa3, 0xd6, 0x90, 0xda, 0x7e, 0x18, 0x9f, 0x91, 0xf4, 0xb3, 0xac, 0x48, 0x44, 0x9f, 0xf2,
	0x56, 0x5c, 0x79, 0x33, 0xfd, 0xcf, 0xf8, 0x21, 0x47, 0xd4, 0x5b, 0x07, 0xb6, 0xeb, 0x45, 0x94,
	0x88, 0x8a, 0xc5, 0x0a, 0xae, 0x70, 0xd9, 0xa1, 0x14, 0x99, 0xff, 0x58, 0x02, 0x98, 0xa9, 0x67,
	0x8e, 0x45, 0xc5, 0xec, 0xb1, 0xa8, 0x0d, 0xeb, 0xa2, 0x23, 0xa4, 0x6f, 0xc5, 0x55, 0xf1, 0xc8,
	0x77, 0xc3, 0xf9, 0xc9, 0x32, 0x52, 0x70, 0x35, 0x61, 0xe7, 0xbe, 0x1b, 0xbe, 0x5f, 0x85, 0x26,
	0xe5, 0x99, 0xc5, 0x8c, 0x67, 0xee, 0x43, 0xc3, 0x65, 0x96, 0xac, 0xce, 0xc8, 0x73, 0x86, 0xa8,
	0x28, 0xaf, 0xe0, 0x9a, 0xcb, 0x44, 0x2d, 0x46, 0xce, 0xe9, 0xfc, 0x12, 0x4e, 0xf5, 0xd7, 0x2f,
	0xe1, 0xfc, 0x43, 0x11, 0xb6, 0xe6, 0xef, 0x71, 0x39, 0x87, 0x43, 0xee, 0xca, 0x6a, 0xfa, 0x70,
	0x78, 0x00, 0x86, 0x06, 0xf3, 0xc8, 0x25, 0xf1, 0x72, 0x0a, 0x71, 0xb3, 0x57, 0x1c, 0x73, 0x04,
	0x6e, 0x8c, 0x92, 0x02, 0xf4, 0x19, 0x2c, 0xab, 0x4a, 0xda, 0xfc, 0x4a, 0x90, 0x04, 0xf0, 0x33,
	0xd5, 0x9d, 0x77, 0x2e, 0xa1, 0xf7, 0x89, 0x81, 0xaf, 0x60, 0x35, 0x62, 0xef, 0x1d, 0x00, 0x0d,
	0x8e, 0xd5, 0x67, 0xff, 0x2e, 0x54, 0x54, 0x01, 0x5b, 0xac, 0xaa, 0x05, 0xf9, 0x9d, 0x81, 0x14,
	0x89, 0x8a, 0x13, 0x83, 0x1b, 0x8a, 0x11, 0xd0, 0xe7, 0x70, 0xd3, 0x1e, 0xfb, 0x96, 0x3d, 0x1c,
	0x5a, 0x23, 0xfb, 0xca, 0xba, 0x70, 0x43, 0x8b, 0x72, 0xcd, 0xc8, 0x53, 0x1d, 0x43, 0xf6, 0xd8,
	0x6f, 0x0d, 0x87, 0x27, 0xf6, 0xd5, 0x9e, 0x1b, 0x62, 0x3b, 0x24, 0xe7, 0xde, 0x5c, 0xa5, 0xbe,
	0xa7, 0xd6, 0x60, 0x46, 0x69, 0xdf, 0x33, 0xff, 0xbe, 0x04, 0x55, 0x3d, 0xc3, 0x40, 0x77, 0x00,
	0xb4, 0x12, 0x48, 0x51, 0x1c, 0xd9, 0xcb, 0x74, 0x5a, 0xfc, 0xb8, 0x0f, 0x8d, 0x74, 0xd5, 0xa3,
	0xa4, 0xca, 0x9f, 0x89, 0x7a, 0xc7, 0x3e, 0x18, 0x99, 0x3a, 0xc7, 0xc2, 0x75, 0x75, 0x0e, 0x61,
	0x5a, 0x2b, 0x70, 0xa0, 0x36, 0x34, 0xc4, 0xb5, 0x8e, 0x96, 0x79, 0x2c, 0x5e, 0x9b, 0x79, 0xd4,
	0x67, 0x2a, 0x62, 0x45, 0x3d, 0x85, 0xd5, 0x3e, 0x49, 0x9b, 0x59, 0xba, 0x3e, 0x81, 0xd1, 0x95,
	0x44, 0x02, 0x73, 0x2e, 0x5d, 0x35, 0x4d, 0xa0, 0x7e, 0x18, 0x57, 0x99, 0x0c, 0x96, 0x55, 0xa1,
	0xf7, 0x63, 0xa8, 0xca, 0xc3, 0xa3, 0x56, 0x21, 0x5e, 0xc4, 0xf2, 0x74, 0x3e, 0x83, 0xb8, 0xfe,
	0x38, 0x0a, 0x63, 0x48, 0x49, 0x42, 0x84, 0x4c, 0x41, 0xee, 0x41, 0x2d, 0x88, 0x42, 0x0d, 0xb3,
	0x20, 0x30, 0x55, 0x29, 0x94, 0x20, 0xf3, 0x2f, 0x4a, 0x80, 0x9e, 0x89, 0xcf, 0x7b, 0xae, 0x2d,
	0xf9, 0x7d, 0x2d, 0xc7, 0xc1, 0xac, 0x30, 0x90, 0x99, 0x66, 0x5c, 0x59, 0x9c, 0x9b, 0x67, 0x8a,
	0x01, 0xb2, 0x5e, 0x20, 0x04, 0x04, 0xb5, 0x64, 0x2c, 0x08, 0x03, 0x2a, 0xd1, 0xcd, 0xf9, 0x86,
	0x26, 0x91, 0xe7, 0xd6, 0x95, 0x05, 0x25, 0x78, 0x47, 0x12, 0xbe, 0xf8, 0xc1, 0x49, 0xb8, 0xf9,
	0x1f, 0xc5, 0xa4, 0x2f, 0x7e, 0x98, 0x7a, 0x25, 0x7a, 0x0e, 0x55, 0xbe, 0x07, 0xf1, 0x94, 0x69,
	0x7a, 0x4d, 0x50, 0xd9, 0xdd, 0xd1, 0x2f, 0x60, 0x33, 0x2f, 0xdd, 0x39, 0x14, 0x1a, 0xa2, 0x50,
	0x29, 0x8b, 0xc1, 0x95, 0xc1, 0x4c, 0xb2, 0xf5, 0x0b, 0x30, 0xd2, 0x00, 0xbd, 0x00, 0x5c, 0x96,
	0x05, 0xe0, 0x75, 0xbd, 0x00, 0x5c, 0xd3, 0x2b, 0xbd, 0x9f, 0xc1, 0x9a, 0xf8, 0xbe, 0x23, 0x75,
	0x05, 0x96, 0x33, 0xeb, 0xe6, 0x04, 0x90, 0x0e, 0xfd, 0x81, 0x7c, 0x72, 0x0f, 0x6a, 0x22, 0xe3,
	0x8c, 0x2f, 0xbf, 0x44, 0x1c, 0x94, 0x71, 0x55, 0x08, 0x4f, 0xa4, 0xec, 0xe1, 0x97, 0xd0, 0x48,
	0xdd, 0xc2, 0xa0, 0x1a, 0x94, 0xa7, 0xd7, 0x6a, 0x46, 0x01, 0x55, 0x61, 0x25, 0x2e, 0x05, 0xca,
	0xef, 0x14, 0xb0, 0xba, 0x7b, 0x31, 0x4a, 0x0f, 0x77, 0xa1, 0x91, 0xda, 0x3a, 0x90, 0x01, 0x55,
	0x35, 0x0c, 0xf1, 0x6c, 0x14, 0xb8, 0x3d, 0xee, 0x42, 0xf9, 0x58, 0x7c, 0xf8, 0x14, 0x6a, 0x89,
	0x9c, 0x86, 0x9b, 0xb4, 0x3a, 0xa7, 0x2f, 0x5a, 0xc7, 0x9d, 0x7d, 0xa3, 0x80, 0x2a, 0x70, 0xa3,
	0x73, 0xda, 0xe9, 0x75, 0x5a, 0xc7, 0x46, 0x11, 0x01, 0x2c, 0x9f, 0x3f, 0xdb, 0x6f, 0xf5, 0x0e,
	0x8c, 0x12, 0x6a, 0x40, 0xa5, 0x77, 0x80, 0x4f, 0x3a, 0xa7, 0xad, 0x5e, 0xe7, 0xec, 0xd4, 0x58,
	0x78, 0xf8, 0x02, 0x6e, 0xcd, 0x3d, 0x4a, 0xa0, 0x9b, 0xb0, 0xd6, 0x3e, 0x3b, 0xed, 0x75, 0x4e,
	0xcf, 0x0f, 0xac, 0x97, 0x9d, 0xde, 0x91, 0x75, 0x80, 0xf1, 0x19, 0x36, 0x0a, 0x68, 0x1b, 0x7e,
	0x92, 0x6c, 0xd8, 0x3f, 0x38, 0x6c, 0x9d, 0x1f, 0xf7, 0xac, 0xd6, 0x69, 0xf7, 0xe5, 0x01, 0x36,
	0x8a, 0x0f, 0x07, 0x50, 0x17, 0xb3, 0xd1, 0xb6, 0x23, 0x26, 0x76, 0x0b, 0x84, 0xa0, 0xbe, 0x47,
	0x6c, 0x4a, 0xa8, 0xfa, 0x34, 0xa8, 0x6f, 0x14, 0xd0, 0x5d, 0xb8, 0xdd, 0xf1, 0x59, 0x34, 0x18,
	0xb8, 0x8e, 0x4b, 0xfc, 0xf8, 0x22, 0x8c, 0xb0, 0x20, 0xa2, 0x0e, 0x61, 0x46, 0x31, 0x0d, 0x88,
	0x0d, 0xc4, 0x80, 0xd2, 0xee, 0x5f, 0x16, 0x61, 0xfd, 0x24, 0x70, 0x5e, 0xb7, 0x03, 0x4a, 0x66,
	0x75, 0xcf, 0x80, 0xa2, 0x36, 0x54, 0xe5, 0xb3, 0xba, 0x4d, 0x4b, 0x7f, 0x50, 0x94, 0xba, 0x4f,
	0xdc, 0x8a, 0x77, 0x44, 0xf1, 0xfd, 0xe1, 0xce, 0x8b, 0xc0, 0xed, 0x9b, 0x05, 0xf4, 0x08, 0x96,
	0xc4, 0x7d, 0x33, 0xca, 0xb6, 0xe6, 0x2a, 0xec, 0xfe, 0xe7, 0x22, 0xdc, 0xe0, 0xdd, 0x39, 0x6b,
	0x77, 0xd1, 0x13, 0xa8, 0x77, 0x49, 0x78, 0xd6, 0xee, 0x76, 0x49, 0xc8, 0x37, 0x65, 0x86, 0xd6,
	0xf5, 0x5d, 0x37, 0xbe, 0x6a, 0xcb, 0x7f, 0xf3, 0xef, 0x41, 0xb9, 0x4b, 0x42, 0x95, 0x19, 0xe5,
	0xdf, 0x88, 0xe4, 0x2b, 0x7e, 0x05, 0x35, 0x79, 0x4d, 0xad, 0xae, 0x10, 0xd0, 0x4d, 0xfd, 0x2e,
	0x78, 0xfa, 0x89, 0x63, 0x67, 0x3f, 0x5f, 0xfd, 0x0b, 0x30, 0xda, 0x1e, 0xb1, 0xe9, 0x0c, 0xc9,
	0xde, 0x77, 0xf0, 0xe8, 0x18, 0x96, 0x25, 0x35, 0x20, 0xfd, 0x03, 0x86, 0xbc, 0x9b, 0x9a, 0xad,
	0xf9, 0x00, 0xb9, 0x6e, 0xcd, 0x02, 0xfa, 0x1a, 0xe0, 0x69, 0xec, 0x01, 0x36, 0x7f, 0x14, 0x9b,
	0xf9, 0x57, 0x55, 0x66, 0x01, 0x9d, 0x41, 0x55, 0x27, 0x84, 0x44, 0x04, 0xe4, 0x90, 0xca, 0xd6,
	0x9d, 0x39, 0xed, 0xd3, 0x1e, 0x9d, 0x42, 0xa3, 0x4b, 0xc2, 0x44, 0x09, 0xe0, 0xfe, 0x7b, 0x1d,
	0xf6, 0x59, 0xbe, 0xbf, 0xbe, 0x01, 0xd4, 0x62, 0x8c, 0xd0, 0xa4, 0xc9, 0x1c, 0x6f, 0x6f, 0xbf,
	0xeb, 0xcc, 0xca, 0xa9, 0xca, 0x2c, 0xec, 0xfe, 0xf9, 0x12, 0xac, 0xf0, 0xc8, 0x7b, 0xd6, 0xc6,
	0x87, 0xe8, 0x2b, 0x11, 0x7a, 0xfa, 0xe5, 0x93, 0xee, 0x26, 0x4d, 0xfe, 0xbf, 0x12, 0x43, 0x8f,
	0x61, 0xa5, 0x4b, 0xd4, 0xdd, 0x55, 0xe2, 0xa3, 0x53, 0xed, 0x52, 0x2b, 0x5f, 0xf3, 0x04, 0x8c,
	0x2e, 0x09, 0xf5, 0xfd, 0x90, 0xa1, 0x4f, 0xe6, 0xec, 0x94, 0xef, 0xb1, 0x7c, 0x3f, 0x24, 0x98,
	0x8f, 0xa6, 0xc1, 0x7c, 0x67, 0xce, 0x06, 0xa8, 0x42, 0xf9, 0xce, 0x3b, 0xf7, 0xc7, 0x1f, 0x23,
	0x0e, 0xaf, 0xfe, 0x4f, 0xe2, 0xf0, 0x2a, 0x37, 0x0e, 0xf7, 0x6e, 0x7f, 0x7b, 0x4b, 0x80, 0x1e,
	0x0d, 0xc8, 0xf0, 0x91, 0xe3, 0x05, 0x51, 0xff, 0xd1, 0x30, 0x50, 0x9f, 0x58, 0x5f, 0x2c, 0x8b,
	0xdf, 0xcf, 0xff, 0x27, 0x00, 0x00, 0xff, 0xff, 0x2b, 0x64, 0xc0, 0x57, 0x0d, 0x2e, 0x00, 0x00,
}

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConnInterface

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion6

// MockCoreConfiguratorClient is the client API for MockCoreConfigurator service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type MockCoreConfiguratorClient interface {
	ConfigServer(ctx context.Context, in *ServerConfiguration, opts ...grpc.CallOption) (*protos1.Void, error)
	Reset(ctx context.Context, in *protos1.Void, opts ...grpc.CallOption) (*protos1.Void, error)
}

type mockCoreConfiguratorClient struct {
	cc grpc.ClientConnInterface
}

func NewMockCoreConfiguratorClient(cc grpc.ClientConnInterface) MockCoreConfiguratorClient {
	return &mockCoreConfiguratorClient{cc}
}

func (c *mockCoreConfiguratorClient) ConfigServer(ctx context.Context, in *ServerConfiguration, opts ...grpc.CallOption) (*protos1.Void, error) {
	out := new(protos1.Void)
	err := c.cc.Invoke(ctx, "/magma.feg.MockCoreConfigurator/ConfigServer", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mockCoreConfiguratorClient) Reset(ctx context.Context, in *protos1.Void, opts ...grpc.CallOption) (*protos1.Void, error) {
	out := new(protos1.Void)
	err := c.cc.Invoke(ctx, "/magma.feg.MockCoreConfigurator/Reset", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// MockCoreConfiguratorServer is the server API for MockCoreConfigurator service.
type MockCoreConfiguratorServer interface {
	ConfigServer(context.Context, *ServerConfiguration) (*protos1.Void, error)
	Reset(context.Context, *protos1.Void) (*protos1.Void, error)
}

// UnimplementedMockCoreConfiguratorServer can be embedded to have forward compatible implementations.
type UnimplementedMockCoreConfiguratorServer struct {
}

func (*UnimplementedMockCoreConfiguratorServer) ConfigServer(ctx context.Context, req *ServerConfiguration) (*protos1.Void, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ConfigServer not implemented")
}
func (*UnimplementedMockCoreConfiguratorServer) Reset(ctx context.Context, req *protos1.Void) (*protos1.Void, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Reset not implemented")
}

func RegisterMockCoreConfiguratorServer(s *grpc.Server, srv MockCoreConfiguratorServer) {
	s.RegisterService(&_MockCoreConfigurator_serviceDesc, srv)
}

func _MockCoreConfigurator_ConfigServer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ServerConfiguration)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockCoreConfiguratorServer).ConfigServer(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockCoreConfigurator/ConfigServer",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockCoreConfiguratorServer).ConfigServer(ctx, req.(*ServerConfiguration))
	}
	return interceptor(ctx, in, info, handler)
}

func _MockCoreConfigurator_Reset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(protos1.Void)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockCoreConfiguratorServer).Reset(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockCoreConfigurator/Reset",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockCoreConfiguratorServer).Reset(ctx, req.(*protos1.Void))
	}
	return interceptor(ctx, in, info, handler)
}

var _MockCoreConfigurator_serviceDesc = grpc.ServiceDesc{
	ServiceName: "magma.feg.MockCoreConfigurator",
	HandlerType: (*MockCoreConfiguratorServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "ConfigServer",
			Handler:    _MockCoreConfigurator_ConfigServer_Handler,
		},
		{
			MethodName: "Reset",
			Handler:    _MockCoreConfigurator_Reset_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "feg/protos/mock_core.proto",
}

// MockOCSClient is the client API for MockOCS service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type MockOCSClient interface {
	SetOCSSettings(ctx context.Context, in *OCSConfig, opts ...grpc.CallOption) (*protos1.Void, error)
	SetCredit(ctx context.Context, in *CreditInfo, opts ...grpc.CallOption) (*protos1.Void, error)
	CreateAccount(ctx context.Context, in *protos.SubscriberID, opts ...grpc.CallOption) (*protos1.Void, error)
	ClearSubscribers(ctx context.Context, in *protos1.Void, opts ...grpc.CallOption) (*protos1.Void, error)
	ReAuth(ctx context.Context, in *ChargingReAuthTarget, opts ...grpc.CallOption) (*ChargingReAuthAnswer, error)
	GetCredits(ctx context.Context, in *protos.SubscriberID, opts ...grpc.CallOption) (*CreditInfos, error)
	AbortSession(ctx context.Context, in *AbortSessionRequest, opts ...grpc.CallOption) (*AbortSessionAnswer, error)
	// Todo
	SetExpectations(ctx context.Context, in *GyCreditControlExpectations, opts ...grpc.CallOption) (*protos1.Void, error)
	AssertExpectations(ctx context.Context, in *protos1.Void, opts ...grpc.CallOption) (*GyCreditControlResult, error)
}

type mockOCSClient struct {
	cc grpc.ClientConnInterface
}

func NewMockOCSClient(cc grpc.ClientConnInterface) MockOCSClient {
	return &mockOCSClient{cc}
}

func (c *mockOCSClient) SetOCSSettings(ctx context.Context, in *OCSConfig, opts ...grpc.CallOption) (*protos1.Void, error) {
	out := new(protos1.Void)
	err := c.cc.Invoke(ctx, "/magma.feg.MockOCS/SetOCSSettings", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mockOCSClient) SetCredit(ctx context.Context, in *CreditInfo, opts ...grpc.CallOption) (*protos1.Void, error) {
	out := new(protos1.Void)
	err := c.cc.Invoke(ctx, "/magma.feg.MockOCS/SetCredit", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mockOCSClient) CreateAccount(ctx context.Context, in *protos.SubscriberID, opts ...grpc.CallOption) (*protos1.Void, error) {
	out := new(protos1.Void)
	err := c.cc.Invoke(ctx, "/magma.feg.MockOCS/CreateAccount", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mockOCSClient) ClearSubscribers(ctx context.Context, in *protos1.Void, opts ...grpc.CallOption) (*protos1.Void, error) {
	out := new(protos1.Void)
	err := c.cc.Invoke(ctx, "/magma.feg.MockOCS/ClearSubscribers", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mockOCSClient) ReAuth(ctx context.Context, in *ChargingReAuthTarget, opts ...grpc.CallOption) (*ChargingReAuthAnswer, error) {
	out := new(ChargingReAuthAnswer)
	err := c.cc.Invoke(ctx, "/magma.feg.MockOCS/ReAuth", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mockOCSClient) GetCredits(ctx context.Context, in *protos.SubscriberID, opts ...grpc.CallOption) (*CreditInfos, error) {
	out := new(CreditInfos)
	err := c.cc.Invoke(ctx, "/magma.feg.MockOCS/GetCredits", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mockOCSClient) AbortSession(ctx context.Context, in *AbortSessionRequest, opts ...grpc.CallOption) (*AbortSessionAnswer, error) {
	out := new(AbortSessionAnswer)
	err := c.cc.Invoke(ctx, "/magma.feg.MockOCS/AbortSession", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mockOCSClient) SetExpectations(ctx context.Context, in *GyCreditControlExpectations, opts ...grpc.CallOption) (*protos1.Void, error) {
	out := new(protos1.Void)
	err := c.cc.Invoke(ctx, "/magma.feg.MockOCS/SetExpectations", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mockOCSClient) AssertExpectations(ctx context.Context, in *protos1.Void, opts ...grpc.CallOption) (*GyCreditControlResult, error) {
	out := new(GyCreditControlResult)
	err := c.cc.Invoke(ctx, "/magma.feg.MockOCS/AssertExpectations", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// MockOCSServer is the server API for MockOCS service.
type MockOCSServer interface {
	SetOCSSettings(context.Context, *OCSConfig) (*protos1.Void, error)
	SetCredit(context.Context, *CreditInfo) (*protos1.Void, error)
	CreateAccount(context.Context, *protos.SubscriberID) (*protos1.Void, error)
	ClearSubscribers(context.Context, *protos1.Void) (*protos1.Void, error)
	ReAuth(context.Context, *ChargingReAuthTarget) (*ChargingReAuthAnswer, error)
	GetCredits(context.Context, *protos.SubscriberID) (*CreditInfos, error)
	AbortSession(context.Context, *AbortSessionRequest) (*AbortSessionAnswer, error)
	// Todo
	SetExpectations(context.Context, *GyCreditControlExpectations) (*protos1.Void, error)
	AssertExpectations(context.Context, *protos1.Void) (*GyCreditControlResult, error)
}

// UnimplementedMockOCSServer can be embedded to have forward compatible implementations.
type UnimplementedMockOCSServer struct {
}

func (*UnimplementedMockOCSServer) SetOCSSettings(ctx context.Context, req *OCSConfig) (*protos1.Void, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetOCSSettings not implemented")
}
func (*UnimplementedMockOCSServer) SetCredit(ctx context.Context, req *CreditInfo) (*protos1.Void, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetCredit not implemented")
}
func (*UnimplementedMockOCSServer) CreateAccount(ctx context.Context, req *protos.SubscriberID) (*protos1.Void, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateAccount not implemented")
}
func (*UnimplementedMockOCSServer) ClearSubscribers(ctx context.Context, req *protos1.Void) (*protos1.Void, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ClearSubscribers not implemented")
}
func (*UnimplementedMockOCSServer) ReAuth(ctx context.Context, req *ChargingReAuthTarget) (*ChargingReAuthAnswer, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ReAuth not implemented")
}
func (*UnimplementedMockOCSServer) GetCredits(ctx context.Context, req *protos.SubscriberID) (*CreditInfos, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetCredits not implemented")
}
func (*UnimplementedMockOCSServer) AbortSession(ctx context.Context, req *AbortSessionRequest) (*AbortSessionAnswer, error) {
	return nil, status.Errorf(codes.Unimplemented, "method AbortSession not implemented")
}
func (*UnimplementedMockOCSServer) SetExpectations(ctx context.Context, req *GyCreditControlExpectations) (*protos1.Void, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetExpectations not implemented")
}
func (*UnimplementedMockOCSServer) AssertExpectations(ctx context.Context, req *protos1.Void) (*GyCreditControlResult, error) {
	return nil, status.Errorf(codes.Unimplemented, "method AssertExpectations not implemented")
}

func RegisterMockOCSServer(s *grpc.Server, srv MockOCSServer) {
	s.RegisterService(&_MockOCS_serviceDesc, srv)
}

func _MockOCS_SetOCSSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(OCSConfig)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockOCSServer).SetOCSSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockOCS/SetOCSSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockOCSServer).SetOCSSettings(ctx, req.(*OCSConfig))
	}
	return interceptor(ctx, in, info, handler)
}

func _MockOCS_SetCredit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreditInfo)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockOCSServer).SetCredit(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockOCS/SetCredit",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockOCSServer).SetCredit(ctx, req.(*CreditInfo))
	}
	return interceptor(ctx, in, info, handler)
}

func _MockOCS_CreateAccount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(protos.SubscriberID)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockOCSServer).CreateAccount(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockOCS/CreateAccount",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockOCSServer).CreateAccount(ctx, req.(*protos.SubscriberID))
	}
	return interceptor(ctx, in, info, handler)
}

func _MockOCS_ClearSubscribers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(protos1.Void)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockOCSServer).ClearSubscribers(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockOCS/ClearSubscribers",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockOCSServer).ClearSubscribers(ctx, req.(*protos1.Void))
	}
	return interceptor(ctx, in, info, handler)
}

func _MockOCS_ReAuth_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ChargingReAuthTarget)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockOCSServer).ReAuth(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockOCS/ReAuth",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockOCSServer).ReAuth(ctx, req.(*ChargingReAuthTarget))
	}
	return interceptor(ctx, in, info, handler)
}

func _MockOCS_GetCredits_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(protos.SubscriberID)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockOCSServer).GetCredits(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockOCS/GetCredits",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockOCSServer).GetCredits(ctx, req.(*protos.SubscriberID))
	}
	return interceptor(ctx, in, info, handler)
}

func _MockOCS_AbortSession_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AbortSessionRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockOCSServer).AbortSession(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockOCS/AbortSession",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockOCSServer).AbortSession(ctx, req.(*AbortSessionRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _MockOCS_SetExpectations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GyCreditControlExpectations)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockOCSServer).SetExpectations(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockOCS/SetExpectations",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockOCSServer).SetExpectations(ctx, req.(*GyCreditControlExpectations))
	}
	return interceptor(ctx, in, info, handler)
}

func _MockOCS_AssertExpectations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(protos1.Void)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockOCSServer).AssertExpectations(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockOCS/AssertExpectations",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockOCSServer).AssertExpectations(ctx, req.(*protos1.Void))
	}
	return interceptor(ctx, in, info, handler)
}

var _MockOCS_serviceDesc = grpc.ServiceDesc{
	ServiceName: "magma.feg.MockOCS",
	HandlerType: (*MockOCSServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "SetOCSSettings",
			Handler:    _MockOCS_SetOCSSettings_Handler,
		},
		{
			MethodName: "SetCredit",
			Handler:    _MockOCS_SetCredit_Handler,
		},
		{
			MethodName: "CreateAccount",
			Handler:    _MockOCS_CreateAccount_Handler,
		},
		{
			MethodName: "ClearSubscribers",
			Handler:    _MockOCS_ClearSubscribers_Handler,
		},
		{
			MethodName: "ReAuth",
			Handler:    _MockOCS_ReAuth_Handler,
		},
		{
			MethodName: "GetCredits",
			Handler:    _MockOCS_GetCredits_Handler,
		},
		{
			MethodName: "AbortSession",
			Handler:    _MockOCS_AbortSession_Handler,
		},
		{
			MethodName: "SetExpectations",
			Handler:    _MockOCS_SetExpectations_Handler,
		},
		{
			MethodName: "AssertExpectations",
			Handler:    _MockOCS_AssertExpectations_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "feg/protos/mock_core.proto",
}

// MockPCRFClient is the client API for MockPCRF service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type MockPCRFClient interface {
	SetPCRFConfigs(ctx context.Context, in *PCRFConfigs, opts ...grpc.CallOption) (*protos1.Void, error)
	CreateAccount(ctx context.Context, in *protos.SubscriberID, opts ...grpc.CallOption) (*protos1.Void, error)
	SetRules(ctx context.Context, in *AccountRules, opts ...grpc.CallOption) (*protos1.Void, error)
	SetUsageMonitors(ctx context.Context, in *UsageMonitorConfiguration, opts ...grpc.CallOption) (*protos1.Void, error)
	ClearSubscribers(ctx context.Context, in *protos1.Void, opts ...grpc.CallOption) (*protos1.Void, error)
	ReAuth(ctx context.Context, in *PolicyReAuthTarget, opts ...grpc.CallOption) (*PolicyReAuthAnswer, error)
	AbortSession(ctx context.Context, in *AbortSessionRequest, opts ...grpc.CallOption) (*AbortSessionAnswer, error)
	SetExpectations(ctx context.Context, in *GxCreditControlExpectations, opts ...grpc.CallOption) (*protos1.Void, error)
	AssertExpectations(ctx context.Context, in *protos1.Void, opts ...grpc.CallOption) (*GxCreditControlResult, error)
}

type mockPCRFClient struct {
	cc grpc.ClientConnInterface
}

func NewMockPCRFClient(cc grpc.ClientConnInterface) MockPCRFClient {
	return &mockPCRFClient{cc}
}

func (c *mockPCRFClient) SetPCRFConfigs(ctx context.Context, in *PCRFConfigs, opts ...grpc.CallOption) (*protos1.Void, error) {
	out := new(protos1.Void)
	err := c.cc.Invoke(ctx, "/magma.feg.MockPCRF/SetPCRFConfigs", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mockPCRFClient) CreateAccount(ctx context.Context, in *protos.SubscriberID, opts ...grpc.CallOption) (*protos1.Void, error) {
	out := new(protos1.Void)
	err := c.cc.Invoke(ctx, "/magma.feg.MockPCRF/CreateAccount", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mockPCRFClient) SetRules(ctx context.Context, in *AccountRules, opts ...grpc.CallOption) (*protos1.Void, error) {
	out := new(protos1.Void)
	err := c.cc.Invoke(ctx, "/magma.feg.MockPCRF/SetRules", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mockPCRFClient) SetUsageMonitors(ctx context.Context, in *UsageMonitorConfiguration, opts ...grpc.CallOption) (*protos1.Void, error) {
	out := new(protos1.Void)
	err := c.cc.Invoke(ctx, "/magma.feg.MockPCRF/SetUsageMonitors", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mockPCRFClient) ClearSubscribers(ctx context.Context, in *protos1.Void, opts ...grpc.CallOption) (*protos1.Void, error) {
	out := new(protos1.Void)
	err := c.cc.Invoke(ctx, "/magma.feg.MockPCRF/ClearSubscribers", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mockPCRFClient) ReAuth(ctx context.Context, in *PolicyReAuthTarget, opts ...grpc.CallOption) (*PolicyReAuthAnswer, error) {
	out := new(PolicyReAuthAnswer)
	err := c.cc.Invoke(ctx, "/magma.feg.MockPCRF/ReAuth", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mockPCRFClient) AbortSession(ctx context.Context, in *AbortSessionRequest, opts ...grpc.CallOption) (*AbortSessionAnswer, error) {
	out := new(AbortSessionAnswer)
	err := c.cc.Invoke(ctx, "/magma.feg.MockPCRF/AbortSession", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mockPCRFClient) SetExpectations(ctx context.Context, in *GxCreditControlExpectations, opts ...grpc.CallOption) (*protos1.Void, error) {
	out := new(protos1.Void)
	err := c.cc.Invoke(ctx, "/magma.feg.MockPCRF/SetExpectations", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mockPCRFClient) AssertExpectations(ctx context.Context, in *protos1.Void, opts ...grpc.CallOption) (*GxCreditControlResult, error) {
	out := new(GxCreditControlResult)
	err := c.cc.Invoke(ctx, "/magma.feg.MockPCRF/AssertExpectations", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// MockPCRFServer is the server API for MockPCRF service.
type MockPCRFServer interface {
	SetPCRFConfigs(context.Context, *PCRFConfigs) (*protos1.Void, error)
	CreateAccount(context.Context, *protos.SubscriberID) (*protos1.Void, error)
	SetRules(context.Context, *AccountRules) (*protos1.Void, error)
	SetUsageMonitors(context.Context, *UsageMonitorConfiguration) (*protos1.Void, error)
	ClearSubscribers(context.Context, *protos1.Void) (*protos1.Void, error)
	ReAuth(context.Context, *PolicyReAuthTarget) (*PolicyReAuthAnswer, error)
	AbortSession(context.Context, *AbortSessionRequest) (*AbortSessionAnswer, error)
	SetExpectations(context.Context, *GxCreditControlExpectations) (*protos1.Void, error)
	AssertExpectations(context.Context, *protos1.Void) (*GxCreditControlResult, error)
}

// UnimplementedMockPCRFServer can be embedded to have forward compatible implementations.
type UnimplementedMockPCRFServer struct {
}

func (*UnimplementedMockPCRFServer) SetPCRFConfigs(ctx context.Context, req *PCRFConfigs) (*protos1.Void, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetPCRFConfigs not implemented")
}
func (*UnimplementedMockPCRFServer) CreateAccount(ctx context.Context, req *protos.SubscriberID) (*protos1.Void, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateAccount not implemented")
}
func (*UnimplementedMockPCRFServer) SetRules(ctx context.Context, req *AccountRules) (*protos1.Void, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetRules not implemented")
}
func (*UnimplementedMockPCRFServer) SetUsageMonitors(ctx context.Context, req *UsageMonitorConfiguration) (*protos1.Void, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetUsageMonitors not implemented")
}
func (*UnimplementedMockPCRFServer) ClearSubscribers(ctx context.Context, req *protos1.Void) (*protos1.Void, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ClearSubscribers not implemented")
}
func (*UnimplementedMockPCRFServer) ReAuth(ctx context.Context, req *PolicyReAuthTarget) (*PolicyReAuthAnswer, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ReAuth not implemented")
}
func (*UnimplementedMockPCRFServer) AbortSession(ctx context.Context, req *AbortSessionRequest) (*AbortSessionAnswer, error) {
	return nil, status.Errorf(codes.Unimplemented, "method AbortSession not implemented")
}
func (*UnimplementedMockPCRFServer) SetExpectations(ctx context.Context, req *GxCreditControlExpectations) (*protos1.Void, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetExpectations not implemented")
}
func (*UnimplementedMockPCRFServer) AssertExpectations(ctx context.Context, req *protos1.Void) (*GxCreditControlResult, error) {
	return nil, status.Errorf(codes.Unimplemented, "method AssertExpectations not implemented")
}

func RegisterMockPCRFServer(s *grpc.Server, srv MockPCRFServer) {
	s.RegisterService(&_MockPCRF_serviceDesc, srv)
}

func _MockPCRF_SetPCRFConfigs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(PCRFConfigs)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockPCRFServer).SetPCRFConfigs(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockPCRF/SetPCRFConfigs",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockPCRFServer).SetPCRFConfigs(ctx, req.(*PCRFConfigs))
	}
	return interceptor(ctx, in, info, handler)
}

func _MockPCRF_CreateAccount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(protos.SubscriberID)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockPCRFServer).CreateAccount(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockPCRF/CreateAccount",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockPCRFServer).CreateAccount(ctx, req.(*protos.SubscriberID))
	}
	return interceptor(ctx, in, info, handler)
}

func _MockPCRF_SetRules_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AccountRules)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockPCRFServer).SetRules(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockPCRF/SetRules",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockPCRFServer).SetRules(ctx, req.(*AccountRules))
	}
	return interceptor(ctx, in, info, handler)
}

func _MockPCRF_SetUsageMonitors_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UsageMonitorConfiguration)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockPCRFServer).SetUsageMonitors(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockPCRF/SetUsageMonitors",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockPCRFServer).SetUsageMonitors(ctx, req.(*UsageMonitorConfiguration))
	}
	return interceptor(ctx, in, info, handler)
}

func _MockPCRF_ClearSubscribers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(protos1.Void)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockPCRFServer).ClearSubscribers(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockPCRF/ClearSubscribers",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockPCRFServer).ClearSubscribers(ctx, req.(*protos1.Void))
	}
	return interceptor(ctx, in, info, handler)
}

func _MockPCRF_ReAuth_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(PolicyReAuthTarget)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockPCRFServer).ReAuth(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockPCRF/ReAuth",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockPCRFServer).ReAuth(ctx, req.(*PolicyReAuthTarget))
	}
	return interceptor(ctx, in, info, handler)
}

func _MockPCRF_AbortSession_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AbortSessionRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockPCRFServer).AbortSession(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockPCRF/AbortSession",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockPCRFServer).AbortSession(ctx, req.(*AbortSessionRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _MockPCRF_SetExpectations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GxCreditControlExpectations)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockPCRFServer).SetExpectations(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockPCRF/SetExpectations",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockPCRFServer).SetExpectations(ctx, req.(*GxCreditControlExpectations))
	}
	return interceptor(ctx, in, info, handler)
}

func _MockPCRF_AssertExpectations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(protos1.Void)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MockPCRFServer).AssertExpectations(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/magma.feg.MockPCRF/AssertExpectations",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MockPCRFServer).AssertExpectations(ctx, req.(*protos1.Void))
	}
	return interceptor(ctx, in, info, handler)
}

var _MockPCRF_serviceDesc = grpc.ServiceDesc{
	ServiceName: "magma.feg.MockPCRF",
	HandlerType: (*MockPCRFServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "SetPCRFConfigs",
			Handler:    _MockPCRF_SetPCRFConfigs_Handler,
		},
		{
			MethodName: "CreateAccount",
			Handler:    _MockPCRF_CreateAccount_Handler,
		},
		{
			MethodName: "SetRules",
			Handler:    _MockPCRF_SetRules_Handler,
		},
		{
			MethodName: "SetUsageMonitors",
			Handler:    _MockPCRF_SetUsageMonitors_Handler,
		},
		{
			MethodName: "ClearSubscribers",
			Handler:    _MockPCRF_ClearSubscribers_Handler,
		},
		{
			MethodName: "ReAuth",
			Handler:    _MockPCRF_ReAuth_Handler,
		},
		{
			MethodName: "AbortSession",
			Handler:    _MockPCRF_AbortSession_Handler,
		},
		{
			MethodName: "SetExpectations",
			Handler:    _MockPCRF_SetExpectations_Handler,
		},
		{
			MethodName: "AssertExpectations",
			Handler:    _MockPCRF_AssertExpectations_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "feg/protos/mock_core.proto",
}
