pb

package
v0.0.71 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 23, 2019 License: MPL-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetTagValue added in v0.0.71

func GetTagValue(needle string, stack []*ServiceTag) string

func MatchFilter added in v0.0.71

func MatchFilter(needles []*ServiceTag, slice []*ServiceTag) bool

func RegisterLayerServer

func RegisterLayerServer(s *grpc.Server, srv LayerServer)

Types

type ComputeUsage

type ComputeUsage struct {
	Cores                int64    `protobuf:"varint,1,opt,name=Cores,proto3" json:"Cores,omitempty"`
	Goroutines           int64    `protobuf:"varint,2,opt,name=Goroutines,proto3" json:"Goroutines,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*ComputeUsage) Descriptor

func (*ComputeUsage) Descriptor() ([]byte, []int)

func (*ComputeUsage) GetCores

func (m *ComputeUsage) GetCores() int64

func (*ComputeUsage) GetGoroutines

func (m *ComputeUsage) GetGoroutines() int64

func (*ComputeUsage) ProtoMessage

func (*ComputeUsage) ProtoMessage()

func (*ComputeUsage) Reset

func (m *ComputeUsage) Reset()

func (*ComputeUsage) String

func (m *ComputeUsage) String() string

func (*ComputeUsage) XXX_DiscardUnknown

func (m *ComputeUsage) XXX_DiscardUnknown()

func (*ComputeUsage) XXX_Marshal

func (m *ComputeUsage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*ComputeUsage) XXX_Merge

func (m *ComputeUsage) XXX_Merge(src proto.Message)

func (*ComputeUsage) XXX_Size

func (m *ComputeUsage) XXX_Size() int

func (*ComputeUsage) XXX_Unmarshal

func (m *ComputeUsage) XXX_Unmarshal(b []byte) error

type FullState

type FullState struct {
	Parts                []*Part  `protobuf:"bytes,1,rep,name=parts,proto3" json:"parts,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*FullState) Descriptor

func (*FullState) Descriptor() ([]byte, []int)

func (*FullState) GetParts

func (m *FullState) GetParts() []*Part

func (*FullState) ProtoMessage

func (*FullState) ProtoMessage()

func (*FullState) Reset

func (m *FullState) Reset()

func (*FullState) String

func (m *FullState) String() string

func (*FullState) XXX_DiscardUnknown

func (m *FullState) XXX_DiscardUnknown()

func (*FullState) XXX_Marshal

func (m *FullState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*FullState) XXX_Merge

func (m *FullState) XXX_Merge(src proto.Message)

func (*FullState) XXX_Size

func (m *FullState) XXX_Size() int

func (*FullState) XXX_Unmarshal

func (m *FullState) XXX_Unmarshal(b []byte) error

type LayerClient

type LayerClient interface {
	PrepareShutdown(ctx context.Context, in *PrepareShutdownInput, opts ...grpc.CallOption) (*PrepareShutdownOutput, error)
	SendEvent(ctx context.Context, in *SendEventInput, opts ...grpc.CallOption) (*SendEventOutput, error)
}

LayerClient is the client API for Layer service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.

func NewLayerClient

func NewLayerClient(cc *grpc.ClientConn) LayerClient

type LayerServer

type LayerServer interface {
	PrepareShutdown(context.Context, *PrepareShutdownInput) (*PrepareShutdownOutput, error)
	SendEvent(context.Context, *SendEventInput) (*SendEventOutput, error)
}

LayerServer is the server API for Layer service.

type MemoryUsage

type MemoryUsage struct {
	Alloc                uint64   `protobuf:"varint,1,opt,name=Alloc,proto3" json:"Alloc,omitempty"`
	TotalAlloc           uint64   `protobuf:"varint,2,opt,name=TotalAlloc,proto3" json:"TotalAlloc,omitempty"`
	Sys                  uint64   `protobuf:"varint,3,opt,name=Sys,proto3" json:"Sys,omitempty"`
	NumGC                uint32   `protobuf:"varint,4,opt,name=NumGC,proto3" json:"NumGC,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*MemoryUsage) Descriptor

func (*MemoryUsage) Descriptor() ([]byte, []int)

func (*MemoryUsage) GetAlloc

func (m *MemoryUsage) GetAlloc() uint64

func (*MemoryUsage) GetNumGC

func (m *MemoryUsage) GetNumGC() uint32

func (*MemoryUsage) GetSys

func (m *MemoryUsage) GetSys() uint64

func (*MemoryUsage) GetTotalAlloc

func (m *MemoryUsage) GetTotalAlloc() uint64

func (*MemoryUsage) ProtoMessage

func (*MemoryUsage) ProtoMessage()

func (*MemoryUsage) Reset

func (m *MemoryUsage) Reset()

func (*MemoryUsage) String

func (m *MemoryUsage) String() string

func (*MemoryUsage) XXX_DiscardUnknown

func (m *MemoryUsage) XXX_DiscardUnknown()

func (*MemoryUsage) XXX_Marshal

func (m *MemoryUsage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*MemoryUsage) XXX_Merge

func (m *MemoryUsage) XXX_Merge(src proto.Message)

func (*MemoryUsage) XXX_Size

func (m *MemoryUsage) XXX_Size() int

func (*MemoryUsage) XXX_Unmarshal

func (m *MemoryUsage) XXX_Unmarshal(b []byte) error

type Metadata

type Metadata struct {
	ID                   string         `protobuf:"bytes,1,opt,name=ID,proto3" json:"ID,omitempty"`
	Hostname             string         `protobuf:"bytes,3,opt,name=Hostname,proto3" json:"Hostname,omitempty"`
	MemoryUsage          *MemoryUsage   `protobuf:"bytes,7,opt,name=MemoryUsage,proto3" json:"MemoryUsage,omitempty"`
	ComputeUsage         *ComputeUsage  `protobuf:"bytes,8,opt,name=ComputeUsage,proto3" json:"ComputeUsage,omitempty"`
	Runtime              string         `protobuf:"bytes,9,opt,name=Runtime,proto3" json:"Runtime,omitempty"`
	HostedServices       []*NodeService `protobuf:"bytes,10,rep,name=HostedServices,proto3" json:"HostedServices,omitempty"`
	Services             []string       `protobuf:"bytes,11,rep,name=Services,proto3" json:"Services,omitempty"`
	Started              int64          `protobuf:"varint,12,opt,name=Started,proto3" json:"Started,omitempty"`
	LastContact          int64          `protobuf:"varint,13,opt,name=LastContact,proto3" json:"LastContact,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (*Metadata) Descriptor

func (*Metadata) Descriptor() ([]byte, []int)

func (*Metadata) GetComputeUsage

func (m *Metadata) GetComputeUsage() *ComputeUsage

func (*Metadata) GetHostedServices

func (m *Metadata) GetHostedServices() []*NodeService

func (*Metadata) GetHostname

func (m *Metadata) GetHostname() string

func (*Metadata) GetID

func (m *Metadata) GetID() string

func (*Metadata) GetLastContact added in v0.0.71

func (m *Metadata) GetLastContact() int64

func (*Metadata) GetMemoryUsage

func (m *Metadata) GetMemoryUsage() *MemoryUsage

func (*Metadata) GetRuntime

func (m *Metadata) GetRuntime() string

func (*Metadata) GetServices

func (m *Metadata) GetServices() []string

func (*Metadata) GetStarted

func (m *Metadata) GetStarted() int64

func (*Metadata) ProtoMessage

func (*Metadata) ProtoMessage()

func (*Metadata) Reset

func (m *Metadata) Reset()

func (*Metadata) String

func (m *Metadata) String() string

func (*Metadata) XXX_DiscardUnknown

func (m *Metadata) XXX_DiscardUnknown()

func (*Metadata) XXX_Marshal

func (m *Metadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Metadata) XXX_Merge

func (m *Metadata) XXX_Merge(src proto.Message)

func (*Metadata) XXX_Size

func (m *Metadata) XXX_Size() int

func (*Metadata) XXX_Unmarshal

func (m *Metadata) XXX_Unmarshal(b []byte) error

type NodeService

type NodeService struct {
	ID                   string        `protobuf:"bytes,1,opt,name=ID,proto3" json:"ID,omitempty"`
	NetworkAddress       string        `protobuf:"bytes,2,opt,name=NetworkAddress,proto3" json:"NetworkAddress,omitempty"`
	Peer                 string        `protobuf:"bytes,3,opt,name=Peer,proto3" json:"Peer,omitempty"`
	Tags                 []*ServiceTag `protobuf:"bytes,4,rep,name=Tags,proto3" json:"Tags,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (*NodeService) Descriptor

func (*NodeService) Descriptor() ([]byte, []int)

func (*NodeService) GetID

func (m *NodeService) GetID() string

func (*NodeService) GetNetworkAddress

func (m *NodeService) GetNetworkAddress() string

func (*NodeService) GetPeer

func (m *NodeService) GetPeer() string

func (*NodeService) GetTags added in v0.0.66

func (m *NodeService) GetTags() []*ServiceTag

func (*NodeService) ProtoMessage

func (*NodeService) ProtoMessage()

func (*NodeService) Reset

func (m *NodeService) Reset()

func (*NodeService) String

func (m *NodeService) String() string

func (*NodeService) XXX_DiscardUnknown

func (m *NodeService) XXX_DiscardUnknown()

func (*NodeService) XXX_Marshal

func (m *NodeService) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*NodeService) XXX_Merge

func (m *NodeService) XXX_Merge(src proto.Message)

func (*NodeService) XXX_Size

func (m *NodeService) XXX_Size() int

func (*NodeService) XXX_Unmarshal

func (m *NodeService) XXX_Unmarshal(b []byte) error

type Part

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

func (*Part) Descriptor

func (*Part) Descriptor() ([]byte, []int)

func (*Part) GetData

func (m *Part) GetData() []byte

func (*Part) GetKey

func (m *Part) GetKey() string

func (*Part) ProtoMessage

func (*Part) ProtoMessage()

func (*Part) Reset

func (m *Part) Reset()

func (*Part) String

func (m *Part) String() string

func (*Part) XXX_DiscardUnknown

func (m *Part) XXX_DiscardUnknown()

func (*Part) XXX_Marshal

func (m *Part) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Part) XXX_Merge

func (m *Part) XXX_Merge(src proto.Message)

func (*Part) XXX_Size

func (m *Part) XXX_Size() int

func (*Part) XXX_Unmarshal

func (m *Part) XXX_Unmarshal(b []byte) error

type PeerMetadataList

type PeerMetadataList struct {
	Metadatas            []*Metadata `protobuf:"bytes,1,rep,name=Metadatas,proto3" json:"Metadatas,omitempty"`
	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
	XXX_unrecognized     []byte      `json:"-"`
	XXX_sizecache        int32       `json:"-"`
}

func (*PeerMetadataList) Descriptor

func (*PeerMetadataList) Descriptor() ([]byte, []int)

func (*PeerMetadataList) GetMetadatas

func (m *PeerMetadataList) GetMetadatas() []*Metadata

func (*PeerMetadataList) ProtoMessage

func (*PeerMetadataList) ProtoMessage()

func (*PeerMetadataList) Reset

func (m *PeerMetadataList) Reset()

func (*PeerMetadataList) String

func (m *PeerMetadataList) String() string

func (*PeerMetadataList) XXX_DiscardUnknown

func (m *PeerMetadataList) XXX_DiscardUnknown()

func (*PeerMetadataList) XXX_Marshal

func (m *PeerMetadataList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*PeerMetadataList) XXX_Merge

func (m *PeerMetadataList) XXX_Merge(src proto.Message)

func (*PeerMetadataList) XXX_Size

func (m *PeerMetadataList) XXX_Size() int

func (*PeerMetadataList) XXX_Unmarshal

func (m *PeerMetadataList) XXX_Unmarshal(b []byte) error

type PrepareShutdownInput added in v0.0.65

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

func (*PrepareShutdownInput) Descriptor added in v0.0.65

func (*PrepareShutdownInput) Descriptor() ([]byte, []int)

func (*PrepareShutdownInput) GetID added in v0.0.65

func (m *PrepareShutdownInput) GetID() string

func (*PrepareShutdownInput) GetIndex added in v0.0.65

func (m *PrepareShutdownInput) GetIndex() uint64

func (*PrepareShutdownInput) ProtoMessage added in v0.0.65

func (*PrepareShutdownInput) ProtoMessage()

func (*PrepareShutdownInput) Reset added in v0.0.65

func (m *PrepareShutdownInput) Reset()

func (*PrepareShutdownInput) String added in v0.0.65

func (m *PrepareShutdownInput) String() string

func (*PrepareShutdownInput) XXX_DiscardUnknown added in v0.0.65

func (m *PrepareShutdownInput) XXX_DiscardUnknown()

func (*PrepareShutdownInput) XXX_Marshal added in v0.0.65

func (m *PrepareShutdownInput) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*PrepareShutdownInput) XXX_Merge added in v0.0.65

func (m *PrepareShutdownInput) XXX_Merge(src proto.Message)

func (*PrepareShutdownInput) XXX_Size added in v0.0.65

func (m *PrepareShutdownInput) XXX_Size() int

func (*PrepareShutdownInput) XXX_Unmarshal added in v0.0.65

func (m *PrepareShutdownInput) XXX_Unmarshal(b []byte) error

type PrepareShutdownOutput added in v0.0.65

type PrepareShutdownOutput struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*PrepareShutdownOutput) Descriptor added in v0.0.65

func (*PrepareShutdownOutput) Descriptor() ([]byte, []int)

func (*PrepareShutdownOutput) ProtoMessage added in v0.0.65

func (*PrepareShutdownOutput) ProtoMessage()

func (*PrepareShutdownOutput) Reset added in v0.0.65

func (m *PrepareShutdownOutput) Reset()

func (*PrepareShutdownOutput) String added in v0.0.65

func (m *PrepareShutdownOutput) String() string

func (*PrepareShutdownOutput) XXX_DiscardUnknown added in v0.0.65

func (m *PrepareShutdownOutput) XXX_DiscardUnknown()

func (*PrepareShutdownOutput) XXX_Marshal added in v0.0.65

func (m *PrepareShutdownOutput) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*PrepareShutdownOutput) XXX_Merge added in v0.0.65

func (m *PrepareShutdownOutput) XXX_Merge(src proto.Message)

func (*PrepareShutdownOutput) XXX_Size added in v0.0.65

func (m *PrepareShutdownOutput) XXX_Size() int

func (*PrepareShutdownOutput) XXX_Unmarshal added in v0.0.65

func (m *PrepareShutdownOutput) XXX_Unmarshal(b []byte) error

type SendEventInput

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

func (*SendEventInput) Descriptor

func (*SendEventInput) Descriptor() ([]byte, []int)

func (*SendEventInput) GetPayload

func (m *SendEventInput) GetPayload() []byte

func (*SendEventInput) ProtoMessage

func (*SendEventInput) ProtoMessage()

func (*SendEventInput) Reset

func (m *SendEventInput) Reset()

func (*SendEventInput) String

func (m *SendEventInput) String() string

func (*SendEventInput) XXX_DiscardUnknown

func (m *SendEventInput) XXX_DiscardUnknown()

func (*SendEventInput) XXX_Marshal

func (m *SendEventInput) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*SendEventInput) XXX_Merge

func (m *SendEventInput) XXX_Merge(src proto.Message)

func (*SendEventInput) XXX_Size

func (m *SendEventInput) XXX_Size() int

func (*SendEventInput) XXX_Unmarshal

func (m *SendEventInput) XXX_Unmarshal(b []byte) error

type SendEventOutput

type SendEventOutput struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*SendEventOutput) Descriptor

func (*SendEventOutput) Descriptor() ([]byte, []int)

func (*SendEventOutput) ProtoMessage

func (*SendEventOutput) ProtoMessage()

func (*SendEventOutput) Reset

func (m *SendEventOutput) Reset()

func (*SendEventOutput) String

func (m *SendEventOutput) String() string

func (*SendEventOutput) XXX_DiscardUnknown

func (m *SendEventOutput) XXX_DiscardUnknown()

func (*SendEventOutput) XXX_Marshal

func (m *SendEventOutput) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*SendEventOutput) XXX_Merge

func (m *SendEventOutput) XXX_Merge(src proto.Message)

func (*SendEventOutput) XXX_Size

func (m *SendEventOutput) XXX_Size() int

func (*SendEventOutput) XXX_Unmarshal

func (m *SendEventOutput) XXX_Unmarshal(b []byte) error

type ServiceTag added in v0.0.71

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

func ParseFilter added in v0.0.71

func ParseFilter(values url.Values) []*ServiceTag

func (*ServiceTag) Descriptor added in v0.0.71

func (*ServiceTag) Descriptor() ([]byte, []int)

func (*ServiceTag) GetKey added in v0.0.71

func (m *ServiceTag) GetKey() string

func (*ServiceTag) GetValue added in v0.0.71

func (m *ServiceTag) GetValue() string

func (*ServiceTag) ProtoMessage added in v0.0.71

func (*ServiceTag) ProtoMessage()

func (*ServiceTag) Reset added in v0.0.71

func (m *ServiceTag) Reset()

func (*ServiceTag) String added in v0.0.71

func (m *ServiceTag) String() string

func (*ServiceTag) XXX_DiscardUnknown added in v0.0.71

func (m *ServiceTag) XXX_DiscardUnknown()

func (*ServiceTag) XXX_Marshal added in v0.0.71

func (m *ServiceTag) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*ServiceTag) XXX_Merge added in v0.0.71

func (m *ServiceTag) XXX_Merge(src proto.Message)

func (*ServiceTag) XXX_Size added in v0.0.71

func (m *ServiceTag) XXX_Size() int

func (*ServiceTag) XXX_Unmarshal added in v0.0.71

func (m *ServiceTag) XXX_Unmarshal(b []byte) error

type StatusInput

type StatusInput struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*StatusInput) Descriptor

func (*StatusInput) Descriptor() ([]byte, []int)

func (*StatusInput) ProtoMessage

func (*StatusInput) ProtoMessage()

func (*StatusInput) Reset

func (m *StatusInput) Reset()

func (*StatusInput) String

func (m *StatusInput) String() string

func (*StatusInput) XXX_DiscardUnknown

func (m *StatusInput) XXX_DiscardUnknown()

func (*StatusInput) XXX_Marshal

func (m *StatusInput) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*StatusInput) XXX_Merge

func (m *StatusInput) XXX_Merge(src proto.Message)

func (*StatusInput) XXX_Size

func (m *StatusInput) XXX_Size() int

func (*StatusInput) XXX_Unmarshal

func (m *StatusInput) XXX_Unmarshal(b []byte) error

type StatusOutput

type StatusOutput struct {
	Layer                string   `protobuf:"bytes,1,opt,name=layer,proto3" json:"layer,omitempty"`
	Status               string   `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*StatusOutput) Descriptor

func (*StatusOutput) Descriptor() ([]byte, []int)

func (*StatusOutput) GetLayer

func (m *StatusOutput) GetLayer() string

func (*StatusOutput) GetStatus

func (m *StatusOutput) GetStatus() string

func (*StatusOutput) ProtoMessage

func (*StatusOutput) ProtoMessage()

func (*StatusOutput) Reset

func (m *StatusOutput) Reset()

func (*StatusOutput) String

func (m *StatusOutput) String() string

func (*StatusOutput) XXX_DiscardUnknown

func (m *StatusOutput) XXX_DiscardUnknown()

func (*StatusOutput) XXX_Marshal

func (m *StatusOutput) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*StatusOutput) XXX_Merge

func (m *StatusOutput) XXX_Merge(src proto.Message)

func (*StatusOutput) XXX_Size

func (m *StatusOutput) XXX_Size() int

func (*StatusOutput) XXX_Unmarshal

func (m *StatusOutput) XXX_Unmarshal(b []byte) error

type UnimplementedLayerServer

type UnimplementedLayerServer struct {
}

UnimplementedLayerServer can be embedded to have forward compatible implementations.

func (*UnimplementedLayerServer) PrepareShutdown added in v0.0.65

func (*UnimplementedLayerServer) SendEvent

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL