|  | @@ -0,0 +1,2273 @@
 | 
	
		
			
				|  |  | +// Code generated by easyjson for marshaling/unmarshaling. DO NOT EDIT.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +package models
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import (
 | 
	
		
			
				|  |  | +	json "encoding/json"
 | 
	
		
			
				|  |  | +	easyjson "github.com/mailru/easyjson"
 | 
	
		
			
				|  |  | +	jlexer "github.com/mailru/easyjson/jlexer"
 | 
	
		
			
				|  |  | +	jwriter "github.com/mailru/easyjson/jwriter"
 | 
	
		
			
				|  |  | +	wgtypes "golang.zx2c4.com/wireguard/wgctrl/wgtypes"
 | 
	
		
			
				|  |  | +	net "net"
 | 
	
		
			
				|  |  | +	netip "net/netip"
 | 
	
		
			
				|  |  | +	time "time"
 | 
	
		
			
				|  |  | +)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// suppress unused package warning
 | 
	
		
			
				|  |  | +var (
 | 
	
		
			
				|  |  | +	_ *json.RawMessage
 | 
	
		
			
				|  |  | +	_ *jlexer.Lexer
 | 
	
		
			
				|  |  | +	_ *jwriter.Writer
 | 
	
		
			
				|  |  | +	_ easyjson.Marshaler
 | 
	
		
			
				|  |  | +)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +func easyjsonDa059d96DecodeGithubComGravitlNetmakerModels(in *jlexer.Lexer, out *HostPeerUpdate) {
 | 
	
		
			
				|  |  | +	isTopLevel := in.IsStart()
 | 
	
		
			
				|  |  | +	if in.IsNull() {
 | 
	
		
			
				|  |  | +		if isTopLevel {
 | 
	
		
			
				|  |  | +			in.Consumed()
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		in.Skip()
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	in.Delim('{')
 | 
	
		
			
				|  |  | +	for !in.IsDelim('}') {
 | 
	
		
			
				|  |  | +		key := in.UnsafeFieldName(false)
 | 
	
		
			
				|  |  | +		in.WantColon()
 | 
	
		
			
				|  |  | +		if in.IsNull() {
 | 
	
		
			
				|  |  | +			in.Skip()
 | 
	
		
			
				|  |  | +			in.WantComma()
 | 
	
		
			
				|  |  | +			continue
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		switch key {
 | 
	
		
			
				|  |  | +		case "host":
 | 
	
		
			
				|  |  | +			easyjsonDa059d96DecodeGithubComGravitlNetmakerModels1(in, &out.Host)
 | 
	
		
			
				|  |  | +		case "server":
 | 
	
		
			
				|  |  | +			out.Server = string(in.String())
 | 
	
		
			
				|  |  | +		case "serverversion":
 | 
	
		
			
				|  |  | +			out.ServerVersion = string(in.String())
 | 
	
		
			
				|  |  | +		case "serveraddrs":
 | 
	
		
			
				|  |  | +			if in.IsNull() {
 | 
	
		
			
				|  |  | +				in.Skip()
 | 
	
		
			
				|  |  | +				out.ServerAddrs = nil
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				in.Delim('[')
 | 
	
		
			
				|  |  | +				if out.ServerAddrs == nil {
 | 
	
		
			
				|  |  | +					if !in.IsDelim(']') {
 | 
	
		
			
				|  |  | +						out.ServerAddrs = make([]ServerAddr, 0, 2)
 | 
	
		
			
				|  |  | +					} else {
 | 
	
		
			
				|  |  | +						out.ServerAddrs = []ServerAddr{}
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +				} else {
 | 
	
		
			
				|  |  | +					out.ServerAddrs = (out.ServerAddrs)[:0]
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				for !in.IsDelim(']') {
 | 
	
		
			
				|  |  | +					var v1 ServerAddr
 | 
	
		
			
				|  |  | +					easyjsonDa059d96DecodeGithubComGravitlNetmakerModels2(in, &v1)
 | 
	
		
			
				|  |  | +					out.ServerAddrs = append(out.ServerAddrs, v1)
 | 
	
		
			
				|  |  | +					in.WantComma()
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				in.Delim(']')
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		case "peers":
 | 
	
		
			
				|  |  | +			if in.IsNull() {
 | 
	
		
			
				|  |  | +				in.Skip()
 | 
	
		
			
				|  |  | +				out.NodePeers = nil
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				in.Delim('[')
 | 
	
		
			
				|  |  | +				if out.NodePeers == nil {
 | 
	
		
			
				|  |  | +					if !in.IsDelim(']') {
 | 
	
		
			
				|  |  | +						out.NodePeers = make([]wgtypes.PeerConfig, 0, 0)
 | 
	
		
			
				|  |  | +					} else {
 | 
	
		
			
				|  |  | +						out.NodePeers = []wgtypes.PeerConfig{}
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +				} else {
 | 
	
		
			
				|  |  | +					out.NodePeers = (out.NodePeers)[:0]
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				for !in.IsDelim(']') {
 | 
	
		
			
				|  |  | +					var v2 wgtypes.PeerConfig
 | 
	
		
			
				|  |  | +					easyjsonDa059d96DecodeGolangZx2c4ComWireguardWgctrlWgtypes(in, &v2)
 | 
	
		
			
				|  |  | +					out.NodePeers = append(out.NodePeers, v2)
 | 
	
		
			
				|  |  | +					in.WantComma()
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				in.Delim(']')
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		case "Peers":
 | 
	
		
			
				|  |  | +			if in.IsNull() {
 | 
	
		
			
				|  |  | +				in.Skip()
 | 
	
		
			
				|  |  | +				out.Peers = nil
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				in.Delim('[')
 | 
	
		
			
				|  |  | +				if out.Peers == nil {
 | 
	
		
			
				|  |  | +					if !in.IsDelim(']') {
 | 
	
		
			
				|  |  | +						out.Peers = make([]wgtypes.PeerConfig, 0, 0)
 | 
	
		
			
				|  |  | +					} else {
 | 
	
		
			
				|  |  | +						out.Peers = []wgtypes.PeerConfig{}
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +				} else {
 | 
	
		
			
				|  |  | +					out.Peers = (out.Peers)[:0]
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				for !in.IsDelim(']') {
 | 
	
		
			
				|  |  | +					var v3 wgtypes.PeerConfig
 | 
	
		
			
				|  |  | +					easyjsonDa059d96DecodeGolangZx2c4ComWireguardWgctrlWgtypes(in, &v3)
 | 
	
		
			
				|  |  | +					out.Peers = append(out.Peers, v3)
 | 
	
		
			
				|  |  | +					in.WantComma()
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				in.Delim(']')
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		case "hostpeerids":
 | 
	
		
			
				|  |  | +			if in.IsNull() {
 | 
	
		
			
				|  |  | +				in.Skip()
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				in.Delim('{')
 | 
	
		
			
				|  |  | +				out.HostPeerIDs = make(HostPeerMap)
 | 
	
		
			
				|  |  | +				for !in.IsDelim('}') {
 | 
	
		
			
				|  |  | +					key := string(in.String())
 | 
	
		
			
				|  |  | +					in.WantColon()
 | 
	
		
			
				|  |  | +					var v4 map[string]IDandAddr
 | 
	
		
			
				|  |  | +					if in.IsNull() {
 | 
	
		
			
				|  |  | +						in.Skip()
 | 
	
		
			
				|  |  | +					} else {
 | 
	
		
			
				|  |  | +						in.Delim('{')
 | 
	
		
			
				|  |  | +						v4 = make(map[string]IDandAddr)
 | 
	
		
			
				|  |  | +						for !in.IsDelim('}') {
 | 
	
		
			
				|  |  | +							key := string(in.String())
 | 
	
		
			
				|  |  | +							in.WantColon()
 | 
	
		
			
				|  |  | +							var v5 IDandAddr
 | 
	
		
			
				|  |  | +							easyjsonDa059d96DecodeGithubComGravitlNetmakerModels3(in, &v5)
 | 
	
		
			
				|  |  | +							(v4)[key] = v5
 | 
	
		
			
				|  |  | +							in.WantComma()
 | 
	
		
			
				|  |  | +						}
 | 
	
		
			
				|  |  | +						in.Delim('}')
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +					(out.HostPeerIDs)[key] = v4
 | 
	
		
			
				|  |  | +					in.WantComma()
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				in.Delim('}')
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		case "proxy_update":
 | 
	
		
			
				|  |  | +			easyjsonDa059d96DecodeGithubComGravitlNetmakerModels4(in, &out.ProxyUpdate)
 | 
	
		
			
				|  |  | +		case "egress_info":
 | 
	
		
			
				|  |  | +			if in.IsNull() {
 | 
	
		
			
				|  |  | +				in.Skip()
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				in.Delim('{')
 | 
	
		
			
				|  |  | +				out.EgressInfo = make(map[string]EgressInfo)
 | 
	
		
			
				|  |  | +				for !in.IsDelim('}') {
 | 
	
		
			
				|  |  | +					key := string(in.String())
 | 
	
		
			
				|  |  | +					in.WantColon()
 | 
	
		
			
				|  |  | +					var v6 EgressInfo
 | 
	
		
			
				|  |  | +					easyjsonDa059d96DecodeGithubComGravitlNetmakerModels5(in, &v6)
 | 
	
		
			
				|  |  | +					(out.EgressInfo)[key] = v6
 | 
	
		
			
				|  |  | +					in.WantComma()
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				in.Delim('}')
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		case "ingress_info":
 | 
	
		
			
				|  |  | +			easyjsonDa059d96DecodeGithubComGravitlNetmakerModels6(in, &out.IngressInfo)
 | 
	
		
			
				|  |  | +		case "peerids":
 | 
	
		
			
				|  |  | +			if in.IsNull() {
 | 
	
		
			
				|  |  | +				in.Skip()
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				in.Delim('{')
 | 
	
		
			
				|  |  | +				out.PeerIDs = make(PeerMap)
 | 
	
		
			
				|  |  | +				for !in.IsDelim('}') {
 | 
	
		
			
				|  |  | +					key := string(in.String())
 | 
	
		
			
				|  |  | +					in.WantColon()
 | 
	
		
			
				|  |  | +					var v7 IDandAddr
 | 
	
		
			
				|  |  | +					easyjsonDa059d96DecodeGithubComGravitlNetmakerModels3(in, &v7)
 | 
	
		
			
				|  |  | +					(out.PeerIDs)[key] = v7
 | 
	
		
			
				|  |  | +					in.WantComma()
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				in.Delim('}')
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		case "host_network_info":
 | 
	
		
			
				|  |  | +			if in.IsNull() {
 | 
	
		
			
				|  |  | +				in.Skip()
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				in.Delim('{')
 | 
	
		
			
				|  |  | +				if !in.IsDelim('}') {
 | 
	
		
			
				|  |  | +					out.HostNetworkInfo = make(HostInfoMap)
 | 
	
		
			
				|  |  | +				} else {
 | 
	
		
			
				|  |  | +					out.HostNetworkInfo = nil
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				for !in.IsDelim('}') {
 | 
	
		
			
				|  |  | +					key := string(in.String())
 | 
	
		
			
				|  |  | +					in.WantColon()
 | 
	
		
			
				|  |  | +					var v8 HostNetworkInfo
 | 
	
		
			
				|  |  | +					easyjsonDa059d96DecodeGithubComGravitlNetmakerModels7(in, &v8)
 | 
	
		
			
				|  |  | +					(out.HostNetworkInfo)[key] = v8
 | 
	
		
			
				|  |  | +					in.WantComma()
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				in.Delim('}')
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		default:
 | 
	
		
			
				|  |  | +			in.SkipRecursive()
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		in.WantComma()
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	in.Delim('}')
 | 
	
		
			
				|  |  | +	if isTopLevel {
 | 
	
		
			
				|  |  | +		in.Consumed()
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +func easyjsonDa059d96EncodeGithubComGravitlNetmakerModels(out *jwriter.Writer, in HostPeerUpdate) {
 | 
	
		
			
				|  |  | +	out.RawByte('{')
 | 
	
		
			
				|  |  | +	first := true
 | 
	
		
			
				|  |  | +	_ = first
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"host\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix[1:])
 | 
	
		
			
				|  |  | +		easyjsonDa059d96EncodeGithubComGravitlNetmakerModels1(out, in.Host)
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"server\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.String(string(in.Server))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"serverversion\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.String(string(in.ServerVersion))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"serveraddrs\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		if in.ServerAddrs == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
 | 
	
		
			
				|  |  | +			out.RawString("null")
 | 
	
		
			
				|  |  | +		} else {
 | 
	
		
			
				|  |  | +			out.RawByte('[')
 | 
	
		
			
				|  |  | +			for v9, v10 := range in.ServerAddrs {
 | 
	
		
			
				|  |  | +				if v9 > 0 {
 | 
	
		
			
				|  |  | +					out.RawByte(',')
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				easyjsonDa059d96EncodeGithubComGravitlNetmakerModels2(out, v10)
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			out.RawByte(']')
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"peers\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		if in.NodePeers == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
 | 
	
		
			
				|  |  | +			out.RawString("null")
 | 
	
		
			
				|  |  | +		} else {
 | 
	
		
			
				|  |  | +			out.RawByte('[')
 | 
	
		
			
				|  |  | +			for v11, v12 := range in.NodePeers {
 | 
	
		
			
				|  |  | +				if v11 > 0 {
 | 
	
		
			
				|  |  | +					out.RawByte(',')
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				easyjsonDa059d96EncodeGolangZx2c4ComWireguardWgctrlWgtypes(out, v12)
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			out.RawByte(']')
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"Peers\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		if in.Peers == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
 | 
	
		
			
				|  |  | +			out.RawString("null")
 | 
	
		
			
				|  |  | +		} else {
 | 
	
		
			
				|  |  | +			out.RawByte('[')
 | 
	
		
			
				|  |  | +			for v13, v14 := range in.Peers {
 | 
	
		
			
				|  |  | +				if v13 > 0 {
 | 
	
		
			
				|  |  | +					out.RawByte(',')
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				easyjsonDa059d96EncodeGolangZx2c4ComWireguardWgctrlWgtypes(out, v14)
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			out.RawByte(']')
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"hostpeerids\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		if in.HostPeerIDs == nil && (out.Flags&jwriter.NilMapAsEmpty) == 0 {
 | 
	
		
			
				|  |  | +			out.RawString(`null`)
 | 
	
		
			
				|  |  | +		} else {
 | 
	
		
			
				|  |  | +			out.RawByte('{')
 | 
	
		
			
				|  |  | +			v15First := true
 | 
	
		
			
				|  |  | +			for v15Name, v15Value := range in.HostPeerIDs {
 | 
	
		
			
				|  |  | +				if v15First {
 | 
	
		
			
				|  |  | +					v15First = false
 | 
	
		
			
				|  |  | +				} else {
 | 
	
		
			
				|  |  | +					out.RawByte(',')
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				out.String(string(v15Name))
 | 
	
		
			
				|  |  | +				out.RawByte(':')
 | 
	
		
			
				|  |  | +				if v15Value == nil && (out.Flags&jwriter.NilMapAsEmpty) == 0 {
 | 
	
		
			
				|  |  | +					out.RawString(`null`)
 | 
	
		
			
				|  |  | +				} else {
 | 
	
		
			
				|  |  | +					out.RawByte('{')
 | 
	
		
			
				|  |  | +					v16First := true
 | 
	
		
			
				|  |  | +					for v16Name, v16Value := range v15Value {
 | 
	
		
			
				|  |  | +						if v16First {
 | 
	
		
			
				|  |  | +							v16First = false
 | 
	
		
			
				|  |  | +						} else {
 | 
	
		
			
				|  |  | +							out.RawByte(',')
 | 
	
		
			
				|  |  | +						}
 | 
	
		
			
				|  |  | +						out.String(string(v16Name))
 | 
	
		
			
				|  |  | +						out.RawByte(':')
 | 
	
		
			
				|  |  | +						easyjsonDa059d96EncodeGithubComGravitlNetmakerModels3(out, v16Value)
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +					out.RawByte('}')
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			out.RawByte('}')
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"proxy_update\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		easyjsonDa059d96EncodeGithubComGravitlNetmakerModels4(out, in.ProxyUpdate)
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"egress_info\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		if in.EgressInfo == nil && (out.Flags&jwriter.NilMapAsEmpty) == 0 {
 | 
	
		
			
				|  |  | +			out.RawString(`null`)
 | 
	
		
			
				|  |  | +		} else {
 | 
	
		
			
				|  |  | +			out.RawByte('{')
 | 
	
		
			
				|  |  | +			v17First := true
 | 
	
		
			
				|  |  | +			for v17Name, v17Value := range in.EgressInfo {
 | 
	
		
			
				|  |  | +				if v17First {
 | 
	
		
			
				|  |  | +					v17First = false
 | 
	
		
			
				|  |  | +				} else {
 | 
	
		
			
				|  |  | +					out.RawByte(',')
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				out.String(string(v17Name))
 | 
	
		
			
				|  |  | +				out.RawByte(':')
 | 
	
		
			
				|  |  | +				easyjsonDa059d96EncodeGithubComGravitlNetmakerModels5(out, v17Value)
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			out.RawByte('}')
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"ingress_info\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		easyjsonDa059d96EncodeGithubComGravitlNetmakerModels6(out, in.IngressInfo)
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"peerids\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		if in.PeerIDs == nil && (out.Flags&jwriter.NilMapAsEmpty) == 0 {
 | 
	
		
			
				|  |  | +			out.RawString(`null`)
 | 
	
		
			
				|  |  | +		} else {
 | 
	
		
			
				|  |  | +			out.RawByte('{')
 | 
	
		
			
				|  |  | +			v18First := true
 | 
	
		
			
				|  |  | +			for v18Name, v18Value := range in.PeerIDs {
 | 
	
		
			
				|  |  | +				if v18First {
 | 
	
		
			
				|  |  | +					v18First = false
 | 
	
		
			
				|  |  | +				} else {
 | 
	
		
			
				|  |  | +					out.RawByte(',')
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				out.String(string(v18Name))
 | 
	
		
			
				|  |  | +				out.RawByte(':')
 | 
	
		
			
				|  |  | +				easyjsonDa059d96EncodeGithubComGravitlNetmakerModels3(out, v18Value)
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			out.RawByte('}')
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	if len(in.HostNetworkInfo) != 0 {
 | 
	
		
			
				|  |  | +		const prefix string = ",\"host_network_info\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		{
 | 
	
		
			
				|  |  | +			out.RawByte('{')
 | 
	
		
			
				|  |  | +			v19First := true
 | 
	
		
			
				|  |  | +			for v19Name, v19Value := range in.HostNetworkInfo {
 | 
	
		
			
				|  |  | +				if v19First {
 | 
	
		
			
				|  |  | +					v19First = false
 | 
	
		
			
				|  |  | +				} else {
 | 
	
		
			
				|  |  | +					out.RawByte(',')
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				out.String(string(v19Name))
 | 
	
		
			
				|  |  | +				out.RawByte(':')
 | 
	
		
			
				|  |  | +				easyjsonDa059d96EncodeGithubComGravitlNetmakerModels7(out, v19Value)
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			out.RawByte('}')
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	out.RawByte('}')
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// MarshalJSON supports json.Marshaler interface
 | 
	
		
			
				|  |  | +func (v HostPeerUpdate) MarshalJSON() ([]byte, error) {
 | 
	
		
			
				|  |  | +	w := jwriter.Writer{}
 | 
	
		
			
				|  |  | +	easyjsonDa059d96EncodeGithubComGravitlNetmakerModels(&w, v)
 | 
	
		
			
				|  |  | +	return w.Buffer.BuildBytes(), w.Error
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// MarshalEasyJSON supports easyjson.Marshaler interface
 | 
	
		
			
				|  |  | +func (v HostPeerUpdate) MarshalEasyJSON(w *jwriter.Writer) {
 | 
	
		
			
				|  |  | +	easyjsonDa059d96EncodeGithubComGravitlNetmakerModels(w, v)
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// UnmarshalJSON supports json.Unmarshaler interface
 | 
	
		
			
				|  |  | +func (v *HostPeerUpdate) UnmarshalJSON(data []byte) error {
 | 
	
		
			
				|  |  | +	r := jlexer.Lexer{Data: data}
 | 
	
		
			
				|  |  | +	easyjsonDa059d96DecodeGithubComGravitlNetmakerModels(&r, v)
 | 
	
		
			
				|  |  | +	return r.Error()
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
 | 
	
		
			
				|  |  | +func (v *HostPeerUpdate) UnmarshalEasyJSON(l *jlexer.Lexer) {
 | 
	
		
			
				|  |  | +	easyjsonDa059d96DecodeGithubComGravitlNetmakerModels(l, v)
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +func easyjsonDa059d96DecodeGithubComGravitlNetmakerModels7(in *jlexer.Lexer, out *HostNetworkInfo) {
 | 
	
		
			
				|  |  | +	isTopLevel := in.IsStart()
 | 
	
		
			
				|  |  | +	if in.IsNull() {
 | 
	
		
			
				|  |  | +		if isTopLevel {
 | 
	
		
			
				|  |  | +			in.Consumed()
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		in.Skip()
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	in.Delim('{')
 | 
	
		
			
				|  |  | +	for !in.IsDelim('}') {
 | 
	
		
			
				|  |  | +		key := in.UnsafeFieldName(false)
 | 
	
		
			
				|  |  | +		in.WantColon()
 | 
	
		
			
				|  |  | +		if in.IsNull() {
 | 
	
		
			
				|  |  | +			in.Skip()
 | 
	
		
			
				|  |  | +			in.WantComma()
 | 
	
		
			
				|  |  | +			continue
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		switch key {
 | 
	
		
			
				|  |  | +		case "interfaces":
 | 
	
		
			
				|  |  | +			if in.IsNull() {
 | 
	
		
			
				|  |  | +				in.Skip()
 | 
	
		
			
				|  |  | +				out.Interfaces = nil
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				in.Delim('[')
 | 
	
		
			
				|  |  | +				if out.Interfaces == nil {
 | 
	
		
			
				|  |  | +					if !in.IsDelim(']') {
 | 
	
		
			
				|  |  | +						out.Interfaces = make([]Iface, 0, 0)
 | 
	
		
			
				|  |  | +					} else {
 | 
	
		
			
				|  |  | +						out.Interfaces = []Iface{}
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +				} else {
 | 
	
		
			
				|  |  | +					out.Interfaces = (out.Interfaces)[:0]
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				for !in.IsDelim(']') {
 | 
	
		
			
				|  |  | +					var v20 Iface
 | 
	
		
			
				|  |  | +					easyjsonDa059d96DecodeGithubComGravitlNetmakerModels8(in, &v20)
 | 
	
		
			
				|  |  | +					out.Interfaces = append(out.Interfaces, v20)
 | 
	
		
			
				|  |  | +					in.WantComma()
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				in.Delim(']')
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		case "proxy_listen_port":
 | 
	
		
			
				|  |  | +			out.ProxyListenPort = int(in.Int())
 | 
	
		
			
				|  |  | +		default:
 | 
	
		
			
				|  |  | +			in.SkipRecursive()
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		in.WantComma()
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	in.Delim('}')
 | 
	
		
			
				|  |  | +	if isTopLevel {
 | 
	
		
			
				|  |  | +		in.Consumed()
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +func easyjsonDa059d96EncodeGithubComGravitlNetmakerModels7(out *jwriter.Writer, in HostNetworkInfo) {
 | 
	
		
			
				|  |  | +	out.RawByte('{')
 | 
	
		
			
				|  |  | +	first := true
 | 
	
		
			
				|  |  | +	_ = first
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"interfaces\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix[1:])
 | 
	
		
			
				|  |  | +		if in.Interfaces == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
 | 
	
		
			
				|  |  | +			out.RawString("null")
 | 
	
		
			
				|  |  | +		} else {
 | 
	
		
			
				|  |  | +			out.RawByte('[')
 | 
	
		
			
				|  |  | +			for v21, v22 := range in.Interfaces {
 | 
	
		
			
				|  |  | +				if v21 > 0 {
 | 
	
		
			
				|  |  | +					out.RawByte(',')
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				easyjsonDa059d96EncodeGithubComGravitlNetmakerModels8(out, v22)
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			out.RawByte(']')
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"proxy_listen_port\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Int(int(in.ProxyListenPort))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	out.RawByte('}')
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +func easyjsonDa059d96DecodeGithubComGravitlNetmakerModels8(in *jlexer.Lexer, out *Iface) {
 | 
	
		
			
				|  |  | +	isTopLevel := in.IsStart()
 | 
	
		
			
				|  |  | +	if in.IsNull() {
 | 
	
		
			
				|  |  | +		if isTopLevel {
 | 
	
		
			
				|  |  | +			in.Consumed()
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		in.Skip()
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	in.Delim('{')
 | 
	
		
			
				|  |  | +	for !in.IsDelim('}') {
 | 
	
		
			
				|  |  | +		key := in.UnsafeFieldName(false)
 | 
	
		
			
				|  |  | +		in.WantColon()
 | 
	
		
			
				|  |  | +		if in.IsNull() {
 | 
	
		
			
				|  |  | +			in.Skip()
 | 
	
		
			
				|  |  | +			in.WantComma()
 | 
	
		
			
				|  |  | +			continue
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		switch key {
 | 
	
		
			
				|  |  | +		case "name":
 | 
	
		
			
				|  |  | +			out.Name = string(in.String())
 | 
	
		
			
				|  |  | +		case "address":
 | 
	
		
			
				|  |  | +			easyjsonDa059d96DecodeNet(in, &out.Address)
 | 
	
		
			
				|  |  | +		case "addressString":
 | 
	
		
			
				|  |  | +			out.AddressString = string(in.String())
 | 
	
		
			
				|  |  | +		default:
 | 
	
		
			
				|  |  | +			in.SkipRecursive()
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		in.WantComma()
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	in.Delim('}')
 | 
	
		
			
				|  |  | +	if isTopLevel {
 | 
	
		
			
				|  |  | +		in.Consumed()
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +func easyjsonDa059d96EncodeGithubComGravitlNetmakerModels8(out *jwriter.Writer, in Iface) {
 | 
	
		
			
				|  |  | +	out.RawByte('{')
 | 
	
		
			
				|  |  | +	first := true
 | 
	
		
			
				|  |  | +	_ = first
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"name\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix[1:])
 | 
	
		
			
				|  |  | +		out.String(string(in.Name))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"address\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		easyjsonDa059d96EncodeNet(out, in.Address)
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"addressString\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.String(string(in.AddressString))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	out.RawByte('}')
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +func easyjsonDa059d96DecodeNet(in *jlexer.Lexer, out *net.IPNet) {
 | 
	
		
			
				|  |  | +	isTopLevel := in.IsStart()
 | 
	
		
			
				|  |  | +	if in.IsNull() {
 | 
	
		
			
				|  |  | +		if isTopLevel {
 | 
	
		
			
				|  |  | +			in.Consumed()
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		in.Skip()
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	in.Delim('{')
 | 
	
		
			
				|  |  | +	for !in.IsDelim('}') {
 | 
	
		
			
				|  |  | +		key := in.UnsafeFieldName(false)
 | 
	
		
			
				|  |  | +		in.WantColon()
 | 
	
		
			
				|  |  | +		if in.IsNull() {
 | 
	
		
			
				|  |  | +			in.Skip()
 | 
	
		
			
				|  |  | +			in.WantComma()
 | 
	
		
			
				|  |  | +			continue
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		switch key {
 | 
	
		
			
				|  |  | +		case "IP":
 | 
	
		
			
				|  |  | +			if data := in.UnsafeBytes(); in.Ok() {
 | 
	
		
			
				|  |  | +				in.AddError((out.IP).UnmarshalText(data))
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		case "Mask":
 | 
	
		
			
				|  |  | +			if in.IsNull() {
 | 
	
		
			
				|  |  | +				in.Skip()
 | 
	
		
			
				|  |  | +				out.Mask = nil
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				out.Mask = in.Bytes()
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		default:
 | 
	
		
			
				|  |  | +			in.SkipRecursive()
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		in.WantComma()
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	in.Delim('}')
 | 
	
		
			
				|  |  | +	if isTopLevel {
 | 
	
		
			
				|  |  | +		in.Consumed()
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +func easyjsonDa059d96EncodeNet(out *jwriter.Writer, in net.IPNet) {
 | 
	
		
			
				|  |  | +	out.RawByte('{')
 | 
	
		
			
				|  |  | +	first := true
 | 
	
		
			
				|  |  | +	_ = first
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"IP\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix[1:])
 | 
	
		
			
				|  |  | +		out.RawText((in.IP).MarshalText())
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"Mask\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Base64Bytes(in.Mask)
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	out.RawByte('}')
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +func easyjsonDa059d96DecodeGithubComGravitlNetmakerModels6(in *jlexer.Lexer, out *IngressInfo) {
 | 
	
		
			
				|  |  | +	isTopLevel := in.IsStart()
 | 
	
		
			
				|  |  | +	if in.IsNull() {
 | 
	
		
			
				|  |  | +		if isTopLevel {
 | 
	
		
			
				|  |  | +			in.Consumed()
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		in.Skip()
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	in.Delim('{')
 | 
	
		
			
				|  |  | +	for !in.IsDelim('}') {
 | 
	
		
			
				|  |  | +		key := in.UnsafeFieldName(false)
 | 
	
		
			
				|  |  | +		in.WantColon()
 | 
	
		
			
				|  |  | +		if in.IsNull() {
 | 
	
		
			
				|  |  | +			in.Skip()
 | 
	
		
			
				|  |  | +			in.WantComma()
 | 
	
		
			
				|  |  | +			continue
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		switch key {
 | 
	
		
			
				|  |  | +		case "ext_peers":
 | 
	
		
			
				|  |  | +			if in.IsNull() {
 | 
	
		
			
				|  |  | +				in.Skip()
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				in.Delim('{')
 | 
	
		
			
				|  |  | +				out.ExtPeers = make(map[string]ExtClientInfo)
 | 
	
		
			
				|  |  | +				for !in.IsDelim('}') {
 | 
	
		
			
				|  |  | +					key := string(in.String())
 | 
	
		
			
				|  |  | +					in.WantColon()
 | 
	
		
			
				|  |  | +					var v26 ExtClientInfo
 | 
	
		
			
				|  |  | +					easyjsonDa059d96DecodeGithubComGravitlNetmakerModels9(in, &v26)
 | 
	
		
			
				|  |  | +					(out.ExtPeers)[key] = v26
 | 
	
		
			
				|  |  | +					in.WantComma()
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				in.Delim('}')
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		case "egress_ranges":
 | 
	
		
			
				|  |  | +			if in.IsNull() {
 | 
	
		
			
				|  |  | +				in.Skip()
 | 
	
		
			
				|  |  | +				out.EgressRanges = nil
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				in.Delim('[')
 | 
	
		
			
				|  |  | +				if out.EgressRanges == nil {
 | 
	
		
			
				|  |  | +					if !in.IsDelim(']') {
 | 
	
		
			
				|  |  | +						out.EgressRanges = make([]string, 0, 4)
 | 
	
		
			
				|  |  | +					} else {
 | 
	
		
			
				|  |  | +						out.EgressRanges = []string{}
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +				} else {
 | 
	
		
			
				|  |  | +					out.EgressRanges = (out.EgressRanges)[:0]
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				for !in.IsDelim(']') {
 | 
	
		
			
				|  |  | +					var v27 string
 | 
	
		
			
				|  |  | +					v27 = string(in.String())
 | 
	
		
			
				|  |  | +					out.EgressRanges = append(out.EgressRanges, v27)
 | 
	
		
			
				|  |  | +					in.WantComma()
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				in.Delim(']')
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		default:
 | 
	
		
			
				|  |  | +			in.SkipRecursive()
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		in.WantComma()
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	in.Delim('}')
 | 
	
		
			
				|  |  | +	if isTopLevel {
 | 
	
		
			
				|  |  | +		in.Consumed()
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +func easyjsonDa059d96EncodeGithubComGravitlNetmakerModels6(out *jwriter.Writer, in IngressInfo) {
 | 
	
		
			
				|  |  | +	out.RawByte('{')
 | 
	
		
			
				|  |  | +	first := true
 | 
	
		
			
				|  |  | +	_ = first
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"ext_peers\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix[1:])
 | 
	
		
			
				|  |  | +		if in.ExtPeers == nil && (out.Flags&jwriter.NilMapAsEmpty) == 0 {
 | 
	
		
			
				|  |  | +			out.RawString(`null`)
 | 
	
		
			
				|  |  | +		} else {
 | 
	
		
			
				|  |  | +			out.RawByte('{')
 | 
	
		
			
				|  |  | +			v28First := true
 | 
	
		
			
				|  |  | +			for v28Name, v28Value := range in.ExtPeers {
 | 
	
		
			
				|  |  | +				if v28First {
 | 
	
		
			
				|  |  | +					v28First = false
 | 
	
		
			
				|  |  | +				} else {
 | 
	
		
			
				|  |  | +					out.RawByte(',')
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				out.String(string(v28Name))
 | 
	
		
			
				|  |  | +				out.RawByte(':')
 | 
	
		
			
				|  |  | +				easyjsonDa059d96EncodeGithubComGravitlNetmakerModels9(out, v28Value)
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			out.RawByte('}')
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"egress_ranges\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		if in.EgressRanges == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
 | 
	
		
			
				|  |  | +			out.RawString("null")
 | 
	
		
			
				|  |  | +		} else {
 | 
	
		
			
				|  |  | +			out.RawByte('[')
 | 
	
		
			
				|  |  | +			for v29, v30 := range in.EgressRanges {
 | 
	
		
			
				|  |  | +				if v29 > 0 {
 | 
	
		
			
				|  |  | +					out.RawByte(',')
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				out.String(string(v30))
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			out.RawByte(']')
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	out.RawByte('}')
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +func easyjsonDa059d96DecodeGithubComGravitlNetmakerModels9(in *jlexer.Lexer, out *ExtClientInfo) {
 | 
	
		
			
				|  |  | +	isTopLevel := in.IsStart()
 | 
	
		
			
				|  |  | +	if in.IsNull() {
 | 
	
		
			
				|  |  | +		if isTopLevel {
 | 
	
		
			
				|  |  | +			in.Consumed()
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		in.Skip()
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	in.Delim('{')
 | 
	
		
			
				|  |  | +	for !in.IsDelim('}') {
 | 
	
		
			
				|  |  | +		key := in.UnsafeFieldName(false)
 | 
	
		
			
				|  |  | +		in.WantColon()
 | 
	
		
			
				|  |  | +		if in.IsNull() {
 | 
	
		
			
				|  |  | +			in.Skip()
 | 
	
		
			
				|  |  | +			in.WantComma()
 | 
	
		
			
				|  |  | +			continue
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		switch key {
 | 
	
		
			
				|  |  | +		case "ingress_gw_addr":
 | 
	
		
			
				|  |  | +			easyjsonDa059d96DecodeNet(in, &out.IngGwAddr)
 | 
	
		
			
				|  |  | +		case "network":
 | 
	
		
			
				|  |  | +			easyjsonDa059d96DecodeNet(in, &out.Network)
 | 
	
		
			
				|  |  | +		case "masquerade":
 | 
	
		
			
				|  |  | +			out.Masquerade = bool(in.Bool())
 | 
	
		
			
				|  |  | +		case "ext_peer_addr":
 | 
	
		
			
				|  |  | +			easyjsonDa059d96DecodeNet(in, &out.ExtPeerAddr)
 | 
	
		
			
				|  |  | +		case "ext_peer_key":
 | 
	
		
			
				|  |  | +			out.ExtPeerKey = string(in.String())
 | 
	
		
			
				|  |  | +		case "peers":
 | 
	
		
			
				|  |  | +			if in.IsNull() {
 | 
	
		
			
				|  |  | +				in.Skip()
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				in.Delim('{')
 | 
	
		
			
				|  |  | +				out.Peers = make(map[string]PeerRouteInfo)
 | 
	
		
			
				|  |  | +				for !in.IsDelim('}') {
 | 
	
		
			
				|  |  | +					key := string(in.String())
 | 
	
		
			
				|  |  | +					in.WantColon()
 | 
	
		
			
				|  |  | +					var v31 PeerRouteInfo
 | 
	
		
			
				|  |  | +					easyjsonDa059d96DecodeGithubComGravitlNetmakerModels10(in, &v31)
 | 
	
		
			
				|  |  | +					(out.Peers)[key] = v31
 | 
	
		
			
				|  |  | +					in.WantComma()
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				in.Delim('}')
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		default:
 | 
	
		
			
				|  |  | +			in.SkipRecursive()
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		in.WantComma()
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	in.Delim('}')
 | 
	
		
			
				|  |  | +	if isTopLevel {
 | 
	
		
			
				|  |  | +		in.Consumed()
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +func easyjsonDa059d96EncodeGithubComGravitlNetmakerModels9(out *jwriter.Writer, in ExtClientInfo) {
 | 
	
		
			
				|  |  | +	out.RawByte('{')
 | 
	
		
			
				|  |  | +	first := true
 | 
	
		
			
				|  |  | +	_ = first
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"ingress_gw_addr\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix[1:])
 | 
	
		
			
				|  |  | +		easyjsonDa059d96EncodeNet(out, in.IngGwAddr)
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"network\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		easyjsonDa059d96EncodeNet(out, in.Network)
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"masquerade\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Bool(bool(in.Masquerade))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"ext_peer_addr\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		easyjsonDa059d96EncodeNet(out, in.ExtPeerAddr)
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"ext_peer_key\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.String(string(in.ExtPeerKey))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"peers\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		if in.Peers == nil && (out.Flags&jwriter.NilMapAsEmpty) == 0 {
 | 
	
		
			
				|  |  | +			out.RawString(`null`)
 | 
	
		
			
				|  |  | +		} else {
 | 
	
		
			
				|  |  | +			out.RawByte('{')
 | 
	
		
			
				|  |  | +			v32First := true
 | 
	
		
			
				|  |  | +			for v32Name, v32Value := range in.Peers {
 | 
	
		
			
				|  |  | +				if v32First {
 | 
	
		
			
				|  |  | +					v32First = false
 | 
	
		
			
				|  |  | +				} else {
 | 
	
		
			
				|  |  | +					out.RawByte(',')
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				out.String(string(v32Name))
 | 
	
		
			
				|  |  | +				out.RawByte(':')
 | 
	
		
			
				|  |  | +				easyjsonDa059d96EncodeGithubComGravitlNetmakerModels10(out, v32Value)
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			out.RawByte('}')
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	out.RawByte('}')
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +func easyjsonDa059d96DecodeGithubComGravitlNetmakerModels10(in *jlexer.Lexer, out *PeerRouteInfo) {
 | 
	
		
			
				|  |  | +	isTopLevel := in.IsStart()
 | 
	
		
			
				|  |  | +	if in.IsNull() {
 | 
	
		
			
				|  |  | +		if isTopLevel {
 | 
	
		
			
				|  |  | +			in.Consumed()
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		in.Skip()
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	in.Delim('{')
 | 
	
		
			
				|  |  | +	for !in.IsDelim('}') {
 | 
	
		
			
				|  |  | +		key := in.UnsafeFieldName(false)
 | 
	
		
			
				|  |  | +		in.WantColon()
 | 
	
		
			
				|  |  | +		if in.IsNull() {
 | 
	
		
			
				|  |  | +			in.Skip()
 | 
	
		
			
				|  |  | +			in.WantComma()
 | 
	
		
			
				|  |  | +			continue
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		switch key {
 | 
	
		
			
				|  |  | +		case "peer_addr":
 | 
	
		
			
				|  |  | +			easyjsonDa059d96DecodeNet(in, &out.PeerAddr)
 | 
	
		
			
				|  |  | +		case "peer_key":
 | 
	
		
			
				|  |  | +			out.PeerKey = string(in.String())
 | 
	
		
			
				|  |  | +		case "allow":
 | 
	
		
			
				|  |  | +			out.Allow = bool(in.Bool())
 | 
	
		
			
				|  |  | +		case "id":
 | 
	
		
			
				|  |  | +			out.ID = string(in.String())
 | 
	
		
			
				|  |  | +		default:
 | 
	
		
			
				|  |  | +			in.SkipRecursive()
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		in.WantComma()
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	in.Delim('}')
 | 
	
		
			
				|  |  | +	if isTopLevel {
 | 
	
		
			
				|  |  | +		in.Consumed()
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +func easyjsonDa059d96EncodeGithubComGravitlNetmakerModels10(out *jwriter.Writer, in PeerRouteInfo) {
 | 
	
		
			
				|  |  | +	out.RawByte('{')
 | 
	
		
			
				|  |  | +	first := true
 | 
	
		
			
				|  |  | +	_ = first
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"peer_addr\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix[1:])
 | 
	
		
			
				|  |  | +		easyjsonDa059d96EncodeNet(out, in.PeerAddr)
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"peer_key\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.String(string(in.PeerKey))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"allow\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Bool(bool(in.Allow))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	if in.ID != "" {
 | 
	
		
			
				|  |  | +		const prefix string = ",\"id\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.String(string(in.ID))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	out.RawByte('}')
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +func easyjsonDa059d96DecodeGithubComGravitlNetmakerModels5(in *jlexer.Lexer, out *EgressInfo) {
 | 
	
		
			
				|  |  | +	isTopLevel := in.IsStart()
 | 
	
		
			
				|  |  | +	if in.IsNull() {
 | 
	
		
			
				|  |  | +		if isTopLevel {
 | 
	
		
			
				|  |  | +			in.Consumed()
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		in.Skip()
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	in.Delim('{')
 | 
	
		
			
				|  |  | +	for !in.IsDelim('}') {
 | 
	
		
			
				|  |  | +		key := in.UnsafeFieldName(false)
 | 
	
		
			
				|  |  | +		in.WantColon()
 | 
	
		
			
				|  |  | +		if in.IsNull() {
 | 
	
		
			
				|  |  | +			in.Skip()
 | 
	
		
			
				|  |  | +			in.WantComma()
 | 
	
		
			
				|  |  | +			continue
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		switch key {
 | 
	
		
			
				|  |  | +		case "egress_id":
 | 
	
		
			
				|  |  | +			out.EgressID = string(in.String())
 | 
	
		
			
				|  |  | +		case "network":
 | 
	
		
			
				|  |  | +			easyjsonDa059d96DecodeNet(in, &out.Network)
 | 
	
		
			
				|  |  | +		case "egress_gw_addr":
 | 
	
		
			
				|  |  | +			easyjsonDa059d96DecodeNet(in, &out.EgressGwAddr)
 | 
	
		
			
				|  |  | +		case "gateway_peers":
 | 
	
		
			
				|  |  | +			if in.IsNull() {
 | 
	
		
			
				|  |  | +				in.Skip()
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				in.Delim('{')
 | 
	
		
			
				|  |  | +				out.GwPeers = make(map[string]PeerRouteInfo)
 | 
	
		
			
				|  |  | +				for !in.IsDelim('}') {
 | 
	
		
			
				|  |  | +					key := string(in.String())
 | 
	
		
			
				|  |  | +					in.WantColon()
 | 
	
		
			
				|  |  | +					var v33 PeerRouteInfo
 | 
	
		
			
				|  |  | +					easyjsonDa059d96DecodeGithubComGravitlNetmakerModels10(in, &v33)
 | 
	
		
			
				|  |  | +					(out.GwPeers)[key] = v33
 | 
	
		
			
				|  |  | +					in.WantComma()
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				in.Delim('}')
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		case "egress_gateway_cfg":
 | 
	
		
			
				|  |  | +			easyjsonDa059d96DecodeGithubComGravitlNetmakerModels11(in, &out.EgressGWCfg)
 | 
	
		
			
				|  |  | +		default:
 | 
	
		
			
				|  |  | +			in.SkipRecursive()
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		in.WantComma()
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	in.Delim('}')
 | 
	
		
			
				|  |  | +	if isTopLevel {
 | 
	
		
			
				|  |  | +		in.Consumed()
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +func easyjsonDa059d96EncodeGithubComGravitlNetmakerModels5(out *jwriter.Writer, in EgressInfo) {
 | 
	
		
			
				|  |  | +	out.RawByte('{')
 | 
	
		
			
				|  |  | +	first := true
 | 
	
		
			
				|  |  | +	_ = first
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"egress_id\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix[1:])
 | 
	
		
			
				|  |  | +		out.String(string(in.EgressID))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"network\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		easyjsonDa059d96EncodeNet(out, in.Network)
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"egress_gw_addr\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		easyjsonDa059d96EncodeNet(out, in.EgressGwAddr)
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"gateway_peers\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		if in.GwPeers == nil && (out.Flags&jwriter.NilMapAsEmpty) == 0 {
 | 
	
		
			
				|  |  | +			out.RawString(`null`)
 | 
	
		
			
				|  |  | +		} else {
 | 
	
		
			
				|  |  | +			out.RawByte('{')
 | 
	
		
			
				|  |  | +			v34First := true
 | 
	
		
			
				|  |  | +			for v34Name, v34Value := range in.GwPeers {
 | 
	
		
			
				|  |  | +				if v34First {
 | 
	
		
			
				|  |  | +					v34First = false
 | 
	
		
			
				|  |  | +				} else {
 | 
	
		
			
				|  |  | +					out.RawByte(',')
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				out.String(string(v34Name))
 | 
	
		
			
				|  |  | +				out.RawByte(':')
 | 
	
		
			
				|  |  | +				easyjsonDa059d96EncodeGithubComGravitlNetmakerModels10(out, v34Value)
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			out.RawByte('}')
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"egress_gateway_cfg\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		easyjsonDa059d96EncodeGithubComGravitlNetmakerModels11(out, in.EgressGWCfg)
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	out.RawByte('}')
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +func easyjsonDa059d96DecodeGithubComGravitlNetmakerModels11(in *jlexer.Lexer, out *EgressGatewayRequest) {
 | 
	
		
			
				|  |  | +	isTopLevel := in.IsStart()
 | 
	
		
			
				|  |  | +	if in.IsNull() {
 | 
	
		
			
				|  |  | +		if isTopLevel {
 | 
	
		
			
				|  |  | +			in.Consumed()
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		in.Skip()
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	in.Delim('{')
 | 
	
		
			
				|  |  | +	for !in.IsDelim('}') {
 | 
	
		
			
				|  |  | +		key := in.UnsafeFieldName(false)
 | 
	
		
			
				|  |  | +		in.WantColon()
 | 
	
		
			
				|  |  | +		if in.IsNull() {
 | 
	
		
			
				|  |  | +			in.Skip()
 | 
	
		
			
				|  |  | +			in.WantComma()
 | 
	
		
			
				|  |  | +			continue
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		switch key {
 | 
	
		
			
				|  |  | +		case "nodeid":
 | 
	
		
			
				|  |  | +			out.NodeID = string(in.String())
 | 
	
		
			
				|  |  | +		case "netid":
 | 
	
		
			
				|  |  | +			out.NetID = string(in.String())
 | 
	
		
			
				|  |  | +		case "natenabled":
 | 
	
		
			
				|  |  | +			out.NatEnabled = string(in.String())
 | 
	
		
			
				|  |  | +		case "ranges":
 | 
	
		
			
				|  |  | +			if in.IsNull() {
 | 
	
		
			
				|  |  | +				in.Skip()
 | 
	
		
			
				|  |  | +				out.Ranges = nil
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				in.Delim('[')
 | 
	
		
			
				|  |  | +				if out.Ranges == nil {
 | 
	
		
			
				|  |  | +					if !in.IsDelim(']') {
 | 
	
		
			
				|  |  | +						out.Ranges = make([]string, 0, 4)
 | 
	
		
			
				|  |  | +					} else {
 | 
	
		
			
				|  |  | +						out.Ranges = []string{}
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +				} else {
 | 
	
		
			
				|  |  | +					out.Ranges = (out.Ranges)[:0]
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				for !in.IsDelim(']') {
 | 
	
		
			
				|  |  | +					var v35 string
 | 
	
		
			
				|  |  | +					v35 = string(in.String())
 | 
	
		
			
				|  |  | +					out.Ranges = append(out.Ranges, v35)
 | 
	
		
			
				|  |  | +					in.WantComma()
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				in.Delim(']')
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		default:
 | 
	
		
			
				|  |  | +			in.SkipRecursive()
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		in.WantComma()
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	in.Delim('}')
 | 
	
		
			
				|  |  | +	if isTopLevel {
 | 
	
		
			
				|  |  | +		in.Consumed()
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +func easyjsonDa059d96EncodeGithubComGravitlNetmakerModels11(out *jwriter.Writer, in EgressGatewayRequest) {
 | 
	
		
			
				|  |  | +	out.RawByte('{')
 | 
	
		
			
				|  |  | +	first := true
 | 
	
		
			
				|  |  | +	_ = first
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"nodeid\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix[1:])
 | 
	
		
			
				|  |  | +		out.String(string(in.NodeID))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"netid\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.String(string(in.NetID))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"natenabled\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.String(string(in.NatEnabled))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"ranges\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		if in.Ranges == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
 | 
	
		
			
				|  |  | +			out.RawString("null")
 | 
	
		
			
				|  |  | +		} else {
 | 
	
		
			
				|  |  | +			out.RawByte('[')
 | 
	
		
			
				|  |  | +			for v36, v37 := range in.Ranges {
 | 
	
		
			
				|  |  | +				if v36 > 0 {
 | 
	
		
			
				|  |  | +					out.RawByte(',')
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				out.String(string(v37))
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			out.RawByte(']')
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	out.RawByte('}')
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +func easyjsonDa059d96DecodeGithubComGravitlNetmakerModels4(in *jlexer.Lexer, out *ProxyManagerPayload) {
 | 
	
		
			
				|  |  | +	isTopLevel := in.IsStart()
 | 
	
		
			
				|  |  | +	if in.IsNull() {
 | 
	
		
			
				|  |  | +		if isTopLevel {
 | 
	
		
			
				|  |  | +			in.Consumed()
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		in.Skip()
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	in.Delim('{')
 | 
	
		
			
				|  |  | +	for !in.IsDelim('}') {
 | 
	
		
			
				|  |  | +		key := in.UnsafeFieldName(false)
 | 
	
		
			
				|  |  | +		in.WantColon()
 | 
	
		
			
				|  |  | +		if in.IsNull() {
 | 
	
		
			
				|  |  | +			in.Skip()
 | 
	
		
			
				|  |  | +			in.WantComma()
 | 
	
		
			
				|  |  | +			continue
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		switch key {
 | 
	
		
			
				|  |  | +		case "action":
 | 
	
		
			
				|  |  | +			out.Action = ProxyAction(in.String())
 | 
	
		
			
				|  |  | +		case "interface_name":
 | 
	
		
			
				|  |  | +			out.InterfaceName = string(in.String())
 | 
	
		
			
				|  |  | +		case "server":
 | 
	
		
			
				|  |  | +			out.Server = string(in.String())
 | 
	
		
			
				|  |  | +		case "peers":
 | 
	
		
			
				|  |  | +			if in.IsNull() {
 | 
	
		
			
				|  |  | +				in.Skip()
 | 
	
		
			
				|  |  | +				out.Peers = nil
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				in.Delim('[')
 | 
	
		
			
				|  |  | +				if out.Peers == nil {
 | 
	
		
			
				|  |  | +					if !in.IsDelim(']') {
 | 
	
		
			
				|  |  | +						out.Peers = make([]wgtypes.PeerConfig, 0, 0)
 | 
	
		
			
				|  |  | +					} else {
 | 
	
		
			
				|  |  | +						out.Peers = []wgtypes.PeerConfig{}
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +				} else {
 | 
	
		
			
				|  |  | +					out.Peers = (out.Peers)[:0]
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				for !in.IsDelim(']') {
 | 
	
		
			
				|  |  | +					var v38 wgtypes.PeerConfig
 | 
	
		
			
				|  |  | +					easyjsonDa059d96DecodeGolangZx2c4ComWireguardWgctrlWgtypes(in, &v38)
 | 
	
		
			
				|  |  | +					out.Peers = append(out.Peers, v38)
 | 
	
		
			
				|  |  | +					in.WantComma()
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				in.Delim(']')
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		case "peer_map":
 | 
	
		
			
				|  |  | +			if in.IsNull() {
 | 
	
		
			
				|  |  | +				in.Skip()
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				in.Delim('{')
 | 
	
		
			
				|  |  | +				out.PeerMap = make(map[string]PeerConf)
 | 
	
		
			
				|  |  | +				for !in.IsDelim('}') {
 | 
	
		
			
				|  |  | +					key := string(in.String())
 | 
	
		
			
				|  |  | +					in.WantColon()
 | 
	
		
			
				|  |  | +					var v39 PeerConf
 | 
	
		
			
				|  |  | +					easyjsonDa059d96DecodeGithubComGravitlNetmakerModels12(in, &v39)
 | 
	
		
			
				|  |  | +					(out.PeerMap)[key] = v39
 | 
	
		
			
				|  |  | +					in.WantComma()
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				in.Delim('}')
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		case "is_ingress":
 | 
	
		
			
				|  |  | +			out.IsIngress = bool(in.Bool())
 | 
	
		
			
				|  |  | +		case "is_relayed":
 | 
	
		
			
				|  |  | +			out.IsRelayed = bool(in.Bool())
 | 
	
		
			
				|  |  | +		case "relayed_to":
 | 
	
		
			
				|  |  | +			if in.IsNull() {
 | 
	
		
			
				|  |  | +				in.Skip()
 | 
	
		
			
				|  |  | +				out.RelayedTo = nil
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				if out.RelayedTo == nil {
 | 
	
		
			
				|  |  | +					out.RelayedTo = new(net.UDPAddr)
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				easyjsonDa059d96DecodeNet1(in, out.RelayedTo)
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		case "is_relay":
 | 
	
		
			
				|  |  | +			out.IsRelay = bool(in.Bool())
 | 
	
		
			
				|  |  | +		case "relayed_conf":
 | 
	
		
			
				|  |  | +			if in.IsNull() {
 | 
	
		
			
				|  |  | +				in.Skip()
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				in.Delim('{')
 | 
	
		
			
				|  |  | +				out.RelayedPeerConf = make(map[string]RelayedConf)
 | 
	
		
			
				|  |  | +				for !in.IsDelim('}') {
 | 
	
		
			
				|  |  | +					key := string(in.String())
 | 
	
		
			
				|  |  | +					in.WantColon()
 | 
	
		
			
				|  |  | +					var v40 RelayedConf
 | 
	
		
			
				|  |  | +					easyjsonDa059d96DecodeGithubComGravitlNetmakerModels13(in, &v40)
 | 
	
		
			
				|  |  | +					(out.RelayedPeerConf)[key] = v40
 | 
	
		
			
				|  |  | +					in.WantComma()
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				in.Delim('}')
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		default:
 | 
	
		
			
				|  |  | +			in.SkipRecursive()
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		in.WantComma()
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	in.Delim('}')
 | 
	
		
			
				|  |  | +	if isTopLevel {
 | 
	
		
			
				|  |  | +		in.Consumed()
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +func easyjsonDa059d96EncodeGithubComGravitlNetmakerModels4(out *jwriter.Writer, in ProxyManagerPayload) {
 | 
	
		
			
				|  |  | +	out.RawByte('{')
 | 
	
		
			
				|  |  | +	first := true
 | 
	
		
			
				|  |  | +	_ = first
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"action\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix[1:])
 | 
	
		
			
				|  |  | +		out.String(string(in.Action))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"interface_name\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.String(string(in.InterfaceName))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"server\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.String(string(in.Server))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"peers\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		if in.Peers == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
 | 
	
		
			
				|  |  | +			out.RawString("null")
 | 
	
		
			
				|  |  | +		} else {
 | 
	
		
			
				|  |  | +			out.RawByte('[')
 | 
	
		
			
				|  |  | +			for v41, v42 := range in.Peers {
 | 
	
		
			
				|  |  | +				if v41 > 0 {
 | 
	
		
			
				|  |  | +					out.RawByte(',')
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				easyjsonDa059d96EncodeGolangZx2c4ComWireguardWgctrlWgtypes(out, v42)
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			out.RawByte(']')
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"peer_map\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		if in.PeerMap == nil && (out.Flags&jwriter.NilMapAsEmpty) == 0 {
 | 
	
		
			
				|  |  | +			out.RawString(`null`)
 | 
	
		
			
				|  |  | +		} else {
 | 
	
		
			
				|  |  | +			out.RawByte('{')
 | 
	
		
			
				|  |  | +			v43First := true
 | 
	
		
			
				|  |  | +			for v43Name, v43Value := range in.PeerMap {
 | 
	
		
			
				|  |  | +				if v43First {
 | 
	
		
			
				|  |  | +					v43First = false
 | 
	
		
			
				|  |  | +				} else {
 | 
	
		
			
				|  |  | +					out.RawByte(',')
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				out.String(string(v43Name))
 | 
	
		
			
				|  |  | +				out.RawByte(':')
 | 
	
		
			
				|  |  | +				easyjsonDa059d96EncodeGithubComGravitlNetmakerModels12(out, v43Value)
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			out.RawByte('}')
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"is_ingress\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Bool(bool(in.IsIngress))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"is_relayed\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Bool(bool(in.IsRelayed))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"relayed_to\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		if in.RelayedTo == nil {
 | 
	
		
			
				|  |  | +			out.RawString("null")
 | 
	
		
			
				|  |  | +		} else {
 | 
	
		
			
				|  |  | +			easyjsonDa059d96EncodeNet1(out, *in.RelayedTo)
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"is_relay\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Bool(bool(in.IsRelay))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"relayed_conf\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		if in.RelayedPeerConf == nil && (out.Flags&jwriter.NilMapAsEmpty) == 0 {
 | 
	
		
			
				|  |  | +			out.RawString(`null`)
 | 
	
		
			
				|  |  | +		} else {
 | 
	
		
			
				|  |  | +			out.RawByte('{')
 | 
	
		
			
				|  |  | +			v44First := true
 | 
	
		
			
				|  |  | +			for v44Name, v44Value := range in.RelayedPeerConf {
 | 
	
		
			
				|  |  | +				if v44First {
 | 
	
		
			
				|  |  | +					v44First = false
 | 
	
		
			
				|  |  | +				} else {
 | 
	
		
			
				|  |  | +					out.RawByte(',')
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				out.String(string(v44Name))
 | 
	
		
			
				|  |  | +				out.RawByte(':')
 | 
	
		
			
				|  |  | +				easyjsonDa059d96EncodeGithubComGravitlNetmakerModels13(out, v44Value)
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			out.RawByte('}')
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	out.RawByte('}')
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +func easyjsonDa059d96DecodeGithubComGravitlNetmakerModels13(in *jlexer.Lexer, out *RelayedConf) {
 | 
	
		
			
				|  |  | +	isTopLevel := in.IsStart()
 | 
	
		
			
				|  |  | +	if in.IsNull() {
 | 
	
		
			
				|  |  | +		if isTopLevel {
 | 
	
		
			
				|  |  | +			in.Consumed()
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		in.Skip()
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	in.Delim('{')
 | 
	
		
			
				|  |  | +	for !in.IsDelim('}') {
 | 
	
		
			
				|  |  | +		key := in.UnsafeFieldName(false)
 | 
	
		
			
				|  |  | +		in.WantColon()
 | 
	
		
			
				|  |  | +		if in.IsNull() {
 | 
	
		
			
				|  |  | +			in.Skip()
 | 
	
		
			
				|  |  | +			in.WantComma()
 | 
	
		
			
				|  |  | +			continue
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		switch key {
 | 
	
		
			
				|  |  | +		case "relayed_peer_endpoint":
 | 
	
		
			
				|  |  | +			if in.IsNull() {
 | 
	
		
			
				|  |  | +				in.Skip()
 | 
	
		
			
				|  |  | +				out.RelayedPeerEndpoint = nil
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				if out.RelayedPeerEndpoint == nil {
 | 
	
		
			
				|  |  | +					out.RelayedPeerEndpoint = new(net.UDPAddr)
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				easyjsonDa059d96DecodeNet1(in, out.RelayedPeerEndpoint)
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		case "relayed_peer_pub_key":
 | 
	
		
			
				|  |  | +			out.RelayedPeerPubKey = string(in.String())
 | 
	
		
			
				|  |  | +		case "relayed_peers":
 | 
	
		
			
				|  |  | +			if in.IsNull() {
 | 
	
		
			
				|  |  | +				in.Skip()
 | 
	
		
			
				|  |  | +				out.Peers = nil
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				in.Delim('[')
 | 
	
		
			
				|  |  | +				if out.Peers == nil {
 | 
	
		
			
				|  |  | +					if !in.IsDelim(']') {
 | 
	
		
			
				|  |  | +						out.Peers = make([]wgtypes.PeerConfig, 0, 0)
 | 
	
		
			
				|  |  | +					} else {
 | 
	
		
			
				|  |  | +						out.Peers = []wgtypes.PeerConfig{}
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +				} else {
 | 
	
		
			
				|  |  | +					out.Peers = (out.Peers)[:0]
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				for !in.IsDelim(']') {
 | 
	
		
			
				|  |  | +					var v45 wgtypes.PeerConfig
 | 
	
		
			
				|  |  | +					easyjsonDa059d96DecodeGolangZx2c4ComWireguardWgctrlWgtypes(in, &v45)
 | 
	
		
			
				|  |  | +					out.Peers = append(out.Peers, v45)
 | 
	
		
			
				|  |  | +					in.WantComma()
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				in.Delim(']')
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		default:
 | 
	
		
			
				|  |  | +			in.SkipRecursive()
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		in.WantComma()
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	in.Delim('}')
 | 
	
		
			
				|  |  | +	if isTopLevel {
 | 
	
		
			
				|  |  | +		in.Consumed()
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +func easyjsonDa059d96EncodeGithubComGravitlNetmakerModels13(out *jwriter.Writer, in RelayedConf) {
 | 
	
		
			
				|  |  | +	out.RawByte('{')
 | 
	
		
			
				|  |  | +	first := true
 | 
	
		
			
				|  |  | +	_ = first
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"relayed_peer_endpoint\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix[1:])
 | 
	
		
			
				|  |  | +		if in.RelayedPeerEndpoint == nil {
 | 
	
		
			
				|  |  | +			out.RawString("null")
 | 
	
		
			
				|  |  | +		} else {
 | 
	
		
			
				|  |  | +			easyjsonDa059d96EncodeNet1(out, *in.RelayedPeerEndpoint)
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"relayed_peer_pub_key\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.String(string(in.RelayedPeerPubKey))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"relayed_peers\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		if in.Peers == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
 | 
	
		
			
				|  |  | +			out.RawString("null")
 | 
	
		
			
				|  |  | +		} else {
 | 
	
		
			
				|  |  | +			out.RawByte('[')
 | 
	
		
			
				|  |  | +			for v46, v47 := range in.Peers {
 | 
	
		
			
				|  |  | +				if v46 > 0 {
 | 
	
		
			
				|  |  | +					out.RawByte(',')
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				easyjsonDa059d96EncodeGolangZx2c4ComWireguardWgctrlWgtypes(out, v47)
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			out.RawByte(']')
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	out.RawByte('}')
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +func easyjsonDa059d96DecodeNet1(in *jlexer.Lexer, out *net.UDPAddr) {
 | 
	
		
			
				|  |  | +	isTopLevel := in.IsStart()
 | 
	
		
			
				|  |  | +	if in.IsNull() {
 | 
	
		
			
				|  |  | +		if isTopLevel {
 | 
	
		
			
				|  |  | +			in.Consumed()
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		in.Skip()
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	in.Delim('{')
 | 
	
		
			
				|  |  | +	for !in.IsDelim('}') {
 | 
	
		
			
				|  |  | +		key := in.UnsafeFieldName(false)
 | 
	
		
			
				|  |  | +		in.WantColon()
 | 
	
		
			
				|  |  | +		if in.IsNull() {
 | 
	
		
			
				|  |  | +			in.Skip()
 | 
	
		
			
				|  |  | +			in.WantComma()
 | 
	
		
			
				|  |  | +			continue
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		switch key {
 | 
	
		
			
				|  |  | +		case "IP":
 | 
	
		
			
				|  |  | +			if data := in.UnsafeBytes(); in.Ok() {
 | 
	
		
			
				|  |  | +				in.AddError((out.IP).UnmarshalText(data))
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		case "Port":
 | 
	
		
			
				|  |  | +			out.Port = int(in.Int())
 | 
	
		
			
				|  |  | +		case "Zone":
 | 
	
		
			
				|  |  | +			out.Zone = string(in.String())
 | 
	
		
			
				|  |  | +		default:
 | 
	
		
			
				|  |  | +			in.SkipRecursive()
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		in.WantComma()
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	in.Delim('}')
 | 
	
		
			
				|  |  | +	if isTopLevel {
 | 
	
		
			
				|  |  | +		in.Consumed()
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +func easyjsonDa059d96EncodeNet1(out *jwriter.Writer, in net.UDPAddr) {
 | 
	
		
			
				|  |  | +	out.RawByte('{')
 | 
	
		
			
				|  |  | +	first := true
 | 
	
		
			
				|  |  | +	_ = first
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"IP\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix[1:])
 | 
	
		
			
				|  |  | +		out.RawText((in.IP).MarshalText())
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"Port\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Int(int(in.Port))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"Zone\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.String(string(in.Zone))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	out.RawByte('}')
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +func easyjsonDa059d96DecodeGithubComGravitlNetmakerModels12(in *jlexer.Lexer, out *PeerConf) {
 | 
	
		
			
				|  |  | +	isTopLevel := in.IsStart()
 | 
	
		
			
				|  |  | +	if in.IsNull() {
 | 
	
		
			
				|  |  | +		if isTopLevel {
 | 
	
		
			
				|  |  | +			in.Consumed()
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		in.Skip()
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	in.Delim('{')
 | 
	
		
			
				|  |  | +	for !in.IsDelim('}') {
 | 
	
		
			
				|  |  | +		key := in.UnsafeFieldName(false)
 | 
	
		
			
				|  |  | +		in.WantColon()
 | 
	
		
			
				|  |  | +		if in.IsNull() {
 | 
	
		
			
				|  |  | +			in.Skip()
 | 
	
		
			
				|  |  | +			in.WantComma()
 | 
	
		
			
				|  |  | +			continue
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		switch key {
 | 
	
		
			
				|  |  | +		case "proxy":
 | 
	
		
			
				|  |  | +			out.Proxy = bool(in.Bool())
 | 
	
		
			
				|  |  | +		case "public_listen_port":
 | 
	
		
			
				|  |  | +			out.PublicListenPort = int32(in.Int32())
 | 
	
		
			
				|  |  | +		case "proxy_listen_port":
 | 
	
		
			
				|  |  | +			out.ProxyListenPort = int(in.Int())
 | 
	
		
			
				|  |  | +		case "is_ext_client":
 | 
	
		
			
				|  |  | +			out.IsExtClient = bool(in.Bool())
 | 
	
		
			
				|  |  | +		case "address":
 | 
	
		
			
				|  |  | +			if data := in.UnsafeBytes(); in.Ok() {
 | 
	
		
			
				|  |  | +				in.AddError((out.Address).UnmarshalText(data))
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		case "is_relayed":
 | 
	
		
			
				|  |  | +			out.IsRelayed = bool(in.Bool())
 | 
	
		
			
				|  |  | +		case "relayed_to":
 | 
	
		
			
				|  |  | +			if in.IsNull() {
 | 
	
		
			
				|  |  | +				in.Skip()
 | 
	
		
			
				|  |  | +				out.RelayedTo = nil
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				if out.RelayedTo == nil {
 | 
	
		
			
				|  |  | +					out.RelayedTo = new(net.UDPAddr)
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				easyjsonDa059d96DecodeNet1(in, out.RelayedTo)
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		case "nat_type":
 | 
	
		
			
				|  |  | +			out.NatType = string(in.String())
 | 
	
		
			
				|  |  | +		default:
 | 
	
		
			
				|  |  | +			in.SkipRecursive()
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		in.WantComma()
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	in.Delim('}')
 | 
	
		
			
				|  |  | +	if isTopLevel {
 | 
	
		
			
				|  |  | +		in.Consumed()
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +func easyjsonDa059d96EncodeGithubComGravitlNetmakerModels12(out *jwriter.Writer, in PeerConf) {
 | 
	
		
			
				|  |  | +	out.RawByte('{')
 | 
	
		
			
				|  |  | +	first := true
 | 
	
		
			
				|  |  | +	_ = first
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"proxy\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix[1:])
 | 
	
		
			
				|  |  | +		out.Bool(bool(in.Proxy))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"public_listen_port\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Int32(int32(in.PublicListenPort))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"proxy_listen_port\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Int(int(in.ProxyListenPort))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"is_ext_client\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Bool(bool(in.IsExtClient))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"address\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.RawText((in.Address).MarshalText())
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"is_relayed\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Bool(bool(in.IsRelayed))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"relayed_to\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		if in.RelayedTo == nil {
 | 
	
		
			
				|  |  | +			out.RawString("null")
 | 
	
		
			
				|  |  | +		} else {
 | 
	
		
			
				|  |  | +			easyjsonDa059d96EncodeNet1(out, *in.RelayedTo)
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"nat_type\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.String(string(in.NatType))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	out.RawByte('}')
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +func easyjsonDa059d96DecodeGithubComGravitlNetmakerModels3(in *jlexer.Lexer, out *IDandAddr) {
 | 
	
		
			
				|  |  | +	isTopLevel := in.IsStart()
 | 
	
		
			
				|  |  | +	if in.IsNull() {
 | 
	
		
			
				|  |  | +		if isTopLevel {
 | 
	
		
			
				|  |  | +			in.Consumed()
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		in.Skip()
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	in.Delim('{')
 | 
	
		
			
				|  |  | +	for !in.IsDelim('}') {
 | 
	
		
			
				|  |  | +		key := in.UnsafeFieldName(false)
 | 
	
		
			
				|  |  | +		in.WantColon()
 | 
	
		
			
				|  |  | +		if in.IsNull() {
 | 
	
		
			
				|  |  | +			in.Skip()
 | 
	
		
			
				|  |  | +			in.WantComma()
 | 
	
		
			
				|  |  | +			continue
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		switch key {
 | 
	
		
			
				|  |  | +		case "id":
 | 
	
		
			
				|  |  | +			out.ID = string(in.String())
 | 
	
		
			
				|  |  | +		case "address":
 | 
	
		
			
				|  |  | +			out.Address = string(in.String())
 | 
	
		
			
				|  |  | +		case "name":
 | 
	
		
			
				|  |  | +			out.Name = string(in.String())
 | 
	
		
			
				|  |  | +		case "isserver":
 | 
	
		
			
				|  |  | +			out.IsServer = string(in.String())
 | 
	
		
			
				|  |  | +		case "network":
 | 
	
		
			
				|  |  | +			out.Network = string(in.String())
 | 
	
		
			
				|  |  | +		case "proxy_listen_port":
 | 
	
		
			
				|  |  | +			out.ProxyListenPort = int(in.Int())
 | 
	
		
			
				|  |  | +		default:
 | 
	
		
			
				|  |  | +			in.SkipRecursive()
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		in.WantComma()
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	in.Delim('}')
 | 
	
		
			
				|  |  | +	if isTopLevel {
 | 
	
		
			
				|  |  | +		in.Consumed()
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +func easyjsonDa059d96EncodeGithubComGravitlNetmakerModels3(out *jwriter.Writer, in IDandAddr) {
 | 
	
		
			
				|  |  | +	out.RawByte('{')
 | 
	
		
			
				|  |  | +	first := true
 | 
	
		
			
				|  |  | +	_ = first
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"id\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix[1:])
 | 
	
		
			
				|  |  | +		out.String(string(in.ID))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"address\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.String(string(in.Address))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"name\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.String(string(in.Name))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"isserver\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.String(string(in.IsServer))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"network\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.String(string(in.Network))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"proxy_listen_port\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Int(int(in.ProxyListenPort))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	out.RawByte('}')
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +func easyjsonDa059d96DecodeGolangZx2c4ComWireguardWgctrlWgtypes(in *jlexer.Lexer, out *wgtypes.PeerConfig) {
 | 
	
		
			
				|  |  | +	isTopLevel := in.IsStart()
 | 
	
		
			
				|  |  | +	if in.IsNull() {
 | 
	
		
			
				|  |  | +		if isTopLevel {
 | 
	
		
			
				|  |  | +			in.Consumed()
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		in.Skip()
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	in.Delim('{')
 | 
	
		
			
				|  |  | +	for !in.IsDelim('}') {
 | 
	
		
			
				|  |  | +		key := in.UnsafeFieldName(false)
 | 
	
		
			
				|  |  | +		in.WantColon()
 | 
	
		
			
				|  |  | +		if in.IsNull() {
 | 
	
		
			
				|  |  | +			in.Skip()
 | 
	
		
			
				|  |  | +			in.WantComma()
 | 
	
		
			
				|  |  | +			continue
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		switch key {
 | 
	
		
			
				|  |  | +		case "PublicKey":
 | 
	
		
			
				|  |  | +			if in.IsNull() {
 | 
	
		
			
				|  |  | +				in.Skip()
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				copy(out.PublicKey[:], in.Bytes())
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		case "Remove":
 | 
	
		
			
				|  |  | +			out.Remove = bool(in.Bool())
 | 
	
		
			
				|  |  | +		case "UpdateOnly":
 | 
	
		
			
				|  |  | +			out.UpdateOnly = bool(in.Bool())
 | 
	
		
			
				|  |  | +		case "PresharedKey":
 | 
	
		
			
				|  |  | +			if in.IsNull() {
 | 
	
		
			
				|  |  | +				in.Skip()
 | 
	
		
			
				|  |  | +				out.PresharedKey = nil
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				if out.PresharedKey == nil {
 | 
	
		
			
				|  |  | +					out.PresharedKey = new(wgtypes.Key)
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				if in.IsNull() {
 | 
	
		
			
				|  |  | +					in.Skip()
 | 
	
		
			
				|  |  | +				} else {
 | 
	
		
			
				|  |  | +					copy(out.PresharedKey[:], in.Bytes())
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		case "Endpoint":
 | 
	
		
			
				|  |  | +			if in.IsNull() {
 | 
	
		
			
				|  |  | +				in.Skip()
 | 
	
		
			
				|  |  | +				out.Endpoint = nil
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				if out.Endpoint == nil {
 | 
	
		
			
				|  |  | +					out.Endpoint = new(net.UDPAddr)
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				easyjsonDa059d96DecodeNet1(in, out.Endpoint)
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		case "PersistentKeepaliveInterval":
 | 
	
		
			
				|  |  | +			if in.IsNull() {
 | 
	
		
			
				|  |  | +				in.Skip()
 | 
	
		
			
				|  |  | +				out.PersistentKeepaliveInterval = nil
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				if out.PersistentKeepaliveInterval == nil {
 | 
	
		
			
				|  |  | +					out.PersistentKeepaliveInterval = new(time.Duration)
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				*out.PersistentKeepaliveInterval = time.Duration(in.Int64())
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		case "ReplaceAllowedIPs":
 | 
	
		
			
				|  |  | +			out.ReplaceAllowedIPs = bool(in.Bool())
 | 
	
		
			
				|  |  | +		case "AllowedIPs":
 | 
	
		
			
				|  |  | +			if in.IsNull() {
 | 
	
		
			
				|  |  | +				in.Skip()
 | 
	
		
			
				|  |  | +				out.AllowedIPs = nil
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				in.Delim('[')
 | 
	
		
			
				|  |  | +				if out.AllowedIPs == nil {
 | 
	
		
			
				|  |  | +					if !in.IsDelim(']') {
 | 
	
		
			
				|  |  | +						out.AllowedIPs = make([]net.IPNet, 0, 1)
 | 
	
		
			
				|  |  | +					} else {
 | 
	
		
			
				|  |  | +						out.AllowedIPs = []net.IPNet{}
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +				} else {
 | 
	
		
			
				|  |  | +					out.AllowedIPs = (out.AllowedIPs)[:0]
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				for !in.IsDelim(']') {
 | 
	
		
			
				|  |  | +					var v50 net.IPNet
 | 
	
		
			
				|  |  | +					easyjsonDa059d96DecodeNet(in, &v50)
 | 
	
		
			
				|  |  | +					out.AllowedIPs = append(out.AllowedIPs, v50)
 | 
	
		
			
				|  |  | +					in.WantComma()
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				in.Delim(']')
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		default:
 | 
	
		
			
				|  |  | +			in.SkipRecursive()
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		in.WantComma()
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	in.Delim('}')
 | 
	
		
			
				|  |  | +	if isTopLevel {
 | 
	
		
			
				|  |  | +		in.Consumed()
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +func easyjsonDa059d96EncodeGolangZx2c4ComWireguardWgctrlWgtypes(out *jwriter.Writer, in wgtypes.PeerConfig) {
 | 
	
		
			
				|  |  | +	out.RawByte('{')
 | 
	
		
			
				|  |  | +	first := true
 | 
	
		
			
				|  |  | +	_ = first
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"PublicKey\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix[1:])
 | 
	
		
			
				|  |  | +		out.Base64Bytes(in.PublicKey[:])
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"Remove\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Bool(bool(in.Remove))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"UpdateOnly\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Bool(bool(in.UpdateOnly))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"PresharedKey\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		if in.PresharedKey == nil {
 | 
	
		
			
				|  |  | +			out.RawString("null")
 | 
	
		
			
				|  |  | +		} else {
 | 
	
		
			
				|  |  | +			out.Base64Bytes(in.PresharedKey[:])
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"Endpoint\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		if in.Endpoint == nil {
 | 
	
		
			
				|  |  | +			out.RawString("null")
 | 
	
		
			
				|  |  | +		} else {
 | 
	
		
			
				|  |  | +			easyjsonDa059d96EncodeNet1(out, *in.Endpoint)
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"PersistentKeepaliveInterval\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		if in.PersistentKeepaliveInterval == nil {
 | 
	
		
			
				|  |  | +			out.RawString("null")
 | 
	
		
			
				|  |  | +		} else {
 | 
	
		
			
				|  |  | +			out.Int64(int64(*in.PersistentKeepaliveInterval))
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"ReplaceAllowedIPs\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Bool(bool(in.ReplaceAllowedIPs))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"AllowedIPs\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		if in.AllowedIPs == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
 | 
	
		
			
				|  |  | +			out.RawString("null")
 | 
	
		
			
				|  |  | +		} else {
 | 
	
		
			
				|  |  | +			out.RawByte('[')
 | 
	
		
			
				|  |  | +			for v53, v54 := range in.AllowedIPs {
 | 
	
		
			
				|  |  | +				if v53 > 0 {
 | 
	
		
			
				|  |  | +					out.RawByte(',')
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				easyjsonDa059d96EncodeNet(out, v54)
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			out.RawByte(']')
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	out.RawByte('}')
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +func easyjsonDa059d96DecodeGithubComGravitlNetmakerModels2(in *jlexer.Lexer, out *ServerAddr) {
 | 
	
		
			
				|  |  | +	isTopLevel := in.IsStart()
 | 
	
		
			
				|  |  | +	if in.IsNull() {
 | 
	
		
			
				|  |  | +		if isTopLevel {
 | 
	
		
			
				|  |  | +			in.Consumed()
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		in.Skip()
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	in.Delim('{')
 | 
	
		
			
				|  |  | +	for !in.IsDelim('}') {
 | 
	
		
			
				|  |  | +		key := in.UnsafeFieldName(false)
 | 
	
		
			
				|  |  | +		in.WantColon()
 | 
	
		
			
				|  |  | +		if in.IsNull() {
 | 
	
		
			
				|  |  | +			in.Skip()
 | 
	
		
			
				|  |  | +			in.WantComma()
 | 
	
		
			
				|  |  | +			continue
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		switch key {
 | 
	
		
			
				|  |  | +		case "isleader":
 | 
	
		
			
				|  |  | +			out.IsLeader = bool(in.Bool())
 | 
	
		
			
				|  |  | +		case "address":
 | 
	
		
			
				|  |  | +			out.Address = string(in.String())
 | 
	
		
			
				|  |  | +		default:
 | 
	
		
			
				|  |  | +			in.SkipRecursive()
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		in.WantComma()
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	in.Delim('}')
 | 
	
		
			
				|  |  | +	if isTopLevel {
 | 
	
		
			
				|  |  | +		in.Consumed()
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +func easyjsonDa059d96EncodeGithubComGravitlNetmakerModels2(out *jwriter.Writer, in ServerAddr) {
 | 
	
		
			
				|  |  | +	out.RawByte('{')
 | 
	
		
			
				|  |  | +	first := true
 | 
	
		
			
				|  |  | +	_ = first
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"isleader\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix[1:])
 | 
	
		
			
				|  |  | +		out.Bool(bool(in.IsLeader))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"address\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.String(string(in.Address))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	out.RawByte('}')
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +func easyjsonDa059d96DecodeGithubComGravitlNetmakerModels1(in *jlexer.Lexer, out *Host) {
 | 
	
		
			
				|  |  | +	isTopLevel := in.IsStart()
 | 
	
		
			
				|  |  | +	if in.IsNull() {
 | 
	
		
			
				|  |  | +		if isTopLevel {
 | 
	
		
			
				|  |  | +			in.Consumed()
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		in.Skip()
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	in.Delim('{')
 | 
	
		
			
				|  |  | +	for !in.IsDelim('}') {
 | 
	
		
			
				|  |  | +		key := in.UnsafeFieldName(false)
 | 
	
		
			
				|  |  | +		in.WantColon()
 | 
	
		
			
				|  |  | +		if in.IsNull() {
 | 
	
		
			
				|  |  | +			in.Skip()
 | 
	
		
			
				|  |  | +			in.WantComma()
 | 
	
		
			
				|  |  | +			continue
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		switch key {
 | 
	
		
			
				|  |  | +		case "id":
 | 
	
		
			
				|  |  | +			if data := in.UnsafeBytes(); in.Ok() {
 | 
	
		
			
				|  |  | +				in.AddError((out.ID).UnmarshalText(data))
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		case "verbosity":
 | 
	
		
			
				|  |  | +			out.Verbosity = int(in.Int())
 | 
	
		
			
				|  |  | +		case "firewallinuse":
 | 
	
		
			
				|  |  | +			out.FirewallInUse = string(in.String())
 | 
	
		
			
				|  |  | +		case "version":
 | 
	
		
			
				|  |  | +			out.Version = string(in.String())
 | 
	
		
			
				|  |  | +		case "ipforwarding":
 | 
	
		
			
				|  |  | +			out.IPForwarding = bool(in.Bool())
 | 
	
		
			
				|  |  | +		case "daemoninstalled":
 | 
	
		
			
				|  |  | +			out.DaemonInstalled = bool(in.Bool())
 | 
	
		
			
				|  |  | +		case "autoupdate":
 | 
	
		
			
				|  |  | +			out.AutoUpdate = bool(in.Bool())
 | 
	
		
			
				|  |  | +		case "endpointdetection":
 | 
	
		
			
				|  |  | +			out.EndpointDetection = bool(in.Bool())
 | 
	
		
			
				|  |  | +		case "hostpass":
 | 
	
		
			
				|  |  | +			out.HostPass = string(in.String())
 | 
	
		
			
				|  |  | +		case "name":
 | 
	
		
			
				|  |  | +			out.Name = string(in.String())
 | 
	
		
			
				|  |  | +		case "os":
 | 
	
		
			
				|  |  | +			out.OS = string(in.String())
 | 
	
		
			
				|  |  | +		case "interface":
 | 
	
		
			
				|  |  | +			out.Interface = string(in.String())
 | 
	
		
			
				|  |  | +		case "debug":
 | 
	
		
			
				|  |  | +			out.Debug = bool(in.Bool())
 | 
	
		
			
				|  |  | +		case "listenport":
 | 
	
		
			
				|  |  | +			out.ListenPort = int(in.Int())
 | 
	
		
			
				|  |  | +		case "public_listen_port":
 | 
	
		
			
				|  |  | +			out.PublicListenPort = int(in.Int())
 | 
	
		
			
				|  |  | +		case "wg_public_listen_port":
 | 
	
		
			
				|  |  | +			out.WgPublicListenPort = int(in.Int())
 | 
	
		
			
				|  |  | +		case "proxy_listen_port":
 | 
	
		
			
				|  |  | +			out.ProxyListenPort = int(in.Int())
 | 
	
		
			
				|  |  | +		case "mtu":
 | 
	
		
			
				|  |  | +			out.MTU = int(in.Int())
 | 
	
		
			
				|  |  | +		case "publickey":
 | 
	
		
			
				|  |  | +			if in.IsNull() {
 | 
	
		
			
				|  |  | +				in.Skip()
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				copy(out.PublicKey[:], in.Bytes())
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		case "macaddress":
 | 
	
		
			
				|  |  | +			if in.IsNull() {
 | 
	
		
			
				|  |  | +				in.Skip()
 | 
	
		
			
				|  |  | +				out.MacAddress = nil
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				out.MacAddress = in.Bytes()
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		case "traffickeypublic":
 | 
	
		
			
				|  |  | +			if in.IsNull() {
 | 
	
		
			
				|  |  | +				in.Skip()
 | 
	
		
			
				|  |  | +				out.TrafficKeyPublic = nil
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				out.TrafficKeyPublic = in.Bytes()
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		case "internetgateway":
 | 
	
		
			
				|  |  | +			easyjsonDa059d96DecodeNet1(in, &out.InternetGateway)
 | 
	
		
			
				|  |  | +		case "nodes":
 | 
	
		
			
				|  |  | +			if in.IsNull() {
 | 
	
		
			
				|  |  | +				in.Skip()
 | 
	
		
			
				|  |  | +				out.Nodes = nil
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				in.Delim('[')
 | 
	
		
			
				|  |  | +				if out.Nodes == nil {
 | 
	
		
			
				|  |  | +					if !in.IsDelim(']') {
 | 
	
		
			
				|  |  | +						out.Nodes = make([]string, 0, 4)
 | 
	
		
			
				|  |  | +					} else {
 | 
	
		
			
				|  |  | +						out.Nodes = []string{}
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +				} else {
 | 
	
		
			
				|  |  | +					out.Nodes = (out.Nodes)[:0]
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				for !in.IsDelim(']') {
 | 
	
		
			
				|  |  | +					var v58 string
 | 
	
		
			
				|  |  | +					v58 = string(in.String())
 | 
	
		
			
				|  |  | +					out.Nodes = append(out.Nodes, v58)
 | 
	
		
			
				|  |  | +					in.WantComma()
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				in.Delim(']')
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		case "isrelayed":
 | 
	
		
			
				|  |  | +			out.IsRelayed = bool(in.Bool())
 | 
	
		
			
				|  |  | +		case "relayed_by":
 | 
	
		
			
				|  |  | +			out.RelayedBy = string(in.String())
 | 
	
		
			
				|  |  | +		case "isrelay":
 | 
	
		
			
				|  |  | +			out.IsRelay = bool(in.Bool())
 | 
	
		
			
				|  |  | +		case "relay_hosts":
 | 
	
		
			
				|  |  | +			if in.IsNull() {
 | 
	
		
			
				|  |  | +				in.Skip()
 | 
	
		
			
				|  |  | +				out.RelayedHosts = nil
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				in.Delim('[')
 | 
	
		
			
				|  |  | +				if out.RelayedHosts == nil {
 | 
	
		
			
				|  |  | +					if !in.IsDelim(']') {
 | 
	
		
			
				|  |  | +						out.RelayedHosts = make([]string, 0, 4)
 | 
	
		
			
				|  |  | +					} else {
 | 
	
		
			
				|  |  | +						out.RelayedHosts = []string{}
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +				} else {
 | 
	
		
			
				|  |  | +					out.RelayedHosts = (out.RelayedHosts)[:0]
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				for !in.IsDelim(']') {
 | 
	
		
			
				|  |  | +					var v59 string
 | 
	
		
			
				|  |  | +					v59 = string(in.String())
 | 
	
		
			
				|  |  | +					out.RelayedHosts = append(out.RelayedHosts, v59)
 | 
	
		
			
				|  |  | +					in.WantComma()
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				in.Delim(']')
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		case "interfaces":
 | 
	
		
			
				|  |  | +			if in.IsNull() {
 | 
	
		
			
				|  |  | +				in.Skip()
 | 
	
		
			
				|  |  | +				out.Interfaces = nil
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				in.Delim('[')
 | 
	
		
			
				|  |  | +				if out.Interfaces == nil {
 | 
	
		
			
				|  |  | +					if !in.IsDelim(']') {
 | 
	
		
			
				|  |  | +						out.Interfaces = make([]Iface, 0, 0)
 | 
	
		
			
				|  |  | +					} else {
 | 
	
		
			
				|  |  | +						out.Interfaces = []Iface{}
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +				} else {
 | 
	
		
			
				|  |  | +					out.Interfaces = (out.Interfaces)[:0]
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				for !in.IsDelim(']') {
 | 
	
		
			
				|  |  | +					var v60 Iface
 | 
	
		
			
				|  |  | +					easyjsonDa059d96DecodeGithubComGravitlNetmakerModels8(in, &v60)
 | 
	
		
			
				|  |  | +					out.Interfaces = append(out.Interfaces, v60)
 | 
	
		
			
				|  |  | +					in.WantComma()
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				in.Delim(']')
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		case "defaultinterface":
 | 
	
		
			
				|  |  | +			out.DefaultInterface = string(in.String())
 | 
	
		
			
				|  |  | +		case "endpointip":
 | 
	
		
			
				|  |  | +			if data := in.UnsafeBytes(); in.Ok() {
 | 
	
		
			
				|  |  | +				in.AddError((out.EndpointIP).UnmarshalText(data))
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		case "proxy_enabled":
 | 
	
		
			
				|  |  | +			out.ProxyEnabled = bool(in.Bool())
 | 
	
		
			
				|  |  | +		case "proxy_enabled_updated":
 | 
	
		
			
				|  |  | +			out.ProxyEnabledSet = bool(in.Bool())
 | 
	
		
			
				|  |  | +		case "isdocker":
 | 
	
		
			
				|  |  | +			out.IsDocker = bool(in.Bool())
 | 
	
		
			
				|  |  | +		case "isk8s":
 | 
	
		
			
				|  |  | +			out.IsK8S = bool(in.Bool())
 | 
	
		
			
				|  |  | +		case "isstatic":
 | 
	
		
			
				|  |  | +			out.IsStatic = bool(in.Bool())
 | 
	
		
			
				|  |  | +		case "isdefault":
 | 
	
		
			
				|  |  | +			out.IsDefault = bool(in.Bool())
 | 
	
		
			
				|  |  | +		case "nat_type":
 | 
	
		
			
				|  |  | +			out.NatType = string(in.String())
 | 
	
		
			
				|  |  | +		case "turn_endpoint":
 | 
	
		
			
				|  |  | +			if in.IsNull() {
 | 
	
		
			
				|  |  | +				in.Skip()
 | 
	
		
			
				|  |  | +				out.TurnEndpoint = nil
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				if out.TurnEndpoint == nil {
 | 
	
		
			
				|  |  | +					out.TurnEndpoint = new(netip.AddrPort)
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				if data := in.UnsafeBytes(); in.Ok() {
 | 
	
		
			
				|  |  | +					in.AddError((*out.TurnEndpoint).UnmarshalText(data))
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		default:
 | 
	
		
			
				|  |  | +			in.SkipRecursive()
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		in.WantComma()
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	in.Delim('}')
 | 
	
		
			
				|  |  | +	if isTopLevel {
 | 
	
		
			
				|  |  | +		in.Consumed()
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +func easyjsonDa059d96EncodeGithubComGravitlNetmakerModels1(out *jwriter.Writer, in Host) {
 | 
	
		
			
				|  |  | +	out.RawByte('{')
 | 
	
		
			
				|  |  | +	first := true
 | 
	
		
			
				|  |  | +	_ = first
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"id\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix[1:])
 | 
	
		
			
				|  |  | +		out.RawText((in.ID).MarshalText())
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"verbosity\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Int(int(in.Verbosity))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"firewallinuse\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.String(string(in.FirewallInUse))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"version\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.String(string(in.Version))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"ipforwarding\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Bool(bool(in.IPForwarding))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"daemoninstalled\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Bool(bool(in.DaemonInstalled))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"autoupdate\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Bool(bool(in.AutoUpdate))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"endpointdetection\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Bool(bool(in.EndpointDetection))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"hostpass\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.String(string(in.HostPass))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"name\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.String(string(in.Name))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"os\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.String(string(in.OS))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"interface\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.String(string(in.Interface))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"debug\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Bool(bool(in.Debug))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"listenport\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Int(int(in.ListenPort))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"public_listen_port\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Int(int(in.PublicListenPort))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"wg_public_listen_port\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Int(int(in.WgPublicListenPort))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"proxy_listen_port\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Int(int(in.ProxyListenPort))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"mtu\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Int(int(in.MTU))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"publickey\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Base64Bytes(in.PublicKey[:])
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"macaddress\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Base64Bytes(in.MacAddress)
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"traffickeypublic\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Base64Bytes(in.TrafficKeyPublic)
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"internetgateway\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		easyjsonDa059d96EncodeNet1(out, in.InternetGateway)
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"nodes\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		if in.Nodes == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
 | 
	
		
			
				|  |  | +			out.RawString("null")
 | 
	
		
			
				|  |  | +		} else {
 | 
	
		
			
				|  |  | +			out.RawByte('[')
 | 
	
		
			
				|  |  | +			for v66, v67 := range in.Nodes {
 | 
	
		
			
				|  |  | +				if v66 > 0 {
 | 
	
		
			
				|  |  | +					out.RawByte(',')
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				out.String(string(v67))
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			out.RawByte(']')
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"isrelayed\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Bool(bool(in.IsRelayed))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"relayed_by\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.String(string(in.RelayedBy))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"isrelay\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Bool(bool(in.IsRelay))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"relay_hosts\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		if in.RelayedHosts == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
 | 
	
		
			
				|  |  | +			out.RawString("null")
 | 
	
		
			
				|  |  | +		} else {
 | 
	
		
			
				|  |  | +			out.RawByte('[')
 | 
	
		
			
				|  |  | +			for v68, v69 := range in.RelayedHosts {
 | 
	
		
			
				|  |  | +				if v68 > 0 {
 | 
	
		
			
				|  |  | +					out.RawByte(',')
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				out.String(string(v69))
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			out.RawByte(']')
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"interfaces\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		if in.Interfaces == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
 | 
	
		
			
				|  |  | +			out.RawString("null")
 | 
	
		
			
				|  |  | +		} else {
 | 
	
		
			
				|  |  | +			out.RawByte('[')
 | 
	
		
			
				|  |  | +			for v70, v71 := range in.Interfaces {
 | 
	
		
			
				|  |  | +				if v70 > 0 {
 | 
	
		
			
				|  |  | +					out.RawByte(',')
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				easyjsonDa059d96EncodeGithubComGravitlNetmakerModels8(out, v71)
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			out.RawByte(']')
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"defaultinterface\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.String(string(in.DefaultInterface))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"endpointip\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.RawText((in.EndpointIP).MarshalText())
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"proxy_enabled\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Bool(bool(in.ProxyEnabled))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"proxy_enabled_updated\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Bool(bool(in.ProxyEnabledSet))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"isdocker\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Bool(bool(in.IsDocker))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"isk8s\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Bool(bool(in.IsK8S))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"isstatic\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Bool(bool(in.IsStatic))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		const prefix string = ",\"isdefault\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.Bool(bool(in.IsDefault))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	if in.NatType != "" {
 | 
	
		
			
				|  |  | +		const prefix string = ",\"nat_type\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.String(string(in.NatType))
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	if in.TurnEndpoint != nil {
 | 
	
		
			
				|  |  | +		const prefix string = ",\"turn_endpoint\":"
 | 
	
		
			
				|  |  | +		out.RawString(prefix)
 | 
	
		
			
				|  |  | +		out.RawText((*in.TurnEndpoint).MarshalText())
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	out.RawByte('}')
 | 
	
		
			
				|  |  | +}
 |