| // Code generated by protoc-gen-go. DO NOT EDIT. |
| // source: go.chromium.org/luci/luci_notify/api/config/notify.proto |
| |
| package config |
| |
| import ( |
| fmt "fmt" |
| math "math" |
| |
| proto "github.com/golang/protobuf/proto" |
| proto1 "go.chromium.org/luci/buildbucket/proto" |
| ) |
| |
| // 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.ProtoPackageIsVersion3 // please upgrade the proto package |
| |
| // ProjectConfig is a luci-notify configuration for a particular project. |
| type ProjectConfig struct { |
| // Notifiers is a list of Notifiers which watch builders and send |
| // notifications for this project. |
| Notifiers []*Notifier `protobuf:"bytes,1,rep,name=notifiers,proto3" json:"notifiers,omitempty"` |
| XXX_NoUnkeyedLiteral struct{} `json:"-"` |
| XXX_unrecognized []byte `json:"-"` |
| XXX_sizecache int32 `json:"-"` |
| } |
| |
| func (m *ProjectConfig) Reset() { *m = ProjectConfig{} } |
| func (m *ProjectConfig) String() string { return proto.CompactTextString(m) } |
| func (*ProjectConfig) ProtoMessage() {} |
| func (*ProjectConfig) Descriptor() ([]byte, []int) { |
| return fileDescriptor_9a6945a7af0ec43b, []int{0} |
| } |
| |
| func (m *ProjectConfig) XXX_Unmarshal(b []byte) error { |
| return xxx_messageInfo_ProjectConfig.Unmarshal(m, b) |
| } |
| func (m *ProjectConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { |
| return xxx_messageInfo_ProjectConfig.Marshal(b, m, deterministic) |
| } |
| func (m *ProjectConfig) XXX_Merge(src proto.Message) { |
| xxx_messageInfo_ProjectConfig.Merge(m, src) |
| } |
| func (m *ProjectConfig) XXX_Size() int { |
| return xxx_messageInfo_ProjectConfig.Size(m) |
| } |
| func (m *ProjectConfig) XXX_DiscardUnknown() { |
| xxx_messageInfo_ProjectConfig.DiscardUnknown(m) |
| } |
| |
| var xxx_messageInfo_ProjectConfig proto.InternalMessageInfo |
| |
| func (m *ProjectConfig) GetNotifiers() []*Notifier { |
| if m != nil { |
| return m.Notifiers |
| } |
| return nil |
| } |
| |
| // Notifier contains a set of notification configurations (which specify |
| // triggers to send notifications on) and a set of builders that will be |
| // watched for these triggers. |
| type Notifier struct { |
| // Name is an identifier for the notifier which must be unique within a |
| // project. |
| // |
| // Name must additionally match ^[a-z\-]+$, meaning it must only |
| // use an alphabet of lowercase characters and hyphens. |
| // |
| // Required. |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| // Notifications is a list of notification configurations. |
| Notifications []*Notification `protobuf:"bytes,2,rep,name=notifications,proto3" json:"notifications,omitempty"` |
| // Builders is a list of buildbucket builders this Notifier should watch. |
| Builders []*Builder `protobuf:"bytes,3,rep,name=builders,proto3" json:"builders,omitempty"` |
| XXX_NoUnkeyedLiteral struct{} `json:"-"` |
| XXX_unrecognized []byte `json:"-"` |
| XXX_sizecache int32 `json:"-"` |
| } |
| |
| func (m *Notifier) Reset() { *m = Notifier{} } |
| func (m *Notifier) String() string { return proto.CompactTextString(m) } |
| func (*Notifier) ProtoMessage() {} |
| func (*Notifier) Descriptor() ([]byte, []int) { |
| return fileDescriptor_9a6945a7af0ec43b, []int{1} |
| } |
| |
| func (m *Notifier) XXX_Unmarshal(b []byte) error { |
| return xxx_messageInfo_Notifier.Unmarshal(m, b) |
| } |
| func (m *Notifier) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { |
| return xxx_messageInfo_Notifier.Marshal(b, m, deterministic) |
| } |
| func (m *Notifier) XXX_Merge(src proto.Message) { |
| xxx_messageInfo_Notifier.Merge(m, src) |
| } |
| func (m *Notifier) XXX_Size() int { |
| return xxx_messageInfo_Notifier.Size(m) |
| } |
| func (m *Notifier) XXX_DiscardUnknown() { |
| xxx_messageInfo_Notifier.DiscardUnknown(m) |
| } |
| |
| var xxx_messageInfo_Notifier proto.InternalMessageInfo |
| |
| func (m *Notifier) GetName() string { |
| if m != nil { |
| return m.Name |
| } |
| return "" |
| } |
| |
| func (m *Notifier) GetNotifications() []*Notification { |
| if m != nil { |
| return m.Notifications |
| } |
| return nil |
| } |
| |
| func (m *Notifier) GetBuilders() []*Builder { |
| if m != nil { |
| return m.Builders |
| } |
| return nil |
| } |
| |
| // Notification specifies the triggers to watch for and send |
| // notifications on. It also specifies email recipients. |
| // |
| // Next ID: 8. |
| type Notification struct { |
| // Notify on each build success. |
| OnSuccess bool `protobuf:"varint,1,opt,name=on_success,json=onSuccess,proto3" json:"on_success,omitempty"` |
| // Notify on each build failure. |
| OnFailure bool `protobuf:"varint,2,opt,name=on_failure,json=onFailure,proto3" json:"on_failure,omitempty"` |
| // Notify on each build status different than the previous one. |
| OnChange bool `protobuf:"varint,3,opt,name=on_change,json=onChange,proto3" json:"on_change,omitempty"` |
| // Notify on each build failure unless the previous build was a failure. |
| OnNewFailure bool `protobuf:"varint,7,opt,name=on_new_failure,json=onNewFailure,proto3" json:"on_new_failure,omitempty"` |
| // Email is the set of email addresses to notify. |
| // |
| // Optional. |
| Email *Notification_Email `protobuf:"bytes,4,opt,name=email,proto3" json:"email,omitempty"` |
| // Refers to which project template name to use to format this email. |
| // If not present, "default" will be used. |
| // |
| // Optional. |
| Template string `protobuf:"bytes,5,opt,name=template,proto3" json:"template,omitempty"` |
| // NotifyBlamelist specifies whether to notify the computed blamelist for a |
| // given build. |
| // |
| // If set, this notification will be sent to the blamelist of a build. Note |
| // that if this is set in multiple notifications pertaining to the same |
| // builder, the blamelist may recieve multiple emails. |
| // |
| // Optional. |
| NotifyBlamelist *Notification_Blamelist `protobuf:"bytes,6,opt,name=notify_blamelist,json=notifyBlamelist,proto3" json:"notify_blamelist,omitempty"` |
| XXX_NoUnkeyedLiteral struct{} `json:"-"` |
| XXX_unrecognized []byte `json:"-"` |
| XXX_sizecache int32 `json:"-"` |
| } |
| |
| func (m *Notification) Reset() { *m = Notification{} } |
| func (m *Notification) String() string { return proto.CompactTextString(m) } |
| func (*Notification) ProtoMessage() {} |
| func (*Notification) Descriptor() ([]byte, []int) { |
| return fileDescriptor_9a6945a7af0ec43b, []int{2} |
| } |
| |
| func (m *Notification) XXX_Unmarshal(b []byte) error { |
| return xxx_messageInfo_Notification.Unmarshal(m, b) |
| } |
| func (m *Notification) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { |
| return xxx_messageInfo_Notification.Marshal(b, m, deterministic) |
| } |
| func (m *Notification) XXX_Merge(src proto.Message) { |
| xxx_messageInfo_Notification.Merge(m, src) |
| } |
| func (m *Notification) XXX_Size() int { |
| return xxx_messageInfo_Notification.Size(m) |
| } |
| func (m *Notification) XXX_DiscardUnknown() { |
| xxx_messageInfo_Notification.DiscardUnknown(m) |
| } |
| |
| var xxx_messageInfo_Notification proto.InternalMessageInfo |
| |
| func (m *Notification) GetOnSuccess() bool { |
| if m != nil { |
| return m.OnSuccess |
| } |
| return false |
| } |
| |
| func (m *Notification) GetOnFailure() bool { |
| if m != nil { |
| return m.OnFailure |
| } |
| return false |
| } |
| |
| func (m *Notification) GetOnChange() bool { |
| if m != nil { |
| return m.OnChange |
| } |
| return false |
| } |
| |
| func (m *Notification) GetOnNewFailure() bool { |
| if m != nil { |
| return m.OnNewFailure |
| } |
| return false |
| } |
| |
| func (m *Notification) GetEmail() *Notification_Email { |
| if m != nil { |
| return m.Email |
| } |
| return nil |
| } |
| |
| func (m *Notification) GetTemplate() string { |
| if m != nil { |
| return m.Template |
| } |
| return "" |
| } |
| |
| func (m *Notification) GetNotifyBlamelist() *Notification_Blamelist { |
| if m != nil { |
| return m.NotifyBlamelist |
| } |
| return nil |
| } |
| |
| // Email is a message representing a set of mail recipients (email |
| // addresses). |
| type Notification_Email struct { |
| // Recipients is a list of email addresses to notify. |
| Recipients []string `protobuf:"bytes,1,rep,name=recipients,proto3" json:"recipients,omitempty"` |
| XXX_NoUnkeyedLiteral struct{} `json:"-"` |
| XXX_unrecognized []byte `json:"-"` |
| XXX_sizecache int32 `json:"-"` |
| } |
| |
| func (m *Notification_Email) Reset() { *m = Notification_Email{} } |
| func (m *Notification_Email) String() string { return proto.CompactTextString(m) } |
| func (*Notification_Email) ProtoMessage() {} |
| func (*Notification_Email) Descriptor() ([]byte, []int) { |
| return fileDescriptor_9a6945a7af0ec43b, []int{2, 0} |
| } |
| |
| func (m *Notification_Email) XXX_Unmarshal(b []byte) error { |
| return xxx_messageInfo_Notification_Email.Unmarshal(m, b) |
| } |
| func (m *Notification_Email) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { |
| return xxx_messageInfo_Notification_Email.Marshal(b, m, deterministic) |
| } |
| func (m *Notification_Email) XXX_Merge(src proto.Message) { |
| xxx_messageInfo_Notification_Email.Merge(m, src) |
| } |
| func (m *Notification_Email) XXX_Size() int { |
| return xxx_messageInfo_Notification_Email.Size(m) |
| } |
| func (m *Notification_Email) XXX_DiscardUnknown() { |
| xxx_messageInfo_Notification_Email.DiscardUnknown(m) |
| } |
| |
| var xxx_messageInfo_Notification_Email proto.InternalMessageInfo |
| |
| func (m *Notification_Email) GetRecipients() []string { |
| if m != nil { |
| return m.Recipients |
| } |
| return nil |
| } |
| |
| // Blamelist is a message representing configuration for notifying the blamelist. |
| type Notification_Blamelist struct { |
| // A list of repositories which we are allowed to be included as part of the |
| // blamelist. If unset, a blamelist will be computed based on a Builder's |
| // repository field. If set, however luci-notify computes the blamelist for |
| // all commits related to a build (which may span multiple repositories) which |
| // are part of repository in this repository whitelist. |
| // |
| // Repositories should be valid Gerrit/Gitiles repository URLs, such as |
| // https://chromium.googlesource.com/chromium/src |
| // |
| // Optional. |
| RepositoryWhitelist []string `protobuf:"bytes,1,rep,name=repository_whitelist,json=repositoryWhitelist,proto3" json:"repository_whitelist,omitempty"` |
| XXX_NoUnkeyedLiteral struct{} `json:"-"` |
| XXX_unrecognized []byte `json:"-"` |
| XXX_sizecache int32 `json:"-"` |
| } |
| |
| func (m *Notification_Blamelist) Reset() { *m = Notification_Blamelist{} } |
| func (m *Notification_Blamelist) String() string { return proto.CompactTextString(m) } |
| func (*Notification_Blamelist) ProtoMessage() {} |
| func (*Notification_Blamelist) Descriptor() ([]byte, []int) { |
| return fileDescriptor_9a6945a7af0ec43b, []int{2, 1} |
| } |
| |
| func (m *Notification_Blamelist) XXX_Unmarshal(b []byte) error { |
| return xxx_messageInfo_Notification_Blamelist.Unmarshal(m, b) |
| } |
| func (m *Notification_Blamelist) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { |
| return xxx_messageInfo_Notification_Blamelist.Marshal(b, m, deterministic) |
| } |
| func (m *Notification_Blamelist) XXX_Merge(src proto.Message) { |
| xxx_messageInfo_Notification_Blamelist.Merge(m, src) |
| } |
| func (m *Notification_Blamelist) XXX_Size() int { |
| return xxx_messageInfo_Notification_Blamelist.Size(m) |
| } |
| func (m *Notification_Blamelist) XXX_DiscardUnknown() { |
| xxx_messageInfo_Notification_Blamelist.DiscardUnknown(m) |
| } |
| |
| var xxx_messageInfo_Notification_Blamelist proto.InternalMessageInfo |
| |
| func (m *Notification_Blamelist) GetRepositoryWhitelist() []string { |
| if m != nil { |
| return m.RepositoryWhitelist |
| } |
| return nil |
| } |
| |
| // Builder references a buildbucket builder in the current project. |
| type Builder struct { |
| // Bucket is the buildbucket bucket that the builder is a part of. |
| // |
| // Required. |
| Bucket string `protobuf:"bytes,1,opt,name=bucket,proto3" json:"bucket,omitempty"` |
| // Name is the name of the buildbucket builder. |
| // |
| // Required. |
| Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` |
| // Repository is the git repository associated with this particular builder. |
| // |
| // The repository should look like a URL, e.g. https://chromium.googlesource.com/src |
| // |
| // Currently, luci-notify only supports Gerrit-like URLs since it checks |
| // against gitiles commits, so the URL's path (e.g. "src" in the above |
| // example) should map directly to a Gerrit project. |
| // |
| // Builds attached to the history of this repository will use this |
| // repository's git history to determine the order between two builds for the |
| // OnChange notification. |
| // |
| // Optional. |
| // |
| // If not set, OnChange notifications will derive their notion of |
| // "previous" build solely from build creation time, which is potentially |
| // less reliable. |
| Repository string `protobuf:"bytes,3,opt,name=repository,proto3" json:"repository,omitempty"` |
| XXX_NoUnkeyedLiteral struct{} `json:"-"` |
| XXX_unrecognized []byte `json:"-"` |
| XXX_sizecache int32 `json:"-"` |
| } |
| |
| func (m *Builder) Reset() { *m = Builder{} } |
| func (m *Builder) String() string { return proto.CompactTextString(m) } |
| func (*Builder) ProtoMessage() {} |
| func (*Builder) Descriptor() ([]byte, []int) { |
| return fileDescriptor_9a6945a7af0ec43b, []int{3} |
| } |
| |
| func (m *Builder) XXX_Unmarshal(b []byte) error { |
| return xxx_messageInfo_Builder.Unmarshal(m, b) |
| } |
| func (m *Builder) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { |
| return xxx_messageInfo_Builder.Marshal(b, m, deterministic) |
| } |
| func (m *Builder) XXX_Merge(src proto.Message) { |
| xxx_messageInfo_Builder.Merge(m, src) |
| } |
| func (m *Builder) XXX_Size() int { |
| return xxx_messageInfo_Builder.Size(m) |
| } |
| func (m *Builder) XXX_DiscardUnknown() { |
| xxx_messageInfo_Builder.DiscardUnknown(m) |
| } |
| |
| var xxx_messageInfo_Builder proto.InternalMessageInfo |
| |
| func (m *Builder) GetBucket() string { |
| if m != nil { |
| return m.Bucket |
| } |
| return "" |
| } |
| |
| func (m *Builder) GetName() string { |
| if m != nil { |
| return m.Name |
| } |
| return "" |
| } |
| |
| func (m *Builder) GetRepository() string { |
| if m != nil { |
| return m.Repository |
| } |
| return "" |
| } |
| |
| // Notifications encapsulates a list of notifications as a proto so code for |
| // storing it in the datastore may be generated. |
| type Notifications struct { |
| // Notifications is a list of notification configurations. |
| Notifications []*Notification `protobuf:"bytes,1,rep,name=notifications,proto3" json:"notifications,omitempty"` |
| XXX_NoUnkeyedLiteral struct{} `json:"-"` |
| XXX_unrecognized []byte `json:"-"` |
| XXX_sizecache int32 `json:"-"` |
| } |
| |
| func (m *Notifications) Reset() { *m = Notifications{} } |
| func (m *Notifications) String() string { return proto.CompactTextString(m) } |
| func (*Notifications) ProtoMessage() {} |
| func (*Notifications) Descriptor() ([]byte, []int) { |
| return fileDescriptor_9a6945a7af0ec43b, []int{4} |
| } |
| |
| func (m *Notifications) XXX_Unmarshal(b []byte) error { |
| return xxx_messageInfo_Notifications.Unmarshal(m, b) |
| } |
| func (m *Notifications) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { |
| return xxx_messageInfo_Notifications.Marshal(b, m, deterministic) |
| } |
| func (m *Notifications) XXX_Merge(src proto.Message) { |
| xxx_messageInfo_Notifications.Merge(m, src) |
| } |
| func (m *Notifications) XXX_Size() int { |
| return xxx_messageInfo_Notifications.Size(m) |
| } |
| func (m *Notifications) XXX_DiscardUnknown() { |
| xxx_messageInfo_Notifications.DiscardUnknown(m) |
| } |
| |
| var xxx_messageInfo_Notifications proto.InternalMessageInfo |
| |
| func (m *Notifications) GetNotifications() []*Notification { |
| if m != nil { |
| return m.Notifications |
| } |
| return nil |
| } |
| |
| // A collection of landed Git commits hosted on Gitiles. |
| type GitilesCommits struct { |
| // The Gitiles commits in this collection. |
| Commits []*proto1.GitilesCommit `protobuf:"bytes,1,rep,name=commits,proto3" json:"commits,omitempty"` |
| XXX_NoUnkeyedLiteral struct{} `json:"-"` |
| XXX_unrecognized []byte `json:"-"` |
| XXX_sizecache int32 `json:"-"` |
| } |
| |
| func (m *GitilesCommits) Reset() { *m = GitilesCommits{} } |
| func (m *GitilesCommits) String() string { return proto.CompactTextString(m) } |
| func (*GitilesCommits) ProtoMessage() {} |
| func (*GitilesCommits) Descriptor() ([]byte, []int) { |
| return fileDescriptor_9a6945a7af0ec43b, []int{5} |
| } |
| |
| func (m *GitilesCommits) XXX_Unmarshal(b []byte) error { |
| return xxx_messageInfo_GitilesCommits.Unmarshal(m, b) |
| } |
| func (m *GitilesCommits) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { |
| return xxx_messageInfo_GitilesCommits.Marshal(b, m, deterministic) |
| } |
| func (m *GitilesCommits) XXX_Merge(src proto.Message) { |
| xxx_messageInfo_GitilesCommits.Merge(m, src) |
| } |
| func (m *GitilesCommits) XXX_Size() int { |
| return xxx_messageInfo_GitilesCommits.Size(m) |
| } |
| func (m *GitilesCommits) XXX_DiscardUnknown() { |
| xxx_messageInfo_GitilesCommits.DiscardUnknown(m) |
| } |
| |
| var xxx_messageInfo_GitilesCommits proto.InternalMessageInfo |
| |
| func (m *GitilesCommits) GetCommits() []*proto1.GitilesCommit { |
| if m != nil { |
| return m.Commits |
| } |
| return nil |
| } |
| |
| func init() { |
| proto.RegisterType((*ProjectConfig)(nil), "notify.ProjectConfig") |
| proto.RegisterType((*Notifier)(nil), "notify.Notifier") |
| proto.RegisterType((*Notification)(nil), "notify.Notification") |
| proto.RegisterType((*Notification_Email)(nil), "notify.Notification.Email") |
| proto.RegisterType((*Notification_Blamelist)(nil), "notify.Notification.Blamelist") |
| proto.RegisterType((*Builder)(nil), "notify.Builder") |
| proto.RegisterType((*Notifications)(nil), "notify.Notifications") |
| proto.RegisterType((*GitilesCommits)(nil), "notify.GitilesCommits") |
| } |
| |
| func init() { |
| proto.RegisterFile("go.chromium.org/luci/luci_notify/api/config/notify.proto", fileDescriptor_9a6945a7af0ec43b) |
| } |
| |
| var fileDescriptor_9a6945a7af0ec43b = []byte{ |
| // 497 bytes of a gzipped FileDescriptorProto |
| 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x53, 0x4f, 0x8b, 0xd3, 0x40, |
| 0x14, 0x27, 0xed, 0xb6, 0x4d, 0xde, 0x6e, 0x77, 0x97, 0x71, 0x91, 0x50, 0xd9, 0xa5, 0x04, 0xc1, |
| 0x82, 0x90, 0x68, 0xf7, 0xa0, 0x78, 0x50, 0x68, 0x51, 0x59, 0x84, 0x22, 0x11, 0x11, 0xbc, 0x84, |
| 0x74, 0x9c, 0xb6, 0xa3, 0x99, 0x79, 0x21, 0x99, 0x58, 0xf6, 0x13, 0x78, 0xf6, 0x1b, 0xcb, 0xbe, |
| 0x49, 0xb2, 0x2d, 0xf6, 0xb0, 0x97, 0x30, 0xef, 0xf7, 0x6f, 0x5e, 0x66, 0xde, 0xc0, 0xeb, 0x35, |
| 0x86, 0x7c, 0x53, 0xa0, 0x92, 0x95, 0x0a, 0xb1, 0x58, 0x47, 0x59, 0xc5, 0x25, 0x7d, 0x12, 0x8d, |
| 0x46, 0xae, 0x6e, 0xa3, 0x34, 0x97, 0x11, 0x47, 0xbd, 0x92, 0xeb, 0xc8, 0x22, 0x61, 0x5e, 0xa0, |
| 0x41, 0xd6, 0xb7, 0xd5, 0xe8, 0xfa, 0x60, 0xc2, 0xb2, 0x92, 0xd9, 0x8f, 0x65, 0xc5, 0x7f, 0x09, |
| 0x13, 0x91, 0x3e, 0xe2, 0xa8, 0x14, 0x6a, 0x6b, 0x0e, 0xde, 0xc1, 0xf0, 0x73, 0x81, 0x3f, 0x05, |
| 0x37, 0x73, 0x8a, 0x66, 0x21, 0x78, 0x94, 0x27, 0x45, 0x51, 0xfa, 0xce, 0xb8, 0x3b, 0x39, 0x9e, |
| 0x9e, 0x87, 0xf5, 0x7e, 0x8b, 0x9a, 0x88, 0xef, 0x25, 0xc1, 0x1f, 0x07, 0xdc, 0x06, 0x67, 0x0c, |
| 0x8e, 0x74, 0xaa, 0x84, 0xef, 0x8c, 0x9d, 0x89, 0x17, 0xd3, 0x9a, 0xbd, 0x81, 0xa1, 0x55, 0xf3, |
| 0xd4, 0x48, 0xd4, 0xa5, 0xdf, 0xa1, 0xd0, 0x8b, 0xfd, 0x50, 0x4b, 0xc6, 0xfb, 0x52, 0xf6, 0x1c, |
| 0x5c, 0xea, 0xff, 0xae, 0x97, 0x2e, 0xd9, 0xce, 0x1a, 0xdb, 0xcc, 0xe2, 0x71, 0x2b, 0x08, 0xfe, |
| 0x76, 0xe1, 0x64, 0x37, 0x8c, 0x5d, 0x02, 0xa0, 0x4e, 0xca, 0x8a, 0x73, 0x51, 0x96, 0xd4, 0x93, |
| 0x1b, 0x7b, 0xa8, 0xbf, 0x58, 0xa0, 0xa6, 0x57, 0xa9, 0xcc, 0xaa, 0x42, 0xf8, 0x9d, 0x86, 0xfe, |
| 0x60, 0x01, 0xf6, 0x04, 0x3c, 0xd4, 0x09, 0xdf, 0xa4, 0x7a, 0x2d, 0xfc, 0x2e, 0xb1, 0x2e, 0xea, |
| 0x39, 0xd5, 0xec, 0x29, 0x9c, 0xa2, 0x4e, 0xb4, 0xd8, 0xb6, 0xfe, 0x01, 0x29, 0x4e, 0x50, 0x2f, |
| 0xc4, 0xb6, 0x89, 0x78, 0x01, 0x3d, 0xa1, 0x52, 0x99, 0xf9, 0x47, 0x63, 0x67, 0x72, 0x3c, 0x1d, |
| 0x1d, 0xfa, 0xe5, 0xf0, 0xfd, 0x9d, 0x22, 0xb6, 0x42, 0x36, 0x02, 0xd7, 0x08, 0x95, 0x67, 0xa9, |
| 0x11, 0x7e, 0x8f, 0x0e, 0xb1, 0xad, 0xd9, 0x0d, 0x9c, 0x5b, 0x7f, 0xb2, 0xcc, 0x52, 0x25, 0x32, |
| 0x59, 0x1a, 0xbf, 0x4f, 0xc1, 0x57, 0x07, 0x83, 0x67, 0x8d, 0x2a, 0x3e, 0xb3, 0x74, 0x0b, 0x8c, |
| 0x9e, 0x41, 0x8f, 0xb6, 0x65, 0x57, 0x00, 0x85, 0xe0, 0x32, 0x97, 0x42, 0x1b, 0x7b, 0xdd, 0x5e, |
| 0xbc, 0x83, 0x8c, 0xde, 0x82, 0xd7, 0xba, 0xd8, 0x4b, 0xb8, 0x28, 0x44, 0x8e, 0xa5, 0x34, 0x58, |
| 0xdc, 0x26, 0xdb, 0x8d, 0x34, 0xb6, 0x09, 0x6b, 0x7b, 0x74, 0xcf, 0x7d, 0x6b, 0xa8, 0xe0, 0x2b, |
| 0x0c, 0xea, 0x8b, 0x62, 0x8f, 0xa1, 0x6f, 0xc7, 0xb0, 0x9e, 0x8e, 0xba, 0x6a, 0x67, 0xa6, 0xb3, |
| 0x33, 0x33, 0xd4, 0x56, 0x93, 0x46, 0x87, 0x4f, 0x6d, 0x35, 0x48, 0xf0, 0x09, 0x86, 0x8b, 0xbd, |
| 0x41, 0xf9, 0x6f, 0xc8, 0x9c, 0x07, 0x0f, 0x59, 0x70, 0x03, 0xa7, 0x1f, 0xa5, 0x91, 0x99, 0x28, |
| 0xe7, 0xa8, 0x94, 0x34, 0x25, 0x7b, 0x05, 0x03, 0x6e, 0x97, 0x75, 0xce, 0x65, 0xb8, 0xf3, 0x8c, |
| 0xc2, 0xdf, 0xd3, 0x70, 0xcf, 0x10, 0x37, 0xea, 0x99, 0xfb, 0xbd, 0x6f, 0x5f, 0xe8, 0xb2, 0x4f, |
| 0xcf, 0xeb, 0xfa, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd3, 0xc3, 0xcc, 0xfd, 0xd7, 0x03, 0x00, |
| 0x00, |
| } |