1// Code generated by protoc-gen-go. DO NOT EDIT. 2// source: google/api/expr/v1alpha1/syntax.proto 3 4package expr 5 6import ( 7 fmt "fmt" 8 math "math" 9 10 proto "github.com/golang/protobuf/proto" 11 duration "github.com/golang/protobuf/ptypes/duration" 12 _struct "github.com/golang/protobuf/ptypes/struct" 13 timestamp "github.com/golang/protobuf/ptypes/timestamp" 14) 15 16// Reference imports to suppress errors if they are not otherwise used. 17var _ = proto.Marshal 18var _ = fmt.Errorf 19var _ = math.Inf 20 21// This is a compile-time assertion to ensure that this generated file 22// is compatible with the proto package it is being compiled against. 23// A compilation error at this line likely means your copy of the 24// proto package needs to be updated. 25const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package 26 27// An expression together with source information as returned by the parser. 28type ParsedExpr struct { 29 // The parsed expression. 30 Expr *Expr `protobuf:"bytes,2,opt,name=expr,proto3" json:"expr,omitempty"` 31 // The source info derived from input that generated the parsed `expr`. 32 SourceInfo *SourceInfo `protobuf:"bytes,3,opt,name=source_info,json=sourceInfo,proto3" json:"source_info,omitempty"` 33 XXX_NoUnkeyedLiteral struct{} `json:"-"` 34 XXX_unrecognized []byte `json:"-"` 35 XXX_sizecache int32 `json:"-"` 36} 37 38func (m *ParsedExpr) Reset() { *m = ParsedExpr{} } 39func (m *ParsedExpr) String() string { return proto.CompactTextString(m) } 40func (*ParsedExpr) ProtoMessage() {} 41func (*ParsedExpr) Descriptor() ([]byte, []int) { 42 return fileDescriptor_d4e2be48009c83cb, []int{0} 43} 44 45func (m *ParsedExpr) XXX_Unmarshal(b []byte) error { 46 return xxx_messageInfo_ParsedExpr.Unmarshal(m, b) 47} 48func (m *ParsedExpr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 49 return xxx_messageInfo_ParsedExpr.Marshal(b, m, deterministic) 50} 51func (m *ParsedExpr) XXX_Merge(src proto.Message) { 52 xxx_messageInfo_ParsedExpr.Merge(m, src) 53} 54func (m *ParsedExpr) XXX_Size() int { 55 return xxx_messageInfo_ParsedExpr.Size(m) 56} 57func (m *ParsedExpr) XXX_DiscardUnknown() { 58 xxx_messageInfo_ParsedExpr.DiscardUnknown(m) 59} 60 61var xxx_messageInfo_ParsedExpr proto.InternalMessageInfo 62 63func (m *ParsedExpr) GetExpr() *Expr { 64 if m != nil { 65 return m.Expr 66 } 67 return nil 68} 69 70func (m *ParsedExpr) GetSourceInfo() *SourceInfo { 71 if m != nil { 72 return m.SourceInfo 73 } 74 return nil 75} 76 77// An abstract representation of a common expression. 78// 79// Expressions are abstractly represented as a collection of identifiers, 80// select statements, function calls, literals, and comprehensions. All 81// operators with the exception of the '.' operator are modelled as function 82// calls. This makes it easy to represent new operators into the existing AST. 83// 84// All references within expressions must resolve to a 85// [Decl][google.api.expr.v1alpha1.Decl] provided at type-check for an 86// expression to be valid. A reference may either be a bare identifier `name` or 87// a qualified identifier `google.api.name`. References may either refer to a 88// value or a function declaration. 89// 90// For example, the expression `google.api.name.startsWith('expr')` references 91// the declaration `google.api.name` within a 92// [Expr.Select][google.api.expr.v1alpha1.Expr.Select] expression, and the 93// function declaration `startsWith`. 94type Expr struct { 95 // Required. An id assigned to this node by the parser which is unique in a 96 // given expression tree. This is used to associate type information and other 97 // attributes to a node in the parse tree. 98 Id int64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` 99 // Required. Variants of expressions. 100 // 101 // Types that are valid to be assigned to ExprKind: 102 // *Expr_ConstExpr 103 // *Expr_IdentExpr 104 // *Expr_SelectExpr 105 // *Expr_CallExpr 106 // *Expr_ListExpr 107 // *Expr_StructExpr 108 // *Expr_ComprehensionExpr 109 ExprKind isExpr_ExprKind `protobuf_oneof:"expr_kind"` 110 XXX_NoUnkeyedLiteral struct{} `json:"-"` 111 XXX_unrecognized []byte `json:"-"` 112 XXX_sizecache int32 `json:"-"` 113} 114 115func (m *Expr) Reset() { *m = Expr{} } 116func (m *Expr) String() string { return proto.CompactTextString(m) } 117func (*Expr) ProtoMessage() {} 118func (*Expr) Descriptor() ([]byte, []int) { 119 return fileDescriptor_d4e2be48009c83cb, []int{1} 120} 121 122func (m *Expr) XXX_Unmarshal(b []byte) error { 123 return xxx_messageInfo_Expr.Unmarshal(m, b) 124} 125func (m *Expr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 126 return xxx_messageInfo_Expr.Marshal(b, m, deterministic) 127} 128func (m *Expr) XXX_Merge(src proto.Message) { 129 xxx_messageInfo_Expr.Merge(m, src) 130} 131func (m *Expr) XXX_Size() int { 132 return xxx_messageInfo_Expr.Size(m) 133} 134func (m *Expr) XXX_DiscardUnknown() { 135 xxx_messageInfo_Expr.DiscardUnknown(m) 136} 137 138var xxx_messageInfo_Expr proto.InternalMessageInfo 139 140func (m *Expr) GetId() int64 { 141 if m != nil { 142 return m.Id 143 } 144 return 0 145} 146 147type isExpr_ExprKind interface { 148 isExpr_ExprKind() 149} 150 151type Expr_ConstExpr struct { 152 ConstExpr *Constant `protobuf:"bytes,3,opt,name=const_expr,json=constExpr,proto3,oneof"` 153} 154 155type Expr_IdentExpr struct { 156 IdentExpr *Expr_Ident `protobuf:"bytes,4,opt,name=ident_expr,json=identExpr,proto3,oneof"` 157} 158 159type Expr_SelectExpr struct { 160 SelectExpr *Expr_Select `protobuf:"bytes,5,opt,name=select_expr,json=selectExpr,proto3,oneof"` 161} 162 163type Expr_CallExpr struct { 164 CallExpr *Expr_Call `protobuf:"bytes,6,opt,name=call_expr,json=callExpr,proto3,oneof"` 165} 166 167type Expr_ListExpr struct { 168 ListExpr *Expr_CreateList `protobuf:"bytes,7,opt,name=list_expr,json=listExpr,proto3,oneof"` 169} 170 171type Expr_StructExpr struct { 172 StructExpr *Expr_CreateStruct `protobuf:"bytes,8,opt,name=struct_expr,json=structExpr,proto3,oneof"` 173} 174 175type Expr_ComprehensionExpr struct { 176 ComprehensionExpr *Expr_Comprehension `protobuf:"bytes,9,opt,name=comprehension_expr,json=comprehensionExpr,proto3,oneof"` 177} 178 179func (*Expr_ConstExpr) isExpr_ExprKind() {} 180 181func (*Expr_IdentExpr) isExpr_ExprKind() {} 182 183func (*Expr_SelectExpr) isExpr_ExprKind() {} 184 185func (*Expr_CallExpr) isExpr_ExprKind() {} 186 187func (*Expr_ListExpr) isExpr_ExprKind() {} 188 189func (*Expr_StructExpr) isExpr_ExprKind() {} 190 191func (*Expr_ComprehensionExpr) isExpr_ExprKind() {} 192 193func (m *Expr) GetExprKind() isExpr_ExprKind { 194 if m != nil { 195 return m.ExprKind 196 } 197 return nil 198} 199 200func (m *Expr) GetConstExpr() *Constant { 201 if x, ok := m.GetExprKind().(*Expr_ConstExpr); ok { 202 return x.ConstExpr 203 } 204 return nil 205} 206 207func (m *Expr) GetIdentExpr() *Expr_Ident { 208 if x, ok := m.GetExprKind().(*Expr_IdentExpr); ok { 209 return x.IdentExpr 210 } 211 return nil 212} 213 214func (m *Expr) GetSelectExpr() *Expr_Select { 215 if x, ok := m.GetExprKind().(*Expr_SelectExpr); ok { 216 return x.SelectExpr 217 } 218 return nil 219} 220 221func (m *Expr) GetCallExpr() *Expr_Call { 222 if x, ok := m.GetExprKind().(*Expr_CallExpr); ok { 223 return x.CallExpr 224 } 225 return nil 226} 227 228func (m *Expr) GetListExpr() *Expr_CreateList { 229 if x, ok := m.GetExprKind().(*Expr_ListExpr); ok { 230 return x.ListExpr 231 } 232 return nil 233} 234 235func (m *Expr) GetStructExpr() *Expr_CreateStruct { 236 if x, ok := m.GetExprKind().(*Expr_StructExpr); ok { 237 return x.StructExpr 238 } 239 return nil 240} 241 242func (m *Expr) GetComprehensionExpr() *Expr_Comprehension { 243 if x, ok := m.GetExprKind().(*Expr_ComprehensionExpr); ok { 244 return x.ComprehensionExpr 245 } 246 return nil 247} 248 249// XXX_OneofWrappers is for the internal use of the proto package. 250func (*Expr) XXX_OneofWrappers() []interface{} { 251 return []interface{}{ 252 (*Expr_ConstExpr)(nil), 253 (*Expr_IdentExpr)(nil), 254 (*Expr_SelectExpr)(nil), 255 (*Expr_CallExpr)(nil), 256 (*Expr_ListExpr)(nil), 257 (*Expr_StructExpr)(nil), 258 (*Expr_ComprehensionExpr)(nil), 259 } 260} 261 262// An identifier expression. e.g. `request`. 263type Expr_Ident struct { 264 // Required. Holds a single, unqualified identifier, possibly preceded by a 265 // '.'. 266 // 267 // Qualified names are represented by the 268 // [Expr.Select][google.api.expr.v1alpha1.Expr.Select] expression. 269 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 270 XXX_NoUnkeyedLiteral struct{} `json:"-"` 271 XXX_unrecognized []byte `json:"-"` 272 XXX_sizecache int32 `json:"-"` 273} 274 275func (m *Expr_Ident) Reset() { *m = Expr_Ident{} } 276func (m *Expr_Ident) String() string { return proto.CompactTextString(m) } 277func (*Expr_Ident) ProtoMessage() {} 278func (*Expr_Ident) Descriptor() ([]byte, []int) { 279 return fileDescriptor_d4e2be48009c83cb, []int{1, 0} 280} 281 282func (m *Expr_Ident) XXX_Unmarshal(b []byte) error { 283 return xxx_messageInfo_Expr_Ident.Unmarshal(m, b) 284} 285func (m *Expr_Ident) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 286 return xxx_messageInfo_Expr_Ident.Marshal(b, m, deterministic) 287} 288func (m *Expr_Ident) XXX_Merge(src proto.Message) { 289 xxx_messageInfo_Expr_Ident.Merge(m, src) 290} 291func (m *Expr_Ident) XXX_Size() int { 292 return xxx_messageInfo_Expr_Ident.Size(m) 293} 294func (m *Expr_Ident) XXX_DiscardUnknown() { 295 xxx_messageInfo_Expr_Ident.DiscardUnknown(m) 296} 297 298var xxx_messageInfo_Expr_Ident proto.InternalMessageInfo 299 300func (m *Expr_Ident) GetName() string { 301 if m != nil { 302 return m.Name 303 } 304 return "" 305} 306 307// A field selection expression. e.g. `request.auth`. 308type Expr_Select struct { 309 // Required. The target of the selection expression. 310 // 311 // For example, in the select expression `request.auth`, the `request` 312 // portion of the expression is the `operand`. 313 Operand *Expr `protobuf:"bytes,1,opt,name=operand,proto3" json:"operand,omitempty"` 314 // Required. The name of the field to select. 315 // 316 // For example, in the select expression `request.auth`, the `auth` portion 317 // of the expression would be the `field`. 318 Field string `protobuf:"bytes,2,opt,name=field,proto3" json:"field,omitempty"` 319 // Whether the select is to be interpreted as a field presence test. 320 // 321 // This results from the macro `has(request.auth)`. 322 TestOnly bool `protobuf:"varint,3,opt,name=test_only,json=testOnly,proto3" json:"test_only,omitempty"` 323 XXX_NoUnkeyedLiteral struct{} `json:"-"` 324 XXX_unrecognized []byte `json:"-"` 325 XXX_sizecache int32 `json:"-"` 326} 327 328func (m *Expr_Select) Reset() { *m = Expr_Select{} } 329func (m *Expr_Select) String() string { return proto.CompactTextString(m) } 330func (*Expr_Select) ProtoMessage() {} 331func (*Expr_Select) Descriptor() ([]byte, []int) { 332 return fileDescriptor_d4e2be48009c83cb, []int{1, 1} 333} 334 335func (m *Expr_Select) XXX_Unmarshal(b []byte) error { 336 return xxx_messageInfo_Expr_Select.Unmarshal(m, b) 337} 338func (m *Expr_Select) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 339 return xxx_messageInfo_Expr_Select.Marshal(b, m, deterministic) 340} 341func (m *Expr_Select) XXX_Merge(src proto.Message) { 342 xxx_messageInfo_Expr_Select.Merge(m, src) 343} 344func (m *Expr_Select) XXX_Size() int { 345 return xxx_messageInfo_Expr_Select.Size(m) 346} 347func (m *Expr_Select) XXX_DiscardUnknown() { 348 xxx_messageInfo_Expr_Select.DiscardUnknown(m) 349} 350 351var xxx_messageInfo_Expr_Select proto.InternalMessageInfo 352 353func (m *Expr_Select) GetOperand() *Expr { 354 if m != nil { 355 return m.Operand 356 } 357 return nil 358} 359 360func (m *Expr_Select) GetField() string { 361 if m != nil { 362 return m.Field 363 } 364 return "" 365} 366 367func (m *Expr_Select) GetTestOnly() bool { 368 if m != nil { 369 return m.TestOnly 370 } 371 return false 372} 373 374// A call expression, including calls to predefined functions and operators. 375// 376// For example, `value == 10`, `size(map_value)`. 377type Expr_Call struct { 378 // The target of an method call-style expression. For example, `x` in 379 // `x.f()`. 380 Target *Expr `protobuf:"bytes,1,opt,name=target,proto3" json:"target,omitempty"` 381 // Required. The name of the function or method being called. 382 Function string `protobuf:"bytes,2,opt,name=function,proto3" json:"function,omitempty"` 383 // The arguments. 384 Args []*Expr `protobuf:"bytes,3,rep,name=args,proto3" json:"args,omitempty"` 385 XXX_NoUnkeyedLiteral struct{} `json:"-"` 386 XXX_unrecognized []byte `json:"-"` 387 XXX_sizecache int32 `json:"-"` 388} 389 390func (m *Expr_Call) Reset() { *m = Expr_Call{} } 391func (m *Expr_Call) String() string { return proto.CompactTextString(m) } 392func (*Expr_Call) ProtoMessage() {} 393func (*Expr_Call) Descriptor() ([]byte, []int) { 394 return fileDescriptor_d4e2be48009c83cb, []int{1, 2} 395} 396 397func (m *Expr_Call) XXX_Unmarshal(b []byte) error { 398 return xxx_messageInfo_Expr_Call.Unmarshal(m, b) 399} 400func (m *Expr_Call) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 401 return xxx_messageInfo_Expr_Call.Marshal(b, m, deterministic) 402} 403func (m *Expr_Call) XXX_Merge(src proto.Message) { 404 xxx_messageInfo_Expr_Call.Merge(m, src) 405} 406func (m *Expr_Call) XXX_Size() int { 407 return xxx_messageInfo_Expr_Call.Size(m) 408} 409func (m *Expr_Call) XXX_DiscardUnknown() { 410 xxx_messageInfo_Expr_Call.DiscardUnknown(m) 411} 412 413var xxx_messageInfo_Expr_Call proto.InternalMessageInfo 414 415func (m *Expr_Call) GetTarget() *Expr { 416 if m != nil { 417 return m.Target 418 } 419 return nil 420} 421 422func (m *Expr_Call) GetFunction() string { 423 if m != nil { 424 return m.Function 425 } 426 return "" 427} 428 429func (m *Expr_Call) GetArgs() []*Expr { 430 if m != nil { 431 return m.Args 432 } 433 return nil 434} 435 436// A list creation expression. 437// 438// Lists may either be homogenous, e.g. `[1, 2, 3]`, or heterogenous, e.g. 439// `dyn([1, 'hello', 2.0])` 440type Expr_CreateList struct { 441 // The elements part of the list. 442 Elements []*Expr `protobuf:"bytes,1,rep,name=elements,proto3" json:"elements,omitempty"` 443 XXX_NoUnkeyedLiteral struct{} `json:"-"` 444 XXX_unrecognized []byte `json:"-"` 445 XXX_sizecache int32 `json:"-"` 446} 447 448func (m *Expr_CreateList) Reset() { *m = Expr_CreateList{} } 449func (m *Expr_CreateList) String() string { return proto.CompactTextString(m) } 450func (*Expr_CreateList) ProtoMessage() {} 451func (*Expr_CreateList) Descriptor() ([]byte, []int) { 452 return fileDescriptor_d4e2be48009c83cb, []int{1, 3} 453} 454 455func (m *Expr_CreateList) XXX_Unmarshal(b []byte) error { 456 return xxx_messageInfo_Expr_CreateList.Unmarshal(m, b) 457} 458func (m *Expr_CreateList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 459 return xxx_messageInfo_Expr_CreateList.Marshal(b, m, deterministic) 460} 461func (m *Expr_CreateList) XXX_Merge(src proto.Message) { 462 xxx_messageInfo_Expr_CreateList.Merge(m, src) 463} 464func (m *Expr_CreateList) XXX_Size() int { 465 return xxx_messageInfo_Expr_CreateList.Size(m) 466} 467func (m *Expr_CreateList) XXX_DiscardUnknown() { 468 xxx_messageInfo_Expr_CreateList.DiscardUnknown(m) 469} 470 471var xxx_messageInfo_Expr_CreateList proto.InternalMessageInfo 472 473func (m *Expr_CreateList) GetElements() []*Expr { 474 if m != nil { 475 return m.Elements 476 } 477 return nil 478} 479 480// A map or message creation expression. 481// 482// Maps are constructed as `{'key_name': 'value'}`. Message construction is 483// similar, but prefixed with a type name and composed of field ids: 484// `types.MyType{field_id: 'value'}`. 485type Expr_CreateStruct struct { 486 // The type name of the message to be created, empty when creating map 487 // literals. 488 MessageName string `protobuf:"bytes,1,opt,name=message_name,json=messageName,proto3" json:"message_name,omitempty"` 489 // The entries in the creation expression. 490 Entries []*Expr_CreateStruct_Entry `protobuf:"bytes,2,rep,name=entries,proto3" json:"entries,omitempty"` 491 XXX_NoUnkeyedLiteral struct{} `json:"-"` 492 XXX_unrecognized []byte `json:"-"` 493 XXX_sizecache int32 `json:"-"` 494} 495 496func (m *Expr_CreateStruct) Reset() { *m = Expr_CreateStruct{} } 497func (m *Expr_CreateStruct) String() string { return proto.CompactTextString(m) } 498func (*Expr_CreateStruct) ProtoMessage() {} 499func (*Expr_CreateStruct) Descriptor() ([]byte, []int) { 500 return fileDescriptor_d4e2be48009c83cb, []int{1, 4} 501} 502 503func (m *Expr_CreateStruct) XXX_Unmarshal(b []byte) error { 504 return xxx_messageInfo_Expr_CreateStruct.Unmarshal(m, b) 505} 506func (m *Expr_CreateStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 507 return xxx_messageInfo_Expr_CreateStruct.Marshal(b, m, deterministic) 508} 509func (m *Expr_CreateStruct) XXX_Merge(src proto.Message) { 510 xxx_messageInfo_Expr_CreateStruct.Merge(m, src) 511} 512func (m *Expr_CreateStruct) XXX_Size() int { 513 return xxx_messageInfo_Expr_CreateStruct.Size(m) 514} 515func (m *Expr_CreateStruct) XXX_DiscardUnknown() { 516 xxx_messageInfo_Expr_CreateStruct.DiscardUnknown(m) 517} 518 519var xxx_messageInfo_Expr_CreateStruct proto.InternalMessageInfo 520 521func (m *Expr_CreateStruct) GetMessageName() string { 522 if m != nil { 523 return m.MessageName 524 } 525 return "" 526} 527 528func (m *Expr_CreateStruct) GetEntries() []*Expr_CreateStruct_Entry { 529 if m != nil { 530 return m.Entries 531 } 532 return nil 533} 534 535// Represents an entry. 536type Expr_CreateStruct_Entry struct { 537 // Required. An id assigned to this node by the parser which is unique 538 // in a given expression tree. This is used to associate type 539 // information and other attributes to the node. 540 Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` 541 // The `Entry` key kinds. 542 // 543 // Types that are valid to be assigned to KeyKind: 544 // *Expr_CreateStruct_Entry_FieldKey 545 // *Expr_CreateStruct_Entry_MapKey 546 KeyKind isExpr_CreateStruct_Entry_KeyKind `protobuf_oneof:"key_kind"` 547 // Required. The value assigned to the key. 548 Value *Expr `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"` 549 XXX_NoUnkeyedLiteral struct{} `json:"-"` 550 XXX_unrecognized []byte `json:"-"` 551 XXX_sizecache int32 `json:"-"` 552} 553 554func (m *Expr_CreateStruct_Entry) Reset() { *m = Expr_CreateStruct_Entry{} } 555func (m *Expr_CreateStruct_Entry) String() string { return proto.CompactTextString(m) } 556func (*Expr_CreateStruct_Entry) ProtoMessage() {} 557func (*Expr_CreateStruct_Entry) Descriptor() ([]byte, []int) { 558 return fileDescriptor_d4e2be48009c83cb, []int{1, 4, 0} 559} 560 561func (m *Expr_CreateStruct_Entry) XXX_Unmarshal(b []byte) error { 562 return xxx_messageInfo_Expr_CreateStruct_Entry.Unmarshal(m, b) 563} 564func (m *Expr_CreateStruct_Entry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 565 return xxx_messageInfo_Expr_CreateStruct_Entry.Marshal(b, m, deterministic) 566} 567func (m *Expr_CreateStruct_Entry) XXX_Merge(src proto.Message) { 568 xxx_messageInfo_Expr_CreateStruct_Entry.Merge(m, src) 569} 570func (m *Expr_CreateStruct_Entry) XXX_Size() int { 571 return xxx_messageInfo_Expr_CreateStruct_Entry.Size(m) 572} 573func (m *Expr_CreateStruct_Entry) XXX_DiscardUnknown() { 574 xxx_messageInfo_Expr_CreateStruct_Entry.DiscardUnknown(m) 575} 576 577var xxx_messageInfo_Expr_CreateStruct_Entry proto.InternalMessageInfo 578 579func (m *Expr_CreateStruct_Entry) GetId() int64 { 580 if m != nil { 581 return m.Id 582 } 583 return 0 584} 585 586type isExpr_CreateStruct_Entry_KeyKind interface { 587 isExpr_CreateStruct_Entry_KeyKind() 588} 589 590type Expr_CreateStruct_Entry_FieldKey struct { 591 FieldKey string `protobuf:"bytes,2,opt,name=field_key,json=fieldKey,proto3,oneof"` 592} 593 594type Expr_CreateStruct_Entry_MapKey struct { 595 MapKey *Expr `protobuf:"bytes,3,opt,name=map_key,json=mapKey,proto3,oneof"` 596} 597 598func (*Expr_CreateStruct_Entry_FieldKey) isExpr_CreateStruct_Entry_KeyKind() {} 599 600func (*Expr_CreateStruct_Entry_MapKey) isExpr_CreateStruct_Entry_KeyKind() {} 601 602func (m *Expr_CreateStruct_Entry) GetKeyKind() isExpr_CreateStruct_Entry_KeyKind { 603 if m != nil { 604 return m.KeyKind 605 } 606 return nil 607} 608 609func (m *Expr_CreateStruct_Entry) GetFieldKey() string { 610 if x, ok := m.GetKeyKind().(*Expr_CreateStruct_Entry_FieldKey); ok { 611 return x.FieldKey 612 } 613 return "" 614} 615 616func (m *Expr_CreateStruct_Entry) GetMapKey() *Expr { 617 if x, ok := m.GetKeyKind().(*Expr_CreateStruct_Entry_MapKey); ok { 618 return x.MapKey 619 } 620 return nil 621} 622 623func (m *Expr_CreateStruct_Entry) GetValue() *Expr { 624 if m != nil { 625 return m.Value 626 } 627 return nil 628} 629 630// XXX_OneofWrappers is for the internal use of the proto package. 631func (*Expr_CreateStruct_Entry) XXX_OneofWrappers() []interface{} { 632 return []interface{}{ 633 (*Expr_CreateStruct_Entry_FieldKey)(nil), 634 (*Expr_CreateStruct_Entry_MapKey)(nil), 635 } 636} 637 638// A comprehension expression applied to a list or map. 639// 640// Comprehensions are not part of the core syntax, but enabled with macros. 641// A macro matches a specific call signature within a parsed AST and replaces 642// the call with an alternate AST block. Macro expansion happens at parse 643// time. 644// 645// The following macros are supported within CEL: 646// 647// Aggregate type macros may be applied to all elements in a list or all keys 648// in a map: 649// 650// * `all`, `exists`, `exists_one` - test a predicate expression against 651// the inputs and return `true` if the predicate is satisfied for all, 652// any, or only one value `list.all(x, x < 10)`. 653// * `filter` - test a predicate expression against the inputs and return 654// the subset of elements which satisfy the predicate: 655// `payments.filter(p, p > 1000)`. 656// * `map` - apply an expression to all elements in the input and return the 657// output aggregate type: `[1, 2, 3].map(i, i * i)`. 658// 659// The `has(m.x)` macro tests whether the property `x` is present in struct 660// `m`. The semantics of this macro depend on the type of `m`. For proto2 661// messages `has(m.x)` is defined as 'defined, but not set`. For proto3, the 662// macro tests whether the property is set to its default. For map and struct 663// types, the macro tests whether the property `x` is defined on `m`. 664type Expr_Comprehension struct { 665 // The name of the iteration variable. 666 IterVar string `protobuf:"bytes,1,opt,name=iter_var,json=iterVar,proto3" json:"iter_var,omitempty"` 667 // The range over which var iterates. 668 IterRange *Expr `protobuf:"bytes,2,opt,name=iter_range,json=iterRange,proto3" json:"iter_range,omitempty"` 669 // The name of the variable used for accumulation of the result. 670 AccuVar string `protobuf:"bytes,3,opt,name=accu_var,json=accuVar,proto3" json:"accu_var,omitempty"` 671 // The initial value of the accumulator. 672 AccuInit *Expr `protobuf:"bytes,4,opt,name=accu_init,json=accuInit,proto3" json:"accu_init,omitempty"` 673 // An expression which can contain iter_var and accu_var. 674 // 675 // Returns false when the result has been computed and may be used as 676 // a hint to short-circuit the remainder of the comprehension. 677 LoopCondition *Expr `protobuf:"bytes,5,opt,name=loop_condition,json=loopCondition,proto3" json:"loop_condition,omitempty"` 678 // An expression which can contain iter_var and accu_var. 679 // 680 // Computes the next value of accu_var. 681 LoopStep *Expr `protobuf:"bytes,6,opt,name=loop_step,json=loopStep,proto3" json:"loop_step,omitempty"` 682 // An expression which can contain accu_var. 683 // 684 // Computes the result. 685 Result *Expr `protobuf:"bytes,7,opt,name=result,proto3" json:"result,omitempty"` 686 XXX_NoUnkeyedLiteral struct{} `json:"-"` 687 XXX_unrecognized []byte `json:"-"` 688 XXX_sizecache int32 `json:"-"` 689} 690 691func (m *Expr_Comprehension) Reset() { *m = Expr_Comprehension{} } 692func (m *Expr_Comprehension) String() string { return proto.CompactTextString(m) } 693func (*Expr_Comprehension) ProtoMessage() {} 694func (*Expr_Comprehension) Descriptor() ([]byte, []int) { 695 return fileDescriptor_d4e2be48009c83cb, []int{1, 5} 696} 697 698func (m *Expr_Comprehension) XXX_Unmarshal(b []byte) error { 699 return xxx_messageInfo_Expr_Comprehension.Unmarshal(m, b) 700} 701func (m *Expr_Comprehension) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 702 return xxx_messageInfo_Expr_Comprehension.Marshal(b, m, deterministic) 703} 704func (m *Expr_Comprehension) XXX_Merge(src proto.Message) { 705 xxx_messageInfo_Expr_Comprehension.Merge(m, src) 706} 707func (m *Expr_Comprehension) XXX_Size() int { 708 return xxx_messageInfo_Expr_Comprehension.Size(m) 709} 710func (m *Expr_Comprehension) XXX_DiscardUnknown() { 711 xxx_messageInfo_Expr_Comprehension.DiscardUnknown(m) 712} 713 714var xxx_messageInfo_Expr_Comprehension proto.InternalMessageInfo 715 716func (m *Expr_Comprehension) GetIterVar() string { 717 if m != nil { 718 return m.IterVar 719 } 720 return "" 721} 722 723func (m *Expr_Comprehension) GetIterRange() *Expr { 724 if m != nil { 725 return m.IterRange 726 } 727 return nil 728} 729 730func (m *Expr_Comprehension) GetAccuVar() string { 731 if m != nil { 732 return m.AccuVar 733 } 734 return "" 735} 736 737func (m *Expr_Comprehension) GetAccuInit() *Expr { 738 if m != nil { 739 return m.AccuInit 740 } 741 return nil 742} 743 744func (m *Expr_Comprehension) GetLoopCondition() *Expr { 745 if m != nil { 746 return m.LoopCondition 747 } 748 return nil 749} 750 751func (m *Expr_Comprehension) GetLoopStep() *Expr { 752 if m != nil { 753 return m.LoopStep 754 } 755 return nil 756} 757 758func (m *Expr_Comprehension) GetResult() *Expr { 759 if m != nil { 760 return m.Result 761 } 762 return nil 763} 764 765// Represents a primitive literal. 766// 767// Named 'Constant' here for backwards compatibility. 768// 769// This is similar as the primitives supported in the well-known type 770// `google.protobuf.Value`, but richer so it can represent CEL's full range of 771// primitives. 772// 773// Lists and structs are not included as constants as these aggregate types may 774// contain [Expr][google.api.expr.v1alpha1.Expr] elements which require 775// evaluation and are thus not constant. 776// 777// Examples of literals include: `"hello"`, `b'bytes'`, `1u`, `4.2`, `-2`, 778// `true`, `null`. 779type Constant struct { 780 // Required. The valid constant kinds. 781 // 782 // Types that are valid to be assigned to ConstantKind: 783 // *Constant_NullValue 784 // *Constant_BoolValue 785 // *Constant_Int64Value 786 // *Constant_Uint64Value 787 // *Constant_DoubleValue 788 // *Constant_StringValue 789 // *Constant_BytesValue 790 // *Constant_DurationValue 791 // *Constant_TimestampValue 792 ConstantKind isConstant_ConstantKind `protobuf_oneof:"constant_kind"` 793 XXX_NoUnkeyedLiteral struct{} `json:"-"` 794 XXX_unrecognized []byte `json:"-"` 795 XXX_sizecache int32 `json:"-"` 796} 797 798func (m *Constant) Reset() { *m = Constant{} } 799func (m *Constant) String() string { return proto.CompactTextString(m) } 800func (*Constant) ProtoMessage() {} 801func (*Constant) Descriptor() ([]byte, []int) { 802 return fileDescriptor_d4e2be48009c83cb, []int{2} 803} 804 805func (m *Constant) XXX_Unmarshal(b []byte) error { 806 return xxx_messageInfo_Constant.Unmarshal(m, b) 807} 808func (m *Constant) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 809 return xxx_messageInfo_Constant.Marshal(b, m, deterministic) 810} 811func (m *Constant) XXX_Merge(src proto.Message) { 812 xxx_messageInfo_Constant.Merge(m, src) 813} 814func (m *Constant) XXX_Size() int { 815 return xxx_messageInfo_Constant.Size(m) 816} 817func (m *Constant) XXX_DiscardUnknown() { 818 xxx_messageInfo_Constant.DiscardUnknown(m) 819} 820 821var xxx_messageInfo_Constant proto.InternalMessageInfo 822 823type isConstant_ConstantKind interface { 824 isConstant_ConstantKind() 825} 826 827type Constant_NullValue struct { 828 NullValue _struct.NullValue `protobuf:"varint,1,opt,name=null_value,json=nullValue,proto3,enum=google.protobuf.NullValue,oneof"` 829} 830 831type Constant_BoolValue struct { 832 BoolValue bool `protobuf:"varint,2,opt,name=bool_value,json=boolValue,proto3,oneof"` 833} 834 835type Constant_Int64Value struct { 836 Int64Value int64 `protobuf:"varint,3,opt,name=int64_value,json=int64Value,proto3,oneof"` 837} 838 839type Constant_Uint64Value struct { 840 Uint64Value uint64 `protobuf:"varint,4,opt,name=uint64_value,json=uint64Value,proto3,oneof"` 841} 842 843type Constant_DoubleValue struct { 844 DoubleValue float64 `protobuf:"fixed64,5,opt,name=double_value,json=doubleValue,proto3,oneof"` 845} 846 847type Constant_StringValue struct { 848 StringValue string `protobuf:"bytes,6,opt,name=string_value,json=stringValue,proto3,oneof"` 849} 850 851type Constant_BytesValue struct { 852 BytesValue []byte `protobuf:"bytes,7,opt,name=bytes_value,json=bytesValue,proto3,oneof"` 853} 854 855type Constant_DurationValue struct { 856 DurationValue *duration.Duration `protobuf:"bytes,8,opt,name=duration_value,json=durationValue,proto3,oneof"` 857} 858 859type Constant_TimestampValue struct { 860 TimestampValue *timestamp.Timestamp `protobuf:"bytes,9,opt,name=timestamp_value,json=timestampValue,proto3,oneof"` 861} 862 863func (*Constant_NullValue) isConstant_ConstantKind() {} 864 865func (*Constant_BoolValue) isConstant_ConstantKind() {} 866 867func (*Constant_Int64Value) isConstant_ConstantKind() {} 868 869func (*Constant_Uint64Value) isConstant_ConstantKind() {} 870 871func (*Constant_DoubleValue) isConstant_ConstantKind() {} 872 873func (*Constant_StringValue) isConstant_ConstantKind() {} 874 875func (*Constant_BytesValue) isConstant_ConstantKind() {} 876 877func (*Constant_DurationValue) isConstant_ConstantKind() {} 878 879func (*Constant_TimestampValue) isConstant_ConstantKind() {} 880 881func (m *Constant) GetConstantKind() isConstant_ConstantKind { 882 if m != nil { 883 return m.ConstantKind 884 } 885 return nil 886} 887 888func (m *Constant) GetNullValue() _struct.NullValue { 889 if x, ok := m.GetConstantKind().(*Constant_NullValue); ok { 890 return x.NullValue 891 } 892 return _struct.NullValue_NULL_VALUE 893} 894 895func (m *Constant) GetBoolValue() bool { 896 if x, ok := m.GetConstantKind().(*Constant_BoolValue); ok { 897 return x.BoolValue 898 } 899 return false 900} 901 902func (m *Constant) GetInt64Value() int64 { 903 if x, ok := m.GetConstantKind().(*Constant_Int64Value); ok { 904 return x.Int64Value 905 } 906 return 0 907} 908 909func (m *Constant) GetUint64Value() uint64 { 910 if x, ok := m.GetConstantKind().(*Constant_Uint64Value); ok { 911 return x.Uint64Value 912 } 913 return 0 914} 915 916func (m *Constant) GetDoubleValue() float64 { 917 if x, ok := m.GetConstantKind().(*Constant_DoubleValue); ok { 918 return x.DoubleValue 919 } 920 return 0 921} 922 923func (m *Constant) GetStringValue() string { 924 if x, ok := m.GetConstantKind().(*Constant_StringValue); ok { 925 return x.StringValue 926 } 927 return "" 928} 929 930func (m *Constant) GetBytesValue() []byte { 931 if x, ok := m.GetConstantKind().(*Constant_BytesValue); ok { 932 return x.BytesValue 933 } 934 return nil 935} 936 937// Deprecated: Do not use. 938func (m *Constant) GetDurationValue() *duration.Duration { 939 if x, ok := m.GetConstantKind().(*Constant_DurationValue); ok { 940 return x.DurationValue 941 } 942 return nil 943} 944 945// Deprecated: Do not use. 946func (m *Constant) GetTimestampValue() *timestamp.Timestamp { 947 if x, ok := m.GetConstantKind().(*Constant_TimestampValue); ok { 948 return x.TimestampValue 949 } 950 return nil 951} 952 953// XXX_OneofWrappers is for the internal use of the proto package. 954func (*Constant) XXX_OneofWrappers() []interface{} { 955 return []interface{}{ 956 (*Constant_NullValue)(nil), 957 (*Constant_BoolValue)(nil), 958 (*Constant_Int64Value)(nil), 959 (*Constant_Uint64Value)(nil), 960 (*Constant_DoubleValue)(nil), 961 (*Constant_StringValue)(nil), 962 (*Constant_BytesValue)(nil), 963 (*Constant_DurationValue)(nil), 964 (*Constant_TimestampValue)(nil), 965 } 966} 967 968// Source information collected at parse time. 969type SourceInfo struct { 970 // The syntax version of the source, e.g. `cel1`. 971 SyntaxVersion string `protobuf:"bytes,1,opt,name=syntax_version,json=syntaxVersion,proto3" json:"syntax_version,omitempty"` 972 // The location name. All position information attached to an expression is 973 // relative to this location. 974 // 975 // The location could be a file, UI element, or similar. For example, 976 // `acme/app/AnvilPolicy.cel`. 977 Location string `protobuf:"bytes,2,opt,name=location,proto3" json:"location,omitempty"` 978 // Monotonically increasing list of character offsets where newlines appear. 979 // 980 // The line number of a given position is the index `i` where for a given 981 // `id` the `line_offsets[i] < id_positions[id] < line_offsets[i+1]`. The 982 // column may be derivd from `id_positions[id] - line_offsets[i]`. 983 LineOffsets []int32 `protobuf:"varint,3,rep,packed,name=line_offsets,json=lineOffsets,proto3" json:"line_offsets,omitempty"` 984 // A map from the parse node id (e.g. `Expr.id`) to the character offset 985 // within source. 986 Positions map[int64]int32 `protobuf:"bytes,4,rep,name=positions,proto3" json:"positions,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` 987 XXX_NoUnkeyedLiteral struct{} `json:"-"` 988 XXX_unrecognized []byte `json:"-"` 989 XXX_sizecache int32 `json:"-"` 990} 991 992func (m *SourceInfo) Reset() { *m = SourceInfo{} } 993func (m *SourceInfo) String() string { return proto.CompactTextString(m) } 994func (*SourceInfo) ProtoMessage() {} 995func (*SourceInfo) Descriptor() ([]byte, []int) { 996 return fileDescriptor_d4e2be48009c83cb, []int{3} 997} 998 999func (m *SourceInfo) XXX_Unmarshal(b []byte) error { 1000 return xxx_messageInfo_SourceInfo.Unmarshal(m, b) 1001} 1002func (m *SourceInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1003 return xxx_messageInfo_SourceInfo.Marshal(b, m, deterministic) 1004} 1005func (m *SourceInfo) XXX_Merge(src proto.Message) { 1006 xxx_messageInfo_SourceInfo.Merge(m, src) 1007} 1008func (m *SourceInfo) XXX_Size() int { 1009 return xxx_messageInfo_SourceInfo.Size(m) 1010} 1011func (m *SourceInfo) XXX_DiscardUnknown() { 1012 xxx_messageInfo_SourceInfo.DiscardUnknown(m) 1013} 1014 1015var xxx_messageInfo_SourceInfo proto.InternalMessageInfo 1016 1017func (m *SourceInfo) GetSyntaxVersion() string { 1018 if m != nil { 1019 return m.SyntaxVersion 1020 } 1021 return "" 1022} 1023 1024func (m *SourceInfo) GetLocation() string { 1025 if m != nil { 1026 return m.Location 1027 } 1028 return "" 1029} 1030 1031func (m *SourceInfo) GetLineOffsets() []int32 { 1032 if m != nil { 1033 return m.LineOffsets 1034 } 1035 return nil 1036} 1037 1038func (m *SourceInfo) GetPositions() map[int64]int32 { 1039 if m != nil { 1040 return m.Positions 1041 } 1042 return nil 1043} 1044 1045// A specific position in source. 1046type SourcePosition struct { 1047 // The soucre location name (e.g. file name). 1048 Location string `protobuf:"bytes,1,opt,name=location,proto3" json:"location,omitempty"` 1049 // The character offset. 1050 Offset int32 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` 1051 // The 1-based index of the starting line in the source text 1052 // where the issue occurs, or 0 if unknown. 1053 Line int32 `protobuf:"varint,3,opt,name=line,proto3" json:"line,omitempty"` 1054 // The 0-based index of the starting position within the line of source text 1055 // where the issue occurs. Only meaningful if line is nonzero. 1056 Column int32 `protobuf:"varint,4,opt,name=column,proto3" json:"column,omitempty"` 1057 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1058 XXX_unrecognized []byte `json:"-"` 1059 XXX_sizecache int32 `json:"-"` 1060} 1061 1062func (m *SourcePosition) Reset() { *m = SourcePosition{} } 1063func (m *SourcePosition) String() string { return proto.CompactTextString(m) } 1064func (*SourcePosition) ProtoMessage() {} 1065func (*SourcePosition) Descriptor() ([]byte, []int) { 1066 return fileDescriptor_d4e2be48009c83cb, []int{4} 1067} 1068 1069func (m *SourcePosition) XXX_Unmarshal(b []byte) error { 1070 return xxx_messageInfo_SourcePosition.Unmarshal(m, b) 1071} 1072func (m *SourcePosition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1073 return xxx_messageInfo_SourcePosition.Marshal(b, m, deterministic) 1074} 1075func (m *SourcePosition) XXX_Merge(src proto.Message) { 1076 xxx_messageInfo_SourcePosition.Merge(m, src) 1077} 1078func (m *SourcePosition) XXX_Size() int { 1079 return xxx_messageInfo_SourcePosition.Size(m) 1080} 1081func (m *SourcePosition) XXX_DiscardUnknown() { 1082 xxx_messageInfo_SourcePosition.DiscardUnknown(m) 1083} 1084 1085var xxx_messageInfo_SourcePosition proto.InternalMessageInfo 1086 1087func (m *SourcePosition) GetLocation() string { 1088 if m != nil { 1089 return m.Location 1090 } 1091 return "" 1092} 1093 1094func (m *SourcePosition) GetOffset() int32 { 1095 if m != nil { 1096 return m.Offset 1097 } 1098 return 0 1099} 1100 1101func (m *SourcePosition) GetLine() int32 { 1102 if m != nil { 1103 return m.Line 1104 } 1105 return 0 1106} 1107 1108func (m *SourcePosition) GetColumn() int32 { 1109 if m != nil { 1110 return m.Column 1111 } 1112 return 0 1113} 1114 1115func init() { 1116 proto.RegisterType((*ParsedExpr)(nil), "google.api.expr.v1alpha1.ParsedExpr") 1117 proto.RegisterType((*Expr)(nil), "google.api.expr.v1alpha1.Expr") 1118 proto.RegisterType((*Expr_Ident)(nil), "google.api.expr.v1alpha1.Expr.Ident") 1119 proto.RegisterType((*Expr_Select)(nil), "google.api.expr.v1alpha1.Expr.Select") 1120 proto.RegisterType((*Expr_Call)(nil), "google.api.expr.v1alpha1.Expr.Call") 1121 proto.RegisterType((*Expr_CreateList)(nil), "google.api.expr.v1alpha1.Expr.CreateList") 1122 proto.RegisterType((*Expr_CreateStruct)(nil), "google.api.expr.v1alpha1.Expr.CreateStruct") 1123 proto.RegisterType((*Expr_CreateStruct_Entry)(nil), "google.api.expr.v1alpha1.Expr.CreateStruct.Entry") 1124 proto.RegisterType((*Expr_Comprehension)(nil), "google.api.expr.v1alpha1.Expr.Comprehension") 1125 proto.RegisterType((*Constant)(nil), "google.api.expr.v1alpha1.Constant") 1126 proto.RegisterType((*SourceInfo)(nil), "google.api.expr.v1alpha1.SourceInfo") 1127 proto.RegisterMapType((map[int64]int32)(nil), "google.api.expr.v1alpha1.SourceInfo.PositionsEntry") 1128 proto.RegisterType((*SourcePosition)(nil), "google.api.expr.v1alpha1.SourcePosition") 1129} 1130 1131func init() { 1132 proto.RegisterFile("google/api/expr/v1alpha1/syntax.proto", fileDescriptor_d4e2be48009c83cb) 1133} 1134 1135var fileDescriptor_d4e2be48009c83cb = []byte{ 1136 // 1134 bytes of a gzipped FileDescriptorProto 1137 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x56, 0xcf, 0x6e, 0x1b, 0xb7, 1138 0x13, 0xd6, 0xea, 0x9f, 0xb5, 0x23, 0x5b, 0xf9, 0xfd, 0x88, 0xa2, 0x50, 0x36, 0x69, 0xe2, 0x38, 1139 0x35, 0x90, 0xa2, 0x85, 0x04, 0x3b, 0x41, 0x90, 0xc6, 0xe9, 0x45, 0xae, 0x0b, 0x19, 0x29, 0x1c, 1140 0x77, 0x5d, 0xf8, 0x50, 0xa0, 0x10, 0xe8, 0x15, 0xa5, 0x2c, 0x4c, 0x91, 0x8b, 0x25, 0xd7, 0xb0, 1141 0xce, 0x3d, 0xf4, 0xd6, 0x97, 0x69, 0x5f, 0xa0, 0xef, 0xd1, 0x07, 0xe9, 0xa5, 0x40, 0x31, 0x43, 1142 0xae, 0xfc, 0x0f, 0x86, 0xd4, 0x1b, 0x39, 0xfc, 0xbe, 0x8f, 0xc3, 0x99, 0xe1, 0x90, 0xb0, 0x3d, 1143 0xd5, 0x7a, 0x2a, 0x45, 0x9f, 0x67, 0x69, 0x5f, 0x5c, 0x66, 0x79, 0xff, 0x62, 0x87, 0xcb, 0xec, 1144 0x23, 0xdf, 0xe9, 0x9b, 0xb9, 0xb2, 0xfc, 0xb2, 0x97, 0xe5, 0xda, 0x6a, 0xd6, 0x75, 0xb0, 0x1e, 1145 0xcf, 0xd2, 0x1e, 0xc2, 0x7a, 0x25, 0x2c, 0x7a, 0xe2, 0x05, 0x08, 0x77, 0x56, 0x4c, 0xfa, 0xe3, 1146 0x22, 0xe7, 0x36, 0xd5, 0xca, 0x31, 0xa3, 0xc7, 0xb7, 0xd7, 0x8d, 0xcd, 0x8b, 0xc4, 0xfa, 0xd5, 1147 0xa7, 0xb7, 0x57, 0x6d, 0x3a, 0x13, 0xc6, 0xf2, 0x59, 0xe6, 0x00, 0x5b, 0xbf, 0x06, 0x00, 0xc7, 1148 0x3c, 0x37, 0x62, 0x7c, 0x70, 0x99, 0xe5, 0x6c, 0x17, 0xea, 0xb8, 0x7d, 0xb7, 0xba, 0x19, 0xbc, 1149 0x68, 0xef, 0x3e, 0xe9, 0xdd, 0xe7, 0x56, 0x0f, 0xd1, 0x31, 0x61, 0xd9, 0x01, 0xb4, 0x8d, 0x2e, 1150 0xf2, 0x44, 0x8c, 0x52, 0x35, 0xd1, 0xdd, 0x1a, 0x51, 0x3f, 0xbf, 0x9f, 0x7a, 0x42, 0xe0, 0x43, 1151 0x35, 0xd1, 0x31, 0x98, 0xc5, 0x78, 0xeb, 0xaf, 0x75, 0xa8, 0x93, 0x0f, 0x1d, 0xa8, 0xa6, 0x63, 1152 0xf2, 0xa0, 0x16, 0x57, 0xd3, 0x31, 0xdb, 0x07, 0x48, 0xb4, 0x32, 0x76, 0x44, 0x9e, 0x39, 0xf9, 1153 0xad, 0xfb, 0xe5, 0xf7, 0x11, 0xcb, 0x95, 0x1d, 0x56, 0xe2, 0x90, 0x78, 0x07, 0xce, 0x49, 0x48, 1154 0xc7, 0x42, 0x79, 0x91, 0xfa, 0x32, 0x1f, 0x91, 0xd3, 0x3b, 0x44, 0x02, 0xca, 0x10, 0x93, 0x64, 1155 0x86, 0xd0, 0x36, 0x42, 0x8a, 0xc4, 0xeb, 0x34, 0x48, 0x67, 0x7b, 0x89, 0xce, 0x09, 0x31, 0x86, 1156 0x95, 0x18, 0x1c, 0x97, 0x94, 0x06, 0x10, 0x26, 0x5c, 0x4a, 0xa7, 0xd3, 0x24, 0x9d, 0xe7, 0x4b, 1157 0x74, 0xf6, 0xb9, 0x94, 0xc3, 0x4a, 0xdc, 0x42, 0x9e, 0xf7, 0x26, 0x94, 0x69, 0x19, 0x98, 0x35, 1158 0xd2, 0xf8, 0x62, 0x99, 0x46, 0x2e, 0xb8, 0x15, 0xdf, 0xa7, 0x06, 0xfd, 0x69, 0x21, 0x9b, 0x94, 1159 0x8e, 0xa0, 0xed, 0xea, 0xc6, 0x69, 0xb5, 0x48, 0xeb, 0xcb, 0x95, 0xb4, 0x4e, 0x88, 0x47, 0xa7, 1160 0xa3, 0x11, 0xe9, 0xfd, 0x0c, 0x2c, 0xd1, 0xb3, 0x2c, 0x17, 0x1f, 0x85, 0x32, 0xa9, 0x56, 0x4e, 1161 0x36, 0x24, 0xd9, 0xaf, 0x96, 0xc9, 0x5e, 0x27, 0x0e, 0x2b, 0xf1, 0xff, 0x6f, 0x28, 0x21, 0x24, 1162 0x7a, 0x04, 0x0d, 0x4a, 0x0e, 0x63, 0x50, 0x57, 0x7c, 0x26, 0xba, 0xc1, 0x66, 0xf0, 0x22, 0x8c, 1163 0x69, 0x1c, 0x15, 0xd0, 0x74, 0x11, 0x67, 0x6f, 0x60, 0x4d, 0x67, 0x22, 0xe7, 0x6a, 0x4c, 0x80, 1164 0xe5, 0x05, 0x5d, 0xc2, 0xd9, 0x27, 0xd0, 0x98, 0xa4, 0x42, 0xba, 0x32, 0x0c, 0x63, 0x37, 0x61, 1165 0x8f, 0x20, 0xb4, 0xc2, 0xd8, 0x91, 0x56, 0x72, 0x4e, 0x85, 0xd8, 0x8a, 0x5b, 0x68, 0xf8, 0xa0, 1166 0xe4, 0x3c, 0xfa, 0x2d, 0x80, 0x3a, 0x66, 0x88, 0xbd, 0x86, 0xa6, 0xe5, 0xf9, 0x54, 0xd8, 0x15, 1167 0x37, 0xf5, 0x68, 0x16, 0x41, 0x6b, 0x52, 0xa8, 0x04, 0xef, 0xb6, 0xdf, 0x76, 0x31, 0xc7, 0x7b, 1168 0xc9, 0xf3, 0xa9, 0xe9, 0xd6, 0x36, 0x6b, 0xab, 0xdc, 0x4b, 0xc4, 0x46, 0x43, 0x80, 0xab, 0x6c, 1169 0xb3, 0xb7, 0xd0, 0x12, 0x52, 0xcc, 0x84, 0xb2, 0xa6, 0x1b, 0xac, 0xa4, 0xb2, 0xc0, 0x47, 0x7f, 1170 0x54, 0x61, 0xfd, 0x7a, 0xb2, 0xd9, 0x33, 0x58, 0x9f, 0x09, 0x63, 0xf8, 0x54, 0x8c, 0xae, 0x85, 1171 0xbf, 0xed, 0x6d, 0x47, 0x7c, 0x26, 0xd8, 0x7b, 0x58, 0x13, 0xca, 0xe6, 0xa9, 0x30, 0xdd, 0x2a, 1172 0x6d, 0xb7, 0xf3, 0x1f, 0xaa, 0xa9, 0x77, 0xa0, 0x6c, 0x3e, 0x8f, 0x4b, 0x85, 0xe8, 0xf7, 0x00, 1173 0x1a, 0x64, 0xf2, 0xcd, 0x21, 0x58, 0x34, 0x87, 0xcf, 0x20, 0xa4, 0xdc, 0x8c, 0xce, 0xc5, 0xdc, 1174 0x45, 0x0d, 0xeb, 0x9a, 0x4c, 0xef, 0xc5, 0x9c, 0x7d, 0x0d, 0x6b, 0x33, 0x9e, 0xd1, 0x62, 0x6d, 1175 0x95, 0x64, 0x0c, 0x2b, 0x71, 0x73, 0xc6, 0x33, 0xa4, 0xbe, 0x82, 0xc6, 0x05, 0x97, 0x85, 0xf0, 1176 0xcd, 0x62, 0x59, 0xb4, 0x1c, 0x78, 0x00, 0xd0, 0x3a, 0x17, 0xf3, 0xd1, 0x79, 0xaa, 0xc6, 0xd1, 1177 0x3f, 0x55, 0xd8, 0xb8, 0x51, 0xcc, 0xec, 0x21, 0xb4, 0x52, 0x2b, 0xf2, 0xd1, 0x05, 0xcf, 0x7d, 1178 0xcc, 0xd6, 0x70, 0x7e, 0xca, 0x73, 0xf6, 0x0d, 0x00, 0x2d, 0xe5, 0x5c, 0x4d, 0xc5, 0x8a, 0xfd, 1179 0x37, 0x44, 0x46, 0x8c, 0x04, 0x54, 0xe6, 0x49, 0x52, 0x90, 0x72, 0xcd, 0x29, 0xe3, 0x1c, 0x95, 1180 0xf7, 0x20, 0xa4, 0xa5, 0x54, 0xa5, 0x76, 0xc5, 0xc3, 0x90, 0xd6, 0xa1, 0x4a, 0x2d, 0x3b, 0x80, 1181 0x8e, 0xd4, 0x3a, 0x1b, 0x25, 0x5a, 0x8d, 0x53, 0x2a, 0xcd, 0xc6, 0x4a, 0x0a, 0x1b, 0xc8, 0xda, 1182 0x2f, 0x49, 0xe8, 0x03, 0xc9, 0x18, 0x2b, 0x32, 0xdf, 0xed, 0x96, 0xfa, 0x80, 0x84, 0x13, 0x2b, 1183 0x32, 0xbc, 0x50, 0xb9, 0x30, 0x85, 0xb4, 0xbe, 0xc7, 0x2d, 0xbd, 0x50, 0x0e, 0x3d, 0x68, 0x43, 1184 0x88, 0xab, 0x94, 0x8c, 0xad, 0x3f, 0x6b, 0xd0, 0x2a, 0x9f, 0x06, 0xb6, 0x07, 0xa0, 0x0a, 0x29, 1185 0x47, 0x2e, 0xc1, 0x98, 0x89, 0xce, 0x6e, 0x54, 0xaa, 0x96, 0x6f, 0x65, 0xef, 0xa8, 0x90, 0xf2, 1186 0x14, 0x11, 0xf8, 0x06, 0xa8, 0x72, 0xc2, 0x9e, 0x02, 0x9c, 0x69, 0x5d, 0x92, 0x31, 0x53, 0x2d, 1187 0x04, 0xa0, 0xcd, 0x01, 0x9e, 0x41, 0x3b, 0x55, 0xf6, 0xf5, 0x2b, 0x8f, 0xc0, 0x74, 0xd4, 0xb0, 1188 0x3f, 0x92, 0xd1, 0x41, 0x9e, 0xc3, 0x7a, 0x71, 0x1d, 0x83, 0x69, 0xa9, 0x0f, 0x2b, 0x71, 0xbb, 1189 0xb8, 0x09, 0x1a, 0xeb, 0xe2, 0x4c, 0x0a, 0x0f, 0xc2, 0xc8, 0x07, 0x08, 0x72, 0xd6, 0x05, 0xc8, 1190 0xd8, 0x3c, 0x55, 0x53, 0x0f, 0x6a, 0xfa, 0x3b, 0xd0, 0x76, 0xd6, 0x85, 0x47, 0x67, 0x73, 0x2b, 1191 0x8c, 0xc7, 0x60, 0x18, 0xd7, 0xd1, 0x23, 0x32, 0x3a, 0xc8, 0x77, 0xd0, 0x29, 0x7f, 0x16, 0x1e, 1192 0xe5, 0x1e, 0x81, 0x87, 0x77, 0xc2, 0xf2, 0xad, 0x87, 0x0d, 0xaa, 0x5d, 0xf4, 0x66, 0xa3, 0xa4, 1193 0x39, 0x9d, 0x43, 0x78, 0xb0, 0xf8, 0x63, 0x78, 0x21, 0xd7, 0xf6, 0xef, 0xc6, 0xf7, 0xc7, 0x12, 1194 0xe7, 0x95, 0x3a, 0x0b, 0x22, 0x49, 0x0d, 0x1e, 0xc0, 0x46, 0xe2, 0x33, 0xe6, 0x72, 0xf8, 0x4b, 1195 0x15, 0xe0, 0xea, 0xf7, 0xc0, 0xb6, 0xa1, 0xe3, 0x3e, 0x51, 0xa3, 0x0b, 0x91, 0xe3, 0xfd, 0xf2, 1196 0x77, 0x6a, 0xc3, 0x59, 0x4f, 0x9d, 0x11, 0xfb, 0xaa, 0xd4, 0x09, 0xbf, 0xde, 0x57, 0xcb, 0x39, 1197 0x36, 0x32, 0x99, 0x2a, 0x31, 0xd2, 0x93, 0x89, 0x11, 0xd6, 0xf5, 0xd7, 0x46, 0xdc, 0x46, 0xdb, 1198 0x07, 0x67, 0x62, 0x3f, 0x40, 0x98, 0x69, 0x43, 0x65, 0x6c, 0xba, 0x75, 0x6a, 0x65, 0x2f, 0x57, 1199 0xf9, 0xdc, 0xf4, 0x8e, 0x4b, 0x96, 0x6b, 0x66, 0x57, 0x2a, 0xd1, 0x3b, 0xe8, 0xdc, 0x5c, 0x64, 1200 0xff, 0x83, 0x1a, 0xf6, 0x28, 0xd7, 0xd7, 0x70, 0x88, 0x2f, 0xd0, 0x55, 0x81, 0x35, 0x7c, 0x7b, 1201 0x79, 0x5b, 0x7d, 0x13, 0x6c, 0x65, 0xd0, 0x71, 0xbb, 0x94, 0x1a, 0x37, 0x4e, 0x18, 0xdc, 0x3a, 1202 0xe1, 0xa7, 0xd0, 0x74, 0x87, 0xf3, 0x42, 0x7e, 0x86, 0x2f, 0x27, 0x9e, 0x92, 0xaa, 0xb3, 0x11, 1203 0xd3, 0x18, 0xb1, 0x89, 0x96, 0xc5, 0x4c, 0x51, 0x3d, 0x36, 0x62, 0x3f, 0x1b, 0x28, 0x78, 0x9c, 1204 0xe8, 0xd9, 0xbd, 0x87, 0x1e, 0xb4, 0x4f, 0x28, 0xe0, 0xc7, 0x98, 0xd8, 0xe3, 0xe0, 0xa7, 0x77, 1205 0x1e, 0x38, 0xd5, 0x92, 0xab, 0x69, 0x4f, 0xe7, 0xd3, 0xfe, 0x54, 0x28, 0x4a, 0x7b, 0xdf, 0x2d, 1206 0xf1, 0x2c, 0x35, 0x77, 0xbf, 0xc4, 0x7b, 0x38, 0xfb, 0x3b, 0x08, 0xce, 0x9a, 0x84, 0x7d, 0xf9, 1207 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0d, 0x25, 0xe3, 0xe8, 0x3d, 0x0b, 0x00, 0x00, 1208} 1209