// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: model.proto /* Package model is a generated protocol buffer package. It is generated from these files: model.proto It has these top-level messages: Info Perm */ package model import proto "github.com/golang/protobuf/proto" import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" import io "io" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal var _ = fmt.Errorf var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. // A compilation error at this line likely means your copy of the // proto package needs to be updated. const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package // Info account info. type Info struct { Mid int64 `protobuf:"varint,1,opt,name=Mid,proto3" json:"mid"` UserID string `protobuf:"bytes,2,opt,name=UserID,proto3" json:"userid"` Uname string `protobuf:"bytes,3,opt,name=Uname,proto3" json:"uname"` Face string `protobuf:"bytes,4,opt,name=Face,proto3" json:"face"` HasEmail bool `protobuf:"varint,5,opt,name=HasEmail,proto3" json:"has_email"` HasTel bool `protobuf:"varint,6,opt,name=HasTel,proto3" json:"has_tel"` } func (m *Info) Reset() { *m = Info{} } func (m *Info) String() string { return proto.CompactTextString(m) } func (*Info) ProtoMessage() {} func (*Info) Descriptor() ([]byte, []int) { return fileDescriptorModel, []int{0} } func (m *Info) GetMid() int64 { if m != nil { return m.Mid } return 0 } func (m *Info) GetUserID() string { if m != nil { return m.UserID } return "" } func (m *Info) GetUname() string { if m != nil { return m.Uname } return "" } func (m *Info) GetFace() string { if m != nil { return m.Face } return "" } func (m *Info) GetHasEmail() bool { if m != nil { return m.HasEmail } return false } func (m *Info) GetHasTel() bool { if m != nil { return m.HasTel } return false } // Perm token. type Perm struct { Mid int64 `protobuf:"varint,1,opt,name=Mid,proto3" json:"mid"` AppID int32 `protobuf:"varint,2,opt,name=AppID,proto3" json:"appid"` AppSubID int32 `protobuf:"varint,3,opt,name=AppSubID,proto3" json:"app_subid"` AccessToken string `protobuf:"bytes,4,opt,name=AccessToken,proto3" json:"access_token"` RefreshToken string `protobuf:"bytes,5,opt,name=RefreshToken,proto3" json:"refresh_token"` CreateAt int64 `protobuf:"varint,6,opt,name=CreateAt,proto3" json:"create_at"` Expires int64 `protobuf:"varint,7,opt,name=Expires,proto3" json:"expires"` } func (m *Perm) Reset() { *m = Perm{} } func (m *Perm) String() string { return proto.CompactTextString(m) } func (*Perm) ProtoMessage() {} func (*Perm) Descriptor() ([]byte, []int) { return fileDescriptorModel, []int{1} } func (m *Perm) GetMid() int64 { if m != nil { return m.Mid } return 0 } func (m *Perm) GetAppID() int32 { if m != nil { return m.AppID } return 0 } func (m *Perm) GetAppSubID() int32 { if m != nil { return m.AppSubID } return 0 } func (m *Perm) GetAccessToken() string { if m != nil { return m.AccessToken } return "" } func (m *Perm) GetRefreshToken() string { if m != nil { return m.RefreshToken } return "" } func (m *Perm) GetCreateAt() int64 { if m != nil { return m.CreateAt } return 0 } func (m *Perm) GetExpires() int64 { if m != nil { return m.Expires } return 0 } func init() { proto.RegisterType((*Info)(nil), "model.Info") proto.RegisterType((*Perm)(nil), "model.Perm") } func (m *Info) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } return dAtA[:n], nil } func (m *Info) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Mid != 0 { dAtA[i] = 0x8 i++ i = encodeVarintModel(dAtA, i, uint64(m.Mid)) } if len(m.UserID) > 0 { dAtA[i] = 0x12 i++ i = encodeVarintModel(dAtA, i, uint64(len(m.UserID))) i += copy(dAtA[i:], m.UserID) } if len(m.Uname) > 0 { dAtA[i] = 0x1a i++ i = encodeVarintModel(dAtA, i, uint64(len(m.Uname))) i += copy(dAtA[i:], m.Uname) } if len(m.Face) > 0 { dAtA[i] = 0x22 i++ i = encodeVarintModel(dAtA, i, uint64(len(m.Face))) i += copy(dAtA[i:], m.Face) } if m.HasEmail { dAtA[i] = 0x28 i++ if m.HasEmail { dAtA[i] = 1 } else { dAtA[i] = 0 } i++ } if m.HasTel { dAtA[i] = 0x30 i++ if m.HasTel { dAtA[i] = 1 } else { dAtA[i] = 0 } i++ } return i, nil } func (m *Perm) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalTo(dAtA) if err != nil { return nil, err } return dAtA[:n], nil } func (m *Perm) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l if m.Mid != 0 { dAtA[i] = 0x8 i++ i = encodeVarintModel(dAtA, i, uint64(m.Mid)) } if m.AppID != 0 { dAtA[i] = 0x10 i++ i = encodeVarintModel(dAtA, i, uint64(m.AppID)) } if m.AppSubID != 0 { dAtA[i] = 0x18 i++ i = encodeVarintModel(dAtA, i, uint64(m.AppSubID)) } if len(m.AccessToken) > 0 { dAtA[i] = 0x22 i++ i = encodeVarintModel(dAtA, i, uint64(len(m.AccessToken))) i += copy(dAtA[i:], m.AccessToken) } if len(m.RefreshToken) > 0 { dAtA[i] = 0x2a i++ i = encodeVarintModel(dAtA, i, uint64(len(m.RefreshToken))) i += copy(dAtA[i:], m.RefreshToken) } if m.CreateAt != 0 { dAtA[i] = 0x30 i++ i = encodeVarintModel(dAtA, i, uint64(m.CreateAt)) } if m.Expires != 0 { dAtA[i] = 0x38 i++ i = encodeVarintModel(dAtA, i, uint64(m.Expires)) } return i, nil } func encodeVarintModel(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } dAtA[offset] = uint8(v) return offset + 1 } func (m *Info) Size() (n int) { var l int _ = l if m.Mid != 0 { n += 1 + sovModel(uint64(m.Mid)) } l = len(m.UserID) if l > 0 { n += 1 + l + sovModel(uint64(l)) } l = len(m.Uname) if l > 0 { n += 1 + l + sovModel(uint64(l)) } l = len(m.Face) if l > 0 { n += 1 + l + sovModel(uint64(l)) } if m.HasEmail { n += 2 } if m.HasTel { n += 2 } return n } func (m *Perm) Size() (n int) { var l int _ = l if m.Mid != 0 { n += 1 + sovModel(uint64(m.Mid)) } if m.AppID != 0 { n += 1 + sovModel(uint64(m.AppID)) } if m.AppSubID != 0 { n += 1 + sovModel(uint64(m.AppSubID)) } l = len(m.AccessToken) if l > 0 { n += 1 + l + sovModel(uint64(l)) } l = len(m.RefreshToken) if l > 0 { n += 1 + l + sovModel(uint64(l)) } if m.CreateAt != 0 { n += 1 + sovModel(uint64(m.CreateAt)) } if m.Expires != 0 { n += 1 + sovModel(uint64(m.Expires)) } return n } func sovModel(x uint64) (n int) { for { n++ x >>= 7 if x == 0 { break } } return n } func sozModel(x uint64) (n int) { return sovModel(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } func (m *Info) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowModel } if iNdEx >= l { return io.ErrUnexpectedEOF } b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { return fmt.Errorf("proto: Info: wiretype end group for non-group") } if fieldNum <= 0 { return fmt.Errorf("proto: Info: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Mid", wireType) } m.Mid = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowModel } if iNdEx >= l { return io.ErrUnexpectedEOF } b := dAtA[iNdEx] iNdEx++ m.Mid |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field UserID", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowModel } if iNdEx >= l { return io.ErrUnexpectedEOF } b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } intStringLen := int(stringLen) if intStringLen < 0 { return ErrInvalidLengthModel } postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } m.UserID = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Uname", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowModel } if iNdEx >= l { return io.ErrUnexpectedEOF } b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } intStringLen := int(stringLen) if intStringLen < 0 { return ErrInvalidLengthModel } postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } m.Uname = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 4: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Face", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowModel } if iNdEx >= l { return io.ErrUnexpectedEOF } b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } intStringLen := int(stringLen) if intStringLen < 0 { return ErrInvalidLengthModel } postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } m.Face = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 5: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field HasEmail", wireType) } var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowModel } if iNdEx >= l { return io.ErrUnexpectedEOF } b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { break } } m.HasEmail = bool(v != 0) case 6: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field HasTel", wireType) } var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowModel } if iNdEx >= l { return io.ErrUnexpectedEOF } b := dAtA[iNdEx] iNdEx++ v |= (int(b) & 0x7F) << shift if b < 0x80 { break } } m.HasTel = bool(v != 0) default: iNdEx = preIndex skippy, err := skipModel(dAtA[iNdEx:]) if err != nil { return err } if skippy < 0 { return ErrInvalidLengthModel } if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } iNdEx += skippy } } if iNdEx > l { return io.ErrUnexpectedEOF } return nil } func (m *Perm) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowModel } if iNdEx >= l { return io.ErrUnexpectedEOF } b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { return fmt.Errorf("proto: Perm: wiretype end group for non-group") } if fieldNum <= 0 { return fmt.Errorf("proto: Perm: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Mid", wireType) } m.Mid = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowModel } if iNdEx >= l { return io.ErrUnexpectedEOF } b := dAtA[iNdEx] iNdEx++ m.Mid |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } case 2: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field AppID", wireType) } m.AppID = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowModel } if iNdEx >= l { return io.ErrUnexpectedEOF } b := dAtA[iNdEx] iNdEx++ m.AppID |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } case 3: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field AppSubID", wireType) } m.AppSubID = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowModel } if iNdEx >= l { return io.ErrUnexpectedEOF } b := dAtA[iNdEx] iNdEx++ m.AppSubID |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } case 4: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field AccessToken", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowModel } if iNdEx >= l { return io.ErrUnexpectedEOF } b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } intStringLen := int(stringLen) if intStringLen < 0 { return ErrInvalidLengthModel } postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } m.AccessToken = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 5: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field RefreshToken", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowModel } if iNdEx >= l { return io.ErrUnexpectedEOF } b := dAtA[iNdEx] iNdEx++ stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } intStringLen := int(stringLen) if intStringLen < 0 { return ErrInvalidLengthModel } postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } m.RefreshToken = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 6: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field CreateAt", wireType) } m.CreateAt = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowModel } if iNdEx >= l { return io.ErrUnexpectedEOF } b := dAtA[iNdEx] iNdEx++ m.CreateAt |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } case 7: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Expires", wireType) } m.Expires = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowModel } if iNdEx >= l { return io.ErrUnexpectedEOF } b := dAtA[iNdEx] iNdEx++ m.Expires |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } default: iNdEx = preIndex skippy, err := skipModel(dAtA[iNdEx:]) if err != nil { return err } if skippy < 0 { return ErrInvalidLengthModel } if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } iNdEx += skippy } } if iNdEx > l { return io.ErrUnexpectedEOF } return nil } func skipModel(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 for iNdEx < l { var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return 0, ErrIntOverflowModel } if iNdEx >= l { return 0, io.ErrUnexpectedEOF } b := dAtA[iNdEx] iNdEx++ wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } wireType := int(wire & 0x7) switch wireType { case 0: for shift := uint(0); ; shift += 7 { if shift >= 64 { return 0, ErrIntOverflowModel } if iNdEx >= l { return 0, io.ErrUnexpectedEOF } iNdEx++ if dAtA[iNdEx-1] < 0x80 { break } } return iNdEx, nil case 1: iNdEx += 8 return iNdEx, nil case 2: var length int for shift := uint(0); ; shift += 7 { if shift >= 64 { return 0, ErrIntOverflowModel } if iNdEx >= l { return 0, io.ErrUnexpectedEOF } b := dAtA[iNdEx] iNdEx++ length |= (int(b) & 0x7F) << shift if b < 0x80 { break } } iNdEx += length if length < 0 { return 0, ErrInvalidLengthModel } return iNdEx, nil case 3: for { var innerWire uint64 var start int = iNdEx for shift := uint(0); ; shift += 7 { if shift >= 64 { return 0, ErrIntOverflowModel } if iNdEx >= l { return 0, io.ErrUnexpectedEOF } b := dAtA[iNdEx] iNdEx++ innerWire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } innerWireType := int(innerWire & 0x7) if innerWireType == 4 { break } next, err := skipModel(dAtA[start:]) if err != nil { return 0, err } iNdEx = start + next } return iNdEx, nil case 4: return iNdEx, nil case 5: iNdEx += 4 return iNdEx, nil default: return 0, fmt.Errorf("proto: illegal wireType %d", wireType) } } panic("unreachable") } var ( ErrInvalidLengthModel = fmt.Errorf("proto: negative length found during unmarshaling") ErrIntOverflowModel = fmt.Errorf("proto: integer overflow") ) func init() { proto.RegisterFile("model.proto", fileDescriptorModel) } var fileDescriptorModel = []byte{ // 409 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x92, 0x4f, 0x8e, 0xd3, 0x30, 0x14, 0xc6, 0xc9, 0xe4, 0x4f, 0x5b, 0x77, 0x46, 0x1a, 0xbc, 0x0a, 0x08, 0xd5, 0x55, 0x11, 0x52, 0x59, 0x30, 0x23, 0x81, 0x38, 0x40, 0xcb, 0x0c, 0x9a, 0x2e, 0x90, 0x90, 0x99, 0xae, 0x2b, 0x27, 0x79, 0x6d, 0x23, 0x92, 0xda, 0xb2, 0x13, 0x89, 0xa3, 0x70, 0x06, 0x4e, 0xc2, 0x92, 0x05, 0x6b, 0x0b, 0x95, 0x9d, 0x4f, 0x81, 0xf2, 0x1c, 0x2a, 0xd8, 0xcc, 0x2e, 0xef, 0xf7, 0xfb, 0x9e, 0xf4, 0x3d, 0x2b, 0x64, 0x5c, 0xcb, 0x02, 0xaa, 0x2b, 0xa5, 0x65, 0x23, 0x69, 0x8c, 0xc3, 0xd3, 0x57, 0xbb, 0xb2, 0xd9, 0xb7, 0xd9, 0x55, 0x2e, 0xeb, 0xeb, 0x9d, 0xdc, 0xc9, 0x6b, 0xb4, 0x59, 0xbb, 0xc5, 0x09, 0x07, 0xfc, 0xf2, 0x5b, 0xb3, 0x9f, 0x01, 0x89, 0x56, 0x87, 0xad, 0xa4, 0x4f, 0x48, 0xf8, 0xa1, 0x2c, 0xd2, 0x60, 0x1a, 0xcc, 0xc3, 0xe5, 0xc0, 0x59, 0x16, 0xd6, 0x65, 0xc1, 0x3b, 0x46, 0x67, 0x24, 0x59, 0x1b, 0xd0, 0xab, 0x9b, 0xf4, 0x6c, 0x1a, 0xcc, 0x47, 0x4b, 0xe2, 0x2c, 0x4b, 0x5a, 0x03, 0xba, 0x2c, 0x78, 0x6f, 0x28, 0x23, 0xf1, 0xfa, 0x20, 0x6a, 0x48, 0x43, 0x8c, 0x8c, 0x9c, 0x65, 0x71, 0xdb, 0x01, 0xee, 0x39, 0x7d, 0x46, 0xa2, 0xf7, 0x22, 0x87, 0x34, 0x42, 0x3f, 0x74, 0x96, 0x45, 0x5b, 0x91, 0x03, 0x47, 0x4a, 0x5f, 0x92, 0xe1, 0x9d, 0x30, 0xb7, 0xb5, 0x28, 0xab, 0x34, 0x9e, 0x06, 0xf3, 0xe1, 0xf2, 0xc2, 0x59, 0x36, 0xda, 0x0b, 0xb3, 0x81, 0x0e, 0xf2, 0x93, 0xa6, 0xcf, 0x49, 0x72, 0x27, 0xcc, 0x3d, 0x54, 0x69, 0x82, 0xc1, 0xb1, 0xb3, 0x6c, 0xd0, 0x05, 0x1b, 0xa8, 0x78, 0xaf, 0x66, 0xdf, 0xce, 0x48, 0xf4, 0x11, 0x74, 0xfd, 0xd0, 0x59, 0x8c, 0xc4, 0x0b, 0xa5, 0xfa, 0xab, 0x62, 0x5f, 0x59, 0x28, 0x55, 0x16, 0xdc, 0xf3, 0xae, 0xd4, 0x42, 0xa9, 0x4f, 0x6d, 0xb6, 0xba, 0xc1, 0xb3, 0x62, 0x5f, 0x4a, 0x28, 0xb5, 0x31, 0x6d, 0x56, 0x16, 0xfc, 0xa4, 0xe9, 0x6b, 0x32, 0x5e, 0xe4, 0x39, 0x18, 0x73, 0x2f, 0x3f, 0xc3, 0xa1, 0x3f, 0xf2, 0xd2, 0x59, 0x76, 0x2e, 0x10, 0x6f, 0x9a, 0x8e, 0xf3, 0x7f, 0x43, 0xf4, 0x2d, 0x39, 0xe7, 0xb0, 0xd5, 0x60, 0xf6, 0x7e, 0x29, 0xc6, 0xa5, 0xc7, 0xce, 0xb2, 0x0b, 0xed, 0x79, 0xbf, 0xf5, 0x5f, 0xac, 0x6b, 0xf5, 0x4e, 0x83, 0x68, 0x60, 0xd1, 0xe0, 0x0b, 0x84, 0xbe, 0x55, 0x8e, 0x6c, 0x23, 0x1a, 0x7e, 0xd2, 0xf4, 0x05, 0x19, 0xdc, 0x7e, 0x51, 0xa5, 0x06, 0x93, 0x0e, 0x30, 0x89, 0x6f, 0x05, 0x1e, 0xf1, 0xbf, 0x6e, 0x79, 0xf9, 0xfd, 0x38, 0x09, 0x7e, 0x1c, 0x27, 0xc1, 0xaf, 0xe3, 0x24, 0xf8, 0xfa, 0x7b, 0xf2, 0x28, 0x4b, 0xf0, 0xe7, 0x78, 0xf3, 0x27, 0x00, 0x00, 0xff, 0xff, 0x4a, 0x98, 0xa7, 0x40, 0x61, 0x02, 0x00, 0x00, }