// Code generated by protoc-gen-go. DO NOT EDIT.
// source: grpc.proto

/*
Package P4wnP1_grpc is a generated protocol buffer package.

It is generated from these files:
	grpc.proto

It has these top-level messages:
	EventRequest
	EventValue
	Event
	TempDirOrFileRequest
	TempDirOrFileResponse
	ReadFileRequest
	ReadFileResponse
	WriteFileRequest
	FileInfoRequest
	FileInfoResponse
	HIDScriptRequest
	HIDScriptJob
	HIDScriptJobList
	HIDScriptResult
	LEDSettings
	GadgetSettings
	GadgetSettingsEthernet
	GadgetSettingsUMS
	EthernetInterfaceSettings
	DHCPServerSettings
	DHCPServerRange
	DHCPServerStaticHost
	WiFiSettings
	BSSCfg
	Empty
*/
package P4wnP1_grpc

import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"

import (
	context "golang.org/x/net/context"
	grpc "google.golang.org/grpc"
)

// 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.ProtoPackageIsVersion2 // please upgrade the proto package

type EthernetInterfaceSettings_Mode int32

const (
	EthernetInterfaceSettings_MANUAL      EthernetInterfaceSettings_Mode = 0
	EthernetInterfaceSettings_DHCP_CLIENT EthernetInterfaceSettings_Mode = 1
	EthernetInterfaceSettings_DHCP_SERVER EthernetInterfaceSettings_Mode = 2
)

var EthernetInterfaceSettings_Mode_name = map[int32]string{
	0: "MANUAL",
	1: "DHCP_CLIENT",
	2: "DHCP_SERVER",
}
var EthernetInterfaceSettings_Mode_value = map[string]int32{
	"MANUAL":      0,
	"DHCP_CLIENT": 1,
	"DHCP_SERVER": 2,
}

func (x EthernetInterfaceSettings_Mode) String() string {
	return proto.EnumName(EthernetInterfaceSettings_Mode_name, int32(x))
}
func (EthernetInterfaceSettings_Mode) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor0, []int{18, 0}
}

type WiFiSettings_Mode int32

const (
	WiFiSettings_AP              WiFiSettings_Mode = 0
	WiFiSettings_STA             WiFiSettings_Mode = 1
	WiFiSettings_STA_FAILOVER_AP WiFiSettings_Mode = 2
)

var WiFiSettings_Mode_name = map[int32]string{
	0: "AP",
	1: "STA",
	2: "STA_FAILOVER_AP",
}
var WiFiSettings_Mode_value = map[string]int32{
	"AP":              0,
	"STA":             1,
	"STA_FAILOVER_AP": 2,
}

func (x WiFiSettings_Mode) String() string {
	return proto.EnumName(WiFiSettings_Mode_name, int32(x))
}
func (WiFiSettings_Mode) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{22, 0} }

type WiFiSettings_APAuthMode int32

const (
	WiFiSettings_WPA2_PSK WiFiSettings_APAuthMode = 0
	WiFiSettings_OPEN     WiFiSettings_APAuthMode = 1
)

var WiFiSettings_APAuthMode_name = map[int32]string{
	0: "WPA2_PSK",
	1: "OPEN",
}
var WiFiSettings_APAuthMode_value = map[string]int32{
	"WPA2_PSK": 0,
	"OPEN":     1,
}

func (x WiFiSettings_APAuthMode) String() string {
	return proto.EnumName(WiFiSettings_APAuthMode_name, int32(x))
}
func (WiFiSettings_APAuthMode) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{22, 1} }

// Events
type EventRequest struct {
	ListenType int64 `protobuf:"varint,1,opt,name=listenType" json:"listenType,omitempty"`
}

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

func (m *EventRequest) GetListenType() int64 {
	if m != nil {
		return m.ListenType
	}
	return 0
}

type EventValue struct {
	// Types that are valid to be assigned to Val:
	//	*EventValue_Tstring
	//	*EventValue_Tbool
	//	*EventValue_Tint64
	Val isEventValue_Val `protobuf_oneof:"val"`
}

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

type isEventValue_Val interface {
	isEventValue_Val()
}

type EventValue_Tstring struct {
	Tstring string `protobuf:"bytes,1,opt,name=tstring,oneof"`
}
type EventValue_Tbool struct {
	Tbool bool `protobuf:"varint,2,opt,name=tbool,oneof"`
}
type EventValue_Tint64 struct {
	Tint64 int64 `protobuf:"varint,3,opt,name=tint64,oneof"`
}

func (*EventValue_Tstring) isEventValue_Val() {}
func (*EventValue_Tbool) isEventValue_Val()   {}
func (*EventValue_Tint64) isEventValue_Val()  {}

func (m *EventValue) GetVal() isEventValue_Val {
	if m != nil {
		return m.Val
	}
	return nil
}

func (m *EventValue) GetTstring() string {
	if x, ok := m.GetVal().(*EventValue_Tstring); ok {
		return x.Tstring
	}
	return ""
}

func (m *EventValue) GetTbool() bool {
	if x, ok := m.GetVal().(*EventValue_Tbool); ok {
		return x.Tbool
	}
	return false
}

func (m *EventValue) GetTint64() int64 {
	if x, ok := m.GetVal().(*EventValue_Tint64); ok {
		return x.Tint64
	}
	return 0
}

// XXX_OneofFuncs is for the internal use of the proto package.
func (*EventValue) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
	return _EventValue_OneofMarshaler, _EventValue_OneofUnmarshaler, _EventValue_OneofSizer, []interface{}{
		(*EventValue_Tstring)(nil),
		(*EventValue_Tbool)(nil),
		(*EventValue_Tint64)(nil),
	}
}

func _EventValue_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
	m := msg.(*EventValue)
	// val
	switch x := m.Val.(type) {
	case *EventValue_Tstring:
		b.EncodeVarint(1<<3 | proto.WireBytes)
		b.EncodeStringBytes(x.Tstring)
	case *EventValue_Tbool:
		t := uint64(0)
		if x.Tbool {
			t = 1
		}
		b.EncodeVarint(2<<3 | proto.WireVarint)
		b.EncodeVarint(t)
	case *EventValue_Tint64:
		b.EncodeVarint(3<<3 | proto.WireVarint)
		b.EncodeVarint(uint64(x.Tint64))
	case nil:
	default:
		return fmt.Errorf("EventValue.Val has unexpected type %T", x)
	}
	return nil
}

func _EventValue_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
	m := msg.(*EventValue)
	switch tag {
	case 1: // val.tstring
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeStringBytes()
		m.Val = &EventValue_Tstring{x}
		return true, err
	case 2: // val.tbool
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeVarint()
		m.Val = &EventValue_Tbool{x != 0}
		return true, err
	case 3: // val.tint64
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeVarint()
		m.Val = &EventValue_Tint64{int64(x)}
		return true, err
	default:
		return false, nil
	}
}

func _EventValue_OneofSizer(msg proto.Message) (n int) {
	m := msg.(*EventValue)
	// val
	switch x := m.Val.(type) {
	case *EventValue_Tstring:
		n += proto.SizeVarint(1<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(len(x.Tstring)))
		n += len(x.Tstring)
	case *EventValue_Tbool:
		n += proto.SizeVarint(2<<3 | proto.WireVarint)
		n += 1
	case *EventValue_Tint64:
		n += proto.SizeVarint(3<<3 | proto.WireVarint)
		n += proto.SizeVarint(uint64(x.Tint64))
	case nil:
	default:
		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
	}
	return n
}

type Event struct {
	Type   int64         `protobuf:"varint,1,opt,name=type" json:"type,omitempty"`
	Values []*EventValue `protobuf:"bytes,2,rep,name=values" json:"values,omitempty"`
}

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

func (m *Event) GetType() int64 {
	if m != nil {
		return m.Type
	}
	return 0
}

func (m *Event) GetValues() []*EventValue {
	if m != nil {
		return m.Values
	}
	return nil
}

// File System
type TempDirOrFileRequest struct {
	Dir        string `protobuf:"bytes,1,opt,name=dir" json:"dir,omitempty"`
	Prefix     string `protobuf:"bytes,2,opt,name=prefix" json:"prefix,omitempty"`
	OnlyFolder bool   `protobuf:"varint,3,opt,name=onlyFolder" json:"onlyFolder,omitempty"`
}

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

func (m *TempDirOrFileRequest) GetDir() string {
	if m != nil {
		return m.Dir
	}
	return ""
}

func (m *TempDirOrFileRequest) GetPrefix() string {
	if m != nil {
		return m.Prefix
	}
	return ""
}

func (m *TempDirOrFileRequest) GetOnlyFolder() bool {
	if m != nil {
		return m.OnlyFolder
	}
	return false
}

type TempDirOrFileResponse struct {
	ResultPath string `protobuf:"bytes,1,opt,name=resultPath" json:"resultPath,omitempty"`
}

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

func (m *TempDirOrFileResponse) GetResultPath() string {
	if m != nil {
		return m.ResultPath
	}
	return ""
}

type ReadFileRequest struct {
	Path  string `protobuf:"bytes,1,opt,name=path" json:"path,omitempty"`
	Start int64  `protobuf:"varint,2,opt,name=start" json:"start,omitempty"`
	Data  []byte `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
}

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

func (m *ReadFileRequest) GetPath() string {
	if m != nil {
		return m.Path
	}
	return ""
}

func (m *ReadFileRequest) GetStart() int64 {
	if m != nil {
		return m.Start
	}
	return 0
}

func (m *ReadFileRequest) GetData() []byte {
	if m != nil {
		return m.Data
	}
	return nil
}

type ReadFileResponse struct {
	ReadCount int64 `protobuf:"varint,1,opt,name=readCount" json:"readCount,omitempty"`
}

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

func (m *ReadFileResponse) GetReadCount() int64 {
	if m != nil {
		return m.ReadCount
	}
	return 0
}

type WriteFileRequest struct {
	Path         string `protobuf:"bytes,1,opt,name=path" json:"path,omitempty"`
	Append       bool   `protobuf:"varint,2,opt,name=append" json:"append,omitempty"`
	MustNotExist bool   `protobuf:"varint,3,opt,name=mustNotExist" json:"mustNotExist,omitempty"`
	Data         []byte `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"`
}

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

func (m *WriteFileRequest) GetPath() string {
	if m != nil {
		return m.Path
	}
	return ""
}

func (m *WriteFileRequest) GetAppend() bool {
	if m != nil {
		return m.Append
	}
	return false
}

func (m *WriteFileRequest) GetMustNotExist() bool {
	if m != nil {
		return m.MustNotExist
	}
	return false
}

func (m *WriteFileRequest) GetData() []byte {
	if m != nil {
		return m.Data
	}
	return nil
}

type FileInfoRequest struct {
	Path string `protobuf:"bytes,1,opt,name=path" json:"path,omitempty"`
}

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

func (m *FileInfoRequest) GetPath() string {
	if m != nil {
		return m.Path
	}
	return ""
}

type FileInfoResponse struct {
	Name    string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Size    int64  `protobuf:"varint,2,opt,name=size" json:"size,omitempty"`
	Mode    uint32 `protobuf:"varint,3,opt,name=mode" json:"mode,omitempty"`
	ModTime int64  `protobuf:"varint,4,opt,name=modTime" json:"modTime,omitempty"`
	IsDir   bool   `protobuf:"varint,5,opt,name=isDir" json:"isDir,omitempty"`
}

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

func (m *FileInfoResponse) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *FileInfoResponse) GetSize() int64 {
	if m != nil {
		return m.Size
	}
	return 0
}

func (m *FileInfoResponse) GetMode() uint32 {
	if m != nil {
		return m.Mode
	}
	return 0
}

func (m *FileInfoResponse) GetModTime() int64 {
	if m != nil {
		return m.ModTime
	}
	return 0
}

func (m *FileInfoResponse) GetIsDir() bool {
	if m != nil {
		return m.IsDir
	}
	return false
}

// HID
type HIDScriptRequest struct {
	ScriptPath     string `protobuf:"bytes,1,opt,name=scriptPath" json:"scriptPath,omitempty"`
	TimeoutSeconds uint32 `protobuf:"varint,2,opt,name=timeoutSeconds" json:"timeoutSeconds,omitempty"`
}

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

func (m *HIDScriptRequest) GetScriptPath() string {
	if m != nil {
		return m.ScriptPath
	}
	return ""
}

func (m *HIDScriptRequest) GetTimeoutSeconds() uint32 {
	if m != nil {
		return m.TimeoutSeconds
	}
	return 0
}

type HIDScriptJob struct {
	Id uint32 `protobuf:"varint,1,opt,name=id" json:"id,omitempty"`
}

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

func (m *HIDScriptJob) GetId() uint32 {
	if m != nil {
		return m.Id
	}
	return 0
}

type HIDScriptJobList struct {
	Ids []uint32 `protobuf:"varint,1,rep,packed,name=ids" json:"ids,omitempty"`
}

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

func (m *HIDScriptJobList) GetIds() []uint32 {
	if m != nil {
		return m.Ids
	}
	return nil
}

type HIDScriptResult struct {
	Job        *HIDScriptJob `protobuf:"bytes,1,opt,name=job" json:"job,omitempty"`
	IsFinished bool          `protobuf:"varint,2,opt,name=isFinished" json:"isFinished,omitempty"`
	ResultJson string        `protobuf:"bytes,3,opt,name=resultJson" json:"resultJson,omitempty"`
}

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

func (m *HIDScriptResult) GetJob() *HIDScriptJob {
	if m != nil {
		return m.Job
	}
	return nil
}

func (m *HIDScriptResult) GetIsFinished() bool {
	if m != nil {
		return m.IsFinished
	}
	return false
}

func (m *HIDScriptResult) GetResultJson() string {
	if m != nil {
		return m.ResultJson
	}
	return ""
}

// LED
type LEDSettings struct {
	BlinkCount uint32 `protobuf:"varint,1,opt,name=blink_count,json=blinkCount" json:"blink_count,omitempty"`
}

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

func (m *LEDSettings) GetBlinkCount() uint32 {
	if m != nil {
		return m.BlinkCount
	}
	return 0
}

// USB Gadget
type GadgetSettings struct {
	Enabled          bool                    `protobuf:"varint,1,opt,name=enabled" json:"enabled,omitempty"`
	Vid              string                  `protobuf:"bytes,2,opt,name=vid" json:"vid,omitempty"`
	Pid              string                  `protobuf:"bytes,3,opt,name=pid" json:"pid,omitempty"`
	Manufacturer     string                  `protobuf:"bytes,4,opt,name=manufacturer" json:"manufacturer,omitempty"`
	Product          string                  `protobuf:"bytes,5,opt,name=product" json:"product,omitempty"`
	Serial           string                  `protobuf:"bytes,6,opt,name=serial" json:"serial,omitempty"`
	Use_CDC_ECM      bool                    `protobuf:"varint,7,opt,name=use_CDC_ECM,json=useCDCECM" json:"use_CDC_ECM,omitempty"`
	Use_RNDIS        bool                    `protobuf:"varint,8,opt,name=use_RNDIS,json=useRNDIS" json:"use_RNDIS,omitempty"`
	Use_HID_KEYBOARD bool                    `protobuf:"varint,9,opt,name=use_HID_KEYBOARD,json=useHIDKEYBOARD" json:"use_HID_KEYBOARD,omitempty"`
	Use_HID_MOUSE    bool                    `protobuf:"varint,10,opt,name=use_HID_MOUSE,json=useHIDMOUSE" json:"use_HID_MOUSE,omitempty"`
	Use_HID_RAW      bool                    `protobuf:"varint,11,opt,name=use_HID_RAW,json=useHIDRAW" json:"use_HID_RAW,omitempty"`
	Use_UMS          bool                    `protobuf:"varint,12,opt,name=use_UMS,json=useUMS" json:"use_UMS,omitempty"`
	Use_SERIAL       bool                    `protobuf:"varint,13,opt,name=use_SERIAL,json=useSERIAL" json:"use_SERIAL,omitempty"`
	RndisSettings    *GadgetSettingsEthernet `protobuf:"bytes,14,opt,name=rndis_settings,json=rndisSettings" json:"rndis_settings,omitempty"`
	CdcEcmSettings   *GadgetSettingsEthernet `protobuf:"bytes,15,opt,name=cdc_ecm_settings,json=cdcEcmSettings" json:"cdc_ecm_settings,omitempty"`
	UmsSettings      *GadgetSettingsUMS      `protobuf:"bytes,16,opt,name=ums_settings,json=umsSettings" json:"ums_settings,omitempty"`
}

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

func (m *GadgetSettings) GetEnabled() bool {
	if m != nil {
		return m.Enabled
	}
	return false
}

func (m *GadgetSettings) GetVid() string {
	if m != nil {
		return m.Vid
	}
	return ""
}

func (m *GadgetSettings) GetPid() string {
	if m != nil {
		return m.Pid
	}
	return ""
}

func (m *GadgetSettings) GetManufacturer() string {
	if m != nil {
		return m.Manufacturer
	}
	return ""
}

func (m *GadgetSettings) GetProduct() string {
	if m != nil {
		return m.Product
	}
	return ""
}

func (m *GadgetSettings) GetSerial() string {
	if m != nil {
		return m.Serial
	}
	return ""
}

func (m *GadgetSettings) GetUse_CDC_ECM() bool {
	if m != nil {
		return m.Use_CDC_ECM
	}
	return false
}

func (m *GadgetSettings) GetUse_RNDIS() bool {
	if m != nil {
		return m.Use_RNDIS
	}
	return false
}

func (m *GadgetSettings) GetUse_HID_KEYBOARD() bool {
	if m != nil {
		return m.Use_HID_KEYBOARD
	}
	return false
}

func (m *GadgetSettings) GetUse_HID_MOUSE() bool {
	if m != nil {
		return m.Use_HID_MOUSE
	}
	return false
}

func (m *GadgetSettings) GetUse_HID_RAW() bool {
	if m != nil {
		return m.Use_HID_RAW
	}
	return false
}

func (m *GadgetSettings) GetUse_UMS() bool {
	if m != nil {
		return m.Use_UMS
	}
	return false
}

func (m *GadgetSettings) GetUse_SERIAL() bool {
	if m != nil {
		return m.Use_SERIAL
	}
	return false
}

func (m *GadgetSettings) GetRndisSettings() *GadgetSettingsEthernet {
	if m != nil {
		return m.RndisSettings
	}
	return nil
}

func (m *GadgetSettings) GetCdcEcmSettings() *GadgetSettingsEthernet {
	if m != nil {
		return m.CdcEcmSettings
	}
	return nil
}

func (m *GadgetSettings) GetUmsSettings() *GadgetSettingsUMS {
	if m != nil {
		return m.UmsSettings
	}
	return nil
}

type GadgetSettingsEthernet struct {
	HostAddr string `protobuf:"bytes,1,opt,name=host_addr,json=hostAddr" json:"host_addr,omitempty"`
	DevAddr  string `protobuf:"bytes,2,opt,name=dev_addr,json=devAddr" json:"dev_addr,omitempty"`
}

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

func (m *GadgetSettingsEthernet) GetHostAddr() string {
	if m != nil {
		return m.HostAddr
	}
	return ""
}

func (m *GadgetSettingsEthernet) GetDevAddr() string {
	if m != nil {
		return m.DevAddr
	}
	return ""
}

type GadgetSettingsUMS struct {
	Cdrom bool   `protobuf:"varint,1,opt,name=cdrom" json:"cdrom,omitempty"`
	File  string `protobuf:"bytes,2,opt,name=file" json:"file,omitempty"`
}

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

func (m *GadgetSettingsUMS) GetCdrom() bool {
	if m != nil {
		return m.Cdrom
	}
	return false
}

func (m *GadgetSettingsUMS) GetFile() string {
	if m != nil {
		return m.File
	}
	return ""
}

type EthernetInterfaceSettings struct {
	Name               string                         `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Mode               EthernetInterfaceSettings_Mode `protobuf:"varint,2,opt,name=mode,enum=P4wnP1_grpc.EthernetInterfaceSettings_Mode" json:"mode,omitempty"`
	IpAddress4         string                         `protobuf:"bytes,3,opt,name=ipAddress4" json:"ipAddress4,omitempty"`
	Netmask4           string                         `protobuf:"bytes,4,opt,name=netmask4" json:"netmask4,omitempty"`
	Enabled            bool                           `protobuf:"varint,5,opt,name=enabled" json:"enabled,omitempty"`
	DhcpServerSettings *DHCPServerSettings            `protobuf:"bytes,6,opt,name=dhcpServerSettings" json:"dhcpServerSettings,omitempty"`
}

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

func (m *EthernetInterfaceSettings) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *EthernetInterfaceSettings) GetMode() EthernetInterfaceSettings_Mode {
	if m != nil {
		return m.Mode
	}
	return EthernetInterfaceSettings_MANUAL
}

func (m *EthernetInterfaceSettings) GetIpAddress4() string {
	if m != nil {
		return m.IpAddress4
	}
	return ""
}

func (m *EthernetInterfaceSettings) GetNetmask4() string {
	if m != nil {
		return m.Netmask4
	}
	return ""
}

func (m *EthernetInterfaceSettings) GetEnabled() bool {
	if m != nil {
		return m.Enabled
	}
	return false
}

func (m *EthernetInterfaceSettings) GetDhcpServerSettings() *DHCPServerSettings {
	if m != nil {
		return m.DhcpServerSettings
	}
	return nil
}

// DHCP
type DHCPServerSettings struct {
	ListenPort         uint32             `protobuf:"varint,1,opt,name=listenPort" json:"listenPort,omitempty"`
	ListenInterface    string             `protobuf:"bytes,2,opt,name=listenInterface" json:"listenInterface,omitempty"`
	LeaseFile          string             `protobuf:"bytes,3,opt,name=leaseFile" json:"leaseFile,omitempty"`
	NotAuthoritative   bool               `protobuf:"varint,4,opt,name=notAuthoritative" json:"notAuthoritative,omitempty"`
	DoNotBindInterface bool               `protobuf:"varint,5,opt,name=doNotBindInterface" json:"doNotBindInterface,omitempty"`
	CallbackScript     string             `protobuf:"bytes,6,opt,name=callbackScript" json:"callbackScript,omitempty"`
	Ranges             []*DHCPServerRange `protobuf:"bytes,7,rep,name=ranges" json:"ranges,omitempty"`
	// repeated DHCPServerOption options = 8;
	Options     map[uint32]string       `protobuf:"bytes,8,rep,name=options" json:"options,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	StaticHosts []*DHCPServerStaticHost `protobuf:"bytes,9,rep,name=staticHosts" json:"staticHosts,omitempty"`
}

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

func (m *DHCPServerSettings) GetListenPort() uint32 {
	if m != nil {
		return m.ListenPort
	}
	return 0
}

func (m *DHCPServerSettings) GetListenInterface() string {
	if m != nil {
		return m.ListenInterface
	}
	return ""
}

func (m *DHCPServerSettings) GetLeaseFile() string {
	if m != nil {
		return m.LeaseFile
	}
	return ""
}

func (m *DHCPServerSettings) GetNotAuthoritative() bool {
	if m != nil {
		return m.NotAuthoritative
	}
	return false
}

func (m *DHCPServerSettings) GetDoNotBindInterface() bool {
	if m != nil {
		return m.DoNotBindInterface
	}
	return false
}

func (m *DHCPServerSettings) GetCallbackScript() string {
	if m != nil {
		return m.CallbackScript
	}
	return ""
}

func (m *DHCPServerSettings) GetRanges() []*DHCPServerRange {
	if m != nil {
		return m.Ranges
	}
	return nil
}

func (m *DHCPServerSettings) GetOptions() map[uint32]string {
	if m != nil {
		return m.Options
	}
	return nil
}

func (m *DHCPServerSettings) GetStaticHosts() []*DHCPServerStaticHost {
	if m != nil {
		return m.StaticHosts
	}
	return nil
}

// Could be used for IPv4 or IPv6 (refer dnsmasq docs), nor field for prefix length (default is 64)
type DHCPServerRange struct {
	RangeLower string `protobuf:"bytes,1,opt,name=rangeLower" json:"rangeLower,omitempty"`
	RangeUpper string `protobuf:"bytes,2,opt,name=rangeUpper" json:"rangeUpper,omitempty"`
	LeaseTime  string `protobuf:"bytes,3,opt,name=leaseTime" json:"leaseTime,omitempty"`
}

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

func (m *DHCPServerRange) GetRangeLower() string {
	if m != nil {
		return m.RangeLower
	}
	return ""
}

func (m *DHCPServerRange) GetRangeUpper() string {
	if m != nil {
		return m.RangeUpper
	}
	return ""
}

func (m *DHCPServerRange) GetLeaseTime() string {
	if m != nil {
		return m.LeaseTime
	}
	return ""
}

// Used for static leases
type DHCPServerStaticHost struct {
	Mac string `protobuf:"bytes,1,opt,name=mac" json:"mac,omitempty"`
	Ip  string `protobuf:"bytes,2,opt,name=ip" json:"ip,omitempty"`
}

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

func (m *DHCPServerStaticHost) GetMac() string {
	if m != nil {
		return m.Mac
	}
	return ""
}

func (m *DHCPServerStaticHost) GetIp() string {
	if m != nil {
		return m.Ip
	}
	return ""
}

// WiFi
type WiFiSettings struct {
	Disabled      bool                    `protobuf:"varint,1,opt,name=disabled" json:"disabled,omitempty"`
	Reg           string                  `protobuf:"bytes,2,opt,name=reg" json:"reg,omitempty"`
	Mode          WiFiSettings_Mode       `protobuf:"varint,3,opt,name=mode,enum=P4wnP1_grpc.WiFiSettings_Mode" json:"mode,omitempty"`
	AuthMode      WiFiSettings_APAuthMode `protobuf:"varint,4,opt,name=auth_mode,json=authMode,enum=P4wnP1_grpc.WiFiSettings_APAuthMode" json:"auth_mode,omitempty"`
	ApChannel     uint32                  `protobuf:"varint,5,opt,name=ap_channel,json=apChannel" json:"ap_channel,omitempty"`
	BssCfgAP      *BSSCfg                 `protobuf:"bytes,6,opt,name=BssCfgAP" json:"BssCfgAP,omitempty"`
	BssCfgClient  *BSSCfg                 `protobuf:"bytes,7,opt,name=BssCfgClient" json:"BssCfgClient,omitempty"`
	ApHideSsid    bool                    `protobuf:"varint,8,opt,name=ap_hide_ssid,json=apHideSsid" json:"ap_hide_ssid,omitempty"`
	DisableNexmon bool                    `protobuf:"varint,10,opt,name=disable_nexmon,json=disableNexmon" json:"disable_nexmon,omitempty"`
}

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

func (m *WiFiSettings) GetDisabled() bool {
	if m != nil {
		return m.Disabled
	}
	return false
}

func (m *WiFiSettings) GetReg() string {
	if m != nil {
		return m.Reg
	}
	return ""
}

func (m *WiFiSettings) GetMode() WiFiSettings_Mode {
	if m != nil {
		return m.Mode
	}
	return WiFiSettings_AP
}

func (m *WiFiSettings) GetAuthMode() WiFiSettings_APAuthMode {
	if m != nil {
		return m.AuthMode
	}
	return WiFiSettings_WPA2_PSK
}

func (m *WiFiSettings) GetApChannel() uint32 {
	if m != nil {
		return m.ApChannel
	}
	return 0
}

func (m *WiFiSettings) GetBssCfgAP() *BSSCfg {
	if m != nil {
		return m.BssCfgAP
	}
	return nil
}

func (m *WiFiSettings) GetBssCfgClient() *BSSCfg {
	if m != nil {
		return m.BssCfgClient
	}
	return nil
}

func (m *WiFiSettings) GetApHideSsid() bool {
	if m != nil {
		return m.ApHideSsid
	}
	return false
}

func (m *WiFiSettings) GetDisableNexmon() bool {
	if m != nil {
		return m.DisableNexmon
	}
	return false
}

type BSSCfg struct {
	SSID string `protobuf:"bytes,1,opt,name=SSID" json:"SSID,omitempty"`
	PSK  string `protobuf:"bytes,2,opt,name=PSK" json:"PSK,omitempty"`
}

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

func (m *BSSCfg) GetSSID() string {
	if m != nil {
		return m.SSID
	}
	return ""
}

func (m *BSSCfg) GetPSK() string {
	if m != nil {
		return m.PSK
	}
	return ""
}

type Empty struct {
}

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

func init() {
	proto.RegisterType((*EventRequest)(nil), "P4wnP1_grpc.EventRequest")
	proto.RegisterType((*EventValue)(nil), "P4wnP1_grpc.EventValue")
	proto.RegisterType((*Event)(nil), "P4wnP1_grpc.Event")
	proto.RegisterType((*TempDirOrFileRequest)(nil), "P4wnP1_grpc.TempDirOrFileRequest")
	proto.RegisterType((*TempDirOrFileResponse)(nil), "P4wnP1_grpc.TempDirOrFileResponse")
	proto.RegisterType((*ReadFileRequest)(nil), "P4wnP1_grpc.ReadFileRequest")
	proto.RegisterType((*ReadFileResponse)(nil), "P4wnP1_grpc.ReadFileResponse")
	proto.RegisterType((*WriteFileRequest)(nil), "P4wnP1_grpc.WriteFileRequest")
	proto.RegisterType((*FileInfoRequest)(nil), "P4wnP1_grpc.FileInfoRequest")
	proto.RegisterType((*FileInfoResponse)(nil), "P4wnP1_grpc.FileInfoResponse")
	proto.RegisterType((*HIDScriptRequest)(nil), "P4wnP1_grpc.HIDScriptRequest")
	proto.RegisterType((*HIDScriptJob)(nil), "P4wnP1_grpc.HIDScriptJob")
	proto.RegisterType((*HIDScriptJobList)(nil), "P4wnP1_grpc.HIDScriptJobList")
	proto.RegisterType((*HIDScriptResult)(nil), "P4wnP1_grpc.HIDScriptResult")
	proto.RegisterType((*LEDSettings)(nil), "P4wnP1_grpc.LEDSettings")
	proto.RegisterType((*GadgetSettings)(nil), "P4wnP1_grpc.GadgetSettings")
	proto.RegisterType((*GadgetSettingsEthernet)(nil), "P4wnP1_grpc.GadgetSettingsEthernet")
	proto.RegisterType((*GadgetSettingsUMS)(nil), "P4wnP1_grpc.GadgetSettingsUMS")
	proto.RegisterType((*EthernetInterfaceSettings)(nil), "P4wnP1_grpc.EthernetInterfaceSettings")
	proto.RegisterType((*DHCPServerSettings)(nil), "P4wnP1_grpc.DHCPServerSettings")
	proto.RegisterType((*DHCPServerRange)(nil), "P4wnP1_grpc.DHCPServerRange")
	proto.RegisterType((*DHCPServerStaticHost)(nil), "P4wnP1_grpc.DHCPServerStaticHost")
	proto.RegisterType((*WiFiSettings)(nil), "P4wnP1_grpc.WiFiSettings")
	proto.RegisterType((*BSSCfg)(nil), "P4wnP1_grpc.BSSCfg")
	proto.RegisterType((*Empty)(nil), "P4wnP1_grpc.Empty")
	proto.RegisterEnum("P4wnP1_grpc.EthernetInterfaceSettings_Mode", EthernetInterfaceSettings_Mode_name, EthernetInterfaceSettings_Mode_value)
	proto.RegisterEnum("P4wnP1_grpc.WiFiSettings_Mode", WiFiSettings_Mode_name, WiFiSettings_Mode_value)
	proto.RegisterEnum("P4wnP1_grpc.WiFiSettings_APAuthMode", WiFiSettings_APAuthMode_name, WiFiSettings_APAuthMode_value)
}

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

// 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.SupportPackageIsVersion4

// Client API for P4WNP1 service

type P4WNP1Client interface {
	// USB gadget
	GetDeployedGadgetSetting(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*GadgetSettings, error)
	DeployGadgetSetting(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*GadgetSettings, error)
	GetGadgetSettings(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*GadgetSettings, error)
	SetGadgetSettings(ctx context.Context, in *GadgetSettings, opts ...grpc.CallOption) (*GadgetSettings, error)
	GetLEDSettings(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*LEDSettings, error)
	SetLEDSettings(ctx context.Context, in *LEDSettings, opts ...grpc.CallOption) (*Empty, error)
	MountUMSFile(ctx context.Context, in *GadgetSettingsUMS, opts ...grpc.CallOption) (*Empty, error)
	// Ethernet
	DeployEthernetInterfaceSettings(ctx context.Context, in *EthernetInterfaceSettings, opts ...grpc.CallOption) (*Empty, error)
	// WiFi
	DeployWifiSettings(ctx context.Context, in *WiFiSettings, opts ...grpc.CallOption) (*Empty, error)
	// HIDScript / job management
	HIDRunScript(ctx context.Context, in *HIDScriptRequest, opts ...grpc.CallOption) (*HIDScriptResult, error)
	HIDRunScriptJob(ctx context.Context, in *HIDScriptRequest, opts ...grpc.CallOption) (*HIDScriptJob, error)
	HIDGetScriptJobResult(ctx context.Context, in *HIDScriptJob, opts ...grpc.CallOption) (*HIDScriptResult, error)
	HIDCancelScriptJob(ctx context.Context, in *HIDScriptJob, opts ...grpc.CallOption) (*Empty, error)
	HIDGetRunningScriptJobs(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*HIDScriptJobList, error)
	HIDCancelAllScriptJobs(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Empty, error)
	// FileSystem
	FSWriteFile(ctx context.Context, in *WriteFileRequest, opts ...grpc.CallOption) (*Empty, error)
	FSReadFile(ctx context.Context, in *ReadFileRequest, opts ...grpc.CallOption) (*ReadFileResponse, error)
	FSGetFileInfo(ctx context.Context, in *FileInfoRequest, opts ...grpc.CallOption) (*FileInfoResponse, error)
	FSCreateTempDirOrFile(ctx context.Context, in *TempDirOrFileRequest, opts ...grpc.CallOption) (*TempDirOrFileResponse, error)
	// Events
	EventListen(ctx context.Context, in *EventRequest, opts ...grpc.CallOption) (P4WNP1_EventListenClient, error)
}

type p4WNP1Client struct {
	cc *grpc.ClientConn
}

func NewP4WNP1Client(cc *grpc.ClientConn) P4WNP1Client {
	return &p4WNP1Client{cc}
}

func (c *p4WNP1Client) GetDeployedGadgetSetting(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*GadgetSettings, error) {
	out := new(GadgetSettings)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/GetDeployedGadgetSetting", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) DeployGadgetSetting(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*GadgetSettings, error) {
	out := new(GadgetSettings)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/DeployGadgetSetting", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) GetGadgetSettings(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*GadgetSettings, error) {
	out := new(GadgetSettings)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/GetGadgetSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) SetGadgetSettings(ctx context.Context, in *GadgetSettings, opts ...grpc.CallOption) (*GadgetSettings, error) {
	out := new(GadgetSettings)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/SetGadgetSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) GetLEDSettings(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*LEDSettings, error) {
	out := new(LEDSettings)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/GetLEDSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) SetLEDSettings(ctx context.Context, in *LEDSettings, opts ...grpc.CallOption) (*Empty, error) {
	out := new(Empty)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/SetLEDSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) MountUMSFile(ctx context.Context, in *GadgetSettingsUMS, opts ...grpc.CallOption) (*Empty, error) {
	out := new(Empty)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/MountUMSFile", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) DeployEthernetInterfaceSettings(ctx context.Context, in *EthernetInterfaceSettings, opts ...grpc.CallOption) (*Empty, error) {
	out := new(Empty)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/DeployEthernetInterfaceSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) DeployWifiSettings(ctx context.Context, in *WiFiSettings, opts ...grpc.CallOption) (*Empty, error) {
	out := new(Empty)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/DeployWifiSettings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) HIDRunScript(ctx context.Context, in *HIDScriptRequest, opts ...grpc.CallOption) (*HIDScriptResult, error) {
	out := new(HIDScriptResult)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/HIDRunScript", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) HIDRunScriptJob(ctx context.Context, in *HIDScriptRequest, opts ...grpc.CallOption) (*HIDScriptJob, error) {
	out := new(HIDScriptJob)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/HIDRunScriptJob", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) HIDGetScriptJobResult(ctx context.Context, in *HIDScriptJob, opts ...grpc.CallOption) (*HIDScriptResult, error) {
	out := new(HIDScriptResult)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/HIDGetScriptJobResult", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) HIDCancelScriptJob(ctx context.Context, in *HIDScriptJob, opts ...grpc.CallOption) (*Empty, error) {
	out := new(Empty)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/HIDCancelScriptJob", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) HIDGetRunningScriptJobs(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*HIDScriptJobList, error) {
	out := new(HIDScriptJobList)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/HIDGetRunningScriptJobs", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) HIDCancelAllScriptJobs(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Empty, error) {
	out := new(Empty)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/HIDCancelAllScriptJobs", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) FSWriteFile(ctx context.Context, in *WriteFileRequest, opts ...grpc.CallOption) (*Empty, error) {
	out := new(Empty)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/FSWriteFile", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) FSReadFile(ctx context.Context, in *ReadFileRequest, opts ...grpc.CallOption) (*ReadFileResponse, error) {
	out := new(ReadFileResponse)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/FSReadFile", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) FSGetFileInfo(ctx context.Context, in *FileInfoRequest, opts ...grpc.CallOption) (*FileInfoResponse, error) {
	out := new(FileInfoResponse)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/FSGetFileInfo", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) FSCreateTempDirOrFile(ctx context.Context, in *TempDirOrFileRequest, opts ...grpc.CallOption) (*TempDirOrFileResponse, error) {
	out := new(TempDirOrFileResponse)
	err := grpc.Invoke(ctx, "/P4wnP1_grpc.P4WNP1/FSCreateTempDirOrFile", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *p4WNP1Client) EventListen(ctx context.Context, in *EventRequest, opts ...grpc.CallOption) (P4WNP1_EventListenClient, error) {
	stream, err := grpc.NewClientStream(ctx, &_P4WNP1_serviceDesc.Streams[0], c.cc, "/P4wnP1_grpc.P4WNP1/EventListen", opts...)
	if err != nil {
		return nil, err
	}
	x := &p4WNP1EventListenClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type P4WNP1_EventListenClient interface {
	Recv() (*Event, error)
	grpc.ClientStream
}

type p4WNP1EventListenClient struct {
	grpc.ClientStream
}

func (x *p4WNP1EventListenClient) Recv() (*Event, error) {
	m := new(Event)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

// Server API for P4WNP1 service

type P4WNP1Server interface {
	// USB gadget
	GetDeployedGadgetSetting(context.Context, *Empty) (*GadgetSettings, error)
	DeployGadgetSetting(context.Context, *Empty) (*GadgetSettings, error)
	GetGadgetSettings(context.Context, *Empty) (*GadgetSettings, error)
	SetGadgetSettings(context.Context, *GadgetSettings) (*GadgetSettings, error)
	GetLEDSettings(context.Context, *Empty) (*LEDSettings, error)
	SetLEDSettings(context.Context, *LEDSettings) (*Empty, error)
	MountUMSFile(context.Context, *GadgetSettingsUMS) (*Empty, error)
	// Ethernet
	DeployEthernetInterfaceSettings(context.Context, *EthernetInterfaceSettings) (*Empty, error)
	// WiFi
	DeployWifiSettings(context.Context, *WiFiSettings) (*Empty, error)
	// HIDScript / job management
	HIDRunScript(context.Context, *HIDScriptRequest) (*HIDScriptResult, error)
	HIDRunScriptJob(context.Context, *HIDScriptRequest) (*HIDScriptJob, error)
	HIDGetScriptJobResult(context.Context, *HIDScriptJob) (*HIDScriptResult, error)
	HIDCancelScriptJob(context.Context, *HIDScriptJob) (*Empty, error)
	HIDGetRunningScriptJobs(context.Context, *Empty) (*HIDScriptJobList, error)
	HIDCancelAllScriptJobs(context.Context, *Empty) (*Empty, error)
	// FileSystem
	FSWriteFile(context.Context, *WriteFileRequest) (*Empty, error)
	FSReadFile(context.Context, *ReadFileRequest) (*ReadFileResponse, error)
	FSGetFileInfo(context.Context, *FileInfoRequest) (*FileInfoResponse, error)
	FSCreateTempDirOrFile(context.Context, *TempDirOrFileRequest) (*TempDirOrFileResponse, error)
	// Events
	EventListen(*EventRequest, P4WNP1_EventListenServer) error
}

func RegisterP4WNP1Server(s *grpc.Server, srv P4WNP1Server) {
	s.RegisterService(&_P4WNP1_serviceDesc, srv)
}

func _P4WNP1_GetDeployedGadgetSetting_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).GetDeployedGadgetSetting(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/GetDeployedGadgetSetting",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).GetDeployedGadgetSetting(ctx, req.(*Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_DeployGadgetSetting_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).DeployGadgetSetting(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/DeployGadgetSetting",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).DeployGadgetSetting(ctx, req.(*Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_GetGadgetSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).GetGadgetSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/GetGadgetSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).GetGadgetSettings(ctx, req.(*Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_SetGadgetSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GadgetSettings)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).SetGadgetSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/SetGadgetSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).SetGadgetSettings(ctx, req.(*GadgetSettings))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_GetLEDSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).GetLEDSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/GetLEDSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).GetLEDSettings(ctx, req.(*Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_SetLEDSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(LEDSettings)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).SetLEDSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/SetLEDSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).SetLEDSettings(ctx, req.(*LEDSettings))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_MountUMSFile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GadgetSettingsUMS)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).MountUMSFile(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/MountUMSFile",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).MountUMSFile(ctx, req.(*GadgetSettingsUMS))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_DeployEthernetInterfaceSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(EthernetInterfaceSettings)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).DeployEthernetInterfaceSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/DeployEthernetInterfaceSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).DeployEthernetInterfaceSettings(ctx, req.(*EthernetInterfaceSettings))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_DeployWifiSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(WiFiSettings)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).DeployWifiSettings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/DeployWifiSettings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).DeployWifiSettings(ctx, req.(*WiFiSettings))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_HIDRunScript_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(HIDScriptRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).HIDRunScript(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/HIDRunScript",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).HIDRunScript(ctx, req.(*HIDScriptRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_HIDRunScriptJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(HIDScriptRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).HIDRunScriptJob(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/HIDRunScriptJob",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).HIDRunScriptJob(ctx, req.(*HIDScriptRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_HIDGetScriptJobResult_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(HIDScriptJob)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).HIDGetScriptJobResult(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/HIDGetScriptJobResult",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).HIDGetScriptJobResult(ctx, req.(*HIDScriptJob))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_HIDCancelScriptJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(HIDScriptJob)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).HIDCancelScriptJob(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/HIDCancelScriptJob",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).HIDCancelScriptJob(ctx, req.(*HIDScriptJob))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_HIDGetRunningScriptJobs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).HIDGetRunningScriptJobs(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/HIDGetRunningScriptJobs",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).HIDGetRunningScriptJobs(ctx, req.(*Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_HIDCancelAllScriptJobs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).HIDCancelAllScriptJobs(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/HIDCancelAllScriptJobs",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).HIDCancelAllScriptJobs(ctx, req.(*Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_FSWriteFile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(WriteFileRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).FSWriteFile(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/FSWriteFile",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).FSWriteFile(ctx, req.(*WriteFileRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_FSReadFile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReadFileRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).FSReadFile(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/FSReadFile",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).FSReadFile(ctx, req.(*ReadFileRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_FSGetFileInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(FileInfoRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).FSGetFileInfo(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/FSGetFileInfo",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).FSGetFileInfo(ctx, req.(*FileInfoRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_FSCreateTempDirOrFile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(TempDirOrFileRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(P4WNP1Server).FSCreateTempDirOrFile(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/P4wnP1_grpc.P4WNP1/FSCreateTempDirOrFile",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(P4WNP1Server).FSCreateTempDirOrFile(ctx, req.(*TempDirOrFileRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _P4WNP1_EventListen_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(EventRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(P4WNP1Server).EventListen(m, &p4WNP1EventListenServer{stream})
}

type P4WNP1_EventListenServer interface {
	Send(*Event) error
	grpc.ServerStream
}

type p4WNP1EventListenServer struct {
	grpc.ServerStream
}

func (x *p4WNP1EventListenServer) Send(m *Event) error {
	return x.ServerStream.SendMsg(m)
}

var _P4WNP1_serviceDesc = grpc.ServiceDesc{
	ServiceName: "P4wnP1_grpc.P4WNP1",
	HandlerType: (*P4WNP1Server)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GetDeployedGadgetSetting",
			Handler:    _P4WNP1_GetDeployedGadgetSetting_Handler,
		},
		{
			MethodName: "DeployGadgetSetting",
			Handler:    _P4WNP1_DeployGadgetSetting_Handler,
		},
		{
			MethodName: "GetGadgetSettings",
			Handler:    _P4WNP1_GetGadgetSettings_Handler,
		},
		{
			MethodName: "SetGadgetSettings",
			Handler:    _P4WNP1_SetGadgetSettings_Handler,
		},
		{
			MethodName: "GetLEDSettings",
			Handler:    _P4WNP1_GetLEDSettings_Handler,
		},
		{
			MethodName: "SetLEDSettings",
			Handler:    _P4WNP1_SetLEDSettings_Handler,
		},
		{
			MethodName: "MountUMSFile",
			Handler:    _P4WNP1_MountUMSFile_Handler,
		},
		{
			MethodName: "DeployEthernetInterfaceSettings",
			Handler:    _P4WNP1_DeployEthernetInterfaceSettings_Handler,
		},
		{
			MethodName: "DeployWifiSettings",
			Handler:    _P4WNP1_DeployWifiSettings_Handler,
		},
		{
			MethodName: "HIDRunScript",
			Handler:    _P4WNP1_HIDRunScript_Handler,
		},
		{
			MethodName: "HIDRunScriptJob",
			Handler:    _P4WNP1_HIDRunScriptJob_Handler,
		},
		{
			MethodName: "HIDGetScriptJobResult",
			Handler:    _P4WNP1_HIDGetScriptJobResult_Handler,
		},
		{
			MethodName: "HIDCancelScriptJob",
			Handler:    _P4WNP1_HIDCancelScriptJob_Handler,
		},
		{
			MethodName: "HIDGetRunningScriptJobs",
			Handler:    _P4WNP1_HIDGetRunningScriptJobs_Handler,
		},
		{
			MethodName: "HIDCancelAllScriptJobs",
			Handler:    _P4WNP1_HIDCancelAllScriptJobs_Handler,
		},
		{
			MethodName: "FSWriteFile",
			Handler:    _P4WNP1_FSWriteFile_Handler,
		},
		{
			MethodName: "FSReadFile",
			Handler:    _P4WNP1_FSReadFile_Handler,
		},
		{
			MethodName: "FSGetFileInfo",
			Handler:    _P4WNP1_FSGetFileInfo_Handler,
		},
		{
			MethodName: "FSCreateTempDirOrFile",
			Handler:    _P4WNP1_FSCreateTempDirOrFile_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "EventListen",
			Handler:       _P4WNP1_EventListen_Handler,
			ServerStreams: true,
		},
	},
	Metadata: "grpc.proto",
}

func init() { proto.RegisterFile("grpc.proto", fileDescriptor0) }

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