No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 

384 líneas
16 KiB

  1. // Code generated by protoc-gen-go. DO NOT EDIT.
  2. // source: google/ads/googleads/v1/resources/customer_negative_criterion.proto
  3. package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v1/resources"
  4. import proto "github.com/golang/protobuf/proto"
  5. import fmt "fmt"
  6. import math "math"
  7. import wrappers "github.com/golang/protobuf/ptypes/wrappers"
  8. import common "google.golang.org/genproto/googleapis/ads/googleads/v1/common"
  9. import enums "google.golang.org/genproto/googleapis/ads/googleads/v1/enums"
  10. import _ "google.golang.org/genproto/googleapis/api/annotations"
  11. // Reference imports to suppress errors if they are not otherwise used.
  12. var _ = proto.Marshal
  13. var _ = fmt.Errorf
  14. var _ = math.Inf
  15. // This is a compile-time assertion to ensure that this generated file
  16. // is compatible with the proto package it is being compiled against.
  17. // A compilation error at this line likely means your copy of the
  18. // proto package needs to be updated.
  19. const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
  20. // A negative criterion for exclusions at the customer level.
  21. type CustomerNegativeCriterion struct {
  22. // The resource name of the customer negative criterion.
  23. // Customer negative criterion resource names have the form:
  24. //
  25. // `customers/{customer_id}/customerNegativeCriteria/{criterion_id}`
  26. ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"`
  27. // The ID of the criterion.
  28. Id *wrappers.Int64Value `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
  29. // The type of the criterion.
  30. Type enums.CriterionTypeEnum_CriterionType `protobuf:"varint,3,opt,name=type,proto3,enum=google.ads.googleads.v1.enums.CriterionTypeEnum_CriterionType" json:"type,omitempty"`
  31. // The customer negative criterion.
  32. //
  33. // Exactly one must be set.
  34. //
  35. // Types that are valid to be assigned to Criterion:
  36. // *CustomerNegativeCriterion_ContentLabel
  37. // *CustomerNegativeCriterion_MobileApplication
  38. // *CustomerNegativeCriterion_MobileAppCategory
  39. // *CustomerNegativeCriterion_Placement
  40. // *CustomerNegativeCriterion_YoutubeVideo
  41. // *CustomerNegativeCriterion_YoutubeChannel
  42. Criterion isCustomerNegativeCriterion_Criterion `protobuf_oneof:"criterion"`
  43. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  44. XXX_unrecognized []byte `json:"-"`
  45. XXX_sizecache int32 `json:"-"`
  46. }
  47. func (m *CustomerNegativeCriterion) Reset() { *m = CustomerNegativeCriterion{} }
  48. func (m *CustomerNegativeCriterion) String() string { return proto.CompactTextString(m) }
  49. func (*CustomerNegativeCriterion) ProtoMessage() {}
  50. func (*CustomerNegativeCriterion) Descriptor() ([]byte, []int) {
  51. return fileDescriptor_customer_negative_criterion_047c425ca9d53ca1, []int{0}
  52. }
  53. func (m *CustomerNegativeCriterion) XXX_Unmarshal(b []byte) error {
  54. return xxx_messageInfo_CustomerNegativeCriterion.Unmarshal(m, b)
  55. }
  56. func (m *CustomerNegativeCriterion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  57. return xxx_messageInfo_CustomerNegativeCriterion.Marshal(b, m, deterministic)
  58. }
  59. func (dst *CustomerNegativeCriterion) XXX_Merge(src proto.Message) {
  60. xxx_messageInfo_CustomerNegativeCriterion.Merge(dst, src)
  61. }
  62. func (m *CustomerNegativeCriterion) XXX_Size() int {
  63. return xxx_messageInfo_CustomerNegativeCriterion.Size(m)
  64. }
  65. func (m *CustomerNegativeCriterion) XXX_DiscardUnknown() {
  66. xxx_messageInfo_CustomerNegativeCriterion.DiscardUnknown(m)
  67. }
  68. var xxx_messageInfo_CustomerNegativeCriterion proto.InternalMessageInfo
  69. func (m *CustomerNegativeCriterion) GetResourceName() string {
  70. if m != nil {
  71. return m.ResourceName
  72. }
  73. return ""
  74. }
  75. func (m *CustomerNegativeCriterion) GetId() *wrappers.Int64Value {
  76. if m != nil {
  77. return m.Id
  78. }
  79. return nil
  80. }
  81. func (m *CustomerNegativeCriterion) GetType() enums.CriterionTypeEnum_CriterionType {
  82. if m != nil {
  83. return m.Type
  84. }
  85. return enums.CriterionTypeEnum_UNSPECIFIED
  86. }
  87. type isCustomerNegativeCriterion_Criterion interface {
  88. isCustomerNegativeCriterion_Criterion()
  89. }
  90. type CustomerNegativeCriterion_ContentLabel struct {
  91. ContentLabel *common.ContentLabelInfo `protobuf:"bytes,4,opt,name=content_label,json=contentLabel,proto3,oneof"`
  92. }
  93. type CustomerNegativeCriterion_MobileApplication struct {
  94. MobileApplication *common.MobileApplicationInfo `protobuf:"bytes,5,opt,name=mobile_application,json=mobileApplication,proto3,oneof"`
  95. }
  96. type CustomerNegativeCriterion_MobileAppCategory struct {
  97. MobileAppCategory *common.MobileAppCategoryInfo `protobuf:"bytes,6,opt,name=mobile_app_category,json=mobileAppCategory,proto3,oneof"`
  98. }
  99. type CustomerNegativeCriterion_Placement struct {
  100. Placement *common.PlacementInfo `protobuf:"bytes,7,opt,name=placement,proto3,oneof"`
  101. }
  102. type CustomerNegativeCriterion_YoutubeVideo struct {
  103. YoutubeVideo *common.YouTubeVideoInfo `protobuf:"bytes,8,opt,name=youtube_video,json=youtubeVideo,proto3,oneof"`
  104. }
  105. type CustomerNegativeCriterion_YoutubeChannel struct {
  106. YoutubeChannel *common.YouTubeChannelInfo `protobuf:"bytes,9,opt,name=youtube_channel,json=youtubeChannel,proto3,oneof"`
  107. }
  108. func (*CustomerNegativeCriterion_ContentLabel) isCustomerNegativeCriterion_Criterion() {}
  109. func (*CustomerNegativeCriterion_MobileApplication) isCustomerNegativeCriterion_Criterion() {}
  110. func (*CustomerNegativeCriterion_MobileAppCategory) isCustomerNegativeCriterion_Criterion() {}
  111. func (*CustomerNegativeCriterion_Placement) isCustomerNegativeCriterion_Criterion() {}
  112. func (*CustomerNegativeCriterion_YoutubeVideo) isCustomerNegativeCriterion_Criterion() {}
  113. func (*CustomerNegativeCriterion_YoutubeChannel) isCustomerNegativeCriterion_Criterion() {}
  114. func (m *CustomerNegativeCriterion) GetCriterion() isCustomerNegativeCriterion_Criterion {
  115. if m != nil {
  116. return m.Criterion
  117. }
  118. return nil
  119. }
  120. func (m *CustomerNegativeCriterion) GetContentLabel() *common.ContentLabelInfo {
  121. if x, ok := m.GetCriterion().(*CustomerNegativeCriterion_ContentLabel); ok {
  122. return x.ContentLabel
  123. }
  124. return nil
  125. }
  126. func (m *CustomerNegativeCriterion) GetMobileApplication() *common.MobileApplicationInfo {
  127. if x, ok := m.GetCriterion().(*CustomerNegativeCriterion_MobileApplication); ok {
  128. return x.MobileApplication
  129. }
  130. return nil
  131. }
  132. func (m *CustomerNegativeCriterion) GetMobileAppCategory() *common.MobileAppCategoryInfo {
  133. if x, ok := m.GetCriterion().(*CustomerNegativeCriterion_MobileAppCategory); ok {
  134. return x.MobileAppCategory
  135. }
  136. return nil
  137. }
  138. func (m *CustomerNegativeCriterion) GetPlacement() *common.PlacementInfo {
  139. if x, ok := m.GetCriterion().(*CustomerNegativeCriterion_Placement); ok {
  140. return x.Placement
  141. }
  142. return nil
  143. }
  144. func (m *CustomerNegativeCriterion) GetYoutubeVideo() *common.YouTubeVideoInfo {
  145. if x, ok := m.GetCriterion().(*CustomerNegativeCriterion_YoutubeVideo); ok {
  146. return x.YoutubeVideo
  147. }
  148. return nil
  149. }
  150. func (m *CustomerNegativeCriterion) GetYoutubeChannel() *common.YouTubeChannelInfo {
  151. if x, ok := m.GetCriterion().(*CustomerNegativeCriterion_YoutubeChannel); ok {
  152. return x.YoutubeChannel
  153. }
  154. return nil
  155. }
  156. // XXX_OneofFuncs is for the internal use of the proto package.
  157. func (*CustomerNegativeCriterion) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
  158. return _CustomerNegativeCriterion_OneofMarshaler, _CustomerNegativeCriterion_OneofUnmarshaler, _CustomerNegativeCriterion_OneofSizer, []interface{}{
  159. (*CustomerNegativeCriterion_ContentLabel)(nil),
  160. (*CustomerNegativeCriterion_MobileApplication)(nil),
  161. (*CustomerNegativeCriterion_MobileAppCategory)(nil),
  162. (*CustomerNegativeCriterion_Placement)(nil),
  163. (*CustomerNegativeCriterion_YoutubeVideo)(nil),
  164. (*CustomerNegativeCriterion_YoutubeChannel)(nil),
  165. }
  166. }
  167. func _CustomerNegativeCriterion_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
  168. m := msg.(*CustomerNegativeCriterion)
  169. // criterion
  170. switch x := m.Criterion.(type) {
  171. case *CustomerNegativeCriterion_ContentLabel:
  172. b.EncodeVarint(4<<3 | proto.WireBytes)
  173. if err := b.EncodeMessage(x.ContentLabel); err != nil {
  174. return err
  175. }
  176. case *CustomerNegativeCriterion_MobileApplication:
  177. b.EncodeVarint(5<<3 | proto.WireBytes)
  178. if err := b.EncodeMessage(x.MobileApplication); err != nil {
  179. return err
  180. }
  181. case *CustomerNegativeCriterion_MobileAppCategory:
  182. b.EncodeVarint(6<<3 | proto.WireBytes)
  183. if err := b.EncodeMessage(x.MobileAppCategory); err != nil {
  184. return err
  185. }
  186. case *CustomerNegativeCriterion_Placement:
  187. b.EncodeVarint(7<<3 | proto.WireBytes)
  188. if err := b.EncodeMessage(x.Placement); err != nil {
  189. return err
  190. }
  191. case *CustomerNegativeCriterion_YoutubeVideo:
  192. b.EncodeVarint(8<<3 | proto.WireBytes)
  193. if err := b.EncodeMessage(x.YoutubeVideo); err != nil {
  194. return err
  195. }
  196. case *CustomerNegativeCriterion_YoutubeChannel:
  197. b.EncodeVarint(9<<3 | proto.WireBytes)
  198. if err := b.EncodeMessage(x.YoutubeChannel); err != nil {
  199. return err
  200. }
  201. case nil:
  202. default:
  203. return fmt.Errorf("CustomerNegativeCriterion.Criterion has unexpected type %T", x)
  204. }
  205. return nil
  206. }
  207. func _CustomerNegativeCriterion_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
  208. m := msg.(*CustomerNegativeCriterion)
  209. switch tag {
  210. case 4: // criterion.content_label
  211. if wire != proto.WireBytes {
  212. return true, proto.ErrInternalBadWireType
  213. }
  214. msg := new(common.ContentLabelInfo)
  215. err := b.DecodeMessage(msg)
  216. m.Criterion = &CustomerNegativeCriterion_ContentLabel{msg}
  217. return true, err
  218. case 5: // criterion.mobile_application
  219. if wire != proto.WireBytes {
  220. return true, proto.ErrInternalBadWireType
  221. }
  222. msg := new(common.MobileApplicationInfo)
  223. err := b.DecodeMessage(msg)
  224. m.Criterion = &CustomerNegativeCriterion_MobileApplication{msg}
  225. return true, err
  226. case 6: // criterion.mobile_app_category
  227. if wire != proto.WireBytes {
  228. return true, proto.ErrInternalBadWireType
  229. }
  230. msg := new(common.MobileAppCategoryInfo)
  231. err := b.DecodeMessage(msg)
  232. m.Criterion = &CustomerNegativeCriterion_MobileAppCategory{msg}
  233. return true, err
  234. case 7: // criterion.placement
  235. if wire != proto.WireBytes {
  236. return true, proto.ErrInternalBadWireType
  237. }
  238. msg := new(common.PlacementInfo)
  239. err := b.DecodeMessage(msg)
  240. m.Criterion = &CustomerNegativeCriterion_Placement{msg}
  241. return true, err
  242. case 8: // criterion.youtube_video
  243. if wire != proto.WireBytes {
  244. return true, proto.ErrInternalBadWireType
  245. }
  246. msg := new(common.YouTubeVideoInfo)
  247. err := b.DecodeMessage(msg)
  248. m.Criterion = &CustomerNegativeCriterion_YoutubeVideo{msg}
  249. return true, err
  250. case 9: // criterion.youtube_channel
  251. if wire != proto.WireBytes {
  252. return true, proto.ErrInternalBadWireType
  253. }
  254. msg := new(common.YouTubeChannelInfo)
  255. err := b.DecodeMessage(msg)
  256. m.Criterion = &CustomerNegativeCriterion_YoutubeChannel{msg}
  257. return true, err
  258. default:
  259. return false, nil
  260. }
  261. }
  262. func _CustomerNegativeCriterion_OneofSizer(msg proto.Message) (n int) {
  263. m := msg.(*CustomerNegativeCriterion)
  264. // criterion
  265. switch x := m.Criterion.(type) {
  266. case *CustomerNegativeCriterion_ContentLabel:
  267. s := proto.Size(x.ContentLabel)
  268. n += 1 // tag and wire
  269. n += proto.SizeVarint(uint64(s))
  270. n += s
  271. case *CustomerNegativeCriterion_MobileApplication:
  272. s := proto.Size(x.MobileApplication)
  273. n += 1 // tag and wire
  274. n += proto.SizeVarint(uint64(s))
  275. n += s
  276. case *CustomerNegativeCriterion_MobileAppCategory:
  277. s := proto.Size(x.MobileAppCategory)
  278. n += 1 // tag and wire
  279. n += proto.SizeVarint(uint64(s))
  280. n += s
  281. case *CustomerNegativeCriterion_Placement:
  282. s := proto.Size(x.Placement)
  283. n += 1 // tag and wire
  284. n += proto.SizeVarint(uint64(s))
  285. n += s
  286. case *CustomerNegativeCriterion_YoutubeVideo:
  287. s := proto.Size(x.YoutubeVideo)
  288. n += 1 // tag and wire
  289. n += proto.SizeVarint(uint64(s))
  290. n += s
  291. case *CustomerNegativeCriterion_YoutubeChannel:
  292. s := proto.Size(x.YoutubeChannel)
  293. n += 1 // tag and wire
  294. n += proto.SizeVarint(uint64(s))
  295. n += s
  296. case nil:
  297. default:
  298. panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
  299. }
  300. return n
  301. }
  302. func init() {
  303. proto.RegisterType((*CustomerNegativeCriterion)(nil), "google.ads.googleads.v1.resources.CustomerNegativeCriterion")
  304. }
  305. func init() {
  306. proto.RegisterFile("google/ads/googleads/v1/resources/customer_negative_criterion.proto", fileDescriptor_customer_negative_criterion_047c425ca9d53ca1)
  307. }
  308. var fileDescriptor_customer_negative_criterion_047c425ca9d53ca1 = []byte{
  309. // 575 bytes of a gzipped FileDescriptorProto
  310. 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x94, 0xdd, 0x8a, 0xd3, 0x40,
  311. 0x14, 0xc7, 0x6d, 0xf6, 0x43, 0x3b, 0xfb, 0x21, 0xc6, 0x9b, 0xb8, 0xca, 0xd2, 0x55, 0x16, 0x0a,
  312. 0xb2, 0x13, 0x5b, 0x3f, 0x2e, 0x22, 0x08, 0x69, 0x90, 0x75, 0xc5, 0x5d, 0x4a, 0x58, 0x2a, 0x4a,
  313. 0x25, 0x4c, 0x92, 0xd3, 0x18, 0x48, 0x66, 0x42, 0x66, 0x52, 0xe9, 0x33, 0xf8, 0x16, 0x5e, 0xfa,
  314. 0x28, 0x3e, 0x8a, 0x2f, 0xa1, 0x64, 0x32, 0x93, 0xfa, 0x41, 0xed, 0x7a, 0x77, 0x7a, 0xce, 0xf9,
  315. 0xff, 0xce, 0x99, 0x3f, 0x3d, 0x41, 0x5e, 0xc2, 0x58, 0x92, 0x81, 0x4d, 0x62, 0x6e, 0x37, 0x61,
  316. 0x1d, 0xcd, 0x07, 0x76, 0x09, 0x9c, 0x55, 0x65, 0x04, 0xdc, 0x8e, 0x2a, 0x2e, 0x58, 0x0e, 0x65,
  317. 0x40, 0x21, 0x21, 0x22, 0x9d, 0x43, 0x10, 0x95, 0xa9, 0x80, 0x32, 0x65, 0x14, 0x17, 0x25, 0x13,
  318. 0xcc, 0x3c, 0x6a, 0x94, 0x98, 0xc4, 0x1c, 0xb7, 0x10, 0x3c, 0x1f, 0xe0, 0x16, 0x72, 0x70, 0xb2,
  319. 0x6a, 0x4e, 0xc4, 0xf2, 0x9c, 0x51, 0x5b, 0x21, 0x49, 0x43, 0x3c, 0x18, 0xae, 0x6a, 0x07, 0x5a,
  320. 0xe5, 0xdc, 0x6e, 0x17, 0x08, 0xc4, 0xa2, 0x00, 0xa5, 0x39, 0x54, 0x1a, 0xf9, 0x2b, 0xac, 0x66,
  321. 0xf6, 0xa7, 0x92, 0x14, 0x05, 0x94, 0x5c, 0xd5, 0xef, 0x69, 0x66, 0x91, 0xda, 0x84, 0x52, 0x26,
  322. 0x88, 0x48, 0x19, 0x55, 0xd5, 0xfb, 0x3f, 0xb6, 0xd0, 0x1d, 0x4f, 0xbd, 0xf4, 0x42, 0x3d, 0xd4,
  323. 0xd3, 0x63, 0xcc, 0x07, 0x68, 0x4f, 0xbf, 0x25, 0xa0, 0x24, 0x07, 0xab, 0xd3, 0xeb, 0xf4, 0xbb,
  324. 0xfe, 0xae, 0x4e, 0x5e, 0x90, 0x1c, 0xcc, 0x87, 0xc8, 0x48, 0x63, 0xcb, 0xe8, 0x75, 0xfa, 0x3b,
  325. 0xc3, 0xbb, 0xca, 0x08, 0xac, 0xb7, 0xc1, 0x67, 0x54, 0x3c, 0x7b, 0x32, 0x21, 0x59, 0x05, 0xbe,
  326. 0x91, 0xc6, 0xa6, 0x8f, 0x36, 0xeb, 0xdd, 0xad, 0x8d, 0x5e, 0xa7, 0xbf, 0x3f, 0x7c, 0x81, 0x57,
  327. 0x59, 0x28, 0x1f, 0x8c, 0xdb, 0x4d, 0x2e, 0x17, 0x05, 0xbc, 0xa4, 0x55, 0xfe, 0x7b, 0xc6, 0x97,
  328. 0x2c, 0xf3, 0x2d, 0xda, 0x8b, 0x18, 0x15, 0x40, 0x45, 0x90, 0x91, 0x10, 0x32, 0x6b, 0x53, 0xee,
  329. 0xf2, 0x68, 0x25, 0xbc, 0x31, 0x1f, 0x7b, 0x8d, 0xe8, 0x4d, 0xad, 0x39, 0xa3, 0x33, 0xf6, 0xea,
  330. 0x9a, 0xbf, 0x1b, 0xfd, 0x92, 0x33, 0x67, 0xc8, 0xcc, 0x59, 0x98, 0x66, 0x10, 0x90, 0xa2, 0xc8,
  331. 0xd2, 0x48, 0x3a, 0x67, 0x6d, 0x49, 0xfa, 0xd3, 0x75, 0xf4, 0x73, 0xa9, 0x74, 0x97, 0x42, 0x35,
  332. 0xe2, 0x56, 0xfe, 0x67, 0xc1, 0x4c, 0xd0, 0xed, 0xe5, 0x9c, 0x20, 0x22, 0x02, 0x12, 0x56, 0x2e,
  333. 0xac, 0xed, 0xff, 0x1c, 0xe4, 0x29, 0xe1, 0x5f, 0x83, 0x74, 0xc1, 0x3c, 0x47, 0xdd, 0x22, 0x23,
  334. 0x11, 0xe4, 0x40, 0x85, 0x75, 0x5d, 0xe2, 0x4f, 0xd6, 0xe1, 0xc7, 0x5a, 0xa0, 0xb0, 0x4b, 0x42,
  335. 0x6d, 0xfc, 0x82, 0x55, 0xa2, 0x0a, 0x21, 0x98, 0xa7, 0x31, 0x30, 0xeb, 0xc6, 0xd5, 0x8c, 0x7f,
  336. 0xc7, 0xaa, 0xcb, 0x2a, 0x84, 0x49, 0xad, 0xd1, 0xc6, 0x2b, 0x90, 0xcc, 0x99, 0x1f, 0xd0, 0x4d,
  337. 0x0d, 0x8e, 0x3e, 0x12, 0x4a, 0x21, 0xb3, 0xba, 0x12, 0x3d, 0xbc, 0x22, 0xda, 0x6b, 0x54, 0x0a,
  338. 0xbe, 0xaf, 0x60, 0x2a, 0x3b, 0xda, 0x41, 0xdd, 0xf6, 0x94, 0x46, 0x9f, 0x0d, 0x74, 0x1c, 0xb1,
  339. 0x1c, 0xaf, 0x3d, 0xe6, 0xd1, 0xe1, 0xca, 0x43, 0x19, 0xd7, 0xff, 0xf6, 0x71, 0xe7, 0xfd, 0x6b,
  340. 0x05, 0x49, 0x58, 0x46, 0x68, 0x82, 0x59, 0x99, 0xd8, 0x09, 0x50, 0x79, 0x0b, 0xfa, 0x9e, 0x8b,
  341. 0x94, 0xff, 0xe3, 0xab, 0xf3, 0xbc, 0x8d, 0xbe, 0x18, 0x1b, 0xa7, 0xae, 0xfb, 0xd5, 0x38, 0x3a,
  342. 0x6d, 0x90, 0x6e, 0xcc, 0x71, 0x13, 0xd6, 0xd1, 0x64, 0x80, 0x7d, 0xdd, 0xf9, 0x4d, 0xf7, 0x4c,
  343. 0xdd, 0x98, 0x4f, 0xdb, 0x9e, 0xe9, 0x64, 0x30, 0x6d, 0x7b, 0xbe, 0x1b, 0xc7, 0x4d, 0xc1, 0x71,
  344. 0xdc, 0x98, 0x3b, 0x4e, 0xdb, 0xe5, 0x38, 0x93, 0x81, 0xe3, 0xb4, 0x7d, 0xe1, 0xb6, 0x5c, 0xf6,
  345. 0xf1, 0xcf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x7d, 0x01, 0xad, 0x51, 0x21, 0x05, 0x00, 0x00,
  346. }