Linux Perf
parse-events-flex.c
Go to the documentation of this file.
1 #line 2 "util/parse-events-flex.c"
2 
3 #line 4 "util/parse-events-flex.c"
4 
5 #define YY_INT_ALIGNED short int
6 
7 /* A lexical scanner generated by flex */
8 
9 #define FLEX_SCANNER
10 #define YY_FLEX_MAJOR_VERSION 2
11 #define YY_FLEX_MINOR_VERSION 6
12 #define YY_FLEX_SUBMINOR_VERSION 0
13 #if YY_FLEX_SUBMINOR_VERSION > 0
14 #define FLEX_BETA
15 #endif
16 
17 /* First, we deal with platform-specific or compiler-specific issues. */
18 
19 /* begin standard C headers. */
20 #include <stdio.h>
21 #include <string.h>
22 #include <errno.h>
23 #include <stdlib.h>
24 
25 /* end standard C headers. */
26 
27 /* flex integer type definitions */
28 
29 #ifndef FLEXINT_H
30 #define FLEXINT_H
31 
32 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
33 
34 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
35 
36 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
37  * if you want the limit (max/min) macros for int types.
38  */
39 #ifndef __STDC_LIMIT_MACROS
40 #define __STDC_LIMIT_MACROS 1
41 #endif
42 
43 #include <inttypes.h>
44 typedef int8_t flex_int8_t;
45 typedef uint8_t flex_uint8_t;
46 typedef int16_t flex_int16_t;
47 typedef uint16_t flex_uint16_t;
48 typedef int32_t flex_int32_t;
49 typedef uint32_t flex_uint32_t;
50 #else
51 typedef signed char flex_int8_t;
52 typedef short int flex_int16_t;
53 typedef int flex_int32_t;
54 typedef unsigned char flex_uint8_t;
55 typedef unsigned short int flex_uint16_t;
56 typedef unsigned int flex_uint32_t;
57 
58 /* Limits of integral types. */
59 #ifndef INT8_MIN
60 #define INT8_MIN (-128)
61 #endif
62 #ifndef INT16_MIN
63 #define INT16_MIN (-32767-1)
64 #endif
65 #ifndef INT32_MIN
66 #define INT32_MIN (-2147483647-1)
67 #endif
68 #ifndef INT8_MAX
69 #define INT8_MAX (127)
70 #endif
71 #ifndef INT16_MAX
72 #define INT16_MAX (32767)
73 #endif
74 #ifndef INT32_MAX
75 #define INT32_MAX (2147483647)
76 #endif
77 #ifndef UINT8_MAX
78 #define UINT8_MAX (255U)
79 #endif
80 #ifndef UINT16_MAX
81 #define UINT16_MAX (65535U)
82 #endif
83 #ifndef UINT32_MAX
84 #define UINT32_MAX (4294967295U)
85 #endif
86 
87 #endif /* ! C99 */
88 
89 #endif /* ! FLEXINT_H */
90 
91 #ifdef __cplusplus
92 
93 /* The "const" storage-class-modifier is valid. */
94 #define YY_USE_CONST
95 
96 #else /* ! __cplusplus */
97 
98 /* C99 requires __STDC__ to be defined as 1. */
99 #if defined (__STDC__)
100 
101 #define YY_USE_CONST
102 
103 #endif /* defined (__STDC__) */
104 #endif /* ! __cplusplus */
105 
106 #ifdef YY_USE_CONST
107 #define yyconst const
108 #else
109 #define yyconst
110 #endif
111 
112 /* Returned upon end-of-file. */
113 #define YY_NULL 0
114 
115 /* Promotes a possibly negative, possibly signed char to an unsigned
116  * integer for use as an array index. If the signed char is negative,
117  * we want to instead treat it as an 8-bit unsigned char, hence the
118  * double cast.
119  */
120 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
121 
122 /* An opaque pointer. */
123 #ifndef YY_TYPEDEF_YY_SCANNER_T
124 #define YY_TYPEDEF_YY_SCANNER_T
125 typedef void* yyscan_t;
126 #endif
127 
128 /* For convenience, these vars (plus the bison vars far below)
129  are macros in the reentrant scanner. */
130 #define yyin yyg->yyin_r
131 #define yyout yyg->yyout_r
132 #define yyextra yyg->yyextra_r
133 #define yyleng yyg->yyleng_r
134 #define yytext yyg->yytext_r
135 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
136 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
137 #define yy_flex_debug yyg->yy_flex_debug_r
138 
139 /* Enter a start condition. This macro really ought to take a parameter,
140  * but we do it the disgusting crufty way forced on us by the ()-less
141  * definition of BEGIN.
142  */
143 #define BEGIN yyg->yy_start = 1 + 2 *
144 
145 /* Translate the current start state into a value that can be later handed
146  * to BEGIN to return to the state. The YYSTATE alias is for lex
147  * compatibility.
148  */
149 #define YY_START ((yyg->yy_start - 1) / 2)
150 #define YYSTATE YY_START
151 
152 /* Action number for EOF rule of a given start state. */
153 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
154 
155 /* Special action meaning "start processing a new file". */
156 #define YY_NEW_FILE parse_events_restart(yyin ,yyscanner )
157 
158 #define YY_END_OF_BUFFER_CHAR 0
159 
160 /* Size of default input buffer. */
161 #ifndef YY_BUF_SIZE
162 #ifdef __ia64__
163 /* On IA-64, the buffer size is 16k, not 8k.
164  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
165  * Ditto for the __ia64__ case accordingly.
166  */
167 #define YY_BUF_SIZE 32768
168 #else
169 #define YY_BUF_SIZE 16384
170 #endif /* __ia64__ */
171 #endif
172 
173 /* The state buf must be large enough to hold one state per character in the main buffer.
174  */
175 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
176 
177 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
178 #define YY_TYPEDEF_YY_BUFFER_STATE
180 #endif
181 
182 #ifndef YY_TYPEDEF_YY_SIZE_T
183 #define YY_TYPEDEF_YY_SIZE_T
184 typedef size_t yy_size_t;
185 #endif
186 
187 #define EOB_ACT_CONTINUE_SCAN 0
188 #define EOB_ACT_END_OF_FILE 1
189 #define EOB_ACT_LAST_MATCH 2
190 
191  /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
192  * access to the local variable yy_act. Since yyless() is a macro, it would break
193  * existing scanners that call yyless() from OUTSIDE parse_events_lex.
194  * One obvious solution it to make yy_act a global. I tried that, and saw
195  * a 5% performance hit in a non-yylineno scanner, because yy_act is
196  * normally declared as a register variable-- so it is not worth it.
197  */
198  #define YY_LESS_LINENO(n) \
199  do { \
200  yy_size_t yyl;\
201  for ( yyl = n; yyl < yyleng; ++yyl )\
202  if ( yytext[yyl] == '\n' )\
203  --yylineno;\
204  }while(0)
205  #define YY_LINENO_REWIND_TO(dst) \
206  do {\
207  const char *p;\
208  for ( p = yy_cp-1; p >= (dst); --p)\
209  if ( *p == '\n' )\
210  --yylineno;\
211  }while(0)
212 
213 /* Return all but the first "n" matched characters back to the input stream. */
214 #define yyless(n) \
215  do \
216  { \
217  /* Undo effects of setting up yytext. */ \
218  yy_size_t yyless_macro_arg = (n); \
219  YY_LESS_LINENO(yyless_macro_arg);\
220  *yy_cp = yyg->yy_hold_char; \
221  YY_RESTORE_YY_MORE_OFFSET \
222  yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
223  YY_DO_BEFORE_ACTION; /* set up yytext again */ \
224  } \
225  while ( 0 )
226 
227 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
228 
229 #ifndef YY_STRUCT_YY_BUFFER_STATE
230 #define YY_STRUCT_YY_BUFFER_STATE
232  {
234 
235  char *yy_ch_buf; /* input buffer */
236  char *yy_buf_pos; /* current position in input buffer */
237 
238  /* Size of input buffer in bytes, not including room for EOB
239  * characters.
240  */
242 
243  /* Number of characters read into yy_ch_buf, not including EOB
244  * characters.
245  */
247 
248  /* Whether we "own" the buffer - i.e., we know we created it,
249  * and can realloc() it to grow it, and should free() it to
250  * delete it.
251  */
253 
254  /* Whether this is an "interactive" input source; if so, and
255  * if we're using stdio for input, then we want to use getc()
256  * instead of fread(), to make sure we stop fetching input after
257  * each newline.
258  */
260 
261  /* Whether we're considered to be at the beginning of a line.
262  * If so, '^' rules will be active on the next match, otherwise
263  * not.
264  */
266 
270  /* Whether to try to fill the input buffer when we reach the
271  * end of it.
272  */
274 
276 
277 #define YY_BUFFER_NEW 0
278 #define YY_BUFFER_NORMAL 1
279  /* When an EOF's been seen but there's still some text to process
280  * then we mark the buffer as YY_EOF_PENDING, to indicate that we
281  * shouldn't try reading from the input source any more. We might
282  * still have a bunch of tokens to match, though, because of
283  * possible backing-up.
284  *
285  * When we actually see the EOF, we change the status to "new"
286  * (via parse_events_restart()), so that the user can continue scanning by
287  * just pointing yyin at a new input file.
288  */
289 #define YY_BUFFER_EOF_PENDING 2
290 
291  };
292 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
293 
294 /* We provide macros for accessing buffer states in case in the
295  * future we want to put the buffer states in a more general
296  * "scanner state".
297  *
298  * Returns the top of the stack, or NULL.
299  */
300 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
301  ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
302  : NULL)
303 
304 /* Same as previous macro, but useful when we know that the buffer stack is not
305  * NULL or when we need an lvalue. For internal use only.
306  */
307 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
308 
309 void parse_events_restart (FILE *input_file ,yyscan_t yyscanner );
310 void parse_events__switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
311 YY_BUFFER_STATE parse_events__create_buffer (FILE *file,int size ,yyscan_t yyscanner );
312 void parse_events__delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
313 void parse_events__flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
314 void parse_events_push_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
315 void parse_events_pop_buffer_state (yyscan_t yyscanner );
316 
317 static void parse_events_ensure_buffer_stack (yyscan_t yyscanner );
318 static void parse_events__load_buffer_state (yyscan_t yyscanner );
319 static void parse_events__init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
320 
321 #define YY_FLUSH_BUFFER parse_events__flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
322 
323 YY_BUFFER_STATE parse_events__scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
324 YY_BUFFER_STATE parse_events__scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
325 YY_BUFFER_STATE parse_events__scan_bytes (yyconst char *bytes,yy_size_t len ,yyscan_t yyscanner );
326 
327 void *parse_events_alloc (yy_size_t ,yyscan_t yyscanner );
328 void *parse_events_realloc (void *,yy_size_t ,yyscan_t yyscanner );
329 void parse_events_free (void * ,yyscan_t yyscanner );
330 
331 #define yy_new_buffer parse_events__create_buffer
332 
333 #define yy_set_interactive(is_interactive) \
334  { \
335  if ( ! YY_CURRENT_BUFFER ){ \
336  parse_events_ensure_buffer_stack (yyscanner); \
337  YY_CURRENT_BUFFER_LVALUE = \
338  parse_events__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
339  } \
340  YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
341  }
342 
343 #define yy_set_bol(at_bol) \
344  { \
345  if ( ! YY_CURRENT_BUFFER ){\
346  parse_events_ensure_buffer_stack (yyscanner); \
347  YY_CURRENT_BUFFER_LVALUE = \
348  parse_events__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
349  } \
350  YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
351  }
352 
353 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
354 
355 /* Begin user sect3 */
356 
357 typedef unsigned char YY_CHAR;
358 
359 typedef int yy_state_type;
360 
361 #define yytext_ptr yytext_r
362 
363 static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
364 static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner);
365 static int yy_get_next_buffer (yyscan_t yyscanner );
366 #if defined(__GNUC__) && __GNUC__ >= 3
367 __attribute__((__noreturn__))
368 #endif
369 static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
370 
371 /* Done after the current pattern has been matched and before the
372  * corresponding action - sets up yytext.
373  */
374 #define YY_DO_BEFORE_ACTION \
375  yyg->yytext_ptr = yy_bp; \
376  yyleng = (size_t) (yy_cp - yy_bp); \
377  yyg->yy_hold_char = *yy_cp; \
378  *yy_cp = '\0'; \
379  yyg->yy_c_buf_p = yy_cp;
380 
381 #define YY_NUM_RULES 94
382 #define YY_END_OF_BUFFER 95
383 /* This struct is not used in this scanner,
384  but its presence is necessary. */
386  {
389  };
391  { 0,
392  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
393  95, 93, 92, 84, 87, 86, 85, 79, 79, 88,
394  91, 81, 81, 81, 84, 84, 84, 84, 84, 84,
395  84, 84, 84, 84, 84, 84, 84, 81, 84, 84,
396  84, 84, 89, 90, 37, 94, 34, 35, 35, 33,
397  32, 28, 26, 27, 93, 28, 28, 28, 28, 28,
398  30, 28, 28, 28, 28, 28, 28, 28, 28, 28,
399  28, 28, 28, 28, 28, 28, 28, 5, 94, 94,
400  9, 94, 7, 7, 6, 0, 0, 84, 84, 79,
401  0, 81, 84, 84, 84, 66, 84, 84, 84, 84,
402 
403  84, 84, 84, 84, 84, 84, 84, 53, 84, 0,
404  84, 84, 84, 84, 0, 84, 84, 84, 84, 84,
405  84, 84, 84, 84, 84, 84, 84, 78, 78, 84,
406  84, 84, 84, 84, 35, 0, 32, 28, 28, 28,
407  31, 31, 28, 28, 28, 28, 28, 28, 28, 0,
408  28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
409  28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
410  28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
411  28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
412  28, 5, 5, 0, 0, 0, 0, 0, 1, 0,
413 
414  7, 0, 0, 83, 82, 84, 83, 82, 80, 84,
415  84, 0, 84, 84, 84, 69, 84, 84, 84, 84,
416  84, 84, 84, 0, 84, 84, 84, 84, 0, 84,
417  84, 84, 0, 64, 65, 84, 84, 84, 84, 84,
418  84, 84, 75, 84, 84, 78, 78, 84, 84, 84,
419  84, 84, 84, 36, 32, 28, 28, 28, 28, 0,
420  31, 31, 31, 28, 28, 28, 28, 0, 28, 28,
421  28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
422  28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
423  28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
424 
425  28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
426  28, 28, 28, 28, 28, 28, 28, 5, 4, 3,
427  0, 0, 0, 2, 0, 4, 3, 1, 10, 8,
428  0, 84, 84, 84, 0, 0, 84, 84, 84, 0,
429  84, 0, 84, 84, 0, 84, 0, 67, 84, 84,
430  84, 0, 68, 84, 84, 64, 65, 71, 84, 0,
431  77, 84, 84, 76, 70, 84, 84, 71, 0, 84,
432  84, 84, 84, 84, 84, 28, 28, 28, 28, 31,
433  31, 31, 28, 28, 28, 28, 28, 0, 28, 28,
434  28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
435 
436  28, 28, 28, 28, 16, 28, 28, 28, 28, 28,
437  28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
438  14, 28, 28, 28, 28, 28, 28, 28, 28, 28,
439  28, 28, 28, 28, 28, 18, 28, 28, 5, 2,
440  0, 4, 3, 2, 2, 0, 0, 84, 0, 0,
441  0, 0, 84, 84, 84, 0, 84, 0, 84, 84,
442  0, 0, 84, 67, 57, 84, 84, 68, 0, 84,
443  71, 84, 0, 0, 84, 84, 84, 0, 84, 0,
444  84, 84, 72, 0, 84, 72, 28, 31, 31, 31,
445  28, 28, 28, 28, 28, 28, 28, 29, 28, 28,
446 
447  28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
448  28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
449  28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
450  28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
451  2, 0, 2, 2, 2, 0, 84, 0, 0, 0,
452  0, 84, 84, 0, 69, 0, 0, 84, 0, 0,
453  0, 38, 84, 50, 0, 84, 0, 0, 0, 84,
454  0, 76, 0, 84, 0, 84, 84, 0, 84, 31,
455  28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
456  28, 28, 28, 11, 28, 28, 28, 28, 28, 28,
457 
458  28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
459  28, 28, 28, 28, 28, 15, 28, 28, 28, 28,
460  28, 28, 28, 2, 0, 84, 0, 0, 0, 84,
461  84, 0, 0, 84, 0, 0, 0, 84, 0, 0,
462  0, 0, 84, 0, 84, 0, 0, 0, 84, 0,
463  0, 84, 0, 84, 84, 0, 84, 28, 28, 28,
464  28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
465  28, 28, 12, 13, 28, 28, 28, 28, 28, 28,
466  28, 22, 28, 28, 28, 28, 28, 28, 28, 28,
467  28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
468 
469  84, 0, 0, 0, 84, 84, 0, 0, 0, 44,
470  0, 0, 0, 0, 0, 0, 0, 0, 60, 84,
471  0, 84, 0, 0, 0, 84, 0, 0, 73, 0,
472  84, 0, 0, 0, 28, 28, 28, 28, 28, 28,
473  28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
474  28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
475  28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
476  28, 28, 28, 28, 28, 84, 0, 84, 0, 0,
477  0, 0, 0, 0, 0, 48, 0, 0, 59, 84,
478  0, 84, 0, 61, 0, 84, 0, 0, 84, 0,
479 
480  84, 0, 0, 63, 28, 28, 28, 28, 28, 28,
481  28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
482  28, 28, 28, 28, 21, 28, 28, 28, 28, 28,
483  28, 24, 28, 28, 28, 28, 28, 28, 28, 28,
484  84, 0, 0, 58, 0, 0, 46, 0, 0, 0,
485  38, 0, 0, 0, 84, 0, 62, 54, 0, 0,
486  73, 47, 84, 0, 49, 28, 28, 28, 28, 28,
487  28, 28, 28, 28, 28, 19, 28, 28, 28, 28,
488  28, 28, 28, 28, 28, 28, 23, 28, 28, 28,
489  28, 28, 20, 28, 28, 84, 0, 0, 0, 0,
490 
491  0, 0, 0, 0, 0, 0, 84, 0, 0, 50,
492  84, 0, 28, 28, 28, 28, 28, 17, 28, 28,
493  28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
494  28, 0, 0, 0, 0, 0, 43, 0, 0, 0,
495  0, 0, 41, 52, 51, 0, 0, 28, 28, 28,
496  28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
497  28, 25, 28, 28, 0, 0, 0, 0, 45, 0,
498  0, 0, 0, 0, 0, 0, 0, 0, 28, 28,
499  28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
500  28, 28, 0, 0, 0, 0, 0, 54, 0, 0,
501 
502  0, 0, 0, 0, 28, 28, 28, 28, 28, 28,
503  28, 28, 28, 28, 28, 28, 0, 0, 0, 0,
504  0, 0, 0, 0, 0, 0, 28, 28, 28, 28,
505  28, 28, 28, 28, 28, 28, 55, 0, 42, 53,
506  56, 0, 0, 74, 0, 0, 28, 28, 28, 28,
507  28, 28, 28, 28, 28, 28, 0, 0, 0, 0,
508  0, 28, 28, 28, 28, 28, 0, 0, 0, 0,
509  0, 28, 28, 28, 28, 28, 44, 40, 0, 0,
510  0, 28, 28, 28, 28, 28, 39, 0, 0, 28,
511  28, 28, 0, 0, 28, 28, 0, 28, 0
512 
513  } ;
514 
515 static yyconst YY_CHAR yy_ec[256] =
516  { 0,
517  1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
518  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
519  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
520  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
521  1, 3, 1, 4, 5, 6, 7, 8, 9, 10,
522  11, 11, 11, 11, 11, 11, 11, 12, 1, 1,
523  13, 1, 3, 14, 15, 16, 17, 18, 15, 15,
524  19, 19, 20, 21, 21, 22, 21, 21, 21, 19,
525  21, 23, 19, 24, 21, 21, 21, 21, 21, 21,
526  25, 1, 26, 1, 27, 1, 28, 29, 30, 31,
527 
528  32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
529  42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
530  52, 53, 54, 1, 55, 1, 1, 1, 1, 1,
531  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
532  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
533  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
534  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
535  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
536  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
537  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
538 
539  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
540  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
541  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
542  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
543  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
544  1, 1, 1, 1, 1
545  } ;
546 
547 static yyconst YY_CHAR yy_meta[56] =
548  { 0,
549  1, 1, 1, 2, 1, 1, 3, 4, 4, 4,
550  4, 1, 1, 1, 4, 4, 4, 4, 1, 1,
551  1, 1, 1, 1, 1, 1, 1, 4, 4, 4,
552  4, 4, 4, 1, 1, 1, 1, 1, 1, 1,
553  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
554  1, 1, 1, 5, 2
555  } ;
556 
558  { 0,
559  0, 0, 54, 104, 155, 0, 53, 63, 65, 74,
560  2580, 2567, 2557, 210, 4388, 2485, 2468, 84, 113, 2466,
561  2439, 236, 2415, 31, 276, 88, 230, 235, 279, 308,
562  211, 116, 318, 204, 325, 328, 283, 51, 363, 354,
563  377, 345, 4388, 4388, 4388, 4388, 4388, 78, 122, 4388,
564  89, 419, 4388, 2368, 445, 471, 2329, 40, 511, 336,
565  122, 290, 393, 452, 444, 293, 506, 531, 400, 407,
566  515, 501, 202, 565, 556, 579, 582, 212, 2340, 2254,
567  4388, 2269, 559, 137, 4388, 2260, 458, 538, 596, 603,
568  633, 2235, 607, 610, 625, 614, 636, 650, 658, 660,
569 
570  664, 667, 669, 683, 691, 693, 697, 700, 708, 95,
571  714, 717, 722, 731, 96, 733, 737, 739, 753, 755,
572  758, 764, 772, 778, 781, 783, 788, 2162, 199, 792,
573  806, 813, 820, 816, 403, 0, 208, 822, 844, 831,
574  873, 807, 2161, 845, 855, 884, 862, 873, 887, 97,
575  895, 901, 909, 904, 912, 918, 926, 936, 940, 944,
576  950, 988, 959, 964, 961, 969, 975, 1035, 983, 989,
577  1009, 1016, 1023, 1044, 1047, 1055, 1053, 1063, 1061, 1070,
578  1081, 1088, 1090, 2115, 235, 1095, 1104, 1099, 1109, 1114,
579  1119, 222, 1131, 1136, 2084, 2127, 1105, 2021, 0, 2039,
580 
581  1142, 0, 266, 2020, 1975, 1149, 1153, 1155, 0, 1158,
582  1160, 346, 1174, 1178, 1189, 1192, 1199, 1203, 1210, 1207,
583  1217, 1225, 1227, 267, 1236, 1231, 1241, 1245, 269, 1252,
584  1247, 1250, 392, 1266, 1268, 1272, 1276, 1290, 1282, 1297,
585  1299, 1301, 1304, 1306, 1315, 120, 343, 1320, 1322, 1325,
586  1331, 1342, 1345, 0, 4388, 1392, 1353, 1349, 1356, 1434,
587  1347, 1353, 1355, 1391, 1398, 1373, 1401, 271, 1420, 1415,
588  1422, 1441, 1444, 1452, 1446, 1455, 1460, 1462, 1466, 1450,
589  1481, 1477, 1486, 1491, 1500, 1482, 1510, 1505, 1519, 1524,
590  1518, 1530, 1533, 1547, 1552, 1554, 1563, 1557, 1571, 1573,
591 
592  1577, 1561, 1579, 1595, 1598, 1605, 1612, 1614, 259, 476,
593  1616, 1619, 1622, 1630, 1641, 1644, 1647, 579, 401, 745,
594  1655, 1966, 1670, 337, 345, 1955, 1869, 0, 4388, 0,
595  264, 1662, 1676, 1669, 473, 684, 1683, 1680, 1694, 421,
596  1697, 330, 1708, 1711, 487, 1722, 310, 1727, 1729, 1736,
597  1738, 377, 1743, 1752, 1746, 1806, 1801, 1757, 1760, 496,
598  1789, 1762, 1766, 1777, 1784, 1791, 1788, 1760, 335, 1805,
599  1807, 1809, 1816, 1813, 1827, 1814, 1803, 1810, 1838, 1871,
600  1897, 1821, 1857, 1860, 1858, 1851, 1885, 378, 1899, 1903,
601  1886, 1910, 1904, 1926, 1932, 1940, 1942, 1926, 1950, 1941,
602 
603  1968, 1970, 1975, 1977, 1979, 1964, 1986, 1995, 2001, 2003,
604  1985, 1989, 2011, 2019, 2005, 2010, 2008, 2033, 2044, 2049,
605  2053, 2038, 2043, 2060, 2068, 2078, 2084, 2087, 1679, 2069,
606  2092, 2094, 2098, 2103, 2112, 2114, 2119, 2121, 1884, 0,
607  2138, 2142, 2148, 506, 2144, 499, 103, 2147, 428, 259,
608  454, 461, 2150, 2153, 2158, 552, 2155, 512, 2161, 2169,
609  532, 394, 2178, 1702, 2195, 2197, 2199, 1606, 622, 2201,
610  2203, 2217, 669, 555, 2206, 2224, 2221, 546, 2226, 681,
611  2232, 2228, 2242, 625, 2246, 2248, 2232, 2247, 2249, 2251,
612  2268, 2273, 2257, 2272, 2277, 2282, 2307, 1604, 2313, 2316,
613 
614  2301, 2323, 2311, 2342, 2331, 2345, 2359, 2341, 2346, 2368,
615  2355, 2377, 2382, 2385, 2371, 2373, 2396, 2399, 2402, 2417,
616  2404, 2406, 2408, 2431, 2447, 2449, 2431, 2433, 2458, 2452,
617  2467, 2474, 2457, 2483, 2492, 2497, 2501, 2483, 2506, 2508,
618  0, 2520, 765, 678, 805, 131, 2522, 722, 651, 748,
619  760, 2524, 2526, 815, 2532, 813, 970, 2529, 693, 882,
620  431, 2540, 2550, 2557, 923, 2559, 557, 902, 714, 2561,
621  763, 2568, 910, 2578, 894, 2582, 2584, 665, 2589, 2572,
622  2587, 2603, 2590, 2592, 2594, 2597, 2628, 2631, 2613, 2649,
623  2619, 2622, 2643, 2656, 2665, 2650, 2653, 2660, 2688, 2691,
624 
625  2694, 2676, 2698, 2712, 2696, 2702, 2707, 2710, 2737, 2721,
626  2746, 2728, 2732, 2756, 2751, 2762, 2766, 2753, 2776, 2760,
627  2790, 2778, 2800, 1017, 850, 2804, 602, 702, 862, 2806,
628  2809, 957, 976, 2815, 981, 450, 990, 2824, 937, 1000,
629  1061, 1142, 2830, 997, 2833, 927, 1028, 1080, 2835, 1002,
630  833, 2838, 1037, 2844, 2853, 1078, 2859, 2854, 2876, 2858,
631  2860, 2874, 2896, 2898, 2882, 2892, 2905, 2920, 2906, 2908,
632  2911, 2926, 2937, 2948, 2955, 2932, 2942, 2946, 2950, 2973,
633  2956, 2980, 2984, 2971, 2974, 2978, 2981, 3008, 2999, 2992,
634  3003, 3026, 3009, 3033, 3017, 3052, 3034, 3062, 3036, 3070,
635 
636  3072, 1124, 1173, 1040, 3078, 3076, 1068, 1133, 520, 3080,
637  1216, 1148, 1160, 1172, 539, 1264, 1175, 1191, 1594, 3087,
638  1189, 3094, 1225, 1237, 1311, 3096, 1340, 1281, 3102, 1354,
639  3104, 1259, 1350, 3140, 3185, 3090, 3167, 3171, 3193, 3195,
640  3181, 3197, 3201, 3223, 3225, 3219, 3211, 3225, 3230, 3234,
641  3236, 3239, 3254, 3256, 3258, 3280, 3262, 3284, 3280, 3285,
642  3283, 3301, 3325, 3307, 3309, 3311, 3348, 3330, 3352, 3335,
643  3366, 3352, 3349, 3356, 3405, 3450, 1351, 3387, 1381, 1366,
644  1368, 1432, 1437, 1552, 710, 1592, 1452, 1498, 1512, 3456,
645  1564, 3453, 1467, 1299, 1624, 3458, 1496, 1530, 3460, 1636,
646 
647  3464, 1316, 1138, 0, 3467, 3454, 3488, 3458, 3461, 3472,
648  3502, 3486, 3491, 3493, 3501, 3497, 3511, 3519, 3521, 3525,
649  3547, 3530, 3561, 3545, 3547, 3549, 3551, 3576, 3565, 3570,
650  3572, 3596, 3581, 3610, 3595, 3617, 3601, 3605, 3616, 0,
651  3639, 1559, 1517, 1287, 1586, 1677, 1227, 1681, 1610, 1343,
652  1218, 1629, 1612, 1695, 3641, 1682, 1072, 3643, 1716, 1796,
653  3650, 1023, 3659, 1753, 955, 3661, 3645, 3655, 3647, 3664,
654  3666, 3691, 3674, 3685, 3680, 3689, 3699, 3691, 3707, 3709,
655  3715, 3737, 3723, 3725, 3753, 3739, 3742, 3747, 3750, 3773,
656  3758, 3781, 3768, 3772, 3775, 3802, 1744, 1510, 1728, 1772,
657 
658  1818, 1802, 1783, 1385, 1525, 946, 3799, 1822, 1855, 941,
659  3810, 1658, 3813, 3797, 3800, 3807, 3811, 3837, 3821, 3826,
660  3831, 3835, 3841, 3852, 3865, 3850, 3855, 3861, 3870, 3897,
661  3875, 1034, 1654, 1883, 1959, 1868, 938, 1295, 1923, 1674,
662  1961, 1969, 3899, 885, 841, 1918, 1937, 3886, 3893, 3895,
663  3897, 3900, 3902, 3911, 3918, 3920, 3925, 3935, 3947, 3929,
664  3945, 3949, 3951, 3953, 2010, 1736, 2099, 2030, 827, 2080,
665  1912, 2038, 2179, 2241, 1985, 2085, 2152, 2226, 3970, 3968,
666  3972, 3974, 3976, 3978, 3992, 3994, 3996, 4000, 4002, 4016,
667  4019, 4023, 1410, 1859, 2068, 2208, 2253, 634, 2297, 2278,
668 
669  2330, 2309, 2314, 2411, 4025, 4030, 4033, 4041, 4049, 4055,
670  4057, 4059, 4063, 4066, 4081, 4077, 2288, 2059, 2424, 2458,
671  2494, 2312, 2307, 1852, 2170, 2390, 4083, 4085, 4088, 4102,
672  4107, 4109, 4113, 4127, 4130, 4133, 463, 2356, 412, 363,
673  360, 2422, 2443, 356, 2414, 2321, 4135, 4138, 4141, 4144,
674  4149, 4152, 4158, 4160, 4167, 4169, 2438, 2502, 2625, 2555,
675  2383, 4174, 4177, 4191, 4183, 4197, 2549, 2551, 2629, 2482,
676  2650, 4199, 4201, 4205, 4219, 4221, 275, 219, 2597, 2709,
677  2639, 4223, 4225, 4229, 4240, 4244, 135, 2678, 2711, 4246,
678  4248, 4251, 2693, 2791, 4265, 4268, 2717, 4270, 4388, 4312,
679 
680  4317, 4322, 4327, 4331, 4335, 4339, 4343, 4348, 4352, 73,
681  4357, 4361, 4366, 54, 4370, 4374, 4379, 4383
682  } ;
683 
685  { 0,
686  1099, 1, 1100, 1100, 1099, 5, 1101, 1101, 1102, 1102,
687  1099, 1103, 1103, 1104, 1099, 1103, 1103, 1103, 1103, 1103,
688  1103, 1104, 22, 22, 22, 25, 25, 25, 25, 25,
689  25, 25, 25, 25, 25, 25, 25, 22, 25, 25,
690  25, 25, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099,
691  1099, 1105, 1099, 1103, 1106, 1105, 56, 56, 56, 59,
692  1103, 59, 59, 59, 59, 59, 59, 59, 59, 59,
693  59, 59, 56, 59, 59, 59, 59, 1107, 1108, 1109,
694  1099, 1099, 1099, 1099, 1099, 1103, 1103, 25, 25, 1103,
695  1103, 22, 25, 25, 25, 25, 25, 25, 25, 25,
696 
697  25, 25, 25, 25, 25, 25, 25, 25, 25, 1103,
698  25, 25, 25, 25, 1103, 25, 25, 25, 25, 25,
699  25, 25, 25, 25, 25, 25, 25, 39, 39, 25,
700  25, 25, 25, 25, 1099, 1110, 1099, 59, 1111, 59,
701  1106, 141, 56, 59, 59, 59, 59, 59, 59, 1103,
702  59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
703  59, 1111, 59, 59, 59, 59, 59, 1111, 59, 59,
704  59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
705  59, 59, 59, 74, 74, 59, 59, 59, 59, 59,
706  59, 1107, 1107, 1112, 1109, 1108, 1108, 1109, 1113, 1099,
707 
708  1099, 1114, 1103, 1103, 1103, 25, 25, 25, 91, 25,
709  25, 1103, 25, 25, 25, 25, 25, 25, 25, 25,
710  25, 25, 25, 1103, 25, 25, 25, 25, 1103, 25,
711  25, 25, 1103, 25, 25, 25, 25, 25, 25, 25,
712  25, 25, 25, 25, 25, 39, 39, 25, 25, 25,
713  25, 25, 25, 1110, 1099, 1111, 59, 59, 59, 1115,
714  141, 141, 141, 59, 59, 256, 59, 1103, 59, 59,
715  59, 59, 59, 59, 59, 59, 59, 59, 59, 256,
716  59, 59, 59, 59, 59, 256, 59, 59, 59, 59,
717  256, 59, 59, 59, 59, 59, 59, 59, 59, 59,
718 
719  59, 256, 59, 59, 59, 59, 59, 59, 74, 74,
720  59, 59, 59, 59, 59, 59, 59, 1107, 1107, 1107,
721  1112, 1116, 1112, 1117, 1108, 1108, 1108, 1113, 1099, 1114,
722  1103, 25, 25, 25, 1103, 1103, 25, 25, 25, 1103,
723  25, 1103, 25, 25, 1103, 25, 1103, 25, 25, 25,
724  25, 1103, 25, 25, 25, 1103, 1103, 25, 25, 1103,
725  1103, 25, 25, 25, 25, 25, 25, 39, 1103, 25,
726  25, 25, 25, 25, 25, 256, 256, 256, 59, 1115,
727  1115, 141, 59, 59, 256, 256, 59, 1103, 59, 59,
728  256, 59, 256, 59, 59, 59, 59, 256, 59, 256,
729 
730  59, 59, 59, 59, 59, 256, 59, 59, 59, 59,
731  256, 256, 59, 59, 256, 256, 256, 59, 59, 59,
732  59, 256, 256, 59, 59, 59, 59, 59, 74, 256,
733  59, 59, 59, 59, 59, 59, 59, 59, 1107, 1118,
734  1112, 1112, 1112, 1117, 1117, 1108, 1103, 25, 1103, 1103,
735  1103, 1103, 25, 25, 25, 1103, 25, 1103, 25, 25,
736  1103, 1103, 25, 1103, 25, 25, 25, 1103, 1103, 25,
737  25, 25, 1103, 1103, 25, 25, 25, 1103, 25, 1103,
738  25, 25, 25, 1103, 25, 25, 256, 381, 381, 381,
739  256, 59, 256, 256, 256, 256, 59, 1103, 59, 59,
740 
741  256, 59, 256, 59, 256, 59, 59, 256, 256, 59,
742  256, 59, 59, 59, 256, 256, 59, 59, 59, 59,
743  256, 256, 256, 59, 59, 59, 256, 256, 59, 256,
744  59, 59, 256, 59, 59, 59, 59, 256, 59, 59,
745  1118, 1112, 1117, 1117, 1117, 1103, 25, 1103, 1103, 1103,
746  1103, 25, 25, 1103, 25, 1103, 1103, 25, 1103, 1103,
747  1103, 25, 25, 25, 1103, 25, 1103, 1103, 1103, 25,
748  1103, 25, 1103, 25, 1103, 25, 25, 1103, 25, 381,
749  256, 59, 256, 256, 256, 256, 59, 59, 256, 59,
750  256, 256, 256, 59, 59, 256, 256, 256, 59, 59,
751 
752  59, 256, 59, 59, 256, 256, 256, 256, 59, 256,
753  59, 256, 256, 59, 256, 59, 59, 256, 59, 256,
754  59, 256, 59, 1117, 1103, 25, 1103, 1103, 1103, 25,
755  25, 1103, 1103, 25, 1103, 1103, 1103, 25, 1103, 1103,
756  1103, 1103, 25, 1103, 25, 1103, 1103, 1103, 25, 1103,
757  1103, 25, 1103, 25, 25, 1103, 25, 256, 59, 256,
758  256, 256, 59, 59, 256, 256, 59, 59, 256, 256,
759  256, 256, 59, 59, 59, 256, 256, 256, 256, 59,
760  256, 59, 59, 256, 256, 256, 256, 59, 256, 256,
761  256, 59, 256, 59, 256, 59, 256, 59, 256, 59,
762 
763  25, 1103, 1103, 1103, 25, 25, 1103, 1103, 1103, 25,
764  1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 25,
765  1103, 25, 1103, 1103, 1103, 25, 1103, 1103, 25, 1103,
766  25, 1103, 1103, 1099, 59, 256, 256, 256, 59, 59,
767  256, 256, 256, 59, 59, 256, 256, 256, 256, 256,
768  256, 256, 256, 256, 256, 59, 256, 59, 256, 256,
769  256, 256, 59, 256, 256, 256, 59, 256, 59, 256,
770  59, 256, 256, 256, 1099, 25, 1103, 25, 1103, 1103,
771  1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 25,
772  1103, 25, 1103, 1103, 1103, 25, 1103, 1103, 25, 1103,
773 
774  25, 1103, 1103, 734, 59, 256, 59, 256, 256, 256,
775  59, 256, 256, 256, 256, 256, 256, 256, 256, 256,
776  59, 256, 59, 256, 256, 256, 256, 59, 256, 256,
777  256, 59, 256, 59, 256, 59, 256, 256, 256, 775,
778  25, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103,
779  1103, 1103, 1103, 1103, 25, 1103, 1103, 25, 1103, 1103,
780  25, 1103, 25, 1103, 1103, 59, 256, 256, 256, 256,
781  256, 59, 256, 256, 256, 256, 256, 256, 256, 256,
782  256, 59, 256, 256, 59, 256, 256, 256, 256, 59,
783  256, 59, 256, 256, 256, 25, 1103, 1103, 1103, 1103,
784 
785  1103, 1103, 1103, 1103, 1103, 1103, 25, 1103, 1103, 1103,
786  25, 1103, 59, 256, 256, 256, 256, 59, 256, 256,
787  256, 256, 256, 256, 59, 256, 256, 256, 256, 59,
788  256, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103,
789  1103, 1103, 25, 1103, 1103, 1103, 1103, 256, 256, 256,
790  256, 256, 256, 256, 256, 256, 256, 256, 59, 256,
791  256, 256, 256, 256, 1103, 1103, 1103, 1103, 1103, 1103,
792  1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 256, 256,
793  256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
794  256, 256, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103,
795 
796  1103, 1103, 1103, 1103, 256, 256, 256, 256, 256, 256,
797  256, 256, 256, 256, 256, 256, 1103, 1103, 1103, 1103,
798  1103, 1103, 1103, 1103, 1103, 1103, 256, 256, 256, 256,
799  256, 256, 256, 256, 256, 256, 1103, 1103, 1103, 1103,
800  1103, 1103, 1103, 1103, 1103, 1103, 256, 256, 256, 256,
801  256, 256, 256, 256, 256, 256, 1103, 1103, 1103, 1103,
802  1103, 256, 256, 256, 256, 256, 1103, 1103, 1103, 1103,
803  1103, 256, 256, 256, 256, 256, 1103, 1103, 1103, 1103,
804  1103, 256, 256, 256, 256, 256, 1103, 1103, 1103, 256,
805  256, 256, 1103, 1103, 256, 256, 1103, 256, 0, 1099,
806 
807  1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099,
808  1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099
809  } ;
810 
812  { 0,
813  12, 13, 14, 15, 16, 12, 17, 18, 19, 19,
814  19, 20, 21, 12, 14, 14, 14, 22, 23, 24,
815  14, 25, 26, 14, 12, 12, 14, 27, 28, 29,
816  30, 31, 32, 14, 23, 33, 14, 23, 34, 35,
817  36, 37, 38, 14, 39, 40, 41, 23, 14, 42,
818  14, 14, 14, 43, 44, 46, 46, 330, 88, 79,
819  47, 48, 49, 49, 49, 50, 46, 138, 81, 79,
820  82, 94, 83, 84, 84, 84, 254, 81, 126, 82,
821  145, 83, 84, 84, 84, 135, 135, 135, 135, 87,
822  85, 90, 90, 90, 90, 127, 88, 88, 51, 85,
823 
824  87, 87, 87, 51, 51, 46, 80, 46, 87, 88,
825  47, 48, 49, 49, 49, 50, 80, 46, 87, 98,
826  90, 90, 90, 90, 88, 88, 546, 87, 136, 135,
827  135, 135, 135, 137, 91, 268, 87, 88, 137, 137,
828  87, 224, 229, 114, 201, 201, 201, 201, 51, 150,
829  368, 128, 625, 51, 51, 12, 13, 52, 53, 16,
830  12, 54, 18, 19, 19, 19, 20, 21, 55, 52,
831  52, 52, 56, 57, 58, 52, 59, 60, 52, 61,
832  12, 52, 62, 63, 64, 65, 66, 67, 52, 57,
833  68, 52, 57, 69, 70, 71, 72, 73, 52, 74,
834 
835  75, 76, 57, 52, 77, 52, 52, 52, 43, 44,
836  86, 86, 119, 88, 86, 89, 86, 193, 194, 88,
837  88, 86, 86, 86, 87, 88, 246, 193, 194, 181,
838  128, 247, 88, 182, 86, 86, 86, 86, 88, 88,
839  86, 89, 86, 88, 88, 120, 183, 86, 86, 86,
840  113, 88, 255, 92, 92, 92, 88, 255, 255, 99,
841  86, 86, 309, 93, 87, 195, 184, 310, 100, 87,
842  92, 87, 87, 92, 87, 195, 87, 101, 92, 102,
843  87, 103, 104, 92, 95, 96, 549, 88, 88, 429,
844  184, 88, 88, 88, 88, 88, 205, 97, 138, 138,
845 
846  88, 138, 138, 88, 88, 347, 105, 352, 331, 388,
847  88, 138, 110, 88, 138, 87, 88, 88, 88, 151,
848  106, 107, 115, 88, 108, 125, 88, 88, 152, 88,
849  109, 111, 165, 88, 88, 87, 88, 88, 464, 88,
850  87, 116, 445, 196, 138, 138, 88, 369, 117, 88,
851  197, 87, 121, 88, 88, 112, 122, 138, 118, 458,
852  123, 87, 88, 88, 480, 87, 88, 149, 87, 124,
853  128, 128, 128, 128, 128, 88, 335, 128, 128, 128,
854  128, 336, 87, 87, 88, 88, 88, 446, 243, 134,
855  128, 128, 128, 128, 129, 128, 130, 87, 88, 87,
856 
857  131, 138, 138, 498, 132, 468, 193, 194, 172, 138,
858  135, 135, 135, 135, 138, 138, 138, 87, 133, 86,
859  86, 138, 356, 139, 140, 86, 87, 357, 138, 561,
860  139, 86, 86, 87, 174, 153, 87, 154, 175, 155,
861  156, 173, 176, 86, 86, 86, 86, 86, 162, 86,
862  141, 86, 138, 138, 195, 87, 86, 86, 86, 87,
863  138, 138, 456, 87, 641, 138, 87, 163, 87, 86,
864  86, 86, 86, 138, 548, 139, 140, 86, 87, 157,
865  430, 550, 139, 86, 86, 712, 203, 204, 143, 143,
866  143, 164, 87, 158, 159, 86, 86, 160, 144, 205,
867 
868  449, 87, 450, 161, 197, 143, 551, 184, 143, 138,
869  138, 445, 196, 143, 138, 138, 461, 87, 143, 146,
870  147, 304, 138, 138, 138, 87, 462, 138, 138, 138,
871  138, 327, 148, 166, 473, 168, 138, 87, 138, 138,
872  138, 474, 177, 179, 87, 138, 88, 88, 138, 180,
873  167, 87, 138, 138, 169, 781, 178, 87, 138, 88,
874  87, 170, 87, 556, 138, 138, 201, 201, 201, 201,
875  559, 171, 184, 184, 184, 184, 786, 138, 573, 184,
876  184, 184, 184, 560, 193, 194, 138, 138, 138, 646,
877  138, 138, 184, 184, 184, 184, 185, 184, 186, 554,
878 
879  138, 569, 187, 138, 88, 88, 188, 87, 87, 202,
880  90, 90, 90, 90, 189, 88, 88, 88, 88, 88,
881  190, 439, 88, 88, 206, 207, 191, 87, 88, 212,
882  87, 88, 195, 88, 88, 88, 702, 208, 87, 87,
883  209, 209, 209, 209, 88, 88, 88, 209, 209, 209,
884  209, 565, 96, 210, 578, 211, 87, 88, 88, 88,
885  209, 209, 209, 209, 209, 209, 88, 88, 88, 88,
886  87, 88, 88, 88, 87, 88, 88, 88, 88, 88,
887  627, 88, 213, 445, 196, 88, 87, 214, 88, 87,
888  88, 88, 88, 216, 218, 215, 217, 216, 87, 88,
889 
890  88, 88, 88, 656, 88, 88, 88, 87, 88, 88,
891  568, 216, 88, 451, 88, 87, 88, 88, 88, 87,
892  220, 88, 88, 88, 452, 88, 88, 87, 219, 88,
893  88, 88, 575, 221, 639, 225, 703, 223, 88, 88,
894  88, 88, 88, 88, 222, 88, 88, 88, 88, 356,
895  193, 194, 88, 87, 230, 648, 226, 233, 88, 850,
896  88, 88, 88, 88, 88, 87, 88, 88, 87, 227,
897  445, 196, 88, 88, 88, 231, 88, 628, 228, 88,
898  88, 88, 236, 234, 232, 88, 88, 88, 235, 88,
899  88, 88, 88, 88, 237, 650, 88, 88, 195, 88,
900 
901  88, 88, 88, 238, 88, 239, 629, 624, 242, 88,
902  445, 196, 240, 88, 88, 88, 244, 241, 87, 245,
903  87, 88, 88, 248, 88, 88, 243, 88, 88, 88,
904  138, 138, 87, 249, 88, 142, 142, 88, 87, 138,
905  138, 88, 635, 138, 86, 86, 87, 250, 142, 256,
906  86, 253, 138, 138, 138, 87, 86, 86, 251, 257,
907  258, 632, 252, 138, 138, 464, 138, 87, 86, 86,
908  138, 138, 259, 86, 86, 86, 138, 86, 141, 86,
909  728, 138, 138, 138, 86, 260, 86, 87, 266, 147,
910  87, 264, 138, 138, 138, 138, 138, 86, 86, 87,
911 
912  265, 261, 262, 138, 138, 138, 704, 87, 138, 138,
913  138, 640, 138, 138, 263, 87, 138, 138, 138, 267,
914  138, 138, 138, 653, 269, 138, 138, 138, 87, 647,
915  138, 273, 87, 138, 138, 138, 270, 651, 271, 138,
916  271, 272, 87, 87, 138, 138, 87, 138, 138, 138,
917  942, 87, 138, 138, 723, 275, 271, 138, 138, 138,
918  87, 138, 87, 274, 276, 138, 715, 138, 138, 138,
919  138, 138, 138, 138, 644, 87, 277, 138, 138, 279,
920  281, 87, 138, 138, 138, 138, 87, 278, 86, 86,
921  138, 138, 138, 256, 86, 87, 138, 138, 138, 707,
922 
923  86, 86, 87, 282, 287, 87, 285, 87, 283, 636,
924  138, 708, 86, 86, 637, 709, 284, 138, 138, 711,
925  291, 713, 445, 196, 138, 138, 721, 288, 87, 727,
926  138, 138, 138, 87, 280, 86, 86, 138, 716, 87,
927  256, 86, 87, 289, 138, 87, 292, 86, 86, 545,
928  294, 293, 138, 138, 290, 138, 138, 965, 724, 86,
929  86, 138, 138, 138, 138, 138, 87, 302, 138, 138,
930  138, 138, 138, 87, 138, 730, 138, 87, 138, 138,
931  295, 286, 138, 87, 138, 87, 297, 777, 298, 138,
932  138, 138, 301, 303, 296, 299, 138, 138, 138, 138,
933 
934  300, 305, 138, 138, 138, 717, 304, 138, 138, 138,
935  197, 138, 138, 138, 306, 779, 138, 138, 138, 733,
936  138, 308, 138, 138, 725, 138, 311, 138, 138, 87,
937  138, 312, 307, 325, 326, 138, 193, 194, 87, 322,
938  138, 323, 324, 87, 314, 313, 327, 87, 315, 201,
939  201, 201, 201, 87, 317, 356, 316, 88, 88, 318,
940  319, 88, 88, 88, 88, 87, 88, 88, 88, 88,
941  88, 718, 320, 780, 88, 865, 88, 87, 87, 88,
942  87, 88, 88, 88, 195, 333, 88, 88, 719, 322,
943  322, 332, 784, 783, 87, 88, 87, 88, 88, 88,
944 
945  88, 88, 788, 340, 357, 337, 334, 88, 88, 338,
946  88, 88, 88, 88, 342, 88, 88, 785, 88, 88,
947  88, 87, 339, 87, 88, 88, 88, 791, 88, 345,
948  87, 88, 87, 88, 88, 88, 88, 789, 88, 88,
949  88, 343, 87, 341, 88, 88, 88, 782, 88, 88,
950  88, 348, 88, 88, 88, 88, 88, 88, 88, 88,
951  88, 88, 88, 344, 87, 346, 88, 353, 88, 87,
952  349, 88, 793, 88, 88, 88, 88, 88, 354, 350,
953  88, 88, 794, 351, 88, 88, 87, 88, 802, 88,
954  88, 88, 87, 88, 360, 787, 355, 88, 88, 88,
955 
956  87, 361, 358, 88, 87, 88, 88, 88, 88, 88,
957  88, 88, 88, 88, 88, 88, 87, 359, 88, 798,
958  88, 87, 88, 88, 88, 88, 362, 88, 88, 88,
959  88, 88, 365, 88, 88, 970, 88, 366, 363, 88,
960  88, 88, 795, 88, 364, 87, 88, 367, 87, 370,
961  88, 88, 88, 88, 88, 87, 87, 138, 138, 87,
962  371, 138, 138, 88, 138, 138, 88, 864, 373, 372,
963  138, 87, 374, 87, 138, 142, 142, 138, 903, 803,
964  842, 142, 142, 142, 142, 800, 87, 797, 142, 382,
965  87, 375, 86, 86, 142, 379, 142, 256, 86, 138,
966 
967  138, 139, 139, 385, 86, 86, 138, 138, 386, 138,
968  138, 845, 138, 846, 139, 87, 86, 86, 383, 138,
969  376, 377, 138, 138, 138, 468, 940, 844, 138, 138,
970  138, 138, 387, 378, 86, 86, 138, 87, 86, 381,
971  86, 138, 87, 138, 384, 391, 86, 86, 390, 138,
972  138, 389, 138, 138, 138, 138, 393, 87, 86, 86,
973  138, 138, 138, 138, 138, 138, 398, 138, 138, 138,
974  138, 138, 87, 138, 138, 138, 138, 847, 139, 139,
975  394, 138, 848, 138, 392, 138, 138, 138, 400, 138,
976  138, 139, 396, 395, 138, 138, 401, 851, 138, 138,
977 
978  138, 87, 138, 87, 399, 856, 397, 138, 138, 138,
979  139, 139, 138, 138, 138, 87, 402, 87, 138, 138,
980  406, 138, 87, 139, 403, 407, 138, 138, 138, 404,
981  87, 138, 138, 138, 859, 87, 408, 934, 138, 138,
982  138, 138, 138, 405, 852, 138, 139, 139, 411, 898,
983  409, 138, 941, 412, 138, 138, 138, 87, 415, 139,
984  138, 138, 138, 138, 87, 138, 138, 416, 138, 87,
985  410, 138, 138, 138, 417, 138, 860, 413, 138, 138,
986  138, 138, 138, 849, 138, 138, 138, 138, 138, 139,
987  139, 87, 138, 414, 138, 854, 422, 87, 138, 87,
988 
989  138, 418, 423, 138, 138, 897, 138, 138, 421, 87,
990  424, 87, 419, 138, 138, 87, 138, 87, 420, 138,
991  138, 138, 138, 138, 138, 138, 138, 138, 138, 87,
992  138, 138, 899, 138, 87, 138, 426, 138, 138, 138,
993  138, 87, 425, 138, 905, 431, 428, 427, 432, 138,
994  138, 138, 138, 138, 902, 138, 138, 433, 322, 87,
995  323, 324, 138, 87, 904, 138, 434, 435, 138, 857,
996  88, 88, 436, 322, 437, 323, 324, 88, 88, 87,
997  447, 862, 87, 88, 88, 88, 87, 87, 88, 88,
998  88, 88, 88, 438, 208, 966, 947, 88, 441, 442,
999 
1000  87, 88, 88, 88, 88, 88, 88, 87, 322, 322,
1001  184, 443, 901, 448, 972, 88, 88, 88, 88, 88,
1002  88, 87, 900, 322, 322, 454, 457, 453, 908, 88,
1003  88, 88, 88, 87, 455, 88, 88, 88, 88, 459,
1004  906, 87, 460, 88, 88, 88, 88, 88, 88, 87,
1005  88, 88, 88, 463, 88, 88, 469, 88, 87, 88,
1006  88, 88, 909, 466, 88, 88, 88, 88, 88, 88,
1007  88, 88, 935, 88, 88, 88, 357, 87, 88, 933,
1008  465, 88, 912, 88, 467, 88, 88, 88, 87, 475,
1009  470, 128, 88, 88, 87, 478, 88, 88, 88, 88,
1010 
1011  88, 87, 471, 936, 472, 88, 87, 87, 477, 88,
1012  476, 87, 88, 88, 88, 88, 88, 88, 88, 479,
1013  484, 88, 88, 87, 88, 88, 88, 87, 88, 939,
1014  88, 139, 139, 938, 88, 88, 88, 88, 139, 139,
1015  483, 910, 139, 139, 139, 482, 138, 138, 88, 142,
1016  142, 139, 481, 263, 485, 139, 487, 87, 486, 138,
1017  87, 491, 142, 937, 87, 138, 138, 944, 138, 138,
1018  259, 86, 86, 87, 197, 86, 381, 86, 138, 139,
1019  495, 138, 1044, 86, 86, 493, 139, 494, 87, 193,
1020  194, 496, 139, 138, 138, 86, 86, 86, 86, 139,
1021 
1022  945, 86, 381, 86, 492, 1017, 138, 138, 138, 86,
1023  86, 138, 138, 969, 139, 139, 320, 87, 138, 138,
1024  138, 86, 86, 87, 138, 488, 489, 501, 87, 497,
1025  967, 138, 139, 503, 138, 138, 505, 195, 490, 502,
1026  138, 138, 87, 500, 499, 139, 997, 138, 138, 138,
1027  138, 138, 971, 138, 139, 508, 976, 504, 138, 138,
1028  197, 138, 977, 138, 87, 509, 87, 139, 978, 511,
1029  139, 138, 440, 507, 87, 506, 138, 138, 138, 138,
1030  87, 510, 139, 138, 138, 138, 138, 138, 138, 138,
1031  87, 138, 515, 139, 138, 138, 138, 974, 138, 516,
1032 
1033  138, 975, 513, 138, 138, 139, 968, 138, 973, 138,
1034  138, 138, 138, 139, 139, 87, 138, 139, 139, 138,
1035  138, 512, 138, 514, 138, 87, 139, 138, 138, 1001,
1036  139, 993, 138, 139, 139, 87, 139, 139, 139, 139,
1037  138, 138, 138, 87, 329, 517, 139, 518, 522, 139,
1038  521, 139, 138, 138, 138, 523, 519, 138, 138, 995,
1039  524, 138, 138, 520, 87, 138, 139, 139, 138, 138,
1040  138, 139, 139, 87, 138, 199, 138, 138, 527, 139,
1041  526, 138, 530, 998, 139, 87, 138, 138, 525, 138,
1042  87, 528, 138, 138, 1038, 138, 138, 139, 533, 138,
1043 
1044  138, 138, 138, 138, 87, 138, 138, 138, 138, 996,
1045  139, 138, 138, 138, 1018, 138, 538, 529, 532, 138,
1046  138, 138, 138, 138, 138, 531, 1002, 138, 138, 138,
1047  138, 535, 197, 138, 537, 138, 536, 994, 199, 534,
1048  138, 322, 138, 323, 324, 322, 184, 323, 324, 445,
1049  196, 322, 540, 323, 324, 88, 88, 87, 88, 88,
1050  539, 88, 88, 88, 88, 557, 88, 88, 88, 88,
1051  88, 88, 543, 544, 88, 87, 88, 88, 88, 88,
1052  542, 552, 88, 1003, 87, 545, 88, 88, 138, 555,
1053  88, 322, 322, 128, 547, 322, 322, 553, 243, 88,
1054 
1055  1044, 322, 322, 88, 88, 88, 88, 88, 88, 88,
1056  88, 88, 88, 87, 88, 88, 88, 999, 88, 558,
1057  88, 567, 88, 562, 88, 88, 88, 88, 571, 88,
1058  88, 87, 88, 88, 88, 88, 88, 88, 88, 1019,
1059  88, 88, 88, 563, 564, 88, 87, 88, 566, 88,
1060  88, 88, 570, 88, 88, 88, 88, 88, 87, 577,
1061  139, 139, 88, 88, 378, 87, 572, 88, 1000, 88,
1062  576, 1004, 574, 139, 200, 380, 380, 380, 380, 380,
1063  380, 138, 138, 87, 1020, 139, 139, 486, 380, 580,
1064  380, 581, 380, 87, 138, 579, 139, 139, 139, 584,
1065 
1066  139, 139, 87, 583, 585, 139, 139, 1022, 199, 139,
1067  139, 139, 87, 139, 87, 138, 138, 87, 139, 87,
1068  582, 138, 138, 139, 138, 138, 87, 586, 138, 139,
1069  139, 138, 138, 1037, 138, 87, 1024, 138, 587, 139,
1070  139, 1025, 139, 1021, 138, 197, 592, 1043, 589, 1042,
1071  138, 138, 139, 138, 138, 588, 138, 590, 304, 139,
1072  139, 87, 591, 138, 593, 1061, 138, 138, 138, 139,
1073  139, 1023, 139, 87, 139, 139, 138, 138, 594, 596,
1074  138, 598, 139, 139, 139, 138, 138, 139, 87, 138,
1075  138, 138, 597, 138, 138, 87, 139, 1057, 138, 139,
1076 
1077  139, 139, 602, 138, 138, 138, 138, 138, 138, 595,
1078  138, 138, 139, 599, 139, 1026, 87, 138, 1045, 87,
1079  138, 605, 1046, 138, 1071, 138, 138, 87, 600, 87,
1080  601, 603, 139, 139, 139, 139, 139, 139, 138, 138,
1081  138, 1060, 88, 87, 87, 139, 604, 607, 87, 139,
1082  606, 610, 138, 1058, 608, 138, 138, 138, 138, 139,
1083  139, 139, 139, 87, 613, 612, 138, 138, 138, 1039,
1084  138, 87, 139, 87, 139, 138, 138, 609, 1067, 138,
1085  139, 139, 138, 138, 615, 139, 139, 87, 138, 1059,
1086  87, 138, 138, 139, 611, 138, 620, 616, 139, 87,
1087 
1088  138, 138, 614, 1040, 138, 138, 138, 87, 618, 138,
1089  138, 139, 622, 138, 138, 138, 138, 138, 138, 1080,
1090  617, 619, 138, 322, 139, 323, 324, 138, 621, 138,
1091  88, 88, 88, 88, 88, 88, 633, 88, 88, 1041,
1092  88, 88, 1068, 88, 642, 88, 540, 88, 88, 88,
1093  88, 626, 443, 88, 87, 623, 87, 631, 88, 88,
1094  87, 88, 87, 634, 630, 88, 88, 88, 88, 88,
1095  88, 88, 87, 322, 322, 638, 88, 88, 88, 1099,
1096  88, 1078, 88, 1099, 1070, 643, 88, 88, 645, 88,
1097  88, 88, 88, 88, 1077, 1099, 649, 88, 88, 88,
1098 
1099  380, 380, 87, 88, 490, 88, 1099, 652, 658, 654,
1100  88, 138, 138, 380, 655, 139, 139, 411, 139, 139,
1101  139, 660, 139, 661, 138, 139, 139, 1087, 139, 657,
1102  87, 139, 659, 139, 87, 139, 138, 138, 139, 138,
1103  138, 139, 139, 662, 87, 1099, 1099, 139, 669, 138,
1104  139, 139, 138, 666, 139, 87, 1069, 138, 138, 665,
1105  139, 670, 664, 139, 673, 674, 671, 1099, 663, 1079,
1106  138, 139, 139, 138, 138, 667, 1099, 138, 139, 139,
1107  668, 139, 677, 87, 139, 1089, 138, 672, 139, 139,
1108  1081, 676, 679, 678, 139, 1099, 138, 138, 87, 138,
1109 
1110  138, 139, 138, 138, 139, 139, 138, 138, 1099, 138,
1111  1099, 675, 138, 1099, 87, 138, 87, 139, 1093, 138,
1112  138, 138, 87, 1078, 139, 139, 680, 681, 684, 685,
1113  139, 139, 1099, 138, 686, 139, 139, 139, 139, 139,
1114  1088, 683, 1094, 139, 682, 138, 138, 1087, 139, 139,
1115  139, 687, 1099, 689, 138, 138, 139, 139, 138, 690,
1116  139, 139, 139, 1099, 138, 138, 1099, 138, 1099, 139,
1117  138, 138, 688, 139, 138, 138, 691, 138, 693, 139,
1118  139, 139, 695, 138, 138, 138, 1099, 138, 139, 139,
1119  1099, 692, 139, 1099, 139, 694, 87, 138, 138, 138,
1120 
1121  1099, 139, 1099, 696, 1099, 697, 139, 139, 138, 138,
1122  1099, 138, 88, 88, 88, 88, 699, 88, 88, 139,
1123  698, 138, 1099, 88, 88, 88, 1099, 88, 714, 1099,
1124  88, 1097, 88, 88, 1099, 705, 88, 1099, 88, 88,
1125  700, 88, 88, 88, 88, 88, 88, 88, 1099, 706,
1126  701, 88, 88, 88, 88, 1099, 88, 732, 1099, 88,
1127  710, 88, 88, 734, 1099, 88, 1099, 88, 88, 511,
1128  1099, 720, 729, 1099, 88, 1099, 726, 1099, 1099, 722,
1129  88, 1099, 139, 139, 138, 138, 139, 139, 139, 139,
1130  731, 1099, 736, 1099, 737, 139, 1099, 138, 1099, 139,
1131 
1132  1099, 139, 139, 139, 138, 138, 138, 138, 1099, 1099,
1133  139, 139, 1099, 138, 138, 139, 1099, 138, 738, 138,
1134  139, 139, 735, 139, 741, 739, 138, 742, 138, 138,
1135  1099, 743, 1099, 139, 139, 139, 139, 139, 740, 139,
1136  139, 138, 748, 747, 746, 138, 138, 139, 1099, 139,
1137  1099, 744, 139, 749, 139, 139, 138, 138, 138, 750,
1138  139, 751, 1099, 138, 138, 745, 1099, 139, 1099, 138,
1139  139, 139, 1099, 139, 139, 139, 138, 1099, 139, 754,
1140  752, 138, 138, 139, 139, 757, 1099, 139, 138, 138,
1141  753, 139, 138, 138, 138, 1099, 755, 139, 759, 139,
1142 
1143  139, 138, 139, 760, 1099, 138, 139, 139, 761, 139,
1144  139, 1099, 139, 1099, 756, 139, 138, 138, 1099, 139,
1145  139, 139, 139, 1099, 1099, 762, 764, 139, 139, 138,
1146  758, 139, 139, 139, 138, 138, 765, 139, 139, 1099,
1147  139, 138, 138, 1099, 139, 139, 139, 138, 1099, 763,
1148  139, 1099, 766, 1099, 138, 770, 768, 1099, 139, 1099,
1149  138, 138, 139, 139, 139, 139, 773, 769, 1099, 772,
1150  138, 138, 767, 138, 775, 139, 1099, 774, 138, 138,
1151  88, 88, 1099, 138, 88, 88, 88, 88, 88, 88,
1152  1099, 138, 1099, 88, 1099, 88, 88, 88, 771, 88,
1153 
1154  1099, 88, 88, 88, 88, 88, 1099, 776, 88, 243,
1155  88, 88, 88, 88, 1099, 88, 1099, 88, 139, 139,
1156  1099, 411, 778, 88, 1099, 88, 1099, 790, 1099, 792,
1157  1099, 139, 1099, 799, 1099, 1099, 796, 1099, 1099, 801,
1158  86, 86, 86, 1099, 804, 87, 86, 86, 86, 86,
1159  86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
1160  86, 86, 86, 86, 86, 86, 86, 804, 804, 804,
1161  804, 804, 804, 804, 804, 804, 804, 804, 804, 804,
1162  804, 804, 804, 804, 804, 804, 804, 804, 804, 804,
1163  804, 804, 804, 138, 138, 139, 139, 1099, 412, 139,
1164 
1165  139, 138, 138, 138, 138, 1099, 138, 1099, 139, 139,
1166  139, 1099, 139, 1099, 138, 1099, 138, 1099, 806, 1099,
1167  805, 1099, 139, 1099, 304, 139, 139, 1099, 808, 139,
1168  139, 138, 138, 138, 138, 1099, 810, 809, 139, 139,
1169  139, 807, 139, 1099, 138, 1099, 138, 139, 139, 1099,
1170  812, 1099, 139, 139, 139, 1099, 813, 814, 139, 139,
1171  139, 1099, 139, 139, 139, 139, 139, 139, 139, 1099,
1172  818, 139, 815, 817, 811, 139, 1099, 139, 1099, 816,
1173  139, 819, 139, 139, 139, 139, 139, 139, 138, 138,
1174  139, 139, 138, 138, 1099, 139, 1099, 139, 1099, 139,
1175 
1176  822, 138, 820, 139, 1099, 138, 1099, 1099, 139, 139,
1177  1099, 139, 139, 139, 139, 1099, 1099, 1099, 1099, 823,
1178  821, 139, 825, 1099, 139, 1099, 139, 824, 826, 139,
1179  139, 1099, 827, 138, 138, 139, 139, 139, 139, 139,
1180  139, 1099, 139, 1099, 830, 1099, 138, 1099, 139, 1099,
1181  139, 1099, 139, 1099, 829, 831, 138, 138, 139, 139,
1182  138, 138, 1099, 139, 139, 828, 835, 1099, 833, 138,
1183  1099, 139, 1099, 138, 138, 138, 139, 139, 838, 832,
1184  139, 139, 1099, 834, 139, 839, 1099, 138, 1099, 1099,
1185  139, 843, 1099, 139, 1099, 88, 88, 139, 1099, 1099,
1186 
1187  1099, 836, 1099, 1099, 837, 86, 86, 139, 88, 840,
1188  256, 86, 139, 139, 139, 139, 139, 86, 86, 139,
1189  139, 139, 139, 139, 139, 139, 139, 139, 139, 86,
1190  86, 139, 840, 840, 840, 840, 840, 840, 840, 840,
1191  840, 840, 840, 840, 840, 840, 840, 840, 840, 840,
1192  840, 840, 840, 840, 840, 840, 840, 840, 88, 88,
1193  853, 88, 88, 1099, 88, 88, 88, 88, 88, 88,
1194  1099, 88, 88, 88, 88, 138, 138, 88, 1099, 88,
1195  1099, 88, 139, 867, 1099, 88, 139, 139, 138, 139,
1196  139, 841, 868, 1099, 855, 139, 138, 138, 1099, 139,
1197 
1198  139, 139, 139, 858, 869, 861, 870, 1099, 866, 138,
1199  138, 138, 863, 139, 139, 139, 1099, 871, 1099, 139,
1200  139, 139, 139, 138, 875, 139, 139, 139, 1099, 139,
1201  139, 873, 139, 1099, 139, 876, 874, 1099, 139, 139,
1202  139, 1099, 139, 1099, 872, 1099, 877, 139, 139, 139,
1203  139, 880, 139, 139, 139, 138, 138, 1099, 139, 139,
1204  139, 881, 139, 1099, 878, 1099, 139, 879, 138, 138,
1205  138, 139, 1099, 139, 139, 139, 139, 139, 139, 139,
1206  139, 1099, 138, 883, 138, 138, 139, 1099, 139, 1099,
1207  139, 1099, 139, 139, 139, 1099, 884, 138, 139, 139,
1208 
1209  139, 139, 882, 886, 138, 138, 139, 888, 1099, 139,
1210  139, 139, 1099, 139, 1099, 1099, 887, 138, 138, 138,
1211  1099, 885, 139, 139, 139, 138, 138, 889, 1099, 139,
1212  139, 138, 893, 139, 139, 1099, 139, 1099, 138, 1099,
1213  891, 1099, 139, 1099, 139, 139, 139, 88, 88, 88,
1214  88, 88, 88, 895, 1099, 890, 894, 139, 88, 88,
1215  88, 1099, 88, 1099, 88, 892, 1099, 88, 88, 138,
1216  138, 88, 1099, 139, 139, 139, 139, 1099, 1099, 896,
1217  88, 907, 138, 139, 139, 1099, 139, 915, 139, 1099,
1218  911, 914, 139, 139, 139, 139, 139, 1099, 1099, 138,
1219 
1220  138, 913, 139, 139, 1099, 139, 1099, 139, 139, 139,
1221  916, 917, 138, 139, 139, 139, 919, 139, 139, 139,
1222  139, 139, 918, 1099, 920, 1099, 139, 139, 139, 1099,
1223  139, 1099, 139, 1099, 921, 139, 139, 139, 139, 1099,
1224  139, 923, 922, 139, 139, 138, 138, 1099, 139, 1099,
1225  139, 139, 139, 139, 139, 1099, 139, 1099, 138, 1099,
1226  924, 138, 138, 1099, 139, 1099, 139, 139, 139, 926,
1227  139, 139, 1099, 1099, 138, 139, 139, 925, 139, 139,
1228  139, 138, 138, 139, 1099, 927, 139, 139, 139, 138,
1229  138, 139, 1099, 928, 138, 929, 139, 139, 1099, 139,
1230 
1231  139, 931, 138, 139, 139, 1099, 932, 88, 88, 139,
1232  88, 88, 930, 139, 946, 1099, 139, 948, 88, 88,
1233  88, 138, 138, 88, 1099, 139, 139, 950, 139, 139,
1234  1099, 88, 949, 1099, 138, 139, 139, 1099, 139, 139,
1235  139, 139, 952, 1099, 943, 138, 138, 1099, 139, 139,
1236  139, 951, 139, 1099, 139, 139, 958, 954, 138, 139,
1237  139, 1099, 139, 139, 139, 1099, 953, 139, 957, 139,
1238  139, 1099, 139, 138, 138, 1099, 956, 955, 139, 139,
1239  139, 139, 139, 139, 139, 1099, 138, 1099, 1099, 139,
1240  139, 139, 962, 139, 1099, 960, 139, 1099, 139, 139,
1241 
1242  961, 963, 139, 139, 139, 138, 138, 88, 88, 979,
1243  959, 139, 1099, 964, 139, 139, 139, 1099, 138, 1099,
1244  88, 139, 139, 139, 139, 139, 139, 139, 139, 139,
1245  139, 139, 1099, 1099, 980, 1099, 139, 1099, 139, 139,
1246  139, 139, 981, 139, 982, 983, 139, 985, 139, 139,
1247  1099, 984, 139, 139, 139, 138, 138, 139, 139, 139,
1248  986, 139, 1099, 988, 139, 1099, 139, 989, 138, 1099,
1249  139, 1099, 987, 139, 139, 1099, 139, 139, 139, 139,
1250  139, 139, 139, 1099, 992, 1099, 139, 1099, 1099, 990,
1251  139, 1005, 139, 1099, 139, 991, 139, 139, 139, 139,
1252 
1253  139, 139, 139, 1007, 139, 139, 139, 1008, 412, 139,
1254  1006, 139, 1099, 139, 1099, 139, 1099, 139, 1099, 139,
1255  139, 139, 139, 139, 139, 139, 1009, 1012, 139, 139,
1256  139, 139, 1099, 139, 1011, 139, 1099, 139, 1099, 1010,
1257  515, 139, 1099, 139, 139, 139, 1013, 139, 139, 1099,
1258  1015, 139, 139, 139, 139, 1099, 1099, 1014, 139, 139,
1259  139, 139, 139, 1099, 139, 1099, 139, 1099, 1016, 139,
1260  139, 139, 1029, 1099, 139, 1099, 1027, 139, 139, 1028,
1261  1030, 1036, 139, 139, 139, 139, 139, 139, 1032, 1099,
1262  139, 139, 139, 1034, 139, 139, 139, 1099, 139, 1099,
1263 
1264  139, 1099, 1099, 1031, 1033, 139, 139, 139, 1035, 139,
1265  139, 139, 139, 139, 139, 1099, 139, 139, 139, 1099,
1266  1048, 1099, 139, 1099, 139, 1099, 139, 1099, 1047, 139,
1267  139, 139, 1099, 1049, 1099, 139, 139, 139, 139, 1099,
1268  1099, 139, 139, 139, 1099, 1099, 1052, 1050, 139, 1099,
1269  139, 1099, 1051, 1053, 139, 139, 139, 1054, 139, 139,
1270  1054, 1055, 139, 139, 139, 1056, 139, 139, 139, 139,
1271  139, 139, 139, 139, 139, 1099, 139, 139, 139, 1062,
1272  139, 139, 139, 1063, 1099, 139, 139, 139, 139, 139,
1273  139, 1099, 1099, 139, 1065, 139, 139, 139, 139, 139,
1274 
1275  1099, 139, 139, 139, 1064, 139, 139, 1099, 139, 1099,
1276  139, 139, 1075, 1066, 1072, 139, 1099, 1073, 139, 139,
1277  139, 1099, 1074, 1099, 139, 139, 139, 139, 139, 139,
1278  139, 1083, 139, 139, 139, 1099, 1099, 1099, 1076, 1099,
1279  139, 1099, 139, 1099, 1082, 1084, 139, 139, 139, 139,
1280  139, 139, 139, 139, 139, 1099, 1085, 139, 139, 1090,
1281  139, 1086, 139, 1099, 139, 1099, 139, 1099, 139, 139,
1282  139, 1091, 139, 139, 139, 139, 139, 139, 1099, 139,
1283  139, 139, 1096, 1099, 1099, 139, 1099, 139, 1095, 139,
1284  1092, 1099, 139, 139, 139, 1083, 139, 139, 139, 139,
1285 
1286  1090, 1099, 1099, 1099, 1099, 1099, 139, 1099, 1098, 139,
1287  1099, 139, 45, 45, 45, 45, 45, 78, 78, 78,
1288  78, 78, 46, 46, 46, 46, 46, 86, 1099, 86,
1289  86, 88, 1099, 88, 88, 138, 1099, 138, 138, 142,
1290  1099, 142, 142, 192, 1099, 192, 192, 192, 196, 1099,
1291  196, 196, 198, 198, 198, 198, 198, 139, 1099, 139,
1292  139, 321, 321, 321, 321, 321, 328, 1099, 1099, 328,
1293  380, 1099, 380, 380, 322, 322, 322, 322, 322, 444,
1294  1099, 444, 444, 541, 1099, 1099, 541, 11, 1099, 1099,
1295  1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099,
1296 
1297  1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099,
1298  1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099,
1299  1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099,
1300  1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099,
1301  1099, 1099, 1099
1302  } ;
1303 
1305  { 0,
1306  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1307  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1308  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1309  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1310  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1311  1, 1, 1, 1, 1, 3, 7, 1114, 24, 7,
1312  3, 3, 3, 3, 3, 3, 8, 58, 9, 8,
1313  9, 24, 9, 9, 9, 9, 1110, 10, 38, 10,
1314  58, 10, 10, 10, 10, 48, 48, 48, 48, 18,
1315  9, 18, 18, 18, 18, 38, 26, 26, 3, 10,
1316 
1317  110, 115, 150, 3, 3, 4, 7, 7, 447, 26,
1318  4, 4, 4, 4, 4, 4, 8, 8, 19, 26,
1319  19, 19, 19, 19, 32, 32, 447, 61, 48, 49,
1320  49, 49, 49, 51, 18, 150, 546, 32, 51, 51,
1321  1087, 110, 115, 32, 84, 84, 84, 84, 4, 61,
1322  246, 246, 546, 4, 4, 5, 5, 5, 5, 5,
1323  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1324  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1325  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1326  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1327 
1328  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1329  14, 14, 34, 34, 14, 14, 14, 78, 78, 31,
1330  31, 14, 14, 14, 1078, 34, 129, 192, 192, 73,
1331  129, 129, 31, 73, 14, 14, 22, 22, 27, 27,
1332  22, 22, 22, 28, 28, 34, 73, 22, 22, 22,
1333  31, 27, 137, 22, 22, 22, 28, 137, 137, 27,
1334  22, 22, 185, 22, 450, 78, 185, 185, 27, 331,
1335  22, 203, 224, 22, 229, 192, 268, 28, 22, 28,
1336  1077, 28, 28, 22, 25, 25, 450, 29, 29, 309,
1337  309, 37, 37, 25, 25, 25, 331, 25, 62, 62,
1338 
1339  29, 66, 66, 25, 37, 224, 29, 229, 203, 268,
1340  25, 62, 30, 25, 66, 347, 30, 30, 25, 62,
1341  29, 29, 33, 25, 29, 37, 33, 33, 62, 30,
1342  29, 30, 66, 35, 35, 342, 36, 36, 347, 33,
1343  369, 33, 324, 324, 60, 60, 35, 247, 33, 36,
1344  325, 212, 35, 42, 42, 30, 35, 60, 33, 342,
1345  35, 1044, 40, 40, 369, 1041, 42, 60, 1040, 36,
1346  39, 39, 39, 39, 247, 40, 212, 39, 39, 39,
1347  39, 212, 352, 388, 39, 41, 41, 325, 247, 42,
1348  39, 39, 39, 39, 39, 39, 40, 233, 41, 462,
1349 
1350  40, 63, 63, 388, 41, 352, 319, 319, 69, 69,
1351  135, 135, 135, 135, 63, 70, 70, 1039, 41, 52,
1352  52, 69, 233, 52, 52, 52, 340, 233, 70, 462,
1353  52, 52, 52, 449, 70, 63, 561, 63, 70, 63,
1354  63, 69, 70, 52, 52, 55, 55, 55, 65, 55,
1355  55, 55, 65, 65, 319, 636, 55, 55, 55, 451,
1356  64, 64, 340, 87, 561, 65, 452, 65, 1037, 55,
1357  55, 56, 56, 64, 449, 56, 56, 56, 335, 64,
1358  310, 451, 56, 56, 56, 636, 87, 87, 56, 56,
1359  56, 65, 345, 64, 64, 56, 56, 64, 56, 87,
1360 
1361  335, 360, 335, 64, 446, 56, 452, 310, 56, 72,
1362  72, 444, 444, 56, 67, 67, 345, 458, 56, 59,
1363  59, 310, 72, 71, 71, 709, 345, 67, 59, 59,
1364  59, 446, 59, 67, 360, 68, 71, 461, 59, 68,
1365  68, 360, 71, 72, 715, 59, 88, 88, 59, 72,
1366  67, 478, 68, 59, 68, 709, 71, 456, 59, 88,
1367  474, 68, 567, 458, 75, 75, 83, 83, 83, 83,
1368  461, 68, 74, 74, 74, 74, 715, 75, 478, 74,
1369  74, 74, 74, 461, 318, 318, 74, 76, 76, 567,
1370  77, 77, 74, 74, 74, 74, 74, 74, 75, 456,
1371 
1372  76, 474, 75, 77, 89, 89, 76, 627, 90, 83,
1373  90, 90, 90, 90, 76, 93, 93, 89, 94, 94,
1374  76, 318, 96, 96, 89, 89, 77, 469, 93, 95,
1375  484, 94, 318, 95, 95, 96, 627, 89, 91, 998,
1376  91, 91, 91, 91, 97, 97, 95, 91, 91, 91,
1377  91, 469, 97, 93, 484, 94, 549, 97, 98, 98,
1378  91, 91, 91, 91, 91, 91, 99, 99, 100, 100,
1379  578, 98, 101, 101, 473, 102, 102, 103, 103, 99,
1380  549, 100, 98, 544, 544, 101, 480, 99, 102, 336,
1381  103, 104, 104, 101, 102, 100, 101, 103, 559, 105,
1382 
1383  105, 106, 106, 578, 104, 107, 107, 628, 108, 108,
1384  473, 101, 105, 336, 106, 785, 109, 109, 107, 569,
1385  105, 108, 111, 111, 336, 112, 112, 548, 104, 109,
1386  113, 113, 480, 106, 559, 111, 628, 109, 112, 114,
1387  114, 116, 116, 113, 107, 117, 117, 118, 118, 548,
1388  320, 320, 114, 550, 116, 569, 112, 119, 117, 785,
1389  118, 119, 119, 120, 120, 551, 121, 121, 571, 113,
1390  543, 543, 122, 122, 119, 117, 120, 550, 114, 121,
1391  123, 123, 120, 119, 118, 122, 124, 124, 119, 125,
1392  125, 126, 126, 123, 121, 571, 127, 127, 320, 124,
1393 
1394  130, 130, 125, 122, 126, 123, 551, 543, 124, 127,
1395  545, 545, 123, 130, 131, 131, 126, 123, 556, 127,
1396  554, 132, 132, 130, 134, 134, 125, 131, 133, 133,
1397  138, 138, 969, 131, 132, 142, 142, 134, 651, 140,
1398  140, 133, 556, 138, 139, 139, 945, 131, 142, 139,
1399  139, 134, 140, 144, 144, 625, 139, 139, 132, 140,
1400  140, 554, 133, 145, 145, 625, 144, 629, 139, 139,
1401  147, 147, 140, 141, 141, 141, 145, 141, 141, 141,
1402  651, 148, 148, 147, 141, 141, 141, 560, 146, 148,
1403  944, 144, 146, 146, 148, 149, 149, 141, 141, 575,
1404 
1405  145, 141, 141, 151, 151, 146, 629, 568, 149, 152,
1406  152, 560, 154, 154, 141, 573, 151, 153, 153, 149,
1407  155, 155, 152, 575, 151, 154, 156, 156, 565, 568,
1408  153, 154, 646, 155, 157, 157, 152, 573, 153, 156,
1409  155, 153, 639, 937, 158, 158, 910, 157, 159, 159,
1410  906, 906, 160, 160, 646, 157, 153, 158, 161, 161,
1411  865, 159, 632, 156, 157, 160, 639, 163, 163, 165,
1412  165, 161, 164, 164, 565, 557, 158, 166, 166, 161,
1413  163, 633, 165, 167, 167, 164, 635, 159, 162, 162,
1414  166, 169, 169, 162, 162, 637, 167, 170, 170, 632,
1415 
1416  162, 162, 644, 164, 169, 640, 167, 650, 165, 557,
1417  170, 633, 162, 162, 557, 633, 166, 171, 171, 635,
1418  172, 637, 624, 624, 172, 172, 644, 170, 862, 650,
1419  171, 173, 173, 647, 162, 168, 168, 172, 640, 932,
1420  168, 168, 653, 171, 173, 704, 172, 168, 168, 624,
1421  173, 172, 174, 174, 171, 175, 175, 932, 647, 168,
1422  168, 177, 177, 176, 176, 174, 641, 178, 175, 179,
1423  179, 178, 178, 707, 177, 653, 176, 857, 180, 180,
1424  174, 168, 179, 656, 178, 648, 175, 704, 176, 181,
1425  181, 180, 177, 178, 174, 176, 182, 182, 183, 183,
1426 
1427  176, 180, 181, 186, 186, 641, 179, 188, 188, 182,
1428  197, 183, 187, 187, 181, 707, 186, 189, 189, 656,
1429  188, 183, 190, 190, 648, 187, 186, 191, 191, 702,
1430  189, 187, 182, 197, 197, 190, 193, 193, 708, 194,
1431  191, 194, 194, 803, 188, 187, 197, 642, 189, 201,
1432  201, 201, 201, 712, 191, 702, 190, 206, 206, 193,
1433  193, 207, 207, 208, 208, 713, 210, 210, 211, 211,
1434  206, 642, 193, 708, 207, 803, 208, 714, 703, 210,
1435  717, 211, 213, 213, 193, 210, 214, 214, 642, 194,
1436  194, 206, 713, 712, 721, 213, 718, 215, 215, 214,
1437 
1438  216, 216, 717, 217, 703, 213, 211, 217, 217, 214,
1439  215, 218, 218, 216, 219, 220, 220, 714, 219, 219,
1440  217, 711, 215, 851, 218, 221, 221, 721, 220, 222,
1441  723, 219, 847, 222, 222, 223, 223, 718, 221, 226,
1442  226, 220, 724, 218, 225, 225, 222, 711, 223, 227,
1443  227, 225, 226, 228, 228, 231, 231, 225, 232, 232,
1444  230, 230, 227, 221, 732, 223, 228, 230, 231, 716,
1445  226, 232, 723, 230, 234, 234, 235, 235, 231, 227,
1446  236, 236, 724, 228, 237, 237, 728, 234, 732, 235,
1447  239, 239, 844, 236, 238, 716, 232, 237, 238, 238,
1448 
1449  938, 238, 236, 239, 794, 240, 240, 241, 241, 242,
1450  242, 238, 243, 243, 244, 244, 725, 237, 240, 728,
1451  241, 802, 242, 245, 245, 243, 239, 244, 248, 248,
1452  249, 249, 242, 250, 250, 938, 245, 244, 240, 251,
1453  251, 248, 725, 249, 241, 727, 250, 245, 850, 248,
1454  252, 252, 251, 253, 253, 733, 777, 258, 258, 730,
1455  249, 257, 257, 252, 259, 259, 253, 802, 251, 250,
1456  258, 780, 252, 781, 257, 261, 261, 259, 850, 733,
1457  777, 262, 262, 263, 263, 730, 779, 727, 261, 261,
1458  904, 253, 256, 256, 262, 257, 263, 256, 256, 264,
1459 
1460  264, 266, 266, 266, 256, 256, 265, 265, 266, 267,
1461  267, 780, 264, 781, 266, 993, 256, 256, 264, 265,
1462  256, 256, 267, 270, 270, 993, 904, 779, 269, 269,
1463  271, 271, 267, 256, 260, 260, 270, 782, 260, 260,
1464  260, 269, 783, 271, 265, 272, 260, 260, 270, 272,
1465  272, 269, 273, 273, 275, 275, 274, 787, 260, 260,
1466  274, 274, 272, 276, 276, 273, 278, 275, 277, 277,
1467  278, 278, 793, 274, 279, 279, 276, 782, 280, 280,
1468  275, 277, 783, 278, 273, 282, 282, 279, 280, 281,
1469  281, 280, 277, 276, 283, 283, 281, 787, 282, 284,
1470 
1471  284, 797, 281, 788, 279, 793, 277, 283, 285, 285,
1472  286, 286, 284, 288, 288, 898, 282, 789, 287, 287,
1473  286, 285, 843, 286, 283, 287, 288, 289, 289, 284,
1474  905, 287, 290, 290, 797, 798, 288, 898, 292, 292,
1475  289, 293, 293, 285, 788, 290, 291, 291, 291, 843,
1476  289, 292, 905, 291, 293, 294, 294, 784, 296, 291,
1477  295, 295, 296, 296, 842, 298, 298, 297, 294, 791,
1478  290, 297, 297, 295, 297, 296, 798, 294, 298, 299,
1479  299, 300, 300, 784, 297, 301, 301, 303, 303, 302,
1480  302, 845, 299, 295, 300, 791, 302, 786, 301, 719,
1481 
1482  303, 298, 302, 304, 304, 842, 305, 305, 301, 498,
1483  303, 468, 299, 306, 306, 849, 304, 853, 300, 305,
1484  307, 307, 308, 308, 311, 311, 306, 312, 312, 795,
1485  313, 313, 845, 307, 852, 308, 306, 311, 314, 314,
1486  312, 800, 305, 313, 853, 311, 308, 307, 312, 315,
1487  315, 314, 316, 316, 849, 317, 317, 312, 321, 933,
1488  321, 321, 315, 912, 852, 316, 313, 314, 317, 795,
1489  332, 332, 315, 323, 316, 323, 323, 334, 334, 940,
1490  333, 800, 846, 332, 333, 333, 848, 856, 338, 338,
1491  334, 337, 337, 317, 332, 933, 912, 333, 323, 323,
1492 
1493  854, 338, 339, 339, 337, 341, 341, 464, 321, 321,
1494  429, 323, 848, 334, 940, 339, 343, 343, 341, 344,
1495  344, 859, 846, 323, 323, 338, 341, 337, 856, 343,
1496  346, 346, 344, 899, 339, 348, 348, 349, 349, 343,
1497  854, 966, 344, 346, 350, 350, 351, 351, 348, 897,
1498  349, 353, 353, 346, 355, 355, 354, 350, 864, 351,
1499  354, 354, 859, 350, 353, 358, 358, 355, 359, 359,
1500  362, 362, 899, 354, 363, 363, 966, 900, 358, 897,
1501  349, 359, 864, 362, 351, 364, 364, 363, 903, 362,
1502  355, 368, 365, 365, 361, 366, 367, 367, 364, 366,
1503 
1504  366, 860, 358, 900, 359, 365, 357, 902, 364, 367,
1505  363, 356, 366, 370, 370, 371, 371, 372, 372, 367,
1506  373, 374, 374, 901, 373, 373, 370, 908, 371, 903,
1507  372, 377, 377, 902, 374, 375, 375, 373, 378, 378,
1508  372, 860, 376, 376, 377, 371, 379, 379, 375, 382,
1509  382, 378, 370, 382, 374, 376, 376, 1024, 375, 379,
1510  909, 383, 382, 901, 994, 383, 383, 908, 384, 384,
1511  379, 380, 380, 936, 327, 380, 380, 380, 383, 386,
1512  386, 384, 1024, 380, 380, 385, 385, 385, 934, 439,
1513  439, 386, 386, 387, 387, 380, 380, 381, 381, 385,
1514 
1515  909, 381, 381, 381, 384, 994, 387, 389, 389, 381,
1516  381, 390, 390, 936, 391, 391, 439, 971, 392, 392,
1517  389, 381, 381, 946, 390, 381, 381, 391, 939, 387,
1518  934, 392, 393, 393, 394, 394, 395, 439, 381, 392,
1519  395, 395, 947, 390, 389, 393, 971, 394, 396, 396,
1520  397, 397, 939, 395, 398, 398, 946, 394, 399, 399,
1521  326, 396, 946, 397, 935, 398, 941, 398, 947, 400,
1522  400, 399, 322, 397, 942, 396, 401, 401, 402, 402,
1523  205, 399, 400, 403, 403, 404, 404, 405, 405, 401,
1524  975, 402, 406, 406, 407, 407, 403, 942, 404, 408,
1525 
1526  405, 942, 403, 408, 408, 406, 935, 407, 941, 409,
1527  409, 410, 410, 411, 411, 965, 408, 412, 412, 413,
1528  413, 402, 409, 404, 410, 204, 411, 414, 414, 975,
1529  412, 965, 413, 415, 415, 968, 417, 417, 416, 416,
1530  414, 418, 418, 972, 200, 409, 415, 410, 416, 417,
1531  415, 416, 419, 419, 418, 416, 413, 420, 420, 968,
1532  418, 421, 421, 414, 1018, 419, 422, 422, 424, 424,
1533  420, 423, 423, 995, 421, 198, 425, 425, 422, 422,
1534  420, 424, 426, 972, 423, 970, 426, 426, 419, 425,
1535  976, 423, 427, 427, 1018, 428, 428, 430, 430, 426,
1536 
1537  431, 431, 432, 432, 967, 427, 433, 433, 428, 970,
1538  430, 434, 434, 431, 995, 432, 435, 425, 428, 433,
1539  435, 435, 436, 436, 434, 427, 976, 437, 437, 438,
1540  438, 432, 196, 435, 434, 436, 433, 967, 195, 431,
1541  437, 441, 438, 441, 441, 442, 184, 442, 442, 445,
1542  445, 443, 438, 443, 443, 448, 448, 977, 453, 453,
1543  437, 454, 454, 457, 457, 459, 455, 455, 448, 459,
1544  459, 453, 445, 445, 454, 1025, 457, 460, 460, 455,
1545  441, 453, 459, 977, 973, 445, 463, 463, 143, 457,
1546  460, 441, 441, 128, 448, 442, 442, 455, 454, 463,
1547 
1548  1025, 443, 443, 465, 465, 466, 466, 467, 467, 470,
1549  470, 471, 471, 996, 475, 475, 465, 973, 466, 460,
1550  467, 472, 470, 463, 471, 472, 472, 475, 476, 477,
1551  477, 978, 476, 476, 479, 479, 482, 482, 472, 996,
1552  481, 481, 477, 466, 467, 476, 974, 479, 470, 482,
1553  483, 483, 475, 481, 485, 485, 486, 486, 997, 482,
1554  487, 487, 92, 483, 487, 86, 477, 485, 974, 486,
1555  481, 978, 479, 487, 82, 488, 488, 489, 489, 490,
1556  490, 492, 492, 1000, 997, 493, 493, 483, 488, 488,
1557  489, 491, 490, 1017, 492, 485, 491, 491, 493, 494,
1558 
1559  494, 494, 999, 493, 495, 495, 495, 1000, 80, 491,
1560  496, 496, 1023, 494, 1002, 497, 497, 1022, 495, 1003,
1561  492, 499, 499, 496, 500, 500, 1046, 496, 497, 501,
1562  501, 502, 502, 1017, 499, 1001, 1002, 500, 497, 503,
1563  503, 1003, 501, 999, 502, 79, 504, 1023, 501, 1022,
1564  504, 504, 503, 506, 506, 500, 57, 502, 499, 505,
1565  505, 1038, 503, 504, 505, 1046, 506, 507, 507, 508,
1566  508, 1001, 505, 54, 509, 509, 510, 510, 506, 508,
1567  507, 509, 508, 511, 511, 512, 512, 509, 1061, 510,
1568  513, 513, 508, 514, 514, 1026, 511, 1038, 512, 515,
1569 
1570  515, 516, 516, 513, 517, 517, 514, 518, 518, 507,
1571  519, 519, 515, 510, 516, 1004, 1004, 517, 1026, 1045,
1572  518, 520, 1026, 519, 1061, 520, 520, 1042, 513, 1019,
1573  514, 517, 521, 521, 522, 522, 523, 523, 520, 524,
1574  524, 1045, 23, 1057, 21, 521, 518, 522, 1043, 523,
1575  521, 525, 524, 1042, 523, 525, 525, 526, 526, 527,
1576  527, 528, 528, 1020, 528, 527, 529, 529, 525, 1019,
1577  526, 20, 527, 17, 528, 531, 531, 524, 1057, 529,
1578  530, 530, 532, 532, 530, 533, 533, 1070, 531, 1043,
1579  16, 534, 534, 530, 526, 532, 535, 531, 533, 1021,
1580 
1581  535, 535, 529, 1020, 534, 536, 536, 1058, 533, 537,
1582  537, 538, 538, 535, 539, 539, 540, 540, 536, 1070,
1583  532, 534, 537, 542, 538, 542, 542, 539, 536, 540,
1584  547, 547, 552, 552, 553, 553, 555, 558, 558, 1021,
1585  555, 555, 1058, 547, 562, 552, 537, 553, 562, 562,
1586  558, 547, 542, 555, 1067, 539, 1068, 553, 563, 563,
1587  1060, 562, 13, 555, 552, 564, 564, 566, 566, 570,
1588  570, 563, 12, 542, 542, 558, 572, 572, 564, 11,
1589  566, 1068, 570, 0, 1060, 563, 574, 574, 566, 572,
1590  576, 576, 577, 577, 1067, 0, 570, 579, 579, 574,
1591 
1592  580, 580, 1079, 576, 580, 577, 0, 574, 581, 576,
1593  579, 582, 582, 580, 577, 581, 581, 583, 583, 583,
1594  584, 584, 585, 585, 582, 586, 586, 1079, 581, 579,
1595  1059, 583, 582, 584, 1069, 585, 587, 587, 586, 588,
1596  588, 589, 589, 586, 1081, 0, 0, 591, 591, 587,
1597  592, 592, 588, 590, 589, 1071, 1059, 590, 590, 589,
1598  591, 592, 588, 592, 594, 594, 592, 0, 587, 1069,
1599  590, 593, 593, 595, 595, 590, 0, 594, 596, 596,
1600  590, 597, 597, 1088, 593, 1081, 595, 593, 598, 598,
1601  1071, 596, 599, 598, 597, 0, 599, 599, 1093, 600,
1602 
1603  600, 598, 601, 601, 602, 602, 603, 603, 0, 599,
1604  0, 595, 600, 0, 1080, 601, 1089, 602, 1088, 603,
1605  604, 604, 1097, 1093, 605, 605, 600, 602, 605, 606,
1606  606, 606, 0, 604, 607, 607, 607, 605, 608, 608,
1607  1080, 604, 1089, 606, 603, 609, 609, 1097, 607, 610,
1608  610, 608, 0, 610, 611, 611, 612, 612, 609, 612,
1609  613, 613, 610, 0, 614, 614, 0, 611, 0, 612,
1610  616, 616, 609, 613, 617, 617, 613, 614, 615, 615,
1611  615, 618, 618, 616, 619, 619, 0, 617, 620, 620,
1612  0, 614, 615, 0, 618, 617, 1094, 619, 621, 621,
1613 
1614  0, 620, 0, 619, 0, 620, 622, 622, 623, 623,
1615  0, 621, 626, 626, 630, 630, 622, 631, 631, 622,
1616  621, 623, 0, 634, 634, 626, 0, 630, 638, 0,
1617  631, 1094, 638, 638, 0, 630, 634, 0, 643, 643,
1618  623, 645, 645, 649, 649, 638, 652, 652, 0, 631,
1619  626, 643, 654, 654, 645, 0, 649, 655, 0, 652,
1620  634, 655, 655, 657, 0, 654, 0, 657, 657, 658,
1621  0, 643, 652, 0, 655, 0, 649, 0, 0, 645,
1622  657, 0, 658, 658, 659, 659, 660, 660, 661, 661,
1623  654, 0, 660, 0, 661, 658, 0, 659, 0, 660,
1624 
1625  0, 661, 662, 662, 663, 663, 664, 664, 0, 0,
1626  665, 665, 0, 667, 667, 662, 0, 663, 662, 664,
1627  666, 666, 659, 665, 665, 663, 667, 666, 668, 668,
1628  0, 666, 0, 666, 669, 669, 670, 670, 664, 671,
1629  671, 668, 671, 670, 669, 673, 673, 669, 0, 670,
1630  0, 667, 671, 672, 672, 672, 674, 674, 673, 675,
1631  676, 676, 0, 675, 675, 668, 0, 672, 0, 674,
1632  677, 677, 0, 676, 678, 678, 675, 0, 679, 679,
1633  677, 680, 680, 677, 681, 681, 0, 678, 682, 682,
1634  678, 679, 683, 683, 680, 0, 679, 681, 684, 684,
1635 
1636  684, 682, 685, 685, 0, 683, 686, 686, 686, 687,
1637  687, 0, 684, 0, 680, 685, 688, 688, 0, 686,
1638  690, 690, 687, 0, 0, 687, 689, 689, 689, 688,
1639  683, 691, 691, 690, 692, 692, 690, 693, 693, 0,
1640  689, 694, 694, 0, 691, 695, 695, 692, 0, 688,
1641  693, 0, 691, 0, 694, 695, 693, 0, 695, 0,
1642  696, 696, 697, 697, 699, 699, 698, 694, 0, 697,
1643  698, 698, 692, 696, 700, 697, 0, 699, 700, 700,
1644  701, 701, 0, 698, 706, 706, 705, 705, 710, 710,
1645  0, 700, 0, 701, 0, 720, 720, 706, 696, 705,
1646 
1647  0, 710, 722, 722, 726, 726, 0, 701, 720, 705,
1648  729, 729, 731, 731, 0, 722, 0, 726, 736, 736,
1649  0, 736, 706, 729, 0, 731, 0, 720, 0, 722,
1650  0, 736, 0, 729, 0, 0, 726, 0, 0, 731,
1651  734, 734, 734, 0, 734, 734, 734, 734, 734, 734,
1652  734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
1653  734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
1654  734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
1655  734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
1656  734, 734, 734, 735, 735, 737, 737, 0, 737, 738,
1657 
1658  738, 739, 739, 740, 740, 0, 735, 0, 737, 741,
1659  741, 0, 738, 0, 739, 0, 740, 0, 738, 0,
1660  735, 0, 741, 0, 739, 742, 742, 0, 741, 743,
1661  743, 744, 744, 745, 745, 0, 743, 742, 742, 747,
1662  747, 740, 743, 0, 744, 0, 745, 746, 746, 0,
1663  746, 0, 747, 748, 748, 0, 747, 748, 749, 749,
1664  746, 0, 750, 750, 751, 751, 748, 752, 752, 0,
1665  752, 749, 749, 751, 744, 750, 0, 751, 0, 750,
1666  752, 753, 753, 753, 754, 754, 755, 755, 756, 756,
1667  757, 757, 758, 758, 0, 753, 0, 754, 0, 755,
1668 
1669  757, 756, 754, 757, 0, 758, 0, 0, 759, 759,
1670  0, 761, 761, 760, 760, 0, 0, 0, 0, 758,
1671  756, 759, 760, 0, 761, 0, 760, 759, 761, 762,
1672  762, 0, 762, 763, 763, 764, 764, 765, 765, 766,
1673  766, 0, 762, 0, 765, 0, 763, 0, 764, 0,
1674  765, 0, 766, 0, 764, 766, 767, 767, 768, 768,
1675  769, 769, 0, 770, 770, 763, 770, 0, 768, 767,
1676  0, 768, 0, 769, 771, 771, 770, 773, 773, 767,
1677  772, 772, 0, 769, 774, 774, 0, 771, 0, 0,
1678  773, 778, 0, 772, 0, 778, 778, 774, 0, 0,
1679 
1680  0, 771, 0, 0, 772, 775, 775, 775, 778, 775,
1681  775, 775, 775, 775, 775, 775, 775, 775, 775, 775,
1682  775, 775, 775, 775, 775, 775, 775, 775, 775, 775,
1683  775, 775, 775, 775, 775, 775, 775, 775, 775, 775,
1684  775, 775, 775, 775, 775, 775, 775, 775, 775, 775,
1685  775, 775, 775, 775, 775, 775, 775, 775, 776, 776,
1686  790, 792, 792, 0, 790, 790, 796, 796, 799, 799,
1687  0, 776, 801, 801, 792, 805, 805, 790, 0, 796,
1688  0, 799, 806, 806, 0, 801, 808, 808, 805, 809,
1689  809, 776, 807, 0, 792, 806, 807, 807, 0, 808,
1690 
1691  810, 810, 809, 796, 808, 799, 809, 0, 805, 807,
1692  811, 811, 801, 810, 812, 812, 0, 810, 0, 813,
1693  813, 814, 814, 811, 814, 816, 816, 812, 0, 815,
1694  815, 812, 813, 0, 814, 815, 813, 0, 816, 817,
1695  817, 0, 815, 0, 811, 0, 816, 818, 818, 819,
1696  819, 821, 817, 820, 820, 821, 821, 0, 822, 822,
1697  818, 822, 819, 0, 818, 0, 820, 819, 821, 823,
1698  823, 822, 0, 824, 824, 825, 825, 826, 826, 827,
1699  827, 0, 823, 824, 828, 828, 824, 0, 825, 0,
1700  826, 0, 827, 829, 829, 0, 827, 828, 830, 830,
1701 
1702  831, 831, 823, 829, 832, 832, 829, 831, 0, 833,
1703  833, 830, 0, 831, 0, 0, 830, 832, 834, 834,
1704  0, 828, 833, 835, 835, 836, 836, 833, 0, 837,
1705  837, 834, 837, 838, 838, 0, 835, 0, 836, 0,
1706  835, 0, 837, 0, 839, 839, 838, 841, 841, 855,
1707  855, 858, 858, 839, 0, 834, 838, 839, 861, 861,
1708  841, 0, 855, 0, 858, 836, 0, 863, 863, 866,
1709  866, 861, 0, 867, 867, 869, 869, 0, 0, 841,
1710  863, 855, 866, 868, 868, 0, 867, 868, 869, 0,
1711  863, 867, 870, 870, 871, 871, 868, 0, 0, 872,
1712 
1713  872, 866, 873, 873, 0, 870, 0, 871, 875, 875,
1714  870, 871, 872, 874, 874, 873, 874, 876, 876, 878,
1715  878, 875, 872, 0, 875, 0, 874, 877, 877, 0,
1716  876, 0, 878, 0, 877, 879, 879, 880, 880, 0,
1717  877, 880, 879, 881, 881, 882, 882, 0, 879, 0,
1718  880, 883, 883, 884, 884, 0, 881, 0, 882, 0,
1719  881, 885, 885, 0, 883, 0, 884, 886, 886, 883,
1720  887, 887, 0, 0, 885, 888, 888, 882, 889, 889,
1721  886, 890, 890, 887, 0, 886, 891, 891, 888, 892,
1722  892, 889, 0, 888, 890, 889, 893, 893, 0, 891,
1723 
1724  894, 894, 892, 895, 895, 0, 896, 907, 907, 893,
1725  896, 896, 892, 894, 911, 0, 895, 913, 911, 911,
1726  907, 913, 913, 896, 0, 914, 914, 915, 915, 915,
1727  0, 911, 914, 0, 913, 916, 916, 0, 914, 917,
1728  917, 915, 917, 0, 907, 918, 918, 0, 916, 919,
1729  919, 916, 917, 0, 920, 920, 924, 920, 918, 921,
1730  921, 0, 919, 922, 922, 0, 919, 920, 923, 923,
1731  923, 0, 921, 925, 925, 0, 922, 921, 926, 926,
1732  924, 924, 923, 927, 927, 0, 925, 0, 0, 928,
1733  928, 926, 928, 924, 0, 926, 927, 0, 929, 929,
1734 
1735  927, 930, 928, 931, 931, 930, 930, 943, 943, 948,
1736  925, 929, 0, 931, 948, 948, 931, 0, 930, 0,
1737  943, 949, 949, 950, 950, 951, 951, 948, 952, 952,
1738  953, 953, 0, 0, 949, 0, 950, 0, 951, 954,
1739  954, 952, 950, 953, 951, 952, 955, 955, 956, 956,
1740  0, 954, 954, 957, 957, 959, 959, 960, 960, 955,
1741  956, 956, 0, 958, 958, 0, 957, 958, 959, 0,
1742  960, 0, 957, 961, 961, 0, 958, 962, 962, 963,
1743  963, 964, 964, 0, 964, 0, 961, 0, 0, 963,
1744  962, 979, 963, 0, 964, 963, 980, 980, 979, 979,
1745 
1746  981, 981, 982, 982, 983, 983, 984, 984, 980, 980,
1747  981, 979, 0, 981, 0, 982, 0, 983, 0, 984,
1748  985, 985, 986, 986, 987, 987, 985, 988, 988, 988,
1749  989, 989, 0, 985, 987, 986, 0, 987, 0, 986,
1750  1005, 988, 0, 989, 990, 990, 989, 991, 991, 0,
1751  991, 992, 992, 1005, 1005, 0, 0, 990, 1006, 1006,
1752  991, 1007, 1007, 0, 992, 0, 1005, 0, 992, 1008,
1753  1008, 1006, 1008, 0, 1007, 0, 1006, 1009, 1009, 1007,
1754  1009, 1016, 1008, 1010, 1010, 1011, 1011, 1012, 1012, 0,
1755  1009, 1013, 1013, 1014, 1014, 1014, 1010, 0, 1011, 0,
1756 
1757  1012, 0, 0, 1011, 1013, 1016, 1016, 1014, 1015, 1015,
1758  1015, 1027, 1027, 1028, 1028, 0, 1029, 1029, 1016, 0,
1759  1028, 0, 1015, 0, 1027, 0, 1028, 0, 1027, 1029,
1760  1030, 1030, 0, 1029, 0, 1031, 1031, 1032, 1032, 0,
1761  0, 1033, 1033, 1030, 0, 0, 1032, 1030, 1031, 0,
1762  1032, 0, 1031, 1033, 1033, 1034, 1034, 1034, 1035, 1035,
1763  1035, 1036, 1036, 1047, 1047, 1036, 1048, 1048, 1034, 1049,
1764  1049, 1035, 1050, 1050, 1036, 0, 1047, 1051, 1051, 1048,
1765  1052, 1052, 1049, 1052, 0, 1050, 1053, 1053, 1054, 1054,
1766  1051, 0, 0, 1052, 1055, 1055, 1055, 1056, 1056, 1053,
1767 
1768  0, 1054, 1062, 1062, 1053, 1063, 1063, 0, 1055, 0,
1769  1056, 1065, 1065, 1056, 1062, 1062, 0, 1063, 1063, 1064,
1770  1064, 0, 1064, 0, 1065, 1066, 1066, 1072, 1072, 1073,
1771  1073, 1073, 1064, 1074, 1074, 0, 0, 0, 1066, 0,
1772  1072, 0, 1073, 0, 1072, 1074, 1074, 1075, 1075, 1076,
1773  1076, 1082, 1082, 1083, 1083, 0, 1075, 1084, 1084, 1084,
1774  1075, 1076, 1076, 0, 1082, 0, 1083, 0, 1085, 1085,
1775  1084, 1085, 1086, 1086, 1090, 1090, 1091, 1091, 0, 1092,
1776  1092, 1085, 1092, 0, 0, 1086, 0, 1090, 1091, 1091,
1777  1086, 0, 1092, 1095, 1095, 1095, 1096, 1096, 1098, 1098,
1778 
1779  1098, 0, 0, 0, 0, 0, 1095, 0, 1096, 1096,
1780  0, 1098, 1100, 1100, 1100, 1100, 1100, 1101, 1101, 1101,
1781  1101, 1101, 1102, 1102, 1102, 1102, 1102, 1103, 0, 1103,
1782  1103, 1104, 0, 1104, 1104, 1105, 0, 1105, 1105, 1106,
1783  0, 1106, 1106, 1107, 0, 1107, 1107, 1107, 1108, 0,
1784  1108, 1108, 1109, 1109, 1109, 1109, 1109, 1111, 0, 1111,
1785  1111, 1112, 1112, 1112, 1112, 1112, 1113, 0, 0, 1113,
1786  1115, 0, 1115, 1115, 1116, 1116, 1116, 1116, 1116, 1117,
1787  0, 1117, 1117, 1118, 0, 0, 1118, 1099, 1099, 1099,
1788  1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099,
1789 
1790  1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099,
1791  1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099,
1792  1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099,
1793  1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099,
1794  1099, 1099, 1099
1795  } ;
1796 
1797 /* Table of booleans, true if rule could match eol. */
1799  { 0,
1800 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1801  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1802  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1803  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1804  0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, };
1805 
1806 /* The intent behind this definition is that it'll catch
1807  * any uses of REJECT which flex missed.
1808  */
1809 #define REJECT reject_used_but_not_detected
1810 #define yymore() yymore_used_but_not_detected
1811 #define YY_MORE_ADJ 0
1812 #define YY_RESTORE_YY_MORE_OFFSET
1813 #line 1 "util/parse-events.l"
1814 #line 10 "util/parse-events.l"
1815 #include <errno.h>
1816 #include "../perf.h"
1817 #include "parse-events.h"
1818 #include "parse-events-bison.h"
1819 
1820 char *parse_events_get_text(yyscan_t yyscanner);
1822 
1823 static int __value(YYSTYPE *yylval, char *str, int base, int token)
1824 {
1825  u64 num;
1826 
1827  errno = 0;
1828  num = strtoull(str, NULL, base);
1829  if (errno)
1830  return PE_ERROR;
1831 
1832  yylval->num = num;
1833  return token;
1834 }
1835 
1836 static int value(yyscan_t scanner, int base)
1837 {
1838  YYSTYPE *yylval = parse_events_get_lval(scanner);
1839  char *text = parse_events_get_text(scanner);
1840 
1841  return __value(yylval, text, base, PE_VALUE);
1842 }
1843 
1844 static int raw(yyscan_t scanner)
1845 {
1846  YYSTYPE *yylval = parse_events_get_lval(scanner);
1847  char *text = parse_events_get_text(scanner);
1848 
1849  return __value(yylval, text + 1, 16, PE_RAW);
1850 }
1851 
1852 static int str(yyscan_t scanner, int token)
1853 {
1854  YYSTYPE *yylval = parse_events_get_lval(scanner);
1855  char *text = parse_events_get_text(scanner);
1856 
1857  yylval->str = strdup(text);
1858  return token;
1859 }
1860 
1861 /*
1862  * This function is called when the parser gets two kind of input:
1863  *
1864  * @cfg1 or @cfg2=config
1865  *
1866  * The leading '@' is stripped off before 'cfg1' and 'cfg2=config' are given to
1867  * bison. In the latter case it is necessary to keep the string intact so that
1868  * the PMU kernel driver can determine what configurable is associated to
1869  * 'config'.
1870  */
1871 static int drv_str(yyscan_t scanner, int token)
1872 {
1873  YYSTYPE *yylval = parse_events_get_lval(scanner);
1874  char *text = parse_events_get_text(scanner);
1875 
1876  /* Strip off the '@' */
1877  yylval->str = strdup(text + 1);
1878  return token;
1879 }
1880 
1881 #define REWIND(__alloc) \
1882 do { \
1883  YYSTYPE *__yylval = parse_events_get_lval(yyscanner); \
1884  char *text = parse_events_get_text(yyscanner); \
1885  \
1886  if (__alloc) \
1887  __yylval->str = strdup(text); \
1888  \
1889  yycolumn -= strlen(text); \
1890  yyless(0); \
1891 } while (0)
1892 
1893 static int pmu_str_check(yyscan_t scanner)
1894 {
1895  YYSTYPE *yylval = parse_events_get_lval(scanner);
1896  char *text = parse_events_get_text(scanner);
1897 
1898  yylval->str = strdup(text);
1899  switch (perf_pmu__parse_check(text)) {
1901  return PE_PMU_EVENT_PRE;
1903  return PE_PMU_EVENT_SUF;
1904  case PMU_EVENT_SYMBOL:
1905  return PE_KERNEL_PMU_EVENT;
1906  default:
1907  return PE_NAME;
1908  }
1909 }
1910 
1911 static int sym(yyscan_t scanner, int type, int config)
1912 {
1913  YYSTYPE *yylval = parse_events_get_lval(scanner);
1914 
1915  yylval->num = (type << 16) + config;
1916  return type == PERF_TYPE_HARDWARE ? PE_VALUE_SYM_HW : PE_VALUE_SYM_SW;
1917 }
1918 
1919 static int term(yyscan_t scanner, int type)
1920 {
1921  YYSTYPE *yylval = parse_events_get_lval(scanner);
1922 
1923  yylval->num = type;
1924  return PE_TERM;
1925 }
1926 
1927 #define YY_USER_ACTION \
1928 do { \
1929  yylloc->last_column = yylloc->first_column; \
1930  yylloc->first_column = yycolumn; \
1931  yycolumn += yyleng; \
1932 } while (0);
1933 
1934 
1935 
1936 
1937 
1938 /* If you add a modifier you need to update check_modifier() */
1939 #line 1940 "util/parse-events-flex.c"
1940 
1941 #define INITIAL 0
1942 #define mem 1
1943 #define config 2
1944 #define event 3
1945 #define array 4
1946 
1947 #ifndef YY_NO_UNISTD_H
1948 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1949  * down here because we want the user's section 1 to have been scanned first.
1950  * The user has a chance to override it with an option.
1951  */
1952 #include <unistd.h>
1953 #endif
1954 
1955 #ifndef YY_EXTRA_TYPE
1956 #define YY_EXTRA_TYPE void *
1957 #endif
1958 
1959 /* Holds the entire state of the reentrant scanner. */
1960 struct yyguts_t
1961  {
1962 
1963  /* User-defined. Not touched by flex. */
1965 
1966  /* The rest are the same as the globals declared in the non-reentrant scanner. */
1967  FILE *yyin_r, *yyout_r;
1970  YY_BUFFER_STATE * yy_buffer_stack;
1974  char *yy_c_buf_p;
1975  int yy_init;
1983 
1986 
1987  char *yytext_r;
1990 
1992 
1994 
1995  }; /* end struct yyguts_t */
1996 
1997 static int yy_init_globals (yyscan_t yyscanner );
1998 
1999  /* This must go here because YYSTYPE and YYLTYPE are included
2000  * from bison output in section 1.*/
2001  # define yylval yyg->yylval_r
2002 
2003  # define yylloc yyg->yylloc_r
2004 
2005 int parse_events_lex_init (yyscan_t* scanner);
2006 
2007 int parse_events_lex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner);
2008 
2009 /* Accessor methods to globals.
2010  These are made visible to non-reentrant scanners for convenience. */
2011 
2012 int parse_events_lex_destroy (yyscan_t yyscanner );
2013 
2014 int parse_events_get_debug (yyscan_t yyscanner );
2015 
2016 void parse_events_set_debug (int debug_flag ,yyscan_t yyscanner );
2017 
2019 
2020 void parse_events_set_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
2021 
2022 FILE *parse_events_get_in (yyscan_t yyscanner );
2023 
2024 void parse_events_set_in (FILE * _in_str ,yyscan_t yyscanner );
2025 
2026 FILE *parse_events_get_out (yyscan_t yyscanner );
2027 
2028 void parse_events_set_out (FILE * _out_str ,yyscan_t yyscanner );
2029 
2031 
2032 char *parse_events_get_text (yyscan_t yyscanner );
2033 
2034 int parse_events_get_lineno (yyscan_t yyscanner );
2035 
2036 void parse_events_set_lineno (int _line_number ,yyscan_t yyscanner );
2037 
2038 int parse_events_get_column (yyscan_t yyscanner );
2039 
2040 void parse_events_set_column (int _column_no ,yyscan_t yyscanner );
2041 
2042 YYSTYPE * parse_events_get_lval (yyscan_t yyscanner );
2043 
2044 void parse_events_set_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
2045 
2046  YYLTYPE *parse_events_get_lloc (yyscan_t yyscanner );
2047 
2048  void parse_events_set_lloc (YYLTYPE * yylloc_param ,yyscan_t yyscanner );
2049 
2050 /* Macros after this point can all be overridden by user definitions in
2051  * section 1.
2052  */
2053 
2054 #ifndef YY_SKIP_YYWRAP
2055 #ifdef __cplusplus
2056 extern "C" int parse_events_wrap (yyscan_t yyscanner );
2057 #else
2058 extern int parse_events_wrap (yyscan_t yyscanner );
2059 #endif
2060 #endif
2061 
2062 #ifndef YY_NO_UNPUT
2063 
2064  static void yyunput (int c,char *buf_ptr ,yyscan_t yyscanner);
2065 
2066 #endif
2067 
2068 #ifndef yytext_ptr
2069 static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
2070 #endif
2071 
2072 #ifdef YY_NEED_STRLEN
2073 static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
2074 #endif
2075 
2076 #ifndef YY_NO_INPUT
2077 
2078 #ifdef __cplusplus
2079 static int yyinput (yyscan_t yyscanner );
2080 #else
2081 static int input (yyscan_t yyscanner );
2082 #endif
2083 
2084 #endif
2085 
2086  static void yy_push_state (int _new_state ,yyscan_t yyscanner);
2087 
2088  static void yy_pop_state (yyscan_t yyscanner );
2089 
2090  static int yy_top_state (yyscan_t yyscanner );
2091 
2092 /* Amount of stuff to slurp up with each read. */
2093 #ifndef YY_READ_BUF_SIZE
2094 #ifdef __ia64__
2095 /* On IA-64, the buffer size is 16k, not 8k */
2096 #define YY_READ_BUF_SIZE 16384
2097 #else
2098 #define YY_READ_BUF_SIZE 8192
2099 #endif /* __ia64__ */
2100 #endif
2101 
2102 /* Copy whatever the last rule matched to the standard output. */
2103 #ifndef ECHO
2104 /* This used to be an fputs(), but since the string might contain NUL's,
2105  * we now use fwrite().
2106  */
2107 #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
2108 #endif
2109 
2110 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2111  * is returned in "result".
2112  */
2113 #ifndef YY_INPUT
2114 #define YY_INPUT(buf,result,max_size) \
2115  if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2116  { \
2117  int c = '*'; \
2118  size_t n; \
2119  for ( n = 0; n < max_size && \
2120  (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
2121  buf[n] = (char) c; \
2122  if ( c == '\n' ) \
2123  buf[n++] = (char) c; \
2124  if ( c == EOF && ferror( yyin ) ) \
2125  YY_FATAL_ERROR( "input in flex scanner failed" ); \
2126  result = n; \
2127  } \
2128  else \
2129  { \
2130  errno=0; \
2131  while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
2132  { \
2133  if( errno != EINTR) \
2134  { \
2135  YY_FATAL_ERROR( "input in flex scanner failed" ); \
2136  break; \
2137  } \
2138  errno=0; \
2139  clearerr(yyin); \
2140  } \
2141  }\
2142 \
2143 
2144 #endif
2145 
2146 /* No semi-colon after return; correct usage is to write "yyterminate();" -
2147  * we don't want an extra ';' after the "return" because that will cause
2148  * some compilers to complain about unreachable statements.
2149  */
2150 #ifndef yyterminate
2151 #define yyterminate() return YY_NULL
2152 #endif
2153 
2154 /* Number of entries by which start-condition stack grows. */
2155 #ifndef YY_START_STACK_INCR
2156 #define YY_START_STACK_INCR 25
2157 #endif
2158 
2159 /* Report a fatal error. */
2160 #ifndef YY_FATAL_ERROR
2161 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
2162 #endif
2163 
2164 /* end tables serialization structures and prototypes */
2165 
2166 /* Default declaration of generated scanner - a define so the user can
2167  * easily add parameters.
2168  */
2169 #ifndef YY_DECL
2170 #define YY_DECL_IS_OURS 1
2171 
2172 extern int parse_events_lex \
2173  (YYSTYPE * yylval_param,YYLTYPE * yylloc_param ,yyscan_t yyscanner);
2174 
2175 #define YY_DECL int parse_events_lex \
2176  (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner)
2177 #endif /* !YY_DECL */
2178 
2179 /* Code executed at the beginning of each rule, after yytext and yyleng
2180  * have been set up.
2181  */
2182 #ifndef YY_USER_ACTION
2183 #define YY_USER_ACTION
2184 #endif
2185 
2186 /* Code executed at the end of each rule. */
2187 #ifndef YY_BREAK
2188 #define YY_BREAK /*LINTED*/break;
2189 #endif
2190 
2191 #define YY_RULE_SETUP \
2192  YY_USER_ACTION
2193 
2196 YY_DECL
2198  yy_state_type yy_current_state;
2199  char *yy_cp, *yy_bp;
2200  int yy_act;
2201  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2202 
2203  yylval = yylval_param;
2204 
2205  yylloc = yylloc_param;
2206 
2207  if ( !yyg->yy_init )
2208  {
2209  yyg->yy_init = 1;
2210 
2211 #ifdef YY_USER_INIT
2212  YY_USER_INIT;
2213 #endif
2214 
2215  if ( ! yyg->yy_start )
2216  yyg->yy_start = 1; /* first start state */
2217 
2218  if ( ! yyin )
2219  yyin = stdin;
2220 
2221  if ( ! yyout )
2222  yyout = stdout;
2223 
2224  if ( ! YY_CURRENT_BUFFER ) {
2228  }
2229 
2230  parse_events__load_buffer_state(yyscanner );
2231  }
2232 
2233  {
2234 #line 152 "util/parse-events.l"
2235 
2236 
2237 
2238  {
2239  int start_token;
2240 
2241  start_token = parse_events_get_extra(yyscanner);
2242 
2243  if (start_token == PE_START_TERMS)
2244  BEGIN(config);
2245  else if (start_token == PE_START_EVENTS)
2246  BEGIN(event);
2247 
2248  if (start_token) {
2249  parse_events_set_extra(NULL, yyscanner);
2250  /*
2251  * The flex parser does not init locations variable
2252  * via the scan_string interface, so we need do the
2253  * init in here.
2254  */
2255  yycolumn = 0;
2256  return start_token;
2257  }
2258  }
2259 
2260 
2261 #line 2262 "util/parse-events-flex.c"
2262 
2263  while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
2264  {
2265  yy_cp = yyg->yy_c_buf_p;
2266 
2267  /* Support of yytext. */
2268  *yy_cp = yyg->yy_hold_char;
2269 
2270  /* yy_bp points to the position in yy_ch_buf of the start of
2271  * the current run.
2272  */
2273  yy_bp = yy_cp;
2274 
2275  yy_current_state = yyg->yy_start;
2276 yy_match:
2277  do
2278  {
2279  YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
2280  if ( yy_accept[yy_current_state] )
2281  {
2282  yyg->yy_last_accepting_state = yy_current_state;
2284  }
2285  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2286  {
2287  yy_current_state = (int) yy_def[yy_current_state];
2288  if ( yy_current_state >= 1100 )
2289  yy_c = yy_meta[(unsigned int) yy_c];
2290  }
2291  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2292  ++yy_cp;
2293  }
2294  while ( yy_base[yy_current_state] != 4388 );
2295 
2296 yy_find_action:
2297  yy_act = yy_accept[yy_current_state];
2298  if ( yy_act == 0 )
2299  { /* have to back up */
2300  yy_cp = yyg->yy_last_accepting_cpos;
2301  yy_current_state = yyg->yy_last_accepting_state;
2302  yy_act = yy_accept[yy_current_state];
2303  }
2304 
2306 
2307  if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
2308  {
2309  yy_size_t yyl;
2310  for ( yyl = 0; yyl < yyleng; ++yyl )
2311  if ( yytext[yyl] == '\n' )
2312 
2313  do{ yylineno++;
2314  yycolumn=0;
2315  }while(0)
2316 ;
2317  }
2318 
2319 do_action: /* This label is used only to access EOF actions. */
2320 
2321  switch ( yy_act )
2322  { /* beginning of action switch */
2323  case 0: /* must back up */
2324  /* undo the effects of YY_DO_BEFORE_ACTION */
2325  *yy_cp = yyg->yy_hold_char;
2326  yy_cp = yyg->yy_last_accepting_cpos;
2327  yy_current_state = yyg->yy_last_accepting_state;
2328  goto yy_find_action;
2329 
2330 case 1:
2331 /* rule 1 can match eol */
2333 #line 180 "util/parse-events.l"
2334 {
2335  BEGIN(INITIAL);
2336  REWIND(0);
2337  }
2338  YY_BREAK
2339 case 2:
2340 /* rule 2 can match eol */
2341 #line 186 "util/parse-events.l"
2342 case 3:
2343 /* rule 3 can match eol */
2344 #line 187 "util/parse-events.l"
2345 case 4:
2346 /* rule 4 can match eol */
2347 #line 188 "util/parse-events.l"
2348 case 5:
2349 /* rule 5 can match eol */
2351 #line 188 "util/parse-events.l"
2352 {
2353  BEGIN(INITIAL);
2354  REWIND(1);
2355  return PE_EVENT_NAME;
2356  }
2357  YY_BREAK
2358 case YY_STATE_EOF(event):
2359 #line 194 "util/parse-events.l"
2360 {
2361  BEGIN(INITIAL);
2362  REWIND(0);
2363  }
2364  YY_BREAK
2365 
2366 
2367 case 6:
2369 #line 202 "util/parse-events.l"
2370 { BEGIN(config); return ']'; }
2371  YY_BREAK
2372 case 7:
2374 #line 203 "util/parse-events.l"
2375 { return value(yyscanner, 10); }
2376  YY_BREAK
2377 case 8:
2379 #line 204 "util/parse-events.l"
2380 { return value(yyscanner, 16); }
2381  YY_BREAK
2382 case 9:
2384 #line 205 "util/parse-events.l"
2385 { return ','; }
2386  YY_BREAK
2387 case 10:
2389 #line 206 "util/parse-events.l"
2390 { return PE_ARRAY_RANGE; }
2391  YY_BREAK
2392 
2393 
2394 /*
2395  * Please update config_term_names when new static term is added.
2396  */
2397 case 11:
2399 #line 213 "util/parse-events.l"
2400 { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_CONFIG); }
2401  YY_BREAK
2402 case 12:
2404 #line 214 "util/parse-events.l"
2405 { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_CONFIG1); }
2406  YY_BREAK
2407 case 13:
2409 #line 215 "util/parse-events.l"
2410 { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_CONFIG2); }
2411  YY_BREAK
2412 case 14:
2414 #line 216 "util/parse-events.l"
2415 { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_NAME); }
2416  YY_BREAK
2417 case 15:
2419 #line 217 "util/parse-events.l"
2420 { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_SAMPLE_PERIOD); }
2421  YY_BREAK
2422 case 16:
2424 #line 218 "util/parse-events.l"
2425 { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_SAMPLE_FREQ); }
2426  YY_BREAK
2427 case 17:
2429 #line 219 "util/parse-events.l"
2430 { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_BRANCH_SAMPLE_TYPE); }
2431  YY_BREAK
2432 case 18:
2434 #line 220 "util/parse-events.l"
2435 { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_TIME); }
2436  YY_BREAK
2437 case 19:
2439 #line 221 "util/parse-events.l"
2440 { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_CALLGRAPH); }
2441  YY_BREAK
2442 case 20:
2444 #line 222 "util/parse-events.l"
2445 { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_STACKSIZE); }
2446  YY_BREAK
2447 case 21:
2449 #line 223 "util/parse-events.l"
2450 { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_MAX_STACK); }
2451  YY_BREAK
2452 case 22:
2454 #line 224 "util/parse-events.l"
2455 { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_INHERIT); }
2456  YY_BREAK
2457 case 23:
2459 #line 225 "util/parse-events.l"
2460 { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_NOINHERIT); }
2461  YY_BREAK
2462 case 24:
2464 #line 226 "util/parse-events.l"
2465 { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_OVERWRITE); }
2466  YY_BREAK
2467 case 25:
2469 #line 227 "util/parse-events.l"
2470 { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_NOOVERWRITE); }
2471  YY_BREAK
2472 case 26:
2474 #line 228 "util/parse-events.l"
2475 { return ','; }
2476  YY_BREAK
2477 case 27:
2479 #line 229 "util/parse-events.l"
2480 { BEGIN(INITIAL); return '/'; }
2481  YY_BREAK
2482 case 28:
2484 #line 230 "util/parse-events.l"
2485 { return str(yyscanner, PE_NAME); }
2486  YY_BREAK
2487 case 29:
2489 #line 231 "util/parse-events.l"
2490 { return PE_ARRAY_ALL; }
2491  YY_BREAK
2492 case 30:
2494 #line 232 "util/parse-events.l"
2495 { BEGIN(array); return '['; }
2496  YY_BREAK
2497 case 31:
2499 #line 233 "util/parse-events.l"
2500 { return drv_str(yyscanner, PE_DRV_CFG_TERM); }
2501  YY_BREAK
2502 
2503 
2504 case 32:
2506 #line 237 "util/parse-events.l"
2507 { return str(yyscanner, PE_MODIFIER_BP); }
2508  YY_BREAK
2509 case 33:
2511 #line 238 "util/parse-events.l"
2512 { return ':'; }
2513  YY_BREAK
2514 case 34:
2516 #line 239 "util/parse-events.l"
2517 { return '/'; }
2518  YY_BREAK
2519 case 35:
2521 #line 240 "util/parse-events.l"
2522 { return value(yyscanner, 10); }
2523  YY_BREAK
2524 case 36:
2526 #line 241 "util/parse-events.l"
2527 { return value(yyscanner, 16); }
2528  YY_BREAK
2529 /*
2530  * We need to separate 'mem:' scanner part, in order to get specific
2531  * modifier bits parsed out. Otherwise we would need to handle PE_NAME
2532  * and we'd need to parse it manually. During the escape from <mem>
2533  * state we need to put the escaping char back, so we dont miss it.
2534  */
2535 case 37:
2537 #line 248 "util/parse-events.l"
2538 { unput(*yytext); BEGIN(INITIAL); }
2539  YY_BREAK
2540 /*
2541  * We destroy the scanner after reaching EOF,
2542  * but anyway just to be sure get back to INIT state.
2543  */
2544 case YY_STATE_EOF(mem):
2545 #line 253 "util/parse-events.l"
2546 { BEGIN(INITIAL); }
2547  YY_BREAK
2548 
2549 case 38:
2551 #line 256 "util/parse-events.l"
2552 { return sym(yyscanner, PERF_TYPE_HARDWARE, PERF_COUNT_HW_CPU_CYCLES); }
2553  YY_BREAK
2554 case 39:
2556 #line 257 "util/parse-events.l"
2557 { return sym(yyscanner, PERF_TYPE_HARDWARE, PERF_COUNT_HW_STALLED_CYCLES_FRONTEND); }
2558  YY_BREAK
2559 case 40:
2561 #line 258 "util/parse-events.l"
2562 { return sym(yyscanner, PERF_TYPE_HARDWARE, PERF_COUNT_HW_STALLED_CYCLES_BACKEND); }
2563  YY_BREAK
2564 case 41:
2566 #line 259 "util/parse-events.l"
2567 { return sym(yyscanner, PERF_TYPE_HARDWARE, PERF_COUNT_HW_INSTRUCTIONS); }
2568  YY_BREAK
2569 case 42:
2571 #line 260 "util/parse-events.l"
2572 { return sym(yyscanner, PERF_TYPE_HARDWARE, PERF_COUNT_HW_CACHE_REFERENCES); }
2573  YY_BREAK
2574 case 43:
2576 #line 261 "util/parse-events.l"
2577 { return sym(yyscanner, PERF_TYPE_HARDWARE, PERF_COUNT_HW_CACHE_MISSES); }
2578  YY_BREAK
2579 case 44:
2581 #line 262 "util/parse-events.l"
2582 { return sym(yyscanner, PERF_TYPE_HARDWARE, PERF_COUNT_HW_BRANCH_INSTRUCTIONS); }
2583  YY_BREAK
2584 case 45:
2586 #line 263 "util/parse-events.l"
2587 { return sym(yyscanner, PERF_TYPE_HARDWARE, PERF_COUNT_HW_BRANCH_MISSES); }
2588  YY_BREAK
2589 case 46:
2591 #line 264 "util/parse-events.l"
2592 { return sym(yyscanner, PERF_TYPE_HARDWARE, PERF_COUNT_HW_BUS_CYCLES); }
2593  YY_BREAK
2594 case 47:
2596 #line 265 "util/parse-events.l"
2597 { return sym(yyscanner, PERF_TYPE_HARDWARE, PERF_COUNT_HW_REF_CPU_CYCLES); }
2598  YY_BREAK
2599 case 48:
2601 #line 266 "util/parse-events.l"
2602 { return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_CPU_CLOCK); }
2603  YY_BREAK
2604 case 49:
2606 #line 267 "util/parse-events.l"
2607 { return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_TASK_CLOCK); }
2608  YY_BREAK
2609 case 50:
2611 #line 268 "util/parse-events.l"
2612 { return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_PAGE_FAULTS); }
2613  YY_BREAK
2614 case 51:
2616 #line 269 "util/parse-events.l"
2617 { return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_PAGE_FAULTS_MIN); }
2618  YY_BREAK
2619 case 52:
2621 #line 270 "util/parse-events.l"
2622 { return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_PAGE_FAULTS_MAJ); }
2623  YY_BREAK
2624 case 53:
2626 #line 271 "util/parse-events.l"
2627 { return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_CONTEXT_SWITCHES); }
2628  YY_BREAK
2629 case 54:
2631 #line 272 "util/parse-events.l"
2632 { return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_CPU_MIGRATIONS); }
2633  YY_BREAK
2634 case 55:
2636 #line 273 "util/parse-events.l"
2637 { return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_ALIGNMENT_FAULTS); }
2638  YY_BREAK
2639 case 56:
2641 #line 274 "util/parse-events.l"
2642 { return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_EMULATION_FAULTS); }
2643  YY_BREAK
2644 case 57:
2646 #line 275 "util/parse-events.l"
2647 { return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_DUMMY); }
2648  YY_BREAK
2649 case 58:
2651 #line 276 "util/parse-events.l"
2652 { return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_BPF_OUTPUT); }
2653  YY_BREAK
2654 /*
2655  * We have to handle the kernel PMU event cycles-ct/cycles-t/mem-loads/mem-stores separately.
2656  * Because the prefix cycles is mixed up with cpu-cycles.
2657  * loads and stores are mixed up with cache event
2658  */
2659 case 59:
2661 #line 283 "util/parse-events.l"
2662 { return str(yyscanner, PE_KERNEL_PMU_EVENT); }
2663  YY_BREAK
2664 case 60:
2666 #line 284 "util/parse-events.l"
2667 { return str(yyscanner, PE_KERNEL_PMU_EVENT); }
2668  YY_BREAK
2669 case 61:
2671 #line 285 "util/parse-events.l"
2672 { return str(yyscanner, PE_KERNEL_PMU_EVENT); }
2673  YY_BREAK
2674 case 62:
2676 #line 286 "util/parse-events.l"
2677 { return str(yyscanner, PE_KERNEL_PMU_EVENT); }
2678  YY_BREAK
2679 case 63:
2681 #line 287 "util/parse-events.l"
2682 { return str(yyscanner, PE_KERNEL_PMU_EVENT); }
2683  YY_BREAK
2684 case 64:
2685 #line 290 "util/parse-events.l"
2686 case 65:
2687 #line 291 "util/parse-events.l"
2688 case 66:
2689 #line 292 "util/parse-events.l"
2690 case 67:
2691 #line 293 "util/parse-events.l"
2692 case 68:
2693 #line 294 "util/parse-events.l"
2694 case 69:
2695 #line 295 "util/parse-events.l"
2696 case 70:
2698 #line 295 "util/parse-events.l"
2699 { return str(yyscanner, PE_NAME_CACHE_TYPE); }
2700  YY_BREAK
2701 case 71:
2702 #line 298 "util/parse-events.l"
2703 case 72:
2704 #line 299 "util/parse-events.l"
2705 case 73:
2706 #line 300 "util/parse-events.l"
2707 case 74:
2708 #line 301 "util/parse-events.l"
2709 case 75:
2710 #line 302 "util/parse-events.l"
2711 case 76:
2713 #line 302 "util/parse-events.l"
2714 { return str(yyscanner, PE_NAME_CACHE_OP_RESULT); }
2715  YY_BREAK
2716 case 77:
2718 #line 304 "util/parse-events.l"
2719 { BEGIN(mem); return PE_PREFIX_MEM; }
2720  YY_BREAK
2721 case 78:
2723 #line 305 "util/parse-events.l"
2724 { return raw(yyscanner); }
2725  YY_BREAK
2726 case 79:
2728 #line 306 "util/parse-events.l"
2729 { return value(yyscanner, 10); }
2730  YY_BREAK
2731 case 80:
2733 #line 307 "util/parse-events.l"
2734 { return value(yyscanner, 16); }
2735  YY_BREAK
2736 case 81:
2738 #line 309 "util/parse-events.l"
2739 { return str(yyscanner, PE_MODIFIER_EVENT); }
2740  YY_BREAK
2741 case 82:
2742 /* rule 82 can match eol */
2744 #line 310 "util/parse-events.l"
2745 { return str(yyscanner, PE_BPF_OBJECT); }
2746  YY_BREAK
2747 case 83:
2748 /* rule 83 can match eol */
2750 #line 311 "util/parse-events.l"
2751 { return str(yyscanner, PE_BPF_SOURCE); }
2752  YY_BREAK
2753 case 84:
2755 #line 312 "util/parse-events.l"
2756 { return pmu_str_check(yyscanner); }
2757  YY_BREAK
2758 case 85:
2760 #line 313 "util/parse-events.l"
2761 { BEGIN(config); return '/'; }
2762  YY_BREAK
2763 case 86:
2765 #line 314 "util/parse-events.l"
2766 { return '-'; }
2767  YY_BREAK
2768 case 87:
2770 #line 315 "util/parse-events.l"
2771 { BEGIN(event); return ','; }
2772  YY_BREAK
2773 case 88:
2775 #line 316 "util/parse-events.l"
2776 { return ':'; }
2777  YY_BREAK
2778 case 89:
2780 #line 317 "util/parse-events.l"
2781 { BEGIN(event); return '{'; }
2782  YY_BREAK
2783 case 90:
2785 #line 318 "util/parse-events.l"
2786 { return '}'; }
2787  YY_BREAK
2788 case 91:
2790 #line 319 "util/parse-events.l"
2791 { return '='; }
2792  YY_BREAK
2793 case 92:
2794 /* rule 92 can match eol */
2796 #line 320 "util/parse-events.l"
2797 { }
2798  YY_BREAK
2799 case 93:
2801 #line 321 "util/parse-events.l"
2802 { }
2803  YY_BREAK
2804 case 94:
2806 #line 323 "util/parse-events.l"
2807 ECHO;
2808  YY_BREAK
2809 #line 2810 "util/parse-events-flex.c"
2810 case YY_STATE_EOF(INITIAL):
2811 case YY_STATE_EOF(config):
2812 case YY_STATE_EOF(array):
2813  yyterminate();
2814 
2815  case YY_END_OF_BUFFER:
2816  {
2817  /* Amount of text matched not including the EOB char. */
2818  int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
2819 
2820  /* Undo the effects of YY_DO_BEFORE_ACTION. */
2821  *yy_cp = yyg->yy_hold_char;
2823 
2824  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2825  {
2826  /* We're scanning a new file or input source. It's
2827  * possible that this happened because the user
2828  * just pointed yyin at a new source and called
2829  * parse_events_lex(). If so, then we have to assure
2830  * consistency between YY_CURRENT_BUFFER and our
2831  * globals. Here is the right place to do so, because
2832  * this is the first action (other than possibly a
2833  * back-up) that will match for the new input source.
2834  */
2835  yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2836  YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
2837  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2838  }
2839 
2840  /* Note that here we test for yy_c_buf_p "<=" to the position
2841  * of the first EOB in the buffer, since yy_c_buf_p will
2842  * already have been incremented past the NUL character
2843  * (since all states make transitions on EOB to the
2844  * end-of-buffer state). Contrast this with the test
2845  * in input().
2846  */
2847  if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
2848  { /* This was really a NUL. */
2849  yy_state_type yy_next_state;
2850 
2851  yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
2852 
2853  yy_current_state = yy_get_previous_state( yyscanner );
2854 
2855  /* Okay, we're now positioned to make the NUL
2856  * transition. We couldn't have
2857  * yy_get_previous_state() go ahead and do it
2858  * for us because it doesn't know how to deal
2859  * with the possibility of jamming (and we don't
2860  * want to build jamming into it because then it
2861  * will run more slowly).
2862  */
2863 
2864  yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
2865 
2866  yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
2867 
2868  if ( yy_next_state )
2869  {
2870  /* Consume the NUL. */
2871  yy_cp = ++yyg->yy_c_buf_p;
2872  yy_current_state = yy_next_state;
2873  goto yy_match;
2874  }
2875 
2876  else
2877  {
2878  yy_cp = yyg->yy_c_buf_p;
2879  goto yy_find_action;
2880  }
2881  }
2882 
2883  else switch ( yy_get_next_buffer( yyscanner ) )
2884  {
2885  case EOB_ACT_END_OF_FILE:
2886  {
2887  yyg->yy_did_buffer_switch_on_eof = 0;
2888 
2889  if ( parse_events_wrap(yyscanner ) )
2890  {
2891  /* Note: because we've taken care in
2892  * yy_get_next_buffer() to have set up
2893  * yytext, we can now set up
2894  * yy_c_buf_p so that if some total
2895  * hoser (like flex itself) wants to
2896  * call the scanner after we return the
2897  * YY_NULL, it'll still work - another
2898  * YY_NULL will get returned.
2899  */
2900  yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
2901 
2902  yy_act = YY_STATE_EOF(YY_START);
2903  goto do_action;
2904  }
2905 
2906  else
2907  {
2908  if ( ! yyg->yy_did_buffer_switch_on_eof )
2909  YY_NEW_FILE;
2910  }
2911  break;
2912  }
2913 
2914  case EOB_ACT_CONTINUE_SCAN:
2915  yyg->yy_c_buf_p =
2916  yyg->yytext_ptr + yy_amount_of_matched_text;
2917 
2918  yy_current_state = yy_get_previous_state( yyscanner );
2919 
2920  yy_cp = yyg->yy_c_buf_p;
2921  yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
2922  goto yy_match;
2923 
2924  case EOB_ACT_LAST_MATCH:
2925  yyg->yy_c_buf_p =
2926  &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
2927 
2928  yy_current_state = yy_get_previous_state( yyscanner );
2929 
2930  yy_cp = yyg->yy_c_buf_p;
2931  yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
2932  goto yy_find_action;
2933  }
2934  break;
2935  }
2936 
2937  default:
2939  "fatal flex scanner internal error--no action found" );
2940  } /* end of action switch */
2941  } /* end of scanning one token */
2942  } /* end of user's declarations */
2943 } /* end of parse_events_lex */
2944 
2945 /* yy_get_next_buffer - try to read in a new buffer
2946  *
2947  * Returns a code representing an action:
2948  * EOB_ACT_LAST_MATCH -
2949  * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2950  * EOB_ACT_END_OF_FILE - end of file
2951  */
2952 static int yy_get_next_buffer (yyscan_t yyscanner)
2953 {
2954  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2955  char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2956  char *source = yyg->yytext_ptr;
2957  yy_size_t number_to_move, i;
2958  int ret_val;
2959 
2960  if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
2962  "fatal flex scanner internal error--end of buffer missed" );
2963 
2964  if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2965  { /* Don't try to fill the buffer, so this is an EOF. */
2966  if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
2967  {
2968  /* We matched a single character, the EOB, so
2969  * treat this as a final EOF.
2970  */
2971  return EOB_ACT_END_OF_FILE;
2972  }
2973 
2974  else
2975  {
2976  /* We matched some text prior to the EOB, first
2977  * process it.
2978  */
2979  return EOB_ACT_LAST_MATCH;
2980  }
2981  }
2982 
2983  /* Try to read more data. */
2984 
2985  /* First move last chars to start of buffer. */
2986  number_to_move = (yy_size_t) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
2987 
2988  for ( i = 0; i < number_to_move; ++i )
2989  *(dest++) = *(source++);
2990 
2991  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2992  /* don't do the read, it's not guaranteed to return an EOF,
2993  * just force an EOF
2994  */
2995  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
2996 
2997  else
2998  {
2999  int num_to_read =
3000  YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
3001 
3002  while ( num_to_read <= 0 )
3003  { /* Not enough room in the buffer - grow it. */
3004 
3005  /* just a shorter name for the current buffer */
3006  YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
3007 
3008  int yy_c_buf_p_offset =
3009  (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
3010 
3011  if ( b->yy_is_our_buffer )
3012  {
3013  yy_size_t new_size = b->yy_buf_size * 2;
3014 
3015  if ( new_size <= 0 )
3016  b->yy_buf_size += b->yy_buf_size / 8;
3017  else
3018  b->yy_buf_size *= 2;
3019 
3020  b->yy_ch_buf = (char *)
3021  /* Include room in for 2 EOB chars. */
3022  parse_events_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
3023  }
3024  else
3025  /* Can't grow it, we don't own it. */
3026  b->yy_ch_buf = 0;
3027 
3028  if ( ! b->yy_ch_buf )
3030  "fatal error - scanner input buffer overflow" );
3031 
3032  yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
3033 
3034  num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
3035  number_to_move - 1;
3036 
3037  }
3038 
3039  if ( num_to_read > YY_READ_BUF_SIZE )
3040  num_to_read = YY_READ_BUF_SIZE;
3041 
3042  /* Read in more data. */
3043  YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
3044  yyg->yy_n_chars, num_to_read );
3045 
3046  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
3047  }
3048 
3049  if ( yyg->yy_n_chars == 0 )
3050  {
3051  if ( number_to_move == YY_MORE_ADJ )
3052  {
3053  ret_val = EOB_ACT_END_OF_FILE;
3054  parse_events_restart(yyin ,yyscanner);
3055  }
3056 
3057  else
3058  {
3059  ret_val = EOB_ACT_LAST_MATCH;
3060  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
3062  }
3063  }
3064 
3065  else
3066  ret_val = EOB_ACT_CONTINUE_SCAN;
3067 
3068  if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
3069  /* Extend the array by 50%, plus the number we really need. */
3070  yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
3071  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) parse_events_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
3072  if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3073  YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
3074  }
3075 
3076  yyg->yy_n_chars += number_to_move;
3079 
3080  yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
3081 
3082  return ret_val;
3083 }
3084 
3085 /* yy_get_previous_state - get the state just before the EOB char was reached */
3086 
3087  static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
3088 {
3089  yy_state_type yy_current_state;
3090  char *yy_cp;
3091  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3092 
3093  yy_current_state = yyg->yy_start;
3094 
3095  for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
3096  {
3097  YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3098  if ( yy_accept[yy_current_state] )
3099  {
3100  yyg->yy_last_accepting_state = yy_current_state;
3102  }
3103  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3104  {
3105  yy_current_state = (int) yy_def[yy_current_state];
3106  if ( yy_current_state >= 1100 )
3107  yy_c = yy_meta[(unsigned int) yy_c];
3108  }
3109  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3110  }
3111 
3112  return yy_current_state;
3113 }
3114 
3115 /* yy_try_NUL_trans - try to make a transition on the NUL character
3116  *
3117  * synopsis
3118  * next_state = yy_try_NUL_trans( current_state );
3119  */
3120  static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner)
3121 {
3122  int yy_is_jam;
3123  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
3124  char *yy_cp = yyg->yy_c_buf_p;
3125 
3126  YY_CHAR yy_c = 1;
3127  if ( yy_accept[yy_current_state] )
3128  {
3129  yyg->yy_last_accepting_state = yy_current_state;
3131  }
3132  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3133  {
3134  yy_current_state = (int) yy_def[yy_current_state];
3135  if ( yy_current_state >= 1100 )
3136  yy_c = yy_meta[(unsigned int) yy_c];
3137  }
3138  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3139  yy_is_jam = (yy_current_state == 1099);
3140 
3141  (void)yyg;
3142  return yy_is_jam ? 0 : yy_current_state;
3143 }
3144 
3145 #ifndef YY_NO_UNPUT
3146 
3147  static void yyunput (int c, char * yy_bp , yyscan_t yyscanner)
3148 {
3149  char *yy_cp;
3150  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3151 
3152  yy_cp = yyg->yy_c_buf_p;
3153 
3154  /* undo effects of setting up yytext */
3155  *yy_cp = yyg->yy_hold_char;
3156 
3157  if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3158  { /* need to shift things up to make room */
3159  /* +2 for EOB chars. */
3160  yy_size_t number_to_move = yyg->yy_n_chars + 2;
3161  char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
3162  YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
3163  char *source =
3164  &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
3165 
3166  while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3167  *--dest = *--source;
3168 
3169  yy_cp += (int) (dest - source);
3170  yy_bp += (int) (dest - source);
3171  YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
3172  yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
3173 
3174  if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3175  YY_FATAL_ERROR( "flex scanner push-back overflow" );
3176  }
3177 
3178  *--yy_cp = (char) c;
3179 
3180  if ( c == '\n' ){
3181  --yylineno;
3182  }
3183 
3184  yyg->yytext_ptr = yy_bp;
3185  yyg->yy_hold_char = *yy_cp;
3186  yyg->yy_c_buf_p = yy_cp;
3187 }
3188 
3189 #endif
3190 
3191 #ifndef YY_NO_INPUT
3192 #ifdef __cplusplus
3193  static int yyinput (yyscan_t yyscanner)
3194 #else
3195  static int input (yyscan_t yyscanner)
3196 #endif
3197 
3198 {
3199  int c;
3200  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3201 
3202  *yyg->yy_c_buf_p = yyg->yy_hold_char;
3203 
3204  if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
3205  {
3206  /* yy_c_buf_p now points to the character we want to return.
3207  * If this occurs *before* the EOB characters, then it's a
3208  * valid NUL; if not, then we've hit the end of the buffer.
3209  */
3210  if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
3211  /* This was really a NUL. */
3212  *yyg->yy_c_buf_p = '\0';
3213 
3214  else
3215  { /* need more input */
3216  yy_size_t offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
3217  ++yyg->yy_c_buf_p;
3218 
3219  switch ( yy_get_next_buffer( yyscanner ) )
3220  {
3221  case EOB_ACT_LAST_MATCH:
3222  /* This happens because yy_g_n_b()
3223  * sees that we've accumulated a
3224  * token and flags that we need to
3225  * try matching the token before
3226  * proceeding. But for input(),
3227  * there's no matching to consider.
3228  * So convert the EOB_ACT_LAST_MATCH
3229  * to EOB_ACT_END_OF_FILE.
3230  */
3231 
3232  /* Reset buffer status. */
3233  parse_events_restart(yyin ,yyscanner);
3234 
3235  /*FALLTHROUGH*/
3236 
3237  case EOB_ACT_END_OF_FILE:
3238  {
3239  if ( parse_events_wrap(yyscanner ) )
3240  return EOF;
3241 
3242  if ( ! yyg->yy_did_buffer_switch_on_eof )
3243  YY_NEW_FILE;
3244 #ifdef __cplusplus
3245  return yyinput(yyscanner);
3246 #else
3247  return input(yyscanner);
3248 #endif
3249  }
3250 
3251  case EOB_ACT_CONTINUE_SCAN:
3252  yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
3253  break;
3254  }
3255  }
3256  }
3257 
3258  c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */
3259  *yyg->yy_c_buf_p = '\0'; /* preserve yytext */
3260  yyg->yy_hold_char = *++yyg->yy_c_buf_p;
3261 
3262  if ( c == '\n' )
3263 
3264  do{ yylineno++;
3265  yycolumn=0;
3266  }while(0)
3267 ;
3268 
3269  return c;
3270 }
3271 #endif /* ifndef YY_NO_INPUT */
3272 
3278  void parse_events_restart (FILE * input_file , yyscan_t yyscanner)
3279 {
3280  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3281 
3282  if ( ! YY_CURRENT_BUFFER ){
3286  }
3287 
3288  parse_events__init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
3289  parse_events__load_buffer_state(yyscanner );
3290 }
3291 
3296  void parse_events__switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
3297 {
3298  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3299 
3300  /* TODO. We should be able to replace this entire function body
3301  * with
3302  * parse_events_pop_buffer_state();
3303  * parse_events_push_buffer_state(new_buffer);
3304  */
3306  if ( YY_CURRENT_BUFFER == new_buffer )
3307  return;
3308 
3309  if ( YY_CURRENT_BUFFER )
3310  {
3311  /* Flush out information for old buffer. */
3312  *yyg->yy_c_buf_p = yyg->yy_hold_char;
3313  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
3314  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
3315  }
3316 
3317  YY_CURRENT_BUFFER_LVALUE = new_buffer;
3318  parse_events__load_buffer_state(yyscanner );
3319 
3320  /* We don't actually know whether we did this switch during
3321  * EOF (parse_events_wrap()) processing, but the only time this flag
3322  * is looked at is after parse_events_wrap() is called, so it's safe
3323  * to go ahead and always set it.
3324  */
3325  yyg->yy_did_buffer_switch_on_eof = 1;
3326 }
3327 
3328 static void parse_events__load_buffer_state (yyscan_t yyscanner)
3329 {
3330  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3331  yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3332  yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
3333  yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
3334  yyg->yy_hold_char = *yyg->yy_c_buf_p;
3335 }
3336 
3343  YY_BUFFER_STATE parse_events__create_buffer (FILE * file, int size , yyscan_t yyscanner)
3344 {
3345  YY_BUFFER_STATE b;
3346 
3347  b = (YY_BUFFER_STATE) parse_events_alloc(sizeof( struct yy_buffer_state ) ,yyscanner );
3348  if ( ! b )
3349  YY_FATAL_ERROR( "out of dynamic memory in parse_events__create_buffer()" );
3350 
3351  b->yy_buf_size = (yy_size_t)size;
3352 
3353  /* yy_ch_buf has to be 2 characters longer than the size given because
3354  * we need to put in 2 end-of-buffer characters.
3355  */
3356  b->yy_ch_buf = (char *) parse_events_alloc(b->yy_buf_size + 2 ,yyscanner );
3357  if ( ! b->yy_ch_buf )
3358  YY_FATAL_ERROR( "out of dynamic memory in parse_events__create_buffer()" );
3359 
3360  b->yy_is_our_buffer = 1;
3361 
3362  parse_events__init_buffer(b,file ,yyscanner);
3363 
3364  return b;
3365 }
3366 
3371  void parse_events__delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
3372 {
3373  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3374 
3375  if ( ! b )
3376  return;
3377 
3378  if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
3380 
3381  if ( b->yy_is_our_buffer )
3382  parse_events_free((void *) b->yy_ch_buf ,yyscanner );
3383 
3384  parse_events_free((void *) b ,yyscanner );
3385 }
3386 
3387 /* Initializes or reinitializes a buffer.
3388  * This function is sometimes called more than once on the same buffer,
3389  * such as during a parse_events_restart() or at EOF.
3390  */
3391  static void parse_events__init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner)
3392 
3393 {
3394  int oerrno = errno;
3395  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3396 
3397  parse_events__flush_buffer(b ,yyscanner);
3398 
3399  b->yy_input_file = file;
3400  b->yy_fill_buffer = 1;
3401 
3402  /* If b is the current buffer, then parse_events__init_buffer was _probably_
3403  * called from parse_events_restart() or through yy_get_next_buffer.
3404  * In that case, we don't want to reset the lineno or column.
3405  */
3406  if (b != YY_CURRENT_BUFFER){
3407  b->yy_bs_lineno = 1;
3408  b->yy_bs_column = 0;
3409  }
3410 
3411  b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3412 
3413  errno = oerrno;
3414 }
3415 
3420  void parse_events__flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
3421 {
3422  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3423  if ( ! b )
3424  return;
3425 
3426  b->yy_n_chars = 0;
3427 
3428  /* We always need two end-of-buffer characters. The first causes
3429  * a transition to the end-of-buffer state. The second causes
3430  * a jam in that state.
3431  */
3434 
3435  b->yy_buf_pos = &b->yy_ch_buf[0];
3436 
3437  b->yy_at_bol = 1;
3439 
3440  if ( b == YY_CURRENT_BUFFER )
3441  parse_events__load_buffer_state(yyscanner );
3442 }
3443 
3450 void parse_events_push_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
3451 {
3452  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3453  if (new_buffer == NULL)
3454  return;
3455 
3457 
3458  /* This block is copied from parse_events__switch_to_buffer. */
3459  if ( YY_CURRENT_BUFFER )
3460  {
3461  /* Flush out information for old buffer. */
3462  *yyg->yy_c_buf_p = yyg->yy_hold_char;
3463  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
3464  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
3465  }
3466 
3467  /* Only push if top exists. Otherwise, replace top. */
3468  if (YY_CURRENT_BUFFER)
3469  yyg->yy_buffer_stack_top++;
3470  YY_CURRENT_BUFFER_LVALUE = new_buffer;
3471 
3472  /* copied from parse_events__switch_to_buffer. */
3473  parse_events__load_buffer_state(yyscanner );
3474  yyg->yy_did_buffer_switch_on_eof = 1;
3475 }
3476 
3481 void parse_events_pop_buffer_state (yyscan_t yyscanner)
3482 {
3483  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3484  if (!YY_CURRENT_BUFFER)
3485  return;
3486 
3488  YY_CURRENT_BUFFER_LVALUE = NULL;
3489  if (yyg->yy_buffer_stack_top > 0)
3490  --yyg->yy_buffer_stack_top;
3491 
3492  if (YY_CURRENT_BUFFER) {
3493  parse_events__load_buffer_state(yyscanner );
3494  yyg->yy_did_buffer_switch_on_eof = 1;
3495  }
3496 }
3497 
3498 /* Allocates the stack if it does not exist.
3499  * Guarantees space for at least one push.
3500  */
3501 static void parse_events_ensure_buffer_stack (yyscan_t yyscanner)
3502 {
3503  yy_size_t num_to_alloc;
3504  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3505 
3506  if (!yyg->yy_buffer_stack) {
3507 
3508  /* First allocation is just for 2 elements, since we don't know if this
3509  * scanner will even need a stack. We use 2 instead of 1 to avoid an
3510  * immediate realloc on the next call.
3511  */
3512  num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
3514  (num_to_alloc * sizeof(struct yy_buffer_state*)
3515  , yyscanner);
3516  if ( ! yyg->yy_buffer_stack )
3517  YY_FATAL_ERROR( "out of dynamic memory in parse_events_ensure_buffer_stack()" );
3518 
3519  memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
3520 
3521  yyg->yy_buffer_stack_max = num_to_alloc;
3522  yyg->yy_buffer_stack_top = 0;
3523  return;
3524  }
3525 
3526  if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
3527 
3528  /* Increase the buffer to prepare for a possible push. */
3529  yy_size_t grow_size = 8 /* arbitrary grow size */;
3530 
3531  num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
3533  (yyg->yy_buffer_stack,
3534  num_to_alloc * sizeof(struct yy_buffer_state*)
3535  , yyscanner);
3536  if ( ! yyg->yy_buffer_stack )
3537  YY_FATAL_ERROR( "out of dynamic memory in parse_events_ensure_buffer_stack()" );
3538 
3539  /* zero only the new slots.*/
3540  memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
3541  yyg->yy_buffer_stack_max = num_to_alloc;
3542  }
3543 }
3544 
3551 YY_BUFFER_STATE parse_events__scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner)
3552 {
3553  YY_BUFFER_STATE b;
3554 
3555  if ( size < 2 ||
3556  base[size-2] != YY_END_OF_BUFFER_CHAR ||
3557  base[size-1] != YY_END_OF_BUFFER_CHAR )
3558  /* They forgot to leave room for the EOB's. */
3559  return 0;
3560 
3561  b = (YY_BUFFER_STATE) parse_events_alloc(sizeof( struct yy_buffer_state ) ,yyscanner );
3562  if ( ! b )
3563  YY_FATAL_ERROR( "out of dynamic memory in parse_events__scan_buffer()" );
3564 
3565  b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
3566  b->yy_buf_pos = b->yy_ch_buf = base;
3567  b->yy_is_our_buffer = 0;
3568  b->yy_input_file = 0;
3569  b->yy_n_chars = b->yy_buf_size;
3570  b->yy_is_interactive = 0;
3571  b->yy_at_bol = 1;
3572  b->yy_fill_buffer = 0;
3574 
3575  parse_events__switch_to_buffer(b ,yyscanner );
3576 
3577  return b;
3578 }
3579 
3588 YY_BUFFER_STATE parse_events__scan_string (yyconst char * yystr , yyscan_t yyscanner)
3589 {
3590 
3591  return parse_events__scan_bytes(yystr,strlen(yystr) ,yyscanner);
3592 }
3593 
3601 YY_BUFFER_STATE parse_events__scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len , yyscan_t yyscanner)
3602 {
3603  YY_BUFFER_STATE b;
3604  char *buf;
3605  yy_size_t n;
3606  yy_size_t i;
3607 
3608  /* Get memory for full buffer, including space for trailing EOB's. */
3609  n = _yybytes_len + 2;
3610  buf = (char *) parse_events_alloc(n ,yyscanner );
3611  if ( ! buf )
3612  YY_FATAL_ERROR( "out of dynamic memory in parse_events__scan_bytes()" );
3613 
3614  for ( i = 0; i < _yybytes_len; ++i )
3615  buf[i] = yybytes[i];
3616 
3617  buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
3618 
3619  b = parse_events__scan_buffer(buf,n ,yyscanner);
3620  if ( ! b )
3621  YY_FATAL_ERROR( "bad buffer in parse_events__scan_bytes()" );
3622 
3623  /* It's okay to grow etc. this buffer, and we should throw it
3624  * away when we're done.
3625  */
3626  b->yy_is_our_buffer = 1;
3627 
3628  return b;
3629 }
3630 
3631  static void yy_push_state (int _new_state , yyscan_t yyscanner)
3632 {
3633  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3634  if ( yyg->yy_start_stack_ptr >= yyg->yy_start_stack_depth )
3635  {
3636  yy_size_t new_size;
3637 
3639  new_size = yyg->yy_start_stack_depth * sizeof( int );
3640 
3641  if ( ! yyg->yy_start_stack )
3642  yyg->yy_start_stack = (int *) parse_events_alloc(new_size ,yyscanner );
3643 
3644  else
3645  yyg->yy_start_stack = (int *) parse_events_realloc((void *) yyg->yy_start_stack,new_size ,yyscanner );
3646 
3647  if ( ! yyg->yy_start_stack )
3648  YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
3649  }
3650 
3652 
3653  BEGIN(_new_state);
3654 }
3655 
3656  static void yy_pop_state (yyscan_t yyscanner)
3657 {
3658  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3659  if ( --yyg->yy_start_stack_ptr < 0 )
3660  YY_FATAL_ERROR( "start-condition stack underflow" );
3661 
3663 }
3664 
3665  static int yy_top_state (yyscan_t yyscanner)
3666 {
3667  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3668  return yyg->yy_start_stack[yyg->yy_start_stack_ptr - 1];
3669 }
3670 
3671 #ifndef YY_EXIT_FAILURE
3672 #define YY_EXIT_FAILURE 2
3673 #endif
3674 
3675 static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
3676 {
3677  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3678  (void)yyg;
3679  (void) fprintf( stderr, "%s\n", msg );
3680  exit( YY_EXIT_FAILURE );
3681 }
3682 
3683 /* Redefine yyless() so it works in section 3 code. */
3684 
3685 #undef yyless
3686 #define yyless(n) \
3687  do \
3688  { \
3689  /* Undo effects of setting up yytext. */ \
3690  yy_size_t yyless_macro_arg = (n); \
3691  YY_LESS_LINENO(yyless_macro_arg);\
3692  yytext[yyleng] = yyg->yy_hold_char; \
3693  yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
3694  yyg->yy_hold_char = *yyg->yy_c_buf_p; \
3695  *yyg->yy_c_buf_p = '\0'; \
3696  yyleng = yyless_macro_arg; \
3697  } \
3698  while ( 0 )
3699 
3700 /* Accessor methods (get/set functions) to struct members. */
3701 
3706 {
3707  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3708  return yyextra;
3709 }
3710 
3714 int parse_events_get_lineno (yyscan_t yyscanner)
3715 {
3716  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3717 
3718  if (! YY_CURRENT_BUFFER)
3719  return 0;
3720 
3721  return yylineno;
3722 }
3723 
3727 int parse_events_get_column (yyscan_t yyscanner)
3728 {
3729  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3730 
3731  if (! YY_CURRENT_BUFFER)
3732  return 0;
3733 
3734  return yycolumn;
3735 }
3736 
3740 FILE *parse_events_get_in (yyscan_t yyscanner)
3741 {
3742  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3743  return yyin;
3744 }
3745 
3749 FILE *parse_events_get_out (yyscan_t yyscanner)
3750 {
3751  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3752  return yyout;
3753 }
3754 
3759 {
3760  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3761  return yyleng;
3762 }
3763 
3768 char *parse_events_get_text (yyscan_t yyscanner)
3769 {
3770  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3771  return yytext;
3772 }
3773 
3778 void parse_events_set_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner)
3779 {
3780  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3781  yyextra = user_defined ;
3782 }
3783 
3788 void parse_events_set_lineno (int _line_number , yyscan_t yyscanner)
3789 {
3790  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3791 
3792  /* lineno is only valid if an input buffer exists. */
3793  if (! YY_CURRENT_BUFFER )
3794  YY_FATAL_ERROR( "parse_events_set_lineno called with no buffer" );
3795 
3796  yylineno = _line_number;
3797 }
3798 
3803 void parse_events_set_column (int _column_no , yyscan_t yyscanner)
3804 {
3805  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3806 
3807  /* column is only valid if an input buffer exists. */
3808  if (! YY_CURRENT_BUFFER )
3809  YY_FATAL_ERROR( "parse_events_set_column called with no buffer" );
3810 
3811  yycolumn = _column_no;
3812 }
3813 
3820 void parse_events_set_in (FILE * _in_str , yyscan_t yyscanner)
3821 {
3822  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3823  yyin = _in_str ;
3824 }
3825 
3826 void parse_events_set_out (FILE * _out_str , yyscan_t yyscanner)
3827 {
3828  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3829  yyout = _out_str ;
3830 }
3831 
3832 int parse_events_get_debug (yyscan_t yyscanner)
3833 {
3834  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3835  return yy_flex_debug;
3836 }
3837 
3838 void parse_events_set_debug (int _bdebug , yyscan_t yyscanner)
3839 {
3840  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3841  yy_flex_debug = _bdebug ;
3842 }
3843 
3844 /* Accessor methods for yylval and yylloc */
3845 
3847 {
3848  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3849  return yylval;
3850 }
3851 
3852 void parse_events_set_lval (YYSTYPE * yylval_param , yyscan_t yyscanner)
3853 {
3854  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3855  yylval = yylval_param;
3856 }
3857 
3859 {
3860  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3861  return yylloc;
3862 }
3863 
3864 void parse_events_set_lloc (YYLTYPE * yylloc_param , yyscan_t yyscanner)
3865 {
3866  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3867  yylloc = yylloc_param;
3868 }
3869 
3870 /* User-visible API */
3871 
3872 /* parse_events_lex_init is special because it creates the scanner itself, so it is
3873  * the ONLY reentrant function that doesn't take the scanner as the last argument.
3874  * That's why we explicitly handle the declaration, instead of using our macros.
3875  */
3876 
3877 int parse_events_lex_init(yyscan_t* ptr_yy_globals)
3878 
3879 {
3880  if (ptr_yy_globals == NULL){
3881  errno = EINVAL;
3882  return 1;
3883  }
3884 
3885  *ptr_yy_globals = (yyscan_t) parse_events_alloc ( sizeof( struct yyguts_t ), NULL );
3886 
3887  if (*ptr_yy_globals == NULL){
3888  errno = ENOMEM;
3889  return 1;
3890  }
3891 
3892  /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
3893  memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
3894 
3895  return yy_init_globals ( *ptr_yy_globals );
3896 }
3897 
3898 /* parse_events_lex_init_extra has the same functionality as parse_events_lex_init, but follows the
3899  * convention of taking the scanner as the last argument. Note however, that
3900  * this is a *pointer* to a scanner, as it will be allocated by this call (and
3901  * is the reason, too, why this function also must handle its own declaration).
3902  * The user defined value in the first argument will be available to parse_events_alloc in
3903  * the yyextra field.
3904  */
3905 
3906 int parse_events_lex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals )
3907 
3908 {
3909  struct yyguts_t dummy_yyguts;
3910 
3911  parse_events_set_extra (yy_user_defined, &dummy_yyguts);
3912 
3913  if (ptr_yy_globals == NULL){
3914  errno = EINVAL;
3915  return 1;
3916  }
3917 
3918  *ptr_yy_globals = (yyscan_t) parse_events_alloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
3919 
3920  if (*ptr_yy_globals == NULL){
3921  errno = ENOMEM;
3922  return 1;
3923  }
3924 
3925  /* By setting to 0xAA, we expose bugs in
3926  yy_init_globals. Leave at 0x00 for releases. */
3927  memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
3928 
3929  parse_events_set_extra (yy_user_defined, *ptr_yy_globals);
3930 
3931  return yy_init_globals ( *ptr_yy_globals );
3932 }
3933 
3934 static int yy_init_globals (yyscan_t yyscanner)
3935 {
3936  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3937  /* Initialization is the same as for the non-reentrant scanner.
3938  * This function is called from parse_events_lex_destroy(), so don't allocate here.
3939  */
3940 
3941  yyg->yy_buffer_stack = 0;
3942  yyg->yy_buffer_stack_top = 0;
3943  yyg->yy_buffer_stack_max = 0;
3944  yyg->yy_c_buf_p = (char *) 0;
3945  yyg->yy_init = 0;
3946  yyg->yy_start = 0;
3947 
3948  yyg->yy_start_stack_ptr = 0;
3949  yyg->yy_start_stack_depth = 0;
3950  yyg->yy_start_stack = NULL;
3951 
3952 /* Defined in main.c */
3953 #ifdef YY_STDINIT
3954  yyin = stdin;
3955  yyout = stdout;
3956 #else
3957  yyin = (FILE *) 0;
3958  yyout = (FILE *) 0;
3959 #endif
3960 
3961  /* For future reference: Set errno on error, since we are called by
3962  * parse_events_lex_init()
3963  */
3964  return 0;
3965 }
3966 
3967 /* parse_events_lex_destroy is for both reentrant and non-reentrant scanners. */
3968 int parse_events_lex_destroy (yyscan_t yyscanner)
3969 {
3970  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3971 
3972  /* Pop the buffer stack, destroying each element. */
3973  while(YY_CURRENT_BUFFER){
3975  YY_CURRENT_BUFFER_LVALUE = NULL;
3976  parse_events_pop_buffer_state(yyscanner);
3977  }
3978 
3979  /* Destroy the stack itself. */
3980  parse_events_free(yyg->yy_buffer_stack ,yyscanner);
3981  yyg->yy_buffer_stack = NULL;
3982 
3983  /* Destroy the start condition stack. */
3984  parse_events_free(yyg->yy_start_stack ,yyscanner );
3985  yyg->yy_start_stack = NULL;
3986 
3987  /* Reset the globals. This is important in a non-reentrant scanner so the next time
3988  * parse_events_lex() is called, initialization will occur. */
3989  yy_init_globals( yyscanner);
3990 
3991  /* Destroy the main struct (reentrant only). */
3992  parse_events_free ( yyscanner , yyscanner );
3993  yyscanner = NULL;
3994  return 0;
3995 }
3996 
3997 /*
3998  * Internal utility routines.
3999  */
4000 
4001 #ifndef yytext_ptr
4002 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
4003 {
4004  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4005  (void)yyg;
4006 
4007  int i;
4008  for ( i = 0; i < n; ++i )
4009  s1[i] = s2[i];
4010 }
4011 #endif
4012 
4013 #ifdef YY_NEED_STRLEN
4014 static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
4015 {
4016  int n;
4017  for ( n = 0; s[n]; ++n )
4018  ;
4019 
4020  return n;
4021 }
4022 #endif
4023 
4024 void *parse_events_alloc (yy_size_t size , yyscan_t yyscanner)
4025 {
4026  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4027  (void)yyg;
4028  return (void *) malloc( size );
4029 }
4030 
4031 void *parse_events_realloc (void * ptr, yy_size_t size , yyscan_t yyscanner)
4032 {
4033  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4034  (void)yyg;
4035 
4036  /* The cast to (char *) in the following accommodates both
4037  * implementations that use char* generic pointers, and those
4038  * that use void* generic pointers. It works with the latter
4039  * because both ANSI C and C++ allow castless assignment from
4040  * any pointer type to void*, and deal with argument conversions
4041  * as though doing an assignment.
4042  */
4043  return (void *) realloc( (char *) ptr, size );
4044 }
4045 
4046 void parse_events_free (void * ptr , yyscan_t yyscanner)
4047 {
4048  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4049  (void)yyg;
4050  free( (char *) ptr ); /* see parse_events_realloc() for (char *) cast */
4051 }
4052 
4053 #define YYTABLES_NAME "yytables"
4054 
4055 #line 323 "util/parse-events.l"
4056 
4057 
4058 
4059 int parse_events_wrap(void *scanner __maybe_unused)
4060 {
4061  return 1;
4062 }
4063 
void parse_events_restart(FILE *input_file, yyscan_t yyscanner)
static int value(yyscan_t scanner, int base)
static yyconst flex_uint16_t yy_base[1119]
#define yyleng
static int yy_init_globals(yyscan_t yyscanner)
size_t yy_buffer_stack_top
static int __value(YYSTYPE *yylval, char *str, int base, int token)
int yy_start_stack_depth
unsigned char YY_CHAR
int parse_events_lex_init(yyscan_t *scanner)
YY_BUFFER_STATE parse_events__scan_string(yyconst char *yy_str, yyscan_t yyscanner)
YY_EXTRA_TYPE parse_events_get_extra(yyscan_t yyscanner)
size_t size
Definition: evsel.c:60
void parse_events_set_lineno(int _line_number, yyscan_t yyscanner)
#define yytext
#define YY_EXIT_FAILURE
void * yyscan_t
FILE * parse_events_get_out(yyscan_t yyscanner)
unsigned short int flex_uint16_t
#define yyextra
void parse_events__flush_buffer(YY_BUFFER_STATE b, yyscan_t yyscanner)
void parse_events__switch_to_buffer(YY_BUFFER_STATE new_buffer, yyscan_t yyscanner)
FILE * parse_events_get_in(yyscan_t yyscanner)
#define yy_flex_debug
void parse_events_set_debug(int debug_flag, yyscan_t yyscanner)
static void yyunput(int c, char *buf_ptr, yyscan_t yyscanner)
YYSTYPE * parse_events_get_lval(yyscan_t yyscanner)
static int input(yyscan_t yyscanner)
#define config
char * yy_bp
signed char flex_int8_t
void parse_events_set_lloc(YYLTYPE *yylloc_param, yyscan_t yyscanner)
YYLTYPE * parse_events_get_lloc(yyscan_t yyscanner)
void parse_events_push_buffer_state(YY_BUFFER_STATE new_buffer, yyscan_t yyscanner)
YYLTYPE * yylloc_r
yy_size_t yyleng_r
static int term(yyscan_t scanner, int type)
#define BEGIN
#define YY_RESTORE_YY_MORE_OFFSET
#define YY_BUF_SIZE
yy_size_t yy_n_chars
struct yy_buffer_state * YY_BUFFER_STATE
void parse_events_set_column(int _column_no, yyscan_t yyscanner)
int * yy_start_stack
size_t yy_buffer_stack_max
#define YY_END_OF_BUFFER_CHAR
#define yyout
static void yy_push_state(int _new_state, yyscan_t yyscanner)
x86 movsq based memset() in arch/x86/lib/memset_64.S") MEMSET_FN(memset_erms
static yyconst YY_CHAR yy_ec[256]
void * parse_events_alloc(yy_size_t, yyscan_t yyscanner)
YY_EXTRA_TYPE yyextra_r
static void parse_events__load_buffer_state(yyscan_t yyscanner)
#define yyterminate()
unsigned char flex_uint8_t
size_t yy_size_t
#define YY_BUFFER_NORMAL
void * malloc(YYSIZE_T)
static int pmu_str_check(yyscan_t scanner)
YY_BUFFER_STATE * yy_buffer_stack
if(!yyg->yy_init)
#define YY_BUFFER_NEW
#define mem
void parse_events_pop_buffer_state(yyscan_t yyscanner)
#define yyconst
short int flex_int16_t
#define YY_MORE_ADJ
#define YY_BUFFER_EOF_PENDING
char * parse_events_get_text(yyscan_t yyscanner)
int yy_did_buffer_switch_on_eof
#define EOB_ACT_END_OF_FILE
char * yy_last_accepting_cpos
void parse_events_free(void *, yyscan_t yyscanner)
int yy_state_type
int parse_events_lex(YYSTYPE *yylval_param, YYLTYPE *yylloc_param, yyscan_t yyscanner)
#define EOB_ACT_CONTINUE_SCAN
#define yyin
#define YY_START_STACK_INCR
#define YY_START
int flex_int32_t
void * parse_events_realloc(void *, yy_size_t, yyscan_t yyscanner)
static int str(yyscan_t scanner, int token)
static void yy_pop_state(yyscan_t yyscanner)
unsigned int flex_uint32_t
#define EOB_ACT_LAST_MATCH
int parse_events_lex_destroy(yyscan_t yyscanner)
static yyconst flex_int16_t yy_chk[4444]
static yyconst flex_int16_t yy_def[1119]
#define INITIAL
int parse_events_get_lineno(yyscan_t yyscanner)
#define event
void parse_events__delete_buffer(YY_BUFFER_STATE b, yyscan_t yyscanner)
#define YY_READ_BUF_SIZE
static int drv_str(yyscan_t scanner, int token)
const char * source
Definition: llvm.c:32
#define YY_EXTRA_TYPE
void parse_events_set_lval(YYSTYPE *yylval_param, yyscan_t yyscanner)
#define YY_SC_TO_UI(c)
#define YY_NEW_FILE
enum perf_pmu_event_symbol_type perf_pmu__parse_check(const char *name)
#define yylloc
static int raw(yyscan_t scanner)
#define YY_DECL
yy_state_type yy_last_accepting_state
#define array
YY_BUFFER_STATE parse_events__scan_buffer(char *base, yy_size_t size, yyscan_t yyscanner)
int parse_events_lex_init_extra(YY_EXTRA_TYPE user_defined, yyscan_t *scanner)
#define yycolumn
static yyconst flex_uint16_t yy_nxt[4444]
#define YY_STATE_EOF(state)
static yy_state_type yy_try_NUL_trans(yy_state_type current_state, yyscan_t yyscanner)
#define REWIND(__alloc)
void parse_events_set_in(FILE *_in_str, yyscan_t yyscanner)
#define YY_INPUT(buf, result, max_size)
flex_int32_t yy_verify
#define YY_CURRENT_BUFFER_LVALUE
static int sym(yyscan_t scanner, int type, int config)
static void parse_events_ensure_buffer_stack(yyscan_t yyscanner)
YY_BUFFER_STATE parse_events__create_buffer(FILE *file, int size, yyscan_t yyscanner)
#define YY_CURRENT_BUFFER
static yyconst flex_int16_t yy_accept[1100]
char * yy_cp
void free(void *)
struct yyguts_t * yyg
void parse_events_set_out(FILE *_out_str, yyscan_t yyscanner)
#define YY_FATAL_ERROR(msg)
#define ECHO
flex_int32_t yy_nxt
#define YY_DO_BEFORE_ACTION
#define unput(c)
#define YY_RULE_SETUP
static int yy_get_next_buffer(yyscan_t yyscanner)
int yy_act
double num
Definition: expr-bison.c:130
int parse_events_get_debug(yyscan_t yyscanner)
static yyconst YY_CHAR yy_meta[56]
static char * yy_c_buf_p
Definition: pmu-flex.c:307
int parse_events_get_column(yyscan_t yyscanner)
static yy_state_type yy_get_previous_state(yyscan_t yyscanner)
YY_BUFFER_STATE parse_events__scan_bytes(yyconst char *bytes, yy_size_t len, yyscan_t yyscanner)
YYSTYPE * yylval_r
#define yylineno
yy_size_t parse_events_get_leng(yyscan_t yyscanner)
#define YY_END_OF_BUFFER
#define yylval
static void yy_fatal_error(yyconst char msg[], yyscan_t yyscanner)
static int yy_top_state(yyscan_t yyscanner)
#define YY_BREAK
int parse_events_wrap(yyscan_t yyscanner)
void parse_events_set_extra(YY_EXTRA_TYPE user_defined, yyscan_t yyscanner)
static void parse_events__init_buffer(YY_BUFFER_STATE b, FILE *file, yyscan_t yyscanner)
static yyconst flex_int32_t yy_rule_can_match_eol[95]
__attribute__((weak))
Definition: jevents.c:74