github.com/kchristidis/fabric@v1.0.4-0.20171028114726-837acd08cde1/protos/peer/transaction.pb.go (about) 1 // Code generated by protoc-gen-go. DO NOT EDIT. 2 // source: peer/transaction.proto 3 4 package peer 5 6 import proto "github.com/golang/protobuf/proto" 7 import fmt "fmt" 8 import math "math" 9 import _ "github.com/golang/protobuf/ptypes/timestamp" 10 import common "github.com/hyperledger/fabric/protos/common" 11 12 // Reference imports to suppress errors if they are not otherwise used. 13 var _ = proto.Marshal 14 var _ = fmt.Errorf 15 var _ = math.Inf 16 17 type TxValidationCode int32 18 19 const ( 20 TxValidationCode_VALID TxValidationCode = 0 21 TxValidationCode_NIL_ENVELOPE TxValidationCode = 1 22 TxValidationCode_BAD_PAYLOAD TxValidationCode = 2 23 TxValidationCode_BAD_COMMON_HEADER TxValidationCode = 3 24 TxValidationCode_BAD_CREATOR_SIGNATURE TxValidationCode = 4 25 TxValidationCode_INVALID_ENDORSER_TRANSACTION TxValidationCode = 5 26 TxValidationCode_INVALID_CONFIG_TRANSACTION TxValidationCode = 6 27 TxValidationCode_UNSUPPORTED_TX_PAYLOAD TxValidationCode = 7 28 TxValidationCode_BAD_PROPOSAL_TXID TxValidationCode = 8 29 TxValidationCode_DUPLICATE_TXID TxValidationCode = 9 30 TxValidationCode_ENDORSEMENT_POLICY_FAILURE TxValidationCode = 10 31 TxValidationCode_MVCC_READ_CONFLICT TxValidationCode = 11 32 TxValidationCode_PHANTOM_READ_CONFLICT TxValidationCode = 12 33 TxValidationCode_UNKNOWN_TX_TYPE TxValidationCode = 13 34 TxValidationCode_TARGET_CHAIN_NOT_FOUND TxValidationCode = 14 35 TxValidationCode_MARSHAL_TX_ERROR TxValidationCode = 15 36 TxValidationCode_NIL_TXACTION TxValidationCode = 16 37 TxValidationCode_EXPIRED_CHAINCODE TxValidationCode = 17 38 TxValidationCode_CHAINCODE_VERSION_CONFLICT TxValidationCode = 18 39 TxValidationCode_BAD_HEADER_EXTENSION TxValidationCode = 19 40 TxValidationCode_BAD_CHANNEL_HEADER TxValidationCode = 20 41 TxValidationCode_BAD_RESPONSE_PAYLOAD TxValidationCode = 21 42 TxValidationCode_BAD_RWSET TxValidationCode = 22 43 TxValidationCode_ILLEGAL_WRITESET TxValidationCode = 23 44 TxValidationCode_INVALID_OTHER_REASON TxValidationCode = 255 45 ) 46 47 var TxValidationCode_name = map[int32]string{ 48 0: "VALID", 49 1: "NIL_ENVELOPE", 50 2: "BAD_PAYLOAD", 51 3: "BAD_COMMON_HEADER", 52 4: "BAD_CREATOR_SIGNATURE", 53 5: "INVALID_ENDORSER_TRANSACTION", 54 6: "INVALID_CONFIG_TRANSACTION", 55 7: "UNSUPPORTED_TX_PAYLOAD", 56 8: "BAD_PROPOSAL_TXID", 57 9: "DUPLICATE_TXID", 58 10: "ENDORSEMENT_POLICY_FAILURE", 59 11: "MVCC_READ_CONFLICT", 60 12: "PHANTOM_READ_CONFLICT", 61 13: "UNKNOWN_TX_TYPE", 62 14: "TARGET_CHAIN_NOT_FOUND", 63 15: "MARSHAL_TX_ERROR", 64 16: "NIL_TXACTION", 65 17: "EXPIRED_CHAINCODE", 66 18: "CHAINCODE_VERSION_CONFLICT", 67 19: "BAD_HEADER_EXTENSION", 68 20: "BAD_CHANNEL_HEADER", 69 21: "BAD_RESPONSE_PAYLOAD", 70 22: "BAD_RWSET", 71 23: "ILLEGAL_WRITESET", 72 255: "INVALID_OTHER_REASON", 73 } 74 var TxValidationCode_value = map[string]int32{ 75 "VALID": 0, 76 "NIL_ENVELOPE": 1, 77 "BAD_PAYLOAD": 2, 78 "BAD_COMMON_HEADER": 3, 79 "BAD_CREATOR_SIGNATURE": 4, 80 "INVALID_ENDORSER_TRANSACTION": 5, 81 "INVALID_CONFIG_TRANSACTION": 6, 82 "UNSUPPORTED_TX_PAYLOAD": 7, 83 "BAD_PROPOSAL_TXID": 8, 84 "DUPLICATE_TXID": 9, 85 "ENDORSEMENT_POLICY_FAILURE": 10, 86 "MVCC_READ_CONFLICT": 11, 87 "PHANTOM_READ_CONFLICT": 12, 88 "UNKNOWN_TX_TYPE": 13, 89 "TARGET_CHAIN_NOT_FOUND": 14, 90 "MARSHAL_TX_ERROR": 15, 91 "NIL_TXACTION": 16, 92 "EXPIRED_CHAINCODE": 17, 93 "CHAINCODE_VERSION_CONFLICT": 18, 94 "BAD_HEADER_EXTENSION": 19, 95 "BAD_CHANNEL_HEADER": 20, 96 "BAD_RESPONSE_PAYLOAD": 21, 97 "BAD_RWSET": 22, 98 "ILLEGAL_WRITESET": 23, 99 "INVALID_OTHER_REASON": 255, 100 } 101 102 func (x TxValidationCode) String() string { 103 return proto.EnumName(TxValidationCode_name, int32(x)) 104 } 105 func (TxValidationCode) EnumDescriptor() ([]byte, []int) { return fileDescriptor11, []int{0} } 106 107 // This message is necessary to facilitate the verification of the signature 108 // (in the signature field) over the bytes of the transaction (in the 109 // transactionBytes field). 110 type SignedTransaction struct { 111 // The bytes of the Transaction. NDD 112 TransactionBytes []byte `protobuf:"bytes,1,opt,name=transaction_bytes,json=transactionBytes,proto3" json:"transaction_bytes,omitempty"` 113 // Signature of the transactionBytes The public key of the signature is in 114 // the header field of TransactionAction There might be multiple 115 // TransactionAction, so multiple headers, but there should be same 116 // transactor identity (cert) in all headers 117 Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"` 118 } 119 120 func (m *SignedTransaction) Reset() { *m = SignedTransaction{} } 121 func (m *SignedTransaction) String() string { return proto.CompactTextString(m) } 122 func (*SignedTransaction) ProtoMessage() {} 123 func (*SignedTransaction) Descriptor() ([]byte, []int) { return fileDescriptor11, []int{0} } 124 125 func (m *SignedTransaction) GetTransactionBytes() []byte { 126 if m != nil { 127 return m.TransactionBytes 128 } 129 return nil 130 } 131 132 func (m *SignedTransaction) GetSignature() []byte { 133 if m != nil { 134 return m.Signature 135 } 136 return nil 137 } 138 139 // ProcessedTransaction wraps an Envelope that includes a transaction along with an indication 140 // of whether the transaction was validated or invalidated by committing peer. 141 // The use case is that GetTransactionByID API needs to retrieve the transaction Envelope 142 // from block storage, and return it to a client, and indicate whether the transaction 143 // was validated or invalidated by committing peer. So that the originally submitted 144 // transaction Envelope is not modified, the ProcessedTransaction wrapper is returned. 145 type ProcessedTransaction struct { 146 // An Envelope which includes a processed transaction 147 TransactionEnvelope *common.Envelope `protobuf:"bytes,1,opt,name=transactionEnvelope" json:"transactionEnvelope,omitempty"` 148 // An indication of whether the transaction was validated or invalidated by committing peer 149 ValidationCode int32 `protobuf:"varint,2,opt,name=validationCode" json:"validationCode,omitempty"` 150 } 151 152 func (m *ProcessedTransaction) Reset() { *m = ProcessedTransaction{} } 153 func (m *ProcessedTransaction) String() string { return proto.CompactTextString(m) } 154 func (*ProcessedTransaction) ProtoMessage() {} 155 func (*ProcessedTransaction) Descriptor() ([]byte, []int) { return fileDescriptor11, []int{1} } 156 157 func (m *ProcessedTransaction) GetTransactionEnvelope() *common.Envelope { 158 if m != nil { 159 return m.TransactionEnvelope 160 } 161 return nil 162 } 163 164 func (m *ProcessedTransaction) GetValidationCode() int32 { 165 if m != nil { 166 return m.ValidationCode 167 } 168 return 0 169 } 170 171 // The transaction to be sent to the ordering service. A transaction contains 172 // one or more TransactionAction. Each TransactionAction binds a proposal to 173 // potentially multiple actions. The transaction is atomic meaning that either 174 // all actions in the transaction will be committed or none will. Note that 175 // while a Transaction might include more than one Header, the Header.creator 176 // field must be the same in each. 177 // A single client is free to issue a number of independent Proposal, each with 178 // their header (Header) and request payload (ChaincodeProposalPayload). Each 179 // proposal is independently endorsed generating an action 180 // (ProposalResponsePayload) with one signature per Endorser. Any number of 181 // independent proposals (and their action) might be included in a transaction 182 // to ensure that they are treated atomically. 183 type Transaction struct { 184 // The payload is an array of TransactionAction. An array is necessary to 185 // accommodate multiple actions per transaction 186 Actions []*TransactionAction `protobuf:"bytes,1,rep,name=actions" json:"actions,omitempty"` 187 } 188 189 func (m *Transaction) Reset() { *m = Transaction{} } 190 func (m *Transaction) String() string { return proto.CompactTextString(m) } 191 func (*Transaction) ProtoMessage() {} 192 func (*Transaction) Descriptor() ([]byte, []int) { return fileDescriptor11, []int{2} } 193 194 func (m *Transaction) GetActions() []*TransactionAction { 195 if m != nil { 196 return m.Actions 197 } 198 return nil 199 } 200 201 // TransactionAction binds a proposal to its action. The type field in the 202 // header dictates the type of action to be applied to the ledger. 203 type TransactionAction struct { 204 // The header of the proposal action, which is the proposal header 205 Header []byte `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` 206 // The payload of the action as defined by the type in the header For 207 // chaincode, it's the bytes of ChaincodeActionPayload 208 Payload []byte `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"` 209 } 210 211 func (m *TransactionAction) Reset() { *m = TransactionAction{} } 212 func (m *TransactionAction) String() string { return proto.CompactTextString(m) } 213 func (*TransactionAction) ProtoMessage() {} 214 func (*TransactionAction) Descriptor() ([]byte, []int) { return fileDescriptor11, []int{3} } 215 216 func (m *TransactionAction) GetHeader() []byte { 217 if m != nil { 218 return m.Header 219 } 220 return nil 221 } 222 223 func (m *TransactionAction) GetPayload() []byte { 224 if m != nil { 225 return m.Payload 226 } 227 return nil 228 } 229 230 // ChaincodeActionPayload is the message to be used for the TransactionAction's 231 // payload when the Header's type is set to CHAINCODE. It carries the 232 // chaincodeProposalPayload and an endorsed action to apply to the ledger. 233 type ChaincodeActionPayload struct { 234 // This field contains the bytes of the ChaincodeProposalPayload message from 235 // the original invocation (essentially the arguments) after the application 236 // of the visibility function. The main visibility modes are "full" (the 237 // entire ChaincodeProposalPayload message is included here), "hash" (only 238 // the hash of the ChaincodeProposalPayload message is included) or 239 // "nothing". This field will be used to check the consistency of 240 // ProposalResponsePayload.proposalHash. For the CHAINCODE type, 241 // ProposalResponsePayload.proposalHash is supposed to be H(ProposalHeader || 242 // f(ChaincodeProposalPayload)) where f is the visibility function. 243 ChaincodeProposalPayload []byte `protobuf:"bytes,1,opt,name=chaincode_proposal_payload,json=chaincodeProposalPayload,proto3" json:"chaincode_proposal_payload,omitempty"` 244 // The list of actions to apply to the ledger 245 Action *ChaincodeEndorsedAction `protobuf:"bytes,2,opt,name=action" json:"action,omitempty"` 246 } 247 248 func (m *ChaincodeActionPayload) Reset() { *m = ChaincodeActionPayload{} } 249 func (m *ChaincodeActionPayload) String() string { return proto.CompactTextString(m) } 250 func (*ChaincodeActionPayload) ProtoMessage() {} 251 func (*ChaincodeActionPayload) Descriptor() ([]byte, []int) { return fileDescriptor11, []int{4} } 252 253 func (m *ChaincodeActionPayload) GetChaincodeProposalPayload() []byte { 254 if m != nil { 255 return m.ChaincodeProposalPayload 256 } 257 return nil 258 } 259 260 func (m *ChaincodeActionPayload) GetAction() *ChaincodeEndorsedAction { 261 if m != nil { 262 return m.Action 263 } 264 return nil 265 } 266 267 // ChaincodeEndorsedAction carries information about the endorsement of a 268 // specific proposal 269 type ChaincodeEndorsedAction struct { 270 // This is the bytes of the ProposalResponsePayload message signed by the 271 // endorsers. Recall that for the CHAINCODE type, the 272 // ProposalResponsePayload's extenstion field carries a ChaincodeAction 273 ProposalResponsePayload []byte `protobuf:"bytes,1,opt,name=proposal_response_payload,json=proposalResponsePayload,proto3" json:"proposal_response_payload,omitempty"` 274 // The endorsement of the proposal, basically the endorser's signature over 275 // proposalResponsePayload 276 Endorsements []*Endorsement `protobuf:"bytes,2,rep,name=endorsements" json:"endorsements,omitempty"` 277 } 278 279 func (m *ChaincodeEndorsedAction) Reset() { *m = ChaincodeEndorsedAction{} } 280 func (m *ChaincodeEndorsedAction) String() string { return proto.CompactTextString(m) } 281 func (*ChaincodeEndorsedAction) ProtoMessage() {} 282 func (*ChaincodeEndorsedAction) Descriptor() ([]byte, []int) { return fileDescriptor11, []int{5} } 283 284 func (m *ChaincodeEndorsedAction) GetProposalResponsePayload() []byte { 285 if m != nil { 286 return m.ProposalResponsePayload 287 } 288 return nil 289 } 290 291 func (m *ChaincodeEndorsedAction) GetEndorsements() []*Endorsement { 292 if m != nil { 293 return m.Endorsements 294 } 295 return nil 296 } 297 298 func init() { 299 proto.RegisterType((*SignedTransaction)(nil), "protos.SignedTransaction") 300 proto.RegisterType((*ProcessedTransaction)(nil), "protos.ProcessedTransaction") 301 proto.RegisterType((*Transaction)(nil), "protos.Transaction") 302 proto.RegisterType((*TransactionAction)(nil), "protos.TransactionAction") 303 proto.RegisterType((*ChaincodeActionPayload)(nil), "protos.ChaincodeActionPayload") 304 proto.RegisterType((*ChaincodeEndorsedAction)(nil), "protos.ChaincodeEndorsedAction") 305 proto.RegisterEnum("protos.TxValidationCode", TxValidationCode_name, TxValidationCode_value) 306 } 307 308 func init() { proto.RegisterFile("peer/transaction.proto", fileDescriptor11) } 309 310 var fileDescriptor11 = []byte{ 311 // 833 bytes of a gzipped FileDescriptorProto 312 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x74, 0x54, 0xd1, 0x6e, 0xe2, 0x46, 313 0x14, 0x2d, 0xd9, 0x4d, 0xd2, 0x0c, 0xd9, 0x64, 0x32, 0x10, 0x42, 0x50, 0xd4, 0x5d, 0xf1, 0x50, 314 0x6d, 0x5b, 0x09, 0xa4, 0xec, 0x43, 0xa5, 0xaa, 0x2f, 0x83, 0x3d, 0x09, 0x56, 0xcd, 0x8c, 0x35, 315 0x1e, 0x08, 0xe9, 0x43, 0x47, 0x06, 0xcf, 0x12, 0x54, 0xb0, 0x2d, 0xdb, 0x59, 0x35, 0xaf, 0xfd, 316 0x80, 0xf6, 0x3f, 0xfb, 0x13, 0xad, 0xc6, 0x63, 0x03, 0xc9, 0x76, 0x5f, 0x30, 0x73, 0xcf, 0xb9, 317 0xf7, 0x9c, 0x7b, 0xaf, 0x3d, 0xa0, 0x95, 0x28, 0x95, 0xf6, 0xf3, 0x34, 0x88, 0xb2, 0x60, 0x9e, 318 0x2f, 0xe3, 0xa8, 0x97, 0xa4, 0x71, 0x1e, 0xa3, 0x83, 0xe2, 0x91, 0x75, 0xde, 0x2e, 0xe2, 0x78, 319 0xb1, 0x52, 0xfd, 0xe2, 0x38, 0x7b, 0xfc, 0xd8, 0xcf, 0x97, 0x6b, 0x95, 0xe5, 0xc1, 0x3a, 0x31, 320 0xc4, 0xce, 0x55, 0x51, 0x20, 0x49, 0xe3, 0x24, 0xce, 0x82, 0x95, 0x4c, 0x55, 0x96, 0xc4, 0x51, 321 0xa6, 0x4a, 0xb4, 0x31, 0x8f, 0xd7, 0xeb, 0x38, 0xea, 0x9b, 0x87, 0x09, 0x76, 0x7f, 0x03, 0x67, 322 0xfe, 0x72, 0x11, 0xa9, 0x50, 0x6c, 0x65, 0xd1, 0x0f, 0xe0, 0x6c, 0xc7, 0x85, 0x9c, 0x3d, 0xe5, 323 0x2a, 0x6b, 0xd7, 0xde, 0xd5, 0xde, 0x1f, 0x73, 0xb8, 0x03, 0x0c, 0x74, 0x1c, 0x5d, 0x81, 0xa3, 324 0x6c, 0xb9, 0x88, 0x82, 0xfc, 0x31, 0x55, 0xed, 0xbd, 0x82, 0xb4, 0x0d, 0x74, 0xff, 0xac, 0x81, 325 0xa6, 0x97, 0xc6, 0x73, 0x95, 0x65, 0xcf, 0x35, 0x06, 0xa0, 0xb1, 0x53, 0x8a, 0x44, 0x9f, 0xd4, 326 0x2a, 0x4e, 0x54, 0xa1, 0x52, 0xbf, 0x86, 0xbd, 0xd2, 0x64, 0x15, 0xe7, 0xff, 0x47, 0x46, 0xdf, 327 0x82, 0x93, 0x4f, 0xc1, 0x6a, 0x19, 0x06, 0x3a, 0x6a, 0xc5, 0xa1, 0xd1, 0xdf, 0xe7, 0x2f, 0xa2, 328 0xdd, 0x01, 0xa8, 0xef, 0x4a, 0x7f, 0x00, 0x87, 0xe6, 0x9f, 0x6e, 0xea, 0xd5, 0xfb, 0xfa, 0xf5, 329 0xa5, 0x19, 0x46, 0xd6, 0xdb, 0x61, 0xe1, 0xe2, 0x97, 0x57, 0xcc, 0x2e, 0x01, 0x67, 0x9f, 0xa1, 330 0xa8, 0x05, 0x0e, 0x1e, 0x54, 0x10, 0xaa, 0xb4, 0x9c, 0x4e, 0x79, 0x42, 0x6d, 0x70, 0x98, 0x04, 331 0x4f, 0xab, 0x38, 0x08, 0xcb, 0x89, 0x54, 0xc7, 0xee, 0xdf, 0x35, 0xd0, 0xb2, 0x1e, 0x82, 0x65, 332 0x34, 0x8f, 0x43, 0x65, 0xaa, 0x78, 0x06, 0x42, 0x3f, 0x83, 0xce, 0xbc, 0x42, 0xe4, 0x66, 0x89, 333 0x55, 0x1d, 0x23, 0xd0, 0xde, 0x30, 0xbc, 0x92, 0x50, 0x65, 0xff, 0x08, 0x0e, 0x8c, 0xb5, 0x42, 334 0xb1, 0x7e, 0xfd, 0xb6, 0xea, 0x69, 0xa3, 0x46, 0xa2, 0x30, 0x4e, 0x33, 0x15, 0x96, 0x9d, 0x95, 335 0xf4, 0xee, 0x5f, 0x35, 0x70, 0xf1, 0x05, 0x0e, 0xfa, 0x09, 0x5c, 0x7e, 0xf6, 0x36, 0xbd, 0x70, 336 0x74, 0x51, 0x11, 0x78, 0x89, 0x6f, 0x0d, 0x1d, 0x2b, 0x53, 0x6d, 0xad, 0xa2, 0x3c, 0x6b, 0xef, 337 0x15, 0xa3, 0x6e, 0x54, 0xb6, 0xc8, 0x16, 0xe3, 0xcf, 0x88, 0xdf, 0xff, 0xf3, 0x1a, 0x40, 0xf1, 338 0xc7, 0xe4, 0xd9, 0x0a, 0xd1, 0x11, 0xd8, 0x9f, 0x60, 0xd7, 0xb1, 0xe1, 0x57, 0x08, 0x82, 0x63, 339 0xea, 0xb8, 0x92, 0xd0, 0x09, 0x71, 0x99, 0x47, 0x60, 0x0d, 0x9d, 0x82, 0xfa, 0x00, 0xdb, 0xd2, 340 0xc3, 0xf7, 0x2e, 0xc3, 0x36, 0xdc, 0x43, 0xe7, 0xe0, 0x4c, 0x07, 0x2c, 0x36, 0x1a, 0x31, 0x2a, 341 0x87, 0x04, 0xdb, 0x84, 0xc3, 0x57, 0xe8, 0x12, 0x9c, 0x17, 0x61, 0x4e, 0xb0, 0x60, 0x5c, 0xfa, 342 0xce, 0x2d, 0xc5, 0x62, 0xcc, 0x09, 0x7c, 0x8d, 0xde, 0x81, 0x2b, 0x87, 0x16, 0x0a, 0x92, 0x50, 343 0x9b, 0x71, 0x9f, 0x70, 0x29, 0x38, 0xa6, 0x3e, 0xb6, 0x84, 0xc3, 0x28, 0xdc, 0x47, 0xdf, 0x80, 344 0x4e, 0xc5, 0xb0, 0x18, 0xbd, 0x71, 0x6e, 0x9f, 0xe1, 0x07, 0xa8, 0x03, 0x5a, 0x63, 0xea, 0x8f, 345 0x3d, 0x8f, 0x71, 0x41, 0x6c, 0x29, 0xa6, 0x1b, 0x3f, 0x87, 0x95, 0x1f, 0x8f, 0x33, 0x8f, 0xf9, 346 0xd8, 0x95, 0x62, 0xea, 0xd8, 0xf0, 0x6b, 0x84, 0xc0, 0x89, 0x3d, 0xf6, 0x5c, 0xc7, 0xc2, 0x82, 347 0x98, 0xd8, 0x91, 0x96, 0x29, 0x0d, 0x8c, 0x08, 0x15, 0xd2, 0x63, 0xae, 0x63, 0xdd, 0xcb, 0x1b, 348 0xec, 0xb8, 0xda, 0x28, 0x40, 0x2d, 0x80, 0x46, 0x13, 0xcb, 0x92, 0x9c, 0x60, 0x63, 0xc4, 0x75, 349 0x2c, 0x01, 0xeb, 0xba, 0x37, 0x6f, 0x88, 0xa9, 0x60, 0xa3, 0x17, 0xd0, 0x31, 0x6a, 0x80, 0xd3, 350 0x31, 0xfd, 0x85, 0xb2, 0x3b, 0xaa, 0x5d, 0x89, 0x7b, 0x8f, 0xc0, 0x37, 0xda, 0xae, 0xc0, 0xfc, 351 0x96, 0x08, 0x69, 0x0d, 0xb1, 0x43, 0x25, 0x65, 0x42, 0xde, 0xb0, 0x31, 0xb5, 0xe1, 0x09, 0x6a, 352 0x02, 0x38, 0xc2, 0xdc, 0x1f, 0x16, 0x4e, 0x25, 0xe1, 0x9c, 0x71, 0x78, 0x5a, 0xcd, 0x5d, 0x4c, 353 0xcb, 0x96, 0xa1, 0x6e, 0x8b, 0x4c, 0x3d, 0x87, 0x13, 0xdb, 0x14, 0xb1, 0x98, 0x4d, 0xe0, 0x99, 354 0x6e, 0x61, 0x73, 0x94, 0x13, 0xc2, 0x7d, 0x87, 0xd1, 0xad, 0x1f, 0x84, 0xda, 0xa0, 0xa9, 0xa7, 355 0x61, 0xd6, 0x22, 0xc9, 0x54, 0x10, 0xaa, 0x29, 0xb0, 0xa1, 0x9b, 0x2b, 0x16, 0x34, 0xc4, 0x94, 356 0x12, 0xb7, 0x5a, 0x5c, 0xb3, 0xca, 0xe0, 0xc4, 0xf7, 0x18, 0xf5, 0xc9, 0x66, 0xb2, 0xe7, 0xe8, 357 0x0d, 0x38, 0x2a, 0x90, 0x3b, 0x9f, 0x08, 0xd8, 0xd2, 0xce, 0x1d, 0xd7, 0x25, 0xb7, 0xd8, 0x95, 358 0x77, 0xdc, 0x11, 0x44, 0x47, 0x2f, 0xd0, 0x25, 0x68, 0x56, 0xab, 0x63, 0x62, 0x48, 0xb8, 0x9e, 359 0x90, 0xcf, 0x28, 0xfc, 0xb7, 0x36, 0x98, 0x83, 0x6e, 0x9c, 0x2e, 0x7a, 0x0f, 0x4f, 0x89, 0x4a, 360 0x57, 0x2a, 0x5c, 0xa8, 0xb4, 0xf7, 0x31, 0x98, 0xa5, 0xcb, 0x79, 0xf5, 0x9e, 0xea, 0x2b, 0x75, 361 0x80, 0x76, 0x3e, 0x7d, 0x2f, 0x98, 0xff, 0x1e, 0x2c, 0xd4, 0xaf, 0xdf, 0x2d, 0x96, 0xf9, 0xc3, 362 0xe3, 0x4c, 0xdf, 0x54, 0xfd, 0x9d, 0xf4, 0xbe, 0x49, 0x37, 0x97, 0x74, 0xd6, 0xd7, 0xe9, 0x33, 363 0x73, 0x81, 0x7f, 0xf8, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x19, 0x1c, 0xb2, 0xe4, 0xe1, 0x05, 0x00, 364 0x00, 365 }